From 9b152b0ddf91d5b2efbf8fe81a80d6310728ddfa Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 2 Feb 2016 10:07:08 -0600 Subject: [PATCH 001/259] Add property setters for Tally.scores, nuclides, filters, triggers --- examples/python/basic/build-xml.py | 23 +- .../python/lattice/hexagonal/build-xml.py | 4 +- examples/python/lattice/nested/build-xml.py | 4 +- examples/python/lattice/simple/build-xml.py | 8 +- examples/python/pincell/build-xml.py | 7 +- openmc/checkvalue.py | 16 +- openmc/mgxs/mgxs.py | 20 +- openmc/statepoint.py | 6 +- openmc/summary.py | 6 +- openmc/tallies.py | 229 +++++++++--------- openmc/trigger.py | 35 ++- tests/test_tallies/test_tallies.py | 149 +++++------- .../test_tally_aggregation.py | 10 +- .../test_tally_arithmetic.py | 19 +- 14 files changed, 257 insertions(+), 279 deletions(-) diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index 97591c992..eb8fbd23f 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -109,29 +109,20 @@ energyout_filter = openmc.Filter(type='energyout', bins=[0., 20.]) # Instantiate the first Tally first_tally = openmc.Tally(tally_id=1, name='first tally') -first_tally.add_filter(cell_filter) -scores = ['total', 'scatter', 'nu-scatter', \ +first_tally.filters = [cell_filter] +scores = ['total', 'scatter', 'nu-scatter', 'absorption', 'fission', 'nu-fission'] -for score in scores: - first_tally.add_score(score) +first_tally.scores = scores # Instantiate the second Tally second_tally = openmc.Tally(tally_id=2, name='second tally') -second_tally.add_filter(cell_filter) -second_tally.add_filter(energy_filter) -scores = ['total', 'scatter', 'nu-scatter', \ - 'absorption', 'fission', 'nu-fission'] -for score in scores: - second_tally.add_score(score) +second_tally.filters = [cell_filter, energy_filter] +second_tally.scores = scores # Instantiate the third Tally third_tally = openmc.Tally(tally_id=3, name='third tally') -third_tally.add_filter(cell_filter) -third_tally.add_filter(energy_filter) -third_tally.add_filter(energyout_filter) -scores = ['scatter', 'nu-scatter', 'nu-fission'] -for score in scores: - third_tally.add_score(score) +third_tally.filters = [cell_filter, energy_filter, energyout_filter] +third_tally.scores = ['scatter', 'nu-scatter', 'nu-fission'] # Instantiate a TalliesFile, register all Tallies, and export to XML tallies_file = openmc.TalliesFile() diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index 1125e8ce0..d1144cd91 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -166,8 +166,8 @@ plot_file.export_to_xml() # Instantiate a distribcell Tally tally = openmc.Tally(tally_id=1) -tally.add_filter(openmc.Filter(type='distribcell', bins=[cell2.id])) -tally.add_score('total') +tally.filters = [openmc.Filter(type='distribcell', bins=[cell2.id])] +tally.scores = ['total'] # Instantiate a TalliesFile, register Tally/Mesh, and export to XML tallies_file = openmc.TalliesFile() diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index 389af8e9b..e4ac84839 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -175,8 +175,8 @@ mesh_filter.mesh = mesh # Instantiate the Tally tally = openmc.Tally(tally_id=1) -tally.add_filter(mesh_filter) -tally.add_score('total') +tally.filters = [mesh_filter] +tally.scores = ['total'] # Instantiate a TalliesFile, register Tally/Mesh, and export to XML tallies_file = openmc.TalliesFile() diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index e648c3d5b..78ee61eb4 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -167,13 +167,13 @@ mesh_filter.mesh = mesh # Instantiate tally Trigger trigger = openmc.Trigger(trigger_type='rel_err', threshold=1E-2) -trigger.add_score('all') +trigger.scores = ['all'] # Instantiate the Tally tally = openmc.Tally(tally_id=1) -tally.add_filter(mesh_filter) -tally.add_score('total') -tally.add_trigger(trigger) +tally.filters = [mesh_filter] +tally.scores = ['total'] +tally.triggers = [trigger] # Instantiate a TalliesFile, register Tally/Mesh, and export to XML tallies_file = openmc.TalliesFile() diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index ca71b04e5..aa8714838 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -196,11 +196,8 @@ mesh_filter.mesh = mesh # Instantiate the Tally tally = openmc.Tally(tally_id=1, name='tally 1') -tally.add_filter(energy_filter) -tally.add_filter(mesh_filter) -tally.add_score('flux') -tally.add_score('fission') -tally.add_score('nu-fission') +tally.filters = [energy_filter, mesh_filter] +tally.scores = ['flux', 'fission', 'nu-fission'] # Instantiate a TalliesFile, register all Tallies, and export to XML tallies_file = openmc.TalliesFile() diff --git a/openmc/checkvalue.py b/openmc/checkvalue.py index 787052f5d..0e9dc9ef4 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -41,9 +41,9 @@ def check_type(name, value, expected_type, expected_iter_type=None): Description of value being checked value : object Object to check type of - expected_type : type + expected_type : type or Iterable of type type to check object against - expected_iter_type : type or None, optional + expected_iter_type : type or Iterable of type or None, optional Expected type of each element in value, assuming it is iterable. If None, no check will be performed. @@ -57,9 +57,15 @@ def check_type(name, value, expected_type, expected_iter_type=None): if expected_iter_type: for item in value: if not _isinstance(item, expected_iter_type): - msg = 'Unable to set "{0}" to "{1}" since each item must be ' \ - 'of type "{2}"'.format(name, value, - expected_iter_type.__name__) + if isinstance(expected_iter_type, Iterable): + msg = 'Unable to set "{0}" to "{1}" since each item must be ' \ + 'one of the following types: "{2}"'.format( + name, value, ', '.join([t.__name__ for t in + expected_iter_type])) + else: + msg = 'Unable to set "{0}" to "{1}" since each item must be ' \ + 'of type "{2}"'.format(name, value, + expected_iter_type.__name__) raise ValueError(msg) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 875a82c46..ad987d70f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -510,27 +510,27 @@ class MGXS(object): # Create each Tally needed to compute the multi group cross section for score, key, filters in zip(scores, keys, all_filters): self.tallies[key] = openmc.Tally(name=self.name) - self.tallies[key].add_score(score) + self.tallies[key].scores.append(score) self.tallies[key].estimator = estimator - self.tallies[key].add_filter(domain_filter) + self.tallies[key].filters.append(domain_filter) # If a tally trigger was specified, add it to each tally if self.tally_trigger: trigger_clone = copy.deepcopy(self.tally_trigger) - trigger_clone.add_score(score) - self.tallies[key].add_trigger(trigger_clone) + trigger_clone.scores.append(score) + self.tallies[key].triggers.append(trigger_clone) # Add all non-domain specific Filters (e.g., 'energy') to the Tally for add_filter in filters: - self.tallies[key].add_filter(add_filter) + self.tallies[key].filters.append(add_filter) # If this is a by-nuclide cross-section, add all nuclides to Tally if self.by_nuclide and score != 'flux': all_nuclides = self.domain.get_all_nuclides() for nuclide in all_nuclides: - self.tallies[key].add_nuclide(nuclide) + self.tallies[key].nuclides.append(nuclide) else: - self.tallies[key].add_nuclide('total') + self.tallies[key].nuclides.append('total') def _compute_xs(self): """Performs generic cleanup after a subclass' uses tally arithmetic to @@ -552,7 +552,7 @@ class MGXS(object): self.xs_tally._nuclides = [] nuclides = self.domain.get_all_nuclides() for nuclide in nuclides: - self.xs_tally.add_nuclide(openmc.Nuclide(nuclide)) + self.xs_tally.nuclides.append(openmc.Nuclide(nuclide)) # Remove NaNs which may have resulted from divide-by-zero operations self.xs_tally._mean = np.nan_to_num(self.xs_tally.mean) @@ -2087,7 +2087,7 @@ class Chi(MGXS): super(Chi, self)._compute_xs() # Add the coarse energy filter back to the nu-fission tally - nu_fission_in.add_filter(energy_filter) + nu_fission_in.filters.append(energy_filter) return self._xs_tally @@ -2179,7 +2179,7 @@ class Chi(MGXS): xs_tally = nu_fission_out / nu_fission_in # Add the coarse energy filter back to the nu-fission tally - nu_fission_in.add_filter(energy_filter) + nu_fission_in.filters.append(energy_filter) xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index f5b5b2e72..05a389611 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -389,7 +389,7 @@ class StatePoint(object): new_filter.mesh = self.meshes[key] # Add Filter to the Tally - tally.add_filter(new_filter) + tally.filters.append(new_filter) # Read Nuclide bins nuclide_names = \ @@ -398,7 +398,7 @@ class StatePoint(object): # Add all Nuclides to the Tally for name in nuclide_names: nuclide = openmc.Nuclide(name.decode().strip()) - tally.add_nuclide(nuclide) + tally.nuclides.append(nuclide) scores = self._f['{0}{1}/score_bins'.format( base, tally_key)].value @@ -425,7 +425,7 @@ class StatePoint(object): pattern = r'-n$|-pn$|-yn$' score = re.sub(pattern, '-' + moments[j].decode(), score) - tally.add_score(score) + tally.scores.append(score) # Add Tally to the global dictionary of all Tallies tally.sparse = self.sparse diff --git a/openmc/summary.py b/openmc/summary.py index d22e367c9..a4d1d694c 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -276,7 +276,7 @@ class Summary(object): # Get the distribcell index ind = self._f['geometry/cells'][key]['distribcell_index'].value if ind != 0: - cell.distribcell_index = ind + cell.distribcell_index = ind # Add the Cell to the global dictionary of all Cells self.cells[index] = cell @@ -539,7 +539,7 @@ class Summary(object): # If this is a moment, use generic moment order pattern = r'-n$|-pn$|-yn$' score = re.sub(pattern, '-' + moments[j].decode(), score) - tally.add_score(score) + tally.scores.append(score) # Read filter metadata num_filters = self._f['{0}/n_filters'.format(subbase)].value @@ -560,7 +560,7 @@ class Summary(object): new_filter.num_bins = num_bins # Add Filter to the Tally - tally.add_filter(new_filter) + tally.filters.append(new_filter) # Add Tally to the global dictionary of all Tallies self.tallies[tally_id] = tally diff --git a/openmc/tallies.py b/openmc/tallies.py index d1666694f..f471dbdf3 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -7,8 +7,9 @@ import os import pickle import itertools from numbers import Integral, Real -from xml.etree import ElementTree as ET import sys +import warnings +from xml.etree import ElementTree as ET import numpy as np @@ -18,10 +19,13 @@ from openmc.filter import _FILTER_TYPES import openmc.checkvalue as cv from openmc.clean_xml import * - if sys.version_info[0] >= 3: basestring = str + +# DeprecationWarning filter for the Tally.add_*(...) methods +warnings.simplefilter('always', DeprecationWarning) + # "Static" variable for auto-generated Tally IDs AUTO_TALLY_ID = 10000 @@ -75,7 +79,7 @@ class Tally(object): num_bins : Integral Total number of bins for the tally shape : 3-tuple of Integral - The shape of the tally data array ordered as the number of filter bins, + The shape of the tally data array ordered as the number of filter bins, nuclide bins and score bins num_realizations : Integral Total number of realizations @@ -145,19 +149,19 @@ class Tally(object): clone._filters = [] for self_filter in self.filters: - clone.add_filter(copy.deepcopy(self_filter, memo)) + clone.filters.append(copy.deepcopy(self_filter, memo)) clone._nuclides = [] for nuclide in self.nuclides: - clone.add_nuclide(copy.deepcopy(nuclide, memo)) + clone.nuclides.append(copy.deepcopy(nuclide, memo)) clone._scores = [] for score in self.scores: - clone.add_score(score) + clone.scores.append(score) clone._triggers = [] for trigger in self.triggers: - clone.add_trigger(trigger) + clone.triggers.append(trigger) memo[id(self)] = clone @@ -423,6 +427,11 @@ class Tally(object): ['analog', 'tracklength', 'collision']) self._estimator = estimator + @triggers.setter + def triggers(self, triggers): + cv.check_type('tally triggers', trigger, Iterable, Trigger) + self._triggers = triggers + def add_trigger(self, trigger): """Add a tally trigger to the tally @@ -433,13 +442,11 @@ class Tally(object): """ - if not isinstance(trigger, Trigger): - msg = 'Unable to add a tally trigger for Tally ID="{0}" to ' \ - 'since "{1}" is not a Trigger'.format(self.id, trigger) - raise ValueError(msg) - - if trigger not in self.triggers: - self.triggers.append(trigger) + warnings.warn("Tally.add_trigger(...) has been deprecated and may be " + "removed in a future version. Tally triggers should be " + "defined using the triggers property directly.", + DeprecationWarning) + self.triggers.append(trigger) @id.setter def id(self, tally_id): @@ -460,6 +467,55 @@ class Tally(object): else: self._name = '' + @filters.setter + def filters(self, filters): + cv.check_type('tally filters', filters, Iterable, + (Filter, CrossFilter, AggregateFilter)) + + # If the filter is already in the Tally, raise an error + for i, f in enumerate(filters[:-1]): + if f in filters[i+1:]: + msg = 'Unable to add a duplicate filter "{0}" to Tally ID="{1}" ' \ + 'since duplicate filters are not supported in the OpenMC ' \ + 'Python API'.format(f, self.id) + raise ValueError(msg) + + self._filters = filters + + @nuclides.setter + def nuclides(self, nuclides): + cv.check_type('tally nuclides', nuclides, Iterable, + (basestring, Nuclide, CrossNuclide, AggregateNuclide)) + + # If the nuclide is already in the Tally, raise an error + for i, nuclide in enumerate(nuclides[:-1]): + if nuclide in nuclides[i+1:]: + msg = 'Unable to add a duplicate nuclide "{0}" to Tally ID="{1}" ' \ + 'since duplicate nuclides are not supported in the OpenMC ' \ + 'Python API'.format(nuclide, self.id) + raise ValueError(msg) + + self._nuclides = nuclides + + @scores.setter + def scores(self, scores): + cv.check_type('tally scores', scores, Iterable, + (basestring, CrossScore, AggregateScore)) + + for i, score in enumerate(scores[:-1]): + # If the score is already in the Tally, raise an error + if score in scores[i+1:]: + msg = 'Unable to add a duplicate score "{0}" to Tally ID="{1}" ' \ + 'since duplicate scores are not supported in the OpenMC ' \ + 'Python API'.format(score, self.id) + raise ValueError(msg) + + # If score is a string, strip whitespace + if isinstance(score, basestring): + scores[i] = score.strip() + + self._scores = scores + def add_filter(self, new_filter): """Add a filter to the tally @@ -475,19 +531,11 @@ class Tally(object): """ - if not isinstance(new_filter, (Filter, CrossFilter, AggregateFilter)): - msg = 'Unable to add Filter "{0}" to Tally ID="{1}" since it is ' \ - 'not a Filter object'.format(new_filter, self.id) - raise ValueError(msg) - - # If the filter is already in the Tally, raise an error - if new_filter in self.filters: - msg = 'Unable to add a duplicate filter "{0}" to Tally ID="{1}" ' \ - 'since duplicate filters are not supported in the OpenMC ' \ - 'Python API'.format(new_filter, self.id) - raise ValueError(msg) - - self._filters.append(new_filter) + warnings.warn("Tally.add_filter(...) has been deprecated and may be " + "removed in a future version. Tally filters should be " + "defined using the filters property directly.", + DeprecationWarning) + self.filters.append(new_filter) def add_nuclide(self, nuclide): """Specify that scores for a particular nuclide should be accumulated @@ -504,20 +552,11 @@ class Tally(object): """ - if not isinstance(nuclide, (basestring, Nuclide, - CrossNuclide, AggregateNuclide)): - msg = 'Unable to add nuclide "{0}" to Tally ID="{1}" since it is ' \ - 'not a Nuclide object'.format(nuclide) - raise ValueError(msg) - - # If the nuclide is already in the Tally, raise an error - if nuclide in self.nuclides: - msg = 'Unable to add a duplicate nuclide "{0}" to Tally ID="{1}" ' \ - 'since duplicate nuclides are not supported in the OpenMC ' \ - 'Python API'.format(nuclide, self.id) - raise ValueError(msg) - - self._nuclides.append(nuclide) + warnings.warn("Tally.add_nuclide(...) has been deprecated and may be " + "removed in a future version. Tally nuclides should be " + "defined using the nuclides property directly.", + DeprecationWarning) + self.nuclides.append(nuclide) def add_score(self, score): """Specify a quantity to be scored @@ -533,24 +572,11 @@ class Tally(object): """ - if not isinstance(score, (basestring, CrossScore, AggregateScore)): - msg = 'Unable to add score "{0}" to Tally ID="{1}" since it is ' \ - 'not a string'.format(score, self.id) - raise ValueError(msg) - - # If the score is already in the Tally, raise an error - if score in self.scores: - msg = 'Unable to add a duplicate score "{0}" to Tally ID="{1}" ' \ - 'since duplicate scores are not supported in the OpenMC ' \ - 'Python API'.format(score, self.id) - raise ValueError(msg) - - # Normal score strings - if isinstance(score, basestring): - self._scores.append(score.strip()) - # CrossScores and AggrgateScore - else: - self._scores.append(score) + warnings.warn("Tally.add_score(...) has been deprecated and may be " + "removed in a future version. Tally scores should be " + "defined using the scores property directly.", + DeprecationWarning) + self.scores.append(score) @num_realizations.setter def num_realizations(self, num_realizations): @@ -771,11 +797,11 @@ class Tally(object): # Add unique scores from second tally to merged tally for score in tally.scores: if score not in merged_tally.scores: - merged_tally.add_score(score) + merged_tally.scores.append(score) # Add triggers from second tally to merged tally for trigger in tally.triggers: - merged_tally.add_trigger(trigger) + merged_tally.triggers.append(trigger) return merged_tally @@ -1723,33 +1749,33 @@ class Tally(object): # Add filters to the new tally if filter_product == 'entrywise': for self_filter in self_copy.filters: - new_tally.add_filter(self_filter) + new_tally.filters.append(self_filter) else: all_filters = [self_copy.filters, other_copy.filters] for self_filter, other_filter in itertools.product(*all_filters): new_filter = CrossFilter(self_filter, other_filter, binary_op) - new_tally.add_filter(new_filter) + new_tally.filters.append(new_filter) # Add nuclides to the new tally if nuclide_product == 'entrywise': for self_nuclide in self_copy.nuclides: - new_tally.add_nuclide(self_nuclide) + new_tally.nuclides.append(self_nuclide) else: all_nuclides = [self_copy.nuclides, other_copy.nuclides] for self_nuclide, other_nuclide in itertools.product(*all_nuclides): new_nuclide = \ CrossNuclide(self_nuclide, other_nuclide, binary_op) - new_tally.add_nuclide(new_nuclide) + new_tally.nuclides.append(new_nuclide) # Add scores to the new tally if score_product == 'entrywise': for self_score in self_copy.scores: - new_tally.add_score(self_score) + new_tally.scores.append(self_score) else: all_scores = [self_copy.scores, other_copy.scores] for self_score, other_score in itertools.product(*all_scores): new_score = CrossScore(self_score, other_score, binary_op) - new_tally.add_score(new_score) + new_tally.scores.append(new_score) # Update the new tally's filter strides new_tally._update_filter_strides() @@ -1812,14 +1838,14 @@ class Tally(object): filter_copy = copy.deepcopy(other_filter) other._mean = np.repeat(other.mean, filter_copy.num_bins, axis=0) other._std_dev = np.repeat(other.std_dev, filter_copy.num_bins, axis=0) - other.add_filter(filter_copy) + other.filters.append(filter_copy) # Add filters present in other but not in self to self for self_filter in self_missing_filters: filter_copy = copy.deepcopy(self_filter) self._mean = np.repeat(self.mean, filter_copy.num_bins, axis=0) self._std_dev = np.repeat(self.std_dev, filter_copy.num_bins, axis=0) - self.add_filter(filter_copy) + self.filters.append(filter_copy) # Align other filters with self filters for i, self_filter in enumerate(self.filters): @@ -1842,7 +1868,7 @@ class Tally(object): np.tile(other.std_dev, (1, self.num_nuclides, 1)) # Add nuclides to each tally such that each tally contains the complete - # set of nuclides necessary to perform an entrywise product. New + # set of nuclides necessary to perform an entrywise product. New # nuclides added to a tally will have all their scores set to zero. else: @@ -1858,7 +1884,7 @@ class Tally(object): np.insert(other.mean, other.num_nuclides, 0, axis=1) other._std_dev = \ np.insert(other.std_dev, other.num_nuclides, 0, axis=1) - other.add_nuclide(nuclide) + other.nuclides.append(nuclide) # Add nuclides present in other but not in self to self for nuclide in self_missing_nuclides: @@ -1866,7 +1892,7 @@ class Tally(object): np.insert(self.mean, self.num_nuclides, 0, axis=1) self._std_dev = \ np.insert(self.std_dev, self.num_nuclides, 0, axis=1) - self.add_nuclide(nuclide) + self.nuclides.append(nuclide) # Align other nuclides with self nuclides for i, nuclide in enumerate(self.nuclides): @@ -1899,13 +1925,13 @@ class Tally(object): for score in other_missing_scores: other._mean = np.insert(other.mean, other.num_scores, 0, axis=2) other._std_dev = np.insert(other.std_dev, other.num_scores, 0, axis=2) - other.add_score(score) + other.scores.append(score) # Add scores present in other but not in self to self for score in self_missing_scores: self._mean = np.insert(self.mean, self.num_scores, 0, axis=2) self._std_dev = np.insert(self.std_dev, self.num_scores, 0, axis=2) - self.add_score(score) + self.scores.append(score) # Align other scores with self scores for i, score in enumerate(self.scores): @@ -2210,12 +2236,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - for self_filter in self.filters: - new_tally.add_filter(self_filter) - for nuclide in self.nuclides: - new_tally.add_nuclide(nuclide) - for score in self.scores: - new_tally.add_score(score) + new_tally.filters = self.filters + new_tally.nuclides = self.nuclides + new_tally.scores = self.scores # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2284,12 +2307,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - for self_filter in self.filters: - new_tally.add_filter(self_filter) - for nuclide in self.nuclides: - new_tally.add_nuclide(nuclide) - for score in self.scores: - new_tally.add_score(score) + new_tally.filters = self.filters + new_tally.nuclides = self.nuclides + new_tally.scores = self.scores # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2359,12 +2379,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - for self_filter in self.filters: - new_tally.add_filter(self_filter) - for nuclide in self.nuclides: - new_tally.add_nuclide(nuclide) - for score in self.scores: - new_tally.add_score(score) + new_tally.filters = self.filters + new_tally.nuclides = self.nuclides + new_tally.scores = self.scores # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2434,12 +2451,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - for self_filter in self.filters: - new_tally.add_filter(self_filter) - for nuclide in self.nuclides: - new_tally.add_nuclide(nuclide) - for score in self.scores: - new_tally.add_score(score) + new_tally.filters = self.filters + new_tally.nuclides = self.nuclides + new_tally.scores = self.scores # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2513,12 +2527,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - for self_filter in self.filters: - new_tally.add_filter(self_filter) - for nuclide in self.nuclides: - new_tally.add_nuclide(nuclide) - for score in self.scores: - new_tally.add_score(score) + new_tally.filters = self.filters + new_tally.nuclides = self.nuclides + new_tally.scores = self.scores # If original tally was sparse, sparsify the exponentiated tally new_tally.sparse = self.sparse @@ -2853,11 +2864,11 @@ class Tally(object): if not remove_filter: filter_sum = \ AggregateFilter(self_filter, filter_bins, 'sum') - tally_sum.add_filter(filter_sum) + tally_sum.filters.append(filter_sum) # Add a copy of each filter not summed across to the tally sum else: - tally_sum.add_filter(copy.deepcopy(self_filter)) + tally_sum.filters.append(copy.deepcopy(self_filter)) # Add a copy of this tally's filters to the tally sum else: @@ -2875,7 +2886,7 @@ class Tally(object): # Add AggregateNuclide to the tally sum nuclide_sum = AggregateNuclide(nuclides, 'sum') - tally_sum.add_nuclide(nuclide_sum) + tally_sum.nuclides.append(nuclide_sum) # Add a copy of this tally's nuclides to the tally sum else: @@ -2893,7 +2904,7 @@ class Tally(object): # Add AggregateScore to the tally sum score_sum = AggregateScore(scores, 'sum') - tally_sum.add_score(score_sum) + tally_sum.scores.append(score_sum) # Add a copy of this tally's scores to the tally sum else: @@ -2946,7 +2957,7 @@ class Tally(object): # Add the new filter to a copy of this Tally new_tally = copy.deepcopy(self) - new_tally.add_filter(new_filter) + new_tally.filters.append(new_filter) # Determine "base" indices along the new "diagonal", and the factor # by which the "base" indices should be repeated to account for all diff --git a/openmc/trigger.py b/openmc/trigger.py index bcac8c31c..f03703328 100644 --- a/openmc/trigger.py +++ b/openmc/trigger.py @@ -1,6 +1,7 @@ from numbers import Real from xml.etree import ElementTree as ET import sys +import warnings from openmc.checkvalue import check_type, check_value @@ -8,6 +9,10 @@ if sys.version_info[0] >= 3: basestring = str +# DeprecationWarning filter for the Trigger.add_score(...) method +warnings.simplefilter('always', DeprecationWarning) + + class Trigger(object): """A criterion for when to finish a simulation based on tally uncertainties. @@ -46,9 +51,7 @@ class Trigger(object): clone._trigger_type = self._trigger_type clone._threshold = self._threshold - clone._scores = [] - for score in self._scores: - clone.add_score(score) + clone.scores = self.scores memo[id(self)] = clone @@ -97,6 +100,17 @@ class Trigger(object): check_type('tally trigger threshold', threshold, Real) self._threshold = threshold + @scores.setter + def scores(self, scores): + cv.check_type('trigger scores', scores, Iterable, basestring) + + # Set scores making sure not to have duplicates + self._scores = [] + for score in scores: + if score not in self._scores: + self._scores.append(score) + + def add_score(self, score): """Add a score to the list of scores to be checked against the trigger. @@ -107,16 +121,11 @@ class Trigger(object): """ - if not isinstance(score, basestring): - msg = 'Unable to add score "{0}" to tally trigger since ' \ - 'it is not a string'.format(score) - raise ValueError(msg) - - # If the score is already in the Tally, don't add it again - if score in self._scores: - return - else: - self._scores.append(score) + warnings.warn("Trigger.add_score(...) has been deprecated and may be " + "removed in a future version. Tally trigger scores should " + "be defined using the scores property directly.", + DeprecationWarning) + self.scores.append(score) def get_trigger_xml(self, element): """Return XML representation of the trigger diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index 9fca93bca..81e8641de 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -23,19 +23,19 @@ class TalliesTestHarness(PyAPITestHarness): azimuthal_bins = (-3.1416, -1.8850, -0.6283, 0.6283, 1.8850, 3.1416) azimuthal_filter1 = Filter(type='azimuthal', bins=azimuthal_bins) azimuthal_tally1 = Tally() - azimuthal_tally1.add_filter(azimuthal_filter1) - azimuthal_tally1.add_score('flux') + azimuthal_tally1.filters = [azimuthal_filter1] + azimuthal_tally1.scores = ['flux'] azimuthal_tally1.estimator = 'tracklength' azimuthal_tally2 = Tally() - azimuthal_tally2.add_filter(azimuthal_filter1) - azimuthal_tally2.add_score('flux') + azimuthal_tally2.filters = [azimuthal_filter1] + azimuthal_tally2.scores = ['flux'] azimuthal_tally2.estimator = 'analog' azimuthal_filter2 = Filter(type='azimuthal', bins=(5,)) azimuthal_tally3 = Tally() - azimuthal_tally3.add_filter(azimuthal_filter2) - azimuthal_tally3.add_score('flux') + azimuthal_tally3.filters = [azimuthal_filter2] + azimuthal_tally3.scores = ['flux'] azimuthal_tally3.estimator = 'tracklength' mesh_2x2 = Mesh(mesh_id=1) @@ -44,154 +44,129 @@ class TalliesTestHarness(PyAPITestHarness): mesh_2x2.dimension = [2, 2] mesh_filter = Filter(type='mesh', bins=(1,)) azimuthal_tally4 = Tally() - azimuthal_tally4.add_filter(azimuthal_filter2) - azimuthal_tally4.add_filter(mesh_filter) - azimuthal_tally4.add_score('flux') + azimuthal_tally4.filters = [azimuthal_filter2, mesh_filter] + azimuthal_tally4.scores = ['flux'] azimuthal_tally4.estimator = 'tracklength' cellborn_tally = Tally() - cellborn_tally.add_filter(Filter(type='cellborn', bins=(10, 21, 22, 23))) - cellborn_tally.add_score('total') + cellborn_tally.filters = [Filter(type='cellborn', bins=(10, 21, 22, 23))] + cellborn_tally.scores = ['total'] dg_tally = Tally() - dg_tally.add_filter(Filter(type='delayedgroup', bins=(1, 2, 3, 4, 5, 6))) - dg_tally.add_score('delayed-nu-fission') + dg_tally.filters = [Filter(type='delayedgroup', bins=(1, 2, 3, 4, 5, 6))] + dg_tally.scores = ['delayed-nu-fission'] four_groups = (0.0, 0.253e-6, 1.0e-3, 1.0, 20.0) energy_filter = Filter(type='energy', bins=four_groups) energy_tally = Tally() - energy_tally.add_filter(energy_filter) - energy_tally.add_score('total') + energy_tally.filters = [energy_filter] + energy_tally.scores = ['total'] energyout_filter = Filter(type='energyout', bins=four_groups) energyout_tally = Tally() - energyout_tally.add_filter(energyout_filter) - energyout_tally.add_score('scatter') + energyout_tally.filters = [energyout_filter] + energyout_tally.scores = ['scatter'] transfer_tally = Tally() - transfer_tally.add_filter(energy_filter) - transfer_tally.add_filter(energyout_filter) - transfer_tally.add_score('scatter') - transfer_tally.add_score('nu-fission') + transfer_tally.filters = [energy_filter, energyout_filter] + transfer_tally.scores = ['scatter', 'nu-fission'] material_tally = Tally() - material_tally.add_filter(Filter(type='material', bins=(1, 2, 3, 4))) - material_tally.add_score('total') + material_tally.filters = [Filter(type='material', bins=(1, 2, 3, 4))] + material_tally.scores = ['total'] mu_tally1 = Tally() - mu_tally1.add_filter(Filter(type='mu', bins=(-1.0, -0.5, 0.0, 0.5, 1.0))) - mu_tally1.add_score('scatter') - mu_tally1.add_score('nu-scatter') + mu_tally1.filters = [Filter(type='mu', bins=(-1.0, -0.5, 0.0, 0.5, 1.0))] + mu_tally1.scores = ['scatter', 'nu-scatter'] mu_filter = Filter(type='mu', bins=(5,)) mu_tally2 = Tally() - mu_tally2.add_filter(mu_filter) - mu_tally2.add_score('scatter') - mu_tally2.add_score('nu-scatter') + mu_tally2.filters = [mu_filter] + mu_tally2.scores = ['scatter', 'nu-scatter'] mu_tally3 = Tally() - mu_tally3.add_filter(mu_filter) - mu_tally3.add_filter(mesh_filter) - mu_tally3.add_score('scatter') - mu_tally3.add_score('nu-scatter') + mu_tally3.filters = [mu_filter, mesh_filter] + mu_tally3.scores = ['scatter', 'nu-scatter'] polar_bins = (0.0, 0.6283, 1.2566, 1.8850, 2.5132, 3.1416) polar_filter = Filter(type='polar', bins=polar_bins) polar_tally1 = Tally() - polar_tally1.add_filter(polar_filter) - polar_tally1.add_score('flux') + polar_tally1.filters = [polar_filter] + polar_tally1.scores = ['flux'] polar_tally1.estimator = 'tracklength' polar_tally2 = Tally() - polar_tally2.add_filter(polar_filter) - polar_tally2.add_score('flux') + polar_tally2.filters = [polar_filter] + polar_tally2.scores = ['flux'] polar_tally2.estimator = 'analog' polar_filter2 = Filter(type='polar', bins=(5,)) polar_tally3 = Tally() - polar_tally3.add_filter(polar_filter2) - polar_tally3.add_score('flux') + polar_tally3.filters = [polar_filter2] + polar_tally3.scores = ['flux'] polar_tally3.estimator = 'tracklength' polar_tally4 = Tally() - polar_tally4.add_filter(polar_filter2) - polar_tally4.add_filter(mesh_filter) - polar_tally4.add_score('flux') + polar_tally4.filters = [polar_filter2, mesh_filter] + polar_tally4.scores = ['flux'] polar_tally4.estimator = 'tracklength' universe_tally = Tally() - universe_tally.add_filter(Filter(type='universe', bins=(1, 2, 3, 4))) - universe_tally.add_score('total') + universe_tally.filters = [Filter(type='universe', bins=(1, 2, 3, 4))] + universe_tally.scores = ['total'] cell_filter = Filter(type='cell', bins=(10, 21, 22, 23)) score_tallies = [Tally(), Tally(), Tally()] for t in score_tallies: - t.add_filter(cell_filter) - t.add_score('absorption') - t.add_score('delayed-nu-fission') - t.add_score('events') - t.add_score('fission') - t.add_score('inverse-velocity') - t.add_score('kappa-fission') - t.add_score('(n,2n)') - t.add_score('(n,n1)') - t.add_score('(n,gamma)') - t.add_score('nu-fission') - t.add_score('scatter') - t.add_score('elastic') - t.add_score('total') + t.filters = [cell_filter] + t.scores = ['absorption', 'delayed-nu-fission', 'events', 'fission', + 'inverse-velocity', 'kappa-fission', '(n,2n)', '(n,n1)', + '(n,gamma)', 'nu-fission', 'scatter', 'elastic', 'total'] score_tallies[0].estimator = 'tracklength' score_tallies[1].estimator = 'analog' score_tallies[2].estimator = 'collision' cell_filter2 = Filter(type='cell', bins=(21, 22, 23, 27, 28, 29)) flux_tallies = [Tally() for i in range(4)] - [t.add_filter(cell_filter2) for t in flux_tallies] - flux_tallies[0].add_score('flux') - [t.add_score('flux-y5') for t in flux_tallies[1:]] + for t in flux_tallies: + t.filters = [cell_filter2] + flux_tallies[0].scores = ['flux'] + for t in flux_tallies[1:]: + t.scores = ['flux-y5'] flux_tallies[1].estimator = 'tracklength' flux_tallies[2].estimator = 'analog' flux_tallies[3].estimator = 'collision' scatter_tally1 = Tally() - scatter_tally1.add_filter(cell_filter) - scatter_tally1.add_score('scatter') - scatter_tally1.add_score('scatter-1') - scatter_tally1.add_score('scatter-2') - scatter_tally1.add_score('scatter-3') - scatter_tally1.add_score('scatter-4') - scatter_tally1.add_score('nu-scatter') - scatter_tally1.add_score('nu-scatter-1') - scatter_tally1.add_score('nu-scatter-2') - scatter_tally1.add_score('nu-scatter-3') - scatter_tally1.add_score('nu-scatter-4') + scatter_tally1.filters = [cell_filter] + scatter_tally1.scores = ['scatter', 'scatter-1', 'scatter-2', 'scatter-3', + 'scatter-4', 'nu-scatter', 'nu-scatter-1', + 'nu-scatter-2', 'nu-scatter-3', 'nu-scatter-4'] scatter_tally2 = Tally() - scatter_tally2.add_filter(cell_filter) - scatter_tally2.add_score('scatter-p4') - scatter_tally2.add_score('scatter-y4') - scatter_tally2.add_score('nu-scatter-p4') - scatter_tally2.add_score('nu-scatter-y3') + scatter_tally2.filters = [cell_filter] + scatter_tally2.scores = ['scatter-p4', 'scatter-y4', 'nu-scatter-p4', + 'nu-scatter-y3'] total_tallies = [Tally() for i in range(4)] - [t.add_filter(cell_filter) for t in total_tallies] - total_tallies[0].add_score('total') - [t.add_score('total-y4') for t in total_tallies[1:]] - [t.add_nuclide('U-235') for t in total_tallies[1:]] - [t.add_nuclide('total') for t in total_tallies[1:]] + for t in total_tallies: + t.filters = [cell_filter] + total_tallies[0].scores = ['total'] + for t in total_tallies[1:]: + t.scores = ['total-y4'] + t.nuclides = ['U-235', 'total'] total_tallies[1].estimator = 'tracklength' total_tallies[2].estimator = 'analog' total_tallies[3].estimator = 'collision' questionable_tally = Tally() - questionable_tally.add_score('transport') - questionable_tally.add_score('n1n') + questionable_tally.scores = ['transport', 'n1n'] all_nuclide_tallies = [Tally(), Tally()] for t in all_nuclide_tallies: - t.add_filter(cell_filter) - t.add_nuclide('all') - t.add_score('total') + t.filters = [cell_filter] + t.nuclides = ['all'] + t.scores = ['total'] all_nuclide_tallies[0].estimator = 'tracklength' all_nuclide_tallies[0].estimator = 'collision' diff --git a/tests/test_tally_aggregation/test_tally_aggregation.py b/tests/test_tally_aggregation/test_tally_aggregation.py index a5c8d9414..7d682b698 100644 --- a/tests/test_tally_aggregation/test_tally_aggregation.py +++ b/tests/test_tally_aggregation/test_tally_aggregation.py @@ -30,13 +30,9 @@ class TallyAggregationTestHarness(PyAPITestHarness): # Initialized the tallies tally = openmc.Tally(name='distribcell tally') - tally.add_filter(energy_filter) - tally.add_filter(distrib_filter) - tally.add_score('nu-fission') - tally.add_score('total') - tally.add_nuclide(u235) - tally.add_nuclide(u238) - tally.add_nuclide(pu239) + tally.filters = [energy_filter, distrib_filter] + tally.scores = ['nu-fission', 'total'] + tally.nuclides = [u235, u238, pu239] tallies_file.add_tally(tally) # Export tallies to file diff --git a/tests/test_tally_arithmetic/test_tally_arithmetic.py b/tests/test_tally_arithmetic/test_tally_arithmetic.py index 1954334b7..cf8d012e8 100644 --- a/tests/test_tally_arithmetic/test_tally_arithmetic.py +++ b/tests/test_tally_arithmetic/test_tally_arithmetic.py @@ -40,22 +40,15 @@ class TallyArithmeticTestHarness(PyAPITestHarness): # Initialized the tallies tally = openmc.Tally(name='tally 1') - tally.add_filter(material_filter) - tally.add_filter(energy_filter) - tally.add_filter(distrib_filter) - tally.add_score('nu-fission') - tally.add_score('total') - tally.add_nuclide(u235) - tally.add_nuclide(pu239) + tally.filters = [material_filter, energy_filter, distrib_filter] + tally.scores = ['nu-fission', 'total'] + tally.nuclides = [u235, pu239] tallies_file.add_tally(tally) tally = openmc.Tally(name='tally 2') - tally.add_filter(energy_filter) - tally.add_filter(mesh_filter) - tally.add_score('total') - tally.add_score('fission') - tally.add_nuclide(u238) - tally.add_nuclide(u235) + tally.filters = [energy_filter, mesh_filter] + tally.scores = ['total', 'fission'] + tally.nuclides = [u238, u235] tallies_file.add_tally(tally) tallies_file.add_mesh(mesh) From 72659506e06d6df8b47186e7878196b5bbb56457 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 18 Feb 2016 11:27:09 -0600 Subject: [PATCH 002/259] Use universal newlines in openmc.Executor --- openmc/executor.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openmc/executor.py b/openmc/executor.py index 58cb91246..214517d6e 100644 --- a/openmc/executor.py +++ b/openmc/executor.py @@ -27,7 +27,8 @@ class Executor(object): # Launch a subprocess to run OpenMC p = subprocess.Popen(command, shell=True, cwd=self._working_directory, - stdout=subprocess.PIPE) + stdout=subprocess.PIPE, + universal_newlines=True) # Capture and re-print OpenMC output in real-time while True: From 5fef6f4f66aed7ee26173c7e5deac96de10de2ff Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 18 Feb 2016 11:30:39 -0600 Subject: [PATCH 003/259] Remove warnings filter for DeprecationWarning --- openmc/tallies.py | 3 --- openmc/trigger.py | 4 ---- openmc/universe.py | 3 --- 3 files changed, 10 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index f471dbdf3..f938ae708 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -23,9 +23,6 @@ if sys.version_info[0] >= 3: basestring = str -# DeprecationWarning filter for the Tally.add_*(...) methods -warnings.simplefilter('always', DeprecationWarning) - # "Static" variable for auto-generated Tally IDs AUTO_TALLY_ID = 10000 diff --git a/openmc/trigger.py b/openmc/trigger.py index f03703328..ce7d432c2 100644 --- a/openmc/trigger.py +++ b/openmc/trigger.py @@ -9,10 +9,6 @@ if sys.version_info[0] >= 3: basestring = str -# DeprecationWarning filter for the Trigger.add_score(...) method -warnings.simplefilter('always', DeprecationWarning) - - class Trigger(object): """A criterion for when to finish a simulation based on tally uncertainties. diff --git a/openmc/universe.py b/openmc/universe.py index 74c438615..9a1effdde 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -16,9 +16,6 @@ if sys.version_info[0] >= 3: basestring = str -# DeprecationWarning filter for the Cell.add_surface(...) method -warnings.simplefilter('always', DeprecationWarning) - # A static variable for auto-generated Cell IDs AUTO_CELL_ID = 10000 From 1e674ebbdbc2aa7b0d3f6b1946a2e9ad4e14515a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 23 Feb 2016 09:48:42 -0600 Subject: [PATCH 004/259] Have setters for scores, nuclide, filters, and triggers expect a MutableSequence --- openmc/tallies.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index f938ae708..a808c11dc 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1,6 +1,6 @@ from __future__ import division -from collections import Iterable, defaultdict +from collections import Iterable, MutableSequence, defaultdict import copy from functools import partial import os @@ -426,7 +426,7 @@ class Tally(object): @triggers.setter def triggers(self, triggers): - cv.check_type('tally triggers', trigger, Iterable, Trigger) + cv.check_type('tally triggers', trigger, MutableSequence, Trigger) self._triggers = triggers def add_trigger(self, trigger): @@ -466,7 +466,7 @@ class Tally(object): @filters.setter def filters(self, filters): - cv.check_type('tally filters', filters, Iterable, + cv.check_type('tally filters', filters, MutableSequence, (Filter, CrossFilter, AggregateFilter)) # If the filter is already in the Tally, raise an error @@ -481,7 +481,7 @@ class Tally(object): @nuclides.setter def nuclides(self, nuclides): - cv.check_type('tally nuclides', nuclides, Iterable, + cv.check_type('tally nuclides', nuclides, MutableSequence, (basestring, Nuclide, CrossNuclide, AggregateNuclide)) # If the nuclide is already in the Tally, raise an error @@ -496,7 +496,7 @@ class Tally(object): @scores.setter def scores(self, scores): - cv.check_type('tally scores', scores, Iterable, + cv.check_type('tally scores', scores, MutableSequence, (basestring, CrossScore, AggregateScore)) for i, score in enumerate(scores[:-1]): From a4ed73fc113619269c21db6ead8b5845fde1d712 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 23 Feb 2016 10:48:47 -0600 Subject: [PATCH 005/259] Update Jupyter notebooks based on Tally property changes --- .../pythonapi/examples/mgxs-part-iii.ipynb | 5 +- .../examples/pandas-dataframes.ipynb | 22 +- .../pythonapi/examples/post-processing.ipynb | 5 +- .../pythonapi/examples/tally-arithmetic.ipynb | 455 +++++++++--------- 4 files changed, 237 insertions(+), 250 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index dcb496160..c3f19aa22 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -689,9 +689,8 @@ "\n", "# Instantiate the Tally\n", "tally = openmc.Tally(name='mesh tally')\n", - "tally.add_filter(mesh_filter)\n", - "tally.add_score('fission')\n", - "tally.add_score('nu-fission')\n", + "tally.filters = [mesh_filter]\n", + "tally.scores = ['fission', 'nu-fission']\n", "\n", "# Add mesh and Tally to TalliesFile\n", "tallies_file.add_mesh(mesh)\n", diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index ac5d4e410..85f64ff6f 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -453,10 +453,8 @@ "\n", "# Instantiate the Tally\n", "tally = openmc.Tally(name='mesh tally')\n", - "tally.add_filter(mesh_filter)\n", - "tally.add_filter(energy_filter)\n", - "tally.add_score('fission')\n", - "tally.add_score('nu-fission')\n", + "tally.filters = [mesh_filter, energy_filter]\n", + "tally.scores = ['fission', 'nu-fission']\n", "\n", "# Add mesh and Tally to TalliesFile\n", "tallies_file.add_mesh(mesh)\n", @@ -483,10 +481,9 @@ "\n", "# Instantiate the tally\n", "tally = openmc.Tally(name='cell tally')\n", - "tally.add_filter(cell_filter)\n", - "tally.add_score('scatter-y2')\n", - "tally.add_nuclide(u235)\n", - "tally.add_nuclide(u238)\n", + "tally.filters = [cell_filter]\n", + "tally.scores = ['scatter-y2']\n", + "tally.nuclides = [u235, u238]\n", "\n", "# Add mesh and tally to TalliesFile\n", "tallies_file.add_tally(tally)" @@ -512,14 +509,13 @@ "\n", "# Instantiate tally Trigger for kicks\n", "trigger = openmc.Trigger(trigger_type='std_dev', threshold=5e-5)\n", - "trigger.add_score('absorption')\n", + "trigger.scores = ['absorption']\n", "\n", "# Instantiate the Tally\n", "tally = openmc.Tally(name='distribcell tally')\n", - "tally.add_filter(distribcell_filter)\n", - "tally.add_score('absorption')\n", - "tally.add_score('scatter')\n", - "tally.add_trigger(trigger)\n", + "tally.filters = [distribcell_filter]\n", + "tally.scores = ['absorption', 'scatter']\n", + "tally.triggers = [trigger]\n", "\n", "# Add mesh and tally to TalliesFile\n", "tallies_file.add_tally(tally)" diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 7fbca6864..6526f0307 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -408,9 +408,8 @@ "\n", "# Create mesh tally to score flux and fission rate\n", "tally = openmc.Tally(name='flux')\n", - "tally.add_filter(mesh_filter)\n", - "tally.add_score('flux')\n", - "tally.add_score('fission')\n", + "tally.filters = [mesh_filter]\n", + "tally.scores = ['flux', 'fission']\n", "tallies_file.add_tally(tally)" ] }, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 3a61b0979..d1325e487 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -418,29 +418,25 @@ "\n", "# Instantiate flux Tally in moderator and fuel\n", "tally = openmc.Tally(name='flux')\n", - "tally.add_filter(openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]))\n", - "tally.add_filter(energy_filter)\n", - "tally.add_score('flux')\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]),\n", + " energy_filter]\n", + "tally.scores = ['flux']\n", "tallies_file.add_tally(tally)\n", "\n", "# Instantiate reaction rate Tally in fuel\n", "tally = openmc.Tally(name='fuel rxn rates')\n", - "tally.add_filter(openmc.Filter(type='cell', bins=[fuel_cell.id]))\n", - "tally.add_filter(energy_filter)\n", - "tally.add_score('nu-fission')\n", - "tally.add_score('scatter')\n", - "tally.add_nuclide(u238)\n", - "tally.add_nuclide(u235)\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id]),\n", + " energy_filter]\n", + "tally.scores = ['nu-fission', 'scatter']\n", + "tally.nuclides = [u238, u235]\n", "tallies_file.add_tally(tally)\n", "\n", "# Instantiate reaction rate Tally in moderator\n", "tally = openmc.Tally(name='moderator rxn rates')\n", - "tally.add_filter(openmc.Filter(type='cell', bins=[moderator_cell.id]))\n", - "tally.add_filter(energy_filter)\n", - "tally.add_score('absorption')\n", - "tally.add_score('total')\n", - "tally.add_nuclide(o16)\n", - "tally.add_nuclide(h1)\n", + "tally.filters = [openmc.Filter(type='cell', bins=[moderator_cell.id])]\n", + "tally.filters.append(energy_filter)\n", + "tally.scores = ['absorption', 'total']\n", + "tally.nuclides = [o16, h1]\n", "tallies_file.add_tally(tally)" ] }, @@ -455,8 +451,8 @@ "# K-Eigenvalue (infinity) tallies\n", "fiss_rate = openmc.Tally(name='fiss. rate')\n", "abs_rate = openmc.Tally(name='abs. rate')\n", - "fiss_rate.add_score('nu-fission')\n", - "abs_rate.add_score('absorption')\n", + "fiss_rate.scores = ['nu-fission']\n", + "abs_rate.scores = ['absorption']\n", "tallies_file.add_tally(fiss_rate)\n", "tallies_file.add_tally(abs_rate)" ] @@ -471,8 +467,8 @@ "source": [ "# Resonance Escape Probability tallies\n", "therm_abs_rate = openmc.Tally(name='therm. abs. rate')\n", - "therm_abs_rate.add_score('absorption')\n", - "therm_abs_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625e-6]))\n", + "therm_abs_rate.scores = ['absorption']\n", + "therm_abs_rate.filters = [openmc.Filter(type='energy', bins=[0., 0.625e-6])]\n", "tallies_file.add_tally(therm_abs_rate)" ] }, @@ -486,9 +482,9 @@ "source": [ "# Thermal Flux Utilization tallies\n", "fuel_therm_abs_rate = openmc.Tally(name='fuel therm. abs. rate')\n", - "fuel_therm_abs_rate.add_score('absorption')\n", - "fuel_therm_abs_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625e-6]))\n", - "fuel_therm_abs_rate.add_filter(openmc.Filter(type='cell', bins=[fuel_cell.id]))\n", + "fuel_therm_abs_rate.scores = ['absorption']\n", + "fuel_therm_abs_rate.filters = [openmc.Filter(type='energy', bins=[0., 0.625e-6]),\n", + " openmc.Filter(type='cell', bins=[fuel_cell.id])]\n", "tallies_file.add_tally(fuel_therm_abs_rate)" ] }, @@ -502,8 +498,8 @@ "source": [ "# Fast Fission Factor tallies\n", "therm_fiss_rate = openmc.Tally(name='therm. fiss. rate')\n", - "therm_fiss_rate.add_score('nu-fission')\n", - "therm_fiss_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625e-6]))\n", + "therm_fiss_rate.scores = ['nu-fission']\n", + "therm_fiss_rate.filters = [openmc.Filter(type='energy', bins=[0., 0.625e-6])]\n", "tallies_file.add_tally(therm_fiss_rate)" ] }, @@ -520,12 +516,10 @@ "\n", "# Instantiate flux Tally in moderator and fuel\n", "tally = openmc.Tally(name='need-to-slice')\n", - "tally.add_filter(openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]))\n", - "tally.add_filter(energy_filter)\n", - "tally.add_score('nu-fission')\n", - "tally.add_score('scatter')\n", - "tally.add_nuclide(h1)\n", - "tally.add_nuclide(u238)\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]),\n", + " energy_filter]\n", + "tally.scores = ['nu-fission', 'scatter']\n", + "tally.nuclides = [h1, u238]\n", "tallies_file.add_tally(tally)" ] }, @@ -533,7 +527,7 @@ "cell_type": "code", "execution_count": 22, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -576,9 +570,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-07 16:05:17\n", - " MPI Processes: 1\n", + " Git SHA1: b9efc990c7eb58f4a41524d59ae73396c9929436\n", + " Date/Time: 2016-02-23 10:52:44\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -634,20 +627,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.4700E-01 seconds\n", - " Reading cross sections = 9.1000E-02 seconds\n", - " Total time in simulation = 7.3920E+00 seconds\n", - " Time in transport only = 7.3820E+00 seconds\n", - " Time in inactive batches = 1.0930E+00 seconds\n", - " Time in active batches = 6.2990E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Total time for initialization = 8.4700E-01 seconds\n", + " Reading cross sections = 5.8300E-01 seconds\n", + " Total time in simulation = 1.6037E+01 seconds\n", + " Time in transport only = 1.6026E+01 seconds\n", + " Time in inactive batches = 2.3070E+00 seconds\n", + " Time in active batches = 1.3730E+01 seconds\n", + " Time synchronizing fission bank = 5.0000E-03 seconds\n", + " Sampling source sites = 4.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 7.7510E+00 seconds\n", - " Calculation Rate (inactive) = 11436.4 neutrons/second\n", - " Calculation Rate (active) = 5953.33 neutrons/second\n", + " Total time for finalization = 3.0000E-03 seconds\n", + " Total time elapsed = 1.6899E+01 seconds\n", + " Calculation Rate (inactive) = 5418.29 neutrons/second\n", + " Calculation Rate (active) = 2731.25 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -759,10 +752,10 @@ " \n", " \n", " 0\n", - " total\n", - " (nu-fission / absorption)\n", - " 1.040166\n", - " 0.009069\n", + " total\n", + " (nu-fission / absorption)\n", + " 1.040166\n", + " 0.009069\n", " \n", " \n", "\n", @@ -821,12 +814,12 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", - " total\n", - " absorption\n", - " 0.694707\n", - " 0.006699\n", + " 0\n", + " 0.000001\n", + " total\n", + " absorption\n", + " 0.694707\n", + " 0.006699\n", " \n", " \n", "\n", @@ -883,12 +876,12 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", - " total\n", - " nu-fission\n", - " 1.201216\n", - " 0.012288\n", + " 0\n", + " 0.000001\n", + " total\n", + " nu-fission\n", + " 1.201216\n", + " 0.012288\n", " \n", " \n", "\n", @@ -947,13 +940,13 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", - " 10000\n", - " total\n", - " absorption\n", - " 0.74925\n", - " 0.008257\n", + " 0\n", + " 0.000001\n", + " 10000\n", + " total\n", + " absorption\n", + " 0.74925\n", + " 0.008257\n", " \n", " \n", "\n", @@ -1013,13 +1006,13 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", - " 10000\n", - " total\n", - " (nu-fission / absorption)\n", - " 1.663616\n", - " 0.018624\n", + " 0\n", + " 0.000001\n", + " 10000\n", + " total\n", + " (nu-fission / absorption)\n", + " 1.663616\n", + " 0.018624\n", " \n", " \n", "\n", @@ -1078,13 +1071,13 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", - " 10000\n", - " total\n", - " (((absorption * nu-fission) * absorption) * (n...\n", - " 1.040166\n", - " 0.021928\n", + " 0\n", + " 0.000001\n", + " 10000\n", + " total\n", + " (((absorption * nu-fission) * absorption) * (n...\n", + " 1.040166\n", + " 0.021928\n", " \n", " \n", "\n", @@ -1160,83 +1153,83 @@ " \n", " \n", " 0\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " (U-238 / total)\n", - " (nu-fission / flux)\n", - " 0.000001\n", - " 7.377419e-09\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-238 / total)\n", + " (nu-fission / flux)\n", + " 0.000001\n", + " 7.377419e-09\n", " \n", " \n", " 1\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " (U-238 / total)\n", - " (scatter / flux)\n", - " 0.209989\n", - " 2.303838e-03\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-238 / total)\n", + " (scatter / flux)\n", + " 0.209989\n", + " 2.303838e-03\n", " \n", " \n", " 2\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " (U-235 / total)\n", - " (nu-fission / flux)\n", - " 0.356420\n", - " 3.951669e-03\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-235 / total)\n", + " (nu-fission / flux)\n", + " 0.356420\n", + " 3.951669e-03\n", " \n", " \n", " 3\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " (U-235 / total)\n", - " (scatter / flux)\n", - " 0.005555\n", - " 6.101004e-05\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-235 / total)\n", + " (scatter / flux)\n", + " 0.005555\n", + " 6.101004e-05\n", " \n", " \n", " 4\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " (U-238 / total)\n", - " (nu-fission / flux)\n", - " 0.007155\n", - " 8.053460e-05\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-238 / total)\n", + " (nu-fission / flux)\n", + " 0.007155\n", + " 8.053460e-05\n", " \n", " \n", " 5\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " (U-238 / total)\n", - " (scatter / flux)\n", - " 0.227770\n", - " 1.079289e-03\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-238 / total)\n", + " (scatter / flux)\n", + " 0.227770\n", + " 1.079289e-03\n", " \n", " \n", " 6\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " (U-235 / total)\n", - " (nu-fission / flux)\n", - " 0.008067\n", - " 5.254797e-05\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-235 / total)\n", + " (nu-fission / flux)\n", + " 0.008067\n", + " 5.254797e-05\n", " \n", " \n", " 7\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " (U-235 / total)\n", - " (scatter / flux)\n", - " 0.003367\n", - " 1.647058e-05\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-235 / total)\n", + " (scatter / flux)\n", + " 0.003367\n", + " 1.647058e-05\n", " \n", " \n", "\n", @@ -1395,43 +1388,43 @@ " \n", " \n", " 0\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " U-238\n", - " nu-fission\n", - " 0.000002\n", - " 1.283958e-08\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " U-238\n", + " nu-fission\n", + " 0.000002\n", + " 1.283958e-08\n", " \n", " \n", " 1\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " U-235\n", - " nu-fission\n", - " 0.868553\n", - " 6.880390e-03\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " U-235\n", + " nu-fission\n", + " 0.868553\n", + " 6.880390e-03\n", " \n", " \n", " 2\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " U-238\n", - " nu-fission\n", - " 0.082149\n", - " 8.837250e-04\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " U-238\n", + " nu-fission\n", + " 0.082149\n", + " 8.837250e-04\n", " \n", " \n", " 3\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " U-235\n", - " nu-fission\n", - " 0.092618\n", - " 5.195308e-04\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " U-235\n", + " nu-fission\n", + " 0.092618\n", + " 5.195308e-04\n", " \n", " \n", "\n", @@ -1489,93 +1482,93 @@ " \n", " \n", " 0\n", - " 10002\n", - " 1.000000e-08\n", - " 0.000000\n", - " H-1\n", - " scatter\n", - " 4.619398\n", - " 0.040124\n", + " 10002\n", + " 1.000000e-08\n", + " 0.000000\n", + " H-1\n", + " scatter\n", + " 4.619398\n", + " 0.040124\n", " \n", " \n", " 1\n", - " 10002\n", - " 1.080060e-07\n", - " 0.000001\n", - " H-1\n", - " scatter\n", - " 2.030757\n", - " 0.011239\n", + " 10002\n", + " 1.080060e-07\n", + " 0.000001\n", + " H-1\n", + " scatter\n", + " 2.030757\n", + " 0.011239\n", " \n", " \n", " 2\n", - " 10002\n", - " 1.166529e-06\n", - " 0.000013\n", - " H-1\n", - " scatter\n", - " 1.658488\n", - " 0.009777\n", + " 10002\n", + " 1.166529e-06\n", + " 0.000013\n", + " H-1\n", + " scatter\n", + " 1.658488\n", + " 0.009777\n", " \n", " \n", " 3\n", - " 10002\n", - " 1.259921e-05\n", - " 0.000136\n", - " H-1\n", - " scatter\n", - " 1.853002\n", - " 0.007378\n", + " 10002\n", + " 1.259921e-05\n", + " 0.000136\n", + " H-1\n", + " scatter\n", + " 1.853002\n", + " 0.007378\n", " \n", " \n", " 4\n", - " 10002\n", - " 1.360790e-04\n", - " 0.001470\n", - " H-1\n", - " scatter\n", - " 2.050773\n", - " 0.012484\n", + " 10002\n", + " 1.360790e-04\n", + " 0.001470\n", + " H-1\n", + " scatter\n", + " 2.050773\n", + " 0.012484\n", " \n", " \n", " 5\n", - " 10002\n", - " 1.469734e-03\n", - " 0.015874\n", - " H-1\n", - " scatter\n", - " 2.131759\n", - " 0.007821\n", + " 10002\n", + " 1.469734e-03\n", + " 0.015874\n", + " H-1\n", + " scatter\n", + " 2.131759\n", + " 0.007821\n", " \n", " \n", " 6\n", - " 10002\n", - " 1.587401e-02\n", - " 0.171449\n", - " H-1\n", - " scatter\n", - " 2.213710\n", - " 0.015159\n", + " 10002\n", + " 1.587401e-02\n", + " 0.171449\n", + " H-1\n", + " scatter\n", + " 2.213710\n", + " 0.015159\n", " \n", " \n", " 7\n", - " 10002\n", - " 1.714488e-01\n", - " 1.851749\n", - " H-1\n", - " scatter\n", - " 2.011925\n", - " 0.009406\n", + " 10002\n", + " 1.714488e-01\n", + " 1.851749\n", + " H-1\n", + " scatter\n", + " 2.011925\n", + " 0.009406\n", " \n", " \n", " 8\n", - " 10002\n", - " 1.851749e+00\n", - " 20.000000\n", - " H-1\n", - " scatter\n", - " 0.371280\n", - " 0.003949\n", + " 10002\n", + " 1.851749e+00\n", + " 20.000000\n", + " H-1\n", + " scatter\n", + " 0.371280\n", + " 0.003949\n", " \n", " \n", "\n", From 2f3059930d15684c400893dad092d9d9e59c9870 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 23 Feb 2016 11:05:15 -0600 Subject: [PATCH 006/259] Add note about deprecation of add_ methods in documentation --- openmc/tallies.py | 16 ++++++++++++++++ openmc/universe.py | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/openmc/tallies.py b/openmc/tallies.py index a808c11dc..343062aa8 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -432,6 +432,10 @@ class Tally(object): def add_trigger(self, trigger): """Add a tally trigger to the tally + .. deprecated:: 0.8 + Use the Tally.triggers property directly, i.e., + Tally.triggers.append(...) + Parameters ---------- trigger : openmc.trigger.Trigger @@ -516,6 +520,10 @@ class Tally(object): def add_filter(self, new_filter): """Add a filter to the tally + .. deprecated:: 0.8 + Use the Tally.filters property directly, i.e., + Tally.filters.append(...) + Parameters ---------- new_filter : Filter, CrossFilter or AggregateFilter @@ -537,6 +545,10 @@ class Tally(object): def add_nuclide(self, nuclide): """Specify that scores for a particular nuclide should be accumulated + .. deprecated:: 0.8 + Use the Tally.nuclides property directly, i.e., + Tally.nuclides.append(...) + Parameters ---------- nuclide : str, Nuclide, CrossNuclide or AggregateNuclide @@ -558,6 +570,10 @@ class Tally(object): def add_score(self, score): """Specify a quantity to be scored + .. deprecated:: 0.8 + Use the Tally.scores property directly, i.e., + Tally.scores.append(...) + Parameters ---------- score : str, CrossScore or AggregateScore diff --git a/openmc/universe.py b/openmc/universe.py index 9a1effdde..1729aa7e2 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -257,6 +257,10 @@ class Cell(object): """Add a half-space to the list of half-spaces whose intersection defines the cell. + .. deprecated:: 0.7.1 + Use the Cell.region property to directly specify a Region + expression. + Parameters ---------- surface : openmc.surface.Surface From 910bd62b1f693664eeb00f8a6c885fe5e15c63dd Mon Sep 17 00:00:00 2001 From: jingang Date: Mon, 29 Feb 2016 15:11:28 -0500 Subject: [PATCH 007/259] A new, simpler LCG approach (by Sterling) to re-use random number for calculating URR cross sections Xi(URR) = skipping ahead 'ZZAAA'(zaid) times from the seed 'xs_seed' + 'ZZAAA' where 'xs_seed' a copy of normal tracking prn seed but updated until the particle undergoes a scattering event. A global variable xs_seed is added in this implementation --- src/cross_section.F90 | 30 ++++++++++-------------------- src/global.F90 | 8 ++++++++ src/random_lcg.F90 | 22 +++++++++++++++++++++- src/tracking.F90 | 13 +++++++++++-- 4 files changed, 50 insertions(+), 23 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 4f5d2252c..b4de32d08 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -10,7 +10,7 @@ module cross_section use material_header, only: Material use nuclide_header use particle_header, only: Particle - use random_lcg, only: prn + use random_lcg, only: prn, prn_ahead use sab_header, only: SAlphaBeta use search, only: binary_search @@ -365,7 +365,6 @@ contains real(8) :: capture ! (n,gamma) cross section real(8) :: fission ! fission cross section real(8) :: inelastic ! inelastic cross section - logical :: same_nuc ! do we know the xs for this nuclide at this energy? type(UrrData), pointer :: urr type(NuclideCE), pointer :: nuc @@ -388,24 +387,15 @@ contains ! sample probability table using the cumulative distribution - ! if we're dealing with a nuclide that we've previously encountered at - ! this energy but a different temperature, use the original random number to - ! preserve correlation of temperature in probability tables - same_nuc = .false. - do i = 1, nuc % nuc_list % size() - if (E /= ZERO .and. E == micro_xs(nuc % nuc_list % data(i)) % last_E) then - same_nuc = .true. - same_nuc_idx = i - exit - end if - end do - - if (same_nuc) then - r = micro_xs(nuc % nuc_list % data(same_nuc_idx)) % last_prn - else - r = prn() - micro_xs(i_nuclide) % last_prn = r - end if + ! random numbers for xs calculation are sampled in a way separate from + ! tracking. 'xs_seed' is a copy of normal tracking prn seed but updated + ! until the particle undergoes a scattering event. Random number is + ! calculated by skipping ahead 'ZZAAA'(zaid) times from the seed + ! 'xs_seed' + 'ZZAAA'. + ! This guarantees the randomness and, at the same time, makes sure we reuse + ! random number for the same nuclide at different temperatures, therefore + ! preserving correlation of temperature in probability tables. + r = prn_ahead(int(nuc % zaid, 8), xs_seed + nuc % zaid) i_low = 1 do diff --git a/src/global.F90 b/src/global.F90 index 2abbe4212..9f5bd6567 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -104,6 +104,14 @@ module global ! What to assume for expanding natural elements integer :: default_expand = ENDF_BVII1 + ! Random number seed for cross sections, specially for URR ptables + ! This number is copied from normal tracking random number sequence but + ! updated until the particle undergoes a scattering event. It is shared for + ! all nuclides. + integer(8) :: xs_seed = 1_8 + +!$omp threadprivate(xs_seed) + ! ============================================================================ ! MULTI-GROUP CROSS SECTION RELATED VARIABLES diff --git a/src/random_lcg.F90 b/src/random_lcg.F90 index 8f50477c5..1e92fa6ce 100644 --- a/src/random_lcg.F90 +++ b/src/random_lcg.F90 @@ -11,7 +11,7 @@ module random_lcg integer(8), public :: seed = 1_8 integer(8) :: prn_seed0 ! original seed - integer(8) :: prn_seed(N_STREAMS) ! current seed + integer(8), public :: prn_seed(N_STREAMS) ! current seed integer(8) :: prn_mult ! multiplication factor, g integer(8) :: prn_add ! additive factor, c integer :: prn_bits ! number of bits, M @@ -24,6 +24,7 @@ module random_lcg !$omp threadprivate(prn_seed, stream) public :: prn + public :: prn_ahead public :: initialize_prng public :: set_particle_seed public :: prn_skip @@ -52,6 +53,25 @@ contains end function prn +!=============================================================================== +! PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from a +! specific seed. This function does not changed current LCG status. +!=============================================================================== + + function prn_ahead(n, seed) result(pseudo_rn) + + integer(8), intent(in) :: n ! number of prns to skip + integer(8), intent(in) :: seed ! starting seed + + real(8) :: pseudo_rn + + ! prn_skip_ahead(n, seed) return the new seed S(n) + ! Xi(n) = S(n) / M + + pseudo_rn = prn_skip_ahead(n, seed) * prn_norm + + end function prn_ahead + !=============================================================================== ! INITIALIZE_PRNG sets up the random number generator, determining the seed and ! values for g, c, and m. diff --git a/src/tracking.F90 b/src/tracking.F90 index e634112bc..b17f8ba59 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -1,6 +1,6 @@ module tracking - use constants, only: MODE_EIGENVALUE + use constants, only: MODE_EIGENVALUE, STREAM_TRACKING use cross_section, only: calculate_xs use error, only: fatal_error, warning use geometry, only: find_cell, distance_to_boundary, cross_surface, & @@ -12,7 +12,7 @@ module tracking use particle_header, only: LocalCoord, Particle use physics, only: collision use physics_mg, only: collision_mg - use random_lcg, only: prn + use random_lcg, only: prn, prn_seed use string, only: to_str use tally, only: score_analog_tally, score_tracklength_tally, & score_collision_tally, score_surface_current @@ -59,6 +59,9 @@ contains micro_xs % last_E = ZERO end if + ! Set xs_seed to be current tracking prn seed + xs_seed = prn_seed(STREAM_TRACKING) + ! Prepare to write out particle track. if (p % write_track) then call initialize_particle_track() @@ -197,6 +200,9 @@ contains ! re-evaluated p % last_material = NONE + ! Update xs_seed to be current tracking seed after a collision + if (p % E /= p % last_E) xs_seed = prn_seed(STREAM_TRACKING) + ! Set all uvws to base level -- right now, after a collision, only the ! base level uvws are changed do j = 1, p % n_coord - 1 @@ -227,6 +233,9 @@ contains p % n_secondary = p % n_secondary - 1 n_event = 0 + ! Set xs_seed to be current tracking prn seed for new particle + xs_seed = prn_seed(STREAM_TRACKING) + ! Enter new particle in particle track file if (p % write_track) call add_particle_track() else From 32bf38953d8ac986afbf8acabd963d7af57295dd Mon Sep 17 00:00:00 2001 From: jingang Date: Mon, 29 Feb 2016 21:24:08 -0500 Subject: [PATCH 008/259] Remove the old approach (mainly introduced in pull request #282) https://github.com/mit-crpg/openmc/pull/282 --- src/ace.F90 | 22 ---------------------- src/initialize.F90 | 11 ++--------- src/mgxs_data.F90 | 22 ---------------------- src/nuclide_header.F90 | 4 ---- 4 files changed, 2 insertions(+), 57 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index 5012c9b88..fbc1b7ee7 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -1667,26 +1667,4 @@ contains end function get_real -!=============================================================================== -! SAME_NUCLIDE_LIST creates a linked list for each nuclide containing the -! indices in the nuclides array of all other instances of that nuclide. For -! example, the same nuclide may exist at multiple temperatures resulting -! in multiple entries in the nuclides array for a single zaid number. -!=============================================================================== - - subroutine same_nuclide_list() - - integer :: i ! index in nuclides array - integer :: j ! index in nuclides array - - do i = 1, n_nuclides_total - do j = 1, n_nuclides_total - if (nuclides(i) % zaid == nuclides(j) % zaid) then - call nuclides(i) % nuc_list % push_back(j) - end if - end do - end do - - end subroutine same_nuclide_list - end module ace diff --git a/src/initialize.F90 b/src/initialize.F90 index 52853f72f..09bedb138 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -1,6 +1,6 @@ module initialize - use ace, only: read_ace_xs, same_nuclide_list + use ace, only: read_ace_xs use bank_header, only: Bank use constants use dict_header, only: DictIntInt, ElemKeyValueII @@ -16,7 +16,7 @@ module initialize hdf5_tallyresult_t, hdf5_integer8_t use input_xml, only: read_input_xml, cells_in_univ_dict, read_plots_xml use material_header, only: Material - use mgxs_data, only: read_mgxs, same_NuclideMG_list, create_macro_xs + use mgxs_data, only: read_mgxs, create_macro_xs use output, only: title, header, print_version, write_message, & print_usage, write_xs_summary, print_plot use random_lcg, only: initialize_prng @@ -122,13 +122,6 @@ contains end if call time_read_xs%stop() - ! Create linked lists for multiple instances of the same nuclide - if (run_CE) then - call same_nuclide_list() - else - call same_nuclidemg_list() - end if - ! Construct information needed for nuclear data if (run_CE) then ! Construct unionized or log energy grid for cross-sections diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 796269151..08941870c 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -161,28 +161,6 @@ contains end subroutine read_mgxs -!=============================================================================== -! SAME_NUCLIDEMG_LIST creates a linked list for each nuclide containing the -! indices in the nuclides array of all other instances of that nuclide. For -! example, the same nuclide may exist at multiple temperatures resulting -! in multiple entries in the nuclides array for a single zaid number. -!=============================================================================== - - subroutine same_nuclidemg_list() - - integer :: i ! index in nuclides array - integer :: j ! index in nuclides array - - do i = 1, n_nuclides_total - do j = 1, n_nuclides_total - if (nuclides_MG(i) % obj % zaid == nuclides_MG(j) % obj % zaid) then - call nuclides_MG(i) % obj % nuc_list % push_back(j) - end if - end do - end do - - end subroutine same_nuclidemg_list - !=============================================================================== ! CREATE_MACRO_XS generates the macroscopic x/s from the microscopic input data !=============================================================================== diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 43fea77b6..c6cf583f2 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -26,9 +26,6 @@ module nuclide_header integer :: listing ! index in xs_listings real(8) :: kT ! temperature in MeV (k*T) - ! Linked list of indices in nuclides array of instances of this same nuclide - type(VectorInt) :: nuc_list - ! Fission information logical :: fissionable ! nuclide is fissionable? @@ -257,7 +254,6 @@ module nuclide_header ! Information for URR probability table use logical :: use_ptable ! in URR range with probability tables? - real(8) :: last_prn end type NuclideMicroXS !=============================================================================== From 364b30ee2d9556b825fb01a61124421e42b76677 Mon Sep 17 00:00:00 2001 From: jingang Date: Tue, 1 Mar 2016 17:01:45 -0500 Subject: [PATCH 009/259] Update skip ahead scheme to guarantee no repeat of random number --- src/cross_section.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index b4de32d08..f059c9c07 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -390,12 +390,12 @@ contains ! random numbers for xs calculation are sampled in a way separate from ! tracking. 'xs_seed' is a copy of normal tracking prn seed but updated ! until the particle undergoes a scattering event. Random number is - ! calculated by skipping ahead 'ZZAAA'(zaid) times from the seed + ! calculated by skipping ahead 'xs_seed + ZZAAA'(zaid) times from the seed ! 'xs_seed' + 'ZZAAA'. ! This guarantees the randomness and, at the same time, makes sure we reuse ! random number for the same nuclide at different temperatures, therefore ! preserving correlation of temperature in probability tables. - r = prn_ahead(int(nuc % zaid, 8), xs_seed + nuc % zaid) + r = prn_ahead(xs_seed + nuc % zaid, xs_seed + nuc % zaid) i_low = 1 do From 4686a4ce888ae528ee967bc4bf95fcd5b9697d29 Mon Sep 17 00:00:00 2001 From: jingang Date: Tue, 1 Mar 2016 18:14:31 -0500 Subject: [PATCH 010/259] Updated regress tests as the new URR sampling approach changed the results --- .../test_asymmetric_lattice/results_true.dat | 2 +- tests/test_cmfd_feed/results_true.dat | 500 +-- tests/test_cmfd_nofeed/results_true.dat | 498 +-- tests/test_complex_cell/results_true.dat | 18 +- .../results_true.dat | 6 +- tests/test_density/results_true.dat | 2 +- tests/test_distribmat/results_true.dat | 2 +- .../results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_energy_grid/results_true.dat | 2 +- tests/test_energy_laws/results_true.dat | 2 +- tests/test_entropy/results_true.dat | 22 +- .../case-1/results_true.dat | 20 +- .../case-2/results_true.dat | 16 +- .../case-3/results_true.dat | 2 +- .../case-4/results_true.dat | 28 +- tests/test_filter_mesh_2d/results_true.dat | 672 +-- tests/test_filter_mesh_3d/results_true.dat | 1958 ++++----- tests/test_fixed_source/results_true.dat | 8 +- tests/test_infinite_cell/results_true.dat | 2 +- tests/test_lattice/results_true.dat | 2 +- tests/test_lattice_hex/results_true.dat | 2 +- tests/test_lattice_mixed/results_true.dat | 2 +- tests/test_lattice_multiple/results_true.dat | 2 +- .../results_true.dat | 40 +- .../results_true.dat | 8 +- tests/test_mgxs_library_hdf5/results_true.dat | 90 +- .../results_true.dat | 92 +- .../results_true.dat | 730 ++-- tests/test_natural_element/results_true.dat | 2 +- tests/test_output/results_true.dat | 2 +- .../results_true.dat | 10 +- .../test_particle_restart_eigval.py | 2 +- tests/test_quadric_surfaces/results_true.dat | 2 +- tests/test_reflective_plane/results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_rotation/results_true.dat | 2 +- tests/test_salphabeta/results_true.dat | 2 +- tests/test_score_current/results_true.dat | 2 +- tests/test_seed/results_true.dat | 2 +- tests/test_source/results_true.dat | 2 +- tests/test_source_file/results_true.dat | 2 +- .../test_sourcepoint_latest/results_true.dat | 2 +- .../test_sourcepoint_restart/results_true.dat | 3804 ++++++++--------- tests/test_statepoint_batch/results_true.dat | 2 +- .../test_statepoint_interval/results_true.dat | 2 +- .../test_statepoint_restart/results_true.dat | 3804 ++++++++--------- .../results_true.dat | 2 +- tests/test_survival_biasing/results_true.dat | 34 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +- tests/test_tally_assumesep/results_true.dat | 14 +- tests/test_tally_nuclides/results_true.dat | 50 +- tests/test_trace/results_true.dat | 2 +- tests/test_translation/results_true.dat | 2 +- .../results_true.dat | 50 +- .../test_trigger_batch_interval.py | 2 +- .../results_true.dat | 50 +- .../test_trigger_no_batch_interval.py | 2 +- tests/test_trigger_no_status/results_true.dat | 50 +- tests/test_trigger_tallies/results_true.dat | 50 +- tests/test_uniform_fs/results_true.dat | 2 +- .../test_union_energy_grids/results_true.dat | 2 +- tests/test_universe/results_true.dat | 2 +- tests/test_void/results_true.dat | 2 +- 66 files changed, 6454 insertions(+), 6454 deletions(-) diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index ec4b88388..8b861fea3 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -b5f96919ca474cd1c9c9d0acde3b8aac4a1cf636443c72a38b6c5a4221a8ce3e90182aaef2f664e44b9175ca257a89db2328b63e19388ee0e5006de4b3d92ce6 \ No newline at end of file +ed3818f25cb19b957222c3b6f02d3d96a0646c5264903da07c25547bb9035d5283f7719e6af564d7b9e2d56d95070f1a3ca7b2eda9092058b8390ca484ea3e33 \ No newline at end of file diff --git a/tests/test_cmfd_feed/results_true.dat b/tests/test_cmfd_feed/results_true.dat index 9c109db6a..e27093930 100644 --- a/tests/test_cmfd_feed/results_true.dat +++ b/tests/test_cmfd_feed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.168349E+00 1.145333E-02 +1.166652E+00 1.018306E-02 tally 1: -1.167844E+01 -1.366808E+01 -2.141846E+01 -4.598143E+01 -2.928738E+01 -8.615095E+01 -3.513015E+01 -1.241914E+02 -3.715164E+01 -1.384553E+02 -3.639309E+01 -1.327919E+02 -3.370872E+01 -1.138391E+02 -2.875251E+01 -8.292323E+01 -2.117740E+01 -4.512961E+01 -1.130554E+01 -1.289872E+01 +1.182022E+01 +1.405442E+01 +2.218673E+01 +4.943577E+01 +2.893897E+01 +8.398894E+01 +3.440863E+01 +1.184768E+02 +3.720329E+01 +1.385691E+02 +3.715391E+01 +1.384461E+02 +3.433438E+01 +1.180609E+02 +2.934569E+01 +8.617544E+01 +2.096787E+01 +4.419802E+01 +1.199678E+01 +1.446718E+01 tally 2: -2.339531E+01 -2.755922E+01 -1.646762E+01 -1.365289E+01 -2.146174E+00 -2.369613E-01 -4.309769E+01 -9.312913E+01 -3.054873E+01 -4.681242E+01 -4.076365E+00 -8.462370E-01 -5.840647E+01 -1.715260E+02 -4.161366E+01 -8.713062E+01 -5.382541E+00 -1.473814E+00 -6.927641E+01 -2.411359E+02 -4.943841E+01 -1.228850E+02 -6.282202E+00 -1.990021E+00 -7.308593E+01 -2.678848E+02 -5.202069E+01 -1.357621E+02 -6.826145E+00 -2.353974E+00 -7.117026E+01 -2.543546E+02 -5.068896E+01 -1.290261E+02 -6.342979E+00 -2.033850E+00 -6.615720E+01 -2.193712E+02 -4.725156E+01 -1.119514E+02 -6.024815E+00 -1.833752E+00 -5.738164E+01 -1.651944E+02 -4.081217E+01 -8.360122E+01 -5.326191E+00 -1.435896E+00 -4.208669E+01 -8.911740E+01 -2.994944E+01 -4.517409E+01 -3.905846E+00 -7.855247E-01 -2.273578E+01 -2.615080E+01 -1.603853E+01 -1.303560E+01 -2.160924E+00 -2.473278E-01 +2.306034E+01 +2.682494E+01 +1.611671E+01 +1.310632E+01 +2.197367E+00 +2.477887E-01 +4.203949E+01 +8.913100E+01 +2.976604E+01 +4.469984E+01 +4.006763E+00 +8.150909E-01 +5.779747E+01 +1.677749E+02 +4.095248E+01 +8.422524E+01 +5.363780E+00 +1.449264E+00 +6.807553E+01 +2.321452E+02 +4.845787E+01 +1.176610E+02 +6.171810E+00 +1.923022E+00 +7.340764E+01 +2.699083E+02 +5.221062E+01 +1.365619E+02 +6.847946E+00 +2.384879E+00 +7.293589E+01 +2.670385E+02 +5.179311E+01 +1.347019E+02 +6.772230E+00 +2.324004E+00 +6.790926E+01 +2.314671E+02 +4.827712E+01 +1.170966E+02 +6.209376E+00 +1.944617E+00 +5.892254E+01 +1.739942E+02 +4.193348E+01 +8.817331E+01 +5.580011E+00 +1.573783E+00 +4.349678E+01 +9.505407E+01 +3.078366E+01 +4.763277E+01 +4.132281E+00 +8.658909E-01 +2.390602E+01 +2.879339E+01 +1.671966E+01 +1.409820E+01 +2.408409E+00 +3.004268E-01 tally 3: -1.584939E+01 -1.265206E+01 -1.096930E+00 -6.173135E-02 -2.940258E+01 -4.337818E+01 -1.932931E+00 -1.884749E-01 -4.008186E+01 -8.086427E+01 -2.512704E+00 -3.189987E-01 -4.759648E+01 -1.139252E+02 -3.041630E+00 -4.683237E-01 -5.006181E+01 -1.257467E+02 -3.137042E+00 -4.981005E-01 -4.883211E+01 -1.197646E+02 -3.130686E+00 -4.987337E-01 -4.550029E+01 -1.038199E+02 -2.853740E+00 -4.127265E-01 -3.937822E+01 -7.785807E+01 -2.488983E+00 -3.156421E-01 -2.884912E+01 -4.192640E+01 -1.855316E+00 -1.745109E-01 -1.543635E+01 -1.208459E+01 -1.025635E+00 -5.351565E-02 +1.552079E+01 +1.215917E+01 +1.020059E+00 +5.282882E-02 +2.870674E+01 +4.158022E+01 +1.804035E+00 +1.660452E-01 +3.946503E+01 +7.823691E+01 +2.547969E+00 +3.299415E-01 +4.671591E+01 +1.093585E+02 +2.859632E+00 +4.124601E-01 +5.032154E+01 +1.268658E+02 +3.343751E+00 +5.614915E-01 +4.984325E+01 +1.247751E+02 +3.167240E+00 +5.081974E-01 +4.649606E+01 +1.086583E+02 +3.036950E+00 +4.666173E-01 +4.037729E+01 +8.175938E+01 +2.638125E+00 +3.519509E-01 +2.966728E+01 +4.424057E+01 +1.908438E+00 +1.845564E-01 +1.614337E+01 +1.314776E+01 +1.059193E+00 +5.820056E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,8 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.119914E+00 -4.908283E-01 +3.093457E+00 +4.811225E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -208,10 +208,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.567786E+00 -1.556825E+00 -2.766088E+00 -3.864023E-01 +5.492347E+00 +1.516052E+00 +2.700262E+00 +3.703359E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -256,10 +256,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.491891E+00 -2.819491E+00 -5.235154E+00 -1.377898E+00 +7.476943E+00 +2.814145E+00 +5.178084E+00 +1.351641E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -304,10 +304,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.810357E+00 -3.898704E+00 -7.233068E+00 -2.630659E+00 +8.761435E+00 +3.851635E+00 +7.186008E+00 +2.593254E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -352,10 +352,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.374583E+00 -4.414420E+00 -8.565683E+00 -3.687428E+00 +9.309416E+00 +4.344697E+00 +8.490837E+00 +3.612406E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -400,10 +400,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.001252E+00 -4.073267E+00 -8.974821E+00 -4.050120E+00 +9.132849E+00 +4.184794E+00 +9.243248E+00 +4.287529E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -448,10 +448,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.236452E+00 -3.401934E+00 -9.042286E+00 -4.102906E+00 +8.483092E+00 +3.612901E+00 +9.279260E+00 +4.328361E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -496,10 +496,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.028546E+00 -2.482380E+00 -8.577643E+00 -3.691947E+00 +7.127826E+00 +2.546707E+00 +8.665903E+00 +3.765209E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -544,10 +544,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.159585E+00 -1.342512E+00 -7.389236E+00 -2.745028E+00 +5.402585E+00 +1.465890E+00 +7.635138E+00 +2.927813E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -592,10 +592,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.762685E+00 -3.914181E-01 -5.471849E+00 -1.509910E+00 +2.828867E+00 +4.049626E-01 +5.637356E+00 +1.595316E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -642,8 +642,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.038522E+00 -4.643520E-01 +3.153056E+00 +4.991433E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.180802E+00 -1.162698E+00 -1.162794E+00 -1.159752E+00 -1.152596E+00 -1.151652E+00 -1.148131E+00 -1.151875E+00 -1.151434E+00 -1.158833E+00 -1.160751E+00 -1.155305E+00 -1.155356E+00 -1.158866E+00 -1.161574E+00 -1.154691E+00 +1.179172E+00 +1.178968E+00 +1.188362E+00 +1.179504E+00 +1.171392E+00 +1.171387E+00 +1.167180E+00 +1.166119E+00 +1.174682E+00 +1.168971E+00 +1.169981E+00 +1.168234E+00 +1.167956E+00 +1.170486E+00 +1.171287E+00 +1.174181E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.214195E+00 -3.225164E+00 -3.227316E+00 -3.225663E+00 -3.226390E+00 -3.225832E+00 -3.226707E+00 -3.227866E+00 -3.229948E+00 -3.229269E+00 -3.230044E+00 -3.231568E+00 -3.234694E+00 -3.234771E+00 -3.234915E+00 -3.235876E+00 +3.225935E+00 +3.221297E+00 +3.218564E+00 +3.219662E+00 +3.217459E+00 +3.219000E+00 +3.219073E+00 +3.220798E+00 +3.220489E+00 +3.223146E+00 +3.223646E+00 +3.226356E+00 +3.225204E+00 +3.224716E+00 +3.224318E+00 +3.224577E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.742525E-03 -2.646417E-03 -1.981783E-03 -1.856593E-03 -1.797685E-03 -2.122587E-03 -1.200823E-03 -2.177249E-03 -1.442840E-03 -1.477754E-03 -1.236325E-03 -1.048988E-03 -8.395164E-04 -7.380254E-04 -7.742837E-04 -8.235911E-04 +4.216001E-03 +3.716007E-03 +3.317665E-03 +3.237220E-03 +2.978765E-03 +2.525223E-03 +1.971612E-03 +1.780968E-03 +1.792648E-03 +1.426282E-03 +1.521307E-03 +1.322495E-03 +1.292716E-03 +1.257458E-03 +1.162537E-03 +1.050447E-03 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.467E-01 - 5.518E-01 - 5.535E-01 - 5.500E-01 - 5.481E-01 - 5.478E-01 - 5.467E-01 + 5.532E-01 + 5.521E-01 + 5.496E-01 + 5.508E-01 + 5.456E-01 + 5.444E-01 + 5.454E-01 5.465E-01 - 5.493E-01 - 5.488E-01 - 5.491E-01 - 5.503E-01 - 5.529E-01 - 5.531E-01 - 5.534E-01 - 5.552E-01 + 5.448E-01 + 5.446E-01 + 5.458E-01 + 5.478E-01 + 5.470E-01 + 5.461E-01 + 5.451E-01 + 5.452E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.168094E-03 -5.978693E-03 -4.369223E-03 -4.546309E-03 -4.222522E-03 -4.221686E-03 -4.604208E-03 -3.950286E-03 -2.939283E-03 -3.667020E-03 -2.592899E-03 -2.272158E-03 -1.229170E-03 -1.114150E-03 -1.060490E-03 -1.714222E-03 +7.905726E-03 +7.520876E-03 +8.184797E-03 +8.179625E-03 +8.961315E-03 +7.968151E-03 +7.670324E-03 +4.715437E-03 +5.520638E-03 +3.875711E-03 +3.787811E-03 +2.956290E-03 +3.185591E-03 +2.608673E-03 +2.426394E-03 +3.587478E-03 cmfd source -4.724285E-02 -8.305825E-02 -1.081058E-01 -1.314542E-01 -1.357299E-01 -1.359417E-01 -1.240918E-01 -1.087580E-01 -8.111239E-02 -4.450518E-02 +4.265675E-02 +7.580707E-02 +1.074866E-01 +1.214515E-01 +1.436608E-01 +1.371140E-01 +1.316659E-01 +1.136553E-01 +8.144140E-02 +4.506063E-02 diff --git a/tests/test_cmfd_nofeed/results_true.dat b/tests/test_cmfd_nofeed/results_true.dat index 308dd7d82..97a659896 100644 --- a/tests/test_cmfd_nofeed/results_true.dat +++ b/tests/test_cmfd_nofeed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.171115E+00 6.173328E-03 +1.162636E+00 7.934609E-03 tally 1: -1.151618E+01 -1.331859E+01 -2.120660E+01 -4.514836E+01 -2.759616E+01 -7.639131E+01 -3.216668E+01 -1.036501E+02 -3.664720E+01 -1.345450E+02 -3.771246E+01 -1.424209E+02 -3.523750E+01 -1.245225E+02 -2.973298E+01 -8.860064E+01 -2.152108E+01 -4.647187E+01 -1.169538E+01 -1.375047E+01 +1.135686E+01 +1.298528E+01 +2.071747E+01 +4.321110E+01 +2.819700E+01 +7.960910E+01 +3.332373E+01 +1.115433E+02 +3.709368E+01 +1.380544E+02 +3.739969E+01 +1.402784E+02 +3.426637E+01 +1.177472E+02 +2.803195E+01 +7.875785E+01 +2.016620E+01 +4.078448E+01 +1.108479E+01 +1.233250E+01 tally 2: -2.274639E+01 -2.606952E+01 -1.588200E+01 -1.270445E+01 -2.140989E+00 -2.357207E-01 -4.205792E+01 -8.880940E+01 -2.970000E+01 -4.427086E+01 -3.919645E+00 -7.773724E-01 -5.560960E+01 -1.559764E+02 -3.947900E+01 -7.872700E+01 -5.238942E+00 -1.400918E+00 -6.492259E+01 -2.117369E+02 -4.612200E+01 -1.069035E+02 -5.989449E+00 -1.813201E+00 -7.217377E+01 -2.608499E+02 -5.148500E+01 -1.327923E+02 -6.607336E+00 -2.205529E+00 -7.305896E+01 -2.681514E+02 -5.187500E+01 -1.352457E+02 -6.722921E+00 -2.290262E+00 -6.884269E+01 -2.380550E+02 -4.904800E+01 -1.208314E+02 -6.177320E+00 -1.927173E+00 -5.902100E+01 -1.748370E+02 -4.201000E+01 -8.858460E+01 -5.542381E+00 -1.549108E+00 -4.268091E+01 -9.151405E+01 -3.029500E+01 -4.614050E+01 -3.822093E+00 -7.420139E-01 -2.362279E+01 -2.812041E+01 -1.653100E+01 -1.377737E+01 -2.336090E+00 -2.851840E-01 +2.287981E+01 +2.636157E+01 +1.596700E+01 +1.284147E+01 +2.244451E+00 +2.572247E-01 +4.133263E+01 +8.604098E+01 +2.935200E+01 +4.341844E+01 +3.848434E+00 +7.503255E-01 +5.785079E+01 +1.679230E+02 +4.121800E+01 +8.525151E+01 +5.430500E+00 +1.486044E+00 +6.775200E+01 +2.303407E+02 +4.833300E+01 +1.173098E+02 +6.301059E+00 +1.998392E+00 +7.351217E+01 +2.710999E+02 +5.241700E+01 +1.379065E+02 +6.679600E+00 +2.255575E+00 +7.445204E+01 +2.781907E+02 +5.286300E+01 +1.402744E+02 +6.930494E+00 +2.424751E+00 +6.790326E+01 +2.315864E+02 +4.823200E+01 +1.168627E+02 +6.460814E+00 +2.114375E+00 +5.708920E+01 +1.635219E+02 +4.052800E+01 +8.243096E+01 +5.346027E+00 +1.442848E+00 +4.210443E+01 +8.918253E+01 +2.973500E+01 +4.450833E+01 +3.975207E+00 +8.045528E-01 +2.247144E+01 +2.543735E+01 +1.563900E+01 +1.232686E+01 +2.123798E+00 +2.366770E-01 tally 3: -1.524100E+01 -1.171023E+01 -1.071050E+00 -5.839198E-02 -2.862800E+01 -4.113148E+01 -1.892774E+00 -1.812712E-01 -3.804600E+01 -7.316097E+01 -2.423654E+00 -2.968521E-01 -4.434600E+01 -9.882906E+01 -2.823929E+00 -4.033633E-01 -4.955300E+01 -1.230293E+02 -3.226029E+00 -5.265680E-01 -4.999400E+01 -1.256474E+02 -3.232464E+00 -5.286388E-01 -4.724300E+01 -1.121029E+02 -3.015553E+00 -4.606928E-01 -4.051300E+01 -8.239672E+01 -2.592073E+00 -3.412174E-01 -2.912700E+01 -4.265700E+01 -1.875109E+00 -1.785438E-01 -1.593500E+01 -1.280638E+01 -1.038638E+00 -5.538157E-02 +1.535500E+01 +1.188779E+01 +1.072376E+00 +5.918356E-02 +2.825000E+01 +4.023490E+01 +1.793632E+00 +1.647594E-01 +3.966400E+01 +7.895763E+01 +2.634662E+00 +3.493770E-01 +4.659700E+01 +1.090464E+02 +2.967403E+00 +4.433197E-01 +5.047200E+01 +1.278853E+02 +3.273334E+00 +5.383728E-01 +5.092700E+01 +1.302177E+02 +3.300198E+00 +5.511893E-01 +4.642600E+01 +1.082721E+02 +2.975932E+00 +4.459641E-01 +3.894500E+01 +7.613859E+01 +2.530949E+00 +3.228046E-01 +2.864900E+01 +4.133838E+01 +1.903069E+00 +1.833780E-01 +1.505600E+01 +1.142871E+01 +1.018078E+00 +5.366335E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,8 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.065000E+00 -4.742170E-01 +2.996000E+00 +4.526620E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -208,10 +208,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.420000E+00 -1.474674E+00 -2.693000E+00 -3.667090E-01 +5.397000E+00 +1.464555E+00 +2.755000E+00 +3.852250E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -256,10 +256,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.243000E+00 -2.637431E+00 -5.092000E+00 -1.305200E+00 +7.389000E+00 +2.741345E+00 +5.200000E+00 +1.361978E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -304,10 +304,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.280000E+00 -3.445670E+00 -6.765000E+00 -2.307253E+00 +8.644000E+00 +3.751978E+00 +7.139000E+00 +2.565059E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -352,10 +352,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.980000E+00 -4.046484E+00 -8.108000E+00 -3.299338E+00 +9.219000E+00 +4.266743E+00 +8.493000E+00 +3.619533E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -400,10 +400,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.016000E+00 -4.079320E+00 -8.962000E+00 -4.034032E+00 +9.255000E+00 +4.299595E+00 +9.339000E+00 +4.378285E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -448,10 +448,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.465000E+00 -3.595665E+00 -9.296000E+00 -4.340524E+00 +8.492000E+00 +3.616398E+00 +9.420000E+00 +4.454308E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -496,10 +496,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.247000E+00 -2.638527E+00 -8.865000E+00 -3.946315E+00 +6.996000E+00 +2.460916E+00 +8.640000E+00 +3.743262E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -544,10 +544,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.179000E+00 -1.353661E+00 -7.492000E+00 -2.817588E+00 +5.120000E+00 +1.320024E+00 +7.306000E+00 +2.680980E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -592,10 +592,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.821000E+00 -4.067990E-01 -5.617000E+00 -1.587757E+00 +2.681000E+00 +3.659390E-01 +5.413000E+00 +1.474787E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -642,8 +642,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.134000E+00 -4.937920E-01 +3.061000E+00 +4.714170E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.180802E+00 -1.163440E+00 -1.148572E+00 -1.151423E+00 -1.143374E+00 -1.144091E+00 -1.146212E+00 -1.144900E+00 -1.153511E+00 -1.158766E+00 -1.159179E+00 -1.156627E+00 -1.160647E+00 -1.162860E+00 -1.164312E+00 -1.164928E+00 +1.179172E+00 +1.181948E+00 +1.176599E+00 +1.175082E+00 +1.176011E+00 +1.183277E+00 +1.179605E+00 +1.181446E+00 +1.182887E+00 +1.182806E+00 +1.181451E+00 +1.176065E+00 +1.173438E+00 +1.171644E+00 +1.173251E+00 +1.178969E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.214195E+00 -3.222259E+00 -3.225989E+00 -3.230436E+00 -3.228875E+00 -3.229003E+00 -3.228502E+00 -3.230397E+00 -3.231417E+00 -3.231192E+00 -3.229995E+00 -3.229396E+00 -3.228730E+00 -3.228091E+00 -3.227600E+00 -3.229723E+00 +3.225935E+00 +3.222178E+00 +3.226354E+00 +3.222407E+00 +3.218763E+00 +3.213551E+00 +3.217941E+00 +3.219897E+00 +3.223185E+00 +3.221321E+00 +3.223037E+00 +3.222984E+00 +3.225563E+00 +3.226058E+00 +3.225377E+00 +3.224158E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.742525E-03 -3.110598E-03 -2.490108E-03 -2.114137E-03 -2.190200E-03 -3.281877E-03 -2.219193E-03 -2.458372E-03 -2.200863E-03 -2.181858E-03 -2.064212E-03 -1.961178E-03 -1.713250E-03 -1.665361E-03 -1.436016E-03 -1.193462E-03 +4.216001E-03 +3.765736E-03 +3.232512E-03 +2.946657E-03 +2.620043E-03 +3.102942E-03 +1.718566E-03 +1.560898E-03 +1.349125E-03 +1.376832E-03 +1.125073E-03 +1.244068E-03 +8.541401E-04 +1.038410E-03 +9.946921E-04 +1.032684E-03 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.467E-01 - 5.505E-01 - 5.514E-01 + 5.532E-01 5.531E-01 - 5.529E-01 - 5.501E-01 - 5.484E-01 - 5.500E-01 - 5.506E-01 - 5.508E-01 - 5.504E-01 - 5.500E-01 - 5.480E-01 + 3.223E-01 + 5.531E-01 + 5.492E-01 + 5.122E-01 + 5.456E-01 + 5.460E-01 + 5.479E-01 + 5.469E-01 + 5.469E-01 + 5.467E-01 + 5.469E-01 5.482E-01 - 5.475E-01 - 5.493E-01 + 5.467E-01 + 5.455E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.168094E-03 -5.976241E-03 -4.426550E-03 -4.107499E-03 -4.957716E-03 -4.026213E-03 -3.986000E-03 -2.702714E-03 -3.619345E-03 -4.909616E-03 -3.355042E-03 -2.945724E-03 -3.010811E-03 -2.965662E-03 -2.673073E-03 -1.669634E-03 +7.905726E-03 +7.474785E-03 +3.875412E-03 +4.088264E-03 +4.267612E-03 +4.332761E-03 +3.099731E-03 +4.562882E-03 +2.179728E-03 +3.149706E-03 +2.068544E-03 +2.125510E-03 +1.508170E-03 +1.306280E-03 +1.668890E-03 +2.087329E-03 cmfd source -4.539734E-02 -8.104913E-02 -1.045143E-01 -1.221516E-01 -1.398002E-01 -1.400323E-01 -1.304628E-01 -1.120006E-01 -8.038230E-02 -4.420934E-02 +4.468330E-02 +7.547146E-02 +1.117685E-01 +1.265505E-01 +1.401455E-01 +1.414979E-01 +1.275260E-01 +1.083491E-01 +8.102235E-02 +4.298544E-02 diff --git a/tests/test_complex_cell/results_true.dat b/tests/test_complex_cell/results_true.dat index 97f228e3e..b39f4c77a 100644 --- a/tests/test_complex_cell/results_true.dat +++ b/tests/test_complex_cell/results_true.dat @@ -1,11 +1,11 @@ k-combined: -2.565769E-01 8.980879E-04 +2.638275E-01 6.152901E-03 tally 1: -2.584080E+00 -1.335682E+00 -2.763580E+00 -1.528633E+00 -1.007148E+00 -2.031543E-01 -1.113696E-01 -2.485351E-03 +2.700382E+00 +1.460303E+00 +2.789417E+00 +1.556280E+00 +1.066357E+00 +2.277317E-01 +1.107069E-01 +2.453478E-03 diff --git a/tests/test_confidence_intervals/results_true.dat b/tests/test_confidence_intervals/results_true.dat index fb13bdad2..0a693a2e7 100644 --- a/tests/test_confidence_intervals/results_true.dat +++ b/tests/test_confidence_intervals/results_true.dat @@ -1,5 +1,5 @@ k-combined: -2.913599E-01 6.738749E-03 +2.955471E-01 7.000859E-03 tally 1: -6.420923E+01 -5.190738E+02 +6.492140E+01 +5.290622E+02 diff --git a/tests/test_density/results_true.dat b/tests/test_density/results_true.dat index 1dbadc039..b3cfb0fca 100644 --- a/tests/test_density/results_true.dat +++ b/tests/test_density/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.088237E+00 1.999252E-02 +1.112894E+00 2.781412E-03 diff --git a/tests/test_distribmat/results_true.dat b/tests/test_distribmat/results_true.dat index 70464fbc6..32ba9d6d1 100644 --- a/tests/test_distribmat/results_true.dat +++ b/tests/test_distribmat/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.309285E+00 1.263629E-02 +1.276930E+00 1.716859E-02 Cell ID = 11 Name = diff --git a/tests/test_eigenvalue_genperbatch/results_true.dat b/tests/test_eigenvalue_genperbatch/results_true.dat index 9e87c901d..48052821b 100644 --- a/tests/test_eigenvalue_genperbatch/results_true.dat +++ b/tests/test_eigenvalue_genperbatch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.015627E-01 5.978844E-03 +2.966731E-01 1.565084E-03 diff --git a/tests/test_eigenvalue_no_inactive/results_true.dat b/tests/test_eigenvalue_no_inactive/results_true.dat index fbbe84cc3..a606f7b47 100644 --- a/tests/test_eigenvalue_no_inactive/results_true.dat +++ b/tests/test_eigenvalue_no_inactive/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.130246E-01 6.960311E-03 +3.058585E-01 8.025063E-03 diff --git a/tests/test_energy_grid/results_true.dat b/tests/test_energy_grid/results_true.dat index 9556a981b..3958614d0 100644 --- a/tests/test_energy_grid/results_true.dat +++ b/tests/test_energy_grid/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.155788E-01 7.559348E-03 +3.218570E-01 2.269572E-03 diff --git a/tests/test_energy_laws/results_true.dat b/tests/test_energy_laws/results_true.dat index 48eb6bc81..cf020287b 100644 --- a/tests/test_energy_laws/results_true.dat +++ b/tests/test_energy_laws/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.130076E+00 1.938907E-03 +2.152985E+00 2.340453E-02 diff --git a/tests/test_entropy/results_true.dat b/tests/test_entropy/results_true.dat index 8b37789c3..773bedfd8 100644 --- a/tests/test_entropy/results_true.dat +++ b/tests/test_entropy/results_true.dat @@ -1,13 +1,13 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 entropy: -7.608094E+00 -8.167702E+00 -8.273634E+00 -8.239452E+00 -8.234598E+00 -8.278421E+00 -8.260773E+00 -8.351860E+00 -8.303719E+00 -8.271058E+00 +7.601626E+00 +8.075430E+00 +8.265647E+00 +8.334421E+00 +8.279373E+00 +8.243909E+00 +8.346594E+00 +8.308991E+00 +8.300603E+00 +8.293250E+00 diff --git a/tests/test_filter_distribcell/case-1/results_true.dat b/tests/test_filter_distribcell/case-1/results_true.dat index 49bf3ed4e..74d8d5bb7 100644 --- a/tests/test_filter_distribcell/case-1/results_true.dat +++ b/tests/test_filter_distribcell/case-1/results_true.dat @@ -1,14 +1,14 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -1.440759E-02 -2.075788E-04 -1.222930E-02 -1.495558E-04 -1.407292E-02 -1.980471E-04 -1.034365E-02 -1.069911E-04 +1.394835E-02 +1.945563E-04 +1.278875E-02 +1.635521E-04 +1.421770E-02 +2.021430E-04 +1.022974E-02 +1.046477E-04 tally 2: -5.105347E-02 -2.606457E-03 +5.118454E-02 +2.619857E-03 diff --git a/tests/test_filter_distribcell/case-2/results_true.dat b/tests/test_filter_distribcell/case-2/results_true.dat index bb2f498cb..51eb8ea56 100644 --- a/tests/test_filter_distribcell/case-2/results_true.dat +++ b/tests/test_filter_distribcell/case-2/results_true.dat @@ -1,11 +1,11 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -7.326285E-03 -5.367445E-05 -8.565980E-03 -7.337601E-05 -9.027116E-03 -8.148882E-05 -8.045879E-03 -6.473617E-05 +7.622903E-03 +5.810865E-05 +8.364469E-03 +6.996434E-05 +8.637033E-03 +7.459834E-05 +8.126637E-03 +6.604223E-05 diff --git a/tests/test_filter_distribcell/case-3/results_true.dat b/tests/test_filter_distribcell/case-3/results_true.dat index f5f85d29f..4e3ad0e43 100644 --- a/tests/test_filter_distribcell/case-3/results_true.dat +++ b/tests/test_filter_distribcell/case-3/results_true.dat @@ -1 +1 @@ -6008cf2ba8eecaaa5a600fa337cf54cef018e98bdba8e3bd26c6f44587376a838d5bc5e86301b2e308f9eb248e3efafd45a5336f4023d962d7921d158a621e0c \ No newline at end of file +e3382c4ccff9d80b66a49ad88d8ff98ba489d39810f8fcacda565b857c93be7c3f92f8d06fae1d109d7b87f3c35f8768631b400a0f31c092f19c33b1773057e5 \ No newline at end of file diff --git a/tests/test_filter_distribcell/case-4/results_true.dat b/tests/test_filter_distribcell/case-4/results_true.dat index b8bd2b339..85630c5e1 100644 --- a/tests/test_filter_distribcell/case-4/results_true.dat +++ b/tests/test_filter_distribcell/case-4/results_true.dat @@ -1,17 +1,17 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -2.166056E-02 -4.691799E-04 -2.281665E-02 -5.205994E-04 -1.938848E-02 -3.759132E-04 -3.055366E-02 -9.335264E-04 -2.338209E-02 -5.467222E-04 -2.719869E-02 -7.397689E-04 -1.895698E-02 -3.593670E-04 +2.274500E-02 +5.173351E-04 +2.035606E-02 +4.143691E-04 +2.057338E-02 +4.232638E-04 +3.100600E-02 +9.613721E-04 +2.355567E-02 +5.548698E-04 +2.563651E-02 +6.572304E-04 +2.020567E-02 +4.082692E-04 diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index 21946086b..7d0fda7bd 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.005983E+00 2.248579E-02 +9.090848E-01 2.183589E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -43,12 +43,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.589207E-02 +2.106082E-03 0.000000E+00 0.000000E+00 -3.228098E-02 -1.042062E-03 -3.222708E-01 -1.038585E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -63,6 +61,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.810181E-01 +1.943018E-01 +8.477458E-01 +7.186730E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -71,16 +73,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.389407E-01 +1.595676E-01 +1.024430E+00 +3.365012E-01 +9.196572E-01 +3.159409E-01 +4.091014E-02 +1.673639E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -8.182335E-01 -3.748630E-01 -2.711997E-01 -5.338821E-02 -3.359680E-01 -5.168399E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -91,16 +95,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.937300E-01 +1.561304E-01 +1.330480E+00 +5.750628E-01 0.000000E+00 0.000000E+00 -3.706070E-01 -1.373496E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.824955E-01 +1.707684E-01 +4.866910E+00 +5.700093E+00 +2.363570E+00 +1.406009E+00 +2.500848E-01 +2.908147E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -109,238 +123,352 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.931419E-01 -9.002841E-02 -1.092722E+00 -3.733055E-01 -2.384227E+00 -1.926937E+00 -9.101131E-01 -3.634496E-01 -3.284661E-01 -1.078900E-01 +1.726734E+00 +1.008362E+00 +5.696123E-01 +1.623003E-01 +2.077579E-02 +4.316336E-04 +1.433993E+00 +9.499213E-01 +7.566294E-01 +2.345886E-01 +6.841025E-03 +4.679962E-05 0.000000E+00 0.000000E+00 -6.885295E-02 -4.740728E-03 0.000000E+00 0.000000E+00 -2.419633E-02 -5.854622E-04 -9.286912E-02 -7.247209E-03 -5.629729E-01 -9.281109E-02 -7.345786E-01 -1.755550E-01 -1.219449E-01 -1.487057E-02 0.000000E+00 0.000000E+00 +7.173413E-01 +5.145786E-01 +6.358264E-01 +2.499324E-01 +4.142134E-01 +1.715727E-01 0.000000E+00 0.000000E+00 -1.983303E-01 -3.797884E-02 -4.840974E-02 -1.266547E-03 -1.183485E+00 -4.184814E-01 -3.027254E-01 -8.598449E-02 -9.889868E-01 -4.608531E-01 -8.698103E-01 -4.598559E-01 -1.332831E+00 -4.809984E-01 -1.564949E+00 -5.782651E-01 -1.143572E+00 -4.399439E-01 -1.326651E+00 -6.376565E-01 -1.716813E+00 -1.314280E+00 -7.673229E-01 -2.364966E-01 -2.539284E+00 -1.945563E+00 -1.263219E+00 -4.919339E-01 -5.430042E-01 -1.300266E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.553587E-01 -1.738170E-01 -2.048487E+00 -1.239856E+00 -3.761862E-01 -8.452912E-02 -0.000000E+00 -0.000000E+00 -9.675232E-02 -9.361012E-03 -2.319594E-01 -2.331698E-02 -1.573495E+00 -6.394722E-01 -4.432570E-01 -1.005943E-01 -9.353148E-01 -3.125416E-01 -8.359366E-01 -2.985072E-01 -1.657665E+00 -9.207020E-01 -3.737550E+00 -3.558505E+00 -1.742376E+00 -8.732217E-01 -5.153816E+00 -6.543973E+00 -1.653035E+00 -1.061068E+00 -9.963191E-01 -3.716347E-01 -2.282805E-01 -2.383414E-02 -8.749983E-01 -2.714666E-01 -1.728411E-01 -1.190218E-02 -9.250054E-02 -4.341922E-03 -6.353807E-02 -4.037086E-03 -1.811729E-01 -1.711154E-02 -3.218800E-01 -7.906855E-02 -1.057036E+00 -3.778638E-01 -9.231639E-01 -2.991795E-01 -3.375678E-01 -1.041383E-01 -1.181686E-01 -8.023920E-03 -4.912969E-01 -2.073894E-01 -9.395786E-01 -4.653730E-01 -6.998437E-01 -2.917085E-01 -3.074214E+00 -2.819088E+00 -2.570673E+00 -1.358321E+00 -1.108912E+00 -3.843307E-01 -4.950896E-02 -2.451137E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 +4.011416E-01 +1.609146E-01 +3.368420E-02 +1.134625E-03 +1.030071E+00 +3.122720E-01 +1.143612E+00 +3.253839E-01 +2.540223E-02 +6.452733E-04 +1.928674E-01 +2.540533E-02 +5.020644E-01 +1.001572E-01 +7.725983E-02 +5.969081E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.761929E-01 +1.415211E-01 +3.337719E-01 +1.114037E-01 +1.458352E-01 +1.101801E-02 +1.004092E-02 +1.008200E-04 0.000000E+00 -8.757958E-02 -7.670183E-03 +0.000000E+00 +1.456669E-02 +2.121884E-04 +9.828001E-01 +3.081076E-01 +7.752974E-01 +2.561541E-01 +2.210823E-01 +4.887738E-02 +5.096186E-01 +1.463671E-01 +9.189234E-03 +8.444202E-05 +9.466643E-02 +8.690023E-03 +3.476240E-01 +1.208424E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.776242E-02 +1.426000E-03 +2.838898E-01 +4.967809E-02 +3.681563E-01 +6.318539E-02 +1.810931E+00 +9.978486E-01 +7.373658E-01 +1.908335E-01 +5.104435E-02 +2.605526E-03 +2.373628E-01 +5.634111E-02 +1.619103E+00 +9.529343E-01 +3.924287E-01 +7.734575E-02 +2.295855E-01 +1.859566E-02 +0.000000E+00 +0.000000E+00 +9.399897E-01 +4.960289E-01 +1.747530E+00 +7.216683E-01 +6.696830E-01 +2.245084E-01 +1.077525E+00 +4.429656E-01 +1.584679E-02 +2.511207E-04 +7.184233E-02 +5.161321E-03 +1.759958E-01 +1.571544E-02 +6.649229E-01 +1.552335E-01 +2.313062E+00 +1.350964E+00 +4.351564E-01 +8.470997E-02 +8.760661E-02 +3.966567E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.403358E+00 +5.895449E-01 +1.252504E+00 +3.739918E-01 +8.089149E-01 +2.438434E-01 +3.543859E-01 +8.574508E-02 +2.047540E+00 +1.321581E+00 +1.463028E+00 +5.756583E-01 +1.611632E+00 +9.690304E-01 +7.271044E-01 +2.145542E-01 +4.694874E-03 +2.204184E-05 +4.718730E-01 +2.106227E-01 +4.047996E-01 +1.189989E-01 +0.000000E+00 +0.000000E+00 +4.536343E-02 +1.094112E-03 +2.969731E-02 +8.819302E-04 +3.790737E-01 +7.738056E-02 +3.695761E-01 +1.011168E-01 +1.192047E+00 +4.200074E-01 +4.362940E+00 +6.186599E+00 +4.986916E+00 +7.007443E+00 +3.727941E+00 +3.366778E+00 +1.372362E-01 +8.458071E-03 +1.272595E+00 +3.719182E-01 +1.371121E+00 +6.115963E-01 +3.881464E-01 +7.668321E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.181124E-01 +1.395053E-02 +1.218119E-01 +1.206118E-02 +1.634449E-02 +2.671424E-04 +4.552904E-01 +1.865599E-01 +2.988611E-02 +8.931799E-04 +1.948983E-01 +3.003358E-02 +4.577426E-01 +6.147655E-02 +2.286747E+00 +1.767929E+00 +2.459226E+00 +1.547942E+00 +7.936611E+00 +1.446313E+01 +1.949417E+00 +1.320611E+00 +2.052310E-01 +4.120539E-02 +1.147100E-01 +7.231156E-03 +6.967033E-01 +1.779982E-01 +3.093709E-01 +5.019469E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.389385E-01 +1.679638E-01 +6.897133E-01 +2.074373E-01 +1.252516E-01 +1.568795E-02 +0.000000E+00 +0.000000E+00 +5.377296E-01 +7.798805E-02 +3.413563E+00 +2.875271E+00 +2.853407E-01 +4.232457E-02 +1.680380E+00 +7.792461E-01 +5.197599E+00 +1.167591E+01 +1.489144E+00 +1.644073E+00 +8.799716E-01 +5.514111E-01 +0.000000E+00 +0.000000E+00 +1.019508E+00 +3.954690E-01 +1.615211E+00 +5.906163E-01 +6.971393E-04 +4.860032E-07 0.000000E+00 0.000000E+00 -6.469411E-01 -1.789549E-01 -7.829878E-01 -2.033989E-01 -8.994770E-01 -2.351438E-01 -4.712797E-01 -7.213659E-02 -2.133532E+00 -9.765422E-01 -4.533607E-01 -1.511497E-01 -1.878729E+00 -2.099266E+00 -4.287190E+00 -4.748691E+00 -1.961229E+00 -1.085868E+00 0.000000E+00 0.000000E+00 +2.512285E-01 +3.531844E-02 +2.049880E-01 +2.500201E-02 +1.283410E+00 +7.357671E-01 +9.917693E-01 +3.339985E-01 +1.147483E-01 +8.509586E-03 +5.790502E-01 +9.680085E-02 +1.192232E+00 +4.459713E-01 +3.331876E-01 +4.746118E-02 +3.281132E-01 +7.974258E-02 +3.979931E-02 +1.583985E-03 0.000000E+00 0.000000E+00 +3.008273E-01 +5.804921E-02 +3.403375E+00 +2.756946E+00 +3.923179E-01 +4.065809E-02 +7.175236E-01 +2.579798E-01 0.000000E+00 0.000000E+00 +2.829294E-02 +8.004902E-04 +3.487502E-01 +8.673548E-02 +6.183549E-01 +2.131095E-01 +5.065445E-01 +1.543839E-01 +2.853090E+00 +3.049743E+00 +7.252805E-03 +5.260317E-05 +8.802479E-01 +2.996449E-01 +1.457582E+00 +6.219158E-01 +8.593620E-01 +2.316194E-01 +5.073156E-01 +1.305767E-01 0.000000E+00 0.000000E+00 +1.291473E-01 +1.667902E-02 +1.363309E-01 +1.126574E-02 +3.322153E-01 +7.213414E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.061692E-01 -1.127190E-02 -1.912282E-01 -3.656822E-02 -3.289827E-01 -1.075283E-01 -1.750908E+00 -8.092384E-01 -2.156426E+00 -9.498067E-01 -1.480596E+00 -6.002164E-01 -3.249216E-01 -1.005106E-01 -8.875810E-02 -7.878000E-03 -2.458176E-01 -4.377921E-02 -2.766784E+00 -2.677426E+00 -2.703501E+00 -2.548083E+00 0.000000E+00 0.000000E+00 +5.428888E-01 +2.947282E-01 +1.807993E+00 +7.223647E-01 +9.224400E-01 +2.724689E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.267439E-01 +5.141278E-02 +6.305037E-02 +3.751423E-03 +6.275215E-01 +3.937832E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.981880E-01 -3.927848E-02 -2.789456E-01 -5.304261E-02 -3.897689E-01 -9.413685E-02 -9.140885E-01 -2.822974E-01 -1.887726E+00 -7.592780E-01 -1.841624E+00 -1.680236E+00 -4.059938E-01 -1.562853E-01 -2.897077E-01 -8.393057E-02 +1.394098E+00 +7.405116E-01 0.000000E+00 0.000000E+00 -2.445051E-01 -5.978276E-02 -2.234657E-01 -2.716625E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -351,114 +479,34 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.783335E-02 -2.288029E-03 -5.606011E-01 -1.607491E-01 -1.908325E+00 -1.505641E+00 -1.255795E-01 -1.541635E-02 -7.395548E-01 -2.274416E-01 -5.986733E-01 -9.576988E-02 -1.095026E+00 -4.872910E-01 -1.043470E+00 -3.153965E-01 -1.004973E+00 -6.046910E-01 -1.724071E-01 -2.775427E-02 +2.096899E-01 +4.396987E-02 +2.774706E-02 +7.698995E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.244277E-01 -1.548225E-02 -1.222119E-01 -1.493575E-02 0.000000E+00 0.000000E+00 -5.470039E-01 -2.992133E-01 -4.313918E-01 -1.128703E-01 -1.088037E+00 -6.007745E-01 -1.013469E+00 -5.646900E-01 -4.738741E-01 -2.245567E-01 -6.086518E-02 -3.704570E-03 -1.126662E+00 -4.675322E-01 -1.008459E+00 -4.616352E-01 -1.309592E+00 -5.665211E-01 -1.334050E+00 -5.264819E-01 -7.324996E-01 -2.577124E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.227736E-01 -1.041828E-01 -9.218244E-01 -2.000301E-01 -2.119900E+00 -1.123846E+00 -4.366404E-02 -1.015133E-03 0.000000E+00 0.000000E+00 -2.309730E-01 -2.570742E-02 -1.270911E+00 -4.617932E-01 -1.107069E+00 -4.574496E-01 -1.269137E-01 -1.610709E-02 -2.207099E-01 -4.871286E-02 -9.075694E-02 -8.236821E-03 -1.046380E-01 -7.875036E-03 -2.836364E-01 -3.508209E-02 -4.509177E-01 -7.393615E-02 -1.077505E+00 -3.209541E-01 -1.204982E-02 -1.451982E-04 +0.000000E+00 +0.000000E+00 +1.974546E-01 +2.384975E-02 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.502937E-01 -5.035125E-02 -1.367234E+00 -5.128884E-01 -5.563575E-01 -2.510519E-01 -3.174809E-01 -1.007941E-01 -9.152129E-01 -2.609325E-01 -9.040668E-01 -2.263595E-01 -7.868812E-01 -2.436310E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -467,60 +515,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.390904E-01 -4.907887E-02 -6.577001E-01 -2.346964E-01 -1.023735E-01 -8.287220E-03 -1.499600E-02 -2.248801E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.395650E-01 -1.947839E-02 -1.040555E+00 -3.043523E-01 -1.426976E+00 -6.218295E-01 -8.342758E-01 -2.539692E-01 -3.101170E-01 -9.617255E-02 -6.319919E-02 -3.629541E-03 -1.292774E-01 -8.674372E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.056616E-01 -4.198926E-01 -7.349640E-02 -5.401721E-03 -5.146331E-01 -1.555789E-01 -2.464783E-01 -5.430051E-02 -7.263842E-02 -5.276340E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.587357E-01 -4.992769E-01 -1.756477E+00 -7.884472E-01 -2.541705E-01 -4.325743E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -533,14 +543,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.496519E-02 -4.948061E-03 -1.596404E-01 -2.548506E-02 -2.454011E-02 -6.022168E-04 -1.235276E-01 -1.525907E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -551,8 +553,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.422913E-01 -5.870510E-02 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat index 239a9f01a..67622e74e 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.005983E+00 2.248579E-02 +9.090848E-01 2.183589E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -727,6 +727,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.589207E-02 +2.106082E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -753,8 +755,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.228098E-02 -1.042062E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -787,8 +787,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.222708E-01 -1.038585E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1043,6 +1041,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.810181E-01 +1.943018E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1075,10 +1075,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.745569E-01 +3.301156E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.731890E-01 +7.463221E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1235,6 +1239,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.389407E-01 +1.595676E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1261,16 +1267,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.009463E-01 -4.037943E-02 -1.741795E-01 -3.033850E-02 -4.431077E-01 -1.023945E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.907491E-01 +2.279094E-01 +2.336811E-01 +4.472648E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1299,10 +1303,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.699856E-01 -1.749182E-02 -1.012141E-01 -1.024430E-02 +2.908033E-01 +7.557454E-02 +6.288540E-01 +1.326512E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1329,14 +1333,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.427282E-01 -4.346756E-02 -8.576175E-02 -6.594648E-03 -7.478060E-03 -5.592138E-05 0.000000E+00 0.000000E+00 +4.091014E-02 +1.673639E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1579,10 +1579,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.645869E-02 -4.416757E-03 -3.041483E-01 -9.250621E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1621,12 +1617,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.916366E-02 +3.134904E-03 +4.865603E-01 +1.180911E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.800600E-02 +2.304576E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1649,8 +1651,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.914739E-01 +1.532518E-01 +8.773135E-01 +2.204709E-01 +1.855659E-02 +3.443471E-04 0.000000E+00 0.000000E+00 +8.943203E-03 +7.998089E-05 +3.419252E-02 +1.169128E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1803,6 +1815,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.721710E-01 +6.466430E-02 +1.083499E-01 +9.099135E-03 +2.019746E-01 +4.079373E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1829,6 +1847,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.008195E-01 +1.016457E-02 +3.669925E+00 +2.917222E+00 +9.397013E-01 +3.618502E-01 +1.564633E-01 +1.042011E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1843,8 +1869,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.931419E-01 -9.002841E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1857,6 +1881,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.077922E+00 +4.201997E-01 +1.214218E+00 +3.617486E-01 +2.241499E-03 +5.024317E-06 +6.918747E-02 +4.786906E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1875,18 +1907,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.775906E-01 -3.153842E-02 -8.691809E-01 -2.255229E-01 -4.595089E-02 -2.111485E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.816209E-02 +1.456345E-03 +1.349124E-01 +9.186049E-03 +7.701033E-02 +4.608092E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1907,14 +1939,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.073032E-01 -5.796376E-03 -6.104378E-01 -1.438907E-01 -1.357192E+00 -7.800106E-01 -3.092946E-01 -4.828943E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1943,10 +1967,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.051275E-01 -9.608655E-02 -4.049856E-01 -1.640133E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2001,10 +2021,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.816781E-02 -3.300694E-04 -3.102983E-01 -9.628505E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2047,8 +2063,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.885295E-02 -4.740728E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2067,6 +2081,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.958692E-01 +9.468103E-02 +1.975910E-01 +3.904222E-02 +1.033274E+00 +6.828182E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2095,6 +2115,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.067038E-01 +5.047096E-02 +9.980964E-03 +6.692276E-05 +2.085328E-01 +2.278714E-02 +4.439471E-02 +1.970890E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2119,8 +2147,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.419633E-02 -5.854622E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2145,6 +2171,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.077579E-02 +4.316336E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2157,18 +2185,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.098236E-02 -1.206123E-04 -5.047052E-02 -2.547273E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.065577E-02 -7.244766E-05 -2.076046E-02 -4.309969E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2177,10 +2197,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.003127E-02 +3.603753E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.116389E-01 +1.246324E-02 +1.262323E+00 +7.549729E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2191,18 +2217,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.209931E-01 -7.784762E-03 -1.059137E-01 -1.121770E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.883880E-01 -1.626283E-02 -1.476781E-01 -2.180883E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2213,28 +2231,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.064320E-02 +4.261416E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.729541E-01 +1.482544E-01 +1.630320E-01 +2.657945E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.464783E-03 -2.986386E-05 -4.827060E-01 -1.236578E-01 -2.938269E-02 -8.633425E-04 -1.103939E-01 -1.218681E-02 -1.066312E-01 -7.137023E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2259,16 +2273,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.841025E-03 +4.679962E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.448951E-03 -4.158897E-05 -1.154960E-01 -1.333932E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2353,10 +2365,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.230857E-01 -1.515010E-02 -7.524451E-02 -5.162294E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2387,12 +2395,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.738188E-03 -3.292680E-05 -1.158207E-02 -1.341443E-04 -3.108948E-02 -9.665557E-04 +5.888287E-01 +3.467192E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2409,6 +2413,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.246536E-02 +3.901921E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2419,14 +2425,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.756796E-02 +1.411352E-03 +1.257573E-01 +1.581491E-02 +3.206767E-01 +1.028336E-01 0.000000E+00 0.000000E+00 -8.670560E-01 -3.010896E-01 -2.777708E-01 -4.851013E-02 -3.865801E-02 -1.326182E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2441,6 +2447,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.381825E-02 +5.673093E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2451,14 +2459,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.080085E-01 +9.486923E-02 +1.062049E-01 +1.127948E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.205825E-02 -8.474722E-03 -2.106671E-01 -4.049979E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2487,14 +2495,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.518202E-01 -6.341342E-02 -3.500938E-01 -5.019217E-02 -1.285282E-01 -1.588441E-02 -2.585446E-01 -6.684532E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2523,10 +2523,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.653135E-01 -1.287514E-01 -2.216045E-03 -4.910856E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2545,8 +2541,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.022807E-01 -1.147015E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2579,10 +2573,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.172250E+00 -3.690965E-01 -1.605816E-01 -1.294116E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2611,12 +2601,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.892971E-02 -3.472710E-03 -1.338644E+00 -4.668912E-01 -1.673747E-01 -1.423295E-02 +1.664575E-02 +2.770809E-04 +3.844958E-01 +1.478370E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2625,14 +2613,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.452260E-01 -2.109060E-02 -5.921989E-01 -1.326829E-01 -3.816328E-02 -1.456436E-03 -9.153520E-02 -8.378692E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2645,10 +2625,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.905792E-01 -3.632041E-02 -8.586907E-02 -7.373497E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2659,16 +2635,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.474985E-02 -6.125553E-04 -7.610286E-01 -2.001560E-01 -4.516947E-01 -1.062402E-01 -8.917764E-02 -4.968510E-03 0.000000E+00 0.000000E+00 +3.368420E-02 +1.134625E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2689,22 +2659,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.500778E-01 +1.824030E-01 +3.751043E-01 +6.960597E-02 +4.889101E-03 +2.390331E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.101299E+00 -7.922298E-01 -4.529165E-02 -2.051333E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.702227E-01 -1.629185E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2723,6 +2693,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.552067E-01 +7.965862E-02 +5.884053E-01 +1.128861E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2735,16 +2709,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.749741E-01 -3.841679E-02 -1.876567E-01 -2.180115E-02 -4.802267E-02 -2.306177E-03 -2.219757E-01 -2.083367E-02 -3.469381E-02 -1.203661E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2769,16 +2733,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.220451E-03 -8.501673E-05 -2.421186E-01 -2.296140E-02 -5.301518E-01 -1.266721E-01 -1.676517E+00 -1.032348E+00 -8.127651E-02 -4.329985E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2795,6 +2749,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.540223E-02 +6.452733E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2805,14 +2761,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.516265E-01 -6.305270E-02 -3.999873E-02 -1.599899E-03 -5.487047E-01 -1.292105E-01 -3.228887E-01 -1.042571E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2833,6 +2781,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.203949E-03 +4.857393E-06 +1.906635E-01 +2.524226E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2843,10 +2795,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.407100E-01 -4.223910E-02 -2.022942E-01 -4.092294E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2869,6 +2817,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.924777E-01 +9.702070E-02 +9.586698E-03 +9.190478E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2899,6 +2851,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.725983E-02 +5.969081E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2933,8 +2887,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.553587E-01 -1.738170E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2965,14 +2917,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.145563E-02 -3.776795E-03 -2.005189E-01 -2.429212E-02 -5.673596E-01 -1.649938E-01 -4.875014E-01 -2.376576E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2981,10 +2925,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.157679E-01 -3.770273E-01 -1.588325E-02 -2.522777E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3015,10 +2955,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.592065E-01 -4.120974E-02 -1.169797E-01 -8.650603E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3037,6 +2973,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.150067E-01 +1.322653E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3051,6 +2989,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.341735E-02 +5.483721E-04 +8.143485E-02 +6.631634E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3065,6 +3007,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.406100E-02 +5.485032E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3079,14 +3023,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.347202E-02 +1.814953E-04 +4.752215E-02 +2.258354E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.675232E-02 -9.361012E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3101,6 +3047,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.157492E-02 +1.339789E-04 +8.567464E-02 +5.764769E-03 +4.858562E-02 +2.360563E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3123,10 +3075,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.767592E-02 -5.284927E-03 -1.342835E-01 -1.803205E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3137,10 +3085,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.408666E-01 -1.984341E-02 -2.912093E-02 -8.480284E-04 +1.004092E-02 +1.008200E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3155,12 +3101,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.575074E-02 -4.323159E-03 -1.123042E+00 -4.745625E-01 -2.147144E-01 -2.841768E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3173,8 +3113,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.138141E-01 -1.295364E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3191,10 +3129,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.478967E-01 -2.397512E-02 -8.154628E-02 -5.533841E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3203,14 +3137,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.673829E-01 -2.801704E-02 -6.238670E-01 -1.323614E-01 -1.087831E-01 -8.027300E-03 -3.528173E-02 -1.244801E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3231,20 +3157,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.456669E-02 +2.121884E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.125593E-03 -9.769332E-06 -5.982046E-01 -2.380250E-01 -1.595969E-01 -1.273945E-02 -7.500945E-02 -5.626417E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3257,6 +3177,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.177876E-01 +6.984115E-02 +5.414528E-01 +1.217187E-01 +1.235597E-01 +1.225844E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3279,16 +3205,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.004455E-02 -4.017842E-04 -1.241994E+00 -5.276343E-01 -3.956269E-01 -6.857794E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.438708E-02 +4.145696E-03 +3.829900E-03 +1.466813E-05 +3.333043E-01 +8.477399E-02 +3.737762E-01 +6.094548E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3305,24 +3233,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.420493E-01 -2.017799E-02 -1.139866E-02 -1.299295E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.517820E-01 -4.088147E-02 -5.984204E-01 -1.119676E-01 -1.600304E+00 -1.060307E+00 -6.251595E-01 -1.631053E-01 -5.084364E-01 -8.750385E-02 +1.024361E-01 +1.049315E-02 +1.186462E-01 +1.407692E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3349,24 +3267,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.482851E-01 -2.198847E-02 -8.661057E-02 -3.979426E-03 -5.328694E-01 -1.185445E-01 -9.819716E-02 -6.261752E-03 -1.971175E-01 -3.885531E-02 -5.055466E-01 -1.332461E-01 -1.737497E-01 -3.018896E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.575968E-02 +2.208187E-03 +4.438589E-01 +1.133195E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3383,22 +3291,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.448612E-01 -3.179981E-02 -1.336292E+00 -6.509631E-01 -1.788953E+00 -9.402141E-01 -6.484030E-01 -1.952075E-01 -1.239995E-01 -9.457065E-03 -5.379761E-01 -9.948097E-02 -3.422476E-01 -3.688467E-02 -1.310833E-01 -9.116867E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3419,20 +3311,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.452794E-01 -7.962998E-03 -4.950124E-01 -1.019817E-01 -5.154252E-01 -1.349222E-01 -2.369650E-01 -5.615241E-02 -3.458235E-02 -1.195939E-03 -1.129905E-02 -1.276685E-04 -2.144713E-01 -2.715780E-02 +9.189234E-03 +8.444202E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3463,26 +3343,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.439196E-02 -4.146324E-03 -9.319271E-01 -3.289332E-01 0.000000E+00 0.000000E+00 +1.457530E-03 +2.124393E-06 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -8.887911E-02 -4.077886E-03 -1.394014E-01 -1.214028E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.728727E-02 +1.390341E-03 +5.592163E-02 +3.127228E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3509,12 +3387,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.093347E-01 -4.640925E-02 -5.656636E-01 -1.123158E-01 0.000000E+00 0.000000E+00 +1.868110E-01 +3.489837E-02 +1.608129E-01 +2.586079E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3559,8 +3437,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.728411E-01 -1.190218E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3593,10 +3469,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.275913E-02 -8.900081E-05 -7.974141E-02 -3.206666E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3629,8 +3501,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.353807E-02 -4.037086E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3663,14 +3533,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.092912E-01 -1.194458E-02 +3.776242E-02 +1.426000E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.188161E-02 -5.166966E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3689,22 +3557,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.312464E-02 +8.672198E-03 +7.277455E-02 +3.337798E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +9.793932E-02 +5.547426E-03 +2.005125E-02 +4.020525E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.224855E-01 -3.374440E-02 -9.939443E-02 -9.879253E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3715,16 +3587,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.008926E-02 -1.017932E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.885218E-02 +4.740623E-03 +5.102997E-02 +2.604058E-03 +2.413011E-02 +5.822622E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.999624E-01 +2.172553E-02 +2.418161E-02 +4.017912E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3733,14 +3613,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.203590E-02 -1.448628E-04 -8.166865E-01 -2.864876E-01 -2.182247E-01 -3.276791E-02 0.000000E+00 0.000000E+00 +3.486695E-01 +1.215704E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3749,12 +3625,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.286761E-01 -1.655753E-02 -1.350478E-01 -8.850865E-03 -3.262324E-01 -5.081260E-02 +1.871991E-01 +3.504350E-02 +4.746788E-01 +8.097271E-02 +8.003839E-01 +2.085673E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3769,14 +3645,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.880416E-02 -7.940924E-04 -2.944035E-01 -5.470290E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +9.441534E-02 +8.914256E-03 +2.174907E-02 +4.730221E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3785,10 +3661,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.039618E-01 +5.462503E-03 +5.172396E-01 +1.418615E-01 0.000000E+00 0.000000E+00 -3.375678E-01 -1.041383E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3815,12 +3693,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.443462E-02 -2.083582E-04 -6.747523E-02 -4.552907E-03 0.000000E+00 0.000000E+00 +9.611614E-03 +9.238313E-05 +4.143274E-02 +1.716672E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3831,8 +3709,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.625873E-02 -1.314696E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3849,8 +3725,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.743814E-02 -1.401614E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3859,14 +3733,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.282000E-01 -1.643523E-02 -8.992357E-04 -8.086249E-07 -4.549792E-02 -2.070061E-03 -2.792616E-01 -7.798705E-02 +2.218092E-01 +4.919934E-02 +1.555359E-02 +2.419141E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3883,12 +3753,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.561753E-01 -3.750508E-02 -4.494863E-01 -2.020380E-01 -1.524811E-02 -2.325049E-04 +2.923037E-01 +8.544147E-02 +1.105886E+00 +4.954938E-01 +1.801721E-01 +1.643267E-02 +4.074186E-02 +1.659899E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3897,8 +3769,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.186688E-01 -4.781605E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3919,10 +3789,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.756295E-01 -3.084572E-02 +2.093595E-01 +4.383141E-02 0.000000E+00 0.000000E+00 +1.830692E-01 +3.351434E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3933,18 +3805,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.799587E-02 -7.837689E-04 0.000000E+00 0.000000E+00 -2.165781E-01 -4.136640E-02 -1.206583E-01 -1.455843E-02 -3.350979E-02 -1.122906E-03 -1.254721E-01 -1.574324E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3961,24 +3823,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.255610E-02 -1.576557E-04 -2.059029E-01 -2.931063E-02 -9.625207E-02 -9.264462E-03 -4.926052E-01 -1.231087E-01 -3.607423E-01 -6.495313E-02 -2.101048E-01 -2.385810E-02 -7.843494E-01 -1.955825E-01 -9.077784E-01 -3.297447E-01 -3.922359E-03 -1.538490E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3993,24 +3837,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.557970E-01 +1.315091E-02 +4.836104E-02 +2.338790E-03 +2.542750E-02 +6.465577E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.913074E-02 -1.799353E-03 -1.249107E-02 -1.560268E-04 0.000000E+00 0.000000E+00 -1.115404E+00 -4.366528E-01 -3.732357E-01 -4.158215E-02 -3.846227E-01 -8.126419E-02 -6.157885E-01 -1.590298E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4037,14 +3875,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.663121E-01 -1.953137E-01 -4.644811E-01 -1.590726E-01 -5.000400E-02 -1.273713E-03 -2.811483E-02 -7.904436E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4053,22 +3883,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.950896E-02 -2.451137E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.114172E-01 +8.463618E-02 +6.482386E-02 +4.202133E-03 0.000000E+00 0.000000E+00 +1.562146E-01 +2.440299E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.075341E-01 +9.457725E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4087,12 +3923,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.987385E-02 +4.216342E-03 +3.775725E-01 +7.128418E-02 +1.229306E-01 +8.980437E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.072363E-01 +4.294688E-02 +7.605871E-01 +2.470259E-01 +2.093299E-01 +4.381902E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4111,6 +3959,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.869734E-01 +6.608107E-02 +3.758837E-01 +7.851736E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4119,6 +3971,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.825953E-03 +4.659364E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4141,6 +3995,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.820587E-01 +7.154947E-02 +6.954661E-01 +3.034029E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4171,6 +4029,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.584679E-02 +2.511207E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4217,6 +4077,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.184233E-02 +5.161321E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4241,10 +4103,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.294981E-02 +3.962679E-03 +3.572915E-02 +1.276572E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.731687E-02 +5.977899E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4269,20 +4137,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.080327E-01 +1.167107E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.026670E-01 +6.339813E-02 +1.542231E-01 +2.378478E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.933218E-02 -1.547021E-03 -4.824739E-02 -2.327811E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4301,10 +4171,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.460357E-02 +1.989478E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.818917E-02 +7.946292E-04 +1.893802E+00 +8.370429E-01 +3.464673E-01 +7.243677E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4315,6 +4193,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.758467E-03 +6.019381E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4325,14 +4205,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.013752E-01 +3.437520E-02 +2.160993E-02 +3.780757E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.675416E-01 -4.683926E-02 -2.020206E-01 -3.139390E-02 +2.044128E-01 +4.178460E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4341,16 +4223,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.281618E-01 -1.642545E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.921707E-02 -2.422320E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4361,24 +4239,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.580196E-02 +2.405069E-03 +3.180466E-02 +8.211954E-04 0.000000E+00 0.000000E+00 -3.451622E-02 -1.191369E-03 -2.791548E-02 -7.007752E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.429077E-02 -2.042262E-04 -5.105813E-01 -9.939542E-02 -1.956841E-01 -3.829226E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4407,12 +4279,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.524256E-01 -3.390159E-02 -5.341258E-01 -7.612387E-02 -1.129256E-01 -5.367542E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4427,10 +4293,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.208683E-02 -4.878280E-04 -2.729156E-02 -7.448293E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4439,16 +4301,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.789538E-02 -3.202447E-04 -1.070161E-01 -1.145246E-02 -2.004171E-01 -4.016700E-02 -9.277615E-02 -4.350522E-03 -3.796585E-03 -1.441406E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4459,14 +4311,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.717932E-01 -2.951289E-02 -3.342321E-01 -6.344565E-02 -4.457955E-01 -9.943168E-02 -4.346780E-03 -1.889450E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4475,14 +4319,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.812701E-02 -7.911289E-04 0.000000E+00 0.000000E+00 -7.255598E-01 -2.637695E-01 -4.236781E-01 -1.206021E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4499,10 +4337,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.516279E-03 +3.042934E-05 +2.109966E-01 +4.451955E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.204701E-02 +1.451304E-04 +9.777737E-01 +3.216046E-01 +1.970243E-01 +3.497367E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4513,10 +4361,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.455666E-01 -1.088929E-01 -1.077941E-01 -5.813092E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4525,10 +4369,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.022569E-01 +4.090786E-02 +2.829187E-01 +5.992985E-02 +3.909183E-03 +1.528171E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.769412E-02 +7.669642E-04 +2.293319E-01 +2.291139E-02 +5.063929E-01 +8.839948E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4541,22 +4397,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.759532E-03 -7.672939E-05 -3.873698E-01 -1.500554E-01 -3.320720E-02 -5.664804E-04 -9.751133E-01 -4.762440E-01 -3.549373E-01 -1.259805E-01 0.000000E+00 0.000000E+00 -4.558589E-03 -2.078073E-05 -1.147837E-01 -1.317530E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4573,28 +4415,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.240276E-01 +6.259831E-02 +4.821705E-01 +1.465719E-01 +2.716753E-03 +7.380744E-06 0.000000E+00 0.000000E+00 -1.491942E-01 -1.942842E-02 -1.215608E-02 -7.465030E-05 -9.749153E-01 -3.525441E-01 -1.238276E+00 -4.724746E-01 -7.559328E-01 -1.539006E-01 -7.550630E-01 -2.671451E-01 -4.016529E-01 -1.049033E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.007063E-02 +4.909893E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4613,16 +4449,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.843153E-01 +8.083519E-02 0.000000E+00 0.000000E+00 -1.915923E-01 -1.106962E-02 -1.039274E+00 -3.820648E-01 -6.748249E-01 -1.513006E-01 -5.553735E-02 -3.084397E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4633,6 +4463,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.637517E-01 +6.344334E-02 +1.611871E-01 +9.780279E-03 +1.369946E+00 +7.310512E-01 +1.790727E-01 +2.421811E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4643,6 +4481,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.358261E-02 +2.750165E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4659,12 +4499,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.520557E-02 +3.629997E-03 +3.104068E-01 +3.585841E-02 +8.961225E-01 +3.152521E-01 +8.118983E-02 +6.591789E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.213483E-02 +4.899508E-04 +6.796855E-02 +4.619724E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4683,12 +4535,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.636814E-03 +7.459456E-05 +6.558296E-01 +2.206348E-01 +7.105868E-01 +2.014504E-01 +7.356863E-02 +5.412344E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.630097E-01 +2.657217E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4709,6 +4571,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.780793E-02 +8.160032E-04 +6.228699E-01 +1.860172E-01 +6.642653E-02 +1.937778E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4741,6 +4609,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.694874E-03 +2.204184E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4783,6 +4653,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.203382E-01 +1.166708E-02 +3.515349E-01 +1.235768E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4807,8 +4681,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.527081E-03 +3.054862E-05 +6.191315E-04 +3.833239E-07 0.000000E+00 0.000000E+00 +3.986534E-01 +1.182222E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4833,8 +4713,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.061692E-01 -1.127190E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4867,8 +4745,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.912282E-01 -3.656822E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4879,8 +4755,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.697245E-02 +2.880642E-04 0.000000E+00 0.000000E+00 +2.839097E-02 +8.060473E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4905,6 +4785,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.969731E-02 +8.819302E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4919,8 +4801,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.289827E-01 -1.075283E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4937,6 +4817,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.068802E-01 +4.279940E-02 +1.721936E-01 +1.999610E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4951,12 +4835,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.805117E-03 +3.258447E-06 0.000000E+00 0.000000E+00 -1.320797E+00 -4.972727E-01 -4.301105E-01 -6.331514E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4975,6 +4857,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.019718E-01 +1.039824E-02 +2.657993E-01 +4.762038E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4983,14 +4869,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.915487E-02 -2.416202E-03 -9.120705E-02 -8.318727E-03 -1.320105E+00 -4.411682E-01 -6.959590E-01 -2.389648E-01 +5.306944E-01 +1.477186E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5003,8 +4883,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.662623E-02 -3.206529E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5013,22 +4891,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.023013E-01 +2.462801E-02 +4.590510E-01 +6.395545E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.166586E-02 -1.360923E-04 -1.891160E-02 -3.576487E-04 -1.256901E+00 -4.792247E-01 -1.364915E-01 -1.696517E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.216151E-01 +2.494977E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5037,14 +4913,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.940292E-01 -8.336788E-02 -3.089242E-02 -8.049394E-04 +1.796653E-02 +3.227963E-04 +1.254571E-01 +1.153518E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.798254E-02 +2.302324E-03 +5.031134E-01 +2.531231E-01 +2.554328E+00 +1.871232E+00 +6.528166E-01 +1.601847E-01 +2.396607E-01 +3.096977E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5059,10 +4945,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.020566E-02 +2.520608E-03 +2.933276E-01 +2.725757E-02 +1.772073E+00 +7.789301E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.741968E-04 +3.297019E-07 +4.096107E-02 +1.677809E-03 +1.145151E+00 +6.780541E-01 +1.549730E+00 +9.904989E-01 +1.348937E-01 +1.258874E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5073,18 +4975,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.875810E-02 -7.878000E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.310363E-02 +1.857923E-03 +9.519794E-01 +2.619604E-01 +2.722131E-01 +4.120812E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.365154E-01 +5.215993E-02 +1.740307E+00 +9.539805E-01 +4.838221E-01 +8.982260E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5103,6 +5015,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.831912E-03 +7.800267E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5111,6 +5025,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.594878E-02 +3.130266E-03 +7.245552E-02 +5.249803E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5123,14 +5041,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.925951E-02 -4.796880E-03 -1.765581E-01 -2.014257E-02 +6.999607E-02 +2.229669E-03 +1.085851E+00 +3.131386E-01 +2.346814E-02 +3.212775E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.121136E-02 +3.746830E-03 +3.206848E-02 +1.028387E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5153,22 +5077,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.912672E-01 +5.254983E-02 +8.701937E-02 +7.572371E-03 +1.700075E-02 +2.890254E-04 +2.993514E-01 +4.786535E-02 +6.764819E-01 +2.492324E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.007236E-01 -1.014525E-02 -3.069376E-01 -6.982061E-02 -1.339942E+00 -5.632235E-01 -8.027545E-01 -2.263816E-01 -1.881835E-01 -3.541303E-02 -2.824222E-02 -7.976228E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5193,16 +5115,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.475515E-01 -1.949499E-01 -8.916929E-01 -2.187649E-01 -9.737449E-01 -4.547148E-01 -1.905118E-01 -3.629474E-02 0.000000E+00 0.000000E+00 +1.590925E-01 +2.264019E-02 +2.290539E-01 +5.246570E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5313,10 +5231,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.003849E-01 +1.007713E-02 +1.772745E-02 +3.142623E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.289766E-02 +5.314069E-03 +3.618562E-02 +1.309399E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5339,6 +5265,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.272864E-02 +1.620182E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5347,6 +5275,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.634449E-02 +2.671424E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5393,6 +5323,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.212518E-01 +4.895234E-02 +2.100048E-01 +4.410203E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5403,6 +5337,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.403382E-02 +5.776247E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5411,10 +5347,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.851330E-02 -8.130086E-04 -1.696747E-01 -2.878950E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5427,6 +5359,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.988611E-02 +8.931799E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5443,12 +5377,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.859875E-01 +2.705213E-02 +8.910831E-03 +7.940291E-05 0.000000E+00 0.000000E+00 -2.753509E-02 -7.581810E-04 -2.514105E-01 -5.075004E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5477,6 +5411,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.477605E-01 +1.085632E-02 +2.188892E-01 +1.430397E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5485,10 +5423,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.198658E-01 -8.925041E-02 0.000000E+00 0.000000E+00 +2.196720E-02 +4.825581E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5497,8 +5435,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.990313E-02 -4.886448E-03 +6.912571E-02 +4.778363E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5507,6 +5445,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.562066E-01 +6.564182E-02 +1.021109E-01 +1.042665E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5517,24 +5459,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.101070E-01 +3.281373E-01 +2.258964E-02 +5.102917E-04 0.000000E+00 0.000000E+00 -5.642875E-02 -3.184204E-03 -1.235957E-01 -1.527591E-02 0.000000E+00 0.000000E+00 +2.242398E-01 +5.028348E-02 +5.303166E-01 +1.259944E-01 +2.813696E-01 +7.586511E-02 +5.980735E-02 +3.576919E-03 0.000000E+00 0.000000E+00 -6.620581E-01 -1.938858E-01 -4.607570E-02 -1.247203E-03 0.000000E+00 0.000000E+00 -2.593018E-02 -6.723742E-04 +1.770640E-01 +3.135167E-02 +8.386975E-02 +7.034135E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5543,12 +5491,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.460936E-01 +5.438186E-02 +3.774668E-01 +4.409491E-02 +1.951430E-01 +3.808079E-02 0.000000E+00 0.000000E+00 -3.904410E-02 -1.524442E-03 0.000000E+00 0.000000E+00 +1.308324E-01 +1.711712E-02 +6.446435E-01 +1.469357E-01 +5.953597E-01 +2.237589E-01 +8.752834E-03 +7.661211E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5561,30 +5521,32 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.389223E-01 -5.464846E-02 -1.061647E-01 -1.127094E-02 -1.313508E+00 -4.346493E-01 -4.161910E-02 -1.732150E-03 0.000000E+00 0.000000E+00 +2.474912E-01 +4.482820E-02 +2.558944E+00 +1.501846E+00 +2.498522E+00 +2.037541E+00 +4.592114E-01 +9.549920E-02 +2.651761E-03 +7.031834E-06 +6.728509E-03 +4.527283E-05 +7.206739E-02 +2.632777E-03 +1.258432E+00 +5.033118E-01 +8.325623E-01 +3.432848E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.016283E-01 -1.613053E-01 -5.599819E-01 -9.812234E-02 -5.139185E-01 -1.322866E-01 -2.373992E-01 -5.635838E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5595,10 +5557,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.644227E-02 +2.703482E-04 +9.177910E-01 +3.528077E-01 +4.331510E-01 +6.954968E-02 +2.750792E-01 +3.874842E-02 +5.245578E-02 +2.751608E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.100342E-01 +8.936587E-03 +1.444636E-01 +1.217721E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5607,22 +5583,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.028376E-01 +4.114311E-02 +1.409534E-04 +1.986787E-08 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.913120E-03 -8.486266E-06 -9.098084E-02 -8.277514E-03 0.000000E+00 0.000000E+00 -2.641663E-01 -6.553611E-02 -4.793354E-02 -2.069463E-03 0.000000E+00 0.000000E+00 +2.252382E-03 +5.073226E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5643,18 +5617,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.646738E-02 +2.711747E-04 +1.091128E-02 +1.190561E-04 +9.598634E-03 +5.702904E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.914111E-02 +8.492040E-04 +4.859163E-02 +2.361147E-03 0.000000E+00 0.000000E+00 -6.430714E-02 -4.135408E-03 -2.254006E-01 -5.080543E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5675,10 +5655,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.204163E-02 +4.858335E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.278990E-01 +1.061206E-01 +2.467626E-01 +3.061051E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5709,6 +5695,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.474672E-03 +5.587072E-05 +3.018962E-01 +5.003703E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5735,16 +5725,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.532915E-01 -2.349830E-02 0.000000E+00 0.000000E+00 -2.637807E-03 -6.958026E-06 -9.521605E-03 -9.066095E-05 -7.905417E-02 -6.249562E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5773,10 +5755,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.147382E-02 -2.649554E-03 -1.719918E-01 -1.490049E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5839,6 +5817,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.148943E-01 +1.583098E-02 +3.145520E-01 +5.430577E-02 +1.094922E-01 +1.198853E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5867,6 +5851,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.643295E-01 +6.464662E-02 +3.253838E-01 +5.116839E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5927,6 +5915,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.816236E-03 +7.772602E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5957,10 +5947,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.771011E-02 -3.136480E-04 -3.012324E-02 -9.074096E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5969,8 +5955,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.571548E-01 +5.132783E-02 +2.087595E-02 +2.190083E-04 +2.648409E-02 +3.512423E-04 0.000000E+00 0.000000E+00 +1.332148E-01 +1.774618E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5989,20 +5983,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.305564E-01 -1.704497E-02 -3.518664E-01 -6.212556E-02 -7.817833E-02 -6.111852E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.103340E+00 +1.240889E+00 +8.819452E-01 +3.181477E-01 +3.827031E-01 +1.404169E-01 0.000000E+00 0.000000E+00 +3.650407E-02 +1.332547E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6017,24 +6013,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.070770E-03 +8.227887E-05 0.000000E+00 0.000000E+00 -5.114916E-02 -2.616236E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.740424E-01 -8.028915E-02 -8.000570E-01 -3.176809E-01 -5.666391E-01 -2.831913E-01 -1.643713E-02 -2.701791E-04 0.000000E+00 0.000000E+00 +1.160355E-01 +5.419152E-03 +4.555830E-02 +2.075558E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6043,6 +6035,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.452794E-02 +1.982737E-03 +7.921897E-02 +6.275645E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6053,8 +6049,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.425066E-03 -2.030813E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6063,10 +6057,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.314479E-02 -3.987265E-03 -6.100963E-02 -3.722175E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6079,10 +6069,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.888042E-01 +1.912239E-01 +9.253612E-01 +2.196512E-01 +5.331610E-03 +2.842606E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.088258E-02 +3.706689E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6091,30 +6089,34 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.873816E-02 -9.749225E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.179053E-03 -3.818070E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.154173E-01 -1.332115E-02 -5.192203E-01 -1.359491E-01 0.000000E+00 0.000000E+00 +1.765580E-01 +1.679632E-02 +1.567743E+00 +1.480433E+00 +1.729034E+00 +1.162221E+00 +2.450066E-01 +5.312041E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.772601E-01 +1.750320E-01 +1.001997E+00 +4.479877E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6123,10 +6125,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.643669E-01 -3.773661E-02 -1.333650E-01 -1.778623E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6137,14 +6135,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.198859E-01 +9.794083E-03 +1.970259E-01 +1.355094E-02 +2.437112E-01 +5.939515E-02 +3.383869E-01 +1.145057E-01 +3.802531E-01 +1.445924E-01 0.000000E+00 0.000000E+00 -3.057922E-02 -4.821714E-04 -2.611439E-02 -4.539126E-04 0.000000E+00 0.000000E+00 +2.098808E-01 +4.404995E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6157,14 +6163,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.328371E-01 -6.083581E-02 -3.822069E-02 -1.398374E-03 -1.903328E-01 -2.231214E-02 -3.952764E-01 -1.486302E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6173,6 +6171,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.650113E-02 +1.619032E-03 +5.180023E-01 +1.718152E-01 +3.054682E-01 +9.331081E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6191,14 +6195,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.256222E-02 -1.578095E-04 -9.794148E-02 -9.592534E-03 -1.849303E-01 -1.553794E-02 -7.480357E-01 -1.929178E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6229,12 +6225,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.330682E-01 -1.770714E-02 -8.228934E-01 -3.735503E-01 -4.901155E-02 -2.402132E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6247,6 +6237,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.290812E-02 +1.666195E-04 +5.118466E-01 +2.619870E-01 +1.379429E-01 +1.766885E-02 +3.568103E-01 +6.413693E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6267,14 +6265,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.664911E-01 -2.771927E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.428902E-01 +2.041760E-02 +2.714910E-01 +7.137827E-02 +6.198367E-01 +1.870530E-01 +5.809933E-01 +2.020653E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6305,6 +6309,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.971393E-04 +4.860032E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6389,6 +6395,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.689765E-01 +2.855304E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6417,14 +6425,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.486338E-02 -2.012723E-03 -7.956432E-02 -6.330481E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.121427E-02 +3.747187E-03 +1.313244E-01 +9.930563E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6451,16 +6459,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.194798E-01 -1.427541E-02 -2.732161E-03 -7.464701E-06 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.295197E-01 +1.677535E-02 +1.924219E-01 +2.512176E-02 +1.826581E-01 +3.336399E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6489,6 +6499,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.963040E-01 +2.117115E-01 +1.954654E-01 +1.664314E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6503,8 +6517,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.470039E-01 -2.992133E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6521,6 +6533,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.465142E-02 +3.921415E-04 +9.009686E-02 +8.117444E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6535,10 +6551,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.748612E-02 -3.057643E-04 -4.139057E-01 -1.021512E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6555,10 +6567,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.375350E-01 +7.745005E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.296036E-02 +5.271783E-04 +1.185548E-01 +1.257056E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6567,12 +6585,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.334625E-01 -1.130142E-02 -5.401229E-01 -1.621043E-01 -4.144518E-01 -1.156846E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6587,8 +6599,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.742732E-02 +5.994990E-03 +4.153920E-01 +8.269451E-02 +1.732018E-01 +2.586439E-02 0.000000E+00 0.000000E+00 +3.164105E-02 +1.001156E-03 +4.945695E-01 +1.153516E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6597,20 +6619,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.643310E-02 -9.299344E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.362808E-01 -5.091357E-02 -7.208810E-03 -5.196695E-05 -5.757630E-01 -2.687941E-01 -9.778317E-02 -4.820693E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6623,6 +6635,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.055273E-01 +4.669609E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6631,12 +6645,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.732678E-01 -1.393289E-01 -1.006063E-01 -1.012163E-02 0.000000E+00 0.000000E+00 +2.766028E-02 +7.650912E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6669,10 +6681,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.022896E-02 +2.522948E-03 +2.586997E-01 +6.692555E-02 +1.918447E-02 +3.680440E-04 0.000000E+00 0.000000E+00 -6.086518E-02 -3.704570E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6701,20 +6717,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.399905E-04 +7.055840E-07 0.000000E+00 0.000000E+00 -4.249148E-02 -1.805526E-03 -1.045383E+00 -4.214718E-01 -3.878770E-02 -1.504486E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.895932E-02 +1.517828E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6737,12 +6751,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.784801E-02 -7.755114E-04 -6.779315E-01 -3.352682E-01 -3.026790E-01 -9.161460E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6767,20 +6775,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.879990E-01 -2.203070E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.811002E-01 -4.685901E-01 -1.404927E-01 -1.080893E-02 0.000000E+00 0.000000E+00 +2.310985E-01 +5.309190E-02 0.000000E+00 0.000000E+00 +6.972879E-02 +4.862104E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6801,22 +6807,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.572692E-01 -2.087347E-01 -2.362405E-01 -4.910426E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.965530E-01 -1.979508E-02 -3.230928E-02 -1.043889E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.355608E+00 +6.784243E-01 +1.559912E+00 +6.765918E-01 +4.878546E-01 +1.956002E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6835,16 +6839,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.751268E-03 -3.066940E-06 -1.553462E-01 -2.413243E-02 -1.672350E-01 -2.796753E-02 0.000000E+00 0.000000E+00 -1.836178E-02 -3.371549E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6853,6 +6849,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.239030E-02 +8.535968E-03 +7.362813E-02 +2.487558E-03 +1.539035E-01 +1.472121E-02 +7.239598E-02 +5.241178E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6881,6 +6885,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.299792E-01 +9.530852E-02 +3.641896E-02 +1.168215E-03 +3.511255E-01 +1.232891E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6929,6 +6939,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.815281E-03 +1.455637E-05 +2.447765E-02 +5.991556E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6941,10 +6955,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.696487E-02 -1.366401E-03 -2.858087E-01 -8.168661E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6961,6 +6971,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.509075E-01 +5.120090E-02 +6.346139E-02 +4.027348E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6973,10 +6987,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.258698E-01 -1.150919E-02 -6.798857E-01 -1.661025E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6995,10 +7005,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.503760E-02 -7.231393E-03 -3.103135E-02 -9.629449E-04 +1.279297E-02 +8.440309E-05 +1.992059E-01 +3.968299E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7007,12 +7017,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.008727E+00 -3.651038E-01 -9.120679E-01 -2.558101E-01 -8.721740E-03 -7.606874E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7029,10 +7033,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.649741E-01 -2.721647E-02 -2.540880E-02 -6.456072E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7041,12 +7041,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.739345E-02 -7.504010E-04 -1.627060E-02 -2.647323E-04 0.000000E+00 0.000000E+00 +2.055205E-01 +2.183994E-02 +1.147614E-01 +9.795585E-03 +1.862626E-01 +3.469375E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7075,6 +7077,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.923698E+00 +1.294950E+00 +8.345353E-01 +3.317169E-01 +9.485640E-02 +5.815957E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7103,12 +7111,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.252805E-03 +5.260317E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.309730E-01 -2.570742E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7141,14 +7149,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.115905E+00 -4.082126E-01 -2.502204E-02 -6.261023E-04 +9.708035E-02 +9.424594E-03 +3.352764E-01 +4.028247E-02 +4.250527E-01 +8.344337E-02 +2.283848E-02 +5.215963E-04 0.000000E+00 0.000000E+00 -3.825879E-03 -1.463735E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7167,16 +7177,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.151722E-01 +4.629909E-02 +4.760109E-01 +1.931711E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.880574E-01 +4.653885E-02 +3.526314E-01 +4.256262E-02 +1.257097E-01 +1.580294E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.975077E-01 -1.600492E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7195,8 +7213,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.312274E-01 +9.446273E-02 0.000000E+00 0.000000E+00 +3.356486E-01 +8.519671E-02 +1.924860E-01 +2.805063E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7209,8 +7233,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.269137E-01 -1.610709E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7227,6 +7249,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.025814E-01 +4.103921E-02 +3.047342E-01 +5.638103E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7249,8 +7275,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.207099E-01 -4.871286E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7283,8 +7307,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.075694E-02 -8.236821E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7315,14 +7337,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.767451E-02 -3.123882E-04 -8.696348E-02 -7.562648E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.291473E-01 +1.667902E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7339,8 +7359,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.926562E-02 +1.541789E-03 0.000000E+00 0.000000E+00 +3.675944E-02 +1.351256E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7349,12 +7373,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.690390E-01 -2.753878E-02 -1.145975E-01 -7.543314E-03 0.000000E+00 0.000000E+00 +6.030587E-02 +3.636797E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7371,6 +7393,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.969216E-03 +8.044683E-05 +2.539237E-01 +3.783876E-02 +6.932239E-02 +4.805594E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7379,12 +7407,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.712297E-01 -3.081804E-02 -1.728614E-01 -2.076746E-02 -6.826625E-03 -4.660281E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7413,12 +7435,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.649622E-02 -7.020499E-04 -4.161446E-01 -8.806248E-02 -6.348647E-01 -9.989011E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7451,8 +7467,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.204982E-02 -1.451982E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7503,6 +7517,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.179485E-01 +1.391185E-02 +4.249402E-01 +1.805742E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7531,6 +7549,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.537757E-01 +1.696554E-01 +8.876105E-01 +2.032335E-01 +1.666064E-01 +2.775768E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7553,16 +7577,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.282300E-01 -4.986445E-02 -2.206365E-02 -4.868048E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.024841E-01 +2.020292E-01 +2.199558E-01 +3.376160E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7585,12 +7609,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.875562E-01 -3.517735E-02 -7.738485E-01 -2.045432E-01 -4.058292E-01 -8.243188E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7621,18 +7639,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.994213E-01 -2.494217E-01 -2.744213E-02 -7.530707E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.949405E-02 -7.018464E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7661,10 +7673,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.459022E-03 -7.155505E-05 -3.090219E-01 -9.549453E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7685,8 +7693,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.226097E-01 -1.395661E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7719,12 +7725,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.316493E-01 -1.591047E-02 -6.576990E-01 -1.877309E-01 0.000000E+00 0.000000E+00 +1.260572E-01 +1.589042E-02 +1.006866E-01 +1.013780E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7753,14 +7759,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.546941E-01 -7.107193E-02 -3.321871E-01 -6.515778E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.305037E-02 +3.751423E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7791,6 +7795,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.434563E-02 +1.179623E-03 +5.931758E-01 +3.518576E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7909,6 +7917,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.901538E-02 +3.482815E-03 +1.298430E+00 +6.450758E-01 +3.665245E-02 +1.343402E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7927,12 +7941,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.249399E-02 -4.667888E-03 -1.814462E-01 -3.292273E-02 -7.515014E-02 -5.647544E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7959,12 +7967,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.109046E-01 -8.622176E-02 -2.380422E-01 -3.181133E-02 -1.087532E-01 -6.035666E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7993,12 +7995,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.246408E-03 -2.752480E-05 -3.760855E-02 -1.251291E-03 -5.951856E-02 -3.037461E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8027,8 +8023,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.499600E-02 -2.248801E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8135,14 +8129,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.020604E-02 +1.041632E-04 +1.994839E-01 +3.979382E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.395650E-01 -1.947839E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8165,20 +8161,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.822292E-01 -4.829456E-02 -6.080756E-02 -3.418907E-03 +2.270281E-03 +5.154175E-06 +2.547678E-02 +6.490664E-04 0.000000E+00 0.000000E+00 -1.804108E-01 -2.405851E-02 -5.413665E-02 -2.930777E-03 -4.041026E-01 -8.374291E-02 -5.886833E-02 -3.465481E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8201,16 +8189,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.093664E-02 -5.032006E-03 -5.703113E-02 -3.252549E-03 -7.402747E-01 -2.678271E-01 -2.389658E-02 -5.209213E-04 -5.348373E-01 -8.455667E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8239,12 +8217,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.453284E-01 -1.497004E-01 -1.851055E-01 -1.721223E-02 -1.038418E-01 -1.078313E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8263,8 +8235,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.010211E-02 -3.612264E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8297,8 +8267,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.319919E-02 -3.629541E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8331,8 +8299,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.292774E-01 -8.674372E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8475,8 +8441,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.056616E-01 -4.198926E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8509,8 +8473,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.349640E-02 -5.401721E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.708003E-03 +5.941330E-05 +1.376862E-01 +1.895748E-02 +5.206040E-02 +2.710285E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8537,14 +8579,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.494349E-01 -2.233077E-02 -2.761806E-01 -7.611993E-02 -6.289098E-02 -3.955276E-03 -2.612667E-02 -6.826026E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8571,12 +8605,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.326118E-01 -5.410823E-02 -9.912199E-03 -9.825168E-05 -3.954397E-03 -1.563725E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8605,8 +8633,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.263842E-02 -5.276340E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8749,12 +8775,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.601224E-01 -1.283387E-01 -4.851011E-01 -1.238875E-01 -1.351214E-02 -1.825779E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8781,12 +8801,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.746478E-03 -6.000792E-05 -1.551243E+00 -5.797918E-01 -1.974875E-01 -1.837196E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8817,8 +8831,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.541705E-01 -4.325743E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9053,8 +9065,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.496519E-02 -4.948061E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9087,8 +9097,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.596404E-01 -2.548506E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9115,8 +9123,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.454011E-02 -6.022168E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9149,8 +9155,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.235276E-01 -1.525907E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9359,10 +9363,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.668786E-02 -2.784846E-04 -2.256035E-01 -5.089693E-02 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_fixed_source/results_true.dat b/tests/test_fixed_source/results_true.dat index b3def050e..c4019d9c8 100644 --- a/tests/test_fixed_source/results_true.dat +++ b/tests/test_fixed_source/results_true.dat @@ -1,6 +1,6 @@ tally 1: -4.563929E+02 -2.091711E+04 +4.518781E+02 +2.056383E+04 leakage: -9.780000E+00 -9.566400E+00 +9.750000E+00 +9.508100E+00 diff --git a/tests/test_infinite_cell/results_true.dat b/tests/test_infinite_cell/results_true.dat index 0b8d92951..1cbb83769 100644 --- a/tests/test_infinite_cell/results_true.dat +++ b/tests/test_infinite_cell/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.788797E-02 1.378250E-03 +9.757696E-02 3.308939E-03 diff --git a/tests/test_lattice/results_true.dat b/tests/test_lattice/results_true.dat index cf51dd5d7..1d20d33c4 100644 --- a/tests/test_lattice/results_true.dat +++ b/tests/test_lattice/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.042388E+00 1.575316E-01 +9.682250E-01 3.051607E-02 diff --git a/tests/test_lattice_hex/results_true.dat b/tests/test_lattice_hex/results_true.dat index b88285ff2..0b7aa64b4 100644 --- a/tests/test_lattice_hex/results_true.dat +++ b/tests/test_lattice_hex/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.831014E-01 2.269849E-02 +2.726715E-01 1.182884E-02 diff --git a/tests/test_lattice_mixed/results_true.dat b/tests/test_lattice_mixed/results_true.dat index 7cea76ba0..013e57b25 100644 --- a/tests/test_lattice_mixed/results_true.dat +++ b/tests/test_lattice_mixed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.922449E-01 1.281824E-02 +1.012317E+00 2.704182E-02 diff --git a/tests/test_lattice_multiple/results_true.dat b/tests/test_lattice_multiple/results_true.dat index 6caffdd95..bf50a2756 100644 --- a/tests/test_lattice_multiple/results_true.dat +++ b/tests/test_lattice_multiple/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.005983E+00 2.248579E-02 +9.090848E-01 2.183589E-02 diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 45891fc30..c9be10e74 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,19 +1,19 @@ material group in nuclide mean std. dev. -0 1 1 total 0.419289 0.01638 material group in nuclide mean std. dev. -0 1 1 total 0.07774 0.003273 material group in group out nuclide mean std. dev. -0 1 1 1 total 0.352665 0.015654 material group out nuclide mean std. dev. -0 1 1 total 1 0.119622 material group in nuclide mean std. dev. -0 2 1 total 0.247316 0.009562 material group in nuclide mean std. dev. +0 1 1 total 0.410245 0.027062 material group in nuclide mean std. dev. +0 1 1 total 0.078746 0.008749 material group in group out nuclide mean std. dev. +0 1 1 1 total 0.344581 0.025142 material group out nuclide mean std. dev. +0 1 1 total 1 0.056776 material group in nuclide mean std. dev. +0 2 1 total 0.24133 0.020122 material group in nuclide mean std. dev. 0 2 1 total 0 0 material group in group out nuclide mean std. dev. -0 2 1 1 total 0.244838 0.009996 material group out nuclide mean std. dev. +0 2 1 1 total 0.240146 0.020265 material group out nuclide mean std. dev. 0 2 1 total 0 0 material group in nuclide mean std. dev. -0 3 1 total 0.409938 0.042262 material group in nuclide mean std. dev. +0 3 1 total 0.421036 0.034969 material group in nuclide mean std. dev. 0 3 1 total 0 0 material group in group out nuclide mean std. dev. -0 3 1 1 total 0.403354 0.041386 material group out nuclide mean std. dev. +0 3 1 1 total 0.413828 0.034945 material group out nuclide mean std. dev. 0 3 1 total 0 0 material group in nuclide mean std. dev. -0 4 1 total 0.344007 0.05352 material group in nuclide mean std. dev. +0 4 1 total 0.330201 0.044281 material group in nuclide mean std. dev. 0 4 1 total 0 0 material group in group out nuclide mean std. dev. -0 4 1 1 total 0.340438 0.052067 material group out nuclide mean std. dev. +0 4 1 1 total 0.324648 0.043395 material group out nuclide mean std. dev. 0 4 1 total 0 0 material group in nuclide mean std. dev. 0 5 1 total 0 0 material group in nuclide mean std. dev. 0 5 1 total 0 0 material group in group out nuclide mean std. dev. @@ -30,20 +30,20 @@ 0 8 1 total 0 0 material group in nuclide mean std. dev. 0 8 1 total 0 0 material group in group out nuclide mean std. dev. 0 8 1 1 total 0 0 material group out nuclide mean std. dev. -0 8 1 total 0 0 material group in nuclide mean std. dev. -0 9 1 total 0.751873 0.559701 material group in nuclide mean std. dev. -0 9 1 total 0 0 material group in group out nuclide mean std. dev. -0 9 1 1 total 0.695491 0.50757 material group out nuclide mean std. dev. +0 8 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0 0 material group in group out nuclide mean std. dev. +0 9 1 1 total 0 0 material group out nuclide mean std. dev. 0 9 1 total 0 0 material group in nuclide mean std. dev. 0 10 1 total 0 0 material group in nuclide mean std. dev. 0 10 1 total 0 0 material group in group out nuclide mean std. dev. 0 10 1 1 total 0 0 material group out nuclide mean std. dev. 0 10 1 total 0 0 material group in nuclide mean std. dev. -0 11 1 total 0.457329 0.403578 material group in nuclide mean std. dev. +0 11 1 total 0.467451 0.672448 material group in nuclide mean std. dev. 0 11 1 total 0 0 material group in group out nuclide mean std. dev. -0 11 1 1 total 0.446737 0.392775 material group out nuclide mean std. dev. -0 11 1 total 0 0 material group in nuclide mean std. dev. -0 12 1 total 0.574978 0.38864 material group in nuclide mean std. dev. -0 12 1 total 0 0 material group in group out nuclide mean std. dev. -0 12 1 1 total 0.559478 0.377512 material group out nuclide mean std. dev. +0 11 1 1 total 0.444299 0.638051 material group out nuclide mean std. dev. +0 11 1 total 0 0 material group in nuclide mean std. dev. +0 12 1 total 0 0 material group in nuclide mean std. dev. +0 12 1 total 0 0 material group in group out nuclide mean std. dev. +0 12 1 1 total 0 0 material group out nuclide mean std. dev. 0 12 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 4936da4ce..c86696a58 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ - sum(distribcell) group in nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0.720213 1.424323 sum(distribcell) group in nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 1 total 0.70466 1.403916 sum(distribcell) group out nuclide mean std. dev. + sum(distribcell) group in nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 1 total 0 0 sum(distribcell) group out nuclide mean std. dev. 0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index eec581046..836450061 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,56 +1,56 @@ domain=1 type=transport -[ 0.38437891 0.81208747] -[ 0.01648997 0.07418959] +[ 0.37396684 0.80006722] +[ 0.02769982 0.08850146] domain=1 type=nu-fission -[ 0.02127008 0.69604034] -[ 0.0008939 0.05345764] +[ 0.02299634 0.70592004] +[ 0.00148378 0.12890576] domain=1 type=nu-scatter matrix -[[ 3.49923892e-01 1.73140769e-04] - [ 1.94810926e-03 3.79607212e-01]] -[[ 0.01664928 0.0001732 ] - [ 0.00195193 0.04007819]] +[[ 0.34086643 0.00069685] + [ 0. 0.37700333]] +[[ 0.02663397 0.0001772 ] + [ 0. 0.06914186]] domain=1 type=chi [ 1. 0.] -[ 0.11962178 0. ] +[ 0.05677619 0. ] domain=2 type=transport -[ 0.24504295 0.26645769] -[ 0.00882749 0.05220872] +[ 0.23796562 0.27436119] +[ 0.02150652 0.05068359] domain=2 type=nu-fission [ 0. 0.] [ 0. 0.] domain=2 type=nu-scatter matrix -[[ 0.24365718 0. ] - [ 0. 0.25478661]] -[[ 0.00908307 0. ] - [ 0. 0.05556256]] +[[ 0.23622579 0.00043496] + [ 0. 0.27436119]] +[[ 0.02164652 0.00043568] + [ 0. 0.05068359]] domain=2 type=chi [ 0. 0.] [ 0. 0.] domain=3 type=transport -[ 0.28227749 1.42731974] -[ 0.03724175 0.24712746] +[ 0.28810874 1.42423201] +[ 0.03173526 0.17486068] domain=3 type=nu-fission [ 0. 0.] [ 0. 0.] domain=3 type=nu-scatter matrix -[[ 0.25396726 0.02727268] - [ 0. 1.37652669]] -[[ 0.03617307 0.00180698] - [ 0. 0.2402569 ]] +[[ 0.25843468 0.02889657] + [ 0.00195588 1.36653358]] +[[ 0.03144996 0.0015335 ] + [ 0.00120568 0.17179408]] domain=3 type=chi [ 0. 0.] [ 0. 0.] domain=4 type=transport -[ 0.25572316 1.17976682] -[ 0.05191655 0.22938034] +[ 0.24606392 1.21935024] +[ 0.03881796 0.34515333] domain=4 type=nu-fission [ 0. 0.] [ 0. 0.] domain=4 type=nu-scatter matrix -[[ 0.23297756 0.02228141] - [ 0. 1.14680862]] -[[ 0.04977114 0.00262525] - [ 0. 0.22219839]] +[[ 0.22348748 0.02170811] + [ 0. 1.16429193]] +[[ 0.03791013 0.00162276] + [ 0. 0.33459821]] domain=4 type=chi [ 0. 0.] [ 0. 0.] @@ -111,16 +111,16 @@ domain=8 type=chi [ 0. 0.] [ 0. 0.] domain=9 type=transport -[ 0.50403601 1.68709544] -[ 0.37962374 2.53662237] +[ 0. 0.] +[ 0. 0.] domain=9 type=nu-fission [ 0. 0.] [ 0. 0.] domain=9 type=nu-scatter matrix -[[ 0.50403601 0. ] - [ 0. 1.41795483]] -[[ 0.37962374 0. ] - [ 0. 2.15802716]] +[[ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.]] domain=9 type=chi [ 0. 0.] [ 0. 0.] @@ -139,30 +139,30 @@ domain=10 type=chi [ 0. 0.] [ 0. 0.] domain=11 type=transport -[ 0.30282618 1.00614519] -[ 0.40131081 1.09163785] +[ 0.43011949 0.85701927] +[ 0.69238877 1.94756366] domain=11 type=nu-fission [ 0. 0.] [ 0. 0.] domain=11 type=nu-scatter matrix -[[ 0.27567871 0.02714747] - [ 0. 0.95792921]] -[[ 0.38567601 0.02000859] - [ 0. 1.05195936]] +[[ 0.40474879 0.02537069] + [ 0. 0.59226474]] +[[ 0.65713809 0.03587957] + [ 0. 1.62427067]] domain=11 type=chi [ 0. 0.] [ 0. 0.] domain=12 type=transport -[ 0.25593293 1.11334475] -[ 0.26842571 0.98867569] +[ 0. 0.] +[ 0. 0.] domain=12 type=nu-fission [ 0. 0.] [ 0. 0.] domain=12 type=nu-scatter matrix -[[ 0.22631045 0.02962248] - [ 0. 1.07168976]] -[[ 0.25487194 0.0177599 ] - [ 0. 0.95829029]] +[[ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.]] domain=12 type=chi [ 0. 0.] [ 0. 0.] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 761851268..f16afb897 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,42 +1,42 @@ material group in nuclide mean std. dev. -1 1 1 total 0.384379 0.01649 -0 1 2 total 0.812087 0.07419 material group in nuclide mean std. dev. -1 1 1 total 0.02127 0.000894 -0 1 2 total 0.69604 0.053458 material group in group out nuclide mean std. dev. -3 1 1 1 total 0.349924 0.016649 -2 1 1 2 total 0.000173 0.000173 -1 1 2 1 total 0.001948 0.001952 -0 1 2 2 total 0.379607 0.040078 material group out nuclide mean std. dev. -1 1 1 total 1 0.119622 +1 1 1 total 0.373967 0.027700 +0 1 2 total 0.800067 0.088501 material group in nuclide mean std. dev. +1 1 1 total 0.022996 0.001484 +0 1 2 total 0.705920 0.128906 material group in group out nuclide mean std. dev. +3 1 1 1 total 0.340866 0.026634 +2 1 1 2 total 0.000697 0.000177 +1 1 2 1 total 0.000000 0.000000 +0 1 2 2 total 0.377003 0.069142 material group out nuclide mean std. dev. +1 1 1 total 1 0.056776 0 1 2 total 0 0.000000 material group in nuclide mean std. dev. -1 2 1 total 0.245043 0.008827 -0 2 2 total 0.266458 0.052209 material group in nuclide mean std. dev. +1 2 1 total 0.237966 0.021507 +0 2 2 total 0.274361 0.050684 material group in nuclide mean std. dev. 1 2 1 total 0 0 0 2 2 total 0 0 material group in group out nuclide mean std. dev. -3 2 1 1 total 0.243657 0.009083 -2 2 1 2 total 0.000000 0.000000 +3 2 1 1 total 0.236226 0.021647 +2 2 1 2 total 0.000435 0.000436 1 2 2 1 total 0.000000 0.000000 -0 2 2 2 total 0.254787 0.055563 material group out nuclide mean std. dev. +0 2 2 2 total 0.274361 0.050684 material group out nuclide mean std. dev. 1 2 1 total 0 0 0 2 2 total 0 0 material group in nuclide mean std. dev. -1 3 1 total 0.282277 0.037242 -0 3 2 total 1.427320 0.247127 material group in nuclide mean std. dev. +1 3 1 total 0.288109 0.031735 +0 3 2 total 1.424232 0.174861 material group in nuclide mean std. dev. 1 3 1 total 0 0 0 3 2 total 0 0 material group in group out nuclide mean std. dev. -3 3 1 1 total 0.253967 0.036173 -2 3 1 2 total 0.027273 0.001807 -1 3 2 1 total 0.000000 0.000000 -0 3 2 2 total 1.376527 0.240257 material group out nuclide mean std. dev. +3 3 1 1 total 0.258435 0.031450 +2 3 1 2 total 0.028897 0.001533 +1 3 2 1 total 0.001956 0.001206 +0 3 2 2 total 1.366534 0.171794 material group out nuclide mean std. dev. 1 3 1 total 0 0 0 3 2 total 0 0 material group in nuclide mean std. dev. -1 4 1 total 0.255723 0.051917 -0 4 2 total 1.179767 0.229380 material group in nuclide mean std. dev. +1 4 1 total 0.246064 0.038818 +0 4 2 total 1.219350 0.345153 material group in nuclide mean std. dev. 1 4 1 total 0 0 0 4 2 total 0 0 material group in group out nuclide mean std. dev. -3 4 1 1 total 0.232978 0.049771 -2 4 1 2 total 0.022281 0.002625 +3 4 1 1 total 0.223487 0.037910 +2 4 1 2 total 0.021708 0.001623 1 4 2 1 total 0.000000 0.000000 -0 4 2 2 total 1.146809 0.222198 material group out nuclide mean std. dev. +0 4 2 2 total 1.164292 0.334598 material group out nuclide mean std. dev. 1 4 1 total 0 0 0 4 2 total 0 0 material group in nuclide mean std. dev. 1 5 1 total 0 0 @@ -78,15 +78,15 @@ 1 8 2 1 total 0 0 0 8 2 2 total 0 0 material group out nuclide mean std. dev. 1 8 1 total 0 0 -0 8 2 total 0 0 material group in nuclide mean std. dev. -1 9 1 total 0.504036 0.379624 -0 9 2 total 1.687095 2.536622 material group in nuclide mean std. dev. +0 8 2 total 0 0 material group in nuclide mean std. dev. 1 9 1 total 0 0 -0 9 2 total 0 0 material group in group out nuclide mean std. dev. -3 9 1 1 total 0.504036 0.379624 -2 9 1 2 total 0.000000 0.000000 -1 9 2 1 total 0.000000 0.000000 -0 9 2 2 total 1.417955 2.158027 material group out nuclide mean std. dev. +0 9 2 total 0 0 material group in nuclide mean std. dev. +1 9 1 total 0 0 +0 9 2 total 0 0 material group in group out nuclide mean std. dev. +3 9 1 1 total 0 0 +2 9 1 2 total 0 0 +1 9 2 1 total 0 0 +0 9 2 2 total 0 0 material group out nuclide mean std. dev. 1 9 1 total 0 0 0 9 2 total 0 0 material group in nuclide mean std. dev. 1 10 1 total 0 0 @@ -99,23 +99,23 @@ 0 10 2 2 total 0 0 material group out nuclide mean std. dev. 1 10 1 total 0 0 0 10 2 total 0 0 material group in nuclide mean std. dev. -1 11 1 total 0.302826 0.401311 -0 11 2 total 1.006145 1.091638 material group in nuclide mean std. dev. +1 11 1 total 0.430119 0.692389 +0 11 2 total 0.857019 1.947564 material group in nuclide mean std. dev. 1 11 1 total 0 0 0 11 2 total 0 0 material group in group out nuclide mean std. dev. -3 11 1 1 total 0.275679 0.385676 -2 11 1 2 total 0.027147 0.020009 +3 11 1 1 total 0.404749 0.657138 +2 11 1 2 total 0.025371 0.035880 1 11 2 1 total 0.000000 0.000000 -0 11 2 2 total 0.957929 1.051959 material group out nuclide mean std. dev. +0 11 2 2 total 0.592265 1.624271 material group out nuclide mean std. dev. 1 11 1 total 0 0 -0 11 2 total 0 0 material group in nuclide mean std. dev. -1 12 1 total 0.255933 0.268426 -0 12 2 total 1.113345 0.988676 material group in nuclide mean std. dev. +0 11 2 total 0 0 material group in nuclide mean std. dev. 1 12 1 total 0 0 -0 12 2 total 0 0 material group in group out nuclide mean std. dev. -3 12 1 1 total 0.226310 0.254872 -2 12 1 2 total 0.029622 0.017760 -1 12 2 1 total 0.000000 0.000000 -0 12 2 2 total 1.071690 0.958290 material group out nuclide mean std. dev. +0 12 2 total 0 0 material group in nuclide mean std. dev. +1 12 1 total 0 0 +0 12 2 total 0 0 material group in group out nuclide mean std. dev. +3 12 1 1 total 0 0 +2 12 1 2 total 0 0 +1 12 2 1 total 0 0 +0 12 2 2 total 0 0 material group out nuclide mean std. dev. 1 12 1 total 0 0 0 12 2 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 23ac0e423..c3d109301 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1,14 +1,14 @@ material group in nuclide mean std. dev. -34 1 1 U-234 0.000000 0.000000 -35 1 1 U-235 0.008559 0.001742 -36 1 1 U-236 0.002643 0.000794 -37 1 1 U-238 0.213622 0.010911 +34 1 1 U-234 0.000164 0.000175 +35 1 1 U-235 0.008231 0.001132 +36 1 1 U-236 0.001233 0.001217 +37 1 1 U-238 0.202077 0.017282 38 1 1 Np-237 0.000000 0.000000 39 1 1 Pu-238 0.000000 0.000000 -40 1 1 Pu-239 0.005787 0.001050 -41 1 1 Pu-240 0.005702 0.000850 -42 1 1 Pu-241 0.000869 0.000366 -43 1 1 Pu-242 0.000655 0.000537 +40 1 1 Pu-239 0.004777 0.001236 +41 1 1 Pu-240 0.005654 0.000687 +42 1 1 Pu-241 0.001077 0.000847 +43 1 1 Pu-242 0.000000 0.000000 44 1 1 Am-241 0.000000 0.000000 45 1 1 Am-242m 0.000000 0.000000 46 1 1 Am-243 0.000000 0.000000 @@ -16,74 +16,74 @@ 48 1 1 Cm-243 0.000000 0.000000 49 1 1 Cm-244 0.000000 0.000000 50 1 1 Cm-245 0.000000 0.000000 -51 1 1 Mo-95 0.000302 0.000216 -52 1 1 Tc-99 0.000782 0.000434 -53 1 1 Ru-101 0.000346 0.000212 +51 1 1 Mo-95 0.000563 0.000254 +52 1 1 Tc-99 0.000625 0.000364 +53 1 1 Ru-101 0.000129 0.000180 54 1 1 Ru-103 0.000000 0.000000 55 1 1 Ag-109 0.000000 0.000000 56 1 1 Xe-135 0.000000 0.000000 -57 1 1 Cs-133 0.000189 0.000264 -58 1 1 Nd-143 0.000721 0.000364 -59 1 1 Nd-145 0.000637 0.000253 -60 1 1 Sm-147 0.000009 0.000238 +57 1 1 Cs-133 0.000352 0.000274 +58 1 1 Nd-143 0.000991 0.000577 +59 1 1 Nd-145 0.000517 0.000369 +60 1 1 Sm-147 0.000000 0.000000 61 1 1 Sm-149 0.000000 0.000000 -62 1 1 Sm-150 0.000003 0.000243 +62 1 1 Sm-150 0.000191 0.000175 63 1 1 Sm-151 0.000000 0.000000 -64 1 1 Sm-152 0.000874 0.000388 -65 1 1 Eu-153 0.000173 0.000173 +64 1 1 Sm-152 0.001106 0.000310 +65 1 1 Eu-153 0.000174 0.000174 66 1 1 Gd-155 0.000000 0.000000 -67 1 1 O-16 0.142506 0.008222 -0 1 2 U-234 0.001948 0.001952 -1 1 2 U-235 0.179956 0.028209 +67 1 1 O-16 0.146107 0.011033 +0 1 2 U-234 0.000000 0.000000 +1 1 2 U-235 0.175076 0.016125 2 1 2 U-236 0.000000 0.000000 -3 1 2 U-238 0.239279 0.039048 +3 1 2 U-238 0.216781 0.038123 4 1 2 Np-237 0.000000 0.000000 5 1 2 Pu-238 0.000000 0.000000 -6 1 2 Pu-239 0.159745 0.015751 -7 1 2 Pu-240 0.007792 0.003677 -8 1 2 Pu-241 0.017533 0.003806 +6 1 2 Pu-239 0.159673 0.015238 +7 1 2 Pu-240 0.018720 0.005305 +8 1 2 Pu-241 0.022464 0.009775 9 1 2 Pu-242 0.000000 0.000000 -10 1 2 Am-241 0.000000 0.000000 +10 1 2 Am-241 0.001872 0.001877 11 1 2 Am-242m 0.000000 0.000000 12 1 2 Am-243 0.000000 0.000000 13 1 2 Cm-242 0.000000 0.000000 14 1 2 Cm-243 0.000000 0.000000 15 1 2 Cm-244 0.000000 0.000000 16 1 2 Cm-245 0.000000 0.000000 -17 1 2 Mo-95 0.002250 0.004232 -18 1 2 Tc-99 0.003544 0.002528 +17 1 2 Mo-95 0.000000 0.000000 +18 1 2 Tc-99 0.000000 0.000000 19 1 2 Ru-101 0.000000 0.000000 20 1 2 Ru-103 0.000000 0.000000 21 1 2 Ag-109 0.000000 0.000000 -22 1 2 Xe-135 0.027274 0.004025 -23 1 2 Cs-133 0.000000 0.000000 -24 1 2 Nd-143 0.006532 0.002517 -25 1 2 Nd-145 0.001948 0.001952 +22 1 2 Xe-135 0.014792 0.004201 +23 1 2 Cs-133 0.001872 0.001877 +24 1 2 Nd-143 0.007258 0.003270 +25 1 2 Nd-145 0.003755 0.002966 26 1 2 Sm-147 0.000000 0.000000 -27 1 2 Sm-149 0.007792 0.005701 -28 1 2 Sm-150 0.000000 0.000000 -29 1 2 Sm-151 0.000000 0.000000 +27 1 2 Sm-149 0.001872 0.001877 +28 1 2 Sm-150 0.001872 0.001877 +29 1 2 Sm-151 0.003744 0.002309 30 1 2 Sm-152 0.000000 0.000000 -31 1 2 Eu-153 0.001686 0.001968 +31 1 2 Eu-153 0.000000 0.000000 32 1 2 Gd-155 0.000000 0.000000 -33 1 2 O-16 0.154807 0.023798 material group in nuclide mean std. dev. -34 1 1 U-234 6.771527e-06 2.982583e-07 -35 1 1 U-235 9.687933e-03 4.305720e-04 -36 1 1 U-236 6.279974e-05 3.653120e-06 -37 1 1 U-238 6.335930e-03 4.715525e-04 -38 1 1 Np-237 1.237030e-05 6.333955e-07 -39 1 1 Pu-238 7.369063e-06 5.017525e-07 -40 1 1 Pu-239 4.007893e-03 2.607619e-04 -41 1 1 Pu-240 6.479096e-05 3.728060e-06 -42 1 1 Pu-241 1.074454e-03 4.688479e-05 -43 1 1 Pu-242 5.512610e-06 2.976651e-07 -44 1 1 Am-241 1.088373e-06 8.489934e-08 -45 1 1 Am-242m 1.143307e-06 9.912400e-08 -46 1 1 Am-243 7.745526e-07 5.413923e-08 -47 1 1 Cm-242 4.311566e-07 1.922427e-08 -48 1 1 Cm-243 2.363328e-07 2.235666e-08 -49 1 1 Cm-244 2.840125e-07 2.412051e-08 -50 1 1 Cm-245 3.017505e-07 1.594090e-08 +33 1 2 O-16 0.170318 0.040164 material group in nuclide mean std. dev. +34 1 1 U-234 7.238811e-06 5.898159e-07 +35 1 1 U-235 1.025668e-02 7.748371e-04 +36 1 1 U-236 8.347436e-05 5.733633e-06 +37 1 1 U-238 7.211700e-03 6.985444e-04 +38 1 1 Np-237 1.316022e-05 1.028609e-06 +39 1 1 Pu-238 7.923472e-06 5.003103e-07 +40 1 1 Pu-239 4.217305e-03 3.227135e-04 +41 1 1 Pu-240 7.114707e-05 5.058746e-06 +42 1 1 Pu-241 1.117266e-03 6.330109e-05 +43 1 1 Pu-242 5.957920e-06 5.003279e-07 +44 1 1 Am-241 1.271200e-06 6.380801e-08 +45 1 1 Am-242m 1.105610e-06 5.834143e-08 +46 1 1 Am-243 8.498728e-07 6.946281e-08 +47 1 1 Cm-242 4.705032e-07 3.420756e-08 +48 1 1 Cm-243 2.054524e-07 1.656685e-08 +49 1 1 Cm-244 3.011697e-07 4.129449e-08 +50 1 1 Cm-245 2.771160e-07 1.432237e-08 51 1 1 Mo-95 0.000000e+00 0.000000e+00 52 1 1 Tc-99 0.000000e+00 0.000000e+00 53 1 1 Ru-101 0.000000e+00 0.000000e+00 @@ -101,23 +101,23 @@ 65 1 1 Eu-153 0.000000e+00 0.000000e+00 66 1 1 Gd-155 0.000000e+00 0.000000e+00 67 1 1 O-16 0.000000e+00 0.000000e+00 -0 1 2 U-234 4.267300e-07 3.529845e-08 -1 1 2 U-235 3.629246e-01 2.964548e-02 -2 1 2 U-236 5.921657e-06 4.881464e-07 -3 1 2 U-238 5.196256e-07 4.286610e-08 -4 1 2 Np-237 2.424211e-07 1.741823e-08 -5 1 2 Pu-238 3.255627e-05 2.692686e-06 -6 1 2 Pu-239 2.868384e-01 2.056896e-02 -7 1 2 Pu-240 4.398266e-06 3.658267e-07 -8 1 2 Pu-241 4.607239e-02 3.797176e-03 -9 1 2 Pu-242 8.451967e-08 6.979002e-09 -10 1 2 Am-241 4.678607e-06 3.253889e-07 -11 1 2 Am-242m 1.417675e-04 1.218350e-05 -12 1 2 Am-243 7.648834e-08 6.303843e-09 -13 1 2 Cm-242 9.433314e-07 7.794362e-08 -14 1 2 Cm-243 1.767995e-06 1.454123e-07 -15 1 2 Cm-244 1.533962e-07 1.266951e-08 -16 1 2 Cm-245 1.145063e-05 9.419051e-07 +0 1 2 U-234 4.396211e-07 8.415758e-08 +1 1 2 U-235 3.756376e-01 7.229188e-02 +2 1 2 U-236 6.080198e-06 1.134149e-06 +3 1 2 U-238 5.336844e-07 1.001346e-07 +4 1 2 Np-237 2.578615e-07 4.431602e-08 +5 1 2 Pu-238 3.455264e-05 7.228008e-06 +6 1 2 Pu-239 2.843774e-01 4.965537e-02 +7 1 2 Pu-240 4.575101e-06 7.913823e-07 +8 1 2 Pu-241 4.569839e-02 8.558032e-03 +9 1 2 Pu-242 8.689493e-08 1.642236e-08 +10 1 2 Am-241 5.035346e-06 7.998367e-07 +11 1 2 Am-242m 1.398348e-04 2.569623e-05 +12 1 2 Am-243 7.882610e-08 1.449885e-08 +13 1 2 Cm-242 9.701077e-07 1.841283e-07 +14 1 2 Cm-243 1.830906e-06 3.314797e-07 +15 1 2 Cm-244 1.576930e-07 2.984998e-08 +16 1 2 Cm-245 1.213282e-05 2.473385e-06 17 1 2 Mo-95 0.000000e+00 0.000000e+00 18 1 2 Tc-99 0.000000e+00 0.000000e+00 19 1 2 Ru-101 0.000000e+00 0.000000e+00 @@ -135,16 +135,16 @@ 31 1 2 Eu-153 0.000000e+00 0.000000e+00 32 1 2 Gd-155 0.000000e+00 0.000000e+00 33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide mean std. dev. -102 1 1 1 U-234 0.000000 0.000000 -103 1 1 1 U-235 0.002846 0.001185 -104 1 1 1 U-236 0.001951 0.000829 -105 1 1 1 U-238 0.197520 0.011618 +102 1 1 1 U-234 0.000164 0.000175 +103 1 1 1 U-235 0.003179 0.000940 +104 1 1 1 U-236 0.001058 0.001049 +105 1 1 1 U-238 0.184481 0.016782 106 1 1 1 Np-237 0.000000 0.000000 107 1 1 1 Pu-238 0.000000 0.000000 -108 1 1 1 Pu-239 0.001285 0.000461 -109 1 1 1 Pu-240 0.001027 0.000635 -110 1 1 1 Pu-241 0.000004 0.000242 -111 1 1 1 Pu-242 0.000481 0.000372 +108 1 1 1 Pu-239 0.001989 0.000808 +109 1 1 1 Pu-240 0.000950 0.000532 +110 1 1 1 Pu-241 0.000554 0.000524 +111 1 1 1 Pu-242 0.000000 0.000000 112 1 1 1 Am-241 0.000000 0.000000 113 1 1 1 Am-242m 0.000000 0.000000 114 1 1 1 Am-243 0.000000 0.000000 @@ -152,23 +152,23 @@ 116 1 1 1 Cm-243 0.000000 0.000000 117 1 1 1 Cm-244 0.000000 0.000000 118 1 1 1 Cm-245 0.000000 0.000000 -119 1 1 1 Mo-95 0.000302 0.000216 -120 1 1 1 Tc-99 0.000262 0.000195 -121 1 1 1 Ru-101 0.000000 0.000000 +119 1 1 1 Mo-95 0.000388 0.000282 +120 1 1 1 Tc-99 0.000277 0.000203 +121 1 1 1 Ru-101 0.000129 0.000180 122 1 1 1 Ru-103 0.000000 0.000000 123 1 1 1 Ag-109 0.000000 0.000000 124 1 1 1 Xe-135 0.000000 0.000000 -125 1 1 1 Cs-133 0.000016 0.000234 -126 1 1 1 Nd-143 0.000721 0.000364 -127 1 1 1 Nd-145 0.000463 0.000281 -128 1 1 1 Sm-147 0.000009 0.000238 +125 1 1 1 Cs-133 0.000004 0.000244 +126 1 1 1 Nd-143 0.000643 0.000505 +127 1 1 1 Nd-145 0.000342 0.000389 +128 1 1 1 Sm-147 0.000000 0.000000 129 1 1 1 Sm-149 0.000000 0.000000 -130 1 1 1 Sm-150 0.000003 0.000243 +130 1 1 1 Sm-150 0.000191 0.000175 131 1 1 1 Sm-151 0.000000 0.000000 -132 1 1 1 Sm-152 0.000700 0.000424 +132 1 1 1 Sm-152 0.001106 0.000310 133 1 1 1 Eu-153 0.000000 0.000000 134 1 1 1 Gd-155 0.000000 0.000000 -135 1 1 1 O-16 0.142333 0.008156 +135 1 1 1 O-16 0.145411 0.010996 68 1 1 2 U-234 0.000000 0.000000 69 1 1 2 U-235 0.000000 0.000000 70 1 1 2 U-236 0.000000 0.000000 @@ -202,7 +202,7 @@ 98 1 1 2 Sm-152 0.000000 0.000000 99 1 1 2 Eu-153 0.000000 0.000000 100 1 1 2 Gd-155 0.000000 0.000000 -101 1 1 2 O-16 0.000173 0.000173 +101 1 1 2 O-16 0.000697 0.000177 34 1 2 1 U-234 0.000000 0.000000 35 1 2 1 U-235 0.000000 0.000000 36 1 2 1 U-236 0.000000 0.000000 @@ -236,14 +236,14 @@ 64 1 2 1 Sm-152 0.000000 0.000000 65 1 2 1 Eu-153 0.000000 0.000000 66 1 2 1 Gd-155 0.000000 0.000000 -67 1 2 1 O-16 0.001948 0.001952 +67 1 2 1 O-16 0.000000 0.000000 0 1 2 2 U-234 0.000000 0.000000 -1 1 2 2 U-235 0.010470 0.006106 +1 1 2 2 U-235 0.012215 0.007232 2 1 2 2 U-236 0.000000 0.000000 -3 1 2 2 U-238 0.208109 0.039197 +3 1 2 2 U-238 0.184958 0.030436 4 1 2 2 Np-237 0.000000 0.000000 5 1 2 2 Pu-238 0.000000 0.000000 -6 1 2 2 Pu-239 0.000000 0.000000 +6 1 2 2 Pu-239 0.002428 0.001961 7 1 2 2 Pu-240 0.000000 0.000000 8 1 2 2 Pu-241 0.000000 0.000000 9 1 2 2 Pu-242 0.000000 0.000000 @@ -254,32 +254,32 @@ 14 1 2 2 Cm-243 0.000000 0.000000 15 1 2 2 Cm-244 0.000000 0.000000 16 1 2 2 Cm-245 0.000000 0.000000 -17 1 2 2 Mo-95 0.000302 0.002551 -18 1 2 2 Tc-99 0.003544 0.002528 +17 1 2 2 Mo-95 0.000000 0.000000 +18 1 2 2 Tc-99 0.000000 0.000000 19 1 2 2 Ru-101 0.000000 0.000000 20 1 2 2 Ru-103 0.000000 0.000000 21 1 2 2 Ag-109 0.000000 0.000000 -22 1 2 2 Xe-135 0.000000 0.000000 +22 1 2 2 Xe-135 0.003560 0.003090 23 1 2 2 Cs-133 0.000000 0.000000 -24 1 2 2 Nd-143 0.002636 0.002073 -25 1 2 2 Nd-145 0.000000 0.000000 +24 1 2 2 Nd-143 0.003514 0.002641 +25 1 2 2 Nd-145 0.000011 0.002640 26 1 2 2 Sm-147 0.000000 0.000000 27 1 2 2 Sm-149 0.000000 0.000000 28 1 2 2 Sm-150 0.000000 0.000000 29 1 2 2 Sm-151 0.000000 0.000000 30 1 2 2 Sm-152 0.000000 0.000000 -31 1 2 2 Eu-153 0.001686 0.001968 +31 1 2 2 Eu-153 0.000000 0.000000 32 1 2 2 Gd-155 0.000000 0.000000 -33 1 2 2 O-16 0.152859 0.022894 material group out nuclide mean std. dev. +33 1 2 2 O-16 0.170318 0.040164 material group out nuclide mean std. dev. 34 1 1 U-234 0 0.000000 -35 1 1 U-235 1 0.127079 -36 1 1 U-236 0 0.000000 -37 1 1 U-238 1 0.153215 +35 1 1 U-235 1 0.036464 +36 1 1 U-236 1 1.414214 +37 1 1 U-238 1 0.232666 38 1 1 Np-237 0 0.000000 39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.150979 +40 1 1 Pu-239 1 0.106688 41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.203534 +42 1 1 Pu-241 1 0.317035 43 1 1 Pu-242 0 0.000000 44 1 1 Am-241 0 0.000000 45 1 1 Am-242m 0 0.000000 @@ -339,16 +339,16 @@ 31 1 2 Eu-153 0 0.000000 32 1 2 Gd-155 0 0.000000 33 1 2 O-16 0 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0.118578 0.008347 -6 2 1 Zr-91 0.040887 0.002988 -7 2 1 Zr-92 0.033882 0.004365 -8 2 1 Zr-94 0.046281 0.005422 -9 2 1 Zr-96 0.005415 0.002113 -0 2 2 Zr-90 0.122479 0.032627 -1 2 2 Zr-91 0.035669 0.009683 -2 2 2 Zr-92 0.049331 0.021936 -3 2 2 Zr-94 0.058978 0.020081 -4 2 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. +5 2 1 Zr-90 0.107693 0.014218 +6 2 1 Zr-91 0.035302 0.006932 +7 2 1 Zr-92 0.045224 0.003966 +8 2 1 Zr-94 0.043310 0.007048 +9 2 1 Zr-96 0.006437 0.001752 +0 2 2 Zr-90 0.134757 0.026961 +1 2 2 Zr-91 0.040725 0.010553 +2 2 2 Zr-92 0.014433 0.019906 +3 2 2 Zr-94 0.074322 0.020213 +4 2 2 Zr-96 0.010124 0.008870 material group in nuclide mean std. dev. 5 2 1 Zr-90 0 0 6 2 1 Zr-91 0 0 7 2 1 Zr-92 0 0 @@ -359,26 +359,26 @@ 2 2 2 Zr-92 0 0 3 2 2 Zr-94 0 0 4 2 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -15 2 1 1 Zr-90 0.118578 0.008347 -16 2 1 1 Zr-91 0.039963 0.003053 -17 2 1 1 Zr-92 0.033882 0.004365 -18 2 1 1 Zr-94 0.046281 0.005422 -19 2 1 1 Zr-96 0.004953 0.002087 +15 2 1 1 Zr-90 0.107693 0.014218 +16 2 1 1 Zr-91 0.034432 0.007212 +17 2 1 1 Zr-92 0.044789 0.004020 +18 2 1 1 Zr-94 0.042875 0.007257 +19 2 1 1 Zr-96 0.006437 0.001752 10 2 1 2 Zr-90 0.000000 0.000000 11 2 1 2 Zr-91 0.000000 0.000000 12 2 1 2 Zr-92 0.000000 0.000000 -13 2 1 2 Zr-94 0.000000 0.000000 +13 2 1 2 Zr-94 0.000435 0.000436 14 2 1 2 Zr-96 0.000000 0.000000 5 2 2 1 Zr-90 0.000000 0.000000 6 2 2 1 Zr-91 0.000000 0.000000 7 2 2 1 Zr-92 0.000000 0.000000 8 2 2 1 Zr-94 0.000000 0.000000 9 2 2 1 Zr-96 0.000000 0.000000 -0 2 2 2 Zr-90 0.122479 0.032627 -1 2 2 2 Zr-91 0.023998 0.011915 -2 2 2 2 Zr-92 0.049331 0.021936 -3 2 2 2 Zr-94 0.058978 0.020081 -4 2 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. +0 2 2 2 Zr-90 0.134757 0.026961 +1 2 2 2 Zr-91 0.040725 0.010553 +2 2 2 2 Zr-92 0.014433 0.019906 +3 2 2 2 Zr-94 0.074322 0.020213 +4 2 2 2 Zr-96 0.010124 0.008870 material group out nuclide mean std. dev. 5 2 1 Zr-90 0 0 6 2 1 Zr-91 0 0 7 2 1 Zr-92 0 0 @@ -389,14 +389,14 @@ 2 2 2 Zr-92 0 0 3 2 2 Zr-94 0 0 4 2 2 Zr-96 0 0 material group in nuclide mean std. dev. -4 3 1 H-1 0.206179 0.034791 -5 3 1 O-16 0.075190 0.004750 -6 3 1 B-10 0.000741 0.000470 -7 3 1 B-11 0.000167 0.000208 -0 3 2 H-1 1.323003 0.239067 -1 3 2 O-16 0.071243 0.013291 -2 3 2 B-10 0.033075 0.004283 -3 3 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. +4 3 1 H-1 0.211941 0.029479 +5 3 1 O-16 0.075510 0.004901 +6 3 1 B-10 0.000648 0.000291 +7 3 1 B-11 0.000009 0.000177 +0 3 2 H-1 1.268594 0.168369 +1 3 2 O-16 0.105889 0.012655 +2 3 2 B-10 0.047919 0.009174 +3 3 2 B-11 0.001830 0.001303 material group in nuclide mean std. dev. 4 3 1 H-1 0 0 5 3 1 O-16 0 0 6 3 1 B-10 0 0 @@ -405,22 +405,22 @@ 1 3 2 O-16 0 0 2 3 2 B-10 0 0 3 3 2 B-11 0 0 material group in group out nuclide mean std. dev. -12 3 1 1 H-1 0.178758 0.033618 -13 3 1 1 O-16 0.075042 0.004782 +12 3 1 1 H-1 0.183045 0.029114 +13 3 1 1 O-16 0.075381 0.004923 14 3 1 1 B-10 0.000000 0.000000 -15 3 1 1 B-11 0.000167 0.000208 -8 3 1 2 H-1 0.027124 0.001806 -9 3 1 2 O-16 0.000148 0.000148 +15 3 1 1 B-11 0.000009 0.000177 +8 3 1 2 H-1 0.028897 0.001533 +9 3 1 2 O-16 0.000000 0.000000 10 3 1 2 B-10 0.000000 0.000000 11 3 1 2 B-11 0.000000 0.000000 -4 3 2 1 H-1 0.000000 0.000000 -5 3 2 1 O-16 0.000000 0.000000 +4 3 2 1 H-1 0.000978 0.000980 +5 3 2 1 O-16 0.000978 0.000980 6 3 2 1 B-10 0.000000 0.000000 7 3 2 1 B-11 0.000000 0.000000 -0 3 2 2 H-1 1.305284 0.235145 -1 3 2 2 O-16 0.071243 0.013291 +0 3 2 2 H-1 1.259793 0.167200 +1 3 2 2 O-16 0.104911 0.012500 2 3 2 2 B-10 0.000000 0.000000 -3 3 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. +3 3 2 2 B-11 0.001830 0.001303 material group out nuclide mean std. dev. 4 3 1 H-1 0 0 5 3 1 O-16 0 0 6 3 1 B-10 0 0 @@ -429,13 +429,13 @@ 1 3 2 O-16 0 0 2 3 2 B-10 0 0 3 3 2 B-11 0 0 material group in nuclide mean std. dev. -4 4 1 H-1 0.188813 0.045599 -5 4 1 O-16 0.066636 0.008217 -6 4 1 B-10 0.000232 0.000233 -7 4 1 B-11 0.000042 0.000300 -0 4 2 H-1 1.088920 0.221595 -1 4 2 O-16 0.064481 0.014318 -2 4 2 B-10 0.026367 0.010478 +4 4 1 H-1 0.174218 0.038828 +5 4 1 O-16 0.070445 0.006116 +6 4 1 B-10 0.000868 0.000356 +7 4 1 B-11 0.000533 0.000379 +0 4 2 H-1 1.101947 0.312129 +1 4 2 O-16 0.074580 0.031899 +2 4 2 B-10 0.042823 0.011148 3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. 4 4 1 H-1 0 0 5 4 1 O-16 0 0 @@ -445,20 +445,20 @@ 1 4 2 O-16 0 0 2 4 2 B-10 0 0 3 4 2 B-11 0 0 material group in group out nuclide mean std. dev. -12 4 1 1 H-1 0.166764 0.043861 -13 4 1 1 O-16 0.066172 0.007943 +12 4 1 1 H-1 0.152799 0.038054 +13 4 1 1 O-16 0.070155 0.006104 14 4 1 1 B-10 0.000000 0.000000 -15 4 1 1 B-11 0.000042 0.000300 -8 4 1 2 H-1 0.021817 0.002327 -9 4 1 2 O-16 0.000464 0.000466 +15 4 1 1 B-11 0.000533 0.000379 +8 4 1 2 H-1 0.021419 0.001438 +9 4 1 2 O-16 0.000289 0.000290 10 4 1 2 B-10 0.000000 0.000000 11 4 1 2 B-11 0.000000 0.000000 4 4 2 1 H-1 0.000000 0.000000 5 4 2 1 O-16 0.000000 0.000000 6 4 2 1 B-10 0.000000 0.000000 7 4 2 1 B-11 0.000000 0.000000 -0 4 2 2 H-1 1.082328 0.222438 -1 4 2 2 O-16 0.064481 0.014318 +0 4 2 2 H-1 1.089712 0.310379 +1 4 2 2 O-16 0.074580 0.031899 2 4 2 2 B-10 0.000000 0.000000 3 4 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. 4 4 1 H-1 0 0 @@ -1368,49 +1368,7 @@ 17 8 2 Cr-50 0 0 18 8 2 Cr-52 0 0 19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 9 1 H-1 0.106160 0.179178 -22 9 1 O-16 0.272020 0.171699 -23 9 1 B-10 0.000000 0.000000 -24 9 1 B-11 0.000000 0.000000 -25 9 1 Fe-54 0.000000 0.000000 -26 9 1 Fe-56 0.000000 0.000000 -27 9 1 Fe-57 0.000000 0.000000 -28 9 1 Fe-58 0.000000 0.000000 -29 9 1 Ni-58 0.000000 0.000000 -30 9 1 Ni-60 0.000000 0.000000 -31 9 1 Ni-61 0.000000 0.000000 -32 9 1 Ni-62 0.000000 0.000000 -33 9 1 Ni-64 0.000000 0.000000 -34 9 1 Mn-55 0.085133 0.082479 -35 9 1 Si-28 0.000000 0.000000 -36 9 1 Si-29 0.000000 0.000000 -37 9 1 Si-30 0.000000 0.000000 -38 9 1 Cr-50 0.000000 0.000000 -39 9 1 Cr-52 0.000000 0.000000 -40 9 1 Cr-53 0.040723 0.079827 -41 9 1 Cr-54 0.000000 0.000000 -0 9 2 H-1 1.417955 2.158027 -1 9 2 O-16 0.000000 0.000000 -2 9 2 B-10 0.269141 0.380622 -3 9 2 B-11 0.000000 0.000000 -4 9 2 Fe-54 0.000000 0.000000 -5 9 2 Fe-56 0.000000 0.000000 -6 9 2 Fe-57 0.000000 0.000000 -7 9 2 Fe-58 0.000000 0.000000 -8 9 2 Ni-58 0.000000 0.000000 -9 9 2 Ni-60 0.000000 0.000000 -10 9 2 Ni-61 0.000000 0.000000 -11 9 2 Ni-62 0.000000 0.000000 -12 9 2 Ni-64 0.000000 0.000000 -13 9 2 Mn-55 0.000000 0.000000 -14 9 2 Si-28 0.000000 0.000000 -15 9 2 Si-29 0.000000 0.000000 -16 9 2 Si-30 0.000000 0.000000 -17 9 2 Cr-50 0.000000 0.000000 -18 9 2 Cr-52 0.000000 0.000000 -19 9 2 Cr-53 0.000000 0.000000 -20 9 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. +20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. 21 9 1 H-1 0 0 22 9 1 O-16 0 0 23 9 1 B-10 0 0 @@ -1452,91 +1410,133 @@ 17 9 2 Cr-50 0 0 18 9 2 Cr-52 0 0 19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 9 1 1 H-1 0.106160 0.179178 -64 9 1 1 O-16 0.272020 0.171699 -65 9 1 1 B-10 0.000000 0.000000 -66 9 1 1 B-11 0.000000 0.000000 -67 9 1 1 Fe-54 0.000000 0.000000 -68 9 1 1 Fe-56 0.000000 0.000000 -69 9 1 1 Fe-57 0.000000 0.000000 -70 9 1 1 Fe-58 0.000000 0.000000 -71 9 1 1 Ni-58 0.000000 0.000000 -72 9 1 1 Ni-60 0.000000 0.000000 -73 9 1 1 Ni-61 0.000000 0.000000 -74 9 1 1 Ni-62 0.000000 0.000000 -75 9 1 1 Ni-64 0.000000 0.000000 -76 9 1 1 Mn-55 0.085133 0.082479 -77 9 1 1 Si-28 0.000000 0.000000 -78 9 1 1 Si-29 0.000000 0.000000 -79 9 1 1 Si-30 0.000000 0.000000 -80 9 1 1 Cr-50 0.000000 0.000000 -81 9 1 1 Cr-52 0.000000 0.000000 -82 9 1 1 Cr-53 0.040723 0.079827 -83 9 1 1 Cr-54 0.000000 0.000000 -42 9 1 2 H-1 0.000000 0.000000 -43 9 1 2 O-16 0.000000 0.000000 -44 9 1 2 B-10 0.000000 0.000000 -45 9 1 2 B-11 0.000000 0.000000 -46 9 1 2 Fe-54 0.000000 0.000000 -47 9 1 2 Fe-56 0.000000 0.000000 -48 9 1 2 Fe-57 0.000000 0.000000 -49 9 1 2 Fe-58 0.000000 0.000000 -50 9 1 2 Ni-58 0.000000 0.000000 -51 9 1 2 Ni-60 0.000000 0.000000 -52 9 1 2 Ni-61 0.000000 0.000000 -53 9 1 2 Ni-62 0.000000 0.000000 -54 9 1 2 Ni-64 0.000000 0.000000 -55 9 1 2 Mn-55 0.000000 0.000000 -56 9 1 2 Si-28 0.000000 0.000000 -57 9 1 2 Si-29 0.000000 0.000000 -58 9 1 2 Si-30 0.000000 0.000000 -59 9 1 2 Cr-50 0.000000 0.000000 -60 9 1 2 Cr-52 0.000000 0.000000 -61 9 1 2 Cr-53 0.000000 0.000000 -62 9 1 2 Cr-54 0.000000 0.000000 -21 9 2 1 H-1 0.000000 0.000000 -22 9 2 1 O-16 0.000000 0.000000 -23 9 2 1 B-10 0.000000 0.000000 -24 9 2 1 B-11 0.000000 0.000000 -25 9 2 1 Fe-54 0.000000 0.000000 -26 9 2 1 Fe-56 0.000000 0.000000 -27 9 2 1 Fe-57 0.000000 0.000000 -28 9 2 1 Fe-58 0.000000 0.000000 -29 9 2 1 Ni-58 0.000000 0.000000 -30 9 2 1 Ni-60 0.000000 0.000000 -31 9 2 1 Ni-61 0.000000 0.000000 -32 9 2 1 Ni-62 0.000000 0.000000 -33 9 2 1 Ni-64 0.000000 0.000000 -34 9 2 1 Mn-55 0.000000 0.000000 -35 9 2 1 Si-28 0.000000 0.000000 -36 9 2 1 Si-29 0.000000 0.000000 -37 9 2 1 Si-30 0.000000 0.000000 -38 9 2 1 Cr-50 0.000000 0.000000 -39 9 2 1 Cr-52 0.000000 0.000000 -40 9 2 1 Cr-53 0.000000 0.000000 -41 9 2 1 Cr-54 0.000000 0.000000 -0 9 2 2 H-1 1.417955 2.158027 -1 9 2 2 O-16 0.000000 0.000000 -2 9 2 2 B-10 0.000000 0.000000 -3 9 2 2 B-11 0.000000 0.000000 -4 9 2 2 Fe-54 0.000000 0.000000 -5 9 2 2 Fe-56 0.000000 0.000000 -6 9 2 2 Fe-57 0.000000 0.000000 -7 9 2 2 Fe-58 0.000000 0.000000 -8 9 2 2 Ni-58 0.000000 0.000000 -9 9 2 2 Ni-60 0.000000 0.000000 -10 9 2 2 Ni-61 0.000000 0.000000 -11 9 2 2 Ni-62 0.000000 0.000000 -12 9 2 2 Ni-64 0.000000 0.000000 -13 9 2 2 Mn-55 0.000000 0.000000 -14 9 2 2 Si-28 0.000000 0.000000 -15 9 2 2 Si-29 0.000000 0.000000 -16 9 2 2 Si-30 0.000000 0.000000 -17 9 2 2 Cr-50 0.000000 0.000000 -18 9 2 2 Cr-52 0.000000 0.000000 -19 9 2 2 Cr-53 0.000000 0.000000 -20 9 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. +20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 9 1 H-1 0 0 +22 9 1 O-16 0 0 +23 9 1 B-10 0 0 +24 9 1 B-11 0 0 +25 9 1 Fe-54 0 0 +26 9 1 Fe-56 0 0 +27 9 1 Fe-57 0 0 +28 9 1 Fe-58 0 0 +29 9 1 Ni-58 0 0 +30 9 1 Ni-60 0 0 +31 9 1 Ni-61 0 0 +32 9 1 Ni-62 0 0 +33 9 1 Ni-64 0 0 +34 9 1 Mn-55 0 0 +35 9 1 Si-28 0 0 +36 9 1 Si-29 0 0 +37 9 1 Si-30 0 0 +38 9 1 Cr-50 0 0 +39 9 1 Cr-52 0 0 +40 9 1 Cr-53 0 0 +41 9 1 Cr-54 0 0 +0 9 2 H-1 0 0 +1 9 2 O-16 0 0 +2 9 2 B-10 0 0 +3 9 2 B-11 0 0 +4 9 2 Fe-54 0 0 +5 9 2 Fe-56 0 0 +6 9 2 Fe-57 0 0 +7 9 2 Fe-58 0 0 +8 9 2 Ni-58 0 0 +9 9 2 Ni-60 0 0 +10 9 2 Ni-61 0 0 +11 9 2 Ni-62 0 0 +12 9 2 Ni-64 0 0 +13 9 2 Mn-55 0 0 +14 9 2 Si-28 0 0 +15 9 2 Si-29 0 0 +16 9 2 Si-30 0 0 +17 9 2 Cr-50 0 0 +18 9 2 Cr-52 0 0 +19 9 2 Cr-53 0 0 +20 9 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +63 9 1 1 H-1 0 0 +64 9 1 1 O-16 0 0 +65 9 1 1 B-10 0 0 +66 9 1 1 B-11 0 0 +67 9 1 1 Fe-54 0 0 +68 9 1 1 Fe-56 0 0 +69 9 1 1 Fe-57 0 0 +70 9 1 1 Fe-58 0 0 +71 9 1 1 Ni-58 0 0 +72 9 1 1 Ni-60 0 0 +73 9 1 1 Ni-61 0 0 +74 9 1 1 Ni-62 0 0 +75 9 1 1 Ni-64 0 0 +76 9 1 1 Mn-55 0 0 +77 9 1 1 Si-28 0 0 +78 9 1 1 Si-29 0 0 +79 9 1 1 Si-30 0 0 +80 9 1 1 Cr-50 0 0 +81 9 1 1 Cr-52 0 0 +82 9 1 1 Cr-53 0 0 +83 9 1 1 Cr-54 0 0 +42 9 1 2 H-1 0 0 +43 9 1 2 O-16 0 0 +44 9 1 2 B-10 0 0 +45 9 1 2 B-11 0 0 +46 9 1 2 Fe-54 0 0 +47 9 1 2 Fe-56 0 0 +48 9 1 2 Fe-57 0 0 +49 9 1 2 Fe-58 0 0 +50 9 1 2 Ni-58 0 0 +51 9 1 2 Ni-60 0 0 +52 9 1 2 Ni-61 0 0 +53 9 1 2 Ni-62 0 0 +54 9 1 2 Ni-64 0 0 +55 9 1 2 Mn-55 0 0 +56 9 1 2 Si-28 0 0 +57 9 1 2 Si-29 0 0 +58 9 1 2 Si-30 0 0 +59 9 1 2 Cr-50 0 0 +60 9 1 2 Cr-52 0 0 +61 9 1 2 Cr-53 0 0 +62 9 1 2 Cr-54 0 0 +21 9 2 1 H-1 0 0 +22 9 2 1 O-16 0 0 +23 9 2 1 B-10 0 0 +24 9 2 1 B-11 0 0 +25 9 2 1 Fe-54 0 0 +26 9 2 1 Fe-56 0 0 +27 9 2 1 Fe-57 0 0 +28 9 2 1 Fe-58 0 0 +29 9 2 1 Ni-58 0 0 +30 9 2 1 Ni-60 0 0 +31 9 2 1 Ni-61 0 0 +32 9 2 1 Ni-62 0 0 +33 9 2 1 Ni-64 0 0 +34 9 2 1 Mn-55 0 0 +35 9 2 1 Si-28 0 0 +36 9 2 1 Si-29 0 0 +37 9 2 1 Si-30 0 0 +38 9 2 1 Cr-50 0 0 +39 9 2 1 Cr-52 0 0 +40 9 2 1 Cr-53 0 0 +41 9 2 1 Cr-54 0 0 +0 9 2 2 H-1 0 0 +1 9 2 2 O-16 0 0 +2 9 2 2 B-10 0 0 +3 9 2 2 B-11 0 0 +4 9 2 2 Fe-54 0 0 +5 9 2 2 Fe-56 0 0 +6 9 2 2 Fe-57 0 0 +7 9 2 2 Fe-58 0 0 +8 9 2 2 Ni-58 0 0 +9 9 2 2 Ni-60 0 0 +10 9 2 2 Ni-61 0 0 +11 9 2 2 Ni-62 0 0 +12 9 2 2 Ni-64 0 0 +13 9 2 2 Mn-55 0 0 +14 9 2 2 Si-28 0 0 +15 9 2 2 Si-29 0 0 +16 9 2 2 Si-30 0 0 +17 9 2 2 Cr-50 0 0 +18 9 2 2 Cr-52 0 0 +19 9 2 2 Cr-53 0 0 +20 9 2 2 Cr-54 0 0 material group out nuclide mean std. dev. 21 9 1 H-1 0 0 22 9 1 O-16 0 0 23 9 1 B-10 0 0 @@ -1789,23 +1789,23 @@ 18 10 2 Cr-52 0 0 19 10 2 Cr-53 0 0 20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. -9 11 1 H-1 0.138558 0.260695 -10 11 1 O-16 0.042575 0.049271 +9 11 1 H-1 0.143342 0.405094 +10 11 1 O-16 0.048701 0.059664 11 11 1 B-10 0.000000 0.000000 12 11 1 B-11 0.000000 0.000000 -13 11 1 Zr-90 0.041034 0.049102 -14 11 1 Zr-91 0.027328 0.021092 -15 11 1 Zr-92 0.009788 0.009282 -16 11 1 Zr-94 0.043543 0.036697 +13 11 1 Zr-90 0.140978 0.178138 +14 11 1 Zr-91 0.000000 0.000000 +15 11 1 Zr-92 0.057496 0.076982 +16 11 1 Zr-94 0.039602 0.049138 17 11 1 Zr-96 0.000000 0.000000 -0 11 2 H-1 0.824153 0.917955 -1 11 2 O-16 0.041986 0.060727 -2 11 2 B-10 0.048216 0.042726 +0 11 2 H-1 0.570204 1.298303 +1 11 2 O-16 0.022061 0.359836 +2 11 2 B-10 0.264755 0.374419 3 11 2 B-11 0.000000 0.000000 -4 11 2 Zr-90 0.048596 0.067712 +4 11 2 Zr-90 0.000000 0.000000 5 11 2 Zr-91 0.000000 0.000000 6 11 2 Zr-92 0.000000 0.000000 -7 11 2 Zr-94 0.043195 0.041363 +7 11 2 Zr-94 0.000000 0.000000 8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. 9 11 1 H-1 0 0 10 11 1 O-16 0 0 @@ -1825,16 +1825,16 @@ 6 11 2 Zr-92 0 0 7 11 2 Zr-94 0 0 8 11 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -27 11 1 1 H-1 0.111411 0.247294 -28 11 1 1 O-16 0.042575 0.049271 +27 11 1 1 H-1 0.117971 0.376005 +28 11 1 1 O-16 0.048701 0.059664 29 11 1 1 B-10 0.000000 0.000000 30 11 1 1 B-11 0.000000 0.000000 -31 11 1 1 Zr-90 0.041034 0.049102 -32 11 1 1 Zr-91 0.027328 0.021092 -33 11 1 1 Zr-92 0.009788 0.009282 -34 11 1 1 Zr-94 0.043543 0.036697 +31 11 1 1 Zr-90 0.140978 0.178138 +32 11 1 1 Zr-91 0.000000 0.000000 +33 11 1 1 Zr-92 0.057496 0.076982 +34 11 1 1 Zr-94 0.039602 0.049138 35 11 1 1 Zr-96 0.000000 0.000000 -18 11 1 2 H-1 0.027147 0.020009 +18 11 1 2 H-1 0.025371 0.035880 19 11 1 2 O-16 0.000000 0.000000 20 11 1 2 B-10 0.000000 0.000000 21 11 1 2 B-11 0.000000 0.000000 @@ -1852,14 +1852,14 @@ 15 11 2 1 Zr-92 0.000000 0.000000 16 11 2 1 Zr-94 0.000000 0.000000 17 11 2 1 Zr-96 0.000000 0.000000 -0 11 2 2 H-1 0.824153 0.917955 -1 11 2 2 O-16 0.041986 0.060727 +0 11 2 2 H-1 0.570204 1.298303 +1 11 2 2 O-16 0.022061 0.359836 2 11 2 2 B-10 0.000000 0.000000 3 11 2 2 B-11 0.000000 0.000000 -4 11 2 2 Zr-90 0.048596 0.067712 +4 11 2 2 Zr-90 0.000000 0.000000 5 11 2 2 Zr-91 0.000000 0.000000 6 11 2 2 Zr-92 0.000000 0.000000 -7 11 2 2 Zr-94 0.043195 0.041363 +7 11 2 2 Zr-94 0.000000 0.000000 8 11 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. 9 11 1 H-1 0 0 10 11 1 O-16 0 0 @@ -1878,25 +1878,7 @@ 5 11 2 Zr-91 0 0 6 11 2 Zr-92 0 0 7 11 2 Zr-94 0 0 -8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. -9 12 1 H-1 0.151924 0.200147 -10 12 1 O-16 0.039280 0.026086 -11 12 1 B-10 0.000000 0.000000 -12 12 1 B-11 0.000000 0.000000 -13 12 1 Zr-90 0.017578 0.022079 -14 12 1 Zr-91 0.039984 0.025285 -15 12 1 Zr-92 0.001172 0.006230 -16 12 1 Zr-94 0.001668 0.005966 -17 12 1 Zr-96 0.004328 0.005325 -0 12 2 H-1 0.942412 0.866849 -1 12 2 O-16 0.047438 0.048161 -2 12 2 B-10 0.041655 0.031202 -3 12 2 B-11 0.000000 0.000000 -4 12 2 Zr-90 0.021193 0.017456 -5 12 2 Zr-91 0.007901 0.009268 -6 12 2 Zr-92 0.009422 0.012802 -7 12 2 Zr-94 0.043324 0.027551 -8 12 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. +8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. 9 12 1 H-1 0 0 10 12 1 O-16 0 0 11 12 1 B-10 0 0 @@ -1914,43 +1896,61 @@ 5 12 2 Zr-91 0 0 6 12 2 Zr-92 0 0 7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -27 12 1 1 H-1 0.122301 0.187298 -28 12 1 1 O-16 0.039280 0.026086 -29 12 1 1 B-10 0.000000 0.000000 -30 12 1 1 B-11 0.000000 0.000000 -31 12 1 1 Zr-90 0.017578 0.022079 -32 12 1 1 Zr-91 0.039984 0.025285 -33 12 1 1 Zr-92 0.001172 0.006230 -34 12 1 1 Zr-94 0.001668 0.005966 -35 12 1 1 Zr-96 0.004328 0.005325 -18 12 1 2 H-1 0.029622 0.017760 -19 12 1 2 O-16 0.000000 0.000000 -20 12 1 2 B-10 0.000000 0.000000 -21 12 1 2 B-11 0.000000 0.000000 -22 12 1 2 Zr-90 0.000000 0.000000 -23 12 1 2 Zr-91 0.000000 0.000000 -24 12 1 2 Zr-92 0.000000 0.000000 -25 12 1 2 Zr-94 0.000000 0.000000 -26 12 1 2 Zr-96 0.000000 0.000000 -9 12 2 1 H-1 0.000000 0.000000 -10 12 2 1 O-16 0.000000 0.000000 -11 12 2 1 B-10 0.000000 0.000000 -12 12 2 1 B-11 0.000000 0.000000 -13 12 2 1 Zr-90 0.000000 0.000000 -14 12 2 1 Zr-91 0.000000 0.000000 -15 12 2 1 Zr-92 0.000000 0.000000 -16 12 2 1 Zr-94 0.000000 0.000000 -17 12 2 1 Zr-96 0.000000 0.000000 -0 12 2 2 H-1 0.942412 0.866849 -1 12 2 2 O-16 0.047438 0.048161 -2 12 2 2 B-10 0.000000 0.000000 -3 12 2 2 B-11 0.000000 0.000000 -4 12 2 2 Zr-90 0.021193 0.017456 -5 12 2 2 Zr-91 0.007901 0.009268 -6 12 2 2 Zr-92 0.009422 0.012802 -7 12 2 2 Zr-94 0.043324 0.027551 -8 12 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. +8 12 2 Zr-96 0 0 material group in nuclide mean std. dev. +9 12 1 H-1 0 0 +10 12 1 O-16 0 0 +11 12 1 B-10 0 0 +12 12 1 B-11 0 0 +13 12 1 Zr-90 0 0 +14 12 1 Zr-91 0 0 +15 12 1 Zr-92 0 0 +16 12 1 Zr-94 0 0 +17 12 1 Zr-96 0 0 +0 12 2 H-1 0 0 +1 12 2 O-16 0 0 +2 12 2 B-10 0 0 +3 12 2 B-11 0 0 +4 12 2 Zr-90 0 0 +5 12 2 Zr-91 0 0 +6 12 2 Zr-92 0 0 +7 12 2 Zr-94 0 0 +8 12 2 Zr-96 0 0 material group in group out nuclide mean std. dev. +27 12 1 1 H-1 0 0 +28 12 1 1 O-16 0 0 +29 12 1 1 B-10 0 0 +30 12 1 1 B-11 0 0 +31 12 1 1 Zr-90 0 0 +32 12 1 1 Zr-91 0 0 +33 12 1 1 Zr-92 0 0 +34 12 1 1 Zr-94 0 0 +35 12 1 1 Zr-96 0 0 +18 12 1 2 H-1 0 0 +19 12 1 2 O-16 0 0 +20 12 1 2 B-10 0 0 +21 12 1 2 B-11 0 0 +22 12 1 2 Zr-90 0 0 +23 12 1 2 Zr-91 0 0 +24 12 1 2 Zr-92 0 0 +25 12 1 2 Zr-94 0 0 +26 12 1 2 Zr-96 0 0 +9 12 2 1 H-1 0 0 +10 12 2 1 O-16 0 0 +11 12 2 1 B-10 0 0 +12 12 2 1 B-11 0 0 +13 12 2 1 Zr-90 0 0 +14 12 2 1 Zr-91 0 0 +15 12 2 1 Zr-92 0 0 +16 12 2 1 Zr-94 0 0 +17 12 2 1 Zr-96 0 0 +0 12 2 2 H-1 0 0 +1 12 2 2 O-16 0 0 +2 12 2 2 B-10 0 0 +3 12 2 2 B-11 0 0 +4 12 2 2 Zr-90 0 0 +5 12 2 2 Zr-91 0 0 +6 12 2 2 Zr-92 0 0 +7 12 2 2 Zr-94 0 0 +8 12 2 2 Zr-96 0 0 material group out nuclide mean std. dev. 9 12 1 H-1 0 0 10 12 1 O-16 0 0 11 12 1 B-10 0 0 diff --git a/tests/test_natural_element/results_true.dat b/tests/test_natural_element/results_true.dat index 1c8668e12..47b49b144 100644 --- a/tests/test_natural_element/results_true.dat +++ b/tests/test_natural_element/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.013112E+00 2.551515E-02 +1.000870E+00 2.861252E-02 diff --git a/tests/test_output/results_true.dat b/tests/test_output/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_output/results_true.dat +++ b/tests/test_output/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_particle_restart_eigval/results_true.dat b/tests/test_particle_restart_eigval/results_true.dat index f34397853..a0cced44c 100644 --- a/tests/test_particle_restart_eigval/results_true.dat +++ b/tests/test_particle_restart_eigval/results_true.dat @@ -1,16 +1,16 @@ current batch: -9.000000E+00 +1.100000E+01 current gen: 1.000000E+00 particle id: -5.550000E+02 +5.730000E+02 run mode: k-eigenvalue particle weight: 1.000000E+00 particle energy: -2.831611E-01 +4.522511E+00 particle xyz: -4.973847E+01 6.971699E+00 -5.201827E+01 +-3.306412E+01 -1.396998E+01 5.715368E+01 particle uvw: -6.945105E-01 6.295355E-01 -3.483393E-01 +-6.019192E-01 -6.419527E-01 4.749632E-01 diff --git a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py index 139cb2b9f..f022c0cce 100644 --- a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py +++ b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py @@ -7,5 +7,5 @@ from testing_harness import ParticleRestartTestHarness if __name__ == '__main__': - harness = ParticleRestartTestHarness('particle_9_555.*') + harness = ParticleRestartTestHarness('particle_11_573.*') harness.main() diff --git a/tests/test_quadric_surfaces/results_true.dat b/tests/test_quadric_surfaces/results_true.dat index b2e02fdbb..a8b0ec11b 100644 --- a/tests/test_quadric_surfaces/results_true.dat +++ b/tests/test_quadric_surfaces/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.706301E-01 4.351374E-02 +1.013363E+00 4.701127E-03 diff --git a/tests/test_reflective_plane/results_true.dat b/tests/test_reflective_plane/results_true.dat index c5ba8e63f..1ccd430f6 100644 --- a/tests/test_reflective_plane/results_true.dat +++ b/tests/test_reflective_plane/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.276127E+00 4.678320E-03 +2.274474E+00 9.235910E-03 diff --git a/tests/test_resonance_scattering/results_true.dat b/tests/test_resonance_scattering/results_true.dat index 0dda991ca..eaad05767 100644 --- a/tests/test_resonance_scattering/results_true.dat +++ b/tests/test_resonance_scattering/results_true.dat @@ -1,2 +1,2 @@ k-combined: -6.842112E-02 8.480934E-04 +6.842156E-02 8.481004E-04 diff --git a/tests/test_rotation/results_true.dat b/tests/test_rotation/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_rotation/results_true.dat +++ b/tests/test_rotation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_salphabeta/results_true.dat b/tests/test_salphabeta/results_true.dat index 926af89bc..8c3d0341c 100644 --- a/tests/test_salphabeta/results_true.dat +++ b/tests/test_salphabeta/results_true.dat @@ -1,2 +1,2 @@ k-combined: -8.350634E-01 6.010639E-02 +8.339490E-01 3.462133E-03 diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 936e2d04b..4aeb9b16c 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -1e6945632c55491d4584f4976cc6f5c7340874703cfaf739dd956b7124b4260955efb5b6ba041b32536f9a74572d071e0293dced55a41ea305223f698b734c2a \ No newline at end of file +57847fd9bf48a1be56d2ea891adbdd29d8277672bef65271cb021e0027aa4bcb8024ae915422abb7dfcceb7a688daf598d3a8476c5f454f45f45cca682f13502 \ No newline at end of file diff --git a/tests/test_seed/results_true.dat b/tests/test_seed/results_true.dat index df79ce1ce..3ef545ede 100644 --- a/tests/test_seed/results_true.dat +++ b/tests/test_seed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.951164E-01 2.504580E-03 +2.977739E-01 4.992896E-03 diff --git a/tests/test_source/results_true.dat b/tests/test_source/results_true.dat index 18fb895f7..0c85ba194 100644 --- a/tests/test_source/results_true.dat +++ b/tests/test_source/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.014392E-01 7.185055E-03 +2.971106E-01 8.263510E-03 diff --git a/tests/test_source_file/results_true.dat b/tests/test_source_file/results_true.dat index fee61dda2..b32c85631 100644 --- a/tests/test_source_file/results_true.dat +++ b/tests/test_source_file/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.962911E-01 4.073420E-03 +2.967126E-01 5.952317E-04 diff --git a/tests/test_sourcepoint_latest/results_true.dat b/tests/test_sourcepoint_latest/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_sourcepoint_latest/results_true.dat +++ b/tests/test_sourcepoint_latest/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_sourcepoint_restart/results_true.dat b/tests/test_sourcepoint_restart/results_true.dat index 0e4eef9a9..a03d8885b 100644 --- a/tests/test_sourcepoint_restart/results_true.dat +++ b/tests/test_sourcepoint_restart/results_true.dat @@ -1,16 +1,16 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 tally 1: -7.000000E-03 -2.100000E-05 -1.127639E-03 -7.464355E-07 --1.264355E-03 -1.192757E-06 -8.769846E-04 -1.117508E-06 -3.359153E-03 -4.366438E-06 +1.500000E-02 +6.100000E-05 +6.140730E-03 +1.827778E-05 +5.466817E-03 +1.172967E-05 +4.386203E-03 +6.988762E-06 +7.799017E-03 +1.730653E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -19,18 +19,58 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.107648E-04 -3.730336E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.982678E-04 +3.579243E-07 1.000000E-03 1.000000E-06 -6.713061E-04 -4.506518E-07 -1.759778E-04 -3.096817E-08 --2.506458E-04 -6.282332E-08 -6.069794E-04 -3.684240E-07 +9.657483E-04 +9.326697E-07 +8.990046E-04 +8.082092E-07 +8.031880E-04 +6.451110E-07 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.100000E-05 +-3.133071E-05 +2.698671E-06 +2.623750E-04 +1.344791E-06 +-2.483720E-03 +1.649588E-06 +3.294650E-03 +2.242064E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +6.245980E-04 +3.901227E-07 +8.518403E-05 +7.256319E-09 +-3.277224E-04 +1.074020E-07 +2.989325E-04 +8.936066E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -42,25 +82,15 @@ tally 1: 0.000000E+00 0.000000E+00 7.000000E-03 -1.500000E-05 -4.398928E-03 -8.198908E-06 -1.784486E-03 -3.422315E-06 -8.494423E-04 -9.262242E-07 -4.566637E-03 -5.646039E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 +1.100000E-05 +2.955972E-03 +4.718865E-06 +2.296283E-03 +1.893728E-06 +1.374242E-03 +1.154127E-06 +4.505145E-03 +6.063009E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -81,16 +111,266 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.000000E-03 -3.000000E-06 --1.419189E-03 -9.791601E-07 --3.125982E-05 -5.086129E-07 -3.291570E-04 -1.943609E-07 -1.525426E-03 -8.346311E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.230000E-04 +4.489511E-03 +2.028537E-05 +1.946623E-03 +1.610367E-06 +1.647952E-03 +1.769319E-06 +1.077022E-02 +2.893664E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.000807E-04 +2.700544E-07 +1.000000E-03 +1.000000E-06 +-9.045723E-04 +8.182510E-07 +7.273765E-04 +5.290766E-07 +-4.935596E-04 +2.436011E-07 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.050000E-04 +2.386082E-03 +3.497107E-06 +4.555769E-03 +1.058977E-05 +1.879180E-03 +5.304853E-06 +7.792317E-03 +1.670472E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.198624E-03 +3.591835E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +3.327793E-04 +1.107421E-07 +-3.338869E-04 +1.114804E-07 +-4.070373E-04 +1.656794E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +2.400000E-05 +5.261857E-03 +7.471221E-06 +5.280154E-03 +9.529481E-06 +5.060306E-03 +6.646531E-06 +6.894561E-03 +1.267269E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.000000E-03 +1.800000E-05 +-2.025476E-04 +1.858789E-06 +-6.686398E-04 +1.065456E-06 +6.586587E-04 +4.841450E-07 +2.994327E-03 +2.684002E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -123,146 +403,14 @@ tally 1: 0.000000E+00 1.000000E-03 1.000000E-06 --1.542107E-05 -2.378095E-10 --4.996433E-04 -2.496434E-07 -2.312244E-05 -5.346472E-10 -3.053824E-04 -9.325841E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -8.600000E-05 -3.995253E-03 -1.648172E-05 -3.349403E-03 -1.166653E-05 -4.208940E-03 -7.077664E-06 -1.033905E-02 -2.197265E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.029991E-04 -1.818050E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.620000E-04 -7.996640E-03 -1.882484E-05 -3.921034E-03 -1.157453E-05 -1.644629E-03 -3.217857E-06 -1.159182E-02 -3.534975E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -2.500000E-05 -4.691861E-03 -7.999548E-06 -1.771537E-03 -3.385525E-06 -7.888659E-04 -1.911759E-06 -4.561602E-03 -4.337486E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.107648E-04 -3.730336E-07 -0.000000E+00 -0.000000E+00 +9.104915E-04 +8.289948E-07 +7.434921E-04 +5.527806E-07 +5.212445E-04 +2.716958E-07 +1.201894E-03 +7.222931E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -281,16 +429,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.990909E-04 +3.589099E-07 1.000000E-03 1.000000E-06 --3.878617E-04 -1.504367E-07 --2.743449E-04 -7.526515E-08 -4.359210E-04 -1.900271E-07 -3.034897E-04 -9.210600E-08 +-5.260403E-04 +2.767184E-07 +-8.492233E-05 +7.211803E-09 +4.251479E-04 +1.807507E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -321,26 +469,108 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.400000E-02 +3.540000E-04 +1.553475E-02 +6.367842E-05 +1.520994E-02 +7.741012E-05 +8.930877E-03 +2.739654E-05 +1.405733E-02 +6.608052E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.031624E-04 +4.543315E-07 +1.000000E-03 +1.000000E-06 +-2.223524E-04 +4.944060E-08 +-4.258391E-04 +1.813389E-07 +3.060456E-04 +9.366388E-08 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200000E-02 +3.400000E-05 +3.889614E-03 +6.587628E-06 +2.115055E-03 +3.167536E-06 +3.463231E-04 +5.504681E-06 +5.710120E-03 +1.043566E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.600000E-02 5.600000E-05 -4.563082E-03 -6.119552E-06 -1.839038E-03 -1.089339E-06 -1.944879E-03 -2.372975E-06 -8.524215E-03 -1.874218E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015373E-04 -3.618471E-07 +3.164928E-03 +1.114752E-05 +3.143660E-03 +3.198813E-06 +1.287643E-03 +7.268133E-07 +8.988217E-03 +1.652319E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -351,46 +581,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.300000E-02 -5.300000E-05 -6.763364E-03 -1.445064E-05 -2.970216E-03 -3.071874E-06 -2.622002E-03 -3.547897E-06 -5.177618E-03 -8.040228E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +1.000000E-03 +1.000000E-06 +9.617800E-04 +9.250208E-07 +8.875312E-04 +7.877116E-07 +7.814962E-04 +6.107364E-07 +2.981320E-04 +8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -403,14 +603,14 @@ tally 1: 0.000000E+00 8.000000E-03 1.400000E-05 -1.172941E-04 -1.212454E-06 -4.110442E-04 -5.740547E-06 -1.788140E-03 -9.775061E-07 -3.946448E-03 -3.956113E-06 +2.562256E-03 +5.938938E-06 +3.215552E-03 +2.429308E-06 +2.809239E-03 +2.320949E-06 +2.396627E-03 +1.615072E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -419,8 +619,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.109694E-04 -1.866863E-07 +6.015597E-04 +1.809401E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -441,26 +641,436 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.100000E-02 +2.150000E-04 +1.898034E-02 +7.784899E-05 +1.264567E-02 +4.010917E-05 +8.079721E-03 +1.493258E-05 +1.529918E-02 +5.419874E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.966100E-04 +2.679708E-07 +1.000000E-03 +1.000000E-06 +1.982438E-04 +3.930062E-08 +-4.410491E-04 +1.945243E-07 +-2.778880E-04 +7.722173E-08 +8.967976E-04 +8.042459E-07 +1.000000E-03 +1.000000E-06 +9.755714E-04 +9.517396E-07 +9.276094E-04 +8.604592E-07 +8.578678E-04 +7.359371E-07 +0.000000E+00 +0.000000E+00 +1.600000E-02 +5.400000E-05 +3.332422E-03 +1.335735E-05 +4.814665E-03 +5.403574E-06 +8.177949E-04 +2.462505E-06 +7.189603E-03 +1.112704E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.196133E-03 +7.153669E-07 +2.000000E-03 +2.000000E-06 +9.961345E-04 +5.766569E-07 +-1.350146E-04 +1.888753E-07 +-5.756575E-04 +1.828150E-07 +2.089751E-03 +2.580978E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.500000E-02 +5.900000E-05 +3.574847E-03 +7.661052E-06 +2.411448E-03 +4.875571E-06 +-4.456628E-04 +3.620849E-06 +5.991484E-03 +9.329446E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.953980E-04 +4.450119E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.402987E-03 +2.352531E-06 +4.000000E-03 +6.000000E-06 +3.730318E-03 +5.177826E-06 +3.229766E-03 +3.845053E-06 +2.569348E-03 +2.470333E-06 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.140000E-04 +1.157227E-02 +3.152553E-05 +5.993470E-03 +9.940306E-06 +6.549523E-03 +9.865076E-06 +8.969741E-03 +1.911355E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.980234E-04 +4.482705E-07 +1.000000E-03 +1.000000E-06 +4.538235E-04 +2.059558E-07 +-1.910664E-04 +3.650635E-08 +-4.470663E-04 +1.998683E-07 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.020000E-04 +4.042627E-03 +9.476178E-06 +2.881083E-03 +5.928110E-06 +3.065234E-03 +4.444894E-06 +1.168502E-02 +2.989919E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.020143E-04 +9.121262E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.250000E-04 +9.991177E-03 +3.139502E-05 +2.556450E-03 +1.824566E-06 +3.329841E-03 +5.163205E-06 +9.576327E-03 +2.773298E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.959971E-04 +4.463253E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200651E-03 +8.987598E-07 +1.000000E-03 +1.000000E-06 +9.522533E-04 +9.067863E-07 +8.601795E-04 +7.399088E-07 +7.303458E-04 +5.334049E-07 +3.020143E-04 +9.121262E-08 +2.100000E-02 +1.150000E-04 +1.242804E-03 +3.619176E-06 +1.867552E-03 +1.359691E-06 +2.306130E-03 +5.045915E-06 +9.000544E-03 +2.094585E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +1.000000E-03 +1.000000E-06 +9.669322E-04 +9.349578E-07 +9.024367E-04 +8.143920E-07 +8.097037E-04 +6.556200E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.600000E-05 +7.900751E-03 +1.937232E-05 +5.101355E-03 +8.800793E-06 +4.128814E-03 +6.665133E-06 +7.790979E-03 +1.525891E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.986793E-04 +1.792085E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.020143E-04 +9.121262E-08 +1.000000E-03 +1.000000E-06 +9.912755E-04 +9.826271E-07 +9.739406E-04 +9.485603E-07 +9.482220E-04 +8.991250E-07 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.260000E-04 +7.579348E-03 +2.124946E-05 +6.787172E-03 +1.874543E-05 +3.914660E-03 +8.731250E-06 +1.167769E-02 +3.750609E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.986793E-04 +1.792085E-07 +2.000000E-03 +2.000000E-06 +3.631413E-04 +1.401984E-06 +1.102976E-03 +1.004698E-06 +1.304621E-03 +1.083698E-06 +2.993714E-03 +2.324726E-06 +5.000000E-03 +7.000000E-06 +4.239270E-03 +4.739399E-06 +2.968259E-03 +2.239642E-06 +1.575924E-03 +1.063419E-06 +2.989325E-04 +8.936066E-08 +2.700000E-02 +1.610000E-04 +8.295783E-03 +1.670306E-05 +5.150584E-03 +1.540799E-05 +2.687614E-03 +7.461732E-06 +1.197674E-02 +3.010342E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.195131E-03 +5.358064E-07 +1.000000E-03 +1.000000E-06 +-7.791468E-04 +6.070697E-07 +4.106046E-04 +1.685961E-07 +-1.377092E-05 +1.896382E-10 +1.803453E-03 +1.268084E-06 +2.000000E-03 +2.000000E-06 +1.885433E-03 +1.778733E-06 +1.668099E-03 +1.401699E-06 +1.370094E-03 +9.733671E-07 +2.995454E-04 +8.972747E-08 +2.500000E-02 +1.690000E-04 +7.306400E-03 +1.879755E-05 +5.910494E-03 +7.423636E-06 +4.158757E-03 +8.004612E-06 +1.136957E-02 +3.132992E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.000000E-03 1.000000E-06 -9.168648E-04 -8.406410E-07 -7.609615E-04 -5.790624E-07 -5.515881E-04 -3.042494E-07 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +-1.294470E-04 +1.675653E-08 +-4.748652E-04 +2.254970E-07 +1.887478E-04 +3.562574E-08 +5.990909E-04 +3.589099E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -471,6 +1081,196 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.900000E-02 +1.270000E-04 +7.644698E-03 +2.593978E-05 +4.291971E-03 +7.952406E-06 +1.754591E-03 +1.626852E-06 +8.970335E-03 +2.698525E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +9.900000E-05 +9.175459E-03 +3.081816E-05 +6.537841E-03 +1.693021E-05 +3.371815E-03 +6.901863E-06 +1.109875E-02 +2.912624E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.991339E-04 +8.948108E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +3.150000E-04 +7.491923E-03 +2.563522E-05 +4.484513E-03 +1.087903E-05 +5.244220E-03 +1.284762E-05 +1.256302E-02 +4.702441E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.972659E-04 +1.783638E-07 +1.000000E-03 +1.000000E-06 +1.684904E-04 +2.838901E-08 +-4.574165E-04 +2.092298E-07 +-2.407774E-04 +5.797376E-08 +1.503908E-03 +1.178356E-06 +2.000000E-03 +2.000000E-06 +1.675714E-03 +1.446154E-06 +1.169231E-03 +9.498292E-07 +6.921651E-04 +8.538185E-07 +3.020143E-04 +9.121262E-08 +2.000000E-02 +8.600000E-05 +9.188471E-03 +2.173815E-05 +1.860120E-03 +4.452062E-06 +2.429984E-03 +2.502873E-06 +1.048716E-02 +2.272644E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.974105E-04 +4.471701E-07 +2.000000E-03 +2.000000E-06 +1.794485E-03 +1.610365E-06 +1.415547E-03 +1.003887E-06 +9.217303E-04 +4.304779E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.400000E-05 +3.179742E-03 +4.790936E-06 +-6.355126E-04 +5.202988E-06 +1.151706E-03 +3.152245E-06 +7.489949E-03 +1.301150E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +6.585165E-04 +4.336439E-07 +1.504659E-04 +2.263998E-08 +-2.738705E-04 +7.500507E-08 +1.196133E-03 +7.153669E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -482,15 +1282,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-02 -2.020000E-04 -1.305502E-02 -4.343057E-05 -8.214305E-03 -2.001202E-05 -3.511762E-03 -1.412559E-05 -1.401995E-02 -4.269615E-05 +2.060000E-04 +1.541898E-02 +5.863846E-05 +9.395114E-03 +2.654761E-05 +8.661018E-03 +2.160642E-05 +1.049373E-02 +2.404605E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -499,6 +1299,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.396224E-03 +1.614108E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -507,6 +1309,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.600725E-03 +5.038163E-06 +4.000000E-03 +8.000000E-06 +3.781504E-03 +7.153441E-06 +3.368106E-03 +5.701400E-06 +2.804131E-03 +4.034404E-06 +2.989325E-04 +8.936066E-08 +1.900000E-02 +7.900000E-05 +6.408930E-03 +1.103823E-05 +3.228416E-03 +7.109320E-06 +4.961615E-04 +2.423816E-06 +1.079243E-02 +2.644603E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -515,792 +1339,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.320000E-04 -5.207205E-03 -9.311400E-06 -3.232372E-03 -3.475980E-06 -2.062884E-03 -4.773104E-06 -1.039066E-02 -2.611825E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.171802E-04 -4.646485E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.221939E-03 -7.467452E-07 -1.000000E-03 -1.000000E-06 -9.910929E-04 -9.822652E-07 -9.733978E-04 -9.475032E-07 -9.471508E-04 -8.970946E-07 -0.000000E+00 -0.000000E+00 -1.200000E-02 -5.000000E-05 -2.602864E-03 -4.471106E-06 -4.677566E-03 -1.033338E-05 -3.640584E-03 -3.605122E-06 -4.845169E-03 -8.244364E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.700000E-05 -3.786358E-03 -5.908272E-06 -3.416266E-03 -7.032934E-06 -3.353945E-03 -5.140933E-06 -4.261660E-03 -4.981501E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136905E-04 -1.883305E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.700000E-02 -2.090000E-04 -7.046302E-03 -1.594429E-05 -6.489218E-03 -1.057182E-05 -5.057204E-03 -8.269888E-06 -1.274541E-02 -3.591083E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.503843E-03 -2.261544E-06 -3.000000E-03 -5.000000E-06 -3.434984E-04 -2.731822E-07 --1.911976E-04 -2.018778E-08 --5.635206E-04 -2.075189E-07 -2.764973E-03 -3.917274E-06 -2.000000E-03 -2.000000E-06 -1.802029E-03 -1.623906E-06 -1.435858E-03 -1.032682E-06 -9.559957E-04 -4.622600E-07 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.540000E-04 -1.210267E-02 -4.180540E-05 -5.431699E-03 -2.284317E-05 -6.108638E-03 -1.136078E-05 -1.309420E-02 -3.810504E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.044609E-04 -3.653729E-07 -1.000000E-03 -1.000000E-06 -9.341546E-04 -8.726448E-07 -8.089673E-04 -6.544280E-07 -6.367311E-04 -4.054265E-07 -3.022304E-04 -9.134324E-08 -2.100000E-02 -9.900000E-05 -1.206996E-02 -4.033646E-05 -6.345510E-03 -1.603169E-05 -1.976558E-03 -4.386164E-06 -1.001209E-02 -2.316074E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.815901E-03 -1.829916E-06 -2.000000E-03 -2.000000E-06 -1.977802E-03 -1.955858E-06 -1.933788E-03 -1.869841E-06 -1.868714E-03 -1.746332E-06 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.900000E-05 -2.604154E-03 -9.668124E-06 -1.503936E-04 -1.170450E-06 -5.645599E-04 -1.841604E-06 -5.455481E-03 -1.116233E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015373E-04 -3.618471E-07 -1.000000E-03 -1.000000E-06 -9.936377E-04 -9.873159E-07 -9.809739E-04 -9.623097E-07 -9.621293E-04 -9.256927E-07 -0.000000E+00 -0.000000E+00 -4.100000E-02 -3.610000E-04 -1.275568E-02 -3.756672E-05 -7.436840E-03 -1.784918E-05 -6.238119E-03 -1.114039E-05 -1.706095E-02 -6.393171E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.510747E-03 -8.216143E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.500000E-02 -1.570000E-04 -4.743361E-03 -1.500512E-05 -2.243747E-03 -1.216909E-05 -6.504387E-04 -5.012686E-06 -1.369930E-02 -4.220232E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.205998E-03 -7.272200E-07 -2.000000E-03 -2.000000E-06 -1.935082E-03 -1.872342E-06 -1.808514E-03 -1.635965E-06 -1.626644E-03 -1.325172E-06 -0.000000E+00 -0.000000E+00 -1.800000E-02 -1.180000E-04 -6.144587E-03 -1.810176E-05 -3.517233E-03 -7.894223E-06 -5.434668E-03 -1.689927E-05 -7.002945E-03 -1.633731E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.111025E-04 -2.767076E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.400000E-05 -2.937841E-03 -3.083257E-06 -1.316488E-03 -1.378720E-06 -1.917209E-03 -1.388887E-06 -2.434865E-03 -1.665821E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.100000E-02 -4.290000E-04 -1.555575E-02 -6.845536E-05 -1.492622E-02 -7.523417E-05 -4.779064E-03 -1.568962E-05 -1.858109E-02 -9.770216E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -1.000000E-03 -1.000000E-06 --7.961895E-04 -6.339178E-07 -4.508767E-04 -2.032898E-07 --6.751245E-05 -4.557931E-09 -2.105380E-03 -4.432627E-06 -1.000000E-03 -1.000000E-06 -7.706275E-04 -5.938667E-07 -3.908001E-04 -1.527247E-07 --1.181620E-05 -1.396226E-10 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.870000E-04 -8.530317E-03 -2.513821E-05 -2.769866E-03 -1.832987E-06 -3.367000E-03 -3.408158E-06 -1.029151E-02 -3.475479E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.110000E-04 -1.493458E-02 -4.520237E-05 -8.130453E-03 -1.434362E-05 -5.917132E-03 -7.829616E-06 -1.005025E-02 -2.033292E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 -2.102923E-03 -3.237003E-06 -5.338761E-04 -1.665334E-06 -2.177563E-03 -1.210407E-06 -3.049393E-03 -2.236660E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.300000E-02 -2.470000E-04 -1.392809E-02 -4.644694E-05 -6.658849E-03 -2.448402E-05 -2.971606E-03 -4.596585E-06 -1.583003E-02 -5.281056E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.146617E-04 -4.615975E-07 -1.000000E-03 -1.000000E-06 -5.742336E-04 -3.297442E-07 --5.383652E-06 -2.898371E-11 --3.879749E-04 -1.505245E-07 -1.213130E-03 -5.521442E-07 -2.000000E-03 -2.000000E-06 -1.895662E-03 -1.796999E-06 -1.695499E-03 -1.439233E-06 -1.415735E-03 -1.008516E-06 -3.007686E-04 -9.046177E-08 -4.000000E-02 -3.460000E-04 -1.325054E-02 -4.611581E-05 -4.279513E-03 -1.445432E-05 -5.681074E-03 -8.701686E-06 -1.883326E-02 -7.820565E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.052295E-04 -4.558347E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.525429E-03 -8.388512E-07 -3.000000E-03 -3.000000E-06 -2.694249E-03 -2.442268E-06 -2.163402E-03 -1.718872E-06 -1.541834E-03 -1.227757E-06 -0.000000E+00 -0.000000E+00 -2.000000E-02 -1.000000E-04 -5.928221E-03 -9.217060E-06 -5.152240E-03 -1.183310E-05 -2.057268E-03 -2.929338E-06 -9.478909E-03 -2.313196E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.057201E-04 -1.834492E-07 -1.000000E-03 -1.000000E-06 -9.405199E-04 -8.845778E-07 -8.268666E-04 -6.837084E-07 -6.691277E-04 -4.477318E-07 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -1.400000E-02 -5.200000E-05 -6.537971E-03 -1.724690E-05 -3.839523E-03 -8.693753E-06 -4.048043E-03 -5.450370E-06 -7.581656E-03 -1.459334E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 -1.000000E-03 -1.000000E-06 -5.703488E-04 -3.252978E-07 --1.205336E-05 -1.452836E-10 --3.916902E-04 -1.534212E-07 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.340000E-04 -1.368605E-02 -4.005184E-05 -6.894848E-03 -1.073483E-05 -5.553663E-03 -7.001843E-06 -1.492310E-02 -4.851599E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.224455E-03 -5.613642E-07 +3.020143E-04 +9.121262E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1322,15 +1362,15 @@ tally 1: 0.000000E+00 0.000000E+00 2.800000E-02 -1.860000E-04 -1.044511E-02 -6.915901E-05 -6.444951E-03 -3.586496E-05 -5.196826E-03 -1.312451E-05 -1.156517E-02 -3.164422E-05 +1.660000E-04 +1.585913E-02 +6.353606E-05 +1.000709E-02 +2.500587E-05 +6.237459E-03 +8.453167E-06 +1.108880E-02 +2.616665E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1339,328 +1379,278 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.057201E-04 -1.834492E-07 +1.194532E-03 +7.134552E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.800000E-02 +8.200000E-05 +8.780691E-03 +2.358452E-05 +1.816210E-03 +1.543496E-06 +1.880620E-03 +1.310997E-06 +7.183087E-03 +1.306174E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 1.000000E-03 1.000000E-06 --6.535773E-04 -4.271632E-07 -1.407448E-04 -1.980911E-08 -2.824055E-04 -7.975284E-08 -1.822205E-03 -1.106831E-06 +1.324970E-04 +1.755546E-08 +-4.736668E-04 +2.243602E-07 +-1.929304E-04 +3.722214E-08 +0.000000E+00 +0.000000E+00 +3.300000E-02 +2.390000E-04 +9.004426E-03 +3.202491E-05 +8.390638E-03 +2.225399E-05 +7.671245E-03 +2.173426E-05 +1.526879E-02 +4.932937E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.196357E-03 +5.372737E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200000E-02 +4.600000E-05 +1.118075E-03 +5.126429E-06 +1.131273E-04 +9.269523E-07 +-4.997208E-04 +2.049174E-07 +4.186564E-03 +4.464187E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +1.000000E-03 +1.000000E-06 +1.681598E-04 +2.827772E-08 +-4.575834E-04 +2.093826E-07 +-2.403518E-04 +5.776898E-08 +2.093736E-03 +3.310679E-06 +3.000000E-03 +5.000000E-06 +2.887280E-03 +4.581616E-06 +2.669986E-03 +3.835050E-06 +2.363696E-03 +2.915580E-06 +0.000000E+00 +0.000000E+00 +1.500000E-02 +5.900000E-05 +3.685307E-03 +1.268655E-05 +5.360583E-03 +1.364253E-05 +1.590442E-03 +2.811111E-06 +7.793073E-03 +1.277581E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.300000E-05 +3.106624E-03 +9.484025E-06 +4.505496E-03 +5.432355E-06 +2.355878E-03 +2.623009E-06 +2.690622E-03 +1.877213E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.195730E-03 +1.429770E-06 +1.000000E-03 +1.000000E-06 +9.838946E-04 +9.680486E-07 +9.520729E-04 +9.064428E-07 +9.053026E-04 +8.195728E-07 +0.000000E+00 +0.000000E+00 +2.500000E-02 +1.390000E-04 +9.492341E-03 +2.448502E-05 +3.248123E-03 +2.577618E-06 +1.941360E-03 +2.063052E-06 +1.137644E-02 +3.026289E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +1.000000E-03 +1.000000E-06 +-6.411363E-05 +4.110558E-09 +-4.938342E-04 +2.438722E-07 +9.551160E-05 +9.122465E-09 +2.684602E-03 +5.778221E-06 2.000000E-03 2.000000E-06 -1.954998E-03 -1.911525E-06 -1.867287E-03 -1.747820E-06 -1.741309E-03 -1.532659E-06 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.010000E-04 -1.062788E-02 -3.182295E-05 -6.707513E-03 -1.259151E-05 -6.889024E-03 -1.429877E-05 -8.202036E-03 -2.430378E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.306024E-04 -8.660208E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.306024E-04 -8.660208E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -1.500000E-02 -4.500000E-05 -3.192578E-03 -7.201112E-06 -4.457942E-03 -6.346144E-06 -3.572536E-03 -4.921318E-06 -7.292620E-03 -1.123722E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.111025E-04 -2.767076E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 -1.000000E-03 -1.000000E-06 -9.537549E-04 -9.096483E-07 -8.644725E-04 -7.473127E-07 -7.383215E-04 -5.451186E-07 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.310000E-04 -7.696543E-03 -2.602323E-05 -5.553275E-03 -1.677303E-05 -3.110421E-03 -1.605284E-05 -1.157943E-02 -3.065139E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -1.000000E-03 -1.000000E-06 --1.849356E-05 -3.420117E-10 --4.994870E-04 -2.494872E-07 -2.772452E-05 -7.686492E-10 -9.104691E-04 -8.289540E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.460000E-04 -1.097600E-02 -2.696995E-05 -8.425033E-03 -2.480653E-05 -3.259803E-03 -4.519527E-06 -1.278442E-02 -3.571130E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.600000E-02 -6.000000E-05 -2.471171E-03 -8.220215E-06 -2.563821E-04 -8.785791E-07 -1.300883E-03 -3.079168E-06 -7.314002E-03 -1.134821E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.022304E-04 -9.134324E-08 -1.000000E-03 -1.000000E-06 --5.657444E-04 -3.200667E-07 --1.989995E-05 -3.960081E-10 -3.959267E-04 -1.567580E-07 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.000000E-03 -1.800000E-05 -5.436075E-03 -7.868978E-06 -2.425522E-03 -1.963607E-06 -7.168734E-04 -1.273978E-06 -4.589694E-03 -5.548791E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +1.975537E-03 +1.951439E-06 +1.927159E-03 +1.857550E-06 +1.855946E-03 +1.724502E-06 0.000000E+00 0.000000E+00 2.100000E-02 -1.070000E-04 -7.539735E-03 -2.068189E-05 -3.936810E-03 -7.972494E-06 -2.420366E-04 -1.148364E-06 -9.428594E-03 -2.131421E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -2.000000E-03 -2.000000E-06 -1.606787E-04 -1.589809E-06 -1.384713E-03 -1.050316E-06 -7.117279E-04 -6.789060E-07 -9.257840E-04 -4.781566E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.600000E-02 -5.100000E-04 -1.468472E-02 -4.705766E-05 -8.285657E-03 -2.501121E-05 -5.066048E-03 -7.892505E-06 -1.769628E-02 -7.226941E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.216485E-03 -5.564829E-07 +9.500000E-05 +3.106757E-03 +7.530480E-06 +2.693211E-04 +3.828657E-06 +1.317058E-03 +3.136131E-06 +1.017555E-02 +2.236513E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1679,18 +1669,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.130000E-04 -9.030313E-03 -2.036594E-05 -5.561323E-03 -2.088769E-05 -3.949070E-03 -5.399490E-06 -1.065996E-02 -2.405722E-05 +5.990909E-04 +3.589099E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1699,8 +1679,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.124312E-04 -1.875678E-07 +0.000000E+00 +0.000000E+00 +1.400000E-02 +5.400000E-05 +5.944397E-03 +1.655215E-05 +1.726828E-03 +5.006812E-06 +-1.657930E-03 +4.261204E-06 +5.696729E-03 +8.356388E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1709,48 +1699,48 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.044609E-04 -3.653729E-07 +2.989325E-04 +8.936066E-08 1.000000E-03 1.000000E-06 -9.969425E-04 -9.938944E-07 -9.908416E-04 -9.817670E-07 -9.817251E-04 -9.637842E-07 -0.000000E+00 -0.000000E+00 -1.300000E-02 -4.300000E-05 -1.119189E-03 -4.668647E-06 --1.976393E-04 -4.632517E-06 -2.358914E-03 -3.047107E-06 -6.688330E-03 -1.125860E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +6.866979E-04 +4.715540E-07 +2.073310E-04 +4.298614E-08 +-2.205090E-04 +4.862422E-08 +1.496493E-03 +1.164240E-06 1.000000E-03 1.000000E-06 --3.353539E-04 -1.124622E-07 --3.313067E-04 -1.097641E-07 -4.087442E-04 -1.670718E-07 -9.161472E-04 -8.393257E-07 +-9.623002E-04 +9.260217E-07 +8.890326E-04 +7.903789E-07 +-7.843269E-04 +6.151687E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.600000E-05 +4.361597E-03 +7.003332E-06 +1.326662E-03 +8.159669E-07 +-1.380710E-04 +7.198742E-08 +4.786948E-03 +7.321215E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1761,16 +1751,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.600000E-02 -1.980000E-04 -1.024848E-02 -3.100622E-05 --1.145555E-04 -2.521646E-06 -1.453177E-03 -1.505423E-06 -1.124135E-02 -3.412415E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1779,8 +1759,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.029991E-04 -1.818050E-07 +0.000000E+00 +0.000000E+00 +3.900000E-02 +3.870000E-04 +1.427389E-02 +8.090929E-05 +8.826225E-03 +2.660607E-05 +4.117139E-03 +7.490443E-06 +2.216995E-02 +1.059100E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.198182E-03 +1.435639E-06 1.000000E-03 1.000000E-06 -2.499079E-04 @@ -1789,40 +1789,28 @@ tally 1: 1.650952E-07 3.358425E-04 1.127902E-07 -6.044609E-04 -3.653729E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -8.700000E-05 -6.743817E-03 -2.313239E-05 -1.353852E-03 -7.358462E-06 -3.054381E-03 -5.051576E-06 -7.932519E-03 -1.438883E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 +8.943961E-04 +7.999445E-07 +1.000000E-03 +1.000000E-06 +9.401483E-04 +8.838788E-07 +8.258183E-04 +6.819758E-07 +6.672205E-04 +4.451832E-07 +0.000000E+00 +0.000000E+00 +3.700000E-02 +3.250000E-04 +5.676482E-03 +1.840790E-05 +7.927554E-03 +2.448188E-05 +2.237603E-03 +2.700519E-06 +1.646685E-02 +6.188122E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1831,6 +1819,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.800372E-03 +1.258824E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1839,18 +1829,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.798328E-03 +1.615735E-06 +4.000000E-03 +6.000000E-06 +3.770169E-03 +5.325612E-06 +3.332954E-03 +4.161563E-06 +2.730616E-03 +2.811353E-06 0.000000E+00 0.000000E+00 2.000000E-02 -9.000000E-05 -4.678519E-03 -8.162854E-06 -2.588181E-03 -7.958110E-06 -2.322176E-03 -3.426024E-06 -8.534070E-03 -1.767419E-05 +9.600000E-05 +5.093280E-03 +1.425830E-05 +2.794340E-03 +1.663793E-05 +4.103789E-03 +6.867085E-06 +8.700108E-03 +1.850749E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1859,8 +1859,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.029991E-04 -1.818050E-07 +9.029611E-04 +4.542111E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1881,16 +1881,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.100000E-02 -3.300000E-05 -7.244624E-03 -1.778235E-05 -2.926133E-03 -9.287629E-06 -9.851866E-04 -6.097573E-06 -3.660351E-03 -3.716102E-06 +6.000000E-03 +1.400000E-05 +4.561928E-03 +8.999493E-06 +2.729392E-03 +4.924575E-06 +1.659472E-03 +3.263660E-06 +2.095047E-03 +1.698704E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,8 +1899,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.034897E-04 -9.210600E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1909,28 +1907,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.053824E-04 -9.325841E-08 +0.000000E+00 +0.000000E+00 +5.962641E-04 +3.555309E-07 1.000000E-03 1.000000E-06 -1.744930E-04 -3.044781E-08 --4.543283E-04 -2.064142E-07 --2.484572E-04 -6.173098E-08 +9.213015E-04 +8.487964E-07 +7.731946E-04 +5.978298E-07 +5.730412E-04 +3.283762E-07 0.000000E+00 0.000000E+00 1.000000E-02 2.600000E-05 -3.641369E-03 -6.818931E-06 -2.110606E-03 -2.176630E-06 -1.892973E-03 -1.812944E-06 -5.777456E-03 -9.494012E-06 +5.481204E-03 +1.421903E-05 +2.241220E-03 +8.639111E-06 +2.375771E-03 +4.453036E-06 +4.791983E-03 +5.914853E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,8 +1939,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.034897E-04 -9.210600E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1951,186 +1949,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.300000E-02 -3.900000E-05 -1.682557E-03 -1.846926E-06 -4.172846E-04 -1.892148E-06 -7.276646E-04 -1.085417E-06 -6.092709E-03 -8.907893E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-03 -7.000000E-06 -1.580450E-03 -1.753085E-06 -3.349602E-04 -3.639488E-07 -2.690006E-04 -2.374932E-07 -1.830811E-03 -9.321096E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.034897E-04 -9.210600E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.250000E-04 -2.138118E-03 -8.791773E-06 -2.868574E-03 -9.339641E-06 -5.807501E-04 -1.660344E-06 -8.165982E-03 -2.226036E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.044609E-04 -3.653729E-07 +1.193329E-03 +8.893051E-07 1.000000E-03 1.000000E-06 -2.312419E-04 -5.347280E-08 --4.197908E-04 -1.762243E-07 --3.159499E-04 -9.982435E-08 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.070000E-04 -2.216472E-03 -6.388960E-06 -4.896969E-03 -6.428816E-06 -2.155707E-03 -2.884510E-06 -1.038058E-02 -2.477423E-05 +8.827246E-04 +7.792028E-07 +6.688042E-04 +4.472990E-07 +3.954668E-04 +1.563940E-07 +2.989325E-04 +8.936066E-08 +9.000000E-03 +2.100000E-05 +4.651230E-03 +4.741702E-06 +2.150788E-03 +1.086619E-06 +2.092494E-03 +1.840170E-06 +4.800173E-03 +5.412689E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2139,38 +1979,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.007686E-04 -9.046177E-08 -1.000000E-03 -1.000000E-06 -7.019813E-04 -4.927778E-07 -2.391667E-04 -5.720072E-08 --1.881699E-04 -3.540793E-08 -2.131373E-03 -2.696833E-06 -1.000000E-03 -1.000000E-06 -9.937981E-04 -9.876347E-07 -9.814521E-04 -9.632483E-07 -9.630767E-04 -9.275168E-07 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.000000E-05 -2.774441E-03 -2.455060E-06 --4.125360E-04 -1.557128E-06 --9.369606E-04 -2.349382E-06 -3.666415E-03 -4.871762E-06 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2179,18 +1991,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.057201E-04 -1.834492E-07 -1.000000E-03 -1.000000E-06 -8.429685E-04 -7.105959E-07 -5.658938E-04 -3.202358E-07 -2.330721E-04 -5.432261E-08 -6.015373E-04 -3.618471E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2202,15 +2002,335 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-03 +3.000000E-06 +7.652902E-05 +1.571253E-06 +8.568788E-04 +1.094232E-06 +-7.206134E-04 +4.649382E-07 +9.000807E-04 +2.700544E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +9.101753E-04 +8.284190E-07 +7.426285E-04 +5.514972E-07 +5.197534E-04 +2.701436E-07 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +4.600000E-05 +6.259455E-03 +1.284922E-05 +2.076794E-03 +2.552816E-06 +6.278684E-04 +2.094249E-06 +6.584175E-03 +1.056233E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +1.000000E-03 +1.000000E-06 +6.257846E-04 +3.916063E-07 +8.740950E-05 +7.640421E-09 +-3.260239E-04 +1.062916E-07 +5.962641E-04 +3.555309E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.500000E-02 +7.500000E-05 +4.663045E-03 +1.215939E-05 +4.830409E-03 +8.682038E-06 +3.887884E-03 +4.756968E-06 +8.095588E-03 +1.984557E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.958095E-04 +4.452583E-07 +2.000000E-03 +2.000000E-06 +1.906393E-03 +1.818122E-06 +1.727184E-03 +1.499401E-06 +1.477537E-03 +1.118575E-06 +0.000000E+00 +0.000000E+00 +5.000000E-03 +7.000000E-06 +1.973804E-03 +3.852738E-06 +1.299550E-03 +2.189071E-06 +2.037626E-03 +1.354116E-06 +2.097904E-03 +9.889505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +-9.618754E-04 +9.252042E-07 +8.878063E-04 +7.882000E-07 +-7.820147E-04 +6.115471E-07 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +6.600000E-05 +2.900274E-03 +2.656005E-06 +-1.326535E-04 +7.657613E-07 +2.692899E-03 +2.374742E-06 +7.492257E-03 +1.481323E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.976775E-04 +1.786102E-07 +1.000000E-03 +1.000000E-06 +-5.336276E-04 +2.847584E-07 +-7.286246E-05 +5.308937E-09 +4.205541E-04 +1.768657E-07 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +9.500000E-05 +1.100185E-02 +2.519922E-05 +5.296622E-03 +6.181448E-06 +4.290056E-03 +6.437184E-06 +9.878051E-03 +2.067153E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.494265E-03 +8.042497E-07 +3.000000E-03 +3.000000E-06 +6.851013E-04 +1.571044E-06 +8.565666E-04 +1.043968E-06 +7.365013E-04 +1.098388E-06 +0.000000E+00 +0.000000E+00 +3.000000E-03 5.000000E-06 -1.596397E-03 -1.275630E-06 -4.822532E-04 -1.627925E-07 -2.983020E-04 -9.401537E-08 -1.221939E-03 -7.467452E-07 +1.355880E-03 +1.020443E-06 +1.249756E-03 +8.001666E-07 +1.419322E-03 +1.107335E-06 +2.397825E-03 +2.688348E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2219,6 +2339,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.989325E-04 +8.936066E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2241,16 +2363,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.000000E-03 -4.000000E-05 --7.915490E-05 -1.150292E-07 -2.293529E-03 -2.932682E-06 -1.356149E-03 -9.471925E-07 -4.579650E-03 -7.918475E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2259,118 +2371,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.022304E-04 -9.134324E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.300000E-05 -5.093647E-03 -1.217545E-05 -1.852586E-03 -4.478970E-06 -9.768799E-04 -1.395189E-06 -4.578572E-03 -5.491453E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -1.000000E-03 -1.000000E-06 -9.817451E-04 -9.638234E-07 -9.457351E-04 -8.944149E-07 -8.929546E-04 -7.973680E-07 -0.000000E+00 -0.000000E+00 -4.000000E-03 -4.000000E-06 --1.284380E-03 -9.356368E-07 --5.965448E-04 -6.643272E-07 -3.352677E-04 -2.956621E-07 -1.526686E-03 -6.527074E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --3.965739E-04 -1.572709E-07 --2.640937E-04 -6.974547E-08 -4.389371E-04 -1.926657E-07 -3.053824E-04 -9.325841E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2402,11 +2402,11 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -5.720364E-01 -6.548043E-02 -6.217988E-01 -7.736906E-02 -3.624477E+00 -2.628737E+00 -4.047526E+01 -3.278231E+02 +5.712389E-01 +6.528048E-02 +6.215724E-01 +7.729703E-02 +3.619520E+00 +2.620927E+00 +4.040217E+01 +3.265313E+02 diff --git a/tests/test_statepoint_batch/results_true.dat b/tests/test_statepoint_batch/results_true.dat index 95b536997..259b9fb1e 100644 --- a/tests/test_statepoint_batch/results_true.dat +++ b/tests/test_statepoint_batch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.051173E-01 6.930168E-04 +2.896118E-01 5.112161E-03 diff --git a/tests/test_statepoint_interval/results_true.dat b/tests/test_statepoint_interval/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_statepoint_interval/results_true.dat +++ b/tests/test_statepoint_interval/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_statepoint_restart/results_true.dat b/tests/test_statepoint_restart/results_true.dat index 0e4eef9a9..a03d8885b 100644 --- a/tests/test_statepoint_restart/results_true.dat +++ b/tests/test_statepoint_restart/results_true.dat @@ -1,16 +1,16 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 tally 1: -7.000000E-03 -2.100000E-05 -1.127639E-03 -7.464355E-07 --1.264355E-03 -1.192757E-06 -8.769846E-04 -1.117508E-06 -3.359153E-03 -4.366438E-06 +1.500000E-02 +6.100000E-05 +6.140730E-03 +1.827778E-05 +5.466817E-03 +1.172967E-05 +4.386203E-03 +6.988762E-06 +7.799017E-03 +1.730653E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -19,18 +19,58 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.107648E-04 -3.730336E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.982678E-04 +3.579243E-07 1.000000E-03 1.000000E-06 -6.713061E-04 -4.506518E-07 -1.759778E-04 -3.096817E-08 --2.506458E-04 -6.282332E-08 -6.069794E-04 -3.684240E-07 +9.657483E-04 +9.326697E-07 +8.990046E-04 +8.082092E-07 +8.031880E-04 +6.451110E-07 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.100000E-05 +-3.133071E-05 +2.698671E-06 +2.623750E-04 +1.344791E-06 +-2.483720E-03 +1.649588E-06 +3.294650E-03 +2.242064E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +6.245980E-04 +3.901227E-07 +8.518403E-05 +7.256319E-09 +-3.277224E-04 +1.074020E-07 +2.989325E-04 +8.936066E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -42,25 +82,15 @@ tally 1: 0.000000E+00 0.000000E+00 7.000000E-03 -1.500000E-05 -4.398928E-03 -8.198908E-06 -1.784486E-03 -3.422315E-06 -8.494423E-04 -9.262242E-07 -4.566637E-03 -5.646039E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 +1.100000E-05 +2.955972E-03 +4.718865E-06 +2.296283E-03 +1.893728E-06 +1.374242E-03 +1.154127E-06 +4.505145E-03 +6.063009E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -81,16 +111,266 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.000000E-03 -3.000000E-06 --1.419189E-03 -9.791601E-07 --3.125982E-05 -5.086129E-07 -3.291570E-04 -1.943609E-07 -1.525426E-03 -8.346311E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.230000E-04 +4.489511E-03 +2.028537E-05 +1.946623E-03 +1.610367E-06 +1.647952E-03 +1.769319E-06 +1.077022E-02 +2.893664E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.000807E-04 +2.700544E-07 +1.000000E-03 +1.000000E-06 +-9.045723E-04 +8.182510E-07 +7.273765E-04 +5.290766E-07 +-4.935596E-04 +2.436011E-07 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.050000E-04 +2.386082E-03 +3.497107E-06 +4.555769E-03 +1.058977E-05 +1.879180E-03 +5.304853E-06 +7.792317E-03 +1.670472E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.198624E-03 +3.591835E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +3.327793E-04 +1.107421E-07 +-3.338869E-04 +1.114804E-07 +-4.070373E-04 +1.656794E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +2.400000E-05 +5.261857E-03 +7.471221E-06 +5.280154E-03 +9.529481E-06 +5.060306E-03 +6.646531E-06 +6.894561E-03 +1.267269E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.000000E-03 +1.800000E-05 +-2.025476E-04 +1.858789E-06 +-6.686398E-04 +1.065456E-06 +6.586587E-04 +4.841450E-07 +2.994327E-03 +2.684002E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -123,146 +403,14 @@ tally 1: 0.000000E+00 1.000000E-03 1.000000E-06 --1.542107E-05 -2.378095E-10 --4.996433E-04 -2.496434E-07 -2.312244E-05 -5.346472E-10 -3.053824E-04 -9.325841E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -8.600000E-05 -3.995253E-03 -1.648172E-05 -3.349403E-03 -1.166653E-05 -4.208940E-03 -7.077664E-06 -1.033905E-02 -2.197265E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.029991E-04 -1.818050E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.620000E-04 -7.996640E-03 -1.882484E-05 -3.921034E-03 -1.157453E-05 -1.644629E-03 -3.217857E-06 -1.159182E-02 -3.534975E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -2.500000E-05 -4.691861E-03 -7.999548E-06 -1.771537E-03 -3.385525E-06 -7.888659E-04 -1.911759E-06 -4.561602E-03 -4.337486E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.107648E-04 -3.730336E-07 -0.000000E+00 -0.000000E+00 +9.104915E-04 +8.289948E-07 +7.434921E-04 +5.527806E-07 +5.212445E-04 +2.716958E-07 +1.201894E-03 +7.222931E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -281,16 +429,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.990909E-04 +3.589099E-07 1.000000E-03 1.000000E-06 --3.878617E-04 -1.504367E-07 --2.743449E-04 -7.526515E-08 -4.359210E-04 -1.900271E-07 -3.034897E-04 -9.210600E-08 +-5.260403E-04 +2.767184E-07 +-8.492233E-05 +7.211803E-09 +4.251479E-04 +1.807507E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -321,26 +469,108 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.400000E-02 +3.540000E-04 +1.553475E-02 +6.367842E-05 +1.520994E-02 +7.741012E-05 +8.930877E-03 +2.739654E-05 +1.405733E-02 +6.608052E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.031624E-04 +4.543315E-07 +1.000000E-03 +1.000000E-06 +-2.223524E-04 +4.944060E-08 +-4.258391E-04 +1.813389E-07 +3.060456E-04 +9.366388E-08 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200000E-02 +3.400000E-05 +3.889614E-03 +6.587628E-06 +2.115055E-03 +3.167536E-06 +3.463231E-04 +5.504681E-06 +5.710120E-03 +1.043566E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.600000E-02 5.600000E-05 -4.563082E-03 -6.119552E-06 -1.839038E-03 -1.089339E-06 -1.944879E-03 -2.372975E-06 -8.524215E-03 -1.874218E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015373E-04 -3.618471E-07 +3.164928E-03 +1.114752E-05 +3.143660E-03 +3.198813E-06 +1.287643E-03 +7.268133E-07 +8.988217E-03 +1.652319E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -351,46 +581,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.300000E-02 -5.300000E-05 -6.763364E-03 -1.445064E-05 -2.970216E-03 -3.071874E-06 -2.622002E-03 -3.547897E-06 -5.177618E-03 -8.040228E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +1.000000E-03 +1.000000E-06 +9.617800E-04 +9.250208E-07 +8.875312E-04 +7.877116E-07 +7.814962E-04 +6.107364E-07 +2.981320E-04 +8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -403,14 +603,14 @@ tally 1: 0.000000E+00 8.000000E-03 1.400000E-05 -1.172941E-04 -1.212454E-06 -4.110442E-04 -5.740547E-06 -1.788140E-03 -9.775061E-07 -3.946448E-03 -3.956113E-06 +2.562256E-03 +5.938938E-06 +3.215552E-03 +2.429308E-06 +2.809239E-03 +2.320949E-06 +2.396627E-03 +1.615072E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -419,8 +619,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.109694E-04 -1.866863E-07 +6.015597E-04 +1.809401E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -441,26 +641,436 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.100000E-02 +2.150000E-04 +1.898034E-02 +7.784899E-05 +1.264567E-02 +4.010917E-05 +8.079721E-03 +1.493258E-05 +1.529918E-02 +5.419874E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.966100E-04 +2.679708E-07 +1.000000E-03 +1.000000E-06 +1.982438E-04 +3.930062E-08 +-4.410491E-04 +1.945243E-07 +-2.778880E-04 +7.722173E-08 +8.967976E-04 +8.042459E-07 +1.000000E-03 +1.000000E-06 +9.755714E-04 +9.517396E-07 +9.276094E-04 +8.604592E-07 +8.578678E-04 +7.359371E-07 +0.000000E+00 +0.000000E+00 +1.600000E-02 +5.400000E-05 +3.332422E-03 +1.335735E-05 +4.814665E-03 +5.403574E-06 +8.177949E-04 +2.462505E-06 +7.189603E-03 +1.112704E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.196133E-03 +7.153669E-07 +2.000000E-03 +2.000000E-06 +9.961345E-04 +5.766569E-07 +-1.350146E-04 +1.888753E-07 +-5.756575E-04 +1.828150E-07 +2.089751E-03 +2.580978E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.500000E-02 +5.900000E-05 +3.574847E-03 +7.661052E-06 +2.411448E-03 +4.875571E-06 +-4.456628E-04 +3.620849E-06 +5.991484E-03 +9.329446E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.953980E-04 +4.450119E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.402987E-03 +2.352531E-06 +4.000000E-03 +6.000000E-06 +3.730318E-03 +5.177826E-06 +3.229766E-03 +3.845053E-06 +2.569348E-03 +2.470333E-06 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.140000E-04 +1.157227E-02 +3.152553E-05 +5.993470E-03 +9.940306E-06 +6.549523E-03 +9.865076E-06 +8.969741E-03 +1.911355E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.980234E-04 +4.482705E-07 +1.000000E-03 +1.000000E-06 +4.538235E-04 +2.059558E-07 +-1.910664E-04 +3.650635E-08 +-4.470663E-04 +1.998683E-07 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.020000E-04 +4.042627E-03 +9.476178E-06 +2.881083E-03 +5.928110E-06 +3.065234E-03 +4.444894E-06 +1.168502E-02 +2.989919E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.020143E-04 +9.121262E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.250000E-04 +9.991177E-03 +3.139502E-05 +2.556450E-03 +1.824566E-06 +3.329841E-03 +5.163205E-06 +9.576327E-03 +2.773298E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.959971E-04 +4.463253E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200651E-03 +8.987598E-07 +1.000000E-03 +1.000000E-06 +9.522533E-04 +9.067863E-07 +8.601795E-04 +7.399088E-07 +7.303458E-04 +5.334049E-07 +3.020143E-04 +9.121262E-08 +2.100000E-02 +1.150000E-04 +1.242804E-03 +3.619176E-06 +1.867552E-03 +1.359691E-06 +2.306130E-03 +5.045915E-06 +9.000544E-03 +2.094585E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +1.000000E-03 +1.000000E-06 +9.669322E-04 +9.349578E-07 +9.024367E-04 +8.143920E-07 +8.097037E-04 +6.556200E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.600000E-05 +7.900751E-03 +1.937232E-05 +5.101355E-03 +8.800793E-06 +4.128814E-03 +6.665133E-06 +7.790979E-03 +1.525891E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.986793E-04 +1.792085E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.020143E-04 +9.121262E-08 +1.000000E-03 +1.000000E-06 +9.912755E-04 +9.826271E-07 +9.739406E-04 +9.485603E-07 +9.482220E-04 +8.991250E-07 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.260000E-04 +7.579348E-03 +2.124946E-05 +6.787172E-03 +1.874543E-05 +3.914660E-03 +8.731250E-06 +1.167769E-02 +3.750609E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.986793E-04 +1.792085E-07 +2.000000E-03 +2.000000E-06 +3.631413E-04 +1.401984E-06 +1.102976E-03 +1.004698E-06 +1.304621E-03 +1.083698E-06 +2.993714E-03 +2.324726E-06 +5.000000E-03 +7.000000E-06 +4.239270E-03 +4.739399E-06 +2.968259E-03 +2.239642E-06 +1.575924E-03 +1.063419E-06 +2.989325E-04 +8.936066E-08 +2.700000E-02 +1.610000E-04 +8.295783E-03 +1.670306E-05 +5.150584E-03 +1.540799E-05 +2.687614E-03 +7.461732E-06 +1.197674E-02 +3.010342E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.195131E-03 +5.358064E-07 +1.000000E-03 +1.000000E-06 +-7.791468E-04 +6.070697E-07 +4.106046E-04 +1.685961E-07 +-1.377092E-05 +1.896382E-10 +1.803453E-03 +1.268084E-06 +2.000000E-03 +2.000000E-06 +1.885433E-03 +1.778733E-06 +1.668099E-03 +1.401699E-06 +1.370094E-03 +9.733671E-07 +2.995454E-04 +8.972747E-08 +2.500000E-02 +1.690000E-04 +7.306400E-03 +1.879755E-05 +5.910494E-03 +7.423636E-06 +4.158757E-03 +8.004612E-06 +1.136957E-02 +3.132992E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.000000E-03 1.000000E-06 -9.168648E-04 -8.406410E-07 -7.609615E-04 -5.790624E-07 -5.515881E-04 -3.042494E-07 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +-1.294470E-04 +1.675653E-08 +-4.748652E-04 +2.254970E-07 +1.887478E-04 +3.562574E-08 +5.990909E-04 +3.589099E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -471,6 +1081,196 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.900000E-02 +1.270000E-04 +7.644698E-03 +2.593978E-05 +4.291971E-03 +7.952406E-06 +1.754591E-03 +1.626852E-06 +8.970335E-03 +2.698525E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +9.900000E-05 +9.175459E-03 +3.081816E-05 +6.537841E-03 +1.693021E-05 +3.371815E-03 +6.901863E-06 +1.109875E-02 +2.912624E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.991339E-04 +8.948108E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +3.150000E-04 +7.491923E-03 +2.563522E-05 +4.484513E-03 +1.087903E-05 +5.244220E-03 +1.284762E-05 +1.256302E-02 +4.702441E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.972659E-04 +1.783638E-07 +1.000000E-03 +1.000000E-06 +1.684904E-04 +2.838901E-08 +-4.574165E-04 +2.092298E-07 +-2.407774E-04 +5.797376E-08 +1.503908E-03 +1.178356E-06 +2.000000E-03 +2.000000E-06 +1.675714E-03 +1.446154E-06 +1.169231E-03 +9.498292E-07 +6.921651E-04 +8.538185E-07 +3.020143E-04 +9.121262E-08 +2.000000E-02 +8.600000E-05 +9.188471E-03 +2.173815E-05 +1.860120E-03 +4.452062E-06 +2.429984E-03 +2.502873E-06 +1.048716E-02 +2.272644E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.974105E-04 +4.471701E-07 +2.000000E-03 +2.000000E-06 +1.794485E-03 +1.610365E-06 +1.415547E-03 +1.003887E-06 +9.217303E-04 +4.304779E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.400000E-05 +3.179742E-03 +4.790936E-06 +-6.355126E-04 +5.202988E-06 +1.151706E-03 +3.152245E-06 +7.489949E-03 +1.301150E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +6.585165E-04 +4.336439E-07 +1.504659E-04 +2.263998E-08 +-2.738705E-04 +7.500507E-08 +1.196133E-03 +7.153669E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -482,15 +1282,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-02 -2.020000E-04 -1.305502E-02 -4.343057E-05 -8.214305E-03 -2.001202E-05 -3.511762E-03 -1.412559E-05 -1.401995E-02 -4.269615E-05 +2.060000E-04 +1.541898E-02 +5.863846E-05 +9.395114E-03 +2.654761E-05 +8.661018E-03 +2.160642E-05 +1.049373E-02 +2.404605E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -499,6 +1299,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.396224E-03 +1.614108E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -507,6 +1309,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.600725E-03 +5.038163E-06 +4.000000E-03 +8.000000E-06 +3.781504E-03 +7.153441E-06 +3.368106E-03 +5.701400E-06 +2.804131E-03 +4.034404E-06 +2.989325E-04 +8.936066E-08 +1.900000E-02 +7.900000E-05 +6.408930E-03 +1.103823E-05 +3.228416E-03 +7.109320E-06 +4.961615E-04 +2.423816E-06 +1.079243E-02 +2.644603E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -515,792 +1339,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.320000E-04 -5.207205E-03 -9.311400E-06 -3.232372E-03 -3.475980E-06 -2.062884E-03 -4.773104E-06 -1.039066E-02 -2.611825E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.171802E-04 -4.646485E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.221939E-03 -7.467452E-07 -1.000000E-03 -1.000000E-06 -9.910929E-04 -9.822652E-07 -9.733978E-04 -9.475032E-07 -9.471508E-04 -8.970946E-07 -0.000000E+00 -0.000000E+00 -1.200000E-02 -5.000000E-05 -2.602864E-03 -4.471106E-06 -4.677566E-03 -1.033338E-05 -3.640584E-03 -3.605122E-06 -4.845169E-03 -8.244364E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.700000E-05 -3.786358E-03 -5.908272E-06 -3.416266E-03 -7.032934E-06 -3.353945E-03 -5.140933E-06 -4.261660E-03 -4.981501E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136905E-04 -1.883305E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.700000E-02 -2.090000E-04 -7.046302E-03 -1.594429E-05 -6.489218E-03 -1.057182E-05 -5.057204E-03 -8.269888E-06 -1.274541E-02 -3.591083E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.503843E-03 -2.261544E-06 -3.000000E-03 -5.000000E-06 -3.434984E-04 -2.731822E-07 --1.911976E-04 -2.018778E-08 --5.635206E-04 -2.075189E-07 -2.764973E-03 -3.917274E-06 -2.000000E-03 -2.000000E-06 -1.802029E-03 -1.623906E-06 -1.435858E-03 -1.032682E-06 -9.559957E-04 -4.622600E-07 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.540000E-04 -1.210267E-02 -4.180540E-05 -5.431699E-03 -2.284317E-05 -6.108638E-03 -1.136078E-05 -1.309420E-02 -3.810504E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.044609E-04 -3.653729E-07 -1.000000E-03 -1.000000E-06 -9.341546E-04 -8.726448E-07 -8.089673E-04 -6.544280E-07 -6.367311E-04 -4.054265E-07 -3.022304E-04 -9.134324E-08 -2.100000E-02 -9.900000E-05 -1.206996E-02 -4.033646E-05 -6.345510E-03 -1.603169E-05 -1.976558E-03 -4.386164E-06 -1.001209E-02 -2.316074E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.815901E-03 -1.829916E-06 -2.000000E-03 -2.000000E-06 -1.977802E-03 -1.955858E-06 -1.933788E-03 -1.869841E-06 -1.868714E-03 -1.746332E-06 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.900000E-05 -2.604154E-03 -9.668124E-06 -1.503936E-04 -1.170450E-06 -5.645599E-04 -1.841604E-06 -5.455481E-03 -1.116233E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015373E-04 -3.618471E-07 -1.000000E-03 -1.000000E-06 -9.936377E-04 -9.873159E-07 -9.809739E-04 -9.623097E-07 -9.621293E-04 -9.256927E-07 -0.000000E+00 -0.000000E+00 -4.100000E-02 -3.610000E-04 -1.275568E-02 -3.756672E-05 -7.436840E-03 -1.784918E-05 -6.238119E-03 -1.114039E-05 -1.706095E-02 -6.393171E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.510747E-03 -8.216143E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.500000E-02 -1.570000E-04 -4.743361E-03 -1.500512E-05 -2.243747E-03 -1.216909E-05 -6.504387E-04 -5.012686E-06 -1.369930E-02 -4.220232E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.205998E-03 -7.272200E-07 -2.000000E-03 -2.000000E-06 -1.935082E-03 -1.872342E-06 -1.808514E-03 -1.635965E-06 -1.626644E-03 -1.325172E-06 -0.000000E+00 -0.000000E+00 -1.800000E-02 -1.180000E-04 -6.144587E-03 -1.810176E-05 -3.517233E-03 -7.894223E-06 -5.434668E-03 -1.689927E-05 -7.002945E-03 -1.633731E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.111025E-04 -2.767076E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.400000E-05 -2.937841E-03 -3.083257E-06 -1.316488E-03 -1.378720E-06 -1.917209E-03 -1.388887E-06 -2.434865E-03 -1.665821E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.100000E-02 -4.290000E-04 -1.555575E-02 -6.845536E-05 -1.492622E-02 -7.523417E-05 -4.779064E-03 -1.568962E-05 -1.858109E-02 -9.770216E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -1.000000E-03 -1.000000E-06 --7.961895E-04 -6.339178E-07 -4.508767E-04 -2.032898E-07 --6.751245E-05 -4.557931E-09 -2.105380E-03 -4.432627E-06 -1.000000E-03 -1.000000E-06 -7.706275E-04 -5.938667E-07 -3.908001E-04 -1.527247E-07 --1.181620E-05 -1.396226E-10 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.870000E-04 -8.530317E-03 -2.513821E-05 -2.769866E-03 -1.832987E-06 -3.367000E-03 -3.408158E-06 -1.029151E-02 -3.475479E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.110000E-04 -1.493458E-02 -4.520237E-05 -8.130453E-03 -1.434362E-05 -5.917132E-03 -7.829616E-06 -1.005025E-02 -2.033292E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 -2.102923E-03 -3.237003E-06 -5.338761E-04 -1.665334E-06 -2.177563E-03 -1.210407E-06 -3.049393E-03 -2.236660E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.300000E-02 -2.470000E-04 -1.392809E-02 -4.644694E-05 -6.658849E-03 -2.448402E-05 -2.971606E-03 -4.596585E-06 -1.583003E-02 -5.281056E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.146617E-04 -4.615975E-07 -1.000000E-03 -1.000000E-06 -5.742336E-04 -3.297442E-07 --5.383652E-06 -2.898371E-11 --3.879749E-04 -1.505245E-07 -1.213130E-03 -5.521442E-07 -2.000000E-03 -2.000000E-06 -1.895662E-03 -1.796999E-06 -1.695499E-03 -1.439233E-06 -1.415735E-03 -1.008516E-06 -3.007686E-04 -9.046177E-08 -4.000000E-02 -3.460000E-04 -1.325054E-02 -4.611581E-05 -4.279513E-03 -1.445432E-05 -5.681074E-03 -8.701686E-06 -1.883326E-02 -7.820565E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.052295E-04 -4.558347E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.525429E-03 -8.388512E-07 -3.000000E-03 -3.000000E-06 -2.694249E-03 -2.442268E-06 -2.163402E-03 -1.718872E-06 -1.541834E-03 -1.227757E-06 -0.000000E+00 -0.000000E+00 -2.000000E-02 -1.000000E-04 -5.928221E-03 -9.217060E-06 -5.152240E-03 -1.183310E-05 -2.057268E-03 -2.929338E-06 -9.478909E-03 -2.313196E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.057201E-04 -1.834492E-07 -1.000000E-03 -1.000000E-06 -9.405199E-04 -8.845778E-07 -8.268666E-04 -6.837084E-07 -6.691277E-04 -4.477318E-07 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -1.400000E-02 -5.200000E-05 -6.537971E-03 -1.724690E-05 -3.839523E-03 -8.693753E-06 -4.048043E-03 -5.450370E-06 -7.581656E-03 -1.459334E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 -1.000000E-03 -1.000000E-06 -5.703488E-04 -3.252978E-07 --1.205336E-05 -1.452836E-10 --3.916902E-04 -1.534212E-07 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.340000E-04 -1.368605E-02 -4.005184E-05 -6.894848E-03 -1.073483E-05 -5.553663E-03 -7.001843E-06 -1.492310E-02 -4.851599E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.224455E-03 -5.613642E-07 +3.020143E-04 +9.121262E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1322,15 +1362,15 @@ tally 1: 0.000000E+00 0.000000E+00 2.800000E-02 -1.860000E-04 -1.044511E-02 -6.915901E-05 -6.444951E-03 -3.586496E-05 -5.196826E-03 -1.312451E-05 -1.156517E-02 -3.164422E-05 +1.660000E-04 +1.585913E-02 +6.353606E-05 +1.000709E-02 +2.500587E-05 +6.237459E-03 +8.453167E-06 +1.108880E-02 +2.616665E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1339,328 +1379,278 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.057201E-04 -1.834492E-07 +1.194532E-03 +7.134552E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.800000E-02 +8.200000E-05 +8.780691E-03 +2.358452E-05 +1.816210E-03 +1.543496E-06 +1.880620E-03 +1.310997E-06 +7.183087E-03 +1.306174E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 1.000000E-03 1.000000E-06 --6.535773E-04 -4.271632E-07 -1.407448E-04 -1.980911E-08 -2.824055E-04 -7.975284E-08 -1.822205E-03 -1.106831E-06 +1.324970E-04 +1.755546E-08 +-4.736668E-04 +2.243602E-07 +-1.929304E-04 +3.722214E-08 +0.000000E+00 +0.000000E+00 +3.300000E-02 +2.390000E-04 +9.004426E-03 +3.202491E-05 +8.390638E-03 +2.225399E-05 +7.671245E-03 +2.173426E-05 +1.526879E-02 +4.932937E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.196357E-03 +5.372737E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200000E-02 +4.600000E-05 +1.118075E-03 +5.126429E-06 +1.131273E-04 +9.269523E-07 +-4.997208E-04 +2.049174E-07 +4.186564E-03 +4.464187E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +1.000000E-03 +1.000000E-06 +1.681598E-04 +2.827772E-08 +-4.575834E-04 +2.093826E-07 +-2.403518E-04 +5.776898E-08 +2.093736E-03 +3.310679E-06 +3.000000E-03 +5.000000E-06 +2.887280E-03 +4.581616E-06 +2.669986E-03 +3.835050E-06 +2.363696E-03 +2.915580E-06 +0.000000E+00 +0.000000E+00 +1.500000E-02 +5.900000E-05 +3.685307E-03 +1.268655E-05 +5.360583E-03 +1.364253E-05 +1.590442E-03 +2.811111E-06 +7.793073E-03 +1.277581E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.300000E-05 +3.106624E-03 +9.484025E-06 +4.505496E-03 +5.432355E-06 +2.355878E-03 +2.623009E-06 +2.690622E-03 +1.877213E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.195730E-03 +1.429770E-06 +1.000000E-03 +1.000000E-06 +9.838946E-04 +9.680486E-07 +9.520729E-04 +9.064428E-07 +9.053026E-04 +8.195728E-07 +0.000000E+00 +0.000000E+00 +2.500000E-02 +1.390000E-04 +9.492341E-03 +2.448502E-05 +3.248123E-03 +2.577618E-06 +1.941360E-03 +2.063052E-06 +1.137644E-02 +3.026289E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +1.000000E-03 +1.000000E-06 +-6.411363E-05 +4.110558E-09 +-4.938342E-04 +2.438722E-07 +9.551160E-05 +9.122465E-09 +2.684602E-03 +5.778221E-06 2.000000E-03 2.000000E-06 -1.954998E-03 -1.911525E-06 -1.867287E-03 -1.747820E-06 -1.741309E-03 -1.532659E-06 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.010000E-04 -1.062788E-02 -3.182295E-05 -6.707513E-03 -1.259151E-05 -6.889024E-03 -1.429877E-05 -8.202036E-03 -2.430378E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.306024E-04 -8.660208E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.306024E-04 -8.660208E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -1.500000E-02 -4.500000E-05 -3.192578E-03 -7.201112E-06 -4.457942E-03 -6.346144E-06 -3.572536E-03 -4.921318E-06 -7.292620E-03 -1.123722E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.111025E-04 -2.767076E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 -1.000000E-03 -1.000000E-06 -9.537549E-04 -9.096483E-07 -8.644725E-04 -7.473127E-07 -7.383215E-04 -5.451186E-07 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.310000E-04 -7.696543E-03 -2.602323E-05 -5.553275E-03 -1.677303E-05 -3.110421E-03 -1.605284E-05 -1.157943E-02 -3.065139E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -1.000000E-03 -1.000000E-06 --1.849356E-05 -3.420117E-10 --4.994870E-04 -2.494872E-07 -2.772452E-05 -7.686492E-10 -9.104691E-04 -8.289540E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.460000E-04 -1.097600E-02 -2.696995E-05 -8.425033E-03 -2.480653E-05 -3.259803E-03 -4.519527E-06 -1.278442E-02 -3.571130E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.600000E-02 -6.000000E-05 -2.471171E-03 -8.220215E-06 -2.563821E-04 -8.785791E-07 -1.300883E-03 -3.079168E-06 -7.314002E-03 -1.134821E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.022304E-04 -9.134324E-08 -1.000000E-03 -1.000000E-06 --5.657444E-04 -3.200667E-07 --1.989995E-05 -3.960081E-10 -3.959267E-04 -1.567580E-07 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.000000E-03 -1.800000E-05 -5.436075E-03 -7.868978E-06 -2.425522E-03 -1.963607E-06 -7.168734E-04 -1.273978E-06 -4.589694E-03 -5.548791E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +1.975537E-03 +1.951439E-06 +1.927159E-03 +1.857550E-06 +1.855946E-03 +1.724502E-06 0.000000E+00 0.000000E+00 2.100000E-02 -1.070000E-04 -7.539735E-03 -2.068189E-05 -3.936810E-03 -7.972494E-06 -2.420366E-04 -1.148364E-06 -9.428594E-03 -2.131421E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -2.000000E-03 -2.000000E-06 -1.606787E-04 -1.589809E-06 -1.384713E-03 -1.050316E-06 -7.117279E-04 -6.789060E-07 -9.257840E-04 -4.781566E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.600000E-02 -5.100000E-04 -1.468472E-02 -4.705766E-05 -8.285657E-03 -2.501121E-05 -5.066048E-03 -7.892505E-06 -1.769628E-02 -7.226941E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.216485E-03 -5.564829E-07 +9.500000E-05 +3.106757E-03 +7.530480E-06 +2.693211E-04 +3.828657E-06 +1.317058E-03 +3.136131E-06 +1.017555E-02 +2.236513E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1679,18 +1669,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.130000E-04 -9.030313E-03 -2.036594E-05 -5.561323E-03 -2.088769E-05 -3.949070E-03 -5.399490E-06 -1.065996E-02 -2.405722E-05 +5.990909E-04 +3.589099E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1699,8 +1679,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.124312E-04 -1.875678E-07 +0.000000E+00 +0.000000E+00 +1.400000E-02 +5.400000E-05 +5.944397E-03 +1.655215E-05 +1.726828E-03 +5.006812E-06 +-1.657930E-03 +4.261204E-06 +5.696729E-03 +8.356388E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1709,48 +1699,48 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.044609E-04 -3.653729E-07 +2.989325E-04 +8.936066E-08 1.000000E-03 1.000000E-06 -9.969425E-04 -9.938944E-07 -9.908416E-04 -9.817670E-07 -9.817251E-04 -9.637842E-07 -0.000000E+00 -0.000000E+00 -1.300000E-02 -4.300000E-05 -1.119189E-03 -4.668647E-06 --1.976393E-04 -4.632517E-06 -2.358914E-03 -3.047107E-06 -6.688330E-03 -1.125860E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +6.866979E-04 +4.715540E-07 +2.073310E-04 +4.298614E-08 +-2.205090E-04 +4.862422E-08 +1.496493E-03 +1.164240E-06 1.000000E-03 1.000000E-06 --3.353539E-04 -1.124622E-07 --3.313067E-04 -1.097641E-07 -4.087442E-04 -1.670718E-07 -9.161472E-04 -8.393257E-07 +-9.623002E-04 +9.260217E-07 +8.890326E-04 +7.903789E-07 +-7.843269E-04 +6.151687E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.600000E-05 +4.361597E-03 +7.003332E-06 +1.326662E-03 +8.159669E-07 +-1.380710E-04 +7.198742E-08 +4.786948E-03 +7.321215E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1761,16 +1751,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.600000E-02 -1.980000E-04 -1.024848E-02 -3.100622E-05 --1.145555E-04 -2.521646E-06 -1.453177E-03 -1.505423E-06 -1.124135E-02 -3.412415E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1779,8 +1759,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.029991E-04 -1.818050E-07 +0.000000E+00 +0.000000E+00 +3.900000E-02 +3.870000E-04 +1.427389E-02 +8.090929E-05 +8.826225E-03 +2.660607E-05 +4.117139E-03 +7.490443E-06 +2.216995E-02 +1.059100E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.198182E-03 +1.435639E-06 1.000000E-03 1.000000E-06 -2.499079E-04 @@ -1789,40 +1789,28 @@ tally 1: 1.650952E-07 3.358425E-04 1.127902E-07 -6.044609E-04 -3.653729E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -8.700000E-05 -6.743817E-03 -2.313239E-05 -1.353852E-03 -7.358462E-06 -3.054381E-03 -5.051576E-06 -7.932519E-03 -1.438883E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 +8.943961E-04 +7.999445E-07 +1.000000E-03 +1.000000E-06 +9.401483E-04 +8.838788E-07 +8.258183E-04 +6.819758E-07 +6.672205E-04 +4.451832E-07 +0.000000E+00 +0.000000E+00 +3.700000E-02 +3.250000E-04 +5.676482E-03 +1.840790E-05 +7.927554E-03 +2.448188E-05 +2.237603E-03 +2.700519E-06 +1.646685E-02 +6.188122E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1831,6 +1819,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.800372E-03 +1.258824E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1839,18 +1829,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.798328E-03 +1.615735E-06 +4.000000E-03 +6.000000E-06 +3.770169E-03 +5.325612E-06 +3.332954E-03 +4.161563E-06 +2.730616E-03 +2.811353E-06 0.000000E+00 0.000000E+00 2.000000E-02 -9.000000E-05 -4.678519E-03 -8.162854E-06 -2.588181E-03 -7.958110E-06 -2.322176E-03 -3.426024E-06 -8.534070E-03 -1.767419E-05 +9.600000E-05 +5.093280E-03 +1.425830E-05 +2.794340E-03 +1.663793E-05 +4.103789E-03 +6.867085E-06 +8.700108E-03 +1.850749E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1859,8 +1859,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.029991E-04 -1.818050E-07 +9.029611E-04 +4.542111E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1881,16 +1881,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.100000E-02 -3.300000E-05 -7.244624E-03 -1.778235E-05 -2.926133E-03 -9.287629E-06 -9.851866E-04 -6.097573E-06 -3.660351E-03 -3.716102E-06 +6.000000E-03 +1.400000E-05 +4.561928E-03 +8.999493E-06 +2.729392E-03 +4.924575E-06 +1.659472E-03 +3.263660E-06 +2.095047E-03 +1.698704E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,8 +1899,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.034897E-04 -9.210600E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1909,28 +1907,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.053824E-04 -9.325841E-08 +0.000000E+00 +0.000000E+00 +5.962641E-04 +3.555309E-07 1.000000E-03 1.000000E-06 -1.744930E-04 -3.044781E-08 --4.543283E-04 -2.064142E-07 --2.484572E-04 -6.173098E-08 +9.213015E-04 +8.487964E-07 +7.731946E-04 +5.978298E-07 +5.730412E-04 +3.283762E-07 0.000000E+00 0.000000E+00 1.000000E-02 2.600000E-05 -3.641369E-03 -6.818931E-06 -2.110606E-03 -2.176630E-06 -1.892973E-03 -1.812944E-06 -5.777456E-03 -9.494012E-06 +5.481204E-03 +1.421903E-05 +2.241220E-03 +8.639111E-06 +2.375771E-03 +4.453036E-06 +4.791983E-03 +5.914853E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,8 +1939,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.034897E-04 -9.210600E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1951,186 +1949,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.300000E-02 -3.900000E-05 -1.682557E-03 -1.846926E-06 -4.172846E-04 -1.892148E-06 -7.276646E-04 -1.085417E-06 -6.092709E-03 -8.907893E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-03 -7.000000E-06 -1.580450E-03 -1.753085E-06 -3.349602E-04 -3.639488E-07 -2.690006E-04 -2.374932E-07 -1.830811E-03 -9.321096E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.034897E-04 -9.210600E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.250000E-04 -2.138118E-03 -8.791773E-06 -2.868574E-03 -9.339641E-06 -5.807501E-04 -1.660344E-06 -8.165982E-03 -2.226036E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.044609E-04 -3.653729E-07 +1.193329E-03 +8.893051E-07 1.000000E-03 1.000000E-06 -2.312419E-04 -5.347280E-08 --4.197908E-04 -1.762243E-07 --3.159499E-04 -9.982435E-08 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.070000E-04 -2.216472E-03 -6.388960E-06 -4.896969E-03 -6.428816E-06 -2.155707E-03 -2.884510E-06 -1.038058E-02 -2.477423E-05 +8.827246E-04 +7.792028E-07 +6.688042E-04 +4.472990E-07 +3.954668E-04 +1.563940E-07 +2.989325E-04 +8.936066E-08 +9.000000E-03 +2.100000E-05 +4.651230E-03 +4.741702E-06 +2.150788E-03 +1.086619E-06 +2.092494E-03 +1.840170E-06 +4.800173E-03 +5.412689E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2139,38 +1979,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.007686E-04 -9.046177E-08 -1.000000E-03 -1.000000E-06 -7.019813E-04 -4.927778E-07 -2.391667E-04 -5.720072E-08 --1.881699E-04 -3.540793E-08 -2.131373E-03 -2.696833E-06 -1.000000E-03 -1.000000E-06 -9.937981E-04 -9.876347E-07 -9.814521E-04 -9.632483E-07 -9.630767E-04 -9.275168E-07 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.000000E-05 -2.774441E-03 -2.455060E-06 --4.125360E-04 -1.557128E-06 --9.369606E-04 -2.349382E-06 -3.666415E-03 -4.871762E-06 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2179,18 +1991,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.057201E-04 -1.834492E-07 -1.000000E-03 -1.000000E-06 -8.429685E-04 -7.105959E-07 -5.658938E-04 -3.202358E-07 -2.330721E-04 -5.432261E-08 -6.015373E-04 -3.618471E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2202,15 +2002,335 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-03 +3.000000E-06 +7.652902E-05 +1.571253E-06 +8.568788E-04 +1.094232E-06 +-7.206134E-04 +4.649382E-07 +9.000807E-04 +2.700544E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +9.101753E-04 +8.284190E-07 +7.426285E-04 +5.514972E-07 +5.197534E-04 +2.701436E-07 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +4.600000E-05 +6.259455E-03 +1.284922E-05 +2.076794E-03 +2.552816E-06 +6.278684E-04 +2.094249E-06 +6.584175E-03 +1.056233E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +1.000000E-03 +1.000000E-06 +6.257846E-04 +3.916063E-07 +8.740950E-05 +7.640421E-09 +-3.260239E-04 +1.062916E-07 +5.962641E-04 +3.555309E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.500000E-02 +7.500000E-05 +4.663045E-03 +1.215939E-05 +4.830409E-03 +8.682038E-06 +3.887884E-03 +4.756968E-06 +8.095588E-03 +1.984557E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.958095E-04 +4.452583E-07 +2.000000E-03 +2.000000E-06 +1.906393E-03 +1.818122E-06 +1.727184E-03 +1.499401E-06 +1.477537E-03 +1.118575E-06 +0.000000E+00 +0.000000E+00 +5.000000E-03 +7.000000E-06 +1.973804E-03 +3.852738E-06 +1.299550E-03 +2.189071E-06 +2.037626E-03 +1.354116E-06 +2.097904E-03 +9.889505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +-9.618754E-04 +9.252042E-07 +8.878063E-04 +7.882000E-07 +-7.820147E-04 +6.115471E-07 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +6.600000E-05 +2.900274E-03 +2.656005E-06 +-1.326535E-04 +7.657613E-07 +2.692899E-03 +2.374742E-06 +7.492257E-03 +1.481323E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.976775E-04 +1.786102E-07 +1.000000E-03 +1.000000E-06 +-5.336276E-04 +2.847584E-07 +-7.286246E-05 +5.308937E-09 +4.205541E-04 +1.768657E-07 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +9.500000E-05 +1.100185E-02 +2.519922E-05 +5.296622E-03 +6.181448E-06 +4.290056E-03 +6.437184E-06 +9.878051E-03 +2.067153E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.494265E-03 +8.042497E-07 +3.000000E-03 +3.000000E-06 +6.851013E-04 +1.571044E-06 +8.565666E-04 +1.043968E-06 +7.365013E-04 +1.098388E-06 +0.000000E+00 +0.000000E+00 +3.000000E-03 5.000000E-06 -1.596397E-03 -1.275630E-06 -4.822532E-04 -1.627925E-07 -2.983020E-04 -9.401537E-08 -1.221939E-03 -7.467452E-07 +1.355880E-03 +1.020443E-06 +1.249756E-03 +8.001666E-07 +1.419322E-03 +1.107335E-06 +2.397825E-03 +2.688348E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2219,6 +2339,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.989325E-04 +8.936066E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2241,16 +2363,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.000000E-03 -4.000000E-05 --7.915490E-05 -1.150292E-07 -2.293529E-03 -2.932682E-06 -1.356149E-03 -9.471925E-07 -4.579650E-03 -7.918475E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2259,118 +2371,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.022304E-04 -9.134324E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.300000E-05 -5.093647E-03 -1.217545E-05 -1.852586E-03 -4.478970E-06 -9.768799E-04 -1.395189E-06 -4.578572E-03 -5.491453E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -1.000000E-03 -1.000000E-06 -9.817451E-04 -9.638234E-07 -9.457351E-04 -8.944149E-07 -8.929546E-04 -7.973680E-07 -0.000000E+00 -0.000000E+00 -4.000000E-03 -4.000000E-06 --1.284380E-03 -9.356368E-07 --5.965448E-04 -6.643272E-07 -3.352677E-04 -2.956621E-07 -1.526686E-03 -6.527074E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --3.965739E-04 -1.572709E-07 --2.640937E-04 -6.974547E-08 -4.389371E-04 -1.926657E-07 -3.053824E-04 -9.325841E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2402,11 +2402,11 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -5.720364E-01 -6.548043E-02 -6.217988E-01 -7.736906E-02 -3.624477E+00 -2.628737E+00 -4.047526E+01 -3.278231E+02 +5.712389E-01 +6.528048E-02 +6.215724E-01 +7.729703E-02 +3.619520E+00 +2.620927E+00 +4.040217E+01 +3.265313E+02 diff --git a/tests/test_statepoint_sourcesep/results_true.dat b/tests/test_statepoint_sourcesep/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_statepoint_sourcesep/results_true.dat +++ b/tests/test_statepoint_sourcesep/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_survival_biasing/results_true.dat b/tests/test_survival_biasing/results_true.dat index 3e327841a..de5cf150e 100644 --- a/tests/test_survival_biasing/results_true.dat +++ b/tests/test_survival_biasing/results_true.dat @@ -1,20 +1,20 @@ k-combined: -9.997733E-01 2.995572E-02 +9.810103E-01 1.609702E-03 tally 1: -4.354055E+01 -3.793645E+02 -1.808636E+01 -6.546005E+01 -2.234465E+00 -9.989832E-01 -1.937431E+00 -7.510380E-01 -5.021671E+00 -5.045425E+00 -3.506791E-02 -2.460654E-04 -3.752351E+02 -2.817188E+04 +4.313495E+01 +3.721921E+02 +1.792866E+01 +6.430423E+01 +2.200731E+00 +9.690384E-01 +1.908978E+00 +7.291363E-01 +4.948871E+00 +4.900154E+00 +3.465589E-02 +2.402752E-04 +3.697361E+02 +2.735204E+04 tally 2: -1.808636E+01 -6.546005E+01 +1.792866E+01 +6.430423E+01 diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 4f8b3956b..164ab307c 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -5be9b80ecc189d4ee3a6a228d97b0c76b6b47e5204a86ecf03b8faa65c499f6861ffd85c153084bafd0835d10dfacc14f28802901ce966c8a803d60d0c2f42e5 \ No newline at end of file +bafeb65c4596d719bcab7ebbfbb789b28b858a16b9a3755b62356bf1a806c142d5becc0b5a52382cddf57267ff4477c7b5e7e1528bd3dde3ac29b0467a137a29 \ No newline at end of file diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index cde3e281c..879a8797a 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -ba8bfe764fcc0484a4fdab8fdc4ff8ad0e4a98b1ff33e8687899c8cc6bf80cb28b3a59aeaec84bd74681b8b5f19f714292ccaa9c9d4ba852b2cc29872f612e10 \ No newline at end of file +fa410f505a1e9b7b01b127251751942ad362f39141b7e9c9d1c59b19f395d4d78a7aab3f35f03fcdb9fc13fa03ea9950c57943bb73917dac5e32f01fda0078fd \ No newline at end of file diff --git a/tests/test_tally_arithmetic/results_true.dat b/tests/test_tally_arithmetic/results_true.dat index ded2efa66..ef2741cc1 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] ..., - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]][[[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]][[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] ..., - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 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.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]][[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] ..., - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]][[[ 0.00000000e+00 4.41507090e-05 0.00000000e+00] - [ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 2.35903380e-05 0.00000000e+00] - [ 0.00000000e+00 1.93340411e-05 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]][[[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 4.41507090e-05 0.00000000e+00] - [ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 2.35903380e-05 0.00000000e+00] - [ 0.00000000e+00 1.93340411e-05 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 4.41507090e-05 0.00000000e+00] - [ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 2.35903380e-05 0.00000000e+00] - [ 0.00000000e+00 1.93340411e-05 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] ..., - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]]][[[ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]]][[[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] ..., - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]]] \ No newline at end of file + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]]] \ No newline at end of file diff --git a/tests/test_tally_assumesep/results_true.dat b/tests/test_tally_assumesep/results_true.dat index 4835227f2..995c9ade6 100644 --- a/tests/test_tally_assumesep/results_true.dat +++ b/tests/test_tally_assumesep/results_true.dat @@ -1,11 +1,11 @@ k-combined: -1.005983E+00 2.248579E-02 +9.090848E-01 2.183589E-02 tally 1: -1.423676E+01 -4.330937E+01 +1.247086E+01 +3.154055E+01 tally 2: -2.914798E+00 -1.831649E+00 +2.524688E+00 +1.288895E+00 tally 3: -4.088282E+01 -3.662539E+02 +3.704082E+01 +2.775735E+02 diff --git a/tests/test_tally_nuclides/results_true.dat b/tests/test_tally_nuclides/results_true.dat index b8e903049..adfed4557 100644 --- a/tests/test_tally_nuclides/results_true.dat +++ b/tests/test_tally_nuclides/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.851180E-01 1.587642E-02 +9.344992E-01 5.409376E-02 tally 1: -7.516940E+00 -1.149356E+01 -1.700884E+00 -5.835345E-01 -1.635327E+00 -5.385674E-01 -5.816056E+00 -6.901370E+00 -7.516940E+00 -1.149356E+01 -1.700884E+00 -5.835345E-01 -1.635327E+00 -5.385674E-01 -5.816056E+00 -6.901370E+00 +6.493491E+00 +8.501932E+00 +1.474098E+00 +4.371503E-01 +1.430824E+00 +4.117407E-01 +5.019393E+00 +5.084622E+00 +6.493491E+00 +8.501932E+00 +1.474098E+00 +4.371503E-01 +1.430824E+00 +4.117407E-01 +5.019393E+00 +5.084622E+00 tally 2: -7.516940E+00 -1.149356E+01 -1.700884E+00 -5.835345E-01 -1.635327E+00 -5.385674E-01 -5.816056E+00 -6.901370E+00 +6.493491E+00 +8.501932E+00 +1.474098E+00 +4.371503E-01 +1.430824E+00 +4.117407E-01 +5.019393E+00 +5.084622E+00 diff --git a/tests/test_trace/results_true.dat b/tests/test_trace/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_trace/results_true.dat +++ b/tests/test_trace/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_translation/results_true.dat b/tests/test_translation/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_translation/results_true.dat +++ b/tests/test_translation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_trigger_batch_interval/results_true.dat b/tests/test_trigger_batch_interval/results_true.dat index c901e1e54..4adde2afc 100644 --- a/tests/test_trigger_batch_interval/results_true.dat +++ b/tests/test_trigger_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.875001E-01 3.961945E-03 +9.945341E-01 2.319345E-03 tally 1: -2.128147E+01 -3.021699E+01 -4.842434E+00 -1.563989E+00 -4.695086E+00 -1.470132E+00 -1.643904E+01 -1.803258E+01 -2.128147E+01 -3.021699E+01 -4.842434E+00 -1.563989E+00 -4.695086E+00 -1.470132E+00 -1.643904E+01 -1.803258E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 tally 2: -2.128147E+01 -3.021699E+01 -4.842434E+00 -1.563989E+00 -4.695086E+00 -1.470132E+00 -1.643904E+01 -1.803258E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 diff --git a/tests/test_trigger_batch_interval/test_trigger_batch_interval.py b/tests/test_trigger_batch_interval/test_trigger_batch_interval.py index 59b900e50..a0b2119de 100644 --- a/tests/test_trigger_batch_interval/test_trigger_batch_interval.py +++ b/tests/test_trigger_batch_interval/test_trigger_batch_interval.py @@ -7,5 +7,5 @@ from testing_harness import TestHarness if __name__ == '__main__': - harness = TestHarness('statepoint.20.*', True) + harness = TestHarness('statepoint.15.*', True) harness.main() diff --git a/tests/test_trigger_no_batch_interval/results_true.dat b/tests/test_trigger_no_batch_interval/results_true.dat index d06a91646..4adde2afc 100644 --- a/tests/test_trigger_no_batch_interval/results_true.dat +++ b/tests/test_trigger_no_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.853099E-01 3.825057E-03 +9.945341E-01 2.319345E-03 tally 1: -2.409492E+01 -3.417475E+01 -5.477076E+00 -1.765385E+00 -5.309347E+00 -1.658803E+00 -1.861784E+01 -2.040621E+01 -2.409492E+01 -3.417475E+01 -5.477076E+00 -1.765385E+00 -5.309347E+00 -1.658803E+00 -1.861784E+01 -2.040621E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 tally 2: -2.409492E+01 -3.417475E+01 -5.477076E+00 -1.765385E+00 -5.309347E+00 -1.658803E+00 -1.861784E+01 -2.040621E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 diff --git a/tests/test_trigger_no_batch_interval/test_trigger_no_batch_interval.py b/tests/test_trigger_no_batch_interval/test_trigger_no_batch_interval.py index f9cb68d62..a0b2119de 100644 --- a/tests/test_trigger_no_batch_interval/test_trigger_no_batch_interval.py +++ b/tests/test_trigger_no_batch_interval/test_trigger_no_batch_interval.py @@ -7,5 +7,5 @@ from testing_harness import TestHarness if __name__ == '__main__': - harness = TestHarness('statepoint.22.*', True) + harness = TestHarness('statepoint.15.*', True) harness.main() diff --git a/tests/test_trigger_no_status/results_true.dat b/tests/test_trigger_no_status/results_true.dat index 0b541099b..94c10b125 100644 --- a/tests/test_trigger_no_status/results_true.dat +++ b/tests/test_trigger_no_status/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.906276E-01 1.800527E-03 +9.910702E-01 3.412288E-03 tally 1: -7.043320E+00 -9.922203E+00 -1.610208E+00 -5.185662E-01 -1.564118E+00 -4.893096E-01 -5.433111E+00 -5.904259E+00 -7.043320E+00 -9.922203E+00 -1.610208E+00 -5.185662E-01 -1.564118E+00 -4.893096E-01 -5.433111E+00 -5.904259E+00 +7.085995E+00 +1.004872E+01 +1.615776E+00 +5.224041E-01 +1.569264E+00 +4.927483E-01 +5.470219E+00 +5.988844E+00 +7.085995E+00 +1.004872E+01 +1.615776E+00 +5.224041E-01 +1.569264E+00 +4.927483E-01 +5.470219E+00 +5.988844E+00 tally 2: -7.043320E+00 -9.922203E+00 -1.610208E+00 -5.185662E-01 -1.564118E+00 -4.893096E-01 -5.433111E+00 -5.904259E+00 +7.085995E+00 +1.004872E+01 +1.615776E+00 +5.224041E-01 +1.569264E+00 +4.927483E-01 +5.470219E+00 +5.988844E+00 diff --git a/tests/test_trigger_tallies/results_true.dat b/tests/test_trigger_tallies/results_true.dat index 0519260dd..4adde2afc 100644 --- a/tests/test_trigger_tallies/results_true.dat +++ b/tests/test_trigger_tallies/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.875396E-01 4.095985E-03 +9.945341E-01 2.319345E-03 tally 1: -1.415943E+01 -2.006888E+01 -3.225529E+00 -1.040975E+00 -3.128858E+00 -9.794019E-01 -1.093390E+01 -1.196901E+01 -1.415943E+01 -2.006888E+01 -3.225529E+00 -1.040975E+00 -3.128858E+00 -9.794019E-01 -1.093390E+01 -1.196901E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 tally 2: -1.415943E+01 -2.006888E+01 -3.225529E+00 -1.040975E+00 -3.128858E+00 -9.794019E-01 -1.093390E+01 -1.196901E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 diff --git a/tests/test_uniform_fs/results_true.dat b/tests/test_uniform_fs/results_true.dat index a29a363b2..80fee7685 100644 --- a/tests/test_uniform_fs/results_true.dat +++ b/tests/test_uniform_fs/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.546115E-01 2.982307E-03 +3.495292E-01 1.234736E-02 diff --git a/tests/test_union_energy_grids/results_true.dat b/tests/test_union_energy_grids/results_true.dat index 9556a981b..3958614d0 100644 --- a/tests/test_union_energy_grids/results_true.dat +++ b/tests/test_union_energy_grids/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.155788E-01 7.559348E-03 +3.218570E-01 2.269572E-03 diff --git a/tests/test_universe/results_true.dat b/tests/test_universe/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_universe/results_true.dat +++ b/tests/test_universe/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_void/results_true.dat b/tests/test_void/results_true.dat index 4e99b8676..fd78557fc 100644 --- a/tests/test_void/results_true.dat +++ b/tests/test_void/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.045350E+00 2.750547E-02 +1.032938E+00 5.005507E-02 From df4cc8e0f21458703ef6264c57d2dbe529de2c40 Mon Sep 17 00:00:00 2001 From: jingang Date: Fri, 4 Mar 2016 10:35:13 -0500 Subject: [PATCH 011/259] LCG approach Al.5(by Paul): skip f(ZAID) states starting from xs_seed To guarantee random numbers are not re-used, advance the seed N times from its original position after energy changed. 0. Initialization of f and N 0. At the beginning of a particle life(including secondary particle): xs_seed = tracking_seed 1. When calculating xs: Xi_urr(ZAID) = prn(skipping f(ZAID) from xs_seed) 2. If particle changes energy, xs_seed = prn_seed (skipping N from xs_seed) where N is the number of nuclides which have different zaid, f is a map of zaid. --- src/cross_section.F90 | 12 +++++------- src/global.F90 | 11 ++++++++--- src/input_xml.F90 | 41 ++++++++++++++++++++++++++--------------- src/random_lcg.F90 | 9 +++++---- src/tracking.F90 | 7 ++++--- 5 files changed, 48 insertions(+), 32 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index f059c9c07..a66870714 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -10,7 +10,7 @@ module cross_section use material_header, only: Material use nuclide_header use particle_header, only: Particle - use random_lcg, only: prn, prn_ahead + use random_lcg, only: prn, get_prn_ahead use sab_header, only: SAlphaBeta use search, only: binary_search @@ -387,15 +387,13 @@ contains ! sample probability table using the cumulative distribution - ! random numbers for xs calculation are sampled in a way separate from - ! tracking. 'xs_seed' is a copy of normal tracking prn seed but updated - ! until the particle undergoes a scattering event. Random number is - ! calculated by skipping ahead 'xs_seed + ZZAAA'(zaid) times from the seed - ! 'xs_seed' + 'ZZAAA'. + ! Random numbers for xs calculation are sampled by skipping ahead + ! f(zaid) times from the seed 'xs_seed' + 'zaid'. ! This guarantees the randomness and, at the same time, makes sure we reuse ! random number for the same nuclide at different temperatures, therefore ! preserving correlation of temperature in probability tables. - r = prn_ahead(xs_seed + nuc % zaid, xs_seed + nuc % zaid) + r = get_prn_ahead(int(nuc_zaid_dict % get_key(nuc % zaid), 8), & + xs_seed + nuc % zaid) i_low = 1 do diff --git a/src/global.F90 b/src/global.F90 index 9f5bd6567..93fe3c598 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -105,11 +105,16 @@ module global integer :: default_expand = ENDF_BVII1 ! Random number seed for cross sections, specially for URR ptables - ! This number is copied from normal tracking random number sequence but - ! updated until the particle undergoes a scattering event. It is shared for - ! all nuclides. + ! This number is shared by all nuclides and updated after particle + ! changed its energy. integer(8) :: xs_seed = 1_8 + ! Dictionary to look up the skip distance to get prn when sampling URR + type(DictIntInt) :: nuc_zaid_dict + + ! Total amount of nuclide zaid instances + integer(8) :: n_nuc_zaid_total + !$omp threadprivate(xs_seed) ! ============================================================================ diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 03ef8dcbc..47b0aaacf 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1891,21 +1891,23 @@ contains subroutine read_materials_xml() - integer :: i ! loop index for materials - integer :: j ! loop index for nuclides - integer :: k ! loop index for elements - integer :: n ! number of nuclides - integer :: n_sab ! number of sab tables for a material - integer :: n_nuc_ele ! number of nuclides in an element - integer :: index_list ! index in xs_listings array - integer :: index_nuclide ! index in nuclides - integer :: index_sab ! index in sab_tables - real(8) :: val ! value entered for density - real(8) :: temp_dble ! temporary double prec. real - logical :: file_exists ! does materials.xml exist? - logical :: sum_density ! density is taken to be sum of nuclide densities - character(12) :: name ! name of isotope, e.g. 92235.03c - character(12) :: alias ! alias of nuclide, e.g. U-235.03c + integer :: i ! loop index for materials + integer :: j ! loop index for nuclides + integer :: k ! loop index for elements + integer :: n ! number of nuclides + integer :: n_sab ! number of sab tables for a material + integer :: n_nuc_ele ! number of nuclides in an element + integer :: index_list ! index in xs_listings array + integer :: index_nuclide ! index in nuclides + integer :: index_nuc_zaid ! index in nuclide ZAID + integer :: index_sab ! index in sab_tables + real(8) :: val ! value entered for density + real(8) :: temp_dble ! temporary double prec. real + logical :: file_exists ! does materials.xml exist? + logical :: sum_density ! density is taken to be sum of nuclide densities + integer :: zaid ! ZAID of nuclide + character(12) :: name ! name of isotope, e.g. 92235.03c + character(12) :: alias ! alias of nuclide, e.g. U-235.03c character(MAX_WORD_LEN) :: units ! units on density character(MAX_LINE_LEN) :: filename ! absolute path to materials.xml character(MAX_LINE_LEN) :: temp_str ! temporary string when reading @@ -1955,6 +1957,7 @@ contains ! Initialize count for number of nuclides/S(a,b) tables index_nuclide = 0 + index_nuc_zaid = 0 index_sab = 0 do i = 1, n_materials @@ -2300,6 +2303,7 @@ contains index_list = xs_listing_dict % get_key(to_lower(name)) name = xs_listings(index_list) % name alias = xs_listings(index_list) % alias + zaid = xs_listings(index_list) % zaid ! If this nuclide hasn't been encountered yet, we need to add its name ! and alias to the nuclide_dict @@ -2313,6 +2317,12 @@ contains mat % nuclide(j) = nuclide_dict % get_key(to_lower(name)) end if + ! Construct dict of nuclide zaid + if (.not. nuc_zaid_dict % has_key(zaid)) then + index_nuc_zaid = index_nuc_zaid + 1 + call nuc_zaid_dict % add_key(zaid, index_nuc_zaid) + end if + ! Copy name and atom/weight percent mat % names(j) = name mat % atom_density(j) = list_density % get_item(j) @@ -2407,6 +2417,7 @@ contains ! Set total number of nuclides and S(a,b) tables n_nuclides_total = index_nuclide n_sab_tables = index_sab + n_nuc_zaid_total = index_nuc_zaid ! Close materials XML file call close_xmldoc(doc) diff --git a/src/random_lcg.F90 b/src/random_lcg.F90 index 1e92fa6ce..755ee673f 100644 --- a/src/random_lcg.F90 +++ b/src/random_lcg.F90 @@ -24,7 +24,8 @@ module random_lcg !$omp threadprivate(prn_seed, stream) public :: prn - public :: prn_ahead + public :: get_prn_ahead + public :: prn_skip_ahead public :: initialize_prng public :: set_particle_seed public :: prn_skip @@ -54,11 +55,11 @@ contains end function prn !=============================================================================== -! PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from a +! GET_PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from a ! specific seed. This function does not changed current LCG status. !=============================================================================== - function prn_ahead(n, seed) result(pseudo_rn) + function get_prn_ahead(n, seed) result(pseudo_rn) integer(8), intent(in) :: n ! number of prns to skip integer(8), intent(in) :: seed ! starting seed @@ -70,7 +71,7 @@ contains pseudo_rn = prn_skip_ahead(n, seed) * prn_norm - end function prn_ahead + end function get_prn_ahead !=============================================================================== ! INITIALIZE_PRNG sets up the random number generator, determining the seed and diff --git a/src/tracking.F90 b/src/tracking.F90 index b17f8ba59..86f0eded5 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -12,7 +12,7 @@ module tracking use particle_header, only: LocalCoord, Particle use physics, only: collision use physics_mg, only: collision_mg - use random_lcg, only: prn, prn_seed + use random_lcg, only: prn, prn_seed, prn_skip_ahead use string, only: to_str use tally, only: score_analog_tally, score_tracklength_tally, & score_collision_tally, score_surface_current @@ -200,8 +200,9 @@ contains ! re-evaluated p % last_material = NONE - ! Update xs_seed to be current tracking seed after a collision - if (p % E /= p % last_E) xs_seed = prn_seed(STREAM_TRACKING) + ! Advance xs_seed N times ahead to avoid re-using prn + if (p % E /= p % last_E) & + xs_seed = prn_skip_ahead(n_nuc_zaid_total, xs_seed) ! Set all uvws to base level -- right now, after a collision, only the ! base level uvws are changed From 42285d775e6996b0c74d42fcd1e35a16453ad1d8 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 5 Mar 2016 09:26:23 -0500 Subject: [PATCH 012/259] Made scattdata % energy sparse as a test bed (and where speedup benefit occurs from) --- src/scattdata_header.F90 | 213 ++++++++++++++++++++++++++++++++------- 1 file changed, 177 insertions(+), 36 deletions(-) diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index f8fddbc6b..8dc64a653 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -8,6 +8,49 @@ module scattdata_header implicit none + +!=============================================================================== +! JAGGED1D and JAGGED2D is a type which allows for jagged 1-D or 2-D array. +!=============================================================================== + + type :: Jagged2D + real(8), allocatable :: data(:,:) + end type Jagged2D + + type :: Jagged1D + real(8), allocatable :: data(:) + end type Jagged1D + + +!=============================================================================== +! OUTGOINGTRANSFER contains sparse outgoing scattering matrices for a single +! incoming group +!=============================================================================== + + type OutgoingTransfer + real(8), allocatable :: data(:,:) ! Outgoing transfer probabilities + ! Dimension of (moments, gmin:gmax) + integer :: gmin + integer :: gmax + contains + ! Initialize OutgoingTransfer given a dense (GoutxL) matrix + procedure:: init => outgoingtransfer_init + end type OutgoingTransfer + + +!=============================================================================== +! GROUPTRANSFER contains sparse outgoing scattering matrices for all +! incoming groups +!=============================================================================== + + type GroupTransfer + type(OutgoingTransfer), allocatable :: outgoing(:) ! Outgoing transfer probabilities + contains + ! Initialize GroupTransfer given a dense (GinxGoutxL) matrix + procedure:: init => grouptransfer_init + end type GroupTransfer + + !=============================================================================== ! SCATTDATA contains all the data to describe the scattering energy and ! angular distribution @@ -15,9 +58,11 @@ module scattdata_header type, abstract :: ScattData ! p0 matrix on its own for sampling energy - real(8), allocatable :: energy(:,:) ! (Gout x Gin) + type(Jagged1D), allocatable :: energy(:) ! (Gin % data(Gout)) real(8), allocatable :: mult(:,:) ! (Gout x Gin) real(8), allocatable :: data(:,:,:) ! (Order/Nmu x Gout x Gin) + integer, allocatable :: gmin(:) ! Minimum outgoing group + integer, allocatable :: gmax(:) ! Maximum outgoing group contains procedure(scattdata_init_), deferred :: init ! Initializes ScattData @@ -93,22 +138,109 @@ module scattdata_header contains +!=============================================================================== +! GROUPTRANSFER_INIT builds the OutgoingTransfer object given a dense scattering +! matrix of (GoutxL) dimensionality. +!=============================================================================== + + subroutine grouptransfer_init(this, dense) + class(GroupTransfer), intent(inout) :: this ! Object to Initialize + real(8), intent(in) :: dense(:,:,:) ! Source Dense Matrix of + ! (GinxGoutxL) dims. + + integer :: gin, groups + + groups = size(dense,dim=1) + allocate(this % outgoing(groups)) + do gin = 1, groups + call this % outgoing(gin) % init(dense(gin,:,:),gin) + end do + + end subroutine grouptransfer_init + + +!=============================================================================== +! OUTGOINGTRANSFER_INIT builds the OutgoingTransfer object given a dense scattering +! matrix of (GoutxL) dimensionality. +!=============================================================================== + + subroutine outgoingtransfer_init(this, dense, gin) + class(OutgoingTransfer), intent(inout) :: this ! Object to Initialize + real(8), intent(in) :: dense(:,:) ! Source Dense Matrix of + ! (GoutxL) dims. + integer, intent(in) :: gin ! Incoming group + + integer :: groups, order, gmin, gmax, gout, l + + groups = size(dense,dim=1) + order = size(dense,dim=2) + + ! Find gmin by checking the P0 moment + do gmin = 1, groups + if (dense(gmin,1) > ZERO) exit + end do + ! Find gmax by checking the P0 moment + do gmax = groups, 1, -1 + if (dense(gmax,1) > ZERO) exit + end do + ! Treat the case of all zeros + if (gmin > gmax) then + gmin = gin + gmax = gin + end if + + ! Now we can allocate our OutgoingTransfer object and place data + allocate(this % data(order, gmin:gmax)) + do gout = gmin, gmax + do l = 1, order + this % data(l,gout) = dense(gout,l) + end do + end do + this % gmin = gmin + this % gmax = gmax + + end subroutine outgoingtransfer_init + !=============================================================================== ! SCATTDATA_INIT builds the scattdata object !=============================================================================== subroutine scattdata_init(this, order, energy, mult) class(ScattData), intent(inout) :: this ! Object to work on - integer, intent(in) :: order ! Data Order - real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + integer, intent(in) :: order ! Data Order + real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - integer :: groups + integer :: groups, gmin, gmax, gin groups = size(energy, dim=1) - allocate(this % energy(groups, groups)) - this % energy = energy + allocate(this % gmin(groups)) + allocate(this % gmax(groups)) + allocate(this % energy(groups)) + ! Use energy to find the gmin and gmax values + ! Also set energy values when doing it + do gin = 1, groups + ! Find gmin by checking the P0 moment + do gmin = 1, groups + if (energy(gmin,gin) > ZERO) exit + end do + ! Find gmax by checking the P0 moment + do gmax = groups, 1, -1 + if (energy(gmax,gin) > ZERO) exit + end do + ! Treat the case of all zeros + if (gmin > gmax) then + gmin = gin + gmax = gin + ! By not changing energy(gin) here we are leaving it as zero + end if + allocate(this % energy(gin) % data(gmin:gmax)) + this % energy(gin) % data(gmin:gmax) = energy(gmin:gmax,gin) + this % gmin(gin) = gmin + this % gmax(gin) = gmax + end do + allocate(this % mult(groups, groups)) this % mult = mult allocate(this % data(order, groups, groups)) @@ -117,11 +249,11 @@ contains end subroutine scattdata_init subroutine scattdatalegendre_init(this, order, energy, mult, coeffs) - class(ScattDataLegendre), intent(inout) :: this ! Object to work on - integer, intent(in) :: order ! Data Order - real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + class(ScattDataLegendre), intent(inout) :: this ! Object to work on + integer, intent(in) :: order ! Data Order + real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use real(8) :: dmu, mu, f integer :: imu, Nmu, gout, gin, groups @@ -285,10 +417,10 @@ contains pure function scattdatalegendre_calc_f(this, gin, gout, mu) result(f) class(ScattDataLegendre), intent(in) :: this ! The ScattData to evaluate - integer, intent(in) :: gin ! Incoming Energy Group - integer, intent(in) :: gout ! Outgoing Energy Group - real(8), intent(in) :: mu ! Angle of interest - real(8) :: f ! Return value of f(mu) + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) ! Plug mu in to the legendre expansion and go from there f = evaluate_legendre(this % data(:, gout, gin), mu) @@ -297,10 +429,10 @@ contains pure function scattdatahistogram_calc_f(this, gin, gout, mu) result(f) class(ScattDataHistogram), intent(in) :: this ! The ScattData to evaluate - integer, intent(in) :: gin ! Incoming Energy Group - integer, intent(in) :: gout ! Outgoing Energy Group - real(8), intent(in) :: mu ! Angle of interest - real(8) :: f ! Return value of f(mu) + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) integer :: imu @@ -318,10 +450,10 @@ contains pure function scattdatatabular_calc_f(this, gin, gout, mu) result(f) class(ScattDataTabular), intent(in) :: this ! The ScattData to evaluate - integer, intent(in) :: gin ! Incoming Energy Group - integer, intent(in) :: gout ! Outgoing Energy Group - real(8), intent(in) :: mu ! Angle of interest - real(8) :: f ! Return value of f(mu) + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) integer :: imu real(8) :: r @@ -357,12 +489,15 @@ contains integer :: samples xi = prn() - prob = ZERO - gout = 0 + ! Assuming highest group will be closest to the highest probability of + ! transfer (not always true, but generally so for few to multi-group + ! scenarios in all but water), so start there and go down in energy + gout = this % gmax(gin) + prob = this % energy(gin) % data(gout) do while (prob < xi) - gout = gout + 1 - prob = prob + this % energy(gout,gin) + gout = gout - 1 + prob = prob + this % energy(gin) % data(gout) end do ! Now we can sample mu using the legendre representation of the thisering @@ -403,12 +538,15 @@ contains integer :: imu xi = prn() - prob = ZERO - gout = 0 + ! Assuming highest group will be closest to the highest probability of + ! transfer (not always true, but generally so for few to multi-group + ! scenarios in all but water), so start there and go down in energy + gout = this % gmax(gin) + prob = this % energy(gin) % data(gout) do while (prob < xi) - gout = gout + 1 - prob = prob + this % energy(gout,gin) + gout = gout - 1 + prob = prob + this % energy(gin) % data(gout) end do xi = prn() @@ -440,12 +578,15 @@ contains integer :: k, NP xi = prn() - prob = ZERO - gout = 0 + ! Assuming highest group will be closest to the highest probability of + ! transfer (not always true, but generally so for few to multi-group + ! scenarios in all but water), so start there and go down in energy + gout = this % gmax(gin) + prob = this % energy(gin) % data(gout) do while (prob < xi) - gout = gout + 1 - prob = prob + this % energy(gout,gin) + gout = gout - 1 + prob = prob + this % energy(gin) % data(gout) end do ! determine outgoing cosine bin From d1baa3bae7f5ede66e14ce655521baea4e896f31 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 5 Mar 2016 09:41:15 -0500 Subject: [PATCH 013/259] Removed GroupTransfer and OutgoingTransfer code as I no longer need it. Changed outgoing energy pdf checking from top-down to bottom-up counting. --- src/scattdata_header.F90 | 113 +++------------------------------------ 1 file changed, 6 insertions(+), 107 deletions(-) diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 8dc64a653..14e049f7f 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -22,35 +22,6 @@ module scattdata_header end type Jagged1D -!=============================================================================== -! OUTGOINGTRANSFER contains sparse outgoing scattering matrices for a single -! incoming group -!=============================================================================== - - type OutgoingTransfer - real(8), allocatable :: data(:,:) ! Outgoing transfer probabilities - ! Dimension of (moments, gmin:gmax) - integer :: gmin - integer :: gmax - contains - ! Initialize OutgoingTransfer given a dense (GoutxL) matrix - procedure:: init => outgoingtransfer_init - end type OutgoingTransfer - - -!=============================================================================== -! GROUPTRANSFER contains sparse outgoing scattering matrices for all -! incoming groups -!=============================================================================== - - type GroupTransfer - type(OutgoingTransfer), allocatable :: outgoing(:) ! Outgoing transfer probabilities - contains - ! Initialize GroupTransfer given a dense (GinxGoutxL) matrix - procedure:: init => grouptransfer_init - end type GroupTransfer - - !=============================================================================== ! SCATTDATA contains all the data to describe the scattering energy and ! angular distribution @@ -138,69 +109,6 @@ module scattdata_header contains -!=============================================================================== -! GROUPTRANSFER_INIT builds the OutgoingTransfer object given a dense scattering -! matrix of (GoutxL) dimensionality. -!=============================================================================== - - subroutine grouptransfer_init(this, dense) - class(GroupTransfer), intent(inout) :: this ! Object to Initialize - real(8), intent(in) :: dense(:,:,:) ! Source Dense Matrix of - ! (GinxGoutxL) dims. - - integer :: gin, groups - - groups = size(dense,dim=1) - allocate(this % outgoing(groups)) - do gin = 1, groups - call this % outgoing(gin) % init(dense(gin,:,:),gin) - end do - - end subroutine grouptransfer_init - - -!=============================================================================== -! OUTGOINGTRANSFER_INIT builds the OutgoingTransfer object given a dense scattering -! matrix of (GoutxL) dimensionality. -!=============================================================================== - - subroutine outgoingtransfer_init(this, dense, gin) - class(OutgoingTransfer), intent(inout) :: this ! Object to Initialize - real(8), intent(in) :: dense(:,:) ! Source Dense Matrix of - ! (GoutxL) dims. - integer, intent(in) :: gin ! Incoming group - - integer :: groups, order, gmin, gmax, gout, l - - groups = size(dense,dim=1) - order = size(dense,dim=2) - - ! Find gmin by checking the P0 moment - do gmin = 1, groups - if (dense(gmin,1) > ZERO) exit - end do - ! Find gmax by checking the P0 moment - do gmax = groups, 1, -1 - if (dense(gmax,1) > ZERO) exit - end do - ! Treat the case of all zeros - if (gmin > gmax) then - gmin = gin - gmax = gin - end if - - ! Now we can allocate our OutgoingTransfer object and place data - allocate(this % data(order, gmin:gmax)) - do gout = gmin, gmax - do l = 1, order - this % data(l,gout) = dense(gout,l) - end do - end do - this % gmin = gmin - this % gmax = gmax - - end subroutine outgoingtransfer_init - !=============================================================================== ! SCATTDATA_INIT builds the scattdata object !=============================================================================== @@ -489,14 +397,11 @@ contains integer :: samples xi = prn() - ! Assuming highest group will be closest to the highest probability of - ! transfer (not always true, but generally so for few to multi-group - ! scenarios in all but water), so start there and go down in energy - gout = this % gmax(gin) + gout = this % gmin(gin) prob = this % energy(gin) % data(gout) do while (prob < xi) - gout = gout - 1 + gout = gout + 1 prob = prob + this % energy(gin) % data(gout) end do @@ -538,14 +443,11 @@ contains integer :: imu xi = prn() - ! Assuming highest group will be closest to the highest probability of - ! transfer (not always true, but generally so for few to multi-group - ! scenarios in all but water), so start there and go down in energy - gout = this % gmax(gin) + gout = this % gmin(gin) prob = this % energy(gin) % data(gout) do while (prob < xi) - gout = gout - 1 + gout = gout + 1 prob = prob + this % energy(gin) % data(gout) end do @@ -578,14 +480,11 @@ contains integer :: k, NP xi = prn() - ! Assuming highest group will be closest to the highest probability of - ! transfer (not always true, but generally so for few to multi-group - ! scenarios in all but water), so start there and go down in energy - gout = this % gmax(gin) + gout = this % gmin(gin) prob = this % energy(gin) % data(gout) do while (prob < xi) - gout = gout - 1 + gout = gout + 1 prob = prob + this % energy(gin) % data(gout) end do From 812153a11416943c2f1a62eb5857df17030e01eb Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 5 Mar 2016 10:26:40 -0500 Subject: [PATCH 014/259] Revised all relevant data within scattdata classes to utilize a sparse format. Testing in progress --- src/macroxs_header.F90 | 8 +- src/scattdata_header.F90 | 218 +++++++++++++++++++++------------------ 2 files changed, 120 insertions(+), 106 deletions(-) diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 2a1234510..233832d6f 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -701,9 +701,9 @@ contains xs = this % scattxs(g) case('mult') if (present(gout)) then - xs = this % scatter % mult(gout,g) + xs = this % scatter % mult(g) % data(gout) else - xs = sum(this % scatter % mult(:,g)) + xs = sum(this % scatter % mult(g) % data(:)) end if end select @@ -736,9 +736,9 @@ contains xs = this % scattxs(g,iazi,ipol) case('mult') if (present(gout)) then - xs = this % scatter(iazi,ipol) % obj % mult(gout,g) + xs = this % scatter(iazi,ipol) % obj % mult(g) % data(gout) else - xs = sum(this % scatter(iazi,ipol) % obj % mult(:,g)) + xs = sum(this % scatter(iazi,ipol) % obj % mult(g) % data(:)) end if end select end if diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 14e049f7f..54b9e14f1 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -28,10 +28,12 @@ module scattdata_header !=============================================================================== type, abstract :: ScattData - ! p0 matrix on its own for sampling energy + ! normalized p0 matrix on its own for sampling energy type(Jagged1D), allocatable :: energy(:) ! (Gin % data(Gout)) - real(8), allocatable :: mult(:,:) ! (Gout x Gin) - real(8), allocatable :: data(:,:,:) ! (Order/Nmu x Gout x Gin) + ! nu-scatter multiplication (i.e. nu-scatt/scatt) + type(Jagged1D), allocatable :: mult(:) ! (Gin % data(Gout)) + ! Angular distribution + type(Jagged2D), allocatable :: dist(:) ! (Gin % data(Order/Nmu x Gout) integer, allocatable :: gmin(:) ! Minimum outgoing group integer, allocatable :: gmax(:) ! Maximum outgoing group @@ -73,7 +75,7 @@ module scattdata_header type, extends(ScattData) :: ScattDataLegendre ! Maximal value for rejection sampling from rectangle - real(8), allocatable :: max_val(:,:) + type(Jagged1D), allocatable :: max_val(:) ! (Gin % data(Gout)) contains procedure :: init => scattdatalegendre_init procedure :: calc_f => scattdatalegendre_calc_f @@ -90,9 +92,10 @@ module scattdata_header end type ScattDataHistogram type, extends(ScattData) :: ScattDataTabular - real(8), allocatable :: mu(:) ! Mu bins - real(8) :: dmu ! Mu spacing - real(8), allocatable :: fmu(:,:,:) ! PDF of f(mu) + real(8), allocatable :: mu(:) ! Mu bins + real(8) :: dmu ! Mu spacing + ! PDF of f(mu) + type(Jagged2D), allocatable :: fmu(:) ! (Gin % data(Order/Nmu x Gout) contains procedure :: init => scattdatatabular_init procedure :: calc_f => scattdatatabular_calc_f @@ -126,6 +129,8 @@ contains allocate(this % gmin(groups)) allocate(this % gmax(groups)) allocate(this % energy(groups)) + allocate(this % mult(groups)) + allocate(this % dist(groups)) ! Use energy to find the gmin and gmax values ! Also set energy values when doing it do gin = 1, groups @@ -145,15 +150,14 @@ contains end if allocate(this % energy(gin) % data(gmin:gmax)) this % energy(gin) % data(gmin:gmax) = energy(gmin:gmax,gin) + allocate(this % mult(gin) % data(gmin:gmax)) + this % mult(gin) % data(gmin:gmax) = mult(gmin:gmax,gin) + allocate(this % dist(gin) % data(order,gmin:gmax)) + this % dist(gin) % data = ZERO this % gmin(gin) = gmin this % gmax(gin) = gmax end do - allocate(this % mult(groups, groups)) - this % mult = mult - allocate(this % data(order, groups, groups)) - this % data = ZERO - end subroutine scattdata_init subroutine scattdatalegendre_init(this, order, energy, mult, coeffs) @@ -168,37 +172,43 @@ contains call scattdata_init(this, order, energy, mult) - this % data = coeffs - groups = size(this % energy,dim=1) - allocate(this % max_val(groups, groups)) - this % max_val = ZERO + allocate(this % max_val(groups)) + ! Set dist values from coeffs and initialize max_val + do gin = 1, groups + this % dist(gin) % data(:,this % gmin(gin):this % gmax(gin)) = & + coeffs(:,this % gmin(gin):this % gmax(gin),gin) + allocate(this % max_val(gin) % data(this % gmin(gin):this % gmax(gin))) + this % max_val(gin) % data = ZERO + end do + ! Step through the polynomial with fixed number of points to identify ! the maximal value. Nmu = 1001 dmu = TWO / real(Nmu,8) - do imu = 1, Nmu - ! Update mu. Do first and last seperate to avoid float errors - if (imu == 1) then - mu = -ONE - else if (imu == Nmu) then - mu = ONE - end if - mu = -ONE + real(imu - 1,8) * dmu - do gin = 1, groups - do gout = 1, groups + do gin = 1, groups + do gout = this % gmin(gin), this % gmax(gin) + do imu = 1, Nmu + ! Update mu. Do first and last seperate to avoid float errors + if (imu == 1) then + mu = -ONE + else if (imu == Nmu) then + mu = ONE + else + mu = -ONE + real(imu - 1,8) * dmu + end if ! Calculate probability f = this % calc_f(gin,gout,mu) ! If this is a new max, store it. - if (f > this % max_val(gout,gin)) this % max_val(gout,gin) = f + if (f > this % max_val(gin) % data(gout)) & + this % max_val(gin) % data(gout) = f end do end do + ! Finally, since we may not have caught the exact max, add 10% margin + this % max_val(gin) % data = this % max_val(gin) % data * 1.1_8 end do - ! Finally, since we may not have caught the exact max, add 10% margin - this % max_val = this % max_val * 1.1_8 - end subroutine scattdatalegendre_init subroutine scattdatahistogram_init(this, order, energy, mult, coeffs) @@ -224,19 +234,18 @@ contains ! Best to integrate this histogram so we can avoid rejection sampling do gin = 1, groups - do gout = 1, groups - if (energy(gout,gin) > ZERO) then - ! Integrate the histogram - this % data(1,gout,gin) = this % dmu * coeffs(1,gout,gin) - do imu = 2, order - this % data(imu,gout,gin) = this % dmu * coeffs(imu,gout,gin) + & - this % data(imu-1,gout,gin) - end do - ! Now make sure integral norms to zero - norm = this % data(order,gout,gin) - if (norm > ZERO) then - this % data(:,gout,gin) = this % data(:,gout,gin) / norm - end if + do gout = this % gmin(gin), this % gmax(gin) + ! Integrate the histogram + this % dist(gin) % data(1,gout) = this % dmu * coeffs(1,gout,gin) + do imu = 2, order + this % dist(gin) % data(imu,gout) = this % dmu * coeffs(imu,gout,gin) + & + this % dist(gin) % data(imu - 1,gout) + end do + ! Now make sure integral norms to zero + norm = this % dist(gin) % data(order,gout) + if (norm > ZERO) then + this % dist(gin) % data(:,gout) = & + this % dist(gin) % data(:,gout) / norm end if end do end do @@ -274,46 +283,51 @@ contains end do this % mu(this_order) = ONE - ! Best to integrate this histogram so we can avoid rejection sampling - allocate(this % fmu(this_order,groups,groups)) + ! Calculate f(mu) and integrate it so we can avoid rejection sampling + allocate(this % fmu(groups)) do gin = 1, groups - do gout = 1, groups - if (energy(gout,gin) > ZERO) then - if (legendre_flag) then - ! Coeffs are legendre coeffs. Need to build f(mu) then integrate - ! and store the integral in this % data - ! Ensure the coeffs are normalized - norm = ONE / coeffs(1,gout,gin) - do imu = 1, this_order - this % fmu(imu,gout,gin) = evaluate_legendre(norm * coeffs(:,gout,gin), this % mu(imu)) - ! Force positivity - if (this % fmu(imu,gout,gin) < ZERO) then - this % fmu(imu,gout,gin) = ZERO - end if - end do - else - ! Coeffs contain f(mu), put in f(mu) to save duplicate. - this % fmu(:,gout,gin) = this % data(:,gout,gin) - end if - - ! Re-normalize fmu for numerical integration issues and in case - ! the negative fix-up introduced un-normalized data - norm = ZERO - do imu = 2, this_order - norm = norm + HALF * this % dmu * (this % fmu(imu-1,gout,gin) + this % fmu(imu,gout,gin)) + do gout = this % gmin(gin), this % gmax(gin) + allocate(this % fmu(gin) % data(this_order,& + this % gmin(gin):this % gmax(gin))) + if (legendre_flag) then + ! Coeffs are legendre coeffs. Need to build f(mu) then integrate + ! and store the integral in this % dist + ! Ensure the coeffs are normalized + norm = ONE / coeffs(1,gout,gin) + do imu = 1, this_order + this % fmu(gin) % data(imu,gout) = evaluate_legendre(norm * coeffs(:,gout,gin), this % mu(imu)) + ! Force positivity + if (this % fmu(gin) % data(imu,gout) < ZERO) then + this % fmu(gin) % data(imu,gout) = ZERO + end if end do - if (norm > ZERO) then - this % fmu(:,gout,gin) = this % fmu(:,gout,gin) / norm - end if - - ! Now create CDF from fmu with trapezoidal rule - this % data(1,gout,gin) = ZERO - do imu = 2, this_order - 1 - this % data(imu,gout,gin) = this % data(imu-1,gout,gin) + & - HALF * this % dmu * (this % fmu(imu-1,gout,gin) + this % fmu(imu,gout,gin)) - end do - this % data(this_order,gout,gin) = ONE + else + ! Coeffs contain f(mu), put in f(mu) as that is where the + ! PDF lives + this % fmu(gin) % data(:,gout) = this % dist(gin) % data(:,gout) end if + + ! Re-normalize fmu for numerical integration issues and in case + ! the negative fix-up introduced un-normalized data + norm = ZERO + do imu = 2, this_order + norm = norm + HALF * this % dmu * & + (this % fmu(gin) % data(imu - 1,gout) + & + this % fmu(gin) % data(imu,gout)) + end do + if (norm > ZERO) then + this % fmu(gin) % data(:,gout) = this % fmu(gin) % data(:,gout) / norm + end if + + ! Now create CDF from fmu with trapezoidal rule + this % dist(gin) % data(1,gout) = ZERO + do imu = 2, this_order - 1 + this % dist(gin) % data(imu,gout) = & + this % dist(gin) % data(imu - 1,gout) + & + HALF * this % dmu * (this % fmu(gin) % data(imu - 1,gout) + & + this % fmu(gin) % data(imu,gout)) + end do + this % dist(gin) % data(this_order,gout) = ONE end do end do @@ -331,7 +345,7 @@ contains real(8) :: f ! Return value of f(mu) ! Plug mu in to the legendre expansion and go from there - f = evaluate_legendre(this % data(:, gout, gin), mu) + f = evaluate_legendre(this % dist(gin) % data(:,gout),mu) end function scattdatalegendre_calc_f @@ -347,12 +361,12 @@ contains ! Find mu bin imu = floor((mu + ONE)/ this % dmu + ONE) ! Adjust so interpolation works on the last bin if necessary - if (imu == size(this % data, dim=1)) then + if (imu == size(this % dist, dim=1)) then imu = imu - 1 end if ! Use histogram interpolation to find f(mu) - f = this % data(imu, gout, gin) + f = this % dist(gin) % data(imu,gout) end function scattdatahistogram_calc_f @@ -369,14 +383,14 @@ contains ! Find mu bin imu = floor((mu + ONE)/ this % dmu + ONE) ! Adjust so interpolation works on the last bin if necessary - if (imu == size(this % data, dim=1)) then + if (imu == size(this % dist, dim=1)) then imu = imu - 1 end if - ! ! Now interpolate to find f(mu) + ! Now interpolate to find f(mu) r = (mu - this % mu(imu)) / (this % mu(imu + 1) - this % mu(imu)) - f = (ONE - r) * this % data(imu, gout, gin) + & - r * this % data(imu + 1, gout, gin) + f = (ONE - r) * this % dist(gin) % data(imu,gout) + & + r * this % dist(gin) % data(imu + 1,gout) end function scattdatatabular_calc_f @@ -405,12 +419,12 @@ contains prob = prob + this % energy(gin) % data(gout) end do - ! Now we can sample mu using the legendre representation of the thisering + ! Now we can sample mu using the legendre representation of the scattering ! kernel in data(1:this % order) ! Do with rejection sampling ! Set maximal value - M = this % max_val(gout,gin) + M = this % max_val(gin) % data(gout) samples = 0 do mu = TWO * prn() - ONE @@ -427,7 +441,7 @@ contains end if end do - wgt = wgt * this % mult(gout,gin) + wgt = wgt * this % mult(gin) % data(gout) end subroutine scattdatalegendre_sample @@ -452,17 +466,17 @@ contains end do xi = prn() - if (xi < this % data(1,gout,gin)) then + if (xi < this % dist(gin) % data(1,gout)) then imu = 1 else - imu = binary_search(this % data(:,gout,gin), & - size(this % data(:,gout,gin)), xi) + imu = binary_search(this % dist(gin) % data(:,gout), & + size(this % dist(gin) % data(:,gout)), xi) end if ! Randomly select a mu in this bin. mu = prn() * this % dmu + this % mu(imu) - wgt = wgt * this % mult(gout,gin) + wgt = wgt * this % mult(gin) % data(gout) end subroutine scattdatahistogram_sample @@ -489,12 +503,12 @@ contains end do ! determine outgoing cosine bin - NP = size(this % data(:,gout,gin)) + NP = size(this % dist(gin) % data(:,gout)) xi = prn() - c_k = this % data(1,gout,gin) + c_k = this % dist(gin) % data(1,gout) do k = 1, NP - 1 - c_k1 = this % data(k+1,gout,gin) + c_k1 = this % dist(gin) % data(k + 1,gout) if (xi < c_k1) exit c_k = c_k1 end do @@ -502,18 +516,18 @@ contains ! check to make sure k is <= NP - 1 k = min(k, NP - 1) - p0 = this % fmu(k,gout,gin) + p0 = this % fmu(gin) % data(k,gout) mu0 = this % mu(k) ! Linear-linear interpolation to find mu value w/in bin. - p1 = this % fmu(k+1,gout,gin) - mu1 = this % mu(k+1) + p0 = this % fmu(gin) % data(k + 1,gout) + mu1 = this % mu(k + 1) frac = (p1 - p0)/(mu1 - mu0) if (frac == ZERO) then mu = mu0 + (xi - c_k)/p0 else - mu = mu0 + (sqrt(max(ZERO, p0*p0 + TWO*frac*(xi - c_k))) - p0)/frac + mu = mu0 + (sqrt(max(ZERO, p0 * p0 + TWO * frac * (xi - c_k))) - p0) / frac end if if (mu <= -ONE) then @@ -522,7 +536,7 @@ contains mu = ONE end if - wgt = wgt * this % mult(gout,gin) + wgt = wgt * this % mult(gin) % data(gout) end subroutine scattdatatabular_sample From 1705e0c7df68a9f284a5ed56928ce1c8fd098c60 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 5 Mar 2016 13:09:56 -0500 Subject: [PATCH 015/259] Bug fixes after testing --- src/scattdata_header.F90 | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 54b9e14f1..46b1de826 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -21,7 +21,6 @@ module scattdata_header real(8), allocatable :: data(:) end type Jagged1D - !=============================================================================== ! SCATTDATA contains all the data to describe the scattering energy and ! angular distribution @@ -177,8 +176,9 @@ contains allocate(this % max_val(groups)) ! Set dist values from coeffs and initialize max_val do gin = 1, groups - this % dist(gin) % data(:,this % gmin(gin):this % gmax(gin)) = & - coeffs(:,this % gmin(gin):this % gmax(gin),gin) + do gout = this % gmin(gin), this % gmax(gin) + this % dist(gin) % data(:,gout) = coeffs(:,gout,gin) + end do allocate(this % max_val(gin) % data(this % gmin(gin):this % gmax(gin))) this % max_val(gin) % data = ZERO end do @@ -278,7 +278,8 @@ contains allocate(this % mu(this_order)) this % dmu = TWO / real(this_order - 1) - do imu = 1, this_order - 1 + this % mu = -ONE + do imu = 2, this_order - 1 this % mu(imu) = -ONE + real(imu - 1) * this % dmu end do this % mu(this_order) = ONE @@ -286,16 +287,21 @@ contains ! Calculate f(mu) and integrate it so we can avoid rejection sampling allocate(this % fmu(groups)) do gin = 1, groups - do gout = this % gmin(gin), this % gmax(gin) - allocate(this % fmu(gin) % data(this_order,& + allocate(this % fmu(gin) % data(this_order,& this % gmin(gin):this % gmax(gin))) + do gout = this % gmin(gin), this % gmax(gin) if (legendre_flag) then ! Coeffs are legendre coeffs. Need to build f(mu) then integrate ! and store the integral in this % dist ! Ensure the coeffs are normalized - norm = ONE / coeffs(1,gout,gin) + if (coeffs(1,gout,gin) /= ZERO) then + norm = ONE / coeffs(1,gout,gin) + else + norm = ONE + end if do imu = 1, this_order - this % fmu(gin) % data(imu,gout) = evaluate_legendre(norm * coeffs(:,gout,gin), this % mu(imu)) + this % fmu(gin) % data(imu,gout) = & + evaluate_legendre(norm * coeffs(:,gout,gin), this % mu(imu)) ! Force positivity if (this % fmu(gin) % data(imu,gout) < ZERO) then this % fmu(gin) % data(imu,gout) = ZERO @@ -422,7 +428,7 @@ contains ! Now we can sample mu using the legendre representation of the scattering ! kernel in data(1:this % order) - ! Do with rejection sampling + ! Do with rejection sampling from a rectangular bounding box ! Set maximal value M = this % max_val(gin) % data(gout) samples = 0 @@ -519,7 +525,7 @@ contains p0 = this % fmu(gin) % data(k,gout) mu0 = this % mu(k) ! Linear-linear interpolation to find mu value w/in bin. - p0 = this % fmu(gin) % data(k + 1,gout) + p1 = this % fmu(gin) % data(k + 1,gout) mu1 = this % mu(k + 1) frac = (p1 - p0)/(mu1 - mu0) From 92e1794b43152cd31a60b156cffe12cb7a30921b Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 5 Mar 2016 13:50:34 -0500 Subject: [PATCH 016/259] Ok, all bug fixes incorporated, now this method matches what was in the original (after fixing a minor bug in the original which was of no statistical consequence --- src/scattdata_header.F90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 46b1de826..949bd8707 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -204,9 +204,10 @@ contains if (f > this % max_val(gin) % data(gout)) & this % max_val(gin) % data(gout) = f end do + ! Finally, since we may not have caught the exact max, add 10% margin + this % max_val(gin) % data(gout) = & + this % max_val(gin) % data(gout) * 1.1_8 end do - ! Finally, since we may not have caught the exact max, add 10% margin - this % max_val(gin) % data = this % max_val(gin) % data * 1.1_8 end do end subroutine scattdatalegendre_init From deec7eef4f2f2dce0261027f94e5814509673733 Mon Sep 17 00:00:00 2001 From: jingang Date: Sat, 5 Mar 2016 13:52:07 -0500 Subject: [PATCH 017/259] Update regression tests results for Al.5 --- .../test_asymmetric_lattice/results_true.dat | 2 +- tests/test_cmfd_feed/results_true.dat | 498 +- tests/test_cmfd_nofeed/results_true.dat | 1384 +-- tests/test_complex_cell/results_true.dat | 18 +- .../results_true.dat | 6 +- tests/test_density/results_true.dat | 2 +- tests/test_distribmat/results_true.dat | 2 +- .../results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_energy_grid/results_true.dat | 2 +- tests/test_energy_laws/results_true.dat | 2 +- tests/test_entropy/results_true.dat | 20 +- .../case-1/results_true.dat | 20 +- .../case-2/results_true.dat | 16 +- .../case-3/results_true.dat | 2 +- .../case-4/results_true.dat | 28 +- tests/test_filter_mesh_2d/results_true.dat | 664 +- tests/test_filter_mesh_3d/results_true.dat | 9400 ++++++++--------- tests/test_infinite_cell/results_true.dat | 2 +- tests/test_lattice/results_true.dat | 2 +- tests/test_lattice_hex/results_true.dat | 2 +- tests/test_lattice_mixed/results_true.dat | 2 +- tests/test_lattice_multiple/results_true.dat | 2 +- .../results_true.dat | 28 +- .../results_true.dat | 8 +- tests/test_mgxs_library_hdf5/results_true.dat | 66 +- .../results_true.dat | 58 +- .../results_true.dat | 362 +- tests/test_natural_element/results_true.dat | 2 +- tests/test_output/results_true.dat | 2 +- .../results_true.dat | 8 +- .../test_particle_restart_eigval.py | 2 +- tests/test_quadric_surfaces/results_true.dat | 2 +- tests/test_reflective_plane/results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_rotation/results_true.dat | 2 +- tests/test_salphabeta/results_true.dat | 2 +- tests/test_score_current/results_true.dat | 2 +- tests/test_seed/results_true.dat | 2 +- tests/test_source/results_true.dat | 2 +- tests/test_source_file/results_true.dat | 2 +- .../test_sourcepoint_latest/results_true.dat | 2 +- .../test_sourcepoint_restart/results_true.dat | 4076 +++---- tests/test_statepoint_batch/results_true.dat | 2 +- .../test_statepoint_interval/results_true.dat | 2 +- .../test_statepoint_restart/results_true.dat | 4076 +++---- .../results_true.dat | 2 +- tests/test_survival_biasing/results_true.dat | 34 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_assumesep/results_true.dat | 14 +- tests/test_tally_nuclides/results_true.dat | 50 +- tests/test_trace/results_true.dat | 2 +- tests/test_translation/results_true.dat | 2 +- .../results_true.dat | 50 +- .../results_true.dat | 50 +- tests/test_trigger_no_status/results_true.dat | 50 +- tests/test_trigger_tallies/results_true.dat | 50 +- tests/test_uniform_fs/results_true.dat | 2 +- .../test_union_energy_grids/results_true.dat | 2 +- tests/test_universe/results_true.dat | 2 +- tests/test_void/results_true.dat | 2 +- 62 files changed, 10554 insertions(+), 10554 deletions(-) diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index 8b861fea3..fa3a412a5 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -ed3818f25cb19b957222c3b6f02d3d96a0646c5264903da07c25547bb9035d5283f7719e6af564d7b9e2d56d95070f1a3ca7b2eda9092058b8390ca484ea3e33 \ No newline at end of file +e059d757333d522575bfac076cbf2faa0212062b16e200c021c79e0cbeb378f6dc70e011b2bf910d507e3b14fe01330a7a07474ec113321cfcd42d9fb41c7053 \ No newline at end of file diff --git a/tests/test_cmfd_feed/results_true.dat b/tests/test_cmfd_feed/results_true.dat index e27093930..36cc01d84 100644 --- a/tests/test_cmfd_feed/results_true.dat +++ b/tests/test_cmfd_feed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.166652E+00 1.018306E-02 +1.182357E+00 5.974030E-03 tally 1: -1.182022E+01 -1.405442E+01 -2.218673E+01 -4.943577E+01 -2.893897E+01 -8.398894E+01 -3.440863E+01 -1.184768E+02 -3.720329E+01 -1.385691E+02 -3.715391E+01 -1.384461E+02 -3.433438E+01 -1.180609E+02 -2.934569E+01 -8.617544E+01 -2.096787E+01 -4.419802E+01 -1.199678E+01 -1.446718E+01 +1.088662E+01 +1.190872E+01 +2.048880E+01 +4.219873E+01 +2.876282E+01 +8.305037E+01 +3.379778E+01 +1.144766E+02 +3.770283E+01 +1.426032E+02 +3.830206E+01 +1.471567E+02 +3.592772E+01 +1.292701E+02 +2.991123E+01 +8.986773E+01 +2.146951E+01 +4.617825E+01 +1.203028E+01 +1.448499E+01 tally 2: -2.306034E+01 -2.682494E+01 -1.611671E+01 -1.310632E+01 -2.197367E+00 -2.477887E-01 -4.203949E+01 -8.913100E+01 -2.976604E+01 -4.469984E+01 -4.006763E+00 -8.150909E-01 -5.779747E+01 -1.677749E+02 -4.095248E+01 -8.422524E+01 -5.363780E+00 -1.449264E+00 -6.807553E+01 -2.321452E+02 -4.845787E+01 -1.176610E+02 -6.171810E+00 -1.923022E+00 -7.340764E+01 -2.699083E+02 -5.221062E+01 -1.365619E+02 -6.847946E+00 -2.384879E+00 -7.293589E+01 -2.670385E+02 -5.179311E+01 -1.347019E+02 -6.772230E+00 -2.324004E+00 -6.790926E+01 -2.314671E+02 -4.827712E+01 -1.170966E+02 -6.209376E+00 -1.944617E+00 -5.892254E+01 -1.739942E+02 -4.193348E+01 -8.817331E+01 -5.580011E+00 -1.573783E+00 -4.349678E+01 -9.505407E+01 -3.078366E+01 -4.763277E+01 -4.132281E+00 -8.658909E-01 -2.390602E+01 -2.879339E+01 -1.671966E+01 -1.409820E+01 -2.408409E+00 -3.004268E-01 +2.194698E+01 +2.431353E+01 +1.531030E+01 +1.183711E+01 +2.005791E+00 +2.073861E-01 +4.066089E+01 +8.307356E+01 +2.875607E+01 +4.160648E+01 +3.795240E+00 +7.283392E-01 +5.694473E+01 +1.629010E+02 +4.039366E+01 +8.198752E+01 +5.355319E+00 +1.450356E+00 +6.785682E+01 +2.311231E+02 +4.850705E+01 +1.181432E+02 +6.096531E+00 +1.875560E+00 +7.450798E+01 +2.784140E+02 +5.308226E+01 +1.413486E+02 +6.833051E+00 +2.357243E+00 +7.509346E+01 +2.831529E+02 +5.357157E+01 +1.441080E+02 +6.871605E+00 +2.376576E+00 +6.981210E+01 +2.445219E+02 +4.976894E+01 +1.243009E+02 +6.297010E+00 +2.008175E+00 +5.844228E+01 +1.716823E+02 +4.161341E+01 +8.709864E+01 +5.266312E+00 +1.407459E+00 +4.264401E+01 +9.124183E+01 +3.019716E+01 +4.575834E+01 +4.214008E+00 +8.998009E-01 +2.360554E+01 +2.810966E+01 +1.651062E+01 +1.374852E+01 +2.253099E+00 +2.643227E-01 tally 3: -1.552079E+01 -1.215917E+01 -1.020059E+00 -5.282882E-02 -2.870674E+01 -4.158022E+01 -1.804035E+00 -1.660452E-01 -3.946503E+01 -7.823691E+01 -2.547969E+00 -3.299415E-01 -4.671591E+01 -1.093585E+02 -2.859632E+00 -4.124601E-01 -5.032154E+01 -1.268658E+02 -3.343751E+00 -5.614915E-01 -4.984325E+01 -1.247751E+02 -3.167240E+00 -5.081974E-01 -4.649606E+01 -1.086583E+02 -3.036950E+00 -4.666173E-01 -4.037729E+01 -8.175938E+01 -2.638125E+00 -3.519509E-01 -2.966728E+01 -4.424057E+01 -1.908438E+00 -1.845564E-01 -1.614337E+01 -1.314776E+01 -1.059193E+00 -5.820056E-02 +1.477479E+01 +1.102597E+01 +9.629052E-01 +4.805270E-02 +2.767228E+01 +3.853758E+01 +1.875024E+00 +1.791921E-01 +3.889173E+01 +7.603662E+01 +2.514324E+00 +3.179473E-01 +4.669914E+01 +1.095214E+02 +2.899863E+00 +4.244220E-01 +5.113294E+01 +1.311853E+02 +3.370751E+00 +5.745169E-01 +5.155018E+01 +1.334689E+02 +3.240491E+00 +5.309493E-01 +4.798026E+01 +1.155563E+02 +3.140727E+00 +4.976607E-01 +4.006831E+01 +8.074622E+01 +2.652324E+00 +3.555555E-01 +2.910962E+01 +4.252913E+01 +1.868334E+00 +1.764790E-01 +1.594882E+01 +1.283117E+01 +1.050541E+00 +5.741461E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,8 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.093457E+00 -4.811225E-01 +2.970156E+00 +4.442680E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -208,10 +208,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.492347E+00 -1.516052E+00 -2.700262E+00 -3.703359E-01 +5.256812E+00 +1.387940E+00 +2.600466E+00 +3.411564E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -256,10 +256,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.476943E+00 -2.814145E+00 -5.178084E+00 -1.351641E+00 +7.205451E+00 +2.606110E+00 +5.064606E+00 +1.288462E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -304,10 +304,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.761435E+00 -3.851635E+00 -7.186008E+00 -2.593254E+00 +8.686485E+00 +3.787609E+00 +7.168705E+00 +2.578927E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -352,10 +352,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.309416E+00 -4.344697E+00 -8.490837E+00 -3.612406E+00 +9.401928E+00 +4.436352E+00 +8.541906E+00 +3.659201E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -400,10 +400,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.132849E+00 -4.184794E+00 -9.243248E+00 -4.287529E+00 +9.281127E+00 +4.316075E+00 +9.309092E+00 +4.349093E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -448,10 +448,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.483092E+00 -3.612901E+00 -9.279260E+00 -4.328361E+00 +8.714652E+00 +3.818254E+00 +9.438396E+00 +4.478823E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -496,10 +496,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.127826E+00 -2.546707E+00 -8.665903E+00 -3.765209E+00 +7.224112E+00 +2.623879E+00 +8.791109E+00 +3.886534E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -544,10 +544,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.402585E+00 -1.465890E+00 -7.635138E+00 -2.927813E+00 +5.268159E+00 +1.396589E+00 +7.474226E+00 +2.802732E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -592,10 +592,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.828867E+00 -4.049626E-01 -5.637356E+00 -1.595316E+00 +2.786206E+00 +3.930708E-01 +5.555956E+00 +1.549697E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -642,8 +642,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.153056E+00 -4.991433E-01 +3.146865E+00 +4.971483E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.179172E+00 -1.178968E+00 -1.188362E+00 -1.179504E+00 -1.171392E+00 -1.171387E+00 -1.167180E+00 -1.166119E+00 -1.174682E+00 -1.168971E+00 -1.169981E+00 -1.168234E+00 -1.167956E+00 -1.170486E+00 -1.171287E+00 -1.174181E+00 +1.188165E+00 +1.185424E+00 +1.186077E+00 +1.186240E+00 +1.180518E+00 +1.182338E+00 +1.176633E+00 +1.173733E+00 +1.183101E+00 +1.187581E+00 +1.187456E+00 +1.182071E+00 +1.181707E+00 +1.182390E+00 +1.185681E+00 +1.184114E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.225935E+00 -3.221297E+00 -3.218564E+00 -3.219662E+00 -3.217459E+00 -3.219000E+00 -3.219073E+00 -3.220798E+00 -3.220489E+00 -3.223146E+00 -3.223646E+00 -3.226356E+00 -3.225204E+00 -3.224716E+00 -3.224318E+00 -3.224577E+00 +3.221649E+00 +3.223000E+00 +3.222787E+00 +3.217662E+00 +3.216780E+00 +3.217779E+00 +3.216196E+00 +3.216949E+00 +3.215722E+00 +3.213663E+00 +3.212987E+00 +3.214740E+00 +3.216346E+00 +3.218373E+00 +3.218918E+00 +3.218693E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.216001E-03 -3.716007E-03 -3.317665E-03 -3.237220E-03 -2.978765E-03 -2.525223E-03 -1.971612E-03 -1.780968E-03 -1.792648E-03 -1.426282E-03 -1.521307E-03 -1.322495E-03 -1.292716E-03 -1.257458E-03 -1.162537E-03 -1.050447E-03 +4.065965E-03 +3.525507E-03 +3.021079E-03 +2.955766E-03 +2.838990E-03 +2.857085E-03 +2.260444E-03 +2.098638E-03 +2.096129E-03 +1.901194E-03 +1.977879E-03 +1.713346E-03 +1.550359E-03 +1.354824E-03 +1.132190E-03 +1.161818E-03 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.532E-01 - 5.521E-01 - 5.496E-01 - 5.508E-01 - 5.456E-01 - 5.444E-01 5.454E-01 - 5.465E-01 - 5.448E-01 - 5.446E-01 - 5.458E-01 + 5.414E-01 5.478E-01 - 5.470E-01 - 5.461E-01 - 5.451E-01 - 5.452E-01 + 5.459E-01 + 5.472E-01 + 5.326E-01 + 5.474E-01 + 5.472E-01 + 5.447E-01 + 5.411E-01 + 5.404E-01 + 5.427E-01 + 5.443E-01 + 5.453E-01 + 5.448E-01 + 5.449E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.905726E-03 -7.520876E-03 -8.184797E-03 -8.179625E-03 -8.961315E-03 -7.968151E-03 -7.670324E-03 -4.715437E-03 -5.520638E-03 -3.875711E-03 -3.787811E-03 -2.956290E-03 -3.185591E-03 -2.608673E-03 -2.426394E-03 -3.587478E-03 +7.780512E-03 +5.257528E-03 +4.347076E-03 +4.603868E-03 +5.268996E-03 +3.413250E-03 +4.217852E-03 +3.250039E-03 +4.404406E-03 +4.238172E-03 +3.834536E-03 +3.319549E-03 +2.393064E-03 +1.907225E-03 +1.855030E-03 +1.959869E-03 cmfd source -4.265675E-02 -7.580707E-02 -1.074866E-01 -1.214515E-01 -1.436608E-01 -1.371140E-01 -1.316659E-01 -1.136553E-01 -8.144140E-02 -4.506063E-02 +4.027103E-02 +7.892225E-02 +1.063098E-01 +1.229671E-01 +1.434918E-01 +1.383041E-01 +1.341394E-01 +1.130845E-01 +7.866073E-02 +4.384927E-02 diff --git a/tests/test_cmfd_nofeed/results_true.dat b/tests/test_cmfd_nofeed/results_true.dat index 97a659896..270b46752 100644 --- a/tests/test_cmfd_nofeed/results_true.dat +++ b/tests/test_cmfd_nofeed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.162636E+00 7.934609E-03 +1.175970E+00 1.022524E-02 tally 1: -1.135686E+01 -1.298528E+01 -2.071747E+01 -4.321110E+01 -2.819700E+01 -7.960910E+01 -3.332373E+01 -1.115433E+02 -3.709368E+01 -1.380544E+02 -3.739969E+01 -1.402784E+02 -3.426637E+01 -1.177472E+02 -2.803195E+01 -7.875785E+01 -2.016620E+01 -4.078448E+01 -1.108479E+01 -1.233250E+01 +1.158237E+01 +1.352745E+01 +2.179923E+01 +4.823751E+01 +2.918721E+01 +8.579451E+01 +3.411842E+01 +1.167131E+02 +3.714172E+01 +1.382918E+02 +3.783707E+01 +1.437136E+02 +3.614436E+01 +1.309976E+02 +2.969137E+01 +8.849248E+01 +2.111839E+01 +4.471900E+01 +1.133459E+01 +1.289353E+01 tally 2: -2.287981E+01 -2.636157E+01 -1.596700E+01 -1.284147E+01 -2.244451E+00 -2.572247E-01 -4.133263E+01 -8.604098E+01 -2.935200E+01 -4.341844E+01 -3.848434E+00 -7.503255E-01 -5.785079E+01 -1.679230E+02 -4.121800E+01 -8.525151E+01 -5.430500E+00 -1.486044E+00 -6.775200E+01 -2.303407E+02 -4.833300E+01 -1.173098E+02 -6.301059E+00 -1.998392E+00 -7.351217E+01 -2.710999E+02 -5.241700E+01 -1.379065E+02 -6.679600E+00 -2.255575E+00 -7.445204E+01 -2.781907E+02 -5.286300E+01 -1.402744E+02 -6.930494E+00 -2.424751E+00 -6.790326E+01 -2.315864E+02 -4.823200E+01 -1.168627E+02 -6.460814E+00 -2.114375E+00 -5.708920E+01 -1.635219E+02 -4.052800E+01 -8.243096E+01 -5.346027E+00 -1.442848E+00 -4.210443E+01 -8.918253E+01 -2.973500E+01 -4.450833E+01 -3.975207E+00 -8.045528E-01 -2.247144E+01 -2.543735E+01 -1.563900E+01 -1.232686E+01 -2.123798E+00 -2.366770E-01 +2.285666E+01 +2.632725E+01 +1.592200E+01 +1.279985E+01 +2.354335E+00 +2.818304E-01 +4.206665E+01 +8.923811E+01 +2.971400E+01 +4.458975E+01 +4.024411E+00 +8.205124E-01 +5.769235E+01 +1.671496E+02 +4.092500E+01 +8.415372E+01 +5.406039E+00 +1.478617E+00 +6.816911E+01 +2.331129E+02 +4.867500E+01 +1.188855E+02 +6.103922E+00 +1.881092E+00 +7.441705E+01 +2.776763E+02 +5.332500E+01 +1.425916E+02 +6.670349E+00 +2.252978E+00 +7.501123E+01 +2.821949E+02 +5.369500E+01 +1.446772E+02 +6.711425E+00 +2.274957E+00 +7.001950E+01 +2.460955E+02 +5.000600E+01 +1.255806E+02 +6.490622E+00 +2.130330E+00 +5.803532E+01 +1.691736E+02 +4.150500E+01 +8.653752E+01 +5.356227E+00 +1.455369E+00 +4.231248E+01 +8.984067E+01 +3.012800E+01 +4.555195E+01 +4.023117E+00 +8.251027E-01 +2.326609E+01 +2.729288E+01 +1.636300E+01 +1.348720E+01 +2.043151E+00 +2.201626E-01 tally 3: -1.535500E+01 -1.188779E+01 -1.072376E+00 -5.918356E-02 -2.825000E+01 -4.023490E+01 -1.793632E+00 -1.647594E-01 -3.966400E+01 -7.895763E+01 -2.634662E+00 -3.493770E-01 -4.659700E+01 -1.090464E+02 -2.967403E+00 -4.433197E-01 -5.047200E+01 -1.278853E+02 -3.273334E+00 -5.383728E-01 -5.092700E+01 -1.302177E+02 -3.300198E+00 -5.511893E-01 -4.642600E+01 -1.082721E+02 -2.975932E+00 -4.459641E-01 -3.894500E+01 -7.613859E+01 -2.530949E+00 -3.228046E-01 -2.864900E+01 -4.133838E+01 -1.903069E+00 -1.833780E-01 -1.505600E+01 -1.142871E+01 -1.018078E+00 -5.366335E-02 +1.532800E+01 +1.186246E+01 +1.054240E+00 +5.699889E-02 +2.862200E+01 +4.139083E+01 +1.917898E+00 +1.872272E-01 +3.941000E+01 +7.805265E+01 +2.548698E+00 +3.263827E-01 +4.685700E+01 +1.101835E+02 +2.915064E+00 +4.273240E-01 +5.143600E+01 +1.326606E+02 +3.195201E+00 +5.159753E-01 +5.172300E+01 +1.342849E+02 +3.397114E+00 +5.811083E-01 +4.816600E+01 +1.165387E+02 +2.996374E+00 +4.526135E-01 +4.001200E+01 +8.042168E+01 +2.615438E+00 +3.486860E-01 +2.903100E+01 +4.229303E+01 +1.899116E+00 +1.823251E-01 +1.575800E+01 +1.251088E+01 +1.015498E+00 +5.311788E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,490 +160,490 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.996000E+00 -4.526620E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.397000E+00 -1.464555E+00 -2.755000E+00 -3.852250E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.389000E+00 -2.741345E+00 -5.200000E+00 -1.361978E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.644000E+00 -3.751978E+00 -7.139000E+00 -2.565059E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.219000E+00 -4.266743E+00 -8.493000E+00 -3.619533E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.255000E+00 -4.299595E+00 -9.339000E+00 -4.378285E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.492000E+00 -3.616398E+00 -9.420000E+00 -4.454308E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.996000E+00 -2.460916E+00 -8.640000E+00 -3.743262E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.120000E+00 -1.320024E+00 -7.306000E+00 -2.680980E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.681000E+00 -3.659390E-01 -5.413000E+00 -1.474787E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 3.061000E+00 -4.714170E-01 +4.712730E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.495000E+00 +1.521499E+00 +2.783000E+00 +3.954290E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.290000E+00 +2.671490E+00 +5.148000E+00 +1.340000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.720000E+00 +3.820712E+00 +7.225000E+00 +2.625189E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.361000E+00 +4.398063E+00 +8.510000E+00 +3.633548E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.354000E+00 +4.392402E+00 +9.308000E+00 +4.353558E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.645000E+00 +3.752875E+00 +9.473000E+00 +4.510221E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.224000E+00 +2.621330E+00 +8.753000E+00 +3.851203E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.181000E+00 +1.346925E+00 +7.383000E+00 +2.733921E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.770000E+00 +3.870080E-01 +5.492000E+00 +1.515162E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.024000E+00 +4.598380E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.179172E+00 -1.181948E+00 -1.176599E+00 -1.175082E+00 -1.176011E+00 -1.183277E+00 -1.179605E+00 -1.181446E+00 -1.182887E+00 -1.182806E+00 -1.181451E+00 -1.176065E+00 -1.173438E+00 -1.171644E+00 -1.173251E+00 -1.178969E+00 +1.188165E+00 +1.187432E+00 +1.183060E+00 +1.181898E+00 +1.177316E+00 +1.180396E+00 +1.183040E+00 +1.180335E+00 +1.176231E+00 +1.177895E+00 +1.180046E+00 +1.182650E+00 +1.185585E+00 +1.189670E+00 +1.186010E+00 +1.182861E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.225935E+00 -3.222178E+00 -3.226354E+00 -3.222407E+00 -3.218763E+00 -3.213551E+00 -3.217941E+00 -3.219897E+00 -3.223185E+00 -3.221321E+00 -3.223037E+00 -3.222984E+00 -3.225563E+00 -3.226058E+00 -3.225377E+00 -3.224158E+00 +3.221649E+00 +3.223243E+00 +3.223437E+00 +3.227374E+00 +3.223652E+00 +3.226298E+00 +3.224154E+00 +3.226033E+00 +3.228121E+00 +3.229091E+00 +3.227082E+00 +3.226168E+00 +3.226627E+00 +3.225070E+00 +3.225044E+00 +3.225384E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.216001E-03 -3.765736E-03 -3.232512E-03 -2.946657E-03 -2.620043E-03 -3.102942E-03 -1.718566E-03 -1.560898E-03 -1.349125E-03 -1.376832E-03 -1.125073E-03 -1.244068E-03 -8.541401E-04 -1.038410E-03 -9.946921E-04 -1.032684E-03 +4.065965E-03 +3.184316E-03 +2.738317E-03 +2.519700E-03 +2.342444E-03 +1.813264E-03 +2.187197E-03 +1.765666E-03 +1.579152E-03 +1.494719E-03 +1.650439E-03 +1.603349E-03 +1.515152E-03 +1.671731E-03 +1.434242E-03 +1.264261E-03 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.532E-01 - 5.531E-01 - 3.223E-01 - 5.531E-01 - 5.492E-01 - 5.122E-01 - 5.456E-01 - 5.460E-01 - 5.479E-01 - 5.469E-01 - 5.469E-01 + 5.454E-01 + 5.470E-01 + 5.474E-01 + 5.480E-01 + 5.450E-01 + 5.446E-01 + 5.441E-01 + 5.458E-01 + 5.486E-01 + 5.481E-01 + 5.470E-01 5.467E-01 - 5.469E-01 - 5.482E-01 + 5.464E-01 5.467E-01 - 5.455E-01 + 5.467E-01 + 5.475E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.905726E-03 -7.474785E-03 -3.875412E-03 -4.088264E-03 -4.267612E-03 -4.332761E-03 -3.099731E-03 -4.562882E-03 -2.179728E-03 -3.149706E-03 -2.068544E-03 -2.125510E-03 -1.508170E-03 -1.306280E-03 -1.668890E-03 -2.087329E-03 +7.780512E-03 +5.487778E-03 +6.783383E-03 +4.345691E-03 +4.732876E-03 +3.587393E-03 +3.608858E-03 +4.182060E-03 +2.493256E-03 +2.356484E-03 +2.605494E-03 +2.441777E-03 +2.343211E-03 +3.167611E-03 +2.123139E-03 +2.579320E-03 cmfd source -4.468330E-02 -7.547146E-02 -1.117685E-01 -1.265505E-01 -1.401455E-01 -1.414979E-01 -1.275260E-01 -1.083491E-01 -8.102235E-02 -4.298544E-02 +4.365045E-02 +8.011141E-02 +1.073840E-01 +1.235726E-01 +1.360563E-01 +1.451378E-01 +1.281146E-01 +1.120500E-01 +8.097935E-02 +4.294339E-02 diff --git a/tests/test_complex_cell/results_true.dat b/tests/test_complex_cell/results_true.dat index b39f4c77a..fac000acb 100644 --- a/tests/test_complex_cell/results_true.dat +++ b/tests/test_complex_cell/results_true.dat @@ -1,11 +1,11 @@ k-combined: -2.638275E-01 6.152901E-03 +2.613143E-01 4.327291E-03 tally 1: -2.700382E+00 -1.460303E+00 -2.789417E+00 -1.556280E+00 -1.066357E+00 -2.277317E-01 -1.107069E-01 -2.453478E-03 +2.660051E+00 +1.415808E+00 +2.714532E+00 +1.475275E+00 +9.954839E-01 +1.988210E-01 +1.075268E-01 +2.315698E-03 diff --git a/tests/test_confidence_intervals/results_true.dat b/tests/test_confidence_intervals/results_true.dat index 0a693a2e7..5849fa1f5 100644 --- a/tests/test_confidence_intervals/results_true.dat +++ b/tests/test_confidence_intervals/results_true.dat @@ -1,5 +1,5 @@ k-combined: -2.955471E-01 7.000859E-03 +2.990520E-01 4.413813E-03 tally 1: -6.492140E+01 -5.290622E+02 +6.518836E+01 +5.331909E+02 diff --git a/tests/test_density/results_true.dat b/tests/test_density/results_true.dat index b3cfb0fca..c79671dbf 100644 --- a/tests/test_density/results_true.dat +++ b/tests/test_density/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.112894E+00 2.781412E-03 +1.095099E+00 7.174355E-03 diff --git a/tests/test_distribmat/results_true.dat b/tests/test_distribmat/results_true.dat index 32ba9d6d1..6d915f643 100644 --- a/tests/test_distribmat/results_true.dat +++ b/tests/test_distribmat/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.276930E+00 1.716859E-02 +1.292367E+00 2.783049E-02 Cell ID = 11 Name = diff --git a/tests/test_eigenvalue_genperbatch/results_true.dat b/tests/test_eigenvalue_genperbatch/results_true.dat index 48052821b..73921460b 100644 --- a/tests/test_eigenvalue_genperbatch/results_true.dat +++ b/tests/test_eigenvalue_genperbatch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.966731E-01 1.565084E-03 +2.896963E-01 1.152441E-02 diff --git a/tests/test_eigenvalue_no_inactive/results_true.dat b/tests/test_eigenvalue_no_inactive/results_true.dat index a606f7b47..945003e7b 100644 --- a/tests/test_eigenvalue_no_inactive/results_true.dat +++ b/tests/test_eigenvalue_no_inactive/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.058585E-01 8.025063E-03 +3.086025E-01 7.823119E-03 diff --git a/tests/test_energy_grid/results_true.dat b/tests/test_energy_grid/results_true.dat index 3958614d0..04c1a2b4c 100644 --- a/tests/test_energy_grid/results_true.dat +++ b/tests/test_energy_grid/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.218570E-01 2.269572E-03 +3.195980E-01 5.629840E-03 diff --git a/tests/test_energy_laws/results_true.dat b/tests/test_energy_laws/results_true.dat index cf020287b..2cafa0fe8 100644 --- a/tests/test_energy_laws/results_true.dat +++ b/tests/test_energy_laws/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.152985E+00 2.340453E-02 +2.136934E+00 5.025409E-03 diff --git a/tests/test_entropy/results_true.dat b/tests/test_entropy/results_true.dat index 773bedfd8..a450c887e 100644 --- a/tests/test_entropy/results_true.dat +++ b/tests/test_entropy/results_true.dat @@ -1,13 +1,13 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 entropy: 7.601626E+00 -8.075430E+00 -8.265647E+00 -8.334421E+00 -8.279373E+00 -8.243909E+00 -8.346594E+00 -8.308991E+00 -8.300603E+00 -8.293250E+00 +8.073602E+00 +8.285649E+00 +8.254254E+00 +8.288322E+00 +8.328178E+00 +8.351350E+00 +8.239166E+00 +8.305642E+00 +8.384493E+00 diff --git a/tests/test_filter_distribcell/case-1/results_true.dat b/tests/test_filter_distribcell/case-1/results_true.dat index 74d8d5bb7..e889c5189 100644 --- a/tests/test_filter_distribcell/case-1/results_true.dat +++ b/tests/test_filter_distribcell/case-1/results_true.dat @@ -1,14 +1,14 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -1.394835E-02 -1.945563E-04 -1.278875E-02 -1.635521E-04 -1.421770E-02 -2.021430E-04 -1.022974E-02 -1.046477E-04 +1.388230E-02 +1.927181E-04 +1.274703E-02 +1.624868E-04 +1.413512E-02 +1.998017E-04 +1.014096E-02 +1.028390E-04 tally 2: -5.118454E-02 -2.619857E-03 +5.090541E-02 +2.591361E-03 diff --git a/tests/test_filter_distribcell/case-2/results_true.dat b/tests/test_filter_distribcell/case-2/results_true.dat index 51eb8ea56..1bf180f56 100644 --- a/tests/test_filter_distribcell/case-2/results_true.dat +++ b/tests/test_filter_distribcell/case-2/results_true.dat @@ -1,11 +1,11 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -7.622903E-03 -5.810865E-05 -8.364469E-03 -6.996434E-05 -8.637033E-03 -7.459834E-05 -8.126637E-03 -6.604223E-05 +7.522719E-03 +5.659131E-05 +8.295569E-03 +6.881647E-05 +8.554455E-03 +7.317870E-05 +8.075834E-03 +6.521910E-05 diff --git a/tests/test_filter_distribcell/case-3/results_true.dat b/tests/test_filter_distribcell/case-3/results_true.dat index 4e3ad0e43..559b8232d 100644 --- a/tests/test_filter_distribcell/case-3/results_true.dat +++ b/tests/test_filter_distribcell/case-3/results_true.dat @@ -1 +1 @@ -e3382c4ccff9d80b66a49ad88d8ff98ba489d39810f8fcacda565b857c93be7c3f92f8d06fae1d109d7b87f3c35f8768631b400a0f31c092f19c33b1773057e5 \ No newline at end of file +d6a3f2a020a25814fde0eb731b7ceb0928910b139460c13a9739855901818fcaf45e3d48d70f5829fc3af7164954cacefcbf2860582728bf071b57a96be336be \ No newline at end of file diff --git a/tests/test_filter_distribcell/case-4/results_true.dat b/tests/test_filter_distribcell/case-4/results_true.dat index 85630c5e1..3570c5977 100644 --- a/tests/test_filter_distribcell/case-4/results_true.dat +++ b/tests/test_filter_distribcell/case-4/results_true.dat @@ -1,17 +1,17 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -2.274500E-02 -5.173351E-04 -2.035606E-02 -4.143691E-04 -2.057338E-02 -4.232638E-04 -3.100600E-02 -9.613721E-04 -2.355567E-02 -5.548698E-04 -2.563651E-02 -6.572304E-04 -2.020567E-02 -4.082692E-04 +2.281161E-02 +5.203696E-04 +2.026380E-02 +4.106216E-04 +2.051818E-02 +4.209955E-04 +3.105331E-02 +9.643082E-04 +2.361926E-02 +5.578696E-04 +2.559396E-02 +6.550505E-04 +2.047153E-02 +4.190836E-04 diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index 7d0fda7bd..93b5e8b24 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -9.090848E-01 2.183589E-02 +1.102447E+00 7.056170E-03 tally 1: 0.000000E+00 0.000000E+00 @@ -17,6 +17,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.004731E-01 +1.603787E-01 +7.197162E-02 +5.179914E-03 +1.604976E-02 +2.575947E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -37,14 +43,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.825592E-01 +3.332786E-02 +1.735601E-01 +3.012310E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.929301E-01 +1.292096E-01 +1.170085E+00 +4.383162E-01 +2.378040E+00 +1.465005E+00 +1.178600E-01 +1.251541E-02 0.000000E+00 0.000000E+00 -4.589207E-02 -2.106082E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -61,10 +77,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.810181E-01 -1.943018E-01 -8.477458E-01 -7.186730E-01 +6.161419E-02 +3.796309E-03 +1.346477E+00 +4.828090E-01 +1.058790E-01 +1.121036E-02 +4.136497E-01 +1.711061E-01 +1.243458E+00 +4.647755E-01 +2.245781E+00 +1.580849E+00 +5.654811E-01 +9.706540E-02 +9.429516E-01 +2.435071E-01 +1.051027E-02 +1.104657E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -73,18 +103,32 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.389407E-01 -1.595676E-01 -1.024430E+00 -3.365012E-01 -9.196572E-01 -3.159409E-01 -4.091014E-02 -1.673639E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +8.027188E-02 +3.522204E-03 +4.079328E-01 +8.766787E-02 +2.841433E-01 +5.943838E-02 +1.056161E+00 +4.599956E-01 +1.290005E-01 +1.027599E-02 +9.363444E-02 +7.224796E-03 +4.775813E-01 +2.280839E-01 +1.338854E+00 +5.648386E-01 +1.890323E+00 +1.335290E+00 +1.319736E+00 +3.546244E-01 +4.228786E-01 +1.311699E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -95,378 +139,340 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.937300E-01 -1.561304E-01 -1.330480E+00 -5.750628E-01 +1.446649E+00 +1.013796E+00 +9.490590E-01 +2.557034E-01 +1.533479E+00 +7.125528E-01 +1.303857E+00 +5.880199E-01 +3.822788E-01 +7.558920E-02 +8.548820E-01 +2.763157E-01 +4.714297E-01 +1.588901E-01 0.000000E+00 0.000000E+00 +1.109572E-01 +9.514310E-03 +1.621894E+00 +7.323979E-01 +2.329788E+00 +1.522693E+00 +6.995477E-01 +2.446957E-01 +7.586629E-02 +5.755693E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.824955E-01 -1.707684E-01 -4.866910E+00 -5.700093E+00 -2.363570E+00 -1.406009E+00 -2.500848E-01 -2.908147E-02 +3.455670E-02 +1.194166E-03 +1.113155E+00 +4.133643E-01 +1.212634E+00 +3.599153E-01 +1.548704E+00 +7.470060E-01 +1.916353E+00 +9.678959E-01 +3.617247E-01 +1.308448E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.906731E-02 +4.770293E-03 +1.184237E+00 +5.476329E-01 +9.482305E-01 +5.075797E-01 +5.056772E-01 +1.132023E-01 +2.538689E-01 +6.444941E-02 0.000000E+00 0.000000E+00 -1.726734E+00 -1.008362E+00 -5.696123E-01 -1.623003E-01 -2.077579E-02 -4.316336E-04 -1.433993E+00 -9.499213E-01 -7.566294E-01 -2.345886E-01 -6.841025E-03 -4.679962E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.148786E-01 +3.780757E-01 +9.371058E-01 +4.364939E-01 +4.650093E-01 +1.448489E-01 +5.028267E-01 +1.557262E-01 +1.710986E+00 +1.146930E+00 +1.323640E-01 +8.859409E-03 0.000000E+00 0.000000E+00 -7.173413E-01 -5.145786E-01 -6.358264E-01 -2.499324E-01 -4.142134E-01 -1.715727E-01 +1.208034E-01 +1.459347E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.011416E-01 -1.609146E-01 -3.368420E-02 -1.134625E-03 -1.030071E+00 -3.122720E-01 -1.143612E+00 -3.253839E-01 -2.540223E-02 -6.452733E-04 -1.928674E-01 -2.540533E-02 -5.020644E-01 -1.001572E-01 -7.725983E-02 -5.969081E-03 +4.949505E-03 +2.449760E-05 0.000000E+00 0.000000E+00 +3.911928E-01 +1.530318E-01 +4.287020E-02 +1.837854E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.761929E-01 -1.415211E-01 -3.337719E-01 -1.114037E-01 -1.458352E-01 -1.101801E-02 -1.004092E-02 -1.008200E-04 0.000000E+00 0.000000E+00 -1.456669E-02 -2.121884E-04 -9.828001E-01 -3.081076E-01 -7.752974E-01 -2.561541E-01 -2.210823E-01 -4.887738E-02 -5.096186E-01 -1.463671E-01 -9.189234E-03 -8.444202E-05 -9.466643E-02 -8.690023E-03 -3.476240E-01 -1.208424E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.776242E-02 -1.426000E-03 -2.838898E-01 -4.967809E-02 -3.681563E-01 -6.318539E-02 -1.810931E+00 -9.978486E-01 -7.373658E-01 -1.908335E-01 -5.104435E-02 -2.605526E-03 -2.373628E-01 -5.634111E-02 -1.619103E+00 -9.529343E-01 -3.924287E-01 -7.734575E-02 -2.295855E-01 -1.859566E-02 -0.000000E+00 -0.000000E+00 -9.399897E-01 -4.960289E-01 -1.747530E+00 -7.216683E-01 -6.696830E-01 -2.245084E-01 -1.077525E+00 -4.429656E-01 -1.584679E-02 -2.511207E-04 -7.184233E-02 -5.161321E-03 -1.759958E-01 -1.571544E-02 -6.649229E-01 -1.552335E-01 -2.313062E+00 -1.350964E+00 -4.351564E-01 -8.470997E-02 -8.760661E-02 -3.966567E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.403358E+00 -5.895449E-01 -1.252504E+00 -3.739918E-01 -8.089149E-01 -2.438434E-01 -3.543859E-01 -8.574508E-02 -2.047540E+00 -1.321581E+00 -1.463028E+00 -5.756583E-01 -1.611632E+00 -9.690304E-01 -7.271044E-01 -2.145542E-01 -4.694874E-03 -2.204184E-05 -4.718730E-01 -2.106227E-01 -4.047996E-01 -1.189989E-01 -0.000000E+00 -0.000000E+00 -4.536343E-02 -1.094112E-03 -2.969731E-02 -8.819302E-04 -3.790737E-01 -7.738056E-02 -3.695761E-01 -1.011168E-01 -1.192047E+00 -4.200074E-01 -4.362940E+00 -6.186599E+00 -4.986916E+00 -7.007443E+00 -3.727941E+00 -3.366778E+00 -1.372362E-01 -8.458071E-03 -1.272595E+00 -3.719182E-01 -1.371121E+00 -6.115963E-01 -3.881464E-01 -7.668321E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.181124E-01 -1.395053E-02 -1.218119E-01 -1.206118E-02 -1.634449E-02 -2.671424E-04 -4.552904E-01 -1.865599E-01 -2.988611E-02 -8.931799E-04 -1.948983E-01 -3.003358E-02 -4.577426E-01 -6.147655E-02 -2.286747E+00 -1.767929E+00 -2.459226E+00 -1.547942E+00 -7.936611E+00 -1.446313E+01 -1.949417E+00 -1.320611E+00 -2.052310E-01 -4.120539E-02 -1.147100E-01 -7.231156E-03 -6.967033E-01 -1.779982E-01 -3.093709E-01 -5.019469E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.389385E-01 -1.679638E-01 -6.897133E-01 -2.074373E-01 -1.252516E-01 -1.568795E-02 -0.000000E+00 -0.000000E+00 -5.377296E-01 -7.798805E-02 -3.413563E+00 -2.875271E+00 -2.853407E-01 -4.232457E-02 -1.680380E+00 -7.792461E-01 -5.197599E+00 -1.167591E+01 -1.489144E+00 -1.644073E+00 -8.799716E-01 -5.514111E-01 -0.000000E+00 -0.000000E+00 -1.019508E+00 -3.954690E-01 -1.615211E+00 -5.906163E-01 -6.971393E-04 -4.860032E-07 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.512285E-01 -3.531844E-02 -2.049880E-01 -2.500201E-02 -1.283410E+00 -7.357671E-01 -9.917693E-01 -3.339985E-01 -1.147483E-01 -8.509586E-03 -5.790502E-01 -9.680085E-02 -1.192232E+00 -4.459713E-01 -3.331876E-01 -4.746118E-02 -3.281132E-01 -7.974258E-02 -3.979931E-02 -1.583985E-03 0.000000E+00 +7.898461E-03 +6.238568E-05 +6.061890E-02 +3.674651E-03 +1.191815E+00 +5.156780E-01 +1.250062E+00 +5.649280E-01 +7.783636E-01 +1.954889E-01 0.000000E+00 -3.008273E-01 -5.804921E-02 -3.403375E+00 -2.756946E+00 -3.923179E-01 -4.065809E-02 -7.175236E-01 -2.579798E-01 0.000000E+00 +2.476065E-01 +3.116371E-02 +2.531217E-01 +6.407059E-02 +5.942646E-01 +3.531504E-01 0.000000E+00 -2.829294E-02 -8.004902E-04 -3.487502E-01 -8.673548E-02 -6.183549E-01 -2.131095E-01 -5.065445E-01 -1.543839E-01 -2.853090E+00 -3.049743E+00 -7.252805E-03 -5.260317E-05 -8.802479E-01 -2.996449E-01 -1.457582E+00 -6.219158E-01 -8.593620E-01 -2.316194E-01 -5.073156E-01 -1.305767E-01 0.000000E+00 +3.092327E-01 +9.562486E-02 0.000000E+00 -1.291473E-01 -1.667902E-02 -1.363309E-01 -1.126574E-02 -3.322153E-01 -7.213414E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.428888E-01 -2.947282E-01 -1.807993E+00 -7.223647E-01 -9.224400E-01 -2.724689E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.564746E-04 +4.309589E-07 +0.000000E+00 +0.000000E+00 +1.178847E+00 +6.216556E-01 +6.230410E-01 +1.302106E-01 +1.454551E+00 +8.690328E-01 +1.771536E+00 +1.297657E+00 +2.378308E+00 +2.005719E+00 +1.151353E+00 +4.354728E-01 +6.385651E-01 +4.077654E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.631232E+00 +8.012828E-01 +7.231079E-01 +2.170171E-01 +2.989568E+00 +2.300501E+00 +2.435710E+00 +1.419918E+00 +1.948580E+00 +9.273897E-01 +1.532501E+00 +1.032633E+00 +5.846831E-01 +1.355003E-01 +3.486854E-02 +1.023386E-03 +3.724253E-01 +1.387006E-01 +7.611368E-01 +2.029035E-01 +3.688050E-01 +8.361566E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.197843E-01 +1.434827E-02 +8.437264E-02 +2.569811E-03 +1.103891E+00 +7.153760E-01 +4.308994E+00 +4.839398E+00 +5.714286E+00 +6.750719E+00 +1.258551E+00 +5.098425E-01 +6.527455E-01 +1.164772E-01 +8.086924E-01 +2.259358E-01 +9.011204E-02 +3.479554E-03 +3.369886E+00 +2.480226E+00 +2.919336E+00 +2.088649E+00 +2.378050E+00 +1.715263E+00 +6.674360E-01 +1.744526E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.680789E+00 +1.144287E+00 +4.552955E+00 +4.489852E+00 +1.437564E+00 +7.142378E-01 +3.234705E-01 +8.846508E-02 +2.175232E+00 +1.092719E+00 +4.103202E-01 +8.470461E-02 +0.000000E+00 +0.000000E+00 +1.853475E-01 +3.435371E-02 +1.052712E+00 +4.225138E-01 +3.085971E+00 +2.340600E+00 +2.880463E+00 +1.858654E+00 +5.363409E-01 +1.501708E-01 +9.139296E-02 +8.352674E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.507123E-01 +2.271418E-02 +1.339282E+00 +4.656236E-01 +4.906674E+00 +5.217886E+00 +3.087876E+00 +2.437506E+00 +8.916777E-03 +7.950892E-05 +2.824518E-02 +7.977901E-04 +0.000000E+00 +0.000000E+00 +7.713739E-02 +5.950177E-03 +6.251875E-01 +2.055219E-01 +4.039604E-01 +7.463355E-02 +3.426711E-01 +5.326745E-02 +2.683602E-01 +6.063009E-02 +1.846638E-01 +2.687635E-02 +3.624780E-01 +1.313903E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.621874E-01 +4.229418E-01 +1.099406E+00 +6.578946E-01 +5.308277E-01 +1.009121E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.267439E-01 -5.141278E-02 -6.305037E-02 -3.751423E-03 -6.275215E-01 -3.937832E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.394098E+00 -7.405116E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -479,10 +485,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.096899E-01 -4.396987E-02 -2.774706E-02 -7.698995E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -499,8 +501,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.974546E-01 -2.384975E-02 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat index 67622e74e..54cdf89f1 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -9.090848E-01 2.183589E-02 +1.102447E+00 7.056170E-03 tally 1: 0.000000E+00 0.000000E+00 @@ -277,6 +277,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.455587E-01 +1.194108E-01 +5.491443E-02 +3.015594E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -309,6 +313,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.197162E-02 +5.179914E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -341,6 +347,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.604976E-02 +2.575947E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -727,8 +735,4304 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.589207E-02 -2.106082E-03 +7.525171E-02 +5.662820E-03 +1.073075E-01 +1.151490E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.267212E-02 +3.927795E-03 +1.108880E-01 +1.229614E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.353054E-04 +6.977351E-07 +2.372472E-01 +2.848702E-02 +2.548476E-01 +4.367046E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.772100E-01 +2.187938E-02 +7.493226E-01 +1.828061E-01 +2.435524E-01 +4.711427E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.099304E-02 +3.720151E-03 +2.004048E+00 +1.188065E+00 +3.129991E-01 +2.986664E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.299620E-02 +8.468282E-05 +1.048639E-01 +1.099643E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.155649E-03 +5.120332E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.445854E-02 +2.965733E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.147771E-02 +9.908465E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.884852E-01 +7.962353E-02 +5.867779E-01 +1.793277E-01 +1.150562E-01 +1.323793E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.262199E-01 +1.064194E-01 +8.742986E-02 +7.643980E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.960590E-01 +1.231335E-01 +2.156140E-01 +3.612957E-02 +9.941460E-02 +9.384197E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.285531E-01 +1.652591E-02 +1.471896E-02 +2.166477E-04 +2.890978E-01 +8.357755E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.914131E-01 +2.944950E-02 +1.647075E+00 +9.299333E-01 +2.222233E-01 +4.938322E-02 +0.000000E+00 +0.000000E+00 +1.180474E-02 +1.393518E-04 +1.022453E-02 +1.045410E-04 +6.303992E-02 +3.974031E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.518422E-02 +2.041614E-03 +3.381222E-01 +3.980183E-02 +1.557458E-01 +8.146833E-03 +2.642893E-02 +6.984881E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.316047E-01 +5.029141E-02 +3.858085E-01 +1.160218E-01 +4.204735E-02 +1.767980E-03 +1.834910E-01 +3.366896E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.051027E-02 +1.104657E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.294315E-02 +1.675252E-04 +3.944874E-02 +1.556203E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.787999E-02 +7.772938E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.567260E-01 +2.456305E-02 +0.000000E+00 +0.000000E+00 +2.512067E-01 +6.310483E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.709463E-03 +4.501689E-05 +3.771567E-02 +1.422472E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.316348E-01 +5.365469E-02 +8.083327E-03 +6.534017E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.099300E-01 +1.167835E-02 +5.545853E-01 +1.737656E-01 +3.867892E-01 +8.614803E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.323184E-02 +1.104355E-03 +0.000000E+00 +0.000000E+00 +1.507683E-02 +2.273108E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.363444E-02 +7.224796E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.157530E-01 +1.339876E-02 +3.618283E-01 +1.309197E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.285959E-03 +6.865712E-05 +1.313378E+00 +5.513788E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.718986E-02 +2.954913E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.296288E-01 +5.795578E-02 +7.161786E-01 +1.991675E-01 +7.445160E-01 +2.633450E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.177984E-01 +1.675365E-01 +7.019374E-01 +1.644350E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.834216E-01 +1.046386E-01 +3.945703E-02 +1.556857E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.246376E-01 +4.161497E-01 +6.220109E-01 +1.940589E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.387289E-02 +2.819990E-03 +6.155787E-01 +1.274394E-01 +5.052725E-02 +2.319554E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.090801E-01 +4.371451E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.339126E-02 +5.620796E-04 +6.387238E-01 +1.626685E-01 +3.779905E-01 +4.562692E-02 +4.833733E-01 +1.415891E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.684179E-01 +2.231177E-01 +5.853687E-01 +1.084102E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.784202E-02 +7.751779E-04 +2.222881E-02 +4.941200E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.822788E-01 +7.558920E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.217368E-01 +2.483684E-02 +1.466478E-01 +1.270155E-02 +1.285656E-04 +1.652912E-08 +3.178480E-02 +1.010274E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.481850E-01 +6.159578E-02 +2.232447E-01 +2.677357E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.449953E-02 +2.102363E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.645763E-02 +9.304074E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.536373E-01 +2.360442E-02 +9.693646E-01 +3.033065E-01 +3.946779E-01 +6.568242E-02 +1.042143E-01 +1.086063E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.992811E-02 +3.971296E-04 +2.140057E+00 +1.238253E+00 +1.698022E-01 +2.038365E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.427449E-02 +8.929237E-04 +6.652732E-01 +2.415872E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.586629E-02 +5.755693E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.455670E-02 +1.194166E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.651100E-01 +2.656838E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.911969E-01 +4.555906E-02 +6.568479E-01 +1.795652E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.343222E-02 +1.804245E-04 +2.569814E-02 +6.603942E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.470699E-01 +2.162955E-02 +9.856539E-01 +2.416634E-01 +4.077959E-02 +1.255968E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.524918E-02 +5.662438E-03 +1.717303E-01 +1.484790E-02 +6.639556E-01 +2.493087E-01 +4.575248E-01 +1.048110E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.802438E-01 +2.382206E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.428757E-02 +4.132892E-03 +1.902984E-01 +3.621346E-02 +8.210030E-01 +2.428821E-01 +1.405790E-02 +1.976246E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.382237E-02 +1.910579E-04 +8.020721E-01 +2.560767E-01 +1.081172E-02 +1.168933E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.948014E-01 +8.690785E-02 +6.692334E-02 +4.478733E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.906731E-02 +4.770293E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.469410E-02 +2.556178E-03 +1.106087E+00 +5.114564E-01 +1.969939E-02 +3.880658E-04 +3.756472E-03 +1.411108E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.588566E-01 +1.821769E-01 +3.450410E-01 +7.871452E-02 +1.443328E-01 +2.083197E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.868296E-01 +5.481086E-02 +1.188475E-01 +1.412473E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.093336E-01 +4.382056E-02 +4.453526E-02 +1.983389E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.629045E-01 +2.653788E-02 +0.000000E+00 +0.000000E+00 +3.664429E-01 +1.342804E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.598342E-01 +1.489123E-02 +6.017219E-01 +2.662981E-01 +1.755496E-01 +2.703254E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.027682E-02 +6.727755E-03 +3.577032E-01 +8.891660E-02 +1.702927E-02 +2.899959E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.689802E-01 +2.855432E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.010375E-03 +8.118685E-05 +2.267671E-01 +2.573879E-02 +9.806896E-02 +9.617521E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.273906E-01 +1.572310E-02 +1.583595E+00 +1.033645E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.913601E-02 +3.497068E-03 +7.322801E-02 +5.362341E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.292948E-02 +6.877299E-03 +3.787396E-02 +1.434437E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.949505E-03 +2.449760E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.861209E-02 +2.363135E-03 +3.408107E-01 +1.161519E-01 +1.770047E-03 +3.133067E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.287020E-02 +1.837854E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.898461E-03 +6.238568E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.061890E-02 +3.674651E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.323913E-01 +4.809925E-02 +6.786172E-01 +2.239554E-01 +2.667098E-01 +2.391140E-02 +1.409635E-02 +1.987071E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.942849E-02 +3.774662E-04 +2.622051E-01 +5.220350E-02 +3.235576E-01 +5.246702E-02 +6.448711E-01 +1.549424E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.740834E-02 +1.399384E-03 +1.958654E-01 +2.003447E-02 +1.399837E-02 +1.959544E-04 +3.614817E-01 +7.414981E-02 +1.696098E-01 +1.015431E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.078466E-01 +1.163089E-02 +1.397599E-01 +1.953282E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.158374E-02 +1.729207E-03 +2.115379E-01 +4.474830E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.006225E-01 +9.037389E-02 +9.880798E-02 +9.763018E-03 +1.353787E-01 +1.832739E-02 +5.945539E-02 +3.534943E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.653119E-01 +7.039040E-02 +4.392080E-02 +1.929037E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.564746E-04 +4.309589E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.561666E-01 +2.160076E-02 +6.169654E-01 +1.918667E-01 +4.057149E-01 +1.164413E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.478793E-02 +6.144415E-04 +2.499233E-01 +5.915712E-02 +1.483368E-02 +2.200380E-04 +2.989395E-01 +4.649231E-02 +3.455659E-02 +1.194158E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.400244E-03 +5.761172E-06 +3.733464E-01 +1.393875E-01 +1.976972E-02 +3.908419E-04 +6.704194E-01 +2.256237E-01 +2.377531E-01 +2.460351E-02 +0.000000E+00 +0.000000E+00 +1.508621E-01 +2.275936E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.065690E-02 +3.679260E-03 +2.180734E-01 +2.631317E-02 +7.260315E-02 +3.330470E-03 +1.470977E-01 +2.163773E-02 +7.528543E-01 +2.868962E-01 +5.202503E-01 +1.741595E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.187038E-01 +3.142772E-02 +1.895944E-01 +2.049257E-02 +2.864194E-02 +8.203607E-04 +9.568016E-02 +5.337143E-03 +2.980826E-01 +8.610513E-02 +1.094206E+00 +7.586699E-01 +4.533990E-01 +8.701800E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.941168E-02 +1.566312E-03 +5.819380E-01 +1.632552E-01 +3.760498E-02 +1.414135E-03 +0.000000E+00 +0.000000E+00 +4.506052E-01 +2.030450E-01 +3.179351E-02 +1.010827E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.159266E-01 +1.343898E-02 +5.226385E-01 +2.731510E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1041,8 +5345,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.810181E-01 -1.943018E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1075,18 +5377,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.745569E-01 -3.301156E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 2.731890E-01 -7.463221E-02 +7.463223E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.585103E-01 +2.512553E-02 +1.397611E-01 +6.883554E-03 +1.059772E+00 +4.178726E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1109,6 +5415,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.777314E-03 +2.282273E-05 +1.000486E-01 +5.059980E-03 +3.582039E-01 +6.432855E-02 +9.731871E-03 +9.470932E-05 +1.372111E-01 +1.324202E-02 +1.131350E-01 +6.526806E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1133,6 +5451,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.115470E-01 +1.110930E-01 +5.943022E-01 +1.606657E-01 +6.362069E-02 +2.288086E-03 +4.271496E-01 +1.001382E-01 +5.590730E-01 +1.980612E-01 +2.587580E-02 +6.695571E-04 +4.957978E-01 +1.478440E-01 +4.122015E-01 +6.559436E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1153,10 +5487,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.315108E-02 +5.359723E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.413343E-01 +6.576614E-02 +8.189078E-01 +3.886598E-01 +6.218186E-02 +2.320102E-03 +8.994055E-01 +3.484588E-01 +1.907294E-01 +3.637772E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1177,6 +5523,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.411392E-01 +1.368736E-02 +2.806299E-01 +4.304438E-02 +9.034349E-02 +3.010544E-03 +1.457798E-01 +1.214742E-02 +5.355302E-01 +1.674120E-01 +5.378071E-01 +1.611076E-01 +2.173503E-01 +2.791086E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1197,8 +5557,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.888138E-03 +9.777527E-05 +4.328034E-01 +7.018169E-02 +1.783531E-01 +1.043350E-02 0.000000E+00 0.000000E+00 +4.359871E-01 +1.319768E-01 +2.848605E-01 +8.114553E-02 +1.906091E-01 +3.106247E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1211,10 +5583,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.749687E-03 +1.906602E-05 +1.931554E-01 +3.730901E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.672424E-02 +3.217639E-03 +1.788734E-01 +3.199570E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1223,6 +5603,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.138858E-01 +6.550852E-03 +3.629454E-02 +1.317294E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1233,14 +5617,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.486854E-02 +1.023386E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.389407E-01 -1.595676E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1265,16 +5649,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.876298E-01 +8.273087E-02 +8.479551E-02 +7.190278E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.907491E-01 -2.279094E-01 -2.336811E-01 -4.472648E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1297,16 +5681,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.966966E-01 +7.585142E-02 +2.993081E-01 +3.825902E-02 +1.651321E-01 +2.726862E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.908033E-01 -7.557454E-02 -6.288540E-01 -1.326512E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1327,6 +5713,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.632059E-01 +3.716460E-02 +1.055991E-01 +1.115116E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1335,8 +5725,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.091014E-02 -1.673639E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1547,6 +5935,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.197843E-01 +1.434827E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1579,6 +5969,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.313115E-02 +2.118609E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1587,6 +5979,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.124150E-02 +4.512011E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1597,6 +5991,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.259978E-01 +9.120084E-03 +3.029379E-01 +4.720304E-02 +7.711380E-02 +5.946538E-03 +5.578537E-01 +2.228200E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1607,6 +6009,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.998826E-02 +1.599061E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1617,20 +6021,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.916366E-02 -3.134904E-03 -4.865603E-01 -1.180911E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.738231E-01 +3.083875E-01 +8.792963E-02 +7.365684E-03 0.000000E+00 0.000000E+00 -4.800600E-02 -2.304576E-03 +6.859429E-01 +4.381930E-01 +4.475603E-02 +2.003102E-03 0.000000E+00 0.000000E+00 +1.062099E-02 +1.128054E-04 +6.084179E-01 +1.928178E-01 +1.211741E+00 +3.822834E-01 +9.857623E-01 +5.764008E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1651,22 +6065,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.914739E-01 -1.532518E-01 -8.773135E-01 -2.204709E-01 -1.855659E-02 -3.443471E-04 0.000000E+00 0.000000E+00 -8.943203E-03 -7.998089E-05 -3.419252E-02 -1.169128E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.578908E+00 +1.504342E+00 +1.531060E+00 +5.479843E-01 +7.091821E-01 +1.623053E-01 +8.951355E-01 +2.588366E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1693,6 +6105,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.078068E-01 +5.681691E-02 +5.382700E-01 +1.356178E-01 +1.432722E-01 +2.052691E-02 +1.692017E-01 +1.246774E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1717,8 +6137,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.122446E-02 +1.259886E-04 +3.558429E-01 +5.554412E-02 +1.692925E-01 +2.865995E-02 0.000000E+00 0.000000E+00 +1.163856E-01 +1.354561E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1731,6 +6159,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.704844E-02 +2.213555E-03 +5.346674E-01 +9.802160E-02 +2.269765E-01 +3.013916E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1759,6 +6193,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.349738E-02 +2.861969E-03 +2.033921E-02 +2.165773E-04 +1.627545E-02 +1.064467E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1783,6 +6223,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.496326E-02 +2.021695E-03 +6.129324E-01 +1.687388E-01 +2.278420E+00 +1.455838E+00 +4.335699E-01 +1.339468E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1809,18 +6257,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.817151E-01 +5.082293E-02 +1.070149E+00 +2.667041E-01 +1.439164E+00 +9.211140E-01 +1.283074E-01 +1.481969E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.721710E-01 -6.466430E-02 -1.083499E-01 -9.099135E-03 -2.019746E-01 -4.079373E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1841,20 +6291,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.049881E-01 +1.883453E-02 +1.508866E+00 +7.549587E-01 +4.010098E-01 +1.524411E-01 +2.631862E-01 +6.926699E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.008195E-01 -1.016457E-02 -3.669925E+00 -2.917222E+00 -9.397013E-01 -3.618502E-01 -1.564633E-01 -1.042011E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1875,20 +6325,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.295989E-01 +1.440027E-01 +1.090817E-01 +1.189883E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.077922E+00 -4.201997E-01 -1.214218E+00 -3.617486E-01 -2.241499E-03 -5.024317E-06 -6.918747E-02 -4.786906E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1913,12 +6359,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.816209E-02 -1.456345E-03 -1.349124E-01 -9.186049E-03 -7.701033E-02 -4.608092E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2073,6 +6513,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.013002E+00 +7.342944E-01 +1.389340E-01 +1.930266E-02 +3.765825E-01 +1.199979E-01 +1.221292E-01 +6.075446E-03 +3.014078E-02 +8.665341E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2081,12 +6531,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.958692E-01 -9.468103E-02 -1.975910E-01 -3.904222E-02 -1.033274E+00 -6.828182E-01 +2.962754E-03 +8.777912E-06 +3.776620E-01 +5.172631E-02 +4.136599E-01 +9.399949E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2097,6 +6547,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.693384E-01 +2.373996E-01 +1.910629E+00 +1.172406E+00 +2.881727E-01 +5.767501E-02 +4.855482E-02 +1.892682E-03 +6.546034E-01 +2.318763E-01 +1.873724E-01 +3.510840E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2105,6 +6567,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.193374E-01 +1.051560E-01 +7.105558E-01 +3.208231E-01 +7.151171E-03 +5.113925E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2115,14 +6583,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.067038E-01 -5.047096E-02 -9.980964E-03 -6.692276E-05 -2.085328E-01 -2.278714E-02 -4.439471E-02 -1.970890E-03 +2.933512E-03 +8.605494E-06 +1.069486E-02 +1.143799E-04 +8.689115E-02 +7.550072E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2137,6 +6603,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.954092E-04 +8.726658E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2149,8 +6617,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.699938E-02 +7.289665E-04 0.000000E+00 0.000000E+00 +2.961757E-01 +8.772007E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2171,14 +6643,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.077579E-02 -4.316336E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.625541E-01 +3.467106E-02 +1.228650E+00 +3.645409E-01 +3.254588E-01 +4.866345E-02 +3.393231E-01 +7.059711E-02 +1.924584E-02 +3.704024E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2197,18 +6677,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.003127E-02 -3.603753E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.116389E-01 -1.246324E-02 -1.262323E+00 -7.549729E-01 0.000000E+00 0.000000E+00 +2.213353E-01 +4.898934E-02 +9.693731E-02 +9.396841E-03 +4.445791E-02 +1.976506E-03 +4.758963E-02 +2.264773E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2231,18 +6713,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.064320E-02 -4.261416E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.729541E-01 -1.482544E-01 -1.630320E-01 -2.657945E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2263,6 +6739,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.853475E-01 +3.435371E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2273,8 +6751,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.841025E-03 -4.679962E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2293,6 +6769,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.813316E-02 +1.454138E-03 +3.041824E-01 +2.629618E-02 +7.103962E-01 +3.022410E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2319,6 +6801,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.043939E-01 +2.089814E-02 +9.015318E-01 +3.525237E-01 +1.419016E+00 +4.815865E-01 +5.610289E-01 +1.580760E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2345,6 +6835,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.456215E-01 +6.032991E-02 +9.586129E-01 +3.180953E-01 +1.504620E+00 +5.555003E-01 +4.344080E-02 +1.887103E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2371,6 +6869,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.833469E-01 +8.028547E-02 +1.596169E-01 +1.573140E-02 +9.337714E-02 +8.719290E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2395,14 +6899,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.888287E-01 -3.467192E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +9.139296E-02 +8.352674E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2413,8 +6917,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.246536E-02 -3.901921E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2425,12 +6927,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.756796E-02 -1.411352E-03 -1.257573E-01 -1.581491E-02 -3.206767E-01 -1.028336E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2447,8 +6943,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.381825E-02 -5.673093E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2459,10 +6953,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.080085E-01 -9.486923E-02 -1.062049E-01 -1.127948E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2565,6 +7055,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.507123E-01 +2.271418E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2587,6 +7079,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.671004E-01 +3.719394E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2595,18 +7089,34 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.655630E-02 +1.336363E-03 +1.711147E-01 +2.580079E-02 +5.510676E-02 +1.633869E-03 +3.842463E-01 +6.997051E-02 +4.251576E-01 +7.043236E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.664575E-02 -2.770809E-04 -3.844958E-01 -1.478370E-01 0.000000E+00 0.000000E+00 +6.138585E-01 +1.892076E-01 +4.509104E-01 +6.106776E-02 +5.473296E-01 +8.446369E-02 +1.371447E+00 +7.575889E-01 +4.929697E-03 +2.430192E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2615,12 +7125,32 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.501235E-01 +3.140143E-02 +1.212750E+00 +6.220960E-01 +2.707969E-01 +5.067333E-02 +9.097656E-02 +6.115551E-03 +9.355126E-02 +4.387198E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.098030E+00 +7.326929E-01 +6.181269E-01 +2.930526E-01 +5.709431E-01 +1.684348E-01 +3.185796E-01 +7.293711E-02 +1.228362E-02 +1.508873E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2629,20 +7159,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.813618E-01 +8.312020E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +8.855122E-02 +7.841319E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.368420E-02 -1.134625E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +8.916777E-03 +7.950892E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2659,12 +7193,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.500778E-01 -1.824030E-01 -3.751043E-01 -6.960597E-02 -4.889101E-03 -2.390331E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2693,10 +7221,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.552067E-01 -7.965862E-02 -5.884053E-01 -1.128861E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2705,6 +7229,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.824518E-02 +7.977901E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2749,8 +7275,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.540223E-02 -6.452733E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2759,6 +7283,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.713739E-02 +5.950177E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2781,10 +7307,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.203949E-03 -4.857393E-06 -1.906635E-01 -2.524226E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2795,6 +7317,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.251875E-01 +2.055219E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2817,16 +7341,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.924777E-01 -9.702070E-02 -9.586698E-03 -9.190478E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.349067E-02 +2.861252E-03 +8.385996E-02 +4.216710E-03 +2.666097E-01 +5.081994E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2851,14 +7377,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.725983E-02 -5.969081E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.374934E-01 +5.115209E-02 +5.177677E-03 +2.680834E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2889,6 +7417,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.683602E-01 +6.063009E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2919,6 +7449,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.620554E-01 +2.004315E-02 +2.260846E-02 +5.111425E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2947,6 +7481,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.517572E-01 +6.338168E-02 +1.107208E-01 +1.225909E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2973,8 +7511,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.150067E-01 -1.322653E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2989,10 +7525,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.341735E-02 -5.483721E-04 -8.143485E-02 -6.631634E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3007,8 +7539,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.406100E-02 -5.485032E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3023,10 +7553,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.347202E-02 -1.814953E-04 -4.752215E-02 -2.258354E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3047,12 +7573,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.157492E-02 -1.339789E-04 -8.567464E-02 -5.764769E-03 -4.858562E-02 -2.360563E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3085,8 +7605,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.004092E-02 -1.008200E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3151,16 +7669,32 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.337649E-01 +4.427485E-02 +8.822533E-02 +7.783708E-03 +2.279217E-01 +2.627022E-02 +4.122755E-01 +1.699711E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.456669E-02 -2.121884E-04 0.000000E+00 0.000000E+00 +3.702534E-03 +1.370875E-05 +2.384372E-01 +5.685228E-02 +2.211845E-01 +4.083378E-02 +1.896563E-01 +2.817529E-02 +3.458758E-01 +1.196300E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3169,6 +7703,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.005501E-01 +7.885603E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3177,18 +7713,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.177876E-01 -6.984115E-02 -5.414528E-01 -1.217187E-01 -1.235597E-01 -1.225844E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.054580E-02 +1.643962E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3205,18 +7737,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.902819E-01 +8.268688E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.438708E-02 -4.145696E-03 -3.829900E-03 -1.466813E-05 -3.333043E-01 -8.477399E-02 -3.737762E-01 -6.094548E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3237,10 +7763,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.024361E-01 -1.049315E-02 -1.186462E-01 -1.407692E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3271,10 +7793,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.575968E-02 -2.208187E-03 -4.438589E-01 -1.133195E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3311,8 +7829,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.189234E-03 -8.444202E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3345,8 +7861,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.457530E-03 -2.124393E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3357,10 +7871,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.728727E-02 -1.390341E-03 -5.592163E-02 -3.127228E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3389,10 +7899,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.868110E-01 -3.489837E-02 -1.608129E-01 -2.586079E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3533,8 +8039,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.776242E-02 -1.426000E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3557,20 +8061,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.312464E-02 -8.672198E-03 -7.277455E-02 -3.337798E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.793932E-02 -5.547426E-03 -2.005125E-02 -4.020525E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3591,20 +8087,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.885218E-02 -4.740623E-03 -5.102997E-02 -2.604058E-03 -2.413011E-02 -5.822622E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.999624E-01 -2.172553E-02 -2.418161E-02 -4.017912E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3615,8 +8101,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.486695E-01 -1.215704E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3625,12 +8109,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.871991E-01 -3.504350E-02 -4.746788E-01 -8.097271E-02 -8.003839E-01 -2.085673E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3649,10 +8127,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.441534E-02 -8.914256E-03 -2.174907E-02 -4.730221E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3661,10 +8135,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.039618E-01 -5.462503E-03 -5.172396E-01 -1.418615E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3695,10 +8165,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.611614E-03 -9.238313E-05 -4.143274E-02 -1.716672E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3733,10 +8199,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.218092E-01 -4.919934E-02 -1.555359E-02 -2.419141E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3753,14 +8215,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.923037E-01 -8.544147E-02 -1.105886E+00 -4.954938E-01 -1.801721E-01 -1.643267E-02 -4.074186E-02 -1.659899E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3789,12 +8243,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.093595E-01 -4.383141E-02 0.000000E+00 0.000000E+00 -1.830692E-01 -3.351434E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3837,12 +8287,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.557970E-01 -1.315091E-02 -4.836104E-02 -2.338790E-03 -2.542750E-02 -6.465577E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3889,22 +8333,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.114172E-01 -8.463618E-02 -6.482386E-02 -4.202133E-03 0.000000E+00 0.000000E+00 -1.562146E-01 -2.440299E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.075341E-01 -9.457725E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3923,24 +8359,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.987385E-02 -4.216342E-03 -3.775725E-01 -7.128418E-02 -1.229306E-01 -8.980437E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.072363E-01 -4.294688E-02 -7.605871E-01 -2.470259E-01 -2.093299E-01 -4.381902E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3959,10 +8383,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.869734E-01 -6.608107E-02 -3.758837E-01 -7.851736E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3971,8 +8391,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.825953E-03 -4.659364E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3995,10 +8413,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.820587E-01 -7.154947E-02 -6.954661E-01 -3.034029E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4029,8 +8443,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.584679E-02 -2.511207E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4077,8 +8489,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.184233E-02 -5.161321E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4103,4416 +8513,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.294981E-02 -3.962679E-03 -3.572915E-02 -1.276572E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.731687E-02 -5.977899E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.080327E-01 -1.167107E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.026670E-01 -6.339813E-02 -1.542231E-01 -2.378478E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.460357E-02 -1.989478E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.818917E-02 -7.946292E-04 -1.893802E+00 -8.370429E-01 -3.464673E-01 -7.243677E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.758467E-03 -6.019381E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.013752E-01 -3.437520E-02 -2.160993E-02 -3.780757E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.044128E-01 -4.178460E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.580196E-02 -2.405069E-03 -3.180466E-02 -8.211954E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.516279E-03 -3.042934E-05 -2.109966E-01 -4.451955E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.204701E-02 -1.451304E-04 -9.777737E-01 -3.216046E-01 -1.970243E-01 -3.497367E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.022569E-01 -4.090786E-02 -2.829187E-01 -5.992985E-02 -3.909183E-03 -1.528171E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.769412E-02 -7.669642E-04 -2.293319E-01 -2.291139E-02 -5.063929E-01 -8.839948E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.240276E-01 -6.259831E-02 -4.821705E-01 -1.465719E-01 -2.716753E-03 -7.380744E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.007063E-02 -4.909893E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.843153E-01 -8.083519E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.637517E-01 -6.344334E-02 -1.611871E-01 -9.780279E-03 -1.369946E+00 -7.310512E-01 -1.790727E-01 -2.421811E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.358261E-02 -2.750165E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.520557E-02 -3.629997E-03 -3.104068E-01 -3.585841E-02 -8.961225E-01 -3.152521E-01 -8.118983E-02 -6.591789E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.213483E-02 -4.899508E-04 -6.796855E-02 -4.619724E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.636814E-03 -7.459456E-05 -6.558296E-01 -2.206348E-01 -7.105868E-01 -2.014504E-01 -7.356863E-02 -5.412344E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.630097E-01 -2.657217E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.780793E-02 -8.160032E-04 -6.228699E-01 -1.860172E-01 -6.642653E-02 -1.937778E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.694874E-03 -2.204184E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.203382E-01 -1.166708E-02 -3.515349E-01 -1.235768E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.527081E-03 -3.054862E-05 -6.191315E-04 -3.833239E-07 -0.000000E+00 -0.000000E+00 -3.986534E-01 -1.182222E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.697245E-02 -2.880642E-04 -0.000000E+00 -0.000000E+00 -2.839097E-02 -8.060473E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.969731E-02 -8.819302E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.068802E-01 -4.279940E-02 -1.721936E-01 -1.999610E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.805117E-03 -3.258447E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.019718E-01 -1.039824E-02 -2.657993E-01 -4.762038E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.306944E-01 -1.477186E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.023013E-01 -2.462801E-02 -4.590510E-01 -6.395545E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.216151E-01 -2.494977E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.796653E-02 -3.227963E-04 -1.254571E-01 -1.153518E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.798254E-02 -2.302324E-03 -5.031134E-01 -2.531231E-01 -2.554328E+00 -1.871232E+00 -6.528166E-01 -1.601847E-01 -2.396607E-01 -3.096977E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.020566E-02 -2.520608E-03 -2.933276E-01 -2.725757E-02 -1.772073E+00 -7.789301E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.741968E-04 -3.297019E-07 -4.096107E-02 -1.677809E-03 -1.145151E+00 -6.780541E-01 -1.549730E+00 -9.904989E-01 -1.348937E-01 -1.258874E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.310363E-02 -1.857923E-03 -9.519794E-01 -2.619604E-01 -2.722131E-01 -4.120812E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.365154E-01 -5.215993E-02 -1.740307E+00 -9.539805E-01 -4.838221E-01 -8.982260E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.831912E-03 -7.800267E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.594878E-02 -3.130266E-03 -7.245552E-02 -5.249803E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.999607E-02 -2.229669E-03 -1.085851E+00 -3.131386E-01 -2.346814E-02 -3.212775E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.121136E-02 -3.746830E-03 -3.206848E-02 -1.028387E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.912672E-01 -5.254983E-02 -8.701937E-02 -7.572371E-03 -1.700075E-02 -2.890254E-04 -2.993514E-01 -4.786535E-02 -6.764819E-01 -2.492324E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.590925E-01 -2.264019E-02 -2.290539E-01 -5.246570E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.003849E-01 -1.007713E-02 -1.772745E-02 -3.142623E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.289766E-02 -5.314069E-03 -3.618562E-02 -1.309399E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.272864E-02 -1.620182E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.634449E-02 -2.671424E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.212518E-01 -4.895234E-02 -2.100048E-01 -4.410203E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.403382E-02 -5.776247E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.988611E-02 -8.931799E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.859875E-01 -2.705213E-02 -8.910831E-03 -7.940291E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.477605E-01 -1.085632E-02 -2.188892E-01 -1.430397E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.196720E-02 -4.825581E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.912571E-02 -4.778363E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.562066E-01 -6.564182E-02 -1.021109E-01 -1.042665E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.101070E-01 -3.281373E-01 -2.258964E-02 -5.102917E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.242398E-01 -5.028348E-02 -5.303166E-01 -1.259944E-01 -2.813696E-01 -7.586511E-02 -5.980735E-02 -3.576919E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.770640E-01 -3.135167E-02 -8.386975E-02 -7.034135E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.460936E-01 -5.438186E-02 -3.774668E-01 -4.409491E-02 -1.951430E-01 -3.808079E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.308324E-01 -1.711712E-02 -6.446435E-01 -1.469357E-01 -5.953597E-01 -2.237589E-01 -8.752834E-03 -7.661211E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.474912E-01 -4.482820E-02 -2.558944E+00 -1.501846E+00 -2.498522E+00 -2.037541E+00 -4.592114E-01 -9.549920E-02 -2.651761E-03 -7.031834E-06 -6.728509E-03 -4.527283E-05 -7.206739E-02 -2.632777E-03 -1.258432E+00 -5.033118E-01 -8.325623E-01 -3.432848E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.644227E-02 -2.703482E-04 -9.177910E-01 -3.528077E-01 -4.331510E-01 -6.954968E-02 -2.750792E-01 -3.874842E-02 -5.245578E-02 -2.751608E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100342E-01 -8.936587E-03 -1.444636E-01 -1.217721E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.028376E-01 -4.114311E-02 -1.409534E-04 -1.986787E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.252382E-03 -5.073226E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.646738E-02 -2.711747E-04 -1.091128E-02 -1.190561E-04 -9.598634E-03 -5.702904E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.914111E-02 -8.492040E-04 -4.859163E-02 -2.361147E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.204163E-02 -4.858335E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.278990E-01 -1.061206E-01 -2.467626E-01 -3.061051E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.474672E-03 -5.587072E-05 -3.018962E-01 -5.003703E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.148943E-01 -1.583098E-02 -3.145520E-01 -5.430577E-02 -1.094922E-01 -1.198853E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.643295E-01 -6.464662E-02 -3.253838E-01 -5.116839E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.816236E-03 -7.772602E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.571548E-01 -5.132783E-02 -2.087595E-02 -2.190083E-04 -2.648409E-02 -3.512423E-04 -0.000000E+00 -0.000000E+00 -1.332148E-01 -1.774618E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.103340E+00 -1.240889E+00 -8.819452E-01 -3.181477E-01 -3.827031E-01 -1.404169E-01 -0.000000E+00 -0.000000E+00 -3.650407E-02 -1.332547E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.070770E-03 -8.227887E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.160355E-01 -5.419152E-03 -4.555830E-02 -2.075558E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.452794E-02 -1.982737E-03 -7.921897E-02 -6.275645E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.888042E-01 -1.912239E-01 -9.253612E-01 -2.196512E-01 -5.331610E-03 -2.842606E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.088258E-02 -3.706689E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.765580E-01 -1.679632E-02 -1.567743E+00 -1.480433E+00 -1.729034E+00 -1.162221E+00 -2.450066E-01 -5.312041E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.772601E-01 -1.750320E-01 -1.001997E+00 -4.479877E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.198859E-01 -9.794083E-03 -1.970259E-01 -1.355094E-02 -2.437112E-01 -5.939515E-02 -3.383869E-01 -1.145057E-01 -3.802531E-01 -1.445924E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.098808E-01 -4.404995E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.650113E-02 -1.619032E-03 -5.180023E-01 -1.718152E-01 -3.054682E-01 -9.331081E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.290812E-02 -1.666195E-04 -5.118466E-01 -2.619870E-01 -1.379429E-01 -1.766885E-02 -3.568103E-01 -6.413693E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.428902E-01 -2.041760E-02 -2.714910E-01 -7.137827E-02 -6.198367E-01 -1.870530E-01 -5.809933E-01 -2.020653E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.971393E-04 -4.860032E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.689765E-01 -2.855304E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.121427E-02 -3.747187E-03 -1.313244E-01 -9.930563E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.295197E-01 -1.677535E-02 -1.924219E-01 -2.512176E-02 -1.826581E-01 -3.336399E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.963040E-01 -2.117115E-01 -1.954654E-01 -1.664314E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.465142E-02 -3.921415E-04 -9.009686E-02 -8.117444E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.375350E-01 -7.745005E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.296036E-02 -5.271783E-04 -1.185548E-01 -1.257056E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.742732E-02 -5.994990E-03 -4.153920E-01 -8.269451E-02 -1.732018E-01 -2.586439E-02 -0.000000E+00 -0.000000E+00 -3.164105E-02 -1.001156E-03 -4.945695E-01 -1.153516E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.055273E-01 -4.669609E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.766028E-02 -7.650912E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.022896E-02 -2.522948E-03 -2.586997E-01 -6.692555E-02 -1.918447E-02 -3.680440E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.399905E-04 -7.055840E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.895932E-02 -1.517828E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.310985E-01 -5.309190E-02 -0.000000E+00 -0.000000E+00 -6.972879E-02 -4.862104E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.355608E+00 -6.784243E-01 -1.559912E+00 -6.765918E-01 -4.878546E-01 -1.956002E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.239030E-02 -8.535968E-03 -7.362813E-02 -2.487558E-03 -1.539035E-01 -1.472121E-02 -7.239598E-02 -5.241178E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.299792E-01 -9.530852E-02 -3.641896E-02 -1.168215E-03 -3.511255E-01 -1.232891E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.815281E-03 -1.455637E-05 -2.447765E-02 -5.991556E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.509075E-01 -5.120090E-02 -6.346139E-02 -4.027348E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.279297E-02 -8.440309E-05 -1.992059E-01 -3.968299E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.055205E-01 -2.183994E-02 -1.147614E-01 -9.795585E-03 -1.862626E-01 -3.469375E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.923698E+00 -1.294950E+00 -8.345353E-01 -3.317169E-01 -9.485640E-02 -5.815957E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.252805E-03 -5.260317E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.708035E-02 -9.424594E-03 -3.352764E-01 -4.028247E-02 -4.250527E-01 -8.344337E-02 -2.283848E-02 -5.215963E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.151722E-01 -4.629909E-02 -4.760109E-01 -1.931711E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.880574E-01 -4.653885E-02 -3.526314E-01 -4.256262E-02 -1.257097E-01 -1.580294E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.312274E-01 -9.446273E-02 -0.000000E+00 -0.000000E+00 -3.356486E-01 -8.519671E-02 -1.924860E-01 -2.805063E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.025814E-01 -4.103921E-02 -3.047342E-01 -5.638103E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.291473E-01 -1.667902E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.926562E-02 -1.541789E-03 -0.000000E+00 -0.000000E+00 -3.675944E-02 -1.351256E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.030587E-02 -3.636797E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.969216E-03 -8.044683E-05 -2.539237E-01 -3.783876E-02 -6.932239E-02 -4.805594E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.179485E-01 -1.391185E-02 -4.249402E-01 -1.805742E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.537757E-01 -1.696554E-01 -8.876105E-01 -2.032335E-01 -1.666064E-01 -2.775768E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.024841E-01 -2.020292E-01 -2.199558E-01 -3.376160E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.260572E-01 -1.589042E-02 -1.006866E-01 -1.013780E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.305037E-02 -3.751423E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.434563E-02 -1.179623E-03 -5.931758E-01 -3.518576E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.901538E-02 -3.482815E-03 -1.298430E+00 -6.450758E-01 -3.665245E-02 -1.343402E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.020604E-02 -1.041632E-04 -1.994839E-01 -3.979382E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.270281E-03 -5.154175E-06 -2.547678E-02 -6.490664E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.708003E-03 -5.941330E-05 -1.376862E-01 -1.895748E-02 -5.206040E-02 -2.710285E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_infinite_cell/results_true.dat b/tests/test_infinite_cell/results_true.dat index 1cbb83769..d24fba45b 100644 --- a/tests/test_infinite_cell/results_true.dat +++ b/tests/test_infinite_cell/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.757696E-02 3.308939E-03 +9.901399E-02 2.451460E-03 diff --git a/tests/test_lattice/results_true.dat b/tests/test_lattice/results_true.dat index 1d20d33c4..334ccba33 100644 --- a/tests/test_lattice/results_true.dat +++ b/tests/test_lattice/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.682250E-01 3.051607E-02 +9.608917E-01 5.170585E-02 diff --git a/tests/test_lattice_hex/results_true.dat b/tests/test_lattice_hex/results_true.dat index 0b7aa64b4..aca8f5eb5 100644 --- a/tests/test_lattice_hex/results_true.dat +++ b/tests/test_lattice_hex/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.726715E-01 1.182884E-02 +2.578422E-01 1.020501E-02 diff --git a/tests/test_lattice_mixed/results_true.dat b/tests/test_lattice_mixed/results_true.dat index 013e57b25..068ec5abd 100644 --- a/tests/test_lattice_mixed/results_true.dat +++ b/tests/test_lattice_mixed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.012317E+00 2.704182E-02 +9.882168E-01 1.190961E-02 diff --git a/tests/test_lattice_multiple/results_true.dat b/tests/test_lattice_multiple/results_true.dat index bf50a2756..445f1386e 100644 --- a/tests/test_lattice_multiple/results_true.dat +++ b/tests/test_lattice_multiple/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.090848E-01 2.183589E-02 +1.102447E+00 7.056170E-03 diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index c9be10e74..feb234bba 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,19 +1,19 @@ material group in nuclide mean std. dev. -0 1 1 total 0.410245 0.027062 material group in nuclide mean std. dev. -0 1 1 total 0.078746 0.008749 material group in group out nuclide mean std. dev. -0 1 1 1 total 0.344581 0.025142 material group out nuclide mean std. dev. -0 1 1 total 1 0.056776 material group in nuclide mean std. dev. -0 2 1 total 0.24133 0.020122 material group in nuclide mean std. dev. +0 1 1 total 0.411633 0.011133 material group in nuclide mean std. dev. +0 1 1 total 0.076642 0.004088 material group in group out nuclide mean std. dev. +0 1 1 1 total 0.349336 0.010391 material group out nuclide mean std. dev. +0 1 1 total 1 0.035459 material group in nuclide mean std. dev. +0 2 1 total 0.247014 0.017374 material group in nuclide mean std. dev. 0 2 1 total 0 0 material group in group out nuclide mean std. dev. -0 2 1 1 total 0.240146 0.020265 material group out nuclide mean std. dev. -0 2 1 total 0 0 material group in nuclide mean std. dev. -0 3 1 total 0.421036 0.034969 material group in nuclide mean std. dev. +0 2 1 1 total 0.245818 0.016929 material group out nuclide mean std. dev. +0 2 1 total 0 0 material group in nuclide mean std. dev. +0 3 1 total 0.38971 0.050064 material group in nuclide mean std. dev. 0 3 1 total 0 0 material group in group out nuclide mean std. dev. -0 3 1 1 total 0.413828 0.034945 material group out nuclide mean std. dev. +0 3 1 1 total 0.383139 0.04919 material group out nuclide mean std. dev. 0 3 1 total 0 0 material group in nuclide mean std. dev. -0 4 1 total 0.330201 0.044281 material group in nuclide mean std. dev. +0 4 1 total 0.333404 0.029065 material group in nuclide mean std. dev. 0 4 1 total 0 0 material group in group out nuclide mean std. dev. -0 4 1 1 total 0.324648 0.043395 material group out nuclide mean std. dev. +0 4 1 1 total 0.327175 0.028684 material group out nuclide mean std. dev. 0 4 1 total 0 0 material group in nuclide mean std. dev. 0 5 1 total 0 0 material group in nuclide mean std. dev. 0 5 1 total 0 0 material group in group out nuclide mean std. dev. @@ -38,10 +38,10 @@ 0 10 1 total 0 0 material group in nuclide mean std. dev. 0 10 1 total 0 0 material group in group out nuclide mean std. dev. 0 10 1 1 total 0 0 material group out nuclide mean std. dev. -0 10 1 total 0 0 material group in nuclide mean std. dev. -0 11 1 total 0.467451 0.672448 material group in nuclide mean std. dev. +0 10 1 total 0 0 material group in nuclide mean std. dev. +0 11 1 total 0.5826 0.456605 material group in nuclide mean std. dev. 0 11 1 total 0 0 material group in group out nuclide mean std. dev. -0 11 1 1 total 0.444299 0.638051 material group out nuclide mean std. dev. +0 11 1 1 total 0.565899 0.441588 material group out nuclide mean std. dev. 0 11 1 total 0 0 material group in nuclide mean std. dev. 0 12 1 total 0 0 material group in nuclide mean std. dev. 0 12 1 total 0 0 material group in group out nuclide mean std. dev. diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index c86696a58..1c79348c7 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ - sum(distribcell) group in nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 1 total 0 0 sum(distribcell) group out nuclide mean std. dev. + sum(distribcell) group in nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0.651951 1.469284 sum(distribcell) group in nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 1 total 0.53214 1.320678 sum(distribcell) group out nuclide mean std. dev. 0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 836450061..0c30cdde6 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,56 +1,56 @@ domain=1 type=transport -[ 0.37396684 0.80006722] -[ 0.02769982 0.08850146] +[ 0.37483545 0.81182796] +[ 0.00975656 0.09252336] domain=1 type=nu-fission -[ 0.02299634 0.70592004] -[ 0.00148378 0.12890576] +[ 0.02084086 0.6657263 ] +[ 0.00101232 0.0576272 ] domain=1 type=nu-scatter matrix -[[ 0.34086643 0.00069685] - [ 0. 0.37700333]] -[[ 0.02663397 0.0001772 ] - [ 0. 0.06914186]] +[[ 3.42223019e-01 3.29418484e-04] + [ 0.00000000e+00 4.23113552e-01]] +[[ 0.00959152 0.00020181] + [ 0. 0.06751478]] domain=1 type=chi [ 1. 0.] -[ 0.05677619 0. ] +[ 0.03545939 0. ] domain=2 type=transport -[ 0.23796562 0.27436119] -[ 0.02150652 0.05068359] +[ 0.24589766 0.25842474] +[ 0.01860222 0.0422331 ] domain=2 type=nu-fission [ 0. 0.] [ 0. 0.] domain=2 type=nu-scatter matrix -[[ 0.23622579 0.00043496] - [ 0. 0.27436119]] -[[ 0.02164652 0.00043568] - [ 0. 0.05068359]] +[[ 0.24458479 0. ] + [ 0. 0.25842474]] +[[ 0.01809844 0. ] + [ 0. 0.0422331 ]] domain=2 type=chi [ 0. 0.] [ 0. 0.] domain=3 type=transport -[ 0.28810874 1.42423201] -[ 0.03173526 0.17486068] +[ 0.27657178 1.36782402] +[ 0.04377331 0.31728543] domain=3 type=nu-fission [ 0. 0.] [ 0. 0.] domain=3 type=nu-scatter matrix -[[ 0.25843468 0.02889657] - [ 0.00195588 1.36653358]] -[[ 0.03144996 0.0015335 ] - [ 0.00120568 0.17179408]] +[[ 0.24863329 0.02615518] + [ 0. 1.31985949]] +[[ 0.0423232 0.00168668] + [ 0. 0.31396901]] domain=3 type=chi [ 0. 0.] [ 0. 0.] domain=4 type=transport -[ 0.24606392 1.21935024] -[ 0.03881796 0.34515333] +[ 0.25159164 1.13749254] +[ 0.02889307 0.113413 ] domain=4 type=nu-fission [ 0. 0.] [ 0. 0.] domain=4 type=nu-scatter matrix -[[ 0.22348748 0.02170811] - [ 0. 1.16429193]] -[[ 0.03791013 0.00162276] - [ 0. 0.33459821]] +[[ 0.22741674 0.02292717] + [ 0. 1.08230769]] +[[ 0.02822188 0.00123647] + [ 0. 0.11058743]] domain=4 type=chi [ 0. 0.] [ 0. 0.] @@ -139,16 +139,16 @@ domain=10 type=chi [ 0. 0.] [ 0. 0.] domain=11 type=transport -[ 0.43011949 0.85701927] -[ 0.69238877 1.94756366] +[ 0.32838473 1.08549606] +[ 0.42249726 1.10815395] domain=11 type=nu-fission [ 0. 0.] [ 0. 0.] domain=11 type=nu-scatter matrix -[[ 0.40474879 0.02537069] - [ 0. 0.59226474]] -[[ 0.65713809 0.03587957] - [ 0. 1.62427067]] +[[ 0.3032413 0.02514343] + [ 0. 1.03575664]] +[[ 0.40403607 0.02113257] + [ 0. 1.0667609 ]] domain=11 type=chi [ 0. 0.] [ 0. 0.] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index f16afb897..a12693d54 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,42 +1,42 @@ material group in nuclide mean std. dev. -1 1 1 total 0.373967 0.027700 -0 1 2 total 0.800067 0.088501 material group in nuclide mean std. dev. -1 1 1 total 0.022996 0.001484 -0 1 2 total 0.705920 0.128906 material group in group out nuclide mean std. dev. -3 1 1 1 total 0.340866 0.026634 -2 1 1 2 total 0.000697 0.000177 +1 1 1 total 0.374835 0.009757 +0 1 2 total 0.811828 0.092523 material group in nuclide mean std. dev. +1 1 1 total 0.020841 0.001012 +0 1 2 total 0.665726 0.057627 material group in group out nuclide mean std. dev. +3 1 1 1 total 0.342223 0.009592 +2 1 1 2 total 0.000329 0.000202 1 1 2 1 total 0.000000 0.000000 -0 1 2 2 total 0.377003 0.069142 material group out nuclide mean std. dev. -1 1 1 total 1 0.056776 +0 1 2 2 total 0.423114 0.067515 material group out nuclide mean std. dev. +1 1 1 total 1 0.035459 0 1 2 total 0 0.000000 material group in nuclide mean std. dev. -1 2 1 total 0.237966 0.021507 -0 2 2 total 0.274361 0.050684 material group in nuclide mean std. dev. +1 2 1 total 0.245898 0.018602 +0 2 2 total 0.258425 0.042233 material group in nuclide mean std. dev. 1 2 1 total 0 0 0 2 2 total 0 0 material group in group out nuclide mean std. dev. -3 2 1 1 total 0.236226 0.021647 -2 2 1 2 total 0.000435 0.000436 +3 2 1 1 total 0.244585 0.018098 +2 2 1 2 total 0.000000 0.000000 1 2 2 1 total 0.000000 0.000000 -0 2 2 2 total 0.274361 0.050684 material group out nuclide mean std. dev. +0 2 2 2 total 0.258425 0.042233 material group out nuclide mean std. dev. 1 2 1 total 0 0 0 2 2 total 0 0 material group in nuclide mean std. dev. -1 3 1 total 0.288109 0.031735 -0 3 2 total 1.424232 0.174861 material group in nuclide mean std. dev. +1 3 1 total 0.276572 0.043773 +0 3 2 total 1.367824 0.317285 material group in nuclide mean std. dev. 1 3 1 total 0 0 0 3 2 total 0 0 material group in group out nuclide mean std. dev. -3 3 1 1 total 0.258435 0.031450 -2 3 1 2 total 0.028897 0.001533 -1 3 2 1 total 0.001956 0.001206 -0 3 2 2 total 1.366534 0.171794 material group out nuclide mean std. dev. +3 3 1 1 total 0.248633 0.042323 +2 3 1 2 total 0.026155 0.001687 +1 3 2 1 total 0.000000 0.000000 +0 3 2 2 total 1.319859 0.313969 material group out nuclide mean std. dev. 1 3 1 total 0 0 0 3 2 total 0 0 material group in nuclide mean std. dev. -1 4 1 total 0.246064 0.038818 -0 4 2 total 1.219350 0.345153 material group in nuclide mean std. dev. +1 4 1 total 0.251592 0.028893 +0 4 2 total 1.137493 0.113413 material group in nuclide mean std. dev. 1 4 1 total 0 0 0 4 2 total 0 0 material group in group out nuclide mean std. dev. -3 4 1 1 total 0.223487 0.037910 -2 4 1 2 total 0.021708 0.001623 +3 4 1 1 total 0.227417 0.028222 +2 4 1 2 total 0.022927 0.001236 1 4 2 1 total 0.000000 0.000000 -0 4 2 2 total 1.164292 0.334598 material group out nuclide mean std. dev. +0 4 2 2 total 1.082308 0.110587 material group out nuclide mean std. dev. 1 4 1 total 0 0 0 4 2 total 0 0 material group in nuclide mean std. dev. 1 5 1 total 0 0 @@ -99,14 +99,14 @@ 0 10 2 2 total 0 0 material group out nuclide mean std. dev. 1 10 1 total 0 0 0 10 2 total 0 0 material group in nuclide mean std. dev. -1 11 1 total 0.430119 0.692389 -0 11 2 total 0.857019 1.947564 material group in nuclide mean std. dev. +1 11 1 total 0.328385 0.422497 +0 11 2 total 1.085496 1.108154 material group in nuclide mean std. dev. 1 11 1 total 0 0 0 11 2 total 0 0 material group in group out nuclide mean std. dev. -3 11 1 1 total 0.404749 0.657138 -2 11 1 2 total 0.025371 0.035880 +3 11 1 1 total 0.303241 0.404036 +2 11 1 2 total 0.025143 0.021133 1 11 2 1 total 0.000000 0.000000 -0 11 2 2 total 0.592265 1.624271 material group out nuclide mean std. dev. +0 11 2 2 total 1.035757 1.066761 material group out nuclide mean std. dev. 1 11 1 total 0 0 0 11 2 total 0 0 material group in nuclide mean std. dev. 1 12 1 total 0 0 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index c3d109301..6226b7b81 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1,14 +1,14 @@ material group in nuclide mean std. dev. -34 1 1 U-234 0.000164 0.000175 -35 1 1 U-235 0.008231 0.001132 -36 1 1 U-236 0.001233 0.001217 -37 1 1 U-238 0.202077 0.017282 -38 1 1 Np-237 0.000000 0.000000 +34 1 1 U-234 0.000074 0.000188 +35 1 1 U-235 0.007460 0.000634 +36 1 1 U-236 0.001766 0.000430 +37 1 1 U-238 0.211760 0.008955 +38 1 1 Np-237 0.000252 0.000216 39 1 1 Pu-238 0.000000 0.000000 -40 1 1 Pu-239 0.004777 0.001236 -41 1 1 Pu-240 0.005654 0.000687 -42 1 1 Pu-241 0.001077 0.000847 -43 1 1 Pu-242 0.000000 0.000000 +40 1 1 Pu-239 0.003526 0.000782 +41 1 1 Pu-240 0.003507 0.000688 +42 1 1 Pu-241 0.000426 0.000213 +43 1 1 Pu-242 0.000329 0.000329 44 1 1 Am-241 0.000000 0.000000 45 1 1 Am-242m 0.000000 0.000000 46 1 1 Am-243 0.000000 0.000000 @@ -16,34 +16,34 @@ 48 1 1 Cm-243 0.000000 0.000000 49 1 1 Cm-244 0.000000 0.000000 50 1 1 Cm-245 0.000000 0.000000 -51 1 1 Mo-95 0.000563 0.000254 -52 1 1 Tc-99 0.000625 0.000364 -53 1 1 Ru-101 0.000129 0.000180 +51 1 1 Mo-95 0.000081 0.000185 +52 1 1 Tc-99 0.001119 0.000411 +53 1 1 Ru-101 0.000000 0.000000 54 1 1 Ru-103 0.000000 0.000000 -55 1 1 Ag-109 0.000000 0.000000 +55 1 1 Ag-109 0.000165 0.000165 56 1 1 Xe-135 0.000000 0.000000 -57 1 1 Cs-133 0.000352 0.000274 -58 1 1 Nd-143 0.000991 0.000577 -59 1 1 Nd-145 0.000517 0.000369 +57 1 1 Cs-133 0.000429 0.000225 +58 1 1 Nd-143 0.000340 0.000301 +59 1 1 Nd-145 0.000945 0.000432 60 1 1 Sm-147 0.000000 0.000000 61 1 1 Sm-149 0.000000 0.000000 -62 1 1 Sm-150 0.000191 0.000175 -63 1 1 Sm-151 0.000000 0.000000 -64 1 1 Sm-152 0.001106 0.000310 -65 1 1 Eu-153 0.000174 0.000174 +62 1 1 Sm-150 0.000060 0.000195 +63 1 1 Sm-151 0.000165 0.000165 +64 1 1 Sm-152 0.000567 0.000249 +65 1 1 Eu-153 0.000329 0.000202 66 1 1 Gd-155 0.000000 0.000000 -67 1 1 O-16 0.146107 0.011033 +67 1 1 O-16 0.141533 0.006851 0 1 2 U-234 0.000000 0.000000 -1 1 2 U-235 0.175076 0.016125 -2 1 2 U-236 0.000000 0.000000 -3 1 2 U-238 0.216781 0.038123 -4 1 2 Np-237 0.000000 0.000000 +1 1 2 U-235 0.177240 0.019675 +2 1 2 U-236 0.004312 0.003674 +3 1 2 U-238 0.260438 0.055946 +4 1 2 Np-237 0.001791 0.001797 5 1 2 Pu-238 0.000000 0.000000 -6 1 2 Pu-239 0.159673 0.015238 -7 1 2 Pu-240 0.018720 0.005305 -8 1 2 Pu-241 0.022464 0.009775 +6 1 2 Pu-239 0.143305 0.017349 +7 1 2 Pu-240 0.001791 0.001797 +8 1 2 Pu-241 0.016637 0.005253 9 1 2 Pu-242 0.000000 0.000000 -10 1 2 Am-241 0.001872 0.001877 +10 1 2 Am-241 0.000000 0.000000 11 1 2 Am-242m 0.000000 0.000000 12 1 2 Am-243 0.000000 0.000000 13 1 2 Cm-242 0.000000 0.000000 @@ -55,35 +55,35 @@ 19 1 2 Ru-101 0.000000 0.000000 20 1 2 Ru-103 0.000000 0.000000 21 1 2 Ag-109 0.000000 0.000000 -22 1 2 Xe-135 0.014792 0.004201 -23 1 2 Cs-133 0.001872 0.001877 -24 1 2 Nd-143 0.007258 0.003270 -25 1 2 Nd-145 0.003755 0.002966 +22 1 2 Xe-135 0.018241 0.005630 +23 1 2 Cs-133 0.001791 0.001797 +24 1 2 Nd-143 0.007763 0.003677 +25 1 2 Nd-145 0.000000 0.000000 26 1 2 Sm-147 0.000000 0.000000 -27 1 2 Sm-149 0.001872 0.001877 -28 1 2 Sm-150 0.001872 0.001877 -29 1 2 Sm-151 0.003744 0.002309 -30 1 2 Sm-152 0.000000 0.000000 -31 1 2 Eu-153 0.000000 0.000000 +27 1 2 Sm-149 0.005374 0.002238 +28 1 2 Sm-150 0.001791 0.001797 +29 1 2 Sm-151 0.000000 0.000000 +30 1 2 Sm-152 0.001791 0.001797 +31 1 2 Eu-153 0.001791 0.001797 32 1 2 Gd-155 0.000000 0.000000 -33 1 2 O-16 0.170318 0.040164 material group in nuclide mean std. dev. -34 1 1 U-234 7.238811e-06 5.898159e-07 -35 1 1 U-235 1.025668e-02 7.748371e-04 -36 1 1 U-236 8.347436e-05 5.733633e-06 -37 1 1 U-238 7.211700e-03 6.985444e-04 -38 1 1 Np-237 1.316022e-05 1.028609e-06 -39 1 1 Pu-238 7.923472e-06 5.003103e-07 -40 1 1 Pu-239 4.217305e-03 3.227135e-04 -41 1 1 Pu-240 7.114707e-05 5.058746e-06 -42 1 1 Pu-241 1.117266e-03 6.330109e-05 -43 1 1 Pu-242 5.957920e-06 5.003279e-07 -44 1 1 Am-241 1.271200e-06 6.380801e-08 -45 1 1 Am-242m 1.105610e-06 5.834143e-08 -46 1 1 Am-243 8.498728e-07 6.946281e-08 -47 1 1 Cm-242 4.705032e-07 3.420756e-08 -48 1 1 Cm-243 2.054524e-07 1.656685e-08 -49 1 1 Cm-244 3.011697e-07 4.129449e-08 -50 1 1 Cm-245 2.771160e-07 1.432237e-08 +33 1 2 O-16 0.167770 0.025149 material group in nuclide mean std. dev. +34 1 1 U-234 6.845790e-06 3.227706e-07 +35 1 1 U-235 9.347056e-03 3.928662e-04 +36 1 1 U-236 6.211042e-05 2.226027e-06 +37 1 1 U-238 6.351733e-03 3.790179e-04 +38 1 1 Np-237 1.271771e-05 5.545845e-07 +39 1 1 Pu-238 7.663212e-06 4.860133e-07 +40 1 1 Pu-239 3.926921e-03 3.043267e-04 +41 1 1 Pu-240 6.508634e-05 2.793072e-06 +42 1 1 Pu-241 1.050916e-03 6.999147e-05 +43 1 1 Pu-242 5.640937e-06 2.366815e-07 +44 1 1 Am-241 1.047764e-06 4.427465e-08 +45 1 1 Am-242m 9.826994e-07 7.585438e-08 +46 1 1 Am-243 7.721583e-07 4.007024e-08 +47 1 1 Cm-242 5.401883e-07 4.235379e-08 +48 1 1 Cm-243 2.064355e-07 1.860162e-08 +49 1 1 Cm-244 2.918438e-07 2.207478e-08 +50 1 1 Cm-245 3.264085e-07 3.150469e-08 51 1 1 Mo-95 0.000000e+00 0.000000e+00 52 1 1 Tc-99 0.000000e+00 0.000000e+00 53 1 1 Ru-101 0.000000e+00 0.000000e+00 @@ -101,23 +101,23 @@ 65 1 1 Eu-153 0.000000e+00 0.000000e+00 66 1 1 Gd-155 0.000000e+00 0.000000e+00 67 1 1 O-16 0.000000e+00 0.000000e+00 -0 1 2 U-234 4.396211e-07 8.415758e-08 -1 1 2 U-235 3.756376e-01 7.229188e-02 -2 1 2 U-236 6.080198e-06 1.134149e-06 -3 1 2 U-238 5.336844e-07 1.001346e-07 -4 1 2 Np-237 2.578615e-07 4.431602e-08 -5 1 2 Pu-238 3.455264e-05 7.228008e-06 -6 1 2 Pu-239 2.843774e-01 4.965537e-02 -7 1 2 Pu-240 4.575101e-06 7.913823e-07 -8 1 2 Pu-241 4.569839e-02 8.558032e-03 -9 1 2 Pu-242 8.689493e-08 1.642236e-08 -10 1 2 Am-241 5.035346e-06 7.998367e-07 -11 1 2 Am-242m 1.398348e-04 2.569623e-05 -12 1 2 Am-243 7.882610e-08 1.449885e-08 -13 1 2 Cm-242 9.701077e-07 1.841283e-07 -14 1 2 Cm-243 1.830906e-06 3.314797e-07 -15 1 2 Cm-244 1.576930e-07 2.984998e-08 -16 1 2 Cm-245 1.213282e-05 2.473385e-06 +0 1 2 U-234 4.104195e-07 3.065579e-08 +1 1 2 U-235 3.490566e-01 2.635060e-02 +2 1 2 U-236 5.741696e-06 4.389191e-07 +3 1 2 U-238 5.027672e-07 3.822823e-08 +4 1 2 Np-237 2.593520e-07 2.536889e-08 +5 1 2 Pu-238 3.098896e-05 2.214628e-06 +6 1 2 Pu-239 2.727718e-01 2.870084e-02 +7 1 2 Pu-240 4.413447e-06 3.622781e-07 +8 1 2 Pu-241 4.370225e-02 3.791177e-03 +9 1 2 Pu-242 8.159609e-08 6.163540e-09 +10 1 2 Am-241 4.495589e-06 5.183237e-07 +11 1 2 Am-242m 1.349582e-04 1.062926e-05 +12 1 2 Am-243 7.470727e-08 5.781858e-09 +13 1 2 Cm-242 9.093231e-07 6.842831e-08 +14 1 2 Cm-243 1.742377e-06 1.369426e-07 +15 1 2 Cm-244 1.479902e-07 1.116327e-08 +16 1 2 Cm-245 1.099337e-05 7.987632e-07 17 1 2 Mo-95 0.000000e+00 0.000000e+00 18 1 2 Tc-99 0.000000e+00 0.000000e+00 19 1 2 Ru-101 0.000000e+00 0.000000e+00 @@ -135,15 +135,15 @@ 31 1 2 Eu-153 0.000000e+00 0.000000e+00 32 1 2 Gd-155 0.000000e+00 0.000000e+00 33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide mean std. dev. -102 1 1 1 U-234 0.000164 0.000175 -103 1 1 1 U-235 0.003179 0.000940 -104 1 1 1 U-236 0.001058 0.001049 -105 1 1 1 U-238 0.184481 0.016782 -106 1 1 1 Np-237 0.000000 0.000000 +102 1 1 1 U-234 0.000074 0.000188 +103 1 1 1 U-235 0.002518 0.000812 +104 1 1 1 U-236 0.001437 0.000445 +105 1 1 1 U-238 0.192819 0.008439 +106 1 1 1 Np-237 0.000087 0.000182 107 1 1 1 Pu-238 0.000000 0.000000 -108 1 1 1 Pu-239 0.001989 0.000808 -109 1 1 1 Pu-240 0.000950 0.000532 -110 1 1 1 Pu-241 0.000554 0.000524 +108 1 1 1 Pu-239 0.001055 0.000364 +109 1 1 1 Pu-240 0.000378 0.000277 +110 1 1 1 Pu-241 0.000097 0.000178 111 1 1 1 Pu-242 0.000000 0.000000 112 1 1 1 Am-241 0.000000 0.000000 113 1 1 1 Am-242m 0.000000 0.000000 @@ -152,23 +152,23 @@ 116 1 1 1 Cm-243 0.000000 0.000000 117 1 1 1 Cm-244 0.000000 0.000000 118 1 1 1 Cm-245 0.000000 0.000000 -119 1 1 1 Mo-95 0.000388 0.000282 -120 1 1 1 Tc-99 0.000277 0.000203 -121 1 1 1 Ru-101 0.000129 0.000180 +119 1 1 1 Mo-95 0.000081 0.000185 +120 1 1 1 Tc-99 0.000625 0.000394 +121 1 1 1 Ru-101 0.000000 0.000000 122 1 1 1 Ru-103 0.000000 0.000000 123 1 1 1 Ag-109 0.000000 0.000000 124 1 1 1 Xe-135 0.000000 0.000000 -125 1 1 1 Cs-133 0.000004 0.000244 -126 1 1 1 Nd-143 0.000643 0.000505 -127 1 1 1 Nd-145 0.000342 0.000389 +125 1 1 1 Cs-133 0.000265 0.000193 +126 1 1 1 Nd-143 0.000340 0.000301 +127 1 1 1 Nd-145 0.000616 0.000399 128 1 1 1 Sm-147 0.000000 0.000000 129 1 1 1 Sm-149 0.000000 0.000000 -130 1 1 1 Sm-150 0.000191 0.000175 +130 1 1 1 Sm-150 0.000060 0.000195 131 1 1 1 Sm-151 0.000000 0.000000 -132 1 1 1 Sm-152 0.001106 0.000310 +132 1 1 1 Sm-152 0.000567 0.000249 133 1 1 1 Eu-153 0.000000 0.000000 134 1 1 1 Gd-155 0.000000 0.000000 -135 1 1 1 O-16 0.145411 0.010996 +135 1 1 1 O-16 0.141203 0.006870 68 1 1 2 U-234 0.000000 0.000000 69 1 1 2 U-235 0.000000 0.000000 70 1 1 2 U-236 0.000000 0.000000 @@ -202,7 +202,7 @@ 98 1 1 2 Sm-152 0.000000 0.000000 99 1 1 2 Eu-153 0.000000 0.000000 100 1 1 2 Gd-155 0.000000 0.000000 -101 1 1 2 O-16 0.000697 0.000177 +101 1 1 2 O-16 0.000329 0.000202 34 1 2 1 U-234 0.000000 0.000000 35 1 2 1 U-235 0.000000 0.000000 36 1 2 1 U-236 0.000000 0.000000 @@ -238,14 +238,14 @@ 66 1 2 1 Gd-155 0.000000 0.000000 67 1 2 1 O-16 0.000000 0.000000 0 1 2 2 U-234 0.000000 0.000000 -1 1 2 2 U-235 0.012215 0.007232 -2 1 2 2 U-236 0.000000 0.000000 -3 1 2 2 U-238 0.184958 0.030436 +1 1 2 2 U-235 0.017813 0.004846 +2 1 2 2 U-236 0.002521 0.001945 +3 1 2 2 U-238 0.228195 0.049264 4 1 2 2 Np-237 0.000000 0.000000 5 1 2 2 Pu-238 0.000000 0.000000 -6 1 2 2 Pu-239 0.002428 0.001961 +6 1 2 2 Pu-239 0.000000 0.000000 7 1 2 2 Pu-240 0.000000 0.000000 -8 1 2 2 Pu-241 0.000000 0.000000 +8 1 2 2 Pu-241 0.000515 0.002200 9 1 2 2 Pu-242 0.000000 0.000000 10 1 2 2 Am-241 0.000000 0.000000 11 1 2 2 Am-242m 0.000000 0.000000 @@ -259,10 +259,10 @@ 19 1 2 2 Ru-101 0.000000 0.000000 20 1 2 2 Ru-103 0.000000 0.000000 21 1 2 2 Ag-109 0.000000 0.000000 -22 1 2 2 Xe-135 0.003560 0.003090 +22 1 2 2 Xe-135 0.002119 0.003874 23 1 2 2 Cs-133 0.000000 0.000000 -24 1 2 2 Nd-143 0.003514 0.002641 -25 1 2 2 Nd-145 0.000011 0.002640 +24 1 2 2 Nd-143 0.004181 0.002609 +25 1 2 2 Nd-145 0.000000 0.000000 26 1 2 2 Sm-147 0.000000 0.000000 27 1 2 2 Sm-149 0.000000 0.000000 28 1 2 2 Sm-150 0.000000 0.000000 @@ -270,16 +270,16 @@ 30 1 2 2 Sm-152 0.000000 0.000000 31 1 2 2 Eu-153 0.000000 0.000000 32 1 2 2 Gd-155 0.000000 0.000000 -33 1 2 2 O-16 0.170318 0.040164 material group out nuclide mean std. dev. +33 1 2 2 O-16 0.167770 0.025149 material group out nuclide mean std. dev. 34 1 1 U-234 0 0.000000 -35 1 1 U-235 1 0.036464 +35 1 1 U-235 1 0.083157 36 1 1 U-236 1 1.414214 -37 1 1 U-238 1 0.232666 +37 1 1 U-238 1 0.175094 38 1 1 Np-237 0 0.000000 39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.106688 +40 1 1 Pu-239 1 0.080013 41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.317035 +42 1 1 Pu-241 1 0.272314 43 1 1 Pu-242 0 0.000000 44 1 1 Am-241 0 0.000000 45 1 1 Am-242m 0 0.000000 @@ -339,16 +339,16 @@ 31 1 2 Eu-153 0 0.000000 32 1 2 Gd-155 0 0.000000 33 1 2 O-16 0 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0.107693 0.014218 -6 2 1 Zr-91 0.035302 0.006932 -7 2 1 Zr-92 0.045224 0.003966 -8 2 1 Zr-94 0.043310 0.007048 -9 2 1 Zr-96 0.006437 0.001752 -0 2 2 Zr-90 0.134757 0.026961 -1 2 2 Zr-91 0.040725 0.010553 -2 2 2 Zr-92 0.014433 0.019906 -3 2 2 Zr-94 0.074322 0.020213 -4 2 2 Zr-96 0.010124 0.008870 material group in nuclide mean std. dev. +5 2 1 Zr-90 0.123212 0.010296 +6 2 1 Zr-91 0.041136 0.005109 +7 2 1 Zr-92 0.038640 0.004343 +8 2 1 Zr-94 0.039928 0.006609 +9 2 1 Zr-96 0.002982 0.001882 +0 2 2 Zr-90 0.103289 0.030798 +1 2 2 Zr-91 0.064487 0.017642 +2 2 2 Zr-92 0.035554 0.022411 +3 2 2 Zr-94 0.052741 0.014095 +4 2 2 Zr-96 0.002354 0.004958 material group in nuclide mean std. dev. 5 2 1 Zr-90 0 0 6 2 1 Zr-91 0 0 7 2 1 Zr-92 0 0 @@ -359,26 +359,26 @@ 2 2 2 Zr-92 0 0 3 2 2 Zr-94 0 0 4 2 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -15 2 1 1 Zr-90 0.107693 0.014218 -16 2 1 1 Zr-91 0.034432 0.007212 -17 2 1 1 Zr-92 0.044789 0.004020 -18 2 1 1 Zr-94 0.042875 0.007257 -19 2 1 1 Zr-96 0.006437 0.001752 +15 2 1 1 Zr-90 0.123212 0.010296 +16 2 1 1 Zr-91 0.040260 0.004742 +17 2 1 1 Zr-92 0.038640 0.004343 +18 2 1 1 Zr-94 0.039490 0.006845 +19 2 1 1 Zr-96 0.002982 0.001882 10 2 1 2 Zr-90 0.000000 0.000000 11 2 1 2 Zr-91 0.000000 0.000000 12 2 1 2 Zr-92 0.000000 0.000000 -13 2 1 2 Zr-94 0.000435 0.000436 +13 2 1 2 Zr-94 0.000000 0.000000 14 2 1 2 Zr-96 0.000000 0.000000 5 2 2 1 Zr-90 0.000000 0.000000 6 2 2 1 Zr-91 0.000000 0.000000 7 2 2 1 Zr-92 0.000000 0.000000 8 2 2 1 Zr-94 0.000000 0.000000 9 2 2 1 Zr-96 0.000000 0.000000 -0 2 2 2 Zr-90 0.134757 0.026961 -1 2 2 2 Zr-91 0.040725 0.010553 -2 2 2 2 Zr-92 0.014433 0.019906 -3 2 2 2 Zr-94 0.074322 0.020213 -4 2 2 2 Zr-96 0.010124 0.008870 material group out nuclide mean std. dev. +0 2 2 2 Zr-90 0.103289 0.030798 +1 2 2 2 Zr-91 0.064487 0.017642 +2 2 2 2 Zr-92 0.035554 0.022411 +3 2 2 2 Zr-94 0.052741 0.014095 +4 2 2 2 Zr-96 0.002354 0.004958 material group out nuclide mean std. dev. 5 2 1 Zr-90 0 0 6 2 1 Zr-91 0 0 7 2 1 Zr-92 0 0 @@ -389,14 +389,14 @@ 2 2 2 Zr-92 0 0 3 2 2 Zr-94 0 0 4 2 2 Zr-96 0 0 material group in nuclide mean std. dev. -4 3 1 H-1 0.211941 0.029479 -5 3 1 O-16 0.075510 0.004901 -6 3 1 B-10 0.000648 0.000291 -7 3 1 B-11 0.000009 0.000177 -0 3 2 H-1 1.268594 0.168369 -1 3 2 O-16 0.105889 0.012655 -2 3 2 B-10 0.047919 0.009174 -3 3 2 B-11 0.001830 0.001303 material group in nuclide mean std. dev. +4 3 1 H-1 0.201049 0.041488 +5 3 1 O-16 0.074334 0.007160 +6 3 1 B-10 0.001189 0.000730 +7 3 1 B-11 0.000000 0.000000 +0 3 2 H-1 1.231384 0.305890 +1 3 2 O-16 0.097440 0.020608 +2 3 2 B-10 0.037686 0.008653 +3 3 2 B-11 0.001313 0.001766 material group in nuclide mean std. dev. 4 3 1 H-1 0 0 5 3 1 O-16 0 0 6 3 1 B-10 0 0 @@ -405,22 +405,22 @@ 1 3 2 O-16 0 0 2 3 2 B-10 0 0 3 3 2 B-11 0 0 material group in group out nuclide mean std. dev. -12 3 1 1 H-1 0.183045 0.029114 -13 3 1 1 O-16 0.075381 0.004923 +12 3 1 1 H-1 0.174497 0.040671 +13 3 1 1 O-16 0.074136 0.007210 14 3 1 1 B-10 0.000000 0.000000 -15 3 1 1 B-11 0.000009 0.000177 -8 3 1 2 H-1 0.028897 0.001533 +15 3 1 1 B-11 0.000000 0.000000 +8 3 1 2 H-1 0.026155 0.001687 9 3 1 2 O-16 0.000000 0.000000 10 3 1 2 B-10 0.000000 0.000000 11 3 1 2 B-11 0.000000 0.000000 -4 3 2 1 H-1 0.000978 0.000980 -5 3 2 1 O-16 0.000978 0.000980 +4 3 2 1 H-1 0.000000 0.000000 +5 3 2 1 O-16 0.000000 0.000000 6 3 2 1 B-10 0.000000 0.000000 7 3 2 1 B-11 0.000000 0.000000 -0 3 2 2 H-1 1.259793 0.167200 -1 3 2 2 O-16 0.104911 0.012500 +0 3 2 2 H-1 1.221106 0.302782 +1 3 2 2 O-16 0.097440 0.020608 2 3 2 2 B-10 0.000000 0.000000 -3 3 2 2 B-11 0.001830 0.001303 material group out nuclide mean std. dev. +3 3 2 2 B-11 0.001313 0.001766 material group out nuclide mean std. dev. 4 3 1 H-1 0 0 5 3 1 O-16 0 0 6 3 1 B-10 0 0 @@ -429,13 +429,13 @@ 1 3 2 O-16 0 0 2 3 2 B-10 0 0 3 3 2 B-11 0 0 material group in nuclide mean std. dev. -4 4 1 H-1 0.174218 0.038828 -5 4 1 O-16 0.070445 0.006116 -6 4 1 B-10 0.000868 0.000356 -7 4 1 B-11 0.000533 0.000379 -0 4 2 H-1 1.101947 0.312129 -1 4 2 O-16 0.074580 0.031899 -2 4 2 B-10 0.042823 0.011148 +4 4 1 H-1 0.178673 0.023950 +5 4 1 O-16 0.071869 0.007853 +6 4 1 B-10 0.000624 0.000158 +7 4 1 B-11 0.000425 0.000318 +0 4 2 H-1 1.010325 0.104936 +1 4 2 O-16 0.079647 0.012666 +2 4 2 B-10 0.047520 0.003811 3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. 4 4 1 H-1 0 0 5 4 1 O-16 0 0 @@ -445,20 +445,20 @@ 1 4 2 O-16 0 0 2 4 2 B-10 0 0 3 4 2 B-11 0 0 material group in group out nuclide mean std. dev. -12 4 1 1 H-1 0.152799 0.038054 -13 4 1 1 O-16 0.070155 0.006104 +12 4 1 1 H-1 0.155278 0.023436 +13 4 1 1 O-16 0.071713 0.007769 14 4 1 1 B-10 0.000000 0.000000 -15 4 1 1 B-11 0.000533 0.000379 -8 4 1 2 H-1 0.021419 0.001438 -9 4 1 2 O-16 0.000289 0.000290 +15 4 1 1 B-11 0.000425 0.000318 +8 4 1 2 H-1 0.022927 0.001236 +9 4 1 2 O-16 0.000000 0.000000 10 4 1 2 B-10 0.000000 0.000000 11 4 1 2 B-11 0.000000 0.000000 4 4 2 1 H-1 0.000000 0.000000 5 4 2 1 O-16 0.000000 0.000000 6 4 2 1 B-10 0.000000 0.000000 7 4 2 1 B-11 0.000000 0.000000 -0 4 2 2 H-1 1.089712 0.310379 -1 4 2 2 O-16 0.074580 0.031899 +0 4 2 2 H-1 1.002661 0.104168 +1 4 2 2 O-16 0.079647 0.012666 2 4 2 2 B-10 0.000000 0.000000 3 4 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. 4 4 1 H-1 0 0 @@ -1789,23 +1789,23 @@ 18 10 2 Cr-52 0 0 19 10 2 Cr-53 0 0 20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. -9 11 1 H-1 0.143342 0.405094 -10 11 1 O-16 0.048701 0.059664 +9 11 1 H-1 0.170249 0.307631 +10 11 1 O-16 0.059703 0.040511 11 11 1 B-10 0.000000 0.000000 12 11 1 B-11 0.000000 0.000000 -13 11 1 Zr-90 0.140978 0.178138 -14 11 1 Zr-91 0.000000 0.000000 -15 11 1 Zr-92 0.057496 0.076982 -16 11 1 Zr-94 0.039602 0.049138 +13 11 1 Zr-90 0.048335 0.045106 +14 11 1 Zr-91 0.021080 0.020176 +15 11 1 Zr-92 0.015959 0.020345 +16 11 1 Zr-94 0.013058 0.019576 17 11 1 Zr-96 0.000000 0.000000 -0 11 2 H-1 0.570204 1.298303 -1 11 2 O-16 0.022061 0.359836 -2 11 2 B-10 0.264755 0.374419 +0 11 2 H-1 0.899793 0.954128 +1 11 2 O-16 0.075037 0.081039 +2 11 2 B-10 0.033160 0.038885 3 11 2 B-11 0.000000 0.000000 -4 11 2 Zr-90 0.000000 0.000000 -5 11 2 Zr-91 0.000000 0.000000 -6 11 2 Zr-92 0.000000 0.000000 -7 11 2 Zr-94 0.000000 0.000000 +4 11 2 Zr-90 0.016580 0.019443 +5 11 2 Zr-91 0.018732 0.020277 +6 11 2 Zr-92 0.026213 0.025010 +7 11 2 Zr-94 0.015981 0.019263 8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. 9 11 1 H-1 0 0 10 11 1 O-16 0 0 @@ -1825,16 +1825,16 @@ 6 11 2 Zr-92 0 0 7 11 2 Zr-94 0 0 8 11 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -27 11 1 1 H-1 0.117971 0.376005 -28 11 1 1 O-16 0.048701 0.059664 +27 11 1 1 H-1 0.145106 0.291322 +28 11 1 1 O-16 0.059703 0.040511 29 11 1 1 B-10 0.000000 0.000000 30 11 1 1 B-11 0.000000 0.000000 -31 11 1 1 Zr-90 0.140978 0.178138 -32 11 1 1 Zr-91 0.000000 0.000000 -33 11 1 1 Zr-92 0.057496 0.076982 -34 11 1 1 Zr-94 0.039602 0.049138 +31 11 1 1 Zr-90 0.048335 0.045106 +32 11 1 1 Zr-91 0.021080 0.020176 +33 11 1 1 Zr-92 0.015959 0.020345 +34 11 1 1 Zr-94 0.013058 0.019576 35 11 1 1 Zr-96 0.000000 0.000000 -18 11 1 2 H-1 0.025371 0.035880 +18 11 1 2 H-1 0.025143 0.021133 19 11 1 2 O-16 0.000000 0.000000 20 11 1 2 B-10 0.000000 0.000000 21 11 1 2 B-11 0.000000 0.000000 @@ -1852,14 +1852,14 @@ 15 11 2 1 Zr-92 0.000000 0.000000 16 11 2 1 Zr-94 0.000000 0.000000 17 11 2 1 Zr-96 0.000000 0.000000 -0 11 2 2 H-1 0.570204 1.298303 -1 11 2 2 O-16 0.022061 0.359836 +0 11 2 2 H-1 0.899793 0.954128 +1 11 2 2 O-16 0.075037 0.081039 2 11 2 2 B-10 0.000000 0.000000 3 11 2 2 B-11 0.000000 0.000000 4 11 2 2 Zr-90 0.000000 0.000000 -5 11 2 2 Zr-91 0.000000 0.000000 -6 11 2 2 Zr-92 0.000000 0.000000 -7 11 2 2 Zr-94 0.000000 0.000000 +5 11 2 2 Zr-91 0.018732 0.020277 +6 11 2 2 Zr-92 0.026213 0.025010 +7 11 2 2 Zr-94 0.015981 0.019263 8 11 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. 9 11 1 H-1 0 0 10 11 1 O-16 0 0 diff --git a/tests/test_natural_element/results_true.dat b/tests/test_natural_element/results_true.dat index 47b49b144..444f0df4f 100644 --- a/tests/test_natural_element/results_true.dat +++ b/tests/test_natural_element/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.000870E+00 2.861252E-02 +9.693693E-01 1.054925E-01 diff --git a/tests/test_output/results_true.dat b/tests/test_output/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_output/results_true.dat +++ b/tests/test_output/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_particle_restart_eigval/results_true.dat b/tests/test_particle_restart_eigval/results_true.dat index a0cced44c..c68f4864e 100644 --- a/tests/test_particle_restart_eigval/results_true.dat +++ b/tests/test_particle_restart_eigval/results_true.dat @@ -3,14 +3,14 @@ current batch: current gen: 1.000000E+00 particle id: -5.730000E+02 +6.850000E+02 run mode: k-eigenvalue particle weight: 1.000000E+00 particle energy: -4.522511E+00 +5.680443E-01 particle xyz: --3.306412E+01 -1.396998E+01 5.715368E+01 +-4.117903E+01 4.165935E+01 4.265251E+01 particle uvw: --6.019192E-01 -6.419527E-01 4.749632E-01 +1.106369E-01 -5.940833E-01 7.967587E-01 diff --git a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py index f022c0cce..6b98d3bbd 100644 --- a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py +++ b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py @@ -7,5 +7,5 @@ from testing_harness import ParticleRestartTestHarness if __name__ == '__main__': - harness = ParticleRestartTestHarness('particle_11_573.*') + harness = ParticleRestartTestHarness('particle_11_685.*') harness.main() diff --git a/tests/test_quadric_surfaces/results_true.dat b/tests/test_quadric_surfaces/results_true.dat index a8b0ec11b..b90b7e71a 100644 --- a/tests/test_quadric_surfaces/results_true.dat +++ b/tests/test_quadric_surfaces/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.013363E+00 4.701127E-03 +1.006356E+00 7.889455E-03 diff --git a/tests/test_reflective_plane/results_true.dat b/tests/test_reflective_plane/results_true.dat index 1ccd430f6..ad23f3c9f 100644 --- a/tests/test_reflective_plane/results_true.dat +++ b/tests/test_reflective_plane/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.274474E+00 9.235910E-03 +2.284154E+00 3.063055E-03 diff --git a/tests/test_resonance_scattering/results_true.dat b/tests/test_resonance_scattering/results_true.dat index eaad05767..43ef00939 100644 --- a/tests/test_resonance_scattering/results_true.dat +++ b/tests/test_resonance_scattering/results_true.dat @@ -1,2 +1,2 @@ k-combined: -6.842156E-02 8.481004E-04 +6.842177E-02 8.480479E-04 diff --git a/tests/test_rotation/results_true.dat b/tests/test_rotation/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_rotation/results_true.dat +++ b/tests/test_rotation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_salphabeta/results_true.dat b/tests/test_salphabeta/results_true.dat index 8c3d0341c..77bbb266f 100644 --- a/tests/test_salphabeta/results_true.dat +++ b/tests/test_salphabeta/results_true.dat @@ -1,2 +1,2 @@ k-combined: -8.339490E-01 3.462133E-03 +8.103883E-01 1.688384E-02 diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 4aeb9b16c..054fa5c00 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -57847fd9bf48a1be56d2ea891adbdd29d8277672bef65271cb021e0027aa4bcb8024ae915422abb7dfcceb7a688daf598d3a8476c5f454f45f45cca682f13502 \ No newline at end of file +5e2576ac4c3b21d6acd1b308a3683ec274051d864ea9305ad59e2c8fa071ce33f591dfc05bae2321d0f98dce1fb882b54c64d5471056cd053953fc8f7bd2af62 \ No newline at end of file diff --git a/tests/test_seed/results_true.dat b/tests/test_seed/results_true.dat index 3ef545ede..b09bdf863 100644 --- a/tests/test_seed/results_true.dat +++ b/tests/test_seed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.977739E-01 4.992896E-03 +2.994082E-01 3.643057E-03 diff --git a/tests/test_source/results_true.dat b/tests/test_source/results_true.dat index 0c85ba194..2a78dd7a5 100644 --- a/tests/test_source/results_true.dat +++ b/tests/test_source/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.971106E-01 8.263510E-03 +3.054797E-01 3.094015E-03 diff --git a/tests/test_source_file/results_true.dat b/tests/test_source_file/results_true.dat index b32c85631..51161b3a6 100644 --- a/tests/test_source_file/results_true.dat +++ b/tests/test_source_file/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.967126E-01 5.952317E-04 +2.996134E-01 2.910656E-03 diff --git a/tests/test_sourcepoint_latest/results_true.dat b/tests/test_sourcepoint_latest/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_sourcepoint_latest/results_true.dat +++ b/tests/test_sourcepoint_latest/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_sourcepoint_restart/results_true.dat b/tests/test_sourcepoint_restart/results_true.dat index a03d8885b..8d848b4cf 100644 --- a/tests/test_sourcepoint_restart/results_true.dat +++ b/tests/test_sourcepoint_restart/results_true.dat @@ -1,16 +1,66 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 tally 1: +1.300000E-02 +4.300000E-05 +5.553260E-03 +1.267186E-05 +2.953436E-03 +6.351136E-06 +2.295617E-03 +4.617429E-06 +6.420875E-03 +9.259556E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.500000E-02 -6.100000E-05 -6.140730E-03 -1.827778E-05 -5.466817E-03 -1.172967E-05 -4.386203E-03 -6.988762E-06 -7.799017E-03 -1.730653E-05 +5.100000E-05 +8.675993E-03 +1.761431E-05 +3.327517E-03 +4.194966E-06 +7.274324E-04 +2.158075E-06 +6.423659E-03 +1.003735E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.071818E-04 +9.436064E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -29,30 +79,258 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.982678E-04 -3.579243E-07 +0.000000E+00 +0.000000E+00 +4.000000E-03 +1.000000E-05 +2.838403E-04 +8.774323E-07 +-4.663243E-04 +9.976861E-07 +5.379858E-04 +2.458806E-07 +1.830193E-03 +1.871531E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.200000E-05 +7.892468E-03 +1.531545E-05 +5.418392E-03 +6.620060E-06 +4.884861E-03 +5.600362E-06 +7.948555E-03 +1.365782E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.120582E-04 +2.773023E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.014657E-04 +3.617610E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +1.020000E-04 +6.418727E-03 +9.985775E-06 +6.251711E-03 +1.053337E-05 +4.720285E-03 +7.809860E-06 +9.455548E-03 +2.200500E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +2.000000E-03 +4.000000E-06 +1.977646E-03 +3.911083E-06 +1.933313E-03 +3.737699E-06 +1.867746E-03 +3.488475E-06 +3.068374E-04 +9.414918E-08 +6.000000E-03 +1.400000E-05 +1.048233E-03 +1.572686E-06 +1.209182E-05 +5.233234E-09 +1.086944E-03 +4.015851E-07 +3.362867E-03 +3.082582E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-03 +3.000000E-06 +2.874586E-03 +2.757041E-06 +2.635561E-03 +2.337016E-06 +2.305139E-03 +1.846818E-06 +1.227985E-03 +5.657187E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.143635E-04 +3.774426E-07 1.000000E-03 1.000000E-06 -9.657483E-04 -9.326697E-07 -8.990046E-04 -8.082092E-07 -8.031880E-04 -6.451110E-07 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 --3.133071E-05 -2.698671E-06 -2.623750E-04 -1.344791E-06 --2.483720E-03 -1.649588E-06 -3.294650E-03 -2.242064E-06 +9.888336E-04 +9.777919E-07 +9.666878E-04 +9.344854E-07 +9.339333E-04 +8.722314E-07 0.000000E+00 0.000000E+00 +1.800000E-02 +6.600000E-05 +3.521497E-03 +1.124575E-05 +-1.106505E-03 +1.298962E-06 +2.307061E-03 +1.995982E-06 +7.955988E-03 +1.333038E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -61,16 +339,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.204584E-04 +2.824254E-07 1.000000E-03 1.000000E-06 -6.245980E-04 -3.901227E-07 -8.518403E-05 -7.256319E-09 --3.277224E-04 -1.074020E-07 -2.989325E-04 -8.936066E-08 +-2.015923E-04 +4.063947E-08 +-4.390408E-04 +1.927568E-07 +2.819070E-04 +7.947154E-08 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -81,16 +361,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.000000E-03 -1.100000E-05 -2.955972E-03 -4.718865E-06 -2.296283E-03 -1.893728E-06 -1.374242E-03 -1.154127E-06 -4.505145E-03 -6.063009E-06 +9.000000E-03 +2.300000E-05 +8.049890E-04 +1.664654E-06 +2.892684E-03 +4.445095E-06 +5.132099E-04 +7.081387E-07 +3.678767E-03 +3.207908E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -99,98 +379,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.230000E-04 -4.489511E-03 -2.028537E-05 -1.946623E-03 -1.610367E-06 -1.647952E-03 -1.769319E-06 -1.077022E-02 -2.893664E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.000807E-04 -2.700544E-07 +6.136210E-04 +1.882762E-07 1.000000E-03 1.000000E-06 --9.045723E-04 -8.182510E-07 -7.273765E-04 -5.290766E-07 --4.935596E-04 -2.436011E-07 -2.989325E-04 -8.936066E-08 +3.974827E-04 +1.579925E-07 +-2.630113E-04 +6.917494E-08 +-4.392258E-04 +1.929193E-07 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -201,16 +401,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.900000E-02 -1.050000E-04 -2.386082E-03 -3.497107E-06 -4.555769E-03 -1.058977E-05 -1.879180E-03 -5.304853E-06 -7.792317E-03 -1.670472E-05 +5.000000E-03 +9.000000E-06 +2.095603E-03 +4.046946E-06 +2.670798E-03 +2.492128E-06 +1.379100E-04 +2.471643E-06 +2.750651E-03 +2.153957E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -219,8 +419,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.198624E-03 -3.591835E-07 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.014657E-04 +3.617610E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -241,158 +451,126 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +4.200000E-05 +5.756515E-03 +9.296704E-06 +1.251623E-03 +5.182413E-06 +2.207579E-03 +5.475159E-06 +5.492134E-03 +6.869563E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.310000E-04 +8.875791E-03 +3.047020E-05 +5.194493E-03 +1.122408E-05 +2.565521E-03 +5.889229E-06 +9.193064E-03 +2.295619E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.539123E-03 +8.532105E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.021986E-04 +8.139623E-07 1.000000E-03 1.000000E-06 -3.327793E-04 -1.107421E-07 --3.338869E-04 -1.114804E-07 --4.070373E-04 -1.656794E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -2.400000E-05 -5.261857E-03 -7.471221E-06 -5.280154E-03 -9.529481E-06 -5.060306E-03 -6.646531E-06 -6.894561E-03 -1.267269E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.000000E-03 -1.800000E-05 --2.025476E-04 -1.858789E-06 --6.686398E-04 -1.065456E-06 -6.586587E-04 -4.841450E-07 -2.994327E-03 -2.684002E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +9.693968E-04 +9.397302E-07 +9.095953E-04 +8.273636E-07 +8.233334E-04 +6.778780E-07 0.000000E+00 0.000000E+00 +2.800000E-02 +1.820000E-04 +8.903131E-03 +2.397214E-05 +1.010587E-02 +2.531134E-05 +4.754028E-03 +9.649119E-06 +1.378015E-02 +4.259630E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -401,116 +579,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.208028E-04 +2.826368E-07 1.000000E-03 1.000000E-06 -9.104915E-04 -8.289948E-07 -7.434921E-04 -5.527806E-07 -5.212445E-04 -2.716958E-07 -1.201894E-03 -7.222931E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 --5.260403E-04 -2.767184E-07 --8.492233E-05 -7.211803E-09 -4.251479E-04 -1.807507E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.400000E-02 -3.540000E-04 -1.553475E-02 -6.367842E-05 -1.520994E-02 -7.741012E-05 -8.930877E-03 -2.739654E-05 -1.405733E-02 -6.608052E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.031624E-04 -4.543315E-07 -1.000000E-03 -1.000000E-06 --2.223524E-04 -4.944060E-08 --4.258391E-04 -1.813389E-07 -3.060456E-04 -9.366388E-08 -6.040285E-04 -3.648505E-07 +-4.279762E-04 +1.831637E-07 +-2.252545E-04 +5.073960E-08 +4.459901E-04 +1.989072E-07 +6.089759E-04 +3.708516E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -522,15 +602,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.200000E-02 -3.400000E-05 -3.889614E-03 -6.587628E-06 -2.115055E-03 -3.167536E-06 -3.463231E-04 -5.504681E-06 -5.710120E-03 -1.043566E-05 +4.000000E-05 +4.239853E-03 +1.158537E-05 +1.052249E-03 +2.609268E-06 +1.581467E-03 +5.643069E-07 +6.112773E-03 +1.209962E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -539,8 +619,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.981320E-04 -8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -561,18 +639,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.600000E-02 -5.600000E-05 -3.164928E-03 -1.114752E-05 -3.143660E-03 -3.198813E-06 -1.287643E-03 -7.268133E-07 -8.988217E-03 -1.652319E-05 0.000000E+00 0.000000E+00 +3.800000E-02 +2.980000E-04 +1.590359E-02 +8.465362E-05 +1.095039E-02 +3.846682E-05 +8.674652E-03 +2.116226E-05 +1.953871E-02 +7.808840E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -581,16 +659,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.000000E-03 -1.000000E-06 -9.617800E-04 -9.250208E-07 -8.875312E-04 -7.877116E-07 -7.814962E-04 -6.107364E-07 -2.981320E-04 -8.888272E-08 +6.098660E-04 +1.860035E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -601,676 +671,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.000000E-03 -1.400000E-05 -2.562256E-03 -5.938938E-06 -3.215552E-03 -2.429308E-06 -2.809239E-03 -2.320949E-06 -2.396627E-03 -1.615072E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015597E-04 -1.809401E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.100000E-02 -2.150000E-04 -1.898034E-02 -7.784899E-05 -1.264567E-02 -4.010917E-05 -8.079721E-03 -1.493258E-05 -1.529918E-02 -5.419874E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.966100E-04 -2.679708E-07 -1.000000E-03 -1.000000E-06 -1.982438E-04 -3.930062E-08 --4.410491E-04 -1.945243E-07 --2.778880E-04 -7.722173E-08 -8.967976E-04 -8.042459E-07 -1.000000E-03 -1.000000E-06 -9.755714E-04 -9.517396E-07 -9.276094E-04 -8.604592E-07 -8.578678E-04 -7.359371E-07 -0.000000E+00 -0.000000E+00 -1.600000E-02 -5.400000E-05 -3.332422E-03 -1.335735E-05 -4.814665E-03 -5.403574E-06 -8.177949E-04 -2.462505E-06 -7.189603E-03 -1.112704E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.196133E-03 -7.153669E-07 -2.000000E-03 -2.000000E-06 -9.961345E-04 -5.766569E-07 --1.350146E-04 -1.888753E-07 --5.756575E-04 -1.828150E-07 -2.089751E-03 -2.580978E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.900000E-05 -3.574847E-03 -7.661052E-06 -2.411448E-03 -4.875571E-06 --4.456628E-04 -3.620849E-06 -5.991484E-03 -9.329446E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.953980E-04 -4.450119E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.402987E-03 -2.352531E-06 -4.000000E-03 -6.000000E-06 -3.730318E-03 -5.177826E-06 -3.229766E-03 -3.845053E-06 -2.569348E-03 -2.470333E-06 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.140000E-04 -1.157227E-02 -3.152553E-05 -5.993470E-03 -9.940306E-06 -6.549523E-03 -9.865076E-06 -8.969741E-03 -1.911355E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.980234E-04 -4.482705E-07 -1.000000E-03 -1.000000E-06 -4.538235E-04 -2.059558E-07 --1.910664E-04 -3.650635E-08 --4.470663E-04 -1.998683E-07 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.020000E-04 -4.042627E-03 -9.476178E-06 -2.881083E-03 -5.928110E-06 -3.065234E-03 -4.444894E-06 -1.168502E-02 -2.989919E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.020143E-04 -9.121262E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.250000E-04 -9.991177E-03 -3.139502E-05 -2.556450E-03 -1.824566E-06 -3.329841E-03 -5.163205E-06 -9.576327E-03 -2.773298E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.959971E-04 -4.463253E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.200651E-03 -8.987598E-07 -1.000000E-03 -1.000000E-06 -9.522533E-04 -9.067863E-07 -8.601795E-04 -7.399088E-07 -7.303458E-04 -5.334049E-07 -3.020143E-04 -9.121262E-08 -2.100000E-02 -1.150000E-04 -1.242804E-03 -3.619176E-06 -1.867552E-03 -1.359691E-06 -2.306130E-03 -5.045915E-06 -9.000544E-03 -2.094585E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 -9.669322E-04 -9.349578E-07 -9.024367E-04 -8.143920E-07 -8.097037E-04 -6.556200E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.600000E-05 -7.900751E-03 -1.937232E-05 -5.101355E-03 -8.800793E-06 -4.128814E-03 -6.665133E-06 -7.790979E-03 -1.525891E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.986793E-04 -1.792085E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.020143E-04 -9.121262E-08 -1.000000E-03 -1.000000E-06 -9.912755E-04 -9.826271E-07 -9.739406E-04 -9.485603E-07 -9.482220E-04 -8.991250E-07 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.260000E-04 -7.579348E-03 -2.124946E-05 -6.787172E-03 -1.874543E-05 -3.914660E-03 -8.731250E-06 -1.167769E-02 -3.750609E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.986793E-04 -1.792085E-07 -2.000000E-03 -2.000000E-06 -3.631413E-04 -1.401984E-06 -1.102976E-03 -1.004698E-06 -1.304621E-03 -1.083698E-06 -2.993714E-03 -2.324726E-06 -5.000000E-03 -7.000000E-06 -4.239270E-03 -4.739399E-06 -2.968259E-03 -2.239642E-06 -1.575924E-03 -1.063419E-06 -2.989325E-04 -8.936066E-08 -2.700000E-02 -1.610000E-04 -8.295783E-03 -1.670306E-05 -5.150584E-03 -1.540799E-05 -2.687614E-03 -7.461732E-06 -1.197674E-02 -3.010342E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.195131E-03 -5.358064E-07 -1.000000E-03 -1.000000E-06 --7.791468E-04 -6.070697E-07 -4.106046E-04 -1.685961E-07 --1.377092E-05 -1.896382E-10 -1.803453E-03 -1.268084E-06 -2.000000E-03 -2.000000E-06 -1.885433E-03 -1.778733E-06 -1.668099E-03 -1.401699E-06 -1.370094E-03 -9.733671E-07 -2.995454E-04 -8.972747E-08 -2.500000E-02 -1.690000E-04 -7.306400E-03 -1.879755E-05 -5.910494E-03 -7.423636E-06 -4.158757E-03 -8.004612E-06 -1.136957E-02 -3.132992E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --1.294470E-04 -1.675653E-08 --4.748652E-04 -2.254970E-07 -1.887478E-04 -3.562574E-08 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.270000E-04 -7.644698E-03 -2.593978E-05 -4.291971E-03 -7.952406E-06 -1.754591E-03 -1.626852E-06 -8.970335E-03 -2.698525E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.900000E-05 -9.175459E-03 -3.081816E-05 -6.537841E-03 -1.693021E-05 -3.371815E-03 -6.901863E-06 -1.109875E-02 -2.912624E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.991339E-04 -8.948108E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.100000E-02 -3.150000E-04 -7.491923E-03 -2.563522E-05 -4.484513E-03 -1.087903E-05 -5.244220E-03 -1.284762E-05 -1.256302E-02 -4.702441E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.972659E-04 -1.783638E-07 -1.000000E-03 -1.000000E-06 -1.684904E-04 -2.838901E-08 --4.574165E-04 -2.092298E-07 --2.407774E-04 -5.797376E-08 -1.503908E-03 -1.178356E-06 -2.000000E-03 -2.000000E-06 -1.675714E-03 -1.446154E-06 -1.169231E-03 -9.498292E-07 -6.921651E-04 -8.538185E-07 -3.020143E-04 -9.121262E-08 -2.000000E-02 -8.600000E-05 -9.188471E-03 -2.173815E-05 -1.860120E-03 -4.452062E-06 -2.429984E-03 -2.502873E-06 -1.048716E-02 -2.272644E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.974105E-04 -4.471701E-07 -2.000000E-03 -2.000000E-06 -1.794485E-03 -1.610365E-06 -1.415547E-03 -1.003887E-06 -9.217303E-04 -4.304779E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.400000E-05 -3.179742E-03 -4.790936E-06 --6.355126E-04 -5.202988E-06 -1.151706E-03 -3.152245E-06 -7.489949E-03 -1.301150E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -6.585165E-04 -4.336439E-07 -1.504659E-04 -2.263998E-08 --2.738705E-04 -7.500507E-08 -1.196133E-03 -7.153669E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1282,15 +682,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-02 -2.060000E-04 -1.541898E-02 -5.863846E-05 -9.395114E-03 -2.654761E-05 -8.661018E-03 -2.160642E-05 -1.049373E-02 -2.404605E-05 +2.100000E-04 +1.396274E-02 +5.377392E-05 +7.263833E-03 +1.550401E-05 +2.406305E-03 +2.774873E-06 +1.067173E-02 +2.834689E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1299,8 +699,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.396224E-03 -1.614108E-06 +6.159705E-04 +1.897125E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1309,28 +709,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.600725E-03 -5.038163E-06 -4.000000E-03 -8.000000E-06 -3.781504E-03 -7.153441E-06 -3.368106E-03 -5.701400E-06 -2.804131E-03 -4.034404E-06 -2.989325E-04 -8.936066E-08 -1.900000E-02 -7.900000E-05 -6.408930E-03 -1.103823E-05 -3.228416E-03 -7.109320E-06 -4.961615E-04 -2.423816E-06 -1.079243E-02 -2.644603E-05 +6.089759E-04 +3.708516E-07 +1.000000E-03 +1.000000E-06 +-3.845548E-04 +1.478824E-07 +-2.781765E-04 +7.738214E-08 +4.346600E-04 +1.889293E-07 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.010000E-04 +5.656932E-03 +1.902755E-05 +4.255795E-04 +5.923041E-06 +-1.665451E-03 +3.618806E-06 +1.254348E-02 +3.367259E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1339,8 +739,528 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.020143E-04 -9.121262E-08 +6.089759E-04 +3.708516E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +1.000000E-03 +1.000000E-06 +9.418397E-04 +8.870620E-07 +8.305930E-04 +6.898847E-07 +6.759159E-04 +4.568623E-07 +0.000000E+00 +0.000000E+00 +1.700000E-02 +1.070000E-04 +9.563321E-03 +3.797495E-05 +3.872248E-03 +6.913143E-06 +1.851726E-03 +2.042684E-06 +7.032800E-03 +1.543729E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.800000E-02 +3.300000E-04 +1.666359E-02 +6.918668E-05 +5.166835E-03 +1.583235E-05 +6.193613E-03 +1.014626E-05 +1.654613E-02 +6.758065E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.218842E-03 +5.568551E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.222651E-03 +7.474483E-07 +2.000000E-03 +2.000000E-06 +1.859309E-03 +1.730661E-06 +1.595992E-03 +1.290291E-06 +1.243306E-03 +8.262391E-07 +0.000000E+00 +0.000000E+00 +3.200000E-02 +2.140000E-04 +1.125786E-02 +3.535152E-05 +6.340891E-03 +1.186849E-05 +-6.739003E-04 +6.238152E-06 +1.194483E-02 +3.174072E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.528427E-03 +1.032143E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +1.000000E-03 +1.000000E-06 +8.883829E-04 +7.892241E-07 +6.838361E-04 +4.676319E-07 +4.202586E-04 +1.766173E-07 +0.000000E+00 +0.000000E+00 +2.000000E-02 +1.060000E-04 +6.707526E-03 +2.735840E-05 +6.937679E-03 +1.338587E-05 +5.832553E-03 +1.828962E-05 +1.101850E-02 +3.215320E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.105988E-04 +4.573243E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.227694E-03 +9.417032E-07 +1.000000E-03 +1.000000E-06 +9.408116E-04 +8.851265E-07 +8.276898E-04 +6.850703E-07 +6.706258E-04 +4.497390E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.800000E-05 +2.843265E-03 +6.035154E-06 +4.322434E-03 +7.469456E-06 +2.900345E-03 +4.663845E-06 +7.631460E-03 +1.236685E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.200000E-05 +6.856783E-03 +1.381342E-05 +2.931050E-03 +7.384807E-06 +1.856596E-03 +2.302567E-06 +1.130923E-02 +3.279819E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +2.509363E-04 +6.296901E-08 +-4.055465E-04 +1.644679E-07 +-3.369014E-04 +1.135025E-07 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +2.900000E-02 +2.010000E-04 +1.040068E-02 +4.442598E-05 +7.909288E-03 +1.634388E-05 +2.600276E-03 +1.084582E-05 +1.160235E-02 +3.244276E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.227694E-03 +9.417032E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +2.900000E-02 +1.890000E-04 +3.796494E-03 +2.573465E-05 +5.901410E-03 +9.723225E-06 +2.069453E-03 +9.510548E-06 +1.438173E-02 +4.416319E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.400000E-02 +1.240000E-04 +6.672638E-03 +1.840846E-05 +4.370801E-03 +7.557992E-06 +4.585753E-03 +1.441383E-05 +1.162351E-02 +2.791423E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.089759E-04 +3.708516E-07 +1.000000E-03 +1.000000E-06 +-8.175500E-04 +6.683879E-07 +5.025819E-04 +2.525886E-07 +-1.397764E-04 +1.953744E-08 +3.071818E-04 +9.436064E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.700000E-02 +2.910000E-04 +8.304483E-03 +2.250088E-05 +7.798128E-03 +2.325505E-05 +6.917154E-03 +2.136255E-05 +1.649875E-02 +5.805120E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.071818E-04 +9.436064E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.500000E-02 +2.550000E-04 +1.934687E-03 +1.279246E-05 +1.742063E-03 +9.283511E-06 +5.580823E-03 +1.402955E-05 +1.465296E-02 +4.425100E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.535220E-03 +1.225842E-06 +2.000000E-03 +2.000000E-06 +1.954328E-03 +1.909945E-06 +1.864917E-03 +1.741066E-06 +1.735530E-03 +1.513893E-06 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.150000E-04 +8.788723E-03 +4.052825E-05 +7.277307E-03 +2.646372E-05 +4.235689E-03 +1.237842E-05 +1.375310E-02 +4.363256E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.143635E-04 +3.774426E-07 +1.000000E-03 +1.000000E-06 +9.752141E-04 +9.510426E-07 +9.265639E-04 +8.585207E-07 +8.558543E-04 +7.324865E-07 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.400000E-05 +5.446779E-03 +8.175340E-06 +2.952745E-03 +6.944505E-06 +9.137774E-04 +1.227091E-06 +7.662475E-03 +1.309219E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.225836E-03 +5.668425E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1363,14 +1283,14 @@ tally 1: 0.000000E+00 2.800000E-02 1.660000E-04 -1.585913E-02 -6.353606E-05 -1.000709E-02 -2.500587E-05 -6.237459E-03 -8.453167E-06 -1.108880E-02 -2.616665E-05 +7.579645E-03 +3.038397E-05 +6.894753E-03 +2.399109E-05 +5.371715E-03 +1.603319E-05 +1.344654E-02 +4.055142E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1379,8 +1299,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.194532E-03 -7.134552E-07 +3.091331E-04 +9.556328E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1401,16 +1321,616 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.400000E-02 +1.300000E-04 +4.257114E-03 +3.224130E-05 +8.813774E-03 +2.583867E-05 +4.664136E-03 +1.410529E-05 +1.287730E-02 +3.681324E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +-6.367370E-04 +4.054341E-07 +1.081511E-04 +1.169666E-08 +3.097184E-04 +9.592546E-08 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.400000E-02 +1.300000E-04 +1.378482E-02 +5.592497E-05 +9.034738E-03 +2.624250E-05 +5.658518E-03 +1.317424E-05 +1.068557E-02 +2.727026E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.200000E-02 +2.260000E-04 +6.941116E-03 +2.215550E-05 +6.749352E-03 +1.648121E-05 +5.910808E-03 +1.357613E-05 +1.528788E-02 +5.372220E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136210E-04 +1.882762E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +2.030000E-04 +4.508769E-03 +3.192756E-05 +4.194184E-03 +7.918516E-06 +2.186680E-03 +9.265062E-06 +1.406557E-02 +4.964272E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.518169E-03 +1.003675E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.410000E-04 +7.122769E-03 +1.478437E-05 +4.717800E-03 +1.137509E-05 +2.766174E-03 +2.862748E-06 +9.770364E-03 +2.547043E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.400000E-05 +-2.546403E-03 +8.587879E-06 +3.329285E-04 +1.032543E-06 +-6.526073E-04 +5.693572E-06 +7.947562E-03 +1.421771E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.273993E-04 +8.600695E-07 +1.000000E-03 +1.000000E-06 +9.887237E-04 +9.775745E-07 +9.663618E-04 +9.338551E-07 +9.332922E-04 +8.710343E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +2.083696E-03 +6.707681E-06 +2.664177E-03 +4.483757E-06 +-3.543315E-04 +7.233059E-07 +3.654309E-03 +3.704263E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.700000E-02 +7.500000E-05 +7.751840E-03 +1.439369E-05 +5.032178E-03 +1.282123E-05 +5.077992E-03 +8.054934E-06 +7.339781E-03 +1.254543E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +1.000000E-03 +1.000000E-06 +-5.691245E-04 +3.239027E-07 +-1.414588E-05 +2.001060E-10 +3.928343E-04 +1.543188E-07 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.000000E-05 +4.292093E-03 +1.162566E-05 +1.911635E-03 +6.462803E-06 +7.144938E-04 +3.566046E-06 +8.845087E-03 +1.787718E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.098660E-04 +1.860035E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +7.900000E-05 +7.074706E-03 +1.339988E-05 +3.301242E-03 +3.627546E-06 +3.676901E-03 +5.025480E-06 +7.044700E-03 +1.063679E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.211332E-03 +9.095256E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +1.000000E-03 +1.000000E-06 +9.924008E-04 +9.848594E-07 +9.772891E-04 +9.550940E-07 +9.548370E-04 +9.117137E-07 +0.000000E+00 +0.000000E+00 +1.200000E-02 +4.200000E-05 +1.994203E-03 +9.474986E-06 +4.797034E-03 +7.209992E-06 +7.461820E-04 +7.384105E-07 +5.186835E-03 +7.184830E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.070000E-04 +1.654377E-02 +5.944129E-05 +1.297328E-02 +4.003873E-05 +7.211206E-03 +1.234310E-05 +1.739706E-02 +6.870884E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.086475E-04 +4.561217E-07 +2.000000E-03 +4.000000E-06 +-1.560749E-03 +2.435936E-06 +8.504262E-04 +7.232247E-07 +-1.266477E-04 +1.603963E-08 +2.148895E-03 +2.355633E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +2.100000E-02 +9.900000E-05 +8.524679E-03 +1.919497E-05 +5.830060E-03 +1.195983E-05 +4.439133E-03 +4.446488E-06 +8.535001E-03 +1.828799E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +3.000000E-03 +5.000000E-06 +3.626106E-04 +7.014271E-07 +2.355907E-04 +3.451505E-07 +1.623342E-03 +1.603144E-06 +3.056692E-03 +2.433689E-06 +3.000000E-03 +5.000000E-06 +2.377207E-03 +2.907996E-06 +1.593038E-03 +1.320423E-06 +1.150471E-03 +8.926966E-07 +0.000000E+00 +0.000000E+00 +1.700000E-02 +6.300000E-05 +8.432455E-03 +1.718164E-05 +2.701919E-03 +5.016066E-06 +2.357556E-03 +3.687074E-06 +7.025349E-03 +1.109437E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.215453E-04 +8.492458E-07 +1.000000E-03 +1.000000E-06 +9.959310E-04 +9.918786E-07 +9.878179E-04 +9.757842E-07 +9.757102E-04 +9.520103E-07 +0.000000E+00 +0.000000E+00 +1.100000E-02 +4.900000E-05 +5.546222E-03 +1.139525E-05 +1.289839E-03 +2.123481E-06 +1.011230E-03 +1.426586E-06 +5.215344E-03 +8.818614E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136210E-04 +1.882762E-07 +1.000000E-03 +1.000000E-06 +3.587682E-04 +1.287146E-07 +-3.069281E-04 +9.420486E-08 +-4.227055E-04 +1.786799E-07 +1.228132E-03 +9.505098E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.800000E-02 -8.200000E-05 -8.780691E-03 -2.358452E-05 -1.816210E-03 -1.543496E-06 -1.880620E-03 -1.310997E-06 -7.183087E-03 -1.306174E-05 +8.600000E-05 +4.110494E-03 +1.042545E-05 +2.304908E-03 +4.602048E-06 +1.132856E-03 +1.141229E-06 +9.161625E-03 +2.374582E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1419,8 +1939,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.995454E-04 -8.972747E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1429,444 +1947,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.981320E-04 -8.888272E-08 -1.000000E-03 -1.000000E-06 -1.324970E-04 -1.755546E-08 --4.736668E-04 -2.243602E-07 --1.929304E-04 -3.722214E-08 -0.000000E+00 -0.000000E+00 -3.300000E-02 -2.390000E-04 -9.004426E-03 -3.202491E-05 -8.390638E-03 -2.225399E-05 -7.671245E-03 -2.173426E-05 -1.526879E-02 -4.932937E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.196357E-03 -5.372737E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.200000E-02 -4.600000E-05 -1.118075E-03 -5.126429E-06 -1.131273E-04 -9.269523E-07 --4.997208E-04 -2.049174E-07 -4.186564E-03 -4.464187E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -1.000000E-03 -1.000000E-06 -1.681598E-04 -2.827772E-08 --4.575834E-04 -2.093826E-07 --2.403518E-04 -5.776898E-08 -2.093736E-03 -3.310679E-06 -3.000000E-03 -5.000000E-06 -2.887280E-03 -4.581616E-06 -2.669986E-03 -3.835050E-06 -2.363696E-03 -2.915580E-06 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.900000E-05 -3.685307E-03 -1.268655E-05 -5.360583E-03 -1.364253E-05 -1.590442E-03 -2.811111E-06 -7.793073E-03 -1.277581E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.300000E-05 -3.106624E-03 -9.484025E-06 -4.505496E-03 -5.432355E-06 -2.355878E-03 -2.623009E-06 -2.690622E-03 -1.877213E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.195730E-03 -1.429770E-06 -1.000000E-03 -1.000000E-06 -9.838946E-04 -9.680486E-07 -9.520729E-04 -9.064428E-07 -9.053026E-04 -8.195728E-07 -0.000000E+00 -0.000000E+00 -2.500000E-02 -1.390000E-04 -9.492341E-03 -2.448502E-05 -3.248123E-03 -2.577618E-06 -1.941360E-03 -2.063052E-06 -1.137644E-02 -3.026289E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -1.000000E-03 -1.000000E-06 --6.411363E-05 -4.110558E-09 --4.938342E-04 -2.438722E-07 -9.551160E-05 -9.122465E-09 -2.684602E-03 -5.778221E-06 -2.000000E-03 -2.000000E-06 -1.975537E-03 -1.951439E-06 -1.927159E-03 -1.857550E-06 -1.855946E-03 -1.724502E-06 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.500000E-05 -3.106757E-03 -7.530480E-06 -2.693211E-04 -3.828657E-06 -1.317058E-03 -3.136131E-06 -1.017555E-02 -2.236513E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -5.400000E-05 -5.944397E-03 -1.655215E-05 -1.726828E-03 -5.006812E-06 --1.657930E-03 -4.261204E-06 -5.696729E-03 -8.356388E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -1.000000E-03 -1.000000E-06 -6.866979E-04 -4.715540E-07 -2.073310E-04 -4.298614E-08 --2.205090E-04 -4.862422E-08 -1.496493E-03 -1.164240E-06 -1.000000E-03 -1.000000E-06 --9.623002E-04 -9.260217E-07 -8.890326E-04 -7.903789E-07 --7.843269E-04 -6.151687E-07 -0.000000E+00 -0.000000E+00 -1.000000E-02 -3.600000E-05 -4.361597E-03 -7.003332E-06 -1.326662E-03 -8.159669E-07 --1.380710E-04 -7.198742E-08 -4.786948E-03 -7.321215E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.900000E-02 -3.870000E-04 -1.427389E-02 -8.090929E-05 -8.826225E-03 -2.660607E-05 -4.117139E-03 -7.490443E-06 -2.216995E-02 -1.059100E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.198182E-03 -1.435639E-06 -1.000000E-03 -1.000000E-06 --2.499079E-04 -6.245395E-08 --4.063191E-04 -1.650952E-07 -3.358425E-04 -1.127902E-07 -8.943961E-04 -7.999445E-07 -1.000000E-03 -1.000000E-06 -9.401483E-04 -8.838788E-07 -8.258183E-04 -6.819758E-07 -6.672205E-04 -4.451832E-07 -0.000000E+00 -0.000000E+00 -3.700000E-02 -3.250000E-04 -5.676482E-03 -1.840790E-05 -7.927554E-03 -2.448188E-05 -2.237603E-03 -2.700519E-06 -1.646685E-02 -6.188122E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.800372E-03 -1.258824E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.798328E-03 -1.615735E-06 -4.000000E-03 -6.000000E-06 -3.770169E-03 -5.325612E-06 -3.332954E-03 -4.161563E-06 -2.730616E-03 -2.811353E-06 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.600000E-05 -5.093280E-03 -1.425830E-05 -2.794340E-03 -1.663793E-05 -4.103789E-03 -6.867085E-06 -8.700108E-03 -1.850749E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.029611E-04 -4.542111E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1882,15 +1962,15 @@ tally 1: 0.000000E+00 0.000000E+00 6.000000E-03 -1.400000E-05 -4.561928E-03 -8.999493E-06 -2.729392E-03 -4.924575E-06 -1.659472E-03 -3.263660E-06 -2.095047E-03 -1.698704E-06 +1.000000E-05 +7.480298E-04 +2.696134E-07 +1.010259E-03 +2.525363E-06 +2.404343E-03 +2.960244E-06 +5.213048E-03 +8.232507E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,6 +1979,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1909,28 +1991,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.962641E-04 -3.555309E-07 -1.000000E-03 -1.000000E-06 -9.213015E-04 -8.487964E-07 -7.731946E-04 -5.978298E-07 -5.730412E-04 -3.283762E-07 0.000000E+00 0.000000E+00 -1.000000E-02 -2.600000E-05 -5.481204E-03 -1.421903E-05 -2.241220E-03 -8.639111E-06 -2.375771E-03 -4.453036E-06 -4.791983E-03 -5.914853E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,408 +2001,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.193329E-03 -8.893051E-07 -1.000000E-03 -1.000000E-06 -8.827246E-04 -7.792028E-07 -6.688042E-04 -4.472990E-07 -3.954668E-04 -1.563940E-07 -2.989325E-04 -8.936066E-08 -9.000000E-03 -2.100000E-05 -4.651230E-03 -4.741702E-06 -2.150788E-03 -1.086619E-06 -2.092494E-03 -1.840170E-06 -4.800173E-03 -5.412689E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -3.000000E-06 -7.652902E-05 -1.571253E-06 -8.568788E-04 -1.094232E-06 --7.206134E-04 -4.649382E-07 -9.000807E-04 -2.700544E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -9.101753E-04 -8.284190E-07 -7.426285E-04 -5.514972E-07 -5.197534E-04 -2.701436E-07 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -4.600000E-05 -6.259455E-03 -1.284922E-05 -2.076794E-03 -2.552816E-06 -6.278684E-04 -2.094249E-06 -6.584175E-03 -1.056233E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 -6.257846E-04 -3.916063E-07 -8.740950E-05 -7.640421E-09 --3.260239E-04 -1.062916E-07 -5.962641E-04 -3.555309E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -7.500000E-05 -4.663045E-03 -1.215939E-05 -4.830409E-03 -8.682038E-06 -3.887884E-03 -4.756968E-06 -8.095588E-03 -1.984557E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.958095E-04 -4.452583E-07 -2.000000E-03 -2.000000E-06 -1.906393E-03 -1.818122E-06 -1.727184E-03 -1.499401E-06 -1.477537E-03 -1.118575E-06 -0.000000E+00 -0.000000E+00 -5.000000E-03 -7.000000E-06 -1.973804E-03 -3.852738E-06 -1.299550E-03 -2.189071E-06 -2.037626E-03 -1.354116E-06 -2.097904E-03 -9.889505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --9.618754E-04 -9.252042E-07 -8.878063E-04 -7.882000E-07 --7.820147E-04 -6.115471E-07 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -6.600000E-05 -2.900274E-03 -2.656005E-06 --1.326535E-04 -7.657613E-07 -2.692899E-03 -2.374742E-06 -7.492257E-03 -1.481323E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.976775E-04 -1.786102E-07 -1.000000E-03 -1.000000E-06 --5.336276E-04 -2.847584E-07 --7.286246E-05 -5.308937E-09 -4.205541E-04 -1.768657E-07 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.500000E-05 -1.100185E-02 -2.519922E-05 -5.296622E-03 -6.181448E-06 -4.290056E-03 -6.437184E-06 -9.878051E-03 -2.067153E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.494265E-03 -8.042497E-07 -3.000000E-03 -3.000000E-06 -6.851013E-04 -1.571044E-06 -8.565666E-04 -1.043968E-06 -7.365013E-04 -1.098388E-06 -0.000000E+00 -0.000000E+00 3.000000E-03 5.000000E-06 -1.355880E-03 -1.020443E-06 -1.249756E-03 -8.001666E-07 -1.419322E-03 -1.107335E-06 -2.397825E-03 -2.688348E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 +7.647871E-04 +1.000926E-06 +8.702327E-05 +1.587846E-06 +1.118717E-03 +8.177417E-07 +2.147037E-03 +1.226733E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2401,12 +2071,342 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.600000E-02 +6.200000E-05 +9.988601E-03 +3.022832E-05 +6.166188E-03 +1.173350E-05 +3.417134E-03 +5.700622E-06 +7.649352E-03 +1.360625E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +3.889110E-03 +7.557500E-06 +1.015827E-04 +2.744147E-06 +7.497308E-04 +3.373523E-06 +4.583807E-03 +6.264955E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +2.000000E-03 +4.000000E-06 +1.798872E-03 +3.235939E-06 +1.446227E-03 +2.091573E-06 +1.026515E-03 +1.053733E-06 +3.091331E-04 +9.556328E-08 +2.000000E-03 +2.000000E-06 +1.796026E-03 +1.613093E-06 +1.419639E-03 +1.009421E-06 +9.284786E-04 +4.359755E-07 +6.113253E-04 +1.868621E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +8.755578E-04 +7.666014E-07 +6.499021E-04 +4.223727E-07 +3.646728E-04 +1.329863E-07 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.100000E-05 +7.911817E-04 +5.000480E-06 +3.670154E-03 +5.136246E-06 +7.963899E-04 +3.142130E-06 +2.757965E-03 +1.792319E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +9.128685E-04 +8.333290E-07 +7.499935E-04 +5.624902E-07 +5.324967E-04 +2.835528E-07 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-03 +2.000000E-06 +-3.575073E-05 +3.447056E-08 +-9.482942E-04 +4.497282E-07 +4.906190E-05 +7.285661E-08 +6.159705E-04 +1.897125E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-03 +5.000000E-06 +1.728228E-03 +1.868156E-06 +1.372668E-04 +1.772598E-07 +-7.147632E-04 +2.712801E-07 +1.225291E-03 +5.607755E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 tally 2: -5.712389E-01 -6.528048E-02 -6.215724E-01 -7.729703E-02 -3.619520E+00 -2.620927E+00 -4.040217E+01 -3.265313E+02 +5.688123E-01 +6.473815E-02 +6.189326E-01 +7.665427E-02 +3.614785E+00 +2.614396E+00 +4.026586E+01 +3.243814E+02 diff --git a/tests/test_statepoint_batch/results_true.dat b/tests/test_statepoint_batch/results_true.dat index 259b9fb1e..3ebd5cfff 100644 --- a/tests/test_statepoint_batch/results_true.dat +++ b/tests/test_statepoint_batch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.896118E-01 5.112161E-03 +2.985054E-01 9.345354E-04 diff --git a/tests/test_statepoint_interval/results_true.dat b/tests/test_statepoint_interval/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_statepoint_interval/results_true.dat +++ b/tests/test_statepoint_interval/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_statepoint_restart/results_true.dat b/tests/test_statepoint_restart/results_true.dat index a03d8885b..8d848b4cf 100644 --- a/tests/test_statepoint_restart/results_true.dat +++ b/tests/test_statepoint_restart/results_true.dat @@ -1,16 +1,66 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 tally 1: +1.300000E-02 +4.300000E-05 +5.553260E-03 +1.267186E-05 +2.953436E-03 +6.351136E-06 +2.295617E-03 +4.617429E-06 +6.420875E-03 +9.259556E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.500000E-02 -6.100000E-05 -6.140730E-03 -1.827778E-05 -5.466817E-03 -1.172967E-05 -4.386203E-03 -6.988762E-06 -7.799017E-03 -1.730653E-05 +5.100000E-05 +8.675993E-03 +1.761431E-05 +3.327517E-03 +4.194966E-06 +7.274324E-04 +2.158075E-06 +6.423659E-03 +1.003735E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.071818E-04 +9.436064E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -29,30 +79,258 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.982678E-04 -3.579243E-07 +0.000000E+00 +0.000000E+00 +4.000000E-03 +1.000000E-05 +2.838403E-04 +8.774323E-07 +-4.663243E-04 +9.976861E-07 +5.379858E-04 +2.458806E-07 +1.830193E-03 +1.871531E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.200000E-05 +7.892468E-03 +1.531545E-05 +5.418392E-03 +6.620060E-06 +4.884861E-03 +5.600362E-06 +7.948555E-03 +1.365782E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.120582E-04 +2.773023E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.014657E-04 +3.617610E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +1.020000E-04 +6.418727E-03 +9.985775E-06 +6.251711E-03 +1.053337E-05 +4.720285E-03 +7.809860E-06 +9.455548E-03 +2.200500E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +2.000000E-03 +4.000000E-06 +1.977646E-03 +3.911083E-06 +1.933313E-03 +3.737699E-06 +1.867746E-03 +3.488475E-06 +3.068374E-04 +9.414918E-08 +6.000000E-03 +1.400000E-05 +1.048233E-03 +1.572686E-06 +1.209182E-05 +5.233234E-09 +1.086944E-03 +4.015851E-07 +3.362867E-03 +3.082582E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-03 +3.000000E-06 +2.874586E-03 +2.757041E-06 +2.635561E-03 +2.337016E-06 +2.305139E-03 +1.846818E-06 +1.227985E-03 +5.657187E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.143635E-04 +3.774426E-07 1.000000E-03 1.000000E-06 -9.657483E-04 -9.326697E-07 -8.990046E-04 -8.082092E-07 -8.031880E-04 -6.451110E-07 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 --3.133071E-05 -2.698671E-06 -2.623750E-04 -1.344791E-06 --2.483720E-03 -1.649588E-06 -3.294650E-03 -2.242064E-06 +9.888336E-04 +9.777919E-07 +9.666878E-04 +9.344854E-07 +9.339333E-04 +8.722314E-07 0.000000E+00 0.000000E+00 +1.800000E-02 +6.600000E-05 +3.521497E-03 +1.124575E-05 +-1.106505E-03 +1.298962E-06 +2.307061E-03 +1.995982E-06 +7.955988E-03 +1.333038E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -61,16 +339,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.204584E-04 +2.824254E-07 1.000000E-03 1.000000E-06 -6.245980E-04 -3.901227E-07 -8.518403E-05 -7.256319E-09 --3.277224E-04 -1.074020E-07 -2.989325E-04 -8.936066E-08 +-2.015923E-04 +4.063947E-08 +-4.390408E-04 +1.927568E-07 +2.819070E-04 +7.947154E-08 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -81,16 +361,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.000000E-03 -1.100000E-05 -2.955972E-03 -4.718865E-06 -2.296283E-03 -1.893728E-06 -1.374242E-03 -1.154127E-06 -4.505145E-03 -6.063009E-06 +9.000000E-03 +2.300000E-05 +8.049890E-04 +1.664654E-06 +2.892684E-03 +4.445095E-06 +5.132099E-04 +7.081387E-07 +3.678767E-03 +3.207908E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -99,98 +379,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.230000E-04 -4.489511E-03 -2.028537E-05 -1.946623E-03 -1.610367E-06 -1.647952E-03 -1.769319E-06 -1.077022E-02 -2.893664E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.000807E-04 -2.700544E-07 +6.136210E-04 +1.882762E-07 1.000000E-03 1.000000E-06 --9.045723E-04 -8.182510E-07 -7.273765E-04 -5.290766E-07 --4.935596E-04 -2.436011E-07 -2.989325E-04 -8.936066E-08 +3.974827E-04 +1.579925E-07 +-2.630113E-04 +6.917494E-08 +-4.392258E-04 +1.929193E-07 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -201,16 +401,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.900000E-02 -1.050000E-04 -2.386082E-03 -3.497107E-06 -4.555769E-03 -1.058977E-05 -1.879180E-03 -5.304853E-06 -7.792317E-03 -1.670472E-05 +5.000000E-03 +9.000000E-06 +2.095603E-03 +4.046946E-06 +2.670798E-03 +2.492128E-06 +1.379100E-04 +2.471643E-06 +2.750651E-03 +2.153957E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -219,8 +419,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.198624E-03 -3.591835E-07 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.014657E-04 +3.617610E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -241,158 +451,126 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +4.200000E-05 +5.756515E-03 +9.296704E-06 +1.251623E-03 +5.182413E-06 +2.207579E-03 +5.475159E-06 +5.492134E-03 +6.869563E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.310000E-04 +8.875791E-03 +3.047020E-05 +5.194493E-03 +1.122408E-05 +2.565521E-03 +5.889229E-06 +9.193064E-03 +2.295619E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.539123E-03 +8.532105E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.021986E-04 +8.139623E-07 1.000000E-03 1.000000E-06 -3.327793E-04 -1.107421E-07 --3.338869E-04 -1.114804E-07 --4.070373E-04 -1.656794E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -2.400000E-05 -5.261857E-03 -7.471221E-06 -5.280154E-03 -9.529481E-06 -5.060306E-03 -6.646531E-06 -6.894561E-03 -1.267269E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.000000E-03 -1.800000E-05 --2.025476E-04 -1.858789E-06 --6.686398E-04 -1.065456E-06 -6.586587E-04 -4.841450E-07 -2.994327E-03 -2.684002E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +9.693968E-04 +9.397302E-07 +9.095953E-04 +8.273636E-07 +8.233334E-04 +6.778780E-07 0.000000E+00 0.000000E+00 +2.800000E-02 +1.820000E-04 +8.903131E-03 +2.397214E-05 +1.010587E-02 +2.531134E-05 +4.754028E-03 +9.649119E-06 +1.378015E-02 +4.259630E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -401,116 +579,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.208028E-04 +2.826368E-07 1.000000E-03 1.000000E-06 -9.104915E-04 -8.289948E-07 -7.434921E-04 -5.527806E-07 -5.212445E-04 -2.716958E-07 -1.201894E-03 -7.222931E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 --5.260403E-04 -2.767184E-07 --8.492233E-05 -7.211803E-09 -4.251479E-04 -1.807507E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.400000E-02 -3.540000E-04 -1.553475E-02 -6.367842E-05 -1.520994E-02 -7.741012E-05 -8.930877E-03 -2.739654E-05 -1.405733E-02 -6.608052E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.031624E-04 -4.543315E-07 -1.000000E-03 -1.000000E-06 --2.223524E-04 -4.944060E-08 --4.258391E-04 -1.813389E-07 -3.060456E-04 -9.366388E-08 -6.040285E-04 -3.648505E-07 +-4.279762E-04 +1.831637E-07 +-2.252545E-04 +5.073960E-08 +4.459901E-04 +1.989072E-07 +6.089759E-04 +3.708516E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -522,15 +602,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.200000E-02 -3.400000E-05 -3.889614E-03 -6.587628E-06 -2.115055E-03 -3.167536E-06 -3.463231E-04 -5.504681E-06 -5.710120E-03 -1.043566E-05 +4.000000E-05 +4.239853E-03 +1.158537E-05 +1.052249E-03 +2.609268E-06 +1.581467E-03 +5.643069E-07 +6.112773E-03 +1.209962E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -539,8 +619,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.981320E-04 -8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -561,18 +639,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.600000E-02 -5.600000E-05 -3.164928E-03 -1.114752E-05 -3.143660E-03 -3.198813E-06 -1.287643E-03 -7.268133E-07 -8.988217E-03 -1.652319E-05 0.000000E+00 0.000000E+00 +3.800000E-02 +2.980000E-04 +1.590359E-02 +8.465362E-05 +1.095039E-02 +3.846682E-05 +8.674652E-03 +2.116226E-05 +1.953871E-02 +7.808840E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -581,16 +659,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.000000E-03 -1.000000E-06 -9.617800E-04 -9.250208E-07 -8.875312E-04 -7.877116E-07 -7.814962E-04 -6.107364E-07 -2.981320E-04 -8.888272E-08 +6.098660E-04 +1.860035E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -601,676 +671,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.000000E-03 -1.400000E-05 -2.562256E-03 -5.938938E-06 -3.215552E-03 -2.429308E-06 -2.809239E-03 -2.320949E-06 -2.396627E-03 -1.615072E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015597E-04 -1.809401E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.100000E-02 -2.150000E-04 -1.898034E-02 -7.784899E-05 -1.264567E-02 -4.010917E-05 -8.079721E-03 -1.493258E-05 -1.529918E-02 -5.419874E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.966100E-04 -2.679708E-07 -1.000000E-03 -1.000000E-06 -1.982438E-04 -3.930062E-08 --4.410491E-04 -1.945243E-07 --2.778880E-04 -7.722173E-08 -8.967976E-04 -8.042459E-07 -1.000000E-03 -1.000000E-06 -9.755714E-04 -9.517396E-07 -9.276094E-04 -8.604592E-07 -8.578678E-04 -7.359371E-07 -0.000000E+00 -0.000000E+00 -1.600000E-02 -5.400000E-05 -3.332422E-03 -1.335735E-05 -4.814665E-03 -5.403574E-06 -8.177949E-04 -2.462505E-06 -7.189603E-03 -1.112704E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.196133E-03 -7.153669E-07 -2.000000E-03 -2.000000E-06 -9.961345E-04 -5.766569E-07 --1.350146E-04 -1.888753E-07 --5.756575E-04 -1.828150E-07 -2.089751E-03 -2.580978E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.900000E-05 -3.574847E-03 -7.661052E-06 -2.411448E-03 -4.875571E-06 --4.456628E-04 -3.620849E-06 -5.991484E-03 -9.329446E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.953980E-04 -4.450119E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.402987E-03 -2.352531E-06 -4.000000E-03 -6.000000E-06 -3.730318E-03 -5.177826E-06 -3.229766E-03 -3.845053E-06 -2.569348E-03 -2.470333E-06 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.140000E-04 -1.157227E-02 -3.152553E-05 -5.993470E-03 -9.940306E-06 -6.549523E-03 -9.865076E-06 -8.969741E-03 -1.911355E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.980234E-04 -4.482705E-07 -1.000000E-03 -1.000000E-06 -4.538235E-04 -2.059558E-07 --1.910664E-04 -3.650635E-08 --4.470663E-04 -1.998683E-07 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.020000E-04 -4.042627E-03 -9.476178E-06 -2.881083E-03 -5.928110E-06 -3.065234E-03 -4.444894E-06 -1.168502E-02 -2.989919E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.020143E-04 -9.121262E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.250000E-04 -9.991177E-03 -3.139502E-05 -2.556450E-03 -1.824566E-06 -3.329841E-03 -5.163205E-06 -9.576327E-03 -2.773298E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.959971E-04 -4.463253E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.200651E-03 -8.987598E-07 -1.000000E-03 -1.000000E-06 -9.522533E-04 -9.067863E-07 -8.601795E-04 -7.399088E-07 -7.303458E-04 -5.334049E-07 -3.020143E-04 -9.121262E-08 -2.100000E-02 -1.150000E-04 -1.242804E-03 -3.619176E-06 -1.867552E-03 -1.359691E-06 -2.306130E-03 -5.045915E-06 -9.000544E-03 -2.094585E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 -9.669322E-04 -9.349578E-07 -9.024367E-04 -8.143920E-07 -8.097037E-04 -6.556200E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.600000E-05 -7.900751E-03 -1.937232E-05 -5.101355E-03 -8.800793E-06 -4.128814E-03 -6.665133E-06 -7.790979E-03 -1.525891E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.986793E-04 -1.792085E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.020143E-04 -9.121262E-08 -1.000000E-03 -1.000000E-06 -9.912755E-04 -9.826271E-07 -9.739406E-04 -9.485603E-07 -9.482220E-04 -8.991250E-07 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.260000E-04 -7.579348E-03 -2.124946E-05 -6.787172E-03 -1.874543E-05 -3.914660E-03 -8.731250E-06 -1.167769E-02 -3.750609E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.986793E-04 -1.792085E-07 -2.000000E-03 -2.000000E-06 -3.631413E-04 -1.401984E-06 -1.102976E-03 -1.004698E-06 -1.304621E-03 -1.083698E-06 -2.993714E-03 -2.324726E-06 -5.000000E-03 -7.000000E-06 -4.239270E-03 -4.739399E-06 -2.968259E-03 -2.239642E-06 -1.575924E-03 -1.063419E-06 -2.989325E-04 -8.936066E-08 -2.700000E-02 -1.610000E-04 -8.295783E-03 -1.670306E-05 -5.150584E-03 -1.540799E-05 -2.687614E-03 -7.461732E-06 -1.197674E-02 -3.010342E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.195131E-03 -5.358064E-07 -1.000000E-03 -1.000000E-06 --7.791468E-04 -6.070697E-07 -4.106046E-04 -1.685961E-07 --1.377092E-05 -1.896382E-10 -1.803453E-03 -1.268084E-06 -2.000000E-03 -2.000000E-06 -1.885433E-03 -1.778733E-06 -1.668099E-03 -1.401699E-06 -1.370094E-03 -9.733671E-07 -2.995454E-04 -8.972747E-08 -2.500000E-02 -1.690000E-04 -7.306400E-03 -1.879755E-05 -5.910494E-03 -7.423636E-06 -4.158757E-03 -8.004612E-06 -1.136957E-02 -3.132992E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --1.294470E-04 -1.675653E-08 --4.748652E-04 -2.254970E-07 -1.887478E-04 -3.562574E-08 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.270000E-04 -7.644698E-03 -2.593978E-05 -4.291971E-03 -7.952406E-06 -1.754591E-03 -1.626852E-06 -8.970335E-03 -2.698525E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.900000E-05 -9.175459E-03 -3.081816E-05 -6.537841E-03 -1.693021E-05 -3.371815E-03 -6.901863E-06 -1.109875E-02 -2.912624E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.991339E-04 -8.948108E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.100000E-02 -3.150000E-04 -7.491923E-03 -2.563522E-05 -4.484513E-03 -1.087903E-05 -5.244220E-03 -1.284762E-05 -1.256302E-02 -4.702441E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.972659E-04 -1.783638E-07 -1.000000E-03 -1.000000E-06 -1.684904E-04 -2.838901E-08 --4.574165E-04 -2.092298E-07 --2.407774E-04 -5.797376E-08 -1.503908E-03 -1.178356E-06 -2.000000E-03 -2.000000E-06 -1.675714E-03 -1.446154E-06 -1.169231E-03 -9.498292E-07 -6.921651E-04 -8.538185E-07 -3.020143E-04 -9.121262E-08 -2.000000E-02 -8.600000E-05 -9.188471E-03 -2.173815E-05 -1.860120E-03 -4.452062E-06 -2.429984E-03 -2.502873E-06 -1.048716E-02 -2.272644E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.974105E-04 -4.471701E-07 -2.000000E-03 -2.000000E-06 -1.794485E-03 -1.610365E-06 -1.415547E-03 -1.003887E-06 -9.217303E-04 -4.304779E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.400000E-05 -3.179742E-03 -4.790936E-06 --6.355126E-04 -5.202988E-06 -1.151706E-03 -3.152245E-06 -7.489949E-03 -1.301150E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -6.585165E-04 -4.336439E-07 -1.504659E-04 -2.263998E-08 --2.738705E-04 -7.500507E-08 -1.196133E-03 -7.153669E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1282,15 +682,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-02 -2.060000E-04 -1.541898E-02 -5.863846E-05 -9.395114E-03 -2.654761E-05 -8.661018E-03 -2.160642E-05 -1.049373E-02 -2.404605E-05 +2.100000E-04 +1.396274E-02 +5.377392E-05 +7.263833E-03 +1.550401E-05 +2.406305E-03 +2.774873E-06 +1.067173E-02 +2.834689E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1299,8 +699,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.396224E-03 -1.614108E-06 +6.159705E-04 +1.897125E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1309,28 +709,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.600725E-03 -5.038163E-06 -4.000000E-03 -8.000000E-06 -3.781504E-03 -7.153441E-06 -3.368106E-03 -5.701400E-06 -2.804131E-03 -4.034404E-06 -2.989325E-04 -8.936066E-08 -1.900000E-02 -7.900000E-05 -6.408930E-03 -1.103823E-05 -3.228416E-03 -7.109320E-06 -4.961615E-04 -2.423816E-06 -1.079243E-02 -2.644603E-05 +6.089759E-04 +3.708516E-07 +1.000000E-03 +1.000000E-06 +-3.845548E-04 +1.478824E-07 +-2.781765E-04 +7.738214E-08 +4.346600E-04 +1.889293E-07 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.010000E-04 +5.656932E-03 +1.902755E-05 +4.255795E-04 +5.923041E-06 +-1.665451E-03 +3.618806E-06 +1.254348E-02 +3.367259E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1339,8 +739,528 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.020143E-04 -9.121262E-08 +6.089759E-04 +3.708516E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +1.000000E-03 +1.000000E-06 +9.418397E-04 +8.870620E-07 +8.305930E-04 +6.898847E-07 +6.759159E-04 +4.568623E-07 +0.000000E+00 +0.000000E+00 +1.700000E-02 +1.070000E-04 +9.563321E-03 +3.797495E-05 +3.872248E-03 +6.913143E-06 +1.851726E-03 +2.042684E-06 +7.032800E-03 +1.543729E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.800000E-02 +3.300000E-04 +1.666359E-02 +6.918668E-05 +5.166835E-03 +1.583235E-05 +6.193613E-03 +1.014626E-05 +1.654613E-02 +6.758065E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.218842E-03 +5.568551E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.222651E-03 +7.474483E-07 +2.000000E-03 +2.000000E-06 +1.859309E-03 +1.730661E-06 +1.595992E-03 +1.290291E-06 +1.243306E-03 +8.262391E-07 +0.000000E+00 +0.000000E+00 +3.200000E-02 +2.140000E-04 +1.125786E-02 +3.535152E-05 +6.340891E-03 +1.186849E-05 +-6.739003E-04 +6.238152E-06 +1.194483E-02 +3.174072E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.528427E-03 +1.032143E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +1.000000E-03 +1.000000E-06 +8.883829E-04 +7.892241E-07 +6.838361E-04 +4.676319E-07 +4.202586E-04 +1.766173E-07 +0.000000E+00 +0.000000E+00 +2.000000E-02 +1.060000E-04 +6.707526E-03 +2.735840E-05 +6.937679E-03 +1.338587E-05 +5.832553E-03 +1.828962E-05 +1.101850E-02 +3.215320E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.105988E-04 +4.573243E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.227694E-03 +9.417032E-07 +1.000000E-03 +1.000000E-06 +9.408116E-04 +8.851265E-07 +8.276898E-04 +6.850703E-07 +6.706258E-04 +4.497390E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.800000E-05 +2.843265E-03 +6.035154E-06 +4.322434E-03 +7.469456E-06 +2.900345E-03 +4.663845E-06 +7.631460E-03 +1.236685E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.200000E-05 +6.856783E-03 +1.381342E-05 +2.931050E-03 +7.384807E-06 +1.856596E-03 +2.302567E-06 +1.130923E-02 +3.279819E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +2.509363E-04 +6.296901E-08 +-4.055465E-04 +1.644679E-07 +-3.369014E-04 +1.135025E-07 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +2.900000E-02 +2.010000E-04 +1.040068E-02 +4.442598E-05 +7.909288E-03 +1.634388E-05 +2.600276E-03 +1.084582E-05 +1.160235E-02 +3.244276E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.227694E-03 +9.417032E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +2.900000E-02 +1.890000E-04 +3.796494E-03 +2.573465E-05 +5.901410E-03 +9.723225E-06 +2.069453E-03 +9.510548E-06 +1.438173E-02 +4.416319E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.400000E-02 +1.240000E-04 +6.672638E-03 +1.840846E-05 +4.370801E-03 +7.557992E-06 +4.585753E-03 +1.441383E-05 +1.162351E-02 +2.791423E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.089759E-04 +3.708516E-07 +1.000000E-03 +1.000000E-06 +-8.175500E-04 +6.683879E-07 +5.025819E-04 +2.525886E-07 +-1.397764E-04 +1.953744E-08 +3.071818E-04 +9.436064E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.700000E-02 +2.910000E-04 +8.304483E-03 +2.250088E-05 +7.798128E-03 +2.325505E-05 +6.917154E-03 +2.136255E-05 +1.649875E-02 +5.805120E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.071818E-04 +9.436064E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.500000E-02 +2.550000E-04 +1.934687E-03 +1.279246E-05 +1.742063E-03 +9.283511E-06 +5.580823E-03 +1.402955E-05 +1.465296E-02 +4.425100E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.535220E-03 +1.225842E-06 +2.000000E-03 +2.000000E-06 +1.954328E-03 +1.909945E-06 +1.864917E-03 +1.741066E-06 +1.735530E-03 +1.513893E-06 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.150000E-04 +8.788723E-03 +4.052825E-05 +7.277307E-03 +2.646372E-05 +4.235689E-03 +1.237842E-05 +1.375310E-02 +4.363256E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.143635E-04 +3.774426E-07 +1.000000E-03 +1.000000E-06 +9.752141E-04 +9.510426E-07 +9.265639E-04 +8.585207E-07 +8.558543E-04 +7.324865E-07 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.400000E-05 +5.446779E-03 +8.175340E-06 +2.952745E-03 +6.944505E-06 +9.137774E-04 +1.227091E-06 +7.662475E-03 +1.309219E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.225836E-03 +5.668425E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1363,14 +1283,14 @@ tally 1: 0.000000E+00 2.800000E-02 1.660000E-04 -1.585913E-02 -6.353606E-05 -1.000709E-02 -2.500587E-05 -6.237459E-03 -8.453167E-06 -1.108880E-02 -2.616665E-05 +7.579645E-03 +3.038397E-05 +6.894753E-03 +2.399109E-05 +5.371715E-03 +1.603319E-05 +1.344654E-02 +4.055142E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1379,8 +1299,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.194532E-03 -7.134552E-07 +3.091331E-04 +9.556328E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1401,16 +1321,616 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.400000E-02 +1.300000E-04 +4.257114E-03 +3.224130E-05 +8.813774E-03 +2.583867E-05 +4.664136E-03 +1.410529E-05 +1.287730E-02 +3.681324E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +-6.367370E-04 +4.054341E-07 +1.081511E-04 +1.169666E-08 +3.097184E-04 +9.592546E-08 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.400000E-02 +1.300000E-04 +1.378482E-02 +5.592497E-05 +9.034738E-03 +2.624250E-05 +5.658518E-03 +1.317424E-05 +1.068557E-02 +2.727026E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.200000E-02 +2.260000E-04 +6.941116E-03 +2.215550E-05 +6.749352E-03 +1.648121E-05 +5.910808E-03 +1.357613E-05 +1.528788E-02 +5.372220E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136210E-04 +1.882762E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +2.030000E-04 +4.508769E-03 +3.192756E-05 +4.194184E-03 +7.918516E-06 +2.186680E-03 +9.265062E-06 +1.406557E-02 +4.964272E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.518169E-03 +1.003675E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.410000E-04 +7.122769E-03 +1.478437E-05 +4.717800E-03 +1.137509E-05 +2.766174E-03 +2.862748E-06 +9.770364E-03 +2.547043E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.400000E-05 +-2.546403E-03 +8.587879E-06 +3.329285E-04 +1.032543E-06 +-6.526073E-04 +5.693572E-06 +7.947562E-03 +1.421771E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.273993E-04 +8.600695E-07 +1.000000E-03 +1.000000E-06 +9.887237E-04 +9.775745E-07 +9.663618E-04 +9.338551E-07 +9.332922E-04 +8.710343E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +2.083696E-03 +6.707681E-06 +2.664177E-03 +4.483757E-06 +-3.543315E-04 +7.233059E-07 +3.654309E-03 +3.704263E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.700000E-02 +7.500000E-05 +7.751840E-03 +1.439369E-05 +5.032178E-03 +1.282123E-05 +5.077992E-03 +8.054934E-06 +7.339781E-03 +1.254543E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +1.000000E-03 +1.000000E-06 +-5.691245E-04 +3.239027E-07 +-1.414588E-05 +2.001060E-10 +3.928343E-04 +1.543188E-07 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.000000E-05 +4.292093E-03 +1.162566E-05 +1.911635E-03 +6.462803E-06 +7.144938E-04 +3.566046E-06 +8.845087E-03 +1.787718E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.098660E-04 +1.860035E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +7.900000E-05 +7.074706E-03 +1.339988E-05 +3.301242E-03 +3.627546E-06 +3.676901E-03 +5.025480E-06 +7.044700E-03 +1.063679E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.211332E-03 +9.095256E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +1.000000E-03 +1.000000E-06 +9.924008E-04 +9.848594E-07 +9.772891E-04 +9.550940E-07 +9.548370E-04 +9.117137E-07 +0.000000E+00 +0.000000E+00 +1.200000E-02 +4.200000E-05 +1.994203E-03 +9.474986E-06 +4.797034E-03 +7.209992E-06 +7.461820E-04 +7.384105E-07 +5.186835E-03 +7.184830E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.070000E-04 +1.654377E-02 +5.944129E-05 +1.297328E-02 +4.003873E-05 +7.211206E-03 +1.234310E-05 +1.739706E-02 +6.870884E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.086475E-04 +4.561217E-07 +2.000000E-03 +4.000000E-06 +-1.560749E-03 +2.435936E-06 +8.504262E-04 +7.232247E-07 +-1.266477E-04 +1.603963E-08 +2.148895E-03 +2.355633E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +2.100000E-02 +9.900000E-05 +8.524679E-03 +1.919497E-05 +5.830060E-03 +1.195983E-05 +4.439133E-03 +4.446488E-06 +8.535001E-03 +1.828799E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +3.000000E-03 +5.000000E-06 +3.626106E-04 +7.014271E-07 +2.355907E-04 +3.451505E-07 +1.623342E-03 +1.603144E-06 +3.056692E-03 +2.433689E-06 +3.000000E-03 +5.000000E-06 +2.377207E-03 +2.907996E-06 +1.593038E-03 +1.320423E-06 +1.150471E-03 +8.926966E-07 +0.000000E+00 +0.000000E+00 +1.700000E-02 +6.300000E-05 +8.432455E-03 +1.718164E-05 +2.701919E-03 +5.016066E-06 +2.357556E-03 +3.687074E-06 +7.025349E-03 +1.109437E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.215453E-04 +8.492458E-07 +1.000000E-03 +1.000000E-06 +9.959310E-04 +9.918786E-07 +9.878179E-04 +9.757842E-07 +9.757102E-04 +9.520103E-07 +0.000000E+00 +0.000000E+00 +1.100000E-02 +4.900000E-05 +5.546222E-03 +1.139525E-05 +1.289839E-03 +2.123481E-06 +1.011230E-03 +1.426586E-06 +5.215344E-03 +8.818614E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136210E-04 +1.882762E-07 +1.000000E-03 +1.000000E-06 +3.587682E-04 +1.287146E-07 +-3.069281E-04 +9.420486E-08 +-4.227055E-04 +1.786799E-07 +1.228132E-03 +9.505098E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.800000E-02 -8.200000E-05 -8.780691E-03 -2.358452E-05 -1.816210E-03 -1.543496E-06 -1.880620E-03 -1.310997E-06 -7.183087E-03 -1.306174E-05 +8.600000E-05 +4.110494E-03 +1.042545E-05 +2.304908E-03 +4.602048E-06 +1.132856E-03 +1.141229E-06 +9.161625E-03 +2.374582E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1419,8 +1939,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.995454E-04 -8.972747E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1429,444 +1947,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.981320E-04 -8.888272E-08 -1.000000E-03 -1.000000E-06 -1.324970E-04 -1.755546E-08 --4.736668E-04 -2.243602E-07 --1.929304E-04 -3.722214E-08 -0.000000E+00 -0.000000E+00 -3.300000E-02 -2.390000E-04 -9.004426E-03 -3.202491E-05 -8.390638E-03 -2.225399E-05 -7.671245E-03 -2.173426E-05 -1.526879E-02 -4.932937E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.196357E-03 -5.372737E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.200000E-02 -4.600000E-05 -1.118075E-03 -5.126429E-06 -1.131273E-04 -9.269523E-07 --4.997208E-04 -2.049174E-07 -4.186564E-03 -4.464187E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -1.000000E-03 -1.000000E-06 -1.681598E-04 -2.827772E-08 --4.575834E-04 -2.093826E-07 --2.403518E-04 -5.776898E-08 -2.093736E-03 -3.310679E-06 -3.000000E-03 -5.000000E-06 -2.887280E-03 -4.581616E-06 -2.669986E-03 -3.835050E-06 -2.363696E-03 -2.915580E-06 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.900000E-05 -3.685307E-03 -1.268655E-05 -5.360583E-03 -1.364253E-05 -1.590442E-03 -2.811111E-06 -7.793073E-03 -1.277581E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.300000E-05 -3.106624E-03 -9.484025E-06 -4.505496E-03 -5.432355E-06 -2.355878E-03 -2.623009E-06 -2.690622E-03 -1.877213E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.195730E-03 -1.429770E-06 -1.000000E-03 -1.000000E-06 -9.838946E-04 -9.680486E-07 -9.520729E-04 -9.064428E-07 -9.053026E-04 -8.195728E-07 -0.000000E+00 -0.000000E+00 -2.500000E-02 -1.390000E-04 -9.492341E-03 -2.448502E-05 -3.248123E-03 -2.577618E-06 -1.941360E-03 -2.063052E-06 -1.137644E-02 -3.026289E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -1.000000E-03 -1.000000E-06 --6.411363E-05 -4.110558E-09 --4.938342E-04 -2.438722E-07 -9.551160E-05 -9.122465E-09 -2.684602E-03 -5.778221E-06 -2.000000E-03 -2.000000E-06 -1.975537E-03 -1.951439E-06 -1.927159E-03 -1.857550E-06 -1.855946E-03 -1.724502E-06 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.500000E-05 -3.106757E-03 -7.530480E-06 -2.693211E-04 -3.828657E-06 -1.317058E-03 -3.136131E-06 -1.017555E-02 -2.236513E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -5.400000E-05 -5.944397E-03 -1.655215E-05 -1.726828E-03 -5.006812E-06 --1.657930E-03 -4.261204E-06 -5.696729E-03 -8.356388E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -1.000000E-03 -1.000000E-06 -6.866979E-04 -4.715540E-07 -2.073310E-04 -4.298614E-08 --2.205090E-04 -4.862422E-08 -1.496493E-03 -1.164240E-06 -1.000000E-03 -1.000000E-06 --9.623002E-04 -9.260217E-07 -8.890326E-04 -7.903789E-07 --7.843269E-04 -6.151687E-07 -0.000000E+00 -0.000000E+00 -1.000000E-02 -3.600000E-05 -4.361597E-03 -7.003332E-06 -1.326662E-03 -8.159669E-07 --1.380710E-04 -7.198742E-08 -4.786948E-03 -7.321215E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.900000E-02 -3.870000E-04 -1.427389E-02 -8.090929E-05 -8.826225E-03 -2.660607E-05 -4.117139E-03 -7.490443E-06 -2.216995E-02 -1.059100E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.198182E-03 -1.435639E-06 -1.000000E-03 -1.000000E-06 --2.499079E-04 -6.245395E-08 --4.063191E-04 -1.650952E-07 -3.358425E-04 -1.127902E-07 -8.943961E-04 -7.999445E-07 -1.000000E-03 -1.000000E-06 -9.401483E-04 -8.838788E-07 -8.258183E-04 -6.819758E-07 -6.672205E-04 -4.451832E-07 -0.000000E+00 -0.000000E+00 -3.700000E-02 -3.250000E-04 -5.676482E-03 -1.840790E-05 -7.927554E-03 -2.448188E-05 -2.237603E-03 -2.700519E-06 -1.646685E-02 -6.188122E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.800372E-03 -1.258824E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.798328E-03 -1.615735E-06 -4.000000E-03 -6.000000E-06 -3.770169E-03 -5.325612E-06 -3.332954E-03 -4.161563E-06 -2.730616E-03 -2.811353E-06 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.600000E-05 -5.093280E-03 -1.425830E-05 -2.794340E-03 -1.663793E-05 -4.103789E-03 -6.867085E-06 -8.700108E-03 -1.850749E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.029611E-04 -4.542111E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1882,15 +1962,15 @@ tally 1: 0.000000E+00 0.000000E+00 6.000000E-03 -1.400000E-05 -4.561928E-03 -8.999493E-06 -2.729392E-03 -4.924575E-06 -1.659472E-03 -3.263660E-06 -2.095047E-03 -1.698704E-06 +1.000000E-05 +7.480298E-04 +2.696134E-07 +1.010259E-03 +2.525363E-06 +2.404343E-03 +2.960244E-06 +5.213048E-03 +8.232507E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,6 +1979,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1909,28 +1991,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.962641E-04 -3.555309E-07 -1.000000E-03 -1.000000E-06 -9.213015E-04 -8.487964E-07 -7.731946E-04 -5.978298E-07 -5.730412E-04 -3.283762E-07 0.000000E+00 0.000000E+00 -1.000000E-02 -2.600000E-05 -5.481204E-03 -1.421903E-05 -2.241220E-03 -8.639111E-06 -2.375771E-03 -4.453036E-06 -4.791983E-03 -5.914853E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,408 +2001,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.193329E-03 -8.893051E-07 -1.000000E-03 -1.000000E-06 -8.827246E-04 -7.792028E-07 -6.688042E-04 -4.472990E-07 -3.954668E-04 -1.563940E-07 -2.989325E-04 -8.936066E-08 -9.000000E-03 -2.100000E-05 -4.651230E-03 -4.741702E-06 -2.150788E-03 -1.086619E-06 -2.092494E-03 -1.840170E-06 -4.800173E-03 -5.412689E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -3.000000E-06 -7.652902E-05 -1.571253E-06 -8.568788E-04 -1.094232E-06 --7.206134E-04 -4.649382E-07 -9.000807E-04 -2.700544E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -9.101753E-04 -8.284190E-07 -7.426285E-04 -5.514972E-07 -5.197534E-04 -2.701436E-07 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -4.600000E-05 -6.259455E-03 -1.284922E-05 -2.076794E-03 -2.552816E-06 -6.278684E-04 -2.094249E-06 -6.584175E-03 -1.056233E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 -6.257846E-04 -3.916063E-07 -8.740950E-05 -7.640421E-09 --3.260239E-04 -1.062916E-07 -5.962641E-04 -3.555309E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -7.500000E-05 -4.663045E-03 -1.215939E-05 -4.830409E-03 -8.682038E-06 -3.887884E-03 -4.756968E-06 -8.095588E-03 -1.984557E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.958095E-04 -4.452583E-07 -2.000000E-03 -2.000000E-06 -1.906393E-03 -1.818122E-06 -1.727184E-03 -1.499401E-06 -1.477537E-03 -1.118575E-06 -0.000000E+00 -0.000000E+00 -5.000000E-03 -7.000000E-06 -1.973804E-03 -3.852738E-06 -1.299550E-03 -2.189071E-06 -2.037626E-03 -1.354116E-06 -2.097904E-03 -9.889505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --9.618754E-04 -9.252042E-07 -8.878063E-04 -7.882000E-07 --7.820147E-04 -6.115471E-07 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -6.600000E-05 -2.900274E-03 -2.656005E-06 --1.326535E-04 -7.657613E-07 -2.692899E-03 -2.374742E-06 -7.492257E-03 -1.481323E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.976775E-04 -1.786102E-07 -1.000000E-03 -1.000000E-06 --5.336276E-04 -2.847584E-07 --7.286246E-05 -5.308937E-09 -4.205541E-04 -1.768657E-07 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.500000E-05 -1.100185E-02 -2.519922E-05 -5.296622E-03 -6.181448E-06 -4.290056E-03 -6.437184E-06 -9.878051E-03 -2.067153E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.494265E-03 -8.042497E-07 -3.000000E-03 -3.000000E-06 -6.851013E-04 -1.571044E-06 -8.565666E-04 -1.043968E-06 -7.365013E-04 -1.098388E-06 -0.000000E+00 -0.000000E+00 3.000000E-03 5.000000E-06 -1.355880E-03 -1.020443E-06 -1.249756E-03 -8.001666E-07 -1.419322E-03 -1.107335E-06 -2.397825E-03 -2.688348E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 +7.647871E-04 +1.000926E-06 +8.702327E-05 +1.587846E-06 +1.118717E-03 +8.177417E-07 +2.147037E-03 +1.226733E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2401,12 +2071,342 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.600000E-02 +6.200000E-05 +9.988601E-03 +3.022832E-05 +6.166188E-03 +1.173350E-05 +3.417134E-03 +5.700622E-06 +7.649352E-03 +1.360625E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +3.889110E-03 +7.557500E-06 +1.015827E-04 +2.744147E-06 +7.497308E-04 +3.373523E-06 +4.583807E-03 +6.264955E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +2.000000E-03 +4.000000E-06 +1.798872E-03 +3.235939E-06 +1.446227E-03 +2.091573E-06 +1.026515E-03 +1.053733E-06 +3.091331E-04 +9.556328E-08 +2.000000E-03 +2.000000E-06 +1.796026E-03 +1.613093E-06 +1.419639E-03 +1.009421E-06 +9.284786E-04 +4.359755E-07 +6.113253E-04 +1.868621E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +8.755578E-04 +7.666014E-07 +6.499021E-04 +4.223727E-07 +3.646728E-04 +1.329863E-07 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.100000E-05 +7.911817E-04 +5.000480E-06 +3.670154E-03 +5.136246E-06 +7.963899E-04 +3.142130E-06 +2.757965E-03 +1.792319E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +9.128685E-04 +8.333290E-07 +7.499935E-04 +5.624902E-07 +5.324967E-04 +2.835528E-07 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-03 +2.000000E-06 +-3.575073E-05 +3.447056E-08 +-9.482942E-04 +4.497282E-07 +4.906190E-05 +7.285661E-08 +6.159705E-04 +1.897125E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-03 +5.000000E-06 +1.728228E-03 +1.868156E-06 +1.372668E-04 +1.772598E-07 +-7.147632E-04 +2.712801E-07 +1.225291E-03 +5.607755E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 tally 2: -5.712389E-01 -6.528048E-02 -6.215724E-01 -7.729703E-02 -3.619520E+00 -2.620927E+00 -4.040217E+01 -3.265313E+02 +5.688123E-01 +6.473815E-02 +6.189326E-01 +7.665427E-02 +3.614785E+00 +2.614396E+00 +4.026586E+01 +3.243814E+02 diff --git a/tests/test_statepoint_sourcesep/results_true.dat b/tests/test_statepoint_sourcesep/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_statepoint_sourcesep/results_true.dat +++ b/tests/test_statepoint_sourcesep/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_survival_biasing/results_true.dat b/tests/test_survival_biasing/results_true.dat index de5cf150e..904a2ef7e 100644 --- a/tests/test_survival_biasing/results_true.dat +++ b/tests/test_survival_biasing/results_true.dat @@ -1,20 +1,20 @@ k-combined: -9.810103E-01 1.609702E-03 +9.939120E-01 9.319846E-03 tally 1: -4.313495E+01 -3.721921E+02 -1.792866E+01 -6.430423E+01 -2.200731E+00 -9.690384E-01 -1.908978E+00 -7.291363E-01 -4.948871E+00 -4.900154E+00 -3.465589E-02 -2.402752E-04 -3.697361E+02 -2.735204E+04 +4.354779E+01 +3.793738E+02 +1.814974E+01 +6.591525E+01 +2.217235E+00 +9.837360E-01 +1.919728E+00 +7.373585E-01 +4.971723E+00 +4.945321E+00 +3.485412E-02 +2.430294E-04 +3.718202E+02 +2.766078E+04 tally 2: -1.792866E+01 -6.430423E+01 +1.814974E+01 +6.591525E+01 diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 164ab307c..e5ec97453 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -bafeb65c4596d719bcab7ebbfbb789b28b858a16b9a3755b62356bf1a806c142d5becc0b5a52382cddf57267ff4477c7b5e7e1528bd3dde3ac29b0467a137a29 \ No newline at end of file +4622766eb676b86e58307ae9c6af24f15427243f49d1f16e061854df0c389b36ba1ed83f8c8d769df0cb1c25a3d66d0119e32f730df145f5590c0beea0f4cc6e \ No newline at end of file diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 879a8797a..572d85efa 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -fa410f505a1e9b7b01b127251751942ad362f39141b7e9c9d1c59b19f395d4d78a7aab3f35f03fcdb9fc13fa03ea9950c57943bb73917dac5e32f01fda0078fd \ No newline at end of file +bb3d417db2e127ac0307ebdbde43f0483613df75c7fd9cb85543ec8047d99c69926cb2299a09b575a3dbaaa74fd197aa685ac005a3fc949e2413741870dd8a68 \ No newline at end of file diff --git a/tests/test_tally_assumesep/results_true.dat b/tests/test_tally_assumesep/results_true.dat index 995c9ade6..b99a54daa 100644 --- a/tests/test_tally_assumesep/results_true.dat +++ b/tests/test_tally_assumesep/results_true.dat @@ -1,11 +1,11 @@ k-combined: -9.090848E-01 2.183589E-02 +1.102447E+00 7.056170E-03 tally 1: -1.247086E+01 -3.154055E+01 +1.560445E+01 +4.918297E+01 tally 2: -2.524688E+00 -1.288895E+00 +3.014547E+00 +1.838255E+00 tally 3: -3.704082E+01 -2.775735E+02 +4.466613E+01 +4.017825E+02 diff --git a/tests/test_tally_nuclides/results_true.dat b/tests/test_tally_nuclides/results_true.dat index adfed4557..ae66471ef 100644 --- a/tests/test_tally_nuclides/results_true.dat +++ b/tests/test_tally_nuclides/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.344992E-01 5.409376E-02 +9.404984E-01 5.010334E-02 tally 1: -6.493491E+00 -8.501932E+00 -1.474098E+00 -4.371503E-01 -1.430824E+00 -4.117407E-01 -5.019393E+00 -5.084622E+00 -6.493491E+00 -8.501932E+00 -1.474098E+00 -4.371503E-01 -1.430824E+00 -4.117407E-01 -5.019393E+00 -5.084622E+00 +6.716608E+00 +9.111797E+00 +1.520164E+00 +4.654833E-01 +1.475303E+00 +4.381727E-01 +5.196444E+00 +5.459040E+00 +6.716608E+00 +9.111797E+00 +1.520164E+00 +4.654833E-01 +1.475303E+00 +4.381727E-01 +5.196444E+00 +5.459040E+00 tally 2: -6.493491E+00 -8.501932E+00 -1.474098E+00 -4.371503E-01 -1.430824E+00 -4.117407E-01 -5.019393E+00 -5.084622E+00 +6.716608E+00 +9.111797E+00 +1.520164E+00 +4.654833E-01 +1.475303E+00 +4.381727E-01 +5.196444E+00 +5.459040E+00 diff --git a/tests/test_trace/results_true.dat b/tests/test_trace/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_trace/results_true.dat +++ b/tests/test_trace/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_translation/results_true.dat b/tests/test_translation/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_translation/results_true.dat +++ b/tests/test_translation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_trigger_batch_interval/results_true.dat b/tests/test_trigger_batch_interval/results_true.dat index 4adde2afc..3c9bfa98e 100644 --- a/tests/test_trigger_batch_interval/results_true.dat +++ b/tests/test_trigger_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.945341E-01 2.319345E-03 +9.828074E-01 6.099782E-03 tally 1: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 tally 2: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 diff --git a/tests/test_trigger_no_batch_interval/results_true.dat b/tests/test_trigger_no_batch_interval/results_true.dat index 4adde2afc..3c9bfa98e 100644 --- a/tests/test_trigger_no_batch_interval/results_true.dat +++ b/tests/test_trigger_no_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.945341E-01 2.319345E-03 +9.828074E-01 6.099782E-03 tally 1: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 tally 2: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 diff --git a/tests/test_trigger_no_status/results_true.dat b/tests/test_trigger_no_status/results_true.dat index 94c10b125..8e12ff5f1 100644 --- a/tests/test_trigger_no_status/results_true.dat +++ b/tests/test_trigger_no_status/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.910702E-01 3.412288E-03 +9.917430E-01 1.687838E-02 tally 1: -7.085995E+00 -1.004872E+01 -1.615776E+00 -5.224041E-01 -1.569264E+00 -4.927483E-01 -5.470219E+00 -5.988844E+00 -7.085995E+00 -1.004872E+01 -1.615776E+00 -5.224041E-01 -1.569264E+00 -4.927483E-01 -5.470219E+00 -5.988844E+00 +6.979642E+00 +9.753201E+00 +1.591841E+00 +5.071926E-01 +1.545245E+00 +4.779221E-01 +5.387801E+00 +5.812351E+00 +6.979642E+00 +9.753201E+00 +1.591841E+00 +5.071926E-01 +1.545245E+00 +4.779221E-01 +5.387801E+00 +5.812351E+00 tally 2: -7.085995E+00 -1.004872E+01 -1.615776E+00 -5.224041E-01 -1.569264E+00 -4.927483E-01 -5.470219E+00 -5.988844E+00 +6.979642E+00 +9.753201E+00 +1.591841E+00 +5.071926E-01 +1.545245E+00 +4.779221E-01 +5.387801E+00 +5.812351E+00 diff --git a/tests/test_trigger_tallies/results_true.dat b/tests/test_trigger_tallies/results_true.dat index 4adde2afc..3c9bfa98e 100644 --- a/tests/test_trigger_tallies/results_true.dat +++ b/tests/test_trigger_tallies/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.945341E-01 2.319345E-03 +9.828074E-01 6.099782E-03 tally 1: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 tally 2: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 diff --git a/tests/test_uniform_fs/results_true.dat b/tests/test_uniform_fs/results_true.dat index 80fee7685..dbde84bd8 100644 --- a/tests/test_uniform_fs/results_true.dat +++ b/tests/test_uniform_fs/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.495292E-01 1.234736E-02 +3.754438E-01 1.896941E-03 diff --git a/tests/test_union_energy_grids/results_true.dat b/tests/test_union_energy_grids/results_true.dat index 3958614d0..04c1a2b4c 100644 --- a/tests/test_union_energy_grids/results_true.dat +++ b/tests/test_union_energy_grids/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.218570E-01 2.269572E-03 +3.195980E-01 5.629840E-03 diff --git a/tests/test_universe/results_true.dat b/tests/test_universe/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_universe/results_true.dat +++ b/tests/test_universe/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_void/results_true.dat b/tests/test_void/results_true.dat index fd78557fc..fa9f4eb7a 100644 --- a/tests/test_void/results_true.dat +++ b/tests/test_void/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.032938E+00 5.005507E-02 +1.015355E+00 3.427659E-02 From 0b50205ff71b667843b550fd188698d5548fe586 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sun, 6 Mar 2016 09:48:27 -0500 Subject: [PATCH 018/259] Fixed malformed error message in Library.get_mgxs(...) --- openmc/mgxs/library.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index a38e42d24..c36d8d516 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -426,7 +426,7 @@ class Library(object): ---------- domain : Material or Cell or Universe or Integral The material, cell, or universe object of interest (or its ID) - mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} + mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} The type of multi-group cross section object to return Returns @@ -457,7 +457,7 @@ class Library(object): break else: msg = 'Unable to find MGXS for {0} "{1}" in ' \ - 'library'.format(self.domain_type, domain) + 'library'.format(self.domain_type, domain_id) raise ValueError(msg) else: domain_id = domain.id From 748fb058d7a3339a1392512cd8dd6da23d7d1d3a Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sun, 6 Mar 2016 09:56:46 -0500 Subject: [PATCH 019/259] Now using checkvalue module for OpenCG compatiblity module --- openmc/opencg_compatible.py | 102 +++++++++--------------------------- 1 file changed, 24 insertions(+), 78 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 0bda48c16..cd4503063 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -11,6 +11,7 @@ except ImportError: import openmc from openmc.region import Intersection from openmc.surface import Halfspace +import openmc.checkvalue as cv # A dictionary of all OpenMC Materials created @@ -79,10 +80,7 @@ def get_opencg_material(openmc_material): """ - if not isinstance(openmc_material, openmc.Material): - msg = 'Unable to create an OpenCG Material from "{0}" ' \ - 'which is not an OpenMC Material'.format(openmc_material) - raise ValueError(msg) + cv.check_type('openmc_material', openmc_material, openmc.Material) global OPENCG_MATERIALS material_id = openmc_material.id @@ -119,10 +117,7 @@ def get_openmc_material(opencg_material): """ - if not isinstance(opencg_material, opencg.Material): - msg = 'Unable to create an OpenMC Material from "{0}" ' \ - 'which is not an OpenCG Material'.format(opencg_material) - raise ValueError(msg) + cv.check_type('opencg_material', opencg_material, opencg.Material) global OPENMC_MATERIALS material_id = opencg_material.id @@ -165,10 +160,7 @@ def is_opencg_surface_compatible(opencg_surface): """ - if not isinstance(opencg_surface, opencg.Surface): - msg = 'Unable to check if OpenCG Surface is compatible' \ - 'since "{0}" is not a Surface'.format(opencg_surface) - raise ValueError(msg) + cv.check_type('opencg_surface', opencg_surface, opencg.Surface) if opencg_surface.type in ['x-squareprism', 'y-squareprism', 'z-squareprism']: @@ -192,10 +184,7 @@ def get_opencg_surface(openmc_surface): """ - if not isinstance(openmc_surface, openmc.Surface): - msg = 'Unable to create an OpenCG Surface from "{0}" ' \ - 'which is not an OpenMC Surface'.format(openmc_surface) - raise ValueError(msg) + cv.check_type('openmc_surface', openmc_surface, openmc.Surface) global OPENCG_SURFACES surface_id = openmc_surface.id @@ -278,10 +267,7 @@ def get_openmc_surface(opencg_surface): """ - if not isinstance(opencg_surface, opencg.Surface): - msg = 'Unable to create an OpenMC Surface from "{0}" which ' \ - 'is not an OpenCG Surface'.format(opencg_surface) - raise ValueError(msg) + cv.check_type('opencg_surface', opencg_surface, opencg.Surface) global openmc_surface surface_id = opencg_surface.id @@ -369,10 +355,7 @@ def get_compatible_opencg_surfaces(opencg_surface): """ - if not isinstance(opencg_surface, opencg.Surface): - msg = 'Unable to create an OpenMC Surface from "{0}" which ' \ - 'is not an OpenCG Surface'.format(opencg_surface) - raise ValueError(msg) + cv.check_type('opencg_surface', opencg_surface, opencg.Surface) global OPENMC_SURFACES surface_id = opencg_surface.id @@ -451,10 +434,7 @@ def get_opencg_cell(openmc_cell): """ - if not isinstance(openmc_cell, openmc.Cell): - msg = 'Unable to create an OpenCG Cell from "{0}" which ' \ - 'is not an OpenMC Cell'.format(openmc_cell) - raise ValueError(msg) + cv.check_type('openmc_cell', openmc_cell, openmc.Cell) global OPENCG_CELLS cell_id = openmc_cell.id @@ -469,9 +449,9 @@ def get_opencg_cell(openmc_cell): fill = openmc_cell.fill - if (openmc_cell.fill_type == 'material'): + if openmc_cell.fill_type == 'material': opencg_cell.fill = get_opencg_material(fill) - elif (openmc_cell.fill_type == 'universe'): + elif openmc_cell.fill_type == 'universe': opencg_cell.fill = get_opencg_universe(fill) else: opencg_cell.fill = get_opencg_lattice(fill) @@ -533,20 +513,10 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): OpenMC """ - if not isinstance(opencg_cell, opencg.Cell): - msg = 'Unable to create compatible OpenMC Cell from "{0}" which ' \ - 'is not an OpenCG Cell'.format(opencg_cell) - raise ValueError(msg) - elif not isinstance(opencg_surface, opencg.Surface): - msg = 'Unable to create compatible OpenMC Cell since "{0}" is ' \ - 'not an OpenCG Surface'.format(opencg_surface) - raise ValueError(msg) - - elif halfspace not in [-1, +1]: - msg = 'Unable to create compatible Cell since "{0}"' \ - 'is not a +/-1 halfspace'.format(halfspace) - raise ValueError(msg) + cv.check_type('opencg_cell', opencg_cell, opencg.Cell) + cv.check_type('opencg_surface', opencg_surface, opencg.Surface) + cv.check_value('halfspace', halfspace, (-1, +1)) # Initialize an empty list for the new compatible cells compatible_cells = [] @@ -575,7 +545,7 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): num_clones = 8 for clone_id in range(num_clones): - # Create a cloned OpenCG Cell with Surfaces compatible with OpenMC + # Create cloned OpenCG Cell with Surfaces compatible with OpenMC clone = opencg_cell.clone() compatible_cells.append(clone) @@ -641,10 +611,7 @@ def make_opencg_cells_compatible(opencg_universe): """ - if not isinstance(opencg_universe, opencg.Universe): - msg = 'Unable to make compatible OpenCG Cells for "{0}" which ' \ - 'is not an OpenCG Universe'.format(opencg_universe) - raise ValueError(msg) + cv.check_type('opencg_universe', opencg_universe, opencg.Universe) # Check all OpenCG Cells in this Universe for compatibility with OpenMC opencg_cells = opencg_universe.cells @@ -700,10 +667,7 @@ def get_openmc_cell(opencg_cell): """ - if not isinstance(opencg_cell, opencg.Cell): - msg = 'Unable to create an OpenMC Cell from "{0}" which ' \ - 'is not an OpenCG Cell'.format(opencg_cell) - raise ValueError(msg) + cv.check_type('opencg_cell', opencg_cell, opencg.Cell) global OPENMC_CELLS cell_id = opencg_cell.id @@ -718,9 +682,9 @@ def get_openmc_cell(opencg_cell): fill = opencg_cell.fill - if (opencg_cell.type == 'universe'): + if opencg_cell.type == 'universe': openmc_cell.fill = get_openmc_universe(fill) - elif (opencg_cell.type == 'lattice'): + elif opencg_cell.type == 'lattice': openmc_cell.fill = get_openmc_lattice(fill) else: openmc_cell.fill = get_openmc_material(fill) @@ -764,10 +728,7 @@ def get_opencg_universe(openmc_universe): """ - if not isinstance(openmc_universe, openmc.Universe): - msg = 'Unable to create an OpenCG Universe from "{0}" which ' \ - 'is not an OpenMC Universe'.format(openmc_universe) - raise ValueError(msg) + cv.check_type('openmc_universe', openmc_universe, openmc.Universe) global OPENCG_UNIVERSES universe_id = openmc_universe.id @@ -811,10 +772,7 @@ def get_openmc_universe(opencg_universe): """ - if not isinstance(opencg_universe, opencg.Universe): - msg = 'Unable to create an OpenMC Universe from "{0}" which ' \ - 'is not an OpenCG Universe'.format(opencg_universe) - raise ValueError(msg) + cv.check_type('opencg_universe', opencg_universe, opencg.Universe) global OPENMC_UNIVERSES universe_id = opencg_universe.id @@ -861,10 +819,7 @@ def get_opencg_lattice(openmc_lattice): """ - if not isinstance(openmc_lattice, openmc.Lattice): - msg = 'Unable to create an OpenCG Lattice from "{0}" which ' \ - 'is not an OpenMC Lattice'.format(openmc_lattice) - raise ValueError(msg) + cv.check_type('openmc_lattice', openmc_lattice, openmc.Lattice) global OPENCG_LATTICES lattice_id = openmc_lattice.id @@ -958,10 +913,7 @@ def get_openmc_lattice(opencg_lattice): """ - if not isinstance(opencg_lattice, opencg.Lattice): - msg = 'Unable to create an OpenMC Lattice from "{0}" which ' \ - 'is not an OpenCG Lattice'.format(opencg_lattice) - raise ValueError(msg) + cv.check_type('opencg_lattice', opencg_lattice, opencg.Lattice) global OPENMC_LATTICES lattice_id = opencg_lattice.id @@ -1032,10 +984,7 @@ def get_opencg_geometry(openmc_geometry): """ - if not isinstance(openmc_geometry, openmc.Geometry): - msg = 'Unable to get OpenCG geometry from "{0}" which is ' \ - 'not an OpenMC Geometry object'.format(openmc_geometry) - raise ValueError(msg) + cv.check_type('openmc_geometry', openmc_geometry, openmc.Geometry) # Clear dictionaries and auto-generated IDs OPENMC_SURFACES.clear() @@ -1072,10 +1021,7 @@ def get_openmc_geometry(opencg_geometry): """ - if not isinstance(opencg_geometry, opencg.Geometry): - msg = 'Unable to get OpenMC geometry from "{0}" which is ' \ - 'not an OpenCG Geometry object'.format(opencg_geometry) - raise ValueError(msg) + cv.check_type('opencg_geometry', opencg_geometry, opencg.Geometry) # Deep copy the goemetry since it may be modified to make all Surfaces # compatible with OpenMC's specifications From 1f33f93e63472063e27336eae163db8b13c57176 Mon Sep 17 00:00:00 2001 From: jingang Date: Mon, 7 Mar 2016 10:22:22 -0500 Subject: [PATCH 020/259] Implemented in a different way: using a additional stream ('STREAM_URR_PTABLE') to sample urr prn --- src/constants.F90 | 9 +- src/cross_section.F90 | 10 +- src/global.F90 | 13 +- src/physics.F90 | 9 +- src/random_lcg.F90 | 15 +- src/tracking.F90 | 14 +- .../test_asymmetric_lattice/results_true.dat | 2 +- tests/test_cmfd_feed/results_true.dat | 502 +-- tests/test_cmfd_nofeed/results_true.dat | 502 +-- tests/test_complex_cell/results_true.dat | 18 +- .../results_true.dat | 6 +- tests/test_density/results_true.dat | 2 +- tests/test_distribmat/results_true.dat | 2 +- .../results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_energy_grid/results_true.dat | 2 +- tests/test_energy_laws/results_true.dat | 2 +- tests/test_entropy/results_true.dat | 20 +- .../case-1/results_true.dat | 20 +- .../case-2/results_true.dat | 16 +- .../case-3/results_true.dat | 2 +- .../case-4/results_true.dat | 28 +- tests/test_filter_mesh_2d/results_true.dat | 558 +-- tests/test_filter_mesh_3d/results_true.dat | 1706 ++++---- tests/test_fixed_source/results_true.dat | 4 +- tests/test_infinite_cell/results_true.dat | 2 +- tests/test_lattice/results_true.dat | 2 +- tests/test_lattice_hex/results_true.dat | 2 +- tests/test_lattice_mixed/results_true.dat | 2 +- tests/test_lattice_multiple/results_true.dat | 2 +- .../results_true.dat | 52 +- .../results_true.dat | 6 +- tests/test_mgxs_library_hdf5/results_true.dat | 102 +- .../results_true.dat | 102 +- .../results_true.dat | 980 ++--- tests/test_natural_element/results_true.dat | 2 +- tests/test_output/results_true.dat | 2 +- .../results_true.dat | 10 +- .../test_particle_restart_eigval.py | 2 +- tests/test_quadric_surfaces/results_true.dat | 2 +- tests/test_reflective_plane/results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_rotation/results_true.dat | 2 +- tests/test_salphabeta/results_true.dat | 2 +- tests/test_score_current/results_true.dat | 2 +- tests/test_seed/results_true.dat | 2 +- tests/test_source/results_true.dat | 2 +- tests/test_source_file/results_true.dat | 2 +- .../test_sourcepoint_latest/results_true.dat | 2 +- .../test_sourcepoint_restart/results_true.dat | 3596 ++++++++--------- tests/test_statepoint_batch/results_true.dat | 2 +- .../test_statepoint_interval/results_true.dat | 2 +- .../test_statepoint_restart/results_true.dat | 3596 ++++++++--------- .../results_true.dat | 2 +- tests/test_survival_biasing/results_true.dat | 34 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_assumesep/results_true.dat | 14 +- tests/test_tally_nuclides/results_true.dat | 50 +- tests/test_tally_slice_merge/results_true.dat | 64 +- tests/test_trace/results_true.dat | 2 +- tests/test_translation/results_true.dat | 2 +- .../results_true.dat | 50 +- .../results_true.dat | 50 +- tests/test_trigger_no_status/results_true.dat | 50 +- tests/test_trigger_tallies/results_true.dat | 50 +- tests/test_uniform_fs/results_true.dat | 2 +- .../test_union_energy_grids/results_true.dat | 2 +- tests/test_universe/results_true.dat | 2 +- tests/test_void/results_true.dat | 2 +- 70 files changed, 6157 insertions(+), 6173 deletions(-) diff --git a/src/constants.F90 b/src/constants.F90 index 0c6f09cdd..5d91d2be8 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -365,10 +365,11 @@ module constants ! ============================================================================ ! RANDOM NUMBER STREAM CONSTANTS - integer, parameter :: N_STREAMS = 3 - integer, parameter :: STREAM_TRACKING = 1 - integer, parameter :: STREAM_TALLIES = 2 - integer, parameter :: STREAM_SOURCE = 3 + integer, parameter :: N_STREAMS = 4 + integer, parameter :: STREAM_TRACKING = 1 + integer, parameter :: STREAM_TALLIES = 2 + integer, parameter :: STREAM_SOURCE = 3 + integer, parameter :: STREAM_URR_PTABLE = 4 ! ============================================================================ ! MISCELLANEOUS CONSTANTS diff --git a/src/cross_section.F90 b/src/cross_section.F90 index a66870714..5ae113b00 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -10,7 +10,7 @@ module cross_section use material_header, only: Material use nuclide_header use particle_header, only: Particle - use random_lcg, only: prn, get_prn_ahead + use random_lcg, only: prn, get_prn_ahead, prn_set_stream use sab_header, only: SAlphaBeta use search, only: binary_search @@ -387,13 +387,13 @@ contains ! sample probability table using the cumulative distribution - ! Random numbers for xs calculation are sampled by skipping ahead - ! f(zaid) times from the seed 'xs_seed' + 'zaid'. + ! Random numbers for xs calculation are sampled from a separated stream. ! This guarantees the randomness and, at the same time, makes sure we reuse ! random number for the same nuclide at different temperatures, therefore ! preserving correlation of temperature in probability tables. - r = get_prn_ahead(int(nuc_zaid_dict % get_key(nuc % zaid), 8), & - xs_seed + nuc % zaid) + call prn_set_stream(STREAM_URR_PTABLE) + r = get_prn_ahead(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) + call prn_set_stream(STREAM_TRACKING) i_low = 1 do diff --git a/src/global.F90 b/src/global.F90 index 93fe3c598..6befa828f 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -104,18 +104,9 @@ module global ! What to assume for expanding natural elements integer :: default_expand = ENDF_BVII1 - ! Random number seed for cross sections, specially for URR ptables - ! This number is shared by all nuclides and updated after particle - ! changed its energy. - integer(8) :: xs_seed = 1_8 - - ! Dictionary to look up the skip distance to get prn when sampling URR - type(DictIntInt) :: nuc_zaid_dict - - ! Total amount of nuclide zaid instances + ! Total amount of nuclide ZAID and dictionary of nuclide ZAID and index integer(8) :: n_nuc_zaid_total - -!$omp threadprivate(xs_seed) + type(DictIntInt) :: nuc_zaid_dict ! ============================================================================ ! MULTI-GROUP CROSS SECTION RELATED VARIABLES diff --git a/src/physics.F90 b/src/physics.F90 index e41b3b4e9..faeec1b8a 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -16,7 +16,7 @@ module physics use particle_header, only: Particle use particle_restart_write, only: write_particle_restart use physics_common - use random_lcg, only: prn + use random_lcg, only: prn, prn_skip, prn_set_stream use search, only: binary_search use secondary_uncorrelated, only: UncorrelatedAngleEnergy use string, only: to_str @@ -58,6 +58,13 @@ contains if (master) call warning("Killing neutron with extremely low energy") end if + ! Advance URR seed stream 'N' times after energy changes + if (p % E /= p % last_E) then + call prn_set_stream(STREAM_URR_PTABLE) + call prn_skip(n_nuc_zaid_total) + call prn_set_stream(STREAM_TRACKING) + endif + end subroutine collision !=============================================================================== diff --git a/src/random_lcg.F90 b/src/random_lcg.F90 index 755ee673f..4e98a0663 100644 --- a/src/random_lcg.F90 +++ b/src/random_lcg.F90 @@ -11,7 +11,7 @@ module random_lcg integer(8), public :: seed = 1_8 integer(8) :: prn_seed0 ! original seed - integer(8), public :: prn_seed(N_STREAMS) ! current seed + integer(8) :: prn_seed(N_STREAMS) ! current seed integer(8) :: prn_mult ! multiplication factor, g integer(8) :: prn_add ! additive factor, c integer :: prn_bits ! number of bits, M @@ -25,7 +25,6 @@ module random_lcg public :: prn public :: get_prn_ahead - public :: prn_skip_ahead public :: initialize_prng public :: set_particle_seed public :: prn_skip @@ -55,21 +54,17 @@ contains end function prn !=============================================================================== -! GET_PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from a -! specific seed. This function does not changed current LCG status. +! GET_PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from +! current seed. !=============================================================================== - function get_prn_ahead(n, seed) result(pseudo_rn) + function get_prn_ahead(n) result(pseudo_rn) integer(8), intent(in) :: n ! number of prns to skip - integer(8), intent(in) :: seed ! starting seed real(8) :: pseudo_rn - ! prn_skip_ahead(n, seed) return the new seed S(n) - ! Xi(n) = S(n) / M - - pseudo_rn = prn_skip_ahead(n, seed) * prn_norm + pseudo_rn = prn_skip_ahead(n, prn_seed(stream)) * prn_norm end function get_prn_ahead diff --git a/src/tracking.F90 b/src/tracking.F90 index 7c500a816..e634112bc 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -1,6 +1,6 @@ module tracking - use constants, only: MODE_EIGENVALUE, STREAM_TRACKING + use constants, only: MODE_EIGENVALUE use cross_section, only: calculate_xs use error, only: fatal_error, warning use geometry, only: find_cell, distance_to_boundary, cross_surface, & @@ -12,7 +12,7 @@ module tracking use particle_header, only: LocalCoord, Particle use physics, only: collision use physics_mg, only: collision_mg - use random_lcg, only: prn, prn_seed, prn_skip_ahead + use random_lcg, only: prn use string, only: to_str use tally, only: score_analog_tally, score_tracklength_tally, & score_collision_tally, score_surface_current @@ -59,9 +59,6 @@ contains micro_xs % last_E = ZERO end if - ! Set xs_seed to be current tracking prn seed - xs_seed = prn_seed(STREAM_TRACKING) - ! Prepare to write out particle track. if (p % write_track) then call initialize_particle_track() @@ -200,10 +197,6 @@ contains ! re-evaluated p % last_material = NONE - ! Advance xs_seed N times ahead to avoid re-using prn - if (p % E /= p % last_E) & - xs_seed = prn_skip_ahead(n_nuc_zaid_total, xs_seed) - ! Set all uvws to base level -- right now, after a collision, only the ! base level uvws are changed do j = 1, p % n_coord - 1 @@ -234,9 +227,6 @@ contains p % n_secondary = p % n_secondary - 1 n_event = 0 - ! Set xs_seed to be current tracking prn seed for new particle - xs_seed = prn_seed(STREAM_TRACKING) - ! Enter new particle in particle track file if (p % write_track) call add_particle_track() else diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index fa3a412a5..31b09c4da 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -e059d757333d522575bfac076cbf2faa0212062b16e200c021c79e0cbeb378f6dc70e011b2bf910d507e3b14fe01330a7a07474ec113321cfcd42d9fb41c7053 \ No newline at end of file +219ee21902e83b0f1b8e92ca4977db998e3a4a5ca36da5be9490f9ec4f30ab90cf15a257fe4113d2f1f9eb85cab159ed65638412b9751ce786d263870c208581 \ No newline at end of file diff --git a/tests/test_cmfd_feed/results_true.dat b/tests/test_cmfd_feed/results_true.dat index 36cc01d84..4579fa545 100644 --- a/tests/test_cmfd_feed/results_true.dat +++ b/tests/test_cmfd_feed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.182357E+00 5.974030E-03 +1.169891E+00 6.289481E-03 tally 1: -1.088662E+01 -1.190872E+01 -2.048880E+01 -4.219873E+01 -2.876282E+01 -8.305037E+01 -3.379778E+01 -1.144766E+02 -3.770283E+01 -1.426032E+02 -3.830206E+01 -1.471567E+02 -3.592772E+01 -1.292701E+02 -2.991123E+01 -8.986773E+01 -2.146951E+01 -4.617825E+01 -1.203028E+01 -1.448499E+01 +1.173921E+01 +1.385460E+01 +2.164076E+01 +4.699369E+01 +2.906462E+01 +8.464935E+01 +3.382312E+01 +1.147095E+02 +3.632006E+01 +1.323878E+02 +3.655412E+01 +1.341064E+02 +3.347756E+01 +1.124264E+02 +2.931337E+01 +8.607243E+01 +2.182947E+01 +4.789563E+01 +1.147668E+01 +1.325716E+01 tally 2: -2.194698E+01 -2.431353E+01 -1.531030E+01 -1.183711E+01 -2.005791E+00 -2.073861E-01 -4.066089E+01 -8.307356E+01 -2.875607E+01 -4.160648E+01 -3.795240E+00 -7.283392E-01 -5.694473E+01 -1.629010E+02 -4.039366E+01 -8.198752E+01 -5.355319E+00 -1.450356E+00 -6.785682E+01 -2.311231E+02 -4.850705E+01 -1.181432E+02 -6.096531E+00 -1.875560E+00 -7.450798E+01 -2.784140E+02 -5.308226E+01 -1.413486E+02 -6.833051E+00 -2.357243E+00 -7.509346E+01 -2.831529E+02 -5.357157E+01 -1.441080E+02 -6.871605E+00 -2.376576E+00 -6.981210E+01 -2.445219E+02 -4.976894E+01 -1.243009E+02 -6.297010E+00 -2.008175E+00 -5.844228E+01 -1.716823E+02 -4.161341E+01 -8.709864E+01 -5.266312E+00 -1.407459E+00 -4.264401E+01 -9.124183E+01 -3.019716E+01 -4.575834E+01 -4.214008E+00 -8.998009E-01 -2.360554E+01 -2.810966E+01 -1.651062E+01 -1.374852E+01 -2.253099E+00 -2.643227E-01 +2.298190E+01 +2.667071E+01 +1.600292E+01 +1.293670E+01 +2.252427E+00 +2.605738E-01 +4.268506E+01 +9.161215E+01 +3.022909E+01 +4.598915E+01 +3.873926E+00 +7.615035E-01 +5.680399E+01 +1.623878E+02 +4.033805E+01 +8.196263E+01 +5.280610E+00 +1.414008E+00 +6.814741E+01 +2.331778E+02 +4.851618E+01 +1.182330E+02 +6.261805E+00 +1.983205E+00 +7.392922E+01 +2.740255E+02 +5.253586E+01 +1.384152E+02 +6.733810E+00 +2.278242E+00 +7.332860E+01 +2.698608E+02 +5.227405E+01 +1.371810E+02 +6.714658E+00 +2.273652E+00 +6.830172E+01 +2.340687E+02 +4.867159E+01 +1.188724E+02 +6.215002E+00 +1.956978E+00 +5.885634E+01 +1.736180E+02 +4.170434E+01 +8.719622E+01 +5.253064E+00 +1.396224E+00 +4.372001E+01 +9.593570E+01 +3.106511E+01 +4.844647E+01 +3.817991E+00 +7.509063E-01 +2.338260E+01 +2.752103E+01 +1.636606E+01 +1.347591E+01 +2.220013E+00 +2.515671E-01 tally 3: -1.477479E+01 -1.102597E+01 -9.629052E-01 -4.805270E-02 -2.767228E+01 -3.853758E+01 -1.875024E+00 -1.791921E-01 -3.889173E+01 -7.603662E+01 -2.514324E+00 -3.179473E-01 -4.669914E+01 -1.095214E+02 -2.899863E+00 -4.244220E-01 -5.113294E+01 -1.311853E+02 -3.370751E+00 -5.745169E-01 -5.155018E+01 -1.334689E+02 -3.240491E+00 -5.309493E-01 -4.798026E+01 -1.155563E+02 -3.140727E+00 -4.976607E-01 -4.006831E+01 -8.074622E+01 -2.652324E+00 -3.555555E-01 -2.910962E+01 -4.252913E+01 -1.868334E+00 -1.764790E-01 -1.594882E+01 -1.283117E+01 -1.050541E+00 -5.741461E-02 +1.538752E+01 +1.196478E+01 +1.079685E+00 +6.010786E-02 +2.911906E+01 +4.269070E+01 +1.822657E+00 +1.671851E-01 +3.885421E+01 +7.608218E+01 +2.541517E+00 +3.262452E-01 +4.673300E+01 +1.097036E+02 +2.885308E+00 +4.214444E-01 +5.059247E+01 +1.283984E+02 +3.222797E+00 +5.237329E-01 +5.034856E+01 +1.272538E+02 +3.230225E+00 +5.273425E-01 +4.688476E+01 +1.103152E+02 +2.941287E+00 +4.363750E-01 +4.013746E+01 +8.077506E+01 +2.634234E+00 +3.520271E-01 +2.996995E+01 +4.510282E+01 +1.946504E+00 +1.919104E-01 +1.575153E+01 +1.248536E+01 +1.020705E+00 +5.413570E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,8 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.970156E+00 -4.442680E-01 +3.049469E+00 +4.677325E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -208,10 +208,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.256812E+00 -1.387940E+00 -2.600466E+00 -3.411564E-01 +5.514939E+00 +1.528899E+00 +2.770358E+00 +3.879191E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -256,10 +256,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.205451E+00 -2.606110E+00 -5.064606E+00 -1.288462E+00 +7.294002E+00 +2.675589E+00 +5.032131E+00 +1.275040E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -304,10 +304,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.686485E+00 -3.787609E+00 -7.168705E+00 -2.578927E+00 +8.668860E+00 +3.776102E+00 +7.036008E+00 +2.490719E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -352,10 +352,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.401928E+00 -4.436352E+00 -8.541906E+00 -3.659201E+00 +9.345868E+00 +4.380719E+00 +8.352414E+00 +3.501945E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -400,10 +400,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.281127E+00 -4.316075E+00 -9.309092E+00 -4.349093E+00 +9.223771E+00 +4.270119E+00 +9.093766E+00 +4.158282E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -448,10 +448,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.714652E+00 -3.818254E+00 -9.438396E+00 -4.478823E+00 +8.530966E+00 +3.651778E+00 +9.219150E+00 +4.264346E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -496,10 +496,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.224112E+00 -2.623879E+00 -8.791109E+00 -3.886534E+00 +7.204424E+00 +2.604203E+00 +8.690373E+00 +3.785262E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -544,10 +544,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.268159E+00 -1.396589E+00 -7.474226E+00 -2.802732E+00 +5.326721E+00 +1.426975E+00 +7.513640E+00 +2.833028E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -592,10 +592,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.786206E+00 -3.930708E-01 -5.555956E+00 -1.549697E+00 +2.847310E+00 +4.090440E-01 +5.661144E+00 +1.607138E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -642,8 +642,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.146865E+00 -4.971483E-01 +3.025812E+00 +4.597241E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.188165E+00 -1.185424E+00 -1.186077E+00 -1.186240E+00 -1.180518E+00 -1.182338E+00 -1.176633E+00 -1.173733E+00 -1.183101E+00 -1.187581E+00 -1.187456E+00 -1.182071E+00 -1.181707E+00 -1.182390E+00 -1.185681E+00 -1.184114E+00 +1.170416E+00 +1.172966E+00 +1.165537E+00 +1.170979E+00 +1.161922E+00 +1.157523E+00 +1.158873E+00 +1.162877E+00 +1.167102E+00 +1.168130E+00 +1.170570E+00 +1.168115E+00 +1.174081E+00 +1.169458E+00 +1.167848E+00 +1.165116E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.221649E+00 -3.223000E+00 -3.222787E+00 -3.217662E+00 -3.216780E+00 -3.217779E+00 -3.216196E+00 -3.216949E+00 -3.215722E+00 -3.213663E+00 -3.212987E+00 -3.214740E+00 -3.216346E+00 -3.218373E+00 -3.218918E+00 -3.218693E+00 +3.203643E+00 +3.207943E+00 +3.213367E+00 +3.214360E+00 +3.219634E+00 +3.222232E+00 +3.221744E+00 +3.224544E+00 +3.225990E+00 +3.227769E+00 +3.227417E+00 +3.230728E+00 +3.231662E+00 +3.233316E+00 +3.233193E+00 +3.232564E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.065965E-03 -3.525507E-03 -3.021079E-03 -2.955766E-03 -2.838990E-03 -2.857085E-03 -2.260444E-03 -2.098638E-03 -2.096129E-03 -1.901194E-03 -1.977879E-03 -1.713346E-03 -1.550359E-03 -1.354824E-03 -1.132190E-03 -1.161818E-03 +4.009063E-03 +4.431773E-03 +3.152698E-03 +3.510424E-03 +2.052087E-03 +2.068633E-03 +1.502416E-03 +1.589822E-03 +1.566016E-03 +1.219159E-03 +1.017888E-03 +9.771569E-04 +1.010126E-03 +1.073397E-03 +1.172784E-03 +9.827488E-04 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.454E-01 - 5.414E-01 - 5.478E-01 - 5.459E-01 - 5.472E-01 - 5.326E-01 - 5.474E-01 - 5.472E-01 - 5.447E-01 - 5.411E-01 - 5.404E-01 - 5.427E-01 - 5.443E-01 - 5.453E-01 - 5.448E-01 - 5.449E-01 + 5.397E-01 + 5.425E-01 + 5.481E-01 + 5.473E-01 + 5.503E-01 + 5.502E-01 + 5.483E-01 + 5.520E-01 + 5.505E-01 + 3.216E-01 + 5.373E-01 + 5.517E-01 + 5.508E-01 + 5.524E-01 + 5.524E-01 + 5.523E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.780512E-03 -5.257528E-03 -4.347076E-03 -4.603868E-03 -5.268996E-03 -3.413250E-03 -4.217852E-03 -3.250039E-03 -4.404406E-03 -4.238172E-03 -3.834536E-03 -3.319549E-03 -2.393064E-03 -1.907225E-03 -1.855030E-03 -1.959869E-03 +6.959835E-03 +5.655657E-03 +3.886178E-03 +4.035110E-03 +3.043277E-03 +5.455479E-03 +4.515313E-03 +2.439842E-03 +2.114036E-03 +2.673135E-03 +2.431753E-03 +4.330931E-03 +3.404650E-03 +3.680302E-03 +3.309625E-03 +3.705544E-03 cmfd source -4.027103E-02 -7.892225E-02 -1.063098E-01 -1.229671E-01 -1.434918E-01 -1.383041E-01 -1.341394E-01 -1.130845E-01 -7.866073E-02 -4.384927E-02 +4.697085E-02 +7.920706E-02 +1.107968E-01 +1.250932E-01 +1.383930E-01 +1.380648E-01 +1.246874E-01 +1.113705E-01 +8.203754E-02 +4.337882E-02 diff --git a/tests/test_cmfd_nofeed/results_true.dat b/tests/test_cmfd_nofeed/results_true.dat index 270b46752..d8a17d676 100644 --- a/tests/test_cmfd_nofeed/results_true.dat +++ b/tests/test_cmfd_nofeed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.175970E+00 1.022524E-02 +1.167381E+00 9.433736E-03 tally 1: -1.158237E+01 -1.352745E+01 -2.179923E+01 -4.823751E+01 -2.918721E+01 -8.579451E+01 -3.411842E+01 -1.167131E+02 -3.714172E+01 -1.382918E+02 -3.783707E+01 -1.437136E+02 -3.614436E+01 -1.309976E+02 -2.969137E+01 -8.849248E+01 -2.111839E+01 -4.471900E+01 -1.133459E+01 -1.289353E+01 +1.196136E+01 +1.442468E+01 +2.133857E+01 +4.600706E+01 +2.874353E+01 +8.287538E+01 +3.400779E+01 +1.158949E+02 +3.736443E+01 +1.398466E+02 +3.705095E+01 +1.376767E+02 +3.486173E+01 +1.220362E+02 +2.910935E+01 +8.507181E+01 +2.034762E+01 +4.156717E+01 +1.074970E+01 +1.160733E+01 tally 2: -2.285666E+01 -2.632725E+01 -1.592200E+01 -1.279985E+01 -2.354335E+00 -2.818304E-01 -4.206665E+01 -8.923811E+01 -2.971400E+01 -4.458975E+01 -4.024411E+00 -8.205124E-01 -5.769235E+01 -1.671496E+02 -4.092500E+01 -8.415372E+01 -5.406039E+00 -1.478617E+00 -6.816911E+01 -2.331129E+02 -4.867500E+01 -1.188855E+02 -6.103922E+00 -1.881092E+00 -7.441705E+01 -2.776763E+02 -5.332500E+01 -1.425916E+02 -6.670349E+00 -2.252978E+00 -7.501123E+01 -2.821949E+02 -5.369500E+01 -1.446772E+02 -6.711425E+00 -2.274957E+00 -7.001950E+01 -2.460955E+02 -5.000600E+01 -1.255806E+02 -6.490622E+00 -2.130330E+00 -5.803532E+01 -1.691736E+02 -4.150500E+01 -8.653752E+01 -5.356227E+00 -1.455369E+00 -4.231248E+01 -8.984067E+01 -3.012800E+01 -4.555195E+01 -4.023117E+00 -8.251027E-01 -2.326609E+01 -2.729288E+01 -1.636300E+01 -1.348720E+01 -2.043151E+00 -2.201626E-01 +2.321994E+01 +2.726751E+01 +1.624000E+01 +1.334217E+01 +2.239367E+00 +2.607315E-01 +4.184801E+01 +8.813953E+01 +2.955600E+01 +4.401685E+01 +3.937924E+00 +7.877545E-01 +5.620223E+01 +1.589242E+02 +3.981400E+01 +7.983679E+01 +5.183337E+00 +1.367303E+00 +6.834724E+01 +2.342244E+02 +4.869600E+01 +1.189597E+02 +6.288549E+00 +1.997858E+00 +7.481522E+01 +2.802998E+02 +5.346500E+01 +1.431835E+02 +6.691123E+00 +2.252645E+00 +7.381412E+01 +2.733775E+02 +5.269700E+01 +1.393729E+02 +6.846095E+00 +2.360683E+00 +6.907775E+01 +2.396751E+02 +4.918500E+01 +1.215909E+02 +6.400076E+00 +2.073871E+00 +5.783260E+01 +1.680814E+02 +4.107800E+01 +8.480751E+01 +5.269220E+00 +1.404986E+00 +4.120212E+01 +8.516646E+01 +2.930300E+01 +4.310295E+01 +3.730803E+00 +7.015777E-01 +2.228419E+01 +2.504033E+01 +1.554100E+01 +1.217931E+01 +2.126451E+00 +2.315275E-01 tally 3: -1.532800E+01 -1.186246E+01 -1.054240E+00 -5.699889E-02 -2.862200E+01 -4.139083E+01 -1.917898E+00 -1.872272E-01 -3.941000E+01 -7.805265E+01 -2.548698E+00 -3.263827E-01 -4.685700E+01 -1.101835E+02 -2.915064E+00 -4.273240E-01 -5.143600E+01 -1.326606E+02 -3.195201E+00 -5.159753E-01 -5.172300E+01 -1.342849E+02 -3.397114E+00 -5.811083E-01 -4.816600E+01 -1.165387E+02 -2.996374E+00 -4.526135E-01 -4.001200E+01 -8.042168E+01 -2.615438E+00 -3.486860E-01 -2.903100E+01 -4.229303E+01 -1.899116E+00 -1.823251E-01 -1.575800E+01 -1.251088E+01 -1.015498E+00 -5.311788E-02 +1.561100E+01 +1.233967E+01 +1.095984E+00 +6.181387E-02 +2.847800E+01 +4.088161E+01 +1.815210E+00 +1.669969E-01 +3.834200E+01 +7.408022E+01 +2.446117E+00 +3.017834E-01 +4.687600E+01 +1.102381E+02 +2.954924E+00 +4.412809E-01 +5.155100E+01 +1.331461E+02 +3.204714E+00 +5.178544E-01 +5.067700E+01 +1.289238E+02 +3.246710E+00 +5.326374E-01 +4.738600E+01 +1.128834E+02 +3.035962E+00 +4.640211E-01 +3.953600E+01 +7.858196E+01 +2.507574E+00 +3.186456E-01 +2.819300E+01 +3.991455E+01 +1.846612E+00 +1.725570E-01 +1.497500E+01 +1.131312E+01 +9.213728E-01 +4.422001E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,8 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.061000E+00 -4.712730E-01 +3.090000E+00 +4.810640E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -208,10 +208,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.495000E+00 -1.521499E+00 -2.783000E+00 -3.954290E-01 +5.555000E+00 +1.551579E+00 +2.833000E+00 +4.078910E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -256,10 +256,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.290000E+00 -2.671490E+00 -5.148000E+00 -1.340000E+00 +7.271000E+00 +2.659755E+00 +5.095000E+00 +1.310819E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -304,10 +304,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.720000E+00 -3.820712E+00 -7.225000E+00 -2.625189E+00 +8.577000E+00 +3.703215E+00 +7.026000E+00 +2.486552E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -352,10 +352,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.361000E+00 -4.398063E+00 -8.510000E+00 -3.633548E+00 +9.393000E+00 +4.422429E+00 +8.572000E+00 +3.680852E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -400,10 +400,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.354000E+00 -4.392402E+00 -9.308000E+00 -4.353558E+00 +9.265000E+00 +4.305625E+00 +9.261000E+00 +4.304411E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -448,10 +448,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.645000E+00 -3.752875E+00 -9.473000E+00 -4.510221E+00 +8.535000E+00 +3.659395E+00 +9.303000E+00 +4.350791E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -496,10 +496,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.224000E+00 -2.621330E+00 -8.753000E+00 -3.851203E+00 +7.104000E+00 +2.544182E+00 +8.693000E+00 +3.799545E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -544,10 +544,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.181000E+00 -1.346925E+00 -7.383000E+00 -2.733921E+00 +5.168000E+00 +1.344390E+00 +7.334000E+00 +2.700052E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -592,10 +592,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.770000E+00 -3.870080E-01 -5.492000E+00 -1.515162E+00 +2.724000E+00 +3.745680E-01 +5.416000E+00 +1.471086E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -642,8 +642,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.024000E+00 -4.598380E-01 +2.960000E+00 +4.397840E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.188165E+00 -1.187432E+00 -1.183060E+00 -1.181898E+00 -1.177316E+00 -1.180396E+00 -1.183040E+00 -1.180335E+00 -1.176231E+00 -1.177895E+00 -1.180046E+00 -1.182650E+00 -1.185585E+00 -1.189670E+00 -1.186010E+00 -1.182861E+00 +1.170416E+00 +1.172572E+00 +1.171159E+00 +1.170281E+00 +1.159698E+00 +1.151967E+00 +1.146706E+00 +1.147137E+00 +1.152154E+00 +1.156980E+00 +1.156370E+00 +1.155975E+00 +1.155295E+00 +1.154881E+00 +1.153714E+00 +1.159485E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.221649E+00 -3.223243E+00 -3.223437E+00 -3.227374E+00 -3.223652E+00 -3.226298E+00 -3.224154E+00 -3.226033E+00 -3.228121E+00 -3.229091E+00 -3.227082E+00 -3.226168E+00 -3.226627E+00 -3.225070E+00 -3.225044E+00 -3.225384E+00 +3.203643E+00 +3.204555E+00 +3.210935E+00 +3.213980E+00 +3.219204E+00 +3.222234E+00 +3.226210E+00 +3.226808E+00 +3.224445E+00 +3.222460E+00 +3.222458E+00 +3.222447E+00 +3.220832E+00 +3.220841E+00 +3.221580E+00 +3.220523E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.065965E-03 -3.184316E-03 -2.738317E-03 -2.519700E-03 -2.342444E-03 -1.813264E-03 -2.187197E-03 -1.765666E-03 -1.579152E-03 -1.494719E-03 -1.650439E-03 -1.603349E-03 -1.515152E-03 -1.671731E-03 -1.434242E-03 -1.264261E-03 +4.009063E-03 +4.869662E-03 +2.997290E-03 +2.711191E-03 +1.688329E-03 +1.855396E-03 +1.403977E-03 +1.398430E-03 +1.818402E-03 +1.761252E-03 +1.646650E-03 +1.480120E-03 +1.399560E-03 +1.400162E-03 +1.178362E-03 +1.292279E-03 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.454E-01 - 5.470E-01 - 5.474E-01 - 5.480E-01 - 5.450E-01 - 5.446E-01 - 5.441E-01 - 5.458E-01 - 5.486E-01 - 5.481E-01 - 5.470E-01 - 5.467E-01 - 5.464E-01 - 5.467E-01 - 5.467E-01 - 5.475E-01 + 5.397E-01 + 5.405E-01 + 5.412E-01 + 5.428E-01 + 5.460E-01 + 4.531E-01 + 5.528E-01 + 5.531E-01 + 5.493E-01 + 5.468E-01 + 5.482E-01 + 5.487E-01 + 5.471E-01 + 5.465E-01 + 5.461E-01 + 5.443E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.780512E-03 -5.487778E-03 -6.783383E-03 -4.345691E-03 -4.732876E-03 -3.587393E-03 -3.608858E-03 -4.182060E-03 -2.493256E-03 -2.356484E-03 -2.605494E-03 -2.441777E-03 -2.343211E-03 -3.167611E-03 -2.123139E-03 -2.579320E-03 +6.959835E-03 +5.494668E-03 +4.076255E-03 +4.451120E-03 +3.035589E-03 +3.391773E-03 +1.907995E-03 +2.482495E-03 +2.994917E-03 +3.104683E-03 +2.309343E-03 +2.151358E-03 +2.348850E-03 +1.976731E-03 +2.080638E-03 +2.301327E-03 cmfd source -4.365045E-02 -8.011141E-02 -1.073840E-01 -1.235726E-01 -1.360563E-01 -1.451378E-01 -1.281146E-01 -1.120500E-01 -8.097935E-02 -4.294339E-02 +4.638920E-02 +7.751172E-02 +1.056089E-01 +1.282509E-01 +1.396713E-01 +1.415740E-01 +1.323405E-01 +1.092839E-01 +7.981779E-02 +3.955174E-02 diff --git a/tests/test_complex_cell/results_true.dat b/tests/test_complex_cell/results_true.dat index fac000acb..da3acd2aa 100644 --- a/tests/test_complex_cell/results_true.dat +++ b/tests/test_complex_cell/results_true.dat @@ -1,11 +1,11 @@ k-combined: -2.613143E-01 4.327291E-03 +2.531110E-01 3.041974E-03 tally 1: -2.660051E+00 -1.415808E+00 -2.714532E+00 -1.475275E+00 -9.954839E-01 -1.988210E-01 -1.075268E-01 -2.315698E-03 +2.594626E+00 +1.346701E+00 +2.683653E+00 +1.440725E+00 +9.933862E-01 +1.977011E-01 +1.112289E-01 +2.476655E-03 diff --git a/tests/test_confidence_intervals/results_true.dat b/tests/test_confidence_intervals/results_true.dat index 5849fa1f5..e519180c8 100644 --- a/tests/test_confidence_intervals/results_true.dat +++ b/tests/test_confidence_intervals/results_true.dat @@ -1,5 +1,5 @@ k-combined: -2.990520E-01 4.413813E-03 +2.955487E-01 7.001017E-03 tally 1: -6.518836E+01 -5.331909E+02 +6.492201E+01 +5.290724E+02 diff --git a/tests/test_density/results_true.dat b/tests/test_density/results_true.dat index c79671dbf..65135bbc9 100644 --- a/tests/test_density/results_true.dat +++ b/tests/test_density/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.095099E+00 7.174355E-03 +1.102244E+00 1.114944E-02 diff --git a/tests/test_distribmat/results_true.dat b/tests/test_distribmat/results_true.dat index 6d915f643..15a00ee7d 100644 --- a/tests/test_distribmat/results_true.dat +++ b/tests/test_distribmat/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.292367E+00 2.783049E-02 +1.291341E+00 1.269369E-02 Cell ID = 11 Name = diff --git a/tests/test_eigenvalue_genperbatch/results_true.dat b/tests/test_eigenvalue_genperbatch/results_true.dat index 73921460b..846a17e08 100644 --- a/tests/test_eigenvalue_genperbatch/results_true.dat +++ b/tests/test_eigenvalue_genperbatch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.896963E-01 1.152441E-02 +3.001412E-01 2.669737E-03 diff --git a/tests/test_eigenvalue_no_inactive/results_true.dat b/tests/test_eigenvalue_no_inactive/results_true.dat index 945003e7b..2b4373e7e 100644 --- a/tests/test_eigenvalue_no_inactive/results_true.dat +++ b/tests/test_eigenvalue_no_inactive/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.086025E-01 7.823119E-03 +3.080574E-01 6.889659E-03 diff --git a/tests/test_energy_grid/results_true.dat b/tests/test_energy_grid/results_true.dat index 04c1a2b4c..0a607592c 100644 --- a/tests/test_energy_grid/results_true.dat +++ b/tests/test_energy_grid/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.195980E-01 5.629840E-03 +3.330789E-01 2.216495E-03 diff --git a/tests/test_energy_laws/results_true.dat b/tests/test_energy_laws/results_true.dat index 2cafa0fe8..02465fa79 100644 --- a/tests/test_energy_laws/results_true.dat +++ b/tests/test_energy_laws/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.136934E+00 5.025409E-03 +2.122164E+00 1.946222E-02 diff --git a/tests/test_entropy/results_true.dat b/tests/test_entropy/results_true.dat index a450c887e..e3e0daea0 100644 --- a/tests/test_entropy/results_true.dat +++ b/tests/test_entropy/results_true.dat @@ -1,13 +1,13 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 entropy: 7.601626E+00 -8.073602E+00 -8.285649E+00 -8.254254E+00 -8.288322E+00 -8.328178E+00 -8.351350E+00 -8.239166E+00 -8.305642E+00 -8.384493E+00 +8.085658E+00 +8.263983E+00 +8.284792E+00 +8.420379E+00 +8.302840E+00 +8.316079E+00 +8.299781E+00 +8.329297E+00 +8.361325E+00 diff --git a/tests/test_filter_distribcell/case-1/results_true.dat b/tests/test_filter_distribcell/case-1/results_true.dat index e889c5189..a1f062e1b 100644 --- a/tests/test_filter_distribcell/case-1/results_true.dat +++ b/tests/test_filter_distribcell/case-1/results_true.dat @@ -1,14 +1,14 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -1.388230E-02 -1.927181E-04 -1.274703E-02 -1.624868E-04 -1.413512E-02 -1.998017E-04 -1.014096E-02 -1.028390E-04 +1.548980E-02 +2.399339E-04 +1.278780E-02 +1.635279E-04 +1.426319E-02 +2.034385E-04 +1.018927E-02 +1.038213E-04 tally 2: -5.090541E-02 -2.591361E-03 +5.273007E-02 +2.780460E-03 diff --git a/tests/test_filter_distribcell/case-2/results_true.dat b/tests/test_filter_distribcell/case-2/results_true.dat index 1bf180f56..4e2583f3e 100644 --- a/tests/test_filter_distribcell/case-2/results_true.dat +++ b/tests/test_filter_distribcell/case-2/results_true.dat @@ -1,11 +1,11 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -7.522719E-03 -5.659131E-05 -8.295569E-03 -6.881647E-05 -8.554455E-03 -7.317870E-05 -8.075834E-03 -6.521910E-05 +7.588170E-03 +5.758032E-05 +8.402486E-03 +7.060177E-05 +8.682518E-03 +7.538613E-05 +8.119997E-03 +6.593435E-05 diff --git a/tests/test_filter_distribcell/case-3/results_true.dat b/tests/test_filter_distribcell/case-3/results_true.dat index 559b8232d..32c1fced1 100644 --- a/tests/test_filter_distribcell/case-3/results_true.dat +++ b/tests/test_filter_distribcell/case-3/results_true.dat @@ -1 +1 @@ -d6a3f2a020a25814fde0eb731b7ceb0928910b139460c13a9739855901818fcaf45e3d48d70f5829fc3af7164954cacefcbf2860582728bf071b57a96be336be \ No newline at end of file +7bef4810e3bba5df56fef96d9a946dc8dc8ac136ba5282d2975456f3de8fc47ea4ba557d6c83d0938579e11e2a0da5e8e4d03b3cd1f0c0d969d25c218b2ec0bc \ No newline at end of file diff --git a/tests/test_filter_distribcell/case-4/results_true.dat b/tests/test_filter_distribcell/case-4/results_true.dat index 3570c5977..88e78d757 100644 --- a/tests/test_filter_distribcell/case-4/results_true.dat +++ b/tests/test_filter_distribcell/case-4/results_true.dat @@ -1,17 +1,17 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -2.281161E-02 -5.203696E-04 -2.026380E-02 -4.106216E-04 -2.051818E-02 -4.209955E-04 -3.105331E-02 -9.643082E-04 -2.361926E-02 -5.578696E-04 -2.559396E-02 -6.550505E-04 -2.047153E-02 -4.190836E-04 +2.265319E-02 +5.131669E-04 +2.026852E-02 +4.108129E-04 +2.051718E-02 +4.209546E-04 +3.015130E-02 +9.091009E-04 +2.356397E-02 +5.552606E-04 +2.558974E-02 +6.548348E-04 +2.012046E-02 +4.048330E-04 diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index 93b5e8b24..3e43ffe88 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.102447E+00 7.056170E-03 +9.581523E-01 4.261823E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -17,12 +17,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.004731E-01 -1.603787E-01 -7.197162E-02 -5.179914E-03 -1.604976E-02 -2.575947E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -43,22 +37,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.825592E-01 -3.332786E-02 -1.735601E-01 -3.012310E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.929301E-01 -1.292096E-01 -1.170085E+00 -4.383162E-01 -2.378040E+00 -1.465005E+00 -1.178600E-01 -1.251541E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -71,34 +53,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.474078E-01 +2.172907E-02 +6.386562E-02 +4.078817E-03 0.000000E+00 0.000000E+00 +2.905797E-02 +8.443654E-04 +7.532560E-03 +5.673946E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.161419E-02 -3.796309E-03 -1.346477E+00 -4.828090E-01 -1.058790E-01 -1.121036E-02 -4.136497E-01 -1.711061E-01 -1.243458E+00 -4.647755E-01 -2.245781E+00 -1.580849E+00 -5.654811E-01 -9.706540E-02 -9.429516E-01 -2.435071E-01 -1.051027E-02 -1.104657E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.149324E-01 +1.320945E-02 +2.465049E-02 +3.049064E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -107,30 +83,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.027188E-02 -3.522204E-03 -4.079328E-01 -8.766787E-02 -2.841433E-01 -5.943838E-02 -1.056161E+00 -4.599956E-01 -1.290005E-01 -1.027599E-02 -9.363444E-02 -7.224796E-03 -4.775813E-01 -2.280839E-01 -1.338854E+00 -5.648386E-01 -1.890323E+00 -1.335290E+00 -1.319736E+00 -3.546244E-01 -4.228786E-01 -1.311699E-01 0.000000E+00 0.000000E+00 +7.002118E-02 +4.902966E-03 +5.128548E-01 +1.258296E-01 +1.379070E+00 +4.300261E-01 +1.040956E+00 +3.089103E-01 +1.237157E+00 +6.284409E-01 +9.539296E-01 +5.206980E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -139,164 +105,292 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.446649E+00 -1.013796E+00 -9.490590E-01 -2.557034E-01 -1.533479E+00 -7.125528E-01 -1.303857E+00 -5.880199E-01 -3.822788E-01 -7.558920E-02 -8.548820E-01 -2.763157E-01 -4.714297E-01 -1.588901E-01 +2.001407E+00 +1.600000E+00 +7.159080E-01 +2.988090E-01 0.000000E+00 0.000000E+00 -1.109572E-01 -9.514310E-03 -1.621894E+00 -7.323979E-01 -2.329788E+00 -1.522693E+00 -6.995477E-01 -2.446957E-01 -7.586629E-02 -5.755693E-03 0.000000E+00 0.000000E+00 +3.473499E-01 +1.206520E-01 +1.597805E-01 +1.297695E-02 +1.438568E-01 +1.597365E-02 +8.612279E-02 +5.910825E-03 +9.004672E-01 +2.791173E-01 +6.485841E+00 +1.046238E+01 +6.743595E+00 +1.135216E+01 +7.681047E-01 +1.896253E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.455670E-02 -1.194166E-03 -1.113155E+00 -4.133643E-01 -1.212634E+00 -3.599153E-01 -1.548704E+00 -7.470060E-01 -1.916353E+00 -9.678959E-01 -3.617247E-01 -1.308448E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.906731E-02 -4.770293E-03 -1.184237E+00 -5.476329E-01 -9.482305E-01 -5.075797E-01 -5.056772E-01 -1.132023E-01 -2.538689E-01 -6.444941E-02 +9.572791E-01 +8.942065E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.148786E-01 -3.780757E-01 -9.371058E-01 -4.364939E-01 -4.650093E-01 -1.448489E-01 -5.028267E-01 -1.557262E-01 -1.710986E+00 -1.146930E+00 -1.323640E-01 -8.859409E-03 +5.299733E-01 +2.205463E-01 +1.349846E+00 +6.808561E-01 +6.874433E-01 +2.287801E-01 +5.651386E-01 +1.286874E-01 +5.729904E-01 +2.680764E-01 +5.509254E-01 +1.200498E-01 +1.494910E+00 +6.327940E-01 +2.444256E-01 +2.804968E-02 +6.927475E-01 +2.317744E-01 0.000000E+00 0.000000E+00 -1.208034E-01 -1.459347E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.949505E-03 -2.449760E-05 0.000000E+00 0.000000E+00 -3.911928E-01 -1.530318E-01 -4.287020E-02 -1.837854E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.425042E-01 +5.854257E-02 +2.237774E+00 +1.109643E+00 +7.495197E-01 +1.939234E-01 +3.804197E-01 +1.225870E-01 +1.009880E-01 +9.392498E-03 +2.424177E+00 +1.613025E+00 +2.226123E+00 +1.203764E+00 +1.939766E+00 +1.132042E+00 +3.953753E-01 +1.420303E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.898461E-03 -6.238568E-05 -6.061890E-02 -3.674651E-03 -1.191815E+00 -5.156780E-01 -1.250062E+00 -5.649280E-01 -7.783636E-01 -1.954889E-01 0.000000E+00 0.000000E+00 -2.476065E-01 -3.116371E-02 -2.531217E-01 -6.407059E-02 -5.942646E-01 -3.531504E-01 0.000000E+00 0.000000E+00 -3.092327E-01 -9.562486E-02 +2.501130E-02 +6.255649E-04 +3.984785E-01 +1.486414E-01 +1.251028E-01 +1.306358E-02 0.000000E+00 0.000000E+00 +9.831996E-01 +4.846833E-01 +4.237107E-01 +6.002592E-02 +8.922533E-01 +2.835397E-01 0.000000E+00 0.000000E+00 +3.174349E-01 +1.007649E-01 +1.260449E+00 +5.881747E-01 +3.147407E+00 +3.333589E+00 +2.021896E+00 +1.425606E+00 +1.377786E-01 +1.716503E-02 +3.011081E-02 +9.066609E-04 0.000000E+00 0.000000E+00 +5.118695E-02 +2.620104E-03 +0.000000E+00 +0.000000E+00 +1.484996E-01 +2.205214E-02 +9.889831E-01 +3.657975E-01 +2.850134E+00 +2.250972E+00 +4.131352E-01 +6.756111E-02 +8.393183E-03 +7.044551E-05 +0.000000E+00 +0.000000E+00 +7.462571E-02 +5.568996E-03 +0.000000E+00 +0.000000E+00 +2.560771E-01 +6.557550E-02 +9.262861E-03 +8.580059E-05 +2.505905E-01 +6.279558E-02 +5.136552E-01 +2.638417E-01 +1.441275E+00 +5.086866E-01 +2.913900E+00 +1.841912E+00 +6.978650E-01 +2.584000E-01 +1.451562E-02 +2.107031E-04 +0.000000E+00 +0.000000E+00 +3.079994E-03 +9.486363E-06 +1.492571E+00 +6.318792E-01 +2.083542E+00 +1.599782E+00 +2.677440E+00 +2.382024E+00 +4.457483E-01 +5.194318E-02 +5.424180E-02 +2.942173E-03 +0.000000E+00 +0.000000E+00 +2.355899E-02 +5.550260E-04 +3.571813E-02 +1.275785E-03 +6.588191E-01 +2.543824E-01 +4.171440E-01 +8.701395E-02 +7.735493E-01 +1.575534E-01 +4.033076E-01 +5.492660E-02 +4.513269E+00 +5.611449E+00 +1.653243E+00 +8.369762E-01 +1.045336E-01 +1.092727E-02 +2.486634E-01 +2.561523E-02 +1.090478E+00 +5.381842E-01 +6.314497E-01 +1.552199E-01 +3.417016E+00 +2.972256E+00 +5.709899E+00 +7.095076E+00 +1.194169E+00 +4.790399E-01 +1.420269E-01 +2.017164E-02 +0.000000E+00 +0.000000E+00 +3.214463E-01 +1.033278E-01 +2.222164E-02 +4.938014E-04 +2.028040E-01 +4.112944E-02 +1.417427E+00 +9.671327E-01 +1.453489E+00 +6.697189E-01 +8.534416E-01 +2.290345E-01 +5.367405E+00 +6.853344E+00 +1.237276E+00 +4.961691E-01 +5.835684E-02 +3.405521E-03 +5.574899E-01 +1.049542E-01 +4.235354E+00 +5.638989E+00 +2.034494E+00 +1.162774E+00 +1.533605E+00 +8.644494E-01 +4.663027E+00 +5.641430E+00 +1.261505E+00 +7.705207E-01 +1.954689E+00 +9.874394E-01 +1.449729E-01 +2.101714E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.564746E-04 -4.309589E-07 +1.398153E-01 +1.954831E-02 +5.089636E-01 +8.836228E-02 +1.422521E+00 +6.953668E-01 +1.137705E+00 +5.670907E-01 +3.521780E-01 +6.575561E-02 0.000000E+00 0.000000E+00 -1.178847E+00 -6.216556E-01 -6.230410E-01 -1.302106E-01 -1.454551E+00 -8.690328E-01 -1.771536E+00 -1.297657E+00 -2.378308E+00 -2.005719E+00 -1.151353E+00 -4.354728E-01 -6.385651E-01 -4.077654E-01 +7.713789E-01 +2.948263E-01 +3.267703E-01 +4.763836E-02 +1.252153E+00 +4.563947E-01 +1.962807E-01 +2.410165E-02 +1.357567E+00 +4.362757E-01 +2.356462E-01 +3.082678E-02 +1.380025E+00 +4.289689E-01 +1.876891E-01 +1.675278E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -307,38 +401,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.940736E-01 +2.763730E-02 +6.059470E-02 +3.671718E-03 +3.479381E-01 +1.210609E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.452042E-02 +1.191659E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.631232E+00 -8.012828E-01 -7.231079E-01 -2.170171E-01 -2.989568E+00 -2.300501E+00 -2.435710E+00 -1.419918E+00 -1.948580E+00 -9.273897E-01 -1.532501E+00 -1.032633E+00 -5.846831E-01 -1.355003E-01 -3.486854E-02 -1.023386E-03 -3.724253E-01 -1.387006E-01 -7.611368E-01 -2.029035E-01 -3.688050E-01 -8.361566E-02 +3.679763E-01 +1.354065E-01 +5.043842E-02 +2.544034E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -349,32 +433,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.197843E-01 -1.434827E-02 -8.437264E-02 -2.569811E-03 -1.103891E+00 -7.153760E-01 -4.308994E+00 -4.839398E+00 -5.714286E+00 -6.750719E+00 -1.258551E+00 -5.098425E-01 -6.527455E-01 -1.164772E-01 -8.086924E-01 -2.259358E-01 -9.011204E-02 -3.479554E-03 -3.369886E+00 -2.480226E+00 -2.919336E+00 -2.088649E+00 -2.378050E+00 -1.715263E+00 -6.674360E-01 -1.744526E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -383,80 +441,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.680789E+00 -1.144287E+00 -4.552955E+00 -4.489852E+00 -1.437564E+00 -7.142378E-01 -3.234705E-01 -8.846508E-02 -2.175232E+00 -1.092719E+00 -4.103202E-01 -8.470461E-02 0.000000E+00 0.000000E+00 -1.853475E-01 -3.435371E-02 -1.052712E+00 -4.225138E-01 -3.085971E+00 -2.340600E+00 -2.880463E+00 -1.858654E+00 -5.363409E-01 -1.501708E-01 -9.139296E-02 -8.352674E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.507123E-01 -2.271418E-02 -1.339282E+00 -4.656236E-01 -4.906674E+00 -5.217886E+00 -3.087876E+00 -2.437506E+00 -8.916777E-03 -7.950892E-05 -2.824518E-02 -7.977901E-04 -0.000000E+00 -0.000000E+00 -7.713739E-02 -5.950177E-03 -6.251875E-01 -2.055219E-01 -4.039604E-01 -7.463355E-02 -3.426711E-01 -5.326745E-02 -2.683602E-01 -6.063009E-02 -1.846638E-01 -2.687635E-02 -3.624780E-01 -1.313903E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.621874E-01 -4.229418E-01 -1.099406E+00 -6.578946E-01 -5.308277E-01 -1.009121E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -481,6 +467,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.678278E-01 +2.097037E-02 +5.312751E-02 +1.423243E-03 +3.374418E-01 +1.138670E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -509,6 +501,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.208007E-01 +2.057625E-01 +1.050464E+00 +5.524605E-01 +7.171592E-02 +5.143173E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -539,6 +537,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.214580E-02 +2.719184E-03 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat index 54cdf89f1..15724025c 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.102447E+00 7.056170E-03 +9.581523E-01 4.261823E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -277,10 +277,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.455587E-01 -1.194108E-01 -5.491443E-02 -3.015594E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -313,8 +309,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.197162E-02 -5.179914E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -347,8 +341,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.604976E-02 -2.575947E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -735,10 +727,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.525171E-02 -5.662820E-03 -1.073075E-01 -1.151490E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -769,10 +757,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.267212E-02 -3.927795E-03 -1.108880E-01 -1.229614E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -853,12 +837,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.353054E-04 -6.977351E-07 -2.372472E-01 -2.848702E-02 -2.548476E-01 -4.367046E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -889,12 +867,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.772100E-01 -2.187938E-02 -7.493226E-01 -1.828061E-01 -2.435524E-01 -4.711427E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -923,14 +895,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.099304E-02 -3.720151E-03 -2.004048E+00 -1.188065E+00 -3.129991E-01 -2.986664E-02 0.000000E+00 0.000000E+00 +1.083670E-01 +1.174340E-02 +3.904086E-02 +1.524189E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -959,12 +929,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.299620E-02 -8.468282E-05 -1.048639E-01 -1.099643E-02 0.000000E+00 0.000000E+00 +6.386562E-02 +4.078817E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1031,6 +999,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.905797E-02 +8.443654E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1063,6 +1033,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.532560E-03 +5.673946E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1285,6 +1257,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.306116E-02 +1.705939E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1313,16 +1287,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.155649E-03 -5.120332E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.445854E-02 -2.965733E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1347,20 +1317,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.147771E-02 -9.908465E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.884852E-01 -7.962353E-02 -5.867779E-01 -1.793277E-01 -1.150562E-01 -1.323793E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1397,10 +1359,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.262199E-01 -1.064194E-01 -8.742986E-02 -7.643980E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1431,22 +1389,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.960590E-01 -1.231335E-01 -2.156140E-01 -3.612957E-02 -9.941460E-02 -9.384197E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.285531E-01 -1.652591E-02 -1.471896E-02 -2.166477E-04 -2.890978E-01 -8.357755E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1467,20 +1413,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.914131E-01 -2.944950E-02 -1.647075E+00 -9.299333E-01 -2.222233E-01 -4.938322E-02 0.000000E+00 0.000000E+00 -1.180474E-02 -1.393518E-04 -1.022453E-02 -1.045410E-04 -6.303992E-02 -3.974031E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1501,14 +1435,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.518422E-02 -2.041614E-03 -3.381222E-01 -3.980183E-02 -1.557458E-01 -8.146833E-03 -2.642893E-02 -6.984881E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1517,6 +1443,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.002118E-02 +4.902966E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1537,22 +1465,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.316047E-01 -5.029141E-02 -3.858085E-01 -1.160218E-01 -4.204735E-02 -1.767980E-03 -1.834910E-01 -3.366896E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.465169E-02 +6.077057E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.623543E-01 +4.112455E-02 +2.258488E-01 +5.100769E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1573,10 +1499,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.051027E-02 -1.104657E-04 0.000000E+00 0.000000E+00 +1.729718E-01 +2.991925E-02 +2.994456E-02 +8.966769E-04 +9.977770E-03 +9.955589E-05 +4.396029E-01 +6.352575E-02 +5.669837E-01 +1.209384E-01 +1.423672E-01 +1.771243E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1591,6 +1527,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.722215E-02 +2.966023E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1601,6 +1539,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.565669E-02 +2.451320E-04 +8.200689E-01 +2.392979E-01 +1.748649E-01 +1.584562E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1617,6 +1561,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.036512E-02 +9.220404E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1629,6 +1575,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.998386E-02 +7.936690E-03 +1.089115E+00 +5.614559E-01 +4.805841E-02 +2.309610E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1657,6 +1609,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.742414E-01 +7.520835E-02 +6.796882E-01 +2.348838E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1813,10 +1769,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.294315E-02 -1.675252E-04 -3.944874E-02 -1.556203E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1833,8 +1785,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.787999E-02 -7.772938E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1845,16 +1795,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.567260E-01 -2.456305E-02 0.000000E+00 0.000000E+00 -2.512067E-01 -6.310483E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.448096E-01 +5.774877E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1887,22 +1835,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.033873E-01 +2.672168E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.709463E-03 -4.501689E-05 -3.771567E-02 -1.422472E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.316348E-01 -5.365469E-02 -8.083327E-03 -6.534017E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1933,12 +1875,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.099300E-01 -1.167835E-02 -5.545853E-01 -1.737656E-01 -3.867892E-01 -8.614803E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1967,12 +1903,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.323184E-02 -1.104355E-03 0.000000E+00 0.000000E+00 -1.507683E-02 -2.273108E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2001,8 +1933,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.363444E-02 -7.224796E-03 +5.319541E-03 +2.829751E-05 +3.420304E-01 +1.169848E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2021,10 +1955,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.157530E-01 -1.339876E-02 -3.618283E-01 -1.309197E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2033,8 +1963,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.315614E-02 +2.242266E-03 +6.974266E-02 +4.864039E-03 0.000000E+00 0.000000E+00 +2.688171E-02 +7.226262E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2045,10 +1981,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.285959E-03 -6.865712E-05 -1.313378E+00 -5.513788E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2057,8 +1989,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.718986E-02 -2.954913E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2069,6 +1999,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.896347E-02 +1.518152E-03 +1.048933E-01 +7.753481E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2081,12 +2015,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.296288E-01 -5.795578E-02 -7.161786E-01 -1.991675E-01 -7.445160E-01 -2.633450E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2105,6 +2033,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.396515E-03 +5.743285E-06 +8.372628E-02 +5.869222E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2113,14 +2045,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.409443E-02 +1.944319E-03 +2.812104E-01 +7.907929E-02 0.000000E+00 0.000000E+00 +1.125733E-01 +1.267274E-02 +3.364086E-01 +6.085431E-02 +8.236284E-02 +4.869311E-03 0.000000E+00 0.000000E+00 -6.177984E-01 -1.675365E-01 -7.019374E-01 -1.644350E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2135,10 +2073,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.381770E-02 +1.919990E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +8.563908E-02 +4.712912E-03 +9.597166E-01 +3.206571E-01 +3.164476E-01 +5.280988E-02 +2.073790E+00 +1.188596E+00 +9.609430E-01 +2.621642E-01 +4.350510E-01 +1.399885E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2151,14 +2103,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.834216E-01 -1.046386E-01 -3.945703E-02 -1.556857E-03 +5.412546E-04 +2.929565E-07 +1.480967E+00 +5.223268E-01 +1.727443E-01 +1.798769E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.254526E-01 +1.810099E-01 +2.391190E-01 +2.413267E-02 +3.823231E-01 +4.488287E-02 +4.156040E+00 +4.315161E+00 +1.009424E+00 +3.060875E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2175,6 +2139,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.308084E-01 +5.110266E-02 +2.004281E-01 +2.595071E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2183,6 +2151,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.052675E-02 +8.195093E-03 +3.050953E-01 +3.658883E-02 +1.622477E-01 +1.848987E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2197,6 +2171,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.164981E-01 +1.357182E-02 +9.373673E-02 +4.377146E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2353,10 +2331,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.246376E-01 -4.161497E-01 -6.220109E-01 -1.940589E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2387,12 +2361,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.387289E-02 -2.819990E-03 -6.155787E-01 -1.274394E-01 -5.052725E-02 -2.319554E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2411,8 +2379,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.090801E-01 -4.371451E-02 +1.370265E-01 +1.583750E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2421,14 +2389,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.339126E-02 -5.620796E-04 -6.387238E-01 -1.626685E-01 -3.779905E-01 -4.562692E-02 -4.833733E-01 -1.415891E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2457,10 +2417,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.684179E-01 -2.231177E-01 -5.853687E-01 -1.084102E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2471,10 +2427,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.784202E-02 -7.751779E-04 -2.222881E-02 -4.941200E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2515,8 +2467,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.822788E-01 -7.558920E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2543,14 +2493,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.217368E-01 -2.483684E-02 -1.466478E-01 -1.270155E-02 -1.285656E-04 -1.652912E-08 -3.178480E-02 -1.010274E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2563,6 +2505,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.602121E-02 +1.297527E-03 +2.054694E-02 +4.221767E-04 +3.699789E-01 +1.099867E-01 +1.034262E-01 +6.886192E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2577,10 +2527,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.481850E-01 -6.159578E-02 -2.232447E-01 -2.677357E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2595,6 +2541,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.974406E-01 +3.947626E-01 +3.006400E-01 +3.566201E-02 +5.176521E-02 +2.679637E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2623,16 +2575,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.449953E-02 -2.102363E-04 +1.613312E-01 +2.177880E-02 +4.750136E-01 +1.508283E-01 +5.109846E-02 +1.598242E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.645763E-02 -9.304074E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2657,22 +2611,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.936906E-01 +7.202020E-02 +1.714480E-01 +1.505050E-02 0.000000E+00 0.000000E+00 -1.536373E-01 -2.360442E-02 -9.693646E-01 -3.033065E-01 -3.946779E-01 -6.568242E-02 -1.042143E-01 -1.086063E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.226996E-01 +1.360325E-01 +7.317899E-02 +5.355164E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2693,24 +2647,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.992811E-02 -3.971296E-04 -2.140057E+00 -1.238253E+00 -1.698022E-01 -2.038365E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.711190E-02 +5.946246E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.946067E-02 +8.679308E-04 +1.124255E-01 +1.263950E-02 0.000000E+00 0.000000E+00 +8.878742E-02 +7.053770E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2727,10 +2683,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.427449E-02 -8.929237E-04 -6.652732E-01 -2.415872E-01 +1.561577E-01 +2.112454E-02 +1.640941E-01 +2.692689E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2739,6 +2695,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.508419E-01 +2.275329E-02 +2.887902E-01 +4.216076E-02 +4.015411E-01 +7.884729E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2755,6 +2717,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.595965E-02 +2.146289E-03 +3.159701E-01 +3.538767E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2763,8 +2729,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.586629E-02 -5.755693E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2787,8 +2751,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.403984E-02 +3.220777E-03 +1.220496E-01 +1.051103E-02 0.000000E+00 0.000000E+00 +4.308559E-02 +1.856368E-03 +1.206585E-01 +1.455847E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2815,6 +2787,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.069737E-01 +1.407934E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2921,8 +2895,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.455670E-02 -1.194166E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2933,8 +2905,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.651100E-01 -2.656838E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2955,20 +2925,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.911969E-01 -4.555906E-02 -6.568479E-01 -1.795652E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.343222E-02 -1.804245E-04 -2.569814E-02 -6.603942E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2987,26 +2949,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.470699E-01 -2.162955E-02 -9.856539E-01 -2.416634E-01 -4.077959E-02 -1.255968E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.524918E-02 -5.662438E-03 -1.717303E-01 -1.484790E-02 -6.639556E-01 -2.493087E-01 -4.575248E-01 -1.048110E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3017,8 +2965,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.802438E-01 -2.382206E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3033,14 +2979,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.428757E-02 -4.132892E-03 -1.902984E-01 -3.621346E-02 -8.210030E-01 -2.428821E-01 -1.405790E-02 -1.976246E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3049,12 +2987,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.382237E-02 -1.910579E-04 -8.020721E-01 -2.560767E-01 -1.081172E-02 -1.168933E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3071,10 +3003,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.948014E-01 -8.690785E-02 -6.692334E-02 -4.478733E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3155,6 +3083,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.614711E-02 +2.607292E-04 +9.531928E-02 +6.215764E-03 +2.906510E-01 +2.666265E-02 +4.038687E-02 +1.631099E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3181,6 +3117,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.367395E-03 +1.869768E-06 +6.997755E-01 +1.672455E-01 +9.975381E-01 +3.048346E-01 +5.390926E-01 +9.312562E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3209,10 +3153,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.906731E-02 -4.770293E-03 0.000000E+00 0.000000E+00 +6.670089E-01 +1.688817E-01 +8.251078E-02 +3.717992E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3237,18 +3183,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.469410E-02 -2.556178E-03 -1.106087E+00 -5.114564E-01 -1.969939E-02 -3.880658E-04 -3.756472E-03 -1.411108E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +9.683051E-03 +9.376148E-05 +3.707367E-01 +1.159281E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3271,12 +3213,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.588566E-01 -1.821769E-01 -3.450410E-01 -7.871452E-02 -1.443328E-01 -2.083197E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3293,6 +3229,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.009880E-01 +9.392498E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3301,14 +3239,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.739446E-01 +3.025673E-02 0.000000E+00 0.000000E+00 +2.075805E-02 +4.308965E-04 +8.573312E-01 +2.242081E-01 +2.267548E-01 +2.900095E-02 0.000000E+00 0.000000E+00 -3.868296E-01 -5.481086E-02 -1.188475E-01 -1.412473E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3319,12 +3261,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.978837E-01 +1.583114E-01 +7.475044E-01 +2.090484E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.630182E-02 +1.317822E-03 +6.960537E-02 +4.844908E-03 +3.721248E-03 +1.384769E-05 +7.406530E-02 +5.485669E-03 +1.330296E+00 +6.633077E-01 +1.862835E-02 +3.470153E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3339,22 +3297,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.329778E-01 +1.118274E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.162108E+00 +5.854785E-01 +5.640780E-01 +1.059726E-01 0.000000E+00 0.000000E+00 +1.426667E-01 +2.035380E-02 0.000000E+00 0.000000E+00 +7.091381E-02 +5.028768E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.093336E-01 -4.382056E-02 -4.453526E-02 -1.983389E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3373,6 +3337,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.987372E-02 +2.032332E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3399,6 +3365,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.471871E-02 +5.582886E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3497,12 +3465,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.629045E-01 -2.653788E-02 0.000000E+00 0.000000E+00 -3.664429E-01 -1.342804E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3531,12 +3495,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.598342E-01 -1.489123E-02 -6.017219E-01 -2.662981E-01 -1.755496E-01 -2.703254E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3565,12 +3523,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.027682E-02 -6.727755E-03 -3.577032E-01 -8.891660E-02 -1.702927E-02 -2.899959E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3581,10 +3533,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.501130E-02 +6.255649E-04 0.000000E+00 0.000000E+00 -1.689802E-01 -2.855432E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3593,12 +3545,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.010375E-03 -8.118685E-05 -2.267671E-01 -2.573879E-02 -9.806896E-02 -9.617521E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3621,16 +3567,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.907151E-02 +7.933735E-03 +3.094070E-01 +8.793386E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.273906E-01 -1.572310E-02 -1.583595E+00 -1.033645E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3657,12 +3603,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.251028E-01 +1.306358E-02 0.000000E+00 0.000000E+00 -5.913601E-02 -3.497068E-03 -7.322801E-02 -5.362341E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3721,6 +3665,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.420413E-02 +1.954005E-03 +9.389955E-01 +4.408852E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3731,10 +3679,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.292948E-02 -6.877299E-03 -3.787396E-02 -1.434437E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3755,6 +3699,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.525008E-01 +1.765369E-02 +2.712099E-01 +3.687123E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3783,6 +3731,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.028972E-02 +4.229428E-03 +8.019636E-01 +2.406005E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3825,6 +3777,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.849679E-01 +3.421312E-02 +1.324670E-01 +1.754750E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3851,18 +3807,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.949505E-03 -2.449760E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.562052E-01 +1.041492E-01 +6.039508E-02 +3.647565E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.751513E-01 +1.205013E-01 +2.686970E-01 +3.401364E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3883,10 +3845,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.680079E-01 +7.239471E-02 +9.309308E-01 +5.812760E-01 +7.945599E-03 +6.313254E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +8.567972E-02 +7.341014E-03 +1.754088E+00 +8.632559E-01 +7.548732E-04 +5.698335E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3905,6 +3879,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.211417E-01 +1.467532E-02 +1.144903E+00 +4.944035E-01 +7.558522E-01 +3.387696E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3927,12 +3907,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.861209E-02 -2.363135E-03 -3.408107E-01 -1.161519E-01 -1.770047E-03 -3.133067E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3941,8 +3915,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.257462E-01 +1.456033E-02 +1.755760E-03 +3.082694E-06 0.000000E+00 0.000000E+00 +1.027660E-02 +1.056086E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3963,8 +3943,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.287020E-02 -1.837854E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3977,6 +3955,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.011081E-02 +9.066609E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4057,6 +4037,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.118695E-02 +2.620104E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4129,6 +4111,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.484996E-01 +2.205214E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4145,16 +4129,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.508012E-02 +1.230615E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.522719E-01 +2.318672E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.071904E-01 +2.889953E-02 +1.077088E-01 +1.160118E-02 +4.867319E-01 +8.396510E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4169,16 +4163,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.491740E-02 +2.225288E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.898461E-03 -6.238568E-05 0.000000E+00 0.000000E+00 +4.099507E-01 +6.290297E-02 +3.631685E-01 +1.318914E-01 0.000000E+00 0.000000E+00 +1.023202E+00 +7.786623E-01 +7.978888E-01 +2.156290E-01 +2.410067E-01 +5.808423E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4195,6 +4199,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.728851E-03 +7.619283E-05 +1.582575E-01 +2.504545E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4203,12 +4211,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.698392E-01 +1.770322E-02 +7.630963E-02 +2.320465E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.061890E-02 -3.674651E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4235,14 +4245,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.323913E-01 -4.809925E-02 -6.786172E-01 -2.239554E-01 -2.667098E-01 -2.391140E-02 -1.409635E-02 -1.987071E-04 +8.393183E-03 +7.044551E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4269,14 +4273,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.942849E-02 -3.774662E-04 -2.622051E-01 -5.220350E-02 -3.235576E-01 -5.246702E-02 -6.448711E-01 -1.549424E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4303,16 +4299,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.740834E-02 -1.399384E-03 -1.958654E-01 -2.003447E-02 -1.399837E-02 -1.959544E-04 -3.614817E-01 -7.414981E-02 -1.696098E-01 -1.015431E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4323,6 +4309,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.462571E-02 +5.568996E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4377,10 +4365,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.078466E-01 -1.163089E-02 -1.397599E-01 -1.953282E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4395,16 +4379,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.524617E-01 +6.373692E-02 +3.615407E-03 +1.307117E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.158374E-02 -1.729207E-03 -2.115379E-01 -4.474830E-02 0.000000E+00 0.000000E+00 +9.262861E-03 +8.580059E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4433,14 +4419,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.006225E-01 -9.037389E-02 -9.880798E-02 -9.763018E-03 -1.353787E-01 -1.832739E-02 -5.945539E-02 -3.534943E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4457,6 +4435,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.701983E-01 +2.896747E-02 +8.039213E-02 +6.462895E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4485,6 +4467,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.715403E-02 +4.509664E-03 +4.465012E-01 +1.993633E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4505,12 +4491,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.653119E-01 -7.039040E-02 -4.392080E-02 -1.929037E-03 0.000000E+00 0.000000E+00 +2.157774E-03 +4.655987E-06 +6.310711E-02 +2.175397E-03 +8.322469E-02 +3.984732E-03 +8.945208E-02 +4.272340E-03 +7.510697E-01 +2.592974E-01 +1.811101E-01 +3.280086E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4521,6 +4515,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.927050E-03 +8.567625E-06 +2.682269E-01 +7.194567E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4531,6 +4529,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.678545E-02 +1.353169E-03 +3.580129E-01 +9.576000E-02 +4.871555E-01 +9.900006E-02 +1.399012E+00 +6.326647E-01 +4.954947E-01 +1.916585E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4539,6 +4547,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.374400E-01 +1.888975E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4559,6 +4569,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.262772E-01 +9.802531E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4569,6 +4581,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.699970E-01 +4.178443E-02 +1.590778E-03 +2.530575E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4599,6 +4615,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.451562E-02 +2.107031E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4663,6 +4681,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.079994E-03 +9.486363E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4687,12 +4707,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.429072E-01 +2.042247E-02 +4.016991E-02 +1.613622E-03 0.000000E+00 0.000000E+00 +3.890880E-02 +1.513895E-03 +1.234219E+00 +4.999183E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.636704E-02 +1.322562E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4711,8 +4741,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.985580E-01 +4.742470E-02 +3.209188E-02 +1.029889E-03 +1.385335E-02 +1.919154E-04 +2.009712E-01 +3.766426E-02 +5.245829E-01 +7.576339E-02 0.000000E+00 0.000000E+00 +4.241176E-01 +9.055699E-02 +3.230798E-01 +3.896400E-02 +2.621971E-01 +4.860490E-02 +4.089900E-03 +9.541983E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4727,10 +4775,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.046129E-01 +1.094386E-02 +1.524559E+00 +7.117854E-01 +7.244019E-01 +2.009724E-01 +1.834594E-02 +3.365736E-04 0.000000E+00 0.000000E+00 +1.021145E-01 +1.042738E-02 0.000000E+00 0.000000E+00 +1.047304E-01 +5.484511E-03 +9.867531E-02 +9.736817E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4749,10 +4811,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.457483E-01 +5.194318E-02 0.000000E+00 0.000000E+00 -6.564746E-04 -4.309589E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4783,6 +4845,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.424180E-02 +2.942173E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4811,12 +4875,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.561666E-01 -2.160076E-02 -6.169654E-01 -1.918667E-01 -4.057149E-01 -1.164413E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4845,16 +4903,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.478793E-02 -6.144415E-04 -2.499233E-01 -5.915712E-02 -1.483368E-02 -2.200380E-04 -2.989395E-01 -4.649231E-02 -3.455659E-02 -1.194158E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4875,20 +4923,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.400244E-03 -5.761172E-06 -3.733464E-01 -1.393875E-01 -1.976972E-02 -3.908419E-04 -6.704194E-01 -2.256237E-01 -2.377531E-01 -2.460351E-02 +2.355899E-02 +5.550260E-04 0.000000E+00 0.000000E+00 -1.508621E-01 -2.275936E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4913,24 +4951,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.065690E-02 -3.679260E-03 -2.180734E-01 -2.631317E-02 -7.260315E-02 -3.330470E-03 -1.470977E-01 -2.163773E-02 -7.528543E-01 -2.868962E-01 -5.202503E-01 -1.741595E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.453315E-02 +2.112125E-04 +2.118498E-02 +4.488034E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4945,20 +4975,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.187038E-01 -3.142772E-02 -1.895944E-01 -2.049257E-02 -2.864194E-02 -8.203607E-04 -9.568016E-02 -5.337143E-03 -2.980826E-01 -8.610513E-02 -1.094206E+00 -7.586699E-01 -4.533990E-01 -8.701800E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4975,22 +4991,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.015914E-02 +2.515939E-03 +5.972803E-01 +2.058844E-01 +1.137974E-02 +1.294985E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.941168E-02 -1.566312E-03 -5.819380E-01 -1.632552E-01 -3.760498E-02 -1.414135E-03 0.000000E+00 0.000000E+00 -4.506052E-01 -2.030450E-01 -3.179351E-02 -1.010827E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5007,16 +5019,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.075776E-01 +1.157293E-02 +1.876736E-02 +3.142669E-04 0.000000E+00 0.000000E+00 +8.266087E-02 +6.832819E-03 +8.619422E-02 +6.961732E-03 +1.219440E-01 +1.487034E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.159266E-01 -1.343898E-02 -5.226385E-01 -2.731510E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5025,12 +5043,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.137535E-02 +2.639427E-03 +1.001959E-01 +1.003923E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.324866E-01 +1.755269E-02 +4.894914E-01 +7.732641E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5049,6 +5075,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.034037E-01 +3.976882E-03 +4.274866E-02 +1.827448E-03 +1.074496E-01 +1.154542E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5057,6 +5089,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.693308E-02 +6.692039E-04 +3.591875E-02 +1.290157E-03 +8.685374E-02 +7.543573E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5067,6 +5105,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.358167E-02 +5.560954E-04 +4.196949E-01 +8.821559E-02 +9.766237E-01 +3.187064E-01 +2.263564E+00 +1.440716E+00 +6.206466E-01 +1.107636E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5077,6 +5125,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.770925E-01 +1.577698E-02 +3.206601E-02 +8.744270E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5087,6 +5139,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.668276E-01 +2.783144E-02 +9.642655E-02 +9.273190E-03 +5.348043E-02 +2.860156E-03 +4.290530E-02 +1.295592E-03 +8.510644E-02 +4.903433E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5097,6 +5159,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.084059E-01 +1.536167E-01 +5.000907E-01 +1.141659E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5127,12 +5193,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.751278E-02 +3.307719E-03 +4.702080E-02 +2.210956E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.784082E-02 +1.431928E-03 +2.013938E-02 +4.055947E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5155,12 +5229,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.397100E-02 +5.746087E-04 +1.667122E-01 +1.609363E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.919075E-02 +1.535915E-03 +7.785033E-03 +6.060673E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5177,12 +5259,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.573597E-01 +5.360516E-02 +1.067391E-01 +1.139323E-02 +5.230381E-02 +2.735689E-03 +5.802912E-01 +1.787062E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.532992E-02 +5.674597E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5199,8 +5291,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.333296E-03 +1.777678E-06 +6.053656E-02 +3.664676E-03 0.000000E+00 0.000000E+00 +1.526715E-02 +2.330858E-04 +4.636650E-02 +2.149852E-03 +1.962851E-01 +3.852783E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5217,6 +5319,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.715682E-01 +6.930003E-02 +1.711787E+00 +1.416936E+00 +4.750553E-01 +9.493584E-02 +4.064748E-01 +9.731062E-02 +5.521307E-01 +1.121121E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5233,12 +5345,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.089221E-02 +2.590017E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.355127E-01 +7.824603E-02 +2.225245E+00 +1.498774E+00 +1.675068E+00 +7.021248E-01 +5.221919E-01 +2.558641E-01 +1.298371E-01 +1.330104E-02 +5.996349E-01 +1.076801E-01 +1.715162E-01 +1.827797E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5251,14 +5379,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.032011E-01 +1.065047E-02 +2.415666E-01 +2.918472E-02 +4.165840E-02 +1.735423E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.628620E-01 +9.960984E-02 +3.325684E-01 +5.701948E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.231222E-02 +9.616114E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5283,6 +5423,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.420269E-01 +2.017164E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5359,6 +5501,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.878870E-01 +8.287890E-02 +3.355938E-02 +1.126232E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5381,22 +5527,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.731890E-01 -7.463223E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.585103E-01 -2.512553E-02 -1.397611E-01 -6.883554E-03 -1.059772E+00 -4.178726E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.222164E-02 +4.938014E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5415,18 +5555,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.777314E-03 -2.282273E-05 -1.000486E-01 -5.059980E-03 -3.582039E-01 -6.432855E-02 -9.731871E-03 -9.470932E-05 -1.372111E-01 -1.324202E-02 -1.131350E-01 -6.526806E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5437,6 +5565,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.028040E-01 +4.112944E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5451,22 +5581,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.115470E-01 -1.110930E-01 -5.943022E-01 -1.606657E-01 -6.362069E-02 -2.288086E-03 -4.271496E-01 -1.001382E-01 -5.590730E-01 -1.980612E-01 -2.587580E-02 -6.695571E-04 -4.957978E-01 -1.478440E-01 -4.122015E-01 -6.559436E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5483,60 +5597,50 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.408839E-01 +9.930466E-03 +1.266345E+00 +7.682957E-01 0.000000E+00 0.000000E+00 +1.019759E-02 +1.039909E-04 0.000000E+00 0.000000E+00 -2.315108E-02 -5.359723E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.413343E-01 -6.576614E-02 -8.189078E-01 -3.886598E-01 -6.218186E-02 -2.320102E-03 -8.994055E-01 -3.484588E-01 -1.907294E-01 -3.637772E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.753697E-01 +3.075454E-02 +1.022426E-01 +9.085949E-03 0.000000E+00 0.000000E+00 +2.054517E-01 +4.221041E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.157485E-01 +2.724497E-02 +7.546768E-01 +2.070655E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.411392E-01 -1.368736E-02 -2.806299E-01 -4.304438E-02 -9.034349E-02 -3.010544E-03 -1.457798E-01 -1.214742E-02 -5.355302E-01 -1.674120E-01 -5.378071E-01 -1.611076E-01 -2.173503E-01 -2.791086E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5549,6 +5653,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.731061E-01 +1.428980E-01 +2.729010E-01 +4.130164E-02 +7.434457E-03 +5.527115E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5557,20 +5667,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.888138E-03 -9.777527E-05 -4.328034E-01 -7.018169E-02 -1.783531E-01 -1.043350E-02 0.000000E+00 0.000000E+00 -4.359871E-01 -1.319768E-01 -2.848605E-01 -8.114553E-02 -1.906091E-01 -3.106247E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5583,18 +5681,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.749687E-03 -1.906602E-05 -1.931554E-01 -3.730901E-02 0.000000E+00 0.000000E+00 +1.892564E-01 +3.581800E-02 +6.573175E-01 +3.473163E-01 +1.641852E+00 +9.021845E-01 +2.844653E+00 +1.857026E+00 +3.432563E-02 +1.076561E-03 0.000000E+00 0.000000E+00 -5.672424E-02 -3.217639E-03 -1.788734E-01 -3.199570E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5603,10 +5703,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.138858E-01 -6.550852E-03 -3.629454E-02 -1.317294E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5617,12 +5713,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.486854E-02 -1.023386E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.382909E-01 +1.912437E-02 +5.463078E-01 +1.319680E-01 +2.874488E-01 +4.930982E-02 +2.593320E-01 +3.729386E-02 +5.896045E-03 +3.476335E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5649,16 +5753,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.876298E-01 -8.273087E-02 -8.479551E-02 -7.190278E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.835684E-02 +3.405521E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5679,14 +5781,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.718543E-03 +3.270174E-05 +1.244175E-01 +1.547972E-02 0.000000E+00 0.000000E+00 -2.966966E-01 -7.585142E-02 -2.993081E-01 -3.825902E-02 -1.651321E-01 -2.726862E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5707,16 +5807,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.165202E-01 +6.930471E-03 +2.882402E-01 +4.938325E-02 +1.786607E-02 +3.191964E-04 0.000000E+00 0.000000E+00 +7.373020E-01 +2.296999E-01 +1.076125E+00 +3.620665E-01 +2.958840E-01 +7.992999E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.632059E-01 -3.716460E-02 -1.055991E-01 -1.115116E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5727,10 +5835,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.215623E-02 +4.908984E-04 +7.663116E-02 +5.274653E-03 +2.330690E-01 +5.432115E-02 +4.899884E-02 +2.400887E-03 +2.509994E-01 +3.312022E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.646169E-01 +2.722514E-02 +2.779035E-01 +3.159895E-02 +2.470258E-01 +3.094096E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5745,6 +5869,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.545269E-01 +1.316670E-01 +3.866882E-01 +1.202701E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5755,8 +5883,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.327759E-01 +1.698162E-02 0.000000E+00 0.000000E+00 +8.606674E-02 +7.407484E-03 +1.553405E-01 +1.453017E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5765,6 +5899,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.685770E-02 +2.841820E-04 +4.475530E-02 +2.003037E-03 +7.510889E-01 +3.262838E-01 +1.518297E-01 +1.402100E-02 +1.948898E-01 +3.798205E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5777,12 +5921,32 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.650200E-01 +7.121133E-02 +2.384503E+00 +1.209500E+00 +2.214217E-01 +2.168033E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.375452E-01 +1.835673E-02 +1.548402E-01 +2.397550E-02 +6.058355E-02 +1.850618E-03 +1.431855E-01 +2.050210E-02 +7.003130E-01 +2.735249E-01 +3.979720E-01 +1.307259E-01 +9.764192E-02 +9.533945E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5793,6 +5957,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.762615E-01 +3.559292E-02 +8.969160E-01 +4.355459E-01 +8.832719E-02 +7.801693E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5823,6 +5993,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.149703E+00 +3.989107E-01 +8.049860E-01 +1.599684E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5853,6 +6027,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.449729E-01 +2.101714E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5935,8 +6111,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.197843E-01 -1.434827E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5969,8 +6143,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.313115E-02 -2.118609E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5979,8 +6151,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.124150E-02 -4.512011E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5991,14 +6161,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.259978E-01 -9.120084E-03 -3.029379E-01 -4.720304E-02 -7.711380E-02 -5.946538E-03 -5.578537E-01 -2.228200E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6009,14 +6171,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.998826E-02 -1.599061E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.355862E-01 +1.838362E-02 +4.229078E-03 +1.788510E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6025,28 +6189,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.738231E-01 -3.083875E-01 -8.792963E-02 -7.365684E-03 0.000000E+00 0.000000E+00 -6.859429E-01 -4.381930E-01 -4.475603E-02 -2.003102E-03 0.000000E+00 0.000000E+00 -1.062099E-02 -1.128054E-04 -6.084179E-01 -1.928178E-01 -1.211741E+00 -3.822834E-01 -9.857623E-01 -5.764008E-01 0.000000E+00 0.000000E+00 +9.929650E-02 +9.859794E-03 +2.615062E-01 +3.533944E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6059,6 +6211,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.481609E-01 +2.195166E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6071,18 +6225,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.578908E+00 -1.504342E+00 -1.531060E+00 -5.479843E-01 -7.091821E-01 -1.623053E-01 -8.951355E-01 -2.588366E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.071176E-01 +5.415798E-02 +1.115403E+00 +3.834870E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6105,14 +6255,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.078068E-01 -5.681691E-02 -5.382700E-01 -1.356178E-01 -1.432722E-01 -2.052691E-02 -1.692017E-01 -1.246774E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6121,6 +6263,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.432122E-01 +1.520012E-02 +5.073845E-01 +9.507188E-02 +4.871086E-01 +1.359461E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6137,16 +6285,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.122446E-02 -1.259886E-04 -3.558429E-01 -5.554412E-02 -1.692925E-01 -2.865995E-02 0.000000E+00 0.000000E+00 -1.163856E-01 -1.354561E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6159,12 +6299,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.704844E-02 -2.213555E-03 -5.346674E-01 -9.802160E-02 -2.269765E-01 -3.013916E-02 +1.164369E-01 +1.355755E-02 +2.357411E-01 +2.637254E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6193,12 +6331,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.349738E-02 -2.861969E-03 -2.033921E-02 -2.165773E-04 -1.627545E-02 -1.064467E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6223,20 +6355,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.496326E-02 -2.021695E-03 -6.129324E-01 -1.687388E-01 -2.278420E+00 -1.455838E+00 -4.335699E-01 -1.339468E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.200446E-02 +3.844553E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6257,20 +6383,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.817151E-01 -5.082293E-02 -1.070149E+00 -2.667041E-01 -1.439164E+00 -9.211140E-01 -1.283074E-01 -1.481969E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.186127E-01 +1.335481E-02 +2.870320E-01 +4.518339E-02 0.000000E+00 0.000000E+00 +1.235293E-01 +1.096341E-02 +1.895015E-01 +3.591083E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6291,14 +6417,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.049881E-01 -1.883453E-02 -1.508866E+00 -7.549587E-01 -4.010098E-01 -1.524411E-01 -2.631862E-01 -6.926699E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6309,6 +6427,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.297200E-01 +5.369804E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6325,12 +6445,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.295989E-01 -1.440027E-01 -1.090817E-01 -1.189883E-02 0.000000E+00 0.000000E+00 +9.183632E-01 +2.857439E-01 +4.069857E-03 +1.656373E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6341,6 +6461,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.895403E-02 +2.396497E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6363,6 +6485,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.473267E-01 +2.170516E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6375,6 +6499,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.853336E-01 +3.434853E-02 +4.612134E-01 +1.063957E-01 +1.223026E-01 +1.495794E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6389,6 +6519,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.750173E-01 +1.153950E-01 +2.136998E-01 +4.566760E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6401,6 +6535,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.771223E-02 +3.137232E-04 +1.358408E-01 +1.019608E-02 +8.209316E-02 +3.505892E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6431,6 +6571,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.078001E-01 +1.757558E-01 +5.722245E-01 +9.204133E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6461,6 +6605,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.354717E-01 +9.718740E-03 +5.221741E-02 +2.726658E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6513,16 +6661,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.013002E+00 -7.342944E-01 -1.389340E-01 -1.930266E-02 -3.765825E-01 -1.199979E-01 -1.221292E-01 -6.075446E-03 -3.014078E-02 -8.665341E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6531,12 +6669,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.962754E-03 -8.777912E-06 -3.776620E-01 -5.172631E-02 -4.136599E-01 -9.399949E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6547,18 +6679,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.693384E-01 -2.373996E-01 -1.910629E+00 -1.172406E+00 -2.881727E-01 -5.767501E-02 -4.855482E-02 -1.892682E-03 -6.546034E-01 -2.318763E-01 -1.873724E-01 -3.510840E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6567,12 +6687,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.193374E-01 -1.051560E-01 -7.105558E-01 -3.208231E-01 -7.151171E-03 -5.113925E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6583,12 +6697,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.933512E-03 -8.605494E-06 -1.069486E-02 -1.143799E-04 -8.689115E-02 -7.550072E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6603,8 +6711,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.954092E-04 -8.726658E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6617,12 +6723,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.699938E-02 -7.289665E-04 0.000000E+00 0.000000E+00 -2.961757E-01 -8.772007E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6649,16 +6751,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.625541E-01 -3.467106E-02 -1.228650E+00 -3.645409E-01 -3.254588E-01 -4.866345E-02 -3.393231E-01 -7.059711E-02 -1.924584E-02 -3.704024E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6683,14 +6775,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.213353E-01 -4.898934E-02 -9.693731E-02 -9.396841E-03 -4.445791E-02 -1.976506E-03 -4.758963E-02 -2.264773E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6723,6 +6807,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.663835E-02 +8.107319E-04 +1.574352E-01 +2.355445E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6739,8 +6827,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.853475E-01 -3.435371E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6759,6 +6845,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.788668E-02 +1.435401E-03 +2.270802E-02 +5.156542E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6769,12 +6859,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.813316E-02 -1.454138E-03 -3.041824E-01 -2.629618E-02 -7.103962E-01 -3.022410E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6795,20 +6879,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.896789E-03 +7.915286E-05 +4.847729E-02 +2.350047E-03 +2.905640E-01 +8.442745E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.043939E-01 -2.089814E-02 -9.015318E-01 -3.525237E-01 -1.419016E+00 -4.815865E-01 -5.610289E-01 -1.580760E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6835,14 +6917,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.456215E-01 -6.032991E-02 -9.586129E-01 -3.180953E-01 -1.504620E+00 -5.555003E-01 -4.344080E-02 -1.887103E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6869,12 +6943,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.833469E-01 -8.028547E-02 -1.596169E-01 -1.573140E-02 -9.337714E-02 -8.719290E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6905,8 +6973,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.139296E-02 -8.352674E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6959,6 +7025,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.452042E-02 +1.191659E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7049,14 +7117,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.679763E-01 +1.354065E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.507123E-01 -2.271418E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7079,26 +7147,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.671004E-01 -3.719394E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.727350E-02 +1.389314E-03 +1.316492E-02 +1.733151E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.655630E-02 -1.336363E-03 -1.711147E-01 -2.580079E-02 -5.510676E-02 -1.633869E-03 -3.842463E-01 -6.997051E-02 -4.251576E-01 -7.043236E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7107,16 +7167,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.138585E-01 -1.892076E-01 -4.509104E-01 -6.106776E-02 -5.473296E-01 -8.446369E-02 -1.371447E+00 -7.575889E-01 -4.929697E-03 -2.430192E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7125,32 +7175,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.501235E-01 -3.140143E-02 -1.212750E+00 -6.220960E-01 -2.707969E-01 -5.067333E-02 -9.097656E-02 -6.115551E-03 -9.355126E-02 -4.387198E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.098030E+00 -7.326929E-01 -6.181269E-01 -2.930526E-01 -5.709431E-01 -1.684348E-01 -3.185796E-01 -7.293711E-02 -1.228362E-02 -1.508873E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7159,14 +7189,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.813618E-01 -8.312020E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -8.855122E-02 -7.841319E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7175,8 +7201,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.916777E-03 -7.950892E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7229,8 +7253,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.824518E-02 -7.977901E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7283,8 +7305,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.713739E-02 -5.950177E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7317,8 +7337,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.251875E-01 -2.055219E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7347,12 +7365,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.349067E-02 -2.861252E-03 -8.385996E-02 -4.216710E-03 -2.666097E-01 -5.081994E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7383,10 +7395,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.374934E-01 -5.115209E-02 -5.177677E-03 -2.680834E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7417,8 +7425,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.683602E-01 -6.063009E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7449,10 +7455,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.620554E-01 -2.004315E-02 -2.260846E-02 -5.111425E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7481,10 +7483,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.517572E-01 -6.338168E-02 -1.107208E-01 -1.225909E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7669,14 +7667,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.337649E-01 -4.427485E-02 -8.822533E-02 -7.783708E-03 -2.279217E-01 -2.627022E-02 -4.122755E-01 -1.699711E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7685,16 +7675,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.702534E-03 -1.370875E-05 -2.384372E-01 -5.685228E-02 -2.211845E-01 -4.083378E-02 -1.896563E-01 -2.817529E-02 -3.458758E-01 -1.196300E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7703,8 +7683,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.005501E-01 -7.885603E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7719,8 +7697,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.054580E-02 -1.643962E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7737,14 +7713,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.902819E-01 -8.268688E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7977,6 +7945,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.589438E-01 +2.060098E-02 +8.883974E-03 +7.892500E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8001,8 +7973,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.085624E-02 +1.178580E-04 +1.326034E-02 +1.758367E-04 0.000000E+00 0.000000E+00 +2.901092E-02 +8.416334E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8027,6 +8005,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.582984E-01 +2.505838E-02 +1.460448E-01 +2.132907E-02 +3.309870E-02 +1.095524E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8539,6 +8523,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.924729E-01 +2.024222E-01 +2.832772E-02 +8.024597E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8565,6 +8553,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.155931E-01 +1.336177E-02 +2.362143E-01 +5.579719E-02 +6.926634E-01 +2.428255E-01 +5.993455E-03 +3.592151E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8593,6 +8589,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.171592E-02 +5.143173E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9137,6 +9135,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.214580E-02 +2.719184E-03 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_fixed_source/results_true.dat b/tests/test_fixed_source/results_true.dat index c4019d9c8..c7ddf3c0b 100644 --- a/tests/test_fixed_source/results_true.dat +++ b/tests/test_fixed_source/results_true.dat @@ -1,6 +1,6 @@ tally 1: -4.518781E+02 -2.056383E+04 +4.518784E+02 +2.056386E+04 leakage: 9.750000E+00 9.508100E+00 diff --git a/tests/test_infinite_cell/results_true.dat b/tests/test_infinite_cell/results_true.dat index d24fba45b..b909c92bb 100644 --- a/tests/test_infinite_cell/results_true.dat +++ b/tests/test_infinite_cell/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.901399E-02 2.451460E-03 +9.893460E-02 1.178316E-03 diff --git a/tests/test_lattice/results_true.dat b/tests/test_lattice/results_true.dat index 334ccba33..1d3d47fc4 100644 --- a/tests/test_lattice/results_true.dat +++ b/tests/test_lattice/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.608917E-01 5.170585E-02 +9.413559E-01 6.157522E-02 diff --git a/tests/test_lattice_hex/results_true.dat b/tests/test_lattice_hex/results_true.dat index aca8f5eb5..4ba727dbf 100644 --- a/tests/test_lattice_hex/results_true.dat +++ b/tests/test_lattice_hex/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.578422E-01 1.020501E-02 +2.496460E-01 1.257055E-02 diff --git a/tests/test_lattice_mixed/results_true.dat b/tests/test_lattice_mixed/results_true.dat index 068ec5abd..d3c19b11a 100644 --- a/tests/test_lattice_mixed/results_true.dat +++ b/tests/test_lattice_mixed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.882168E-01 1.190961E-02 +9.790311E-01 9.660522E-03 diff --git a/tests/test_lattice_multiple/results_true.dat b/tests/test_lattice_multiple/results_true.dat index 445f1386e..318bd9235 100644 --- a/tests/test_lattice_multiple/results_true.dat +++ b/tests/test_lattice_multiple/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.102447E+00 7.056170E-03 +9.581523E-01 4.261823E-02 diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index feb234bba..8b8556ffa 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,19 +1,19 @@ material group in nuclide mean std. dev. -0 1 1 total 0.411633 0.011133 material group in nuclide mean std. dev. -0 1 1 total 0.076642 0.004088 material group in group out nuclide mean std. dev. -0 1 1 1 total 0.349336 0.010391 material group out nuclide mean std. dev. -0 1 1 total 1 0.035459 material group in nuclide mean std. dev. -0 2 1 total 0.247014 0.017374 material group in nuclide mean std. dev. +0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. +0 1 1 total 0.076425 0.003691 material group in group out nuclide mean std. dev. +0 1 1 1 total 0.345643 0.021487 material group out nuclide mean std. dev. +0 1 1 total 1 0.055333 material group in nuclide mean std. dev. +0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. 0 2 1 total 0 0 material group in group out nuclide mean std. dev. -0 2 1 1 total 0.245818 0.016929 material group out nuclide mean std. dev. -0 2 1 total 0 0 material group in nuclide mean std. dev. -0 3 1 total 0.38971 0.050064 material group in nuclide mean std. dev. +0 2 1 1 total 0.241262 0.00841 material group out nuclide mean std. dev. +0 2 1 total 0 0 material group in nuclide mean std. dev. +0 3 1 total 0.400028 0.034667 material group in nuclide mean std. dev. 0 3 1 total 0 0 material group in group out nuclide mean std. dev. -0 3 1 1 total 0.383139 0.04919 material group out nuclide mean std. dev. +0 3 1 1 total 0.393462 0.033646 material group out nuclide mean std. dev. 0 3 1 total 0 0 material group in nuclide mean std. dev. -0 4 1 total 0.333404 0.029065 material group in nuclide mean std. dev. +0 4 1 total 0.377402 0.072937 material group in nuclide mean std. dev. 0 4 1 total 0 0 material group in group out nuclide mean std. dev. -0 4 1 1 total 0.327175 0.028684 material group out nuclide mean std. dev. +0 4 1 1 total 0.371473 0.071226 material group out nuclide mean std. dev. 0 4 1 total 0 0 material group in nuclide mean std. dev. 0 5 1 total 0 0 material group in nuclide mean std. dev. 0 5 1 total 0 0 material group in group out nuclide mean std. dev. @@ -30,20 +30,20 @@ 0 8 1 total 0 0 material group in nuclide mean std. dev. 0 8 1 total 0 0 material group in group out nuclide mean std. dev. 0 8 1 1 total 0 0 material group out nuclide mean std. dev. -0 8 1 total 0 0 material group in nuclide mean std. dev. -0 9 1 total 0 0 material group in nuclide mean std. dev. -0 9 1 total 0 0 material group in group out nuclide mean std. dev. -0 9 1 1 total 0 0 material group out nuclide mean std. dev. -0 9 1 total 0 0 material group in nuclide mean std. dev. -0 10 1 total 0 0 material group in nuclide mean std. dev. -0 10 1 total 0 0 material group in group out nuclide mean std. dev. -0 10 1 1 total 0 0 material group out nuclide mean std. dev. -0 10 1 total 0 0 material group in nuclide mean std. dev. -0 11 1 total 0.5826 0.456605 material group in nuclide mean std. dev. +0 8 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0.600536 0.748875 material group in nuclide mean std. dev. +0 9 1 total 0 0 material group in group out nuclide mean std. dev. +0 9 1 1 total 0.600536 0.748875 material group out nuclide mean std. dev. +0 9 1 total 0 0 material group in nuclide mean std. dev. +0 10 1 total 0.235515 0.613974 material group in nuclide mean std. dev. +0 10 1 total 0 0 material group in group out nuclide mean std. dev. +0 10 1 1 total 0.235515 0.613974 material group out nuclide mean std. dev. +0 10 1 total 0 0 material group in nuclide mean std. dev. +0 11 1 total 0.510145 0.741941 material group in nuclide mean std. dev. 0 11 1 total 0 0 material group in group out nuclide mean std. dev. -0 11 1 1 total 0.565899 0.441588 material group out nuclide mean std. dev. -0 11 1 total 0 0 material group in nuclide mean std. dev. -0 12 1 total 0 0 material group in nuclide mean std. dev. -0 12 1 total 0 0 material group in group out nuclide mean std. dev. -0 12 1 1 total 0 0 material group out nuclide mean std. dev. +0 11 1 1 total 0.491857 0.715554 material group out nuclide mean std. dev. +0 11 1 total 0 0 material group in nuclide mean std. dev. +0 12 1 total 0.73836 0.825631 material group in nuclide mean std. dev. +0 12 1 total 0 0 material group in group out nuclide mean std. dev. +0 12 1 1 total 0.723265 0.808231 material group out nuclide mean std. dev. 0 12 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 4c1b33a2d..99c373f99 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ avg(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.651951 1.469284 avg(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 0 avg(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.53214 1.320678 avg(distribcell) group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.718919 0.520644 avg(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 0 avg(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.695166 0.510606 avg(distribcell) group out nuclide mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 0c30cdde6..629bf6015 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,56 +1,56 @@ domain=1 type=transport -[ 0.37483545 0.81182796] -[ 0.00975656 0.09252336] +[ 0.37274472 0.86160691] +[ 0.02426918 0.03234902] domain=1 type=nu-fission -[ 0.02084086 0.6657263 ] -[ 0.00101232 0.0576272 ] +[ 0.021789 0.71407573] +[ 0.00118188 0.04055226] domain=1 type=nu-scatter matrix -[[ 3.42223019e-01 3.29418484e-04] - [ 0.00000000e+00 4.23113552e-01]] -[[ 0.00959152 0.00020181] - [ 0. 0.06751478]] +[[ 0.3373971 0.00155945] + [ 0. 0.42205129]] +[[ 0.02303884 0.00051015] + [ 0. 0.02161702]] domain=1 type=chi [ 1. 0.] -[ 0.03545939 0. ] +[ 0.05533321 0. ] domain=2 type=transport -[ 0.24589766 0.25842474] -[ 0.01860222 0.0422331 ] +[ 0.23725441 0.28593027] +[ 0.00818357 0.04879593] domain=2 type=nu-fission [ 0. 0.] [ 0. 0.] domain=2 type=nu-scatter matrix -[[ 0.24458479 0. ] - [ 0. 0.25842474]] -[[ 0.01809844 0. ] - [ 0. 0.0422331 ]] +[[ 0.23725441 0. ] + [ 0. 0.28593027]] +[[ 0.00818357 0. ] + [ 0. 0.04879593]] domain=2 type=chi [ 0. 0.] [ 0. 0.] domain=3 type=transport -[ 0.27657178 1.36782402] -[ 0.04377331 0.31728543] +[ 0.28690578 1.41815062] +[ 0.02740142 0.26530756] domain=3 type=nu-fission [ 0. 0.] [ 0. 0.] domain=3 type=nu-scatter matrix -[[ 0.24863329 0.02615518] - [ 0. 1.31985949]] -[[ 0.0423232 0.00168668] - [ 0. 0.31396901]] +[[ 0.25993686 0.02618721] + [ 0. 1.35952132]] +[[ 0.02611466 0.00166461] + [ 0. 0.2585046 ]] domain=3 type=chi [ 0. 0.] [ 0. 0.] domain=4 type=transport -[ 0.25159164 1.13749254] -[ 0.02889307 0.113413 ] +[ 0.24244686 1.25395921] +[ 0.06103082 0.38836257] domain=4 type=nu-fission [ 0. 0.] [ 0. 0.] domain=4 type=nu-scatter matrix -[[ 0.22741674 0.02292717] - [ 0. 1.08230769]] -[[ 0.02822188 0.00123647] - [ 0. 0.11058743]] +[[ 0.2179296 0.023662 ] + [ 0. 1.21507398]] +[[ 0.0585649 0.00308328] + [ 0. 0.3810251 ]] domain=4 type=chi [ 0. 0.] [ 0. 0.] @@ -111,58 +111,58 @@ domain=8 type=chi [ 0. 0.] [ 0. 0.] domain=9 type=transport -[ 0. 0.] -[ 0. 0.] +[ 0.60053598 0. ] +[ 0.74887543 0. ] domain=9 type=nu-fission [ 0. 0.] [ 0. 0.] domain=9 type=nu-scatter matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[ 0.60053598 0. ] + [ 0. 0. ]] +[[ 0.74887543 0. ] + [ 0. 0. ]] domain=9 type=chi [ 0. 0.] [ 0. 0.] domain=10 type=transport -[ 0. 0.] -[ 0. 0.] +[ 0.23551495 0. ] +[ 0.61397415 0. ] domain=10 type=nu-fission [ 0. 0.] [ 0. 0.] domain=10 type=nu-scatter matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[ 0.23551495 0. ] + [ 0. 0. ]] +[[ 0.61397415 0. ] + [ 0. 0. ]] domain=10 type=chi [ 0. 0.] [ 0. 0.] domain=11 type=transport -[ 0.32838473 1.08549606] -[ 0.42249726 1.10815395] +[ 0.18632392 0.94598628] +[ 0.63212919 1.59113341] domain=11 type=nu-fission [ 0. 0.] [ 0. 0.] domain=11 type=nu-scatter matrix -[[ 0.3032413 0.02514343] - [ 0. 1.03575664]] -[[ 0.40403607 0.02113257] - [ 0. 1.0667609 ]] +[[ 0.15444875 0.03187517] + [ 0. 0.90308451]] +[[ 0.59768579 0.0450783 ] + [ 0. 1.53214394]] domain=11 type=chi [ 0. 0.] [ 0. 0.] domain=12 type=transport -[ 0. 0.] -[ 0. 0.] +[ 0.21329208 1.3909745 ] +[ 0.27144387 2.13734565] domain=12 type=nu-fission [ 0. 0.] [ 0. 0.] domain=12 type=nu-scatter matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[ 0.18605249 0.02723959] + [ 0. 1.35711799]] +[[ 0.25763254 0.02955488] + [ 0. 2.08984614]] domain=12 type=chi [ 0. 0.] [ 0. 0.] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index a12693d54..29b94f44f 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,42 +1,42 @@ material group in nuclide mean std. dev. -1 1 1 total 0.374835 0.009757 -0 1 2 total 0.811828 0.092523 material group in nuclide mean std. dev. -1 1 1 total 0.020841 0.001012 -0 1 2 total 0.665726 0.057627 material group in group out nuclide mean std. dev. -3 1 1 1 total 0.342223 0.009592 -2 1 1 2 total 0.000329 0.000202 +1 1 1 total 0.372745 0.024269 +0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. +1 1 1 total 0.021789 0.001182 +0 1 2 total 0.714076 0.040552 material group in group out nuclide mean std. dev. +3 1 1 1 total 0.337397 0.023039 +2 1 1 2 total 0.001559 0.000510 1 1 2 1 total 0.000000 0.000000 -0 1 2 2 total 0.423114 0.067515 material group out nuclide mean std. dev. -1 1 1 total 1 0.035459 +0 1 2 2 total 0.422051 0.021617 material group out nuclide mean std. dev. +1 1 1 total 1 0.055333 0 1 2 total 0 0.000000 material group in nuclide mean std. dev. -1 2 1 total 0.245898 0.018602 -0 2 2 total 0.258425 0.042233 material group in nuclide mean std. dev. +1 2 1 total 0.237254 0.008184 +0 2 2 total 0.285930 0.048796 material group in nuclide mean std. dev. 1 2 1 total 0 0 0 2 2 total 0 0 material group in group out nuclide mean std. dev. -3 2 1 1 total 0.244585 0.018098 +3 2 1 1 total 0.237254 0.008184 2 2 1 2 total 0.000000 0.000000 1 2 2 1 total 0.000000 0.000000 -0 2 2 2 total 0.258425 0.042233 material group out nuclide mean std. dev. +0 2 2 2 total 0.285930 0.048796 material group out nuclide mean std. dev. 1 2 1 total 0 0 0 2 2 total 0 0 material group in nuclide mean std. dev. -1 3 1 total 0.276572 0.043773 -0 3 2 total 1.367824 0.317285 material group in nuclide mean std. dev. +1 3 1 total 0.286906 0.027401 +0 3 2 total 1.418151 0.265308 material group in nuclide mean std. dev. 1 3 1 total 0 0 0 3 2 total 0 0 material group in group out nuclide mean std. dev. -3 3 1 1 total 0.248633 0.042323 -2 3 1 2 total 0.026155 0.001687 +3 3 1 1 total 0.259937 0.026115 +2 3 1 2 total 0.026187 0.001665 1 3 2 1 total 0.000000 0.000000 -0 3 2 2 total 1.319859 0.313969 material group out nuclide mean std. dev. +0 3 2 2 total 1.359521 0.258505 material group out nuclide mean std. dev. 1 3 1 total 0 0 0 3 2 total 0 0 material group in nuclide mean std. dev. -1 4 1 total 0.251592 0.028893 -0 4 2 total 1.137493 0.113413 material group in nuclide mean std. dev. +1 4 1 total 0.242447 0.061031 +0 4 2 total 1.253959 0.388363 material group in nuclide mean std. dev. 1 4 1 total 0 0 0 4 2 total 0 0 material group in group out nuclide mean std. dev. -3 4 1 1 total 0.227417 0.028222 -2 4 1 2 total 0.022927 0.001236 +3 4 1 1 total 0.217930 0.058565 +2 4 1 2 total 0.023662 0.003083 1 4 2 1 total 0.000000 0.000000 -0 4 2 2 total 1.082308 0.110587 material group out nuclide mean std. dev. +0 4 2 2 total 1.215074 0.381025 material group out nuclide mean std. dev. 1 4 1 total 0 0 0 4 2 total 0 0 material group in nuclide mean std. dev. 1 5 1 total 0 0 @@ -78,44 +78,44 @@ 1 8 2 1 total 0 0 0 8 2 2 total 0 0 material group out nuclide mean std. dev. 1 8 1 total 0 0 -0 8 2 total 0 0 material group in nuclide mean std. dev. +0 8 2 total 0 0 material group in nuclide mean std. dev. +1 9 1 total 0.600536 0.748875 +0 9 2 total 0.000000 0.000000 material group in nuclide mean std. dev. 1 9 1 total 0 0 -0 9 2 total 0 0 material group in nuclide mean std. dev. -1 9 1 total 0 0 -0 9 2 total 0 0 material group in group out nuclide mean std. dev. -3 9 1 1 total 0 0 -2 9 1 2 total 0 0 -1 9 2 1 total 0 0 -0 9 2 2 total 0 0 material group out nuclide mean std. dev. +0 9 2 total 0 0 material group in group out nuclide mean std. dev. +3 9 1 1 total 0.600536 0.748875 +2 9 1 2 total 0.000000 0.000000 +1 9 2 1 total 0.000000 0.000000 +0 9 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. 1 9 1 total 0 0 -0 9 2 total 0 0 material group in nuclide mean std. dev. +0 9 2 total 0 0 material group in nuclide mean std. dev. +1 10 1 total 0.235515 0.613974 +0 10 2 total 0.000000 0.000000 material group in nuclide mean std. dev. 1 10 1 total 0 0 -0 10 2 total 0 0 material group in nuclide mean std. dev. -1 10 1 total 0 0 -0 10 2 total 0 0 material group in group out nuclide mean std. dev. -3 10 1 1 total 0 0 -2 10 1 2 total 0 0 -1 10 2 1 total 0 0 -0 10 2 2 total 0 0 material group out nuclide mean std. dev. +0 10 2 total 0 0 material group in group out nuclide mean std. dev. +3 10 1 1 total 0.235515 0.613974 +2 10 1 2 total 0.000000 0.000000 +1 10 2 1 total 0.000000 0.000000 +0 10 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. 1 10 1 total 0 0 0 10 2 total 0 0 material group in nuclide mean std. dev. -1 11 1 total 0.328385 0.422497 -0 11 2 total 1.085496 1.108154 material group in nuclide mean std. dev. +1 11 1 total 0.186324 0.632129 +0 11 2 total 0.945986 1.591133 material group in nuclide mean std. dev. 1 11 1 total 0 0 0 11 2 total 0 0 material group in group out nuclide mean std. dev. -3 11 1 1 total 0.303241 0.404036 -2 11 1 2 total 0.025143 0.021133 +3 11 1 1 total 0.154449 0.597686 +2 11 1 2 total 0.031875 0.045078 1 11 2 1 total 0.000000 0.000000 -0 11 2 2 total 1.035757 1.066761 material group out nuclide mean std. dev. +0 11 2 2 total 0.903085 1.532144 material group out nuclide mean std. dev. 1 11 1 total 0 0 -0 11 2 total 0 0 material group in nuclide mean std. dev. +0 11 2 total 0 0 material group in nuclide mean std. dev. +1 12 1 total 0.213292 0.271444 +0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. 1 12 1 total 0 0 -0 12 2 total 0 0 material group in nuclide mean std. dev. -1 12 1 total 0 0 -0 12 2 total 0 0 material group in group out nuclide mean std. dev. -3 12 1 1 total 0 0 -2 12 1 2 total 0 0 -1 12 2 1 total 0 0 -0 12 2 2 total 0 0 material group out nuclide mean std. dev. +0 12 2 total 0 0 material group in group out nuclide mean std. dev. +3 12 1 1 total 0.186052 0.257633 +2 12 1 2 total 0.027240 0.029555 +1 12 2 1 total 0.000000 0.000000 +0 12 2 2 total 1.357118 2.089846 material group out nuclide mean std. dev. 1 12 1 total 0 0 0 12 2 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 6226b7b81..6c34647eb 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1,47 +1,47 @@ material group in nuclide mean std. dev. -34 1 1 U-234 0.000074 0.000188 -35 1 1 U-235 0.007460 0.000634 -36 1 1 U-236 0.001766 0.000430 -37 1 1 U-238 0.211760 0.008955 -38 1 1 Np-237 0.000252 0.000216 +34 1 1 U-234 0.000173 0.000173 +35 1 1 U-235 0.010677 0.001889 +36 1 1 U-236 0.002390 0.001055 +37 1 1 U-238 0.213680 0.013272 +38 1 1 Np-237 0.000000 0.000000 39 1 1 Pu-238 0.000000 0.000000 -40 1 1 Pu-239 0.003526 0.000782 -41 1 1 Pu-240 0.003507 0.000688 -42 1 1 Pu-241 0.000426 0.000213 -43 1 1 Pu-242 0.000329 0.000329 -44 1 1 Am-241 0.000000 0.000000 +40 1 1 Pu-239 0.002911 0.000639 +41 1 1 Pu-240 0.004426 0.000806 +42 1 1 Pu-241 0.000690 0.000387 +43 1 1 Pu-242 0.000000 0.000000 +44 1 1 Am-241 0.000173 0.000173 45 1 1 Am-242m 0.000000 0.000000 46 1 1 Am-243 0.000000 0.000000 47 1 1 Cm-242 0.000000 0.000000 48 1 1 Cm-243 0.000000 0.000000 49 1 1 Cm-244 0.000000 0.000000 50 1 1 Cm-245 0.000000 0.000000 -51 1 1 Mo-95 0.000081 0.000185 -52 1 1 Tc-99 0.001119 0.000411 -53 1 1 Ru-101 0.000000 0.000000 -54 1 1 Ru-103 0.000000 0.000000 -55 1 1 Ag-109 0.000165 0.000165 +51 1 1 Mo-95 0.000000 0.000000 +52 1 1 Tc-99 0.000173 0.000173 +53 1 1 Ru-101 0.000238 0.000254 +54 1 1 Ru-103 0.000002 0.000243 +55 1 1 Ag-109 0.000000 0.000000 56 1 1 Xe-135 0.000000 0.000000 -57 1 1 Cs-133 0.000429 0.000225 -58 1 1 Nd-143 0.000340 0.000301 -59 1 1 Nd-145 0.000945 0.000432 +57 1 1 Cs-133 0.000347 0.000213 +58 1 1 Nd-143 0.000447 0.000292 +59 1 1 Nd-145 0.000564 0.000294 60 1 1 Sm-147 0.000000 0.000000 61 1 1 Sm-149 0.000000 0.000000 -62 1 1 Sm-150 0.000060 0.000195 -63 1 1 Sm-151 0.000165 0.000165 -64 1 1 Sm-152 0.000567 0.000249 -65 1 1 Eu-153 0.000329 0.000202 +62 1 1 Sm-150 0.000472 0.000239 +63 1 1 Sm-151 0.000000 0.000000 +64 1 1 Sm-152 0.000492 0.000352 +65 1 1 Eu-153 0.000173 0.000173 66 1 1 Gd-155 0.000000 0.000000 -67 1 1 O-16 0.141533 0.006851 +67 1 1 O-16 0.134715 0.009801 0 1 2 U-234 0.000000 0.000000 -1 1 2 U-235 0.177240 0.019675 -2 1 2 U-236 0.004312 0.003674 -3 1 2 U-238 0.260438 0.055946 -4 1 2 Np-237 0.001791 0.001797 +1 1 2 U-235 0.199907 0.007776 +2 1 2 U-236 0.001501 0.002037 +3 1 2 U-238 0.255355 0.029743 +4 1 2 Np-237 0.000000 0.000000 5 1 2 Pu-238 0.000000 0.000000 -6 1 2 Pu-239 0.143305 0.017349 -7 1 2 Pu-240 0.001791 0.001797 -8 1 2 Pu-241 0.016637 0.005253 +6 1 2 Pu-239 0.160378 0.011366 +7 1 2 Pu-240 0.007920 0.003710 +8 1 2 Pu-241 0.017820 0.003733 9 1 2 Pu-242 0.000000 0.000000 10 1 2 Am-241 0.000000 0.000000 11 1 2 Am-242m 0.000000 0.000000 @@ -55,35 +55,35 @@ 19 1 2 Ru-101 0.000000 0.000000 20 1 2 Ru-103 0.000000 0.000000 21 1 2 Ag-109 0.000000 0.000000 -22 1 2 Xe-135 0.018241 0.005630 -23 1 2 Cs-133 0.001791 0.001797 -24 1 2 Nd-143 0.007763 0.003677 +22 1 2 Xe-135 0.013860 0.003976 +23 1 2 Cs-133 0.000000 0.000000 +24 1 2 Nd-143 0.003960 0.002427 25 1 2 Nd-145 0.000000 0.000000 26 1 2 Sm-147 0.000000 0.000000 -27 1 2 Sm-149 0.005374 0.002238 -28 1 2 Sm-150 0.001791 0.001797 -29 1 2 Sm-151 0.000000 0.000000 -30 1 2 Sm-152 0.001791 0.001797 -31 1 2 Eu-153 0.001791 0.001797 +27 1 2 Sm-149 0.001980 0.001981 +28 1 2 Sm-150 0.000000 0.000000 +29 1 2 Sm-151 0.001980 0.001981 +30 1 2 Sm-152 0.000000 0.000000 +31 1 2 Eu-153 0.000000 0.000000 32 1 2 Gd-155 0.000000 0.000000 -33 1 2 O-16 0.167770 0.025149 material group in nuclide mean std. dev. -34 1 1 U-234 6.845790e-06 3.227706e-07 -35 1 1 U-235 9.347056e-03 3.928662e-04 -36 1 1 U-236 6.211042e-05 2.226027e-06 -37 1 1 U-238 6.351733e-03 3.790179e-04 -38 1 1 Np-237 1.271771e-05 5.545845e-07 -39 1 1 Pu-238 7.663212e-06 4.860133e-07 -40 1 1 Pu-239 3.926921e-03 3.043267e-04 -41 1 1 Pu-240 6.508634e-05 2.793072e-06 -42 1 1 Pu-241 1.050916e-03 6.999147e-05 -43 1 1 Pu-242 5.640937e-06 2.366815e-07 -44 1 1 Am-241 1.047764e-06 4.427465e-08 -45 1 1 Am-242m 9.826994e-07 7.585438e-08 -46 1 1 Am-243 7.721583e-07 4.007024e-08 -47 1 1 Cm-242 5.401883e-07 4.235379e-08 -48 1 1 Cm-243 2.064355e-07 1.860162e-08 -49 1 1 Cm-244 2.918438e-07 2.207478e-08 -50 1 1 Cm-245 3.264085e-07 3.150469e-08 +33 1 2 O-16 0.196946 0.014729 material group in nuclide mean std. dev. +34 1 1 U-234 7.274436e-06 4.419480e-07 +35 1 1 U-235 9.587789e-03 5.936867e-04 +36 1 1 U-236 7.566085e-05 7.523984e-06 +37 1 1 U-238 7.178361e-03 6.505657e-04 +38 1 1 Np-237 1.315681e-05 8.036505e-07 +39 1 1 Pu-238 7.746149e-06 3.992846e-07 +40 1 1 Pu-239 3.805332e-03 3.637556e-04 +41 1 1 Pu-240 6.941315e-05 4.729734e-06 +42 1 1 Pu-241 1.033846e-03 9.084007e-05 +43 1 1 Pu-242 5.995329e-06 3.821724e-07 +44 1 1 Am-241 1.148582e-06 8.271558e-08 +45 1 1 Am-242m 1.101985e-06 6.376129e-08 +46 1 1 Am-243 8.323823e-07 5.841794e-08 +47 1 1 Cm-242 5.088975e-07 5.258061e-08 +48 1 1 Cm-243 2.245435e-07 1.459031e-08 +49 1 1 Cm-244 2.993205e-07 2.746134e-08 +50 1 1 Cm-245 3.063614e-07 3.057777e-08 51 1 1 Mo-95 0.000000e+00 0.000000e+00 52 1 1 Tc-99 0.000000e+00 0.000000e+00 53 1 1 Ru-101 0.000000e+00 0.000000e+00 @@ -101,23 +101,23 @@ 65 1 1 Eu-153 0.000000e+00 0.000000e+00 66 1 1 Gd-155 0.000000e+00 0.000000e+00 67 1 1 O-16 0.000000e+00 0.000000e+00 -0 1 2 U-234 4.104195e-07 3.065579e-08 -1 1 2 U-235 3.490566e-01 2.635060e-02 -2 1 2 U-236 5.741696e-06 4.389191e-07 -3 1 2 U-238 5.027672e-07 3.822823e-08 -4 1 2 Np-237 2.593520e-07 2.536889e-08 -5 1 2 Pu-238 3.098896e-05 2.214628e-06 -6 1 2 Pu-239 2.727718e-01 2.870084e-02 -7 1 2 Pu-240 4.413447e-06 3.622781e-07 -8 1 2 Pu-241 4.370225e-02 3.791177e-03 -9 1 2 Pu-242 8.159609e-08 6.163540e-09 -10 1 2 Am-241 4.495589e-06 5.183237e-07 -11 1 2 Am-242m 1.349582e-04 1.062926e-05 -12 1 2 Am-243 7.470727e-08 5.781858e-09 -13 1 2 Cm-242 9.093231e-07 6.842831e-08 -14 1 2 Cm-243 1.742377e-06 1.369426e-07 -15 1 2 Cm-244 1.479902e-07 1.116327e-08 -16 1 2 Cm-245 1.099337e-05 7.987632e-07 +0 1 2 U-234 4.408571e-07 2.828333e-08 +1 1 2 U-235 3.768090e-01 2.445691e-02 +2 1 2 U-236 6.097532e-06 3.733076e-07 +3 1 2 U-238 5.353069e-07 3.310577e-08 +4 1 2 Np-237 2.702979e-07 2.098942e-08 +5 1 2 Pu-238 3.463104e-05 2.638405e-06 +6 1 2 Pu-239 2.889640e-01 1.376023e-02 +7 1 2 Pu-240 4.533642e-06 2.544334e-07 +8 1 2 Pu-241 4.809358e-02 2.778366e-03 +9 1 2 Pu-242 8.715316e-08 5.460943e-09 +10 1 2 Am-241 4.611731e-06 2.155065e-07 +11 1 2 Am-242m 1.428045e-04 8.436508e-06 +12 1 2 Am-243 7.883889e-08 4.734559e-09 +13 1 2 Cm-242 9.731014e-07 6.143805e-08 +14 1 2 Cm-243 1.825829e-06 1.074864e-07 +15 1 2 Cm-244 1.581821e-07 9.938154e-09 +16 1 2 Cm-245 1.213384e-05 8.812070e-07 17 1 2 Mo-95 0.000000e+00 0.000000e+00 18 1 2 Tc-99 0.000000e+00 0.000000e+00 19 1 2 Ru-101 0.000000e+00 0.000000e+00 @@ -135,15 +135,15 @@ 31 1 2 Eu-153 0.000000e+00 0.000000e+00 32 1 2 Gd-155 0.000000e+00 0.000000e+00 33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide mean std. dev. -102 1 1 1 U-234 0.000074 0.000188 -103 1 1 1 U-235 0.002518 0.000812 -104 1 1 1 U-236 0.001437 0.000445 -105 1 1 1 U-238 0.192819 0.008439 -106 1 1 1 Np-237 0.000087 0.000182 +102 1 1 1 U-234 0.000000 0.000000 +103 1 1 1 U-235 0.003226 0.001139 +104 1 1 1 U-236 0.001697 0.000923 +105 1 1 1 U-238 0.194620 0.013297 +106 1 1 1 Np-237 0.000000 0.000000 107 1 1 1 Pu-238 0.000000 0.000000 -108 1 1 1 Pu-239 0.001055 0.000364 -109 1 1 1 Pu-240 0.000378 0.000277 -110 1 1 1 Pu-241 0.000097 0.000178 +108 1 1 1 Pu-239 0.001005 0.000477 +109 1 1 1 Pu-240 0.001307 0.000295 +110 1 1 1 Pu-241 0.000344 0.000244 111 1 1 1 Pu-242 0.000000 0.000000 112 1 1 1 Am-241 0.000000 0.000000 113 1 1 1 Am-242m 0.000000 0.000000 @@ -152,27 +152,27 @@ 116 1 1 1 Cm-243 0.000000 0.000000 117 1 1 1 Cm-244 0.000000 0.000000 118 1 1 1 Cm-245 0.000000 0.000000 -119 1 1 1 Mo-95 0.000081 0.000185 -120 1 1 1 Tc-99 0.000625 0.000394 -121 1 1 1 Ru-101 0.000000 0.000000 -122 1 1 1 Ru-103 0.000000 0.000000 +119 1 1 1 Mo-95 0.000000 0.000000 +120 1 1 1 Tc-99 0.000000 0.000000 +121 1 1 1 Ru-101 0.000238 0.000254 +122 1 1 1 Ru-103 0.000002 0.000243 123 1 1 1 Ag-109 0.000000 0.000000 124 1 1 1 Xe-135 0.000000 0.000000 -125 1 1 1 Cs-133 0.000265 0.000193 -126 1 1 1 Nd-143 0.000340 0.000301 -127 1 1 1 Nd-145 0.000616 0.000399 +125 1 1 1 Cs-133 0.000000 0.000000 +126 1 1 1 Nd-143 0.000447 0.000292 +127 1 1 1 Nd-145 0.000564 0.000294 128 1 1 1 Sm-147 0.000000 0.000000 129 1 1 1 Sm-149 0.000000 0.000000 -130 1 1 1 Sm-150 0.000060 0.000195 +130 1 1 1 Sm-150 0.000299 0.000238 131 1 1 1 Sm-151 0.000000 0.000000 -132 1 1 1 Sm-152 0.000567 0.000249 +132 1 1 1 Sm-152 0.000492 0.000352 133 1 1 1 Eu-153 0.000000 0.000000 134 1 1 1 Gd-155 0.000000 0.000000 -135 1 1 1 O-16 0.141203 0.006870 +135 1 1 1 O-16 0.133156 0.009821 68 1 1 2 U-234 0.000000 0.000000 69 1 1 2 U-235 0.000000 0.000000 70 1 1 2 U-236 0.000000 0.000000 -71 1 1 2 U-238 0.000000 0.000000 +71 1 1 2 U-238 0.000173 0.000173 72 1 1 2 Np-237 0.000000 0.000000 73 1 1 2 Pu-238 0.000000 0.000000 74 1 1 2 Pu-239 0.000000 0.000000 @@ -202,7 +202,7 @@ 98 1 1 2 Sm-152 0.000000 0.000000 99 1 1 2 Eu-153 0.000000 0.000000 100 1 1 2 Gd-155 0.000000 0.000000 -101 1 1 2 O-16 0.000329 0.000202 +101 1 1 2 O-16 0.001386 0.000446 34 1 2 1 U-234 0.000000 0.000000 35 1 2 1 U-235 0.000000 0.000000 36 1 2 1 U-236 0.000000 0.000000 @@ -238,14 +238,14 @@ 66 1 2 1 Gd-155 0.000000 0.000000 67 1 2 1 O-16 0.000000 0.000000 0 1 2 2 U-234 0.000000 0.000000 -1 1 2 2 U-235 0.017813 0.004846 -2 1 2 2 U-236 0.002521 0.001945 -3 1 2 2 U-238 0.228195 0.049264 +1 1 2 2 U-235 0.003889 0.003962 +2 1 2 2 U-236 0.001501 0.002037 +3 1 2 2 U-238 0.219715 0.025984 4 1 2 2 Np-237 0.000000 0.000000 5 1 2 2 Pu-238 0.000000 0.000000 6 1 2 2 Pu-239 0.000000 0.000000 7 1 2 2 Pu-240 0.000000 0.000000 -8 1 2 2 Pu-241 0.000515 0.002200 +8 1 2 2 Pu-241 0.000000 0.000000 9 1 2 2 Pu-242 0.000000 0.000000 10 1 2 2 Am-241 0.000000 0.000000 11 1 2 2 Am-242m 0.000000 0.000000 @@ -259,9 +259,9 @@ 19 1 2 2 Ru-101 0.000000 0.000000 20 1 2 2 Ru-103 0.000000 0.000000 21 1 2 2 Ag-109 0.000000 0.000000 -22 1 2 2 Xe-135 0.002119 0.003874 +22 1 2 2 Xe-135 0.000000 0.000000 23 1 2 2 Cs-133 0.000000 0.000000 -24 1 2 2 Nd-143 0.004181 0.002609 +24 1 2 2 Nd-143 0.000000 0.000000 25 1 2 2 Nd-145 0.000000 0.000000 26 1 2 2 Sm-147 0.000000 0.000000 27 1 2 2 Sm-149 0.000000 0.000000 @@ -270,16 +270,16 @@ 30 1 2 2 Sm-152 0.000000 0.000000 31 1 2 2 Eu-153 0.000000 0.000000 32 1 2 2 Gd-155 0.000000 0.000000 -33 1 2 2 O-16 0.167770 0.025149 material group out nuclide mean std. dev. +33 1 2 2 O-16 0.196946 0.014729 material group out nuclide mean std. dev. 34 1 1 U-234 0 0.000000 -35 1 1 U-235 1 0.083157 -36 1 1 U-236 1 1.414214 -37 1 1 U-238 1 0.175094 +35 1 1 U-235 1 0.066362 +36 1 1 U-236 0 0.000000 +37 1 1 U-238 1 0.093082 38 1 1 Np-237 0 0.000000 39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.080013 +40 1 1 Pu-239 1 0.104567 41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.272314 +42 1 1 Pu-241 1 0.263696 43 1 1 Pu-242 0 0.000000 44 1 1 Am-241 0 0.000000 45 1 1 Am-242m 0 0.000000 @@ -339,16 +339,16 @@ 31 1 2 Eu-153 0 0.000000 32 1 2 Gd-155 0 0.000000 33 1 2 O-16 0 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0.123212 0.010296 -6 2 1 Zr-91 0.041136 0.005109 -7 2 1 Zr-92 0.038640 0.004343 -8 2 1 Zr-94 0.039928 0.006609 -9 2 1 Zr-96 0.002982 0.001882 -0 2 2 Zr-90 0.103289 0.030798 -1 2 2 Zr-91 0.064487 0.017642 -2 2 2 Zr-92 0.035554 0.022411 -3 2 2 Zr-94 0.052741 0.014095 -4 2 2 Zr-96 0.002354 0.004958 material group in nuclide mean std. dev. +5 2 1 Zr-90 0.104734 0.008915 +6 2 1 Zr-91 0.036155 0.003735 +7 2 1 Zr-92 0.042422 0.003029 +8 2 1 Zr-94 0.046148 0.006251 +9 2 1 Zr-96 0.007794 0.001536 +0 2 2 Zr-90 0.121688 0.034934 +1 2 2 Zr-91 0.061792 0.024317 +2 2 2 Zr-92 0.041633 0.016323 +3 2 2 Zr-94 0.060818 0.021483 +4 2 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. 5 2 1 Zr-90 0 0 6 2 1 Zr-91 0 0 7 2 1 Zr-92 0 0 @@ -359,11 +359,11 @@ 2 2 2 Zr-92 0 0 3 2 2 Zr-94 0 0 4 2 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -15 2 1 1 Zr-90 0.123212 0.010296 -16 2 1 1 Zr-91 0.040260 0.004742 -17 2 1 1 Zr-92 0.038640 0.004343 -18 2 1 1 Zr-94 0.039490 0.006845 -19 2 1 1 Zr-96 0.002982 0.001882 +15 2 1 1 Zr-90 0.104734 0.008915 +16 2 1 1 Zr-91 0.036155 0.003735 +17 2 1 1 Zr-92 0.042422 0.003029 +18 2 1 1 Zr-94 0.046148 0.006251 +19 2 1 1 Zr-96 0.007794 0.001536 10 2 1 2 Zr-90 0.000000 0.000000 11 2 1 2 Zr-91 0.000000 0.000000 12 2 1 2 Zr-92 0.000000 0.000000 @@ -374,11 +374,11 @@ 7 2 2 1 Zr-92 0.000000 0.000000 8 2 2 1 Zr-94 0.000000 0.000000 9 2 2 1 Zr-96 0.000000 0.000000 -0 2 2 2 Zr-90 0.103289 0.030798 -1 2 2 2 Zr-91 0.064487 0.017642 -2 2 2 2 Zr-92 0.035554 0.022411 -3 2 2 2 Zr-94 0.052741 0.014095 -4 2 2 2 Zr-96 0.002354 0.004958 material group out nuclide mean std. dev. +0 2 2 2 Zr-90 0.121688 0.034934 +1 2 2 2 Zr-91 0.061792 0.024317 +2 2 2 2 Zr-92 0.041633 0.016323 +3 2 2 2 Zr-94 0.060818 0.021483 +4 2 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. 5 2 1 Zr-90 0 0 6 2 1 Zr-91 0 0 7 2 1 Zr-92 0 0 @@ -389,14 +389,14 @@ 2 2 2 Zr-92 0 0 3 2 2 Zr-94 0 0 4 2 2 Zr-96 0 0 material group in nuclide mean std. dev. -4 3 1 H-1 0.201049 0.041488 -5 3 1 O-16 0.074334 0.007160 -6 3 1 B-10 0.001189 0.000730 +4 3 1 H-1 0.207103 0.023028 +5 3 1 O-16 0.079282 0.005197 +6 3 1 B-10 0.000521 0.000244 7 3 1 B-11 0.000000 0.000000 -0 3 2 H-1 1.231384 0.305890 -1 3 2 O-16 0.097440 0.020608 -2 3 2 B-10 0.037686 0.008653 -3 3 2 B-11 0.001313 0.001766 material group in nuclide mean std. dev. +0 3 2 H-1 1.283344 0.250946 +1 3 2 O-16 0.085363 0.014001 +2 3 2 B-10 0.049249 0.008232 +3 3 2 B-11 0.000195 0.001527 material group in nuclide mean std. dev. 4 3 1 H-1 0 0 5 3 1 O-16 0 0 6 3 1 B-10 0 0 @@ -405,22 +405,22 @@ 1 3 2 O-16 0 0 2 3 2 B-10 0 0 3 3 2 B-11 0 0 material group in group out nuclide mean std. dev. -12 3 1 1 H-1 0.174497 0.040671 -13 3 1 1 O-16 0.074136 0.007210 +12 3 1 1 H-1 0.181306 0.022102 +13 3 1 1 O-16 0.078631 0.005044 14 3 1 1 B-10 0.000000 0.000000 15 3 1 1 B-11 0.000000 0.000000 -8 3 1 2 H-1 0.026155 0.001687 -9 3 1 2 O-16 0.000000 0.000000 +8 3 1 2 H-1 0.025666 0.001582 +9 3 1 2 O-16 0.000521 0.000131 10 3 1 2 B-10 0.000000 0.000000 11 3 1 2 B-11 0.000000 0.000000 4 3 2 1 H-1 0.000000 0.000000 5 3 2 1 O-16 0.000000 0.000000 6 3 2 1 B-10 0.000000 0.000000 7 3 2 1 B-11 0.000000 0.000000 -0 3 2 2 H-1 1.221106 0.302782 -1 3 2 2 O-16 0.097440 0.020608 +0 3 2 2 H-1 1.273963 0.250623 +1 3 2 2 O-16 0.085363 0.014001 2 3 2 2 B-10 0.000000 0.000000 -3 3 2 2 B-11 0.001313 0.001766 material group out nuclide mean std. dev. +3 3 2 2 B-11 0.000195 0.001527 material group out nuclide mean std. dev. 4 3 1 H-1 0 0 5 3 1 O-16 0 0 6 3 1 B-10 0 0 @@ -429,13 +429,13 @@ 1 3 2 O-16 0 0 2 3 2 B-10 0 0 3 3 2 B-11 0 0 material group in nuclide mean std. dev. -4 4 1 H-1 0.178673 0.023950 -5 4 1 O-16 0.071869 0.007853 -6 4 1 B-10 0.000624 0.000158 -7 4 1 B-11 0.000425 0.000318 -0 4 2 H-1 1.010325 0.104936 -1 4 2 O-16 0.079647 0.012666 -2 4 2 B-10 0.047520 0.003811 +4 4 1 H-1 0.175242 0.053715 +5 4 1 O-16 0.066545 0.010083 +6 4 1 B-10 0.000570 0.000352 +7 4 1 B-11 0.000089 0.000346 +0 4 2 H-1 1.142895 0.365140 +1 4 2 O-16 0.085141 0.028073 +2 4 2 B-10 0.025923 0.007276 3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. 4 4 1 H-1 0 0 5 4 1 O-16 0 0 @@ -445,11 +445,11 @@ 1 4 2 O-16 0 0 2 4 2 B-10 0 0 3 4 2 B-11 0 0 material group in group out nuclide mean std. dev. -12 4 1 1 H-1 0.155278 0.023436 -13 4 1 1 O-16 0.071713 0.007769 +12 4 1 1 H-1 0.151295 0.051491 +13 4 1 1 O-16 0.066545 0.010083 14 4 1 1 B-10 0.000000 0.000000 -15 4 1 1 B-11 0.000425 0.000318 -8 4 1 2 H-1 0.022927 0.001236 +15 4 1 1 B-11 0.000089 0.000346 +8 4 1 2 H-1 0.023662 0.003083 9 4 1 2 O-16 0.000000 0.000000 10 4 1 2 B-10 0.000000 0.000000 11 4 1 2 B-11 0.000000 0.000000 @@ -457,8 +457,8 @@ 5 4 2 1 O-16 0.000000 0.000000 6 4 2 1 B-10 0.000000 0.000000 7 4 2 1 B-11 0.000000 0.000000 -0 4 2 2 H-1 1.002661 0.104168 -1 4 2 2 O-16 0.079647 0.012666 +0 4 2 2 H-1 1.129933 0.361681 +1 4 2 2 O-16 0.085141 0.028073 2 4 2 2 B-10 0.000000 0.000000 3 4 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. 4 4 1 H-1 0 0 @@ -1368,7 +1368,49 @@ 17 8 2 Cr-50 0 0 18 8 2 Cr-52 0 0 19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. +20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 9 1 H-1 0.150655 0.480993 +22 9 1 O-16 0.116221 0.114089 +23 9 1 B-10 0.000000 0.000000 +24 9 1 B-11 0.000000 0.000000 +25 9 1 Fe-54 0.000000 0.000000 +26 9 1 Fe-56 0.186217 0.199795 +27 9 1 Fe-57 0.000000 0.000000 +28 9 1 Fe-58 0.000000 0.000000 +29 9 1 Ni-58 0.000000 0.000000 +30 9 1 Ni-60 0.000000 0.000000 +31 9 1 Ni-61 0.000000 0.000000 +32 9 1 Ni-62 0.000000 0.000000 +33 9 1 Ni-64 0.000000 0.000000 +34 9 1 Mn-55 0.000000 0.000000 +35 9 1 Si-28 0.000000 0.000000 +36 9 1 Si-29 0.000000 0.000000 +37 9 1 Si-30 0.000000 0.000000 +38 9 1 Cr-50 0.000000 0.000000 +39 9 1 Cr-52 0.000000 0.000000 +40 9 1 Cr-53 0.147443 0.139574 +41 9 1 Cr-54 0.000000 0.000000 +0 9 2 H-1 0.000000 0.000000 +1 9 2 O-16 0.000000 0.000000 +2 9 2 B-10 0.000000 0.000000 +3 9 2 B-11 0.000000 0.000000 +4 9 2 Fe-54 0.000000 0.000000 +5 9 2 Fe-56 0.000000 0.000000 +6 9 2 Fe-57 0.000000 0.000000 +7 9 2 Fe-58 0.000000 0.000000 +8 9 2 Ni-58 0.000000 0.000000 +9 9 2 Ni-60 0.000000 0.000000 +10 9 2 Ni-61 0.000000 0.000000 +11 9 2 Ni-62 0.000000 0.000000 +12 9 2 Ni-64 0.000000 0.000000 +13 9 2 Mn-55 0.000000 0.000000 +14 9 2 Si-28 0.000000 0.000000 +15 9 2 Si-29 0.000000 0.000000 +16 9 2 Si-30 0.000000 0.000000 +17 9 2 Cr-50 0.000000 0.000000 +18 9 2 Cr-52 0.000000 0.000000 +19 9 2 Cr-53 0.000000 0.000000 +20 9 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. 21 9 1 H-1 0 0 22 9 1 O-16 0 0 23 9 1 B-10 0 0 @@ -1410,133 +1452,91 @@ 17 9 2 Cr-50 0 0 18 9 2 Cr-52 0 0 19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 9 1 H-1 0 0 -22 9 1 O-16 0 0 -23 9 1 B-10 0 0 -24 9 1 B-11 0 0 -25 9 1 Fe-54 0 0 -26 9 1 Fe-56 0 0 -27 9 1 Fe-57 0 0 -28 9 1 Fe-58 0 0 -29 9 1 Ni-58 0 0 -30 9 1 Ni-60 0 0 -31 9 1 Ni-61 0 0 -32 9 1 Ni-62 0 0 -33 9 1 Ni-64 0 0 -34 9 1 Mn-55 0 0 -35 9 1 Si-28 0 0 -36 9 1 Si-29 0 0 -37 9 1 Si-30 0 0 -38 9 1 Cr-50 0 0 -39 9 1 Cr-52 0 0 -40 9 1 Cr-53 0 0 -41 9 1 Cr-54 0 0 -0 9 2 H-1 0 0 -1 9 2 O-16 0 0 -2 9 2 B-10 0 0 -3 9 2 B-11 0 0 -4 9 2 Fe-54 0 0 -5 9 2 Fe-56 0 0 -6 9 2 Fe-57 0 0 -7 9 2 Fe-58 0 0 -8 9 2 Ni-58 0 0 -9 9 2 Ni-60 0 0 -10 9 2 Ni-61 0 0 -11 9 2 Ni-62 0 0 -12 9 2 Ni-64 0 0 -13 9 2 Mn-55 0 0 -14 9 2 Si-28 0 0 -15 9 2 Si-29 0 0 -16 9 2 Si-30 0 0 -17 9 2 Cr-50 0 0 -18 9 2 Cr-52 0 0 -19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 9 1 1 H-1 0 0 -64 9 1 1 O-16 0 0 -65 9 1 1 B-10 0 0 -66 9 1 1 B-11 0 0 -67 9 1 1 Fe-54 0 0 -68 9 1 1 Fe-56 0 0 -69 9 1 1 Fe-57 0 0 -70 9 1 1 Fe-58 0 0 -71 9 1 1 Ni-58 0 0 -72 9 1 1 Ni-60 0 0 -73 9 1 1 Ni-61 0 0 -74 9 1 1 Ni-62 0 0 -75 9 1 1 Ni-64 0 0 -76 9 1 1 Mn-55 0 0 -77 9 1 1 Si-28 0 0 -78 9 1 1 Si-29 0 0 -79 9 1 1 Si-30 0 0 -80 9 1 1 Cr-50 0 0 -81 9 1 1 Cr-52 0 0 -82 9 1 1 Cr-53 0 0 -83 9 1 1 Cr-54 0 0 -42 9 1 2 H-1 0 0 -43 9 1 2 O-16 0 0 -44 9 1 2 B-10 0 0 -45 9 1 2 B-11 0 0 -46 9 1 2 Fe-54 0 0 -47 9 1 2 Fe-56 0 0 -48 9 1 2 Fe-57 0 0 -49 9 1 2 Fe-58 0 0 -50 9 1 2 Ni-58 0 0 -51 9 1 2 Ni-60 0 0 -52 9 1 2 Ni-61 0 0 -53 9 1 2 Ni-62 0 0 -54 9 1 2 Ni-64 0 0 -55 9 1 2 Mn-55 0 0 -56 9 1 2 Si-28 0 0 -57 9 1 2 Si-29 0 0 -58 9 1 2 Si-30 0 0 -59 9 1 2 Cr-50 0 0 -60 9 1 2 Cr-52 0 0 -61 9 1 2 Cr-53 0 0 -62 9 1 2 Cr-54 0 0 -21 9 2 1 H-1 0 0 -22 9 2 1 O-16 0 0 -23 9 2 1 B-10 0 0 -24 9 2 1 B-11 0 0 -25 9 2 1 Fe-54 0 0 -26 9 2 1 Fe-56 0 0 -27 9 2 1 Fe-57 0 0 -28 9 2 1 Fe-58 0 0 -29 9 2 1 Ni-58 0 0 -30 9 2 1 Ni-60 0 0 -31 9 2 1 Ni-61 0 0 -32 9 2 1 Ni-62 0 0 -33 9 2 1 Ni-64 0 0 -34 9 2 1 Mn-55 0 0 -35 9 2 1 Si-28 0 0 -36 9 2 1 Si-29 0 0 -37 9 2 1 Si-30 0 0 -38 9 2 1 Cr-50 0 0 -39 9 2 1 Cr-52 0 0 -40 9 2 1 Cr-53 0 0 -41 9 2 1 Cr-54 0 0 -0 9 2 2 H-1 0 0 -1 9 2 2 O-16 0 0 -2 9 2 2 B-10 0 0 -3 9 2 2 B-11 0 0 -4 9 2 2 Fe-54 0 0 -5 9 2 2 Fe-56 0 0 -6 9 2 2 Fe-57 0 0 -7 9 2 2 Fe-58 0 0 -8 9 2 2 Ni-58 0 0 -9 9 2 2 Ni-60 0 0 -10 9 2 2 Ni-61 0 0 -11 9 2 2 Ni-62 0 0 -12 9 2 2 Ni-64 0 0 -13 9 2 2 Mn-55 0 0 -14 9 2 2 Si-28 0 0 -15 9 2 2 Si-29 0 0 -16 9 2 2 Si-30 0 0 -17 9 2 2 Cr-50 0 0 -18 9 2 2 Cr-52 0 0 -19 9 2 2 Cr-53 0 0 -20 9 2 2 Cr-54 0 0 material group out nuclide mean std. dev. +20 9 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +63 9 1 1 H-1 0.150655 0.480993 +64 9 1 1 O-16 0.116221 0.114089 +65 9 1 1 B-10 0.000000 0.000000 +66 9 1 1 B-11 0.000000 0.000000 +67 9 1 1 Fe-54 0.000000 0.000000 +68 9 1 1 Fe-56 0.186217 0.199795 +69 9 1 1 Fe-57 0.000000 0.000000 +70 9 1 1 Fe-58 0.000000 0.000000 +71 9 1 1 Ni-58 0.000000 0.000000 +72 9 1 1 Ni-60 0.000000 0.000000 +73 9 1 1 Ni-61 0.000000 0.000000 +74 9 1 1 Ni-62 0.000000 0.000000 +75 9 1 1 Ni-64 0.000000 0.000000 +76 9 1 1 Mn-55 0.000000 0.000000 +77 9 1 1 Si-28 0.000000 0.000000 +78 9 1 1 Si-29 0.000000 0.000000 +79 9 1 1 Si-30 0.000000 0.000000 +80 9 1 1 Cr-50 0.000000 0.000000 +81 9 1 1 Cr-52 0.000000 0.000000 +82 9 1 1 Cr-53 0.147443 0.139574 +83 9 1 1 Cr-54 0.000000 0.000000 +42 9 1 2 H-1 0.000000 0.000000 +43 9 1 2 O-16 0.000000 0.000000 +44 9 1 2 B-10 0.000000 0.000000 +45 9 1 2 B-11 0.000000 0.000000 +46 9 1 2 Fe-54 0.000000 0.000000 +47 9 1 2 Fe-56 0.000000 0.000000 +48 9 1 2 Fe-57 0.000000 0.000000 +49 9 1 2 Fe-58 0.000000 0.000000 +50 9 1 2 Ni-58 0.000000 0.000000 +51 9 1 2 Ni-60 0.000000 0.000000 +52 9 1 2 Ni-61 0.000000 0.000000 +53 9 1 2 Ni-62 0.000000 0.000000 +54 9 1 2 Ni-64 0.000000 0.000000 +55 9 1 2 Mn-55 0.000000 0.000000 +56 9 1 2 Si-28 0.000000 0.000000 +57 9 1 2 Si-29 0.000000 0.000000 +58 9 1 2 Si-30 0.000000 0.000000 +59 9 1 2 Cr-50 0.000000 0.000000 +60 9 1 2 Cr-52 0.000000 0.000000 +61 9 1 2 Cr-53 0.000000 0.000000 +62 9 1 2 Cr-54 0.000000 0.000000 +21 9 2 1 H-1 0.000000 0.000000 +22 9 2 1 O-16 0.000000 0.000000 +23 9 2 1 B-10 0.000000 0.000000 +24 9 2 1 B-11 0.000000 0.000000 +25 9 2 1 Fe-54 0.000000 0.000000 +26 9 2 1 Fe-56 0.000000 0.000000 +27 9 2 1 Fe-57 0.000000 0.000000 +28 9 2 1 Fe-58 0.000000 0.000000 +29 9 2 1 Ni-58 0.000000 0.000000 +30 9 2 1 Ni-60 0.000000 0.000000 +31 9 2 1 Ni-61 0.000000 0.000000 +32 9 2 1 Ni-62 0.000000 0.000000 +33 9 2 1 Ni-64 0.000000 0.000000 +34 9 2 1 Mn-55 0.000000 0.000000 +35 9 2 1 Si-28 0.000000 0.000000 +36 9 2 1 Si-29 0.000000 0.000000 +37 9 2 1 Si-30 0.000000 0.000000 +38 9 2 1 Cr-50 0.000000 0.000000 +39 9 2 1 Cr-52 0.000000 0.000000 +40 9 2 1 Cr-53 0.000000 0.000000 +41 9 2 1 Cr-54 0.000000 0.000000 +0 9 2 2 H-1 0.000000 0.000000 +1 9 2 2 O-16 0.000000 0.000000 +2 9 2 2 B-10 0.000000 0.000000 +3 9 2 2 B-11 0.000000 0.000000 +4 9 2 2 Fe-54 0.000000 0.000000 +5 9 2 2 Fe-56 0.000000 0.000000 +6 9 2 2 Fe-57 0.000000 0.000000 +7 9 2 2 Fe-58 0.000000 0.000000 +8 9 2 2 Ni-58 0.000000 0.000000 +9 9 2 2 Ni-60 0.000000 0.000000 +10 9 2 2 Ni-61 0.000000 0.000000 +11 9 2 2 Ni-62 0.000000 0.000000 +12 9 2 2 Ni-64 0.000000 0.000000 +13 9 2 2 Mn-55 0.000000 0.000000 +14 9 2 2 Si-28 0.000000 0.000000 +15 9 2 2 Si-29 0.000000 0.000000 +16 9 2 2 Si-30 0.000000 0.000000 +17 9 2 2 Cr-50 0.000000 0.000000 +18 9 2 2 Cr-52 0.000000 0.000000 +19 9 2 2 Cr-53 0.000000 0.000000 +20 9 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. 21 9 1 H-1 0 0 22 9 1 O-16 0 0 23 9 1 B-10 0 0 @@ -1578,7 +1578,49 @@ 17 9 2 Cr-50 0 0 18 9 2 Cr-52 0 0 19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. +20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 10 1 H-1 0.123944 0.541390 +22 10 1 O-16 0.000000 0.000000 +23 10 1 B-10 0.000000 0.000000 +24 10 1 B-11 0.000000 0.000000 +25 10 1 Fe-54 0.000000 0.000000 +26 10 1 Fe-56 0.000000 0.000000 +27 10 1 Fe-57 0.000000 0.000000 +28 10 1 Fe-58 0.000000 0.000000 +29 10 1 Ni-58 0.000000 0.000000 +30 10 1 Ni-60 0.000000 0.000000 +31 10 1 Ni-61 0.000000 0.000000 +32 10 1 Ni-62 0.000000 0.000000 +33 10 1 Ni-64 0.000000 0.000000 +34 10 1 Mn-55 0.000000 0.000000 +35 10 1 Si-28 0.000000 0.000000 +36 10 1 Si-29 0.000000 0.000000 +37 10 1 Si-30 0.000000 0.000000 +38 10 1 Cr-50 0.111571 0.138458 +39 10 1 Cr-52 0.000000 0.000000 +40 10 1 Cr-53 0.000000 0.000000 +41 10 1 Cr-54 0.000000 0.000000 +0 10 2 H-1 0.000000 0.000000 +1 10 2 O-16 0.000000 0.000000 +2 10 2 B-10 0.000000 0.000000 +3 10 2 B-11 0.000000 0.000000 +4 10 2 Fe-54 0.000000 0.000000 +5 10 2 Fe-56 0.000000 0.000000 +6 10 2 Fe-57 0.000000 0.000000 +7 10 2 Fe-58 0.000000 0.000000 +8 10 2 Ni-58 0.000000 0.000000 +9 10 2 Ni-60 0.000000 0.000000 +10 10 2 Ni-61 0.000000 0.000000 +11 10 2 Ni-62 0.000000 0.000000 +12 10 2 Ni-64 0.000000 0.000000 +13 10 2 Mn-55 0.000000 0.000000 +14 10 2 Si-28 0.000000 0.000000 +15 10 2 Si-29 0.000000 0.000000 +16 10 2 Si-30 0.000000 0.000000 +17 10 2 Cr-50 0.000000 0.000000 +18 10 2 Cr-52 0.000000 0.000000 +19 10 2 Cr-53 0.000000 0.000000 +20 10 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. 21 10 1 H-1 0 0 22 10 1 O-16 0 0 23 10 1 B-10 0 0 @@ -1620,133 +1662,91 @@ 17 10 2 Cr-50 0 0 18 10 2 Cr-52 0 0 19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 10 1 H-1 0 0 -22 10 1 O-16 0 0 -23 10 1 B-10 0 0 -24 10 1 B-11 0 0 -25 10 1 Fe-54 0 0 -26 10 1 Fe-56 0 0 -27 10 1 Fe-57 0 0 -28 10 1 Fe-58 0 0 -29 10 1 Ni-58 0 0 -30 10 1 Ni-60 0 0 -31 10 1 Ni-61 0 0 -32 10 1 Ni-62 0 0 -33 10 1 Ni-64 0 0 -34 10 1 Mn-55 0 0 -35 10 1 Si-28 0 0 -36 10 1 Si-29 0 0 -37 10 1 Si-30 0 0 -38 10 1 Cr-50 0 0 -39 10 1 Cr-52 0 0 -40 10 1 Cr-53 0 0 -41 10 1 Cr-54 0 0 -0 10 2 H-1 0 0 -1 10 2 O-16 0 0 -2 10 2 B-10 0 0 -3 10 2 B-11 0 0 -4 10 2 Fe-54 0 0 -5 10 2 Fe-56 0 0 -6 10 2 Fe-57 0 0 -7 10 2 Fe-58 0 0 -8 10 2 Ni-58 0 0 -9 10 2 Ni-60 0 0 -10 10 2 Ni-61 0 0 -11 10 2 Ni-62 0 0 -12 10 2 Ni-64 0 0 -13 10 2 Mn-55 0 0 -14 10 2 Si-28 0 0 -15 10 2 Si-29 0 0 -16 10 2 Si-30 0 0 -17 10 2 Cr-50 0 0 -18 10 2 Cr-52 0 0 -19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 10 1 1 H-1 0 0 -64 10 1 1 O-16 0 0 -65 10 1 1 B-10 0 0 -66 10 1 1 B-11 0 0 -67 10 1 1 Fe-54 0 0 -68 10 1 1 Fe-56 0 0 -69 10 1 1 Fe-57 0 0 -70 10 1 1 Fe-58 0 0 -71 10 1 1 Ni-58 0 0 -72 10 1 1 Ni-60 0 0 -73 10 1 1 Ni-61 0 0 -74 10 1 1 Ni-62 0 0 -75 10 1 1 Ni-64 0 0 -76 10 1 1 Mn-55 0 0 -77 10 1 1 Si-28 0 0 -78 10 1 1 Si-29 0 0 -79 10 1 1 Si-30 0 0 -80 10 1 1 Cr-50 0 0 -81 10 1 1 Cr-52 0 0 -82 10 1 1 Cr-53 0 0 -83 10 1 1 Cr-54 0 0 -42 10 1 2 H-1 0 0 -43 10 1 2 O-16 0 0 -44 10 1 2 B-10 0 0 -45 10 1 2 B-11 0 0 -46 10 1 2 Fe-54 0 0 -47 10 1 2 Fe-56 0 0 -48 10 1 2 Fe-57 0 0 -49 10 1 2 Fe-58 0 0 -50 10 1 2 Ni-58 0 0 -51 10 1 2 Ni-60 0 0 -52 10 1 2 Ni-61 0 0 -53 10 1 2 Ni-62 0 0 -54 10 1 2 Ni-64 0 0 -55 10 1 2 Mn-55 0 0 -56 10 1 2 Si-28 0 0 -57 10 1 2 Si-29 0 0 -58 10 1 2 Si-30 0 0 -59 10 1 2 Cr-50 0 0 -60 10 1 2 Cr-52 0 0 -61 10 1 2 Cr-53 0 0 -62 10 1 2 Cr-54 0 0 -21 10 2 1 H-1 0 0 -22 10 2 1 O-16 0 0 -23 10 2 1 B-10 0 0 -24 10 2 1 B-11 0 0 -25 10 2 1 Fe-54 0 0 -26 10 2 1 Fe-56 0 0 -27 10 2 1 Fe-57 0 0 -28 10 2 1 Fe-58 0 0 -29 10 2 1 Ni-58 0 0 -30 10 2 1 Ni-60 0 0 -31 10 2 1 Ni-61 0 0 -32 10 2 1 Ni-62 0 0 -33 10 2 1 Ni-64 0 0 -34 10 2 1 Mn-55 0 0 -35 10 2 1 Si-28 0 0 -36 10 2 1 Si-29 0 0 -37 10 2 1 Si-30 0 0 -38 10 2 1 Cr-50 0 0 -39 10 2 1 Cr-52 0 0 -40 10 2 1 Cr-53 0 0 -41 10 2 1 Cr-54 0 0 -0 10 2 2 H-1 0 0 -1 10 2 2 O-16 0 0 -2 10 2 2 B-10 0 0 -3 10 2 2 B-11 0 0 -4 10 2 2 Fe-54 0 0 -5 10 2 2 Fe-56 0 0 -6 10 2 2 Fe-57 0 0 -7 10 2 2 Fe-58 0 0 -8 10 2 2 Ni-58 0 0 -9 10 2 2 Ni-60 0 0 -10 10 2 2 Ni-61 0 0 -11 10 2 2 Ni-62 0 0 -12 10 2 2 Ni-64 0 0 -13 10 2 2 Mn-55 0 0 -14 10 2 2 Si-28 0 0 -15 10 2 2 Si-29 0 0 -16 10 2 2 Si-30 0 0 -17 10 2 2 Cr-50 0 0 -18 10 2 2 Cr-52 0 0 -19 10 2 2 Cr-53 0 0 -20 10 2 2 Cr-54 0 0 material group out nuclide mean std. dev. +20 10 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +63 10 1 1 H-1 0.123944 0.541390 +64 10 1 1 O-16 0.000000 0.000000 +65 10 1 1 B-10 0.000000 0.000000 +66 10 1 1 B-11 0.000000 0.000000 +67 10 1 1 Fe-54 0.000000 0.000000 +68 10 1 1 Fe-56 0.000000 0.000000 +69 10 1 1 Fe-57 0.000000 0.000000 +70 10 1 1 Fe-58 0.000000 0.000000 +71 10 1 1 Ni-58 0.000000 0.000000 +72 10 1 1 Ni-60 0.000000 0.000000 +73 10 1 1 Ni-61 0.000000 0.000000 +74 10 1 1 Ni-62 0.000000 0.000000 +75 10 1 1 Ni-64 0.000000 0.000000 +76 10 1 1 Mn-55 0.000000 0.000000 +77 10 1 1 Si-28 0.000000 0.000000 +78 10 1 1 Si-29 0.000000 0.000000 +79 10 1 1 Si-30 0.000000 0.000000 +80 10 1 1 Cr-50 0.111571 0.138458 +81 10 1 1 Cr-52 0.000000 0.000000 +82 10 1 1 Cr-53 0.000000 0.000000 +83 10 1 1 Cr-54 0.000000 0.000000 +42 10 1 2 H-1 0.000000 0.000000 +43 10 1 2 O-16 0.000000 0.000000 +44 10 1 2 B-10 0.000000 0.000000 +45 10 1 2 B-11 0.000000 0.000000 +46 10 1 2 Fe-54 0.000000 0.000000 +47 10 1 2 Fe-56 0.000000 0.000000 +48 10 1 2 Fe-57 0.000000 0.000000 +49 10 1 2 Fe-58 0.000000 0.000000 +50 10 1 2 Ni-58 0.000000 0.000000 +51 10 1 2 Ni-60 0.000000 0.000000 +52 10 1 2 Ni-61 0.000000 0.000000 +53 10 1 2 Ni-62 0.000000 0.000000 +54 10 1 2 Ni-64 0.000000 0.000000 +55 10 1 2 Mn-55 0.000000 0.000000 +56 10 1 2 Si-28 0.000000 0.000000 +57 10 1 2 Si-29 0.000000 0.000000 +58 10 1 2 Si-30 0.000000 0.000000 +59 10 1 2 Cr-50 0.000000 0.000000 +60 10 1 2 Cr-52 0.000000 0.000000 +61 10 1 2 Cr-53 0.000000 0.000000 +62 10 1 2 Cr-54 0.000000 0.000000 +21 10 2 1 H-1 0.000000 0.000000 +22 10 2 1 O-16 0.000000 0.000000 +23 10 2 1 B-10 0.000000 0.000000 +24 10 2 1 B-11 0.000000 0.000000 +25 10 2 1 Fe-54 0.000000 0.000000 +26 10 2 1 Fe-56 0.000000 0.000000 +27 10 2 1 Fe-57 0.000000 0.000000 +28 10 2 1 Fe-58 0.000000 0.000000 +29 10 2 1 Ni-58 0.000000 0.000000 +30 10 2 1 Ni-60 0.000000 0.000000 +31 10 2 1 Ni-61 0.000000 0.000000 +32 10 2 1 Ni-62 0.000000 0.000000 +33 10 2 1 Ni-64 0.000000 0.000000 +34 10 2 1 Mn-55 0.000000 0.000000 +35 10 2 1 Si-28 0.000000 0.000000 +36 10 2 1 Si-29 0.000000 0.000000 +37 10 2 1 Si-30 0.000000 0.000000 +38 10 2 1 Cr-50 0.000000 0.000000 +39 10 2 1 Cr-52 0.000000 0.000000 +40 10 2 1 Cr-53 0.000000 0.000000 +41 10 2 1 Cr-54 0.000000 0.000000 +0 10 2 2 H-1 0.000000 0.000000 +1 10 2 2 O-16 0.000000 0.000000 +2 10 2 2 B-10 0.000000 0.000000 +3 10 2 2 B-11 0.000000 0.000000 +4 10 2 2 Fe-54 0.000000 0.000000 +5 10 2 2 Fe-56 0.000000 0.000000 +6 10 2 2 Fe-57 0.000000 0.000000 +7 10 2 2 Fe-58 0.000000 0.000000 +8 10 2 2 Ni-58 0.000000 0.000000 +9 10 2 2 Ni-60 0.000000 0.000000 +10 10 2 2 Ni-61 0.000000 0.000000 +11 10 2 2 Ni-62 0.000000 0.000000 +12 10 2 2 Ni-64 0.000000 0.000000 +13 10 2 2 Mn-55 0.000000 0.000000 +14 10 2 2 Si-28 0.000000 0.000000 +15 10 2 2 Si-29 0.000000 0.000000 +16 10 2 2 Si-30 0.000000 0.000000 +17 10 2 2 Cr-50 0.000000 0.000000 +18 10 2 2 Cr-52 0.000000 0.000000 +19 10 2 2 Cr-53 0.000000 0.000000 +20 10 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. 21 10 1 H-1 0 0 22 10 1 O-16 0 0 23 10 1 B-10 0 0 @@ -1789,23 +1789,23 @@ 18 10 2 Cr-52 0 0 19 10 2 Cr-53 0 0 20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. -9 11 1 H-1 0.170249 0.307631 -10 11 1 O-16 0.059703 0.040511 +9 11 1 H-1 0.131470 0.476035 +10 11 1 O-16 0.028684 0.043000 11 11 1 B-10 0.000000 0.000000 12 11 1 B-11 0.000000 0.000000 -13 11 1 Zr-90 0.048335 0.045106 -14 11 1 Zr-91 0.021080 0.020176 -15 11 1 Zr-92 0.015959 0.020345 -16 11 1 Zr-94 0.013058 0.019576 +13 11 1 Zr-90 0.021980 0.039963 +14 11 1 Zr-91 0.000000 0.000000 +15 11 1 Zr-92 0.000000 0.000000 +16 11 1 Zr-94 0.004191 0.087344 17 11 1 Zr-96 0.000000 0.000000 -0 11 2 H-1 0.899793 0.954128 -1 11 2 O-16 0.075037 0.081039 -2 11 2 B-10 0.033160 0.038885 +0 11 2 H-1 0.687243 1.239217 +1 11 2 O-16 0.000000 0.000000 +2 11 2 B-10 0.042902 0.060672 3 11 2 B-11 0.000000 0.000000 -4 11 2 Zr-90 0.016580 0.019443 -5 11 2 Zr-91 0.018732 0.020277 -6 11 2 Zr-92 0.026213 0.025010 -7 11 2 Zr-94 0.015981 0.019263 +4 11 2 Zr-90 0.039576 0.105193 +5 11 2 Zr-91 0.000000 0.000000 +6 11 2 Zr-92 0.084226 0.103161 +7 11 2 Zr-94 0.092039 0.125985 8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. 9 11 1 H-1 0 0 10 11 1 O-16 0 0 @@ -1825,16 +1825,16 @@ 6 11 2 Zr-92 0 0 7 11 2 Zr-94 0 0 8 11 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -27 11 1 1 H-1 0.145106 0.291322 -28 11 1 1 O-16 0.059703 0.040511 +27 11 1 1 H-1 0.099594 0.442578 +28 11 1 1 O-16 0.028684 0.043000 29 11 1 1 B-10 0.000000 0.000000 30 11 1 1 B-11 0.000000 0.000000 -31 11 1 1 Zr-90 0.048335 0.045106 -32 11 1 1 Zr-91 0.021080 0.020176 -33 11 1 1 Zr-92 0.015959 0.020345 -34 11 1 1 Zr-94 0.013058 0.019576 +31 11 1 1 Zr-90 0.021980 0.039963 +32 11 1 1 Zr-91 0.000000 0.000000 +33 11 1 1 Zr-92 0.000000 0.000000 +34 11 1 1 Zr-94 0.004191 0.087344 35 11 1 1 Zr-96 0.000000 0.000000 -18 11 1 2 H-1 0.025143 0.021133 +18 11 1 2 H-1 0.031875 0.045078 19 11 1 2 O-16 0.000000 0.000000 20 11 1 2 B-10 0.000000 0.000000 21 11 1 2 B-11 0.000000 0.000000 @@ -1852,14 +1852,14 @@ 15 11 2 1 Zr-92 0.000000 0.000000 16 11 2 1 Zr-94 0.000000 0.000000 17 11 2 1 Zr-96 0.000000 0.000000 -0 11 2 2 H-1 0.899793 0.954128 -1 11 2 2 O-16 0.075037 0.081039 +0 11 2 2 H-1 0.687243 1.239217 +1 11 2 2 O-16 0.000000 0.000000 2 11 2 2 B-10 0.000000 0.000000 3 11 2 2 B-11 0.000000 0.000000 -4 11 2 2 Zr-90 0.000000 0.000000 -5 11 2 2 Zr-91 0.018732 0.020277 -6 11 2 2 Zr-92 0.026213 0.025010 -7 11 2 2 Zr-94 0.015981 0.019263 +4 11 2 2 Zr-90 0.039576 0.105193 +5 11 2 2 Zr-91 0.000000 0.000000 +6 11 2 2 Zr-92 0.084226 0.103161 +7 11 2 2 Zr-94 0.092039 0.125985 8 11 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. 9 11 1 H-1 0 0 10 11 1 O-16 0 0 @@ -1878,7 +1878,25 @@ 5 11 2 Zr-91 0 0 6 11 2 Zr-92 0 0 7 11 2 Zr-94 0 0 -8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. +8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. +9 12 1 H-1 0.098944 0.178543 +10 12 1 O-16 0.013270 0.020403 +11 12 1 B-10 0.000000 0.000000 +12 12 1 B-11 0.000000 0.000000 +13 12 1 Zr-90 0.089997 0.075538 +14 12 1 Zr-91 0.000000 0.000000 +15 12 1 Zr-92 0.003501 0.017031 +16 12 1 Zr-94 0.004850 0.016327 +17 12 1 Zr-96 0.002730 0.017476 +0 12 2 H-1 1.261686 1.980336 +1 12 2 O-16 0.079159 0.104796 +2 12 2 B-10 0.016928 0.023940 +3 12 2 B-11 0.000000 0.000000 +4 12 2 Zr-90 0.000000 0.000000 +5 12 2 Zr-91 0.033201 0.040665 +6 12 2 Zr-92 0.000000 0.000000 +7 12 2 Zr-94 0.000000 0.000000 +8 12 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. 9 12 1 H-1 0 0 10 12 1 O-16 0 0 11 12 1 B-10 0 0 @@ -1896,61 +1914,43 @@ 5 12 2 Zr-91 0 0 6 12 2 Zr-92 0 0 7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 material group in nuclide mean std. dev. -9 12 1 H-1 0 0 -10 12 1 O-16 0 0 -11 12 1 B-10 0 0 -12 12 1 B-11 0 0 -13 12 1 Zr-90 0 0 -14 12 1 Zr-91 0 0 -15 12 1 Zr-92 0 0 -16 12 1 Zr-94 0 0 -17 12 1 Zr-96 0 0 -0 12 2 H-1 0 0 -1 12 2 O-16 0 0 -2 12 2 B-10 0 0 -3 12 2 B-11 0 0 -4 12 2 Zr-90 0 0 -5 12 2 Zr-91 0 0 -6 12 2 Zr-92 0 0 -7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -27 12 1 1 H-1 0 0 -28 12 1 1 O-16 0 0 -29 12 1 1 B-10 0 0 -30 12 1 1 B-11 0 0 -31 12 1 1 Zr-90 0 0 -32 12 1 1 Zr-91 0 0 -33 12 1 1 Zr-92 0 0 -34 12 1 1 Zr-94 0 0 -35 12 1 1 Zr-96 0 0 -18 12 1 2 H-1 0 0 -19 12 1 2 O-16 0 0 -20 12 1 2 B-10 0 0 -21 12 1 2 B-11 0 0 -22 12 1 2 Zr-90 0 0 -23 12 1 2 Zr-91 0 0 -24 12 1 2 Zr-92 0 0 -25 12 1 2 Zr-94 0 0 -26 12 1 2 Zr-96 0 0 -9 12 2 1 H-1 0 0 -10 12 2 1 O-16 0 0 -11 12 2 1 B-10 0 0 -12 12 2 1 B-11 0 0 -13 12 2 1 Zr-90 0 0 -14 12 2 1 Zr-91 0 0 -15 12 2 1 Zr-92 0 0 -16 12 2 1 Zr-94 0 0 -17 12 2 1 Zr-96 0 0 -0 12 2 2 H-1 0 0 -1 12 2 2 O-16 0 0 -2 12 2 2 B-10 0 0 -3 12 2 2 B-11 0 0 -4 12 2 2 Zr-90 0 0 -5 12 2 2 Zr-91 0 0 -6 12 2 2 Zr-92 0 0 -7 12 2 2 Zr-94 0 0 -8 12 2 2 Zr-96 0 0 material group out nuclide mean std. dev. +8 12 2 Zr-96 0 0 material group in group out nuclide mean std. dev. +27 12 1 1 H-1 0.071704 0.167588 +28 12 1 1 O-16 0.013270 0.020403 +29 12 1 1 B-10 0.000000 0.000000 +30 12 1 1 B-11 0.000000 0.000000 +31 12 1 1 Zr-90 0.089997 0.075538 +32 12 1 1 Zr-91 0.000000 0.000000 +33 12 1 1 Zr-92 0.003501 0.017031 +34 12 1 1 Zr-94 0.004850 0.016327 +35 12 1 1 Zr-96 0.002730 0.017476 +18 12 1 2 H-1 0.027240 0.029555 +19 12 1 2 O-16 0.000000 0.000000 +20 12 1 2 B-10 0.000000 0.000000 +21 12 1 2 B-11 0.000000 0.000000 +22 12 1 2 Zr-90 0.000000 0.000000 +23 12 1 2 Zr-91 0.000000 0.000000 +24 12 1 2 Zr-92 0.000000 0.000000 +25 12 1 2 Zr-94 0.000000 0.000000 +26 12 1 2 Zr-96 0.000000 0.000000 +9 12 2 1 H-1 0.000000 0.000000 +10 12 2 1 O-16 0.000000 0.000000 +11 12 2 1 B-10 0.000000 0.000000 +12 12 2 1 B-11 0.000000 0.000000 +13 12 2 1 Zr-90 0.000000 0.000000 +14 12 2 1 Zr-91 0.000000 0.000000 +15 12 2 1 Zr-92 0.000000 0.000000 +16 12 2 1 Zr-94 0.000000 0.000000 +17 12 2 1 Zr-96 0.000000 0.000000 +0 12 2 2 H-1 1.244758 1.956675 +1 12 2 2 O-16 0.079159 0.104796 +2 12 2 2 B-10 0.000000 0.000000 +3 12 2 2 B-11 0.000000 0.000000 +4 12 2 2 Zr-90 0.000000 0.000000 +5 12 2 2 Zr-91 0.033201 0.040665 +6 12 2 2 Zr-92 0.000000 0.000000 +7 12 2 2 Zr-94 0.000000 0.000000 +8 12 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. 9 12 1 H-1 0 0 10 12 1 O-16 0 0 11 12 1 B-10 0 0 diff --git a/tests/test_natural_element/results_true.dat b/tests/test_natural_element/results_true.dat index 444f0df4f..cc4a12f74 100644 --- a/tests/test_natural_element/results_true.dat +++ b/tests/test_natural_element/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.693693E-01 1.054925E-01 +1.034427E+00 1.583807E-02 diff --git a/tests/test_output/results_true.dat b/tests/test_output/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_output/results_true.dat +++ b/tests/test_output/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_particle_restart_eigval/results_true.dat b/tests/test_particle_restart_eigval/results_true.dat index c68f4864e..2bc463293 100644 --- a/tests/test_particle_restart_eigval/results_true.dat +++ b/tests/test_particle_restart_eigval/results_true.dat @@ -1,16 +1,16 @@ current batch: -1.100000E+01 +1.000000E+01 current gen: 1.000000E+00 particle id: -6.850000E+02 +1.030000E+03 run mode: k-eigenvalue particle weight: 1.000000E+00 particle energy: -5.680443E-01 +3.158576E+00 particle xyz: --4.117903E+01 4.165935E+01 4.265251E+01 +5.846530E+01 -3.717881E+01 -3.787515E+00 particle uvw: -1.106369E-01 -5.940833E-01 7.967587E-01 +6.197114E-01 -2.450461E-01 -7.455939E-01 diff --git a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py index 6b98d3bbd..59f76d93b 100644 --- a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py +++ b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py @@ -7,5 +7,5 @@ from testing_harness import ParticleRestartTestHarness if __name__ == '__main__': - harness = ParticleRestartTestHarness('particle_11_685.*') + harness = ParticleRestartTestHarness('particle_10_1030.*') harness.main() diff --git a/tests/test_quadric_surfaces/results_true.dat b/tests/test_quadric_surfaces/results_true.dat index b90b7e71a..1f0dd5426 100644 --- a/tests/test_quadric_surfaces/results_true.dat +++ b/tests/test_quadric_surfaces/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.006356E+00 7.889455E-03 +9.570770E-01 2.513234E-02 diff --git a/tests/test_reflective_plane/results_true.dat b/tests/test_reflective_plane/results_true.dat index ad23f3c9f..4860c1ed9 100644 --- a/tests/test_reflective_plane/results_true.dat +++ b/tests/test_reflective_plane/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.284154E+00 3.063055E-03 +2.271202E+00 3.876146E-03 diff --git a/tests/test_resonance_scattering/results_true.dat b/tests/test_resonance_scattering/results_true.dat index 43ef00939..a649013c0 100644 --- a/tests/test_resonance_scattering/results_true.dat +++ b/tests/test_resonance_scattering/results_true.dat @@ -1,2 +1,2 @@ k-combined: -6.842177E-02 8.480479E-04 +6.842159E-02 8.481029E-04 diff --git a/tests/test_rotation/results_true.dat b/tests/test_rotation/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_rotation/results_true.dat +++ b/tests/test_rotation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_salphabeta/results_true.dat b/tests/test_salphabeta/results_true.dat index 77bbb266f..fb691f168 100644 --- a/tests/test_salphabeta/results_true.dat +++ b/tests/test_salphabeta/results_true.dat @@ -1,2 +1,2 @@ k-combined: -8.103883E-01 1.688384E-02 +8.331430E-01 3.074913E-03 diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 054fa5c00..461681c76 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -5e2576ac4c3b21d6acd1b308a3683ec274051d864ea9305ad59e2c8fa071ce33f591dfc05bae2321d0f98dce1fb882b54c64d5471056cd053953fc8f7bd2af62 \ No newline at end of file +e1bf6c8d9e29f4b6ec8a0eadb3802248eea1cc42fe17b2257ee28eabcdc63958073e226e04a2e751f92f12ef7cb8de330991de395707d9fab2a826ca6946181d \ No newline at end of file diff --git a/tests/test_seed/results_true.dat b/tests/test_seed/results_true.dat index b09bdf863..35e9c968b 100644 --- a/tests/test_seed/results_true.dat +++ b/tests/test_seed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.994082E-01 3.643057E-03 +3.131925E-01 7.639726E-03 diff --git a/tests/test_source/results_true.dat b/tests/test_source/results_true.dat index 2a78dd7a5..e7ef218ad 100644 --- a/tests/test_source/results_true.dat +++ b/tests/test_source/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.054797E-01 3.094015E-03 +3.026614E-01 3.952004E-03 diff --git a/tests/test_source_file/results_true.dat b/tests/test_source_file/results_true.dat index 51161b3a6..782e47176 100644 --- a/tests/test_source_file/results_true.dat +++ b/tests/test_source_file/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.996134E-01 2.910656E-03 +2.939526E-01 6.311736E-03 diff --git a/tests/test_sourcepoint_latest/results_true.dat b/tests/test_sourcepoint_latest/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_sourcepoint_latest/results_true.dat +++ b/tests/test_sourcepoint_latest/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_sourcepoint_restart/results_true.dat b/tests/test_sourcepoint_restart/results_true.dat index 8d848b4cf..49afeb1d5 100644 --- a/tests/test_sourcepoint_restart/results_true.dat +++ b/tests/test_sourcepoint_restart/results_true.dat @@ -1,16 +1,16 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 tally 1: -1.300000E-02 -4.300000E-05 -5.553260E-03 -1.267186E-05 -2.953436E-03 -6.351136E-06 -2.295617E-03 -4.617429E-06 -6.420875E-03 -9.259556E-06 +1.100000E-02 +3.700000E-05 +1.307570E-03 +2.851451E-06 +1.564980E-03 +2.368303E-06 +3.138136E-03 +5.769887E-06 +7.719235E-03 +2.632583E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -19,6 +19,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.976389E-04 +8.858892E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -27,8 +29,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.816169E-04 +7.772484E-07 +1.000000E-03 +1.000000E-06 +8.782909E-04 +7.713950E-07 +6.570925E-04 +4.317705E-07 +3.763366E-04 +1.416293E-07 0.000000E+00 0.000000E+00 +7.000000E-03 +1.500000E-05 +3.445754E-03 +3.819507E-06 +2.124056E-03 +1.976201E-06 +1.542203E-03 +1.531669E-06 +4.135720E-03 +4.532612E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -37,240 +59,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.100000E-05 -8.675993E-03 -1.761431E-05 -3.327517E-03 -4.194966E-06 -7.274324E-04 -2.158075E-06 -6.423659E-03 -1.003735E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-03 -1.000000E-05 -2.838403E-04 -8.774323E-07 --4.663243E-04 -9.976861E-07 -5.379858E-04 -2.458806E-07 -1.830193E-03 -1.871531E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.200000E-05 -7.892468E-03 -1.531545E-05 -5.418392E-03 -6.620060E-06 -4.884861E-03 -5.600362E-06 -7.948555E-03 -1.365782E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.120582E-04 -2.773023E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.014657E-04 -3.617610E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -1.020000E-04 -6.418727E-03 -9.985775E-06 -6.251711E-03 -1.053337E-05 -4.720285E-03 -7.809860E-06 -9.455548E-03 -2.200500E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.052208E-04 -1.831532E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136748E-04 -3.765967E-07 -2.000000E-03 -4.000000E-06 -1.977646E-03 -3.911083E-06 -1.933313E-03 -3.737699E-06 -1.867746E-03 -3.488475E-06 -3.068374E-04 -9.414918E-08 -6.000000E-03 -1.400000E-05 -1.048233E-03 -1.572686E-06 -1.209182E-05 -5.233234E-09 -1.086944E-03 -4.015851E-07 -3.362867E-03 -3.082582E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +5.874391E-04 +1.725424E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -279,18 +69,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.079655E-04 +9.484274E-08 +1.000000E-03 +1.000000E-06 +9.451745E-04 +8.933548E-07 +8.400323E-04 +7.056542E-07 +6.931788E-04 +4.804969E-07 0.000000E+00 0.000000E+00 3.000000E-03 3.000000E-06 -2.874586E-03 -2.757041E-06 -2.635561E-03 -2.337016E-06 -2.305139E-03 -1.846818E-06 -1.227985E-03 -5.657187E-07 +1.134842E-03 +1.040850E-06 +6.127525E-05 +3.988312E-07 +4.938488E-05 +2.738492E-07 +1.484493E-03 +9.722888E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -299,8 +99,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -309,28 +107,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.143635E-04 -3.774426E-07 -1.000000E-03 -1.000000E-06 -9.888336E-04 -9.777919E-07 -9.666878E-04 -9.344854E-07 -9.339333E-04 -8.722314E-07 0.000000E+00 0.000000E+00 -1.800000E-02 -6.600000E-05 -3.521497E-03 -1.124575E-05 --1.106505E-03 -1.298962E-06 -2.307061E-03 -1.995982E-06 -7.955988E-03 -1.333038E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -339,18 +117,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.204584E-04 -2.824254E-07 -1.000000E-03 -1.000000E-06 --2.015923E-04 -4.063947E-08 --4.390408E-04 -1.927568E-07 -2.819070E-04 -7.947154E-08 -3.007329E-04 -9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -361,16 +127,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.000000E-03 -2.300000E-05 -8.049890E-04 -1.664654E-06 -2.892684E-03 -4.445095E-06 -5.132099E-04 -7.081387E-07 -3.678767E-03 -3.207908E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -379,18 +135,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136210E-04 -1.882762E-07 -1.000000E-03 -1.000000E-06 -3.974827E-04 -1.579925E-07 --2.630113E-04 -6.917494E-08 --4.392258E-04 -1.929193E-07 -3.007329E-04 -9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -401,16 +145,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.000000E-03 -9.000000E-06 -2.095603E-03 -4.046946E-06 -2.670798E-03 -2.492128E-06 -1.379100E-04 -2.471643E-06 -2.750651E-03 -2.153957E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -419,8 +153,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.044879E-04 -9.271290E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -429,8 +161,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.014657E-04 -3.617610E-07 +1.700000E-02 +7.100000E-05 +5.492922E-03 +1.013834E-05 +5.773309E-04 +3.561549E-06 +2.550048E-03 +3.841061E-06 +8.048523E-03 +1.583844E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -439,6 +179,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.915762E-04 +1.749886E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -459,158 +201,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -4.200000E-05 -5.756515E-03 -9.296704E-06 -1.251623E-03 -5.182413E-06 -2.207579E-03 -5.475159E-06 -5.492134E-03 -6.869563E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.310000E-04 -8.875791E-03 -3.047020E-05 -5.194493E-03 -1.122408E-05 -2.565521E-03 -5.889229E-06 -9.193064E-03 -2.295619E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.539123E-03 -8.532105E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.021986E-04 -8.139623E-07 -1.000000E-03 -1.000000E-06 -9.693968E-04 -9.397302E-07 -9.095953E-04 -8.273636E-07 -8.233334E-04 -6.778780E-07 -0.000000E+00 -0.000000E+00 -2.800000E-02 -1.820000E-04 -8.903131E-03 -2.397214E-05 -1.010587E-02 -2.531134E-05 -4.754028E-03 -9.649119E-06 -1.378015E-02 -4.259630E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.208028E-04 -2.826368E-07 -1.000000E-03 -1.000000E-06 --4.279762E-04 -1.831637E-07 --2.252545E-04 -5.073960E-08 -4.459901E-04 -1.989072E-07 -6.089759E-04 -3.708516E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 1.200000E-02 -4.000000E-05 -4.239853E-03 -1.158537E-05 -1.052249E-03 -2.609268E-06 -1.581467E-03 -5.643069E-07 -6.112773E-03 -1.209962E-05 +4.600000E-05 +9.302157E-04 +3.853850E-06 +1.874541E-03 +3.092623E-06 +-1.511552E-03 +4.053466E-06 +5.941986E-03 +9.853873E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -619,6 +219,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.186549E-03 +5.291648E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -627,110 +229,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.800000E-02 -2.980000E-04 -1.590359E-02 -8.465362E-05 -1.095039E-02 -3.846682E-05 -8.674652E-03 -2.116226E-05 -1.953871E-02 -7.808840E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.098660E-04 -1.860035E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -2.100000E-04 -1.396274E-02 -5.377392E-05 -7.263833E-03 -1.550401E-05 -2.406305E-03 -2.774873E-06 -1.067173E-02 -2.834689E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.159705E-04 -1.897125E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.089759E-04 -3.708516E-07 +2.935668E-04 +8.618149E-08 1.000000E-03 1.000000E-06 --3.845548E-04 -1.478824E-07 --2.781765E-04 -7.738214E-08 -4.346600E-04 -1.889293E-07 +9.893707E-04 +9.788543E-07 +9.682814E-04 +9.375689E-07 +9.370683E-04 +8.780970E-07 0.000000E+00 0.000000E+00 -3.100000E-02 -2.010000E-04 -5.656932E-03 -1.902755E-05 -4.255795E-04 -5.923041E-06 --1.665451E-03 -3.618806E-06 -1.254348E-02 -3.367259E-05 +8.000000E-03 +2.000000E-05 +3.721382E-03 +4.736982E-06 +-1.037031E-04 +6.648392E-07 +-5.996856E-04 +9.642316E-07 +3.248622E-03 +4.063214E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -739,48 +259,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.089759E-04 -3.708516E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -1.000000E-03 -1.000000E-06 -9.418397E-04 -8.870620E-07 -8.305930E-04 -6.898847E-07 -6.759159E-04 -4.568623E-07 -0.000000E+00 -0.000000E+00 -1.700000E-02 -1.070000E-04 -9.563321E-03 -3.797495E-05 -3.872248E-03 -6.913143E-06 -1.851726E-03 -2.042684E-06 -7.032800E-03 -1.543729E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 +2.938723E-04 +8.636093E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -801,56 +281,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.800000E-02 -3.300000E-04 -1.666359E-02 -6.918668E-05 -5.166835E-03 -1.583235E-05 -6.193613E-03 -1.014626E-05 -1.654613E-02 -6.758065E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.218842E-03 -5.568551E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.222651E-03 -7.474483E-07 2.000000E-03 2.000000E-06 -1.859309E-03 -1.730661E-06 -1.595992E-03 -1.290291E-06 -1.243306E-03 -8.262391E-07 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.140000E-04 -1.125786E-02 -3.535152E-05 -6.340891E-03 -1.186849E-05 --6.739003E-04 -6.238152E-06 -1.194483E-02 -3.174072E-05 +1.502634E-03 +1.146555E-06 +7.198331E-04 +3.484978E-07 +-3.426513E-05 +1.342349E-07 +1.511030E-03 +1.198311E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -859,8 +299,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.528427E-03 -1.032143E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -869,28 +307,70 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.091331E-04 -9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.300000E-02 +3.700000E-05 +3.121167E-03 +2.465327E-06 +4.474559E-04 +1.522316E-06 +9.193982E-04 +3.247292E-06 +5.365660E-03 +6.567981E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056044E-04 +1.834317E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.977039E-04 +8.862764E-08 1.000000E-03 1.000000E-06 -8.883829E-04 -7.892241E-07 -6.838361E-04 -4.676319E-07 -4.202586E-04 -1.766173E-07 +2.390376E-04 +5.713899E-08 +-4.142915E-04 +1.716375E-07 +-3.244105E-04 +1.052422E-07 0.000000E+00 0.000000E+00 -2.000000E-02 -1.060000E-04 -6.707526E-03 -2.735840E-05 -6.937679E-03 -1.338587E-05 -5.832553E-03 -1.828962E-05 -1.101850E-02 -3.215320E-05 +1.500000E-02 +5.500000E-05 +2.209492E-03 +2.545503E-06 +5.991182E-03 +1.290780E-05 +1.772063E-03 +2.006265E-06 +5.944487E-03 +1.042417E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -899,8 +379,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.105988E-04 -4.573243E-07 +3.079655E-04 +9.484274E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -909,308 +389,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.227694E-03 -9.417032E-07 -1.000000E-03 -1.000000E-06 -9.408116E-04 -8.851265E-07 -8.276898E-04 -6.850703E-07 -6.706258E-04 -4.497390E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.800000E-05 -2.843265E-03 -6.035154E-06 -4.322434E-03 -7.469456E-06 -2.900345E-03 -4.663845E-06 -7.631460E-03 -1.236685E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.200000E-05 -6.856783E-03 -1.381342E-05 -2.931050E-03 -7.384807E-06 -1.856596E-03 -2.302567E-06 -1.130923E-02 -3.279819E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -2.509363E-04 -6.296901E-08 --4.055465E-04 -1.644679E-07 --3.369014E-04 -1.135025E-07 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -2.900000E-02 -2.010000E-04 -1.040068E-02 -4.442598E-05 -7.909288E-03 -1.634388E-05 -2.600276E-03 -1.084582E-05 -1.160235E-02 -3.244276E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.227694E-03 -9.417032E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -2.900000E-02 -1.890000E-04 -3.796494E-03 -2.573465E-05 -5.901410E-03 -9.723225E-06 -2.069453E-03 -9.510548E-06 -1.438173E-02 -4.416319E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136748E-04 -3.765967E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.240000E-04 -6.672638E-03 -1.840846E-05 -4.370801E-03 -7.557992E-06 -4.585753E-03 -1.441383E-05 -1.162351E-02 -2.791423E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.089759E-04 -3.708516E-07 -1.000000E-03 -1.000000E-06 --8.175500E-04 -6.683879E-07 -5.025819E-04 -2.525886E-07 --1.397764E-04 -1.953744E-08 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.700000E-02 -2.910000E-04 -8.304483E-03 -2.250088E-05 -7.798128E-03 -2.325505E-05 -6.917154E-03 -2.136255E-05 -1.649875E-02 -5.805120E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.500000E-02 -2.550000E-04 -1.934687E-03 -1.279246E-05 -1.742063E-03 -9.283511E-06 -5.580823E-03 -1.402955E-05 -1.465296E-02 -4.425100E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.535220E-03 -1.225842E-06 +1.190621E-03 +8.859279E-07 2.000000E-03 2.000000E-06 -1.954328E-03 -1.909945E-06 -1.864917E-03 -1.741066E-06 -1.735530E-03 -1.513893E-06 +1.908405E-03 +1.821879E-06 +1.732819E-03 +1.508498E-06 +1.487670E-03 +1.131430E-06 0.000000E+00 0.000000E+00 -3.100000E-02 -2.150000E-04 -8.788723E-03 -4.052825E-05 -7.277307E-03 -2.646372E-05 -4.235689E-03 -1.237842E-05 -1.375310E-02 -4.363256E-05 +4.000000E-03 +4.000000E-06 +3.379122E-03 +2.880429E-06 +2.320644E-03 +1.498759E-06 +1.119131E-03 +6.212863E-07 +1.494579E-03 +6.241237E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1219,8 +419,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +2.976389E-04 +8.858892E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1229,278 +429,148 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.143635E-04 -3.774426E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.150000E-04 +5.280651E-03 +1.222273E-05 +5.235520E-03 +1.202448E-05 +5.064093E-03 +1.787892E-05 +1.071093E-02 +2.748613E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.954046E-04 +2.673852E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.560000E-04 +6.314886E-03 +1.168542E-05 +6.676680E-04 +9.930437E-06 +-2.103247E-04 +2.815945E-07 +1.249410E-02 +3.501590E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.159310E-04 +3.793709E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 1.000000E-03 1.000000E-06 -9.752141E-04 -9.510426E-07 -9.265639E-04 -8.585207E-07 -8.558543E-04 -7.324865E-07 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.400000E-05 -5.446779E-03 -8.175340E-06 -2.952745E-03 -6.944505E-06 -9.137774E-04 -1.227091E-06 -7.662475E-03 -1.309219E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.225836E-03 -5.668425E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.800000E-02 -1.660000E-04 -7.579645E-03 -3.038397E-05 -6.894753E-03 -2.399109E-05 -5.371715E-03 -1.603319E-05 -1.344654E-02 -4.055142E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.300000E-04 -4.257114E-03 -3.224130E-05 -8.813774E-03 -2.583867E-05 -4.664136E-03 -1.410529E-05 -1.287730E-02 -3.681324E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --6.367370E-04 -4.054341E-07 -1.081511E-04 -1.169666E-08 -3.097184E-04 -9.592546E-08 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.300000E-04 -1.378482E-02 -5.592497E-05 -9.034738E-03 -2.624250E-05 -5.658518E-03 -1.317424E-05 -1.068557E-02 -2.727026E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.260000E-04 -6.941116E-03 -2.215550E-05 -6.749352E-03 -1.648121E-05 -5.910808E-03 -1.357613E-05 -1.528788E-02 -5.372220E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136210E-04 -1.882762E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.900000E-02 -2.030000E-04 -4.508769E-03 -3.192756E-05 -4.194184E-03 -7.918516E-06 -2.186680E-03 -9.265062E-06 -1.406557E-02 -4.964272E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.518169E-03 -1.003675E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +9.514029E-04 +9.051675E-07 +8.577513E-04 +7.357373E-07 +7.258432E-04 +5.268483E-07 0.000000E+00 0.000000E+00 2.300000E-02 -1.410000E-04 -7.122769E-03 -1.478437E-05 -4.717800E-03 -1.137509E-05 -2.766174E-03 -2.862748E-06 -9.770364E-03 -2.547043E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 +1.650000E-04 +9.507197E-03 +3.773476E-05 +6.295609E-03 +2.127696E-05 +6.339840E-03 +1.601206E-05 +1.065253E-02 +3.447908E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1511,66 +581,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.400000E-05 --2.546403E-03 -8.587879E-06 -3.329285E-04 -1.032543E-06 --6.526073E-04 -5.693572E-06 -7.947562E-03 -1.421771E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.273993E-04 -8.600695E-07 1.000000E-03 1.000000E-06 -9.887237E-04 -9.775745E-07 -9.663618E-04 -9.338551E-07 -9.332922E-04 -8.710343E-07 -0.000000E+00 -0.000000E+00 -1.000000E-02 -3.400000E-05 -2.083696E-03 -6.707681E-06 -2.664177E-03 -4.483757E-06 --3.543315E-04 -7.233059E-07 -3.654309E-03 -3.704263E-06 +-1.117213E-04 +1.248165E-08 +-4.812775E-04 +2.316281E-07 +1.640958E-04 +2.692743E-08 +5.871337E-04 +3.447260E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1579,8 +599,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.007329E-04 -9.044026E-08 +0.000000E+00 +0.000000E+00 +1.500000E-02 +6.300000E-05 +5.790211E-03 +1.210465E-05 +8.591246E-04 +1.950998E-06 +1.987991E-03 +4.703397E-06 +6.572185E-03 +9.479067E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1601,16 +641,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.700000E-02 -7.500000E-05 -7.751840E-03 -1.439369E-05 -5.032178E-03 -1.282123E-05 -5.077992E-03 -8.054934E-06 -7.339781E-03 -1.254543E-05 +2.700000E-02 +1.670000E-04 +1.789444E-02 +8.260005E-05 +1.049872E-02 +2.774537E-05 +5.665111E-03 +8.560197E-06 +1.100708E-02 +2.835296E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1619,18 +659,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +3.079655E-04 +9.484274E-08 1.000000E-03 1.000000E-06 --5.691245E-04 -3.239027E-07 --1.414588E-05 -2.001060E-10 -3.928343E-04 -1.543188E-07 -6.182662E-04 -3.822531E-07 +-2.856031E-04 +8.156913E-08 +-3.776463E-04 +1.426167E-07 +3.701637E-04 +1.370211E-07 +1.203065E-03 +7.240969E-07 +1.000000E-03 +1.000000E-06 +9.705482E-04 +9.419638E-07 +9.129457E-04 +8.334699E-07 +8.297310E-04 +6.884535E-07 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.230000E-04 +5.099566E-03 +9.143616E-06 +4.738751E-03 +7.819254E-06 +3.929250E-03 +6.884420E-06 +1.015650E-02 +2.236950E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1639,18 +699,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.000000E-05 -4.292093E-03 -1.162566E-05 -1.911635E-03 -6.462803E-06 -7.144938E-04 -3.566046E-06 -8.845087E-03 -1.787718E-05 +2.977039E-04 +8.862764E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1659,8 +709,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.098660E-04 -1.860035E-07 +5.912708E-04 +1.748091E-07 +2.000000E-03 +2.000000E-06 +1.762035E-03 +1.552542E-06 +1.328812E-03 +8.839688E-07 +7.771806E-04 +3.049398E-07 +0.000000E+00 +0.000000E+00 +2.800000E-02 +1.780000E-04 +1.190615E-02 +4.434442E-05 +7.332993E-03 +2.337416E-05 +6.867008E-03 +1.321552E-05 +1.283876E-02 +3.527488E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1682,15 +762,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.900000E-02 -7.900000E-05 -7.074706E-03 -1.339988E-05 -3.301242E-03 -3.627546E-06 -3.676901E-03 -5.025480E-06 -7.044700E-03 -1.063679E-05 +1.030000E-04 +3.892013E-03 +8.267134E-06 +3.385502E-03 +6.457947E-06 +4.380506E-03 +1.060881E-05 +7.130795E-03 +1.485135E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1699,8 +779,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.211332E-03 -9.095256E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1709,28 +787,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +0.000000E+00 +0.000000E+00 +8.816169E-04 +7.772484E-07 1.000000E-03 1.000000E-06 -9.924008E-04 -9.848594E-07 -9.772891E-04 -9.550940E-07 -9.548370E-04 -9.117137E-07 +9.951010E-04 +9.902260E-07 +9.853389E-04 +9.708928E-07 +9.707856E-04 +9.424246E-07 0.000000E+00 0.000000E+00 -1.200000E-02 -4.200000E-05 -1.994203E-03 -9.474986E-06 -4.797034E-03 -7.209992E-06 -7.461820E-04 -7.384105E-07 -5.186835E-03 -7.184830E-06 +2.900000E-02 +2.230000E-04 +6.260565E-03 +1.544092E-05 +7.061757E-03 +2.562385E-05 +3.982541E-03 +7.962565E-06 +1.486928E-02 +5.763902E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1739,8 +819,48 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.044879E-04 -9.271290E-08 +5.915762E-04 +1.749886E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.938157E-04 +9.876697E-07 +9.815046E-04 +9.633512E-07 +9.631807E-04 +9.277170E-07 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.460000E-04 +7.818547E-03 +3.176773E-05 +5.200193E-03 +1.419001E-05 +3.947828E-03 +8.417104E-06 +9.232714E-03 +1.900222E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.186919E-03 +5.294604E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1762,15 +882,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.100000E-02 -2.070000E-04 -1.654377E-02 -5.944129E-05 -1.297328E-02 -4.003873E-05 -7.211206E-03 -1.234310E-05 -1.739706E-02 -6.870884E-05 +1.950000E-04 +1.338410E-02 +5.097757E-05 +6.794436E-03 +1.428226E-05 +3.939298E-03 +9.052046E-06 +1.250316E-02 +3.147176E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1779,118 +899,118 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.086475E-04 -4.561217E-07 +5.953428E-04 +1.772166E-07 +1.000000E-03 +1.000000E-06 +-5.747626E-05 +3.303520E-09 +-4.950447E-04 +2.450693E-07 +8.573970E-05 +7.351297E-09 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.748367E-04 +9.503066E-07 +9.254598E-04 +8.564759E-07 +8.537292E-04 +7.288535E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +2.600000E-05 +5.875085E-04 +4.563904E-07 +-9.207198E-05 +5.154496E-07 +3.674257E-05 +1.178281E-06 +5.048984E-03 +5.880390E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.952778E-04 +3.543557E-07 +1.000000E-03 +1.000000E-06 +9.362621E-04 +8.765867E-07 +8.148801E-04 +6.640295E-07 +6.473941E-04 +4.191191E-07 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.130000E-04 +1.472240E-02 +5.500913E-05 +1.077445E-02 +2.987369E-05 +6.729425E-03 +1.249089E-05 +1.363637E-02 +4.345511E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.182717E-03 +5.268981E-07 2.000000E-03 -4.000000E-06 --1.560749E-03 -2.435936E-06 -8.504262E-04 -7.232247E-07 --1.266477E-04 -1.603963E-08 -2.148895E-03 -2.355633E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.068374E-04 -9.414918E-08 -2.100000E-02 -9.900000E-05 -8.524679E-03 -1.919497E-05 -5.830060E-03 -1.195983E-05 -4.439133E-03 -4.446488E-06 -8.535001E-03 -1.828799E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.044879E-04 -9.271290E-08 -3.000000E-03 -5.000000E-06 -3.626106E-04 -7.014271E-07 -2.355907E-04 -3.451505E-07 -1.623342E-03 -1.603144E-06 -3.056692E-03 -2.433689E-06 -3.000000E-03 -5.000000E-06 -2.377207E-03 -2.907996E-06 -1.593038E-03 -1.320423E-06 -1.150471E-03 -8.926966E-07 -0.000000E+00 -0.000000E+00 -1.700000E-02 -6.300000E-05 -8.432455E-03 -1.718164E-05 -2.701919E-03 -5.016066E-06 -2.357556E-03 -3.687074E-06 -7.025349E-03 -1.109437E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.052208E-04 -1.831532E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.215453E-04 -8.492458E-07 +2.000000E-06 +-1.367978E-03 +9.381191E-07 +4.071787E-04 +9.316064E-08 +4.394728E-04 +1.064342E-07 +2.110881E-03 +1.737594E-06 1.000000E-03 1.000000E-06 -9.959310E-04 -9.918786E-07 -9.878179E-04 -9.757842E-07 -9.757102E-04 -9.520103E-07 -0.000000E+00 -0.000000E+00 -1.100000E-02 -4.900000E-05 -5.546222E-03 -1.139525E-05 -1.289839E-03 -2.123481E-06 -1.011230E-03 -1.426586E-06 -5.215344E-03 -8.818614E-06 +9.347357E-04 +8.737309E-07 +8.105963E-04 +6.570664E-07 +6.396651E-04 +4.091714E-07 +2.938723E-04 +8.636093E-08 +2.900000E-02 +1.950000E-04 +8.928267E-03 +2.594547E-05 +4.752762E-03 +1.522378E-05 +5.376579E-03 +1.088620E-05 +1.461149E-02 +4.367386E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,18 +1019,538 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136210E-04 -1.882762E-07 +5.912057E-04 +1.747704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.030000E-04 +1.194795E-02 +4.198084E-05 +8.484089E-03 +1.631808E-05 +5.880364E-03 +1.308096E-05 +1.342551E-02 +3.842917E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.915762E-04 +1.749886E-07 1.000000E-03 1.000000E-06 -3.587682E-04 -1.287146E-07 --3.069281E-04 -9.420486E-08 --4.227055E-04 -1.786799E-07 -1.228132E-03 -9.505098E-07 +-5.881991E-05 +3.459782E-09 +-4.948103E-04 +2.448373E-07 +8.772111E-05 +7.694993E-09 +5.871337E-04 +3.447260E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.030000E-04 +3.010784E-03 +6.984061E-06 +5.243839E-03 +8.093978E-06 +-2.502286E-04 +2.564795E-06 +7.760559E-03 +1.654842E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.000000E-03 +1.000000E-06 +9.333938E-04 +8.712239E-07 +8.068359E-04 +6.509841E-07 +6.328968E-04 +4.005583E-07 +0.000000E+00 +0.000000E+00 +4.400000E-02 +4.320000E-04 +1.141886E-02 +4.208707E-05 +9.213446E-03 +2.259305E-05 +9.177440E-03 +2.088782E-05 +2.116869E-02 +9.629049E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.501009E-03 +6.405023E-07 +1.000000E-03 +1.000000E-06 +5.882614E-04 +3.460515E-07 +1.907719E-05 +3.639390E-10 +-3.734703E-04 +1.394801E-07 +1.472277E-03 +9.506220E-07 +2.000000E-03 +2.000000E-06 +1.830192E-03 +1.679505E-06 +1.519257E-03 +1.189525E-06 +1.118506E-03 +7.332971E-07 +2.977039E-04 +8.862764E-08 +3.100000E-02 +2.250000E-04 +1.389831E-02 +5.927254E-05 +9.999959E-03 +3.379365E-05 +4.584291E-03 +1.665226E-05 +1.729188E-02 +6.078654E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.792523E-03 +8.900699E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +3.880000E-04 +6.620484E-03 +3.751545E-05 +9.255367E-03 +1.963463E-05 +7.761524E-03 +1.694944E-05 +1.659048E-02 +7.200875E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +1.000000E-03 +1.000000E-06 +-5.273064E-04 +2.780520E-07 +-8.292201E-05 +6.876059E-09 +4.244131E-04 +1.801265E-07 +8.891501E-04 +4.407166E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +1.970000E-04 +4.944370E-03 +2.340271E-05 +3.891346E-03 +1.137205E-05 +5.738303E-03 +9.169816E-06 +1.046961E-02 +2.353871E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056694E-04 +1.834704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.203065E-03 +7.240969E-07 +2.000000E-03 +2.000000E-06 +1.696621E-03 +1.449397E-06 +1.174096E-03 +7.548933E-07 +5.719051E-04 +3.184788E-07 +0.000000E+00 +0.000000E+00 +2.900000E-02 +1.990000E-04 +1.237546E-02 +3.198261E-05 +8.287792E-03 +2.747313E-05 +3.254969E-03 +8.653294E-06 +1.189702E-02 +3.303341E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.033083E-04 +2.720593E-07 +3.000000E-03 +3.000000E-06 +3.649225E-04 +1.756075E-06 +1.134112E-03 +8.940601E-07 +-9.392028E-04 +5.872882E-07 +1.484188E-03 +9.721094E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.600000E-02 +2.740000E-04 +9.407788E-03 +2.403566E-05 +4.480017E-03 +6.102099E-06 +5.941113E-03 +1.265337E-05 +1.462273E-02 +4.551799E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056694E-04 +1.834704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.807005E-04 +7.756334E-07 +1.000000E-03 +1.000000E-06 +8.905295E-04 +7.930427E-07 +6.895641E-04 +4.754986E-07 +4.297756E-04 +1.847070E-07 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.800000E-04 +1.225587E-02 +3.757196E-05 +7.670283E-03 +2.316758E-05 +5.282346E-03 +1.407031E-05 +1.162837E-02 +3.241151E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.874391E-04 +1.725424E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.000000E-05 +5.358616E-03 +1.697599E-05 +3.060277E-03 +7.132281E-06 +2.485730E-03 +7.247489E-06 +9.248313E-03 +1.738407E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.991712E-04 +2.696131E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.816220E-04 +9.635817E-07 +9.453726E-04 +8.937294E-07 +8.922496E-04 +7.961093E-07 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.330000E-04 +1.081756E-02 +3.675127E-05 +2.530156E-03 +6.960955E-06 +-1.930911E-03 +4.910249E-06 +1.162826E-02 +3.490280E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.957101E-04 +4.402865E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.700000E-05 +1.046968E-02 +3.828445E-05 +6.704767E-03 +2.668260E-05 +2.659611E-03 +1.143518E-05 +1.099391E-02 +2.847330E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.655540E-03 +2.523801E-06 +3.000000E-03 +5.000000E-06 +2.960960E-03 +4.866206E-06 +2.884206E-03 +4.608867E-06 +2.772329E-03 +4.247272E-06 +2.976389E-04 +8.858892E-08 +1.900000E-02 +8.700000E-05 +5.469796E-03 +1.029265E-05 +4.923561E-04 +2.403244E-06 +2.579361E-03 +5.814745E-06 +8.693503E-03 +1.682274E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1922,15 +1562,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.800000E-02 -8.600000E-05 -4.110494E-03 -1.042545E-05 -2.304908E-03 -4.602048E-06 -1.132856E-03 -1.141229E-06 -9.161625E-03 -2.374582E-05 +1.220000E-04 +6.860987E-03 +2.966806E-05 +4.229750E-03 +1.617998E-05 +1.295452E-03 +8.613003E-07 +7.815193E-03 +2.039363E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,6 +1579,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.935668E-04 +8.618149E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1959,72 +1601,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.000000E-05 -7.480298E-04 -2.696134E-07 -1.010259E-03 -2.525363E-06 -2.404343E-03 -2.960244E-06 -5.213048E-03 -8.232507E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -7.647871E-04 -1.000926E-06 -8.702327E-05 -1.587846E-06 -1.118717E-03 -8.177417E-07 -2.147037E-03 -1.226733E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +2.000000E-02 +1.080000E-04 +8.640372E-03 +1.765553E-05 +5.688468E-03 +1.038555E-05 +2.447898E-03 +4.466055E-06 +8.949668E-03 +1.935056E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2033,6 +1619,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.977039E-04 +8.862764E-08 +1.000000E-03 +1.000000E-06 +-3.805163E-04 +1.447926E-07 +-2.828111E-04 +7.998210E-08 +4.330345E-04 +1.875189E-07 +2.121142E-03 +1.958355E-06 +1.000000E-03 +1.000000E-06 +9.260022E-04 +8.574800E-07 +7.862200E-04 +6.181419E-07 +5.960676E-04 +3.552966E-07 +2.938723E-04 +8.636093E-08 +1.700000E-02 +7.100000E-05 +3.566805E-03 +2.049908E-05 +5.418617E-03 +7.496014E-06 +2.451897E-03 +2.115374E-06 +7.760001E-03 +1.634548E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2041,6 +1659,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.977039E-04 +8.862764E-08 +1.000000E-03 +1.000000E-06 +-7.119580E-04 +5.068842E-07 +2.603263E-04 +6.776977E-08 +1.657364E-04 +2.746855E-08 +8.807005E-04 +7.756334E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2051,6 +1681,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.200000E-02 +3.400000E-05 +5.905081E-03 +1.535048E-05 +3.856089E-03 +8.589511E-06 +3.244585E-03 +5.882222E-06 +5.074321E-03 +5.793166E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2082,15 +1722,337 @@ tally 1: 0.000000E+00 0.000000E+00 1.600000E-02 -6.200000E-05 -9.988601E-03 -3.022832E-05 -6.166188E-03 -1.173350E-05 -3.417134E-03 -5.700622E-06 -7.649352E-03 -1.360625E-05 +5.400000E-05 +7.937805E-03 +1.353584E-05 +4.065443E-03 +5.658333E-06 +3.432476E-03 +3.530320E-06 +6.546903E-03 +9.343145E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.500000E-02 +1.390000E-04 +1.511834E-02 +5.459835E-05 +7.753447E-03 +2.291820E-05 +6.142979E-03 +1.359405E-05 +1.043467E-02 +2.526769E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.912057E-04 +1.747704E-07 +1.000000E-03 +1.000000E-06 +-1.098110E-04 +1.205846E-08 +-4.819123E-04 +2.322395E-07 +1.614061E-04 +2.605194E-08 +8.813115E-04 +4.316252E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.200000E-02 +3.000000E-05 +4.798420E-03 +7.171924E-06 +1.417651E-03 +4.997963E-06 +2.131704E-03 +3.253030E-06 +7.754475E-03 +1.333333E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.938723E-04 +8.636093E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.484383E-03 +1.504224E-06 +3.000000E-03 +5.000000E-06 +2.760812E-03 +4.139104E-06 +2.336063E-03 +2.844690E-06 +1.817042E-03 +1.656152E-06 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.900000E-05 +7.244455E-03 +2.708286E-05 +4.601657E-03 +5.366244E-06 +-1.675270E-03 +3.867377E-06 +9.216755E-03 +2.272207E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.159310E-04 +3.793709E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.000000E-03 +1.800000E-05 +4.925975E-03 +6.260377E-06 +3.176938E-03 +2.631319E-06 +2.008278E-03 +1.484516E-06 +3.844641E-03 +4.075869E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.977039E-04 +8.862764E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.238964E-04 +8.535846E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +4.086838E-03 +5.900874E-06 +1.812330E-03 +3.716159E-06 +2.138941E-03 +3.006748E-06 +5.414129E-03 +8.079335E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-03 +8.000000E-06 +2.104495E-03 +2.749678E-06 +8.451272E-04 +9.362821E-07 +5.355137E-04 +3.419837E-07 +2.683856E-03 +1.512640E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +1.000000E-03 +1.000000E-06 +9.374310E-04 +8.787769E-07 +8.181653E-04 +6.693944E-07 +6.533352E-04 +4.268468E-07 +2.976389E-04 +8.858892E-08 +8.000000E-03 +1.600000E-05 +5.411154E-03 +8.076329E-06 +3.145940E-03 +4.212660E-06 +2.637510E-03 +3.210372E-06 +3.866944E-03 +3.257876E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.175489E-03 +1.381775E-06 +1.000000E-03 +1.000000E-06 +7.809681E-04 +6.099112E-07 +4.148668E-04 +1.721145E-07 +1.935089E-05 +3.744570E-10 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2099,8 +2061,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136748E-04 -3.765967E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2123,14 +2083,108 @@ tally 1: 0.000000E+00 1.000000E-02 3.400000E-05 -3.889110E-03 -7.557500E-06 -1.015827E-04 -2.744147E-06 -7.497308E-04 -3.373523E-06 -4.583807E-03 -6.264955E-06 +4.840884E-03 +1.080853E-05 +3.402096E-03 +4.113972E-06 +1.374077E-03 +2.333511E-06 +4.754696E-03 +7.172310E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +2.030000E-04 +6.527719E-03 +1.422798E-05 +1.560049E-03 +2.934829E-06 +1.548553E-03 +8.929308E-06 +1.108618E-02 +3.019578E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.174573E-03 +8.619943E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-03 +8.000000E-06 +1.520286E-03 +4.076900E-06 +2.191143E-03 +3.717004E-06 +1.161623E-03 +3.726099E-06 +3.570376E-03 +5.251427E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2139,8 +2193,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.052208E-04 -1.831532E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2149,28 +2201,136 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.182662E-04 -3.822531E-07 -2.000000E-03 -4.000000E-06 -1.798872E-03 -3.235939E-06 -1.446227E-03 -2.091573E-06 -1.026515E-03 -1.053733E-06 -3.091331E-04 -9.556328E-08 2.000000E-03 2.000000E-06 -1.796026E-03 -1.613093E-06 -1.419639E-03 -1.009421E-06 -9.284786E-04 -4.359755E-07 -6.113253E-04 -1.868621E-07 +1.447007E-04 +7.721849E-07 +1.582773E-04 +4.841114E-08 +1.981705E-04 +2.166687E-07 +9.135699E-04 +4.679599E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.030000E-04 +1.035735E-02 +3.119381E-05 +6.483551E-03 +1.164471E-05 +3.924334E-03 +6.047577E-06 +9.748673E-03 +2.956634E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.000000E-03 +1.000000E-06 +8.623139E-04 +7.435852E-07 +6.153778E-04 +3.786899E-07 +3.095388E-04 +9.581428E-08 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.900000E-05 +7.385212E-03 +2.033270E-05 +6.336514E-03 +2.028060E-05 +3.967026E-03 +1.027239E-05 +1.066281E-02 +2.937591E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-03 +1.000000E-05 +1.316884E-03 +2.894217E-06 +2.095957E-03 +1.439521E-06 +1.013831E-04 +8.405300E-07 +2.404012E-03 +1.641294E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2203,174 +2363,14 @@ tally 1: 0.000000E+00 1.000000E-03 1.000000E-06 -8.755578E-04 -7.666014E-07 -6.499021E-04 -4.223727E-07 -3.646728E-04 -1.329863E-07 -3.044879E-04 -9.271290E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 -7.911817E-04 -5.000480E-06 -3.670154E-03 -5.136246E-06 -7.963899E-04 -3.142130E-06 -2.757965E-03 -1.792319E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -9.128685E-04 -8.333290E-07 -7.499935E-04 -5.624902E-07 -5.324967E-04 -2.835528E-07 -3.068374E-04 -9.414918E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-03 -2.000000E-06 --3.575073E-05 -3.447056E-08 --9.482942E-04 -4.497282E-07 -4.906190E-05 -7.285661E-08 -6.159705E-04 -1.897125E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -1.728228E-03 -1.868156E-06 -1.372668E-04 -1.772598E-07 --7.147632E-04 -2.712801E-07 -1.225291E-03 -5.607755E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.044879E-04 -9.271290E-08 +-3.865739E-04 +1.494394E-07 +-2.758409E-04 +7.608820E-08 +4.354374E-04 +1.896058E-07 +5.871337E-04 +3.447260E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2402,11 +2402,11 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -5.688123E-01 -6.473815E-02 -6.189326E-01 -7.665427E-02 -3.614785E+00 -2.614396E+00 -4.026586E+01 -3.243814E+02 +5.656887E-01 +6.401442E-02 +6.158976E-01 +7.588371E-02 +3.588479E+00 +2.575762E+00 +4.003041E+01 +3.205440E+02 diff --git a/tests/test_statepoint_batch/results_true.dat b/tests/test_statepoint_batch/results_true.dat index 3ebd5cfff..dd5195ef0 100644 --- a/tests/test_statepoint_batch/results_true.dat +++ b/tests/test_statepoint_batch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.985054E-01 9.345354E-04 +3.003258E-01 3.388059E-03 diff --git a/tests/test_statepoint_interval/results_true.dat b/tests/test_statepoint_interval/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_statepoint_interval/results_true.dat +++ b/tests/test_statepoint_interval/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_statepoint_restart/results_true.dat b/tests/test_statepoint_restart/results_true.dat index 8d848b4cf..49afeb1d5 100644 --- a/tests/test_statepoint_restart/results_true.dat +++ b/tests/test_statepoint_restart/results_true.dat @@ -1,16 +1,16 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 tally 1: -1.300000E-02 -4.300000E-05 -5.553260E-03 -1.267186E-05 -2.953436E-03 -6.351136E-06 -2.295617E-03 -4.617429E-06 -6.420875E-03 -9.259556E-06 +1.100000E-02 +3.700000E-05 +1.307570E-03 +2.851451E-06 +1.564980E-03 +2.368303E-06 +3.138136E-03 +5.769887E-06 +7.719235E-03 +2.632583E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -19,6 +19,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.976389E-04 +8.858892E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -27,8 +29,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.816169E-04 +7.772484E-07 +1.000000E-03 +1.000000E-06 +8.782909E-04 +7.713950E-07 +6.570925E-04 +4.317705E-07 +3.763366E-04 +1.416293E-07 0.000000E+00 0.000000E+00 +7.000000E-03 +1.500000E-05 +3.445754E-03 +3.819507E-06 +2.124056E-03 +1.976201E-06 +1.542203E-03 +1.531669E-06 +4.135720E-03 +4.532612E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -37,240 +59,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.100000E-05 -8.675993E-03 -1.761431E-05 -3.327517E-03 -4.194966E-06 -7.274324E-04 -2.158075E-06 -6.423659E-03 -1.003735E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-03 -1.000000E-05 -2.838403E-04 -8.774323E-07 --4.663243E-04 -9.976861E-07 -5.379858E-04 -2.458806E-07 -1.830193E-03 -1.871531E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.200000E-05 -7.892468E-03 -1.531545E-05 -5.418392E-03 -6.620060E-06 -4.884861E-03 -5.600362E-06 -7.948555E-03 -1.365782E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.120582E-04 -2.773023E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.014657E-04 -3.617610E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -1.020000E-04 -6.418727E-03 -9.985775E-06 -6.251711E-03 -1.053337E-05 -4.720285E-03 -7.809860E-06 -9.455548E-03 -2.200500E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.052208E-04 -1.831532E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136748E-04 -3.765967E-07 -2.000000E-03 -4.000000E-06 -1.977646E-03 -3.911083E-06 -1.933313E-03 -3.737699E-06 -1.867746E-03 -3.488475E-06 -3.068374E-04 -9.414918E-08 -6.000000E-03 -1.400000E-05 -1.048233E-03 -1.572686E-06 -1.209182E-05 -5.233234E-09 -1.086944E-03 -4.015851E-07 -3.362867E-03 -3.082582E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +5.874391E-04 +1.725424E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -279,18 +69,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.079655E-04 +9.484274E-08 +1.000000E-03 +1.000000E-06 +9.451745E-04 +8.933548E-07 +8.400323E-04 +7.056542E-07 +6.931788E-04 +4.804969E-07 0.000000E+00 0.000000E+00 3.000000E-03 3.000000E-06 -2.874586E-03 -2.757041E-06 -2.635561E-03 -2.337016E-06 -2.305139E-03 -1.846818E-06 -1.227985E-03 -5.657187E-07 +1.134842E-03 +1.040850E-06 +6.127525E-05 +3.988312E-07 +4.938488E-05 +2.738492E-07 +1.484493E-03 +9.722888E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -299,8 +99,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -309,28 +107,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.143635E-04 -3.774426E-07 -1.000000E-03 -1.000000E-06 -9.888336E-04 -9.777919E-07 -9.666878E-04 -9.344854E-07 -9.339333E-04 -8.722314E-07 0.000000E+00 0.000000E+00 -1.800000E-02 -6.600000E-05 -3.521497E-03 -1.124575E-05 --1.106505E-03 -1.298962E-06 -2.307061E-03 -1.995982E-06 -7.955988E-03 -1.333038E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -339,18 +117,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.204584E-04 -2.824254E-07 -1.000000E-03 -1.000000E-06 --2.015923E-04 -4.063947E-08 --4.390408E-04 -1.927568E-07 -2.819070E-04 -7.947154E-08 -3.007329E-04 -9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -361,16 +127,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.000000E-03 -2.300000E-05 -8.049890E-04 -1.664654E-06 -2.892684E-03 -4.445095E-06 -5.132099E-04 -7.081387E-07 -3.678767E-03 -3.207908E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -379,18 +135,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136210E-04 -1.882762E-07 -1.000000E-03 -1.000000E-06 -3.974827E-04 -1.579925E-07 --2.630113E-04 -6.917494E-08 --4.392258E-04 -1.929193E-07 -3.007329E-04 -9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -401,16 +145,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.000000E-03 -9.000000E-06 -2.095603E-03 -4.046946E-06 -2.670798E-03 -2.492128E-06 -1.379100E-04 -2.471643E-06 -2.750651E-03 -2.153957E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -419,8 +153,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.044879E-04 -9.271290E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -429,8 +161,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.014657E-04 -3.617610E-07 +1.700000E-02 +7.100000E-05 +5.492922E-03 +1.013834E-05 +5.773309E-04 +3.561549E-06 +2.550048E-03 +3.841061E-06 +8.048523E-03 +1.583844E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -439,6 +179,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.915762E-04 +1.749886E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -459,158 +201,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -4.200000E-05 -5.756515E-03 -9.296704E-06 -1.251623E-03 -5.182413E-06 -2.207579E-03 -5.475159E-06 -5.492134E-03 -6.869563E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.310000E-04 -8.875791E-03 -3.047020E-05 -5.194493E-03 -1.122408E-05 -2.565521E-03 -5.889229E-06 -9.193064E-03 -2.295619E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.539123E-03 -8.532105E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.021986E-04 -8.139623E-07 -1.000000E-03 -1.000000E-06 -9.693968E-04 -9.397302E-07 -9.095953E-04 -8.273636E-07 -8.233334E-04 -6.778780E-07 -0.000000E+00 -0.000000E+00 -2.800000E-02 -1.820000E-04 -8.903131E-03 -2.397214E-05 -1.010587E-02 -2.531134E-05 -4.754028E-03 -9.649119E-06 -1.378015E-02 -4.259630E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.208028E-04 -2.826368E-07 -1.000000E-03 -1.000000E-06 --4.279762E-04 -1.831637E-07 --2.252545E-04 -5.073960E-08 -4.459901E-04 -1.989072E-07 -6.089759E-04 -3.708516E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 1.200000E-02 -4.000000E-05 -4.239853E-03 -1.158537E-05 -1.052249E-03 -2.609268E-06 -1.581467E-03 -5.643069E-07 -6.112773E-03 -1.209962E-05 +4.600000E-05 +9.302157E-04 +3.853850E-06 +1.874541E-03 +3.092623E-06 +-1.511552E-03 +4.053466E-06 +5.941986E-03 +9.853873E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -619,6 +219,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.186549E-03 +5.291648E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -627,110 +229,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.800000E-02 -2.980000E-04 -1.590359E-02 -8.465362E-05 -1.095039E-02 -3.846682E-05 -8.674652E-03 -2.116226E-05 -1.953871E-02 -7.808840E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.098660E-04 -1.860035E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -2.100000E-04 -1.396274E-02 -5.377392E-05 -7.263833E-03 -1.550401E-05 -2.406305E-03 -2.774873E-06 -1.067173E-02 -2.834689E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.159705E-04 -1.897125E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.089759E-04 -3.708516E-07 +2.935668E-04 +8.618149E-08 1.000000E-03 1.000000E-06 --3.845548E-04 -1.478824E-07 --2.781765E-04 -7.738214E-08 -4.346600E-04 -1.889293E-07 +9.893707E-04 +9.788543E-07 +9.682814E-04 +9.375689E-07 +9.370683E-04 +8.780970E-07 0.000000E+00 0.000000E+00 -3.100000E-02 -2.010000E-04 -5.656932E-03 -1.902755E-05 -4.255795E-04 -5.923041E-06 --1.665451E-03 -3.618806E-06 -1.254348E-02 -3.367259E-05 +8.000000E-03 +2.000000E-05 +3.721382E-03 +4.736982E-06 +-1.037031E-04 +6.648392E-07 +-5.996856E-04 +9.642316E-07 +3.248622E-03 +4.063214E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -739,48 +259,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.089759E-04 -3.708516E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -1.000000E-03 -1.000000E-06 -9.418397E-04 -8.870620E-07 -8.305930E-04 -6.898847E-07 -6.759159E-04 -4.568623E-07 -0.000000E+00 -0.000000E+00 -1.700000E-02 -1.070000E-04 -9.563321E-03 -3.797495E-05 -3.872248E-03 -6.913143E-06 -1.851726E-03 -2.042684E-06 -7.032800E-03 -1.543729E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 +2.938723E-04 +8.636093E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -801,56 +281,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.800000E-02 -3.300000E-04 -1.666359E-02 -6.918668E-05 -5.166835E-03 -1.583235E-05 -6.193613E-03 -1.014626E-05 -1.654613E-02 -6.758065E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.218842E-03 -5.568551E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.222651E-03 -7.474483E-07 2.000000E-03 2.000000E-06 -1.859309E-03 -1.730661E-06 -1.595992E-03 -1.290291E-06 -1.243306E-03 -8.262391E-07 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.140000E-04 -1.125786E-02 -3.535152E-05 -6.340891E-03 -1.186849E-05 --6.739003E-04 -6.238152E-06 -1.194483E-02 -3.174072E-05 +1.502634E-03 +1.146555E-06 +7.198331E-04 +3.484978E-07 +-3.426513E-05 +1.342349E-07 +1.511030E-03 +1.198311E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -859,8 +299,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.528427E-03 -1.032143E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -869,28 +307,70 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.091331E-04 -9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.300000E-02 +3.700000E-05 +3.121167E-03 +2.465327E-06 +4.474559E-04 +1.522316E-06 +9.193982E-04 +3.247292E-06 +5.365660E-03 +6.567981E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056044E-04 +1.834317E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.977039E-04 +8.862764E-08 1.000000E-03 1.000000E-06 -8.883829E-04 -7.892241E-07 -6.838361E-04 -4.676319E-07 -4.202586E-04 -1.766173E-07 +2.390376E-04 +5.713899E-08 +-4.142915E-04 +1.716375E-07 +-3.244105E-04 +1.052422E-07 0.000000E+00 0.000000E+00 -2.000000E-02 -1.060000E-04 -6.707526E-03 -2.735840E-05 -6.937679E-03 -1.338587E-05 -5.832553E-03 -1.828962E-05 -1.101850E-02 -3.215320E-05 +1.500000E-02 +5.500000E-05 +2.209492E-03 +2.545503E-06 +5.991182E-03 +1.290780E-05 +1.772063E-03 +2.006265E-06 +5.944487E-03 +1.042417E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -899,8 +379,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.105988E-04 -4.573243E-07 +3.079655E-04 +9.484274E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -909,308 +389,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.227694E-03 -9.417032E-07 -1.000000E-03 -1.000000E-06 -9.408116E-04 -8.851265E-07 -8.276898E-04 -6.850703E-07 -6.706258E-04 -4.497390E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.800000E-05 -2.843265E-03 -6.035154E-06 -4.322434E-03 -7.469456E-06 -2.900345E-03 -4.663845E-06 -7.631460E-03 -1.236685E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.200000E-05 -6.856783E-03 -1.381342E-05 -2.931050E-03 -7.384807E-06 -1.856596E-03 -2.302567E-06 -1.130923E-02 -3.279819E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -2.509363E-04 -6.296901E-08 --4.055465E-04 -1.644679E-07 --3.369014E-04 -1.135025E-07 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -2.900000E-02 -2.010000E-04 -1.040068E-02 -4.442598E-05 -7.909288E-03 -1.634388E-05 -2.600276E-03 -1.084582E-05 -1.160235E-02 -3.244276E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.227694E-03 -9.417032E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -2.900000E-02 -1.890000E-04 -3.796494E-03 -2.573465E-05 -5.901410E-03 -9.723225E-06 -2.069453E-03 -9.510548E-06 -1.438173E-02 -4.416319E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136748E-04 -3.765967E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.240000E-04 -6.672638E-03 -1.840846E-05 -4.370801E-03 -7.557992E-06 -4.585753E-03 -1.441383E-05 -1.162351E-02 -2.791423E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.089759E-04 -3.708516E-07 -1.000000E-03 -1.000000E-06 --8.175500E-04 -6.683879E-07 -5.025819E-04 -2.525886E-07 --1.397764E-04 -1.953744E-08 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.700000E-02 -2.910000E-04 -8.304483E-03 -2.250088E-05 -7.798128E-03 -2.325505E-05 -6.917154E-03 -2.136255E-05 -1.649875E-02 -5.805120E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.500000E-02 -2.550000E-04 -1.934687E-03 -1.279246E-05 -1.742063E-03 -9.283511E-06 -5.580823E-03 -1.402955E-05 -1.465296E-02 -4.425100E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.535220E-03 -1.225842E-06 +1.190621E-03 +8.859279E-07 2.000000E-03 2.000000E-06 -1.954328E-03 -1.909945E-06 -1.864917E-03 -1.741066E-06 -1.735530E-03 -1.513893E-06 +1.908405E-03 +1.821879E-06 +1.732819E-03 +1.508498E-06 +1.487670E-03 +1.131430E-06 0.000000E+00 0.000000E+00 -3.100000E-02 -2.150000E-04 -8.788723E-03 -4.052825E-05 -7.277307E-03 -2.646372E-05 -4.235689E-03 -1.237842E-05 -1.375310E-02 -4.363256E-05 +4.000000E-03 +4.000000E-06 +3.379122E-03 +2.880429E-06 +2.320644E-03 +1.498759E-06 +1.119131E-03 +6.212863E-07 +1.494579E-03 +6.241237E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1219,8 +419,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +2.976389E-04 +8.858892E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1229,278 +429,148 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.143635E-04 -3.774426E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.150000E-04 +5.280651E-03 +1.222273E-05 +5.235520E-03 +1.202448E-05 +5.064093E-03 +1.787892E-05 +1.071093E-02 +2.748613E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.954046E-04 +2.673852E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.560000E-04 +6.314886E-03 +1.168542E-05 +6.676680E-04 +9.930437E-06 +-2.103247E-04 +2.815945E-07 +1.249410E-02 +3.501590E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.159310E-04 +3.793709E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 1.000000E-03 1.000000E-06 -9.752141E-04 -9.510426E-07 -9.265639E-04 -8.585207E-07 -8.558543E-04 -7.324865E-07 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.400000E-05 -5.446779E-03 -8.175340E-06 -2.952745E-03 -6.944505E-06 -9.137774E-04 -1.227091E-06 -7.662475E-03 -1.309219E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.225836E-03 -5.668425E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.800000E-02 -1.660000E-04 -7.579645E-03 -3.038397E-05 -6.894753E-03 -2.399109E-05 -5.371715E-03 -1.603319E-05 -1.344654E-02 -4.055142E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.300000E-04 -4.257114E-03 -3.224130E-05 -8.813774E-03 -2.583867E-05 -4.664136E-03 -1.410529E-05 -1.287730E-02 -3.681324E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --6.367370E-04 -4.054341E-07 -1.081511E-04 -1.169666E-08 -3.097184E-04 -9.592546E-08 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.300000E-04 -1.378482E-02 -5.592497E-05 -9.034738E-03 -2.624250E-05 -5.658518E-03 -1.317424E-05 -1.068557E-02 -2.727026E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.260000E-04 -6.941116E-03 -2.215550E-05 -6.749352E-03 -1.648121E-05 -5.910808E-03 -1.357613E-05 -1.528788E-02 -5.372220E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136210E-04 -1.882762E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.900000E-02 -2.030000E-04 -4.508769E-03 -3.192756E-05 -4.194184E-03 -7.918516E-06 -2.186680E-03 -9.265062E-06 -1.406557E-02 -4.964272E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.518169E-03 -1.003675E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +9.514029E-04 +9.051675E-07 +8.577513E-04 +7.357373E-07 +7.258432E-04 +5.268483E-07 0.000000E+00 0.000000E+00 2.300000E-02 -1.410000E-04 -7.122769E-03 -1.478437E-05 -4.717800E-03 -1.137509E-05 -2.766174E-03 -2.862748E-06 -9.770364E-03 -2.547043E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 +1.650000E-04 +9.507197E-03 +3.773476E-05 +6.295609E-03 +2.127696E-05 +6.339840E-03 +1.601206E-05 +1.065253E-02 +3.447908E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1511,66 +581,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.400000E-05 --2.546403E-03 -8.587879E-06 -3.329285E-04 -1.032543E-06 --6.526073E-04 -5.693572E-06 -7.947562E-03 -1.421771E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.273993E-04 -8.600695E-07 1.000000E-03 1.000000E-06 -9.887237E-04 -9.775745E-07 -9.663618E-04 -9.338551E-07 -9.332922E-04 -8.710343E-07 -0.000000E+00 -0.000000E+00 -1.000000E-02 -3.400000E-05 -2.083696E-03 -6.707681E-06 -2.664177E-03 -4.483757E-06 --3.543315E-04 -7.233059E-07 -3.654309E-03 -3.704263E-06 +-1.117213E-04 +1.248165E-08 +-4.812775E-04 +2.316281E-07 +1.640958E-04 +2.692743E-08 +5.871337E-04 +3.447260E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1579,8 +599,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.007329E-04 -9.044026E-08 +0.000000E+00 +0.000000E+00 +1.500000E-02 +6.300000E-05 +5.790211E-03 +1.210465E-05 +8.591246E-04 +1.950998E-06 +1.987991E-03 +4.703397E-06 +6.572185E-03 +9.479067E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1601,16 +641,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.700000E-02 -7.500000E-05 -7.751840E-03 -1.439369E-05 -5.032178E-03 -1.282123E-05 -5.077992E-03 -8.054934E-06 -7.339781E-03 -1.254543E-05 +2.700000E-02 +1.670000E-04 +1.789444E-02 +8.260005E-05 +1.049872E-02 +2.774537E-05 +5.665111E-03 +8.560197E-06 +1.100708E-02 +2.835296E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1619,18 +659,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +3.079655E-04 +9.484274E-08 1.000000E-03 1.000000E-06 --5.691245E-04 -3.239027E-07 --1.414588E-05 -2.001060E-10 -3.928343E-04 -1.543188E-07 -6.182662E-04 -3.822531E-07 +-2.856031E-04 +8.156913E-08 +-3.776463E-04 +1.426167E-07 +3.701637E-04 +1.370211E-07 +1.203065E-03 +7.240969E-07 +1.000000E-03 +1.000000E-06 +9.705482E-04 +9.419638E-07 +9.129457E-04 +8.334699E-07 +8.297310E-04 +6.884535E-07 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.230000E-04 +5.099566E-03 +9.143616E-06 +4.738751E-03 +7.819254E-06 +3.929250E-03 +6.884420E-06 +1.015650E-02 +2.236950E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1639,18 +699,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.000000E-05 -4.292093E-03 -1.162566E-05 -1.911635E-03 -6.462803E-06 -7.144938E-04 -3.566046E-06 -8.845087E-03 -1.787718E-05 +2.977039E-04 +8.862764E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1659,8 +709,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.098660E-04 -1.860035E-07 +5.912708E-04 +1.748091E-07 +2.000000E-03 +2.000000E-06 +1.762035E-03 +1.552542E-06 +1.328812E-03 +8.839688E-07 +7.771806E-04 +3.049398E-07 +0.000000E+00 +0.000000E+00 +2.800000E-02 +1.780000E-04 +1.190615E-02 +4.434442E-05 +7.332993E-03 +2.337416E-05 +6.867008E-03 +1.321552E-05 +1.283876E-02 +3.527488E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1682,15 +762,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.900000E-02 -7.900000E-05 -7.074706E-03 -1.339988E-05 -3.301242E-03 -3.627546E-06 -3.676901E-03 -5.025480E-06 -7.044700E-03 -1.063679E-05 +1.030000E-04 +3.892013E-03 +8.267134E-06 +3.385502E-03 +6.457947E-06 +4.380506E-03 +1.060881E-05 +7.130795E-03 +1.485135E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1699,8 +779,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.211332E-03 -9.095256E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1709,28 +787,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +0.000000E+00 +0.000000E+00 +8.816169E-04 +7.772484E-07 1.000000E-03 1.000000E-06 -9.924008E-04 -9.848594E-07 -9.772891E-04 -9.550940E-07 -9.548370E-04 -9.117137E-07 +9.951010E-04 +9.902260E-07 +9.853389E-04 +9.708928E-07 +9.707856E-04 +9.424246E-07 0.000000E+00 0.000000E+00 -1.200000E-02 -4.200000E-05 -1.994203E-03 -9.474986E-06 -4.797034E-03 -7.209992E-06 -7.461820E-04 -7.384105E-07 -5.186835E-03 -7.184830E-06 +2.900000E-02 +2.230000E-04 +6.260565E-03 +1.544092E-05 +7.061757E-03 +2.562385E-05 +3.982541E-03 +7.962565E-06 +1.486928E-02 +5.763902E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1739,8 +819,48 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.044879E-04 -9.271290E-08 +5.915762E-04 +1.749886E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.938157E-04 +9.876697E-07 +9.815046E-04 +9.633512E-07 +9.631807E-04 +9.277170E-07 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.460000E-04 +7.818547E-03 +3.176773E-05 +5.200193E-03 +1.419001E-05 +3.947828E-03 +8.417104E-06 +9.232714E-03 +1.900222E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.186919E-03 +5.294604E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1762,15 +882,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.100000E-02 -2.070000E-04 -1.654377E-02 -5.944129E-05 -1.297328E-02 -4.003873E-05 -7.211206E-03 -1.234310E-05 -1.739706E-02 -6.870884E-05 +1.950000E-04 +1.338410E-02 +5.097757E-05 +6.794436E-03 +1.428226E-05 +3.939298E-03 +9.052046E-06 +1.250316E-02 +3.147176E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1779,118 +899,118 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.086475E-04 -4.561217E-07 +5.953428E-04 +1.772166E-07 +1.000000E-03 +1.000000E-06 +-5.747626E-05 +3.303520E-09 +-4.950447E-04 +2.450693E-07 +8.573970E-05 +7.351297E-09 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.748367E-04 +9.503066E-07 +9.254598E-04 +8.564759E-07 +8.537292E-04 +7.288535E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +2.600000E-05 +5.875085E-04 +4.563904E-07 +-9.207198E-05 +5.154496E-07 +3.674257E-05 +1.178281E-06 +5.048984E-03 +5.880390E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.952778E-04 +3.543557E-07 +1.000000E-03 +1.000000E-06 +9.362621E-04 +8.765867E-07 +8.148801E-04 +6.640295E-07 +6.473941E-04 +4.191191E-07 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.130000E-04 +1.472240E-02 +5.500913E-05 +1.077445E-02 +2.987369E-05 +6.729425E-03 +1.249089E-05 +1.363637E-02 +4.345511E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.182717E-03 +5.268981E-07 2.000000E-03 -4.000000E-06 --1.560749E-03 -2.435936E-06 -8.504262E-04 -7.232247E-07 --1.266477E-04 -1.603963E-08 -2.148895E-03 -2.355633E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.068374E-04 -9.414918E-08 -2.100000E-02 -9.900000E-05 -8.524679E-03 -1.919497E-05 -5.830060E-03 -1.195983E-05 -4.439133E-03 -4.446488E-06 -8.535001E-03 -1.828799E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.044879E-04 -9.271290E-08 -3.000000E-03 -5.000000E-06 -3.626106E-04 -7.014271E-07 -2.355907E-04 -3.451505E-07 -1.623342E-03 -1.603144E-06 -3.056692E-03 -2.433689E-06 -3.000000E-03 -5.000000E-06 -2.377207E-03 -2.907996E-06 -1.593038E-03 -1.320423E-06 -1.150471E-03 -8.926966E-07 -0.000000E+00 -0.000000E+00 -1.700000E-02 -6.300000E-05 -8.432455E-03 -1.718164E-05 -2.701919E-03 -5.016066E-06 -2.357556E-03 -3.687074E-06 -7.025349E-03 -1.109437E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.052208E-04 -1.831532E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.215453E-04 -8.492458E-07 +2.000000E-06 +-1.367978E-03 +9.381191E-07 +4.071787E-04 +9.316064E-08 +4.394728E-04 +1.064342E-07 +2.110881E-03 +1.737594E-06 1.000000E-03 1.000000E-06 -9.959310E-04 -9.918786E-07 -9.878179E-04 -9.757842E-07 -9.757102E-04 -9.520103E-07 -0.000000E+00 -0.000000E+00 -1.100000E-02 -4.900000E-05 -5.546222E-03 -1.139525E-05 -1.289839E-03 -2.123481E-06 -1.011230E-03 -1.426586E-06 -5.215344E-03 -8.818614E-06 +9.347357E-04 +8.737309E-07 +8.105963E-04 +6.570664E-07 +6.396651E-04 +4.091714E-07 +2.938723E-04 +8.636093E-08 +2.900000E-02 +1.950000E-04 +8.928267E-03 +2.594547E-05 +4.752762E-03 +1.522378E-05 +5.376579E-03 +1.088620E-05 +1.461149E-02 +4.367386E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,18 +1019,538 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136210E-04 -1.882762E-07 +5.912057E-04 +1.747704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.030000E-04 +1.194795E-02 +4.198084E-05 +8.484089E-03 +1.631808E-05 +5.880364E-03 +1.308096E-05 +1.342551E-02 +3.842917E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.915762E-04 +1.749886E-07 1.000000E-03 1.000000E-06 -3.587682E-04 -1.287146E-07 --3.069281E-04 -9.420486E-08 --4.227055E-04 -1.786799E-07 -1.228132E-03 -9.505098E-07 +-5.881991E-05 +3.459782E-09 +-4.948103E-04 +2.448373E-07 +8.772111E-05 +7.694993E-09 +5.871337E-04 +3.447260E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.030000E-04 +3.010784E-03 +6.984061E-06 +5.243839E-03 +8.093978E-06 +-2.502286E-04 +2.564795E-06 +7.760559E-03 +1.654842E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.000000E-03 +1.000000E-06 +9.333938E-04 +8.712239E-07 +8.068359E-04 +6.509841E-07 +6.328968E-04 +4.005583E-07 +0.000000E+00 +0.000000E+00 +4.400000E-02 +4.320000E-04 +1.141886E-02 +4.208707E-05 +9.213446E-03 +2.259305E-05 +9.177440E-03 +2.088782E-05 +2.116869E-02 +9.629049E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.501009E-03 +6.405023E-07 +1.000000E-03 +1.000000E-06 +5.882614E-04 +3.460515E-07 +1.907719E-05 +3.639390E-10 +-3.734703E-04 +1.394801E-07 +1.472277E-03 +9.506220E-07 +2.000000E-03 +2.000000E-06 +1.830192E-03 +1.679505E-06 +1.519257E-03 +1.189525E-06 +1.118506E-03 +7.332971E-07 +2.977039E-04 +8.862764E-08 +3.100000E-02 +2.250000E-04 +1.389831E-02 +5.927254E-05 +9.999959E-03 +3.379365E-05 +4.584291E-03 +1.665226E-05 +1.729188E-02 +6.078654E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.792523E-03 +8.900699E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +3.880000E-04 +6.620484E-03 +3.751545E-05 +9.255367E-03 +1.963463E-05 +7.761524E-03 +1.694944E-05 +1.659048E-02 +7.200875E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +1.000000E-03 +1.000000E-06 +-5.273064E-04 +2.780520E-07 +-8.292201E-05 +6.876059E-09 +4.244131E-04 +1.801265E-07 +8.891501E-04 +4.407166E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +1.970000E-04 +4.944370E-03 +2.340271E-05 +3.891346E-03 +1.137205E-05 +5.738303E-03 +9.169816E-06 +1.046961E-02 +2.353871E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056694E-04 +1.834704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.203065E-03 +7.240969E-07 +2.000000E-03 +2.000000E-06 +1.696621E-03 +1.449397E-06 +1.174096E-03 +7.548933E-07 +5.719051E-04 +3.184788E-07 +0.000000E+00 +0.000000E+00 +2.900000E-02 +1.990000E-04 +1.237546E-02 +3.198261E-05 +8.287792E-03 +2.747313E-05 +3.254969E-03 +8.653294E-06 +1.189702E-02 +3.303341E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.033083E-04 +2.720593E-07 +3.000000E-03 +3.000000E-06 +3.649225E-04 +1.756075E-06 +1.134112E-03 +8.940601E-07 +-9.392028E-04 +5.872882E-07 +1.484188E-03 +9.721094E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.600000E-02 +2.740000E-04 +9.407788E-03 +2.403566E-05 +4.480017E-03 +6.102099E-06 +5.941113E-03 +1.265337E-05 +1.462273E-02 +4.551799E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056694E-04 +1.834704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.807005E-04 +7.756334E-07 +1.000000E-03 +1.000000E-06 +8.905295E-04 +7.930427E-07 +6.895641E-04 +4.754986E-07 +4.297756E-04 +1.847070E-07 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.800000E-04 +1.225587E-02 +3.757196E-05 +7.670283E-03 +2.316758E-05 +5.282346E-03 +1.407031E-05 +1.162837E-02 +3.241151E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.874391E-04 +1.725424E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.000000E-05 +5.358616E-03 +1.697599E-05 +3.060277E-03 +7.132281E-06 +2.485730E-03 +7.247489E-06 +9.248313E-03 +1.738407E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.991712E-04 +2.696131E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.816220E-04 +9.635817E-07 +9.453726E-04 +8.937294E-07 +8.922496E-04 +7.961093E-07 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.330000E-04 +1.081756E-02 +3.675127E-05 +2.530156E-03 +6.960955E-06 +-1.930911E-03 +4.910249E-06 +1.162826E-02 +3.490280E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.957101E-04 +4.402865E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.700000E-05 +1.046968E-02 +3.828445E-05 +6.704767E-03 +2.668260E-05 +2.659611E-03 +1.143518E-05 +1.099391E-02 +2.847330E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.655540E-03 +2.523801E-06 +3.000000E-03 +5.000000E-06 +2.960960E-03 +4.866206E-06 +2.884206E-03 +4.608867E-06 +2.772329E-03 +4.247272E-06 +2.976389E-04 +8.858892E-08 +1.900000E-02 +8.700000E-05 +5.469796E-03 +1.029265E-05 +4.923561E-04 +2.403244E-06 +2.579361E-03 +5.814745E-06 +8.693503E-03 +1.682274E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1922,15 +1562,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.800000E-02 -8.600000E-05 -4.110494E-03 -1.042545E-05 -2.304908E-03 -4.602048E-06 -1.132856E-03 -1.141229E-06 -9.161625E-03 -2.374582E-05 +1.220000E-04 +6.860987E-03 +2.966806E-05 +4.229750E-03 +1.617998E-05 +1.295452E-03 +8.613003E-07 +7.815193E-03 +2.039363E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,6 +1579,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.935668E-04 +8.618149E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1959,72 +1601,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.000000E-05 -7.480298E-04 -2.696134E-07 -1.010259E-03 -2.525363E-06 -2.404343E-03 -2.960244E-06 -5.213048E-03 -8.232507E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -7.647871E-04 -1.000926E-06 -8.702327E-05 -1.587846E-06 -1.118717E-03 -8.177417E-07 -2.147037E-03 -1.226733E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +2.000000E-02 +1.080000E-04 +8.640372E-03 +1.765553E-05 +5.688468E-03 +1.038555E-05 +2.447898E-03 +4.466055E-06 +8.949668E-03 +1.935056E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2033,6 +1619,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.977039E-04 +8.862764E-08 +1.000000E-03 +1.000000E-06 +-3.805163E-04 +1.447926E-07 +-2.828111E-04 +7.998210E-08 +4.330345E-04 +1.875189E-07 +2.121142E-03 +1.958355E-06 +1.000000E-03 +1.000000E-06 +9.260022E-04 +8.574800E-07 +7.862200E-04 +6.181419E-07 +5.960676E-04 +3.552966E-07 +2.938723E-04 +8.636093E-08 +1.700000E-02 +7.100000E-05 +3.566805E-03 +2.049908E-05 +5.418617E-03 +7.496014E-06 +2.451897E-03 +2.115374E-06 +7.760001E-03 +1.634548E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2041,6 +1659,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.977039E-04 +8.862764E-08 +1.000000E-03 +1.000000E-06 +-7.119580E-04 +5.068842E-07 +2.603263E-04 +6.776977E-08 +1.657364E-04 +2.746855E-08 +8.807005E-04 +7.756334E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2051,6 +1681,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.200000E-02 +3.400000E-05 +5.905081E-03 +1.535048E-05 +3.856089E-03 +8.589511E-06 +3.244585E-03 +5.882222E-06 +5.074321E-03 +5.793166E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2082,15 +1722,337 @@ tally 1: 0.000000E+00 0.000000E+00 1.600000E-02 -6.200000E-05 -9.988601E-03 -3.022832E-05 -6.166188E-03 -1.173350E-05 -3.417134E-03 -5.700622E-06 -7.649352E-03 -1.360625E-05 +5.400000E-05 +7.937805E-03 +1.353584E-05 +4.065443E-03 +5.658333E-06 +3.432476E-03 +3.530320E-06 +6.546903E-03 +9.343145E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.500000E-02 +1.390000E-04 +1.511834E-02 +5.459835E-05 +7.753447E-03 +2.291820E-05 +6.142979E-03 +1.359405E-05 +1.043467E-02 +2.526769E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.912057E-04 +1.747704E-07 +1.000000E-03 +1.000000E-06 +-1.098110E-04 +1.205846E-08 +-4.819123E-04 +2.322395E-07 +1.614061E-04 +2.605194E-08 +8.813115E-04 +4.316252E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.200000E-02 +3.000000E-05 +4.798420E-03 +7.171924E-06 +1.417651E-03 +4.997963E-06 +2.131704E-03 +3.253030E-06 +7.754475E-03 +1.333333E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.938723E-04 +8.636093E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.484383E-03 +1.504224E-06 +3.000000E-03 +5.000000E-06 +2.760812E-03 +4.139104E-06 +2.336063E-03 +2.844690E-06 +1.817042E-03 +1.656152E-06 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.900000E-05 +7.244455E-03 +2.708286E-05 +4.601657E-03 +5.366244E-06 +-1.675270E-03 +3.867377E-06 +9.216755E-03 +2.272207E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.159310E-04 +3.793709E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.000000E-03 +1.800000E-05 +4.925975E-03 +6.260377E-06 +3.176938E-03 +2.631319E-06 +2.008278E-03 +1.484516E-06 +3.844641E-03 +4.075869E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.977039E-04 +8.862764E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.238964E-04 +8.535846E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +4.086838E-03 +5.900874E-06 +1.812330E-03 +3.716159E-06 +2.138941E-03 +3.006748E-06 +5.414129E-03 +8.079335E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-03 +8.000000E-06 +2.104495E-03 +2.749678E-06 +8.451272E-04 +9.362821E-07 +5.355137E-04 +3.419837E-07 +2.683856E-03 +1.512640E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +1.000000E-03 +1.000000E-06 +9.374310E-04 +8.787769E-07 +8.181653E-04 +6.693944E-07 +6.533352E-04 +4.268468E-07 +2.976389E-04 +8.858892E-08 +8.000000E-03 +1.600000E-05 +5.411154E-03 +8.076329E-06 +3.145940E-03 +4.212660E-06 +2.637510E-03 +3.210372E-06 +3.866944E-03 +3.257876E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.175489E-03 +1.381775E-06 +1.000000E-03 +1.000000E-06 +7.809681E-04 +6.099112E-07 +4.148668E-04 +1.721145E-07 +1.935089E-05 +3.744570E-10 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2099,8 +2061,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136748E-04 -3.765967E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2123,14 +2083,108 @@ tally 1: 0.000000E+00 1.000000E-02 3.400000E-05 -3.889110E-03 -7.557500E-06 -1.015827E-04 -2.744147E-06 -7.497308E-04 -3.373523E-06 -4.583807E-03 -6.264955E-06 +4.840884E-03 +1.080853E-05 +3.402096E-03 +4.113972E-06 +1.374077E-03 +2.333511E-06 +4.754696E-03 +7.172310E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +2.030000E-04 +6.527719E-03 +1.422798E-05 +1.560049E-03 +2.934829E-06 +1.548553E-03 +8.929308E-06 +1.108618E-02 +3.019578E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.174573E-03 +8.619943E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-03 +8.000000E-06 +1.520286E-03 +4.076900E-06 +2.191143E-03 +3.717004E-06 +1.161623E-03 +3.726099E-06 +3.570376E-03 +5.251427E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2139,8 +2193,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.052208E-04 -1.831532E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2149,28 +2201,136 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.182662E-04 -3.822531E-07 -2.000000E-03 -4.000000E-06 -1.798872E-03 -3.235939E-06 -1.446227E-03 -2.091573E-06 -1.026515E-03 -1.053733E-06 -3.091331E-04 -9.556328E-08 2.000000E-03 2.000000E-06 -1.796026E-03 -1.613093E-06 -1.419639E-03 -1.009421E-06 -9.284786E-04 -4.359755E-07 -6.113253E-04 -1.868621E-07 +1.447007E-04 +7.721849E-07 +1.582773E-04 +4.841114E-08 +1.981705E-04 +2.166687E-07 +9.135699E-04 +4.679599E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.030000E-04 +1.035735E-02 +3.119381E-05 +6.483551E-03 +1.164471E-05 +3.924334E-03 +6.047577E-06 +9.748673E-03 +2.956634E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.000000E-03 +1.000000E-06 +8.623139E-04 +7.435852E-07 +6.153778E-04 +3.786899E-07 +3.095388E-04 +9.581428E-08 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.900000E-05 +7.385212E-03 +2.033270E-05 +6.336514E-03 +2.028060E-05 +3.967026E-03 +1.027239E-05 +1.066281E-02 +2.937591E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-03 +1.000000E-05 +1.316884E-03 +2.894217E-06 +2.095957E-03 +1.439521E-06 +1.013831E-04 +8.405300E-07 +2.404012E-03 +1.641294E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2203,174 +2363,14 @@ tally 1: 0.000000E+00 1.000000E-03 1.000000E-06 -8.755578E-04 -7.666014E-07 -6.499021E-04 -4.223727E-07 -3.646728E-04 -1.329863E-07 -3.044879E-04 -9.271290E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 -7.911817E-04 -5.000480E-06 -3.670154E-03 -5.136246E-06 -7.963899E-04 -3.142130E-06 -2.757965E-03 -1.792319E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -9.128685E-04 -8.333290E-07 -7.499935E-04 -5.624902E-07 -5.324967E-04 -2.835528E-07 -3.068374E-04 -9.414918E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-03 -2.000000E-06 --3.575073E-05 -3.447056E-08 --9.482942E-04 -4.497282E-07 -4.906190E-05 -7.285661E-08 -6.159705E-04 -1.897125E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -1.728228E-03 -1.868156E-06 -1.372668E-04 -1.772598E-07 --7.147632E-04 -2.712801E-07 -1.225291E-03 -5.607755E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.044879E-04 -9.271290E-08 +-3.865739E-04 +1.494394E-07 +-2.758409E-04 +7.608820E-08 +4.354374E-04 +1.896058E-07 +5.871337E-04 +3.447260E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2402,11 +2402,11 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -5.688123E-01 -6.473815E-02 -6.189326E-01 -7.665427E-02 -3.614785E+00 -2.614396E+00 -4.026586E+01 -3.243814E+02 +5.656887E-01 +6.401442E-02 +6.158976E-01 +7.588371E-02 +3.588479E+00 +2.575762E+00 +4.003041E+01 +3.205440E+02 diff --git a/tests/test_statepoint_sourcesep/results_true.dat b/tests/test_statepoint_sourcesep/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_statepoint_sourcesep/results_true.dat +++ b/tests/test_statepoint_sourcesep/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_survival_biasing/results_true.dat b/tests/test_survival_biasing/results_true.dat index 904a2ef7e..e44ec289a 100644 --- a/tests/test_survival_biasing/results_true.dat +++ b/tests/test_survival_biasing/results_true.dat @@ -1,20 +1,20 @@ k-combined: -9.939120E-01 9.319846E-03 +9.686215E-01 1.511499E-02 tally 1: -4.354779E+01 -3.793738E+02 -1.814974E+01 -6.591525E+01 -2.217235E+00 -9.837360E-01 -1.919728E+00 -7.373585E-01 -4.971723E+00 -4.945321E+00 -3.485412E-02 -2.430294E-04 -3.718202E+02 -2.766078E+04 +4.243782E+01 +3.604528E+02 +1.770205E+01 +6.273029E+01 +2.176094E+00 +9.477949E-01 +1.881775E+00 +7.087350E-01 +4.868971E+00 +4.744828E+00 +3.400887E-02 +2.314715E-04 +3.644408E+02 +2.658287E+04 tally 2: -1.814974E+01 -6.591525E+01 +1.770205E+01 +6.273029E+01 diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index e5ec97453..4ee2177b8 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -4622766eb676b86e58307ae9c6af24f15427243f49d1f16e061854df0c389b36ba1ed83f8c8d769df0cb1c25a3d66d0119e32f730df145f5590c0beea0f4cc6e \ No newline at end of file +80bb207ab79131ff264a205703fcc798e3353dbead81e39dadf262979d6d6ad786123588e330c8d0bccddbcb7b7ce9af8447c73a317174019977d2392edf31f6 \ No newline at end of file diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 572d85efa..f5efc1934 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -bb3d417db2e127ac0307ebdbde43f0483613df75c7fd9cb85543ec8047d99c69926cb2299a09b575a3dbaaa74fd197aa685ac005a3fc949e2413741870dd8a68 \ No newline at end of file +0c46f4198850c6bedcd3294fbbed9a6814568344f39d389f0b05aa0198bf4bb8a8bac4c6aa698bf66879c3037d1352f2cf6d8dff479d5b64be41fd88d93d3a04 \ No newline at end of file diff --git a/tests/test_tally_assumesep/results_true.dat b/tests/test_tally_assumesep/results_true.dat index b99a54daa..e8ff199a0 100644 --- a/tests/test_tally_assumesep/results_true.dat +++ b/tests/test_tally_assumesep/results_true.dat @@ -1,11 +1,11 @@ k-combined: -1.102447E+00 7.056170E-03 +9.581523E-01 4.261823E-02 tally 1: -1.560445E+01 -4.918297E+01 +1.529084E+01 +4.769011E+01 tally 2: -3.014547E+00 -1.838255E+00 +3.198905E+00 +2.114129E+00 tally 3: -4.466613E+01 -4.017825E+02 +4.510603E+01 +4.183089E+02 diff --git a/tests/test_tally_nuclides/results_true.dat b/tests/test_tally_nuclides/results_true.dat index ae66471ef..36250aba7 100644 --- a/tests/test_tally_nuclides/results_true.dat +++ b/tests/test_tally_nuclides/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.404984E-01 5.010334E-02 +9.752414E-01 4.425137E-02 tally 1: -6.716608E+00 -9.111797E+00 -1.520164E+00 -4.654833E-01 -1.475303E+00 -4.381727E-01 -5.196444E+00 -5.459040E+00 -6.716608E+00 -9.111797E+00 -1.520164E+00 -4.654833E-01 -1.475303E+00 -4.381727E-01 -5.196444E+00 -5.459040E+00 +6.903183E+00 +9.661095E+00 +1.569337E+00 +4.971849E-01 +1.521894E+00 +4.673221E-01 +5.333846E+00 +5.778631E+00 +6.903183E+00 +9.661095E+00 +1.569337E+00 +4.971849E-01 +1.521894E+00 +4.673221E-01 +5.333846E+00 +5.778631E+00 tally 2: -6.716608E+00 -9.111797E+00 -1.520164E+00 -4.654833E-01 -1.475303E+00 -4.381727E-01 -5.196444E+00 -5.459040E+00 +6.903183E+00 +9.661095E+00 +1.569337E+00 +4.971849E-01 +1.521894E+00 +4.673221E-01 +5.333846E+00 +5.778631E+00 diff --git a/tests/test_tally_slice_merge/results_true.dat b/tests/test_tally_slice_merge/results_true.dat index b5b5e322c..ed04152d4 100644 --- a/tests/test_tally_slice_merge/results_true.dat +++ b/tests/test_tally_slice_merge/results_true.dat @@ -1,36 +1,36 @@ energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 21 U-235 fission 7.75e-02 6.68e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 21 U-235 nu-fission 1.89e-01 1.63e-02 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 21 U-238 fission 1.09e-07 9.57e-09 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 21 U-238 nu-fission 2.71e-07 2.39e-08 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 21 U-235 fission 1.92e-02 1.23e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 21 U-235 nu-fission 4.69e-02 2.99e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 21 U-238 fission 1.22e-02 1.16e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 21 U-238 nu-fission 3.41e-02 3.39e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 27 U-235 fission 8.32e-02 1.82e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 27 U-235 nu-fission 2.03e-01 4.44e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 27 U-238 fission 1.17e-07 2.95e-09 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 27 U-238 nu-fission 2.93e-07 7.36e-09 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 27 U-235 fission 2.60e-02 1.70e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 27 U-235 nu-fission 6.38e-02 4.14e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 27 U-238 fission 1.47e-02 6.22e-04 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 27 U-238 nu-fission 4.12e-02 1.97e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 21 U-235 fission 7.75e-02 6.68e-03 -1 0.00e+00 6.25e-07 21 U-235 nu-fission 1.89e-01 1.63e-02 -2 0.00e+00 6.25e-07 21 U-238 fission 1.09e-07 9.57e-09 -3 0.00e+00 6.25e-07 21 U-238 nu-fission 2.71e-07 2.39e-08 -4 0.00e+00 6.25e-07 27 U-235 fission 8.32e-02 1.82e-03 -5 0.00e+00 6.25e-07 27 U-235 nu-fission 2.03e-01 4.44e-03 -6 0.00e+00 6.25e-07 27 U-238 fission 1.17e-07 2.95e-09 -7 0.00e+00 6.25e-07 27 U-238 nu-fission 2.93e-07 7.36e-09 -8 6.25e-07 2.00e+01 21 U-235 fission 1.92e-02 1.23e-03 -9 6.25e-07 2.00e+01 21 U-235 nu-fission 4.69e-02 2.99e-03 -10 6.25e-07 2.00e+01 21 U-238 fission 1.22e-02 1.16e-03 -11 6.25e-07 2.00e+01 21 U-238 nu-fission 3.41e-02 3.39e-03 -12 6.25e-07 2.00e+01 27 U-235 fission 2.60e-02 1.70e-03 -13 6.25e-07 2.00e+01 27 U-235 nu-fission 6.38e-02 4.14e-03 -14 6.25e-07 2.00e+01 27 U-238 fission 1.47e-02 6.22e-04 -15 6.25e-07 2.00e+01 27 U-238 nu-fission 4.12e-02 1.97e-03 sum(distribcell) energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 0.00e+00 6.25e-07 21 U-235 fission 1.08e-01 7.94e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 21 U-235 nu-fission 2.64e-01 1.94e-02 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 21 U-238 fission 1.51e-07 1.00e-08 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 21 U-238 nu-fission 3.76e-07 2.50e-08 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 21 U-235 fission 3.12e-02 2.56e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 21 U-235 nu-fission 7.65e-02 6.24e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 21 U-238 fission 2.00e-02 1.30e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 21 U-238 nu-fission 5.56e-02 3.78e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 27 U-235 fission 4.43e-02 7.21e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 27 U-235 nu-fission 1.08e-01 1.76e-02 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 27 U-238 fission 6.14e-08 9.64e-09 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 27 U-238 nu-fission 1.53e-07 2.40e-08 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 27 U-235 fission 1.39e-02 1.06e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 27 U-235 nu-fission 3.40e-02 2.61e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 27 U-238 fission 9.72e-03 1.21e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 27 U-238 nu-fission 2.71e-02 3.80e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 21 U-235 fission 1.08e-01 7.94e-03 +1 0.00e+00 6.25e-07 21 U-235 nu-fission 2.64e-01 1.94e-02 +2 0.00e+00 6.25e-07 21 U-238 fission 1.51e-07 1.00e-08 +3 0.00e+00 6.25e-07 21 U-238 nu-fission 3.76e-07 2.50e-08 +4 0.00e+00 6.25e-07 27 U-235 fission 4.43e-02 7.21e-03 +5 0.00e+00 6.25e-07 27 U-235 nu-fission 1.08e-01 1.76e-02 +6 0.00e+00 6.25e-07 27 U-238 fission 6.14e-08 9.64e-09 +7 0.00e+00 6.25e-07 27 U-238 nu-fission 1.53e-07 2.40e-08 +8 6.25e-07 2.00e+01 21 U-235 fission 3.12e-02 2.56e-03 +9 6.25e-07 2.00e+01 21 U-235 nu-fission 7.65e-02 6.24e-03 +10 6.25e-07 2.00e+01 21 U-238 fission 2.00e-02 1.30e-03 +11 6.25e-07 2.00e+01 21 U-238 nu-fission 5.56e-02 3.78e-03 +12 6.25e-07 2.00e+01 27 U-235 fission 1.39e-02 1.06e-03 +13 6.25e-07 2.00e+01 27 U-235 nu-fission 3.40e-02 2.61e-03 +14 6.25e-07 2.00e+01 27 U-238 fission 9.72e-03 1.21e-03 +15 6.25e-07 2.00e+01 27 U-238 nu-fission 2.71e-02 3.80e-03 sum(distribcell) energy low [MeV] energy high [MeV] nuclide score mean std. dev. 0 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U-235 fission 0.00e+00 0.00e+00 1 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U-235 nu-fission 0.00e+00 0.00e+00 2 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U-238 fission 0.00e+00 0.00e+00 diff --git a/tests/test_trace/results_true.dat b/tests/test_trace/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_trace/results_true.dat +++ b/tests/test_trace/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_translation/results_true.dat b/tests/test_translation/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_translation/results_true.dat +++ b/tests/test_translation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_trigger_batch_interval/results_true.dat b/tests/test_trigger_batch_interval/results_true.dat index 3c9bfa98e..af6eea623 100644 --- a/tests/test_trigger_batch_interval/results_true.dat +++ b/tests/test_trigger_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.828074E-01 6.099782E-03 +9.722624E-01 1.010453E-02 tally 1: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 tally 2: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 diff --git a/tests/test_trigger_no_batch_interval/results_true.dat b/tests/test_trigger_no_batch_interval/results_true.dat index 3c9bfa98e..af6eea623 100644 --- a/tests/test_trigger_no_batch_interval/results_true.dat +++ b/tests/test_trigger_no_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.828074E-01 6.099782E-03 +9.722624E-01 1.010453E-02 tally 1: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 tally 2: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 diff --git a/tests/test_trigger_no_status/results_true.dat b/tests/test_trigger_no_status/results_true.dat index 8e12ff5f1..c7f1b407a 100644 --- a/tests/test_trigger_no_status/results_true.dat +++ b/tests/test_trigger_no_status/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.917430E-01 1.687838E-02 +9.733783E-01 1.678094E-02 tally 1: -6.979642E+00 -9.753201E+00 -1.591841E+00 -5.071926E-01 -1.545245E+00 -4.779221E-01 -5.387801E+00 -5.812351E+00 -6.979642E+00 -9.753201E+00 -1.591841E+00 -5.071926E-01 -1.545245E+00 -4.779221E-01 -5.387801E+00 -5.812351E+00 +6.901811E+00 +9.536643E+00 +1.572259E+00 +4.947922E-01 +1.527087E+00 +4.667459E-01 +5.329553E+00 +5.686973E+00 +6.901811E+00 +9.536643E+00 +1.572259E+00 +4.947922E-01 +1.527087E+00 +4.667459E-01 +5.329553E+00 +5.686973E+00 tally 2: -6.979642E+00 -9.753201E+00 -1.591841E+00 -5.071926E-01 -1.545245E+00 -4.779221E-01 -5.387801E+00 -5.812351E+00 +6.901811E+00 +9.536643E+00 +1.572259E+00 +4.947922E-01 +1.527087E+00 +4.667459E-01 +5.329553E+00 +5.686973E+00 diff --git a/tests/test_trigger_tallies/results_true.dat b/tests/test_trigger_tallies/results_true.dat index 3c9bfa98e..af6eea623 100644 --- a/tests/test_trigger_tallies/results_true.dat +++ b/tests/test_trigger_tallies/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.828074E-01 6.099782E-03 +9.722624E-01 1.010453E-02 tally 1: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 tally 2: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 diff --git a/tests/test_uniform_fs/results_true.dat b/tests/test_uniform_fs/results_true.dat index dbde84bd8..d27d63f56 100644 --- a/tests/test_uniform_fs/results_true.dat +++ b/tests/test_uniform_fs/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.754438E-01 1.896941E-03 +3.634132E-01 6.507584E-03 diff --git a/tests/test_union_energy_grids/results_true.dat b/tests/test_union_energy_grids/results_true.dat index 04c1a2b4c..0a607592c 100644 --- a/tests/test_union_energy_grids/results_true.dat +++ b/tests/test_union_energy_grids/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.195980E-01 5.629840E-03 +3.330789E-01 2.216495E-03 diff --git a/tests/test_universe/results_true.dat b/tests/test_universe/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_universe/results_true.dat +++ b/tests/test_universe/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_void/results_true.dat b/tests/test_void/results_true.dat index fa9f4eb7a..48be2778a 100644 --- a/tests/test_void/results_true.dat +++ b/tests/test_void/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.015355E+00 3.427659E-02 +1.062505E+00 2.674375E-02 From 3f3a1aa125c7696681dbc29e57c0591b3709fae1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 7 Mar 2016 12:29:36 -0500 Subject: [PATCH 021/259] Cleaning up of code so that nuclide and macroxs use scattdata and use it efficiently and sensically. Also found a few trivially small bugs along the way (mu values being off slightly in calculation of f(mu), for example --- src/input_xml.F90 | 2 +- src/macroxs_header.F90 | 351 ++++++++-------------- src/mgxs_data.F90 | 12 +- src/nuclide_header.F90 | 622 ++++++++++++++++++++------------------- src/scattdata_header.F90 | 291 ++++++++++++------ 5 files changed, 633 insertions(+), 645 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 03ef8dcbc..b89b8807f 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -170,7 +170,7 @@ contains call get_node_value(doc, "max_order", max_order) else ! Set to default of largest int, which means to use whatever is contained in library - max_order = huge(0) + max_order = huge(0) - 1 end if else max_order = 0 diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 233832d6f..d32cde96e 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -1,6 +1,7 @@ module macroxs_header use constants, only: MAX_FILE_LEN, ZERO, ONE, TWO, PI + use error, only: fatal_error use list_header, only: ListInt use material_header, only: material use math, only: calc_pn, calc_rn, expand_harmonic, find_angle @@ -32,8 +33,7 @@ module macroxs_header abstract interface subroutine macroxs_init_(this, mat, nuclides, groups, get_kfiss, get_fiss, & - max_order, scatt_type, legendre_mu_points, & - error_code, error_text) + max_order, scatt_type) import MacroXS, Material, NuclideMGContainer, MAX_LINE_LEN class(MacroXS), intent(inout) :: this ! The MacroXS to initialize type(Material), pointer, intent(in) :: mat ! base material @@ -43,9 +43,6 @@ module macroxs_header logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? - integer, intent(in) :: legendre_mu_points ! Treat as Leg or Tabular? - integer, intent(inout) :: error_code ! Code signifying error - character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print end subroutine macroxs_init_ function macroxs_get_xs_(this, g, xstype, gout, uvw) result(xs) @@ -94,7 +91,6 @@ module macroxs_header real(8), allocatable :: nu_fission(:) ! nu-fission real(8), allocatable :: k_fission(:) ! kappa-fission real(8), allocatable :: fission(:) ! fission x/s - real(8), allocatable :: scattxs(:) ! scattering xs real(8), allocatable :: chi(:,:) ! fission spectra contains @@ -114,7 +110,6 @@ module macroxs_header real(8), allocatable :: k_fission(:,:,:) ! kappa-fission real(8), allocatable :: fission(:,:,:) ! fission x/s real(8), allocatable :: chi(:,:,:,:) ! fission spectra - real(8), allocatable :: scattxs(:,:,:) ! scattering xs real(8), allocatable :: polar(:) ! polar angles real(8), allocatable :: azimuthal(:) ! azimuthal angles @@ -141,7 +136,7 @@ contains !=============================================================================== subroutine macroxsiso_init(this, mat, nuclides, groups, get_kfiss, get_fiss, & - max_order, scatt_type, legendre_mu_points, error_code, error_text) + max_order, scatt_type) class(MacroXSIso), intent(inout) :: this ! The MacroXS to initialize type(Material), pointer, intent(in) :: mat ! base material type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from @@ -150,9 +145,6 @@ contains logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! How is data presented - integer, intent(in) :: legendre_mu_points ! Treat as Leg or Tabular? - integer, intent(inout) :: error_code ! Code signifying error - character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print integer :: i ! loop index over nuclides integer :: gin, gout ! group indices @@ -161,22 +153,15 @@ contains real(8) :: norm integer :: mat_max_order, order, l real(8), allocatable :: temp_mult(:,:) - real(8), allocatable :: temp_energy(:,:) real(8), allocatable :: scatt_coeffs(:,:,:) - ! Initialize error data - error_code = 0 - error_text = '' - ! If we have tabular only data, then make sure all datasets have same size if (scatt_type == ANGLE_HISTOGRAM) then ! Check all scattering data of same size order = nuclides(mat % nuclide(1)) % obj % order do i = 2, mat % n_nuclides if (order /= nuclides(mat % nuclide(i)) % obj % order) then - error_code = 1 - error_text = "All Histogram Scattering Entries Must Be Same Length!" - return + call fatal_error("All Histogram Scattering Entries Must Be Same Length!") end if end do ! Ok, got our order, store it @@ -192,8 +177,7 @@ contains order = nuclides(mat % nuclide(1)) % obj % order do i = 2, mat % n_nuclides if (order /= nuclides(mat % nuclide(i)) % obj % order) then - error_code = 1 - error_text = "All Tabular Scattering Entries Must Be Same Length!" + call fatal_error("All Tabular Scattering Entries Must Be Same Length!") return end if end do @@ -201,7 +185,7 @@ contains this % order = order ! Allocate stuff for later - allocate(scatt_coeffs(order, groups, groups)) + allocate(scatt_coeffs(this % order, groups, groups)) scatt_coeffs = ZERO allocate(ScattDataTabular :: this % scatter) @@ -217,17 +201,13 @@ contains ! Now need to compare this material maximum scattering order with ! the problem wide max scatt order and use whichever is lower - order = min(mat_max_order, max_order) - this % order = order + 1 + order = min(mat_max_order, max_order) + 1 + this % order = order ! Now we can allocate our scatt_coeffs object accordingly - allocate(scatt_coeffs(order + 1, groups, groups)) + allocate(scatt_coeffs(this % order, groups, groups)) scatt_coeffs = ZERO - if (legendre_mu_points == 1) then - allocate(ScattDataLegendre :: this % scatter) - else - allocate(ScattDataTabular :: this % scatter) - end if + allocate(ScattDataLegendre :: this % scatter) end if ! Allocate and initialize data within macro_xs(i_mat) object @@ -247,11 +227,8 @@ contains this % nu_fission = ZERO allocate(this % chi(groups, groups)) this % chi = ZERO - allocate(temp_energy(groups, groups)) - temp_energy = ZERO allocate(temp_mult(groups, groups)) temp_mult = ZERO - allocate(this % scattxs(groups)) ! Add contribution from each nuclide in material do i = 1, mat % n_nuclides @@ -261,7 +238,6 @@ contains ! Perform our operations which depend upon the type select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (NuclideIso) - ! Add contributions to total, absorption, and fission data (if necessary) this % total = this % total + atom_density * nuc % total this % absorption = this % absorption + & @@ -291,81 +267,25 @@ contains end if end if - ! Now time to do the scattering + ! Get the multiplication matrix do gin = 1, groups - do gout = 1, groups - if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then - ! Transfer matrix - temp_energy(gout,gin) = temp_energy(gout,gin) + atom_density * & - sum(nuc % scatter(gout,gin,:)) - - ! Determine the angular distribution - do imu = 1, order - scatt_coeffs(imu, gout, gin) = scatt_coeffs(imu, gout, gin) + & - nuc % scatter(gout,gin,imu) * & - atom_density - end do - - else if (scatt_type == ANGLE_LEGENDRE) then - ! Transfer matrix - temp_energy(gout,gin) = temp_energy(gout,gin) + atom_density * & - nuc % scatter(gout,gin,1) - - ! Determine the angular distribution coefficients so we can later - ! expand do the complete distribution - do l = 1, min(nuc % order, order) + 1 - scatt_coeffs(l, gout, gin) = scatt_coeffs(l, gout, gin) + & - nuc % scatter(gout,gin,l) * & - atom_density - end do - - end if - - ! Multiplicity matrix + do gout = nuc % scatter % gmin(gin), nuc % scatter % gmax(gin) temp_mult(gout,gin) = temp_mult(gout,gin) + atom_density * & - nuc % mult(gout,gin) + nuc % scatter % mult(gin) % data(gout) end do end do + + ! Get the complete scattering matrix + scatt_coeffs(1:min(nuc % order, order),:,:) = scatt_coeffs + & + atom_density * & + nuc % scatter % get_matrix(min(nuc % order, order)) + type is (NuclideAngle) - error_code = 1 - error_text = "Invalid Passing of NuclideAngle to MacroXSIso Object" - return + call fatal_error("Invalid Passing of NuclideAngle to MacroXSIso Object") end select end do - ! Store the scattering xs - if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then - this % scattxs(:) = sum(sum(scatt_coeffs(:,:,:),dim=1),dim=1) - else if (scatt_type == ANGLE_LEGENDRE) then - this % scattxs(:) = sum(scatt_coeffs(1,:,:),dim=1) - end if - - ! Normalize the scatt_coeffs - do gin = 1, groups - do gout = 1, groups - if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then - norm = sum(scatt_coeffs(:,gout,gin)) - else if (scatt_type == ANGLE_LEGENDRE) then - norm = scatt_coeffs(1,gout,gin) - end if - if (norm /= ZERO) then - scatt_coeffs(:, gout, gin) = scatt_coeffs(:, gout,gin) / norm - end if - end do - ! Now normalize temp_energy (outgoing scattering energy probabilities) - norm = sum(temp_energy(:,gin)) - if (norm > ZERO) then - temp_energy(:,gin) = temp_energy(:,gin) / norm - end if - end do - - if (scatt_type == ANGLE_LEGENDRE .and. legendre_mu_points /= 1) then - call this % scatter % init(legendre_mu_points, temp_energy, temp_mult, & - scatt_coeffs) - else - call this % scatter % init(this % order, temp_energy, temp_mult, & - scatt_coeffs) - end if + call this % scatter % init(temp_mult,scatt_coeffs) ! Now normalize chi if (mat % fissionable) then @@ -379,12 +299,12 @@ contains end if ! Deallocate temporaries for the next material - deallocate(scatt_coeffs, temp_energy, temp_mult) + deallocate(scatt_coeffs, temp_mult) end subroutine macroxsiso_init subroutine macroxsangle_init(this, mat, nuclides, groups, get_kfiss, get_fiss, & - max_order, scatt_type, legendre_mu_points, error_code, error_text) + max_order, scatt_type) class(MacroXSAngle), intent(inout) :: this ! The MacroXS to initialize type(Material), pointer, intent(in) :: mat ! base material type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from @@ -393,43 +313,34 @@ contains logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? - integer, intent(in) :: legendre_mu_points ! Treat as Leg or Tabular? - integer, intent(inout) :: error_code ! Code signifying error - character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print integer :: i ! loop index over nuclides integer :: gin, gout ! group indices real(8) :: atom_density ! atom density of a nuclide - integer :: ipol, iazi, npol, nazi + integer :: ipol, iazi, n_pol, n_azi integer :: imu real(8) :: norm integer :: mat_max_order, order, l real(8), allocatable :: temp_mult(:,:,:,:) - real(8), allocatable :: temp_energy(:,:,:,:) real(8), allocatable :: scatt_coeffs(:,:,:,:,:) - ! Initialize error data - error_code = 0 - error_text = '' - ! Get the number of each polar and azi angles and make sure all the ! NuclideAngle types have the same number of these angles - npol = -1 - nazi = -1 + n_pol = -1 + n_azi = -1 do i = 1, mat % n_nuclides select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (NuclideAngle) - if (npol == -1) then - npol = nuc % n_pol - nazi = nuc % n_azi - allocate(this % polar(npol)) + if (n_pol == -1) then + n_pol = nuc % n_pol + n_azi = nuc % n_azi + allocate(this % polar(n_pol)) this % polar = nuc % polar - allocate(this % azimuthal(nazi)) + allocate(this % azimuthal(n_azi)) this % azimuthal = nuc % azimuthal else - if ((npol /= nuc % n_pol) .or. (nazi /= nuc % n_azi)) then - error_code = 1 - error_text = "All Angular Data Must Be Same Length!" + if ((n_pol /= nuc % n_pol) .or. (n_azi /= nuc % n_azi)) then + call fatal_error("All Angular Data Must Be Same Length!") end if end if end select @@ -441,20 +352,18 @@ contains order = nuclides(mat % nuclide(1)) % obj % order do i = 2, mat % n_nuclides if (order /= nuclides(mat % nuclide(i)) % obj % order) then - error_code = 1 - error_text = "All Histogram Scattering Entries Must Be Same Length!" - return + call fatal_error("All Histogram Scattering Entries Must Be Same Length!") end if end do ! Ok, got our order, store it this % order = order ! Allocate stuff for later - allocate(scatt_coeffs(order, groups, groups, nazi, npol)) + allocate(scatt_coeffs(this % order,groups,groups,n_azi,n_pol)) scatt_coeffs = ZERO - allocate(this % scatter(nazi, npol)) - do ipol = 1, npol - do iazi = 1, nazi + allocate(this % scatter(n_azi, n_pol)) + do ipol = 1, n_pol + do iazi = 1, n_azi allocate(ScattDataHistogram :: this % scatter(iazi, ipol) % obj) end do end do @@ -464,20 +373,18 @@ contains order = nuclides(mat % nuclide(1)) % obj % order do i = 2, mat % n_nuclides if (order /= nuclides(mat % nuclide(i)) % obj % order) then - error_code = 1 - error_text = "All Tabular Scattering Entries Must Be Same Length!" - return + call fatal_error("All Tabular Scattering Entries Must Be Same Length!") end if end do ! Ok, got our order, store it this % order = order ! Allocate stuff for later - allocate(scatt_coeffs(order, groups, groups, nazi, npol)) + allocate(scatt_coeffs(this % order, groups, groups, n_azi, n_pol)) scatt_coeffs = ZERO - allocate(this % scatter(nazi, npol)) - do ipol = 1, npol - do iazi = 1, nazi + allocate(this % scatter(n_azi, n_pol)) + do ipol = 1, n_pol + do iazi = 1, n_azi allocate(ScattDataTabular :: this % scatter(iazi, ipol) % obj) end do end do @@ -498,42 +405,35 @@ contains this % order = order + 1 ! Now we can allocate our scatt_coeffs object accordingly - allocate(scatt_coeffs(order + 1, groups, groups, nazi, npol)) + allocate(scatt_coeffs(this % order, groups, groups, n_azi, n_pol)) scatt_coeffs = ZERO - allocate(this % scatter(nazi, npol)) - do ipol = 1, npol - do iazi = 1, nazi - if (legendre_mu_points == 1) then - allocate(ScattDataLegendre :: this % scatter(iazi, ipol) % obj) - else - allocate(ScattDataTabular :: this % scatter(iazi, ipol) % obj) - end if + allocate(this % scatter(n_azi, n_pol)) + do ipol = 1, n_pol + do iazi = 1, n_azi + allocate(ScattDataLegendre :: this % scatter(iazi, ipol) % obj) end do end do end if ! Allocate and initialize data within macro_xs(i_mat) object - allocate(this % total(groups,nazi,npol)) + allocate(this % total(groups,n_azi,n_pol)) this % total = ZERO - allocate(this % absorption(groups,nazi,npol)) + allocate(this % absorption(groups,n_azi,n_pol)) this % absorption = ZERO if (get_fiss) then - allocate(this % fission(groups,nazi,npol)) + allocate(this % fission(groups,n_azi,n_pol)) this % fission = ZERO end if if (get_kfiss) then - allocate(this % k_fission(groups,nazi,npol)) + allocate(this % k_fission(groups,n_azi,n_pol)) this % k_fission = ZERO end if - allocate(this % nu_fission(groups,nazi,npol)) + allocate(this % nu_fission(groups,n_azi,n_pol)) this % nu_fission = ZERO - allocate(this % chi(groups, groups, nazi, npol)) + allocate(this % chi(groups, groups, n_azi, n_pol)) this % chi = ZERO - allocate(temp_energy(groups,groups,nazi,npol)) - temp_energy = ZERO - allocate(temp_mult(groups,groups,nazi,npol)) + allocate(temp_mult(groups,groups,n_azi,n_pol)) temp_mult = ZERO - allocate(this % scattxs(groups,nazi,npol)) ! Add contribution from each nuclide in material do i = 1, mat % n_nuclides @@ -543,9 +443,7 @@ contains ! Perform our operations which depend upon the type select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (NuclideIso) - error_code = 1 - error_text = "Invalid Passing of NuclideIso to MacroXSAngle Object" - return + call fatal_error("Invalid Passing of NuclideIso to MacroXSAngle Object") type is (NuclideAngle) ! Add contributions to total, absorption, and fission data (if necessary) this % total = this % total + atom_density * nuc % total @@ -577,87 +475,70 @@ contains end if ! Now time to do the scattering - do gin = 1, groups - do gout = 1, groups - if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then - ! Transfer matrix - temp_energy(gout,gin,:,:) = temp_energy(gout,gin,:,:) + atom_density * & - sum(nuc % scatter(gout,gin,:,:,:),dim=1) + do ipol = 1, n_pol + do iazi = 1, n_azi + do gin = 1, groups +!!! Needs to be updated to match iso!!! +! this % scattxs(gin,iazi,ipol) = this % scattxs(gin,iazi,ipol) + & +! atom_density * nuc % scattxs(gin,iazi,ipol) + do gout = nuc % scatter(iazi,ipol) % obj % gmin(gin), & + nuc % scatter(iazi,ipol) % obj % gmax(gin) - ! Determine the angular distribution - do imu = 1, order - scatt_coeffs(imu,gout,gin,:,:) = scatt_coeffs(imu,gout,gin,:,:) + & - nuc % scatter(gout,gin,imu,:,:) * & - atom_density + ! Multiplicity matrix + temp_mult(gout,gin,iazi,ipol) = & + temp_mult(gout,gin,iazi,ipol) + atom_density * & + nuc % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + + if (scatt_type == ANGLE_HISTOGRAM) then + ! Determine the angular distribution + do imu = 1, order + scatt_coeffs(imu,gout,gin,iazi,ipol) = & + scatt_coeffs(imu,gout,gin,iazi,ipol) + & + atom_density * & + nuc % scatter(iazi,ipol) % obj % dist(gin) % data(imu,gout) + end do + else if (scatt_type == ANGLE_TABULAR) then + select type(scatt =>nuc % scatter(iazi,ipol) % obj) + type is (ScattDataTabular) + do imu = 1, order + scatt_coeffs(imu,gout,gin,iazi,ipol) = & + scatt_coeffs(imu,gout,gin,iazi,ipol) + & + atom_density * scatt % fmu(gin) % data(imu,gout) + end do + end select + else if (scatt_type == ANGLE_LEGENDRE) then + ! Determine the angular distribution coefficients so we can later + ! expand do the complete distribution + do l = 1, min(nuc % order, order) + 1 + scatt_coeffs(l,gout,gin,iazi,ipol) = & + scatt_coeffs(l,gout,gin,iazi,ipol) + & + atom_density * & + nuc % scatter(iazi,ipol) % obj % dist(gin) % data(l,gout) + end do + end if + ! Incorporate outgoing energy PDF information + scatt_coeffs(:,gout,gin,iazi,ipol) = & + scatt_coeffs(:,gout,gin,iazi,ipol) * & + nuc % scatter(iazi,ipol) % obj % energy(gin) % data(gout) end do - else if (scatt_type == ANGLE_LEGENDRE) then - ! Transfer matrix - temp_energy(gout,gin,:,:) = temp_energy(gout,gin,:,:) + atom_density * & - nuc % scatter(gout,gin,1,:,:) - - ! Determine the angular distribution coefficients so we can later - ! expand do the complete distribution - do l = 1, min(nuc % order, order) + 1 - scatt_coeffs(l, gout, gin,:,:) = scatt_coeffs(l, gout, gin,:,:) + & - nuc % scatter(gout,gin,l,:,:) * & - atom_density - end do - end if - - ! Multiplicity matrix - temp_mult(gout,gin,:,:) = temp_mult(gout,gin,:,:) + atom_density * & - nuc % mult(gout,gin,:,:) + end do end do end do end select end do - ! Store the scattering xs - if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then - this % scattxs(:,:,:) = sum(sum(scatt_coeffs(:,:,:,:,:),dim=1),dim=1) - else if (scatt_type == ANGLE_LEGENDRE) then - this % scattxs(:,:,:) = sum(scatt_coeffs(1,:,:,:,:),dim=1) - end if - - ! Normalize the scatt_coeffs - do ipol = 1, npol - do iazi = 1, nazi - do gin = 1, groups - do gout = 1, groups - if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then - norm = sum(scatt_coeffs(:,gout,gin,iazi,ipol)) - else if (scatt_type == ANGLE_LEGENDRE) then - norm = scatt_coeffs(1,gout,gin,iazi,ipol) - end if - if (norm /= ZERO) then - scatt_coeffs(:,gout,gin,iazi,ipol) = & - scatt_coeffs(:,gout,gin,iazi,ipol) / norm - end if - end do - ! Now normalize temp_energy (outgoing scattering energy probabilities) - norm = sum(temp_energy(:,gin,iazi,ipol)) - if (norm > ZERO) then - temp_energy(:,gin,iazi,ipol) = temp_energy(:,gin,iazi,ipol) / norm - end if - end do - - if (scatt_type == ANGLE_LEGENDRE .and. legendre_mu_points /= 1) then - call this % scatter(iazi, ipol) % obj % init(legendre_mu_points, & - temp_energy(:,:,iazi,ipol), temp_mult(:,:,iazi,ipol), & - scatt_coeffs(:,:,:,iazi,ipol)) - else - call this % scatter(iazi, ipol) % obj % init(this % order, & - temp_energy(:,:,iazi,ipol), temp_mult(:,:,iazi,ipol), & - scatt_coeffs(:,:,:,iazi,ipol)) - end if - + ! Initialize the scattering data + do ipol = 1, n_pol + do iazi = 1, n_azi + call this % scatter(iazi, ipol) % obj % init( & + temp_mult(:,:,iazi,ipol), scatt_coeffs(:,:,:,iazi,ipol)) end do end do ! Now go through and normalize chi if (mat % fissionable) then - do ipol = 1, npol - do iazi = 1, nazi + do ipol = 1, n_pol + do iazi = 1, n_azi do gin = 1, groups ! Normalize Chi norm = sum(this % chi(:,gin,iazi,ipol)) @@ -670,7 +551,7 @@ contains end if ! Deallocate temporaries for the next material - deallocate(scatt_coeffs, temp_energy, temp_mult) + deallocate(scatt_coeffs, temp_mult) end subroutine macroxsangle_init @@ -698,7 +579,7 @@ contains case('nu_fission') xs = this % nu_fission(g) case('scatter') - xs = this % scattxs(g) + xs = this % scatter % scattxs(g) case('mult') if (present(gout)) then xs = this % scatter % mult(g) % data(gout) @@ -733,7 +614,7 @@ contains case('nu_fission') xs = this % nu_fission(g,iazi,ipol) case('scatter') - xs = this % scattxs(g,iazi,ipol) + xs = this % scatter(iazi,ipol) % obj % scattxs(g) case('mult') if (present(gout)) then xs = this % scatter(iazi,ipol) % obj % mult(g) % data(gout) @@ -835,7 +716,7 @@ contains type(MaterialMacroXS), intent(inout) :: xs ! Resultant MacroXS Data xs % total = this % total(gin) - xs % elastic = this % scattxs(gin) + xs % elastic = this % scatter % scattxs(gin) xs % absorption = this % absorption(gin) xs % nu_fission = this % nu_fission(gin) @@ -850,10 +731,10 @@ contains integer :: iazi, ipol call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - xs % total = this % total(gin, iazi, ipol) - xs % elastic = this % scattxs(gin, iazi, ipol) - xs % absorption = this % absorption(gin, iazi, ipol) - xs % nu_fission = this % nu_fission(gin, iazi, ipol) + xs % total = this % total(gin,iazi,ipol) + xs % elastic = this % scatter(iazi,ipol) % obj % scattxs(gin) + xs % absorption = this % absorption(gin,iazi,ipol) + xs % nu_fission = this % nu_fission(gin,iazi,ipol) end subroutine macroxsangle_calculate_xs diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 796269151..b998a96d6 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -125,7 +125,7 @@ contains ! Now read in the data specific to the type we just declared call nuclides_MG(i_nuclide) % obj % init(node_xsdata, energy_groups, & - get_kfiss, get_fiss) + get_kfiss, get_fiss, max_order) ! Keep track of what listing is associated with this nuclide nuclides_MG(i_nuclide) % obj % listing = i_listing @@ -193,10 +193,7 @@ contains integer :: l ! Loop over score bins type(Material), pointer :: mat ! current material logical :: get_kfiss, get_fiss - integer :: error_code - character(MAX_LINE_LEN) :: error_text integer :: scatt_type - integer :: legendre_mu_points ! Find out if we need fission & kappa fission ! (i.e., are there any SCORE_FISSION or SCORE_KAPPA_FISSION tallies?) @@ -225,7 +222,6 @@ contains ! Therefore type(nuclides(mat % nuclide(1)) % obj) dictates type(macroxs) ! At the same time, we will find the scattering type, as that will dictate ! how we allocate the scatter object within macroxs - legendre_mu_points = nuclides_MG(mat % nuclide(1)) % obj % legendre_mu_points scatt_type = nuclides_MG(mat % nuclide(1)) % obj % scatt_type select type(nuc => nuclides_MG(mat % nuclide(1)) % obj) type is (NuclideIso) @@ -233,13 +229,9 @@ contains type is (NuclideAngle) allocate(MacroXSAngle :: macro_xs(i_mat) % obj) end select - call macro_xs(i_mat) % obj % init(mat, nuclides_MG, energy_groups, & get_kfiss, get_fiss, max_order, & - scatt_type, legendre_mu_points, & - error_code, error_text) - ! Handle any errors - if (error_code /= 0) call fatal_error(trim(error_text)) + scatt_type) end do end subroutine create_macro_xs diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 43fea77b6..88d7ce0ea 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -8,6 +8,7 @@ module nuclide_header use error, only: fatal_error use list_header, only: ListInt use math, only: evaluate_legendre, find_angle + use scattdata_header use string use xml_interface @@ -110,24 +111,22 @@ module nuclide_header integer :: order ! Order of data (Scattering for NuclideIso, ! Number of angles for all in NuclideAngle) integer :: scatt_type ! either legendre, histogram, or tabular. - integer :: legendre_mu_points ! Number of tabular points to use to represent - ! Legendre distribs, -1 if sample with the - ! Legendres themselves contains procedure(nuclidemg_init_), deferred :: init ! Initialize the data procedure(nuclidemg_get_xs_), deferred :: get_xs ! Get the requested xs - procedure(nuclidemg_calc_f_), deferred :: calc_f ! Calculates f, given mu end type NuclideMG abstract interface - subroutine nuclidemg_init_(this, node_xsdata, groups, get_kfiss, get_fiss) + subroutine nuclidemg_init_(this, node_xsdata, groups, get_kfiss, get_fiss, & + max_order) import NuclideMG, Node class(NuclideMG), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(in) :: max_order ! Maximum requested order end subroutine nuclidemg_init_ function nuclidemg_get_xs_(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & @@ -168,18 +167,16 @@ module nuclide_header ! Microscopic cross sections real(8), allocatable :: total(:) ! total cross section real(8), allocatable :: absorption(:) ! absorption cross section - real(8), allocatable :: scatter(:,:,:) ! scattering information + class(ScattData), allocatable :: scatter ! scattering information real(8), allocatable :: nu_fission(:,:) ! fission matrix (Gout x Gin) real(8), allocatable :: k_fission(:) ! kappa-fission real(8), allocatable :: fission(:) ! neutron production real(8), allocatable :: chi(:) ! Fission Spectra - real(8), allocatable :: mult(:,:) ! Scatter multiplicity (Gout x Gin) contains procedure :: init => nuclideiso_init ! Initialize Nuclidic MGXS Data procedure :: print => nuclideiso_print ! Writes nuclide info procedure :: get_xs => nuclideiso_get_xs ! Gets Size of Data w/in Object - procedure :: calc_f => nuclideiso_calc_f ! Calcs f given mu end type NuclideIso !=============================================================================== @@ -192,7 +189,7 @@ module nuclide_header ! Microscopic cross sections. Dimensions are: (n_pol, n_azi, Nl, Ng, Ng) real(8), allocatable :: total(:,:,:) ! total cross section real(8), allocatable :: absorption(:,:,:) ! absorption cross section - real(8), allocatable :: scatter(:,:,:,:,:) ! scattering information + type(ScattDataContainer), allocatable :: scatter(:,:) ! scattering information real(8), allocatable :: nu_fission(:,:,:,:) ! fission matrix (Gout x Gin) real(8), allocatable :: k_fission(:,:,:) ! kappa-fission real(8), allocatable :: fission(:,:,:) ! neutron production @@ -209,7 +206,6 @@ module nuclide_header procedure :: init => nuclideangle_init ! Initialize Nuclidic MGXS Data procedure :: print => nuclideangle_print ! Gets Size of Data w/in Object procedure :: get_xs => nuclideangle_get_xs ! Gets Size of Data w/in Object - procedure :: calc_f => nuclideangle_calc_f ! Calcs f given mu end type NuclideAngle !=============================================================================== @@ -303,9 +299,7 @@ module nuclide_header class(NuclideMG), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml - type(Node), pointer :: node_legendre_mu character(MAX_LINE_LEN) :: temp_str - logical :: enable_leg_mu ! Load the data call get_node_value(node_xsdata, "name", this % name) @@ -342,37 +336,6 @@ module nuclide_header call fatal_error("Order Must Be Provided!") end if - ! Get scattering treatment - if (check_for_node(node_xsdata, "tabular_legendre")) then - call get_node_ptr(node_xsdata, "tabular_legendre", node_legendre_mu) - if (check_for_node(node_legendre_mu, "enable")) then - call get_node_value(node_legendre_mu, "enable", temp_str) - temp_str = trim(to_lower(temp_str)) - if (temp_str == 'true' .or. temp_str == '1') then - enable_leg_mu = .true. - elseif (temp_str == 'false' .or. temp_str == '0') then - enable_leg_mu = .false. - this % legendre_mu_points = 1 - else - call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) - end if - else - enable_leg_mu = .true. - this % legendre_mu_points = 33 - end if - if (enable_leg_mu .and. & - check_for_node(node_legendre_mu, "num_points")) then - call get_node_value(node_legendre_mu, "num_points", & - this % legendre_mu_points) - if (this % legendre_mu_points <= 0) then - call fatal_error("num_points element must be positive and non-zero!") - end if - this % legendre_mu_points = -1 * this % legendre_mu_points - end if - else - this % legendre_mu_points = 1 - end if - if (check_for_node(node_xsdata, "fissionable")) then call get_node_value(node_xsdata, "fissionable", temp_str) temp_str = to_lower(temp_str) @@ -387,16 +350,26 @@ module nuclide_header end subroutine nuclidemg_init - subroutine nuclideiso_init(this, node_xsdata, groups, get_kfiss, get_fiss) + subroutine nuclideiso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + max_order) class(NuclideIso), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? logical, intent(in) :: get_fiss ! Need fiss data? + integer, intent(in) :: max_order ! Maximum requested order - real(8), allocatable :: temp_arr(:) - integer :: arr_len - integer :: order_dim + type(Node), pointer :: node_legendre_mu + character(MAX_LINE_LEN) :: temp_str + logical :: enable_leg_mu + real(8), allocatable :: temp_arr(:) + real(8), allocatable :: temp_mult(:,:) + real(8), allocatable :: scatt_coeffs(:,:,:) + real(8), allocatable :: input_scatt(:,:,:) + real(8), allocatable :: temp_scatt(:,:,:) + real(8) :: dmu, mu, norm + integer :: order_dim, gin, gout, l, arr_len + integer :: legendre_mu_points, imu ! Call generic data gathering routine call nuclidemg_init(this, node_xsdata) @@ -460,6 +433,33 @@ module nuclide_header call fatal_error("Must provide absorption!") end if + ! Get scattering treatment + if (check_for_node(node_xsdata, "tabular_legendre")) then + call get_node_ptr(node_xsdata, "tabular_legendre", node_legendre_mu) + if (check_for_node(node_legendre_mu, "enable")) then + call get_node_value(node_legendre_mu, "enable", temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == 'true' .or. temp_str == '1') then + enable_leg_mu = .true. + elseif (temp_str == 'false' .or. temp_str == '0') then + enable_leg_mu = .false. + else + call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) + end if + else + enable_leg_mu = .true. + legendre_mu_points = 33 + end if + if (enable_leg_mu .and. & + check_for_node(node_legendre_mu, "num_points")) then + call get_node_value(node_legendre_mu, "num_points", & + legendre_mu_points) + if (legendre_mu_points <= 0) then + call fatal_error("num_points element must be positive and non-zero!") + end if + end if + end if + if (this % scatt_type == ANGLE_LEGENDRE) then order_dim = this % order + 1 else if (this % scatt_type == ANGLE_HISTOGRAM) then @@ -468,33 +468,94 @@ module nuclide_header order_dim = this % order end if - allocate(this % scatter(groups, groups, order_dim)) + allocate(input_scatt(groups, groups, order_dim)) if (check_for_node(node_xsdata, "scatter")) then allocate(temp_arr(groups * groups * order_dim)) call get_node_array(node_xsdata, "scatter", temp_arr) - this % scatter = reshape(temp_arr, (/groups, groups, order_dim/)) + input_scatt = reshape(temp_arr, (/groups, groups, order_dim/)) deallocate(temp_arr) + + ! Compare the number of orders given with the maximum order of the + ! problem. Strip off the supefluous orders if needed. + if (this % scatt_type == ANGLE_LEGENDRE) then + order_dim = min(order_dim, max_order + 1) + this % order = order_dim + end if + allocate(temp_scatt(groups, groups, order_dim)) + do gin = 1, groups + do gout = 1, groups + do l = 1, order_dim + temp_scatt(gout,gin,l) = input_scatt(gout,gin,l) + end do + end do + end do + + ! Take input format (groups, groups, order) and convert to + ! the more useful format needed for scattdata: (order, groups, groups) + ! However, if scatt_type was ANGLE_LEGENDRE (i.e., the data was + ! provided as Legendre coefficients), and the user requested that + ! these legendres be converted to tabular form (note this is also + ! the default behavior), convert that now. + if (this % scatt_type == ANGLE_LEGENDRE .and. enable_leg_mu) then + ! Convert input parameters to what we need for the rest. + this % scatt_type = ANGLE_TABULAR + order_dim = legendre_mu_points + this % order = order_dim + dmu = TWO / real(this % order - 1,8) + + allocate(scatt_coeffs(order_dim, groups, groups)) + do gin = 1, groups + do gout = 1, groups + norm = ZERO + do imu = 1, order_dim + if (imu == 1) then + mu = -ONE + else if (imu == order_dim) then + mu = ONE + else + mu = -ONE + real(imu - 1,8) * dmu + end if + scatt_coeffs(imu,gout,gin) = & + evaluate_legendre(temp_scatt(gout,gin,:),mu) + if (scatt_coeffs(imu,gout,gin) < ZERO) & + scatt_coeffs(imu,gout,gin) = ZERO + if (imu > 1) then + norm = norm + HALF * dmu * (scatt_coeffs(imu-1,gout,gin) + & + scatt_coeffs(imu,gout,gin)) + end if + end do + if (norm > ZERO) then + scatt_coeffs(:,gout,gin) = scatt_coeffs(:,gout,gin) * & + temp_scatt(gout,gin,1) / norm + end if + end do + end do + else + ! Sticking with current representation, carry forward but change + ! the array ordering + allocate(scatt_coeffs(order_dim, groups, groups)) + do gin = 1, groups + do gout = 1, groups + do l = 1, order_dim + scatt_coeffs(l,gout,gin) = temp_scatt(gout,gin,l) + end do + end do + end do + end if + deallocate(temp_scatt) else call fatal_error("Must provide scatter!") return end if - - allocate(this % total(groups)) - if (check_for_node(node_xsdata, "total")) then - call get_node_array(node_xsdata, "total", this % total) - else - this % total = this % absorption + sum(this%scatter(:,:,1),dim=1) - end if - ! Get Mult Data - allocate(this % mult(groups, groups)) + allocate(temp_mult(groups, groups)) if (check_for_node(node_xsdata, "multiplicity")) then arr_len = get_arraysize_double(node_xsdata, "multiplicity") if (arr_len == groups * groups) then allocate(temp_arr(arr_len)) call get_node_array(node_xsdata, "multiplicity", temp_arr) - this % mult = reshape(temp_arr, (/groups, groups/)) + temp_mult = reshape(temp_arr, (/groups, groups/)) deallocate(temp_arr) else call fatal_error("Multiplicity length not same as number of groups& @@ -502,17 +563,42 @@ module nuclide_header return end if else - this % mult = ONE + temp_mult = ONE end if + ! Allocate and initialize our ScattData Object.. + if (this % scatt_type == ANGLE_HISTOGRAM) then + allocate(ScattDataHistogram :: this % scatter) + else if (this % scatt_type == ANGLE_TABULAR) then + allocate(ScattDataTabular :: this % scatter) + else if (this % scatt_type == ANGLE_LEGENDRE) then + allocate(ScattDataLegendre :: this % scatter) + end if + + ! Initialize the ScattData Object + call this % scatter % init(temp_mult, scatt_coeffs(:,:,:)) + + ! Get, or infer, total xs data. + allocate(this % total(groups)) + if (check_for_node(node_xsdata, "total")) then + call get_node_array(node_xsdata, "total", this % total) + else + this % total = this % absorption + this % scatter % scattxs + end if + + ! Deallocate temporaries for the next material + deallocate(scatt_coeffs, temp_mult) + end subroutine nuclideiso_init - subroutine nuclideangle_init(this, node_xsdata, groups, get_kfiss, get_fiss) + subroutine nuclideangle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + max_order) class(NuclideAngle), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(in) :: max_order ! Maximum requested order real(8), allocatable :: temp_arr(:) integer :: arr_len @@ -531,151 +617,151 @@ module nuclide_header order_dim = this % order end if - if (check_for_node(node_xsdata, "num_polar")) then - call get_node_value(node_xsdata, "num_polar", this % n_pol) - else - call fatal_error("num_polar Must Be Provided!") - end if + ! if (check_for_node(node_xsdata, "num_polar")) then + ! call get_node_value(node_xsdata, "num_polar", this % n_pol) + ! else + ! call fatal_error("num_polar Must Be Provided!") + ! end if - if (check_for_node(node_xsdata, "num_azimuthal")) then - call get_node_value(node_xsdata, "num_azimuthal", this % n_azi) - else - call fatal_error("num_azimuthal Must Be Provided!") - end if + ! if (check_for_node(node_xsdata, "num_azimuthal")) then + ! call get_node_value(node_xsdata, "num_azimuthal", this % n_azi) + ! else + ! call fatal_error("num_azimuthal Must Be Provided!") + ! end if - ! Load angle data, if present (else equally spaced) - allocate(this % polar(this % n_pol)) - allocate(this % azimuthal(this % n_azi)) - if (check_for_node(node_xsdata, "polar")) then - call fatal_error("User-Specified polar angle bins not yet supported!") - ! When this feature is supported, this line will be activated - call get_node_array(node_xsdata, "polar", this % polar) - else - dangle = PI / real(this % n_pol,8) - do iangle = 1, this % n_pol - this % polar(iangle) = (real(iangle,8) - HALF) * dangle - end do - end if - if (check_for_node(node_xsdata, "azimuthal")) then - call fatal_error("User-Specified azimuthal angle bins not yet supported!") - ! When this feature is supported, this line will be activated - call get_node_array(node_xsdata, "azimuthal", this % azimuthal) - else - dangle = TWO * PI / real(this % n_azi,8) - do iangle = 1, this % n_azi - this % azimuthal(iangle) = -PI + (real(iangle,8) - HALF) * dangle - end do - end if + ! ! Load angle data, if present (else equally spaced) + ! allocate(this % polar(this % n_pol)) + ! allocate(this % azimuthal(this % n_azi)) + ! if (check_for_node(node_xsdata, "polar")) then + ! call fatal_error("User-Specified polar angle bins not yet supported!") + ! ! When this feature is supported, this line will be activated + ! call get_node_array(node_xsdata, "polar", this % polar) + ! else + ! dangle = PI / real(this % n_pol,8) + ! do iangle = 1, this % n_pol + ! this % polar(iangle) = (real(iangle,8) - HALF) * dangle + ! end do + ! end if + ! if (check_for_node(node_xsdata, "azimuthal")) then + ! call fatal_error("User-Specified azimuthal angle bins not yet supported!") + ! ! When this feature is supported, this line will be activated + ! call get_node_array(node_xsdata, "azimuthal", this % azimuthal) + ! else + ! dangle = TWO * PI / real(this % n_azi,8) + ! do iangle = 1, this % n_azi + ! this % azimuthal(iangle) = -PI + (real(iangle,8) - HALF) * dangle + ! end do + ! end if - ! Load the more specific data - if (this % fissionable) then + ! ! Load the more specific data + ! if (this % fissionable) then - if (check_for_node(node_xsdata, "chi")) then - ! Get chi - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "chi", temp_arr) - allocate(this % chi(groups, this % n_azi, this % n_pol)) - this % chi = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) + ! if (check_for_node(node_xsdata, "chi")) then + ! ! Get chi + ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) + ! call get_node_array(node_xsdata, "chi", temp_arr) + ! allocate(this % chi(groups, this % n_azi, this % n_pol)) + ! this % chi = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) + ! deallocate(temp_arr) - ! Get nu_fission (as a vector) - if (check_for_node(node_xsdata, "nu_fission")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "nu_fission", temp_arr) - allocate(this % nu_fission(groups, 1, this % n_azi, this % n_pol)) - this % nu_fission = reshape(temp_arr, (/groups, 1, this % n_azi, & - this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("If fissionable, must provide nu_fission!") - end if + ! ! Get nu_fission (as a vector) + ! if (check_for_node(node_xsdata, "nu_fission")) then + ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) + ! call get_node_array(node_xsdata, "nu_fission", temp_arr) + ! allocate(this % nu_fission(groups, 1, this % n_azi, this % n_pol)) + ! this % nu_fission = reshape(temp_arr, (/groups, 1, this % n_azi, & + ! this % n_pol/)) + ! deallocate(temp_arr) + ! else + ! call fatal_error("If fissionable, must provide nu_fission!") + ! end if - else - ! Get nu_fission (as a matrix) - if (check_for_node(node_xsdata, "nu_fission")) then + ! else + ! ! Get nu_fission (as a matrix) + ! if (check_for_node(node_xsdata, "nu_fission")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "nu_fission", temp_arr) - allocate(this % nu_fission(groups, groups, this % n_azi, this % n_pol)) - this % nu_fission = reshape(temp_arr, (/groups, groups, & - this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("If fissionable, must provide nu_fission!") - end if - end if - if (get_fiss) then - if (check_for_node(node_xsdata, "fission")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "fission", temp_arr) - allocate(this % fission(groups, this % n_azi, this % n_pol)) - this % fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("Fission data missing, required due to fission& - & tallies in tallies.xml file!") - end if - end if - if (get_kfiss) then - if (check_for_node(node_xsdata, "kappa_fission")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "kappa_fission", temp_arr) - allocate(this % k_fission(groups, this % n_azi, this % n_pol)) - this % k_fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("kappa_fission data missing, required due to & - &kappa-fission tallies in tallies.xml file!") - end if - end if - end if + ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) + ! call get_node_array(node_xsdata, "nu_fission", temp_arr) + ! allocate(this % nu_fission(groups, groups, this % n_azi, this % n_pol)) + ! this % nu_fission = reshape(temp_arr, (/groups, groups, & + ! this % n_azi, this % n_pol/)) + ! deallocate(temp_arr) + ! else + ! call fatal_error("If fissionable, must provide nu_fission!") + ! end if + ! end if + ! if (get_fiss) then + ! if (check_for_node(node_xsdata, "fission")) then + ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) + ! call get_node_array(node_xsdata, "fission", temp_arr) + ! allocate(this % fission(groups, this % n_azi, this % n_pol)) + ! this % fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) + ! deallocate(temp_arr) + ! else + ! call fatal_error("Fission data missing, required due to fission& + ! & tallies in tallies.xml file!") + ! end if + ! end if + ! if (get_kfiss) then + ! if (check_for_node(node_xsdata, "kappa_fission")) then + ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) + ! call get_node_array(node_xsdata, "kappa_fission", temp_arr) + ! allocate(this % k_fission(groups, this % n_azi, this % n_pol)) + ! this % k_fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) + ! deallocate(temp_arr) + ! else + ! call fatal_error("kappa_fission data missing, required due to & + ! &kappa-fission tallies in tallies.xml file!") + ! end if + ! end if + ! end if - if (check_for_node(node_xsdata, "absorption")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "absorption", temp_arr) - allocate(this % absorption(groups, this % n_azi, this % n_pol)) - this % absorption = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("Must provide absorption!") - end if + ! if (check_for_node(node_xsdata, "absorption")) then + ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) + ! call get_node_array(node_xsdata, "absorption", temp_arr) + ! allocate(this % absorption(groups, this % n_azi, this % n_pol)) + ! this % absorption = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) + ! deallocate(temp_arr) + ! else + ! call fatal_error("Must provide absorption!") + ! end if - allocate(this % scatter(groups, groups, order_dim, this % n_azi, this % n_pol)) - if (check_for_node(node_xsdata, "scatter")) then - allocate(temp_arr(groups * groups * order_dim * this % n_azi * this%n_pol)) - call get_node_array(node_xsdata, "scatter", temp_arr) - this % scatter = reshape(temp_arr, (/groups, groups, order_dim, & - this%n_azi,this%n_pol/)) - deallocate(temp_arr) - else - call fatal_error("Must provide scatter!") - end if + ! allocate(this % scatter(groups, groups, order_dim, this % n_azi, this % n_pol)) + ! if (check_for_node(node_xsdata, "scatter")) then + ! allocate(temp_arr(groups * groups * order_dim * this % n_azi * this%n_pol)) + ! call get_node_array(node_xsdata, "scatter", temp_arr) + ! this % scatter = reshape(temp_arr, (/groups, groups, order_dim, & + ! this%n_azi,this%n_pol/)) + ! deallocate(temp_arr) + ! else + ! call fatal_error("Must provide scatter!") + ! end if - if (check_for_node(node_xsdata, "total")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "total", temp_arr) - allocate(this % total(groups, this % n_azi, this % n_pol)) - this % total = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - this % total = this % absorption + sum(this%scatter(:,:,1,:,:),dim=1) - end if + ! if (check_for_node(node_xsdata, "total")) then + ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) + ! call get_node_array(node_xsdata, "total", temp_arr) + ! allocate(this % total(groups, this % n_azi, this % n_pol)) + ! this % total = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) + ! deallocate(temp_arr) + ! else + ! this % total = this % absorption + sum(this%scatter(:,:,1,:,:),dim=1) + ! end if - ! Get Mult Data - allocate(this % mult(groups, groups, this % n_azi, this % n_pol)) - if (check_for_node(node_xsdata, "multiplicity")) then - arr_len = get_arraysize_double(node_xsdata, "multiplicity") - if (arr_len == groups * groups * this % n_azi * this % n_pol) then - allocate(temp_arr(arr_len)) - call get_node_array(node_xsdata, "multiplicity", temp_arr) - this % mult = reshape(temp_arr, (/groups, groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("Multiplicity Length Does Not Match!") - end if - else - this % mult = ONE - end if + ! ! Get Mult Data + ! allocate(this % mult(groups, groups, this % n_azi, this % n_pol)) + ! if (check_for_node(node_xsdata, "multiplicity")) then + ! arr_len = get_arraysize_double(node_xsdata, "multiplicity") + ! if (arr_len == groups * groups * this % n_azi * this % n_pol) then + ! allocate(temp_arr(arr_len)) + ! call get_node_array(node_xsdata, "multiplicity", temp_arr) + ! this % mult = reshape(temp_arr, (/groups, groups, this % n_azi, this % n_pol/)) + ! deallocate(temp_arr) + ! else + ! call fatal_error("Multiplicity Length Does Not Match!") + ! end if + ! else + ! this % mult = ONE + ! end if end subroutine nuclideangle_init @@ -823,6 +909,7 @@ module nuclide_header integer :: unit_ ! unit to write to integer :: size_total, size_scattmat, size_mgxs + integer :: gin ! set default unit for writing information if (present(unit)) then @@ -835,7 +922,15 @@ module nuclide_header call nuclidemg_print(this, unit_) ! Determine size of mgxs and scattering matrices - size_scattmat = (size(this % scatter) + size(this % mult)) * 8 + size_scattmat = 0 + do gin = 1, size(this % scatter % energy) + size_scattmat = size_scattmat + & + 2 * size(this % scatter % energy(gin) % data) + & + size(this % scatter % dist(gin) % data) + & + size(this % scatter % scattxs) + end do + size_scattmat = size_scattmat * 8 + size_mgxs = size(this % total) + size(this % absorption) + & size(this % nu_fission) + size(this % k_fission) + & size(this % fission) + size(this % chi) @@ -863,6 +958,7 @@ module nuclide_header integer :: unit_ ! unit to write to integer :: size_total, size_scattmat, size_mgxs + integer :: i_pol, i_azi, gin ! set default unit for writing information if (present(unit)) then @@ -877,6 +973,18 @@ module nuclide_header write(unit_,*) ' # of Azimuthal Angles = ' // trim(to_str(this % n_azi)) ! Determine size of mgxs and scattering matrices + size_scattmat = 0 + do i_pol = 1, this % n_pol + do i_azi = 1, this % n_azi + do gin = 1, size(this % scatter(i_azi,i_pol) % obj % energy) + size_scattmat = size_scattmat + & + 2 * size(this % scatter(i_azi,i_pol) % obj % energy(gin) % data) + & + size(this % scatter(i_azi,i_pol) % obj % dist(gin) % data) + end do + end do + end do + size_scattmat = size_scattmat * 8 + size_scattmat = (size(this % scatter) + size(this % mult)) * 8 size_mgxs = size(this % total) + size(this % absorption) + & size(this % nu_fission) + size(this % k_fission) + & @@ -925,13 +1033,13 @@ module nuclide_header if (present(gout)) then select case(xstype) case('mult') - xs = this % mult(gout,g) + xs = this % scatter % mult(g) % data(gout) case('nu_fission') xs = this % nu_fission(gout,g) case('f_mu', 'f_mu/mult') - xs = this % calc_f(g, gout, mu) + xs = this % scatter % calc_f(g, gout, mu) if (xstype == 'f_mu/mult') then - xs = xs / this % mult(gout,g) + xs = xs / this % scatter % mult(g) % data(gout) end if end select else @@ -949,7 +1057,7 @@ module nuclide_header case('chi') xs = this % chi(g) case('scatter') - xs = this % total(g) - this % absorption(g) + xs = this % scatter % scattxs(g) end select end if end function nuclideiso_get_xs @@ -985,15 +1093,15 @@ module nuclide_header if (present(gout)) then select case(xstype) case('mult') - xs = this % mult(gout,g,i_azi_,i_pol_) + xs = this % scatter(i_azi_,i_pol_) % obj % mult(g) % data(gout) case('nu_fission') xs = this % nu_fission(gout,g,i_azi_,i_pol_) case('chi') xs = this % chi(gout,i_azi_,i_pol_) case('f_mu', 'f_mu/mult') - xs = this % calc_f(g, gout, mu, I_AZI=i_azi_, I_POL=i_pol_) + xs = this % scatter(i_azi_,i_pol_) % obj % calc_f(g,gout,mu) if (xstype == 'f_mu/mult') then - xs = xs / this % mult(gout,g,i_azi_,i_pol_) + xs = xs / this % scatter(i_azi_,i_pol_) % obj % mult(g) % data(gout) end if end select else @@ -1011,116 +1119,10 @@ module nuclide_header case('chi') xs = this % chi(g,i_azi_,i_pol_) case('scatter') - xs = this % total(g,i_azi_,i_pol_) - this % absorption(g,i_azi_,i_pol_) + xs = this % scatter(i_azi_,i_pol_) % obj % scattxs(g) end select end if end function nuclideangle_get_xs -!=============================================================================== -! NUCLIDE*_CALC_F Finds the value of f(mu), the scattering angle probability, -! given mu -!=============================================================================== - - pure function nuclideiso_calc_f(this, gin, gout, mu, uvw, i_azi, i_pol) & - result(f) - class(NuclideIso), intent(in) :: this - integer, intent(in) :: gin ! Incoming Energy Group - integer, intent(in) :: gout ! Outgoing Energy Group - real(8), intent(in) :: mu ! Angle of interest - real(8), intent(in), optional :: uvw(3) ! Direction vector - integer, intent(in), optional :: i_azi ! Incoming Energy Group - integer, intent(in), optional :: i_pol ! Outgoing Energy Group - real(8) :: f ! Return value of f(mu) - - real(8) :: dmu, r - integer :: imu - - if (this % scatt_type == ANGLE_LEGENDRE) then - f = evaluate_legendre(this % scatter(gout,gin,:), mu) - else if (this % scatt_type == ANGLE_TABULAR) then - dmu = TWO / real(this % order - 1,8) - ! Find mu bin algebraically, knowing that the spacing is equal - f = (mu + ONE) / dmu + ONE - imu = floor(f) - ! But save the amount that mu is past the previous index - ! so we can use interpolation later. - f = f - real(imu,8) - ! Adjust so interpolation works on the last bin if necessary - if (imu == size(this % scatter, dim=3)) then - imu = imu - 1 - end if - - ! Now intepolate to find f(mu) - r = f / dmu - f = (ONE - r) * this % scatter(gout,gin,imu) + & - r * this % scatter(gout,gin,imu+1) - else ! (ANGLE_HISTOGRAM) - dmu = TWO / real(this % order,8) - ! Find mu bin algebraically, knowing that the spacing is equal - imu = floor((mu + ONE) / dmu + ONE) - ! Adjust so interpolation works on the last bin if necessary - if (imu == size(this % scatter, dim=3)) then - imu = imu - 1 - end if - f = this % scatter(gout, gin, imu) - - end if - - end function nuclideiso_calc_f - - pure function nuclideangle_calc_f(this, gin, gout, mu, uvw, i_azi, & - i_pol) result(f) - class(NuclideAngle), intent(in) :: this - integer, intent(in) :: gin ! Incoming Energy Group - integer, intent(in) :: gout ! Outgoing Energy Group - real(8), intent(in) :: mu ! Angle of interest - real(8), intent(in), optional :: uvw(3) ! Direction vector - integer, intent(in), optional :: i_azi ! Incoming Energy Group - integer, intent(in), optional :: i_pol ! Outgoing Energy Group - real(8) :: f ! Return value of f(mu) - - real(8) :: dmu, r - integer :: imu - integer :: i_azi_, i_pol_ - if (present(i_azi) .and. present(i_pol)) then - i_azi_ = i_azi - i_pol_ = i_pol - else if (present(uvw)) then - call find_angle(this % polar, this % azimuthal, uvw, i_azi_, i_pol_) - end if - - if (this % scatt_type == ANGLE_LEGENDRE) then - f = evaluate_legendre(this % scatter(gout,gin,:,i_azi_,i_pol_), mu) - else if (this % scatt_type == ANGLE_TABULAR) then - dmu = TWO / real(this % order - 1,8) - ! Find mu bin algebraically, knowing that the spacing is equal - f = (mu + ONE) / dmu + ONE - imu = floor(f) - ! But save the amount that mu is past the previous index - ! so we can use interpolation later. - f = f - real(imu,8) - ! Adjust so interpolation works on the last bin if necessary - if (imu == size(this % scatter, dim=3)) then - imu = imu - 1 - end if - - ! Now intepolate to find f(mu) - r = f / dmu - f = (ONE - r) * this % scatter(gout,gin,imu,i_azi_,i_pol_) + & - r * this % scatter(gout,gin,imu+1,i_azi_,i_pol_) - else ! (ANGLE_HISTOGRAM) - dmu = TWO / real(this % order,8) - ! Find mu bin algebraically, knowing that the spacing is equal - imu = floor((mu + ONE) / dmu + ONE) - ! Adjust so interpolation works on the last bin if necessary - if (imu == size(this % scatter, dim=3)) then - imu = imu - 1 - end if - f = this % scatter(gout, gin, imu,i_azi_,i_pol_) - - end if - - end function nuclideangle_calc_f - end module nuclide_header diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 949bd8707..003b31d87 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -35,26 +35,27 @@ module scattdata_header type(Jagged2D), allocatable :: dist(:) ! (Gin % data(Order/Nmu x Gout) integer, allocatable :: gmin(:) ! Minimum outgoing group integer, allocatable :: gmax(:) ! Maximum outgoing group + real(8), allocatable :: scattxs(:) ! Isotropic Sigma_{s,g_{in}} contains procedure(scattdata_init_), deferred :: init ! Initializes ScattData procedure(scattdata_calc_f_), deferred :: calc_f ! Calculates f, given mu procedure(scattdata_sample_), deferred :: sample ! sample the scatter event + ! Reproduces an unnormalized scattering matrix + procedure :: get_matrix => scattdata_get_matrix end type ScattData abstract interface - subroutine scattdata_init_(this, order, energy, mult, coeffs) + subroutine scattdata_init_(this, mult, coeffs) import ScattData - class(ScattData), intent(inout) :: this ! Object to work on - integer, intent(in) :: order ! Data Order - real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + class(ScattData), intent(inout) :: this ! Scattering Object to work with real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + real(8), intent(inout) :: coeffs(:,:,:) ! Coefficients to use end subroutine scattdata_init_ pure function scattdata_calc_f_(this, gin, gout, mu) result(f) import ScattData - class(ScattData), intent(in) :: this ! The ScattData to evaluate + class(ScattData), intent(in) :: this !! Scattering Object to work with integer, intent(in) :: gin ! Incoming Energy Group integer, intent(in) :: gout ! Outgoing Energy Group real(8), intent(in) :: mu ! Angle of interest @@ -64,7 +65,7 @@ module scattdata_header subroutine scattdata_sample_(this, gin, gout, mu, wgt) import ScattData - class(ScattData), intent(in) :: this ! Scattering Object to Use + class(ScattData), intent(in) :: this !! Scattering Object to work with integer, intent(in) :: gin ! Incoming neutron group integer, intent(out) :: gout ! Sampled outgoin group real(8), intent(out) :: mu ! Sampled change in angle @@ -76,18 +77,20 @@ module scattdata_header ! Maximal value for rejection sampling from rectangle type(Jagged1D), allocatable :: max_val(:) ! (Gin % data(Gout)) contains - procedure :: init => scattdatalegendre_init - procedure :: calc_f => scattdatalegendre_calc_f - procedure :: sample => scattdatalegendre_sample + procedure :: init => scattdatalegendre_init + procedure :: calc_f => scattdatalegendre_calc_f + procedure :: sample => scattdatalegendre_sample + ! procedure :: get_matrix => scattdatalegendre_get_matrix end type ScattDataLegendre type, extends(ScattData) :: ScattDataHistogram real(8), allocatable :: mu(:) ! Mu bins real(8) :: dmu ! Mu spacing contains - procedure :: init => scattdatahistogram_init - procedure :: calc_f => scattdatahistogram_calc_f - procedure :: sample => scattdatahistogram_sample + procedure :: init => scattdatahistogram_init + procedure :: calc_f => scattdatahistogram_calc_f + procedure :: sample => scattdatahistogram_sample + ! procedure :: get_matrix => scattdatahistogram_get_matrix end type ScattDataHistogram type, extends(ScattData) :: ScattDataTabular @@ -96,9 +99,10 @@ module scattdata_header ! PDF of f(mu) type(Jagged2D), allocatable :: fmu(:) ! (Gin % data(Order/Nmu x Gout) contains - procedure :: init => scattdatatabular_init - procedure :: calc_f => scattdatatabular_calc_f - procedure :: sample => scattdatatabular_sample + procedure :: init => scattdatatabular_init + procedure :: calc_f => scattdatatabular_calc_f + procedure :: sample => scattdatatabular_sample + procedure :: get_matrix => scattdatatabular_get_matrix end type ScattDataTabular !=============================================================================== @@ -112,16 +116,17 @@ module scattdata_header contains !=============================================================================== -! SCATTDATA_INIT builds the scattdata object +! SCATTDATA*_INIT builds the scattdata object !=============================================================================== subroutine scattdata_init(this, order, energy, mult) class(ScattData), intent(inout) :: this ! Object to work on integer, intent(in) :: order ! Data Order - real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + real(8), intent(inout) :: energy(:,:) ! Energy Transfer Matrix real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix integer :: groups, gmin, gmax, gin + real(8) :: norm groups = size(energy, dim=1) @@ -133,6 +138,9 @@ contains ! Use energy to find the gmin and gmax values ! Also set energy values when doing it do gin = 1, groups + ! Make sure energy is normalized (i.e., CDF is 1) + norm = sum(energy(:,gin)) + if (norm /= ZERO) energy(:,gin) = energy(:,gin) / norm ! Find gmin by checking the P0 moment do gmin = 1, groups if (energy(gmin,gin) > ZERO) exit @@ -156,23 +164,42 @@ contains this % gmin(gin) = gmin this % gmax(gin) = gmax end do - end subroutine scattdata_init - subroutine scattdatalegendre_init(this, order, energy, mult, coeffs) + subroutine scattdatalegendre_init(this, mult, coeffs) class(ScattDataLegendre), intent(inout) :: this ! Object to work on - integer, intent(in) :: order ! Data Order - real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + real(8), intent(inout) :: coeffs(:,:,:) ! Coefficients to use - real(8) :: dmu, mu, f - integer :: imu, Nmu, gout, gin, groups + real(8) :: dmu, mu, f, norm + integer :: imu, Nmu, gout, gin, groups, order + real(8), allocatable :: energy(:,:) + + groups = size(coeffs,dim=3) + order = size(coeffs,dim=1) + + ! Get scattxs value first before anything happens to coeffs + allocate(this % scattxs(groups)) + ! Get this by summing the now un-normalized P0 coefficient in coeffs + ! over all outgoing groups + this % scattxs = sum(coeffs(1,:,:),dim=1) + + allocate(energy(groups,groups)) + energy = ZERO + ! Build energy transfer probability matrix from data in coeffs + ! while also normalizing coeffs itself (making CDF of f(mu=1)=1) + do gin = 1, groups + do gout = 1, groups + norm = coeffs(1,gout,gin) + energy(gout,gin) = norm + if (norm /= ZERO) then + coeffs(:,gout,gin) = coeffs(:,gout,gin) / norm + end if + end do + end do call scattdata_init(this, order, energy, mult) - groups = size(this % energy,dim=1) - allocate(this % max_val(groups)) ! Set dist values from coeffs and initialize max_val do gin = 1, groups @@ -186,7 +213,7 @@ contains ! Step through the polynomial with fixed number of points to identify ! the maximal value. Nmu = 1001 - dmu = TWO / real(Nmu,8) + dmu = TWO / real(Nmu - 1,8) do gin = 1, groups do gout = this % gmin(gin), this % gmax(gin) do imu = 1, Nmu @@ -209,20 +236,39 @@ contains this % max_val(gin) % data(gout) * 1.1_8 end do end do - end subroutine scattdatalegendre_init - subroutine scattdatahistogram_init(this, order, energy, mult, coeffs) + subroutine scattdatahistogram_init(this, mult, coeffs) class(ScattDataHistogram), intent(inout) :: this ! Object to work on - integer, intent(in) :: order ! Data Order - real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + real(8), intent(inout) :: coeffs(:,:,:) ! Coefficients to use - integer :: imu, gin, gout, groups + integer :: imu, gin, gout, groups, order real(8) :: norm + real(8), allocatable :: energy(:,:) - groups = size(energy,dim=1) + groups = size(coeffs,dim=3) + order = size(coeffs,dim=1) + + ! Get scattxs value first before anything happens to coeffs + allocate(this % scattxs(groups)) + ! Get this by summing the now un-normalized P0 coefficient in coeffs + ! over all outgoing groups + this % scattxs = sum(sum(coeffs(:,:,:),dim=1),dim=1) + + allocate(energy(groups,groups)) + energy = ZERO + ! Build energy transfer probability matrix from data in coeffs + ! while also normalizing coeffs itself (making CDF of f(mu=1)=1) + do gin = 1, groups + do gout = 1, groups + norm = sum(coeffs(:,gout,gin)) + energy(gout,gin) = norm + if (norm /= ZERO) then + coeffs(:,gout,gin) = coeffs(:,gout,gin) / norm + end if + end do + end do call scattdata_init(this, order, energy, mult) @@ -253,91 +299,105 @@ contains end subroutine scattdatahistogram_init - subroutine scattdatatabular_init(this, order, energy, mult, coeffs) + subroutine scattdatatabular_init(this, mult, coeffs) class(ScattDataTabular), intent(inout) :: this ! Object to work on - integer, intent(in) :: order ! Data Order - real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + real(8), intent(inout) :: coeffs(:,:,:) ! Coefficients to use - integer :: imu, gin, gout, groups + integer :: imu, gin, gout, groups, order real(8) :: norm - logical :: legendre_flag - integer :: this_order + real(8), allocatable :: energy(:,:) - if (order < 0) then - legendre_flag = .true. - this_order = -1 * order - else - legendre_flag = .false. - this_order = order - end if + groups = size(coeffs,dim=3) + order = size(coeffs,dim=1) - groups = size(energy,dim=1) - - call scattdata_init(this, this_order, energy, mult) - - allocate(this % mu(this_order)) - this % dmu = TWO / real(this_order - 1) - this % mu = -ONE - do imu = 2, this_order - 1 - this % mu(imu) = -ONE + real(imu - 1) * this % dmu + ! Build the angular distribution mu values + allocate(this % mu(order)) + this % dmu = TWO / real(order - 1,8) + this % mu(1) = -ONE + do imu = 2, order - 1 + this % mu(imu) = -ONE + real(imu - 1,8) * this % dmu end do - this % mu(this_order) = ONE + this % mu(order) = ONE + + ! Get scattxs before anything happens to coeffs + allocate(this % scattxs(groups)) + ! Get this by integrating the scattering distribution over all mu points + ! and then combining over all outgoing groups + ! over all outgoing groups + do gin = 1, groups + norm = ZERO + do gout = 1, groups + do imu = 2, order + norm = norm + HALF * this % dmu * (coeffs(imu - 1,gout,gin) + & + coeffs(imu,gout,gin)) + end do + end do + this % scattxs(gin) = norm + end do + + allocate(energy(groups,groups)) + energy = ZERO + ! Build energy transfer probability matrix from data in coeffs + do gin = 1, groups + do gout = 1, groups + norm = ZERO + do imu = 2, order + norm = norm + HALF * this % dmu * & + (coeffs(imu - 1,gout,gin) + coeffs(imu,gout,gin)) + end do + ! energy(gout,gin) = sum(coeffs(:,gout,gin)) + energy(gout,gin) = norm + end do + end do + call scattdata_init(this, order, energy, mult) ! Calculate f(mu) and integrate it so we can avoid rejection sampling allocate(this % fmu(groups)) do gin = 1, groups - allocate(this % fmu(gin) % data(this_order,& - this % gmin(gin):this % gmax(gin))) + allocate(this % fmu(gin) % data(order, & + this % gmin(gin):this % gmax(gin))) do gout = this % gmin(gin), this % gmax(gin) - if (legendre_flag) then - ! Coeffs are legendre coeffs. Need to build f(mu) then integrate - ! and store the integral in this % dist - ! Ensure the coeffs are normalized - if (coeffs(1,gout,gin) /= ZERO) then - norm = ONE / coeffs(1,gout,gin) - else - norm = ONE + ! Coeffs contain f(mu), put in f(mu) as that is where the + ! PDF lives + this % fmu(gin) % data(:,gout) = coeffs(:,gout,gin) + + ! Force positivity + do imu = 1, order + if (this % fmu(gin) % data(imu,gout) < ZERO) then + this % fmu(gin) % data(imu,gout) = ZERO end if - do imu = 1, this_order - this % fmu(gin) % data(imu,gout) = & - evaluate_legendre(norm * coeffs(:,gout,gin), this % mu(imu)) - ! Force positivity - if (this % fmu(gin) % data(imu,gout) < ZERO) then - this % fmu(gin) % data(imu,gout) = ZERO - end if - end do - else - ! Coeffs contain f(mu), put in f(mu) as that is where the - ! PDF lives - this % fmu(gin) % data(:,gout) = this % dist(gin) % data(:,gout) - end if + end do ! Re-normalize fmu for numerical integration issues and in case ! the negative fix-up introduced un-normalized data norm = ZERO - do imu = 2, this_order + do imu = 2, order norm = norm + HALF * this % dmu * & (this % fmu(gin) % data(imu - 1,gout) + & this % fmu(gin) % data(imu,gout)) end do if (norm > ZERO) then - this % fmu(gin) % data(:,gout) = this % fmu(gin) % data(:,gout) / norm + this % fmu(gin) % data(:,gout) = & + this % fmu(gin) % data(:,gout) / norm end if ! Now create CDF from fmu with trapezoidal rule this % dist(gin) % data(1,gout) = ZERO - do imu = 2, this_order - 1 + do imu = 2, order this % dist(gin) % data(imu,gout) = & this % dist(gin) % data(imu - 1,gout) + & HALF * this % dmu * (this % fmu(gin) % data(imu - 1,gout) + & this % fmu(gin) % data(imu,gout)) end do - this % dist(gin) % data(this_order,gout) = ONE + ! Ensure we normalize to 1 still + norm = this % dist(gin) % data(order,gout) + if (norm > ZERO) then + this % dist(gin) % data(:,gout) = & + this % dist(gin) % data(:,gout) / norm + end if end do end do - end subroutine scattdatatabular_init !=============================================================================== @@ -547,4 +607,57 @@ contains end subroutine scattdatatabular_sample +!=============================================================================== +! SCATTDATA*_GET_MATRIX Reproduces the original scattering matrix (densely) +! using ScattData's information of fmu/dist, energy, and scattxs +!=============================================================================== + + function scattdata_get_matrix(this, req_order) result(matrix) + class(ScattData), intent(in) :: this ! Scattering Object to work with + integer, intent(in) :: req_order ! Requested order of matrix + real(8), allocatable :: matrix(:,:,:) ! Resultant matrix just built + + integer :: order, groups, gin, gout + + groups = size(this % energy) + order = min(req_order,size(this % dist(1) % data(:,1))) + + allocate(matrix(order,groups,groups)) + ! Initialize to 0; this way the zero entries in the dense matrix dont + ! need to be explicitly set, requiring a significant increase in the + ! lines of code. + matrix = ZERO + do gin = 1, groups + do gout = this % gmin(gin), this % gmax(gin) + matrix(:,gout,gin) = this % scattxs(gin) * & + this % energy(gin) % data(gout) * & + this % dist(gin) % data(1:order,gout) + end do + end do + end function scattdata_get_matrix + + function scattdatatabular_get_matrix(this, req_order) result(matrix) + class(ScattDataTabular), intent(in) :: this ! Scattering Object to work with + integer, intent(in) :: req_order ! Requested order of matrix + real(8), allocatable :: matrix(:,:,:) ! Resultant matrix just built + + integer :: order, groups, gin, gout + + groups = size(this % energy) + order = min(req_order,size(this % dist(1) % data(:,1))) + + allocate(matrix(order,groups,groups)) + ! Initialize to 0; this way the zero entries in the dense matrix dont + ! need to be explicitly set, requiring a significant increase in the + ! lines of code. + matrix = ZERO + do gin = 1, groups + do gout = this % gmin(gin), this % gmax(gin) + matrix(:,gout,gin) = this % scattxs(gin) * & + this % energy(gin) % data(gout) * & + this % fmu(gin) % data(1:order,gout) + end do + end do + end function scattdatatabular_get_matrix + end module scattdata_header From c2aa26411a4b57824067f1e1dba61b10bc3af146 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 7 Mar 2016 16:01:01 -0500 Subject: [PATCH 022/259] incorporated the latest features angle-dependent mgxs --- src/macroxs_header.F90 | 224 +++++++------ src/nuclide_header.F90 | 665 +++++++++++++++++++++++++-------------- src/scattdata_header.F90 | 9 +- 3 files changed, 535 insertions(+), 363 deletions(-) diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index d32cde96e..9eb3ea864 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -17,9 +17,6 @@ module macroxs_header !=============================================================================== type, abstract :: MacroXS - ! Data Order - integer :: order - contains procedure(macroxs_init_), deferred :: init ! initializes object procedure(macroxs_get_xs_), deferred :: get_xs ! Return xs @@ -149,68 +146,73 @@ contains integer :: i ! loop index over nuclides integer :: gin, gout ! group indices real(8) :: atom_density ! atom density of a nuclide - integer :: imu real(8) :: norm - integer :: mat_max_order, order, l + integer :: mat_max_order, order, order_dim, nuc_order_dim real(8), allocatable :: temp_mult(:,:) real(8), allocatable :: scatt_coeffs(:,:,:) + ! Determine the scattering type of our data and ensure all scattering orders + ! are the same. + select type(nuc => nuclides(mat % nuclide(1)) % obj) + type is (NuclideIso) + order = size(nuc % scatter % dist(1) % data, dim=1) + end select ! If we have tabular only data, then make sure all datasets have same size if (scatt_type == ANGLE_HISTOGRAM) then - ! Check all scattering data of same size - order = nuclides(mat % nuclide(1)) % obj % order + ! Check all scattering data to ensure it is the same size + ! order = size(nuclides(mat % nuclide(1)) % obj % scatter % data,dim=1) do i = 2, mat % n_nuclides - if (order /= nuclides(mat % nuclide(i)) % obj % order) then - call fatal_error("All Histogram Scattering Entries Must Be Same Length!") - end if + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (NuclideIso) + if (order /= size(nuc % scatter % dist(1) % data,dim=1)) & + call fatal_error("All Histogram Scattering Entries Must Be& + & Same Length!") + end select end do - ! Ok, got our order, store it - this % order = order + ! Ok, got our order, store the dimensionality + order_dim = order - ! Allocate stuff for later - allocate(scatt_coeffs(order, groups, groups)) - scatt_coeffs = ZERO + ! Set our Scatter Object Type allocate(ScattDataHistogram :: this % scatter) else if (scatt_type == ANGLE_TABULAR) then - ! Check all scattering data of same size - order = nuclides(mat % nuclide(1)) % obj % order + ! Check all scattering data to ensure it is the same size do i = 2, mat % n_nuclides - if (order /= nuclides(mat % nuclide(i)) % obj % order) then - call fatal_error("All Tabular Scattering Entries Must Be Same Length!") - return - end if + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (NuclideIso) + if (order /= size(nuc % scatter % dist(1) % data,dim=1)) & + call fatal_error("All Tabular Scattering Entries Must Be& + & Same Length!") + end select end do - ! Ok, got our order, store it - this % order = order + ! Ok, got our order, store the dimensionality + order_dim = order - ! Allocate stuff for later - allocate(scatt_coeffs(this % order, groups, groups)) - scatt_coeffs = ZERO + ! Set our Scatter Object Type allocate(ScattDataTabular :: this % scatter) else if (scatt_type == ANGLE_LEGENDRE) then - ! Otherwise find the maximum scattering order ! Need to determine the maximum scattering order of all data in this material mat_max_order = 0 do i = 1, mat % n_nuclides - if (nuclides(mat % nuclide(i)) % obj % order > mat_max_order) then - mat_max_order = nuclides(mat % nuclide(i)) % obj % order - end if + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (NuclideIso) + if (size(nuc % scatter % dist(1) % data,dim=1) > mat_max_order) & + mat_max_order = size(nuc % scatter % dist(1) % data,dim=1) + end select end do ! Now need to compare this material maximum scattering order with ! the problem wide max scatt order and use whichever is lower - order = min(mat_max_order, max_order) + 1 - this % order = order + order = min(mat_max_order, max_order) + ! Ok, got our order, store the dimensionality + order_dim = order + 1 - ! Now we can allocate our scatt_coeffs object accordingly - allocate(scatt_coeffs(this % order, groups, groups)) - scatt_coeffs = ZERO + ! Set our Scatter Object Type allocate(ScattDataLegendre :: this % scatter) end if - ! Allocate and initialize data within macro_xs(i_mat) object + ! Allocate and initialize data needed for macro_xs(i_mat) object allocate(this % total(groups)) this % total = ZERO allocate(this % absorption(groups)) @@ -225,10 +227,12 @@ contains end if allocate(this % nu_fission(groups)) this % nu_fission = ZERO - allocate(this % chi(groups, groups)) + allocate(this % chi(groups,groups)) this % chi = ZERO - allocate(temp_mult(groups, groups)) + allocate(temp_mult(groups,groups)) temp_mult = ZERO + allocate(scatt_coeffs(order_dim,groups,groups)) + scatt_coeffs = ZERO ! Add contribution from each nuclide in material do i = 1, mat % n_nuclides @@ -276,21 +280,23 @@ contains end do ! Get the complete scattering matrix - scatt_coeffs(1:min(nuc % order, order),:,:) = scatt_coeffs + & + nuc_order_dim = size(nuc % scatter % dist(1) % data,dim=1) + scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:) = & + scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:) + & atom_density * & - nuc % scatter % get_matrix(min(nuc % order, order)) + nuc % scatter % get_matrix(min(nuc_order_dim,order_dim)) type is (NuclideAngle) call fatal_error("Invalid Passing of NuclideAngle to MacroXSIso Object") end select end do + ! Initialize the ScattData Object call this % scatter % init(temp_mult,scatt_coeffs) ! Now normalize chi if (mat % fissionable) then do gin = 1, groups - ! Normalize Chi norm = sum(this % chi(:,gin)) if (norm > ZERO) then this % chi(:,gin) = this % chi(:,gin) / norm @@ -298,7 +304,7 @@ contains end do end if - ! Deallocate temporaries for the next material + ! Deallocate temporaries deallocate(scatt_coeffs, temp_mult) end subroutine macroxsiso_init @@ -318,9 +324,8 @@ contains integer :: gin, gout ! group indices real(8) :: atom_density ! atom density of a nuclide integer :: ipol, iazi, n_pol, n_azi - integer :: imu real(8) :: norm - integer :: mat_max_order, order, l + integer :: mat_max_order, order, order_dim, nuc_order_dim real(8), allocatable :: temp_mult(:,:,:,:) real(8), allocatable :: scatt_coeffs(:,:,:,:,:) @@ -346,21 +351,28 @@ contains end select end do + ! Determine the scattering type of our data and ensure all scattering orders + ! are the same. + select type(nuc => nuclides(mat % nuclide(1)) % obj) + type is (NuclideAngle) + order = size(nuc % scatter(1,1) % obj % dist(1) % data, dim=1) + end select ! If we have tabular only data, then make sure all datasets have same size if (scatt_type == ANGLE_HISTOGRAM) then - ! Check all scattering data of same size - order = nuclides(mat % nuclide(1)) % obj % order + ! Check all scattering data to ensure it is the same size + ! order = size(nuclides(mat % nuclide(1)) % obj % scatter % data,dim=1) do i = 2, mat % n_nuclides - if (order /= nuclides(mat % nuclide(i)) % obj % order) then - call fatal_error("All Histogram Scattering Entries Must Be Same Length!") - end if + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (NuclideAngle) + if (order /= size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1)) & + call fatal_error("All Histogram Scattering Entries Must Be& + & Same Length!") + end select end do - ! Ok, got our order, store it - this % order = order + ! Ok, got our order, store the dimensionality + order_dim = order - ! Allocate stuff for later - allocate(scatt_coeffs(this % order,groups,groups,n_azi,n_pol)) - scatt_coeffs = ZERO + ! Set our Scatter Object Type allocate(this % scatter(n_azi, n_pol)) do ipol = 1, n_pol do iazi = 1, n_azi @@ -369,19 +381,19 @@ contains end do else if (scatt_type == ANGLE_TABULAR) then - ! Check all scattering data of same size - order = nuclides(mat % nuclide(1)) % obj % order + ! Check all scattering data to ensure it is the same size do i = 2, mat % n_nuclides - if (order /= nuclides(mat % nuclide(i)) % obj % order) then - call fatal_error("All Tabular Scattering Entries Must Be Same Length!") - end if + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (NuclideAngle) + if (order /= size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1)) & + call fatal_error("All Tabular Scattering Entries Must Be& + & Same Length!") + end select end do - ! Ok, got our order, store it - this % order = order + ! Ok, got our order, store the dimensionality + order_dim = order - ! Allocate stuff for later - allocate(scatt_coeffs(this % order, groups, groups, n_azi, n_pol)) - scatt_coeffs = ZERO + ! Set our Scatter Object Type allocate(this % scatter(n_azi, n_pol)) do ipol = 1, n_pol do iazi = 1, n_azi @@ -390,23 +402,23 @@ contains end do else if (scatt_type == ANGLE_LEGENDRE) then - ! Otherwise find the maximum scattering order ! Need to determine the maximum scattering order of all data in this material mat_max_order = 0 do i = 1, mat % n_nuclides - if (nuclides(mat % nuclide(i)) % obj % order > mat_max_order) then - mat_max_order = nuclides(mat % nuclide(i)) % obj % order - end if + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (NuclideAngle) + if (size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1) > mat_max_order) & + mat_max_order = size(nuc % scatter(1,1) % obj% dist(1) % data,dim=1) + end select end do ! Now need to compare this material maximum scattering order with ! the problem wide max scatt order and use whichever is lower order = min(mat_max_order, max_order) - this % order = order + 1 + ! Ok, got our order, store the dimensionality + order_dim = order + 1 - ! Now we can allocate our scatt_coeffs object accordingly - allocate(scatt_coeffs(this % order, groups, groups, n_azi, n_pol)) - scatt_coeffs = ZERO + ! Set our Scatter Object Type allocate(this % scatter(n_azi, n_pol)) do ipol = 1, n_pol do iazi = 1, n_azi @@ -430,10 +442,12 @@ contains end if allocate(this % nu_fission(groups,n_azi,n_pol)) this % nu_fission = ZERO - allocate(this % chi(groups, groups, n_azi, n_pol)) + allocate(this % chi(groups, groups,n_azi,n_pol)) this % chi = ZERO allocate(temp_mult(groups,groups,n_azi,n_pol)) temp_mult = ZERO + allocate(scatt_coeffs(order_dim,groups,groups,n_azi,n_pol)) + scatt_coeffs = ZERO ! Add contribution from each nuclide in material do i = 1, mat % n_nuclides @@ -474,60 +488,35 @@ contains end if end if - ! Now time to do the scattering + ! Get the multiplication matrix do ipol = 1, n_pol do iazi = 1, n_azi do gin = 1, groups -!!! Needs to be updated to match iso!!! -! this % scattxs(gin,iazi,ipol) = this % scattxs(gin,iazi,ipol) + & -! atom_density * nuc % scattxs(gin,iazi,ipol) do gout = nuc % scatter(iazi,ipol) % obj % gmin(gin), & - nuc % scatter(iazi,ipol) % obj % gmax(gin) - - ! Multiplicity matrix - temp_mult(gout,gin,iazi,ipol) = & - temp_mult(gout,gin,iazi,ipol) + atom_density * & - nuc % scatter(iazi,ipol) % obj % mult(gin) % data(gout) - - if (scatt_type == ANGLE_HISTOGRAM) then - ! Determine the angular distribution - do imu = 1, order - scatt_coeffs(imu,gout,gin,iazi,ipol) = & - scatt_coeffs(imu,gout,gin,iazi,ipol) + & - atom_density * & - nuc % scatter(iazi,ipol) % obj % dist(gin) % data(imu,gout) - end do - else if (scatt_type == ANGLE_TABULAR) then - select type(scatt =>nuc % scatter(iazi,ipol) % obj) - type is (ScattDataTabular) - do imu = 1, order - scatt_coeffs(imu,gout,gin,iazi,ipol) = & - scatt_coeffs(imu,gout,gin,iazi,ipol) + & - atom_density * scatt % fmu(gin) % data(imu,gout) - end do - end select - else if (scatt_type == ANGLE_LEGENDRE) then - ! Determine the angular distribution coefficients so we can later - ! expand do the complete distribution - do l = 1, min(nuc % order, order) + 1 - scatt_coeffs(l,gout,gin,iazi,ipol) = & - scatt_coeffs(l,gout,gin,iazi,ipol) + & - atom_density * & - nuc % scatter(iazi,ipol) % obj % dist(gin) % data(l,gout) - end do - end if - ! Incorporate outgoing energy PDF information - scatt_coeffs(:,gout,gin,iazi,ipol) = & - scatt_coeffs(:,gout,gin,iazi,ipol) * & - nuc % scatter(iazi,ipol) % obj % energy(gin) % data(gout) + nuc % scatter(iazi,ipol) % obj % gmax(gin) + temp_mult(gout,gin,iazi,ipol) = temp_mult(gout,gin,iazi,ipol) + & + atom_density * & + nuc % scatter(iazi,ipol) % obj % mult(gin) % data(gout) end do end do end do end do + + ! Get the complete scattering matrix + nuc_order_dim = size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1) + do ipol = 1, n_pol + do iazi = 1, n_azi + scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:,iazi,ipol) = & + scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:,iazi,ipol) + & + atom_density * & + nuc % scatter(iazi,ipol) % obj % get_matrix(& + min(nuc_order_dim,order_dim,iazi,ipol)) + end do + end do end select end do - ! Initialize the scattering data + ! Initialize the ScattData Object do ipol = 1, n_pol do iazi = 1, n_azi call this % scatter(iazi, ipol) % obj % init( & @@ -535,12 +524,11 @@ contains end do end do - ! Now go through and normalize chi + ! Now normalize chi if (mat % fissionable) then do ipol = 1, n_pol do iazi = 1, n_azi do gin = 1, groups - ! Normalize Chi norm = sum(this % chi(:,gin,iazi,ipol)) if (norm > ZERO) then this % chi(:,gin,iazi,ipol) = this % chi(:,gin,iazi,ipol) / norm diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 88d7ce0ea..d2020a1e0 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -107,9 +107,6 @@ module nuclide_header end type NuclideCE type, abstract, extends(Nuclide) :: NuclideMG - ! Scattering Order Information - integer :: order ! Order of data (Scattering for NuclideIso, - ! Number of angles for all in NuclideAngle) integer :: scatt_type ! either legendre, histogram, or tabular. contains procedure(nuclidemg_init_), deferred :: init ! Initialize the data @@ -301,7 +298,7 @@ module nuclide_header character(MAX_LINE_LEN) :: temp_str - ! Load the data + ! Load the nuclide metadata call get_node_value(node_xsdata, "name", this % name) this % name = to_lower(this % name) if (check_for_node(node_xsdata, "kT")) then @@ -330,12 +327,6 @@ module nuclide_header this % scatt_type = ANGLE_LEGENDRE end if - if (check_for_node(node_xsdata, "order")) then - call get_node_value(node_xsdata, "order", this % order) - else - call fatal_error("Order Must Be Provided!") - end if - if (check_for_node(node_xsdata, "fissionable")) then call get_node_value(node_xsdata, "fissionable", temp_str) temp_str = to_lower(temp_str) @@ -368,26 +359,26 @@ module nuclide_header real(8), allocatable :: input_scatt(:,:,:) real(8), allocatable :: temp_scatt(:,:,:) real(8) :: dmu, mu, norm - integer :: order_dim, gin, gout, l, arr_len + integer :: order, order_dim, gin, gout, l, arr_len integer :: legendre_mu_points, imu - ! Call generic data gathering routine + ! Call generic data gathering routine (will populate the metadata) call nuclidemg_init(this, node_xsdata) ! Load the more specific data if (this % fissionable) then - if (check_for_node(node_xsdata, "chi")) then + if (check_for_node(node_xsdata,"chi")) then ! Get chi allocate(this % chi(groups)) - call get_node_array(node_xsdata, "chi", this % chi) + call get_node_array(node_xsdata,"chi",this % chi) ! Get nu_fission (as a vector) - if (check_for_node(node_xsdata, "nu_fission")) then + if (check_for_node(node_xsdata,"nu_fission")) then allocate(temp_arr(groups * 1)) - call get_node_array(node_xsdata, "nu_fission", temp_arr) - allocate(this % nu_fission(groups, 1)) - this % nu_fission = reshape(temp_arr, (/groups, 1/)) + call get_node_array(node_xsdata,"nu_fission",temp_arr) + allocate(this % nu_fission(groups,1)) + this % nu_fission = reshape(temp_arr,(/groups,1/)) deallocate(temp_arr) else call fatal_error("If fissionable, must provide nu_fission!") @@ -395,21 +386,23 @@ module nuclide_header else ! Get nu_fission (as a matrix) - if (check_for_node(node_xsdata, "nu_fission")) then + if (check_for_node(node_xsdata,"nu_fission")) then allocate(temp_arr(groups*groups)) - call get_node_array(node_xsdata, "nu_fission", temp_arr) + call get_node_array(node_xsdata,"nu_fission",temp_arr) allocate(this % nu_fission(groups, groups)) - this % nu_fission = reshape(temp_arr, (/groups, groups/)) + this % nu_fission = reshape(temp_arr,(/groups,groups/)) deallocate(temp_arr) else call fatal_error("If fissionable, must provide nu_fission!") end if end if + ! If we have a need* for the fission and kappa-fission x/s, get them + ! (*Need is defined as will be using it to tally) if (get_fiss) then allocate(this % fission(groups)) - if (check_for_node(node_xsdata, "fission")) then - call get_node_array(node_xsdata, "fission", this % fission) + if (check_for_node(node_xsdata,"fission")) then + call get_node_array(node_xsdata,"fission",this % fission) else call fatal_error("Fission data missing, required due to fission& & tallies in tallies.xml file!") @@ -417,8 +410,8 @@ module nuclide_header end if if (get_kfiss) then allocate(this % k_fission(groups)) - if (check_for_node(node_xsdata, "kappa_fission")) then - call get_node_array(node_xsdata, "kappa_fission", this % k_fission) + if (check_for_node(node_xsdata,"kappa_fission")) then + call get_node_array(node_xsdata,"kappa_fission",this % k_fission) else call fatal_error("kappa_fission data missing, required due to & &kappa-fission tallies in tallies.xml file!") @@ -427,17 +420,37 @@ module nuclide_header end if allocate(this % absorption(groups)) - if (check_for_node(node_xsdata, "absorption")) then - call get_node_array(node_xsdata, "absorption", this % absorption) + if (check_for_node(node_xsdata,"absorption")) then + call get_node_array(node_xsdata,"absorption",this % absorption) else call fatal_error("Must provide absorption!") end if - ! Get scattering treatment - if (check_for_node(node_xsdata, "tabular_legendre")) then - call get_node_ptr(node_xsdata, "tabular_legendre", node_legendre_mu) + ! Get multiplication data if present + allocate(temp_mult(groups, groups)) + if (check_for_node(node_xsdata,"multiplicity")) then + arr_len = get_arraysize_double(node_xsdata,"multiplicity") + if (arr_len == groups * groups) then + allocate(temp_arr(arr_len)) + call get_node_array(node_xsdata,"multiplicity",temp_arr) + temp_mult = reshape(temp_arr, (/groups, groups/)) + deallocate(temp_arr) + else + call fatal_error("Multiplicity length not same as number of groups& + & squared!") + end if + else + temp_mult = ONE + end if + + ! Get scattering treatment information + ! Tabular_legendre tells us if we are to treat the provided + ! Legendre polynomials as tabular data (if enable is true) or leaving + ! them as Legendres (if enable is false, or the default) + if (check_for_node(node_xsdata,"tabular_legendre")) then + call get_node_ptr(node_xsdata,"tabular_legendre",node_legendre_mu) if (check_for_node(node_legendre_mu, "enable")) then - call get_node_value(node_legendre_mu, "enable", temp_str) + call get_node_value(node_legendre_mu,"enable",temp_str) temp_str = trim(to_lower(temp_str)) if (temp_str == 'true' .or. temp_str == '1') then enable_leg_mu = .true. @@ -447,48 +460,62 @@ module nuclide_header call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) end if else - enable_leg_mu = .true. - legendre_mu_points = 33 + ! Set the default (leave as Legendre polynomials) + enable_leg_mu = .false. end if - if (enable_leg_mu .and. & - check_for_node(node_legendre_mu, "num_points")) then - call get_node_value(node_legendre_mu, "num_points", & - legendre_mu_points) - if (legendre_mu_points <= 0) then - call fatal_error("num_points element must be positive and non-zero!") + ! Ok, so if we need to convert to a tabular form, get the user provided + ! number of points + if (enable_leg_mu) then + if (check_for_node(node_legendre_mu,"num_points")) then + call get_node_value(node_legendre_mu,"num_points", & + legendre_mu_points) + if (legendre_mu_points <= 0) & + call fatal_error("num_points element must be positive& + & and non-zero!") + else + ! Set the default number of points (0.0625 spacing) + legendre_mu_points = 33 end if end if end if - if (this % scatt_type == ANGLE_LEGENDRE) then - order_dim = this % order + 1 - else if (this % scatt_type == ANGLE_HISTOGRAM) then - order_dim = this % order - else if (this % scatt_type == ANGLE_TABULAR) then - order_dim = this % order + ! Get the library's value for the order + if (check_for_node(node_xsdata,"order")) then + call get_node_value(node_xsdata,"order",order) + else + call fatal_error("Order Must Be Provided!") end if + ! Before retrieving the data, store the dimensionality of the data in + ! order_dim. For Legendre data, we usually refer to it as Pn where + ! n is the order. However Pn has n+1 sets of points (since you need to + ! the count the P0 moment). Adjust for that. Histogram and Tabular + ! formats dont need this adjustment. + if (this % scatt_type == ANGLE_LEGENDRE) then + order_dim = order + 1 + else + order_dim = order + end if + + ! The input is gathered in the more user-friendly facing format of + ! Gout x Gin x Order. We will get it in that format in input_scatt, + ! but then need to convert it to a more useful ordering for processing + ! (Order x Gout x Gin). allocate(input_scatt(groups, groups, order_dim)) - if (check_for_node(node_xsdata, "scatter")) then + if (check_for_node(node_xsdata,"scatter")) then allocate(temp_arr(groups * groups * order_dim)) - call get_node_array(node_xsdata, "scatter", temp_arr) - input_scatt = reshape(temp_arr, (/groups, groups, order_dim/)) + call get_node_array(node_xsdata,"scatter",temp_arr) + input_scatt = reshape(temp_arr,(/groups,groups,order_dim/)) deallocate(temp_arr) ! Compare the number of orders given with the maximum order of the ! problem. Strip off the supefluous orders if needed. if (this % scatt_type == ANGLE_LEGENDRE) then - order_dim = min(order_dim, max_order + 1) - this % order = order_dim + order = min(order_dim - 1, max_order) + order_dim = order + 1 end if - allocate(temp_scatt(groups, groups, order_dim)) - do gin = 1, groups - do gout = 1, groups - do l = 1, order_dim - temp_scatt(gout,gin,l) = input_scatt(gout,gin,l) - end do - end do - end do + allocate(temp_scatt(groups,groups,order_dim)) + temp_scatt(:,:,:) = input_scatt(:,:,1:order_dim) ! Take input format (groups, groups, order) and convert to ! the more useful format needed for scattdata: (order, groups, groups) @@ -500,10 +527,10 @@ module nuclide_header ! Convert input parameters to what we need for the rest. this % scatt_type = ANGLE_TABULAR order_dim = legendre_mu_points - this % order = order_dim - dmu = TWO / real(this % order - 1,8) + order = order_dim + dmu = TWO / real(order - 1,8) - allocate(scatt_coeffs(order_dim, groups, groups)) + allocate(scatt_coeffs(order_dim,groups,groups)) do gin = 1, groups do gout = 1, groups norm = ZERO @@ -517,13 +544,17 @@ module nuclide_header end if scatt_coeffs(imu,gout,gin) = & evaluate_legendre(temp_scatt(gout,gin,:),mu) + ! Ensure positivity of distribution if (scatt_coeffs(imu,gout,gin) < ZERO) & scatt_coeffs(imu,gout,gin) = ZERO + ! And accrue the integral if (imu > 1) then norm = norm + HALF * dmu * (scatt_coeffs(imu-1,gout,gin) + & scatt_coeffs(imu,gout,gin)) end if end do + ! Now that we have the integral, lets ensure that the distribution + ! is normalized such that it preserves the original scattering xs if (norm > ZERO) then scatt_coeffs(:,gout,gin) = scatt_coeffs(:,gout,gin) * & temp_scatt(gout,gin,1) / norm @@ -533,7 +564,7 @@ module nuclide_header else ! Sticking with current representation, carry forward but change ! the array ordering - allocate(scatt_coeffs(order_dim, groups, groups)) + allocate(scatt_coeffs(order_dim,groups,groups)) do gin = 1, groups do gout = 1, groups do l = 1, order_dim @@ -545,28 +576,9 @@ module nuclide_header deallocate(temp_scatt) else call fatal_error("Must provide scatter!") - return end if - ! Get Mult Data - allocate(temp_mult(groups, groups)) - if (check_for_node(node_xsdata, "multiplicity")) then - arr_len = get_arraysize_double(node_xsdata, "multiplicity") - if (arr_len == groups * groups) then - allocate(temp_arr(arr_len)) - call get_node_array(node_xsdata, "multiplicity", temp_arr) - temp_mult = reshape(temp_arr, (/groups, groups/)) - deallocate(temp_arr) - else - call fatal_error("Multiplicity length not same as number of groups& - & squared!") - return - end if - else - temp_mult = ONE - end if - - ! Allocate and initialize our ScattData Object.. + ! Allocate and initialize our ScattData Object. if (this % scatt_type == ANGLE_HISTOGRAM) then allocate(ScattDataHistogram :: this % scatter) else if (this % scatt_type == ANGLE_TABULAR) then @@ -576,18 +588,18 @@ module nuclide_header end if ! Initialize the ScattData Object - call this % scatter % init(temp_mult, scatt_coeffs(:,:,:)) + call this % scatter % init(temp_mult, scatt_coeffs) ! Get, or infer, total xs data. allocate(this % total(groups)) - if (check_for_node(node_xsdata, "total")) then - call get_node_array(node_xsdata, "total", this % total) + if (check_for_node(node_xsdata,"total")) then + call get_node_array(node_xsdata,"total",this % total) else this % total = this % absorption + this % scatter % scattxs end if ! Deallocate temporaries for the next material - deallocate(scatt_coeffs, temp_mult) + deallocate(input_scatt,scatt_coeffs,temp_mult) end subroutine nuclideiso_init @@ -600,168 +612,331 @@ module nuclide_header logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order - real(8), allocatable :: temp_arr(:) - integer :: arr_len - real(8) :: dangle - integer :: iangle - integer :: order_dim + type(Node), pointer :: node_legendre_mu + character(MAX_LINE_LEN) :: temp_str + logical :: enable_leg_mu + real(8), allocatable :: temp_arr(:) + real(8), allocatable :: temp_mult(:,:,:,:) + real(8), allocatable :: scatt_coeffs(:,:,:,:,:) + real(8), allocatable :: input_scatt(:,:,:,:,:) + real(8), allocatable :: temp_scatt(:,:,:,:,:) + real(8) :: dmu, mu, norm, dangle + integer :: order, order_dim, gin, gout, l, arr_len + integer :: legendre_mu_points, imu, i_pol, i_azi - ! Call generic data gathering routine + ! Call generic data gathering routine (will populate the metadata) call nuclidemg_init(this, node_xsdata) - if (this % scatt_type == ANGLE_LEGENDRE) then - order_dim = this % order + 1 - else if (this % scatt_type == ANGLE_HISTOGRAM) then - order_dim = this % order - else if (this % scatt_type == ANGLE_TABULAR) then - order_dim = this % order + if (check_for_node(node_xsdata, "num_polar")) then + call get_node_value(node_xsdata, "num_polar", this % n_pol) + else + call fatal_error("num_polar Must Be Provided!") end if - ! if (check_for_node(node_xsdata, "num_polar")) then - ! call get_node_value(node_xsdata, "num_polar", this % n_pol) - ! else - ! call fatal_error("num_polar Must Be Provided!") - ! end if + if (check_for_node(node_xsdata, "num_azimuthal")) then + call get_node_value(node_xsdata, "num_azimuthal", this % n_azi) + else + call fatal_error("num_azimuthal Must Be Provided!") + end if - ! if (check_for_node(node_xsdata, "num_azimuthal")) then - ! call get_node_value(node_xsdata, "num_azimuthal", this % n_azi) - ! else - ! call fatal_error("num_azimuthal Must Be Provided!") - ! end if + ! Load angle data, if present (else equally spaced) + allocate(this % polar(this % n_pol)) + allocate(this % azimuthal(this % n_azi)) + if (check_for_node(node_xsdata, "polar")) then + call fatal_error("User-Specified polar angle bins not yet supported!") + ! When this feature is supported, this line will be activated + call get_node_array(node_xsdata, "polar", this % polar) + else + dangle = PI / real(this % n_pol,8) + do i_pol = 1, this % n_pol + this % polar(i_pol) = (real(i_pol,8) - HALF) * dangle + end do + end if + if (check_for_node(node_xsdata, "azimuthal")) then + call fatal_error("User-Specified azimuthal angle bins not yet supported!") + ! When this feature is supported, this line will be activated + call get_node_array(node_xsdata, "azimuthal", this % azimuthal) + else + dangle = TWO * PI / real(this % n_azi,8) + do i_azi = 1, this % n_azi + this % azimuthal(i_azi) = -PI + (real(i_azi,8) - HALF) * dangle + end do + end if - ! ! Load angle data, if present (else equally spaced) - ! allocate(this % polar(this % n_pol)) - ! allocate(this % azimuthal(this % n_azi)) - ! if (check_for_node(node_xsdata, "polar")) then - ! call fatal_error("User-Specified polar angle bins not yet supported!") - ! ! When this feature is supported, this line will be activated - ! call get_node_array(node_xsdata, "polar", this % polar) - ! else - ! dangle = PI / real(this % n_pol,8) - ! do iangle = 1, this % n_pol - ! this % polar(iangle) = (real(iangle,8) - HALF) * dangle - ! end do - ! end if - ! if (check_for_node(node_xsdata, "azimuthal")) then - ! call fatal_error("User-Specified azimuthal angle bins not yet supported!") - ! ! When this feature is supported, this line will be activated - ! call get_node_array(node_xsdata, "azimuthal", this % azimuthal) - ! else - ! dangle = TWO * PI / real(this % n_azi,8) - ! do iangle = 1, this % n_azi - ! this % azimuthal(iangle) = -PI + (real(iangle,8) - HALF) * dangle - ! end do - ! end if + ! Load the more specific data + if (this % fissionable) then - ! ! Load the more specific data - ! if (this % fissionable) then + if (check_for_node(node_xsdata,"chi")) then + ! Get chi + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"chi",temp_arr) + allocate(this % chi(groups,this % n_azi,this % n_pol)) + this % chi = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) - ! if (check_for_node(node_xsdata, "chi")) then - ! ! Get chi - ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) - ! call get_node_array(node_xsdata, "chi", temp_arr) - ! allocate(this % chi(groups, this % n_azi, this % n_pol)) - ! this % chi = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - ! deallocate(temp_arr) + ! Get nu_fission (as a vector) + if (check_for_node(node_xsdata,"nu_fission")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"nu_fission", temp_arr) + allocate(this % nu_fission(groups,1,this % n_azi,this % n_pol)) + this % nu_fission = reshape(temp_arr, (/groups,1,this % n_azi, & + this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("If fissionable, must provide nu_fission!") + end if - ! ! Get nu_fission (as a vector) - ! if (check_for_node(node_xsdata, "nu_fission")) then - ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) - ! call get_node_array(node_xsdata, "nu_fission", temp_arr) - ! allocate(this % nu_fission(groups, 1, this % n_azi, this % n_pol)) - ! this % nu_fission = reshape(temp_arr, (/groups, 1, this % n_azi, & - ! this % n_pol/)) - ! deallocate(temp_arr) - ! else - ! call fatal_error("If fissionable, must provide nu_fission!") - ! end if + else + ! Get nu_fission (as a matrix) + if (check_for_node(node_xsdata,"nu_fission")) then - ! else - ! ! Get nu_fission (as a matrix) - ! if (check_for_node(node_xsdata, "nu_fission")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"nu_fission",temp_arr) + allocate(this % nu_fission(groups,groups,this % n_azi,this % n_pol)) + this % nu_fission = reshape(temp_arr,(/groups,groups, & + this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("If fissionable, must provide nu_fission!") + end if + end if + ! If we have a need* for the fission and kappa-fission x/s, get them + ! (*Need is defined as will be using it to tally) + if (get_fiss) then + if (check_for_node(node_xsdata,"fission")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"fission",temp_arr) + allocate(this % fission(groups,this % n_azi,this % n_pol)) + this % fission = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("Fission data missing, required due to fission& + & tallies in tallies.xml file!") + end if + end if + if (get_kfiss) then + if (check_for_node(node_xsdata,"kappa_fission")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"kappa_fission",temp_arr) + allocate(this % k_fission(groups,this % n_azi,this % n_pol)) + this % k_fission = reshape(temp_arr,(/groups, this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("kappa_fission data missing, required due to & + &kappa-fission tallies in tallies.xml file!") + end if + end if + end if - ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) - ! call get_node_array(node_xsdata, "nu_fission", temp_arr) - ! allocate(this % nu_fission(groups, groups, this % n_azi, this % n_pol)) - ! this % nu_fission = reshape(temp_arr, (/groups, groups, & - ! this % n_azi, this % n_pol/)) - ! deallocate(temp_arr) - ! else - ! call fatal_error("If fissionable, must provide nu_fission!") - ! end if - ! end if - ! if (get_fiss) then - ! if (check_for_node(node_xsdata, "fission")) then - ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) - ! call get_node_array(node_xsdata, "fission", temp_arr) - ! allocate(this % fission(groups, this % n_azi, this % n_pol)) - ! this % fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - ! deallocate(temp_arr) - ! else - ! call fatal_error("Fission data missing, required due to fission& - ! & tallies in tallies.xml file!") - ! end if - ! end if - ! if (get_kfiss) then - ! if (check_for_node(node_xsdata, "kappa_fission")) then - ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) - ! call get_node_array(node_xsdata, "kappa_fission", temp_arr) - ! allocate(this % k_fission(groups, this % n_azi, this % n_pol)) - ! this % k_fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - ! deallocate(temp_arr) - ! else - ! call fatal_error("kappa_fission data missing, required due to & - ! &kappa-fission tallies in tallies.xml file!") - ! end if - ! end if - ! end if + if (check_for_node(node_xsdata,"absorption")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"absorption",temp_arr) + allocate(this % absorption(groups,this % n_azi,this % n_pol)) + this % absorption = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("Must provide absorption!") + end if - ! if (check_for_node(node_xsdata, "absorption")) then - ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) - ! call get_node_array(node_xsdata, "absorption", temp_arr) - ! allocate(this % absorption(groups, this % n_azi, this % n_pol)) - ! this % absorption = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - ! deallocate(temp_arr) - ! else - ! call fatal_error("Must provide absorption!") - ! end if + ! Get multiplication data if present + allocate(temp_mult(groups,groups,this % n_azi,this % n_pol)) + if (check_for_node(node_xsdata,"multiplicity")) then + arr_len = get_arraysize_double(node_xsdata,"multiplicity") + if (arr_len == groups * groups * this % n_azi * this % n_pol) then + allocate(temp_arr(arr_len)) + call get_node_array(node_xsdata,"multiplicity",temp_arr) + temp_mult = reshape(temp_arr,(/groups,groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("Multiplicity length not same as number of groups& + & squared!") + end if + else + temp_mult = ONE + end if - ! allocate(this % scatter(groups, groups, order_dim, this % n_azi, this % n_pol)) - ! if (check_for_node(node_xsdata, "scatter")) then - ! allocate(temp_arr(groups * groups * order_dim * this % n_azi * this%n_pol)) - ! call get_node_array(node_xsdata, "scatter", temp_arr) - ! this % scatter = reshape(temp_arr, (/groups, groups, order_dim, & - ! this%n_azi,this%n_pol/)) - ! deallocate(temp_arr) - ! else - ! call fatal_error("Must provide scatter!") - ! end if + ! Get scattering treatment information + ! Tabular_legendre tells us if we are to treat the provided + ! Legendre polynomials as tabular data (if enable is true) or leaving + ! them as Legendres (if enable is false, or the default) + if (check_for_node(node_xsdata,"tabular_legendre")) then + call get_node_ptr(node_xsdata,"tabular_legendre",node_legendre_mu) + if (check_for_node(node_legendre_mu, "enable")) then + call get_node_value(node_legendre_mu,"enable",temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == 'true' .or. temp_str == '1') then + enable_leg_mu = .true. + elseif (temp_str == 'false' .or. temp_str == '0') then + enable_leg_mu = .false. + else + call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) + end if + else + ! Set the default (leave as Legendre polynomials) + enable_leg_mu = .false. + end if + ! Ok, so if we need to convert to a tabular form, get the user provided + ! number of points + if (enable_leg_mu) then + if (check_for_node(node_legendre_mu,"num_points")) then + call get_node_value(node_legendre_mu,"num_points", & + legendre_mu_points) + if (legendre_mu_points <= 0) & + call fatal_error("num_points element must be positive& + & and non-zero!") + else + ! Set the default number of points (0.0625 spacing) + legendre_mu_points = 33 + end if + end if + end if - ! if (check_for_node(node_xsdata, "total")) then - ! allocate(temp_arr(groups * this % n_azi * this % n_pol)) - ! call get_node_array(node_xsdata, "total", temp_arr) - ! allocate(this % total(groups, this % n_azi, this % n_pol)) - ! this % total = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - ! deallocate(temp_arr) - ! else - ! this % total = this % absorption + sum(this%scatter(:,:,1,:,:),dim=1) - ! end if + ! Get the library's value for the order + if (check_for_node(node_xsdata,"order")) then + call get_node_value(node_xsdata,"order",order) + else + call fatal_error("Order Must Be Provided!") + end if - ! ! Get Mult Data - ! allocate(this % mult(groups, groups, this % n_azi, this % n_pol)) - ! if (check_for_node(node_xsdata, "multiplicity")) then - ! arr_len = get_arraysize_double(node_xsdata, "multiplicity") - ! if (arr_len == groups * groups * this % n_azi * this % n_pol) then - ! allocate(temp_arr(arr_len)) - ! call get_node_array(node_xsdata, "multiplicity", temp_arr) - ! this % mult = reshape(temp_arr, (/groups, groups, this % n_azi, this % n_pol/)) - ! deallocate(temp_arr) - ! else - ! call fatal_error("Multiplicity Length Does Not Match!") - ! end if - ! else - ! this % mult = ONE - ! end if + ! Before retrieving the data, store the dimensionality of the data in + ! order_dim. For Legendre data, we usually refer to it as Pn where + ! n is the order. However Pn has n+1 sets of points (since you need to + ! the count the P0 moment). Adjust for that. Histogram and Tabular + ! formats dont need this adjustment. + if (this % scatt_type == ANGLE_LEGENDRE) then + order_dim = order + 1 + else + order_dim = order + end if + + ! The input is gathered in the more user-friendly facing format of + ! Gout x Gin x Order x Azi x Pol. We will get it in that format in + ! input_scatt, but then need to convert it to a more useful ordering + ! for processing (Order x Gout x Gin x Azi x Pol). + allocate(input_scatt(groups,groups,order_dim,this % n_azi,this % n_pol)) + if (check_for_node(node_xsdata,"scatter")) then + allocate(temp_arr(groups * groups * order_dim * this % n_azi * & + this % n_pol)) + call get_node_array(node_xsdata,"scatter",temp_arr) + input_scatt = reshape(temp_arr,(/groups,groups,order_dim,this % n_azi, & + this % n_pol/)) + deallocate(temp_arr) + + ! Compare the number of orders given with the maximum order of the + ! problem. Strip off the supefluous orders if needed. + if (this % scatt_type == ANGLE_LEGENDRE) then + order = min(order_dim - 1, max_order) + order_dim = order + 1 + end if + allocate(temp_scatt(groups,groups,order_dim,this % n_azi,this % n_pol)) + temp_scatt(:,:,:,:,:) = input_scatt(:,:,1:order_dim,:,:) + + ! Take input format (groups, groups, order) and convert to + ! the more useful format needed for scattdata: (order, groups, groups) + ! However, if scatt_type was ANGLE_LEGENDRE (i.e., the data was + ! provided as Legendre coefficients), and the user requested that + ! these legendres be converted to tabular form (note this is also + ! the default behavior), convert that now. + if (this % scatt_type == ANGLE_LEGENDRE .and. enable_leg_mu) then + ! Convert input parameters to what we need for the rest. + this % scatt_type = ANGLE_TABULAR + order_dim = legendre_mu_points + order = order_dim + dmu = TWO / real(order - 1,8) + + allocate(scatt_coeffs(order_dim,groups,groups,this % n_azi,this % n_pol)) + do i_pol = 1, this % n_pol + do i_azi = 1, this % n_azi + do gin = 1, groups + do gout = 1, groups + norm = ZERO + do imu = 1, order_dim + if (imu == 1) then + mu = -ONE + else if (imu == order_dim) then + mu = ONE + else + mu = -ONE + real(imu - 1,8) * dmu + end if + scatt_coeffs(imu,gout,gin,i_azi,i_pol) = & + evaluate_legendre(temp_scatt(gout,gin,:,i_azi,i_pol),mu) + ! Ensure positivity of distribution + if (scatt_coeffs(imu,gout,gin,i_azi,i_pol) < ZERO) & + scatt_coeffs(imu,gout,gin,i_azi,i_pol) = ZERO + ! And accrue the integral + if (imu > 1) then + norm = norm + HALF * dmu * & + (scatt_coeffs(imu-1,gout,gin,i_azi,i_pol) + & + scatt_coeffs(imu,gout,gin,i_azi,i_pol)) + end if + end do + ! Now that we have the integral, lets ensure that the distribution + ! is normalized such that it preserves the original scattering xs + if (norm > ZERO) then + scatt_coeffs(:,gout,gin,i_azi,i_pol) = & + scatt_coeffs(:,gout,gin,i_azi,i_pol) * & + temp_scatt(gout,gin,1,i_azi,i_pol) / norm + end if + end do + end do + end do + end do + else + ! Sticking with current representation, carry forward but change + ! the array ordering + allocate(scatt_coeffs(order_dim,groups,groups,i_azi,i_pol)) + do i_pol = 1, this % n_pol + do i_azi = 1, this % n_azi + do gin = 1, groups + do gout = 1, groups + do l = 1, order_dim + scatt_coeffs(l,gout,gin,i_azi,i_pol) = & + temp_scatt(gout,gin,l,i_azi,i_pol) + end do + end do + end do + end do + end do + end if + deallocate(temp_scatt) + else + call fatal_error("Must provide scatter!") + end if + + allocate(this % scatter(this % n_azi, this % n_pol)) + do i_pol = 1, this % n_pol + do i_azi = 1, this % n_azi + ! Allocate and initialize our ScattData Object. + if (this % scatt_type == ANGLE_HISTOGRAM) then + allocate(ScattDataHistogram :: this % scatter(i_azi,i_pol) % obj) + else if (this % scatt_type == ANGLE_TABULAR) then + allocate(ScattDataTabular :: this % scatter(i_azi,i_pol) % obj) + else if (this % scatt_type == ANGLE_LEGENDRE) then + allocate(ScattDataLegendre :: this % scatter(i_azi,i_pol) % obj) + end if + + ! Initialize the ScattData Object + call this % scatter(i_azi,i_pol) % obj % init(& + temp_mult(:,:,i_azi,i_pol), scatt_coeffs(:,:,:,i_azi,i_pol)) + end do + end do + ! Deallocate temporaries for the next material + deallocate(input_scatt,scatt_coeffs,temp_mult) + + allocate(this % total(groups,this % n_azi,this % n_pol)) + if (check_for_node(node_xsdata,"total")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"total",temp_arr) + this % total = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + do i_pol = 1, this % n_pol + do i_azi = 1, this % n_azi + this % total(:,i_azi,i_pol) = this % absorption(:,i_azi,i_pol) + & + this % scatter(i_azi,i_pol) % obj % scattxs(:) + end do + end do + end if end subroutine nuclideangle_init @@ -886,17 +1061,27 @@ module nuclide_header if (this % scatt_type == ANGLE_LEGENDRE) then temp_str = "Legendre" write(unit_,*) ' Scattering Type = ' // trim(temp_str) - write(unit_,*) ' # of Scatter Moments = ' // & - trim(to_str(this % order)) + select type(this) + type is (NuclideIso) + temp_str = to_str(size(this % scatter % dist(1) % data,dim=1) - 1) + end select + write(unit_,*) ' Scattering Order = ' // trim(temp_str) else if (this % scatt_type == ANGLE_HISTOGRAM) then temp_str = "Histogram" write(unit_,*) ' Scattering Type = ' // trim(temp_str) - write(unit_,*) ' # of Scatter Bins = ' // & - trim(to_str(this % order)) + select type(this) + type is (NuclideIso) + temp_str = to_str(size(this % scatter % dist(1) % data,dim=1)) + end select + write(unit_,*) ' Num. Distribution Bins = ' // trim(temp_str) else if (this % scatt_type == ANGLE_TABULAR) then temp_str = "Tabular" write(unit_,*) ' Scattering Type = ' // trim(temp_str) - write(unit_,*) ' # of Scatter Points = ' // trim(to_str(this % order)) + select type(this) + type is (NuclideIso) + temp_str = to_str(size(this % scatter % dist(1) % data,dim=1)) + end select + write(unit_,*) ' Num. Distribution Points = ' // trim(temp_str) end if write(unit_,*) ' Fissionable = ', this % fissionable @@ -926,9 +1111,9 @@ module nuclide_header do gin = 1, size(this % scatter % energy) size_scattmat = size_scattmat + & 2 * size(this % scatter % energy(gin) % data) + & - size(this % scatter % dist(gin) % data) + & - size(this % scatter % scattxs) + size(this % scatter % dist(gin) % data) end do + size_scattmat = size_scattmat + size(this % scatter % scattxs) size_scattmat = size_scattmat * 8 size_mgxs = size(this % total) + size(this % absorption) + & @@ -981,6 +1166,8 @@ module nuclide_header 2 * size(this % scatter(i_azi,i_pol) % obj % energy(gin) % data) + & size(this % scatter(i_azi,i_pol) % obj % dist(gin) % data) end do + size_scattmat = size_scattmat + & + size(this % scatter(i_azi,i_pol) % obj % scattxs) end do end do size_scattmat = size_scattmat * 8 diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 003b31d87..cf965f397 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -41,8 +41,7 @@ module scattdata_header procedure(scattdata_init_), deferred :: init ! Initializes ScattData procedure(scattdata_calc_f_), deferred :: calc_f ! Calculates f, given mu procedure(scattdata_sample_), deferred :: sample ! sample the scatter event - ! Reproduces an unnormalized scattering matrix - procedure :: get_matrix => scattdata_get_matrix + procedure :: get_matrix => scattdata_get_matrix ! Rebuild scattering matrix end type ScattData abstract interface @@ -55,7 +54,7 @@ module scattdata_header pure function scattdata_calc_f_(this, gin, gout, mu) result(f) import ScattData - class(ScattData), intent(in) :: this !! Scattering Object to work with + class(ScattData), intent(in) :: this ! Scattering Object to work with integer, intent(in) :: gin ! Incoming Energy Group integer, intent(in) :: gout ! Outgoing Energy Group real(8), intent(in) :: mu ! Angle of interest @@ -65,7 +64,7 @@ module scattdata_header subroutine scattdata_sample_(this, gin, gout, mu, wgt) import ScattData - class(ScattData), intent(in) :: this !! Scattering Object to work with + class(ScattData), intent(in) :: this ! Scattering Object to work with integer, intent(in) :: gin ! Incoming neutron group integer, intent(out) :: gout ! Sampled outgoin group real(8), intent(out) :: mu ! Sampled change in angle @@ -80,7 +79,6 @@ module scattdata_header procedure :: init => scattdatalegendre_init procedure :: calc_f => scattdatalegendre_calc_f procedure :: sample => scattdatalegendre_sample - ! procedure :: get_matrix => scattdatalegendre_get_matrix end type ScattDataLegendre type, extends(ScattData) :: ScattDataHistogram @@ -90,7 +88,6 @@ module scattdata_header procedure :: init => scattdatahistogram_init procedure :: calc_f => scattdatahistogram_calc_f procedure :: sample => scattdatahistogram_sample - ! procedure :: get_matrix => scattdatahistogram_get_matrix end type ScattDataHistogram type, extends(ScattData) :: ScattDataTabular From 7294a1363485c64b4ee7cb1a5a8e4f0bb67d8ec7 Mon Sep 17 00:00:00 2001 From: jingang Date: Tue, 8 Mar 2016 13:15:13 -0500 Subject: [PATCH 023/259] Fix incorrect checking 'cmfd.xml' --- src/cmfd_input.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index 2d9df4182..f69c09fe1 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -70,7 +70,7 @@ contains inquire(FILE=filename, EXIST=file_exists) if (.not. file_exists) then ! CMFD is optional unless it is in on from settings - if (cmfd_on) then + if (cmfd_run) then call fatal_error("No CMFD XML file, '" // trim(filename) // "' does not& & exist!") end if From 33f74b5c909e884a593c420a3488f451f7db85b1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 9 Mar 2016 06:48:10 -0500 Subject: [PATCH 024/259] tested nuclideangle implementation and worked out some kinks after my changes the other day --- src/macroxs_header.F90 | 6 +- src/nuclide_header.F90 | 148 ++++++++++++++++++++------------------- src/scattdata_header.F90 | 77 ++++++++++++++------ 3 files changed, 133 insertions(+), 98 deletions(-) diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 9eb3ea864..f86da1729 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -506,11 +506,11 @@ contains nuc_order_dim = size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1) do ipol = 1, n_pol do iazi = 1, n_azi - scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:,iazi,ipol) = & + scatt_coeffs(1:min(nuc_order_dim,order_dim),:,:,iazi,ipol) = & scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:,iazi,ipol) + & atom_density * & nuc % scatter(iazi,ipol) % obj % get_matrix(& - min(nuc_order_dim,order_dim,iazi,ipol)) + min(nuc_order_dim,order_dim)) end do end do end select @@ -519,7 +519,7 @@ contains ! Initialize the ScattData Object do ipol = 1, n_pol do iazi = 1, n_azi - call this % scatter(iazi, ipol) % obj % init( & + call this % scatter(iazi,ipol) % obj % init( & temp_mult(:,:,iazi,ipol), scatt_coeffs(:,:,:,iazi,ipol)) end do end do diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index d2020a1e0..e4dc717a8 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -126,7 +126,7 @@ module nuclide_header integer, intent(in) :: max_order ! Maximum requested order end subroutine nuclidemg_init_ - function nuclidemg_get_xs_(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & + function nuclidemg_get_xs_(this, g, xstype, gout, uvw, mu, iazi, ipol) & result(xs) import NuclideMG class(NuclideMG), intent(in) :: this @@ -135,20 +135,20 @@ module nuclide_header integer, optional, intent(in) :: gout ! Outgoing Group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8), optional, intent(in) :: mu ! Change in angle - integer, optional, intent(in) :: i_azi ! Azimuthal Index - integer, optional, intent(in) :: i_pol ! Polar Index + integer, optional, intent(in) :: iazi ! Azimuthal Index + integer, optional, intent(in) :: ipol ! Polar Index real(8) :: xs ! Resultant xs end function nuclidemg_get_xs_ - pure function nuclidemg_calc_f_(this, gin, gout, mu, uvw, i_azi, i_pol) result(f) + pure function nuclidemg_calc_f_(this, gin, gout, mu, uvw, iazi, ipol) result(f) import NuclideMG class(NuclideMG), intent(in) :: this integer, intent(in) :: gin ! Incoming Energy Group integer, intent(in) :: gout ! Outgoing Energy Group real(8), intent(in) :: mu ! Angle of interest real(8), intent(in), optional :: uvw(3) ! Direction vector - integer, intent(in), optional :: i_azi ! Incoming Energy Group - integer, intent(in), optional :: i_pol ! Outgoing Energy Group + integer, intent(in), optional :: iazi ! Incoming Energy Group + integer, intent(in), optional :: ipol ! Outgoing Energy Group real(8) :: f ! Return value of f(mu) end function nuclidemg_calc_f_ @@ -447,6 +447,9 @@ module nuclide_header ! Tabular_legendre tells us if we are to treat the provided ! Legendre polynomials as tabular data (if enable is true) or leaving ! them as Legendres (if enable is false, or the default) + + ! Set the default (leave as Legendre polynomials) + enable_leg_mu = .false. if (check_for_node(node_xsdata,"tabular_legendre")) then call get_node_ptr(node_xsdata,"tabular_legendre",node_legendre_mu) if (check_for_node(node_legendre_mu, "enable")) then @@ -459,9 +462,6 @@ module nuclide_header else call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) end if - else - ! Set the default (leave as Legendre polynomials) - enable_leg_mu = .false. end if ! Ok, so if we need to convert to a tabular form, get the user provided ! number of points @@ -622,7 +622,7 @@ module nuclide_header real(8), allocatable :: temp_scatt(:,:,:,:,:) real(8) :: dmu, mu, norm, dangle integer :: order, order_dim, gin, gout, l, arr_len - integer :: legendre_mu_points, imu, i_pol, i_azi + integer :: legendre_mu_points, imu, ipol, iazi ! Call generic data gathering routine (will populate the metadata) call nuclidemg_init(this, node_xsdata) @@ -648,8 +648,8 @@ module nuclide_header call get_node_array(node_xsdata, "polar", this % polar) else dangle = PI / real(this % n_pol,8) - do i_pol = 1, this % n_pol - this % polar(i_pol) = (real(i_pol,8) - HALF) * dangle + do ipol = 1, this % n_pol + this % polar(ipol) = (real(ipol,8) - HALF) * dangle end do end if if (check_for_node(node_xsdata, "azimuthal")) then @@ -658,8 +658,8 @@ module nuclide_header call get_node_array(node_xsdata, "azimuthal", this % azimuthal) else dangle = TWO * PI / real(this % n_azi,8) - do i_azi = 1, this % n_azi - this % azimuthal(i_azi) = -PI + (real(i_azi,8) - HALF) * dangle + do iazi = 1, this % n_azi + this % azimuthal(iazi) = -PI + (real(iazi,8) - HALF) * dangle end do end if @@ -759,6 +759,9 @@ module nuclide_header ! Tabular_legendre tells us if we are to treat the provided ! Legendre polynomials as tabular data (if enable is true) or leaving ! them as Legendres (if enable is false, or the default) + + ! Set the default (leave as Legendre polynomials) + enable_leg_mu = .false. if (check_for_node(node_xsdata,"tabular_legendre")) then call get_node_ptr(node_xsdata,"tabular_legendre",node_legendre_mu) if (check_for_node(node_legendre_mu, "enable")) then @@ -771,9 +774,6 @@ module nuclide_header else call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) end if - else - ! Set the default (leave as Legendre polynomials) - enable_leg_mu = .false. end if ! Ok, so if we need to convert to a tabular form, get the user provided ! number of points @@ -828,6 +828,7 @@ module nuclide_header order = min(order_dim - 1, max_order) order_dim = order + 1 end if + allocate(temp_scatt(groups,groups,order_dim,this % n_azi,this % n_pol)) temp_scatt(:,:,:,:,:) = input_scatt(:,:,1:order_dim,:,:) @@ -838,6 +839,7 @@ module nuclide_header ! these legendres be converted to tabular form (note this is also ! the default behavior), convert that now. if (this % scatt_type == ANGLE_LEGENDRE .and. enable_leg_mu) then + ! Convert input parameters to what we need for the rest. this % scatt_type = ANGLE_TABULAR order_dim = legendre_mu_points @@ -845,8 +847,8 @@ module nuclide_header dmu = TWO / real(order - 1,8) allocate(scatt_coeffs(order_dim,groups,groups,this % n_azi,this % n_pol)) - do i_pol = 1, this % n_pol - do i_azi = 1, this % n_azi + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi do gin = 1, groups do gout = 1, groups norm = ZERO @@ -858,24 +860,24 @@ module nuclide_header else mu = -ONE + real(imu - 1,8) * dmu end if - scatt_coeffs(imu,gout,gin,i_azi,i_pol) = & - evaluate_legendre(temp_scatt(gout,gin,:,i_azi,i_pol),mu) + scatt_coeffs(imu,gout,gin,iazi,ipol) = & + evaluate_legendre(temp_scatt(gout,gin,:,iazi,ipol),mu) ! Ensure positivity of distribution - if (scatt_coeffs(imu,gout,gin,i_azi,i_pol) < ZERO) & - scatt_coeffs(imu,gout,gin,i_azi,i_pol) = ZERO + if (scatt_coeffs(imu,gout,gin,iazi,ipol) < ZERO) & + scatt_coeffs(imu,gout,gin,iazi,ipol) = ZERO ! And accrue the integral if (imu > 1) then norm = norm + HALF * dmu * & - (scatt_coeffs(imu-1,gout,gin,i_azi,i_pol) + & - scatt_coeffs(imu,gout,gin,i_azi,i_pol)) + (scatt_coeffs(imu-1,gout,gin,iazi,ipol) + & + scatt_coeffs(imu,gout,gin,iazi,ipol)) end if end do ! Now that we have the integral, lets ensure that the distribution ! is normalized such that it preserves the original scattering xs if (norm > ZERO) then - scatt_coeffs(:,gout,gin,i_azi,i_pol) = & - scatt_coeffs(:,gout,gin,i_azi,i_pol) * & - temp_scatt(gout,gin,1,i_azi,i_pol) / norm + scatt_coeffs(:,gout,gin,iazi,ipol) = & + scatt_coeffs(:,gout,gin,iazi,ipol) * & + temp_scatt(gout,gin,1,iazi,ipol) / norm end if end do end do @@ -884,14 +886,14 @@ module nuclide_header else ! Sticking with current representation, carry forward but change ! the array ordering - allocate(scatt_coeffs(order_dim,groups,groups,i_azi,i_pol)) - do i_pol = 1, this % n_pol - do i_azi = 1, this % n_azi + allocate(scatt_coeffs(order_dim,groups,groups,this % n_azi,this % n_pol)) + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi do gin = 1, groups do gout = 1, groups do l = 1, order_dim - scatt_coeffs(l,gout,gin,i_azi,i_pol) = & - temp_scatt(gout,gin,l,i_azi,i_pol) + scatt_coeffs(l,gout,gin,iazi,ipol) = & + temp_scatt(gout,gin,l,iazi,ipol) end do end do end do @@ -904,20 +906,20 @@ module nuclide_header end if allocate(this % scatter(this % n_azi, this % n_pol)) - do i_pol = 1, this % n_pol - do i_azi = 1, this % n_azi + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi ! Allocate and initialize our ScattData Object. if (this % scatt_type == ANGLE_HISTOGRAM) then - allocate(ScattDataHistogram :: this % scatter(i_azi,i_pol) % obj) + allocate(ScattDataHistogram :: this % scatter(iazi,ipol) % obj) else if (this % scatt_type == ANGLE_TABULAR) then - allocate(ScattDataTabular :: this % scatter(i_azi,i_pol) % obj) + allocate(ScattDataTabular :: this % scatter(iazi,ipol) % obj) else if (this % scatt_type == ANGLE_LEGENDRE) then - allocate(ScattDataLegendre :: this % scatter(i_azi,i_pol) % obj) + allocate(ScattDataLegendre :: this % scatter(iazi,ipol) % obj) end if ! Initialize the ScattData Object - call this % scatter(i_azi,i_pol) % obj % init(& - temp_mult(:,:,i_azi,i_pol), scatt_coeffs(:,:,:,i_azi,i_pol)) + call this % scatter(iazi,ipol) % obj % init(& + temp_mult(:,:,iazi,ipol), scatt_coeffs(:,:,:,iazi,ipol)) end do end do ! Deallocate temporaries for the next material @@ -930,10 +932,10 @@ module nuclide_header this % total = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) deallocate(temp_arr) else - do i_pol = 1, this % n_pol - do i_azi = 1, this % n_azi - this % total(:,i_azi,i_pol) = this % absorption(:,i_azi,i_pol) + & - this % scatter(i_azi,i_pol) % obj % scattxs(:) + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + this % total(:,iazi,ipol) = this % absorption(:,iazi,ipol) + & + this % scatter(iazi,ipol) % obj % scattxs(:) end do end do end if @@ -1143,7 +1145,7 @@ module nuclide_header integer :: unit_ ! unit to write to integer :: size_total, size_scattmat, size_mgxs - integer :: i_pol, i_azi, gin + integer :: ipol, iazi, gin ! set default unit for writing information if (present(unit)) then @@ -1159,15 +1161,15 @@ module nuclide_header ! Determine size of mgxs and scattering matrices size_scattmat = 0 - do i_pol = 1, this % n_pol - do i_azi = 1, this % n_azi - do gin = 1, size(this % scatter(i_azi,i_pol) % obj % energy) + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + do gin = 1, size(this % scatter(iazi,ipol) % obj % energy) size_scattmat = size_scattmat + & - 2 * size(this % scatter(i_azi,i_pol) % obj % energy(gin) % data) + & - size(this % scatter(i_azi,i_pol) % obj % dist(gin) % data) + 2 * size(this % scatter(iazi,ipol) % obj % energy(gin) % data) + & + size(this % scatter(iazi,ipol) % obj % dist(gin) % data) end do size_scattmat = size_scattmat + & - size(this % scatter(i_azi,i_pol) % obj % scattxs) + size(this % scatter(iazi,ipol) % obj % scattxs) end do end do size_scattmat = size_scattmat * 8 @@ -1198,7 +1200,7 @@ module nuclide_header ! NUCLIDE*_GET_XS Returns the requested data type !=============================================================================== - function nuclideiso_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & + function nuclideiso_get_xs(this, g, xstype, gout, uvw, mu, iazi, ipol) & result(xs) class(NuclideIso), intent(in) :: this integer, intent(in) :: g ! Incoming Energy group @@ -1206,8 +1208,8 @@ module nuclide_header integer, optional, intent(in) :: gout ! Outgoing Group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8), optional, intent(in) :: mu ! Change in angle - integer, optional, intent(in) :: i_azi ! Azimuthal Index - integer, optional, intent(in) :: i_pol ! Polar Index + integer, optional, intent(in) :: iazi ! Azimuthal Index + integer, optional, intent(in) :: ipol ! Polar Index real(8) :: xs ! Resultant xs xs = ZERO @@ -1249,7 +1251,7 @@ module nuclide_header end if end function nuclideiso_get_xs - function nuclideangle_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & + function nuclideangle_get_xs(this, g, xstype, gout, uvw, mu, iazi, ipol) & result(xs) class(NuclideAngle), intent(in) :: this integer, intent(in) :: g ! Incoming Energy group @@ -1257,11 +1259,11 @@ module nuclide_header integer, optional, intent(in) :: gout ! Outgoing Group real(8), optional, intent(in) :: mu ! Change in angle real(8), optional, intent(in) :: uvw(3) ! Requested Angle - integer, optional, intent(in) :: i_azi ! Azimuthal Index - integer, optional, intent(in) :: i_pol ! Polar Index + integer, optional, intent(in) :: iazi ! Azimuthal Index + integer, optional, intent(in) :: ipol ! Polar Index real(8) :: xs ! Resultant xs - integer :: i_azi_, i_pol_ + integer :: iazi_, ipol_ xs = ZERO @@ -1270,43 +1272,43 @@ module nuclide_header return end if - if (present(i_azi) .and. present(i_pol)) then - i_azi_ = i_azi - i_pol_ = i_pol + if (present(iazi) .and. present(ipol)) then + iazi_ = iazi + ipol_ = ipol else - call find_angle(this % polar, this % azimuthal, uvw, i_azi_, i_pol_) + call find_angle(this % polar, this % azimuthal, uvw, iazi_, ipol_) end if if (present(gout)) then select case(xstype) case('mult') - xs = this % scatter(i_azi_,i_pol_) % obj % mult(g) % data(gout) + xs = this % scatter(iazi_,ipol_) % obj % mult(g) % data(gout) case('nu_fission') - xs = this % nu_fission(gout,g,i_azi_,i_pol_) + xs = this % nu_fission(gout,g,iazi_,ipol_) case('chi') - xs = this % chi(gout,i_azi_,i_pol_) + xs = this % chi(gout,iazi_,ipol_) case('f_mu', 'f_mu/mult') - xs = this % scatter(i_azi_,i_pol_) % obj % calc_f(g,gout,mu) + xs = this % scatter(iazi_,ipol_) % obj % calc_f(g,gout,mu) if (xstype == 'f_mu/mult') then - xs = xs / this % scatter(i_azi_,i_pol_) % obj % mult(g) % data(gout) + xs = xs / this % scatter(iazi_,ipol_) % obj % mult(g) % data(gout) end if end select else select case(xstype) case('total') - xs = this % total(g,i_azi_,i_pol_) + xs = this % total(g,iazi_,ipol_) case('absorption') - xs = this % absorption(g,i_azi_,i_pol_) + xs = this % absorption(g,iazi_,ipol_) case('fission') - xs = this % fission(g,i_azi_,i_pol_) + xs = this % fission(g,iazi_,ipol_) case('k_fission') if (allocated(this % k_fission)) then - xs = this % k_fission(g,i_azi_,i_pol_) + xs = this % k_fission(g,iazi_,ipol_) end if case('chi') - xs = this % chi(g,i_azi_,i_pol_) + xs = this % chi(g,iazi_,ipol_) case('scatter') - xs = this % scatter(i_azi_,i_pol_) % obj % scattxs(g) + xs = this % scatter(iazi_,ipol_) % obj % scattxs(g) end select end if diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index cf965f397..dbbedc639 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -81,19 +81,22 @@ module scattdata_header procedure :: sample => scattdatalegendre_sample end type ScattDataLegendre - type, extends(ScattData) :: ScattDataHistogram - real(8), allocatable :: mu(:) ! Mu bins - real(8) :: dmu ! Mu spacing + type, extends(ScattData) :: ScattDataHistogram + real(8), allocatable :: mu(:) ! Mu bins + real(8) :: dmu ! Mu spacing + ! Histogram of f(mu) (dist has CDF) + type(Jagged2D), allocatable :: fmu(:) ! (Gin % data(Order/Nmu x Gout) contains procedure :: init => scattdatahistogram_init procedure :: calc_f => scattdatahistogram_calc_f procedure :: sample => scattdatahistogram_sample + procedure :: get_matrix => scattdatahistogram_get_matrix end type ScattDataHistogram - type, extends(ScattData) :: ScattDataTabular - real(8), allocatable :: mu(:) ! Mu bins - real(8) :: dmu ! Mu spacing - ! PDF of f(mu) + type, extends(ScattData) :: ScattDataTabular + real(8), allocatable :: mu(:) ! Mu bins + real(8) :: dmu ! Mu spacing + ! PDF of f(mu) (dist has CDF) type(Jagged2D), allocatable :: fmu(:) ! (Gin % data(Order/Nmu x Gout) contains procedure :: init => scattdatatabular_init @@ -276,15 +279,22 @@ contains this % mu(imu) = -ONE + real(imu - 1,8) * this % dmu end do - ! Best to integrate this histogram so we can avoid rejection sampling + ! Integrate this histogram so we can avoid rejection sampling while + ! also saving the original histogram in fmu + allocate(this % fmu(groups)) do gin = 1, groups + allocate(this % fmu(gin) % data(order, & + this % gmin(gin):this % gmax(gin))) do gout = this % gmin(gin), this % gmax(gin) + ! Store the histogram + this % fmu(gin) % data(:,gout) = coeffs(:,gout,gin) ! Integrate the histogram this % dist(gin) % data(1,gout) = this % dmu * coeffs(1,gout,gin) do imu = 2, order this % dist(gin) % data(imu,gout) = this % dmu * coeffs(imu,gout,gin) + & this % dist(gin) % data(imu - 1,gout) end do + ! Now make sure integral norms to zero norm = this % dist(gin) % data(order,gout) if (norm > ZERO) then @@ -423,14 +433,13 @@ contains integer :: imu ! Find mu bin - imu = floor((mu + ONE)/ this % dmu + ONE) - ! Adjust so interpolation works on the last bin if necessary - if (imu == size(this % dist, dim=1)) then - imu = imu - 1 + if (mu == ONE) then + imu = size(this % fmu(gin) % data,dim=1) + else + imu = floor((mu + ONE)/ this % dmu + ONE) end if - ! Use histogram interpolation to find f(mu) - f = this % dist(gin) % data(imu,gout) + f = this % fmu(gin) % data(imu,gout) end function scattdatahistogram_calc_f @@ -445,16 +454,16 @@ contains real(8) :: r ! Find mu bin - imu = floor((mu + ONE)/ this % dmu + ONE) - ! Adjust so interpolation works on the last bin if necessary - if (imu == size(this % dist, dim=1)) then - imu = imu - 1 + if (mu == ONE) then + imu = size(this % fmu(gin) % data,dim=1) - 1 + else + imu = floor((mu + ONE)/ this % dmu + ONE) end if ! Now interpolate to find f(mu) r = (mu - this % mu(imu)) / (this % mu(imu + 1) - this % mu(imu)) - f = (ONE - r) * this % dist(gin) % data(imu,gout) + & - r * this % dist(gin) % data(imu + 1,gout) + f = (ONE - r) * this % fmu(gin) % data(imu,gout) + & + r * this % fmu(gin) % data(imu + 1,gout) end function scattdatatabular_calc_f @@ -609,7 +618,7 @@ contains ! using ScattData's information of fmu/dist, energy, and scattxs !=============================================================================== - function scattdata_get_matrix(this, req_order) result(matrix) + pure function scattdata_get_matrix(this, req_order) result(matrix) class(ScattData), intent(in) :: this ! Scattering Object to work with integer, intent(in) :: req_order ! Requested order of matrix real(8), allocatable :: matrix(:,:,:) ! Resultant matrix just built @@ -633,7 +642,31 @@ contains end do end function scattdata_get_matrix - function scattdatatabular_get_matrix(this, req_order) result(matrix) + pure function scattdatahistogram_get_matrix(this, req_order) result(matrix) + class(ScattDataHistogram), intent(in) :: this ! Scattering Object to work with + integer, intent(in) :: req_order ! Requested order of matrix + real(8), allocatable :: matrix(:,:,:) ! Resultant matrix just built + + integer :: order, groups, gin, gout + + groups = size(this % energy) + order = min(req_order,size(this % dist(1) % data(:,1))) + + allocate(matrix(order,groups,groups)) + ! Initialize to 0; this way the zero entries in the dense matrix dont + ! need to be explicitly set, requiring a significant increase in the + ! lines of code. + matrix = ZERO + do gin = 1, groups + do gout = this % gmin(gin), this % gmax(gin) + matrix(:,gout,gin) = this % scattxs(gin) * & + this % energy(gin) % data(gout) * & + this % fmu(gin) % data(1:order,gout) + end do + end do + end function scattdatahistogram_get_matrix + + pure function scattdatatabular_get_matrix(this, req_order) result(matrix) class(ScattDataTabular), intent(in) :: this ! Scattering Object to work with integer, intent(in) :: req_order ! Requested order of matrix real(8), allocatable :: matrix(:,:,:) ! Resultant matrix just built From bfcb1753b28329d33c654ec5b5f96f1e7b7383b1 Mon Sep 17 00:00:00 2001 From: jingang Date: Tue, 8 Mar 2016 22:10:47 -0500 Subject: [PATCH 025/259] Changed some confusing names in module random_lcg --- src/cross_section.F90 | 4 ++-- src/eigenvalue.F90 | 4 ++-- src/physics.F90 | 4 ++-- src/random_lcg.F90 | 29 +++++++++++++++-------------- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 5ae113b00..cd22a8f05 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -10,7 +10,7 @@ module cross_section use material_header, only: Material use nuclide_header use particle_header, only: Particle - use random_lcg, only: prn, get_prn_ahead, prn_set_stream + use random_lcg, only: prn, future_prn, prn_set_stream use sab_header, only: SAlphaBeta use search, only: binary_search @@ -392,7 +392,7 @@ contains ! random number for the same nuclide at different temperatures, therefore ! preserving correlation of temperature in probability tables. call prn_set_stream(STREAM_URR_PTABLE) - r = get_prn_ahead(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) + r = future_prn(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) call prn_set_stream(STREAM_TRACKING) i_low = 1 diff --git a/src/eigenvalue.F90 b/src/eigenvalue.F90 index e735bc8d8..9befbe3c3 100644 --- a/src/eigenvalue.F90 +++ b/src/eigenvalue.F90 @@ -10,7 +10,7 @@ module eigenvalue use math, only: t_percentile use mesh, only: count_bank_sites use mesh_header, only: RegularMesh - use random_lcg, only: prn, set_particle_seed, prn_skip + use random_lcg, only: prn, set_particle_seed, advance_prn_seed use search, only: binary_search use string, only: to_str @@ -99,7 +99,7 @@ contains call set_particle_seed(int((current_batch - 1)*gen_per_batch + & current_gen,8)) - call prn_skip(start) + call advance_prn_seed(start) ! Determine how many fission sites we need to sample from the source bank ! and the probability for selecting a site. diff --git a/src/physics.F90 b/src/physics.F90 index faeec1b8a..6fda4c393 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -16,7 +16,7 @@ module physics use particle_header, only: Particle use particle_restart_write, only: write_particle_restart use physics_common - use random_lcg, only: prn, prn_skip, prn_set_stream + use random_lcg, only: prn, advance_prn_seed, prn_set_stream use search, only: binary_search use secondary_uncorrelated, only: UncorrelatedAngleEnergy use string, only: to_str @@ -61,7 +61,7 @@ contains ! Advance URR seed stream 'N' times after energy changes if (p % E /= p % last_E) then call prn_set_stream(STREAM_URR_PTABLE) - call prn_skip(n_nuc_zaid_total) + call advance_prn_seed(n_nuc_zaid_total) call prn_set_stream(STREAM_TRACKING) endif diff --git a/src/random_lcg.F90 b/src/random_lcg.F90 index 4e98a0663..08f1034ab 100644 --- a/src/random_lcg.F90 +++ b/src/random_lcg.F90 @@ -24,10 +24,10 @@ module random_lcg !$omp threadprivate(prn_seed, stream) public :: prn - public :: get_prn_ahead + public :: future_prn public :: initialize_prng public :: set_particle_seed - public :: prn_skip + public :: advance_prn_seed public :: prn_set_stream public :: STREAM_TRACKING, STREAM_TALLIES @@ -54,19 +54,19 @@ contains end function prn !=============================================================================== -! GET_PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from +! FUTURE_PRN generates a pseudo-random number which is 'n' times ahead from the ! current seed. !=============================================================================== - function get_prn_ahead(n) result(pseudo_rn) + function future_prn(n) result(pseudo_rn) integer(8), intent(in) :: n ! number of prns to skip real(8) :: pseudo_rn - pseudo_rn = prn_skip_ahead(n, prn_seed(stream)) * prn_norm + pseudo_rn = future_seed(n, prn_seed(stream)) * prn_norm - end function get_prn_ahead + end function future_prn !=============================================================================== ! INITIALIZE_PRNG sets up the random number generator, determining the seed and @@ -106,31 +106,32 @@ contains integer :: i do i = 1, N_STREAMS - prn_seed(i) = prn_skip_ahead(id*prn_stride, prn_seed0 + i - 1) + prn_seed(i) = future_seed(id*prn_stride, prn_seed0 + i - 1) end do end subroutine set_particle_seed !=============================================================================== -! PRN_SKIP advances the random number seed 'n' times from the current seed +! ADVANCE_PRN_SEED advances the random number seed 'n' times from the current +! seed. !=============================================================================== - subroutine prn_skip(n) + subroutine advance_prn_seed(n) integer(8), intent(in) :: n ! number of seeds to skip - prn_seed(stream) = prn_skip_ahead(n, prn_seed(stream)) + prn_seed(stream) = future_seed(n, prn_seed(stream)) - end subroutine prn_skip + end subroutine advance_prn_seed !=============================================================================== -! PRN_SKIP_AHEAD advances the random number seed 'skip' times. This is usually +! FUTURE_SEED advances the random number seed 'skip' times. This is usually ! used to skip a fixed number of random numbers (the stride) so that a given ! particle always has the same starting seed regardless of how many processors ! are used !=============================================================================== - function prn_skip_ahead(n, seed) result(new_seed) + function future_seed(n, seed) result(new_seed) integer(8), intent(in) :: n ! number of seeds to skip integer(8), intent(in) :: seed ! original seed @@ -182,7 +183,7 @@ contains ! With G and C, we can now find the new seed new_seed = iand(g_new*seed + c_new, prn_mask) - end function prn_skip_ahead + end function future_seed !=============================================================================== ! PRN_SET_STREAM changes the random number stream. If random numbers are needed From b8c1ab68e90b794c1789996045273ba5459be4e4 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 8 Mar 2016 21:54:07 -0600 Subject: [PATCH 026/259] Introduce CheckedList for type-checking Tally attributes that are lists --- openmc/checkvalue.py | 56 ++++++++++++++++++++++++++++++++++++++++++-- openmc/tallies.py | 34 +++++++++++++++------------ 2 files changed, 73 insertions(+), 17 deletions(-) diff --git a/openmc/checkvalue.py b/openmc/checkvalue.py index 0e9dc9ef4..53d77036a 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -50,8 +50,13 @@ def check_type(name, value, expected_type, expected_iter_type=None): """ if not _isinstance(value, expected_type): - msg = 'Unable to set "{0}" to "{1}" which is not of type "{2}"'.format( - name, value, expected_type.__name__) + if isinstance(expected_type, Iterable): + msg = 'Unable to set "{0}" to "{1}" which is not one of the ' \ + 'following types: "{2}"'.format(name, value, ', '.join( + [t.__name__ for t in expected_type])) + else: + msg = 'Unable to set "{0}" to "{1}" which is not of type "{2}"'.format( + name, value, expected_type.__name__) raise ValueError(msg) if expected_iter_type: @@ -251,3 +256,50 @@ def check_greater_than(name, value, minimum, equality=False): msg = 'Unable to set "{0}" to "{1}" since it is less than ' \ 'or equal to "{2}"'.format(name, value, minimum) raise ValueError(msg) + + +class CheckedList(list): + """A list for which each element is type-checked as it's added + + Parameters + ---------- + expected_type : type or Iterable of type + Type(s) which each element should be + name : str + Name of data being checked + items : Iterable, optional + Items to initialize the list with + + """ + + def __init__(self, expected_type, name, items=[]): + self.expected_type = expected_type + self.name = name + for item in items: + self.append(item) + + def append(self, item): + """Append item to list + + Parameters + ---------- + item : object + Item to append + + """ + check_type(self.name, item, self.expected_type) + super(CheckedList, self).append(item) + + def insert(self, index, item): + """Insert item before index + + Parameters + ---------- + index : int + Index in list + item : object + Item to insert + + """ + check_type(self.name, item, self.expected_type) + super(CheckedList, self).insert(index, item) diff --git a/openmc/tallies.py b/openmc/tallies.py index 343062aa8..9d6ed4b7f 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -33,6 +33,12 @@ AUTO_TALLY_ID = 10000 # specified axis. _PRODUCT_TYPES = ['tensor', 'entrywise'] +# The following indicate acceptable types when setting Tally.scores, +# Tally.nuclides, and Tally.filters +_SCORE_CLASSES = (basestring, CrossScore, AggregateScore) +_NUCLIDE_CLASSES = (basestring, Nuclide, CrossNuclide, AggregateNuclide) +_FILTER_CLASSES = (Filter, CrossFilter, AggregateFilter) + def reset_auto_tally_id(): global AUTO_TALLY_ID @@ -103,11 +109,11 @@ class Tally(object): # Initialize Tally class attributes self.id = tally_id self.name = name - self._filters = [] - self._nuclides = [] - self._scores = [] + self._filters = cv.CheckedList(_FILTER_CLASSES, 'tally filters') + self._nuclides = cv.CheckedList(_NUCLIDE_CLASSES, 'tally nuclides') + self._scores = cv.CheckedList(_SCORE_CLASSES, 'tally scores') self._estimator = None - self._triggers = [] + self._triggers = cv.CheckedList(Trigger, 'tally triggers') self._num_realizations = 0 self._with_summary = False @@ -426,8 +432,8 @@ class Tally(object): @triggers.setter def triggers(self, triggers): - cv.check_type('tally triggers', trigger, MutableSequence, Trigger) - self._triggers = triggers + cv.check_type('tally triggers', triggers, MutableSequence) + self._triggers = cv.CheckedList(Trigger, 'tally triggers', triggers) def add_trigger(self, trigger): """Add a tally trigger to the tally @@ -470,8 +476,7 @@ class Tally(object): @filters.setter def filters(self, filters): - cv.check_type('tally filters', filters, MutableSequence, - (Filter, CrossFilter, AggregateFilter)) + cv.check_type('tally filters', filters, MutableSequence) # If the filter is already in the Tally, raise an error for i, f in enumerate(filters[:-1]): @@ -481,12 +486,11 @@ class Tally(object): 'Python API'.format(f, self.id) raise ValueError(msg) - self._filters = filters + self._filters = cv.CheckedList(_FILTER_CLASSES, 'tally filters', filters) @nuclides.setter def nuclides(self, nuclides): - cv.check_type('tally nuclides', nuclides, MutableSequence, - (basestring, Nuclide, CrossNuclide, AggregateNuclide)) + cv.check_type('tally nuclides', nuclides, MutableSequence) # If the nuclide is already in the Tally, raise an error for i, nuclide in enumerate(nuclides[:-1]): @@ -496,12 +500,12 @@ class Tally(object): 'Python API'.format(nuclide, self.id) raise ValueError(msg) - self._nuclides = nuclides + self._nuclides = cv.CheckedList(_NUCLIDE_CLASSES, 'tally nuclides', + nuclides) @scores.setter def scores(self, scores): - cv.check_type('tally scores', scores, MutableSequence, - (basestring, CrossScore, AggregateScore)) + cv.check_type('tally scores', scores, MutableSequence) for i, score in enumerate(scores[:-1]): # If the score is already in the Tally, raise an error @@ -515,7 +519,7 @@ class Tally(object): if isinstance(score, basestring): scores[i] = score.strip() - self._scores = scores + self._scores = cv.CheckedList(_SCORE_CLASSES, 'tally scores', scores) def add_filter(self, new_filter): """Add a filter to the tally From 809eff970a85ae8ae2ae286a6217a28015893880 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 9 Mar 2016 08:25:47 -0600 Subject: [PATCH 027/259] Respond to @wbinventor comments on #593 --- .../pythonapi/examples/tally-arithmetic.ipynb | 12 ++--- openmc/mgxs/mgxs.py | 6 +-- openmc/tallies.py | 48 +++++++++---------- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index d1325e487..bbadd1ac4 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -418,15 +418,15 @@ "\n", "# Instantiate flux Tally in moderator and fuel\n", "tally = openmc.Tally(name='flux')\n", - "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]),\n", - " energy_filter]\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id])]\n", + "tally.filters.append(energy_filter)\n", "tally.scores = ['flux']\n", "tallies_file.add_tally(tally)\n", "\n", "# Instantiate reaction rate Tally in fuel\n", "tally = openmc.Tally(name='fuel rxn rates')\n", - "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id]),\n", - " energy_filter]\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id])]\n", + "tally.filters.append(energy_filter)\n", "tally.scores = ['nu-fission', 'scatter']\n", "tally.nuclides = [u238, u235]\n", "tallies_file.add_tally(tally)\n", @@ -516,8 +516,8 @@ "\n", "# Instantiate flux Tally in moderator and fuel\n", "tally = openmc.Tally(name='need-to-slice')\n", - "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]),\n", - " energy_filter]\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id])]\n", + "tally.filters.append(energy_filter)\n", "tally.scores = ['nu-fission', 'scatter']\n", "tally.nuclides = [h1, u238]\n", "tallies_file.add_tally(tally)" diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index ad987d70f..68d34dce3 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -510,14 +510,14 @@ class MGXS(object): # Create each Tally needed to compute the multi group cross section for score, key, filters in zip(scores, keys, all_filters): self.tallies[key] = openmc.Tally(name=self.name) - self.tallies[key].scores.append(score) + self.tallies[key].scores = [score] self.tallies[key].estimator = estimator - self.tallies[key].filters.append(domain_filter) + self.tallies[key].filters = [domain_filter] # If a tally trigger was specified, add it to each tally if self.tally_trigger: trigger_clone = copy.deepcopy(self.tally_trigger) - trigger_clone.scores.append(score) + trigger_clone.scores = [score] self.tallies[key].triggers.append(trigger_clone) # Add all non-domain specific Filters (e.g., 'energy') to the Tally diff --git a/openmc/tallies.py b/openmc/tallies.py index 9d6ed4b7f..d56512155 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -449,9 +449,9 @@ class Tally(object): """ - warnings.warn("Tally.add_trigger(...) has been deprecated and may be " - "removed in a future version. Tally triggers should be " - "defined using the triggers property directly.", + warnings.warn('Tally.add_trigger(...) has been deprecated and may be ' + 'removed in a future version. Tally triggers should be ' + 'defined using the triggers property directly.', DeprecationWarning) self.triggers.append(trigger) @@ -540,9 +540,9 @@ class Tally(object): """ - warnings.warn("Tally.add_filter(...) has been deprecated and may be " - "removed in a future version. Tally filters should be " - "defined using the filters property directly.", + warnings.warn('Tally.add_filter(...) has been deprecated and may be ' + 'removed in a future version. Tally filters should be ' + 'defined using the filters property directly.', DeprecationWarning) self.filters.append(new_filter) @@ -565,9 +565,9 @@ class Tally(object): """ - warnings.warn("Tally.add_nuclide(...) has been deprecated and may be " - "removed in a future version. Tally nuclides should be " - "defined using the nuclides property directly.", + warnings.warn('Tally.add_nuclide(...) has been deprecated and may be ' + 'removed in a future version. Tally nuclides should be ' + 'defined using the nuclides property directly.', DeprecationWarning) self.nuclides.append(nuclide) @@ -589,9 +589,9 @@ class Tally(object): """ - warnings.warn("Tally.add_score(...) has been deprecated and may be " - "removed in a future version. Tally scores should be " - "defined using the scores property directly.", + warnings.warn('Tally.add_score(...) has been deprecated and may be ' + 'removed in a future version. Tally scores should be ' + 'defined using the scores property directly.', DeprecationWarning) self.scores.append(score) @@ -2324,9 +2324,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - new_tally.filters = self.filters - new_tally.nuclides = self.nuclides - new_tally.scores = self.scores + new_tally.filters = copy.deepcopy(self.filters) + new_tally.nuclides = copy.deepcopy(self.nuclides) + new_tally.scores = copy.deepcopy(self.scores) # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2396,9 +2396,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - new_tally.filters = self.filters - new_tally.nuclides = self.nuclides - new_tally.scores = self.scores + new_tally.filters = copy.deepcopy(self.filters) + new_tally.nuclides = copy.deepcopy(self.nuclides) + new_tally.scores = copy.deepcopy(self.scores) # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2468,9 +2468,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - new_tally.filters = self.filters - new_tally.nuclides = self.nuclides - new_tally.scores = self.scores + new_tally.filters = copy.deepcopy(self.filters) + new_tally.nuclides = copy.deepcopy(self.nuclides) + new_tally.scores = copy.deepcopy(self.scores) # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2544,9 +2544,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - new_tally.filters = self.filters - new_tally.nuclides = self.nuclides - new_tally.scores = self.scores + new_tally.filters = copy.deepcopy(self.filters) + new_tally.nuclides = copy.deepcopy(self.nuclides) + new_tally.scores = copy.deepcopy(self.scores) # If original tally was sparse, sparsify the exponentiated tally new_tally.sparse = self.sparse From 0138f0c4a26f8c54809de51e30344ef15f1d8642 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 9 Mar 2016 08:47:14 -0600 Subject: [PATCH 028/259] Indicate minimum version of pandas in setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 87fdff68c..e66b0b7a0 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ if have_setuptools: # Optional dependencies 'extras_require': { - 'pandas': ['pandas'], + 'pandas': ['pandas>=0.17.0'], 'sparse' : ['scipy'], 'vtk': ['vtk', 'silomesh'], 'validate': ['lxml'] From 7c2890baec4e3a873f45be54c9d89a3cb703ec64 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 9 Mar 2016 08:50:38 -0600 Subject: [PATCH 029/259] Change a few double quotes to single quotes in openmc.trigger --- openmc/trigger.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/trigger.py b/openmc/trigger.py index ce7d432c2..ad2e9d681 100644 --- a/openmc/trigger.py +++ b/openmc/trigger.py @@ -117,9 +117,9 @@ class Trigger(object): """ - warnings.warn("Trigger.add_score(...) has been deprecated and may be " - "removed in a future version. Tally trigger scores should " - "be defined using the scores property directly.", + warnings.warn('Trigger.add_score(...) has been deprecated and may be ' + 'removed in a future version. Tally trigger scores should ' + 'be defined using the scores property directly.', DeprecationWarning) self.scores.append(score) From ff49b0eaac50038c4faf79b3209516b3262b442d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 9 Mar 2016 08:53:22 -0600 Subject: [PATCH 030/259] deepcopy some more filters, scores, nuclides --- openmc/tallies.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 73a69bbcf..1e47811e3 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2504,9 +2504,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - new_tally.filters = self.filters - new_tally.nuclides = self.nuclides - new_tally.scores = self.scores + new_tally.filters = copy.deepcopy(self.filters) + new_tally.nuclides = copy.deepcopy(self.nuclides) + new_tally.scores = copy.deepcopy(self.scores) # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse From a6d153d3949983dae42d51c5fbe632b52b31a4ef Mon Sep 17 00:00:00 2001 From: jingang Date: Wed, 9 Mar 2016 12:49:52 -0500 Subject: [PATCH 031/259] Remove unused variable --- src/cross_section.F90 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index cd22a8f05..2f2e7fd7e 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -354,19 +354,17 @@ contains integer, intent(in) :: i_nuclide ! index into nuclides array real(8), intent(in) :: E ! energy - integer :: i ! loop index integer :: i_energy ! index for energy integer :: i_low ! band index at lower bounding energy integer :: i_up ! band index at upper bounding energy - integer :: same_nuc_idx ! index of same nuclide real(8) :: f ! interpolation factor real(8) :: r ! pseudo-random number real(8) :: elastic ! elastic cross section real(8) :: capture ! (n,gamma) cross section real(8) :: fission ! fission cross section real(8) :: inelastic ! inelastic cross section - type(UrrData), pointer :: urr - type(NuclideCE), pointer :: nuc + type(UrrData), pointer :: urr + type(NuclideCE), pointer :: nuc micro_xs(i_nuclide) % use_ptable = .true. From a5c6a940991bcf5b99fcb1dad98c5b47d7879708 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 9 Mar 2016 18:23:46 -0500 Subject: [PATCH 032/259] Add resonance scattering to the Python API Also fix the resonance scattering test to have thermal neutrons that actually use the RS models. Also fix a typo in settings.xml that didn't allow fixed source calculations. --- openmc/settings.py | 136 +++++++++++++++++- tests/test_resonance_scattering/geometry.xml | 8 -- .../test_resonance_scattering/inputs_true.dat | 1 + tests/test_resonance_scattering/materials.xml | 9 -- .../results_true.dat | 2 +- tests/test_resonance_scattering/settings.xml | 27 ---- .../test_resonance_scattering.py | 76 +++++++++- 7 files changed, 211 insertions(+), 48 deletions(-) delete mode 100644 tests/test_resonance_scattering/geometry.xml create mode 100644 tests/test_resonance_scattering/inputs_true.dat delete mode 100644 tests/test_resonance_scattering/materials.xml delete mode 100644 tests/test_resonance_scattering/settings.xml diff --git a/openmc/settings.py b/openmc/settings.py index cb0207e71..01e665c6e 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -9,6 +9,7 @@ import numpy as np from openmc.clean_xml import * from openmc.checkvalue import (check_type, check_length, check_value, check_greater_than, check_less_than) +from openmc.nuclide import Nuclide from openmc.source import Source if sys.version_info[0] >= 3: @@ -125,6 +126,8 @@ class SettingsFile(object): Coordinates of the lower-left point of the UFS mesh ufs_upper_right : tuple or list Coordinates of the upper-right point of the UFS mesh + resonance_scattering : ResonanceScattering or iterable thereof + The elastic scattering model to use for resonant isotopes. """ @@ -205,6 +208,8 @@ class SettingsFile(object): self._run_mode_subelement = None self._source_element = None + self._resonance_scattering = None + @property def run_mode(self): return self._run_mode @@ -393,9 +398,13 @@ class SettingsFile(object): def dd_count_interactions(self): return self._dd_count_interactions + @property + def resonance_scattering(self): + return self._resonance_scattering + @run_mode.setter def run_mode(self, run_mode): - if 'run_mode' not in ['eigenvalue', 'fixed source']: + if run_mode not in ['eigenvalue', 'fixed source']: msg = 'Unable to set run mode to "{0}". Only "eigenvalue" ' \ 'and "fixed source" are supported."'.format(run_mode) raise ValueError(msg) @@ -764,6 +773,15 @@ class SettingsFile(object): self._dd_count_interactions = interactions + @resonance_scattering.setter + def resonance_scattering(self, res): + if isinstance(res, Iterable): + check_type('resonance_scattering', res, Iterable, + ResonanceScattering) + else: + check_type('resonance_scattering', res, ResonanceScattering) + self._resonance_scattering = res + def _create_run_mode_subelement(self): if self.run_mode == 'eigenvalue': @@ -1043,6 +1061,36 @@ class SettingsFile(object): subelement = ET.SubElement(element, "count_interactions") subelement.text = str(self._dd_count_interactions).lower() + def _create_resonance_scattering_element(self): + if self.resonance_scattering is None: return + + element = ET.SubElement(self._settings_file, "resonance_scattering") + + # Create an iterable version of resonance_scattering + if isinstance(self.resonance_scattering, Iterable): + res = self.resonance_scattering + else: + res = [self.resonance_scattering] + + for r in res: + if r.nuclide.name != r.nuclide_0K.name: + raise ValueError("The `nuclide` and `nuclide_0K` attributes of " + "a ResonantScattering object must have identical names.") + scatterer = ET.SubElement(element, "scatterer") + subelement = ET.SubElement(scatterer, 'nuclide') + subelement.text = r.nuclide.name + subelement = ET.SubElement(scatterer, 'method') + subelement.text = r.method + subelement = ET.SubElement(scatterer, 'xs_label') + subelement.text = str(r.nuclide.zaid) + '.' + str(r.nuclide.xs) + subelement = ET.SubElement(scatterer, 'xs_label_0K') + subelement.text = str(r.nuclide_0K.zaid) + '.' \ + + str(r.nuclide_0K.xs) + subelement = ET.SubElement(scatterer, 'E_min') + subelement.text = str(r.E_min) + subelement = ET.SubElement(scatterer, 'E_max') + subelement.text = str(r.E_max) + def export_to_xml(self): """Create a settings.xml file that can be used for a simulation. @@ -1079,6 +1127,7 @@ class SettingsFile(object): self._create_track_subelement() self._create_ufs_subelement() self._create_dd_subelement() + self._create_resonance_scattering_element() # Clean the indentation in the file to be user-readable clean_xml_indentation(self._settings_file) @@ -1087,3 +1136,88 @@ class SettingsFile(object): tree = ET.ElementTree(self._settings_file) tree.write("settings.xml", xml_declaration=True, encoding='utf-8', method="xml") + + +class ResonanceScattering(object): + """Specification of the elastic scattering model for resonant isotopes. + + Attributes + ---------- + nuclide : openmc.nuclide.Nuclide + The nuclide affected by this resonance scattering treatment. + nuclide_0K : openmc.nuclide.Nuclide + This should be the same isotope as `nuclide`, but it should have an + `xs` attribute that identifies 0 Kelvin data. + method : str + The method used to sample outgoing scattering energies. Valid options + are 'ARES', 'CXS' (constant cross section), 'DBRC' (Doppler broadening + rejection correction), and 'WCM' (weight correction method). + E_min : float + The minimum energy above which the specified method is applied. By + default, CXS will be used below `E_min`. + E_max : float + The maximum energy below which the specified method is applied. By + default, the asymptotic target-at-rest model is applied above `E_max`. + + """ + + def __init__(self): + self._nuclide = None + self._nuclide_0K = None + self._method = None + self._E_min = None + self._E_max = None + + @property + def nuclide(self): + return self._nuclide + + @property + def nuclide_0K(self): + return self._nuclide_0K + + @property + def method(self): + return self._method + + @property + def E_min(self): + return self._E_min + + @property + def E_max(self): + return self._E_max + + @nuclide.setter + def nuclide(self, nuc): + check_type('nuclide', nuc, Nuclide) + if nuc.zaid == None: raise ValueError("The `nuclide` must have an " + "explicitly defined `zaid` attribute.") + self._nuclide = nuc + + @nuclide_0K.setter + def nuclide_0K(self, nuc): + check_type('nuclide_0K', nuc, Nuclide) + if nuc.zaid == None: raise ValueError("The `nuclide_0K` must have an " + "explicitly defined `zaid` attribute.") + self._nuclide_0K = nuc + + @method.setter + def method(self, m): + check_type('method', m, basestring) + if m not in ('ARES', 'CXS', 'DBRC', 'WCM'): + raise ValueError("Invalid resonance scattering method specified. " + "Valid methods are 'ARES', 'CXS', 'DBRC', and 'WCM'.") + self._method = m + + @E_min.setter + def E_min(self, E): + check_type('E_min', E, Real) + check_greater_than('E_min', E, 0, True) + self._E_min = E + + @E_max.setter + def E_max(self, E): + check_type('E_max', E, Real) + check_greater_than('E_max', E, 0, True) + self._E_max = E diff --git a/tests/test_resonance_scattering/geometry.xml b/tests/test_resonance_scattering/geometry.xml deleted file mode 100644 index bc56030e1..000000000 --- a/tests/test_resonance_scattering/geometry.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/tests/test_resonance_scattering/inputs_true.dat b/tests/test_resonance_scattering/inputs_true.dat new file mode 100644 index 000000000..f2a875c7e --- /dev/null +++ b/tests/test_resonance_scattering/inputs_true.dat @@ -0,0 +1 @@ +ece83bb075ed8144af89ce7cebf1577dcb2489d2e9ce4afbe61a3e4398837e7a9aaa2ae0cea0a6542f51ca5e0d119b570c675ed1dca0d74237cd5fdce0b606a3 \ No newline at end of file diff --git a/tests/test_resonance_scattering/materials.xml b/tests/test_resonance_scattering/materials.xml deleted file mode 100644 index 52a8c04be..000000000 --- a/tests/test_resonance_scattering/materials.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/tests/test_resonance_scattering/results_true.dat b/tests/test_resonance_scattering/results_true.dat index a649013c0..e7056e4fa 100644 --- a/tests/test_resonance_scattering/results_true.dat +++ b/tests/test_resonance_scattering/results_true.dat @@ -1,2 +1,2 @@ k-combined: -6.842159E-02 8.481029E-04 +1.440556E+00 6.383274E-02 diff --git a/tests/test_resonance_scattering/settings.xml b/tests/test_resonance_scattering/settings.xml deleted file mode 100644 index 7ce4f23ac..000000000 --- a/tests/test_resonance_scattering/settings.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - U-238 - cxs - 92238.71c - 92238.71c - 5.0e-6 - 40.0e-6 - - - - - 10 - 5 - 1000 - - - - - -4 -4 -4 4 4 4 - - - - diff --git a/tests/test_resonance_scattering/test_resonance_scattering.py b/tests/test_resonance_scattering/test_resonance_scattering.py index 2a595f3e6..04a2916a3 100644 --- a/tests/test_resonance_scattering/test_resonance_scattering.py +++ b/tests/test_resonance_scattering/test_resonance_scattering.py @@ -3,9 +3,81 @@ import os import sys sys.path.insert(0, os.pardir) -from testing_harness import TestHarness +from testing_harness import TestHarness, PyAPITestHarness +import openmc + + +class ResonanceScatteringTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Materials + mat = openmc.Material(material_id=1) + mat.set_density('g/cc', 1.0) + mat.add_nuclide('U-238', 1.0) + mat.add_nuclide('U-235', 0.02) + mat.add_nuclide('Pu-239', 0.02) + mat.add_nuclide('H-1', 20.0) + + mats_file = openmc.MaterialsFile() + mats_file.default_xs = '71c' + mats_file.add_material(mat) + mats_file.export_to_xml() + + # Geometry + dumb_surface = openmc.XPlane(x0=100) + dumb_surface.boundary_type = 'reflective' + + c1 = openmc.Cell(cell_id=1) + c1.fill = mat + c1.region = -dumb_surface + + root_univ = openmc.Universe(universe_id=0) + root_univ.add_cell(c1) + + geometry = openmc.Geometry() + geometry.root_universe = root_univ + geo_file = openmc.GeometryFile() + geo_file.geometry = geometry + geo_file.export_to_xml() + + # Settings + nuclide = openmc.Nuclide('U-238', '71c') + nuclide.zaid = 92238 + res_scatt_dbrc = openmc.ResonanceScattering() + res_scatt_dbrc.nuclide = nuclide + res_scatt_dbrc.nuclide_0K = nuclide # This is a bad idea! Just for tests + res_scatt_dbrc.method = 'DBRC' + res_scatt_dbrc.E_min = 1e-6 + res_scatt_dbrc.E_max = 210e-6 + + nuclide = openmc.Nuclide('U-235', '71c') + nuclide.zaid = 92235 + res_scatt_wcm = openmc.ResonanceScattering() + res_scatt_wcm.nuclide = nuclide + res_scatt_wcm.nuclide_0K = nuclide + res_scatt_wcm.method = 'WCM' + res_scatt_wcm.E_min = 1e-6 + res_scatt_wcm.E_max = 210e-6 + + nuclide = openmc.Nuclide('Pu-239', '71c') + nuclide.zaid = 94239 + res_scatt_ares = openmc.ResonanceScattering() + res_scatt_ares.nuclide = nuclide + res_scatt_ares.nuclide_0K = nuclide + res_scatt_ares.method = 'ARES' + res_scatt_ares.E_min = 1e-6 + res_scatt_ares.E_max = 210e-6 + + sets_file = openmc.SettingsFile() + sets_file.batches = 10 + sets_file.inactive = 5 + sets_file.particles = 1000 + sets_file.source = openmc.source.Source( + space=openmc.stats.Box([-4, -4, -4], [4, 4, 4])) + sets_file.resonance_scattering = [res_scatt_dbrc, res_scatt_wcm, + res_scatt_ares] + sets_file.export_to_xml() if __name__ == '__main__': - harness = TestHarness('statepoint.10.*') + harness = ResonanceScatteringTestHarness('statepoint.10.*') harness.main() From 8088eda6fd4bcc19f37c291b7d087b1cc4dd20c2 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 9 Mar 2016 20:01:47 -0500 Subject: [PATCH 033/259] Removing need to have coeffs (inout) in the scattdata_init routines --- src/scattdata_header.F90 | 76 ++++++++++++++++++++++++---------------- 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index dbbedc639..955e66783 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -49,7 +49,7 @@ module scattdata_header import ScattData class(ScattData), intent(inout) :: this ! Scattering Object to work with real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(inout) :: coeffs(:,:,:) ! Coefficients to use + real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use end subroutine scattdata_init_ pure function scattdata_calc_f_(this, gin, gout, mu) result(f) @@ -169,31 +169,36 @@ contains subroutine scattdatalegendre_init(this, mult, coeffs) class(ScattDataLegendre), intent(inout) :: this ! Object to work on real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(inout) :: coeffs(:,:,:) ! Coefficients to use + real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use real(8) :: dmu, mu, f, norm integer :: imu, Nmu, gout, gin, groups, order real(8), allocatable :: energy(:,:) + real(8), allocatable :: matrix(:,:,:) groups = size(coeffs,dim=3) order = size(coeffs,dim=1) - ! Get scattxs value first before anything happens to coeffs + ! make a copy of coeffs that we can use to extract data and normalize + allocate(matrix(order,groups,groups)) + matrix = coeffs + + ! Get scattxs value allocate(this % scattxs(groups)) - ! Get this by summing the now un-normalized P0 coefficient in coeffs + ! Get this by summing the un-normalized P0 coefficient in matrix ! over all outgoing groups - this % scattxs = sum(coeffs(1,:,:),dim=1) + this % scattxs = sum(matrix(1,:,:),dim=1) allocate(energy(groups,groups)) energy = ZERO - ! Build energy transfer probability matrix from data in coeffs - ! while also normalizing coeffs itself (making CDF of f(mu=1)=1) + ! Build energy transfer probability matrix from data in matrix + ! while also normalizing matrix itself (making CDF of f(mu=1)=1) do gin = 1, groups do gout = 1, groups - norm = coeffs(1,gout,gin) + norm = matrix(1,gout,gin) energy(gout,gin) = norm if (norm /= ZERO) then - coeffs(:,gout,gin) = coeffs(:,gout,gin) / norm + matrix(:,gout,gin) = matrix(:,gout,gin) / norm end if end do end do @@ -201,10 +206,10 @@ contains call scattdata_init(this, order, energy, mult) allocate(this % max_val(groups)) - ! Set dist values from coeffs and initialize max_val + ! Set dist values from matrix and initialize max_val do gin = 1, groups do gout = this % gmin(gin), this % gmax(gin) - this % dist(gin) % data(:,gout) = coeffs(:,gout,gin) + this % dist(gin) % data(:,gout) = matrix(:,gout,gin) end do allocate(this % max_val(gin) % data(this % gmin(gin):this % gmax(gin))) this % max_val(gin) % data = ZERO @@ -240,32 +245,37 @@ contains subroutine scattdatahistogram_init(this, mult, coeffs) class(ScattDataHistogram), intent(inout) :: this ! Object to work on - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(inout) :: coeffs(:,:,:) ! Coefficients to use + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use integer :: imu, gin, gout, groups, order real(8) :: norm real(8), allocatable :: energy(:,:) + real(8), allocatable :: matrix(:,:,:) groups = size(coeffs,dim=3) order = size(coeffs,dim=1) - ! Get scattxs value first before anything happens to coeffs + ! make a copy of coeffs that we can use to extract data and normalize + allocate(matrix(order,groups,groups)) + matrix = coeffs + + ! Get scattxs value allocate(this % scattxs(groups)) - ! Get this by summing the now un-normalized P0 coefficient in coeffs + ! Get this by summing the un-normalized P0 coefficient in matrix ! over all outgoing groups - this % scattxs = sum(sum(coeffs(:,:,:),dim=1),dim=1) + this % scattxs = sum(sum(matrix(:,:,:),dim=1),dim=1) allocate(energy(groups,groups)) energy = ZERO - ! Build energy transfer probability matrix from data in coeffs - ! while also normalizing coeffs itself (making CDF of f(mu=1)=1) + ! Build energy transfer probability matrix from data in matrix + ! while also normalizing matrix itself (making CDF of f(mu=1)=1) do gin = 1, groups do gout = 1, groups - norm = sum(coeffs(:,gout,gin)) + norm = sum(matrix(:,gout,gin)) energy(gout,gin) = norm if (norm /= ZERO) then - coeffs(:,gout,gin) = coeffs(:,gout,gin) / norm + matrix(:,gout,gin) = matrix(:,gout,gin) / norm end if end do end do @@ -287,11 +297,11 @@ contains this % gmin(gin):this % gmax(gin))) do gout = this % gmin(gin), this % gmax(gin) ! Store the histogram - this % fmu(gin) % data(:,gout) = coeffs(:,gout,gin) + this % fmu(gin) % data(:,gout) = matrix(:,gout,gin) ! Integrate the histogram - this % dist(gin) % data(1,gout) = this % dmu * coeffs(1,gout,gin) + this % dist(gin) % data(1,gout) = this % dmu * matrix(1,gout,gin) do imu = 2, order - this % dist(gin) % data(imu,gout) = this % dmu * coeffs(imu,gout,gin) + & + this % dist(gin) % data(imu,gout) = this % dmu * matrix(imu,gout,gin) + & this % dist(gin) % data(imu - 1,gout) end do @@ -309,15 +319,20 @@ contains subroutine scattdatatabular_init(this, mult, coeffs) class(ScattDataTabular), intent(inout) :: this ! Object to work on real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(inout) :: coeffs(:,:,:) ! Coefficients to use + real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use integer :: imu, gin, gout, groups, order real(8) :: norm real(8), allocatable :: energy(:,:) + real(8), allocatable :: matrix(:,:,:) groups = size(coeffs,dim=3) order = size(coeffs,dim=1) + ! make a copy of coeffs that we can use to extract data and normalize + allocate(matrix(order,groups,groups)) + matrix = coeffs + ! Build the angular distribution mu values allocate(this % mu(order)) this % dmu = TWO / real(order - 1,8) @@ -327,7 +342,7 @@ contains end do this % mu(order) = ONE - ! Get scattxs before anything happens to coeffs + ! Get scattxs allocate(this % scattxs(groups)) ! Get this by integrating the scattering distribution over all mu points ! and then combining over all outgoing groups @@ -336,8 +351,8 @@ contains norm = ZERO do gout = 1, groups do imu = 2, order - norm = norm + HALF * this % dmu * (coeffs(imu - 1,gout,gin) + & - coeffs(imu,gout,gin)) + norm = norm + HALF * this % dmu * (matrix(imu - 1,gout,gin) + & + matrix(imu,gout,gin)) end do end do this % scattxs(gin) = norm @@ -345,15 +360,14 @@ contains allocate(energy(groups,groups)) energy = ZERO - ! Build energy transfer probability matrix from data in coeffs + ! Build energy transfer probability matrix from data in matrix do gin = 1, groups do gout = 1, groups norm = ZERO do imu = 2, order norm = norm + HALF * this % dmu * & - (coeffs(imu - 1,gout,gin) + coeffs(imu,gout,gin)) + (matrix(imu - 1,gout,gin) + matrix(imu,gout,gin)) end do - ! energy(gout,gin) = sum(coeffs(:,gout,gin)) energy(gout,gin) = norm end do end do @@ -367,7 +381,7 @@ contains do gout = this % gmin(gin), this % gmax(gin) ! Coeffs contain f(mu), put in f(mu) as that is where the ! PDF lives - this % fmu(gin) % data(:,gout) = coeffs(:,gout,gin) + this % fmu(gin) % data(:,gout) = matrix(:,gout,gin) ! Force positivity do imu = 1, order From a53b3fc781f78334e75e6872088895daf8f33df8 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 9 Mar 2016 21:01:26 -0500 Subject: [PATCH 034/259] Updated test results, made fission sampling in MG mode a smidge faster --- src/macroxs_header.F90 | 8 +- src/scattdata_header.F90 | 2 + tests/test_mg_basic/results_true.dat | 2 +- tests/test_mg_max_order/inputs_true.dat | 2 +- tests/test_mg_max_order/results_true.dat | 2 +- tests/test_mg_max_order/test_mg_max_order.py | 3 +- tests/test_mg_nuclide/results_true.dat | 2 +- tests/test_mg_tallies/results_true.dat | 1306 +++++++++--------- 8 files changed, 665 insertions(+), 662 deletions(-) diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index f86da1729..2fd7dfe28 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -628,8 +628,8 @@ contains real(8) :: prob ! Running probability xi = prn() - prob = ZERO - gout = 0 + gout = 1 + prob = this % chi(gout,gin) do while (prob < xi) gout = gout + 1 @@ -650,8 +650,8 @@ contains call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) xi = prn() - prob = ZERO - gout = 0 + gout = 1 + prob = this % chi(gout,gin,iazi,ipol) do while (prob < xi) gout = gout + 1 diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 955e66783..04d48d22f 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -308,6 +308,8 @@ contains ! Now make sure integral norms to zero norm = this % dist(gin) % data(order,gout) if (norm > ZERO) then + this % fmu(gin) % data(:,gout) = & + this % fmu(gin) % data(:,gout) / norm this % dist(gin) % data(:,gout) = & this % dist(gin) % data(:,gout) / norm end if diff --git a/tests/test_mg_basic/results_true.dat b/tests/test_mg_basic/results_true.dat index 35f3e73d4..55c2af813 100644 --- a/tests/test_mg_basic/results_true.dat +++ b/tests/test_mg_basic/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.045320E+00 5.851680E-02 +1.033731E+00 4.974463E-02 diff --git a/tests/test_mg_max_order/inputs_true.dat b/tests/test_mg_max_order/inputs_true.dat index 1ad336e19..937ceb462 100644 --- a/tests/test_mg_max_order/inputs_true.dat +++ b/tests/test_mg_max_order/inputs_true.dat @@ -1 +1 @@ -abe20c626d613e73ccb1a3f8468ad1b9aecca528afa9e8131a411d754eb86b8ab64a6fb1fdc9c0b8b8158ff7c82f548de5912041bf035aa5a2d4532cfe0c9510 \ No newline at end of file +322483933c38fe6ecfa41d632c7214b5cd35af4a56415872585914d9c775dc99171e918eebf3221ab6292689c37269b8c3ce5ff85b3633b5c05ee481bf1b212a \ No newline at end of file diff --git a/tests/test_mg_max_order/results_true.dat b/tests/test_mg_max_order/results_true.dat index 1b2300560..f75c1300a 100644 --- a/tests/test_mg_max_order/results_true.dat +++ b/tests/test_mg_max_order/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.083030E+00 1.855038E-02 +1.055274E+00 1.715904E-02 diff --git a/tests/test_mg_max_order/test_mg_max_order.py b/tests/test_mg_max_order/test_mg_max_order.py index 2f5ee4e4e..d64956fbf 100644 --- a/tests/test_mg_max_order/test_mg_max_order.py +++ b/tests/test_mg_max_order/test_mg_max_order.py @@ -76,9 +76,10 @@ class MGMaxOrderTestHarness(PyAPITestHarness): self._input_set = MGNuclideInputSet() def _build_inputs(self): - super(MGMaxOrderTestHarness, self)._build_inputs() # Set P1 scattering self._input_set.settings.max_order = 1 + # Call standard input build + super(MGMaxOrderTestHarness, self)._build_inputs() if __name__ == '__main__': harness = MGMaxOrderTestHarness('statepoint.10.*', False, mg=True) diff --git a/tests/test_mg_nuclide/results_true.dat b/tests/test_mg_nuclide/results_true.dat index 5b60cef22..5e05e2451 100644 --- a/tests/test_mg_nuclide/results_true.dat +++ b/tests/test_mg_nuclide/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.380785E-01 5.556526E-03 +1.317412E-01 5.926047E-03 diff --git a/tests/test_mg_tallies/results_true.dat b/tests/test_mg_tallies/results_true.dat index 0cb47a712..5f4964a4e 100644 --- a/tests/test_mg_tallies/results_true.dat +++ b/tests/test_mg_tallies/results_true.dat @@ -1,86 +1,86 @@ k-combined: -1.045320E+00 5.851680E-02 +1.033731E+00 4.974463E-02 tally 1: -2.286064E+00 -1.057353E+00 -6.503987E-02 -8.851627E-04 -3.376363E+00 -2.323627E+00 -2.733240E-02 -1.607534E-04 -6.776283E-02 -9.880704E-04 -2.391658E+00 -1.201477E+00 -7.241106E-02 -1.103780E-03 -3.614949E+00 -2.730438E+00 -3.146867E-02 -2.110753E-04 -7.801752E-02 -1.297373E-03 -2.762725E+00 -1.705088E+00 -8.684520E-02 -1.654173E-03 -4.172232E+00 -3.847245E+00 -3.834947E-02 -3.212662E-04 -9.507651E-02 -1.974662E-03 -2.802290E+00 -1.773339E+00 -8.347451E-02 -1.574952E-03 -4.206829E+00 -3.971225E+00 -3.593646E-02 -2.967708E-04 -8.909414E-02 -1.824101E-03 -2.383708E+00 -1.176784E+00 -7.337273E-02 -1.097240E-03 -3.624903E+00 -2.690697E+00 -3.213890E-02 -2.139948E-04 -7.967917E-02 -1.315319E-03 -2.398216E+00 -1.234567E+00 -6.905889E-02 -9.879327E-04 -3.479138E+00 -2.538252E+00 -2.911091E-02 -1.750648E-04 -7.217215E-02 -1.076035E-03 -2.563998E+00 -1.354089E+00 -7.357381E-02 -1.097086E-03 -3.753156E+00 -2.867475E+00 -3.097034E-02 -1.948794E-04 -7.678206E-02 -1.197826E-03 -2.293243E+00 -1.172767E+00 -6.702582E-02 -9.267762E-04 -3.407144E+00 -2.469472E+00 -2.857514E-02 -1.688581E-04 -7.084385E-02 -1.037886E-03 +3.163666E+00 +2.165097E+00 +9.964133E-02 +2.052446E-03 +4.861844E+00 +4.978206E+00 +4.417216E-02 +4.040216E-04 +1.095122E-01 +2.483317E-03 +3.324437E+00 +2.299850E+00 +9.574329E-02 +1.968438E-03 +4.881821E+00 +4.943976E+00 +4.041706E-02 +3.650255E-04 +1.002025E-01 +2.243628E-03 +3.199995E+00 +2.091126E+00 +8.859707E-02 +1.592091E-03 +4.671522E+00 +4.439001E+00 +3.660515E-02 +2.728602E-04 +9.075197E-02 +1.677135E-03 +2.910284E+00 +1.723356E+00 +9.207508E-02 +1.744614E-03 +4.421737E+00 +3.979362E+00 +4.080063E-02 +3.481887E-04 +1.011535E-01 +2.140141E-03 +2.506574E+00 +1.326705E+00 +8.637880E-02 +1.598941E-03 +3.920683E+00 +3.263607E+00 +3.978214E-02 +3.424111E-04 +9.862841E-02 +2.104629E-03 +2.951103E+00 +1.826551E+00 +8.748324E-02 +1.648479E-03 +4.309848E+00 +3.903067E+00 +3.741466E-02 +3.141687E-04 +9.275891E-02 +1.931037E-03 +3.048521E+00 +2.007251E+00 +9.483162E-02 +1.935789E-03 +4.599534E+00 +4.527383E+00 +4.168244E-02 +3.813062E-04 +1.033396E-01 +2.343697E-03 +2.982958E+00 +1.966657E+00 +9.896454E-02 +2.016812E-03 +4.645921E+00 +4.599347E+00 +4.489740E-02 +4.108900E-04 +1.113102E-01 +2.525534E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -171,86 +171,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.604127E+00 -1.442914E+00 -7.142299E-02 -1.083324E-03 -3.786547E+00 -2.990260E+00 -2.935394E-02 -1.905369E-04 -7.277467E-02 -1.171135E-03 -2.457755E+00 -1.228862E+00 -6.655630E-02 -9.411086E-04 -3.528688E+00 -2.561047E+00 -2.709124E-02 -1.640319E-04 -6.716494E-02 -1.008221E-03 -2.450846E+00 -1.295337E+00 -6.779278E-02 -9.992248E-04 -3.519409E+00 -2.693620E+00 -2.793186E-02 -1.714064E-04 -6.924902E-02 -1.053549E-03 -2.469234E+00 -1.300419E+00 -7.347034E-02 -1.175743E-03 -3.675903E+00 -2.880386E+00 -3.155996E-02 -2.200036E-04 -7.824386E-02 -1.352252E-03 -2.576106E+00 -1.365945E+00 -7.241428E-02 -1.090052E-03 -3.719498E+00 -2.861357E+00 -3.008961E-02 -1.906170E-04 -7.459854E-02 -1.171627E-03 -2.503651E+00 -1.290812E+00 -7.432507E-02 -1.132918E-03 -3.702398E+00 -2.813425E+00 -3.186491E-02 -2.091477E-04 -7.899991E-02 -1.285525E-03 -2.395349E+00 -1.202098E+00 -7.095925E-02 -1.051988E-03 -3.559388E+00 -2.628753E+00 -3.041477E-02 -1.959992E-04 -7.540470E-02 -1.204709E-03 -1.910174E+00 -7.331782E-01 -6.366813E-02 -8.166135E-04 -2.966770E+00 -1.762376E+00 -2.893278E-02 -1.712979E-04 -7.173053E-02 -1.052882E-03 +2.806322E+00 +1.650116E+00 +8.677689E-02 +1.577748E-03 +4.271173E+00 +3.787053E+00 +3.812147E-02 +3.107861E-04 +9.451124E-02 +1.910246E-03 +2.767101E+00 +1.574082E+00 +8.523508E-02 +1.523190E-03 +4.143067E+00 +3.546386E+00 +3.725690E-02 +2.974028E-04 +9.236779E-02 +1.827986E-03 +2.767691E+00 +1.557585E+00 +7.816996E-02 +1.254835E-03 +4.015666E+00 +3.289915E+00 +3.260527E-02 +2.211412E-04 +8.083542E-02 +1.359243E-03 +2.734236E+00 +1.510579E+00 +8.505695E-02 +1.474976E-03 +4.114798E+00 +3.424404E+00 +3.737976E-02 +2.870194E-04 +9.267239E-02 +1.764164E-03 +2.421441E+00 +1.195490E+00 +8.292263E-02 +1.384777E-03 +3.817448E+00 +2.942804E+00 +3.814207E-02 +2.931372E-04 +9.456230E-02 +1.801767E-03 +2.724650E+00 +1.519118E+00 +9.238437E-02 +1.725646E-03 +4.305602E+00 +3.753830E+00 +4.235399E-02 +3.657508E-04 +1.050046E-01 +2.248086E-03 +2.703678E+00 +1.593893E+00 +8.744732E-02 +1.597761E-03 +4.110489E+00 +3.592877E+00 +3.913038E-02 +3.184391E-04 +9.701255E-02 +1.957285E-03 +2.707705E+00 +1.792230E+00 +8.754036E-02 +1.760104E-03 +4.203619E+00 +4.162497E+00 +3.927598E-02 +3.456207E-04 +9.737351E-02 +2.124357E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -341,86 +341,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.593479E+00 -1.421618E+00 -7.731733E-02 -1.249860E-03 -3.880469E+00 -3.167768E+00 -3.330331E-02 -2.319171E-04 -8.256599E-02 -1.425478E-03 -2.563470E+00 -1.449702E+00 -7.411043E-02 -1.158986E-03 -3.692974E+00 -2.935486E+00 -3.125554E-02 -2.061246E-04 -7.748913E-02 -1.266944E-03 -2.657580E+00 -1.493736E+00 -7.749682E-02 -1.277831E-03 -3.892576E+00 -3.190262E+00 -3.289903E-02 -2.334764E-04 -8.156370E-02 -1.435062E-03 -2.701357E+00 -1.517431E+00 -8.804410E-02 -1.639744E-03 -4.161224E+00 -3.606273E+00 -3.959674E-02 -3.345554E-04 -9.816875E-02 -2.056343E-03 -2.745200E+00 -1.523378E+00 -7.925308E-02 -1.270874E-03 -3.962649E+00 -3.165021E+00 -3.340000E-02 -2.283904E-04 -8.280570E-02 -1.403801E-03 -2.678775E+00 -1.492394E+00 -8.646776E-02 -1.554919E-03 -4.147456E+00 -3.551060E+00 -3.875994E-02 -3.125295E-04 -9.609415E-02 -1.920962E-03 -2.678888E+00 -1.497390E+00 -7.616647E-02 -1.203778E-03 -3.868905E+00 -3.108718E+00 -3.186093E-02 -2.136540E-04 -7.899003E-02 -1.313223E-03 -2.189117E+00 -9.756340E-01 -6.824988E-02 -9.549688E-04 -3.259136E+00 -2.150849E+00 -2.997262E-02 -1.883650E-04 -7.430850E-02 -1.157785E-03 +2.333969E+00 +1.124588E+00 +6.982134E-02 +1.014762E-03 +3.448351E+00 +2.435965E+00 +3.004987E-02 +1.926319E-04 +7.450003E-02 +1.184011E-03 +3.086286E+00 +1.981929E+00 +1.016918E-01 +2.146313E-03 +4.741530E+00 +4.626144E+00 +4.593581E-02 +4.489950E-04 +1.138847E-01 +2.759746E-03 +2.871515E+00 +1.672027E+00 +8.533571E-02 +1.469319E-03 +4.221958E+00 +3.599412E+00 +3.658547E-02 +2.721530E-04 +9.070318E-02 +1.672788E-03 +2.715053E+00 +1.498990E+00 +8.595576E-02 +1.530999E-03 +4.139891E+00 +3.493193E+00 +3.815373E-02 +3.059779E-04 +9.459122E-02 +1.880692E-03 +2.265823E+00 +1.080584E+00 +6.709890E-02 +9.696052E-04 +3.397886E+00 +2.446009E+00 +2.882467E-02 +1.820798E-04 +7.146249E-02 +1.119153E-03 +2.443336E+00 +1.255468E+00 +8.222450E-02 +1.373726E-03 +3.836077E+00 +3.019588E+00 +3.754438E-02 +2.866712E-04 +9.308051E-02 +1.762024E-03 +2.450506E+00 +1.305510E+00 +7.897423E-02 +1.293368E-03 +3.725732E+00 +2.954033E+00 +3.530661E-02 +2.549027E-04 +8.753260E-02 +1.566759E-03 +2.463151E+00 +1.385265E+00 +8.072623E-02 +1.376083E-03 +3.828575E+00 +3.178469E+00 +3.645911E-02 +2.733269E-04 +9.038989E-02 +1.680003E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -511,86 +511,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.761165E+00 -1.657839E+00 -7.810542E-02 -1.334149E-03 -4.026290E+00 -3.495574E+00 -3.264226E-02 -2.359256E-04 -8.092710E-02 -1.450116E-03 -2.601284E+00 -1.465130E+00 -7.485486E-02 -1.239170E-03 -3.829638E+00 -3.199488E+00 -3.159745E-02 -2.288567E-04 -7.833681E-02 -1.406667E-03 -2.419174E+00 -1.228134E+00 -7.422066E-02 -1.117508E-03 -3.667795E+00 -2.787048E+00 -3.244938E-02 -2.129012E-04 -8.044893E-02 -1.308597E-03 -2.491535E+00 -1.259222E+00 -7.470359E-02 -1.133979E-03 -3.773164E+00 -2.887196E+00 -3.234132E-02 -2.142511E-04 -8.018101E-02 -1.316894E-03 -2.430358E+00 -1.305969E+00 -7.236826E-02 -1.077801E-03 -3.691969E+00 -2.914191E+00 -3.123416E-02 -2.001679E-04 -7.743613E-02 -1.230332E-03 -3.133682E+00 -1.984584E+00 -8.337467E-02 -1.392595E-03 -4.451265E+00 -3.978527E+00 -3.354318E-02 -2.282172E-04 -8.316070E-02 -1.402736E-03 -2.662704E+00 -1.448336E+00 -7.530385E-02 -1.164529E-03 -3.880423E+00 -3.054138E+00 -3.144058E-02 -2.085301E-04 -7.794791E-02 -1.281730E-03 -2.130205E+00 -9.297660E-01 -6.583066E-02 -8.790174E-04 -3.226341E+00 -2.120506E+00 -2.889944E-02 -1.698754E-04 -7.164788E-02 -1.044139E-03 +2.433621E+00 +1.298731E+00 +7.126855E-02 +1.084489E-03 +3.556720E+00 +2.723689E+00 +3.032075E-02 +1.974495E-04 +7.517159E-02 +1.213623E-03 +2.717435E+00 +1.549804E+00 +7.064960E-02 +1.006179E-03 +3.808148E+00 +2.988456E+00 +2.796674E-02 +1.570090E-04 +6.933552E-02 +9.650556E-04 +2.679858E+00 +1.486542E+00 +8.030738E-02 +1.319629E-03 +4.018748E+00 +3.302325E+00 +3.467552E-02 +2.467113E-04 +8.596801E-02 +1.516410E-03 +2.404649E+00 +1.193262E+00 +6.941086E-02 +9.897421E-04 +3.496702E+00 +2.518136E+00 +2.928903E-02 +1.763988E-04 +7.261375E-02 +1.084234E-03 +2.147183E+00 +9.523277E-01 +6.709152E-02 +9.314107E-04 +3.232389E+00 +2.147105E+00 +2.954891E-02 +1.829794E-04 +7.325805E-02 +1.124682E-03 +2.636339E+00 +1.437307E+00 +7.792975E-02 +1.238873E-03 +3.915670E+00 +3.133618E+00 +3.338754E-02 +2.290709E-04 +8.277483E-02 +1.407984E-03 +2.771906E+00 +1.608332E+00 +8.667994E-02 +1.535886E-03 +4.183761E+00 +3.623671E+00 +3.819000E-02 +2.976177E-04 +9.468114E-02 +1.829306E-03 +2.269663E+00 +1.042807E+00 +7.391262E-02 +1.128121E-03 +3.476219E+00 +2.457866E+00 +3.321742E-02 +2.316107E-04 +8.235305E-02 +1.423595E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -681,86 +681,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.599461E+00 -1.458035E+00 -7.809884E-02 -1.305214E-03 -3.901359E+00 -3.258238E+00 -3.379142E-02 -2.432493E-04 -8.377612E-02 -1.495131E-03 -2.748044E+00 -1.595569E+00 -8.641555E-02 -1.591494E-03 -4.133038E+00 -3.610482E+00 -3.815976E-02 -3.125423E-04 -9.460617E-02 -1.921040E-03 -2.827693E+00 -1.681951E+00 -9.214026E-02 -1.815952E-03 -4.343252E+00 -3.980138E+00 -4.139309E-02 -3.763771E-04 -1.026223E-01 -2.313401E-03 -2.848302E+00 -1.709266E+00 -8.618471E-02 -1.555247E-03 -4.293029E+00 -3.893924E+00 -3.742129E-02 -2.947160E-04 -9.277535E-02 -1.811471E-03 -3.107129E+00 -1.985180E+00 -9.390982E-02 -1.778566E-03 -4.705512E+00 -4.502266E+00 -4.077729E-02 -3.361217E-04 -1.010956E-01 -2.065971E-03 -3.176743E+00 -2.076916E+00 -9.535836E-02 -1.843238E-03 -4.782883E+00 -4.655802E+00 -4.125628E-02 -3.453802E-04 -1.022831E-01 -2.122878E-03 -3.158364E+00 -2.020031E+00 -9.047734E-02 -1.652565E-03 -4.641857E+00 -4.326900E+00 -3.809128E-02 -2.983406E-04 -9.443638E-02 -1.833749E-03 -2.750064E+00 -1.515295E+00 -7.550745E-02 -1.157933E-03 -4.022702E+00 -3.249004E+00 -3.106532E-02 -2.005988E-04 -7.701755E-02 -1.232980E-03 +2.364354E+00 +1.160200E+00 +6.641096E-02 +8.852085E-04 +3.392824E+00 +2.329004E+00 +2.757158E-02 +1.580033E-04 +6.835582E-02 +9.711667E-04 +2.524962E+00 +1.341947E+00 +7.077935E-02 +1.024802E-03 +3.665788E+00 +2.770692E+00 +2.942129E-02 +1.757498E-04 +7.294165E-02 +1.080245E-03 +2.400937E+00 +1.186871E+00 +6.912946E-02 +9.715758E-04 +3.511555E+00 +2.501540E+00 +2.915335E-02 +1.747298E-04 +7.227736E-02 +1.073976E-03 +2.114087E+00 +8.990260E-01 +7.043720E-02 +1.000660E-03 +3.333143E+00 +2.235823E+00 +3.206435E-02 +2.087641E-04 +7.949434E-02 +1.283168E-03 +2.130919E+00 +9.474100E-01 +7.007826E-02 +9.974302E-04 +3.308019E+00 +2.242723E+00 +3.167506E-02 +2.044420E-04 +7.852922E-02 +1.256602E-03 +2.315558E+00 +1.159276E+00 +6.983615E-02 +1.023301E-03 +3.433129E+00 +2.511229E+00 +3.018652E-02 +1.890787E-04 +7.483880E-02 +1.162171E-03 +2.729503E+00 +1.530826E+00 +8.250917E-02 +1.373688E-03 +4.093393E+00 +3.424963E+00 +3.577102E-02 +2.569031E-04 +8.868397E-02 +1.579054E-03 +2.303613E+00 +1.077186E+00 +6.880069E-02 +9.471902E-04 +3.366481E+00 +2.277404E+00 +2.953353E-02 +1.751404E-04 +7.321992E-02 +1.076500E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -851,86 +851,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.571690E+00 -1.405222E+00 -6.998368E-02 -1.010782E-03 -3.645470E+00 -2.775516E+00 -2.848750E-02 -1.694087E-04 -7.062657E-02 -1.041270E-03 -3.305320E+00 -2.344814E+00 -9.985328E-02 -2.111130E-03 -4.992554E+00 -5.332303E+00 -4.332586E-02 -3.970490E-04 -1.074140E-01 -2.440461E-03 -2.746305E+00 -1.652960E+00 -9.402849E-02 -1.982149E-03 -4.315533E+00 -4.099428E+00 -4.322622E-02 -4.235148E-04 -1.071670E-01 -2.603132E-03 -2.975372E+00 -1.824531E+00 -9.627993E-02 -1.863677E-03 -4.624041E+00 -4.351874E+00 -4.324350E-02 -3.743520E-04 -1.072099E-01 -2.300953E-03 -2.968077E+00 -1.807761E+00 -9.337061E-02 -1.790184E-03 -4.455263E+00 -4.056544E+00 -4.122926E-02 -3.540009E-04 -1.022161E-01 -2.175865E-03 -3.337278E+00 -2.233238E+00 -1.017763E-01 -2.083989E-03 -4.981699E+00 -4.981154E+00 -4.428100E-02 -3.964318E-04 -1.097820E-01 -2.436667E-03 -3.083638E+00 -1.958766E+00 -9.111141E-02 -1.726305E-03 -4.546082E+00 -4.260420E+00 -3.895365E-02 -3.200133E-04 -9.657439E-02 -1.966961E-03 -2.644733E+00 -1.407404E+00 -8.635553E-02 -1.527997E-03 -4.094426E+00 -3.382785E+00 -3.888081E-02 -3.161126E-04 -9.639381E-02 -1.942985E-03 +2.603449E+00 +1.382310E+00 +7.044110E-02 +1.048854E-03 +3.683939E+00 +2.770822E+00 +2.858207E-02 +1.846566E-04 +7.086104E-02 +1.134991E-03 +2.458052E+00 +1.211571E+00 +7.271340E-02 +1.061659E-03 +3.628656E+00 +2.636961E+00 +3.113049E-02 +1.956492E-04 +7.717911E-02 +1.202557E-03 +2.200265E+00 +9.745445E-01 +7.058665E-02 +1.016272E-03 +3.372745E+00 +2.298238E+00 +3.151097E-02 +2.069373E-04 +7.812240E-02 +1.271940E-03 +2.154223E+00 +9.469347E-01 +6.893166E-02 +1.008453E-03 +3.298063E+00 +2.220933E+00 +3.075978E-02 +2.125545E-04 +7.626005E-02 +1.306466E-03 +2.057172E+00 +8.672290E-01 +6.372568E-02 +8.190278E-04 +3.108552E+00 +1.951197E+00 +2.795535E-02 +1.595890E-04 +6.930727E-02 +9.809131E-04 +2.295642E+00 +1.124640E+00 +6.209725E-02 +8.275041E-04 +3.320499E+00 +2.339919E+00 +2.530846E-02 +1.388437E-04 +6.274506E-02 +8.534023E-04 +2.411516E+00 +1.208668E+00 +7.127755E-02 +1.051206E-03 +3.599456E+00 +2.675604E+00 +3.057946E-02 +1.929511E-04 +7.581300E-02 +1.185973E-03 +2.170599E+00 +9.911770E-01 +6.225331E-02 +8.096954E-04 +3.174400E+00 +2.102442E+00 +2.621745E-02 +1.490631E-04 +6.499865E-02 +9.162161E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1021,86 +1021,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.316522E+00 -2.302876E+00 -8.987919E-02 -1.676655E-03 -4.716109E+00 -4.596488E+00 -3.654407E-02 -2.855910E-04 -9.060053E-02 -1.755384E-03 -3.091331E+00 -2.117646E+00 -8.528196E-02 -1.564336E-03 -4.492326E+00 -4.405850E+00 -3.513814E-02 -2.665883E-04 -8.711494E-02 -1.638584E-03 -2.649730E+00 -1.444519E+00 -8.510948E-02 -1.506094E-03 -4.117595E+00 -3.501517E+00 -3.810553E-02 -3.052819E-04 -9.447172E-02 -1.876414E-03 -2.875773E+00 -1.758531E+00 -9.127582E-02 -1.780419E-03 -4.328266E+00 -3.989840E+00 -4.045386E-02 -3.513542E-04 -1.002937E-01 -2.159598E-03 -3.102792E+00 -1.949906E+00 -9.153879E-02 -1.691646E-03 -4.578530E+00 -4.235906E+00 -3.913672E-02 -3.094156E-04 -9.702826E-02 -1.901822E-03 -3.238743E+00 -2.146355E+00 -8.902551E-02 -1.593536E-03 -4.683916E+00 -4.438028E+00 -3.660342E-02 -2.683183E-04 -9.074766E-02 -1.649218E-03 -3.006635E+00 -1.887385E+00 -8.716712E-02 -1.586834E-03 -4.383965E+00 -4.008888E+00 -3.688262E-02 -2.862513E-04 -9.143987E-02 -1.759443E-03 -2.749904E+00 -1.550561E+00 -9.244273E-02 -1.748082E-03 -4.241273E+00 -3.669144E+00 -4.208622E-02 -3.633241E-04 -1.043407E-01 -2.233170E-03 +2.374348E+00 +1.146696E+00 +6.443426E-02 +8.746572E-04 +3.428224E+00 +2.405912E+00 +2.629872E-02 +1.523681E-04 +6.520012E-02 +9.365302E-04 +2.464893E+00 +1.229701E+00 +7.050588E-02 +1.022217E-03 +3.660115E+00 +2.719644E+00 +2.971255E-02 +1.859463E-04 +7.366374E-02 +1.142918E-03 +2.086598E+00 +8.776819E-01 +6.304625E-02 +8.239181E-04 +3.124875E+00 +1.968039E+00 +2.731211E-02 +1.609716E-04 +6.771252E-02 +9.894116E-04 +2.314873E+00 +1.083111E+00 +5.761556E-02 +6.762901E-04 +3.205662E+00 +2.074555E+00 +2.215216E-02 +1.044406E-04 +5.491992E-02 +6.419437E-04 +2.313273E+00 +1.119912E+00 +6.126598E-02 +7.845228E-04 +3.266340E+00 +2.226545E+00 +2.455456E-02 +1.271226E-04 +6.087598E-02 +7.813588E-04 +2.283282E+00 +1.100474E+00 +6.665553E-02 +9.193170E-04 +3.364565E+00 +2.364829E+00 +2.834631E-02 +1.672037E-04 +7.027653E-02 +1.027717E-03 +2.186072E+00 +9.712029E-01 +7.000241E-02 +1.019717E-03 +3.374290E+00 +2.313941E+00 +3.125803E-02 +2.124583E-04 +7.749531E-02 +1.305874E-03 +2.250156E+00 +1.052173E+00 +6.400255E-02 +8.818690E-04 +3.268015E+00 +2.245559E+00 +2.679559E-02 +1.634377E-04 +6.643197E-02 +1.004569E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1191,86 +1191,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.556952E+00 -1.416458E+00 -8.087467E-02 -1.431667E-03 -3.806748E+00 -3.158182E+00 -3.571995E-02 -2.831832E-04 -8.855737E-02 -1.740585E-03 -2.546384E+00 -1.446967E+00 -8.000281E-02 -1.363415E-03 -3.844739E+00 -3.222133E+00 -3.533522E-02 -2.621956E-04 -8.760354E-02 -1.611584E-03 -2.474418E+00 -1.302438E+00 -7.728372E-02 -1.265047E-03 -3.818517E+00 -3.076074E+00 -3.414744E-02 -2.483215E-04 -8.465877E-02 -1.526307E-03 -2.478272E+00 -1.299434E+00 -7.866430E-02 -1.293627E-03 -3.758685E+00 -2.973817E+00 -3.491240E-02 -2.542033E-04 -8.655529E-02 -1.562460E-03 -2.941937E+00 -1.842278E+00 -9.491310E-02 -1.902183E-03 -4.564730E+00 -4.427111E+00 -4.252722E-02 -3.828960E-04 -1.054340E-01 -2.353469E-03 -2.850564E+00 -1.719152E+00 -8.118192E-02 -1.404765E-03 -4.190858E+00 -3.722715E+00 -3.411695E-02 -2.522778E-04 -8.458318E-02 -1.550625E-03 -2.726097E+00 -1.648250E+00 -7.879124E-02 -1.424955E-03 -3.940978E+00 -3.461222E+00 -3.322044E-02 -2.688615E-04 -8.236053E-02 -1.652557E-03 -2.304822E+00 -1.153775E+00 -7.500010E-02 -1.314077E-03 -3.542935E+00 -2.786864E+00 -3.369367E-02 -2.798215E-04 -8.353377E-02 -1.719922E-03 +2.149693E+00 +9.566763E-01 +6.325375E-02 +8.781459E-04 +3.163781E+00 +2.089993E+00 +2.699802E-02 +1.754950E-04 +6.693384E-02 +1.078679E-03 +2.368262E+00 +1.206255E+00 +6.517665E-02 +9.363557E-04 +3.403305E+00 +2.501730E+00 +2.677251E-02 +1.620249E-04 +6.637476E-02 +9.958857E-04 +2.280249E+00 +1.070455E+00 +7.456831E-02 +1.147671E-03 +3.475673E+00 +2.476848E+00 +3.352210E-02 +2.345869E-04 +8.310842E-02 +1.441888E-03 +2.226928E+00 +1.011037E+00 +7.770236E-02 +1.243393E-03 +3.524398E+00 +2.538453E+00 +3.601410E-02 +2.702997E-04 +8.928663E-02 +1.661396E-03 +2.407411E+00 +1.170093E+00 +7.171133E-02 +1.029235E-03 +3.502484E+00 +2.461827E+00 +3.070568E-02 +1.889715E-04 +7.612591E-02 +1.161513E-03 +2.331359E+00 +1.134448E+00 +6.734317E-02 +9.407363E-04 +3.333577E+00 +2.267345E+00 +2.832929E-02 +1.772720E-04 +7.023433E-02 +1.089602E-03 +2.008838E+00 +8.722179E-01 +5.586199E-02 +7.051708E-04 +2.903675E+00 +1.807255E+00 +2.309145E-02 +1.322637E-04 +5.724863E-02 +8.129585E-04 +2.226061E+00 +1.048269E+00 +6.536859E-02 +9.623671E-04 +3.297988E+00 +2.324450E+00 +2.791406E-02 +1.866630E-04 +6.920490E-02 +1.147324E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2892,15 +2892,15 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -4.283244E+01 -3.698890E+02 -4.285612E+01 -3.702981E+02 -6.926001E+00 -9.669342E+00 -6.926497E+00 -9.670727E+00 -1.223563E+02 -3.025594E+03 -1.223563E+02 -3.025594E+03 +4.075585E+01 +3.339527E+02 +4.077838E+01 +3.343221E+02 +6.274554E+00 +7.936999E+00 +6.275007E+00 +7.938146E+00 +1.122968E+02 +2.557771E+03 +1.122968E+02 +2.557771E+03 From a1764196ce703a305a7068e21a264d07cb17d3cd Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 9 Mar 2016 21:03:53 -0500 Subject: [PATCH 035/259] small editorial comment --- src/input_xml.F90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index b89b8807f..a7366d2cd 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -169,7 +169,11 @@ contains if (check_for_node(doc, "max_order")) then call get_node_value(doc, "max_order", max_order) else - ! Set to default of largest int, which means to use whatever is contained in library + ! Set to default of largest int - 1, which means to use whatever is + ! contained in library. + ! This is largest int - 1 because for legendre scattering, a value of + ! 1 is added to the order; adding 1 to huge(0) gets you the largest + ! negative integer, which is not what we want. max_order = huge(0) - 1 end if else From 9187c6fa2cbe3abb685d835f2b1fd8db644e2f2a Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 10 Mar 2016 00:13:31 -0500 Subject: [PATCH 036/259] Minor changes for #607 --- openmc/settings.py | 71 +++++++++---------- .../test_resonance_scattering.py | 2 +- 2 files changed, 34 insertions(+), 39 deletions(-) diff --git a/openmc/settings.py b/openmc/settings.py index 01e665c6e..5c3c92008 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -9,7 +9,7 @@ import numpy as np from openmc.clean_xml import * from openmc.checkvalue import (check_type, check_length, check_value, check_greater_than, check_less_than) -from openmc.nuclide import Nuclide +from openmc import Nuclide from openmc.source import Source if sys.version_info[0] >= 3: @@ -778,9 +778,10 @@ class SettingsFile(object): if isinstance(res, Iterable): check_type('resonance_scattering', res, Iterable, ResonanceScattering) + self._resonance_scattering = res else: check_type('resonance_scattering', res, ResonanceScattering) - self._resonance_scattering = res + self._resonance_scattering = [res] def _create_run_mode_subelement(self): @@ -1066,30 +1067,11 @@ class SettingsFile(object): element = ET.SubElement(self._settings_file, "resonance_scattering") - # Create an iterable version of resonance_scattering - if isinstance(self.resonance_scattering, Iterable): - res = self.resonance_scattering - else: - res = [self.resonance_scattering] - - for r in res: + for r in self.resonance_scattering: if r.nuclide.name != r.nuclide_0K.name: - raise ValueError("The `nuclide` and `nuclide_0K` attributes of " + raise ValueError("The nuclide and nuclide_0K attributes of " "a ResonantScattering object must have identical names.") - scatterer = ET.SubElement(element, "scatterer") - subelement = ET.SubElement(scatterer, 'nuclide') - subelement.text = r.nuclide.name - subelement = ET.SubElement(scatterer, 'method') - subelement.text = r.method - subelement = ET.SubElement(scatterer, 'xs_label') - subelement.text = str(r.nuclide.zaid) + '.' + str(r.nuclide.xs) - subelement = ET.SubElement(scatterer, 'xs_label_0K') - subelement.text = str(r.nuclide_0K.zaid) + '.' \ - + str(r.nuclide_0K.xs) - subelement = ET.SubElement(scatterer, 'E_min') - subelement.text = str(r.E_min) - subelement = ET.SubElement(scatterer, 'E_max') - subelement.text = str(r.E_max) + r.create_xml_subelement(element) def export_to_xml(self): """Create a settings.xml file that can be used for a simulation. @@ -1146,18 +1128,18 @@ class ResonanceScattering(object): nuclide : openmc.nuclide.Nuclide The nuclide affected by this resonance scattering treatment. nuclide_0K : openmc.nuclide.Nuclide - This should be the same isotope as `nuclide`, but it should have an - `xs` attribute that identifies 0 Kelvin data. + This should be the same isotope as the nuclide attribute above, but it + should have an xs attribute that identifies 0 Kelvin data. method : str The method used to sample outgoing scattering energies. Valid options are 'ARES', 'CXS' (constant cross section), 'DBRC' (Doppler broadening rejection correction), and 'WCM' (weight correction method). - E_min : float + E_min : Real The minimum energy above which the specified method is applied. By - default, CXS will be used below `E_min`. - E_max : float + default, CXS will be used below E_min. + E_max : Real The maximum energy below which the specified method is applied. By - default, the asymptotic target-at-rest model is applied above `E_max`. + default, the asymptotic target-at-rest model is applied above E_max. """ @@ -1191,23 +1173,20 @@ class ResonanceScattering(object): @nuclide.setter def nuclide(self, nuc): check_type('nuclide', nuc, Nuclide) - if nuc.zaid == None: raise ValueError("The `nuclide` must have an " - "explicitly defined `zaid` attribute.") + if nuc.zaid == None: raise ValueError("The nuclide must have an " + "explicitly defined zaid attribute.") self._nuclide = nuc @nuclide_0K.setter def nuclide_0K(self, nuc): check_type('nuclide_0K', nuc, Nuclide) - if nuc.zaid == None: raise ValueError("The `nuclide_0K` must have an " - "explicitly defined `zaid` attribute.") + if nuc.zaid == None: raise ValueError("The nuclide_0K must have an " + "explicitly defined zaid attribute.") self._nuclide_0K = nuc @method.setter def method(self, m): - check_type('method', m, basestring) - if m not in ('ARES', 'CXS', 'DBRC', 'WCM'): - raise ValueError("Invalid resonance scattering method specified. " - "Valid methods are 'ARES', 'CXS', 'DBRC', and 'WCM'.") + check_value('method', m, ('ARES', 'CXS', 'DBRC', 'WCM')) self._method = m @E_min.setter @@ -1221,3 +1200,19 @@ class ResonanceScattering(object): check_type('E_max', E, Real) check_greater_than('E_max', E, 0, True) self._E_max = E + + def create_xml_subelement(self, xml_element): + scatterer = ET.SubElement(xml_element, "scatterer") + subelement = ET.SubElement(scatterer, 'nuclide') + subelement.text = self.nuclide.name + subelement = ET.SubElement(scatterer, 'method') + subelement.text = self.method + subelement = ET.SubElement(scatterer, 'xs_label') + subelement.text = str(self.nuclide.zaid) + '.' + str(self.nuclide.xs) + subelement = ET.SubElement(scatterer, 'xs_label_0K') + subelement.text = str(self.nuclide_0K.zaid) + '.' \ + + str(self.nuclide_0K.xs) + subelement = ET.SubElement(scatterer, 'E_min') + subelement.text = str(self.E_min) + subelement = ET.SubElement(scatterer, 'E_max') + subelement.text = str(self.E_max) diff --git a/tests/test_resonance_scattering/test_resonance_scattering.py b/tests/test_resonance_scattering/test_resonance_scattering.py index 04a2916a3..d977488bf 100644 --- a/tests/test_resonance_scattering/test_resonance_scattering.py +++ b/tests/test_resonance_scattering/test_resonance_scattering.py @@ -3,7 +3,7 @@ import os import sys sys.path.insert(0, os.pardir) -from testing_harness import TestHarness, PyAPITestHarness +from testing_harness import PyAPITestHarness import openmc From e86e287f3465e41a3e81c8fe716083e5b690b604 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 10 Mar 2016 10:05:50 -0500 Subject: [PATCH 037/259] Small fixes for #607 --- openmc/settings.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/openmc/settings.py b/openmc/settings.py index 5c3c92008..271932b84 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -126,8 +126,8 @@ class SettingsFile(object): Coordinates of the lower-left point of the UFS mesh ufs_upper_right : tuple or list Coordinates of the upper-right point of the UFS mesh - resonance_scattering : ResonanceScattering or iterable thereof - The elastic scattering model to use for resonant isotopes. + resonance_scattering : ResonanceScattering or iterable of ResonanceScattering + The elastic scattering model to use for resonant isotopes """ @@ -1121,7 +1121,7 @@ class SettingsFile(object): class ResonanceScattering(object): - """Specification of the elastic scattering model for resonant isotopes. + """Specification of the elastic scattering model for resonant isotopes Attributes ---------- @@ -1205,14 +1205,17 @@ class ResonanceScattering(object): scatterer = ET.SubElement(xml_element, "scatterer") subelement = ET.SubElement(scatterer, 'nuclide') subelement.text = self.nuclide.name - subelement = ET.SubElement(scatterer, 'method') - subelement.text = self.method + if self.method is not None: + subelement = ET.SubElement(scatterer, 'method') + subelement.text = self.method subelement = ET.SubElement(scatterer, 'xs_label') subelement.text = str(self.nuclide.zaid) + '.' + str(self.nuclide.xs) subelement = ET.SubElement(scatterer, 'xs_label_0K') subelement.text = str(self.nuclide_0K.zaid) + '.' \ + str(self.nuclide_0K.xs) - subelement = ET.SubElement(scatterer, 'E_min') - subelement.text = str(self.E_min) - subelement = ET.SubElement(scatterer, 'E_max') - subelement.text = str(self.E_max) + if self.E_min is not None: + subelement = ET.SubElement(scatterer, 'E_min') + subelement.text = str(self.E_min) + if self.E_max is not None: + subelement = ET.SubElement(scatterer, 'E_max') + subelement.text = str(self.E_max) From 28c0cebe386a6aacc94ff8dc8ef1227254c6542e Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 10 Mar 2016 19:20:14 -0500 Subject: [PATCH 038/259] Added checks for gout value to see if it is included in the new sparse format when querying the scattering distro info. --- src/macroxs_header.F90 | 54 +++++++++++--------- src/nuclide_header.F90 | 94 +++++++++++++++++++---------------- src/output.F90 | 6 ++- src/scattdata_header.F90 | 44 +++++++++++------ src/tally.F90 | 103 +++++++++++++++++++++++---------------- 5 files changed, 177 insertions(+), 124 deletions(-) diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 2fd7dfe28..6d74b081a 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -42,11 +42,11 @@ module macroxs_header integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? end subroutine macroxs_init_ - function macroxs_get_xs_(this, g, xstype, gout, uvw) result(xs) + function macroxs_get_xs_(this, xstype, gin, gout, uvw) result(xs) import MacroXS class(MacroXS), intent(in) :: this ! The MacroXS to initialize - integer, intent(in) :: g ! Incoming Energy group character(*) , intent(in) :: xstype ! Cross Section Type + integer, intent(in) :: gin ! Incoming Energy group integer, optional, intent(in) :: gout ! Outgoing Energy group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8) :: xs ! Resultant xs @@ -547,41 +547,46 @@ contains ! MACROXS_*_GET_XS returns the requested data type !=============================================================================== - function macroxsiso_get_xs(this, g, xstype, gout, uvw) result(xs) + function macroxsiso_get_xs(this, xstype, gin, gout, uvw) result(xs) class(MacroXSIso), intent(in) :: this ! The MacroXS to initialize - integer, intent(in) :: g ! Incoming Energy group character(*) , intent(in) :: xstype ! Type of xs requested + integer, intent(in) :: gin ! Incoming Energy group integer, optional, intent(in) :: gout ! Outgoing Energy group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8) :: xs ! Requested x/s select case(xstype) case('total') - xs = this % total(g) + xs = this % total(gin) case('absorption') - xs = this % absorption(g) + xs = this % absorption(gin) case('fission') - xs = this % fission(g) + xs = this % fission(gin) case('k_fission') - xs = this % k_fission(g) + xs = this % k_fission(gin) case('nu_fission') - xs = this % nu_fission(g) + xs = this % nu_fission(gin) case('scatter') - xs = this % scatter % scattxs(g) + xs = this % scatter % scattxs(gin) case('mult') if (present(gout)) then - xs = this % scatter % mult(g) % data(gout) + if (gout < this % scatter % gmin(gin) .or. & + gout > this % scatter % gmax(gin)) then + xs = ZERO + else + xs = this % scatter % mult(gin) % data(gout) + end if else - xs = sum(this % scatter % mult(g) % data(:)) + xs = sum(this % scatter % mult(gin) % data(:)) end if end select end function macroxsiso_get_xs - function macroxsangle_get_xs(this, g, xstype, gout,uvw) result(xs) + function macroxsangle_get_xs(this, xstype, gin, gout, uvw) result(xs) class(MacroXSAngle), intent(in) :: this ! The MacroXS to initialize - integer, intent(in) :: g ! Incoming Energy group character(*) , intent(in) :: xstype ! Type of xs requested + integer, intent(in) :: gin ! Incoming Energy group integer, optional, intent(in) :: gout ! Outgoing Energy group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8) :: xs ! Requested x/s @@ -592,22 +597,27 @@ contains call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) select case(xstype) case('total') - xs = this % total(g,iazi,ipol) + xs = this % total(gin,iazi,ipol) case('absorption') - xs = this % absorption(g,iazi,ipol) + xs = this % absorption(gin,iazi,ipol) case('fission') - xs = this % fission(g,iazi,ipol) + xs = this % fission(gin,iazi,ipol) case('k_fission') - xs = this % k_fission(g,iazi,ipol) + xs = this % k_fission(gin,iazi,ipol) case('nu_fission') - xs = this % nu_fission(g,iazi,ipol) + xs = this % nu_fission(gin,iazi,ipol) case('scatter') - xs = this % scatter(iazi,ipol) % obj % scattxs(g) + xs = this % scatter(iazi,ipol) % obj % scattxs(gin) case('mult') if (present(gout)) then - xs = this % scatter(iazi,ipol) % obj % mult(g) % data(gout) + if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + xs = ZERO + else + xs = this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + end if else - xs = sum(this % scatter(iazi,ipol) % obj % mult(g) % data(:)) + xs = sum(this % scatter(iazi,ipol) % obj % mult(gin) % data(:)) end if end select end if diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index e4dc717a8..35048454e 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -126,12 +126,12 @@ module nuclide_header integer, intent(in) :: max_order ! Maximum requested order end subroutine nuclidemg_init_ - function nuclidemg_get_xs_(this, g, xstype, gout, uvw, mu, iazi, ipol) & + function nuclidemg_get_xs_(this, xstype, gin, gout, uvw, mu, iazi, ipol) & result(xs) import NuclideMG class(NuclideMG), intent(in) :: this - integer, intent(in) :: g ! Incoming Energy group character(*), intent(in) :: xstype ! Cross Section Type + integer, intent(in) :: gin ! Incoming Energy group integer, optional, intent(in) :: gout ! Outgoing Group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8), optional, intent(in) :: mu ! Change in angle @@ -1200,17 +1200,17 @@ module nuclide_header ! NUCLIDE*_GET_XS Returns the requested data type !=============================================================================== - function nuclideiso_get_xs(this, g, xstype, gout, uvw, mu, iazi, ipol) & + function nuclideiso_get_xs(this, xstype, gin, gout, uvw, mu, iazi, ipol) & result(xs) class(NuclideIso), intent(in) :: this - integer, intent(in) :: g ! Incoming Energy group - character(*), intent(in) :: xstype ! Cross Section Type - integer, optional, intent(in) :: gout ! Outgoing Group - real(8), optional, intent(in) :: uvw(3) ! Requested Angle - real(8), optional, intent(in) :: mu ! Change in angle - integer, optional, intent(in) :: iazi ! Azimuthal Index - integer, optional, intent(in) :: ipol ! Polar Index - real(8) :: xs ! Resultant xs + character(*), intent(in) :: xstype ! Cross Section Type + integer, intent(in) :: gin ! Incoming Energy group + integer, optional, intent(in) :: gout ! Outgoing Group + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8), optional, intent(in) :: mu ! Change in angle + integer, optional, intent(in) :: iazi ! Azimuthal Index + integer, optional, intent(in) :: ipol ! Polar Index + real(8) :: xs ! Resultant xs xs = ZERO @@ -1222,46 +1222,51 @@ module nuclide_header if (present(gout)) then select case(xstype) case('mult') - xs = this % scatter % mult(g) % data(gout) + xs = this % scatter % mult(gin) % data(gout) case('nu_fission') - xs = this % nu_fission(gout,g) + xs = this % nu_fission(gout,gin) case('f_mu', 'f_mu/mult') - xs = this % scatter % calc_f(g, gout, mu) - if (xstype == 'f_mu/mult') then - xs = xs / this % scatter % mult(g) % data(gout) + if (gout < this % scatter % gmin(gin) .or. & + gout > this % scatter % gmax(gin)) then + xs = ZERO + else + xs = this % scatter % calc_f(gin, gout, mu) + if (xstype == 'f_mu/mult') then + xs = xs / this % scatter % mult(gin) % data(gout) + end if end if end select else select case(xstype) case('total') - xs = this % total(g) + xs = this % total(gin) case('absorption') - xs = this % absorption(g) + xs = this % absorption(gin) case('fission') - xs = this % fission(g) + xs = this % fission(gin) case('k_fission') if (allocated(this % k_fission)) then - xs = this % k_fission(g) + xs = this % k_fission(gin) end if case('chi') - xs = this % chi(g) + xs = this % chi(gin) case('scatter') - xs = this % scatter % scattxs(g) + xs = this % scatter % scattxs(gin) end select end if end function nuclideiso_get_xs - function nuclideangle_get_xs(this, g, xstype, gout, uvw, mu, iazi, ipol) & + function nuclideangle_get_xs(this, xstype, gin, gout, uvw, mu, iazi, ipol) & result(xs) class(NuclideAngle), intent(in) :: this - integer, intent(in) :: g ! Incoming Energy group - character(*), intent(in) :: xstype ! Cross Section Type - integer, optional, intent(in) :: gout ! Outgoing Group - real(8), optional, intent(in) :: mu ! Change in angle - real(8), optional, intent(in) :: uvw(3) ! Requested Angle - integer, optional, intent(in) :: iazi ! Azimuthal Index - integer, optional, intent(in) :: ipol ! Polar Index - real(8) :: xs ! Resultant xs + character(*), intent(in) :: xstype ! Cross Section Type + integer, intent(in) :: gin ! Incoming Energy group + integer, optional, intent(in) :: gout ! Outgoing Group + real(8), optional, intent(in) :: mu ! Change in angle + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + integer, optional, intent(in) :: iazi ! Azimuthal Index + integer, optional, intent(in) :: ipol ! Polar Index + real(8) :: xs ! Resultant xs integer :: iazi_, ipol_ @@ -1282,33 +1287,38 @@ module nuclide_header if (present(gout)) then select case(xstype) case('mult') - xs = this % scatter(iazi_,ipol_) % obj % mult(g) % data(gout) + xs = this % scatter(iazi_,ipol_) % obj % mult(gin) % data(gout) case('nu_fission') - xs = this % nu_fission(gout,g,iazi_,ipol_) + xs = this % nu_fission(gout,gin,iazi_,ipol_) case('chi') xs = this % chi(gout,iazi_,ipol_) case('f_mu', 'f_mu/mult') - xs = this % scatter(iazi_,ipol_) % obj % calc_f(g,gout,mu) - if (xstype == 'f_mu/mult') then - xs = xs / this % scatter(iazi_,ipol_) % obj % mult(g) % data(gout) + if (gout < this % scatter(iazi_,ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi_,ipol) % obj % gmax(gin)) then + xs = ZERO + else + xs = this % scatter(iazi_,ipol_) % obj % calc_f(gin,gout,mu) + if (xstype == 'f_mu/mult') then + xs = xs / this % scatter(iazi_,ipol_) % obj % mult(gin) % data(gout) + end if end if end select else select case(xstype) case('total') - xs = this % total(g,iazi_,ipol_) + xs = this % total(gin,iazi_,ipol_) case('absorption') - xs = this % absorption(g,iazi_,ipol_) + xs = this % absorption(gin,iazi_,ipol_) case('fission') - xs = this % fission(g,iazi_,ipol_) + xs = this % fission(gin,iazi_,ipol_) case('k_fission') if (allocated(this % k_fission)) then - xs = this % k_fission(g,iazi_,ipol_) + xs = this % k_fission(gin,iazi_,ipol_) end if case('chi') - xs = this % chi(g,iazi_,ipol_) + xs = this % chi(gin,iazi_,ipol_) case('scatter') - xs = this % scatter(iazi_,ipol_) % obj % scattxs(g) + xs = this % scatter(iazi_,ipol_) % obj % scattxs(gin) end select end if diff --git a/src/output.F90 b/src/output.F90 index 125fe010b..768f19775 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -904,7 +904,11 @@ contains write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & "Total Material" else - i_listing = nuclides(i_nuclide) % listing + if (run_CE) then + i_listing = nuclides(i_nuclide) % listing + else + i_listing = nuclides_MG(i_nuclide) % obj % listing + end if write(UNIT=unit_tally, FMT='(1X,2A,1X,A)') repeat(" ", indent), & trim(xs_listings(i_listing) % alias) end if diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 04d48d22f..f36fe6043 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -435,7 +435,11 @@ contains real(8) :: f ! Return value of f(mu) ! Plug mu in to the legendre expansion and go from there - f = evaluate_legendre(this % dist(gin) % data(:,gout),mu) + if (gout < this % gmin(gin) .or. gout > this % gmax(gin)) then + f = ZERO + else + f = evaluate_legendre(this % dist(gin) % data(:,gout),mu) + end if end function scattdatalegendre_calc_f @@ -448,14 +452,18 @@ contains integer :: imu - ! Find mu bin - if (mu == ONE) then - imu = size(this % fmu(gin) % data,dim=1) + if (gout < this % gmin(gin) .or. gout > this % gmax(gin)) then + f = ZERO else - imu = floor((mu + ONE)/ this % dmu + ONE) - end if + ! Find mu bin + if (mu == ONE) then + imu = size(this % fmu(gin) % data,dim=1) + else + imu = floor((mu + ONE)/ this % dmu + ONE) + end if - f = this % fmu(gin) % data(imu,gout) + f = this % fmu(gin) % data(imu,gout) + end if end function scattdatahistogram_calc_f @@ -469,17 +477,21 @@ contains integer :: imu real(8) :: r - ! Find mu bin - if (mu == ONE) then - imu = size(this % fmu(gin) % data,dim=1) - 1 + if (gout < this % gmin(gin) .or. gout > this % gmax(gin)) then + f = ZERO else - imu = floor((mu + ONE)/ this % dmu + ONE) - end if + ! Find mu bin + if (mu == ONE) then + imu = size(this % fmu(gin) % data,dim=1) - 1 + else + imu = floor((mu + ONE)/ this % dmu + ONE) + end if - ! Now interpolate to find f(mu) - r = (mu - this % mu(imu)) / (this % mu(imu + 1) - this % mu(imu)) - f = (ONE - r) * this % fmu(gin) % data(imu,gout) + & - r * this % fmu(gin) % data(imu + 1,gout) + ! Now interpolate to find f(mu) + r = (mu - this % mu(imu)) / (this % mu(imu + 1) - this % mu(imu)) + f = (ONE - r) * this % fmu(gin) % data(imu,gout) + & + r * this % fmu(gin) % data(imu + 1,gout) + end if end function scattdatatabular_calc_f diff --git a/src/tally.F90 b/src/tally.F90 index 5a54d9846..94ca2812c 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -806,6 +806,7 @@ contains real(8) :: macro_scatt ! material macro scatt xs real(8) :: micro_abs ! nuclidic microscopic abs real(8) :: p_uvw(3) ! Particle's current uvw + real(8) :: mult ! Weight multiplier ! Set the direction, if needed for nuclidic data, so that nuc % get_xs ! knows wihch direction it should be using for direction-dependent @@ -866,7 +867,7 @@ contains else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'total', UVW=p_uvw) * & + score = nuc % get_xs('total',p % g,UVW=p_uvw) * & atom_density * flux end associate else @@ -908,7 +909,7 @@ contains ! Note SCORE_SCATTER_N not available for tracklength/collision. if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'scatter', UVW=p_uvw) * & + score = nuc % get_xs('scatter',p % g,UVW=p_uvw) * & atom_density * flux end associate else @@ -917,16 +918,28 @@ contains end if end if +!!! CURRENT PROBLEMS: +!!! 1) See comment jus below +!!! 2) groups and energy filters are in reverse order (i.e., low E filter is bin 1) +!!! 3) nuclide sigt/macro sigt weight change +!!! 4) do i have right p % g vs p % last_g everywhere throughout?? + +!!! This next if/else block (and equivalent in nu scatter & PN/YN) +!!! is incorrect. There is no outgoing energy group if using tracklength +!!! scoring. if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs(p % g, 'f_mu/mult', p % last_g, & - p % last_uvw, p % mu) + score = score * nuc % get_xs('f_mu/mult',p % last_g,p % g, & + p % last_uvw,p % mu) end associate else - score = score / & - macro_xs(p % material) % obj % get_xs(p % g, 'mult', & - p % last_g, & - p % last_uvw) + mult = macro_xs(p % material) % obj % get_xs('mult',p % last_g,p % g, & + p % last_uvw) + if (mult > ZERO) then + score = score / mult + else + score = ZERO + end if end if @@ -944,14 +957,17 @@ contains if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs(p % g, 'f_mu/mult', p % last_g, & - p % last_uvw, p % mu) + score = score * nuc % get_xs('f_mu/mult',p % last_g,p % g, & + p % last_uvw,p % mu) end associate else - score = score / & - macro_xs(p % material) % obj % get_xs(p % g, 'mult', & - p % last_g, & - p % last_uvw) + mult = macro_xs(p % material) % obj % get_xs('mult',p % last_g,p % g, & + p % last_uvw) + if (mult > ZERO) then + score = score / mult + else + score = ZERO + end if end if @@ -969,14 +985,17 @@ contains if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs(p % g, 'f_mu/mult', p % last_g, & - p % last_uvw, p % mu) + score = score * nuc % get_xs('f_mu/mult',p % last_g,p % g, & + p % last_uvw,p % mu) end associate else - score = score / & - macro_xs(p % material) % obj % get_xs(p % g, 'mult', & - p % last_g, & - p % last_uvw) + mult = macro_xs(p % material) % obj % get_xs('mult',p % last_g,p % g, & + p % last_uvw) + if (mult > ZERO) then + score = score / mult + else + score = ZERO + end if end if @@ -990,7 +1009,7 @@ contains score = p % wgt if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs(p % g, 'f_mu', p % last_g, & + score = score * nuc % get_xs('f_mu',p % last_g,p % g, & p % last_uvw, p % mu) end associate end if @@ -1009,7 +1028,7 @@ contains score = p % wgt if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs(p % g, 'f_mu', p % last_g, & + score = score * nuc % get_xs('f_mu',p % last_g,p % g, & p % last_uvw, p % mu) end associate end if @@ -1028,7 +1047,7 @@ contains score = p % wgt if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs(p % g, 'f_mu', p % last_g, & + score = score * nuc % get_xs('f_mu',p % last_g,p % g, & p % last_uvw, p % mu) end associate end if @@ -1075,7 +1094,7 @@ contains else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'absorption', UVW=p_uvw) & + score = nuc % get_xs('absorption',p % g,UVW=p_uvw) & * atom_density * flux end associate else @@ -1091,11 +1110,10 @@ contains ! calculate fraction of absorptions that would have resulted in ! fission associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p_uvw) + micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) if (micro_abs > ZERO) then score = p % absorb_wgt * & - nuc % get_xs(p % g, 'fission', UVW=p_uvw) & - / micro_abs + nuc % get_xs('fission',p % g,UVW=p_uvw) / micro_abs else score = ZERO end if @@ -1108,20 +1126,20 @@ contains ! fission reaction rate associate (nuc => nuclides_MG(i_nuclide) % obj) score = p % last_wgt & - * nuc % get_xs(p % g, 'fission', UVW=p_uvw) & - / nuc % get_xs(p % g, 'absorption', UVW=p_uvw) + * nuc % get_xs('fission',p % g,UVW=p_uvw) & + / nuc % get_xs('absorption',p % g,UVW=p_uvw) end associate end if else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'fission', UVW=p_uvw) * & + score = nuc % get_xs('fission',p % g,UVW=p_uvw) * & atom_density * flux end associate else - score = flux * macro_xs(p % material) % obj % get_xs(p % g, & - 'fission', UVW=p_uvw) + score = flux * macro_xs(p % material) % obj % get_xs('fission',& + p % g,UVW=p_uvw) end if end if @@ -1145,11 +1163,10 @@ contains ! calculate fraction of absorptions that would have resulted in ! nu-fission associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p_uvw) + micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) if (micro_abs > ZERO) then score = p % absorb_wgt * & - nuc % get_xs(p % g, 'fission', UVW=p_uvw) / & - micro_abs + nuc % get_xs('fission',p % g,UVW=p_uvw) / micro_abs else score = ZERO end if @@ -1168,7 +1185,7 @@ contains else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'nu_fission', UVW=p_uvw) & + score = nuc % get_xs('nu_fission',p % g,UVW=p_uvw) & * atom_density * flux end associate else @@ -1186,10 +1203,10 @@ contains ! calculate fraction of absorptions that would have resulted in ! fission scale by kappa-fission associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p_uvw) + micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) if (micro_abs > ZERO) then score = p % absorb_wgt * & - nuc % get_xs(p % g, 'k_fission', UVW=p_uvw) / & + nuc % get_xs('k_fission',p % g,UVW=p_uvw) / & micro_abs end if end associate @@ -1201,20 +1218,20 @@ contains ! the fission energy production rate associate (nuc => nuclides_MG(i_nuclide) % obj) score = p % last_wgt * & - nuc % get_xs(p % g, 'k_fission', UVW=p_uvw) / & - nuc % get_xs(p % g, 'absorption', UVW=p_uvw) + nuc % get_xs('k_fission',p % g,UVW=p_uvw) / & + nuc % get_xs('absorption',p % g,UVW=p_uvw) end associate end if else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'k_fission', UVW=p_uvw) & + score = nuc % get_xs('k_fission',p % g,UVW=p_uvw) & * atom_density * flux end associate else - score = flux * macro_xs(p % material) % obj % get_xs(p % g, & - 'k_fission', UVW=p_uvw) + score = flux * macro_xs(p % material) % obj % get_xs('k_fission', & + p % g,UVW=p_uvw) end if end if From de6573300930e7e3a1a69d6e05bbf2b2c4b4f4ee Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 10 Mar 2016 19:54:42 -0500 Subject: [PATCH 039/259] Fixed the problem identified by @wbinventor in issue #608. --- docs/source/usersguide/input.rst | 8 ++++ src/input_xml.F90 | 64 +++++++++++++++++--------------- 2 files changed, 42 insertions(+), 30 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index eb620b650..2158e1d8c 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1258,6 +1258,9 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: None + .. note:: The ``scattering`` attribute/sub-element is not used in the + multi-group :ref:`energy_mode`. + :element: Specifies that a natural element is present in the material. The natural @@ -1293,6 +1296,9 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: None + .. note:: The ``scattering`` attribute/sub-element is not used in the + multi-group :ref:`energy_mode`. + :sab: Associates an S(a,b) table with the material. This element has attributes/sub-elements called ``name`` and ``xs``. The ``name`` attribute @@ -1301,6 +1307,8 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: None + .. note:: This element is not used in the multi-group :ref:`energy_mode`. + :macroscopic: The ``macroscopic`` element is similar to the ``nuclide`` element, but, recognizes that some multi-group libraries may be providing material diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 47b0aaacf..295422533 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2098,21 +2098,6 @@ contains end if end if - ! Check enforced isotropic lab scattering - if (check_for_node(node_nuc, "scattering")) then - call get_node_value(node_nuc, "scattering", temp_str) - if (adjustl(to_lower(temp_str)) == "iso-in-lab") then - call list_iso_lab % append(1) - else if (adjustl(to_lower(temp_str)) == "data") then - call list_iso_lab % append(0) - else - call fatal_error("Scattering must be isotropic in lab or follow& - & the ACE file data") - end if - else - call list_iso_lab % append(0) - end if - ! store full name call get_node_value(node_nuc, "name", temp_str) if (check_for_node(node_nuc, "xs")) & @@ -2157,6 +2142,23 @@ contains end if end if + ! Check enforced isotropic lab scattering + if (run_CE) then + if (check_for_node(node_nuc, "scattering")) then + call get_node_value(node_nuc, "scattering", temp_str) + if (adjustl(to_lower(temp_str)) == "iso-in-lab") then + call list_iso_lab % append(1) + else if (adjustl(to_lower(temp_str)) == "data") then + call list_iso_lab % append(0) + else + call fatal_error("Scattering must be isotropic in lab or follow& + & the ACE file data") + end if + else + call list_iso_lab % append(0) + end if + end if + ! store full name call get_node_value(node_nuc, "name", temp_str) if (check_for_node(node_nuc, "xs")) & @@ -2251,23 +2253,25 @@ contains n_nuc_ele = list_names % size() - n_nuc_ele ! Check enforced isotropic lab scattering - if (check_for_node(node_ele, "scattering")) then - call get_node_value(node_ele, "scattering", temp_str) - else - temp_str = "data" - end if - - ! Set ace or iso-in-lab scattering for each nuclide in element - do k = 1, n_nuc_ele - if (adjustl(to_lower(temp_str)) == "iso-in-lab") then - call list_iso_lab % append(1) - else if (adjustl(to_lower(temp_str)) == "data") then - call list_iso_lab % append(0) + if (run_CE) then + if (check_for_node(node_ele, "scattering")) then + call get_node_value(node_ele, "scattering", temp_str) else - call fatal_error("Scattering must be isotropic in lab or follow& - & the ACE file data") + temp_str = "data" end if - end do + + ! Set ace or iso-in-lab scattering for each nuclide in element + do k = 1, n_nuc_ele + if (adjustl(to_lower(temp_str)) == "iso-in-lab") then + call list_iso_lab % append(1) + else if (adjustl(to_lower(temp_str)) == "data") then + call list_iso_lab % append(0) + else + call fatal_error("Scattering must be isotropic in lab or follow& + & the ACE file data") + end if + end do + end if end do NATURAL_ELEMENTS From dba40a91aa826339610eb2bb336da45637257629 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 11 Mar 2016 06:43:40 -0500 Subject: [PATCH 040/259] Saving status on updating tallying for nuclide specifi quantities --- src/input_xml.F90 | 29 ++++-- src/macroxs_header.F90 | 8 +- src/nuclide_header.F90 | 20 ++-- src/particle_header.F90 | 2 +- src/physics_mg.F90 | 2 +- src/tally.F90 | 203 ++++++++++++++++++++++++++++------------ 6 files changed, 184 insertions(+), 80 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index a7366d2cd..64016b8d5 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2842,11 +2842,15 @@ contains allocate(t % filters(j) % real_bins(n_words)) call get_node_array(node_filt, "bins", t % filters(j) % real_bins) + ! We can save tallying time if we know that the tally bins + ! match the energy group structure. In that case, the matching bin + ! index is simply the group (after flipping for the different + ! ordering of the library and tallying systems). if (.not. run_CE) then - if (n_words /= energy_groups + 1) then - t % energy_matches_groups = .false. - else if (all(t % filters(j) % real_bins == energy_bins)) then - t % energy_matches_groups = .false. + if (n_words == energy_groups + 1) then + if (all(t % filters(j) % real_bins == & + energy_bins(energy_groups + 1:1:-1))) & + t % energy_matches_groups = .true. end if end if @@ -2861,11 +2865,15 @@ contains allocate(t % filters(j) % real_bins(n_words)) call get_node_array(node_filt, "bins", t % filters(j) % real_bins) + ! We can save tallying time if we know that the tally bins + ! match the energy group structure. In that case, the matching bin + ! index is simply the group (after flipping for the different + ! ordering of the library and tallying systems). if (.not. run_CE) then - if (n_words /= energy_groups + 1) then - t % energy_matches_groups = .false. - else if (all(t % filters(j) % real_bins == energy_bins)) then - t % energy_matches_groups = .false. + if (n_words == energy_groups + 1) then + if (all(t % filters(j) % real_bins == & + energy_bins(energy_groups + 1:1:-1))) & + t % energyout_matches_groups = .true. end if end if @@ -4502,6 +4510,7 @@ contains type(Node), pointer :: doc => null() type(Node), pointer :: node_xsdata => null() type(NodeList), pointer :: node_xsdata_list => null() + real(8), allocatable :: rev_energy_bins(:) ! Check if cross_sections.xml exists inquire(FILE=path_cross_sections, EXIST=file_exists) @@ -4523,6 +4532,7 @@ contains call fatal_error("groups element must exist!") end if + allocate(rev_energy_bins(energy_groups + 1)) allocate(energy_bins(energy_groups + 1)) if (check_for_node(doc, "group_structure")) then ! Get neutron group structure @@ -4531,6 +4541,9 @@ contains call fatal_error("group_structures element must exist!") end if + ! First reverse the order of energy_groups + energy_bins = energy_bins(energy_groups + 1:1:-1) + allocate(energy_bin_avg(energy_groups)) do i = 1, energy_groups energy_bin_avg(i) = HALF * (energy_bins(i) + energy_bins(i + 1)) diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 6d74b081a..db1ffc479 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -251,11 +251,11 @@ contains do gin = 1, groups do gout = 1, groups this % chi(gout,gin) = this % chi(gout,gin) + atom_density * & - nuc % chi(gout) * nuc % nu_fission(gin,1) + nuc % chi(gout) * nuc % nu_fission(1,gin) end do end do this % nu_fission = this % nu_fission + atom_density * & - nuc % nu_fission(:,1) + nuc % nu_fission(1,:) else this % chi = this % chi + atom_density * nuc % nu_fission do gin = 1, groups @@ -468,11 +468,11 @@ contains do gin = 1, groups do gout = 1, groups this % chi(gout,gin,:,:) = this % chi(gout,gin,:,:) + atom_density * & - nuc % chi(gout,:,:) * nuc % nu_fission(gin,1,:,:) + nuc % chi(gout,:,:) * nuc % nu_fission(1,gin,:,:) end do end do this % nu_fission = this % nu_fission + atom_density * & - nuc % nu_fission(:,1,:,:) + nuc % nu_fission(1,:,:,:) else this % chi = this % chi + atom_density * nuc % nu_fission do gin = 1, groups diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 35048454e..809ecdfa4 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -375,10 +375,10 @@ module nuclide_header ! Get nu_fission (as a vector) if (check_for_node(node_xsdata,"nu_fission")) then - allocate(temp_arr(groups * 1)) + allocate(temp_arr(1 * groups)) call get_node_array(node_xsdata,"nu_fission",temp_arr) - allocate(this % nu_fission(groups,1)) - this % nu_fission = reshape(temp_arr,(/groups,1/)) + allocate(this % nu_fission(1,groups)) + this % nu_fission = reshape(temp_arr,(/1,groups/)) deallocate(temp_arr) else call fatal_error("If fissionable, must provide nu_fission!") @@ -676,10 +676,10 @@ module nuclide_header ! Get nu_fission (as a vector) if (check_for_node(node_xsdata,"nu_fission")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) + allocate(temp_arr(1 * groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata,"nu_fission", temp_arr) - allocate(this % nu_fission(groups,1,this % n_azi,this % n_pol)) - this % nu_fission = reshape(temp_arr, (/groups,1,this % n_azi, & + allocate(this % nu_fission(1,groups,this % n_azi,this % n_pol)) + this % nu_fission = reshape(temp_arr, (/1,groups,this % n_azi, & this % n_pol/)) deallocate(temp_arr) else @@ -1242,6 +1242,8 @@ module nuclide_header xs = this % total(gin) case('absorption') xs = this % absorption(gin) + case('nu_fission') + xs = sum(this % nu_fission(:,gin)) case('fission') xs = this % fission(gin) case('k_fission') @@ -1293,8 +1295,8 @@ module nuclide_header case('chi') xs = this % chi(gout,iazi_,ipol_) case('f_mu', 'f_mu/mult') - if (gout < this % scatter(iazi_,ipol) % obj % gmin(gin) .or. & - gout > this % scatter(iazi_,ipol) % obj % gmax(gin)) then + if (gout < this % scatter(iazi_,ipol_) % obj % gmin(gin) .or. & + gout > this % scatter(iazi_,ipol_) % obj % gmax(gin)) then xs = ZERO else xs = this % scatter(iazi_,ipol_) % obj % calc_f(gin,gout,mu) @@ -1309,6 +1311,8 @@ module nuclide_header xs = this % total(gin,iazi_,ipol_) case('absorption') xs = this % absorption(gin,iazi_,ipol_) + case('nu_fission') + xs = sum(this % nu_fission(:,gin,iazi_,ipol_)) case('fission') xs = this % fission(gin,iazi_,ipol_) case('k_fission') diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 4ad4119b7..8544cb38b 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -202,7 +202,7 @@ contains this % last_g = int(src % E) this % E = energy_bin_avg(this % g) end if - this % last_E = src % E + this % last_E = this % E end subroutine initialize_from_source diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 6a58540c1..93a0c81e2 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -248,7 +248,7 @@ contains mu = TWO * prn() - ONE ! Sample azimuthal angle uniformly in [0,2*pi) - phi = TWO*PI*prn() + phi = TWO * PI * prn() bank_array(i) % uvw(1) = mu bank_array(i) % uvw(2) = sqrt(ONE - mu*mu) * cos(phi) bank_array(i) % uvw(3) = sqrt(ONE - mu*mu) * sin(phi) diff --git a/src/tally.F90 b/src/tally.F90 index 94ca2812c..50daa86fd 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -28,8 +28,9 @@ module tally !$omp threadprivate(position) - procedure(score_general_), pointer :: score_general => null() - procedure(get_scoring_bins_), pointer :: get_scoring_bins => null() + procedure(score_general_), pointer :: score_general => null() + procedure(score_analog_tally_), pointer :: score_analog_tally => null() + procedure(get_scoring_bins_), pointer :: get_scoring_bins => null() abstract interface subroutine score_general_(p, t, start_index, filter_index, i_nuclide, & @@ -45,6 +46,11 @@ module tally real(8), intent(in) :: atom_density ! atom/b-cm end subroutine score_general_ + subroutine score_analog_tally_(p) + import Particle + type(Particle), intent(in) :: p + end subroutine score_analog_tally_ + subroutine get_scoring_bins_(p, i_tally, found_bin) import Particle type(Particle), intent(in) :: p @@ -62,11 +68,13 @@ contains subroutine init_tally_routines() if (run_CE) then - score_general => score_general_ce - get_scoring_bins => get_scoring_bins_ce + score_general => score_general_ce + score_analog_tally => score_analog_tally_ce + get_scoring_bins => get_scoring_bins_ce else - score_general => score_general_mg - get_scoring_bins => get_scoring_bins_mg + score_general => score_general_mg + score_analog_tally => score_analog_tally_mg + get_scoring_bins => get_scoring_bins_mg end if end subroutine init_tally_routines @@ -808,7 +816,7 @@ contains real(8) :: p_uvw(3) ! Particle's current uvw real(8) :: mult ! Weight multiplier - ! Set the direction, if needed for nuclidic data, so that nuc % get_xs + ! Set the direction, if needed, for nuclidic data, so that nuc % get_xs ! knows wihch direction it should be using for direction-dependent ! mgxs if (i_nuclide > 0) then @@ -918,19 +926,10 @@ contains end if end if -!!! CURRENT PROBLEMS: -!!! 1) See comment jus below -!!! 2) groups and energy filters are in reverse order (i.e., low E filter is bin 1) -!!! 3) nuclide sigt/macro sigt weight change -!!! 4) do i have right p % g vs p % last_g everywhere throughout?? - -!!! This next if/else block (and equivalent in nu scatter & PN/YN) -!!! is incorrect. There is no outgoing energy group if using tracklength -!!! scoring. if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) score = score * nuc % get_xs('f_mu/mult',p % last_g,p % g, & - p % last_uvw,p % mu) + p % last_uvw,p % mu) * TWO end associate else mult = macro_xs(p % material) % obj % get_xs('mult',p % last_g,p % g, & @@ -1124,11 +1123,13 @@ contains ! All fission events will contribute, so again we can use ! particle's weight entering the collision as the estimate for the ! fission reaction rate - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = p % last_wgt & - * nuc % get_xs('fission',p % g,UVW=p_uvw) & - / nuc % get_xs('absorption',p % g,UVW=p_uvw) - end associate + if (i_nuclide > 0) then + associate (nuc => nuclides_MG(i_nuclide) % obj) + score = p % last_wgt & + * nuc % get_xs('fission',p % g,UVW=p_uvw) & + / nuc % get_xs('absorption',p % g,UVW=p_uvw) + end associate + end if end if else @@ -1162,15 +1163,17 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! nu-fission - associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) - if (micro_abs > ZERO) then - score = p % absorb_wgt * & - nuc % get_xs('fission',p % g,UVW=p_uvw) / micro_abs - else - score = ZERO - end if - end associate + if (i_nuclide > 0) then + associate (nuc => nuclides_MG(i_nuclide) % obj) + micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) + if (micro_abs > ZERO) then + score = p % absorb_wgt * & + nuc % get_xs('fission',p % g,UVW=p_uvw) / micro_abs + else + score = ZERO + end if + end associate + end if else ! Skip any non-fission events if (.not. p % fission) cycle SCORE_LOOP @@ -1185,8 +1188,8 @@ contains else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs('nu_fission',p % g,UVW=p_uvw) & - * atom_density * flux + score = nuc % get_xs('nu_fission',p % g,UVW=p_uvw) * & + atom_density * flux end associate else score = material_xs % nu_fission * flux @@ -1202,25 +1205,29 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! fission scale by kappa-fission - associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) - if (micro_abs > ZERO) then - score = p % absorb_wgt * & - nuc % get_xs('k_fission',p % g,UVW=p_uvw) / & - micro_abs - end if - end associate + if (i_nuclide > 0) then + associate (nuc => nuclides_MG(i_nuclide) % obj) + micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) + if (micro_abs > ZERO) then + score = p % absorb_wgt * & + nuc % get_xs('k_fission',p % g,UVW=p_uvw) / & + micro_abs + end if + end associate + end if else ! Skip any non-absorption events if (p % event == EVENT_SCATTER) cycle SCORE_LOOP ! All fission events will contribute, so again we can use ! particle's weight entering the collision as the estimate for ! the fission energy production rate - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = p % last_wgt * & - nuc % get_xs('k_fission',p % g,UVW=p_uvw) / & - nuc % get_xs('absorption',p % g,UVW=p_uvw) - end associate + if (i_nuclide > 0) then + associate (nuc => nuclides_MG(i_nuclide) % obj) + score = p % last_wgt * & + nuc % get_xs('k_fission',p % g,UVW=p_uvw) / & + nuc % get_xs('absorption',p % g,UVW=p_uvw) + end associate + end if end if else @@ -1242,6 +1249,16 @@ contains end select + ! If we have a nuclidic tally, we need to scale the score by the nuclides + ! macroscopic total xs over the material's macroscopic total, since we did + ! not sample a specfic nuclide in the physics module. + if (t % estimator == ESTIMATOR_ANALOG .and. i_nuclide > 0) then + associate (nuc => nuclides_MG(i_nuclide) % obj) + score = score * (nuc % get_xs('total',p % g,UVW=p_uvw) * & + atom_density / material_xs % total) + end associate + end if + !######################################################################### ! Expand score if necessary and add to tally results. call expand_and_score(p, t, score_index, filter_index, score_bin, & @@ -1422,7 +1439,7 @@ contains ! triggered at every collision, not every event !=============================================================================== - subroutine score_analog_tally(p) + subroutine score_analog_tally_ce(p) type(Particle), intent(in) :: p @@ -1432,17 +1449,9 @@ contains ! position during the loop integer :: filter_index ! single index for single bin integer :: i_nuclide ! index in nuclides array - real(8) :: last_wgt ! pre-collision particle weight - real(8) :: wgt ! post-collision particle weight - real(8) :: mu ! cosine of angle of collision logical :: found_bin ! scoring bin found? type(TallyObject), pointer :: t - ! Copy particle's pre- and post-collision weight and angle - last_wgt = p % last_wgt - wgt = p % wgt - mu = p % mu - ! A loop over all tallies is necessary because we need to simultaneously ! determine different filter bins for the same tally in order to score to it @@ -1521,7 +1530,87 @@ contains ! Reset tally map positioning position = 0 - end subroutine score_analog_tally + end subroutine score_analog_tally_ce + + subroutine score_analog_tally_mg(p) + + type(Particle), intent(in) :: p + + integer :: i, m + integer :: i_tally + integer :: k ! loop index for nuclide bins + ! position during the loop + integer :: filter_index ! single index for single bin + integer :: i_nuclide ! index in nuclides array + logical :: found_bin ! scoring bin found? + type(TallyObject), pointer :: t + type(Material), pointer :: mat + real(8) :: atom_density + + ! A loop over all tallies is necessary because we need to simultaneously + ! determine different filter bins for the same tally in order to score to it + + TALLY_LOOP: do i = 1, active_analog_tallies % size() + ! Get index of tally and pointer to tally + i_tally = active_analog_tallies % get_item(i) + t => tallies(i_tally) + + ! Get pointer to current material. We need this in order to determine what + ! nuclides are in the material + mat => materials(p % material) + + ! ======================================================================= + ! DETERMINE SCORING BIN COMBINATION + + call get_scoring_bins(p, i_tally, found_bin) + if (.not. found_bin) cycle + + ! ======================================================================= + ! CALCULATE RESULTS AND ACCUMULATE TALLY + + ! If we have made it here, we have a scoring combination of bins for this + ! tally -- now we need to determine where in the results array we should + ! be accumulating the tally values + + ! Determine scoring index for this filter combination + filter_index = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + + ! Check for nuclide bins + k = 0 + NUCLIDE_LOOP: do while (k < t % n_nuclide_bins) + + ! Increment the index in the list of nuclide bins + k = k + 1 + + i_nuclide = t % nuclide_bins(k) + + ! Check to see if this nuclide was in the material of our collision. + do m = 1, mat % n_nuclides + if (mat % nuclide(m) == i_nuclide) then + atom_density = mat % atom_density(m) + exit + end if + end do + + ! Determine score for each bin + call score_general(p, t, (k-1)*t % n_score_bins, filter_index, & + i_nuclide, atom_density, ZERO) + + end do NUCLIDE_LOOP + + ! If the user has specified that we can assume all tallies are spatially + ! separate, this implies that once a tally has been scored to, we needn't + ! check the others. This cuts down on overhead when there are many + ! tallies specified + + if (assume_separate) exit TALLY_LOOP + + end do TALLY_LOOP + + ! Reset tally map positioning + position = 0 + + end subroutine score_analog_tally_mg !=============================================================================== ! SCORE_FISSION_EOUT handles a special case where we need to store neutron @@ -2619,7 +2708,6 @@ contains end if end if - case (FILTER_ENERGYOUT) if (t % energyout_matches_groups) then ! Since all groups are filters, the filter bin is the group @@ -2643,7 +2731,6 @@ contains end if end if - case (FILTER_MU) ! determine mu bin n = t % filters(i) % n_bins From a2d8e9580456e73f2af2999160bba37202d2e4b1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 12 Mar 2016 15:23:32 -0500 Subject: [PATCH 041/259] 1) MG tallies were all sorts of messed up, mostly for nuclidic tallies which i am not a common user for sadly. Now all should be good to go, but i still want to thoroughly test this by seeing if i can create a mgxs library from mg mode and compare that library to the inputted library - both should be the same!. 2) fixed state_point reading/writing issue when using MG mode and nuclidic tallies (pointing to CE nuclide array not MG array), 3) removed N_1N from MG mode, makes no sense to include and at best is a duplicate of scatter, 4) cleaned up MG general tallying routine by combining select cases for all the SCORE_SCATTER* options, and did same for nu-scatter, 5) added ability to do nu-scatter or nu-scatter-0 score type with tracklength if no outgoing E filters applied in MG mode, just like scatter or scatter-0 --- src/input_xml.F90 | 27 +++- src/macroxs_header.F90 | 55 ++++++-- src/nuclide_header.F90 | 20 ++- src/physics_mg.F90 | 3 +- src/state_point.F90 | 6 +- src/summary.F90 | 6 +- src/tally.F90 | 290 ++++++++++++++++------------------------- 7 files changed, 201 insertions(+), 206 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 64016b8d5..89dcc5e99 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3332,8 +3332,13 @@ contains case ('nu-scatter') t % score_bins(j) = SCORE_NU_SCATTER - ! Set tally estimator to analog - t % estimator = ESTIMATOR_ANALOG + ! Set tally estimator to analog for CE mode + ! (MG mode has all data available without a collision being + ! necessary) + if (run_CE) then + t % estimator = ESTIMATOR_ANALOG + end if + case ('scatter-n') if (n_order == 0) then t % score_bins(j) = SCORE_SCATTER @@ -3345,12 +3350,16 @@ contains t % moment_order(j) = n_order case ('nu-scatter-n') - ! Set tally estimator to analog - t % estimator = ESTIMATOR_ANALOG if (n_order == 0) then t % score_bins(j) = SCORE_NU_SCATTER else t % score_bins(j) = SCORE_NU_SCATTER_N + ! Set tally estimator to analog for CE mode + ! (MG mode has all data available without a collision being + ! necessary) + if (run_CE) then + t % estimator = ESTIMATOR_ANALOG + end if end if t % moment_order(j) = n_order @@ -3391,10 +3400,14 @@ contains call fatal_error("Diffusion score no longer supported for tallies, & &please remove") case ('n1n') - t % score_bins(j) = SCORE_N_1N + if (run_CE) then + t % score_bins(j) = SCORE_N_1N - ! Set tally estimator to analog - t % estimator = ESTIMATOR_ANALOG + ! Set tally estimator to analog + t % estimator = ESTIMATOR_ANALOG + else + call fatal_error("Cannot tally n1n rate in multi-group mode!") + end if case ('n2n', '(n,2n)') t % score_bins(j) = N_2N diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index db1ffc479..ff04d8a4e 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -42,13 +42,14 @@ module macroxs_header integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? end subroutine macroxs_init_ - function macroxs_get_xs_(this, xstype, gin, gout, uvw) result(xs) + function macroxs_get_xs_(this, xstype, gin, gout, uvw, mu) result(xs) import MacroXS class(MacroXS), intent(in) :: this ! The MacroXS to initialize character(*) , intent(in) :: xstype ! Cross Section Type integer, intent(in) :: gin ! Incoming Energy group integer, optional, intent(in) :: gout ! Outgoing Energy group real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8), optional, intent(in) :: mu ! Change in angle real(8) :: xs ! Resultant xs end function macroxs_get_xs_ @@ -547,12 +548,13 @@ contains ! MACROXS_*_GET_XS returns the requested data type !=============================================================================== - function macroxsiso_get_xs(this, xstype, gin, gout, uvw) result(xs) + function macroxsiso_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) class(MacroXSIso), intent(in) :: this ! The MacroXS to initialize character(*) , intent(in) :: xstype ! Type of xs requested integer, intent(in) :: gin ! Incoming Energy group integer, optional, intent(in) :: gout ! Outgoing Energy group real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8), optional, intent(in) :: mu ! Change in angle real(8) :: xs ! Requested x/s select case(xstype) @@ -562,7 +564,7 @@ contains xs = this % absorption(gin) case('fission') xs = this % fission(gin) - case('k_fission') + case('kappa_fission') xs = this % k_fission(gin) case('nu_fission') xs = this % nu_fission(gin) @@ -577,19 +579,33 @@ contains xs = this % scatter % mult(gin) % data(gout) end if else - xs = sum(this % scatter % mult(gin) % data(:)) + xs = dot_product(this % scatter % mult(gin) % data, & + this % scatter % scattxs(gin) * & + this % scatter % energy(gin) % data) + xs = xs / this % scatter % scattxs(gin) + end if + case('f_mu', 'f_mu/mult') + if (gout < this % scatter % gmin(gin) .or. & + gout > this % scatter % gmax(gin)) then + xs = ZERO + else + xs = this % scatter % calc_f(gin, gout, mu) + if (xstype == 'f_mu/mult') then + xs = xs / this % scatter % mult(gin) % data(gout) + end if end if end select end function macroxsiso_get_xs - function macroxsangle_get_xs(this, xstype, gin, gout, uvw) result(xs) - class(MacroXSAngle), intent(in) :: this ! The MacroXS to initialize - character(*) , intent(in) :: xstype ! Type of xs requested - integer, intent(in) :: gin ! Incoming Energy group - integer, optional, intent(in) :: gout ! Outgoing Energy group - real(8), optional, intent(in) :: uvw(3) ! Requested Angle - real(8) :: xs ! Requested x/s + function macroxsangle_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) + class(MacroXSAngle), intent(in) :: this ! The MacroXS to initialize + character(*) , intent(in) :: xstype ! Type of xs requested + integer, intent(in) :: gin ! Incoming Energy group + integer, optional, intent(in) :: gout ! Outgoing Energy group + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8), optional, intent(in) :: mu ! Change in angle + real(8) :: xs ! Requested x/s integer :: iazi, ipol @@ -602,7 +618,7 @@ contains xs = this % absorption(gin,iazi,ipol) case('fission') xs = this % fission(gin,iazi,ipol) - case('k_fission') + case('kappa_fission') xs = this % k_fission(gin,iazi,ipol) case('nu_fission') xs = this % nu_fission(gin,iazi,ipol) @@ -617,7 +633,20 @@ contains xs = this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) end if else - xs = sum(this % scatter(iazi,ipol) % obj % mult(gin) % data(:)) + xs = dot_product(this % scatter(iazi,ipol) % obj % mult(gin) % data, & + this % scatter(iazi,ipol) % obj % scattxs(gin) * & + this % scatter(iazi,ipol) % obj % energy(gin) % data) + xs = xs / this % scatter(iazi,ipol) % obj % scattxs(gin) + end if + case('f_mu', 'f_mu/mult') + if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + xs = ZERO + else + xs = this % scatter(iazi,ipol) % obj % calc_f(gin,gout,mu) + if (xstype == 'f_mu/mult') then + xs = xs / this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + end if end if end select end if diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 809ecdfa4..7a093fa77 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -1215,7 +1215,7 @@ module nuclide_header xs = ZERO if ((xstype == 'nu_fission' .or. xstype == 'fission' .or. xstype =='chi' & - .or. xstype =='k_fission') .and. (.not. this % fissionable)) then + .or. xstype =='kappa_fission') .and. (.not. this % fissionable)) then return end if @@ -1246,7 +1246,7 @@ module nuclide_header xs = sum(this % nu_fission(:,gin)) case('fission') xs = this % fission(gin) - case('k_fission') + case('kappa_fission') if (allocated(this % k_fission)) then xs = this % k_fission(gin) end if @@ -1254,6 +1254,11 @@ module nuclide_header xs = this % chi(gin) case('scatter') xs = this % scatter % scattxs(gin) + case('mult') + xs = dot_product(this % scatter % mult(gin) % data, & + this % scatter % scattxs(gin) * & + this % scatter % energy(gin) % data) + xs = xs / this % scatter % scattxs(gin) end select end if end function nuclideiso_get_xs @@ -1264,8 +1269,8 @@ module nuclide_header character(*), intent(in) :: xstype ! Cross Section Type integer, intent(in) :: gin ! Incoming Energy group integer, optional, intent(in) :: gout ! Outgoing Group - real(8), optional, intent(in) :: mu ! Change in angle real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8), optional, intent(in) :: mu ! Change in angle integer, optional, intent(in) :: iazi ! Azimuthal Index integer, optional, intent(in) :: ipol ! Polar Index real(8) :: xs ! Resultant xs @@ -1275,7 +1280,7 @@ module nuclide_header xs = ZERO if ((xstype == 'nu_fission' .or. xstype == 'fission' .or. xstype =='chi' & - .or. xstype =='k_fission') .and. (.not. this % fissionable)) then + .or. xstype =='kappa_fission') .and. (.not. this % fissionable)) then return end if @@ -1315,7 +1320,7 @@ module nuclide_header xs = sum(this % nu_fission(:,gin,iazi_,ipol_)) case('fission') xs = this % fission(gin,iazi_,ipol_) - case('k_fission') + case('kappa_fission') if (allocated(this % k_fission)) then xs = this % k_fission(gin,iazi_,ipol_) end if @@ -1323,6 +1328,11 @@ module nuclide_header xs = this % chi(gin,iazi_,ipol_) case('scatter') xs = this % scatter(iazi_,ipol_) % obj % scattxs(gin) + case('mult') + xs = dot_product(this % scatter(iazi_,ipol_) % obj % mult(gin) % data, & + this % scatter(iazi_,ipol_) % obj % scattxs(gin) * & + this % scatter(iazi_,ipol_) % obj % energy(gin) % data) + xs = xs / this % scatter(iazi_,ipol_) % obj % scattxs(gin) end select end if diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 93a0c81e2..209808dc9 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -77,6 +77,7 @@ contains call create_fission_sites(p, p % secondary_bank, p % n_secondary) end if end if + ! If survival biasing is being used, the following subroutine adjusts the ! weight of the particle. Otherwise, it checks to see if absorption occurs @@ -256,7 +257,7 @@ contains ! Sample secondary energy distribution for fission reaction and set energy ! in fission bank bank_array(i) % E = & - real(xs % sample_fission_energy(p % g, fission_bank(i) % uvw), 8) + real(xs % sample_fission_energy(p % g, bank_array(i) % uvw), 8) end do ! increment number of bank sites diff --git a/src/state_point.F90 b/src/state_point.F90 index 6c0e309e2..ccd368b49 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -295,7 +295,11 @@ contains NUCLIDE_LOOP: do j = 1, tally%n_nuclide_bins if (tally%nuclide_bins(j) > 0) then ! Get index in cross section listings for this nuclide - i_list = nuclides(tally%nuclide_bins(j))%listing + if (run_CE) then + i_list = nuclides(tally % nuclide_bins(j)) % listing + else + i_list = nuclides_MG(tally % nuclide_bins(j)) % obj % listing + end if ! Determine position of . in alias string (e.g. "U-235.71c"). If ! no . is found, just use the entire string. diff --git a/src/summary.F90 b/src/summary.F90 index e662aa473..41dbee702 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -630,7 +630,11 @@ contains allocate(str_array(t%n_nuclide_bins)) NUCLIDE_LOOP: do j = 1, t%n_nuclide_bins if (t%nuclide_bins(j) > 0) then - i_list = nuclides(t%nuclide_bins(j))%listing + if (run_CE) then + i_list = nuclides(t % nuclide_bins(j)) % listing + else + i_list = nuclides_MG(t % nuclide_bins(j)) % obj % listing + end if i_xs = index(xs_listings(i_list)%alias, '.') if (i_xs > 0) then str_array(j) = xs_listings(i_list)%alias(1:i_xs - 1) diff --git a/src/tally.F90 b/src/tally.F90 index 50daa86fd..d23cd8691 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -814,12 +814,11 @@ contains real(8) :: macro_scatt ! material macro scatt xs real(8) :: micro_abs ! nuclidic microscopic abs real(8) :: p_uvw(3) ! Particle's current uvw - real(8) :: mult ! Weight multiplier - ! Set the direction, if needed, for nuclidic data, so that nuc % get_xs - ! knows wihch direction it should be using for direction-dependent - ! mgxs - if (i_nuclide > 0) then + ! Set the direction to use with get_xs + if (t % estimator == ESTIMATOR_ANALOG) then + p_uvw = p % last_uvw + else p_uvw = p % coord(p % n_coord) % uvw end if @@ -904,153 +903,92 @@ contains end if - case (SCORE_SCATTER, SCORE_SCATTER_N) + case (SCORE_SCATTER, SCORE_SCATTER_N, SCORE_SCATTER_PN, SCORE_SCATTER_YN) if (t % estimator == ESTIMATOR_ANALOG) then ! Skip any event where the particle didn't scatter - if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP + if (p % event /= EVENT_SCATTER) then + if (score_bin == SCORE_SCATTER_PN) then + i = i + t % moment_order(i) + else + i = i + (t % moment_order(i) + 1)**2 - 1 + end if + cycle SCORE_LOOP + end if + ! Since only scattering events make it here, again we can use ! the weight entering the collision as the estimator for the ! reaction rate score = p % last_wgt + if (i_nuclide > 0) then + associate (nuc => nuclides_MG(i_nuclide) % obj) + score = score * nuc % get_xs('f_mu',p % last_g,p % g, & + UVW=p_uvw,MU=p % mu) / & + macro_xs(p % material) % obj % get_xs('f_mu',p % last_g, & + p % g, UVW=p_uvw, & + MU=p % mu) + end associate + end if + else ! Note SCORE_SCATTER_N not available for tracklength/collision. + if (i_nuclide > 0) then + associate (nuc => nuclides_MG(i_nuclide) % obj) + score = nuc % get_xs('scatter',p % g,UVW=p_uvw) * & + atom_density * flux / & + nuc % get_xs('mult',p % g,UVW=p_uvw) + end associate + else + ! Get the scattering x/s (stored in % elastic) and take away + ! the multiplication baked in to sigS + score = material_xs % elastic * flux / & + macro_xs(p % material) % obj % get_xs('mult',p % g,UVW=p_uvw) + end if + end if + + + case (SCORE_NU_SCATTER, SCORE_NU_SCATTER_N, SCORE_NU_SCATTER_PN, & + SCORE_NU_SCATTER_YN) + if (t % estimator == ESTIMATOR_ANALOG) then + ! Skip any event where the particle didn't scatter + if (p % event /= EVENT_SCATTER) then + if (score_bin == SCORE_NU_SCATTER_PN) then + i = i + t % moment_order(i) + else if (score_bin == SCORE_NU_SCATTER_YN) then + i = i + (t % moment_order(i) + 1)**2 - 1 + end if + cycle SCORE_LOOP + end if + + ! For scattering production, we need to use the pre-collision + ! weight times the multiplicity as the estimate for the number of + ! neutrons exiting a reaction with neutrons in the exit channel + score = p % wgt + + if (i_nuclide > 0) then + associate (nuc => nuclides_MG(i_nuclide) % obj) + score = score * nuc % get_xs('f_mu',p % last_g,p % g, & + UVW=p_uvw,MU=p % mu) / & + macro_xs(p % material) % obj % get_xs('f_mu',p % last_g, & + p % g, UVW=p_uvw, & + MU=p % mu) + end associate + end if + + else + ! Note SCORE_NU_SCATTER_* not available for tracklength/collision. if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) score = nuc % get_xs('scatter',p % g,UVW=p_uvw) * & atom_density * flux end associate else - ! Get the scattering x/s (stored in % elastic) + ! Get the scattering x/s (stored in % elastic) and take away + ! the multiplication baked in to sigS score = material_xs % elastic * flux end if end if - if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs('f_mu/mult',p % last_g,p % g, & - p % last_uvw,p % mu) * TWO - end associate - else - mult = macro_xs(p % material) % obj % get_xs('mult',p % last_g,p % g, & - p % last_uvw) - if (mult > ZERO) then - score = score / mult - else - score = ZERO - end if - end if - - - case (SCORE_SCATTER_PN) - ! Only analog estimators are available. - ! Skip any event where the particle didn't scatter - if (p % event /= EVENT_SCATTER) then - i = i + t % moment_order(i) - cycle SCORE_LOOP - end if - ! Since only scattering events make it here, again we can use - ! the weight entering the collision as the estimator for the - ! reaction rate - score = p % last_wgt - - if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs('f_mu/mult',p % last_g,p % g, & - p % last_uvw,p % mu) - end associate - else - mult = macro_xs(p % material) % obj % get_xs('mult',p % last_g,p % g, & - p % last_uvw) - if (mult > ZERO) then - score = score / mult - else - score = ZERO - end if - end if - - - case (SCORE_SCATTER_YN) - ! Only analog estimators are available. - ! Skip any event where the particle didn't scatter - if (p % event /= EVENT_SCATTER) then - i = i + (t % moment_order(i) + 1)**2 - 1 - cycle SCORE_LOOP - end if - ! Since only scattering events make it here, again we can use - ! the weight entering the collision as the estimator for the - ! reaction rate - score = p % last_wgt - - if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs('f_mu/mult',p % last_g,p % g, & - p % last_uvw,p % mu) - end associate - else - mult = macro_xs(p % material) % obj % get_xs('mult',p % last_g,p % g, & - p % last_uvw) - if (mult > ZERO) then - score = score / mult - else - score = ZERO - end if - end if - - - case (SCORE_NU_SCATTER, SCORE_NU_SCATTER_N) - ! Only analog estimators are available. - ! Skip any event where the particle didn't scatter - if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP - ! For scattering production, we need to use the pre-collision - ! weight times the multiplicity as the estimate for the number of - ! neutrons exiting a reaction with neutrons in the exit channel - score = p % wgt - if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs('f_mu',p % last_g,p % g, & - p % last_uvw, p % mu) - end associate - end if - - - case (SCORE_NU_SCATTER_PN) - ! Only analog estimators are available. - ! Skip any event where the particle didn't scatter - if (p % event /= EVENT_SCATTER) then - i = i + t % moment_order(i) - cycle SCORE_LOOP - end if - ! For scattering production, we need to use the pre-collision - ! weight times the multiplicity as the estimate for the number of - ! neutrons exiting a reaction with neutrons in the exit channel - score = p % wgt - if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs('f_mu',p % last_g,p % g, & - p % last_uvw, p % mu) - end associate - end if - - - case (SCORE_NU_SCATTER_YN) - ! Only analog estimators are available. - ! Skip any event where the particle didn't scatter - if (p % event /= EVENT_SCATTER) then - i = i + (t % moment_order(i) + 1)**2 - 1 - cycle SCORE_LOOP - end if - ! For scattering production, we need to use the pre-collision - ! weight times the multiplicity as the estimate for the number of - ! neutrons exiting a reaction with neutrons in the exit channel - score = p % wgt - if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs('f_mu',p % last_g,p % g, & - p % last_uvw, p % mu) - end associate - end if - case (SCORE_TRANSPORT) ! Only analog estimators are available. @@ -1066,16 +1004,6 @@ contains score = (macro_total - p % mu * macro_scatt) * (ONE / macro_scatt) - case (SCORE_N_1N) - ! Only analog estimators are available. - ! Skip any event where the particle didn't scatter - if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP - ! Skip any events where weight of particle changed - if (p % wgt /= p % last_wgt) cycle SCORE_LOOP - ! All events that reach this point are (n,1n) reactions - score = p % last_wgt - - case (SCORE_ABSORPTION) if (t % estimator == ESTIMATOR_ANALOG) then if (survival_biasing) then @@ -1125,10 +1053,19 @@ contains ! fission reaction rate if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = p % last_wgt & - * nuc % get_xs('fission',p % g,UVW=p_uvw) & - / nuc % get_xs('absorption',p % g,UVW=p_uvw) + score = p % last_wgt * & + nuc % get_xs('fission',p % g,UVW=p_uvw) * & + atom_density / & + macro_xs(p % material) % obj % get_xs('absorption',& + p % g,UVW=p_uvw) end associate + else + score = p % last_wgt * & + macro_xs(p % material) % obj % get_xs('fission', & + p % g,UVW=p_uvw) * & + atom_density / & + macro_xs(p % material) % obj % get_xs('absorption', & + p % g,UVW=p_uvw) end if end if @@ -1139,7 +1076,7 @@ contains atom_density * flux end associate else - score = flux * macro_xs(p % material) % obj % get_xs('fission',& + score = flux * macro_xs(p % material) % obj % get_xs('fission', & p % g,UVW=p_uvw) end if @@ -1168,7 +1105,7 @@ contains micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) if (micro_abs > ZERO) then score = p % absorb_wgt * & - nuc % get_xs('fission',p % g,UVW=p_uvw) / micro_abs + nuc % get_xs('nu_fission',p % g,UVW=p_uvw) / micro_abs else score = ZERO end if @@ -1198,47 +1135,54 @@ contains case (SCORE_KAPPA_FISSION) - ! Determine kappa-fission cross section - score = ZERO if (t % estimator == ESTIMATOR_ANALOG) then if (survival_biasing) then ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in - ! fission scale by kappa-fission - if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) - if (micro_abs > ZERO) then - score = p % absorb_wgt * & - nuc % get_xs('k_fission',p % g,UVW=p_uvw) / & - micro_abs - end if - end associate - end if + ! fission + associate (nuc => nuclides_MG(i_nuclide) % obj) + micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) + if (micro_abs > ZERO) then + score = p % absorb_wgt * & + nuc % get_xs('kappa_fission',p % g,UVW=p_uvw) / micro_abs + else + score = ZERO + end if + end associate else ! Skip any non-absorption events if (p % event == EVENT_SCATTER) cycle SCORE_LOOP ! All fission events will contribute, so again we can use - ! particle's weight entering the collision as the estimate for - ! the fission energy production rate + ! particle's weight entering the collision as the estimate for the + ! fission reaction rate if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) score = p % last_wgt * & - nuc % get_xs('k_fission',p % g,UVW=p_uvw) / & - nuc % get_xs('absorption',p % g,UVW=p_uvw) + nuc % get_xs('kappa_fission',p % g,UVW=p_uvw) * & + atom_density / & + macro_xs(p % material) % obj % get_xs('absorption',& + p % g,UVW=p_uvw) end associate + else + score = p % last_wgt * & + macro_xs(p % material) % obj % get_xs('kappa_fission', & + p % g,UVW=p_uvw) * & + atom_density / & + macro_xs(p % material) % obj % get_xs('absorption', & + p % g,UVW=p_uvw) end if end if else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs('k_fission',p % g,UVW=p_uvw) & - * atom_density * flux + score = nuc % get_xs('kappa_fission',p % g,UVW=p_uvw) * & + atom_density * flux end associate else - score = flux * macro_xs(p % material) % obj % get_xs('k_fission', & + score = flux * macro_xs(p % material) % obj % get_xs('kappa_fission', & p % g,UVW=p_uvw) + end if end if @@ -1249,16 +1193,6 @@ contains end select - ! If we have a nuclidic tally, we need to scale the score by the nuclides - ! macroscopic total xs over the material's macroscopic total, since we did - ! not sample a specfic nuclide in the physics module. - if (t % estimator == ESTIMATOR_ANALOG .and. i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * (nuc % get_xs('total',p % g,UVW=p_uvw) * & - atom_density / material_xs % total) - end associate - end if - !######################################################################### ! Expand score if necessary and add to tally results. call expand_and_score(p, t, score_index, filter_index, score_bin, & From a3e3c8278ef5e7aa55e79ebf92706ca8e6278653 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 12 Mar 2016 15:30:44 -0500 Subject: [PATCH 042/259] Updating tallying test for previous commit --- tests/test_mg_tallies/results_true.dat | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_mg_tallies/results_true.dat b/tests/test_mg_tallies/results_true.dat index 5f4964a4e..debbfa537 100644 --- a/tests/test_mg_tallies/results_true.dat +++ b/tests/test_mg_tallies/results_true.dat @@ -2892,12 +2892,12 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -4.075585E+01 -3.339527E+02 +4.076711E+01 +3.341374E+02 4.077838E+01 3.343221E+02 -6.274554E+00 -7.936999E+00 +6.274781E+00 +7.937573E+00 6.275007E+00 7.938146E+00 1.122968E+02 From eb75826cae283d7b93bdfbad9ea188ca91785f0a Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 12 Mar 2016 15:52:54 -0500 Subject: [PATCH 043/259] Added abstract class for the mgxs data. Still need to do the actual extended types Iso and Angle --- src/mgxs_header.F90 | 129 +++++++++++++++++++++++++++++++++++++++++ src/nuclide_header.F90 | 2 +- 2 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 src/mgxs_header.F90 diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 new file mode 100644 index 000000000..8ae55da94 --- /dev/null +++ b/src/mgxs_header.F90 @@ -0,0 +1,129 @@ +module mgxs_header + + use constants, only: MAX_FILE_LEN, ZERO, ONE, TWO, PI + use error, only: fatal_error + use list_header, only: ListInt + use material_header, only: material + use math, only: calc_pn, calc_rn, expand_harmonic, & + evaluate_legendre, find_angle + use nuclide_header, only: NuclideMGContainer, MaterialMacroXS + use random_lcg, only: prn + use scattdata_header + use string + use xml_interface + +!=============================================================================== +! MGXS contains the base mgxs data for a nuclide/material +!=============================================================================== + + type, abstract :: Mgxs + character(12) :: name ! name of dataset, e.g. 92235.03c + integer :: zaid ! Z and A identifier, e.g. 92235 + real(8) :: awr ! Atomic Weight Ratio + integer :: listing ! index in xs_listings + real(8) :: kT ! temperature in MeV (k*T) + + ! Fission information + logical :: fissionable ! mgxs object is fissionable? + integer :: scatt_type ! either legendre, histogram, or tabular. + + contains + procedure(mgxs_print_), deferred :: print ! Writes object info + procedure(mgxs_init_xml_), deferred :: init_xml ! Initialize the data + procedure(mgxs_get_xs_), deferred :: get_xs ! Get the requested xs + procedure(mgxs_combine_), deferred :: combine ! initializes object + ! Sample the outgoing energy from a fission event + procedure(mgxs_sample_fission_), deferred :: sample_fission_energy + ! Sample the outgoing energy and angle from a scatter event + procedure(mgxs_sample_scatter_), deferred :: sample_scatter + ! Calculate the material specific MGXS data from the nuclides + procedure(mgxs_calculate_xs_), deferred :: calculate_xs + end type Mgxs + + abstract interface + subroutine mgxs_print_(this, unit) + import Mgxs + class(Mgxs),intent(in) :: this + integer, optional, intent(in) :: unit + end subroutine mgxs_print_ + + subroutine mgxs_init_xml_(this, node_xsdata, groups, get_kfiss, get_fiss, & + max_order) + import Mgxs, Node + class(Mgxs), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(in) :: max_order ! Maximum requested order + end subroutine mgxs_init_xml_ + + function mgxs_get_xs_(this, xstype, gin, gout, uvw, mu, iazi, ipol) & + result(xs) + import Mgxs + class(Mgxs), intent(in) :: this + character(*), intent(in) :: xstype ! Cross Section Type + integer, intent(in) :: gin ! Incoming Energy group + integer, optional, intent(in) :: gout ! Outgoing Group + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8), optional, intent(in) :: mu ! Change in angle + integer, optional, intent(in) :: iazi ! Azimuthal Index + integer, optional, intent(in) :: ipol ! Polar Index + real(8) :: xs ! Resultant xs + end function mgxs_get_xs_ + + pure function mgxs_calc_f_(this, gin, gout, mu, uvw, iazi, ipol) result(f) + import Mgxs + class(Mgxs), intent(in) :: this + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8), intent(in), optional :: uvw(3) ! Direction vector + integer, intent(in), optional :: iazi ! Incoming Energy Group + integer, intent(in), optional :: ipol ! Outgoing Energy Group + real(8) :: f ! Return value of f(mu) + + end function mgxs_calc_f_ + + subroutine mgxs_combine_(this, mat, nuclides, groups, get_kfiss, get_fiss, & + max_order, scatt_type) + import Mgxs, Material, NuclideMGContainer, MAX_LINE_LEN + class(Mgxs), intent(inout) :: this ! The Mgxs to initialize + type(Material), pointer, intent(in) :: mat ! base material + type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from + integer, intent(in) :: groups ! Number of E groups + logical, intent(in) :: get_kfiss ! Should we get kfiss data? + logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? + end subroutine mgxs_combine_ + + function mgxs_sample_fission_(this, gin, uvw) result(gout) + import Mgxs + class(Mgxs), intent(in) :: this ! Data to work with + integer, intent(in) :: gin ! Incoming energy group + real(8), intent(in) :: uvw(3) ! Particle Direction + integer :: gout ! Sampled outgoing group + + end function mgxs_sample_fission_ + + subroutine mgxs_sample_scatter_(this, uvw, gin, gout, mu, wgt) + import Mgxs + class(Mgxs), intent(in) :: this + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + end subroutine mgxs_sample_scatter_ + + subroutine mgxs_calculate_xs_(this, gin, uvw, xs) + import Mgxs, MaterialMacroXS + class(Mgxs), intent(in) :: this + integer, intent(in) :: gin ! Incoming neutron group + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + type(MaterialMacroXS), intent(inout) :: xs + end subroutine mgxs_calculate_xs_ + end interface + +end module mgxs_header \ No newline at end of file diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 3a75e8b61..e964e970d 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -28,7 +28,7 @@ module nuclide_header real(8) :: kT ! temperature in MeV (k*T) ! Fission information - logical :: fissionable ! nuclide is fissionable? + logical :: fissionable ! nuclide is fissionable? contains procedure(nuclide_print_), deferred :: print ! Writes nuclide info From 96c5e42858b3d6819632becbd763fead1d988429 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 13 Mar 2016 09:00:45 -0400 Subject: [PATCH 044/259] Implemented the Mgxs objects member functions so now we can start replacing NuclideMG and MacroXS directly --- src/mgxs_header.F90 | 1657 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1637 insertions(+), 20 deletions(-) diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 8ae55da94..36e3964da 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -2,6 +2,7 @@ module mgxs_header use constants, only: MAX_FILE_LEN, ZERO, ONE, TWO, PI use error, only: fatal_error + use, intrinsic :: ISO_FORTRAN_ENV, only: OUTPUT_UNIT use list_header, only: ListInt use material_header, only: material use math, only: calc_pn, calc_rn, expand_harmonic, & @@ -28,27 +29,21 @@ module mgxs_header integer :: scatt_type ! either legendre, histogram, or tabular. contains - procedure(mgxs_print_), deferred :: print ! Writes object info - procedure(mgxs_init_xml_), deferred :: init_xml ! Initialize the data - procedure(mgxs_get_xs_), deferred :: get_xs ! Get the requested xs - procedure(mgxs_combine_), deferred :: combine ! initializes object - ! Sample the outgoing energy from a fission event + procedure(mgxs_init_file_), deferred :: init_file ! Initialize the data + procedure(mgxs_print_), deferred :: print ! Writes object info + procedure(mgxs_get_xs_), deferred :: get_xs ! Get the requested xs + ! procedure(mgxs_combine_), deferred :: combine ! initializes object + ! ! Sample the outgoing energy from a fission event procedure(mgxs_sample_fission_), deferred :: sample_fission_energy - ! Sample the outgoing energy and angle from a scatter event + ! ! Sample the outgoing energy and angle from a scatter event procedure(mgxs_sample_scatter_), deferred :: sample_scatter - ! Calculate the material specific MGXS data from the nuclides + ! ! Calculate the material specific MGXS data from the nuclides procedure(mgxs_calculate_xs_), deferred :: calculate_xs end type Mgxs abstract interface - subroutine mgxs_print_(this, unit) - import Mgxs - class(Mgxs),intent(in) :: this - integer, optional, intent(in) :: unit - end subroutine mgxs_print_ - - subroutine mgxs_init_xml_(this, node_xsdata, groups, get_kfiss, get_fiss, & - max_order) + subroutine mgxs_init_file_(this, node_xsdata, groups, get_kfiss, get_fiss, & + max_order) import Mgxs, Node class(Mgxs), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml @@ -56,10 +51,15 @@ module mgxs_header logical, intent(in) :: get_kfiss ! Need Kappa-Fission? logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order - end subroutine mgxs_init_xml_ + end subroutine mgxs_init_file_ - function mgxs_get_xs_(this, xstype, gin, gout, uvw, mu, iazi, ipol) & - result(xs) + subroutine mgxs_print_(this, unit) + import Mgxs + class(Mgxs),intent(in) :: this + integer, optional, intent(in) :: unit + end subroutine mgxs_print_ + + function mgxs_get_xs_(this, xstype, gin, gout, uvw, mu) result(xs) import Mgxs class(Mgxs), intent(in) :: this character(*), intent(in) :: xstype ! Cross Section Type @@ -67,8 +67,6 @@ module mgxs_header integer, optional, intent(in) :: gout ! Outgoing Group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8), optional, intent(in) :: mu ! Change in angle - integer, optional, intent(in) :: iazi ! Azimuthal Index - integer, optional, intent(in) :: ipol ! Polar Index real(8) :: xs ! Resultant xs end function mgxs_get_xs_ @@ -126,4 +124,1623 @@ module mgxs_header end subroutine mgxs_calculate_xs_ end interface +!=============================================================================== +! MGXSISO contains the base MGXS data specifically for +! isotropically weighted MGXS +!=============================================================================== + + type, extends(Mgxs) :: MgxsIso + + ! Microscopic cross sections + real(8), allocatable :: total(:) ! total cross section + real(8), allocatable :: absorption(:) ! absorption cross section + class(ScattData), allocatable :: scatter ! scattering information + real(8), allocatable :: nu_fission(:) ! fission matrix (Gout x Gin) + real(8), allocatable :: k_fission(:) ! kappa-fission + real(8), allocatable :: fission(:) ! neutron production + real(8), allocatable :: chi(:,:) ! Fission Spectra + + contains + procedure :: init_file => mgxsiso_init_file ! Initialize Nuclidic MGXS Data + procedure :: print => mgxsiso_print ! Writes nuclide info + procedure :: get_xs => mgxsiso_get_xs ! Gets Size of Data w/in Object + ! procedure :: combine => mgxsiso_combine ! inits object + procedure :: sample_fission_energy => mgxsiso_sample_fission_energy + procedure :: sample_scatter => mgxsiso_sample_scatter + procedure :: calculate_xs => mgxsiso_calculate_xs + end type MgxsIso + +!=============================================================================== +! MGXSANGLE contains the base MGXS data specifically for +! angular flux weighted MGXS +!=============================================================================== + + type, extends(Mgxs) :: MgxsAngle + + ! Microscopic cross sections + real(8), allocatable :: total(:,:,:) ! total cross section + real(8), allocatable :: absorption(:,:,:) ! absorption cross section + class(ScattDataContainer), allocatable :: scatter(:,:) ! scattering information + real(8), allocatable :: nu_fission(:,:,:) ! fission matrix (Gout x Gin) + real(8), allocatable :: k_fission(:,:,:) ! kappa-fission + real(8), allocatable :: fission(:,:,:) ! neutron production + real(8), allocatable :: chi(:,:,:,:) ! Fission Spectra + ! In all cases, right-most indices are theta, phi + integer :: n_pol ! Number of polar angles + integer :: n_azi ! Number of azimuthal angles + real(8), allocatable :: polar(:) ! polar angles + real(8), allocatable :: azimuthal(:) ! azimuthal angles + + contains + procedure :: init_file => mgxsang_init_file ! Initialize Nuclidic MGXS Data + procedure :: print => mgxsang_print ! Writes nuclide info + procedure :: get_xs => mgxsang_get_xs ! Gets Size of Data w/in Object + ! procedure :: combine => mgxsang_combine ! inits object + procedure :: sample_fission_energy => mgxsang_sample_fission_energy + procedure :: sample_scatter => mgxsang_sample_scatter + procedure :: calculate_xs => mgxsang_calculate_xs + end type MgxsAngle + +!=============================================================================== +! MGXSCONTAINER pointer array for storing Nuclides +!=============================================================================== + + type MgxsContainer + class(Mgxs), pointer :: obj + end type MgxsContainer + + contains + +!=============================================================================== +! MGXS*_INIT reads in the data from the XML file. At the point of entry +! the file would have been opened and metadata read. This routine begins with +! the xsdata object node itself. +!=============================================================================== + + subroutine mgxs_init_file(this, node_xsdata) + class(Mgxs), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml + + character(MAX_LINE_LEN) :: temp_str + + ! Load the nuclide metadata + call get_node_value(node_xsdata, "name", this % name) + this % name = to_lower(this % name) + if (check_for_node(node_xsdata, "kT")) then + call get_node_value(node_xsdata, "kT", this % kT) + else + this % kT = ZERO + end if + if (check_for_node(node_xsdata, "zaid")) then + call get_node_value(node_xsdata, "zaid", this % zaid) + else + this % zaid = -1 + end if + if (check_for_node(node_xsdata, "scatt_type")) then + call get_node_value(node_xsdata, "scatt_type", temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == 'legendre') then + this % scatt_type = ANGLE_LEGENDRE + else if (temp_str == 'histogram') then + this % scatt_type = ANGLE_HISTOGRAM + else if (temp_str == 'tabular') then + this % scatt_type = ANGLE_TABULAR + else + call fatal_error("Invalid Scatt Type Option!") + end if + else + this % scatt_type = ANGLE_LEGENDRE + end if + + if (check_for_node(node_xsdata, "fissionable")) then + call get_node_value(node_xsdata, "fissionable", temp_str) + temp_str = to_lower(temp_str) + if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') then + this % fissionable = .true. + else + this % fissionable = .false. + end if + else + call fatal_error("Fissionable element must be set!") + end if + + end subroutine mgxs_init_file + + subroutine mgxsiso_init_file(this,node_xsdata,groups,get_kfiss,get_fiss,max_order) + class(MgxsIso), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Need fiss data? + integer, intent(in) :: max_order ! Maximum requested order + + type(Node), pointer :: node_legendre_mu + character(MAX_LINE_LEN) :: temp_str + logical :: enable_leg_mu + real(8), allocatable :: temp_arr(:), temp_2d(:,:) + real(8), allocatable :: temp_mult(:,:) + real(8), allocatable :: scatt_coeffs(:,:,:) + real(8), allocatable :: input_scatt(:,:,:) + real(8), allocatable :: temp_scatt(:,:,:) + real(8) :: dmu, mu, norm + integer :: order, order_dim, gin, gout, l, arr_len + integer :: legendre_mu_points, imu + + ! Call generic data gathering routine (will populate the metadata) + call mgxs_init_file(this, node_xsdata) + + ! Load the more specific data + allocate(this % nu_fission(groups)) + allocate(this % chi(groups,groups)) + if (this % fissionable) then + if (check_for_node(node_xsdata,"chi")) then + ! Chi was provided, that means they are giving chi and nu-fission + ! vectors + ! Get chi + allocate(temp_arr(1 * groups)) + call get_node_array(node_xsdata,"chi",temp_arr) + do gin = 1, groups + do gout = 1, groups + this % chi(gout,gin) = temp_arr(gout) + end do + ! Normalize chi so its CDF goes to 1 + this % chi(:,gin) = this % chi(:,gin) / sum(this % chi(:,gin)) + end do + deallocate(temp_arr) + + ! Get nu_fission (as a vector) + if (check_for_node(node_xsdata,"nu_fission")) then + call get_node_array(node_xsdata,"nu_fission",this % nu_fission) + else + call fatal_error("If fissionable, must provide nu_fission!") + end if + + else + ! chi isnt provided but is within nu_fission, existing as a matrix + ! So, get nu_fission (as a matrix) + if (check_for_node(node_xsdata,"nu_fission")) then + allocate(temp_arr(groups*groups)) + call get_node_array(node_xsdata,"nu_fission",temp_arr) + allocate(temp_2d(groups,groups)) + temp_2d = reshape(temp_arr,(/groups,groups/)) + deallocate(temp_arr) + else + call fatal_error("If fissionable, must provide nu_fission!") + end if + + ! Set the vector nu-fission from the matrix nu-fission + do gin = 1, groups + this % nu_fission(gin) = sum(temp_2d(:,gin)) + end do + + ! Now pull out information needed for chi + this % chi = temp_2d + ! Normalize chi so its CDF goes to 1 + do gin = 1, groups + this % chi(:,gin) = this % chi(:,gin) / sum(this % chi(:,gin)) + end do + deallocate(temp_2d) + end if + ! If we have a need* for the fission and kappa-fission x/s, get them + ! (*Need is defined as will be using it to tally) + if (get_fiss) then + allocate(this % fission(groups)) + if (check_for_node(node_xsdata,"fission")) then + call get_node_array(node_xsdata,"fission",this % fission) + else + call fatal_error("Fission data missing, required due to fission& + & tallies in tallies.xml file!") + end if + end if + if (get_kfiss) then + allocate(this % k_fission(groups)) + if (check_for_node(node_xsdata,"kappa_fission")) then + call get_node_array(node_xsdata,"kappa_fission",this % k_fission) + else + call fatal_error("kappa_fission data missing, required due to & + &kappa-fission tallies in tallies.xml file!") + end if + end if + else + this % nu_fission = ZERO + this % chi = ZERO + end if + + allocate(this % absorption(groups)) + if (check_for_node(node_xsdata,"absorption")) then + call get_node_array(node_xsdata,"absorption",this % absorption) + else + call fatal_error("Must provide absorption!") + end if + + ! Get multiplication data if present + allocate(temp_mult(groups, groups)) + if (check_for_node(node_xsdata,"multiplicity")) then + arr_len = get_arraysize_double(node_xsdata,"multiplicity") + if (arr_len == groups * groups) then + allocate(temp_arr(arr_len)) + call get_node_array(node_xsdata,"multiplicity",temp_arr) + temp_mult = reshape(temp_arr, (/groups, groups/)) + deallocate(temp_arr) + else + call fatal_error("Multiplicity length not same as number of groups& + & squared!") + end if + else + temp_mult = ONE + end if + + ! Get scattering treatment information + ! Tabular_legendre tells us if we are to treat the provided + ! Legendre polynomials as tabular data (if enable is true) or leaving + ! them as Legendres (if enable is false, or the default) + + ! Set the default (leave as Legendre polynomials) + enable_leg_mu = .false. + if (check_for_node(node_xsdata,"tabular_legendre")) then + call get_node_ptr(node_xsdata,"tabular_legendre",node_legendre_mu) + if (check_for_node(node_legendre_mu, "enable")) then + call get_node_value(node_legendre_mu,"enable",temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == 'true' .or. temp_str == '1') then + enable_leg_mu = .true. + elseif (temp_str == 'false' .or. temp_str == '0') then + enable_leg_mu = .false. + else + call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) + end if + end if + ! Ok, so if we need to convert to a tabular form, get the user provided + ! number of points + if (enable_leg_mu) then + if (check_for_node(node_legendre_mu,"num_points")) then + call get_node_value(node_legendre_mu,"num_points", & + legendre_mu_points) + if (legendre_mu_points <= 0) & + call fatal_error("num_points element must be positive& + & and non-zero!") + else + ! Set the default number of points (0.0625 spacing) + legendre_mu_points = 33 + end if + end if + end if + + ! Get the library's value for the order + if (check_for_node(node_xsdata,"order")) then + call get_node_value(node_xsdata,"order",order) + else + call fatal_error("Order Must Be Provided!") + end if + + ! Before retrieving the data, store the dimensionality of the data in + ! order_dim. For Legendre data, we usually refer to it as Pn where + ! n is the order. However Pn has n+1 sets of points (since you need to + ! the count the P0 moment). Adjust for that. Histogram and Tabular + ! formats dont need this adjustment. + if (this % scatt_type == ANGLE_LEGENDRE) then + order_dim = order + 1 + else + order_dim = order + end if + + ! The input is gathered in the more user-friendly facing format of + ! Gout x Gin x Order. We will get it in that format in input_scatt, + ! but then need to convert it to a more useful ordering for processing + ! (Order x Gout x Gin). + allocate(input_scatt(groups, groups, order_dim)) + if (check_for_node(node_xsdata,"scatter")) then + allocate(temp_arr(groups * groups * order_dim)) + call get_node_array(node_xsdata,"scatter",temp_arr) + input_scatt = reshape(temp_arr,(/groups,groups,order_dim/)) + deallocate(temp_arr) + + ! Compare the number of orders given with the maximum order of the + ! problem. Strip off the supefluous orders if needed. + if (this % scatt_type == ANGLE_LEGENDRE) then + order = min(order_dim - 1, max_order) + order_dim = order + 1 + end if + allocate(temp_scatt(groups,groups,order_dim)) + temp_scatt(:,:,:) = input_scatt(:,:,1:order_dim) + + ! Take input format (groups, groups, order) and convert to + ! the more useful format needed for scattdata: (order, groups, groups) + ! However, if scatt_type was ANGLE_LEGENDRE (i.e., the data was + ! provided as Legendre coefficients), and the user requested that + ! these legendres be converted to tabular form (note this is also + ! the default behavior), convert that now. + if (this % scatt_type == ANGLE_LEGENDRE .and. enable_leg_mu) then + ! Convert input parameters to what we need for the rest. + this % scatt_type = ANGLE_TABULAR + order_dim = legendre_mu_points + order = order_dim + dmu = TWO / real(order - 1,8) + + allocate(scatt_coeffs(order_dim,groups,groups)) + do gin = 1, groups + do gout = 1, groups + norm = ZERO + do imu = 1, order_dim + if (imu == 1) then + mu = -ONE + else if (imu == order_dim) then + mu = ONE + else + mu = -ONE + real(imu - 1,8) * dmu + end if + scatt_coeffs(imu,gout,gin) = & + evaluate_legendre(temp_scatt(gout,gin,:),mu) + ! Ensure positivity of distribution + if (scatt_coeffs(imu,gout,gin) < ZERO) & + scatt_coeffs(imu,gout,gin) = ZERO + ! And accrue the integral + if (imu > 1) then + norm = norm + HALF * dmu * (scatt_coeffs(imu-1,gout,gin) + & + scatt_coeffs(imu,gout,gin)) + end if + end do + ! Now that we have the integral, lets ensure that the distribution + ! is normalized such that it preserves the original scattering xs + if (norm > ZERO) then + scatt_coeffs(:,gout,gin) = scatt_coeffs(:,gout,gin) * & + temp_scatt(gout,gin,1) / norm + end if + end do + end do + else + ! Sticking with current representation, carry forward but change + ! the array ordering + allocate(scatt_coeffs(order_dim,groups,groups)) + do gin = 1, groups + do gout = 1, groups + do l = 1, order_dim + scatt_coeffs(l,gout,gin) = temp_scatt(gout,gin,l) + end do + end do + end do + end if + deallocate(temp_scatt) + else + call fatal_error("Must provide scatter!") + end if + + ! Allocate and initialize our ScattData Object. + if (this % scatt_type == ANGLE_HISTOGRAM) then + allocate(ScattDataHistogram :: this % scatter) + else if (this % scatt_type == ANGLE_TABULAR) then + allocate(ScattDataTabular :: this % scatter) + else if (this % scatt_type == ANGLE_LEGENDRE) then + allocate(ScattDataLegendre :: this % scatter) + end if + + ! Initialize the ScattData Object + call this % scatter % init(temp_mult, scatt_coeffs) + + ! Get, or infer, total xs data. + allocate(this % total(groups)) + if (check_for_node(node_xsdata,"total")) then + call get_node_array(node_xsdata,"total",this % total) + else + this % total = this % absorption + this % scatter % scattxs + end if + + ! Deallocate temporaries for the next material + deallocate(input_scatt,scatt_coeffs,temp_mult) + + end subroutine mgxsiso_init_file + + subroutine mgxsang_init_file(this,node_xsdata,groups,get_kfiss,get_fiss,max_order) + class(MgxsAngle), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(in) :: max_order ! Maximum requested order + + type(Node), pointer :: node_legendre_mu + character(MAX_LINE_LEN) :: temp_str + logical :: enable_leg_mu + real(8), allocatable :: temp_arr(:), temp_4d(:,:,:,:) + real(8), allocatable :: temp_mult(:,:,:,:) + real(8), allocatable :: scatt_coeffs(:,:,:,:,:) + real(8), allocatable :: input_scatt(:,:,:,:,:) + real(8), allocatable :: temp_scatt(:,:,:,:,:) + real(8) :: dmu, mu, norm, dangle + integer :: order, order_dim, gin, gout, l, arr_len + integer :: legendre_mu_points, imu, ipol, iazi + + ! Call generic data gathering routine (will populate the metadata) + call mgxs_init_file(this, node_xsdata) + + if (check_for_node(node_xsdata, "num_polar")) then + call get_node_value(node_xsdata, "num_polar", this % n_pol) + else + call fatal_error("num_polar Must Be Provided!") + end if + + if (check_for_node(node_xsdata, "num_azimuthal")) then + call get_node_value(node_xsdata, "num_azimuthal", this % n_azi) + else + call fatal_error("num_azimuthal Must Be Provided!") + end if + + ! Load angle data, if present (else equally spaced) + allocate(this % polar(this % n_pol)) + allocate(this % azimuthal(this % n_azi)) + if (check_for_node(node_xsdata, "polar")) then + call fatal_error("User-Specified polar angle bins not yet supported!") + ! When this feature is supported, this line will be activated + call get_node_array(node_xsdata, "polar", this % polar) + else + dangle = PI / real(this % n_pol,8) + do ipol = 1, this % n_pol + this % polar(ipol) = (real(ipol,8) - HALF) * dangle + end do + end if + if (check_for_node(node_xsdata, "azimuthal")) then + call fatal_error("User-Specified azimuthal angle bins not yet supported!") + ! When this feature is supported, this line will be activated + call get_node_array(node_xsdata, "azimuthal", this % azimuthal) + else + dangle = TWO * PI / real(this % n_azi,8) + do iazi = 1, this % n_azi + this % azimuthal(iazi) = -PI + (real(iazi,8) - HALF) * dangle + end do + end if + + ! Load the more specific data + allocate(this % nu_fission(groups,this % n_azi,this % n_pol)) + allocate(this % chi(groups,groups,this % n_azi,this % n_pol)) + if (this % fissionable) then + if (check_for_node(node_xsdata,"chi")) then + ! Chi was provided, that means they are giving chi and nu-fission + ! vectors + ! Get chi + allocate(temp_arr(1 * groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"chi",temp_arr) + ! Initialize counter for temp_arr + l = 0 + gin = 1 + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + do gout = 1, groups + l = l + 1 + this % chi(gout,gin,iazi,ipol) = temp_arr(l) + end do + ! Normalize chi so its CDF goes to 1 + this % chi(:,gin,iazi,ipol) = this % chi(:,gin,iazi,ipol) / & + sum(this % chi(:,gin,iazi,ipol)) + end do + end do + + ! Now set all the other gin values + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + do gin = 2, groups + this % chi(:,gin,iazi,ipol) = this % chi(:,1,iazi,ipol) + end do + end do + end do + deallocate(temp_arr) + + ! Get nu_fission (as a vector) + if (check_for_node(node_xsdata,"nu_fission")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"nu_fission",temp_arr) + this % nu_fission = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("If fissionable, must provide nu_fission!") + end if + + else + ! chi isnt provided but is within nu_fission, existing as a matrix + ! So, get nu_fission (as a matrix) + if (check_for_node(node_xsdata,"nu_fission")) then + allocate(temp_arr(groups * groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"nu_fission",temp_arr) + allocate(temp_4d(groups,groups,this % n_azi,this % n_pol)) + temp_4d = reshape(temp_arr,(/groups,groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("If fissionable, must provide nu_fission!") + end if + + ! Set the vector nu-fission from the matrix nu-fission + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + do gin = 1, groups + this % nu_fission(gin,iazi,ipol) = sum(temp_4d(:,gin,iazi,ipol)) + end do + end do + end do + + ! Now pull out information needed for chi + this % chi = temp_4d + ! Normalize chi so its CDF goes to 1 + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + do gin = 1, groups + this % chi(:,gin,iazi,ipol) = this % chi(:,gin,iazi,ipol) / & + sum(this % chi(:,gin,iazi,ipol)) + end do + end do + end do + deallocate(temp_4d) + end if + + ! If we have a need* for the fission and kappa-fission x/s, get them + ! (*Need is defined as will be using it to tally) + if (get_fiss) then + if (check_for_node(node_xsdata,"fission")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"fission",temp_arr) + allocate(this % fission(groups,this % n_azi,this % n_pol)) + this % fission = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("Fission data missing, required due to fission& + & tallies in tallies.xml file!") + end if + end if + if (get_kfiss) then + if (check_for_node(node_xsdata,"kappa_fission")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"kappa_fission",temp_arr) + allocate(this % k_fission(groups,this % n_azi,this % n_pol)) + this % k_fission = reshape(temp_arr,(/groups, this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("kappa_fission data missing, required due to & + &kappa-fission tallies in tallies.xml file!") + end if + end if + else + this % nu_fission = ZERO + this % chi = ZERO + end if + + if (check_for_node(node_xsdata,"absorption")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"absorption",temp_arr) + allocate(this % absorption(groups,this % n_azi,this % n_pol)) + this % absorption = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("Must provide absorption!") + end if + + ! Get multiplication data if present + allocate(temp_mult(groups,groups,this % n_azi,this % n_pol)) + if (check_for_node(node_xsdata,"multiplicity")) then + arr_len = get_arraysize_double(node_xsdata,"multiplicity") + if (arr_len == groups * groups * this % n_azi * this % n_pol) then + allocate(temp_arr(arr_len)) + call get_node_array(node_xsdata,"multiplicity",temp_arr) + temp_mult = reshape(temp_arr,(/groups,groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("Multiplicity length not same as number of groups& + & squared!") + end if + else + temp_mult = ONE + end if + + ! Get scattering treatment information + ! Tabular_legendre tells us if we are to treat the provided + ! Legendre polynomials as tabular data (if enable is true) or leaving + ! them as Legendres (if enable is false, or the default) + + ! Set the default (leave as Legendre polynomials) + enable_leg_mu = .false. + if (check_for_node(node_xsdata,"tabular_legendre")) then + call get_node_ptr(node_xsdata,"tabular_legendre",node_legendre_mu) + if (check_for_node(node_legendre_mu, "enable")) then + call get_node_value(node_legendre_mu,"enable",temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == 'true' .or. temp_str == '1') then + enable_leg_mu = .true. + elseif (temp_str == 'false' .or. temp_str == '0') then + enable_leg_mu = .false. + else + call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) + end if + end if + ! Ok, so if we need to convert to a tabular form, get the user provided + ! number of points + if (enable_leg_mu) then + if (check_for_node(node_legendre_mu,"num_points")) then + call get_node_value(node_legendre_mu,"num_points", & + legendre_mu_points) + if (legendre_mu_points <= 0) & + call fatal_error("num_points element must be positive& + & and non-zero!") + else + ! Set the default number of points (0.0625 spacing) + legendre_mu_points = 33 + end if + end if + end if + + ! Get the library's value for the order + if (check_for_node(node_xsdata,"order")) then + call get_node_value(node_xsdata,"order",order) + else + call fatal_error("Order Must Be Provided!") + end if + + ! Before retrieving the data, store the dimensionality of the data in + ! order_dim. For Legendre data, we usually refer to it as Pn where + ! n is the order. However Pn has n+1 sets of points (since you need to + ! the count the P0 moment). Adjust for that. Histogram and Tabular + ! formats dont need this adjustment. + if (this % scatt_type == ANGLE_LEGENDRE) then + order_dim = order + 1 + else + order_dim = order + end if + + ! The input is gathered in the more user-friendly facing format of + ! Gout x Gin x Order x Azi x Pol. We will get it in that format in + ! input_scatt, but then need to convert it to a more useful ordering + ! for processing (Order x Gout x Gin x Azi x Pol). + allocate(input_scatt(groups,groups,order_dim,this % n_azi,this % n_pol)) + if (check_for_node(node_xsdata,"scatter")) then + allocate(temp_arr(groups * groups * order_dim * this % n_azi * & + this % n_pol)) + call get_node_array(node_xsdata,"scatter",temp_arr) + input_scatt = reshape(temp_arr,(/groups,groups,order_dim,this % n_azi, & + this % n_pol/)) + deallocate(temp_arr) + + ! Compare the number of orders given with the maximum order of the + ! problem. Strip off the supefluous orders if needed. + if (this % scatt_type == ANGLE_LEGENDRE) then + order = min(order_dim - 1, max_order) + order_dim = order + 1 + end if + + allocate(temp_scatt(groups,groups,order_dim,this % n_azi,this % n_pol)) + temp_scatt(:,:,:,:,:) = input_scatt(:,:,1:order_dim,:,:) + + ! Take input format (groups, groups, order) and convert to + ! the more useful format needed for scattdata: (order, groups, groups) + ! However, if scatt_type was ANGLE_LEGENDRE (i.e., the data was + ! provided as Legendre coefficients), and the user requested that + ! these legendres be converted to tabular form (note this is also + ! the default behavior), convert that now. + if (this % scatt_type == ANGLE_LEGENDRE .and. enable_leg_mu) then + + ! Convert input parameters to what we need for the rest. + this % scatt_type = ANGLE_TABULAR + order_dim = legendre_mu_points + order = order_dim + dmu = TWO / real(order - 1,8) + + allocate(scatt_coeffs(order_dim,groups,groups,this % n_azi,this % n_pol)) + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + do gin = 1, groups + do gout = 1, groups + norm = ZERO + do imu = 1, order_dim + if (imu == 1) then + mu = -ONE + else if (imu == order_dim) then + mu = ONE + else + mu = -ONE + real(imu - 1,8) * dmu + end if + scatt_coeffs(imu,gout,gin,iazi,ipol) = & + evaluate_legendre(temp_scatt(gout,gin,:,iazi,ipol),mu) + ! Ensure positivity of distribution + if (scatt_coeffs(imu,gout,gin,iazi,ipol) < ZERO) & + scatt_coeffs(imu,gout,gin,iazi,ipol) = ZERO + ! And accrue the integral + if (imu > 1) then + norm = norm + HALF * dmu * & + (scatt_coeffs(imu-1,gout,gin,iazi,ipol) + & + scatt_coeffs(imu,gout,gin,iazi,ipol)) + end if + end do + ! Now that we have the integral, lets ensure that the distribution + ! is normalized such that it preserves the original scattering xs + if (norm > ZERO) then + scatt_coeffs(:,gout,gin,iazi,ipol) = & + scatt_coeffs(:,gout,gin,iazi,ipol) * & + temp_scatt(gout,gin,1,iazi,ipol) / norm + end if + end do + end do + end do + end do + else + ! Sticking with current representation, carry forward but change + ! the array ordering + allocate(scatt_coeffs(order_dim,groups,groups,this % n_azi,this % n_pol)) + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + do gin = 1, groups + do gout = 1, groups + do l = 1, order_dim + scatt_coeffs(l,gout,gin,iazi,ipol) = & + temp_scatt(gout,gin,l,iazi,ipol) + end do + end do + end do + end do + end do + end if + deallocate(temp_scatt) + else + call fatal_error("Must provide scatter!") + end if + + allocate(this % scatter(this % n_azi, this % n_pol)) + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + ! Allocate and initialize our ScattData Object. + if (this % scatt_type == ANGLE_HISTOGRAM) then + allocate(ScattDataHistogram :: this % scatter(iazi,ipol) % obj) + else if (this % scatt_type == ANGLE_TABULAR) then + allocate(ScattDataTabular :: this % scatter(iazi,ipol) % obj) + else if (this % scatt_type == ANGLE_LEGENDRE) then + allocate(ScattDataLegendre :: this % scatter(iazi,ipol) % obj) + end if + + ! Initialize the ScattData Object + call this % scatter(iazi,ipol) % obj % init(& + temp_mult(:,:,iazi,ipol), scatt_coeffs(:,:,:,iazi,ipol)) + end do + end do + ! Deallocate temporaries for the next material + deallocate(input_scatt,scatt_coeffs,temp_mult) + + allocate(this % total(groups,this % n_azi,this % n_pol)) + if (check_for_node(node_xsdata,"total")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata,"total",temp_arr) + this % total = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + deallocate(temp_arr) + else + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + this % total(:,iazi,ipol) = this % absorption(:,iazi,ipol) + & + this % scatter(iazi,ipol) % obj % scattxs(:) + end do + end do + end if + + end subroutine mgxsang_init_file + +!=============================================================================== +! MGXS*_PRINT displays information about a continuous-energy neutron +! cross_section table and its reactions and secondary angle/energy distributions +!=============================================================================== + + subroutine mgxs_print(this, unit_) + class(Mgxs), intent(in) :: this + integer, intent(in) :: unit_ + + character(MAX_LINE_LEN) :: temp_str + + ! Basic nuclide information + write(unit_,*) 'MGXS Entry ' // trim(this % name) + if (this % zaid > 0) then + ! Dont print if data was macroscopic and thus zaid & AWR would be nonsense + write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) + write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + end if + write(unit_,*) ' kT = ' // trim(to_str(this % kT)) + if (this % scatt_type == ANGLE_LEGENDRE) then + temp_str = "Legendre" + write(unit_,*) ' Scattering Type = ' // trim(temp_str) + select type(this) + type is (MgxsIso) + temp_str = to_str(size(this % scatter % dist(1) % data,dim=1) - 1) + end select + write(unit_,*) ' Scattering Order = ' // trim(temp_str) + else if (this % scatt_type == ANGLE_HISTOGRAM) then + temp_str = "Histogram" + write(unit_,*) ' Scattering Type = ' // trim(temp_str) + select type(this) + type is (MgxsIso) + temp_str = to_str(size(this % scatter % dist(1) % data,dim=1)) + end select + write(unit_,*) ' Num. Distribution Bins = ' // trim(temp_str) + else if (this % scatt_type == ANGLE_TABULAR) then + temp_str = "Tabular" + write(unit_,*) ' Scattering Type = ' // trim(temp_str) + select type(this) + type is (MgxsIso) + temp_str = to_str(size(this % scatter % dist(1) % data,dim=1)) + end select + write(unit_,*) ' Num. Distribution Points = ' // trim(temp_str) + end if + write(unit_,*) ' Fissionable = ', this % fissionable + + end subroutine mgxs_print + + subroutine mgxsiso_print(this, unit) + + class(MgxsIso), intent(in) :: this + integer, optional, intent(in) :: unit + + integer :: unit_ ! unit to write to + integer :: size_total, size_scattmat, size_mgxs + integer :: gin + + ! set default unit for writing information + if (present(unit)) then + unit_ = unit + else + unit_ = OUTPUT_UNIT + end if + + ! Write Basic Nuclide Information + call mgxs_print(this, unit_) + + ! Determine size of mgxs and scattering matrices + size_scattmat = 0 + do gin = 1, size(this % scatter % energy) + size_scattmat = size_scattmat + & + 2 * size(this % scatter % energy(gin) % data) + & + size(this % scatter % dist(gin) % data) + end do + size_scattmat = size_scattmat + size(this % scatter % scattxs) + size_scattmat = size_scattmat * 8 + + size_mgxs = size(this % total) + size(this % absorption) + & + size(this % nu_fission) + size(this % k_fission) + & + size(this % fission) + size(this % chi) + size_mgxs = size_mgxs * 8 + + ! Calculate total memory + size_total = size_scattmat + size_mgxs + + ! Write memory used + write(unit_,*) ' Memory Requirements' + write(unit_,*) ' Cross sections = ' // trim(to_str(size_mgxs)) // ' bytes' + write(unit_,*) ' Scattering Matrices = ' // & + trim(to_str(size_scattmat)) // ' bytes' + write(unit_,*) ' Total = ' // trim(to_str(size_total)) // ' bytes' + + ! Blank line at end of nuclide + write(unit_,*) + + end subroutine mgxsiso_print + + subroutine mgxsang_print(this, unit) + + class(MgxsAngle), intent(in) :: this + integer, optional, intent(in) :: unit + + integer :: unit_ ! unit to write to + integer :: size_total, size_scattmat, size_mgxs + integer :: ipol, iazi, gin + + ! set default unit for writing information + if (present(unit)) then + unit_ = unit + else + unit_ = OUTPUT_UNIT + end if + + ! Write Basic Nuclide Information + call mgxs_print(this, unit_) + + write(unit_,*) ' # of Polar Angles = ' // trim(to_str(this % n_pol)) + write(unit_,*) ' # of Azimuthal Angles = ' // trim(to_str(this % n_azi)) + + ! Determine size of mgxs and scattering matrices + size_scattmat = 0 + do ipol = 1, this % n_pol + do iazi = 1, this % n_azi + do gin = 1, size(this % scatter(iazi,ipol) % obj % energy) + size_scattmat = size_scattmat + & + 2 * size(this % scatter(iazi,ipol) % obj % energy(gin) % data) + & + size(this % scatter(iazi,ipol) % obj % dist(gin) % data) + end do + size_scattmat = size_scattmat + & + size(this % scatter(iazi,ipol) % obj % scattxs) + end do + end do + size_scattmat = size_scattmat * 8 + + size_mgxs = size(this % total) + size(this % absorption) + & + size(this % nu_fission) + size(this % k_fission) + & + size(this % fission) + size(this % chi) + size_mgxs = size_mgxs * 8 + + ! Calculate total memory + size_total = size_scattmat + size_mgxs + + ! Write memory used + write(unit_,*) ' Memory Requirements' + write(unit_,*) ' Cross sections = ' // trim(to_str(size_mgxs)) // ' bytes' + write(unit_,*) ' Scattering Matrices = ' // & + trim(to_str(size_scattmat)) // ' bytes' + write(unit_,*) ' Total = ' // trim(to_str(size_total)) // ' bytes' + + ! Blank line at end of nuclide + write(unit_,*) + end subroutine mgxsang_print + +!=============================================================================== +! MGXS*_GET_XS returns the requested data cross section data +!=============================================================================== + + function mgxsiso_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) + class(MgxsIso), intent(in) :: this ! The MacroXS to initialize + character(*) , intent(in) :: xstype ! Type of xs requested + integer, intent(in) :: gin ! Incoming Energy group + integer, optional, intent(in) :: gout ! Outgoing Energy group + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8), optional, intent(in) :: mu ! Change in angle + real(8) :: xs ! Requested x/s + + select case(xstype) + case('total') + xs = this % total(gin) + case('absorption') + xs = this % absorption(gin) + case('fission') + if (allocated(this % fission)) then + xs = this % fission(gin) + else + xs = ZERO + end if + case('kappa_fission') + if (allocated(this % k_fission)) then + xs = this % k_fission(gin) + else + xs = ZERO + end if + case('nu_fission') + xs = this % nu_fission(gin) + case('chi') + if (present(gout)) then + xs = this % chi(gout,gin) + else + ! Not sure youd want a 1 or a 0, but here you go! + xs = sum(this % chi(:,gin)) + end if + case('scatter') + if (present(gout)) then + xs = this % scatter % scattxs(gin) * & + this % scatter % energy(gin) % data(gout) + else + xs = this % scatter % scattxs(gin) + end if + case('mult') + if (present(gout)) then + if (gout < this % scatter % gmin(gin) .or. & + gout > this % scatter % gmax(gin)) then + xs = ZERO + else + xs = this % scatter % mult(gin) % data(gout) + end if + else + xs = dot_product(this % scatter % mult(gin) % data, & + this % scatter % scattxs(gin) * & + this % scatter % energy(gin) % data) + xs = xs / this % scatter % scattxs(gin) + end if + case('f_mu', 'f_mu/mult') + if (present(gout) .and. present(mu)) then + if (gout < this % scatter % gmin(gin) .or. & + gout > this % scatter % gmax(gin)) then + xs = ZERO + else + xs = this % scatter % calc_f(gin, gout, mu) + if (xstype == 'f_mu/mult') then + xs = xs / this % scatter % mult(gin) % data(gout) + end if + end if + else + xs = ZERO + ! TODO (Not likely needed) + ! (asking for f_mu without asking for a group or mu would mean the + ! user of this code wants the complete 1-outgoing group distribution + ! which Im not sure what they would do with that. + end if + case default + xs = ZERO + end select + + end function mgxsiso_get_xs + + function mgxsang_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) + class(MgxsAngle), intent(in) :: this ! The MacroXS to initialize + character(*) , intent(in) :: xstype ! Type of xs requested + integer, intent(in) :: gin ! Incoming Energy group + integer, optional, intent(in) :: gout ! Outgoing Energy group + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8), optional, intent(in) :: mu ! Change in angle + real(8) :: xs ! Requested x/s + + integer :: iazi, ipol + + if (present(uvw)) then + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + select case(xstype) + case('total') + xs = this % total(gin,iazi,ipol) + case('absorption') + xs = this % absorption(gin,iazi,ipol) + case('fission') + if (allocated(this % fission)) then + xs = this % fission(gin,iazi,ipol) + else + xs = ZERO + end if + case('kappa_fission') + if (allocated(this % k_fission)) then + xs = this % k_fission(gin,iazi,ipol) + else + xs = ZERO + end if + case('nu_fission') + xs = this % nu_fission(gin,iazi,ipol) + case('chi') + if (present(gout)) then + xs = this % chi(gout,gin,iazi,ipol) + else + ! Not sure youd want a 1 or a 0, but here you go! + xs = sum(this % chi(:,gin,iazi,ipol)) + end if + case('scatter') + if (present(gout)) then + xs = this % scatter(iazi,ipol) % obj % scattxs(gin) * & + this % scatter(iazi,ipol) % obj % energy(gin) % data(gout) + else + xs = this % scatter(iazi,ipol) % obj % scattxs(gin) + end if + case('mult') + if (present(gout)) then + if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + xs = ZERO + else + xs = this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + end if + else + xs = dot_product(this % scatter(iazi,ipol) % obj % mult(gin) % data, & + this % scatter(iazi,ipol) % obj % scattxs(gin) * & + this % scatter(iazi,ipol) % obj % energy(gin) % data) + xs = xs / this % scatter(iazi,ipol) % obj % scattxs(gin) + end if + case('f_mu', 'f_mu/mult') + if (present(gout) .and. present(mu)) then + if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + xs = ZERO + else + xs = this % scatter(iazi,ipol) % obj % calc_f(gin, gout, mu) + if (xstype == 'f_mu/mult') then + xs = xs / & + this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + end if + end if + else + xs = ZERO + ! TODO (Not likely needed) + ! (asking for f_mu without asking for a group or mu would mean the + ! user of this code wants the complete 1-outgoing group distribution + ! which Im not sure what they would do with that. + end if + case default + xs = ZERO + end select + else + xs = ZERO + end if + + end function mgxsang_get_xs + +!=============================================================================== +! MACROXS*_COMBINE Builds a macroscopic Mgxs object from microscopic Mgxs +! objects +!=============================================================================== + + subroutine mgxsiso_combine(this, mat, nuclides, groups, get_kfiss, get_fiss, & + max_order, scatt_type) + class(MgxsIso), intent(inout) :: this ! The MacroXS to initialize + type(Material), pointer, intent(in) :: mat ! base material + type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from + integer, intent(in) :: groups ! Number of E groups + logical, intent(in) :: get_kfiss ! Should we get kfiss data? + logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: scatt_type ! How is data presented + + integer :: i ! loop index over nuclides + integer :: gin, gout ! group indices + real(8) :: atom_density ! atom density of a nuclide + real(8) :: norm + integer :: mat_max_order, order, order_dim, nuc_order_dim + real(8), allocatable :: temp_mult(:,:) + real(8), allocatable :: scatt_coeffs(:,:,:) + + ! Determine the scattering type of our data and ensure all scattering orders + ! are the same. + select type(nuc => nuclides(mat % nuclide(1)) % obj) + type is (MgxsIso) + order = size(nuc % scatter % dist(1) % data, dim=1) + end select + ! If we have tabular only data, then make sure all datasets have same size + if (scatt_type == ANGLE_HISTOGRAM) then + ! Check all scattering data to ensure it is the same size + ! order = size(nuclides(mat % nuclide(1)) % obj % scatter % data,dim=1) + do i = 2, mat % n_nuclides + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (MgxsIso) + if (order /= size(nuc % scatter % dist(1) % data,dim=1)) & + call fatal_error("All Histogram Scattering Entries Must Be& + & Same Length!") + end select + end do + ! Ok, got our order, store the dimensionality + order_dim = order + + ! Set our Scatter Object Type + allocate(ScattDataHistogram :: this % scatter) + + else if (scatt_type == ANGLE_TABULAR) then + ! Check all scattering data to ensure it is the same size + do i = 2, mat % n_nuclides + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (MgxsIso) + if (order /= size(nuc % scatter % dist(1) % data,dim=1)) & + call fatal_error("All Tabular Scattering Entries Must Be& + & Same Length!") + end select + end do + ! Ok, got our order, store the dimensionality + order_dim = order + + ! Set our Scatter Object Type + allocate(ScattDataTabular :: this % scatter) + + else if (scatt_type == ANGLE_LEGENDRE) then + ! Need to determine the maximum scattering order of all data in this material + mat_max_order = 0 + do i = 1, mat % n_nuclides + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (MgxsIso) + if (size(nuc % scatter % dist(1) % data,dim=1) > mat_max_order) & + mat_max_order = size(nuc % scatter % dist(1) % data,dim=1) + end select + end do + + ! Now need to compare this material maximum scattering order with + ! the problem wide max scatt order and use whichever is lower + order = min(mat_max_order, max_order) + ! Ok, got our order, store the dimensionality + order_dim = order + 1 + + ! Set our Scatter Object Type + allocate(ScattDataLegendre :: this % scatter) + end if + + ! Allocate and initialize data needed for macro_xs(i_mat) object + allocate(this % total(groups)) + this % total = ZERO + allocate(this % absorption(groups)) + this % absorption = ZERO + if (get_fiss) then + allocate(this % fission(groups)) + this % fission = ZERO + end if + if (get_kfiss) then + allocate(this % k_fission(groups)) + this % k_fission = ZERO + end if + allocate(this % nu_fission(groups)) + this % nu_fission = ZERO + allocate(this % chi(groups,groups)) + this % chi = ZERO + allocate(temp_mult(groups,groups)) + temp_mult = ZERO + allocate(scatt_coeffs(order_dim,groups,groups)) + scatt_coeffs = ZERO + + ! Add contribution from each nuclide in material + do i = 1, mat % n_nuclides + ! Copy atom density of nuclide in material + atom_density = mat % atom_density(i) + + ! Perform our operations which depend upon the type + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (MgxsIso) + ! Add contributions to total, absorption, and fission data (if necessary) + this % total = this % total + atom_density * nuc % total + this % absorption = this % absorption + & + atom_density * nuc % absorption + if (nuc % fissionable) then + this % chi = this % chi + atom_density * nuc % chi + this % nu_fission = this % nu_fission + atom_density * & + nuc % nu_fission + if (get_fiss) then + this % fission = this % fission + atom_density * nuc % fission + end if + if (get_kfiss) then + this % k_fission = this % k_fission + atom_density * nuc % k_fission + end if + end if + + ! Get the multiplication matrix + do gin = 1, groups + do gout = nuc % scatter % gmin(gin), nuc % scatter % gmax(gin) + temp_mult(gout,gin) = temp_mult(gout,gin) + atom_density * & + nuc % scatter % mult(gin) % data(gout) + end do + end do + + ! Get the complete scattering matrix + nuc_order_dim = size(nuc % scatter % dist(1) % data,dim=1) + scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:) = & + scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:) + & + atom_density * & + nuc % scatter % get_matrix(min(nuc_order_dim,order_dim)) + + type is (MgxsAngle) + call fatal_error("Invalid Passing of MgxsAngle to MacroXSIso Object") + end select + end do + + ! Initialize the ScattData Object + call this % scatter % init(temp_mult,scatt_coeffs) + + ! Now normalize chi + if (mat % fissionable) then + do gin = 1, groups + norm = sum(this % chi(:,gin)) + if (norm > ZERO) then + this % chi(:,gin) = this % chi(:,gin) / norm + end if + end do + end if + + ! Deallocate temporaries + deallocate(scatt_coeffs, temp_mult) + + end subroutine mgxsiso_combine + + subroutine mgxsang_combine(this, mat, nuclides, groups, get_kfiss, get_fiss, & + max_order, scatt_type) + class(MgxsAngle), intent(inout) :: this ! The MacroXS to initialize + type(Material), pointer, intent(in) :: mat ! base material + type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from + integer, intent(in) :: groups ! Number of E groups + logical, intent(in) :: get_kfiss ! Should we get kfiss data? + logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? + + integer :: i ! loop index over nuclides + integer :: gin, gout ! group indices + real(8) :: atom_density ! atom density of a nuclide + integer :: ipol, iazi, n_pol, n_azi + real(8) :: norm + integer :: mat_max_order, order, order_dim, nuc_order_dim + real(8), allocatable :: temp_mult(:,:,:,:) + real(8), allocatable :: scatt_coeffs(:,:,:,:,:) + + ! Get the number of each polar and azi angles and make sure all the + ! NuclideAngle types have the same number of these angles + n_pol = -1 + n_azi = -1 + do i = 1, mat % n_nuclides + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (MgxsAngle) + if (n_pol == -1) then + n_pol = nuc % n_pol + n_azi = nuc % n_azi + allocate(this % polar(n_pol)) + this % polar = nuc % polar + allocate(this % azimuthal(n_azi)) + this % azimuthal = nuc % azimuthal + else + if ((n_pol /= nuc % n_pol) .or. (n_azi /= nuc % n_azi)) then + call fatal_error("All Angular Data Must Be Same Length!") + end if + end if + end select + end do + + ! Determine the scattering type of our data and ensure all scattering orders + ! are the same. + select type(nuc => nuclides(mat % nuclide(1)) % obj) + type is (MgxsAngle) + order = size(nuc % scatter(1,1) % obj % dist(1) % data, dim=1) + end select + ! If we have tabular only data, then make sure all datasets have same size + if (scatt_type == ANGLE_HISTOGRAM) then + ! Check all scattering data to ensure it is the same size + ! order = size(nuclides(mat % nuclide(1)) % obj % scatter % data,dim=1) + do i = 2, mat % n_nuclides + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (MgxsAngle) + if (order /= size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1)) & + call fatal_error("All Histogram Scattering Entries Must Be& + & Same Length!") + end select + end do + ! Ok, got our order, store the dimensionality + order_dim = order + + ! Set our Scatter Object Type + allocate(this % scatter(n_azi, n_pol)) + do ipol = 1, n_pol + do iazi = 1, n_azi + allocate(ScattDataHistogram :: this % scatter(iazi, ipol) % obj) + end do + end do + + else if (scatt_type == ANGLE_TABULAR) then + ! Check all scattering data to ensure it is the same size + do i = 2, mat % n_nuclides + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (MgxsAngle) + if (order /= size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1)) & + call fatal_error("All Tabular Scattering Entries Must Be& + & Same Length!") + end select + end do + ! Ok, got our order, store the dimensionality + order_dim = order + + ! Set our Scatter Object Type + allocate(this % scatter(n_azi, n_pol)) + do ipol = 1, n_pol + do iazi = 1, n_azi + allocate(ScattDataTabular :: this % scatter(iazi, ipol) % obj) + end do + end do + + else if (scatt_type == ANGLE_LEGENDRE) then + ! Need to determine the maximum scattering order of all data in this material + mat_max_order = 0 + do i = 1, mat % n_nuclides + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (MgxsAngle) + if (size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1) > mat_max_order) & + mat_max_order = size(nuc % scatter(1,1) % obj% dist(1) % data,dim=1) + end select + end do + + ! Now need to compare this material maximum scattering order with + ! the problem wide max scatt order and use whichever is lower + order = min(mat_max_order, max_order) + ! Ok, got our order, store the dimensionality + order_dim = order + 1 + + ! Set our Scatter Object Type + allocate(this % scatter(n_azi, n_pol)) + do ipol = 1, n_pol + do iazi = 1, n_azi + allocate(ScattDataLegendre :: this % scatter(iazi, ipol) % obj) + end do + end do + end if + + ! Allocate and initialize data within macro_xs(i_mat) object + allocate(this % total(groups,n_azi,n_pol)) + this % total = ZERO + allocate(this % absorption(groups,n_azi,n_pol)) + this % absorption = ZERO + if (get_fiss) then + allocate(this % fission(groups,n_azi,n_pol)) + this % fission = ZERO + end if + if (get_kfiss) then + allocate(this % k_fission(groups,n_azi,n_pol)) + this % k_fission = ZERO + end if + allocate(this % nu_fission(groups,n_azi,n_pol)) + this % nu_fission = ZERO + allocate(this % chi(groups,groups,n_azi,n_pol)) + this % chi = ZERO + allocate(temp_mult(groups,groups,n_azi,n_pol)) + temp_mult = ZERO + allocate(scatt_coeffs(order_dim,groups,groups,n_azi,n_pol)) + scatt_coeffs = ZERO + + ! Add contribution from each nuclide in material + do i = 1, mat % n_nuclides + ! Copy atom density of nuclide in material + atom_density = mat % atom_density(i) + + ! Perform our operations which depend upon the type + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (MgxsIso) + call fatal_error("Invalid Passing of MgxsIso to MacroXSAngle Object") + type is (MgxsAngle) + ! Add contributions to total, absorption, and fission data (if necessary) + this % total = this % total + atom_density * nuc % total + this % absorption = this % absorption + & + atom_density * nuc % absorption + if (nuc % fissionable) then + this % chi = this % chi + atom_density * nuc % chi + this % nu_fission = this % nu_fission + atom_density * & + nuc % nu_fission + if (get_fiss) then + this % fission = this % fission + atom_density * nuc % fission + end if + if (get_kfiss) then + this % k_fission = this % k_fission + atom_density * nuc % k_fission + end if + end if + + ! Get the multiplication matrix + do ipol = 1, n_pol + do iazi = 1, n_azi + do gin = 1, groups + do gout = nuc % scatter(iazi,ipol) % obj % gmin(gin), & + nuc % scatter(iazi,ipol) % obj % gmax(gin) + temp_mult(gout,gin,iazi,ipol) = temp_mult(gout,gin,iazi,ipol) + & + atom_density * & + nuc % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + end do + end do + end do + end do + + ! Get the complete scattering matrix + nuc_order_dim = size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1) + do ipol = 1, n_pol + do iazi = 1, n_azi + scatt_coeffs(1:min(nuc_order_dim,order_dim),:,:,iazi,ipol) = & + scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:,iazi,ipol) + & + atom_density * & + nuc % scatter(iazi,ipol) % obj % get_matrix(& + min(nuc_order_dim,order_dim)) + end do + end do + end select + end do + + ! Initialize the ScattData Object + do ipol = 1, n_pol + do iazi = 1, n_azi + call this % scatter(iazi,ipol) % obj % init( & + temp_mult(:,:,iazi,ipol), scatt_coeffs(:,:,:,iazi,ipol)) + end do + end do + + ! Now normalize chi + if (mat % fissionable) then + do ipol = 1, n_pol + do iazi = 1, n_azi + do gin = 1, groups + norm = sum(this % chi(:,gin,iazi,ipol)) + if (norm > ZERO) then + this % chi(:,gin,iazi,ipol) = this % chi(:,gin,iazi,ipol) / norm + end if + end do + end do + end do + end if + + ! Deallocate temporaries for the next material + deallocate(scatt_coeffs, temp_mult) + + end subroutine mgxsang_combine + +!=============================================================================== +! MGXS*_SAMPLE_FISSION_ENERGY samples the outgoing energy from a fission event +!=============================================================================== + + function mgxsiso_sample_fission_energy(this, gin, uvw) result(gout) + class(MgxsIso), intent(in) :: this ! Data to work with + integer, intent(in) :: gin ! Incoming energy group + real(8), intent(in) :: uvw(3) ! Particle Direction + integer :: gout ! Sampled outgoing group + real(8) :: xi ! Our random number + real(8) :: prob ! Running probability + + xi = prn() + gout = 1 + prob = this % chi(gout,gin) + + do while (prob < xi) + gout = gout + 1 + prob = prob + this % chi(gout,gin) + end do + + end function mgxsiso_sample_fission_energy + + function mgxsang_sample_fission_energy(this, gin, uvw) result(gout) + class(MgxsAngle), intent(in) :: this ! Data to work with + integer, intent(in) :: gin ! Incoming energy group + real(8), intent(in) :: uvw(3) ! Particle Direction + integer :: gout ! Sampled outgoing group + real(8) :: xi ! Our random number + real(8) :: prob ! Running probability + integer :: iazi, ipol + + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + + xi = prn() + gout = 1 + prob = this % chi(gout,gin,iazi,ipol) + + do while (prob < xi) + gout = gout + 1 + prob = prob + this % chi(gout,gin,iazi,ipol) + end do + + end function mgxsang_sample_fission_energy + +!=============================================================================== +! MGXS*_SAMPLE_SCATTER Selects outgoing energy and angle after a scatter event +!=============================================================================== + + subroutine mgxsiso_sample_scatter(this, uvw, gin, gout, mu, wgt) + class(MgxsIso), intent(in) :: this + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + + call this % scatter % sample(gin, gout, mu, wgt) + + end subroutine mgxsiso_sample_scatter + + subroutine mgxsang_sample_scatter(this, uvw, gin, gout, mu, wgt) + class(MgxsAngle), intent(in) :: this + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + + integer :: iazi, ipol ! Angular indices + + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + call this % scatter(iazi,ipol) % obj % sample(gin,gout,mu,wgt) + + end subroutine mgxsang_sample_scatter + +!=============================================================================== +! MGXS*_CALCULATE_XS determines the multi-group cross sections +! for the material the particle is currently traveling through. +!=============================================================================== + + subroutine mgxsiso_calculate_xs(this, gin, uvw, xs) + class(MgxsIso), intent(in) :: this + integer, intent(in) :: gin ! Incoming neutron group + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + type(MaterialMacroXS), intent(inout) :: xs ! Resultant MacroXS Data + + xs % total = this % total(gin) + xs % elastic = this % scatter % scattxs(gin) + xs % absorption = this % absorption(gin) + xs % nu_fission = this % nu_fission(gin) + + end subroutine mgxsiso_calculate_xs + + subroutine mgxsang_calculate_xs(this, gin, uvw, xs) + class(MgxsAngle), intent(in) :: this + integer, intent(in) :: gin ! Incoming neutron group + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + type(MaterialMacroXS), intent(inout) :: xs ! Resultant MacroXS Data + + integer :: iazi, ipol + + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + xs % total = this % total(gin,iazi,ipol) + xs % elastic = this % scatter(iazi,ipol) % obj % scattxs(gin) + xs % absorption = this % absorption(gin,iazi,ipol) + xs % nu_fission = this % nu_fission(gin,iazi,ipol) + + end subroutine mgxsang_calculate_xs + +!!!TODO: +! Move find_angle from math to here after we fully implement this and are ready +! to delete macroxs_header and relevant portions from nuclide_header. end module mgxs_header \ No newline at end of file From 03bca3db4bbd973b513e55e82a491a5b58ad13e0 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 13 Mar 2016 12:54:48 -0400 Subject: [PATCH 045/259] Removed NuclideMG and MacroXS data types and completely replaced with the new Mgxs types. Also cleaned up some output related to the new type --- src/ace.F90 | 18 +- src/cross_section.F90 | 6 +- src/energy_grid.F90 | 6 +- src/fission.F90 | 10 +- src/global.F90 | 8 +- src/macroxs_header.F90 | 768 ---------------------------- src/mgxs_data.F90 | 27 +- src/mgxs_header.F90 | 203 +++++--- src/nuclide_header.F90 | 1099 +--------------------------------------- src/output.F90 | 13 +- src/physics.F90 | 18 +- src/physics_mg.F90 | 4 +- src/tracking.F90 | 1 - 13 files changed, 199 insertions(+), 1982 deletions(-) delete mode 100644 src/macroxs_header.F90 diff --git a/src/ace.F90 b/src/ace.F90 index fbc1b7ee7..8652e8ce8 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -54,7 +54,7 @@ contains character(12) :: name ! name of isotope, e.g. 92235.03c character(12) :: alias ! alias of nuclide, e.g. U-235.03c type(Material), pointer :: mat - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc type(SAlphaBeta), pointer :: sab type(SetChar) :: already_read @@ -265,7 +265,7 @@ contains character(10) :: mat ! material identifier character(70) :: comment ! comment for ACE table character(MAX_FILE_LEN) :: filename ! path to ACE cross section library - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc type(SAlphaBeta), pointer :: sab type(XsListing), pointer :: listing @@ -422,7 +422,7 @@ contains !=============================================================================== subroutine read_esz(nuc, data_0K) - type(NuclideCE), intent(inout) :: nuc + type(Nuclide), intent(inout) :: nuc logical, intent(in) :: data_0K ! are we reading 0K data? integer :: NE ! number of energy points for total and elastic cross sections @@ -510,7 +510,7 @@ contains !=============================================================================== subroutine read_nu_data(nuc) - type(NuclideCE), intent(inout) :: nuc + type(Nuclide), intent(inout) :: nuc integer :: i ! loop index integer :: JXS2 ! location for fission nu data @@ -714,7 +714,7 @@ contains !=============================================================================== subroutine read_reactions(nuc) - type(NuclideCE), intent(inout) :: nuc + type(Nuclide), intent(inout) :: nuc integer :: i ! loop indices integer :: i_fission ! index in nuc % index_fission @@ -894,7 +894,7 @@ contains !=============================================================================== subroutine read_angular_dist(nuc) - type(NuclideCE), intent(inout) :: nuc + type(Nuclide), intent(inout) :: nuc integer :: LOCB ! location of angular distribution for given MT integer :: NE ! number of incoming energies @@ -998,7 +998,7 @@ contains !=============================================================================== subroutine read_energy_dist(nuc) - type(NuclideCE), intent(inout) :: nuc + type(Nuclide), intent(inout) :: nuc integer :: i ! loop index integer :: n @@ -1386,7 +1386,7 @@ contains !=============================================================================== subroutine read_unr_res(nuc) - type(NuclideCE), intent(inout) :: nuc + type(Nuclide), intent(inout) :: nuc integer :: JXS23 ! location of URR data integer :: lc ! locator @@ -1474,7 +1474,7 @@ contains !=============================================================================== subroutine generate_nu_fission(nuc) - type(NuclideCE), intent(inout) :: nuc + type(Nuclide), intent(inout) :: nuc integer :: i ! index on nuclide energy grid real(8) :: E ! energy diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 2f2e7fd7e..e29215f08 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -148,7 +148,7 @@ contains integer :: i_low ! lower logarithmic mapping index integer :: i_high ! upper logarithmic mapping index real(8) :: f ! interp factor on nuclide energy grid - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc type(Material), pointer :: mat ! Set pointer to nuclide and material @@ -364,7 +364,7 @@ contains real(8) :: fission ! fission cross section real(8) :: inelastic ! inelastic cross section type(UrrData), pointer :: urr - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc micro_xs(i_nuclide) % use_ptable = .true. @@ -520,7 +520,7 @@ contains pure function elastic_xs_0K(E, nuc) result(xs_out) real(8), intent(in) :: E ! trial energy - type(NuclideCE), intent(in) :: nuc ! target nuclide at temperature + type(Nuclide), intent(in) :: nuc ! target nuclide at temperature real(8) :: xs_out ! 0K xs at trial energy integer :: i_grid ! index on nuclide energy grid diff --git a/src/energy_grid.F90 b/src/energy_grid.F90 index 248462f70..66419f83c 100644 --- a/src/energy_grid.F90 +++ b/src/energy_grid.F90 @@ -27,7 +27,7 @@ contains integer :: i ! index in nuclides array integer :: j ! index in materials array type(ListReal) :: list - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc type(Material), pointer :: mat call write_message("Creating unionized energy grid...", 5) @@ -70,7 +70,7 @@ contains real(8) :: E_max ! Maximum energy in MeV real(8) :: E_min ! Minimum energy in MeV real(8), allocatable :: umesh(:) ! Equally log-spaced energy grid - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc ! Set minimum/maximum energies E_max = energy_max_neutron @@ -179,7 +179,7 @@ contains integer :: index_e ! index on union energy grid real(8) :: union_energy ! energy on union grid real(8) :: energy ! energy on nuclide grid - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc type(Material), pointer :: mat do k = 1, n_materials diff --git a/src/fission.F90 b/src/fission.F90 index 77ee64178..3a0b9348f 100644 --- a/src/fission.F90 +++ b/src/fission.F90 @@ -1,6 +1,6 @@ module fission - use nuclide_header, only: NuclideCE + use nuclide_header, only: Nuclide use constants use error, only: fatal_error use interpolation, only: interpolate_tab1 @@ -16,7 +16,7 @@ contains !=============================================================================== pure function nu_total(nuc, E) result(nu) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu + type(Nuclide), intent(in) :: nuc ! nuclide from which to find nu real(8), intent(in) :: E ! energy of incoming neutron real(8) :: nu ! number of total neutrons emitted per fission @@ -49,7 +49,7 @@ contains !=============================================================================== pure function nu_prompt(nuc, E) result(nu) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu + type(Nuclide), intent(in) :: nuc ! nuclide from which to find nu real(8), intent(in) :: E ! energy of incoming neutron real(8) :: nu ! number of prompt neutrons emitted per fission @@ -86,7 +86,7 @@ contains !=============================================================================== pure function nu_delayed(nuc, E) result(nu) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu + type(Nuclide), intent(in) :: nuc ! nuclide from which to find nu real(8), intent(in) :: E ! energy of incoming neutron real(8) :: nu ! number of delayed neutrons emitted per fission @@ -109,7 +109,7 @@ contains !=============================================================================== pure function yield_delayed(nuc, E, g) result(yield) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu + type(Nuclide), intent(in) :: nuc ! nuclide from which to find nu real(8), intent(in) :: E ! energy of incoming neutron real(8) :: yield ! delayed neutron precursor yield integer, intent(in) :: g ! the delayed neutron precursor group diff --git a/src/global.F90 b/src/global.F90 index 6befa828f..bb7bf50ef 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -5,9 +5,9 @@ module global use constants use dict_header, only: DictCharInt, DictIntInt use geometry_header, only: Cell, Universe, Lattice, LatticeContainer - use macroxs_header, only: MacroXSContainer use material_header, only: Material use mesh_header, only: RegularMesh + use mgxs_header, only: Mgxs, MgxsContainer use nuclide_header use plot_header, only: ObjectPlot use sab_header, only: SAlphaBeta @@ -86,7 +86,7 @@ module global ! CONTINUOUS-ENERGY CROSS SECTION RELATED VARIABLES ! Cross section arrays - type(NuclideCE), allocatable, target :: nuclides(:) ! Nuclide cross-sections + type(Nuclide), allocatable, target :: nuclides(:) ! Nuclide cross-sections type(SAlphaBeta), allocatable, target :: sab_tables(:) ! S(a,b) tables integer :: n_sab_tables ! Number of S(a,b) thermal scattering tables @@ -112,10 +112,10 @@ module global ! MULTI-GROUP CROSS SECTION RELATED VARIABLES ! Cross section arrays - type(NuclideMGContainer), allocatable, target :: nuclides_MG(:) + type(MgxsContainer), allocatable, target :: nuclides_MG(:) ! Cross section caches - type(MacroXSContainer), target, allocatable :: macro_xs(:) + type(MgxsContainer), target, allocatable :: macro_xs(:) ! Number of energy groups integer :: energy_groups diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 deleted file mode 100644 index ff04d8a4e..000000000 --- a/src/macroxs_header.F90 +++ /dev/null @@ -1,768 +0,0 @@ -module macroxs_header - - use constants, only: MAX_FILE_LEN, ZERO, ONE, TWO, PI - use error, only: fatal_error - use list_header, only: ListInt - use material_header, only: material - use math, only: calc_pn, calc_rn, expand_harmonic, find_angle - use nuclide_header - use random_lcg, only: prn - use scattdata_header - - implicit none - -!=============================================================================== -! MACROXS_* contains cached macroscopic cross sections for the material a -! particle is traveling through -!=============================================================================== - - type, abstract :: MacroXS - contains - procedure(macroxs_init_), deferred :: init ! initializes object - procedure(macroxs_get_xs_), deferred :: get_xs ! Return xs - ! Sample the outgoing energy from a fission event - procedure(macroxs_sample_fission_), deferred :: sample_fission_energy - ! Sample the outgoing energy and angle from a scatter event - procedure(macroxs_sample_scatter_), deferred :: sample_scatter - ! Calculate the material specific MGXS data from the nuclides - procedure(macroxs_calculate_xs_), deferred :: calculate_xs - end type MacroXS - - abstract interface - subroutine macroxs_init_(this, mat, nuclides, groups, get_kfiss, get_fiss, & - max_order, scatt_type) - import MacroXS, Material, NuclideMGContainer, MAX_LINE_LEN - class(MacroXS), intent(inout) :: this ! The MacroXS to initialize - type(Material), pointer, intent(in) :: mat ! base material - type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from - integer, intent(in) :: groups ! Number of E groups - logical, intent(in) :: get_kfiss ! Should we get kfiss data? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(in) :: max_order ! Maximum requested order - integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? - end subroutine macroxs_init_ - - function macroxs_get_xs_(this, xstype, gin, gout, uvw, mu) result(xs) - import MacroXS - class(MacroXS), intent(in) :: this ! The MacroXS to initialize - character(*) , intent(in) :: xstype ! Cross Section Type - integer, intent(in) :: gin ! Incoming Energy group - integer, optional, intent(in) :: gout ! Outgoing Energy group - real(8), optional, intent(in) :: uvw(3) ! Requested Angle - real(8), optional, intent(in) :: mu ! Change in angle - real(8) :: xs ! Resultant xs - end function macroxs_get_xs_ - - function macroxs_sample_fission_(this, gin, uvw) result(gout) - import MacroXS - class(MacroXS), intent(in) :: this ! Data to work with - integer, intent(in) :: gin ! Incoming energy group - real(8), intent(in) :: uvw(3) ! Particle Direction - integer :: gout ! Sampled outgoing group - - end function macroxs_sample_fission_ - - subroutine macroxs_sample_scatter_(this, uvw, gin, gout, mu, wgt) - import MacroXS - class(MacroXS), intent(in) :: this - real(8), intent(in) :: uvw(3) ! Incoming neutron direction - integer, intent(in) :: gin ! Incoming neutron group - integer, intent(out) :: gout ! Sampled outgoin group - real(8), intent(out) :: mu ! Sampled change in angle - real(8), intent(inout) :: wgt ! Particle weight - end subroutine macroxs_sample_scatter_ - - subroutine macroxs_calculate_xs_(this, gin, uvw, xs) - import MacroXS, MaterialMacroXS - class(MacroXS), intent(in) :: this - integer, intent(in) :: gin ! Incoming neutron group - real(8), intent(in) :: uvw(3) ! Incoming neutron direction - type(MaterialMacroXS), intent(inout) :: xs - end subroutine macroxs_calculate_xs_ - end interface - - type, extends(MacroXS) :: MacroXSIso - ! Microscopic cross sections - real(8), allocatable :: total(:) ! total cross section - real(8), allocatable :: absorption(:) ! absorption cross section - class(ScattData), allocatable :: scatter ! scattering information - real(8), allocatable :: nu_fission(:) ! nu-fission - real(8), allocatable :: k_fission(:) ! kappa-fission - real(8), allocatable :: fission(:) ! fission x/s - real(8), allocatable :: chi(:,:) ! fission spectra - - contains - procedure :: init => macroxsiso_init ! inits object - procedure :: get_xs => macroxsiso_get_xs ! Returns xs - procedure :: sample_fission_energy => macroxsiso_sample_fission_energy - procedure :: sample_scatter => macroxsiso_sample_scatter - procedure :: calculate_xs => macroxsiso_calculate_xs - end type MacroXSIso - - type, extends(MacroXS) :: MacroXSAngle - ! Macroscopic cross sections - real(8), allocatable :: total(:,:,:) ! total cross section - real(8), allocatable :: absorption(:,:,:) ! absorption cross section - type(ScattDataContainer), allocatable :: scatter(:,:) ! scattering information - real(8), allocatable :: nu_fission(:,:,:) ! nu-fission - real(8), allocatable :: k_fission(:,:,:) ! kappa-fission - real(8), allocatable :: fission(:,:,:) ! fission x/s - real(8), allocatable :: chi(:,:,:,:) ! fission spectra - real(8), allocatable :: polar(:) ! polar angles - real(8), allocatable :: azimuthal(:) ! azimuthal angles - - contains - procedure :: init => macroxsangle_init ! inits object - procedure :: get_xs => macroxsangle_get_xs ! Returns xs - procedure :: sample_fission_energy => macroxsangle_sample_fission_energy - procedure :: sample_scatter => macroxsangle_sample_scatter - procedure :: calculate_xs => macroxsangle_calculate_xs - end type MacroXSAngle - -!=============================================================================== -! MACROXSCONTAINER pointer array for storing MacroXS objects. -!=============================================================================== - - type MacroXSContainer - class(MacroXS), allocatable :: obj - end type MacroXSContainer - -contains - -!=============================================================================== -! MACROXS*_INIT sets the MacroXS Data -!=============================================================================== - - subroutine macroxsiso_init(this, mat, nuclides, groups, get_kfiss, get_fiss, & - max_order, scatt_type) - class(MacroXSIso), intent(inout) :: this ! The MacroXS to initialize - type(Material), pointer, intent(in) :: mat ! base material - type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from - integer, intent(in) :: groups ! Number of E groups - logical, intent(in) :: get_kfiss ! Should we get kfiss data? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(in) :: max_order ! Maximum requested order - integer, intent(in) :: scatt_type ! How is data presented - - integer :: i ! loop index over nuclides - integer :: gin, gout ! group indices - real(8) :: atom_density ! atom density of a nuclide - real(8) :: norm - integer :: mat_max_order, order, order_dim, nuc_order_dim - real(8), allocatable :: temp_mult(:,:) - real(8), allocatable :: scatt_coeffs(:,:,:) - - ! Determine the scattering type of our data and ensure all scattering orders - ! are the same. - select type(nuc => nuclides(mat % nuclide(1)) % obj) - type is (NuclideIso) - order = size(nuc % scatter % dist(1) % data, dim=1) - end select - ! If we have tabular only data, then make sure all datasets have same size - if (scatt_type == ANGLE_HISTOGRAM) then - ! Check all scattering data to ensure it is the same size - ! order = size(nuclides(mat % nuclide(1)) % obj % scatter % data,dim=1) - do i = 2, mat % n_nuclides - select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (NuclideIso) - if (order /= size(nuc % scatter % dist(1) % data,dim=1)) & - call fatal_error("All Histogram Scattering Entries Must Be& - & Same Length!") - end select - end do - ! Ok, got our order, store the dimensionality - order_dim = order - - ! Set our Scatter Object Type - allocate(ScattDataHistogram :: this % scatter) - - else if (scatt_type == ANGLE_TABULAR) then - ! Check all scattering data to ensure it is the same size - do i = 2, mat % n_nuclides - select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (NuclideIso) - if (order /= size(nuc % scatter % dist(1) % data,dim=1)) & - call fatal_error("All Tabular Scattering Entries Must Be& - & Same Length!") - end select - end do - ! Ok, got our order, store the dimensionality - order_dim = order - - ! Set our Scatter Object Type - allocate(ScattDataTabular :: this % scatter) - - else if (scatt_type == ANGLE_LEGENDRE) then - ! Need to determine the maximum scattering order of all data in this material - mat_max_order = 0 - do i = 1, mat % n_nuclides - select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (NuclideIso) - if (size(nuc % scatter % dist(1) % data,dim=1) > mat_max_order) & - mat_max_order = size(nuc % scatter % dist(1) % data,dim=1) - end select - end do - - ! Now need to compare this material maximum scattering order with - ! the problem wide max scatt order and use whichever is lower - order = min(mat_max_order, max_order) - ! Ok, got our order, store the dimensionality - order_dim = order + 1 - - ! Set our Scatter Object Type - allocate(ScattDataLegendre :: this % scatter) - end if - - ! Allocate and initialize data needed for macro_xs(i_mat) object - allocate(this % total(groups)) - this % total = ZERO - allocate(this % absorption(groups)) - this % absorption = ZERO - if (get_fiss) then - allocate(this % fission(groups)) - this % fission = ZERO - end if - if (get_kfiss) then - allocate(this % k_fission(groups)) - this % k_fission = ZERO - end if - allocate(this % nu_fission(groups)) - this % nu_fission = ZERO - allocate(this % chi(groups,groups)) - this % chi = ZERO - allocate(temp_mult(groups,groups)) - temp_mult = ZERO - allocate(scatt_coeffs(order_dim,groups,groups)) - scatt_coeffs = ZERO - - ! Add contribution from each nuclide in material - do i = 1, mat % n_nuclides - ! Copy atom density of nuclide in material - atom_density = mat % atom_density(i) - - ! Perform our operations which depend upon the type - select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (NuclideIso) - ! Add contributions to total, absorption, and fission data (if necessary) - this % total = this % total + atom_density * nuc % total - this % absorption = this % absorption + & - atom_density * nuc % absorption - if (nuc % fissionable) then - if (allocated(nuc % chi)) then - do gin = 1, groups - do gout = 1, groups - this % chi(gout,gin) = this % chi(gout,gin) + atom_density * & - nuc % chi(gout) * nuc % nu_fission(1,gin) - end do - end do - this % nu_fission = this % nu_fission + atom_density * & - nuc % nu_fission(1,:) - else - this % chi = this % chi + atom_density * nuc % nu_fission - do gin = 1, groups - this % nu_fission(gin) = this % nu_fission(gin) + atom_density * & - sum(nuc % nu_fission(:,gin)) - end do - end if - if (get_fiss) then - this % fission = this % fission + atom_density * nuc % fission - end if - if (get_kfiss) then - this % k_fission = this % k_fission + atom_density * nuc % k_fission - end if - end if - - ! Get the multiplication matrix - do gin = 1, groups - do gout = nuc % scatter % gmin(gin), nuc % scatter % gmax(gin) - temp_mult(gout,gin) = temp_mult(gout,gin) + atom_density * & - nuc % scatter % mult(gin) % data(gout) - end do - end do - - ! Get the complete scattering matrix - nuc_order_dim = size(nuc % scatter % dist(1) % data,dim=1) - scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:) = & - scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:) + & - atom_density * & - nuc % scatter % get_matrix(min(nuc_order_dim,order_dim)) - - type is (NuclideAngle) - call fatal_error("Invalid Passing of NuclideAngle to MacroXSIso Object") - end select - end do - - ! Initialize the ScattData Object - call this % scatter % init(temp_mult,scatt_coeffs) - - ! Now normalize chi - if (mat % fissionable) then - do gin = 1, groups - norm = sum(this % chi(:,gin)) - if (norm > ZERO) then - this % chi(:,gin) = this % chi(:,gin) / norm - end if - end do - end if - - ! Deallocate temporaries - deallocate(scatt_coeffs, temp_mult) - - end subroutine macroxsiso_init - - subroutine macroxsangle_init(this, mat, nuclides, groups, get_kfiss, get_fiss, & - max_order, scatt_type) - class(MacroXSAngle), intent(inout) :: this ! The MacroXS to initialize - type(Material), pointer, intent(in) :: mat ! base material - type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from - integer, intent(in) :: groups ! Number of E groups - logical, intent(in) :: get_kfiss ! Should we get kfiss data? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(in) :: max_order ! Maximum requested order - integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? - - integer :: i ! loop index over nuclides - integer :: gin, gout ! group indices - real(8) :: atom_density ! atom density of a nuclide - integer :: ipol, iazi, n_pol, n_azi - real(8) :: norm - integer :: mat_max_order, order, order_dim, nuc_order_dim - real(8), allocatable :: temp_mult(:,:,:,:) - real(8), allocatable :: scatt_coeffs(:,:,:,:,:) - - ! Get the number of each polar and azi angles and make sure all the - ! NuclideAngle types have the same number of these angles - n_pol = -1 - n_azi = -1 - do i = 1, mat % n_nuclides - select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (NuclideAngle) - if (n_pol == -1) then - n_pol = nuc % n_pol - n_azi = nuc % n_azi - allocate(this % polar(n_pol)) - this % polar = nuc % polar - allocate(this % azimuthal(n_azi)) - this % azimuthal = nuc % azimuthal - else - if ((n_pol /= nuc % n_pol) .or. (n_azi /= nuc % n_azi)) then - call fatal_error("All Angular Data Must Be Same Length!") - end if - end if - end select - end do - - ! Determine the scattering type of our data and ensure all scattering orders - ! are the same. - select type(nuc => nuclides(mat % nuclide(1)) % obj) - type is (NuclideAngle) - order = size(nuc % scatter(1,1) % obj % dist(1) % data, dim=1) - end select - ! If we have tabular only data, then make sure all datasets have same size - if (scatt_type == ANGLE_HISTOGRAM) then - ! Check all scattering data to ensure it is the same size - ! order = size(nuclides(mat % nuclide(1)) % obj % scatter % data,dim=1) - do i = 2, mat % n_nuclides - select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (NuclideAngle) - if (order /= size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1)) & - call fatal_error("All Histogram Scattering Entries Must Be& - & Same Length!") - end select - end do - ! Ok, got our order, store the dimensionality - order_dim = order - - ! Set our Scatter Object Type - allocate(this % scatter(n_azi, n_pol)) - do ipol = 1, n_pol - do iazi = 1, n_azi - allocate(ScattDataHistogram :: this % scatter(iazi, ipol) % obj) - end do - end do - - else if (scatt_type == ANGLE_TABULAR) then - ! Check all scattering data to ensure it is the same size - do i = 2, mat % n_nuclides - select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (NuclideAngle) - if (order /= size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1)) & - call fatal_error("All Tabular Scattering Entries Must Be& - & Same Length!") - end select - end do - ! Ok, got our order, store the dimensionality - order_dim = order - - ! Set our Scatter Object Type - allocate(this % scatter(n_azi, n_pol)) - do ipol = 1, n_pol - do iazi = 1, n_azi - allocate(ScattDataTabular :: this % scatter(iazi, ipol) % obj) - end do - end do - - else if (scatt_type == ANGLE_LEGENDRE) then - ! Need to determine the maximum scattering order of all data in this material - mat_max_order = 0 - do i = 1, mat % n_nuclides - select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (NuclideAngle) - if (size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1) > mat_max_order) & - mat_max_order = size(nuc % scatter(1,1) % obj% dist(1) % data,dim=1) - end select - end do - - ! Now need to compare this material maximum scattering order with - ! the problem wide max scatt order and use whichever is lower - order = min(mat_max_order, max_order) - ! Ok, got our order, store the dimensionality - order_dim = order + 1 - - ! Set our Scatter Object Type - allocate(this % scatter(n_azi, n_pol)) - do ipol = 1, n_pol - do iazi = 1, n_azi - allocate(ScattDataLegendre :: this % scatter(iazi, ipol) % obj) - end do - end do - end if - - ! Allocate and initialize data within macro_xs(i_mat) object - allocate(this % total(groups,n_azi,n_pol)) - this % total = ZERO - allocate(this % absorption(groups,n_azi,n_pol)) - this % absorption = ZERO - if (get_fiss) then - allocate(this % fission(groups,n_azi,n_pol)) - this % fission = ZERO - end if - if (get_kfiss) then - allocate(this % k_fission(groups,n_azi,n_pol)) - this % k_fission = ZERO - end if - allocate(this % nu_fission(groups,n_azi,n_pol)) - this % nu_fission = ZERO - allocate(this % chi(groups, groups,n_azi,n_pol)) - this % chi = ZERO - allocate(temp_mult(groups,groups,n_azi,n_pol)) - temp_mult = ZERO - allocate(scatt_coeffs(order_dim,groups,groups,n_azi,n_pol)) - scatt_coeffs = ZERO - - ! Add contribution from each nuclide in material - do i = 1, mat % n_nuclides - ! Copy atom density of nuclide in material - atom_density = mat % atom_density(i) - - ! Perform our operations which depend upon the type - select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (NuclideIso) - call fatal_error("Invalid Passing of NuclideIso to MacroXSAngle Object") - type is (NuclideAngle) - ! Add contributions to total, absorption, and fission data (if necessary) - this % total = this % total + atom_density * nuc % total - this % absorption = this % absorption + & - atom_density * nuc % absorption - if (nuc % fissionable) then - if (allocated(nuc % chi)) then - do gin = 1, groups - do gout = 1, groups - this % chi(gout,gin,:,:) = this % chi(gout,gin,:,:) + atom_density * & - nuc % chi(gout,:,:) * nuc % nu_fission(1,gin,:,:) - end do - end do - this % nu_fission = this % nu_fission + atom_density * & - nuc % nu_fission(1,:,:,:) - else - this % chi = this % chi + atom_density * nuc % nu_fission - do gin = 1, groups - this % nu_fission(gin,:,:) = this % nu_fission(gin,:,:) + atom_density * & - sum(nuc % nu_fission(:,gin,:,:),dim=1) - end do - end if - if (get_fiss) then - this % fission = this % fission + atom_density * nuc % fission - end if - if (get_kfiss) then - this % k_fission = this % k_fission + atom_density * nuc % k_fission - end if - end if - - ! Get the multiplication matrix - do ipol = 1, n_pol - do iazi = 1, n_azi - do gin = 1, groups - do gout = nuc % scatter(iazi,ipol) % obj % gmin(gin), & - nuc % scatter(iazi,ipol) % obj % gmax(gin) - temp_mult(gout,gin,iazi,ipol) = temp_mult(gout,gin,iazi,ipol) + & - atom_density * & - nuc % scatter(iazi,ipol) % obj % mult(gin) % data(gout) - end do - end do - end do - end do - - ! Get the complete scattering matrix - nuc_order_dim = size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1) - do ipol = 1, n_pol - do iazi = 1, n_azi - scatt_coeffs(1:min(nuc_order_dim,order_dim),:,:,iazi,ipol) = & - scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:,iazi,ipol) + & - atom_density * & - nuc % scatter(iazi,ipol) % obj % get_matrix(& - min(nuc_order_dim,order_dim)) - end do - end do - end select - end do - - ! Initialize the ScattData Object - do ipol = 1, n_pol - do iazi = 1, n_azi - call this % scatter(iazi,ipol) % obj % init( & - temp_mult(:,:,iazi,ipol), scatt_coeffs(:,:,:,iazi,ipol)) - end do - end do - - ! Now normalize chi - if (mat % fissionable) then - do ipol = 1, n_pol - do iazi = 1, n_azi - do gin = 1, groups - norm = sum(this % chi(:,gin,iazi,ipol)) - if (norm > ZERO) then - this % chi(:,gin,iazi,ipol) = this % chi(:,gin,iazi,ipol) / norm - end if - end do - end do - end do - end if - - ! Deallocate temporaries for the next material - deallocate(scatt_coeffs, temp_mult) - - end subroutine macroxsangle_init - -!=============================================================================== -! MACROXS_*_GET_XS returns the requested data type -!=============================================================================== - - function macroxsiso_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) - class(MacroXSIso), intent(in) :: this ! The MacroXS to initialize - character(*) , intent(in) :: xstype ! Type of xs requested - integer, intent(in) :: gin ! Incoming Energy group - integer, optional, intent(in) :: gout ! Outgoing Energy group - real(8), optional, intent(in) :: uvw(3) ! Requested Angle - real(8), optional, intent(in) :: mu ! Change in angle - real(8) :: xs ! Requested x/s - - select case(xstype) - case('total') - xs = this % total(gin) - case('absorption') - xs = this % absorption(gin) - case('fission') - xs = this % fission(gin) - case('kappa_fission') - xs = this % k_fission(gin) - case('nu_fission') - xs = this % nu_fission(gin) - case('scatter') - xs = this % scatter % scattxs(gin) - case('mult') - if (present(gout)) then - if (gout < this % scatter % gmin(gin) .or. & - gout > this % scatter % gmax(gin)) then - xs = ZERO - else - xs = this % scatter % mult(gin) % data(gout) - end if - else - xs = dot_product(this % scatter % mult(gin) % data, & - this % scatter % scattxs(gin) * & - this % scatter % energy(gin) % data) - xs = xs / this % scatter % scattxs(gin) - end if - case('f_mu', 'f_mu/mult') - if (gout < this % scatter % gmin(gin) .or. & - gout > this % scatter % gmax(gin)) then - xs = ZERO - else - xs = this % scatter % calc_f(gin, gout, mu) - if (xstype == 'f_mu/mult') then - xs = xs / this % scatter % mult(gin) % data(gout) - end if - end if - end select - - end function macroxsiso_get_xs - - function macroxsangle_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) - class(MacroXSAngle), intent(in) :: this ! The MacroXS to initialize - character(*) , intent(in) :: xstype ! Type of xs requested - integer, intent(in) :: gin ! Incoming Energy group - integer, optional, intent(in) :: gout ! Outgoing Energy group - real(8), optional, intent(in) :: uvw(3) ! Requested Angle - real(8), optional, intent(in) :: mu ! Change in angle - real(8) :: xs ! Requested x/s - - integer :: iazi, ipol - - if (present(uvw)) then - call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - select case(xstype) - case('total') - xs = this % total(gin,iazi,ipol) - case('absorption') - xs = this % absorption(gin,iazi,ipol) - case('fission') - xs = this % fission(gin,iazi,ipol) - case('kappa_fission') - xs = this % k_fission(gin,iazi,ipol) - case('nu_fission') - xs = this % nu_fission(gin,iazi,ipol) - case('scatter') - xs = this % scatter(iazi,ipol) % obj % scattxs(gin) - case('mult') - if (present(gout)) then - if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & - gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then - xs = ZERO - else - xs = this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) - end if - else - xs = dot_product(this % scatter(iazi,ipol) % obj % mult(gin) % data, & - this % scatter(iazi,ipol) % obj % scattxs(gin) * & - this % scatter(iazi,ipol) % obj % energy(gin) % data) - xs = xs / this % scatter(iazi,ipol) % obj % scattxs(gin) - end if - case('f_mu', 'f_mu/mult') - if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & - gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then - xs = ZERO - else - xs = this % scatter(iazi,ipol) % obj % calc_f(gin,gout,mu) - if (xstype == 'f_mu/mult') then - xs = xs / this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) - end if - end if - end select - end if - - end function macroxsangle_get_xs - -!=============================================================================== -! MACROXS_*_SAMPLE_FISSION_ENERGY samples the outgoing energy from a fission -! event -!=============================================================================== - - function macroxsiso_sample_fission_energy(this, gin, uvw) result(gout) - class(MacroXSIso), intent(in) :: this ! Data to work with - integer, intent(in) :: gin ! Incoming energy group - real(8), intent(in) :: uvw(3) ! Particle Direction - integer :: gout ! Sampled outgoing group - real(8) :: xi ! Our random number - real(8) :: prob ! Running probability - - xi = prn() - gout = 1 - prob = this % chi(gout,gin) - - do while (prob < xi) - gout = gout + 1 - prob = prob + this % chi(gout,gin) - end do - - end function macroxsiso_sample_fission_energy - - function macroxsangle_sample_fission_energy(this, gin, uvw) result(gout) - class(MacroXSAngle), intent(in) :: this ! Data to work with - integer, intent(in) :: gin ! Incoming energy group - real(8), intent(in) :: uvw(3) ! Particle Direction - integer :: gout ! Sampled outgoing group - real(8) :: xi ! Our random number - real(8) :: prob ! Running probability - integer :: iazi, ipol - - call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - - xi = prn() - gout = 1 - prob = this % chi(gout,gin,iazi,ipol) - - do while (prob < xi) - gout = gout + 1 - prob = prob + this % chi(gout,gin,iazi,ipol) - end do - - end function macroxsangle_sample_fission_energy - -!=============================================================================== -! MACROXS*_SAMPLE_SCATTER Selects outgoing energy and angle after a scatter -! event -!=============================================================================== - - subroutine macroxsiso_sample_scatter(this, uvw, gin, gout, mu, wgt) - class(MacroXSIso), intent(in) :: this - real(8), intent(in) :: uvw(3) ! Incoming neutron direction - integer, intent(in) :: gin ! Incoming neutron group - integer, intent(out) :: gout ! Sampled outgoin group - real(8), intent(out) :: mu ! Sampled change in angle - real(8), intent(inout) :: wgt ! Particle weight - - call this % scatter % sample(gin, gout, mu, wgt) - - end subroutine macroxsiso_sample_scatter - - subroutine macroxsangle_sample_scatter(this, uvw, gin, gout, mu, wgt) - class(MacroXSAngle), intent(in) :: this - real(8), intent(in) :: uvw(3) ! Incoming neutron direction - integer, intent(in) :: gin ! Incoming neutron group - integer, intent(out) :: gout ! Sampled outgoin group - real(8), intent(out) :: mu ! Sampled change in angle - real(8), intent(inout) :: wgt ! Particle weight - - integer :: iazi, ipol ! Angular indices - - call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - call this % scatter(iazi,ipol) % obj % sample(gin,gout,mu,wgt) - - end subroutine macroxsangle_sample_scatter - -!=============================================================================== -! MACROXS*_CALCULATE_XS determines the multi-group macroscopic cross sections -! for the material the particle is currently traveling through. -!=============================================================================== - - subroutine macroxsiso_calculate_xs(this, gin, uvw, xs) - class(MacroXSIso), intent(in) :: this - integer, intent(in) :: gin ! Incoming neutron group - real(8), intent(in) :: uvw(3) ! Incoming neutron direction - type(MaterialMacroXS), intent(inout) :: xs ! Resultant MacroXS Data - - xs % total = this % total(gin) - xs % elastic = this % scatter % scattxs(gin) - xs % absorption = this % absorption(gin) - xs % nu_fission = this % nu_fission(gin) - - end subroutine macroxsiso_calculate_xs - - subroutine macroxsangle_calculate_xs(this, gin, uvw, xs) - class(MacroXSAngle), intent(in) :: this - integer, intent(in) :: gin ! Incoming neutron group - real(8), intent(in) :: uvw(3) ! Incoming neutron direction - type(MaterialMacroXS), intent(inout) :: xs ! Resultant MacroXS Data - - integer :: iazi, ipol - - call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - xs % total = this % total(gin,iazi,ipol) - xs % elastic = this % scatter(iazi,ipol) % obj % scattxs(gin) - xs % absorption = this % absorption(gin,iazi,ipol) - xs % nu_fission = this % nu_fission(gin,iazi,ipol) - - end subroutine macroxsangle_calculate_xs - -end module macroxs_header diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index db2b14936..283024e29 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -3,9 +3,8 @@ module mgxs_data use constants use error, only: fatal_error use global - use macroxs_header use material_header, only: Material - use nuclide_header + use mgxs_header use output, only: write_message use set_header, only: SetChar use string, only: to_lower @@ -118,17 +117,14 @@ contains ! Now allocate accordingly select case(representation) case(MGXS_ISOTROPIC) - allocate(NuclideIso :: nuclides_MG(i_nuclide) % obj) + allocate(MgxsIso :: nuclides_MG(i_nuclide) % obj) case(MGXS_ANGLE) - allocate(NuclideAngle :: nuclides_MG(i_nuclide) % obj) + allocate(MgxsAngle :: nuclides_MG(i_nuclide) % obj) end select ! Now read in the data specific to the type we just declared - call nuclides_MG(i_nuclide) % obj % init(node_xsdata, energy_groups, & - get_kfiss, get_fiss, max_order) - - ! Keep track of what listing is associated with this nuclide - nuclides_MG(i_nuclide) % obj % listing = i_listing + call nuclides_MG(i_nuclide) % obj % init_file(node_xsdata, & + energy_groups,get_kfiss,get_fiss,max_order,i_listing) ! Add name and alias to dictionary call already_read % add(name) @@ -202,14 +198,13 @@ contains ! how we allocate the scatter object within macroxs scatt_type = nuclides_MG(mat % nuclide(1)) % obj % scatt_type select type(nuc => nuclides_MG(mat % nuclide(1)) % obj) - type is (NuclideIso) - allocate(MacroXSIso :: macro_xs(i_mat) % obj) - type is (NuclideAngle) - allocate(MacroXSAngle :: macro_xs(i_mat) % obj) + type is (MgxsIso) + allocate(MgxsIso :: macro_xs(i_mat) % obj) + type is (MgxsAngle) + allocate(MgxsAngle :: macro_xs(i_mat) % obj) end select - call macro_xs(i_mat) % obj % init(mat, nuclides_MG, energy_groups, & - get_kfiss, get_fiss, max_order, & - scatt_type) + call macro_xs(i_mat) % obj % combine(mat,nuclides_MG,energy_groups, & + get_kfiss,get_fiss,max_order,scatt_type,i_mat) end do end subroutine create_macro_xs diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 36e3964da..c87b37ce2 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -7,7 +7,7 @@ module mgxs_header use material_header, only: material use math, only: calc_pn, calc_rn, expand_harmonic, & evaluate_legendre, find_angle - use nuclide_header, only: NuclideMGContainer, MaterialMacroXS + use nuclide_header, only: MaterialMacroXS use random_lcg, only: prn use scattdata_header use string @@ -18,11 +18,11 @@ module mgxs_header !=============================================================================== type, abstract :: Mgxs - character(12) :: name ! name of dataset, e.g. 92235.03c - integer :: zaid ! Z and A identifier, e.g. 92235 - real(8) :: awr ! Atomic Weight Ratio - integer :: listing ! index in xs_listings - real(8) :: kT ! temperature in MeV (k*T) + character(len=104) :: name ! name of dataset, e.g. 92235.03c + integer :: zaid ! Z and A identifier, e.g. 92235 + real(8) :: awr ! Atomic Weight Ratio + integer :: listing ! index in xs_listings + real(8) :: kT ! temperature in MeV (k*T) ! Fission information logical :: fissionable ! mgxs object is fissionable? @@ -32,25 +32,38 @@ module mgxs_header procedure(mgxs_init_file_), deferred :: init_file ! Initialize the data procedure(mgxs_print_), deferred :: print ! Writes object info procedure(mgxs_get_xs_), deferred :: get_xs ! Get the requested xs - ! procedure(mgxs_combine_), deferred :: combine ! initializes object - ! ! Sample the outgoing energy from a fission event + procedure(mgxs_combine_), deferred :: combine ! initializes object + ! Sample the outgoing energy from a fission event procedure(mgxs_sample_fission_), deferred :: sample_fission_energy - ! ! Sample the outgoing energy and angle from a scatter event + ! Sample the outgoing energy and angle from a scatter event procedure(mgxs_sample_scatter_), deferred :: sample_scatter - ! ! Calculate the material specific MGXS data from the nuclides + ! Calculate the material specific MGXS data from the nuclides procedure(mgxs_calculate_xs_), deferred :: calculate_xs end type Mgxs +!=============================================================================== +! MGXSCONTAINER pointer array for storing Nuclides +!=============================================================================== + + type MgxsContainer + class(Mgxs), pointer :: obj + end type MgxsContainer + +!=============================================================================== +! Interfaces for MGXS +!=============================================================================== + abstract interface - subroutine mgxs_init_file_(this, node_xsdata, groups, get_kfiss, get_fiss, & - max_order) + subroutine mgxs_init_file_(this,node_xsdata,groups,get_kfiss,get_fiss, & + max_order,i_listing) import Mgxs, Node class(Mgxs), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: i_listing ! Index of listings array end subroutine mgxs_init_file_ subroutine mgxs_print_(this, unit) @@ -59,7 +72,7 @@ module mgxs_header integer, optional, intent(in) :: unit end subroutine mgxs_print_ - function mgxs_get_xs_(this, xstype, gin, gout, uvw, mu) result(xs) + function mgxs_get_xs_(this,xstype,gin,gout,uvw,mu) result(xs) import Mgxs class(Mgxs), intent(in) :: this character(*), intent(in) :: xstype ! Cross Section Type @@ -70,7 +83,7 @@ module mgxs_header real(8) :: xs ! Resultant xs end function mgxs_get_xs_ - pure function mgxs_calc_f_(this, gin, gout, mu, uvw, iazi, ipol) result(f) + pure function mgxs_calc_f_(this,gin,gout,mu,uvw,iazi,ipol) result(f) import Mgxs class(Mgxs), intent(in) :: this integer, intent(in) :: gin ! Incoming Energy Group @@ -83,17 +96,18 @@ module mgxs_header end function mgxs_calc_f_ - subroutine mgxs_combine_(this, mat, nuclides, groups, get_kfiss, get_fiss, & - max_order, scatt_type) - import Mgxs, Material, NuclideMGContainer, MAX_LINE_LEN + subroutine mgxs_combine_(this,mat,nuclides,groups,get_kfiss,get_fiss, & + max_order,scatt_type,i_listing) + import Mgxs, Material, MgxsContainer class(Mgxs), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material - type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from - integer, intent(in) :: groups ! Number of E groups - logical, intent(in) :: get_kfiss ! Should we get kfiss data? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(in) :: max_order ! Maximum requested order + type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from + integer, intent(in) :: groups ! Number of E groups + logical, intent(in) :: get_kfiss ! Should we get kfiss data? + logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? + integer, intent(in) :: i_listing ! Index in listings end subroutine mgxs_combine_ function mgxs_sample_fission_(this, gin, uvw) result(gout) @@ -118,9 +132,9 @@ module mgxs_header subroutine mgxs_calculate_xs_(this, gin, uvw, xs) import Mgxs, MaterialMacroXS class(Mgxs), intent(in) :: this - integer, intent(in) :: gin ! Incoming neutron group - real(8), intent(in) :: uvw(3) ! Incoming neutron direction - type(MaterialMacroXS), intent(inout) :: xs + integer, intent(in) :: gin ! Incoming neutron group + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + type(MaterialMacroXS), intent(inout) :: xs ! Resultant Mgxs Data end subroutine mgxs_calculate_xs_ end interface @@ -144,7 +158,7 @@ module mgxs_header procedure :: init_file => mgxsiso_init_file ! Initialize Nuclidic MGXS Data procedure :: print => mgxsiso_print ! Writes nuclide info procedure :: get_xs => mgxsiso_get_xs ! Gets Size of Data w/in Object - ! procedure :: combine => mgxsiso_combine ! inits object + procedure :: combine => mgxsiso_combine ! inits object procedure :: sample_fission_energy => mgxsiso_sample_fission_energy procedure :: sample_scatter => mgxsiso_sample_scatter procedure :: calculate_xs => mgxsiso_calculate_xs @@ -175,20 +189,12 @@ module mgxs_header procedure :: init_file => mgxsang_init_file ! Initialize Nuclidic MGXS Data procedure :: print => mgxsang_print ! Writes nuclide info procedure :: get_xs => mgxsang_get_xs ! Gets Size of Data w/in Object - ! procedure :: combine => mgxsang_combine ! inits object + procedure :: combine => mgxsang_combine ! inits object procedure :: sample_fission_energy => mgxsang_sample_fission_energy procedure :: sample_scatter => mgxsang_sample_scatter procedure :: calculate_xs => mgxsang_calculate_xs end type MgxsAngle -!=============================================================================== -! MGXSCONTAINER pointer array for storing Nuclides -!=============================================================================== - - type MgxsContainer - class(Mgxs), pointer :: obj - end type MgxsContainer - contains !=============================================================================== @@ -197,9 +203,10 @@ module mgxs_header ! the xsdata object node itself. !=============================================================================== - subroutine mgxs_init_file(this, node_xsdata) + subroutine mgxs_init_file(this,node_xsdata,i_listing) class(Mgxs), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml + integer, intent(in) :: i_listing ! Index in listings array character(MAX_LINE_LEN) :: temp_str @@ -214,7 +221,7 @@ module mgxs_header if (check_for_node(node_xsdata, "zaid")) then call get_node_value(node_xsdata, "zaid", this % zaid) else - this % zaid = -1 + this % zaid = 0 end if if (check_for_node(node_xsdata, "scatt_type")) then call get_node_value(node_xsdata, "scatt_type", temp_str) @@ -244,15 +251,20 @@ module mgxs_header call fatal_error("Fissionable element must be set!") end if + ! Keep track of what listing is associated with this nuclide + this % listing = i_listing + end subroutine mgxs_init_file - subroutine mgxsiso_init_file(this,node_xsdata,groups,get_kfiss,get_fiss,max_order) + subroutine mgxsiso_init_file(this,node_xsdata,groups,get_kfiss,get_fiss, & + max_order,i_listing) class(MgxsIso), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? logical, intent(in) :: get_fiss ! Need fiss data? integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: i_listing ! Index in listings array type(Node), pointer :: node_legendre_mu character(MAX_LINE_LEN) :: temp_str @@ -267,7 +279,7 @@ module mgxs_header integer :: legendre_mu_points, imu ! Call generic data gathering routine (will populate the metadata) - call mgxs_init_file(this, node_xsdata) + call mgxs_init_file(this,node_xsdata,i_listing) ! Load the more specific data allocate(this % nu_fission(groups)) @@ -530,13 +542,15 @@ module mgxs_header end subroutine mgxsiso_init_file - subroutine mgxsang_init_file(this,node_xsdata,groups,get_kfiss,get_fiss,max_order) + subroutine mgxsang_init_file(this,node_xsdata,groups,get_kfiss,get_fiss, & + max_order,i_listing) class(MgxsAngle), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: i_listing ! Index in listings array type(Node), pointer :: node_legendre_mu character(MAX_LINE_LEN) :: temp_str @@ -551,7 +565,7 @@ module mgxs_header integer :: legendre_mu_points, imu, ipol, iazi ! Call generic data gathering routine (will populate the metadata) - call mgxs_init_file(this, node_xsdata) + call mgxs_init_file(this,node_xsdata,i_listing) if (check_for_node(node_xsdata, "num_polar")) then call get_node_value(node_xsdata, "num_polar", this % n_pol) @@ -927,13 +941,18 @@ module mgxs_header character(MAX_LINE_LEN) :: temp_str ! Basic nuclide information - write(unit_,*) 'MGXS Entry ' // trim(this % name) + write(unit_,*) 'MGXS Entry: ' // trim(this % name) if (this % zaid > 0) then - ! Dont print if data was macroscopic and thus zaid & AWR would be nonsense - write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) - write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + write(unit_,*) ' ZAID = ' // trim(to_str(this % zaid)) + else if (this % zaid < 0) then + write(unit_,*) ' Material id = ' // trim(to_str(-this % zaid)) + end if + if (this % awr > ZERO) then + write(unit_,*) ' AWR = ' // trim(to_str(this % awr)) + end if + if (this % kT > ZERO) then + write(unit_,*) ' kT = ' // trim(to_str(this % kT)) end if - write(unit_,*) ' kT = ' // trim(to_str(this % kT)) if (this % scatt_type == ANGLE_LEGENDRE) then temp_str = "Legendre" write(unit_,*) ' Scattering Type = ' // trim(temp_str) @@ -941,7 +960,7 @@ module mgxs_header type is (MgxsIso) temp_str = to_str(size(this % scatter % dist(1) % data,dim=1) - 1) end select - write(unit_,*) ' Scattering Order = ' // trim(temp_str) + write(unit_,*) ' Scattering Order = ' // trim(temp_str) else if (this % scatt_type == ANGLE_HISTOGRAM) then temp_str = "Histogram" write(unit_,*) ' Scattering Type = ' // trim(temp_str) @@ -949,7 +968,7 @@ module mgxs_header type is (MgxsIso) temp_str = to_str(size(this % scatter % dist(1) % data,dim=1)) end select - write(unit_,*) ' Num. Distribution Bins = ' // trim(temp_str) + write(unit_,*) ' Num. Distribution Bins = ' // trim(temp_str) else if (this % scatt_type == ANGLE_TABULAR) then temp_str = "Tabular" write(unit_,*) ' Scattering Type = ' // trim(temp_str) @@ -957,7 +976,7 @@ module mgxs_header type is (MgxsIso) temp_str = to_str(size(this % scatter % dist(1) % data,dim=1)) end select - write(unit_,*) ' Num. Distribution Points = ' // trim(temp_str) + write(unit_,*) ' Num. Distribution Points = ' // trim(temp_str) end if write(unit_,*) ' Fissionable = ', this % fissionable @@ -1073,7 +1092,7 @@ module mgxs_header !=============================================================================== function mgxsiso_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) - class(MgxsIso), intent(in) :: this ! The MacroXS to initialize + class(MgxsIso), intent(in) :: this ! The Mgxs to initialize character(*) , intent(in) :: xstype ! Type of xs requested integer, intent(in) :: gin ! Incoming Energy group integer, optional, intent(in) :: gout ! Outgoing Energy group @@ -1117,7 +1136,7 @@ module mgxs_header case('mult') if (present(gout)) then if (gout < this % scatter % gmin(gin) .or. & - gout > this % scatter % gmax(gin)) then + gout > this % scatter % gmax(gin)) then xs = ZERO else xs = this % scatter % mult(gin) % data(gout) @@ -1131,7 +1150,7 @@ module mgxs_header case('f_mu', 'f_mu/mult') if (present(gout) .and. present(mu)) then if (gout < this % scatter % gmin(gin) .or. & - gout > this % scatter % gmax(gin)) then + gout > this % scatter % gmax(gin)) then xs = ZERO else xs = this % scatter % calc_f(gin, gout, mu) @@ -1153,7 +1172,7 @@ module mgxs_header end function mgxsiso_get_xs function mgxsang_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) - class(MgxsAngle), intent(in) :: this ! The MacroXS to initialize + class(MgxsAngle), intent(in) :: this ! The Mgxs to initialize character(*) , intent(in) :: xstype ! Type of xs requested integer, intent(in) :: gin ! Incoming Energy group integer, optional, intent(in) :: gout ! Outgoing Energy group @@ -1201,7 +1220,7 @@ module mgxs_header case('mult') if (present(gout)) then if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & - gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then xs = ZERO else xs = this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) @@ -1215,7 +1234,7 @@ module mgxs_header case('f_mu', 'f_mu/mult') if (present(gout) .and. present(mu)) then if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & - gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then xs = ZERO else xs = this % scatter(iazi,ipol) % obj % calc_f(gin, gout, mu) @@ -1245,16 +1264,41 @@ module mgxs_header ! objects !=============================================================================== - subroutine mgxsiso_combine(this, mat, nuclides, groups, get_kfiss, get_fiss, & - max_order, scatt_type) - class(MgxsIso), intent(inout) :: this ! The MacroXS to initialize + subroutine mgxs_combine(this,mat,scatt_type,i_listing) + class(Mgxs), intent(inout) :: this ! The Mgxs to initialize + type(Material), pointer, intent(in) :: mat ! base material + integer, intent(in) :: scatt_type ! How is data presented + integer, intent(in) :: i_listing ! Index in listings + + ! Fill in meta-data from material information + if (mat % name == "") then + this % name = trim(to_str(mat % id)) + else + this % name = mat % name + end if + this % zaid = -mat % id + this % listing = i_listing + this % fissionable = mat % fissionable + this % scatt_type = scatt_type + + ! The following info we should initialize, but we dont need it nor + ! does it have guaranteed meaning. + this % awr = -ONE + this % kT = -ONE + + end subroutine mgxs_combine + + subroutine mgxsiso_combine(this,mat,nuclides,groups,get_kfiss,get_fiss, & + max_order,scatt_type,i_listing) + class(MgxsIso), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from - integer, intent(in) :: groups ! Number of E groups - logical, intent(in) :: get_kfiss ! Should we get kfiss data? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: groups ! Number of E groups + logical, intent(in) :: get_kfiss ! Should we get kfiss data? + logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! How is data presented + integer, intent(in) :: i_listing ! Index in listings integer :: i ! loop index over nuclides integer :: gin, gout ! group indices @@ -1264,6 +1308,9 @@ module mgxs_header real(8), allocatable :: temp_mult(:,:) real(8), allocatable :: scatt_coeffs(:,:,:) + ! Set the meta-data + call mgxs_combine(this,mat,scatt_type,i_listing) + ! Determine the scattering type of our data and ensure all scattering orders ! are the same. select type(nuc => nuclides(mat % nuclide(1)) % obj) @@ -1387,7 +1434,7 @@ module mgxs_header nuc % scatter % get_matrix(min(nuc_order_dim,order_dim)) type is (MgxsAngle) - call fatal_error("Invalid Passing of MgxsAngle to MacroXSIso Object") + call fatal_error("Invalid Passing of MgxsAngle to MgxsIso Object") end select end do @@ -1409,16 +1456,17 @@ module mgxs_header end subroutine mgxsiso_combine - subroutine mgxsang_combine(this, mat, nuclides, groups, get_kfiss, get_fiss, & - max_order, scatt_type) - class(MgxsAngle), intent(inout) :: this ! The MacroXS to initialize + subroutine mgxsang_combine(this,mat,nuclides,groups,get_kfiss,get_fiss, & + max_order,scatt_type,i_listing) + class(MgxsAngle), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from - integer, intent(in) :: groups ! Number of E groups - logical, intent(in) :: get_kfiss ! Should we get kfiss data? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: groups ! Number of E groups + logical, intent(in) :: get_kfiss ! Should we get kfiss data? + logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? + integer, intent(in) :: i_listing ! Index in listings integer :: i ! loop index over nuclides integer :: gin, gout ! group indices @@ -1429,6 +1477,9 @@ module mgxs_header real(8), allocatable :: temp_mult(:,:,:,:) real(8), allocatable :: scatt_coeffs(:,:,:,:,:) + ! Set the meta-data + call mgxs_combine(this,mat,scatt_type,i_listing) + ! Get the number of each polar and azi angles and make sure all the ! NuclideAngle types have the same number of these angles n_pol = -1 @@ -1557,7 +1608,7 @@ module mgxs_header ! Perform our operations which depend upon the type select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsIso) - call fatal_error("Invalid Passing of MgxsIso to MacroXSAngle Object") + call fatal_error("Invalid Passing of MgxsIso to MgxsAngle Object") type is (MgxsAngle) ! Add contributions to total, absorption, and fission data (if necessary) this % total = this % total + atom_density * nuc % total @@ -1712,10 +1763,10 @@ module mgxs_header !=============================================================================== subroutine mgxsiso_calculate_xs(this, gin, uvw, xs) - class(MgxsIso), intent(in) :: this + class(MgxsIso), intent(in) :: this integer, intent(in) :: gin ! Incoming neutron group real(8), intent(in) :: uvw(3) ! Incoming neutron direction - type(MaterialMacroXS), intent(inout) :: xs ! Resultant MacroXS Data + type(MaterialMacroXS), intent(inout) :: xs ! Resultant Mgxs Data xs % total = this % total(gin) xs % elastic = this % scatter % scattxs(gin) @@ -1725,10 +1776,10 @@ module mgxs_header end subroutine mgxsiso_calculate_xs subroutine mgxsang_calculate_xs(this, gin, uvw, xs) - class(MgxsAngle), intent(in) :: this + class(MgxsAngle), intent(in) :: this integer, intent(in) :: gin ! Incoming neutron group real(8), intent(in) :: uvw(3) ! Incoming neutron direction - type(MaterialMacroXS), intent(inout) :: xs ! Resultant MacroXS Data + type(MaterialMacroXS), intent(inout) :: xs ! Resultant Mgxs Data integer :: iazi, ipol diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index e964e970d..9600e6739 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -7,7 +7,6 @@ module nuclide_header use endf, only: reaction_name use error, only: fatal_error use list_header, only: ListInt - use math, only: evaluate_legendre, find_angle use scattdata_header use string use xml_interface @@ -15,12 +14,12 @@ module nuclide_header implicit none !=============================================================================== -! Nuclide contains the base nuclidic data for a nuclide, which does not depend -! upon how the nuclear data is represented (i.e., CE, or any variant of MG). -! The extended types, NuclideCE and NuclideMG deal with the rest +! Nuclide contains the base nuclidic data for a nuclide described as needed +! for continuous-energy neutron transport. !=============================================================================== - type, abstract :: Nuclide + type :: Nuclide + ! Nuclide meta-data character(12) :: name ! name of nuclide, e.g. 92235.03c integer :: zaid ! Z and A identifier, e.g. 92235 real(8) :: awr ! Atomic Weight Ratio @@ -30,19 +29,6 @@ module nuclide_header ! Fission information logical :: fissionable ! nuclide is fissionable? - contains - procedure(nuclide_print_), deferred :: print ! Writes nuclide info - end type Nuclide - - abstract interface - subroutine nuclide_print_(this, unit) - import Nuclide - class(Nuclide),intent(in) :: this - integer, optional, intent(in) :: unit - end subroutine nuclide_print_ - end interface - - type, extends(Nuclide) :: NuclideCE ! Energy grid information integer :: n_grid ! # of nuclide grid points integer, allocatable :: grid_index(:) ! log grid mapping indices @@ -99,120 +85,13 @@ module nuclide_header ! array; used at tally-time contains - procedure :: clear => nuclidece_clear - procedure :: print => nuclidece_print - end type NuclideCE - - type, abstract, extends(Nuclide) :: NuclideMG - integer :: scatt_type ! either legendre, histogram, or tabular. - contains - procedure(nuclidemg_init_), deferred :: init ! Initialize the data - procedure(nuclidemg_get_xs_), deferred :: get_xs ! Get the requested xs - end type NuclideMG - - abstract interface - - subroutine nuclidemg_init_(this, node_xsdata, groups, get_kfiss, get_fiss, & - max_order) - import NuclideMG, Node - class(NuclideMG), intent(inout) :: this ! Working Object - type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml - integer, intent(in) :: groups ! Number of Energy groups - logical, intent(in) :: get_kfiss ! Need Kappa-Fission? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(in) :: max_order ! Maximum requested order - end subroutine nuclidemg_init_ - - function nuclidemg_get_xs_(this, xstype, gin, gout, uvw, mu, iazi, ipol) & - result(xs) - import NuclideMG - class(NuclideMG), intent(in) :: this - character(*), intent(in) :: xstype ! Cross Section Type - integer, intent(in) :: gin ! Incoming Energy group - integer, optional, intent(in) :: gout ! Outgoing Group - real(8), optional, intent(in) :: uvw(3) ! Requested Angle - real(8), optional, intent(in) :: mu ! Change in angle - integer, optional, intent(in) :: iazi ! Azimuthal Index - integer, optional, intent(in) :: ipol ! Polar Index - real(8) :: xs ! Resultant xs - end function nuclidemg_get_xs_ - - pure function nuclidemg_calc_f_(this, gin, gout, mu, uvw, iazi, ipol) result(f) - import NuclideMG - class(NuclideMG), intent(in) :: this - integer, intent(in) :: gin ! Incoming Energy Group - integer, intent(in) :: gout ! Outgoing Energy Group - real(8), intent(in) :: mu ! Angle of interest - real(8), intent(in), optional :: uvw(3) ! Direction vector - integer, intent(in), optional :: iazi ! Incoming Energy Group - integer, intent(in), optional :: ipol ! Outgoing Energy Group - real(8) :: f ! Return value of f(mu) - - end function nuclidemg_calc_f_ - end interface - -!=============================================================================== -! NuclideIso contains the base MGXS data for a nuclide specifically for -! isotropically weighted MGXS -!=============================================================================== - - type, extends(NuclideMG) :: NuclideIso - - ! Microscopic cross sections - real(8), allocatable :: total(:) ! total cross section - real(8), allocatable :: absorption(:) ! absorption cross section - class(ScattData), allocatable :: scatter ! scattering information - real(8), allocatable :: nu_fission(:,:) ! fission matrix (Gout x Gin) - real(8), allocatable :: k_fission(:) ! kappa-fission - real(8), allocatable :: fission(:) ! neutron production - real(8), allocatable :: chi(:) ! Fission Spectra - - contains - procedure :: init => nuclideiso_init ! Initialize Nuclidic MGXS Data - procedure :: print => nuclideiso_print ! Writes nuclide info - procedure :: get_xs => nuclideiso_get_xs ! Gets Size of Data w/in Object - end type NuclideIso - -!=============================================================================== -! NuclideAngle contains the base MGXS data for a nuclide specifically for -! explicit angle-dependent weighted MGXS -!=============================================================================== - - type, extends(NuclideMG) :: NuclideAngle - - ! Microscopic cross sections. Dimensions are: (n_pol, n_azi, Nl, Ng, Ng) - real(8), allocatable :: total(:,:,:) ! total cross section - real(8), allocatable :: absorption(:,:,:) ! absorption cross section - type(ScattDataContainer), allocatable :: scatter(:,:) ! scattering information - real(8), allocatable :: nu_fission(:,:,:,:) ! fission matrix (Gout x Gin) - real(8), allocatable :: k_fission(:,:,:) ! kappa-fission - real(8), allocatable :: fission(:,:,:) ! neutron production - real(8), allocatable :: chi(:,:,:) ! Fission Spectra - real(8), allocatable :: mult(:,:,:,:) ! Scatter multiplicity (Gout x Gin) - - ! In all cases, right-most indices are theta, phi - integer :: n_pol ! Number of polar angles - integer :: n_azi ! Number of azimuthal angles - real(8), allocatable :: polar(:) ! polar angles - real(8), allocatable :: azimuthal(:) ! azimuthal angles - - contains - procedure :: init => nuclideangle_init ! Initialize Nuclidic MGXS Data - procedure :: print => nuclideangle_print ! Gets Size of Data w/in Object - procedure :: get_xs => nuclideangle_get_xs ! Gets Size of Data w/in Object - end type NuclideAngle - -!=============================================================================== -! NUCLIDEMGCONTAINER pointer array for storing Nuclides -!=============================================================================== - - type NuclideMGContainer - class(NuclideMG), pointer :: obj - end type NuclideMGContainer + procedure :: clear => nuclide_clear + procedure :: print => nuclide_print + end type Nuclide !=============================================================================== ! NUCLIDE0K temporarily contains all 0K cross section data and other parameters -! needed to treat resonance scattering before transferring them to NuclideCE +! needed to treat resonance scattering before transferring them to Nuclide !=============================================================================== type Nuclide0K @@ -285,667 +164,13 @@ module nuclide_header contains !=============================================================================== -! NUCLIDE_*_INIT reads in the data from the XML file, as already accessed -!=============================================================================== - - subroutine nuclidemg_init(this, node_xsdata) - class(NuclideMG), intent(inout) :: this ! Working Object - type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml - - character(MAX_LINE_LEN) :: temp_str - - ! Load the nuclide metadata - call get_node_value(node_xsdata, "name", this % name) - this % name = to_lower(this % name) - if (check_for_node(node_xsdata, "kT")) then - call get_node_value(node_xsdata, "kT", this % kT) - else - this % kT = ZERO - end if - if (check_for_node(node_xsdata, "zaid")) then - call get_node_value(node_xsdata, "zaid", this % zaid) - else - this % zaid = -1 - end if - if (check_for_node(node_xsdata, "scatt_type")) then - call get_node_value(node_xsdata, "scatt_type", temp_str) - temp_str = trim(to_lower(temp_str)) - if (temp_str == 'legendre') then - this % scatt_type = ANGLE_LEGENDRE - else if (temp_str == 'histogram') then - this % scatt_type = ANGLE_HISTOGRAM - else if (temp_str == 'tabular') then - this % scatt_type = ANGLE_TABULAR - else - call fatal_error("Invalid Scatt Type Option!") - end if - else - this % scatt_type = ANGLE_LEGENDRE - end if - - if (check_for_node(node_xsdata, "fissionable")) then - call get_node_value(node_xsdata, "fissionable", temp_str) - temp_str = to_lower(temp_str) - if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') then - this % fissionable = .true. - else - this % fissionable = .false. - end if - else - call fatal_error("Fissionable element must be set!") - end if - - end subroutine nuclidemg_init - - subroutine nuclideiso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & - max_order) - class(NuclideIso), intent(inout) :: this ! Working Object - type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml - integer, intent(in) :: groups ! Number of Energy groups - logical, intent(in) :: get_kfiss ! Need Kappa-Fission? - logical, intent(in) :: get_fiss ! Need fiss data? - integer, intent(in) :: max_order ! Maximum requested order - - type(Node), pointer :: node_legendre_mu - character(MAX_LINE_LEN) :: temp_str - logical :: enable_leg_mu - real(8), allocatable :: temp_arr(:) - real(8), allocatable :: temp_mult(:,:) - real(8), allocatable :: scatt_coeffs(:,:,:) - real(8), allocatable :: input_scatt(:,:,:) - real(8), allocatable :: temp_scatt(:,:,:) - real(8) :: dmu, mu, norm - integer :: order, order_dim, gin, gout, l, arr_len - integer :: legendre_mu_points, imu - - ! Call generic data gathering routine (will populate the metadata) - call nuclidemg_init(this, node_xsdata) - - ! Load the more specific data - if (this % fissionable) then - - if (check_for_node(node_xsdata,"chi")) then - ! Get chi - allocate(this % chi(groups)) - call get_node_array(node_xsdata,"chi",this % chi) - - ! Get nu_fission (as a vector) - if (check_for_node(node_xsdata,"nu_fission")) then - allocate(temp_arr(1 * groups)) - call get_node_array(node_xsdata,"nu_fission",temp_arr) - allocate(this % nu_fission(1,groups)) - this % nu_fission = reshape(temp_arr,(/1,groups/)) - deallocate(temp_arr) - else - call fatal_error("If fissionable, must provide nu_fission!") - end if - - else - ! Get nu_fission (as a matrix) - if (check_for_node(node_xsdata,"nu_fission")) then - - allocate(temp_arr(groups*groups)) - call get_node_array(node_xsdata,"nu_fission",temp_arr) - allocate(this % nu_fission(groups, groups)) - this % nu_fission = reshape(temp_arr,(/groups,groups/)) - deallocate(temp_arr) - else - call fatal_error("If fissionable, must provide nu_fission!") - end if - end if - ! If we have a need* for the fission and kappa-fission x/s, get them - ! (*Need is defined as will be using it to tally) - if (get_fiss) then - allocate(this % fission(groups)) - if (check_for_node(node_xsdata,"fission")) then - call get_node_array(node_xsdata,"fission",this % fission) - else - call fatal_error("Fission data missing, required due to fission& - & tallies in tallies.xml file!") - end if - end if - if (get_kfiss) then - allocate(this % k_fission(groups)) - if (check_for_node(node_xsdata,"kappa_fission")) then - call get_node_array(node_xsdata,"kappa_fission",this % k_fission) - else - call fatal_error("kappa_fission data missing, required due to & - &kappa-fission tallies in tallies.xml file!") - end if - end if - end if - - allocate(this % absorption(groups)) - if (check_for_node(node_xsdata,"absorption")) then - call get_node_array(node_xsdata,"absorption",this % absorption) - else - call fatal_error("Must provide absorption!") - end if - - ! Get multiplication data if present - allocate(temp_mult(groups, groups)) - if (check_for_node(node_xsdata,"multiplicity")) then - arr_len = get_arraysize_double(node_xsdata,"multiplicity") - if (arr_len == groups * groups) then - allocate(temp_arr(arr_len)) - call get_node_array(node_xsdata,"multiplicity",temp_arr) - temp_mult = reshape(temp_arr, (/groups, groups/)) - deallocate(temp_arr) - else - call fatal_error("Multiplicity length not same as number of groups& - & squared!") - end if - else - temp_mult = ONE - end if - - ! Get scattering treatment information - ! Tabular_legendre tells us if we are to treat the provided - ! Legendre polynomials as tabular data (if enable is true) or leaving - ! them as Legendres (if enable is false, or the default) - - ! Set the default (leave as Legendre polynomials) - enable_leg_mu = .false. - if (check_for_node(node_xsdata,"tabular_legendre")) then - call get_node_ptr(node_xsdata,"tabular_legendre",node_legendre_mu) - if (check_for_node(node_legendre_mu, "enable")) then - call get_node_value(node_legendre_mu,"enable",temp_str) - temp_str = trim(to_lower(temp_str)) - if (temp_str == 'true' .or. temp_str == '1') then - enable_leg_mu = .true. - elseif (temp_str == 'false' .or. temp_str == '0') then - enable_leg_mu = .false. - else - call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) - end if - end if - ! Ok, so if we need to convert to a tabular form, get the user provided - ! number of points - if (enable_leg_mu) then - if (check_for_node(node_legendre_mu,"num_points")) then - call get_node_value(node_legendre_mu,"num_points", & - legendre_mu_points) - if (legendre_mu_points <= 0) & - call fatal_error("num_points element must be positive& - & and non-zero!") - else - ! Set the default number of points (0.0625 spacing) - legendre_mu_points = 33 - end if - end if - end if - - ! Get the library's value for the order - if (check_for_node(node_xsdata,"order")) then - call get_node_value(node_xsdata,"order",order) - else - call fatal_error("Order Must Be Provided!") - end if - - ! Before retrieving the data, store the dimensionality of the data in - ! order_dim. For Legendre data, we usually refer to it as Pn where - ! n is the order. However Pn has n+1 sets of points (since you need to - ! the count the P0 moment). Adjust for that. Histogram and Tabular - ! formats dont need this adjustment. - if (this % scatt_type == ANGLE_LEGENDRE) then - order_dim = order + 1 - else - order_dim = order - end if - - ! The input is gathered in the more user-friendly facing format of - ! Gout x Gin x Order. We will get it in that format in input_scatt, - ! but then need to convert it to a more useful ordering for processing - ! (Order x Gout x Gin). - allocate(input_scatt(groups, groups, order_dim)) - if (check_for_node(node_xsdata,"scatter")) then - allocate(temp_arr(groups * groups * order_dim)) - call get_node_array(node_xsdata,"scatter",temp_arr) - input_scatt = reshape(temp_arr,(/groups,groups,order_dim/)) - deallocate(temp_arr) - - ! Compare the number of orders given with the maximum order of the - ! problem. Strip off the supefluous orders if needed. - if (this % scatt_type == ANGLE_LEGENDRE) then - order = min(order_dim - 1, max_order) - order_dim = order + 1 - end if - allocate(temp_scatt(groups,groups,order_dim)) - temp_scatt(:,:,:) = input_scatt(:,:,1:order_dim) - - ! Take input format (groups, groups, order) and convert to - ! the more useful format needed for scattdata: (order, groups, groups) - ! However, if scatt_type was ANGLE_LEGENDRE (i.e., the data was - ! provided as Legendre coefficients), and the user requested that - ! these legendres be converted to tabular form (note this is also - ! the default behavior), convert that now. - if (this % scatt_type == ANGLE_LEGENDRE .and. enable_leg_mu) then - ! Convert input parameters to what we need for the rest. - this % scatt_type = ANGLE_TABULAR - order_dim = legendre_mu_points - order = order_dim - dmu = TWO / real(order - 1,8) - - allocate(scatt_coeffs(order_dim,groups,groups)) - do gin = 1, groups - do gout = 1, groups - norm = ZERO - do imu = 1, order_dim - if (imu == 1) then - mu = -ONE - else if (imu == order_dim) then - mu = ONE - else - mu = -ONE + real(imu - 1,8) * dmu - end if - scatt_coeffs(imu,gout,gin) = & - evaluate_legendre(temp_scatt(gout,gin,:),mu) - ! Ensure positivity of distribution - if (scatt_coeffs(imu,gout,gin) < ZERO) & - scatt_coeffs(imu,gout,gin) = ZERO - ! And accrue the integral - if (imu > 1) then - norm = norm + HALF * dmu * (scatt_coeffs(imu-1,gout,gin) + & - scatt_coeffs(imu,gout,gin)) - end if - end do - ! Now that we have the integral, lets ensure that the distribution - ! is normalized such that it preserves the original scattering xs - if (norm > ZERO) then - scatt_coeffs(:,gout,gin) = scatt_coeffs(:,gout,gin) * & - temp_scatt(gout,gin,1) / norm - end if - end do - end do - else - ! Sticking with current representation, carry forward but change - ! the array ordering - allocate(scatt_coeffs(order_dim,groups,groups)) - do gin = 1, groups - do gout = 1, groups - do l = 1, order_dim - scatt_coeffs(l,gout,gin) = temp_scatt(gout,gin,l) - end do - end do - end do - end if - deallocate(temp_scatt) - else - call fatal_error("Must provide scatter!") - end if - - ! Allocate and initialize our ScattData Object. - if (this % scatt_type == ANGLE_HISTOGRAM) then - allocate(ScattDataHistogram :: this % scatter) - else if (this % scatt_type == ANGLE_TABULAR) then - allocate(ScattDataTabular :: this % scatter) - else if (this % scatt_type == ANGLE_LEGENDRE) then - allocate(ScattDataLegendre :: this % scatter) - end if - - ! Initialize the ScattData Object - call this % scatter % init(temp_mult, scatt_coeffs) - - ! Get, or infer, total xs data. - allocate(this % total(groups)) - if (check_for_node(node_xsdata,"total")) then - call get_node_array(node_xsdata,"total",this % total) - else - this % total = this % absorption + this % scatter % scattxs - end if - - ! Deallocate temporaries for the next material - deallocate(input_scatt,scatt_coeffs,temp_mult) - - end subroutine nuclideiso_init - - subroutine nuclideangle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & - max_order) - class(NuclideAngle), intent(inout) :: this ! Working Object - type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml - integer, intent(in) :: groups ! Number of Energy groups - logical, intent(in) :: get_kfiss ! Need Kappa-Fission? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(in) :: max_order ! Maximum requested order - - type(Node), pointer :: node_legendre_mu - character(MAX_LINE_LEN) :: temp_str - logical :: enable_leg_mu - real(8), allocatable :: temp_arr(:) - real(8), allocatable :: temp_mult(:,:,:,:) - real(8), allocatable :: scatt_coeffs(:,:,:,:,:) - real(8), allocatable :: input_scatt(:,:,:,:,:) - real(8), allocatable :: temp_scatt(:,:,:,:,:) - real(8) :: dmu, mu, norm, dangle - integer :: order, order_dim, gin, gout, l, arr_len - integer :: legendre_mu_points, imu, ipol, iazi - - ! Call generic data gathering routine (will populate the metadata) - call nuclidemg_init(this, node_xsdata) - - if (check_for_node(node_xsdata, "num_polar")) then - call get_node_value(node_xsdata, "num_polar", this % n_pol) - else - call fatal_error("num_polar Must Be Provided!") - end if - - if (check_for_node(node_xsdata, "num_azimuthal")) then - call get_node_value(node_xsdata, "num_azimuthal", this % n_azi) - else - call fatal_error("num_azimuthal Must Be Provided!") - end if - - ! Load angle data, if present (else equally spaced) - allocate(this % polar(this % n_pol)) - allocate(this % azimuthal(this % n_azi)) - if (check_for_node(node_xsdata, "polar")) then - call fatal_error("User-Specified polar angle bins not yet supported!") - ! When this feature is supported, this line will be activated - call get_node_array(node_xsdata, "polar", this % polar) - else - dangle = PI / real(this % n_pol,8) - do ipol = 1, this % n_pol - this % polar(ipol) = (real(ipol,8) - HALF) * dangle - end do - end if - if (check_for_node(node_xsdata, "azimuthal")) then - call fatal_error("User-Specified azimuthal angle bins not yet supported!") - ! When this feature is supported, this line will be activated - call get_node_array(node_xsdata, "azimuthal", this % azimuthal) - else - dangle = TWO * PI / real(this % n_azi,8) - do iazi = 1, this % n_azi - this % azimuthal(iazi) = -PI + (real(iazi,8) - HALF) * dangle - end do - end if - - ! Load the more specific data - if (this % fissionable) then - - if (check_for_node(node_xsdata,"chi")) then - ! Get chi - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"chi",temp_arr) - allocate(this % chi(groups,this % n_azi,this % n_pol)) - this % chi = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) - deallocate(temp_arr) - - ! Get nu_fission (as a vector) - if (check_for_node(node_xsdata,"nu_fission")) then - allocate(temp_arr(1 * groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"nu_fission", temp_arr) - allocate(this % nu_fission(1,groups,this % n_azi,this % n_pol)) - this % nu_fission = reshape(temp_arr, (/1,groups,this % n_azi, & - this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("If fissionable, must provide nu_fission!") - end if - - else - ! Get nu_fission (as a matrix) - if (check_for_node(node_xsdata,"nu_fission")) then - - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"nu_fission",temp_arr) - allocate(this % nu_fission(groups,groups,this % n_azi,this % n_pol)) - this % nu_fission = reshape(temp_arr,(/groups,groups, & - this % n_azi,this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("If fissionable, must provide nu_fission!") - end if - end if - ! If we have a need* for the fission and kappa-fission x/s, get them - ! (*Need is defined as will be using it to tally) - if (get_fiss) then - if (check_for_node(node_xsdata,"fission")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"fission",temp_arr) - allocate(this % fission(groups,this % n_azi,this % n_pol)) - this % fission = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("Fission data missing, required due to fission& - & tallies in tallies.xml file!") - end if - end if - if (get_kfiss) then - if (check_for_node(node_xsdata,"kappa_fission")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"kappa_fission",temp_arr) - allocate(this % k_fission(groups,this % n_azi,this % n_pol)) - this % k_fission = reshape(temp_arr,(/groups, this % n_azi,this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("kappa_fission data missing, required due to & - &kappa-fission tallies in tallies.xml file!") - end if - end if - end if - - if (check_for_node(node_xsdata,"absorption")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"absorption",temp_arr) - allocate(this % absorption(groups,this % n_azi,this % n_pol)) - this % absorption = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("Must provide absorption!") - end if - - ! Get multiplication data if present - allocate(temp_mult(groups,groups,this % n_azi,this % n_pol)) - if (check_for_node(node_xsdata,"multiplicity")) then - arr_len = get_arraysize_double(node_xsdata,"multiplicity") - if (arr_len == groups * groups * this % n_azi * this % n_pol) then - allocate(temp_arr(arr_len)) - call get_node_array(node_xsdata,"multiplicity",temp_arr) - temp_mult = reshape(temp_arr,(/groups,groups,this % n_azi,this % n_pol/)) - deallocate(temp_arr) - else - call fatal_error("Multiplicity length not same as number of groups& - & squared!") - end if - else - temp_mult = ONE - end if - - ! Get scattering treatment information - ! Tabular_legendre tells us if we are to treat the provided - ! Legendre polynomials as tabular data (if enable is true) or leaving - ! them as Legendres (if enable is false, or the default) - - ! Set the default (leave as Legendre polynomials) - enable_leg_mu = .false. - if (check_for_node(node_xsdata,"tabular_legendre")) then - call get_node_ptr(node_xsdata,"tabular_legendre",node_legendre_mu) - if (check_for_node(node_legendre_mu, "enable")) then - call get_node_value(node_legendre_mu,"enable",temp_str) - temp_str = trim(to_lower(temp_str)) - if (temp_str == 'true' .or. temp_str == '1') then - enable_leg_mu = .true. - elseif (temp_str == 'false' .or. temp_str == '0') then - enable_leg_mu = .false. - else - call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) - end if - end if - ! Ok, so if we need to convert to a tabular form, get the user provided - ! number of points - if (enable_leg_mu) then - if (check_for_node(node_legendre_mu,"num_points")) then - call get_node_value(node_legendre_mu,"num_points", & - legendre_mu_points) - if (legendre_mu_points <= 0) & - call fatal_error("num_points element must be positive& - & and non-zero!") - else - ! Set the default number of points (0.0625 spacing) - legendre_mu_points = 33 - end if - end if - end if - - ! Get the library's value for the order - if (check_for_node(node_xsdata,"order")) then - call get_node_value(node_xsdata,"order",order) - else - call fatal_error("Order Must Be Provided!") - end if - - ! Before retrieving the data, store the dimensionality of the data in - ! order_dim. For Legendre data, we usually refer to it as Pn where - ! n is the order. However Pn has n+1 sets of points (since you need to - ! the count the P0 moment). Adjust for that. Histogram and Tabular - ! formats dont need this adjustment. - if (this % scatt_type == ANGLE_LEGENDRE) then - order_dim = order + 1 - else - order_dim = order - end if - - ! The input is gathered in the more user-friendly facing format of - ! Gout x Gin x Order x Azi x Pol. We will get it in that format in - ! input_scatt, but then need to convert it to a more useful ordering - ! for processing (Order x Gout x Gin x Azi x Pol). - allocate(input_scatt(groups,groups,order_dim,this % n_azi,this % n_pol)) - if (check_for_node(node_xsdata,"scatter")) then - allocate(temp_arr(groups * groups * order_dim * this % n_azi * & - this % n_pol)) - call get_node_array(node_xsdata,"scatter",temp_arr) - input_scatt = reshape(temp_arr,(/groups,groups,order_dim,this % n_azi, & - this % n_pol/)) - deallocate(temp_arr) - - ! Compare the number of orders given with the maximum order of the - ! problem. Strip off the supefluous orders if needed. - if (this % scatt_type == ANGLE_LEGENDRE) then - order = min(order_dim - 1, max_order) - order_dim = order + 1 - end if - - allocate(temp_scatt(groups,groups,order_dim,this % n_azi,this % n_pol)) - temp_scatt(:,:,:,:,:) = input_scatt(:,:,1:order_dim,:,:) - - ! Take input format (groups, groups, order) and convert to - ! the more useful format needed for scattdata: (order, groups, groups) - ! However, if scatt_type was ANGLE_LEGENDRE (i.e., the data was - ! provided as Legendre coefficients), and the user requested that - ! these legendres be converted to tabular form (note this is also - ! the default behavior), convert that now. - if (this % scatt_type == ANGLE_LEGENDRE .and. enable_leg_mu) then - - ! Convert input parameters to what we need for the rest. - this % scatt_type = ANGLE_TABULAR - order_dim = legendre_mu_points - order = order_dim - dmu = TWO / real(order - 1,8) - - allocate(scatt_coeffs(order_dim,groups,groups,this % n_azi,this % n_pol)) - do ipol = 1, this % n_pol - do iazi = 1, this % n_azi - do gin = 1, groups - do gout = 1, groups - norm = ZERO - do imu = 1, order_dim - if (imu == 1) then - mu = -ONE - else if (imu == order_dim) then - mu = ONE - else - mu = -ONE + real(imu - 1,8) * dmu - end if - scatt_coeffs(imu,gout,gin,iazi,ipol) = & - evaluate_legendre(temp_scatt(gout,gin,:,iazi,ipol),mu) - ! Ensure positivity of distribution - if (scatt_coeffs(imu,gout,gin,iazi,ipol) < ZERO) & - scatt_coeffs(imu,gout,gin,iazi,ipol) = ZERO - ! And accrue the integral - if (imu > 1) then - norm = norm + HALF * dmu * & - (scatt_coeffs(imu-1,gout,gin,iazi,ipol) + & - scatt_coeffs(imu,gout,gin,iazi,ipol)) - end if - end do - ! Now that we have the integral, lets ensure that the distribution - ! is normalized such that it preserves the original scattering xs - if (norm > ZERO) then - scatt_coeffs(:,gout,gin,iazi,ipol) = & - scatt_coeffs(:,gout,gin,iazi,ipol) * & - temp_scatt(gout,gin,1,iazi,ipol) / norm - end if - end do - end do - end do - end do - else - ! Sticking with current representation, carry forward but change - ! the array ordering - allocate(scatt_coeffs(order_dim,groups,groups,this % n_azi,this % n_pol)) - do ipol = 1, this % n_pol - do iazi = 1, this % n_azi - do gin = 1, groups - do gout = 1, groups - do l = 1, order_dim - scatt_coeffs(l,gout,gin,iazi,ipol) = & - temp_scatt(gout,gin,l,iazi,ipol) - end do - end do - end do - end do - end do - end if - deallocate(temp_scatt) - else - call fatal_error("Must provide scatter!") - end if - - allocate(this % scatter(this % n_azi, this % n_pol)) - do ipol = 1, this % n_pol - do iazi = 1, this % n_azi - ! Allocate and initialize our ScattData Object. - if (this % scatt_type == ANGLE_HISTOGRAM) then - allocate(ScattDataHistogram :: this % scatter(iazi,ipol) % obj) - else if (this % scatt_type == ANGLE_TABULAR) then - allocate(ScattDataTabular :: this % scatter(iazi,ipol) % obj) - else if (this % scatt_type == ANGLE_LEGENDRE) then - allocate(ScattDataLegendre :: this % scatter(iazi,ipol) % obj) - end if - - ! Initialize the ScattData Object - call this % scatter(iazi,ipol) % obj % init(& - temp_mult(:,:,iazi,ipol), scatt_coeffs(:,:,:,iazi,ipol)) - end do - end do - ! Deallocate temporaries for the next material - deallocate(input_scatt,scatt_coeffs,temp_mult) - - allocate(this % total(groups,this % n_azi,this % n_pol)) - if (check_for_node(node_xsdata,"total")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"total",temp_arr) - this % total = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) - deallocate(temp_arr) - else - do ipol = 1, this % n_pol - do iazi = 1, this % n_azi - this % total(:,iazi,ipol) = this % absorption(:,iazi,ipol) + & - this % scatter(iazi,ipol) % obj % scattxs(:) - end do - end do - end if - - end subroutine nuclideangle_init - -!=============================================================================== -! NUCLIDECE_CLEAR resets and deallocates data in Nuclide, NuclideIso +! NUCLIDE_CLEAR resets and deallocates data in Nuclide, NuclideIso ! or NuclideAngle !=============================================================================== - subroutine nuclidece_clear(this) + subroutine nuclide_clear(this) - class(NuclideCE), intent(inout) :: this ! The Nuclide object to clear + class(Nuclide), intent(inout) :: this ! The Nuclide object to clear integer :: i ! Loop counter @@ -959,15 +184,15 @@ module nuclide_header call this % reaction_index % clear() - end subroutine nuclidece_clear + end subroutine nuclide_clear !=============================================================================== -! NUCLIDE*_PRINT displays information about a continuous-energy neutron +! NUCLIDE_PRINT displays information about a continuous-energy neutron ! cross_section table and its reactions and secondary angle/energy distributions !=============================================================================== - subroutine nuclidece_print(this, unit) - class(NuclideCE), intent(in) :: this + subroutine nuclide_print(this, unit) + class(Nuclide), intent(in) :: this integer, intent(in), optional :: unit integer :: i ! loop index over nuclides @@ -1040,298 +265,6 @@ module nuclide_header ! Blank line at end of nuclide write(unit_,*) - end subroutine nuclidece_print - - subroutine nuclidemg_print(this, unit_) - class(NuclideMG), intent(in) :: this - integer, intent(in) :: unit_ - - character(MAX_LINE_LEN) :: temp_str - - ! Basic nuclide information - write(unit_,*) 'Nuclide ' // trim(this % name) - if (this % zaid > 0) then - ! Dont print if data was macroscopic and thus zaid & AWR would be nonsense - write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) - write(unit_,*) ' awr = ' // trim(to_str(this % awr)) - end if - write(unit_,*) ' kT = ' // trim(to_str(this % kT)) - if (this % scatt_type == ANGLE_LEGENDRE) then - temp_str = "Legendre" - write(unit_,*) ' Scattering Type = ' // trim(temp_str) - select type(this) - type is (NuclideIso) - temp_str = to_str(size(this % scatter % dist(1) % data,dim=1) - 1) - end select - write(unit_,*) ' Scattering Order = ' // trim(temp_str) - else if (this % scatt_type == ANGLE_HISTOGRAM) then - temp_str = "Histogram" - write(unit_,*) ' Scattering Type = ' // trim(temp_str) - select type(this) - type is (NuclideIso) - temp_str = to_str(size(this % scatter % dist(1) % data,dim=1)) - end select - write(unit_,*) ' Num. Distribution Bins = ' // trim(temp_str) - else if (this % scatt_type == ANGLE_TABULAR) then - temp_str = "Tabular" - write(unit_,*) ' Scattering Type = ' // trim(temp_str) - select type(this) - type is (NuclideIso) - temp_str = to_str(size(this % scatter % dist(1) % data,dim=1)) - end select - write(unit_,*) ' Num. Distribution Points = ' // trim(temp_str) - end if - write(unit_,*) ' Fissionable = ', this % fissionable - - end subroutine nuclidemg_print - - subroutine nuclideiso_print(this, unit) - - class(NuclideIso), intent(in) :: this - integer, optional, intent(in) :: unit - - integer :: unit_ ! unit to write to - integer :: size_total, size_scattmat, size_mgxs - integer :: gin - - ! set default unit for writing information - if (present(unit)) then - unit_ = unit - else - unit_ = OUTPUT_UNIT - end if - - ! Write Basic Nuclide Information - call nuclidemg_print(this, unit_) - - ! Determine size of mgxs and scattering matrices - size_scattmat = 0 - do gin = 1, size(this % scatter % energy) - size_scattmat = size_scattmat + & - 2 * size(this % scatter % energy(gin) % data) + & - size(this % scatter % dist(gin) % data) - end do - size_scattmat = size_scattmat + size(this % scatter % scattxs) - size_scattmat = size_scattmat * 8 - - size_mgxs = size(this % total) + size(this % absorption) + & - size(this % nu_fission) + size(this % k_fission) + & - size(this % fission) + size(this % chi) - size_mgxs = size_mgxs * 8 - - ! Calculate total memory - size_total = size_scattmat + size_mgxs - - ! Write memory used - write(unit_,*) ' Memory Requirements' - write(unit_,*) ' Cross sections = ' // trim(to_str(size_mgxs)) // ' bytes' - write(unit_,*) ' Scattering Matrices = ' // & - trim(to_str(size_scattmat)) // ' bytes' - write(unit_,*) ' Total = ' // trim(to_str(size_total)) // ' bytes' - - ! Blank line at end of nuclide - write(unit_,*) - - end subroutine nuclideiso_print - - subroutine nuclideangle_print(this, unit) - - class(NuclideAngle), intent(in) :: this - integer, optional, intent(in) :: unit - - integer :: unit_ ! unit to write to - integer :: size_total, size_scattmat, size_mgxs - integer :: ipol, iazi, gin - - ! set default unit for writing information - if (present(unit)) then - unit_ = unit - else - unit_ = OUTPUT_UNIT - end if - - ! Write Basic Nuclide Information - call nuclidemg_print(this, unit_) - write(unit_,*) ' # of Polar Angles = ' // trim(to_str(this % n_pol)) - write(unit_,*) ' # of Azimuthal Angles = ' // trim(to_str(this % n_azi)) - - ! Determine size of mgxs and scattering matrices - size_scattmat = 0 - do ipol = 1, this % n_pol - do iazi = 1, this % n_azi - do gin = 1, size(this % scatter(iazi,ipol) % obj % energy) - size_scattmat = size_scattmat + & - 2 * size(this % scatter(iazi,ipol) % obj % energy(gin) % data) + & - size(this % scatter(iazi,ipol) % obj % dist(gin) % data) - end do - size_scattmat = size_scattmat + & - size(this % scatter(iazi,ipol) % obj % scattxs) - end do - end do - size_scattmat = size_scattmat * 8 - - size_scattmat = (size(this % scatter) + size(this % mult)) * 8 - size_mgxs = size(this % total) + size(this % absorption) + & - size(this % nu_fission) + size(this % k_fission) + & - size(this % fission) + size(this % chi) - size_mgxs = size_mgxs * 8 - - ! Calculate total memory - size_total = size_scattmat + size_mgxs - - ! Write memory used - write(unit_,*) ' Memory Requirements' - write(unit_,*) ' Cross sections = ' // trim(to_str(size_mgxs)) // ' bytes' - write(unit_,*) ' Scattering Matrices = ' // & - trim(to_str(size_scattmat)) // ' bytes' - write(unit_,*) ' Total = ' // trim(to_str(size_total)) // ' bytes' - - ! Blank line at end of nuclide - write(unit_,*) - - - end subroutine nuclideangle_print - -!=============================================================================== -! NUCLIDE*_GET_XS Returns the requested data type -!=============================================================================== - - function nuclideiso_get_xs(this, xstype, gin, gout, uvw, mu, iazi, ipol) & - result(xs) - class(NuclideIso), intent(in) :: this - character(*), intent(in) :: xstype ! Cross Section Type - integer, intent(in) :: gin ! Incoming Energy group - integer, optional, intent(in) :: gout ! Outgoing Group - real(8), optional, intent(in) :: uvw(3) ! Requested Angle - real(8), optional, intent(in) :: mu ! Change in angle - integer, optional, intent(in) :: iazi ! Azimuthal Index - integer, optional, intent(in) :: ipol ! Polar Index - real(8) :: xs ! Resultant xs - - xs = ZERO - - if ((xstype == 'nu_fission' .or. xstype == 'fission' .or. xstype =='chi' & - .or. xstype =='kappa_fission') .and. (.not. this % fissionable)) then - return - end if - - if (present(gout)) then - select case(xstype) - case('mult') - xs = this % scatter % mult(gin) % data(gout) - case('nu_fission') - xs = this % nu_fission(gout,gin) - case('f_mu', 'f_mu/mult') - if (gout < this % scatter % gmin(gin) .or. & - gout > this % scatter % gmax(gin)) then - xs = ZERO - else - xs = this % scatter % calc_f(gin, gout, mu) - if (xstype == 'f_mu/mult') then - xs = xs / this % scatter % mult(gin) % data(gout) - end if - end if - end select - else - select case(xstype) - case('total') - xs = this % total(gin) - case('absorption') - xs = this % absorption(gin) - case('nu_fission') - xs = sum(this % nu_fission(:,gin)) - case('fission') - xs = this % fission(gin) - case('kappa_fission') - if (allocated(this % k_fission)) then - xs = this % k_fission(gin) - end if - case('chi') - xs = this % chi(gin) - case('scatter') - xs = this % scatter % scattxs(gin) - case('mult') - xs = dot_product(this % scatter % mult(gin) % data, & - this % scatter % scattxs(gin) * & - this % scatter % energy(gin) % data) - xs = xs / this % scatter % scattxs(gin) - end select - end if - end function nuclideiso_get_xs - - function nuclideangle_get_xs(this, xstype, gin, gout, uvw, mu, iazi, ipol) & - result(xs) - class(NuclideAngle), intent(in) :: this - character(*), intent(in) :: xstype ! Cross Section Type - integer, intent(in) :: gin ! Incoming Energy group - integer, optional, intent(in) :: gout ! Outgoing Group - real(8), optional, intent(in) :: uvw(3) ! Requested Angle - real(8), optional, intent(in) :: mu ! Change in angle - integer, optional, intent(in) :: iazi ! Azimuthal Index - integer, optional, intent(in) :: ipol ! Polar Index - real(8) :: xs ! Resultant xs - - integer :: iazi_, ipol_ - - xs = ZERO - - if ((xstype == 'nu_fission' .or. xstype == 'fission' .or. xstype =='chi' & - .or. xstype =='kappa_fission') .and. (.not. this % fissionable)) then - return - end if - - if (present(iazi) .and. present(ipol)) then - iazi_ = iazi - ipol_ = ipol - else - call find_angle(this % polar, this % azimuthal, uvw, iazi_, ipol_) - end if - - if (present(gout)) then - select case(xstype) - case('mult') - xs = this % scatter(iazi_,ipol_) % obj % mult(gin) % data(gout) - case('nu_fission') - xs = this % nu_fission(gout,gin,iazi_,ipol_) - case('chi') - xs = this % chi(gout,iazi_,ipol_) - case('f_mu', 'f_mu/mult') - if (gout < this % scatter(iazi_,ipol_) % obj % gmin(gin) .or. & - gout > this % scatter(iazi_,ipol_) % obj % gmax(gin)) then - xs = ZERO - else - xs = this % scatter(iazi_,ipol_) % obj % calc_f(gin,gout,mu) - if (xstype == 'f_mu/mult') then - xs = xs / this % scatter(iazi_,ipol_) % obj % mult(gin) % data(gout) - end if - end if - end select - else - select case(xstype) - case('total') - xs = this % total(gin,iazi_,ipol_) - case('absorption') - xs = this % absorption(gin,iazi_,ipol_) - case('nu_fission') - xs = sum(this % nu_fission(:,gin,iazi_,ipol_)) - case('fission') - xs = this % fission(gin,iazi_,ipol_) - case('kappa_fission') - if (allocated(this % k_fission)) then - xs = this % k_fission(gin,iazi_,ipol_) - end if - case('chi') - xs = this % chi(gin,iazi_,ipol_) - case('scatter') - xs = this % scatter(iazi_,ipol_) % obj % scattxs(gin) - case('mult') - xs = dot_product(this % scatter(iazi_,ipol_) % obj % mult(gin) % data, & - this % scatter(iazi_,ipol_) % obj % scattxs(gin) * & - this % scatter(iazi_,ipol_) % obj % energy(gin) % data) - xs = xs / this % scatter(iazi_,ipol_) % obj % scattxs(gin) - end select - end if - - end function nuclideangle_get_xs + end subroutine nuclide_print end module nuclide_header diff --git a/src/output.F90 b/src/output.F90 index 768f19775..1b4145800 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -336,10 +336,10 @@ contains ! Open log file for writing open(NEWUNIT=unit_xs, FILE=path, STATUS='replace', ACTION='write') - ! Write header - call header("CROSS SECTION TABLES", unit=unit_xs) - if (run_CE) then + ! Write header + call header("CROSS SECTION TABLES", unit=unit_xs) + NUCLIDE_LOOP: do i = 1, n_nuclides_total ! Print information about nuclide call nuclides(i) % print(unit=unit_xs) @@ -350,10 +350,17 @@ contains call sab_tables(i) % print(unit=unit_xs) end do SAB_TABLES_LOOP else + ! Write header + call header("MGXS LIBRARY TABLES", unit=unit_xs) NuclideMG_LOOP: do i = 1, n_nuclides_total ! Print information about nuclide call nuclides_mg(i) % obj % print(unit=unit_xs) end do NuclideMG_LOOP + call header("MATERIAL MGXS TABLES", unit=unit_xs) + MATERIAL_LOOP: do i = 1, n_materials + ! Print information about Materials + call macro_xs(i) % obj % print(unit=unit_xs) + end do MATERIAL_LOOP end if ! Close cross section summary file diff --git a/src/physics.F90 b/src/physics.F90 index 6fda4c393..38d73348a 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -82,7 +82,7 @@ contains integer :: i_nuclide ! index in nuclides array integer :: i_nuc_mat ! index in material's nuclides array integer :: i_reaction ! index in nuc % reactions array - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc call sample_nuclide(p, 'total ', i_nuclide, i_nuc_mat) @@ -205,7 +205,7 @@ contains real(8) :: f real(8) :: prob real(8) :: cutoff - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc ! Get pointer to nuclide nuc => nuclides(i_nuclide) @@ -303,7 +303,7 @@ contains real(8) :: uvw_new(3) ! outgoing uvw for iso-in-lab scattering real(8) :: uvw_old(3) ! incoming uvw for iso-in-lab scattering real(8) :: phi ! azimuthal angle for iso-in-lab scattering - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc ! copy incoming direction uvw_old(:) = p % coord(1) % uvw @@ -418,7 +418,7 @@ contains real(8) :: v_cm(3) ! velocity of center-of-mass real(8) :: v_t(3) ! velocity of target nucleus real(8) :: uvw_cm(3) ! directional cosines in center-of-mass - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc ! get pointer to nuclide nuc => nuclides(i_nuclide) @@ -744,7 +744,7 @@ contains !=============================================================================== subroutine sample_target_velocity(nuc, v_target, E, uvw, v_neut, wgt, xs_eff) - type(NuclideCE), intent(in) :: nuc ! target nuclide at temperature T + type(Nuclide), intent(in) :: nuc ! target nuclide at temperature T real(8), intent(out) :: v_target(3) ! target velocity real(8), intent(in) :: v_neut(3) ! neutron velocity real(8), intent(in) :: E ! particle energy @@ -989,7 +989,7 @@ contains !=============================================================================== subroutine sample_cxs_target_velocity(nuc, v_target, E, uvw) - type(NuclideCE), intent(in) :: nuc ! target nuclide at temperature + type(Nuclide), intent(in) :: nuc ! target nuclide at temperature real(8), intent(out) :: v_target(3) real(8), intent(in) :: E real(8), intent(in) :: uvw(3) @@ -1077,7 +1077,7 @@ contains real(8) :: phi ! fission neutron azimuthal angle real(8) :: weight ! weight adjustment for ufs method logical :: in_mesh ! source site in ufs mesh? - type(NuclideCE), pointer :: nuc + type(Nuclide), pointer :: nuc ! Get pointers nuc => nuclides(i_nuclide) @@ -1187,7 +1187,7 @@ contains function sample_fission_energy(nuc, rxn, p) result(E_out) - type(NuclideCE), intent(in) :: nuc + type(Nuclide), intent(in) :: nuc type(Reaction), intent(in) :: rxn type(Particle), intent(inout) :: p ! Particle causing fission real(8) :: E_out ! outgoing energy of fission neutron @@ -1300,7 +1300,7 @@ contains !=============================================================================== subroutine inelastic_scatter(nuc, rxn, p) - type(NuclideCE), intent(in) :: nuc + type(Nuclide), intent(in) :: nuc type(Reaction), intent(in) :: rxn type(Particle), intent(inout) :: p diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 209808dc9..a72b3878d 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -5,9 +5,9 @@ module physics_mg use constants use error, only: fatal_error, warning use global - use macroxs_header, only: MacroXS, MacroXSContainer use material_header, only: Material use math, only: rotate_angle + use mgxs_header, only: Mgxs, MgxsContainer use mesh, only: get_mesh_indices use output, only: write_message use particle_header, only: Particle @@ -179,7 +179,7 @@ contains real(8) :: phi ! fission neutron azimuthal angle real(8) :: weight ! weight adjustment for ufs method logical :: in_mesh ! source site in ufs mesh? - class(MacroXS), pointer :: xs + class(Mgxs), pointer :: xs ! Get Pointers xs => macro_xs(p % material) % obj diff --git a/src/tracking.F90 b/src/tracking.F90 index e634112bc..dc9497389 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -7,7 +7,6 @@ module tracking cross_lattice, check_cell_overlap use geometry_header, only: Universe, BASE_UNIVERSE use global - use macroxs_header, only: MacroXS use output, only: write_message use particle_header, only: LocalCoord, Particle use physics, only: collision From ed6a91753daaa8dbe30c40105443ac900192cb2e Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 14 Mar 2016 20:53:48 -0400 Subject: [PATCH 046/259] Finished tallying code, i hope, cleaned up some code --- src/mgxs_data.F90 | 23 +---- src/mgxs_header.F90 | 66 ++++++------ src/particle_header.F90 | 2 +- src/tally.F90 | 223 ++++++++++++++++++++-------------------- src/tracking.F90 | 1 + 5 files changed, 153 insertions(+), 162 deletions(-) diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 283024e29..def214d67 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -70,7 +70,8 @@ contains if (tallies(i) % score_bins(l) == SCORE_KAPPA_FISSION) then get_kfiss = .true. end if - if (tallies(i) % score_bins(l) == SCORE_FISSION) then + if (tallies(i) % score_bins(l) == SCORE_FISSION .or. & + tallies(i) % score_bins(l) == SCORE_NU_FISSION) then get_fiss = .true. end if end do @@ -166,26 +167,8 @@ contains integer :: i ! loop index over nuclides integer :: l ! Loop over score bins type(Material), pointer :: mat ! current material - logical :: get_kfiss, get_fiss integer :: scatt_type - ! Find out if we need fission & kappa fission - ! (i.e., are there any SCORE_FISSION or SCORE_KAPPA_FISSION tallies?) - get_kfiss = .false. - get_fiss = .false. - do i = 1, n_tallies - do l = 1, tallies(i) % n_score_bins - if (tallies(i) % score_bins(l) == SCORE_KAPPA_FISSION) then - get_kfiss = .true. - end if - if (tallies(i) % score_bins(l) == SCORE_FISSION) then - get_fiss = .true. - end if - end do - if (get_kfiss .and. get_fiss) & - exit - end do - allocate(macro_xs(n_materials)) do i_mat = 1, n_materials @@ -204,7 +187,7 @@ contains allocate(MgxsAngle :: macro_xs(i_mat) % obj) end select call macro_xs(i_mat) % obj % combine(mat,nuclides_MG,energy_groups, & - get_kfiss,get_fiss,max_order,scatt_type,i_mat) + max_order,scatt_type,i_mat) end do end subroutine create_macro_xs diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index c87b37ce2..908f19c8b 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -96,15 +96,13 @@ module mgxs_header end function mgxs_calc_f_ - subroutine mgxs_combine_(this,mat,nuclides,groups,get_kfiss,get_fiss, & - max_order,scatt_type,i_listing) + subroutine mgxs_combine_(this,mat,nuclides,groups,max_order,scatt_type, & + i_listing) import Mgxs, Material, MgxsContainer class(Mgxs), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups - logical, intent(in) :: get_kfiss ! Should we get kfiss data? - logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? integer, intent(in) :: i_listing ! Index in listings @@ -529,6 +527,13 @@ module mgxs_header ! Initialize the ScattData Object call this % scatter % init(temp_mult, scatt_coeffs) + ! Check sigA to ensure it is not 0 since it is + ! often divided by in the tally routines + ! (This may happen with Helium data) + do gin = 1, groups + if (this % absorption(gin) == ZERO) this % absorption(gin) = 1E-10_8 + end do + ! Get, or infer, total xs data. allocate(this % total(groups)) if (check_for_node(node_xsdata,"total")) then @@ -540,6 +545,13 @@ module mgxs_header ! Deallocate temporaries for the next material deallocate(input_scatt,scatt_coeffs,temp_mult) + ! Finally, check sigT to ensure it is not 0 since it is + ! often divided by in the tally routines + do gin = 1, groups + if (this % total(gin) == ZERO) this % total(gin) = 1E-10_8 + end do + + end subroutine mgxsiso_init_file subroutine mgxsang_init_file(this,node_xsdata,groups,get_kfiss,get_fiss, & @@ -1288,14 +1300,12 @@ module mgxs_header end subroutine mgxs_combine - subroutine mgxsiso_combine(this,mat,nuclides,groups,get_kfiss,get_fiss, & - max_order,scatt_type,i_listing) + subroutine mgxsiso_combine(this,mat,nuclides,groups,max_order,scatt_type, & + i_listing) class(MgxsIso), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups - logical, intent(in) :: get_kfiss ! Should we get kfiss data? - logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! How is data presented integer, intent(in) :: i_listing ! Index in listings @@ -1377,14 +1387,10 @@ module mgxs_header this % total = ZERO allocate(this % absorption(groups)) this % absorption = ZERO - if (get_fiss) then - allocate(this % fission(groups)) - this % fission = ZERO - end if - if (get_kfiss) then - allocate(this % k_fission(groups)) - this % k_fission = ZERO - end if + allocate(this % fission(groups)) + this % fission = ZERO + allocate(this % k_fission(groups)) + this % k_fission = ZERO allocate(this % nu_fission(groups)) this % nu_fission = ZERO allocate(this % chi(groups,groups)) @@ -1410,10 +1416,10 @@ module mgxs_header this % chi = this % chi + atom_density * nuc % chi this % nu_fission = this % nu_fission + atom_density * & nuc % nu_fission - if (get_fiss) then + if (allocated(nuc % fission)) then this % fission = this % fission + atom_density * nuc % fission end if - if (get_kfiss) then + if (allocated(nuc % k_fission)) then this % k_fission = this % k_fission + atom_density * nuc % k_fission end if end if @@ -1456,14 +1462,12 @@ module mgxs_header end subroutine mgxsiso_combine - subroutine mgxsang_combine(this,mat,nuclides,groups,get_kfiss,get_fiss, & - max_order,scatt_type,i_listing) + subroutine mgxsang_combine(this,mat,nuclides,groups,max_order,scatt_type,& + i_listing) class(MgxsAngle), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups - logical, intent(in) :: get_kfiss ! Should we get kfiss data? - logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? integer, intent(in) :: i_listing ! Index in listings @@ -1583,14 +1587,10 @@ module mgxs_header this % total = ZERO allocate(this % absorption(groups,n_azi,n_pol)) this % absorption = ZERO - if (get_fiss) then - allocate(this % fission(groups,n_azi,n_pol)) - this % fission = ZERO - end if - if (get_kfiss) then - allocate(this % k_fission(groups,n_azi,n_pol)) - this % k_fission = ZERO - end if + allocate(this % fission(groups,n_azi,n_pol)) + this % fission = ZERO + allocate(this % k_fission(groups,n_azi,n_pol)) + this % k_fission = ZERO allocate(this % nu_fission(groups,n_azi,n_pol)) this % nu_fission = ZERO allocate(this % chi(groups,groups,n_azi,n_pol)) @@ -1618,10 +1618,10 @@ module mgxs_header this % chi = this % chi + atom_density * nuc % chi this % nu_fission = this % nu_fission + atom_density * & nuc % nu_fission - if (get_fiss) then + if (allocated(nuc % fission)) then this % fission = this % fission + atom_density * nuc % fission end if - if (get_kfiss) then + if (allocated(nuc % k_fission)) then this % k_fission = this % k_fission + atom_density * nuc % k_fission end if end if @@ -1771,6 +1771,7 @@ module mgxs_header xs % total = this % total(gin) xs % elastic = this % scatter % scattxs(gin) xs % absorption = this % absorption(gin) + xs % fission = this % fission(gin) xs % nu_fission = this % nu_fission(gin) end subroutine mgxsiso_calculate_xs @@ -1787,6 +1788,7 @@ module mgxs_header xs % total = this % total(gin,iazi,ipol) xs % elastic = this % scatter(iazi,ipol) % obj % scattxs(gin) xs % absorption = this % absorption(gin,iazi,ipol) + xs % fission = this % fission(gin,iazi,ipol) xs % nu_fission = this % nu_fission(gin,iazi,ipol) end subroutine mgxsang_calculate_xs diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 8544cb38b..6b2972768 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -232,7 +232,7 @@ contains this % n_secondary = n this % secondary_bank(this % n_secondary) % E = this % E if (.not. run_CE) then - this % secondary_bank(this % n_secondary) % E = real(this % g, 8) + this % secondary_bank(this % n_secondary) % E = real(this % g,8) end if end subroutine create_secondary diff --git a/src/tally.F90 b/src/tally.F90 index d23cd8691..a69af2260 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -810,10 +810,9 @@ contains integer :: score_bin ! scoring bin, e.g. SCORE_FLUX integer :: score_index ! scoring bin index real(8) :: score ! analog tally score - real(8) :: macro_total ! material macro total xs - real(8) :: macro_scatt ! material macro scatt xs - real(8) :: micro_abs ! nuclidic microscopic abs real(8) :: p_uvw(3) ! Particle's current uvw + class(Mgxs), pointer :: matxs + class(Mgxs), pointer :: nucxs ! Set the direction to use with get_xs if (t % estimator == ESTIMATOR_ANALOG) then @@ -822,6 +821,14 @@ contains p_uvw = p % coord(p % n_coord) % uvw end if + ! To significantly reduce de-referencing, point matxs to the + ! macroscopic Mgxs for the material of interest + matxs => macro_xs(p % material) % obj + ! Do same for nucxs, point it to the microscopic nuclide data of interest + if (i_nuclide > 0) then + nucxs => nuclides_MG(i_nuclide) % obj + end if + i = 0 SCORE_LOOP: do q = 1, t % n_user_score_bins i = i + 1 @@ -867,16 +874,23 @@ contains ! We need to account for the fact that some weight was already ! absorbed score = p % last_wgt + p % absorb_wgt + if (i_nuclide > 0) then + score = score * atom_density * & + nucxs % get_xs('total',p % last_g,UVW=p_uvw) / & + matxs % get_xs('total',p % last_g,UVW=p_uvw) + end if else score = p % last_wgt + if (i_nuclide > 0) then + score = score * atom_density * & + nucxs % get_xs('total',p % g,UVW=p_uvw) / & + matxs % get_xs('total',p % g,UVW=p_uvw) + end if end if else if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs('total',p % g,UVW=p_uvw) * & - atom_density * flux - end associate + score = nucxs % get_xs('total',p % g,UVW=p_uvw) * atom_density * flux else score = material_xs % total * flux end if @@ -921,28 +935,22 @@ contains score = p % last_wgt if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs('f_mu',p % last_g,p % g, & - UVW=p_uvw,MU=p % mu) / & - macro_xs(p % material) % obj % get_xs('f_mu',p % last_g, & - p % g, UVW=p_uvw, & - MU=p % mu) - end associate + score = score * atom_density * & + nucxs % get_xs('f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) / & + matxs % get_xs('f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) end if else ! Note SCORE_SCATTER_N not available for tracklength/collision. if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs('scatter',p % g,UVW=p_uvw) * & - atom_density * flux / & - nuc % get_xs('mult',p % g,UVW=p_uvw) - end associate + score = nucxs % get_xs('scatter',p % g,UVW=p_uvw) * & + atom_density * flux / & + nucxs % get_xs('mult',p % g,UVW=p_uvw) else ! Get the scattering x/s (stored in % elastic) and take away ! the multiplication baked in to sigS score = material_xs % elastic * flux / & - macro_xs(p % material) % obj % get_xs('mult',p % g,UVW=p_uvw) + matxs % get_xs('mult',p % g,UVW=p_uvw) end if end if @@ -966,22 +974,16 @@ contains score = p % wgt if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = score * nuc % get_xs('f_mu',p % last_g,p % g, & - UVW=p_uvw,MU=p % mu) / & - macro_xs(p % material) % obj % get_xs('f_mu',p % last_g, & - p % g, UVW=p_uvw, & - MU=p % mu) - end associate + score = score * atom_density * & + nucxs % get_xs('f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) / & + matxs % get_xs('f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) end if else ! Note SCORE_NU_SCATTER_* not available for tracklength/collision. if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs('scatter',p % g,UVW=p_uvw) * & + score = nucxs % get_xs('scatter',p % g,UVW=p_uvw) * & atom_density * flux - end associate else ! Get the scattering x/s (stored in % elastic) and take away ! the multiplication baked in to sigS @@ -994,14 +996,14 @@ contains ! Only analog estimators are available. ! Skip any event where the particle didn't scatter if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP - ! get material macros - macro_total = material_xs % total - macro_scatt = material_xs % elastic ! Score total rate - p1 scatter rate Note estimator needs to be ! adjusted since tallying is only occuring when a scatter has ! happened. Effectively this means multiplying the estimator by ! total/scatter macro - score = (macro_total - p % mu * macro_scatt) * (ONE / macro_scatt) + score = (material_xs % total - p % mu * material_xs % elastic) + if (material_xs % elastic /= ZERO) then + score = score / material_xs % elastic + end if case (SCORE_ABSORPTION) @@ -1010,20 +1012,28 @@ contains ! No absorption events actually occur if survival biasing is on -- ! just use weight absorbed in survival biasing score = p % absorb_wgt + if (i_nuclide > 0) then + score = score * atom_density * & + nucxs % get_xs('absorption',p % last_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + end if else ! Skip any event where the particle wasn't absorbed if (p % event == EVENT_SCATTER) cycle SCORE_LOOP ! All fission and absorption events will contribute here, so we ! can just use the particle's weight entering the collision score = p % last_wgt + if (i_nuclide > 0) then + score = score * atom_density * & + nucxs % get_xs('absorption',p % g,UVW=p_uvw) / & + material_xs % absorption + end if end if else if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs('absorption',p % g,UVW=p_uvw) & - * atom_density * flux - end associate + score = nucxs % get_xs('absorption',p % g,UVW=p_uvw) * & + atom_density * flux else score = material_xs % absorption * flux end if @@ -1036,15 +1046,15 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! fission - associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) - if (micro_abs > ZERO) then - score = p % absorb_wgt * & - nuc % get_xs('fission',p % g,UVW=p_uvw) / micro_abs - else - score = ZERO - end if - end associate + if (i_nuclide > 0) then + score = p % absorb_wgt * atom_density * & + nucxs % get_xs('fission', p % last_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + else + score = p % absorb_wgt * & + matxs % get_xs('fission', p % last_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + end if else ! Skip any non-absorption events if (p % event == EVENT_SCATTER) cycle SCORE_LOOP @@ -1052,32 +1062,22 @@ contains ! particle's weight entering the collision as the estimate for the ! fission reaction rate if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = p % last_wgt * & - nuc % get_xs('fission',p % g,UVW=p_uvw) * & - atom_density / & - macro_xs(p % material) % obj % get_xs('absorption',& - p % g,UVW=p_uvw) - end associate + score = p % last_wgt * atom_density * & + nucxs % get_xs('fission', p % g,UVW=p_uvw) / & + matxs % get_xs('absorption',p % g,UVW=p_uvw) else score = p % last_wgt * & - macro_xs(p % material) % obj % get_xs('fission', & - p % g,UVW=p_uvw) * & - atom_density / & - macro_xs(p % material) % obj % get_xs('absorption', & - p % g,UVW=p_uvw) + matxs % get_xs('fission', p % g,UVW=p_uvw) / & + matxs % get_xs('absorption',p % g,UVW=p_uvw) end if end if else if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs('fission',p % g,UVW=p_uvw) * & - atom_density * flux - end associate + score = nucxs % get_xs('fission',p % g,UVW=p_uvw) * & + atom_density * flux else - score = flux * macro_xs(p % material) % obj % get_xs('fission', & - p % g,UVW=p_uvw) + score = flux * material_xs % fission end if end if @@ -1092,7 +1092,7 @@ contains ! neutrons were emitted with different energies, multiple ! outgoing energy bins may have been scored to. The following ! logic treats this special case and results to multiple bins - call score_fission_eout_mg(p, t, score_index) + call score_fission_eout_mg(p,t,score_index,i_nuclide,atom_density) cycle SCORE_LOOP end if end if @@ -1101,15 +1101,13 @@ contains ! calculate fraction of absorptions that would have resulted in ! nu-fission if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) - if (micro_abs > ZERO) then - score = p % absorb_wgt * & - nuc % get_xs('nu_fission',p % g,UVW=p_uvw) / micro_abs - else - score = ZERO - end if - end associate + score = p % absorb_wgt * atom_density * & + nucxs % get_xs('nu_fission',p % last_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + else + score = p % absorb_wgt * & + matxs % get_xs('nu_fission',p % last_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p % last_g,UVW=p_uvw) end if else ! Skip any non-fission events @@ -1120,14 +1118,17 @@ contains ! bank. Since this was weighted by 1/keff, we multiply by keff ! to get the proper score. score = keff * p % wgt_bank + if (i_nuclide > 0) then + score = score * atom_density * & + nucxs % get_xs('fission',p % g,UVW=p_uvw) / & + matxs % get_xs('fission',p % g,UVW=p_uvw) + end if end if else if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs('nu_fission',p % g,UVW=p_uvw) * & - atom_density * flux - end associate + score = nucxs % get_xs('nu_fission',p % g,UVW=p_uvw) * & + atom_density * flux else score = material_xs % nu_fission * flux end if @@ -1140,15 +1141,15 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! fission - associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs('absorption',p % g,UVW=p_uvw) - if (micro_abs > ZERO) then - score = p % absorb_wgt * & - nuc % get_xs('kappa_fission',p % g,UVW=p_uvw) / micro_abs - else - score = ZERO - end if - end associate + if (i_nuclide > 0) then + score = p % absorb_wgt * atom_density * & + nucxs % get_xs('kappa_fission',p % last_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + else + score = p % absorb_wgt * & + matxs % get_xs('kappa_fission',p % last_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + end if else ! Skip any non-absorption events if (p % event == EVENT_SCATTER) cycle SCORE_LOOP @@ -1156,32 +1157,22 @@ contains ! particle's weight entering the collision as the estimate for the ! fission reaction rate if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = p % last_wgt * & - nuc % get_xs('kappa_fission',p % g,UVW=p_uvw) * & - atom_density / & - macro_xs(p % material) % obj % get_xs('absorption',& - p % g,UVW=p_uvw) - end associate + score = p % last_wgt * & + nucxs % get_xs('kappa_fission',p % g,UVW=p_uvw) * & + atom_density / material_xs % absorption else score = p % last_wgt * & - macro_xs(p % material) % obj % get_xs('kappa_fission', & - p % g,UVW=p_uvw) * & - atom_density / & - macro_xs(p % material) % obj % get_xs('absorption', & - p % g,UVW=p_uvw) + matxs % get_xs('kappa_fission',p % g,UVW=p_uvw) / & + material_xs % absorption end if end if else if (i_nuclide > 0) then - associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs('kappa_fission',p % g,UVW=p_uvw) * & - atom_density * flux - end associate + score = flux * nucxs % get_xs('kappa_fission',p % g,UVW=p_uvw) * & + atom_density else - score = flux * macro_xs(p % material) % obj % get_xs('kappa_fission', & - p % g,UVW=p_uvw) + score = flux * matxs % get_xs('kappa_fission',p % g,UVW=p_uvw) end if end if @@ -1199,6 +1190,8 @@ contains score, i) end do SCORE_LOOP + + nullify(matxs,nucxs) end subroutine score_general_mg !=============================================================================== @@ -1607,10 +1600,12 @@ contains end subroutine score_fission_eout_ce - subroutine score_fission_eout_mg(p, t, i_score) + subroutine score_fission_eout_mg(p, t, i_score, i_nuclide, atom_density) type(Particle), intent(in) :: p type(TallyObject), intent(inout) :: t - integer, intent(in) :: i_score ! index for score + integer, intent(in) :: i_score ! index for score + integer, intent(in) :: i_nuclide ! index for nuclide + real(8), intent(in) :: atom_density integer :: i ! index of outgoing energy filter integer :: n ! number of energies on filter @@ -1637,6 +1632,16 @@ contains do k = 1, p % n_bank ! determine score based on bank site weight and keff score = keff * fission_bank(n_bank - p % n_bank + k) % wgt + if (i_nuclide > 0) then + if (survival_biasing) then + gout = p % g + else + gout = p % last_g + end if + score = score * atom_density * & + nuclides_MG(i_nuclide) % obj % get_xs('fission',gout,UVW=p % last_uvw) / & + macro_xs(p % material) % obj % get_xs('fission',gout,UVW=p % last_uvw) + end if if (t % energyout_matches_groups) then ! determine outgoing energy from fission bank @@ -1646,7 +1651,7 @@ contains matching_bins(i) = gout else ! determine outgoing energy from fission bank - E_out = fission_bank(n_bank - p % n_bank + k) % E + E_out = energy_bin_avg(int(fission_bank(n_bank - p % n_bank + k) % E)) ! check if outgoing energy is within specified range on filter if (E_out < t % filters(i) % real_bins(1) .or. & diff --git a/src/tracking.F90 b/src/tracking.F90 index dc9497389..d52b09a75 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -97,6 +97,7 @@ contains material_xs % total = ZERO material_xs % elastic = ZERO material_xs % absorption = ZERO + material_xs % fission = ZERO material_xs % nu_fission = ZERO end if end if From dd3a7c670a4113888bfd176659cbcba346539017 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 16 Mar 2016 05:15:52 -0400 Subject: [PATCH 047/259] fixed inverse_velocities determination --- src/input_xml.F90 | 2 +- src/tally.F90 | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 557cfb670..4a1ebfacf 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -4585,7 +4585,7 @@ contains ! If not given, estimate them by using average energy in group which is ! assumed to be the midpoint do i = 1, energy_groups - inverse_velocities(i) = & + inverse_velocities(i) = ONE / & (sqrt(TWO * energy_bin_avg(i) / (MASS_NEUTRON_MEV)) * & C_LIGHT * 100.0_8) end do diff --git a/src/tally.F90 b/src/tally.F90 index a69af2260..b0c13a28e 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -898,7 +898,8 @@ contains case (SCORE_INVERSE_VELOCITY) - if (t % estimator == ESTIMATOR_ANALOG) then + if (t % estimator == ESTIMATOR_ANALOG .or. & + t % estimator == ESTIMATOR_COLLISION) then ! All events score to an inverse velocity bin. We actually use a ! collision estimator in place of an analog one since there is no way ! to count 'events' exactly for the inverse velocity @@ -909,11 +910,11 @@ contains else score = p % last_wgt end if - score = score * inverse_velocities(p % last_g) + score = score * inverse_velocities(p % last_g) / material_xs % total else ! For inverse velocity, we need no cross section - score = score * inverse_velocities(p % g) + score = flux * inverse_velocities(p % g) end if From de67e61558c4eb43af98a5fea3f27129b29085a9 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 17 Mar 2016 06:58:17 -0400 Subject: [PATCH 048/259] Simplified p % g and p % last_g selection in tallying MG data --- src/tally.F90 | 118 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 72 insertions(+), 46 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index b0c13a28e..4d57f44ca 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -811,14 +811,39 @@ contains integer :: score_index ! scoring bin index real(8) :: score ! analog tally score real(8) :: p_uvw(3) ! Particle's current uvw + integer :: p_g ! Particle group to use for getting info + ! to tally with. class(Mgxs), pointer :: matxs class(Mgxs), pointer :: nucxs - ! Set the direction to use with get_xs - if (t % estimator == ESTIMATOR_ANALOG) then - p_uvw = p % last_uvw + ! Set the direction and group to use with get_xs + ! this only depends on if we + if (t % estimator == ESTIMATOR_ANALOG .or. & + t % estimator == ESTIMATOR_COLLISION) then + if (survival_biasing) then + ! Then we either are alive and had a scatter (and so g changed), + ! or are dead and g did not change + if (p % alive) then + p_uvw = p % last_uvw + p_g = p % last_g + else + p_uvw = p % coord(p % n_coord) % uvw + p_g = p % g + end if + else if (p % event == EVENT_SCATTER) then + ! Then the energy group has been changed by the scattering routine + ! meaning gin is now in p % last_g + p_uvw = p % last_uvw + p_g = p % last_g + else + ! No scatter, no change in g. + p_uvw = p % coord(p % n_coord) % uvw + p_g = p % g + end if else + ! No actual collision so g has not changed. p_uvw = p % coord(p % n_coord) % uvw + p_g = p % g end if ! To significantly reduce de-referencing, point matxs to the @@ -876,21 +901,21 @@ contains score = p % last_wgt + p % absorb_wgt if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('total',p % last_g,UVW=p_uvw) / & - matxs % get_xs('total',p % last_g,UVW=p_uvw) + nucxs % get_xs('total',p_g,UVW=p_uvw) / & + matxs % get_xs('total',p_g,UVW=p_uvw) end if else score = p % last_wgt if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('total',p % g,UVW=p_uvw) / & - matxs % get_xs('total',p % g,UVW=p_uvw) + nucxs % get_xs('total',p_g,UVW=p_uvw) / & + matxs % get_xs('total',p_g,UVW=p_uvw) end if end if else if (i_nuclide > 0) then - score = nucxs % get_xs('total',p % g,UVW=p_uvw) * atom_density * flux + score = nucxs % get_xs('total',p_g,UVW=p_uvw) * atom_density * flux else score = material_xs % total * flux end if @@ -910,11 +935,11 @@ contains else score = p % last_wgt end if - score = score * inverse_velocities(p % last_g) / material_xs % total + score = score * inverse_velocities(p_g) / material_xs % total else ! For inverse velocity, we need no cross section - score = flux * inverse_velocities(p % g) + score = flux * inverse_velocities(p_g) end if @@ -944,14 +969,14 @@ contains else ! Note SCORE_SCATTER_N not available for tracklength/collision. if (i_nuclide > 0) then - score = nucxs % get_xs('scatter',p % g,UVW=p_uvw) * & + score = nucxs % get_xs('scatter',p_g,UVW=p_uvw) * & atom_density * flux / & - nucxs % get_xs('mult',p % g,UVW=p_uvw) + nucxs % get_xs('mult',p_g,UVW=p_uvw) else ! Get the scattering x/s (stored in % elastic) and take away ! the multiplication baked in to sigS score = material_xs % elastic * flux / & - matxs % get_xs('mult',p % g,UVW=p_uvw) + matxs % get_xs('mult',p_g,UVW=p_uvw) end if end if @@ -983,7 +1008,7 @@ contains else ! Note SCORE_NU_SCATTER_* not available for tracklength/collision. if (i_nuclide > 0) then - score = nucxs % get_xs('scatter',p % g,UVW=p_uvw) * & + score = nucxs % get_xs('scatter',p_g,UVW=p_uvw) * & atom_density * flux else ! Get the scattering x/s (stored in % elastic) and take away @@ -1015,8 +1040,8 @@ contains score = p % absorb_wgt if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('absorption',p % last_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + nucxs % get_xs('absorption',p_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p_g,UVW=p_uvw) end if else ! Skip any event where the particle wasn't absorbed @@ -1026,14 +1051,14 @@ contains score = p % last_wgt if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('absorption',p % g,UVW=p_uvw) / & + nucxs % get_xs('absorption',p_g,UVW=p_uvw) / & material_xs % absorption end if end if else if (i_nuclide > 0) then - score = nucxs % get_xs('absorption',p % g,UVW=p_uvw) * & + score = nucxs % get_xs('absorption',p_g,UVW=p_uvw) * & atom_density * flux else score = material_xs % absorption * flux @@ -1049,12 +1074,12 @@ contains ! fission if (i_nuclide > 0) then score = p % absorb_wgt * atom_density * & - nucxs % get_xs('fission', p % last_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + nucxs % get_xs('fission', p_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p_g,UVW=p_uvw) else score = p % absorb_wgt * & - matxs % get_xs('fission', p % last_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + matxs % get_xs('fission', p_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p_g,UVW=p_uvw) end if else ! Skip any non-absorption events @@ -1064,18 +1089,18 @@ contains ! fission reaction rate if (i_nuclide > 0) then score = p % last_wgt * atom_density * & - nucxs % get_xs('fission', p % g,UVW=p_uvw) / & - matxs % get_xs('absorption',p % g,UVW=p_uvw) + nucxs % get_xs('fission', p_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p_g,UVW=p_uvw) else score = p % last_wgt * & - matxs % get_xs('fission', p % g,UVW=p_uvw) / & - matxs % get_xs('absorption',p % g,UVW=p_uvw) + matxs % get_xs('fission', p_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p_g,UVW=p_uvw) end if end if else if (i_nuclide > 0) then - score = nucxs % get_xs('fission',p % g,UVW=p_uvw) * & + score = nucxs % get_xs('fission',p_g,UVW=p_uvw) * & atom_density * flux else score = flux * material_xs % fission @@ -1103,12 +1128,12 @@ contains ! nu-fission if (i_nuclide > 0) then score = p % absorb_wgt * atom_density * & - nucxs % get_xs('nu_fission',p % last_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + nucxs % get_xs('nu_fission',p_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p_g,UVW=p_uvw) else score = p % absorb_wgt * & - matxs % get_xs('nu_fission',p % last_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + matxs % get_xs('nu_fission',p_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p_g,UVW=p_uvw) end if else ! Skip any non-fission events @@ -1121,14 +1146,14 @@ contains score = keff * p % wgt_bank if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('fission',p % g,UVW=p_uvw) / & - matxs % get_xs('fission',p % g,UVW=p_uvw) + nucxs % get_xs('fission',p_g,UVW=p_uvw) / & + matxs % get_xs('fission',p_g,UVW=p_uvw) end if end if else if (i_nuclide > 0) then - score = nucxs % get_xs('nu_fission',p % g,UVW=p_uvw) * & + score = nucxs % get_xs('nu_fission',p_g,UVW=p_uvw) * & atom_density * flux else score = material_xs % nu_fission * flux @@ -1144,12 +1169,12 @@ contains ! fission if (i_nuclide > 0) then score = p % absorb_wgt * atom_density * & - nucxs % get_xs('kappa_fission',p % last_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + nucxs % get_xs('kappa_fission',p_g,UVW=p_uvw) / & + matxs % get_xs('absorption', p_g,UVW=p_uvw) else score = p % absorb_wgt * & - matxs % get_xs('kappa_fission',p % last_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p % last_g,UVW=p_uvw) + matxs % get_xs('kappa_fission',p_g,UVW=p_uvw) / & + matxs % get_xs('absorption', p_g,UVW=p_uvw) end if else ! Skip any non-absorption events @@ -1159,21 +1184,21 @@ contains ! fission reaction rate if (i_nuclide > 0) then score = p % last_wgt * & - nucxs % get_xs('kappa_fission',p % g,UVW=p_uvw) * & + nucxs % get_xs('kappa_fission',p_g,UVW=p_uvw) * & atom_density / material_xs % absorption else score = p % last_wgt * & - matxs % get_xs('kappa_fission',p % g,UVW=p_uvw) / & + matxs % get_xs('kappa_fission',p_g,UVW=p_uvw) / & material_xs % absorption end if end if else if (i_nuclide > 0) then - score = flux * nucxs % get_xs('kappa_fission',p % g,UVW=p_uvw) * & + score = flux * nucxs % get_xs('kappa_fission',p_g,UVW=p_uvw) * & atom_density else - score = flux * matxs % get_xs('kappa_fission',p % g,UVW=p_uvw) + score = flux * matxs % get_xs('kappa_fission',p_g,UVW=p_uvw) end if end if @@ -1615,6 +1640,7 @@ contains integer :: i_filter ! index for matching filter bin combination real(8) :: score ! actual score integer :: gout ! energy group of fission bank site + integer :: gin ! energy group of incident particle real(8) :: E_out ! save original outgoing energy bin and score index @@ -1635,13 +1661,13 @@ contains score = keff * fission_bank(n_bank - p % n_bank + k) % wgt if (i_nuclide > 0) then if (survival_biasing) then - gout = p % g + gin = p % g else - gout = p % last_g + gin = p % last_g end if score = score * atom_density * & - nuclides_MG(i_nuclide) % obj % get_xs('fission',gout,UVW=p % last_uvw) / & - macro_xs(p % material) % obj % get_xs('fission',gout,UVW=p % last_uvw) + nuclides_MG(i_nuclide) % obj % get_xs('fission',gin,UVW=p % last_uvw) / & + macro_xs(p % material) % obj % get_xs('fission',gin,UVW=p % last_uvw) end if if (t % energyout_matches_groups) then From f58c379b53894d9e21e0d897322ab6249c564f9a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 24 Feb 2016 11:01:12 -0600 Subject: [PATCH 049/259] Refactored organization of reaction data --- src/ace.F90 | 185 +++++++++++++-------------- src/ace_header.F90 | 58 --------- src/angleenergy_header.F90 | 29 +++++ src/cross_section.F90 | 221 +++++++++++++++++---------------- src/energy_distribution.F90 | 106 ++++------------ src/nuclide_header.F90 | 44 +++---- src/output.F90 | 1 - src/physics.F90 | 18 +-- src/product_header.F90 | 61 +++++++++ src/reaction_header.F90 | 21 ++++ src/secondary_correlated.F90 | 52 ++++---- src/secondary_header.F90 | 83 ------------- src/secondary_kalbach.F90 | 60 ++++----- src/secondary_nbody.F90 | 70 +++++++++++ src/secondary_uncorrelated.F90 | 2 +- src/summary.F90 | 1 - src/tally.F90 | 41 +++--- src/urr_header.F90 | 20 +++ 18 files changed, 539 insertions(+), 534 deletions(-) delete mode 100644 src/ace_header.F90 create mode 100644 src/angleenergy_header.F90 create mode 100644 src/product_header.F90 create mode 100644 src/reaction_header.F90 delete mode 100644 src/secondary_header.F90 create mode 100644 src/secondary_nbody.F90 create mode 100644 src/urr_header.F90 diff --git a/src/ace.F90 b/src/ace.F90 index fbc1b7ee7..431a9d423 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -1,11 +1,11 @@ module ace - use ace_header, only: Reaction + use angleenergy_header, only: AngleEnergy use constants use distribution_univariate, only: Uniform, Equiprobable, Tabular use endf, only: is_fission, is_disappearance use energy_distribution, only: TabularEquiprobable, LevelInelastic, & - ContinuousTabular, MaxwellEnergy, Evaporation, WattEnergy, NBodyPhaseSpace + ContinuousTabular, MaxwellEnergy, Evaporation, WattEnergy use error, only: fatal_error, warning use fission, only: nu_total use global @@ -15,9 +15,9 @@ module ace use output, only: write_message use sab_header use set_header, only: SetChar - use secondary_header, only: AngleEnergy use secondary_correlated, only: CorrelatedAngleEnergy use secondary_kalbach, only: KalbachMann + use secondary_nbody, only: NBodyPhaseSpace use secondary_uncorrelated, only: UncorrelatedAngleEnergy use string, only: to_str, to_lower @@ -746,13 +746,14 @@ contains ! sigma array is not allocated or stored for elastic scattering since it is ! already stored in nuc % elastic associate (rxn => nuc % reactions(1)) - rxn%MT = 2 - rxn%Q_value = ZERO - rxn%multiplicity = 1 - rxn%threshold = 1 - rxn%scatter_in_cm = .true. - allocate(rxn%secondary%distribution(1)) - allocate(UncorrelatedAngleEnergy :: rxn%secondary%distribution(1)%obj) + rxn % MT = 2 + rxn % Q_value = ZERO + allocate(rxn % products(1)) + rxn % products(1) % yield = 1 + rxn % threshold = 1 + rxn % scatter_in_cm = .true. + allocate(rxn % products(1) % distribution(1)) + allocate(UncorrelatedAngleEnergy :: rxn % products(1) % distribution(1) % obj) end associate ! Add contribution of elastic scattering to total cross section @@ -768,45 +769,46 @@ contains do i = 1, NMT associate (rxn => nuc % reactions(i+1)) ! read MT number, Q-value, and neutrons produced - rxn % MT = int(XSS(LMT + i - 1)) - rxn % Q_value = XSS(JXS4 + i - 1) - rxn % multiplicity = abs(nint(XSS(JXS5 + i - 1))) + rxn % MT = int(XSS(LMT + i - 1)) + rxn % Q_value = XSS(JXS4 + i - 1) + allocate(rxn % products(1)) + rxn % products(1) % yield = abs(nint(XSS(JXS5 + i - 1))) rxn % scatter_in_cm = (nint(XSS(JXS5 + i - 1)) < 0) ! Read energy-dependent multiplicities - if (rxn % multiplicity > 100) then + if (rxn % products(1) % yield > 100) then ! Set flag and allocate space for Tab1 to store yield - rxn % multiplicity_with_E = .true. - allocate(rxn % multiplicity_E) + rxn % products(1) % yield_with_E = .true. + allocate(rxn % products(1) % yield_E) - XSS_index = JXS(11) + rxn % multiplicity - 101 + XSS_index = JXS(11) + rxn % products(1) % yield - 101 NR = nint(XSS(XSS_index)) - rxn % multiplicity_E % n_regions = NR + rxn % products(1) % yield_E % n_regions = NR ! allocate space for ENDF interpolation parameters if (NR > 0) then - allocate(rxn % multiplicity_E % nbt(NR)) - allocate(rxn % multiplicity_E % int(NR)) + allocate(rxn % products(1) % yield_E % nbt(NR)) + allocate(rxn % products(1) % yield_E % int(NR)) end if ! read ENDF interpolation parameters XSS_index = XSS_index + 1 if (NR > 0) then - rxn % multiplicity_E % nbt = get_int(NR) - rxn % multiplicity_E % int = get_int(NR) + rxn % products(1) % yield_E % nbt = get_int(NR) + rxn % products(1) % yield_E % int = get_int(NR) end if ! allocate space for yield data XSS_index = XSS_index + 2*NR NE = nint(XSS(XSS_index)) - rxn % multiplicity_E % n_pairs = NE - allocate(rxn % multiplicity_E % x(NE)) - allocate(rxn % multiplicity_E % y(NE)) + rxn % products(1) % yield_E % n_pairs = NE + allocate(rxn % products(1) % yield_E % x(NE)) + allocate(rxn % products(1) % yield_E % y(NE)) ! read yield data XSS_index = XSS_index + 1 - rxn % multiplicity_E % x = get_real(NE) - rxn % multiplicity_E % y = get_real(NE) + rxn % products(1) % yield_E % x = get_real(NE) + rxn % products(1) % yield_E % y = get_real(NE) end if ! read starting energy index @@ -923,8 +925,8 @@ contains ! "one" angular distribution, it is repeated as many times as there are ! energy distributions for this reaction since the ! UncorrelatedAngleEnergy type holds one angle and energy distribution. - do k = 1, size(rxn%secondary%distribution) - select type (aedist => rxn%secondary%distribution(k)%obj) + do k = 1, size(rxn%products(1)%distribution) + select type (aedist => rxn%products(1)%distribution(k)%obj) type is (UncorrelatedAngleEnergy) ! allocate space for incoming energies and locations NE = int(XSS(JXS(9) + LOCB - 1)) @@ -1017,9 +1019,9 @@ contains end do ! Allocate space for distributions and probability of validity - associate (secondary => nuc%reactions(i + 1)%secondary) - allocate(secondary%applicability(n)) - allocate(secondary%distribution(n)) + associate (p => nuc%reactions(i + 1)%products(1)) + allocate(p%applicability(n)) + allocate(p%distribution(n)) LNW = nint(XSS(JXS(10) + i - 1)) n = 0 @@ -1031,10 +1033,10 @@ contains IDAT = nint(XSS(JXS(11) + LNW + 1)) ! Read probability of law validity - call secondary%applicability(n)%from_ace(XSS, JXS(11) + LNW + 2) + call p%applicability(n)%from_ace(XSS, JXS(11) + LNW + 2) ! Read energy law data - call get_energy_dist(secondary%distribution(n)%obj, LAW, & + call get_energy_dist(p%distribution(n)%obj, LAW, & JXS(11), IDAT, nuc%awr, nuc%reactions(i + 1)%Q_value) ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< @@ -1046,7 +1048,7 @@ contains ! mark fission reactions so that we avoid the angle sampling. if (any(nuc%reactions(i + 1)%MT == & [N_FISSION, N_F, N_NF, N_2NF, N_3NF])) then - select type (aedist => secondary%distribution(n)%obj) + select type (aedist => p%distribution(n)%obj) type is (UncorrelatedAngleEnergy) aedist%fission = .true. end select @@ -1089,6 +1091,8 @@ contains allocate(KalbachMann :: aedist) elseif (law == 61) then allocate(CorrelatedAngleEnergy :: aedist) + elseif (law == 66) then + allocate(NBodyPhaseSpace :: aedist) else allocate(UncorrelatedAngleEnergy :: aedist) end if @@ -1157,38 +1161,38 @@ contains ! locators NE = nint(XSS(XSS_index)) XSS_index = XSS_index + 1 - allocate(edist%energy_in(NE)) + allocate(edist%energy(NE)) allocate(L(NE)) - edist%energy_in(:) = get_real(NE) + edist%energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(edist%energy_out(NE)) + allocate(edist%distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - edist%energy_out(i)%interpolation = mod(interp, 10) - edist%energy_out(i)%n_discrete = (interp - & - edist%energy_out(i)%interpolation)/10 + edist%distribution(i)%interpolation = mod(interp, 10) + edist%distribution(i)%n_discrete = (interp - & + edist%distribution(i)%interpolation)/10 ! check for discrete lines present - if (edist%energy_out(i)%n_discrete > 0) then + if (edist%distribution(i)%n_discrete > 0) then call fatal_error("Discrete lines in continuous tabular & &distribution not yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(edist%energy_out(i)%e_out(NP)) - allocate(edist%energy_out(i)%p(NP)) - allocate(edist%energy_out(i)%c(NP)) + allocate(edist%distribution(i)%e_out(NP)) + allocate(edist%distribution(i)%p(NP)) + allocate(edist%distribution(i)%c(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - edist%energy_out(i)%e_out(:) = get_real(NP) - edist%energy_out(i)%p(:) = get_real(NP) - edist%energy_out(i)%c(:) = get_real(NP) + edist%distribution(i)%e_out(:) = get_real(NP) + edist%distribution(i)%p(:) = get_real(NP) + edist%distribution(i)%c(:) = get_real(NP) end do deallocate(L) @@ -1223,16 +1227,6 @@ contains edist%u = XSS(XSS_index) end select - case (66) - allocate(NBodyPhaseSpace :: aedist%energy) - select type(edist => aedist%energy) - type is (NBodyPhaseSpace) - edist%n_bodies = int(XSS(XSS_index)) - edist%mass_ratio = XSS(XSS_index + 1) - edist%A = awr - edist%Q = Q_value - end select - end select type is (KalbachMann) @@ -1248,42 +1242,42 @@ contains aedist%n_region = NR ! Read incoming energies for which outgoing energies are tabulated and locators - allocate(aedist%energy_in(NE)) + allocate(aedist%energy(NE)) allocate(L(NE)) XSS_index = XSS_index + 2 + 2*NR - aedist%energy_in(:) = get_real(NE) + aedist%energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(aedist%table(NE)) + allocate(aedist%distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - aedist%table(i)%interpolation = mod(interp, 10) - aedist%table(i)%n_discrete = (interp - aedist%table(i)%interpolation)/10 + aedist%distribution(i)%interpolation = mod(interp, 10) + aedist%distribution(i)%n_discrete = (interp - aedist%distribution(i)%interpolation)/10 ! check for discrete lines present - if (aedist%table(i)%n_discrete > 0) then + if (aedist%distribution(i)%n_discrete > 0) then call fatal_error("Discrete lines in Kalbach-Mann distribution not & &yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(aedist%table(i)%e_out(NP)) - allocate(aedist%table(i)%p(NP)) - allocate(aedist%table(i)%c(NP)) - allocate(aedist%table(i)%r(NP)) - allocate(aedist%table(i)%a(NP)) + allocate(aedist%distribution(i)%e_out(NP)) + allocate(aedist%distribution(i)%p(NP)) + allocate(aedist%distribution(i)%c(NP)) + allocate(aedist%distribution(i)%r(NP)) + allocate(aedist%distribution(i)%a(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - aedist%table(i)%e_out(:) = get_real(NP) - aedist%table(i)%p(:) = get_real(NP) - aedist%table(i)%c(:) = get_real(NP) - aedist%table(i)%r(:) = get_real(NP) - aedist%table(i)%a(:) = get_real(NP) + aedist%distribution(i)%e_out(:) = get_real(NP) + aedist%distribution(i)%p(:) = get_real(NP) + aedist%distribution(i)%c(:) = get_real(NP) + aedist%distribution(i)%r(:) = get_real(NP) + aedist%distribution(i)%a(:) = get_real(NP) end do deallocate(L) @@ -1302,48 +1296,48 @@ contains ! Read incoming energies for which outgoing energies are tabulated and ! locators - allocate(aedist%energy_in(NE)) + allocate(aedist%energy(NE)) allocate(L(NE)) XSS_index = XSS_index + 2 + 2*NR - aedist%energy_in(:) = get_real(NE) + aedist%energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(aedist%table(NE)) + allocate(aedist%distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - aedist%table(i)%interpolation = mod(interp, 10) - aedist%table(i)%n_discrete = (interp - aedist%table(i)%interpolation)/10 + aedist%distribution(i)%interpolation = mod(interp, 10) + aedist%distribution(i)%n_discrete = (interp - aedist%distribution(i)%interpolation)/10 ! check for discrete lines present - if (aedist%table(i)%n_discrete > 0) then + if (aedist%distribution(i)%n_discrete > 0) then call fatal_error("Discrete lines in correlated angle-energy & &distribution not yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(aedist%table(i)%e_out(NP)) - allocate(aedist%table(i)%p(NP)) - allocate(aedist%table(i)%c(NP)) + allocate(aedist%distribution(i)%e_out(NP)) + allocate(aedist%distribution(i)%p(NP)) + allocate(aedist%distribution(i)%c(NP)) allocate(LC(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - aedist%table(i)%e_out(:) = get_real(NP) - aedist%table(i)%p(:) = get_real(NP) - aedist%table(i)%c(:) = get_real(NP) + aedist%distribution(i)%e_out(:) = get_real(NP) + aedist%distribution(i)%p(:) = get_real(NP) + aedist%distribution(i)%c(:) = get_real(NP) LC(:) = get_int(NP) ! allocate angular distributions for each incoming/outgoing energy - allocate(aedist%table(i)%angle(NP)) + allocate(aedist%distribution(i)%angle(NP)) do j = 1, NP if (LC(j) == 0) then ! isotropic - allocate(Uniform :: aedist%table(i)%angle(j)%obj) - select type (adist => aedist%table(i)%angle(j)%obj) + allocate(Uniform :: aedist%distribution(i)%angle(j)%obj) + select type (adist => aedist%distribution(i)%angle(j)%obj) type is (Uniform) adist%a = -ONE adist%b = ONE @@ -1351,14 +1345,14 @@ contains elseif (LC(j) > 0) then ! tabular distribution - allocate(Tabular :: aedist%table(i)%angle(j)%obj) + allocate(Tabular :: aedist%distribution(i)%angle(j)%obj) end if end do ! read angular distributions do j = 1, NP XSS_index = LDIS + abs(LC(j)) - 1 - select type(adist => aedist%table(i)%angle(j)%obj) + select type(adist => aedist%distribution(i)%angle(j)%obj) type is (Tabular) ! determine interpolation and number of points interp = nint(XSS(XSS_index)) @@ -1377,6 +1371,15 @@ contains end do deallocate(L) + + type is (NBodyPhaseSpace) + ! ======================================================================== + ! N-BODY PHASE SPACE DISTRIBUTION + + aedist%n_bodies = int(XSS(XSS_index)) + aedist%mass_ratio = XSS(XSS_index + 1) + aedist%A = awr + aedist%Q = Q_value end select end subroutine get_energy_dist diff --git a/src/ace_header.F90 b/src/ace_header.F90 deleted file mode 100644 index ae5000e5a..000000000 --- a/src/ace_header.F90 +++ /dev/null @@ -1,58 +0,0 @@ -module ace_header - - use constants, only: MAX_FILE_LEN, ZERO - use dict_header, only: DictIntInt - use endf_header, only: Tab1 - use secondary_header, only: SecondaryDistribution, AngleEnergyContainer - use stl_vector, only: VectorInt - - implicit none - -!=============================================================================== -! REACTION contains the cross-section and secondary energy and angle -! distributions for a single reaction in a continuous-energy ACE-format table -!=============================================================================== - - type Reaction - integer :: MT ! ENDF MT value - real(8) :: Q_value ! Reaction Q value - integer :: multiplicity ! Number of secondary particles released - type(Tab1), pointer :: multiplicity_E => null() ! Energy-dependent neutron yield - integer :: threshold ! Energy grid index of threshold - logical :: scatter_in_cm ! scattering system in center-of-mass? - logical :: multiplicity_with_E = .false. ! Flag to indicate E-dependent multiplicity - real(8), allocatable :: sigma(:) ! Cross section values - type(SecondaryDistribution) :: secondary - - contains - procedure :: clear => reaction_clear ! Deallocates Reaction - end type Reaction - -!=============================================================================== -! URRDATA contains probability tables for the unresolved resonance range. -!=============================================================================== - - type UrrData - integer :: n_energy ! # of incident neutron energies - integer :: n_prob ! # of probabilities - integer :: interp ! inteprolation (2=lin-lin, 5=log-log) - integer :: inelastic_flag ! inelastic competition flag - integer :: absorption_flag ! other absorption flag - logical :: multiply_smooth ! multiply by smooth cross section? - real(8), allocatable :: energy(:) ! incident energies - real(8), allocatable :: prob(:,:,:) ! actual probabibility tables - end type UrrData - - contains - -!=============================================================================== -! REACTION_CLEAR resets and deallocates data in Reaction. -!=============================================================================== - - subroutine reaction_clear(this) - class(Reaction), intent(inout) :: this ! The Reaction object to clear - - if (associated(this % multiplicity_E)) deallocate(this % multiplicity_E) - end subroutine reaction_clear - -end module ace_header diff --git a/src/angleenergy_header.F90 b/src/angleenergy_header.F90 new file mode 100644 index 000000000..483bad856 --- /dev/null +++ b/src/angleenergy_header.F90 @@ -0,0 +1,29 @@ +module angleenergy_header + +!=============================================================================== +! ANGLEENERGY (abstract) defines a correlated or uncorrelated angle-energy +! distribution that is a function of incoming energy. Each derived type must +! implement a sample() subroutine that returns an outgoing energy and scattering +! cosine given an incoming energy. +!=============================================================================== + + type, abstract :: AngleEnergy + contains + procedure(angleenergy_sample_), deferred :: sample + end type AngleEnergy + + abstract interface + subroutine angleenergy_sample_(this, E_in, E_out, mu) + import AngleEnergy + class(AngleEnergy), intent(in) :: this + real(8), intent(in) :: E_in + real(8), intent(out) :: E_out + real(8), intent(out) :: mu + end subroutine angleenergy_sample_ + end interface + + type :: AngleEnergyContainer + class(AngleEnergy), allocatable :: obj + end type AngleEnergyContainer + +end module angleenergy_header diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 2f2e7fd7e..4c529213b 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -1,6 +1,5 @@ module cross_section - use ace_header, only: Reaction, UrrData use constants use energy_grid, only: grid_method, log_spacing use error, only: fatal_error @@ -363,131 +362,133 @@ contains real(8) :: capture ! (n,gamma) cross section real(8) :: fission ! fission cross section real(8) :: inelastic ! inelastic cross section - type(UrrData), pointer :: urr - type(NuclideCE), pointer :: nuc micro_xs(i_nuclide) % use_ptable = .true. - ! get pointer to probability table - nuc => nuclides(i_nuclide) - urr => nuc % urr_data + associate (nuc => nuclides(i_nuclide), urr => nuclides(i_nuclide) % urr_data) + ! determine energy table + i_energy = 1 + do + if (E < urr % energy(i_energy + 1)) exit + i_energy = i_energy + 1 + end do - ! determine energy table - i_energy = 1 - do - if (E < urr % energy(i_energy + 1)) exit - i_energy = i_energy + 1 - end do + ! determine interpolation factor on table + f = (E - urr % energy(i_energy)) / & + (urr % energy(i_energy + 1) - urr % energy(i_energy)) - ! determine interpolation factor on table - f = (E - urr % energy(i_energy)) / & - (urr % energy(i_energy + 1) - urr % energy(i_energy)) + ! sample probability table using the cumulative distribution - ! sample probability table using the cumulative distribution + ! determine interpolation factor on table + f = (E - urr % energy(i_energy)) / & + (urr % energy(i_energy + 1) - urr % energy(i_energy)) - ! Random numbers for xs calculation are sampled from a separated stream. - ! This guarantees the randomness and, at the same time, makes sure we reuse - ! random number for the same nuclide at different temperatures, therefore - ! preserving correlation of temperature in probability tables. - call prn_set_stream(STREAM_URR_PTABLE) - r = future_prn(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) - call prn_set_stream(STREAM_TRACKING) + ! sample probability table using the cumulative distribution - i_low = 1 - do - if (urr % prob(i_energy, URR_CUM_PROB, i_low) > r) exit - i_low = i_low + 1 - end do - i_up = 1 - do - if (urr % prob(i_energy + 1, URR_CUM_PROB, i_up) > r) exit - i_up = i_up + 1 - end do + ! Random numbers for xs calculation are sampled from a separated stream. + ! This guarantees the randomness and, at the same time, makes sure we reuse + ! random number for the same nuclide at different temperatures, therefore + ! preserving correlation of temperature in probability tables. + call prn_set_stream(STREAM_URR_PTABLE) + r = future_prn(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) + call prn_set_stream(STREAM_TRACKING) - ! determine elastic, fission, and capture cross sections from probability - ! table - if (urr % interp == LINEAR_LINEAR) then - elastic = (ONE - f) * urr % prob(i_energy, URR_ELASTIC, i_low) + & - f * urr % prob(i_energy + 1, URR_ELASTIC, i_up) - fission = (ONE - f) * urr % prob(i_energy, URR_FISSION, i_low) + & - f * urr % prob(i_energy + 1, URR_FISSION, i_up) - capture = (ONE - f) * urr % prob(i_energy, URR_N_GAMMA, i_low) + & - f * urr % prob(i_energy + 1, URR_N_GAMMA, i_up) - elseif (urr % interp == LOG_LOG) then - ! Get logarithmic interpolation factor - f = log(E / urr % energy(i_energy)) / & - log(urr % energy(i_energy + 1) / urr % energy(i_energy)) + i_low = 1 + do + if (urr % prob(i_energy, URR_CUM_PROB, i_low) > r) exit + i_low = i_low + 1 + end do + i_up = 1 + do + if (urr % prob(i_energy + 1, URR_CUM_PROB, i_up) > r) exit + i_up = i_up + 1 + end do - ! Calculate elastic cross section/factor - elastic = ZERO - if (urr % prob(i_energy, URR_ELASTIC, i_low) > ZERO .and. & - urr % prob(i_energy + 1, URR_ELASTIC, i_up) > ZERO) then - elastic = exp((ONE - f) * log(urr % prob(i_energy, URR_ELASTIC, & - i_low)) + f * log(urr % prob(i_energy + 1, URR_ELASTIC, & - i_up))) - end if + ! determine elastic, fission, and capture cross sections from probability + ! table + if (urr % interp == LINEAR_LINEAR) then + elastic = (ONE - f) * urr % prob(i_energy, URR_ELASTIC, i_low) + & + f * urr % prob(i_energy + 1, URR_ELASTIC, i_up) + fission = (ONE - f) * urr % prob(i_energy, URR_FISSION, i_low) + & + f * urr % prob(i_energy + 1, URR_FISSION, i_up) + capture = (ONE - f) * urr % prob(i_energy, URR_N_GAMMA, i_low) + & + f * urr % prob(i_energy + 1, URR_N_GAMMA, i_up) + elseif (urr % interp == LOG_LOG) then + ! Get logarithmic interpolation factor + f = log(E / urr % energy(i_energy)) / & + log(urr % energy(i_energy + 1) / urr % energy(i_energy)) - ! Calculate fission cross section/factor - fission = ZERO - if (urr % prob(i_energy, URR_FISSION, i_low) > ZERO .and. & - urr % prob(i_energy + 1, URR_FISSION, i_up) > ZERO) then - fission = exp((ONE - f) * log(urr % prob(i_energy, URR_FISSION, & - i_low)) + f * log(urr % prob(i_energy + 1, URR_FISSION, & - i_up))) - end if - - ! Calculate capture cross section/factor - capture = ZERO - if (urr % prob(i_energy, URR_N_GAMMA, i_low) > ZERO .and. & - urr % prob(i_energy + 1, URR_N_GAMMA, i_up) > ZERO) then - capture = exp((ONE - f) * log(urr % prob(i_energy, URR_N_GAMMA, & - i_low)) + f * log(urr % prob(i_energy + 1, URR_N_GAMMA, & - i_up))) - end if - end if - - ! Determine treatment of inelastic scattering - inelastic = ZERO - if (urr % inelastic_flag > 0) then - ! Get index on energy grid and interpolation factor - i_energy = micro_xs(i_nuclide) % index_grid - f = micro_xs(i_nuclide) % interp_factor - - ! Determine inelastic scattering cross section - associate (rxn => nuc % reactions(nuc % urr_inelastic)) - if (i_energy >= rxn % threshold) then - inelastic = (ONE - f) * rxn % sigma(i_energy - rxn%threshold + 1) + & - f * rxn % sigma(i_energy - rxn%threshold + 2) + ! Calculate elastic cross section/factor + elastic = ZERO + if (urr % prob(i_energy, URR_ELASTIC, i_low) > ZERO .and. & + urr % prob(i_energy + 1, URR_ELASTIC, i_up) > ZERO) then + elastic = exp((ONE - f) * log(urr % prob(i_energy, URR_ELASTIC, & + i_low)) + f * log(urr % prob(i_energy + 1, URR_ELASTIC, & + i_up))) end if - end associate - end if - ! Multiply by smooth cross-section if needed - if (urr % multiply_smooth) then - elastic = elastic * micro_xs(i_nuclide) % elastic - capture = capture * (micro_xs(i_nuclide) % absorption - & - micro_xs(i_nuclide) % fission) - fission = fission * micro_xs(i_nuclide) % fission - end if + ! Calculate fission cross section/factor + fission = ZERO + if (urr % prob(i_energy, URR_FISSION, i_low) > ZERO .and. & + urr % prob(i_energy + 1, URR_FISSION, i_up) > ZERO) then + fission = exp((ONE - f) * log(urr % prob(i_energy, URR_FISSION, & + i_low)) + f * log(urr % prob(i_energy + 1, URR_FISSION, & + i_up))) + end if - ! Check for negative values - if (elastic < ZERO) elastic = ZERO - if (fission < ZERO) fission = ZERO - if (capture < ZERO) capture = ZERO + ! Calculate capture cross section/factor + capture = ZERO + if (urr % prob(i_energy, URR_N_GAMMA, i_low) > ZERO .and. & + urr % prob(i_energy + 1, URR_N_GAMMA, i_up) > ZERO) then + capture = exp((ONE - f) * log(urr % prob(i_energy, URR_N_GAMMA, & + i_low)) + f * log(urr % prob(i_energy + 1, URR_N_GAMMA, & + i_up))) + end if + end if - ! Set elastic, absorption, fission, and total cross sections. Note that the - ! total cross section is calculated as sum of partials rather than using the - ! table-provided value - micro_xs(i_nuclide) % elastic = elastic - micro_xs(i_nuclide) % absorption = capture + fission - micro_xs(i_nuclide) % fission = fission - micro_xs(i_nuclide) % total = elastic + inelastic + capture + fission + ! Determine treatment of inelastic scattering + inelastic = ZERO + if (urr % inelastic_flag > 0) then + ! Get index on energy grid and interpolation factor + i_energy = micro_xs(i_nuclide) % index_grid + f = micro_xs(i_nuclide) % interp_factor - ! Determine nu-fission cross section - if (nuc % fissionable) then - micro_xs(i_nuclide) % nu_fission = nu_total(nuc, E) * & - micro_xs(i_nuclide) % fission - end if + ! Determine inelastic scattering cross section + associate (rxn => nuc % reactions(nuc % urr_inelastic)) + if (i_energy >= rxn % threshold) then + inelastic = (ONE - f) * rxn % sigma(i_energy - rxn%threshold + 1) + & + f * rxn % sigma(i_energy - rxn%threshold + 2) + end if + end associate + end if + + ! Multiply by smooth cross-section if needed + if (urr % multiply_smooth) then + elastic = elastic * micro_xs(i_nuclide) % elastic + capture = capture * (micro_xs(i_nuclide) % absorption - & + micro_xs(i_nuclide) % fission) + fission = fission * micro_xs(i_nuclide) % fission + end if + + ! Check for negative values + if (elastic < ZERO) elastic = ZERO + if (fission < ZERO) fission = ZERO + if (capture < ZERO) capture = ZERO + + ! Set elastic, absorption, fission, and total cross sections. Note that the + ! total cross section is calculated as sum of partials rather than using the + ! table-provided value + micro_xs(i_nuclide) % elastic = elastic + micro_xs(i_nuclide) % absorption = capture + fission + micro_xs(i_nuclide) % fission = fission + micro_xs(i_nuclide) % total = elastic + inelastic + capture + fission + + ! Determine nu-fission cross section + if (nuc % fissionable) then + micro_xs(i_nuclide) % nu_fission = nu_total(nuc, E) * & + micro_xs(i_nuclide) % fission + end if + end associate end subroutine calculate_urr_xs diff --git a/src/energy_distribution.F90 b/src/energy_distribution.F90 index 8b2cc10c9..3d3524934 100644 --- a/src/energy_distribution.F90 +++ b/src/energy_distribution.F90 @@ -83,8 +83,8 @@ module energy_distribution integer :: n_region integer, allocatable :: breakpoints(:) integer, allocatable :: interpolation(:) - real(8), allocatable :: energy_in(:) - type(CTTable), allocatable :: energy_out(:) + real(8), allocatable :: energy(:) + type(CTTable), allocatable :: distribution(:) contains procedure :: sample => continuous_sample end type ContinuousTabular @@ -126,21 +126,6 @@ module energy_distribution procedure :: sample => watt_sample end type WattEnergy -!=============================================================================== -! NBODYPHASESPACE gives the energy distribution for particles emitted from -! neutron and charged-particle reactions. This corresponds to ACE law 66 and -! ENDF File 6, LAW=6. -!=============================================================================== - - type, extends(EnergyDistribution) :: NBodyPhaseSpace - integer :: n_bodies - real(8) :: mass_ratio - real(8) :: A - real(8) :: Q - contains - procedure :: sample => nbody_sample - end type NBodyPhaseSpace - contains function equiprobable_sample(this, E_in) result(E_out) @@ -202,6 +187,7 @@ contains end if end function equiprobable_sample + function level_inelastic_sample(this, E_in) result(E_out) class(LevelInelastic), intent(in) :: this real(8), intent(in) :: E_in @@ -210,6 +196,7 @@ contains E_out = this%mass_ratio*(E_in - this%threshold) end function level_inelastic_sample + function continuous_sample(this, E_in) result(E_out) class(ContinuousTabular), intent(in) :: this real(8), intent(in) :: E_in ! incoming energy @@ -238,17 +225,17 @@ contains ! Find energy bin and calculate interpolation factor -- if the energy is ! outside the range of the tabulated energies, choose the first or last bins - n_energy_in = size(this%energy_in) - if (E_in < this%energy_in(1)) then + n_energy_in = size(this%energy) + if (E_in < this%energy(1)) then i = 1 r = ZERO - elseif (E_in > this%energy_in(n_energy_in)) then + elseif (E_in > this%energy(n_energy_in)) then i = n_energy_in - 1 r = ONE else - i = binary_search(this%energy_in, n_energy_in, E_in) - r = (E_in - this%energy_in(i)) / & - (this%energy_in(i+1) - this%energy_in(i)) + i = binary_search(this%energy, n_energy_in, E_in) + r = (E_in - this%energy(i)) / & + (this%energy(i+1) - this%energy(i)) end if ! Sample between the ith and (i+1)th bin @@ -263,23 +250,23 @@ contains end if ! Interpolation for energy E1 and EK - n_energy_out = size(this%energy_out(i)%e_out) - E_i_1 = this%energy_out(i)%e_out(1) - E_i_K = this%energy_out(i)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i)%e_out) + E_i_1 = this%distribution(i)%e_out(1) + E_i_K = this%distribution(i)%e_out(n_energy_out) - n_energy_out = size(this%energy_out(i+1)%e_out) - E_i1_1 = this%energy_out(i+1)%e_out(1) - E_i1_K = this%energy_out(i+1)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i+1)%e_out) + E_i1_1 = this%distribution(i+1)%e_out(1) + E_i1_K = this%distribution(i+1)%e_out(n_energy_out) E_1 = E_i_1 + r*(E_i1_1 - E_i_1) E_K = E_i_K + r*(E_i1_K - E_i_K) ! Determine outgoing energy bin - n_energy_out = size(this%energy_out(l)%e_out) + n_energy_out = size(this%distribution(l)%e_out) r1 = prn() - c_k = this%energy_out(l)%c(1) + c_k = this%distribution(l)%c(1) do k = 1, n_energy_out - 1 - c_k1 = this%energy_out(l)%c(k+1) + c_k1 = this%distribution(l)%c(k+1) if (r1 < c_k1) exit c_k = c_k1 end do @@ -287,9 +274,9 @@ contains ! Check to make sure k is <= NP - 1 k = min(k, n_energy_out - 1) - E_l_k = this%energy_out(l)%e_out(k) - p_l_k = this%energy_out(l)%p(k) - if (this%energy_out(l)%interpolation == HISTOGRAM) then + E_l_k = this%distribution(l)%e_out(k) + p_l_k = this%distribution(l)%p(k) + if (this%distribution(l)%interpolation == HISTOGRAM) then ! Histogram interpolation if (p_l_k > ZERO) then E_out = E_l_k + (r1 - c_k)/p_l_k @@ -297,10 +284,10 @@ contains E_out = E_l_k end if - elseif (this%energy_out(l)%interpolation == LINEAR_LINEAR) then + elseif (this%distribution(l)%interpolation == LINEAR_LINEAR) then ! Linear-linear interpolation - E_l_k1 = this%energy_out(l)%e_out(k+1) - p_l_k1 = this%energy_out(l)%p(k+1) + E_l_k1 = this%distribution(l)%e_out(k+1) + p_l_k1 = this%distribution(l)%p(k+1) frac = (p_l_k1 - p_l_k)/(E_l_k1 - E_l_k) if (frac == ZERO) then @@ -321,6 +308,7 @@ contains end if end function continuous_sample + function maxwellenergy_sample(this, E_in) result(E_out) class(MaxwellEnergy), intent(in) :: this real(8), intent(in) :: E_in ! incoming energy @@ -351,7 +339,7 @@ contains ! Get temperature corresponding to incoming energy theta = interpolate_tab1(this%theta, E_in) - y = (E_in - this%U)/theta + y = (E_in - this%u)/theta v = 1 - exp(-y) ! Sample outgoing energy based on evaporation spectrum probability @@ -386,44 +374,4 @@ contains end do end function watt_sample - function nbody_sample(this, E_in) result(E_out) - class(NBodyPhaseSpace), intent(in) :: this - real(8), intent(in) :: E_in ! incoming energy - real(8) :: E_out ! sampled outgoing energy - - real(8) :: Ap ! total mass of particles in neutron masses - real(8) :: E_max ! maximum possible COM energy - real(8) :: x, y, v - real(8) :: r1, r2, r3, r4, r5, r6 - - ! Determine E_max parameter - Ap = this%mass_ratio - E_max = (Ap - ONE)/Ap * (this%A/(this%A + ONE)*E_in + this%Q) - - ! x is essentially a Maxwellian distribution - x = maxwell_spectrum(ONE) - - select case (this%n_bodies) - case (3) - y = maxwell_spectrum(ONE) - case (4) - r1 = prn() - r2 = prn() - r3 = prn() - y = -log(r1*r2*r3) - case (5) - r1 = prn() - r2 = prn() - r3 = prn() - r4 = prn() - r5 = prn() - r6 = prn() - y = -log(r1*r2*r3*r4) - log(r5) * cos(PI/TWO*r6)**2 - end select - - ! Now determine v and E_out - v = x/(x+y) - E_out = E_max * v - end function nbody_sample - end module energy_distribution diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index c6cf583f2..12b4a3076 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -2,13 +2,17 @@ module nuclide_header use, intrinsic :: ISO_FORTRAN_ENV - use ace_header use constants - use endf, only: reaction_name - use error, only: fatal_error + use dict_header, only: DictIntInt + use endf, only: reaction_name, is_fission, is_disappearance + use error, only: fatal_error, warning use list_header, only: ListInt use math, only: evaluate_legendre, find_angle + use product_header, only: AngleEnergyContainer + use reaction_header, only: Reaction + use stl_vector, only: VectorInt use string + use urr_header, only: UrrData use xml_interface implicit none @@ -684,16 +688,8 @@ module nuclide_header class(NuclideCE), intent(inout) :: this ! The Nuclide object to clear - integer :: i ! Loop counter - if (associated(this % urr_data)) deallocate(this % urr_data) - if (allocated(this % reactions)) then - do i = 1, size(this % reactions) - call this % reactions(i) % clear() - end do - end if - call this % reaction_index % clear() end subroutine nuclidece_clear @@ -711,7 +707,6 @@ module nuclide_header integer :: unit_ ! unit to write to integer :: size_xs ! memory used for cross-sections (bytes) integer :: size_urr ! memory used for probability tables (bytes) - type(UrrData), pointer :: urr ! set default unit for writing information if (present(unit)) then @@ -754,19 +749,20 @@ module nuclide_header ! Write information about URR probability tables size_urr = 0 if (this % urr_present) then - urr => this % urr_data - write(unit_,*) ' Unresolved resonance probability table:' - write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) - write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) - write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) - write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) - write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) - write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth - write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) - write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) + associate(urr => this % urr_data) + write(unit_,*) ' Unresolved resonance probability table:' + write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) + write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) + write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) + write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) + write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) + write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth + write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) + write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) - ! Calculate memory used by probability tables and add to total - size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 + ! Calculate memory used by probability tables and add to total + size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 + end associate end if ! Write memory used diff --git a/src/output.F90 b/src/output.F90 index 125fe010b..70d55b259 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -2,7 +2,6 @@ module output use, intrinsic :: ISO_FORTRAN_ENV - use ace_header, only: Reaction, UrrData use constants use endf, only: reaction_name use error, only: fatal_error, warning diff --git a/src/physics.F90 b/src/physics.F90 index 6fda4c393..3192db179 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -1,6 +1,5 @@ module physics - use ace_header, only: Reaction use constants use cross_section, only: elastic_xs_0K use endf, only: reaction_name @@ -17,6 +16,7 @@ module physics use particle_restart_write, only: write_particle_restart use physics_common use random_lcg, only: prn, advance_prn_seed, prn_set_stream + use reaction_header, only: Reaction use search, only: binary_search use secondary_uncorrelated, only: UncorrelatedAngleEnergy use string, only: to_str @@ -447,9 +447,9 @@ contains vel = sqrt(dot_product(v_n, v_n)) ! Sample scattering angle - select type (dist => rxn%secondary%distribution(1)%obj) + select type (dist => rxn % products(1) % distribution(1) % obj) type is (UncorrelatedAngleEnergy) - mu_cm = dist%angle%sample(E) + mu_cm = dist % angle % sample(E) end select ! Determine direction cosines in CM @@ -1276,7 +1276,7 @@ contains ! sample from prompt neutron energy distribution n_sample = 0 do - call rxn%secondary%sample(p%E, E_out, prob) + call rxn % products(1) % sample(p % E, E_out, prob) ! resample if energy is greater than maximum neutron energy if (E_out < energy_max_neutron) exit @@ -1316,7 +1316,7 @@ contains E_in = p % E ! sample outgoing energy and scattering cosine - call rxn%secondary%sample(E_in, E, mu) + call rxn % products(1) % sample(E_in, E, mu) ! if scattering system is in center-of-mass, transfer cosine of scattering ! angle and outgoing energy from CM to LAB @@ -1345,12 +1345,12 @@ contains p % coord(1) % uvw = rotate_angle(p % coord(1) % uvw, mu) ! change weight of particle based on yield - if (rxn % multiplicity_with_E) then - yield = interpolate_tab1(rxn % multiplicity_E, E_in) + if (rxn % products(1) % yield_with_E) then + yield = interpolate_tab1(rxn % products(1) % yield_E, E_in) p % wgt = yield * p % wgt else - do i = 1, rxn % multiplicity - 1 - call p % create_secondary(p % coord(1) % uvw, NEUTRON, run_CE=.True.) + do i = 1, rxn % products(1) % yield - 1 + call p % create_secondary(p % coord(1) % uvw, NEUTRON, run_CE=.true.) end do end if diff --git a/src/product_header.F90 b/src/product_header.F90 new file mode 100644 index 000000000..27fec37f7 --- /dev/null +++ b/src/product_header.F90 @@ -0,0 +1,61 @@ +module product_header + + use angleenergy_header, only: AngleEnergyContainer + use constants, only: ZERO + use endf_header, only: Tab1 + use interpolation, only: interpolate_tab1 + use random_lcg, only: prn + +!=============================================================================== +! REACTIONPRODUCT stores a data for a reaction product including its yield and +! angle-energy distributions, each of which has a given probability of occurring +! for a given incoming energy. In general, most products only have one +! angle-energy distribution, but for some cases (e.g., (n,2n) in certain +! nuclides) multiple distinct distributions exist. +!=============================================================================== + + type :: ReactionProduct + integer :: yield ! Number of secondary particles released + logical :: yield_with_E = .false. ! Flag to indicate E-dependent yield + type(Tab1), pointer :: yield_E => null() ! Energy-dependent neutron yield + type(Tab1), allocatable :: applicability(:) + type(AngleEnergyContainer), allocatable :: distribution(:) + contains + procedure :: sample => reactionproduct_sample + end type ReactionProduct + +contains + + subroutine reactionproduct_sample(this, E_in, E_out, mu) + class(ReactionProduct), intent(in) :: this + real(8), intent(in) :: E_in ! incoming energy + real(8), intent(out) :: E_out ! sampled outgoing energy + real(8), intent(out) :: mu ! sampled scattering cosine + + integer :: i ! loop counter + integer :: n ! number of angle-energy distributions + real(8) :: prob ! cumulative probability + real(8) :: c ! sampled cumulative probability + + n = size(this%applicability) + if (n > 1) then + prob = ZERO + c = prn() + do i = 1, n + ! Determine probability that i-th energy distribution is sampled + prob = prob + interpolate_tab1(this%applicability(i), E_in) + + ! If i-th distribution is sampled, sample energy from the distribution + if (c <= prob) then + call this%distribution(i)%obj%sample(E_in, E_out, mu) + exit + end if + end do + else + ! If only one distribution is present, go ahead and sample it + call this%distribution(1)%obj%sample(E_in, E_out, mu) + end if + + end subroutine reactionproduct_sample + +end module product_header diff --git a/src/reaction_header.F90 b/src/reaction_header.F90 new file mode 100644 index 000000000..160ad6323 --- /dev/null +++ b/src/reaction_header.F90 @@ -0,0 +1,21 @@ +module reaction_header + + use product_header, only: ReactionProduct + + implicit none + +!=============================================================================== +! REACTION contains the cross-section and secondary energy and angle +! distributions for a single reaction in a continuous-energy ACE-format table +!=============================================================================== + + type Reaction + integer :: MT ! ENDF MT value + real(8) :: Q_value ! Reaction Q value + integer :: threshold ! Energy grid index of threshold + logical :: scatter_in_cm ! scattering system in center-of-mass? + real(8), allocatable :: sigma(:) ! Cross section values + type(ReactionProduct), allocatable :: products(:) + end type Reaction + +end module reaction_header diff --git a/src/secondary_correlated.F90 b/src/secondary_correlated.F90 index c0289d55e..b556d02dc 100644 --- a/src/secondary_correlated.F90 +++ b/src/secondary_correlated.F90 @@ -1,8 +1,8 @@ module secondary_correlated + use angleenergy_header, only: AngleEnergy use constants, only: ZERO, ONE, TWO, HISTOGRAM, LINEAR_LINEAR use distribution_univariate, only: DistributionContainer - use secondary_header, only: AngleEnergy use random_lcg, only: prn use search, only: binary_search @@ -24,8 +24,8 @@ module secondary_correlated integer :: n_region ! number of interpolation regions integer, allocatable :: breakpoints(:) ! breakpoints of interpolation regions integer, allocatable :: interpolation(:) ! interpolation region codes - real(8), allocatable :: energy_in(:) ! incoming energies - type(AngleEnergyTable), allocatable :: table(:) ! outgoing E/mu distributions + real(8), allocatable :: energy(:) ! incoming energies + type(AngleEnergyTable), allocatable :: distribution(:) ! outgoing E/mu distributions contains procedure :: sample => correlated_sample end type CorrelatedAngleEnergy @@ -61,17 +61,17 @@ contains ! find energy bin and calculate interpolation factor -- if the energy is ! outside the range of the tabulated energies, choose the first or last bins - n_energy_in = size(this%energy_in) - if (E_in < this%energy_in(1)) then + n_energy_in = size(this%energy) + if (E_in < this%energy(1)) then i = 1 r = ZERO - elseif (E_in > this%energy_in(n_energy_in)) then + elseif (E_in > this%energy(n_energy_in)) then i = n_energy_in - 1 r = ONE else - i = binary_search(this%energy_in, n_energy_in, E_in) - r = (E_in - this%energy_in(i)) / & - (this%energy_in(i+1) - this%energy_in(i)) + i = binary_search(this%energy, n_energy_in, E_in) + r = (E_in - this%energy(i)) / & + (this%energy(i+1) - this%energy(i)) end if ! Sample between the ith and (i+1)th bin @@ -82,23 +82,23 @@ contains end if ! interpolation for energy E1 and EK - n_energy_out = size(this%table(i)%e_out) - E_i_1 = this%table(i)%e_out(1) - E_i_K = this%table(i)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i)%e_out) + E_i_1 = this%distribution(i)%e_out(1) + E_i_K = this%distribution(i)%e_out(n_energy_out) - n_energy_out = size(this%table(i+1)%e_out) - E_i1_1 = this%table(i+1)%e_out(1) - E_i1_K = this%table(i+1)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i+1)%e_out) + E_i1_1 = this%distribution(i+1)%e_out(1) + E_i1_K = this%distribution(i+1)%e_out(n_energy_out) E_1 = E_i_1 + r*(E_i1_1 - E_i_1) E_K = E_i_K + r*(E_i1_K - E_i_K) ! determine outgoing energy bin - n_energy_out = size(this%table(l)%e_out) + n_energy_out = size(this%distribution(l)%e_out) r1 = prn() - c_k = this%table(l)%c(1) + c_k = this%distribution(l)%c(1) do k = 1, n_energy_out - 1 - c_k1 = this%table(l)%c(k+1) + c_k1 = this%distribution(l)%c(k+1) if (r1 < c_k1) exit c_k = c_k1 end do @@ -106,9 +106,9 @@ contains ! check to make sure k is <= NP - 1 k = min(k, n_energy_out - 1) - E_l_k = this%table(l)%e_out(k) - p_l_k = this%table(l)%p(k) - if (this%table(l)%interpolation == HISTOGRAM) then + E_l_k = this%distribution(l)%e_out(k) + p_l_k = this%distribution(l)%p(k) + if (this%distribution(l)%interpolation == HISTOGRAM) then ! Histogram interpolation if (p_l_k > ZERO) then E_out = E_l_k + (r1 - c_k)/p_l_k @@ -116,10 +116,10 @@ contains E_out = E_l_k end if - elseif (this%table(l)%interpolation == LINEAR_LINEAR) then + elseif (this%distribution(l)%interpolation == LINEAR_LINEAR) then ! Linear-linear interpolation - E_l_k1 = this%table(l)%e_out(k+1) - p_l_k1 = this%table(l)%p(k+1) + E_l_k1 = this%distribution(l)%e_out(k+1) + p_l_k1 = this%distribution(l)%p(k+1) frac = (p_l_k1 - p_l_k)/(E_l_k1 - E_l_k) if (frac == ZERO) then @@ -139,9 +139,9 @@ contains ! Find correlated angular distribution for closest outgoing energy bin if (r1 - c_k < c_k1 - r1) then - mu = this%table(l)%angle(k)%obj%sample() + mu = this%distribution(l)%angle(k)%obj%sample() else - mu = this%table(l)%angle(k + 1)%obj%sample() + mu = this%distribution(l)%angle(k + 1)%obj%sample() end if end subroutine correlated_sample diff --git a/src/secondary_header.F90 b/src/secondary_header.F90 deleted file mode 100644 index d9a18b6b1..000000000 --- a/src/secondary_header.F90 +++ /dev/null @@ -1,83 +0,0 @@ -module secondary_header - - use constants, only: ZERO - use endf_header, only: Tab1 - use interpolation, only: interpolate_tab1 - use random_lcg, only: prn - -!=============================================================================== -! ANGLEENERGY (abstract) defines a correlated or uncorrelated angle-energy -! distribution that is a function of incoming energy. Each derived type must -! implement a sample() subroutine that returns an outgoing energy and scattering -! cosine given an incoming energy. -!=============================================================================== - - type, abstract :: AngleEnergy - contains - procedure(angleenergy_sample_), deferred :: sample - end type AngleEnergy - - abstract interface - subroutine angleenergy_sample_(this, E_in, E_out, mu) - import AngleEnergy - class(AngleEnergy), intent(in) :: this - real(8), intent(in) :: E_in - real(8), intent(out) :: E_out - real(8), intent(out) :: mu - end subroutine angleenergy_sample_ - end interface - - type :: AngleEnergyContainer - class(AngleEnergy), allocatable :: obj - end type AngleEnergyContainer - -!=============================================================================== -! SECONDARYDISTRIBUTION stores multiple angle-energy distributions, each of -! which has a given probability of occurring for a given incoming energy. In -! general, most secondary distributions only have one angle-energy distribution, -! but for some cases (e.g., (n,2n) in certain nuclides) multiple distinct -! distributions exist. -!=============================================================================== - - type :: SecondaryDistribution - type(Tab1), allocatable :: applicability(:) - type(AngleEnergyContainer), allocatable :: distribution(:) - contains - procedure :: sample => secondary_sample - end type SecondaryDistribution - -contains - - subroutine secondary_sample(this, E_in, E_out, mu) - class(SecondaryDistribution), intent(in) :: this - real(8), intent(in) :: E_in ! incoming energy - real(8), intent(out) :: E_out ! sampled outgoing energy - real(8), intent(out) :: mu ! sampled scattering cosine - - integer :: i ! loop counter - integer :: n ! number of angle-energy distributions - real(8) :: prob ! cumulative probability - real(8) :: c ! sampled cumulative probability - - n = size(this%applicability) - if (n > 1) then - prob = ZERO - c = prn() - do i = 1, n - ! Determine probability that i-th energy distribution is sampled - prob = prob + interpolate_tab1(this%applicability(i), E_in) - - ! If i-th distribution is sampled, sample energy from the distribution - if (c <= prob) then - call this%distribution(i)%obj%sample(E_in, E_out, mu) - exit - end if - end do - else - ! If only one distribution is present, go ahead and sample it - call this%distribution(1)%obj%sample(E_in, E_out, mu) - end if - - end subroutine secondary_sample - -end module secondary_header diff --git a/src/secondary_kalbach.F90 b/src/secondary_kalbach.F90 index 5e6949206..668917d62 100644 --- a/src/secondary_kalbach.F90 +++ b/src/secondary_kalbach.F90 @@ -1,7 +1,7 @@ module secondary_kalbach + use angleenergy_header, only: AngleEnergy use constants, only: ZERO, ONE, TWO, HISTOGRAM, LINEAR_LINEAR - use secondary_header, only: AngleEnergy use random_lcg, only: prn use search, only: binary_search @@ -25,8 +25,8 @@ module secondary_kalbach integer :: n_region ! number of interpolation regions integer, allocatable :: breakpoints(:) ! breakpoints of interpolation regions integer, allocatable :: interpolation(:) ! interpolation region codes - real(8), allocatable :: energy_in(:) ! incoming energies - type(KalbachMannTable), allocatable :: table(:) ! outgoing E/mu parameters + real(8), allocatable :: energy(:) ! incoming energies + type(KalbachMannTable), allocatable :: distribution(:) ! outgoing E/mu parameters contains procedure :: sample => kalbachmann_sample end type KalbachMann @@ -64,17 +64,17 @@ contains ! find energy bin and calculate interpolation factor -- if the energy is ! outside the range of the tabulated energies, choose the first or last bins - n_energy_in = size(this%energy_in) - if (E_in < this%energy_in(1)) then + n_energy_in = size(this%energy) + if (E_in < this%energy(1)) then i = 1 r = ZERO - elseif (E_in > this%energy_in(n_energy_in)) then + elseif (E_in > this%energy(n_energy_in)) then i = n_energy_in - 1 r = ONE else - i = binary_search(this%energy_in, n_energy_in, E_in) - r = (E_in - this%energy_in(i)) / & - (this%energy_in(i+1) - this%energy_in(i)) + i = binary_search(this%energy, n_energy_in, E_in) + r = (E_in - this%energy(i)) / & + (this%energy(i+1) - this%energy(i)) end if ! Sample between the ith and (i+1)th bin @@ -85,23 +85,23 @@ contains end if ! interpolation for energy E1 and EK - n_energy_out = size(this%table(i)%e_out) - E_i_1 = this%table(i)%e_out(1) - E_i_K = this%table(i)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i)%e_out) + E_i_1 = this%distribution(i)%e_out(1) + E_i_K = this%distribution(i)%e_out(n_energy_out) - n_energy_out = size(this%table(i+1)%e_out) - E_i1_1 = this%table(i+1)%e_out(1) - E_i1_K = this%table(i+1)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i+1)%e_out) + E_i1_1 = this%distribution(i+1)%e_out(1) + E_i1_K = this%distribution(i+1)%e_out(n_energy_out) E_1 = E_i_1 + r*(E_i1_1 - E_i_1) E_K = E_i_K + r*(E_i1_K - E_i_K) ! determine outgoing energy bin - n_energy_out = size(this%table(l)%e_out) + n_energy_out = size(this%distribution(l)%e_out) r1 = prn() - c_k = this%table(l)%c(1) + c_k = this%distribution(l)%c(1) do k = 1, n_energy_out - 1 - c_k1 = this%table(l)%c(k+1) + c_k1 = this%distribution(l)%c(k+1) if (r1 < c_k1) exit c_k = c_k1 end do @@ -109,9 +109,9 @@ contains ! check to make sure k is <= NP - 1 k = min(k, n_energy_out - 1) - E_l_k = this%table(l)%e_out(k) - p_l_k = this%table(l)%p(k) - if (this%table(l)%interpolation == HISTOGRAM) then + E_l_k = this%distribution(l)%e_out(k) + p_l_k = this%distribution(l)%p(k) + if (this%distribution(l)%interpolation == HISTOGRAM) then ! Histogram interpolation if (p_l_k > ZERO) then E_out = E_l_k + (r1 - c_k)/p_l_k @@ -120,13 +120,13 @@ contains end if ! Determine Kalbach-Mann parameters - km_r = this%table(l)%r(k) - km_a = this%table(l)%a(k) + km_r = this%distribution(l)%r(k) + km_a = this%distribution(l)%a(k) - elseif (this%table(l)%interpolation == LINEAR_LINEAR) then + elseif (this%distribution(l)%interpolation == LINEAR_LINEAR) then ! Linear-linear interpolation - E_l_k1 = this%table(l)%e_out(k+1) - p_l_k1 = this%table(l)%p(k+1) + E_l_k1 = this%distribution(l)%e_out(k+1) + p_l_k1 = this%distribution(l)%p(k+1) frac = (p_l_k1 - p_l_k)/(E_l_k1 - E_l_k) if (frac == ZERO) then @@ -137,10 +137,10 @@ contains end if ! Determine Kalbach-Mann parameters - km_r = this%table(l)%r(k) + (E_out - E_l_k)/(E_l_k1 - E_l_k) * & - (this%table(l)%r(k+1) - this%table(l)%r(k)) - km_a = this%table(l)%a(k) + (E_out - E_l_k)/(E_l_k1 - E_l_k) * & - (this%table(l)%a(k+1) - this%table(l)%a(k)) + km_r = this%distribution(l)%r(k) + (E_out - E_l_k)/(E_l_k1 - E_l_k) * & + (this%distribution(l)%r(k+1) - this%distribution(l)%r(k)) + km_a = this%distribution(l)%a(k) + (E_out - E_l_k)/(E_l_k1 - E_l_k) * & + (this%distribution(l)%a(k+1) - this%distribution(l)%a(k)) end if ! Now interpolate between incident energy bins i and i + 1 diff --git a/src/secondary_nbody.F90 b/src/secondary_nbody.F90 new file mode 100644 index 000000000..71cae6fa2 --- /dev/null +++ b/src/secondary_nbody.F90 @@ -0,0 +1,70 @@ +module secondary_nbody + + use angleenergy_header, only: AngleEnergy + use constants, only: ONE, TWO, PI + use math, only: maxwell_spectrum + use random_lcg, only: prn + +!=============================================================================== +! NBODYPHASESPACE gives the energy distribution for particles emitted from +! neutron and charged-particle reactions. This corresponds to ACE law 66 and +! ENDF File 6, LAW=6. +!=============================================================================== + + type, extends(AngleEnergy) :: NBodyPhaseSpace + integer :: n_bodies + real(8) :: mass_ratio + real(8) :: A + real(8) :: Q + contains + procedure :: sample => nbody_sample + end type NBodyPhaseSpace + +contains + + subroutine nbody_sample(this, E_in, E_out, mu) + class(NBodyPhaseSpace), intent(in) :: this + real(8), intent(in) :: E_in ! incoming energy + real(8), intent(out) :: E_out ! sampled outgoing energy + real(8), intent(out) :: mu ! sampled outgoing energy + + real(8) :: Ap ! total mass of particles in neutron masses + real(8) :: E_max ! maximum possible COM energy + real(8) :: x, y, v + real(8) :: r1, r2, r3, r4, r5, r6 + + ! By definition, the distribution of the angle is isotropic for an N-body + ! phase space distribution + mu = TWO*prn() - ONE + + ! Determine E_max parameter + Ap = this%mass_ratio + E_max = (Ap - ONE)/Ap * (this%A/(this%A + ONE)*E_in + this%Q) + + ! x is essentially a Maxwellian distribution + x = maxwell_spectrum(ONE) + + select case (this%n_bodies) + case (3) + y = maxwell_spectrum(ONE) + case (4) + r1 = prn() + r2 = prn() + r3 = prn() + y = -log(r1*r2*r3) + case (5) + r1 = prn() + r2 = prn() + r3 = prn() + r4 = prn() + r5 = prn() + r6 = prn() + y = -log(r1*r2*r3*r4) - log(r5) * cos(PI/TWO*r6)**2 + end select + + ! Now determine v and E_out + v = x/(x+y) + E_out = E_max * v + end subroutine nbody_sample + +end module secondary_nbody diff --git a/src/secondary_uncorrelated.F90 b/src/secondary_uncorrelated.F90 index 22a56aa12..7bc8fa13d 100644 --- a/src/secondary_uncorrelated.F90 +++ b/src/secondary_uncorrelated.F90 @@ -1,9 +1,9 @@ module secondary_uncorrelated use angle_distribution, only: AngleDistribution + use angleenergy_header, only: AngleEnergy use constants, only: ONE, TWO use energy_distribution, only: EnergyDistribution - use secondary_header, only: AngleEnergy use random_lcg, only: prn !=============================================================================== diff --git a/src/summary.F90 b/src/summary.F90 index e662aa473..047eec2a7 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -1,6 +1,5 @@ module summary - use ace_header, only: Reaction, UrrData use constants use endf, only: reaction_name use geometry_header, only: Cell, Universe, Lattice, RectLattice, & diff --git a/src/tally.F90 b/src/tally.F90 index 5a54d9846..71444107f 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1,6 +1,5 @@ module tally - use ace_header, only: Reaction use constants use error, only: fatal_error use geometry_header @@ -245,9 +244,9 @@ contains ! Only analog estimators are available. ! Skip any event where the particle didn't scatter if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP - ! For scattering production, we need to use the pre-collision - ! weight times the multiplicity as the estimate for the number of - ! neutrons exiting a reaction with neutrons in the exit channel + ! For scattering production, we need to use the pre-collision weight + ! times the yield as the estimate for the number of neutrons exiting a + ! reaction with neutrons in the exit channel if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then ! Don't waste time on very common reactions we know have multiplicities @@ -257,15 +256,15 @@ contains m = nuclides(p%event_nuclide)%reaction_index% & get_key(p % event_MT) - ! Get multiplicity and apply to score + ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt + if (rxn % products(1) % yield_with_E) then + ! Then the yield was already incorporated in to p % wgt ! per the scattering routine, score = p % wgt else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity + ! Grab the yield from the rxn + score = p % last_wgt * rxn % products(1) % yield end if end associate end if @@ -279,7 +278,7 @@ contains cycle SCORE_LOOP end if ! For scattering production, we need to use the pre-collision - ! weight times the multiplicity as the estimate for the number of + ! weight times the yield as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then @@ -290,15 +289,15 @@ contains m = nuclides(p%event_nuclide)%reaction_index% & get_key(p % event_MT) - ! Get multiplicity and apply to score + ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt + if (rxn % products(1) % yield_with_E) then + ! Then the yield was already incorporated in to p % wgt ! per the scattering routine, score = p % wgt else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity + ! Grab the yield from the rxn + score = p % last_wgt * rxn % products(1) % yield end if end associate end if @@ -312,7 +311,7 @@ contains cycle SCORE_LOOP end if ! For scattering production, we need to use the pre-collision - ! weight times the multiplicity as the estimate for the number of + ! weight times the yield as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then @@ -323,15 +322,15 @@ contains m = nuclides(p%event_nuclide)%reaction_index% & get_key(p % event_MT) - ! Get multiplicity and apply to score + ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt + if (rxn % products(1) % yield_with_E) then + ! Then the yield was already incorporated in to p % wgt ! per the scattering routine, score = p % wgt else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity + ! Grab the yield from the rxn + score = p % last_wgt * rxn % products(1) % yield end if end associate end if diff --git a/src/urr_header.F90 b/src/urr_header.F90 new file mode 100644 index 000000000..96e182d2e --- /dev/null +++ b/src/urr_header.F90 @@ -0,0 +1,20 @@ +module urr_header + + implicit none + +!=============================================================================== +! URRDATA contains probability tables for the unresolved resonance range. +!=============================================================================== + + type UrrData + integer :: n_energy ! # of incident neutron energies + integer :: n_prob ! # of probabilities + integer :: interp ! inteprolation (2=lin-lin, 5=log-log) + integer :: inelastic_flag ! inelastic competition flag + integer :: absorption_flag ! other absorption flag + logical :: multiply_smooth ! multiply by smooth cross section? + real(8), allocatable :: energy(:) ! incident energies + real(8), allocatable :: prob(:,:,:) ! actual probabibility tables + end type UrrData + +end module urr_header From 3dc19e5070d1f413132313a7d884ec2c7724ec2f Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 17 Mar 2016 13:38:27 -0500 Subject: [PATCH 050/259] Refactor prompt/delayed fission neutron yield/distribution data --- src/ace.F90 | 440 ++++++++++++++-------------- src/constants.F90 | 6 + src/cross_section.F90 | 3 +- src/endf_header.F90 | 190 +++++++++++- src/energy_distribution.F90 | 19 +- src/fission.F90 | 161 ---------- src/interpolation.F90 | 205 ------------- src/nuclide_header.F90 | 222 ++++++++------ src/physics.F90 | 122 ++++---- src/product_header.F90 | 17 +- src/tally.F90 | 78 ++--- tests/test_tallies/results_true.dat | 2 +- 12 files changed, 652 insertions(+), 813 deletions(-) delete mode 100644 src/fission.F90 delete mode 100644 src/interpolation.F90 diff --git a/src/ace.F90 b/src/ace.F90 index 431a9d423..e354f5866 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -4,15 +4,16 @@ module ace use constants use distribution_univariate, only: Uniform, Equiprobable, Tabular use endf, only: is_fission, is_disappearance + use endf_header, only: Constant1D, Tabulated1D, Polynomial use energy_distribution, only: TabularEquiprobable, LevelInelastic, & ContinuousTabular, MaxwellEnergy, Evaporation, WattEnergy use error, only: fatal_error, warning - use fission, only: nu_total use global use list_header, only: ListInt use material_header, only: Material use nuclide_header use output, only: write_message + use product_header, only: ReactionProduct use sab_header use set_header, only: SetChar use secondary_correlated, only: CorrelatedAngleEnergy @@ -378,8 +379,8 @@ contains if (data_0K) then continue else - call read_nu_data(nuc) call read_reactions(nuc) + call read_nu_data(nuc) call read_energy_dist(nuc) call read_angular_dist(nuc) call read_unr_res(nuc) @@ -512,198 +513,209 @@ contains subroutine read_nu_data(nuc) type(NuclideCE), intent(inout) :: nuc - integer :: i ! loop index - integer :: JXS2 ! location for fission nu data - integer :: JXS24 ! location for delayed neutron data + integer :: i, j ! loop index + integer :: idx ! index in XSS integer :: KNU ! location for nu data integer :: LNU ! type of nu data (polynomial or tabular) - integer :: NC ! number of polynomial coefficients integer :: NR ! number of interpolation regions integer :: NE ! number of energies integer :: NPCR ! number of delayed neutron precursor groups - integer :: LED ! location of energy distribution locators - integer :: LDIS ! location of all energy distributions integer :: LOCC ! location of energy distributions for given MT integer :: LAW integer :: IDAT - integer :: lc ! locator - integer :: length ! length of data to allocate + real(8) :: total_group_probability + type(Tabulated1D) :: yield_delayed + type(Tabulated1D) :: group_probability - JXS2 = JXS(2) - JXS24 = JXS(24) - - if (JXS2 == 0) then - ! ======================================================================= - ! NO PROMPT/TOTAL NU DATA - nuc % nu_t_type = NU_NONE - nuc % nu_p_type = NU_NONE - - elseif (XSS(JXS2) > 0) then - ! ======================================================================= - ! PROMPT OR TOTAL NU DATA - KNU = JXS2 - LNU = int(XSS(KNU)) - if (LNU == 1) then - ! Polynomial data - nuc % nu_t_type = NU_POLYNOMIAL - nuc % nu_p_type = NU_NONE - - ! allocate determine how many coefficients for polynomial - NC = int(XSS(KNU+1)) - length = NC + 1 - elseif (LNU == 2) then - ! Tabular data - nuc % nu_t_type = NU_TABULAR - nuc % nu_p_type = NU_NONE - - ! determine number of interpolation regions and number of energies - NR = int(XSS(KNU+1)) - NE = int(XSS(KNU+2+2*NR)) - length = 2 + 2*NR + 2*NE - end if - - ! allocate space for nu data storage - allocate(nuc % nu_t_data(length)) - - ! read data -- for polynomial, this is the number of coefficients and the - ! coefficients themselves, and for tabular, this is interpolation data - ! and tabular E/nu - XSS_index = KNU + 1 - nuc % nu_t_data = get_real(length) - - elseif (XSS(JXS2) < 0) then - ! ======================================================================= - ! PROMPT AND TOTAL NU DATA -- read prompt data first - KNU = JXS2 + 1 - LNU = int(XSS(KNU)) - if (LNU == 1) then - ! Polynomial data - nuc % nu_p_type = NU_POLYNOMIAL - - ! allocate determine how many coefficients for polynomial - NC = int(XSS(KNU+1)) - length = NC + 1 - elseif (LNU == 2) then - ! Tabular data - nuc % nu_p_type = NU_TABULAR - - ! determine number of interpolation regions and number of energies - NR = int(XSS(KNU+1)) - NE = int(XSS(KNU+2+2*NR)) - length = 2 + 2*NR + 2*NE - end if - - ! allocate space for nu data storage - allocate(nuc % nu_p_data(length)) - - ! read data - XSS_index = KNU + 1 - nuc % nu_p_data = get_real(length) - - ! Now read total nu data - KNU = JXS2 + int(abs(XSS(JXS2))) + 1 - LNU = int(XSS(KNU)) - if (LNU == 1) then - ! Polynomial data - nuc % nu_t_type = NU_POLYNOMIAL - - ! allocate determine how many coefficients for polynomial - NC = int(XSS(KNU+1)) - length = NC + 1 - elseif (LNU == 2) then - ! Tabular data - nuc % nu_t_type = NU_TABULAR - - ! determine number of interpolation regions and number of energies - NR = int(XSS(KNU+1)) - NE = int(XSS(KNU+2+2*NR)) - length = 2 + 2*NR + 2*NE - end if - - ! allocate space for nu data storage - allocate(nuc % nu_t_data(length)) - - ! read data - XSS_index = KNU + 1 - nuc % nu_t_data = get_real(length) + if (JXS(2) == 0) then + ! Nuclide is not fissionable + return end if - if (JXS24 > 0) then - ! ======================================================================= - ! DELAYED NU DATA - - nuc % nu_d_type = NU_TABULAR - KNU = JXS24 - - ! determine size of tabular delayed nu data - NR = int(XSS(KNU+1)) - NE = int(XSS(KNU+2+2*NR)) - length = 2 + 2*NR + 2*NE - - ! allocate space for delayed nu data - allocate(nuc % nu_d_data(length)) - - ! read delayed nu data - XSS_index = KNU + 1 - nuc % nu_d_data = get_real(length) - - ! ======================================================================= - ! DELAYED NEUTRON ENERGY DISTRIBUTION - - ! Allocate space for secondary energy distribution + ! Determine number of delayed neutron precursors + if (JXS(24) > 0) then NPCR = NXS(8) + else + NPCR = 0 + end if + nuc % n_precursor = NPCR - ! Check to make sure nuclide does not have more than the maximum number - ! of delayed groups - if (NPCR > MAX_DELAYED_GROUPS) then - call fatal_error("Encountered nuclide with " // trim(to_str(NPCR)) & - // " delayed groups while the maximum number of delayed groups & - &set in constants.F90 is " // trim(to_str(MAX_DELAYED_GROUPS))) + ! Check to make sure nuclide does not have more than the maximum number + ! of delayed groups + if (NPCR > MAX_DELAYED_GROUPS) then + call fatal_error("Encountered nuclide with " // trim(to_str(NPCR)) & + // " delayed groups while the maximum number of delayed groups is " & + // trim(to_str(MAX_DELAYED_GROUPS))) + end if + + associate (rx => nuc % reactions(nuc % index_fission(1))) + ! Allocate space for prompt/delayed neutron products + allocate(rx % products(1 + NPCR)) + rx % products(:) % particle = NEUTRON + + if (XSS(JXS(2)) > 0) then + ! ======================================================================= + ! PROMPT OR TOTAL NU DATA + + ! If delayed data is present, then prompt data must be present. Otherwise + ! the product represents 'total' neutron emission + if (JXS(24) > 0) then + rx % products(1) % emission_mode = EMISSION_PROMPT + else + rx % products(1) % emission_mode = EMISSION_TOTAL + end if + + KNU = JXS(2) + LNU = nint(XSS(KNU)) + if (LNU == 1) then + ! Polynomial data + allocate(Polynomial :: rx % products(1) % yield) + + ! determine order of polynomial and read coefficients + select type (yield => rx % products(1) % yield) + type is (Polynomial) + call yield % from_ace(XSS, KNU + 1) + end select + + elseif (LNU == 2) then + ! Tabulated data + allocate(Tabulated1D :: rx % products(1) % yield) + + select type(yield => rx % products(1) % yield) + type is (Tabulated1D) + call yield % from_ace(XSS, KNU + 1) + end select + + end if + + elseif (XSS(JXS(2)) < 0) then + ! ======================================================================= + ! PROMPT AND TOTAL NU DATA + + rx % products(1) % emission_mode = EMISSION_PROMPT + + KNU = JXS(2) + 1 + LNU = nint(XSS(KNU)) + if (LNU == 1) then + ! Polynomial data + allocate(Polynomial :: rx % products(1) % yield) + + ! determine order of polynomial and read coefficients + select type (yield => rx % products(1) % yield) + type is (Polynomial) + call yield % from_ace(XSS, KNU + 1) + end select + + elseif (LNU == 2) then + ! Tabulated data + allocate(Tabulated1D :: rx % products(1) % yield) + + select type(yield => rx % products(1) % yield) + type is (Tabulated1D) + call yield % from_ace(XSS, KNU + 1) + end select + end if + + KNU = JXS(2) + nint(abs(XSS(JXS(2)))) + 1 + LNU = nint(XSS(KNU)) + if (LNU == 1) then + ! Polynomial data + allocate(Polynomial :: nuc % total_nu) + + ! determine order of polynomial and read coefficients + select type (yield => nuc % total_nu) + type is (Polynomial) + call yield % from_ace(XSS, KNU + 1) + end select + + elseif (LNU == 2) then + ! Tabulated data + allocate(Tabulated1D :: nuc % total_nu) + + select type(yield => nuc % total_nu) + type is (Tabulated1D) + call yield % from_ace(XSS, KNU + 1) + end select + end if end if - nuc % n_precursor = NPCR - allocate(nuc % nu_d_edist(NPCR)) + if (JXS(24) > 0) then + ! ======================================================================= + ! DELAYED NU DATA - LED = JXS(26) - LDIS = JXS(27) + ! Read total yield of delayed neutrons + call yield_delayed % from_ace(XSS, JXS(24) + 1) - ! Loop over all delayed neutron precursor groups - do i = 1, NPCR - ! find location of energy distribution data - LOCC = nint(XSS(LED + i - 1)) + idx = JXS(25) + total_group_probability = ZERO + do i = 1, NPCR + ! Set emission mode and decay rate + rx % products(1 + i) % emission_mode = EMISSION_DELAYED + rx % products(1 + i) % decay_rate = XSS(idx) - ! Determine law and location of data - LAW = nint(XSS(LDIS + LOCC)) - IDAT = nint(XSS(LDIS + LOCC + 1)) + ! Read probability for this precursor group + call group_probability % from_ace(XSS, idx + 1) - ! read energy distribution data - call get_energy_dist(nuc%nu_d_edist(i)%obj, LAW, LDIS, IDAT, & - ZERO, ZERO) + ! Set yield based on product of group probability and delayed yield + if (all(group_probability % y == group_probability % y(1))) then + allocate(Tabulated1D :: rx % products(1 + i) % yield) + select type (yield => rx % products(1 + i) % yield) + type is (Tabulated1D) + yield = yield_delayed + yield % y(:) = yield % y(:) * group_probability % y(1) + total_group_probability = total_group_probability + group_probability % y(1) + end select + else + call fatal_error("Delayed neutron with energy-dependent group & + &probability not implemented") + end if + + ! Advance position + NR = nint(XSS(idx + 1)) + NE = nint(XSS(idx + 2 + 2*NR)) + idx = idx + 3 + 2*(NR + NE) + + ! ======================================================================= + ! DELAYED NEUTRON ENERGY DISTRIBUTION + + ! Read energy distribution + LOCC = nint(XSS(JXS(26) + i - 1)) + + ! Determine law and location of data + LAW = nint(XSS(JXS(27) + LOCC)) + IDAT = nint(XSS(JXS(27) + LOCC + 1)) + + ! read energy distribution data + associate(p => rx % products(1 + i)) + allocate(p % applicability(1)) + allocate(p % distribution(1)) + call get_energy_dist(p % distribution(1) % obj, LAW, JXS(27), IDAT, & + ZERO, ZERO) + + select type (aedist => p % distribution(1) % obj) + type is (UncorrelatedAngleEnergy) + aedist % fission = .true. + end select + end associate + end do + + ! Renormalize delayed neutron yields to reflect fact that in ACE file, the + ! sum of the group probabilities is not exactly one + do i = 1, NPCR + select type (yield => rx % products(1 + i) % yield) + type is (Tabulated1D) + yield % y(:) = yield % y(:) / total_group_probability + end select + end do + end if + + ! Assign products to other fission reactions + do i = 2, nuc % n_fission + j = nuc % index_fission(i) + allocate(nuc % reactions(j) % products(1 + NPCR)) + nuc % reactions(j) % products(:) = rx % products(:) end do - - ! ======================================================================= - ! DELAYED NEUTRON PRECUSOR YIELDS AND CONSTANTS - - ! determine length of all precursor constants/yields/interp data - length = 0 - lc = JXS(25) - do i = 1, NPCR - NR = int(XSS(lc + length + 1)) - NE = int(XSS(lc + length + 2 + 2*NR)) - length = length + 3 + 2*NR + 2*NE - end do - - ! allocate space for precusor data - allocate(nuc % nu_d_precursor_data(length)) - - ! read delayed neutron precursor data - XSS_index = lc - nuc % nu_d_precursor_data = get_real(length) - - else - nuc % nu_d_type = NU_NONE - nuc % n_precursor = 0 - end if + end associate end subroutine read_nu_data @@ -727,7 +739,7 @@ contains integer :: LOCA ! location of cross-section for given MT integer :: IE ! reaction's starting index on energy grid integer :: NE ! number of energies - integer :: NR ! number of interpolation regions + real(8) :: y type(ListInt) :: MTs LMT = JXS(3) @@ -749,7 +761,12 @@ contains rxn % MT = 2 rxn % Q_value = ZERO allocate(rxn % products(1)) - rxn % products(1) % yield = 1 + rxn % products(1) % particle = NEUTRON + allocate(Constant1D :: rxn % products(1) % yield) + select type(yield => rxn % products(1) % yield) + type is (Constant1D) + yield % y = 1 + end select rxn % threshold = 1 rxn % scatter_in_cm = .true. allocate(rxn % products(1) % distribution(1)) @@ -771,44 +788,33 @@ contains ! read MT number, Q-value, and neutrons produced rxn % MT = int(XSS(LMT + i - 1)) rxn % Q_value = XSS(JXS4 + i - 1) - allocate(rxn % products(1)) - rxn % products(1) % yield = abs(nint(XSS(JXS5 + i - 1))) rxn % scatter_in_cm = (nint(XSS(JXS5 + i - 1)) < 0) - ! Read energy-dependent multiplicities - if (rxn % products(1) % yield > 100) then - ! Set flag and allocate space for Tab1 to store yield - rxn % products(1) % yield_with_E = .true. - allocate(rxn % products(1) % yield_E) + if (.not. is_fission(rxn % MT)) then + allocate(rxn % products(1)) + rxn % products(1) % particle = NEUTRON - XSS_index = JXS(11) + rxn % products(1) % yield - 101 - NR = nint(XSS(XSS_index)) - rxn % products(1) % yield_E % n_regions = NR + y = abs(nint(XSS(JXS5 + i - 1))) + if (y > 100) then + ! Read energy-dependent multiplicities - ! allocate space for ENDF interpolation parameters - if (NR > 0) then - allocate(rxn % products(1) % yield_E % nbt(NR)) - allocate(rxn % products(1) % yield_E % int(NR)) + ! Set flag and allocate space for Tabulated1D to store yield + allocate(Tabulated1D :: rxn % products(1) % yield) + + ! Read yield function + select type (yield => rxn % products(1) % yield) + type is (Tabulated1D) + XSS_index = JXS(11) + int(y) - 101 + call yield % from_ace(XSS, XSS_index) + end select + else + ! Integral yield + allocate(Constant1D :: rxn % products(1) % yield) + select type (yield => rxn % products(1) % yield) + type is (Constant1D) + yield % y = y + end select end if - - ! read ENDF interpolation parameters - XSS_index = XSS_index + 1 - if (NR > 0) then - rxn % products(1) % yield_E % nbt = get_int(NR) - rxn % products(1) % yield_E % int = get_int(NR) - end if - - ! allocate space for yield data - XSS_index = XSS_index + 2*NR - NE = nint(XSS(XSS_index)) - rxn % products(1) % yield_E % n_pairs = NE - allocate(rxn % products(1) % yield_E % x(NE)) - allocate(rxn % products(1) % yield_E % y(NE)) - - ! read yield data - XSS_index = XSS_index + 1 - rxn % products(1) % yield_E % x = get_real(NE) - rxn % products(1) % yield_E % y = get_real(NE) end if ! read starting energy index @@ -1469,7 +1475,6 @@ contains end if end subroutine read_unr_res - !=============================================================================== ! GENERATE_NU_FISSION precalculates the microscopic nu-fission cross section for ! a given nuclide. This is done so that the nu_total function does not need to @@ -1480,20 +1485,11 @@ contains type(NuclideCE), intent(inout) :: nuc integer :: i ! index on nuclide energy grid - real(8) :: E ! energy - real(8) :: nu ! # of neutrons per fission - do i = 1, nuc % n_grid - ! determine energy - E = nuc % energy(i) - - ! determine total nu at given energy - nu = nu_total(nuc, E) - - ! determine nu-fission microscopic cross section - nuc % nu_fission(i) = nu * nuc % fission(i) + do i = 1, size(nuc % energy) + nuc % nu_fission(i) = nuc % nu(nuc % energy(i), EMISSION_TOTAL) * & + nuc % fission(i) end do - end subroutine generate_nu_fission !=============================================================================== diff --git a/src/constants.F90 b/src/constants.F90 index 5d91d2be8..8863ca18c 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -223,6 +223,12 @@ module constants NU_POLYNOMIAL = 1, & ! Nu values given by polynomial NU_TABULAR = 2 ! Nu values given by tabular distribution + ! Secondary particle emission type + integer, parameter :: & + EMISSION_PROMPT = 1, & ! Prompt emission of secondary particle + EMISSION_DELAYED = 2, & ! Delayed emission of secondary particle + EMISSION_TOTAL = 3 ! Yield represents total emission (prompt + delayed) + ! Cross section filetypes integer, parameter :: & ASCII = 1, & ! ASCII cross section file diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 4c529213b..d0509deb8 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -3,7 +3,6 @@ module cross_section use constants use energy_grid, only: grid_method, log_spacing use error, only: fatal_error - use fission, only: nu_total use global use list_header, only: ListElemInt use material_header, only: Material @@ -485,7 +484,7 @@ contains ! Determine nu-fission cross section if (nuc % fissionable) then - micro_xs(i_nuclide) % nu_fission = nu_total(nuc, E) * & + micro_xs(i_nuclide) % nu_fission = nuc % nu(E, EMISSION_TOTAL) * & micro_xs(i_nuclide) % fission end if end associate diff --git a/src/endf_header.F90 b/src/endf_header.F90 index 7388ea2f5..e9a073f4e 100644 --- a/src/endf_header.F90 +++ b/src/endf_header.F90 @@ -1,12 +1,51 @@ module endf_header - implicit none + use constants, only: ZERO, HISTOGRAM, LINEAR_LINEAR, LINEAR_LOG, & + LOG_LINEAR, LOG_LOG + use search, only: binary_search + +implicit none + + type, abstract :: Function1D + contains + procedure(function1d_evaluate_), deferred :: evaluate + end type Function1D + + abstract interface + pure function function1d_evaluate_(this, x) result(y) + import Function1D + class(Function1D), intent(in) :: this + real(8), intent(in) :: x + real(8) :: y + end function function1d_evaluate_ + end interface !=============================================================================== -! TAB1 represents a one-dimensional interpolable function +! CONSTANT1D represents a constant one-dimensional function !=============================================================================== - type Tab1 + type, extends(Function1D) :: Constant1D + real(8) :: y + contains + procedure :: evaluate => constant1d_evaluate + end type Constant1D + +!=============================================================================== +! POLYNOMIAL represents a one-dimensional function expressed as a polynomial +!=============================================================================== + + type, extends(Function1D) :: Polynomial + real(8), allocatable :: coef(:) ! coefficients + contains + procedure :: evaluate => polynomial_evaluate + procedure :: from_ace => polynomial_from_ace + end type Polynomial + +!=============================================================================== +! TABULATED1D represents a one-dimensional interpolable function +!=============================================================================== + + type, extends(Function1D) :: Tabulated1D integer :: n_regions = 0 ! # of interpolation regions integer, allocatable :: nbt(:) ! values separating interpolation regions integer, allocatable :: int(:) ! interpolation scheme @@ -14,18 +53,78 @@ module endf_header real(8), allocatable :: x(:) ! values of abscissa real(8), allocatable :: y(:) ! values of ordinate contains - procedure :: from_ace - end type Tab1 + procedure :: from_ace => tabulated1d_from_ace + procedure :: evaluate => tabulated1d_evaluate + end type Tabulated1D contains - subroutine from_ace(this, xss, idx) - class(Tab1), intent(inout) :: this +!=============================================================================== +! Constant1D implementation +!=============================================================================== + + pure function constant1d_evaluate(this, x) result(y) + class(Constant1D), intent(in) :: this + real(8), intent(in) :: x + real(8) :: y + + y = this % y + end function constant1d_evaluate + +!=============================================================================== +! Polynomial implementation +!=============================================================================== + + subroutine polynomial_from_ace(this, xss, idx) + class(Polynomial), intent(inout) :: this + real(8), intent(in) :: xss(:) + integer, intent(in) :: idx + + integer :: nc ! number of coefficients (order - 1) + + ! Clear space + if (allocated(this % coef)) deallocate(this % coef) + + ! Determine number of coefficients + nc = nint(xss(idx)) + + ! Allocate space for and read coefficients + allocate(this % coef(nc)) + this % coef(:) = xss(idx + 1 : idx + nc) + end subroutine polynomial_from_ace + + pure function polynomial_evaluate(this, x) result(y) + class(Polynomial), intent(in) :: this + real(8), intent(in) :: x + real(8) :: y + + integer :: i + + ! Use Horner's rule to evaluate polynomial. Note that coefficients are + ! ordered in increasing powers of x. + y = ZERO + do i = size(this % coef), 1, -1 + y = y*x + this % coef(i) + end do + end function polynomial_evaluate + +!=============================================================================== +! Tabulated1D implementation +!=============================================================================== + + subroutine tabulated1d_from_ace(this, xss, idx) + class(Tabulated1D), intent(inout) :: this real(8), intent(in) :: xss(:) integer, intent(in) :: idx integer :: nr, ne + ! Clear space + if (allocated(this % nbt)) deallocate(this % nbt) + if (allocated(this % int)) deallocate(this % int) + if (allocated(this % x)) deallocate(this % x) + if (allocated(this % y)) deallocate(this % y) + ! Determine number of regions nr = nint(xss(idx)) this%n_regions = nr @@ -47,6 +146,81 @@ contains allocate(this%y(ne)) this%x(:) = xss(idx + 2*nr + 2 : idx + 2*nr + 1 + ne) this%y(:) = xss(idx + 2*nr + 2 + ne : idx + 2*nr + 1 + 2*ne) - end subroutine from_ace + end subroutine tabulated1d_from_ace + + pure function tabulated1d_evaluate(this, x) result(y) + class(Tabulated1D), intent(in) :: this + real(8), intent(in) :: x ! x value to find y at + real(8) :: y ! y(x) + + integer :: i ! bin in which to interpolate + integer :: j ! index for interpolation region + integer :: n_regions ! number of interpolation regions + integer :: n_pairs ! number of tabulated values + integer :: interp ! ENDF interpolation scheme + real(8) :: r ! interpolation factor + real(8) :: x0, x1 ! bounding x values + real(8) :: y0, y1 ! bounding y values + + ! determine number of interpolation regions and pairs + n_regions = this % n_regions + n_pairs = this % n_pairs + + ! find which bin the abscissa is in -- if the abscissa is outside the + ! tabulated range, the first or last point is chosen, i.e. no interpolation + ! is done outside the energy range + if (x < this % x(1)) then + y = this % y(1) + return + elseif (x > this % x(n_pairs)) then + y = this % y(n_pairs) + return + else + i = binary_search(this % x, n_pairs, x) + end if + + ! determine interpolation scheme + if (n_regions == 0) then + interp = LINEAR_LINEAR + elseif (n_regions == 1) then + interp = this % int(1) + elseif (n_regions > 1) then + do j = 1, n_regions + if (i < this % nbt(j)) then + interp = this % int(j) + exit + end if + end do + end if + + ! handle special case of histogram interpolation + if (interp == HISTOGRAM) then + y = this % y(i) + return + end if + + ! determine bounding values + x0 = this % x(i) + x1 = this % x(i + 1) + y0 = this % y(i) + y1 = this % y(i + 1) + + ! determine interpolation factor and interpolated value + select case (interp) + case (LINEAR_LINEAR) + r = (x - x0)/(x1 - x0) + y = y0 + r*(y1 - y0) + case (LINEAR_LOG) + r = log(x/x0)/log(x1/x0) + y = y0 + r*(y1 - y0) + case (LOG_LINEAR) + r = (x - x0)/(x1 - x0) + y = y0*exp(r*log(y1/y0)) + case (LOG_LOG) + r = log(x/x0)/log(x1/x0) + y = y0*exp(r*log(y1/y0)) + end select + + end function tabulated1d_evaluate end module endf_header diff --git a/src/energy_distribution.F90 b/src/energy_distribution.F90 index 3d3524934..3a42bb73d 100644 --- a/src/energy_distribution.F90 +++ b/src/energy_distribution.F90 @@ -1,8 +1,7 @@ module energy_distribution use constants, only: ZERO, ONE, TWO, PI, HISTOGRAM, LINEAR_LINEAR - use endf_header, only: Tab1 - use interpolation, only: interpolate_tab1 + use endf_header, only: Tabulated1D use math, only: maxwell_spectrum, watt_spectrum use random_lcg, only: prn use search, only: binary_search @@ -95,7 +94,7 @@ module energy_distribution !=============================================================================== type, extends(EnergyDistribution) :: MaxwellEnergy - type(Tab1) :: theta ! incoming-energy-dependent parameter + type(Tabulated1D) :: theta ! incoming-energy-dependent parameter real(8) :: u ! restriction energy contains procedure :: sample => maxwellenergy_sample @@ -107,7 +106,7 @@ module energy_distribution !=============================================================================== type, extends(EnergyDistribution) :: Evaporation - type(Tab1) :: theta + type(Tabulated1D) :: theta real(8) :: u contains procedure :: sample => evaporation_sample @@ -119,8 +118,8 @@ module energy_distribution !=============================================================================== type, extends(EnergyDistribution) :: WattEnergy - type(Tab1) :: a - type(Tab1) :: b + type(Tabulated1D) :: a + type(Tabulated1D) :: b real(8) :: u contains procedure :: sample => watt_sample @@ -317,7 +316,7 @@ contains real(8) :: theta ! Maxwell distribution parameter ! Get temperature corresponding to incoming energy - theta = interpolate_tab1(this%theta, E_in) + theta = this % theta % evaluate(E_in) do ! Sample maxwell fission spectrum @@ -337,7 +336,7 @@ contains real(8) :: x, y, v ! Get temperature corresponding to incoming energy - theta = interpolate_tab1(this%theta, E_in) + theta = this % theta % evaluate(E_in) y = (E_in - this%u)/theta v = 1 - exp(-y) @@ -360,10 +359,10 @@ contains real(8) :: a, b ! Watt spectrum parameters ! Determine Watt parameter 'a' from tabulated function - a = interpolate_tab1(this%a, E_in) + a = this % a % evaluate(E_in) ! Determine Watt parameter 'b' from tabulated function - b = interpolate_tab1(this%b, E_in) + b = this % b % evaluate(E_in) do ! Sample energy-dependent Watt fission spectrum diff --git a/src/fission.F90 b/src/fission.F90 deleted file mode 100644 index 77ee64178..000000000 --- a/src/fission.F90 +++ /dev/null @@ -1,161 +0,0 @@ -module fission - - use nuclide_header, only: NuclideCE - use constants - use error, only: fatal_error - use interpolation, only: interpolate_tab1 - use search, only: binary_search - - implicit none - -contains - -!=============================================================================== -! NU_TOTAL calculates the total number of neutrons emitted per fission for a -! given nuclide and incoming neutron energy -!=============================================================================== - - pure function nu_total(nuc, E) result(nu) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: nu ! number of total neutrons emitted per fission - - integer :: i ! loop index - integer :: NC ! number of polynomial coefficients - real(8) :: c ! polynomial coefficient - - if (nuc % nu_t_type == NU_NONE) then - nu = ERROR_REAL - elseif (nuc % nu_t_type == NU_POLYNOMIAL) then - ! determine number of coefficients - NC = int(nuc % nu_t_data(1)) - - ! sum up polynomial in energy - nu = ZERO - do i = 0, NC - 1 - c = nuc % nu_t_data(i+2) - nu = nu + c * E**i - end do - elseif (nuc % nu_t_type == NU_TABULAR) then - ! use ENDF interpolation laws to determine nu - nu = interpolate_tab1(nuc % nu_t_data, E) - end if - - end function nu_total - -!=============================================================================== -! NU_PROMPT calculates the total number of prompt neutrons emitted per fission -! for a given nuclide and incoming neutron energy -!=============================================================================== - - pure function nu_prompt(nuc, E) result(nu) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: nu ! number of prompt neutrons emitted per fission - - integer :: i ! loop index - integer :: NC ! number of polynomial coefficients - real(8) :: c ! polynomial coefficient - - if (nuc % nu_p_type == NU_NONE) then - ! since no prompt or delayed data is present, this means all neutron - ! emission is prompt -- WARNING: This currently returns zero. The calling - ! routine needs to know this situation is occurring since we don't want - ! to call nu_total unnecessarily if it has already been called. - nu = ZERO - elseif (nuc % nu_p_type == NU_POLYNOMIAL) then - ! determine number of coefficients - NC = int(nuc % nu_p_data(1)) - - ! sum up polynomial in energy - nu = ZERO - do i = 0, NC - 1 - c = nuc % nu_p_data(i+2) - nu = nu + c * E**i - end do - elseif (nuc % nu_p_type == NU_TABULAR) then - ! use ENDF interpolation laws to determine nu - nu = interpolate_tab1(nuc % nu_p_data, E) - end if - - end function nu_prompt - -!=============================================================================== -! NU_DELAYED calculates the total number of delayed neutrons emitted per fission -! for a given nuclide and incoming neutron energy -!=============================================================================== - - pure function nu_delayed(nuc, E) result(nu) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: nu ! number of delayed neutrons emitted per fission - - if (nuc % nu_d_type == NU_NONE) then - ! since no prompt or delayed data is present, this means all neutron - ! emission is prompt -- WARNING: This currently returns zero. The calling - ! routine needs to know this situation is occurring since we don't want - ! to call nu_delayed unnecessarily if it has already been called. - nu = ZERO - elseif (nuc % nu_d_type == NU_TABULAR) then - ! use ENDF interpolation laws to determine nu - nu = interpolate_tab1(nuc % nu_d_data, E) - end if - - end function nu_delayed - -!=============================================================================== -! YIELD_DELAYED calculates the fractional yield of delayed neutrons emitted for -! a given nuclide and incoming neutron energy in a given delayed group. -!=============================================================================== - - pure function yield_delayed(nuc, E, g) result(yield) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: yield ! delayed neutron precursor yield - integer, intent(in) :: g ! the delayed neutron precursor group - integer :: d ! precursor group - integer :: lc ! index before start of energies/nu values - integer :: NR ! number of interpolation regions - integer :: NE ! number of energies tabulated - - yield = ZERO - - if (g > nuc % n_precursor .or. g < 1) then - ! if the precursor group is outside the range of precursor groups for - ! the input nuclide, return ZERO. - yield = ZERO - else if (nuc % nu_d_type == NU_NONE) then - ! since no prompt or delayed data is present, this means all neutron - ! emission is prompt -- WARNING: This currently returns zero. The calling - ! routine needs to know this situation is occurring since we don't want - ! to call yield_delayed unnecessarily if it has already been called. - yield = ZERO - else if (nuc % nu_d_type == NU_TABULAR) then - - lc = 1 - - ! loop over delayed groups and determine the yield for the desired group - do d = 1, nuc % n_precursor - - ! determine number of interpolation regions and energies - NR = int(nuc % nu_d_precursor_data(lc + 1)) - NE = int(nuc % nu_d_precursor_data(lc + 2 + 2*NR)) - - ! check if this is the desired group - if (d == g) then - - ! determine delayed neutron precursor yield for group g - yield = interpolate_tab1(nuc % nu_d_precursor_data( & - lc+1:lc+2+2*NR+2*NE), E) - - exit - end if - - ! advance pointer - lc = lc + 2 + 2*NR + 2*NE + 1 - end do - end if - - end function yield_delayed - -end module fission diff --git a/src/interpolation.F90 b/src/interpolation.F90 deleted file mode 100644 index 5f8787067..000000000 --- a/src/interpolation.F90 +++ /dev/null @@ -1,205 +0,0 @@ -module interpolation - - use constants - use endf_header, only: Tab1 - use search, only: binary_search - use string, only: to_str - - implicit none - - interface interpolate_tab1 - module procedure interpolate_tab1_array, interpolate_tab1_object - end interface interpolate_tab1 - -contains - -!=============================================================================== -! INTERPOLATE_TAB1_ARRAY interpolates a function between two points based on -! particular interpolation scheme. The data needs to be organized as a ENDF TAB1 -! type function containing the interpolation regions, break points, and -! tabulated x's and y's. -!=============================================================================== - - pure function interpolate_tab1_array(data, x, loc_start) result(y) - - real(8), intent(in) :: data(:) ! array of data - real(8), intent(in) :: x ! x value to find y at - integer, intent(in), optional :: loc_start ! starting location in data - real(8) :: y ! y(x) - - integer :: i ! bin in which to interpolate - integer :: j ! index for interpolation region - integer :: loc_0 ! starting location - integer :: n_regions ! number of interpolation regions - integer :: n_points ! number of tabulated values - integer :: interp ! ENDF interpolation scheme - integer :: loc_breakpoints ! location of breakpoints in data - integer :: loc_interp ! location of interpolation schemes in data - integer :: loc_x ! location of x's in data - integer :: loc_y ! location of y's in data - real(8) :: r ! interpolation factor - real(8) :: x0, x1 ! bounding x values - real(8) :: y0, y1 ! bounding y values - - ! determine starting location - if (present(loc_start)) then - loc_0 = loc_start - 1 - else - loc_0 = 0 - end if - - ! determine number of interpolation regions - n_regions = int(data(loc_0 + 1)) - - ! set locations for breakpoints and interpolation schemes - loc_breakpoints = loc_0 + 1 - loc_interp = loc_breakpoints + n_regions - - ! determine number of tabulated values - n_points = int(data(loc_interp + n_regions + 1)) - - ! set locations for x's and y's - loc_x = loc_interp + n_regions + 1 - loc_y = loc_x + n_points - - ! find which bin the abscissa is in -- if the abscissa is outside the - ! tabulated range, the first or last point is chosen, i.e. no interpolation - ! is done outside the energy range - if (x < data(loc_x + 1)) then - y = data(loc_y + 1) - return - elseif (x > data(loc_x + n_points)) then - y = data(loc_y + n_points) - return - else - i = binary_search(data(loc_x + 1:loc_x + n_points), n_points, x) - end if - - ! determine interpolation scheme - if (n_regions == 0) then - interp = LINEAR_LINEAR - elseif (n_regions == 1) then - interp = int(data(loc_interp + 1)) - elseif (n_regions > 1) then - do j = 1, n_regions - if (i < data(loc_breakpoints + j)) then - interp = int(data(loc_interp + j)) - exit - end if - end do - end if - - ! handle special case of histogram interpolation - if (interp == HISTOGRAM) then - y = data(loc_y + i) - return - end if - - ! determine bounding values - x0 = data(loc_x + i) - x1 = data(loc_x + i + 1) - y0 = data(loc_y + i) - y1 = data(loc_y + i + 1) - - ! determine interpolation factor and interpolated value - select case (interp) - case (LINEAR_LINEAR) - r = (x - x0)/(x1 - x0) - y = y0 + r*(y1 - y0) - case (LINEAR_LOG) - r = log(x/x0)/log(x1/x0) - y = y0 + r*(y1 - y0) - case (LOG_LINEAR) - r = (x - x0)/(x1 - x0) - y = y0*exp(r*log(y1/y0)) - case (LOG_LOG) - r = log(x/x0)/log(x1/x0) - y = y0*exp(r*log(y1/y0)) - end select - - end function interpolate_tab1_array - -!=============================================================================== -! INTERPOLATE_TAB1_OBJECT interpolates a function between two points based on -! particular interpolation scheme. The data needs to be organized as a ENDF TAB1 -! type function containing the interpolation regions, break points, and -! tabulated x's and y's. -!=============================================================================== - - pure function interpolate_tab1_object(obj, x) result(y) - - type(Tab1), intent(in) :: obj ! ENDF Tab1 interpolable function - real(8), intent(in) :: x ! x value to find y at - real(8) :: y ! y(x) - - integer :: i ! bin in which to interpolate - integer :: j ! index for interpolation region - integer :: n_regions ! number of interpolation regions - integer :: n_pairs ! number of tabulated values - integer :: interp ! ENDF interpolation scheme - real(8) :: r ! interpolation factor - real(8) :: x0, x1 ! bounding x values - real(8) :: y0, y1 ! bounding y values - - ! determine number of interpolation regions and pairs - n_regions = obj % n_regions - n_pairs = obj % n_pairs - - ! find which bin the abscissa is in -- if the abscissa is outside the - ! tabulated range, the first or last point is chosen, i.e. no interpolation - ! is done outside the energy range - if (x < obj % x(1)) then - y = obj % y(1) - return - elseif (x > obj % x(n_pairs)) then - y = obj % y(n_pairs) - return - else - i = binary_search(obj % x, n_pairs, x) - end if - - ! determine interpolation scheme - if (n_regions == 0) then - interp = LINEAR_LINEAR - elseif (n_regions == 1) then - interp = obj % int(1) - elseif (n_regions > 1) then - do j = 1, n_regions - if (i < obj % nbt(j)) then - interp = obj % int(j) - exit - end if - end do - end if - - ! handle special case of histogram interpolation - if (interp == HISTOGRAM) then - y = obj % y(i) - return - end if - - ! determine bounding values - x0 = obj % x(i) - x1 = obj % x(i + 1) - y0 = obj % y(i) - y1 = obj % y(i + 1) - - ! determine interpolation factor and interpolated value - select case (interp) - case (LINEAR_LINEAR) - r = (x - x0)/(x1 - x0) - y = y0 + r*(y1 - y0) - case (LINEAR_LOG) - r = log(x/x0)/log(x1/x0) - y = y0 + r*(y1 - y0) - case (LOG_LINEAR) - r = (x - x0)/(x1 - x0) - y = y0*exp(r*log(y1/y0)) - case (LOG_LOG) - r = log(x/x0)/log(x1/x0) - y = y0*exp(r*log(y1/y0)) - end select - - end function interpolate_tab1_object - -end module interpolation diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 12b4a3076..6634bcc94 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -5,6 +5,7 @@ module nuclide_header use constants use dict_header, only: DictIntInt use endf, only: reaction_name, is_fission, is_disappearance + use endf_header, only: Function1D use error, only: fatal_error, warning use list_header, only: ListInt use math, only: evaluate_legendre, find_angle @@ -71,24 +72,11 @@ module nuclide_header real(8) :: E_max ! upper cutoff energy for res scattering ! Fission information - logical :: has_partial_fission ! nuclide has partial fission reactions? - integer :: n_fission ! # of fission reactions + logical :: has_partial_fission = .false. ! nuclide has partial fission reactions? + integer :: n_fission ! # of fission reactions + integer :: n_precursor = 0 ! # of delayed neutron precursors integer, allocatable :: index_fission(:) ! indices in reactions - - ! Total fission neutron emission - integer :: nu_t_type - real(8), allocatable :: nu_t_data(:) - - ! Prompt fission neutron emission - integer :: nu_p_type - real(8), allocatable :: nu_p_data(:) - - ! Delayed fission neutron emission - integer :: nu_d_type - integer :: n_precursor ! # of delayed neutron precursors - real(8), allocatable :: nu_d_data(:) - real(8), allocatable :: nu_d_precursor_data(:) - type(AngleEnergyContainer), allocatable :: nu_d_edist(:) + class(Function1D), allocatable :: total_nu ! Unresolved resonance data logical :: urr_present @@ -104,6 +92,7 @@ module nuclide_header contains procedure :: clear => nuclidece_clear procedure :: print => nuclidece_print + procedure :: nu => nuclidece_nu end type NuclideCE type, abstract, extends(Nuclide) :: NuclideMG @@ -684,96 +673,157 @@ module nuclide_header ! or NuclideAngle !=============================================================================== - subroutine nuclidece_clear(this) + subroutine nuclidece_clear(this) - class(NuclideCE), intent(inout) :: this ! The Nuclide object to clear + class(NuclideCE), intent(inout) :: this ! The Nuclide object to clear - if (associated(this % urr_data)) deallocate(this % urr_data) + if (associated(this % urr_data)) deallocate(this % urr_data) - call this % reaction_index % clear() + call this % reaction_index % clear() - end subroutine nuclidece_clear + end subroutine nuclidece_clear + + function nuclidece_nu(this, E, emission_mode, group) result(nu) + class(NuclideCE), intent(in) :: this + real(8), intent(in) :: E + integer, intent(in) :: emission_mode + integer, optional, intent(in) :: group + real(8) :: nu + + integer :: i + + if (.not. this % fissionable) then + nu = ZERO + return + end if + + select case (emission_mode) + case (EMISSION_PROMPT) + associate (product => this % reactions(this % index_fission(1)) % products(1)) + nu = product % yield % evaluate(E) + end associate + + case (EMISSION_DELAYED) + if (this % n_precursor > 0) then + if (present(group)) then + ! If delayed group specified, determine yield immediately + associate(p => this % reactions(this % index_fission(1)) % products(1 + group)) + nu = p % yield % evaluate(E) + end associate + + else + nu = ZERO + + associate (rx => this % reactions(this % index_fission(1))) + do i = 2, size(rx % products) + associate (product => rx % products(i)) + ! Skip any non-neutron products + if (product % particle /= NEUTRON) exit + + ! Evaluate yield + if (product % emission_mode == EMISSION_DELAYED) then + nu = nu + product % yield % evaluate(E) + end if + end associate + end do + end associate + end if + else + nu = ZERO + end if + + case (EMISSION_TOTAL) + if (allocated(this % total_nu)) then + nu = this % total_nu % evaluate(E) + else + associate (rx => this % reactions(this % index_fission(1))) + nu = rx % products(1) % yield % evaluate(E) + end associate + end if + end select + + end function nuclidece_nu !=============================================================================== ! NUCLIDE*_PRINT displays information about a continuous-energy neutron ! cross_section table and its reactions and secondary angle/energy distributions !=============================================================================== - subroutine nuclidece_print(this, unit) - class(NuclideCE), intent(in) :: this - integer, intent(in), optional :: unit + subroutine nuclidece_print(this, unit) + class(NuclideCE), intent(in) :: this + integer, intent(in), optional :: unit - integer :: i ! loop index over nuclides - integer :: unit_ ! unit to write to - integer :: size_xs ! memory used for cross-sections (bytes) - integer :: size_urr ! memory used for probability tables (bytes) + integer :: i ! loop index over nuclides + integer :: unit_ ! unit to write to + integer :: size_xs ! memory used for cross-sections (bytes) + integer :: size_urr ! memory used for probability tables (bytes) - ! set default unit for writing information - if (present(unit)) then - unit_ = unit - else - unit_ = OUTPUT_UNIT - end if + ! set default unit for writing information + if (present(unit)) then + unit_ = unit + else + unit_ = OUTPUT_UNIT + end if - ! Initialize totals - size_urr = 0 - size_xs = 0 + ! Initialize totals + size_urr = 0 + size_xs = 0 - ! Basic nuclide information - write(unit_,*) 'Nuclide ' // trim(this % name) - write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) - write(unit_,*) ' awr = ' // trim(to_str(this % awr)) - write(unit_,*) ' kT = ' // trim(to_str(this % kT)) - write(unit_,*) ' # of grid points = ' // trim(to_str(this % n_grid)) - write(unit_,*) ' Fissionable = ', this % fissionable - write(unit_,*) ' # of fission reactions = ' // trim(to_str(this % n_fission)) - write(unit_,*) ' # of reactions = ' // trim(to_str(this % n_reaction)) + ! Basic nuclide information + write(unit_,*) 'Nuclide ' // trim(this % name) + write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) + write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + write(unit_,*) ' kT = ' // trim(to_str(this % kT)) + write(unit_,*) ' # of grid points = ' // trim(to_str(this % n_grid)) + write(unit_,*) ' Fissionable = ', this % fissionable + write(unit_,*) ' # of fission reactions = ' // trim(to_str(this % n_fission)) + write(unit_,*) ' # of reactions = ' // trim(to_str(this % n_reaction)) - ! Information on each reaction - write(unit_,*) ' Reaction Q-value COM IE' - do i = 1, this % n_reaction - associate (rxn => this % reactions(i)) - write(unit_,'(3X,A11,1X,F8.3,3X,L1,3X,I6)') & - reaction_name(rxn % MT), rxn % Q_value, rxn % scatter_in_cm, & - rxn % threshold + ! Information on each reaction + write(unit_,*) ' Reaction Q-value COM IE' + do i = 1, this % n_reaction + associate (rxn => this % reactions(i)) + write(unit_,'(3X,A11,1X,F8.3,3X,L1,3X,I6)') & + reaction_name(rxn % MT), rxn % Q_value, rxn % scatter_in_cm, & + rxn % threshold - ! Accumulate data size - size_xs = size_xs + (this % n_grid - rxn%threshold + 1) * 8 - end associate - end do + ! Accumulate data size + size_xs = size_xs + (this % n_grid - rxn%threshold + 1) * 8 + end associate + end do - ! Add memory required for summary reactions (total, absorption, fission, - ! nu-fission) - size_xs = 8 * this % n_grid * 4 + ! Add memory required for summary reactions (total, absorption, fission, + ! nu-fission) + size_xs = 8 * this % n_grid * 4 - ! Write information about URR probability tables - size_urr = 0 - if (this % urr_present) then - associate(urr => this % urr_data) - write(unit_,*) ' Unresolved resonance probability table:' - write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) - write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) - write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) - write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) - write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) - write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth - write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) - write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) + ! Write information about URR probability tables + size_urr = 0 + if (this % urr_present) then + associate(urr => this % urr_data) + write(unit_,*) ' Unresolved resonance probability table:' + write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) + write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) + write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) + write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) + write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) + write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth + write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) + write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) - ! Calculate memory used by probability tables and add to total - size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 - end associate - end if + ! Calculate memory used by probability tables and add to total + size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 + end associate + end if - ! Write memory used - write(unit_,*) ' Memory Requirements' - write(unit_,*) ' Cross sections = ' // trim(to_str(size_xs)) // ' bytes' - write(unit_,*) ' Probability Tables = ' // & - trim(to_str(size_urr)) // ' bytes' + ! Write memory used + write(unit_,*) ' Memory Requirements' + write(unit_,*) ' Cross sections = ' // trim(to_str(size_xs)) // ' bytes' + write(unit_,*) ' Probability Tables = ' // & + trim(to_str(size_urr)) // ' bytes' - ! Blank line at end of nuclide - write(unit_,*) - end subroutine nuclidece_print + ! Blank line at end of nuclide + write(unit_,*) + end subroutine nuclidece_print subroutine nuclidemg_print(this, unit_) class(NuclideMG), intent(in) :: this diff --git a/src/physics.F90 b/src/physics.F90 index 3192db179..d6c4c45b0 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -4,9 +4,7 @@ module physics use cross_section, only: elastic_xs_0K use endf, only: reaction_name use error, only: fatal_error, warning - use fission, only: nu_total, nu_delayed use global - use interpolation, only: interpolate_tab1 use material_header, only: Material use math use mesh, only: get_mesh_indices @@ -1073,8 +1071,6 @@ contains integer :: nu ! actual number of neutrons produced integer :: ijk(3) ! indices in ufs mesh real(8) :: nu_t ! total nu - real(8) :: mu ! fission neutron angular cosine - real(8) :: phi ! fission neutron azimuthal angle real(8) :: weight ! weight adjustment for ufs method logical :: in_mesh ! source site in ufs mesh? type(NuclideCE), pointer :: nuc @@ -1145,25 +1141,12 @@ contains ! Set weight of fission bank site bank_array(i) % wgt = ONE/weight - ! Sample cosine of angle -- fission neutrons are always emitted - ! isotropically. Sometimes in ACE data, fission reactions actually have - ! an angular distribution listed, but for those that do, it's simply just - ! a uniform distribution in mu - mu = TWO * prn() - ONE + ! Sample delayed group and angle/energy for fission reaction + call sample_fission_neutron(nuc, nuc % reactions(i_reaction), & + p % E, bank_array(i)) - ! Sample azimuthal angle uniformly in [0,2*pi) - phi = TWO*PI*prn() - bank_array(i) % uvw(1) = mu - bank_array(i) % uvw(2) = sqrt(ONE - mu*mu) * cos(phi) - bank_array(i) % uvw(3) = sqrt(ONE - mu*mu) * sin(phi) - - ! Sample secondary energy distribution for fission reaction and set energy - ! in fission bank - bank_array(i) % E = sample_fission_energy(nuc, & - nuc % reactions(i_reaction), p) - - ! Set the delayed group of the neutron - bank_array(i) % delayed_group = p % delayed_group + ! Set delayed group on particle too + p % delayed_group = bank_array(i) % delayed_group ! Increment the number of neutrons born delayed if (p % delayed_group > 0) then @@ -1182,35 +1165,41 @@ contains end subroutine create_fission_sites !=============================================================================== -! SAMPLE_FISSION_ENERGY +! SAMPLE_FISSION_NEUTRON !=============================================================================== - function sample_fission_energy(nuc, rxn, p) result(E_out) + subroutine sample_fission_neutron(nuc, rxn, E_in, site) + type(NuclideCE), intent(in) :: nuc + type(Reaction), intent(in) :: rxn + real(8), intent(in) :: E_in + type(Bank), intent(inout) :: site - type(NuclideCE), intent(in) :: nuc - type(Reaction), intent(in) :: rxn - type(Particle), intent(inout) :: p ! Particle causing fission - real(8) :: E_out ! outgoing energy of fission neutron - - integer :: j ! index on nu energy grid / precursor group - integer :: lc ! index before start of energies/nu values - integer :: NR ! number of interpolation regions - integer :: NE ! number of energies tabulated - integer :: n_sample ! number of times resampling + integer :: group ! index on nu energy grid / precursor group + integer :: n_sample ! number of resamples real(8) :: nu_t ! total nu real(8) :: nu_d ! delayed nu real(8) :: beta ! delayed neutron fraction real(8) :: xi ! random number real(8) :: yield ! delayed neutron precursor yield real(8) :: prob ! cumulative probability + real(8) :: mu ! cosine of scattering angle + real(8) :: phi ! azimuthal angle - ! Determine total nu - nu_t = nu_total(nuc, p % E) + ! Sample cosine of angle -- fission neutrons are always emitted + ! isotropically. Sometimes in ACE data, fission reactions actually have + ! an angular distribution listed, but for those that do, it's simply just + ! a uniform distribution in mu + mu = TWO * prn() - ONE - ! Determine delayed nu - nu_d = nu_delayed(nuc, p % E) + ! Sample azimuthal angle uniformly in [0,2*pi) + phi = TWO*PI*prn() + site % uvw(1) = mu + site % uvw(2) = sqrt(ONE - mu*mu) * cos(phi) + site % uvw(3) = sqrt(ONE - mu*mu) * sin(phi) - ! Determine delayed neutron fraction + ! Determine total nu, delayed nu, and delayed neutron fraction + nu_t = nuc % nu(E_in, EMISSION_TOTAL) + nu_d = nuc % nu(E_in, EMISSION_DELAYED) beta = nu_d / nu_t if (prn() < beta) then @@ -1218,51 +1207,41 @@ contains ! DELAYED NEUTRON SAMPLED ! sampled delayed precursor group - xi = prn() - lc = 1 + xi = prn()*nu_d prob = ZERO - do j = 1, nuc % n_precursor - ! determine number of interpolation regions and energies - NR = int(nuc % nu_d_precursor_data(lc + 1)) - NE = int(nuc % nu_d_precursor_data(lc + 2 + 2*NR)) + do group = 1, nuc % n_precursor ! determine delayed neutron precursor yield for group j - yield = interpolate_tab1(nuc % nu_d_precursor_data( & - lc+1:lc+2+2*NR+2*NE), p % E) + yield = rxn % products(1 + group) % yield % evaluate(E_in) ! Check if this group is sampled prob = prob + yield if (xi < prob) exit - - ! advance pointer - lc = lc + 2 + 2*NR + 2*NE + 1 end do ! if the sum of the probabilities is slightly less than one and the ! random number is greater, j will be greater than nuc % ! n_precursor -- check for this condition - j = min(j, nuc % n_precursor) + group = min(group, nuc % n_precursor) ! set the delayed group for the particle born from fission - p % delayed_group = j + site % delayed_group = group - ! sample from energy distribution n_sample = 0 do - select type (aedist => nuc%nu_d_edist(j)%obj) - type is (UncorrelatedAngleEnergy) - E_out = aedist%energy%sample(p%E) - end select + ! sample from energy/angle distribution -- note that mu has already been + ! sampled above and doesn't need to be resampled + call rxn % products(1 + group) % sample(E_in, site % E, mu) ! resample if energy is greater than maximum neutron energy - if (E_out < energy_max_neutron) exit + if (site % E < energy_max_neutron) exit ! check for large number of resamples n_sample = n_sample + 1 if (n_sample == MAX_SAMPLE) then ! call write_particle_restart(p) call fatal_error("Resampled energy distribution maximum number of " & - &// "times for nuclide " // nuc % name) + // "times for nuclide " // nuc % name) end if end do @@ -1271,28 +1250,27 @@ contains ! PROMPT NEUTRON SAMPLED ! set the delayed group for the particle born from fission to 0 - p % delayed_group = 0 + site % delayed_group = 0 ! sample from prompt neutron energy distribution n_sample = 0 do - call rxn % products(1) % sample(p % E, E_out, prob) + call rxn % products(1) % sample(E_in, site % E, mu) ! resample if energy is greater than maximum neutron energy - if (E_out < energy_max_neutron) exit + if (site % E < energy_max_neutron) exit ! check for large number of resamples n_sample = n_sample + 1 if (n_sample == MAX_SAMPLE) then ! call write_particle_restart(p) call fatal_error("Resampled energy distribution maximum number of " & - &// "times for nuclide " // nuc % name) + // "times for nuclide " // nuc % name) end if end do - end if - end function sample_fission_energy + end subroutine sample_fission_neutron !=============================================================================== ! INELASTIC_SCATTER handles all reactions with a single secondary neutron (other @@ -1344,14 +1322,16 @@ contains ! change direction of particle p % coord(1) % uvw = rotate_angle(p % coord(1) % uvw, mu) - ! change weight of particle based on yield - if (rxn % products(1) % yield_with_E) then - yield = interpolate_tab1(rxn % products(1) % yield_E, E_in) - p % wgt = yield * p % wgt - else - do i = 1, rxn % products(1) % yield - 1 + ! evaluate yield + yield = rxn % products(1) % yield % evaluate(E_in) + if (mod(yield, ONE) == ZERO) then + ! If yield is integral, create exactly that many secondary particles + do i = 1, nint(yield) - 1 call p % create_secondary(p % coord(1) % uvw, NEUTRON, run_CE=.true.) end do + else + ! Otherwise, change weight of particle based on yield + p % wgt = yield * p % wgt end if end subroutine inelastic_scatter diff --git a/src/product_header.F90 b/src/product_header.F90 index 27fec37f7..e20c173b4 100644 --- a/src/product_header.F90 +++ b/src/product_header.F90 @@ -1,9 +1,9 @@ module product_header use angleenergy_header, only: AngleEnergyContainer - use constants, only: ZERO - use endf_header, only: Tab1 - use interpolation, only: interpolate_tab1 + use constants, only: ZERO, MAX_WORD_LEN, EMISSION_PROMPT, EMISSION_DELAYED, & + EMISSION_TOTAL, NEUTRON, PHOTON + use endf_header, only: Tabulated1D, Function1D, Constant1D, Polynomial use random_lcg, only: prn !=============================================================================== @@ -15,10 +15,11 @@ module product_header !=============================================================================== type :: ReactionProduct - integer :: yield ! Number of secondary particles released - logical :: yield_with_E = .false. ! Flag to indicate E-dependent yield - type(Tab1), pointer :: yield_E => null() ! Energy-dependent neutron yield - type(Tab1), allocatable :: applicability(:) + integer :: particle + integer :: emission_mode ! prompt, delayed, or total emission + real(8) :: decay_rate ! Decay rate for delayed neutron precursors + class(Function1D), pointer :: yield => null() ! Energy-dependent neutron yield + type(Tabulated1D), allocatable :: applicability(:) type(AngleEnergyContainer), allocatable :: distribution(:) contains procedure :: sample => reactionproduct_sample @@ -43,7 +44,7 @@ contains c = prn() do i = 1, n ! Determine probability that i-th energy distribution is sampled - prob = prob + interpolate_tab1(this%applicability(i), E_in) + prob = prob + this % applicability(i) % evaluate(E_in) ! If i-th distribution is sampled, sample energy from the distribution if (c <= prob) then diff --git a/src/tally.F90 b/src/tally.F90 index 71444107f..1f0d49772 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1,6 +1,7 @@ module tally use constants + use endf_header, only: Constant1D use error, only: fatal_error use geometry_header use global @@ -14,8 +15,6 @@ module tally use search, only: binary_search use string, only: to_str use tally_header, only: TallyResult, TallyMapItem, TallyMapElement - use fission, only: nu_total, nu_delayed, yield_delayed - use interpolation, only: interpolate_tab1 #ifdef MPI use message_passing @@ -258,14 +257,15 @@ contains ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % products(1) % yield_with_E) then - ! Then the yield was already incorporated in to p % wgt - ! per the scattering routine, + select type (yield => rxn % products(1) % yield) + type is (Constant1D) + ! Grab the yield from the reaction + score = p % last_wgt * yield % y + class default + ! the yield was already incorporated in to p % wgt per the + ! scattering routine score = p % wgt - else - ! Grab the yield from the rxn - score = p % last_wgt * rxn % products(1) % yield - end if + end select end associate end if @@ -291,14 +291,15 @@ contains ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % products(1) % yield_with_E) then - ! Then the yield was already incorporated in to p % wgt - ! per the scattering routine, + select type (yield => rxn % products(1) % yield) + type is (Constant1D) + ! Grab the yield from the reaction + score = p % last_wgt * yield % y + class default + ! the yield was already incorporated in to p % wgt per the + ! scattering routine score = p % wgt - else - ! Grab the yield from the rxn - score = p % last_wgt * rxn % products(1) % yield - end if + end select end associate end if @@ -324,14 +325,15 @@ contains ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % products(1) % yield_with_E) then - ! Then the yield was already incorporated in to p % wgt - ! per the scattering routine, + select type (yield => rxn % products(1) % yield) + type is (Constant1D) + ! Grab the yield from the reaction + score = p % last_wgt * yield % y + class default + ! the yield was already incorporated in to p % wgt per the + ! scattering routine score = p % wgt - else - ! Grab the yield from the rxn - score = p % last_wgt * rxn % products(1) % yield - end if + end select end associate end if @@ -498,12 +500,11 @@ contains d = t % filters(dg_filter) % int_bins(d_bin) ! Compute the yield for this delayed group - yield = yield_delayed(nuclides(p % event_nuclide), E, d) + yield = nuclides(p % event_nuclide) % nu(E, EMISSION_DELAYED, d) ! Compute the score and tally to bin score = p % absorb_wgt * yield * micro_xs(p % event_nuclide) & - % fission * nu_delayed(nuclides(p % event_nuclide), E) / & - micro_xs(p % event_nuclide) % absorption + % fission / micro_xs(p % event_nuclide) % absorption call score_fission_delayed_dg(t, d_bin, score, score_index) end do cycle SCORE_LOOP @@ -511,9 +512,9 @@ contains ! If the delayed group filter is not present, compute the score ! by multiplying the absorbed weight by the fraction of the ! delayed-nu-fission xs to the absorption xs - score = p % absorb_wgt * micro_xs(p % event_nuclide) & - % fission * nu_delayed(nuclides(p % event_nuclide), E) / & - micro_xs(p % event_nuclide) % absorption + score = p % absorb_wgt * micro_xs(p % event_nuclide) % fission & + * nuclides(p % event_nuclide) % nu(E, EMISSION_DELAYED) & + / micro_xs(p % event_nuclide) % absorption end if end if else @@ -563,11 +564,11 @@ contains d = t % filters(dg_filter) % int_bins(d_bin) ! Compute the yield for this delayed group - yield = yield_delayed(nuclides(i_nuclide), E, d) + yield = nuclides(i_nuclide) % nu(E, EMISSION_DELAYED, d) ! Compute the score and tally to bin - score = micro_xs(i_nuclide) % fission * yield & - * nu_delayed(nuclides(i_nuclide), E) * atom_density * flux + score = micro_xs(i_nuclide) % fission * yield * & + atom_density * flux call score_fission_delayed_dg(t, d_bin, score, score_index) end do cycle SCORE_LOOP @@ -575,8 +576,8 @@ contains ! If the delayed group filter is not present, compute the score ! by multiplying the delayed-nu-fission macro xs by the flux - score = micro_xs(i_nuclide) % fission * & - nu_delayed(nuclides(i_nuclide), E) * atom_density * flux + score = micro_xs(i_nuclide) % fission * nuclides(i_nuclide) % & + nu(E, EMISSION_DELAYED) * atom_density * flux end if ! Tally is on total nuclides @@ -601,11 +602,10 @@ contains d = t % filters(dg_filter) % int_bins(d_bin) ! Get the yield for the desired nuclide and delayed group - yield = yield_delayed(nuclides(i_nuc), E, d) + yield = nuclides(i_nuc) % nu(E, EMISSION_DELAYED, d) ! Compute the score and tally to bin - score = micro_xs(i_nuc) % fission * yield & - * nu_delayed(nuclides(i_nuc), E) * atom_density_ * flux + score = micro_xs(i_nuc) % fission * yield * atom_density_ * flux call score_fission_delayed_dg(t, d_bin, score, score_index) end do end do @@ -624,8 +624,8 @@ contains i_nuc = materials(p % material) % nuclide(l) ! Accumulate the contribution from each nuclide - score = score + micro_xs(i_nuc) % fission & - * nu_delayed(nuclides(i_nuc), E) * atom_density_ * flux + score = score + micro_xs(i_nuc) % fission * nuclides(i_nuc) % & + nu(E, EMISSION_DELAYED) * atom_density_ * flux end do end if end if diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 4ee2177b8..4fab6c561 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -80bb207ab79131ff264a205703fcc798e3353dbead81e39dadf262979d6d6ad786123588e330c8d0bccddbcb7b7ce9af8447c73a317174019977d2392edf31f6 \ No newline at end of file +f1b2b43197e1bbb305000d5a84c228361afb876d23ed866cdb073fe7410335c87fb16066c031d0e4397225321632566c00f48eac6187d59bdeab9a8c60986c3c \ No newline at end of file From 9304b3806120305dac6aa59133db233a070528f5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 18 Mar 2016 07:45:49 -0500 Subject: [PATCH 051/259] Update MGXS tests since pandas 0.18.0 changed output slightly --- .../results_true.dat | 62 +- .../results_true.dat | 4 +- .../results_true.dat | 140 +- .../results_true.dat | 2520 ++++++++--------- 4 files changed, 1363 insertions(+), 1363 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 8b8556ffa..438215372 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -2,48 +2,48 @@ 0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. 0 1 1 total 0.076425 0.003691 material group in group out nuclide mean std. dev. 0 1 1 1 total 0.345643 0.021487 material group out nuclide mean std. dev. -0 1 1 total 1 0.055333 material group in nuclide mean std. dev. +0 1 1 total 1.0 0.055333 material group in nuclide mean std. dev. 0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. -0 2 1 total 0 0 material group in group out nuclide mean std. dev. +0 2 1 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 2 1 1 total 0.241262 0.00841 material group out nuclide mean std. dev. -0 2 1 total 0 0 material group in nuclide mean std. dev. +0 2 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 3 1 total 0.400028 0.034667 material group in nuclide mean std. dev. -0 3 1 total 0 0 material group in group out nuclide mean std. dev. +0 3 1 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 3 1 1 total 0.393462 0.033646 material group out nuclide mean std. dev. -0 3 1 total 0 0 material group in nuclide mean std. dev. +0 3 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 4 1 total 0.377402 0.072937 material group in nuclide mean std. dev. -0 4 1 total 0 0 material group in group out nuclide mean std. dev. +0 4 1 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 4 1 1 total 0.371473 0.071226 material group out nuclide mean std. dev. -0 4 1 total 0 0 material group in nuclide mean std. dev. -0 5 1 total 0 0 material group in nuclide mean std. dev. -0 5 1 total 0 0 material group in group out nuclide mean std. dev. -0 5 1 1 total 0 0 material group out nuclide mean std. dev. -0 5 1 total 0 0 material group in nuclide mean std. dev. -0 6 1 total 0 0 material group in nuclide mean std. dev. -0 6 1 total 0 0 material group in group out nuclide mean std. dev. -0 6 1 1 total 0 0 material group out nuclide mean std. dev. -0 6 1 total 0 0 material group in nuclide mean std. dev. -0 7 1 total 0 0 material group in nuclide mean std. dev. -0 7 1 total 0 0 material group in group out nuclide mean std. dev. -0 7 1 1 total 0 0 material group out nuclide mean std. dev. -0 7 1 total 0 0 material group in nuclide mean std. dev. -0 8 1 total 0 0 material group in nuclide mean std. dev. -0 8 1 total 0 0 material group in group out nuclide mean std. dev. -0 8 1 1 total 0 0 material group out nuclide mean std. dev. -0 8 1 total 0 0 material group in nuclide mean std. dev. +0 4 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 5 1 1 total 0.0 0.0 material group out nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 6 1 1 total 0.0 0.0 material group out nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 7 1 1 total 0.0 0.0 material group out nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 8 1 1 total 0.0 0.0 material group out nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 9 1 total 0.600536 0.748875 material group in nuclide mean std. dev. -0 9 1 total 0 0 material group in group out nuclide mean std. dev. +0 9 1 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 9 1 1 total 0.600536 0.748875 material group out nuclide mean std. dev. -0 9 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10 1 total 0.235515 0.613974 material group in nuclide mean std. dev. -0 10 1 total 0 0 material group in group out nuclide mean std. dev. +0 10 1 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 10 1 1 total 0.235515 0.613974 material group out nuclide mean std. dev. -0 10 1 total 0 0 material group in nuclide mean std. dev. +0 10 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 11 1 total 0.510145 0.741941 material group in nuclide mean std. dev. -0 11 1 total 0 0 material group in group out nuclide mean std. dev. +0 11 1 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 11 1 1 total 0.491857 0.715554 material group out nuclide mean std. dev. -0 11 1 total 0 0 material group in nuclide mean std. dev. +0 11 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 12 1 total 0.73836 0.825631 material group in nuclide mean std. dev. -0 12 1 total 0 0 material group in group out nuclide mean std. dev. +0 12 1 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 12 1 1 total 0.723265 0.808231 material group out nuclide mean std. dev. -0 12 1 total 0 0 \ No newline at end of file +0 12 1 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 99c373f99..0d5c7c7b4 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ avg(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.718919 0.520644 avg(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 0 avg(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 total 0.0 0.0 avg(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.695166 0.510606 avg(distribcell) group out nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 29b94f44f..b6cef05dc 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -7,115 +7,115 @@ 2 1 1 2 total 0.001559 0.000510 1 1 2 1 total 0.000000 0.000000 0 1 2 2 total 0.422051 0.021617 material group out nuclide mean std. dev. -1 1 1 total 1 0.055333 -0 1 2 total 0 0.000000 material group in nuclide mean std. dev. +1 1 1 total 1.0 0.055333 +0 1 2 total 0.0 0.000000 material group in nuclide mean std. dev. 1 2 1 total 0.237254 0.008184 0 2 2 total 0.285930 0.048796 material group in nuclide mean std. dev. -1 2 1 total 0 0 -0 2 2 total 0 0 material group in group out nuclide mean std. dev. +1 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 2 1 1 total 0.237254 0.008184 2 2 1 2 total 0.000000 0.000000 1 2 2 1 total 0.000000 0.000000 0 2 2 2 total 0.285930 0.048796 material group out nuclide mean std. dev. -1 2 1 total 0 0 -0 2 2 total 0 0 material group in nuclide mean std. dev. +1 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 3 1 total 0.286906 0.027401 0 3 2 total 1.418151 0.265308 material group in nuclide mean std. dev. -1 3 1 total 0 0 -0 3 2 total 0 0 material group in group out nuclide mean std. dev. +1 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 3 1 1 total 0.259937 0.026115 2 3 1 2 total 0.026187 0.001665 1 3 2 1 total 0.000000 0.000000 0 3 2 2 total 1.359521 0.258505 material group out nuclide mean std. dev. -1 3 1 total 0 0 -0 3 2 total 0 0 material group in nuclide mean std. dev. +1 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 4 1 total 0.242447 0.061031 0 4 2 total 1.253959 0.388363 material group in nuclide mean std. dev. -1 4 1 total 0 0 -0 4 2 total 0 0 material group in group out nuclide mean std. dev. +1 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 4 1 1 total 0.217930 0.058565 2 4 1 2 total 0.023662 0.003083 1 4 2 1 total 0.000000 0.000000 0 4 2 2 total 1.215074 0.381025 material group out nuclide mean std. dev. -1 4 1 total 0 0 -0 4 2 total 0 0 material group in nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in group out nuclide mean std. dev. -3 5 1 1 total 0 0 -2 5 1 2 total 0 0 -1 5 2 1 total 0 0 -0 5 2 2 total 0 0 material group out nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in group out nuclide mean std. dev. -3 6 1 1 total 0 0 -2 6 1 2 total 0 0 -1 6 2 1 total 0 0 -0 6 2 2 total 0 0 material group out nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in group out nuclide mean std. dev. -3 7 1 1 total 0 0 -2 7 1 2 total 0 0 -1 7 2 1 total 0 0 -0 7 2 2 total 0 0 material group out nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in group out nuclide mean std. dev. -3 8 1 1 total 0 0 -2 8 1 2 total 0 0 -1 8 2 1 total 0 0 -0 8 2 2 total 0 0 material group out nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in nuclide mean std. dev. +1 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 5 1 1 total 0.0 0.0 +2 5 1 2 total 0.0 0.0 +1 5 2 1 total 0.0 0.0 +0 5 2 2 total 0.0 0.0 material group out nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 6 1 1 total 0.0 0.0 +2 6 1 2 total 0.0 0.0 +1 6 2 1 total 0.0 0.0 +0 6 2 2 total 0.0 0.0 material group out nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 7 1 1 total 0.0 0.0 +2 7 1 2 total 0.0 0.0 +1 7 2 1 total 0.0 0.0 +0 7 2 2 total 0.0 0.0 material group out nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 8 1 1 total 0.0 0.0 +2 8 1 2 total 0.0 0.0 +1 8 2 1 total 0.0 0.0 +0 8 2 2 total 0.0 0.0 material group out nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 9 1 total 0.600536 0.748875 0 9 2 total 0.000000 0.000000 material group in nuclide mean std. dev. -1 9 1 total 0 0 -0 9 2 total 0 0 material group in group out nuclide mean std. dev. +1 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 9 1 1 total 0.600536 0.748875 2 9 1 2 total 0.000000 0.000000 1 9 2 1 total 0.000000 0.000000 0 9 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. -1 9 1 total 0 0 -0 9 2 total 0 0 material group in nuclide mean std. dev. +1 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10 1 total 0.235515 0.613974 0 10 2 total 0.000000 0.000000 material group in nuclide mean std. dev. -1 10 1 total 0 0 -0 10 2 total 0 0 material group in group out nuclide mean std. dev. +1 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 10 1 1 total 0.235515 0.613974 2 10 1 2 total 0.000000 0.000000 1 10 2 1 total 0.000000 0.000000 0 10 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. -1 10 1 total 0 0 -0 10 2 total 0 0 material group in nuclide mean std. dev. +1 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 11 1 total 0.186324 0.632129 0 11 2 total 0.945986 1.591133 material group in nuclide mean std. dev. -1 11 1 total 0 0 -0 11 2 total 0 0 material group in group out nuclide mean std. dev. +1 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 11 1 1 total 0.154449 0.597686 2 11 1 2 total 0.031875 0.045078 1 11 2 1 total 0.000000 0.000000 0 11 2 2 total 0.903085 1.532144 material group out nuclide mean std. dev. -1 11 1 total 0 0 -0 11 2 total 0 0 material group in nuclide mean std. dev. +1 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 12 1 total 0.213292 0.271444 0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. -1 12 1 total 0 0 -0 12 2 total 0 0 material group in group out nuclide mean std. dev. +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 12 1 1 total 0.186052 0.257633 2 12 1 2 total 0.027240 0.029555 1 12 2 1 total 0.000000 0.000000 0 12 2 2 total 1.357118 2.089846 material group out nuclide mean std. dev. -1 12 1 total 0 0 -0 12 2 total 0 0 \ No newline at end of file +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 6c34647eb..943df1d80 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -271,74 +271,74 @@ 31 1 2 2 Eu-153 0.000000 0.000000 32 1 2 2 Gd-155 0.000000 0.000000 33 1 2 2 O-16 0.196946 0.014729 material group out nuclide mean std. dev. -34 1 1 U-234 0 0.000000 -35 1 1 U-235 1 0.066362 -36 1 1 U-236 0 0.000000 -37 1 1 U-238 1 0.093082 -38 1 1 Np-237 0 0.000000 -39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.104567 -41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.263696 -43 1 1 Pu-242 0 0.000000 -44 1 1 Am-241 0 0.000000 -45 1 1 Am-242m 0 0.000000 -46 1 1 Am-243 0 0.000000 -47 1 1 Cm-242 0 0.000000 -48 1 1 Cm-243 0 0.000000 -49 1 1 Cm-244 0 0.000000 -50 1 1 Cm-245 0 0.000000 -51 1 1 Mo-95 0 0.000000 -52 1 1 Tc-99 0 0.000000 -53 1 1 Ru-101 0 0.000000 -54 1 1 Ru-103 0 0.000000 -55 1 1 Ag-109 0 0.000000 -56 1 1 Xe-135 0 0.000000 -57 1 1 Cs-133 0 0.000000 -58 1 1 Nd-143 0 0.000000 -59 1 1 Nd-145 0 0.000000 -60 1 1 Sm-147 0 0.000000 -61 1 1 Sm-149 0 0.000000 -62 1 1 Sm-150 0 0.000000 -63 1 1 Sm-151 0 0.000000 -64 1 1 Sm-152 0 0.000000 -65 1 1 Eu-153 0 0.000000 -66 1 1 Gd-155 0 0.000000 -67 1 1 O-16 0 0.000000 -0 1 2 U-234 0 0.000000 -1 1 2 U-235 0 0.000000 -2 1 2 U-236 0 0.000000 -3 1 2 U-238 0 0.000000 -4 1 2 Np-237 0 0.000000 -5 1 2 Pu-238 0 0.000000 -6 1 2 Pu-239 0 0.000000 -7 1 2 Pu-240 0 0.000000 -8 1 2 Pu-241 0 0.000000 -9 1 2 Pu-242 0 0.000000 -10 1 2 Am-241 0 0.000000 -11 1 2 Am-242m 0 0.000000 -12 1 2 Am-243 0 0.000000 -13 1 2 Cm-242 0 0.000000 -14 1 2 Cm-243 0 0.000000 -15 1 2 Cm-244 0 0.000000 -16 1 2 Cm-245 0 0.000000 -17 1 2 Mo-95 0 0.000000 -18 1 2 Tc-99 0 0.000000 -19 1 2 Ru-101 0 0.000000 -20 1 2 Ru-103 0 0.000000 -21 1 2 Ag-109 0 0.000000 -22 1 2 Xe-135 0 0.000000 -23 1 2 Cs-133 0 0.000000 -24 1 2 Nd-143 0 0.000000 -25 1 2 Nd-145 0 0.000000 -26 1 2 Sm-147 0 0.000000 -27 1 2 Sm-149 0 0.000000 -28 1 2 Sm-150 0 0.000000 -29 1 2 Sm-151 0 0.000000 -30 1 2 Sm-152 0 0.000000 -31 1 2 Eu-153 0 0.000000 -32 1 2 Gd-155 0 0.000000 -33 1 2 O-16 0 0.000000 material group in nuclide mean std. dev. +34 1 1 U-234 0.0 0.000000 +35 1 1 U-235 1.0 0.066362 +36 1 1 U-236 0.0 0.000000 +37 1 1 U-238 1.0 0.093082 +38 1 1 Np-237 0.0 0.000000 +39 1 1 Pu-238 0.0 0.000000 +40 1 1 Pu-239 1.0 0.104567 +41 1 1 Pu-240 0.0 0.000000 +42 1 1 Pu-241 1.0 0.263696 +43 1 1 Pu-242 0.0 0.000000 +44 1 1 Am-241 0.0 0.000000 +45 1 1 Am-242m 0.0 0.000000 +46 1 1 Am-243 0.0 0.000000 +47 1 1 Cm-242 0.0 0.000000 +48 1 1 Cm-243 0.0 0.000000 +49 1 1 Cm-244 0.0 0.000000 +50 1 1 Cm-245 0.0 0.000000 +51 1 1 Mo-95 0.0 0.000000 +52 1 1 Tc-99 0.0 0.000000 +53 1 1 Ru-101 0.0 0.000000 +54 1 1 Ru-103 0.0 0.000000 +55 1 1 Ag-109 0.0 0.000000 +56 1 1 Xe-135 0.0 0.000000 +57 1 1 Cs-133 0.0 0.000000 +58 1 1 Nd-143 0.0 0.000000 +59 1 1 Nd-145 0.0 0.000000 +60 1 1 Sm-147 0.0 0.000000 +61 1 1 Sm-149 0.0 0.000000 +62 1 1 Sm-150 0.0 0.000000 +63 1 1 Sm-151 0.0 0.000000 +64 1 1 Sm-152 0.0 0.000000 +65 1 1 Eu-153 0.0 0.000000 +66 1 1 Gd-155 0.0 0.000000 +67 1 1 O-16 0.0 0.000000 +0 1 2 U-234 0.0 0.000000 +1 1 2 U-235 0.0 0.000000 +2 1 2 U-236 0.0 0.000000 +3 1 2 U-238 0.0 0.000000 +4 1 2 Np-237 0.0 0.000000 +5 1 2 Pu-238 0.0 0.000000 +6 1 2 Pu-239 0.0 0.000000 +7 1 2 Pu-240 0.0 0.000000 +8 1 2 Pu-241 0.0 0.000000 +9 1 2 Pu-242 0.0 0.000000 +10 1 2 Am-241 0.0 0.000000 +11 1 2 Am-242m 0.0 0.000000 +12 1 2 Am-243 0.0 0.000000 +13 1 2 Cm-242 0.0 0.000000 +14 1 2 Cm-243 0.0 0.000000 +15 1 2 Cm-244 0.0 0.000000 +16 1 2 Cm-245 0.0 0.000000 +17 1 2 Mo-95 0.0 0.000000 +18 1 2 Tc-99 0.0 0.000000 +19 1 2 Ru-101 0.0 0.000000 +20 1 2 Ru-103 0.0 0.000000 +21 1 2 Ag-109 0.0 0.000000 +22 1 2 Xe-135 0.0 0.000000 +23 1 2 Cs-133 0.0 0.000000 +24 1 2 Nd-143 0.0 0.000000 +25 1 2 Nd-145 0.0 0.000000 +26 1 2 Sm-147 0.0 0.000000 +27 1 2 Sm-149 0.0 0.000000 +28 1 2 Sm-150 0.0 0.000000 +29 1 2 Sm-151 0.0 0.000000 +30 1 2 Sm-152 0.0 0.000000 +31 1 2 Eu-153 0.0 0.000000 +32 1 2 Gd-155 0.0 0.000000 +33 1 2 O-16 0.0 0.000000 material group in nuclide mean std. dev. 5 2 1 Zr-90 0.104734 0.008915 6 2 1 Zr-91 0.036155 0.003735 7 2 1 Zr-92 0.042422 0.003029 @@ -349,16 +349,16 @@ 2 2 2 Zr-92 0.041633 0.016323 3 2 2 Zr-94 0.060818 0.021483 4 2 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0 0 -6 2 1 Zr-91 0 0 -7 2 1 Zr-92 0 0 -8 2 1 Zr-94 0 0 -9 2 1 Zr-96 0 0 -0 2 2 Zr-90 0 0 -1 2 2 Zr-91 0 0 -2 2 2 Zr-92 0 0 -3 2 2 Zr-94 0 0 -4 2 2 Zr-96 0 0 material group in group out nuclide mean std. dev. +5 2 1 Zr-90 0.0 0.0 +6 2 1 Zr-91 0.0 0.0 +7 2 1 Zr-92 0.0 0.0 +8 2 1 Zr-94 0.0 0.0 +9 2 1 Zr-96 0.0 0.0 +0 2 2 Zr-90 0.0 0.0 +1 2 2 Zr-91 0.0 0.0 +2 2 2 Zr-92 0.0 0.0 +3 2 2 Zr-94 0.0 0.0 +4 2 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. 15 2 1 1 Zr-90 0.104734 0.008915 16 2 1 1 Zr-91 0.036155 0.003735 17 2 1 1 Zr-92 0.042422 0.003029 @@ -379,16 +379,16 @@ 2 2 2 2 Zr-92 0.041633 0.016323 3 2 2 2 Zr-94 0.060818 0.021483 4 2 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. -5 2 1 Zr-90 0 0 -6 2 1 Zr-91 0 0 -7 2 1 Zr-92 0 0 -8 2 1 Zr-94 0 0 -9 2 1 Zr-96 0 0 -0 2 2 Zr-90 0 0 -1 2 2 Zr-91 0 0 -2 2 2 Zr-92 0 0 -3 2 2 Zr-94 0 0 -4 2 2 Zr-96 0 0 material group in nuclide mean std. dev. +5 2 1 Zr-90 0.0 0.0 +6 2 1 Zr-91 0.0 0.0 +7 2 1 Zr-92 0.0 0.0 +8 2 1 Zr-94 0.0 0.0 +9 2 1 Zr-96 0.0 0.0 +0 2 2 Zr-90 0.0 0.0 +1 2 2 Zr-91 0.0 0.0 +2 2 2 Zr-92 0.0 0.0 +3 2 2 Zr-94 0.0 0.0 +4 2 2 Zr-96 0.0 0.0 material group in nuclide mean std. dev. 4 3 1 H-1 0.207103 0.023028 5 3 1 O-16 0.079282 0.005197 6 3 1 B-10 0.000521 0.000244 @@ -397,14 +397,14 @@ 1 3 2 O-16 0.085363 0.014001 2 3 2 B-10 0.049249 0.008232 3 3 2 B-11 0.000195 0.001527 material group in nuclide mean std. dev. -4 3 1 H-1 0 0 -5 3 1 O-16 0 0 -6 3 1 B-10 0 0 -7 3 1 B-11 0 0 -0 3 2 H-1 0 0 -1 3 2 O-16 0 0 -2 3 2 B-10 0 0 -3 3 2 B-11 0 0 material group in group out nuclide mean std. dev. +4 3 1 H-1 0.0 0.0 +5 3 1 O-16 0.0 0.0 +6 3 1 B-10 0.0 0.0 +7 3 1 B-11 0.0 0.0 +0 3 2 H-1 0.0 0.0 +1 3 2 O-16 0.0 0.0 +2 3 2 B-10 0.0 0.0 +3 3 2 B-11 0.0 0.0 material group in group out nuclide mean std. dev. 12 3 1 1 H-1 0.181306 0.022102 13 3 1 1 O-16 0.078631 0.005044 14 3 1 1 B-10 0.000000 0.000000 @@ -421,14 +421,14 @@ 1 3 2 2 O-16 0.085363 0.014001 2 3 2 2 B-10 0.000000 0.000000 3 3 2 2 B-11 0.000195 0.001527 material group out nuclide mean std. dev. -4 3 1 H-1 0 0 -5 3 1 O-16 0 0 -6 3 1 B-10 0 0 -7 3 1 B-11 0 0 -0 3 2 H-1 0 0 -1 3 2 O-16 0 0 -2 3 2 B-10 0 0 -3 3 2 B-11 0 0 material group in nuclide mean std. dev. +4 3 1 H-1 0.0 0.0 +5 3 1 O-16 0.0 0.0 +6 3 1 B-10 0.0 0.0 +7 3 1 B-11 0.0 0.0 +0 3 2 H-1 0.0 0.0 +1 3 2 O-16 0.0 0.0 +2 3 2 B-10 0.0 0.0 +3 3 2 B-11 0.0 0.0 material group in nuclide mean std. dev. 4 4 1 H-1 0.175242 0.053715 5 4 1 O-16 0.066545 0.010083 6 4 1 B-10 0.000570 0.000352 @@ -437,14 +437,14 @@ 1 4 2 O-16 0.085141 0.028073 2 4 2 B-10 0.025923 0.007276 3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. -4 4 1 H-1 0 0 -5 4 1 O-16 0 0 -6 4 1 B-10 0 0 -7 4 1 B-11 0 0 -0 4 2 H-1 0 0 -1 4 2 O-16 0 0 -2 4 2 B-10 0 0 -3 4 2 B-11 0 0 material group in group out nuclide mean std. dev. +4 4 1 H-1 0.0 0.0 +5 4 1 O-16 0.0 0.0 +6 4 1 B-10 0.0 0.0 +7 4 1 B-11 0.0 0.0 +0 4 2 H-1 0.0 0.0 +1 4 2 O-16 0.0 0.0 +2 4 2 B-10 0.0 0.0 +3 4 2 B-11 0.0 0.0 material group in group out nuclide mean std. dev. 12 4 1 1 H-1 0.151295 0.051491 13 4 1 1 O-16 0.066545 0.010083 14 4 1 1 B-10 0.000000 0.000000 @@ -461,914 +461,914 @@ 1 4 2 2 O-16 0.085141 0.028073 2 4 2 2 B-10 0.000000 0.000000 3 4 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. -4 4 1 H-1 0 0 -5 4 1 O-16 0 0 -6 4 1 B-10 0 0 -7 4 1 B-11 0 0 -0 4 2 H-1 0 0 -1 4 2 O-16 0 0 -2 4 2 B-10 0 0 -3 4 2 B-11 0 0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in group out nuclide mean std. dev. -81 5 1 1 Fe-54 0 0 -82 5 1 1 Fe-56 0 0 -83 5 1 1 Fe-57 0 0 -84 5 1 1 Fe-58 0 0 -85 5 1 1 Ni-58 0 0 -86 5 1 1 Ni-60 0 0 -87 5 1 1 Ni-61 0 0 -88 5 1 1 Ni-62 0 0 -89 5 1 1 Ni-64 0 0 -90 5 1 1 Mn-55 0 0 -91 5 1 1 Mo-92 0 0 -92 5 1 1 Mo-94 0 0 -93 5 1 1 Mo-95 0 0 -94 5 1 1 Mo-96 0 0 -95 5 1 1 Mo-97 0 0 -96 5 1 1 Mo-98 0 0 -97 5 1 1 Mo-100 0 0 -98 5 1 1 Si-28 0 0 -99 5 1 1 Si-29 0 0 -100 5 1 1 Si-30 0 0 -101 5 1 1 Cr-50 0 0 -102 5 1 1 Cr-52 0 0 -103 5 1 1 Cr-53 0 0 -104 5 1 1 Cr-54 0 0 -105 5 1 1 C-Nat 0 0 -106 5 1 1 Cu-63 0 0 -107 5 1 1 Cu-65 0 0 -54 5 1 2 Fe-54 0 0 -55 5 1 2 Fe-56 0 0 -56 5 1 2 Fe-57 0 0 -57 5 1 2 Fe-58 0 0 -58 5 1 2 Ni-58 0 0 -59 5 1 2 Ni-60 0 0 -60 5 1 2 Ni-61 0 0 -61 5 1 2 Ni-62 0 0 -62 5 1 2 Ni-64 0 0 -63 5 1 2 Mn-55 0 0 -64 5 1 2 Mo-92 0 0 -65 5 1 2 Mo-94 0 0 -66 5 1 2 Mo-95 0 0 -67 5 1 2 Mo-96 0 0 -68 5 1 2 Mo-97 0 0 -69 5 1 2 Mo-98 0 0 -70 5 1 2 Mo-100 0 0 -71 5 1 2 Si-28 0 0 -72 5 1 2 Si-29 0 0 -73 5 1 2 Si-30 0 0 -74 5 1 2 Cr-50 0 0 -75 5 1 2 Cr-52 0 0 -76 5 1 2 Cr-53 0 0 -77 5 1 2 Cr-54 0 0 -78 5 1 2 C-Nat 0 0 -79 5 1 2 Cu-63 0 0 -80 5 1 2 Cu-65 0 0 -27 5 2 1 Fe-54 0 0 -28 5 2 1 Fe-56 0 0 -29 5 2 1 Fe-57 0 0 -30 5 2 1 Fe-58 0 0 -31 5 2 1 Ni-58 0 0 -32 5 2 1 Ni-60 0 0 -33 5 2 1 Ni-61 0 0 -34 5 2 1 Ni-62 0 0 -35 5 2 1 Ni-64 0 0 -36 5 2 1 Mn-55 0 0 -37 5 2 1 Mo-92 0 0 -38 5 2 1 Mo-94 0 0 -39 5 2 1 Mo-95 0 0 -40 5 2 1 Mo-96 0 0 -41 5 2 1 Mo-97 0 0 -42 5 2 1 Mo-98 0 0 -43 5 2 1 Mo-100 0 0 -44 5 2 1 Si-28 0 0 -45 5 2 1 Si-29 0 0 -46 5 2 1 Si-30 0 0 -47 5 2 1 Cr-50 0 0 -48 5 2 1 Cr-52 0 0 -49 5 2 1 Cr-53 0 0 -50 5 2 1 Cr-54 0 0 -51 5 2 1 C-Nat 0 0 -52 5 2 1 Cu-63 0 0 -53 5 2 1 Cu-65 0 0 -0 5 2 2 Fe-54 0 0 -1 5 2 2 Fe-56 0 0 -2 5 2 2 Fe-57 0 0 -3 5 2 2 Fe-58 0 0 -4 5 2 2 Ni-58 0 0 -5 5 2 2 Ni-60 0 0 -6 5 2 2 Ni-61 0 0 -7 5 2 2 Ni-62 0 0 -8 5 2 2 Ni-64 0 0 -9 5 2 2 Mn-55 0 0 -10 5 2 2 Mo-92 0 0 -11 5 2 2 Mo-94 0 0 -12 5 2 2 Mo-95 0 0 -13 5 2 2 Mo-96 0 0 -14 5 2 2 Mo-97 0 0 -15 5 2 2 Mo-98 0 0 -16 5 2 2 Mo-100 0 0 -17 5 2 2 Si-28 0 0 -18 5 2 2 Si-29 0 0 -19 5 2 2 Si-30 0 0 -20 5 2 2 Cr-50 0 0 -21 5 2 2 Cr-52 0 0 -22 5 2 2 Cr-53 0 0 -23 5 2 2 Cr-54 0 0 -24 5 2 2 C-Nat 0 0 -25 5 2 2 Cu-63 0 0 -26 5 2 2 Cu-65 0 0 material group out nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 6 1 1 H-1 0 0 -64 6 1 1 O-16 0 0 -65 6 1 1 B-10 0 0 -66 6 1 1 B-11 0 0 -67 6 1 1 Fe-54 0 0 -68 6 1 1 Fe-56 0 0 -69 6 1 1 Fe-57 0 0 -70 6 1 1 Fe-58 0 0 -71 6 1 1 Ni-58 0 0 -72 6 1 1 Ni-60 0 0 -73 6 1 1 Ni-61 0 0 -74 6 1 1 Ni-62 0 0 -75 6 1 1 Ni-64 0 0 -76 6 1 1 Mn-55 0 0 -77 6 1 1 Si-28 0 0 -78 6 1 1 Si-29 0 0 -79 6 1 1 Si-30 0 0 -80 6 1 1 Cr-50 0 0 -81 6 1 1 Cr-52 0 0 -82 6 1 1 Cr-53 0 0 -83 6 1 1 Cr-54 0 0 -42 6 1 2 H-1 0 0 -43 6 1 2 O-16 0 0 -44 6 1 2 B-10 0 0 -45 6 1 2 B-11 0 0 -46 6 1 2 Fe-54 0 0 -47 6 1 2 Fe-56 0 0 -48 6 1 2 Fe-57 0 0 -49 6 1 2 Fe-58 0 0 -50 6 1 2 Ni-58 0 0 -51 6 1 2 Ni-60 0 0 -52 6 1 2 Ni-61 0 0 -53 6 1 2 Ni-62 0 0 -54 6 1 2 Ni-64 0 0 -55 6 1 2 Mn-55 0 0 -56 6 1 2 Si-28 0 0 -57 6 1 2 Si-29 0 0 -58 6 1 2 Si-30 0 0 -59 6 1 2 Cr-50 0 0 -60 6 1 2 Cr-52 0 0 -61 6 1 2 Cr-53 0 0 -62 6 1 2 Cr-54 0 0 -21 6 2 1 H-1 0 0 -22 6 2 1 O-16 0 0 -23 6 2 1 B-10 0 0 -24 6 2 1 B-11 0 0 -25 6 2 1 Fe-54 0 0 -26 6 2 1 Fe-56 0 0 -27 6 2 1 Fe-57 0 0 -28 6 2 1 Fe-58 0 0 -29 6 2 1 Ni-58 0 0 -30 6 2 1 Ni-60 0 0 -31 6 2 1 Ni-61 0 0 -32 6 2 1 Ni-62 0 0 -33 6 2 1 Ni-64 0 0 -34 6 2 1 Mn-55 0 0 -35 6 2 1 Si-28 0 0 -36 6 2 1 Si-29 0 0 -37 6 2 1 Si-30 0 0 -38 6 2 1 Cr-50 0 0 -39 6 2 1 Cr-52 0 0 -40 6 2 1 Cr-53 0 0 -41 6 2 1 Cr-54 0 0 -0 6 2 2 H-1 0 0 -1 6 2 2 O-16 0 0 -2 6 2 2 B-10 0 0 -3 6 2 2 B-11 0 0 -4 6 2 2 Fe-54 0 0 -5 6 2 2 Fe-56 0 0 -6 6 2 2 Fe-57 0 0 -7 6 2 2 Fe-58 0 0 -8 6 2 2 Ni-58 0 0 -9 6 2 2 Ni-60 0 0 -10 6 2 2 Ni-61 0 0 -11 6 2 2 Ni-62 0 0 -12 6 2 2 Ni-64 0 0 -13 6 2 2 Mn-55 0 0 -14 6 2 2 Si-28 0 0 -15 6 2 2 Si-29 0 0 -16 6 2 2 Si-30 0 0 -17 6 2 2 Cr-50 0 0 -18 6 2 2 Cr-52 0 0 -19 6 2 2 Cr-53 0 0 -20 6 2 2 Cr-54 0 0 material group out nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 7 1 1 H-1 0 0 -64 7 1 1 O-16 0 0 -65 7 1 1 B-10 0 0 -66 7 1 1 B-11 0 0 -67 7 1 1 Fe-54 0 0 -68 7 1 1 Fe-56 0 0 -69 7 1 1 Fe-57 0 0 -70 7 1 1 Fe-58 0 0 -71 7 1 1 Ni-58 0 0 -72 7 1 1 Ni-60 0 0 -73 7 1 1 Ni-61 0 0 -74 7 1 1 Ni-62 0 0 -75 7 1 1 Ni-64 0 0 -76 7 1 1 Mn-55 0 0 -77 7 1 1 Si-28 0 0 -78 7 1 1 Si-29 0 0 -79 7 1 1 Si-30 0 0 -80 7 1 1 Cr-50 0 0 -81 7 1 1 Cr-52 0 0 -82 7 1 1 Cr-53 0 0 -83 7 1 1 Cr-54 0 0 -42 7 1 2 H-1 0 0 -43 7 1 2 O-16 0 0 -44 7 1 2 B-10 0 0 -45 7 1 2 B-11 0 0 -46 7 1 2 Fe-54 0 0 -47 7 1 2 Fe-56 0 0 -48 7 1 2 Fe-57 0 0 -49 7 1 2 Fe-58 0 0 -50 7 1 2 Ni-58 0 0 -51 7 1 2 Ni-60 0 0 -52 7 1 2 Ni-61 0 0 -53 7 1 2 Ni-62 0 0 -54 7 1 2 Ni-64 0 0 -55 7 1 2 Mn-55 0 0 -56 7 1 2 Si-28 0 0 -57 7 1 2 Si-29 0 0 -58 7 1 2 Si-30 0 0 -59 7 1 2 Cr-50 0 0 -60 7 1 2 Cr-52 0 0 -61 7 1 2 Cr-53 0 0 -62 7 1 2 Cr-54 0 0 -21 7 2 1 H-1 0 0 -22 7 2 1 O-16 0 0 -23 7 2 1 B-10 0 0 -24 7 2 1 B-11 0 0 -25 7 2 1 Fe-54 0 0 -26 7 2 1 Fe-56 0 0 -27 7 2 1 Fe-57 0 0 -28 7 2 1 Fe-58 0 0 -29 7 2 1 Ni-58 0 0 -30 7 2 1 Ni-60 0 0 -31 7 2 1 Ni-61 0 0 -32 7 2 1 Ni-62 0 0 -33 7 2 1 Ni-64 0 0 -34 7 2 1 Mn-55 0 0 -35 7 2 1 Si-28 0 0 -36 7 2 1 Si-29 0 0 -37 7 2 1 Si-30 0 0 -38 7 2 1 Cr-50 0 0 -39 7 2 1 Cr-52 0 0 -40 7 2 1 Cr-53 0 0 -41 7 2 1 Cr-54 0 0 -0 7 2 2 H-1 0 0 -1 7 2 2 O-16 0 0 -2 7 2 2 B-10 0 0 -3 7 2 2 B-11 0 0 -4 7 2 2 Fe-54 0 0 -5 7 2 2 Fe-56 0 0 -6 7 2 2 Fe-57 0 0 -7 7 2 2 Fe-58 0 0 -8 7 2 2 Ni-58 0 0 -9 7 2 2 Ni-60 0 0 -10 7 2 2 Ni-61 0 0 -11 7 2 2 Ni-62 0 0 -12 7 2 2 Ni-64 0 0 -13 7 2 2 Mn-55 0 0 -14 7 2 2 Si-28 0 0 -15 7 2 2 Si-29 0 0 -16 7 2 2 Si-30 0 0 -17 7 2 2 Cr-50 0 0 -18 7 2 2 Cr-52 0 0 -19 7 2 2 Cr-53 0 0 -20 7 2 2 Cr-54 0 0 material group out nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 8 1 1 H-1 0 0 -64 8 1 1 O-16 0 0 -65 8 1 1 B-10 0 0 -66 8 1 1 B-11 0 0 -67 8 1 1 Fe-54 0 0 -68 8 1 1 Fe-56 0 0 -69 8 1 1 Fe-57 0 0 -70 8 1 1 Fe-58 0 0 -71 8 1 1 Ni-58 0 0 -72 8 1 1 Ni-60 0 0 -73 8 1 1 Ni-61 0 0 -74 8 1 1 Ni-62 0 0 -75 8 1 1 Ni-64 0 0 -76 8 1 1 Mn-55 0 0 -77 8 1 1 Si-28 0 0 -78 8 1 1 Si-29 0 0 -79 8 1 1 Si-30 0 0 -80 8 1 1 Cr-50 0 0 -81 8 1 1 Cr-52 0 0 -82 8 1 1 Cr-53 0 0 -83 8 1 1 Cr-54 0 0 -42 8 1 2 H-1 0 0 -43 8 1 2 O-16 0 0 -44 8 1 2 B-10 0 0 -45 8 1 2 B-11 0 0 -46 8 1 2 Fe-54 0 0 -47 8 1 2 Fe-56 0 0 -48 8 1 2 Fe-57 0 0 -49 8 1 2 Fe-58 0 0 -50 8 1 2 Ni-58 0 0 -51 8 1 2 Ni-60 0 0 -52 8 1 2 Ni-61 0 0 -53 8 1 2 Ni-62 0 0 -54 8 1 2 Ni-64 0 0 -55 8 1 2 Mn-55 0 0 -56 8 1 2 Si-28 0 0 -57 8 1 2 Si-29 0 0 -58 8 1 2 Si-30 0 0 -59 8 1 2 Cr-50 0 0 -60 8 1 2 Cr-52 0 0 -61 8 1 2 Cr-53 0 0 -62 8 1 2 Cr-54 0 0 -21 8 2 1 H-1 0 0 -22 8 2 1 O-16 0 0 -23 8 2 1 B-10 0 0 -24 8 2 1 B-11 0 0 -25 8 2 1 Fe-54 0 0 -26 8 2 1 Fe-56 0 0 -27 8 2 1 Fe-57 0 0 -28 8 2 1 Fe-58 0 0 -29 8 2 1 Ni-58 0 0 -30 8 2 1 Ni-60 0 0 -31 8 2 1 Ni-61 0 0 -32 8 2 1 Ni-62 0 0 -33 8 2 1 Ni-64 0 0 -34 8 2 1 Mn-55 0 0 -35 8 2 1 Si-28 0 0 -36 8 2 1 Si-29 0 0 -37 8 2 1 Si-30 0 0 -38 8 2 1 Cr-50 0 0 -39 8 2 1 Cr-52 0 0 -40 8 2 1 Cr-53 0 0 -41 8 2 1 Cr-54 0 0 -0 8 2 2 H-1 0 0 -1 8 2 2 O-16 0 0 -2 8 2 2 B-10 0 0 -3 8 2 2 B-11 0 0 -4 8 2 2 Fe-54 0 0 -5 8 2 2 Fe-56 0 0 -6 8 2 2 Fe-57 0 0 -7 8 2 2 Fe-58 0 0 -8 8 2 2 Ni-58 0 0 -9 8 2 2 Ni-60 0 0 -10 8 2 2 Ni-61 0 0 -11 8 2 2 Ni-62 0 0 -12 8 2 2 Ni-64 0 0 -13 8 2 2 Mn-55 0 0 -14 8 2 2 Si-28 0 0 -15 8 2 2 Si-29 0 0 -16 8 2 2 Si-30 0 0 -17 8 2 2 Cr-50 0 0 -18 8 2 2 Cr-52 0 0 -19 8 2 2 Cr-53 0 0 -20 8 2 2 Cr-54 0 0 material group out nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. +4 4 1 H-1 0.0 0.0 +5 4 1 O-16 0.0 0.0 +6 4 1 B-10 0.0 0.0 +7 4 1 B-11 0.0 0.0 +0 4 2 H-1 0.0 0.0 +1 4 2 O-16 0.0 0.0 +2 4 2 B-10 0.0 0.0 +3 4 2 B-11 0.0 0.0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0.0 0.0 +28 5 1 Fe-56 0.0 0.0 +29 5 1 Fe-57 0.0 0.0 +30 5 1 Fe-58 0.0 0.0 +31 5 1 Ni-58 0.0 0.0 +32 5 1 Ni-60 0.0 0.0 +33 5 1 Ni-61 0.0 0.0 +34 5 1 Ni-62 0.0 0.0 +35 5 1 Ni-64 0.0 0.0 +36 5 1 Mn-55 0.0 0.0 +37 5 1 Mo-92 0.0 0.0 +38 5 1 Mo-94 0.0 0.0 +39 5 1 Mo-95 0.0 0.0 +40 5 1 Mo-96 0.0 0.0 +41 5 1 Mo-97 0.0 0.0 +42 5 1 Mo-98 0.0 0.0 +43 5 1 Mo-100 0.0 0.0 +44 5 1 Si-28 0.0 0.0 +45 5 1 Si-29 0.0 0.0 +46 5 1 Si-30 0.0 0.0 +47 5 1 Cr-50 0.0 0.0 +48 5 1 Cr-52 0.0 0.0 +49 5 1 Cr-53 0.0 0.0 +50 5 1 Cr-54 0.0 0.0 +51 5 1 C-Nat 0.0 0.0 +52 5 1 Cu-63 0.0 0.0 +53 5 1 Cu-65 0.0 0.0 +0 5 2 Fe-54 0.0 0.0 +1 5 2 Fe-56 0.0 0.0 +2 5 2 Fe-57 0.0 0.0 +3 5 2 Fe-58 0.0 0.0 +4 5 2 Ni-58 0.0 0.0 +5 5 2 Ni-60 0.0 0.0 +6 5 2 Ni-61 0.0 0.0 +7 5 2 Ni-62 0.0 0.0 +8 5 2 Ni-64 0.0 0.0 +9 5 2 Mn-55 0.0 0.0 +10 5 2 Mo-92 0.0 0.0 +11 5 2 Mo-94 0.0 0.0 +12 5 2 Mo-95 0.0 0.0 +13 5 2 Mo-96 0.0 0.0 +14 5 2 Mo-97 0.0 0.0 +15 5 2 Mo-98 0.0 0.0 +16 5 2 Mo-100 0.0 0.0 +17 5 2 Si-28 0.0 0.0 +18 5 2 Si-29 0.0 0.0 +19 5 2 Si-30 0.0 0.0 +20 5 2 Cr-50 0.0 0.0 +21 5 2 Cr-52 0.0 0.0 +22 5 2 Cr-53 0.0 0.0 +23 5 2 Cr-54 0.0 0.0 +24 5 2 C-Nat 0.0 0.0 +25 5 2 Cu-63 0.0 0.0 +26 5 2 Cu-65 0.0 0.0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0.0 0.0 +28 5 1 Fe-56 0.0 0.0 +29 5 1 Fe-57 0.0 0.0 +30 5 1 Fe-58 0.0 0.0 +31 5 1 Ni-58 0.0 0.0 +32 5 1 Ni-60 0.0 0.0 +33 5 1 Ni-61 0.0 0.0 +34 5 1 Ni-62 0.0 0.0 +35 5 1 Ni-64 0.0 0.0 +36 5 1 Mn-55 0.0 0.0 +37 5 1 Mo-92 0.0 0.0 +38 5 1 Mo-94 0.0 0.0 +39 5 1 Mo-95 0.0 0.0 +40 5 1 Mo-96 0.0 0.0 +41 5 1 Mo-97 0.0 0.0 +42 5 1 Mo-98 0.0 0.0 +43 5 1 Mo-100 0.0 0.0 +44 5 1 Si-28 0.0 0.0 +45 5 1 Si-29 0.0 0.0 +46 5 1 Si-30 0.0 0.0 +47 5 1 Cr-50 0.0 0.0 +48 5 1 Cr-52 0.0 0.0 +49 5 1 Cr-53 0.0 0.0 +50 5 1 Cr-54 0.0 0.0 +51 5 1 C-Nat 0.0 0.0 +52 5 1 Cu-63 0.0 0.0 +53 5 1 Cu-65 0.0 0.0 +0 5 2 Fe-54 0.0 0.0 +1 5 2 Fe-56 0.0 0.0 +2 5 2 Fe-57 0.0 0.0 +3 5 2 Fe-58 0.0 0.0 +4 5 2 Ni-58 0.0 0.0 +5 5 2 Ni-60 0.0 0.0 +6 5 2 Ni-61 0.0 0.0 +7 5 2 Ni-62 0.0 0.0 +8 5 2 Ni-64 0.0 0.0 +9 5 2 Mn-55 0.0 0.0 +10 5 2 Mo-92 0.0 0.0 +11 5 2 Mo-94 0.0 0.0 +12 5 2 Mo-95 0.0 0.0 +13 5 2 Mo-96 0.0 0.0 +14 5 2 Mo-97 0.0 0.0 +15 5 2 Mo-98 0.0 0.0 +16 5 2 Mo-100 0.0 0.0 +17 5 2 Si-28 0.0 0.0 +18 5 2 Si-29 0.0 0.0 +19 5 2 Si-30 0.0 0.0 +20 5 2 Cr-50 0.0 0.0 +21 5 2 Cr-52 0.0 0.0 +22 5 2 Cr-53 0.0 0.0 +23 5 2 Cr-54 0.0 0.0 +24 5 2 C-Nat 0.0 0.0 +25 5 2 Cu-63 0.0 0.0 +26 5 2 Cu-65 0.0 0.0 material group in group out nuclide mean std. dev. +81 5 1 1 Fe-54 0.0 0.0 +82 5 1 1 Fe-56 0.0 0.0 +83 5 1 1 Fe-57 0.0 0.0 +84 5 1 1 Fe-58 0.0 0.0 +85 5 1 1 Ni-58 0.0 0.0 +86 5 1 1 Ni-60 0.0 0.0 +87 5 1 1 Ni-61 0.0 0.0 +88 5 1 1 Ni-62 0.0 0.0 +89 5 1 1 Ni-64 0.0 0.0 +90 5 1 1 Mn-55 0.0 0.0 +91 5 1 1 Mo-92 0.0 0.0 +92 5 1 1 Mo-94 0.0 0.0 +93 5 1 1 Mo-95 0.0 0.0 +94 5 1 1 Mo-96 0.0 0.0 +95 5 1 1 Mo-97 0.0 0.0 +96 5 1 1 Mo-98 0.0 0.0 +97 5 1 1 Mo-100 0.0 0.0 +98 5 1 1 Si-28 0.0 0.0 +99 5 1 1 Si-29 0.0 0.0 +100 5 1 1 Si-30 0.0 0.0 +101 5 1 1 Cr-50 0.0 0.0 +102 5 1 1 Cr-52 0.0 0.0 +103 5 1 1 Cr-53 0.0 0.0 +104 5 1 1 Cr-54 0.0 0.0 +105 5 1 1 C-Nat 0.0 0.0 +106 5 1 1 Cu-63 0.0 0.0 +107 5 1 1 Cu-65 0.0 0.0 +54 5 1 2 Fe-54 0.0 0.0 +55 5 1 2 Fe-56 0.0 0.0 +56 5 1 2 Fe-57 0.0 0.0 +57 5 1 2 Fe-58 0.0 0.0 +58 5 1 2 Ni-58 0.0 0.0 +59 5 1 2 Ni-60 0.0 0.0 +60 5 1 2 Ni-61 0.0 0.0 +61 5 1 2 Ni-62 0.0 0.0 +62 5 1 2 Ni-64 0.0 0.0 +63 5 1 2 Mn-55 0.0 0.0 +64 5 1 2 Mo-92 0.0 0.0 +65 5 1 2 Mo-94 0.0 0.0 +66 5 1 2 Mo-95 0.0 0.0 +67 5 1 2 Mo-96 0.0 0.0 +68 5 1 2 Mo-97 0.0 0.0 +69 5 1 2 Mo-98 0.0 0.0 +70 5 1 2 Mo-100 0.0 0.0 +71 5 1 2 Si-28 0.0 0.0 +72 5 1 2 Si-29 0.0 0.0 +73 5 1 2 Si-30 0.0 0.0 +74 5 1 2 Cr-50 0.0 0.0 +75 5 1 2 Cr-52 0.0 0.0 +76 5 1 2 Cr-53 0.0 0.0 +77 5 1 2 Cr-54 0.0 0.0 +78 5 1 2 C-Nat 0.0 0.0 +79 5 1 2 Cu-63 0.0 0.0 +80 5 1 2 Cu-65 0.0 0.0 +27 5 2 1 Fe-54 0.0 0.0 +28 5 2 1 Fe-56 0.0 0.0 +29 5 2 1 Fe-57 0.0 0.0 +30 5 2 1 Fe-58 0.0 0.0 +31 5 2 1 Ni-58 0.0 0.0 +32 5 2 1 Ni-60 0.0 0.0 +33 5 2 1 Ni-61 0.0 0.0 +34 5 2 1 Ni-62 0.0 0.0 +35 5 2 1 Ni-64 0.0 0.0 +36 5 2 1 Mn-55 0.0 0.0 +37 5 2 1 Mo-92 0.0 0.0 +38 5 2 1 Mo-94 0.0 0.0 +39 5 2 1 Mo-95 0.0 0.0 +40 5 2 1 Mo-96 0.0 0.0 +41 5 2 1 Mo-97 0.0 0.0 +42 5 2 1 Mo-98 0.0 0.0 +43 5 2 1 Mo-100 0.0 0.0 +44 5 2 1 Si-28 0.0 0.0 +45 5 2 1 Si-29 0.0 0.0 +46 5 2 1 Si-30 0.0 0.0 +47 5 2 1 Cr-50 0.0 0.0 +48 5 2 1 Cr-52 0.0 0.0 +49 5 2 1 Cr-53 0.0 0.0 +50 5 2 1 Cr-54 0.0 0.0 +51 5 2 1 C-Nat 0.0 0.0 +52 5 2 1 Cu-63 0.0 0.0 +53 5 2 1 Cu-65 0.0 0.0 +0 5 2 2 Fe-54 0.0 0.0 +1 5 2 2 Fe-56 0.0 0.0 +2 5 2 2 Fe-57 0.0 0.0 +3 5 2 2 Fe-58 0.0 0.0 +4 5 2 2 Ni-58 0.0 0.0 +5 5 2 2 Ni-60 0.0 0.0 +6 5 2 2 Ni-61 0.0 0.0 +7 5 2 2 Ni-62 0.0 0.0 +8 5 2 2 Ni-64 0.0 0.0 +9 5 2 2 Mn-55 0.0 0.0 +10 5 2 2 Mo-92 0.0 0.0 +11 5 2 2 Mo-94 0.0 0.0 +12 5 2 2 Mo-95 0.0 0.0 +13 5 2 2 Mo-96 0.0 0.0 +14 5 2 2 Mo-97 0.0 0.0 +15 5 2 2 Mo-98 0.0 0.0 +16 5 2 2 Mo-100 0.0 0.0 +17 5 2 2 Si-28 0.0 0.0 +18 5 2 2 Si-29 0.0 0.0 +19 5 2 2 Si-30 0.0 0.0 +20 5 2 2 Cr-50 0.0 0.0 +21 5 2 2 Cr-52 0.0 0.0 +22 5 2 2 Cr-53 0.0 0.0 +23 5 2 2 Cr-54 0.0 0.0 +24 5 2 2 C-Nat 0.0 0.0 +25 5 2 2 Cu-63 0.0 0.0 +26 5 2 2 Cu-65 0.0 0.0 material group out nuclide mean std. dev. +27 5 1 Fe-54 0.0 0.0 +28 5 1 Fe-56 0.0 0.0 +29 5 1 Fe-57 0.0 0.0 +30 5 1 Fe-58 0.0 0.0 +31 5 1 Ni-58 0.0 0.0 +32 5 1 Ni-60 0.0 0.0 +33 5 1 Ni-61 0.0 0.0 +34 5 1 Ni-62 0.0 0.0 +35 5 1 Ni-64 0.0 0.0 +36 5 1 Mn-55 0.0 0.0 +37 5 1 Mo-92 0.0 0.0 +38 5 1 Mo-94 0.0 0.0 +39 5 1 Mo-95 0.0 0.0 +40 5 1 Mo-96 0.0 0.0 +41 5 1 Mo-97 0.0 0.0 +42 5 1 Mo-98 0.0 0.0 +43 5 1 Mo-100 0.0 0.0 +44 5 1 Si-28 0.0 0.0 +45 5 1 Si-29 0.0 0.0 +46 5 1 Si-30 0.0 0.0 +47 5 1 Cr-50 0.0 0.0 +48 5 1 Cr-52 0.0 0.0 +49 5 1 Cr-53 0.0 0.0 +50 5 1 Cr-54 0.0 0.0 +51 5 1 C-Nat 0.0 0.0 +52 5 1 Cu-63 0.0 0.0 +53 5 1 Cu-65 0.0 0.0 +0 5 2 Fe-54 0.0 0.0 +1 5 2 Fe-56 0.0 0.0 +2 5 2 Fe-57 0.0 0.0 +3 5 2 Fe-58 0.0 0.0 +4 5 2 Ni-58 0.0 0.0 +5 5 2 Ni-60 0.0 0.0 +6 5 2 Ni-61 0.0 0.0 +7 5 2 Ni-62 0.0 0.0 +8 5 2 Ni-64 0.0 0.0 +9 5 2 Mn-55 0.0 0.0 +10 5 2 Mo-92 0.0 0.0 +11 5 2 Mo-94 0.0 0.0 +12 5 2 Mo-95 0.0 0.0 +13 5 2 Mo-96 0.0 0.0 +14 5 2 Mo-97 0.0 0.0 +15 5 2 Mo-98 0.0 0.0 +16 5 2 Mo-100 0.0 0.0 +17 5 2 Si-28 0.0 0.0 +18 5 2 Si-29 0.0 0.0 +19 5 2 Si-30 0.0 0.0 +20 5 2 Cr-50 0.0 0.0 +21 5 2 Cr-52 0.0 0.0 +22 5 2 Cr-53 0.0 0.0 +23 5 2 Cr-54 0.0 0.0 +24 5 2 C-Nat 0.0 0.0 +25 5 2 Cu-63 0.0 0.0 +26 5 2 Cu-65 0.0 0.0 material group in nuclide mean std. dev. +21 6 1 H-1 0.0 0.0 +22 6 1 O-16 0.0 0.0 +23 6 1 B-10 0.0 0.0 +24 6 1 B-11 0.0 0.0 +25 6 1 Fe-54 0.0 0.0 +26 6 1 Fe-56 0.0 0.0 +27 6 1 Fe-57 0.0 0.0 +28 6 1 Fe-58 0.0 0.0 +29 6 1 Ni-58 0.0 0.0 +30 6 1 Ni-60 0.0 0.0 +31 6 1 Ni-61 0.0 0.0 +32 6 1 Ni-62 0.0 0.0 +33 6 1 Ni-64 0.0 0.0 +34 6 1 Mn-55 0.0 0.0 +35 6 1 Si-28 0.0 0.0 +36 6 1 Si-29 0.0 0.0 +37 6 1 Si-30 0.0 0.0 +38 6 1 Cr-50 0.0 0.0 +39 6 1 Cr-52 0.0 0.0 +40 6 1 Cr-53 0.0 0.0 +41 6 1 Cr-54 0.0 0.0 +0 6 2 H-1 0.0 0.0 +1 6 2 O-16 0.0 0.0 +2 6 2 B-10 0.0 0.0 +3 6 2 B-11 0.0 0.0 +4 6 2 Fe-54 0.0 0.0 +5 6 2 Fe-56 0.0 0.0 +6 6 2 Fe-57 0.0 0.0 +7 6 2 Fe-58 0.0 0.0 +8 6 2 Ni-58 0.0 0.0 +9 6 2 Ni-60 0.0 0.0 +10 6 2 Ni-61 0.0 0.0 +11 6 2 Ni-62 0.0 0.0 +12 6 2 Ni-64 0.0 0.0 +13 6 2 Mn-55 0.0 0.0 +14 6 2 Si-28 0.0 0.0 +15 6 2 Si-29 0.0 0.0 +16 6 2 Si-30 0.0 0.0 +17 6 2 Cr-50 0.0 0.0 +18 6 2 Cr-52 0.0 0.0 +19 6 2 Cr-53 0.0 0.0 +20 6 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 6 1 H-1 0.0 0.0 +22 6 1 O-16 0.0 0.0 +23 6 1 B-10 0.0 0.0 +24 6 1 B-11 0.0 0.0 +25 6 1 Fe-54 0.0 0.0 +26 6 1 Fe-56 0.0 0.0 +27 6 1 Fe-57 0.0 0.0 +28 6 1 Fe-58 0.0 0.0 +29 6 1 Ni-58 0.0 0.0 +30 6 1 Ni-60 0.0 0.0 +31 6 1 Ni-61 0.0 0.0 +32 6 1 Ni-62 0.0 0.0 +33 6 1 Ni-64 0.0 0.0 +34 6 1 Mn-55 0.0 0.0 +35 6 1 Si-28 0.0 0.0 +36 6 1 Si-29 0.0 0.0 +37 6 1 Si-30 0.0 0.0 +38 6 1 Cr-50 0.0 0.0 +39 6 1 Cr-52 0.0 0.0 +40 6 1 Cr-53 0.0 0.0 +41 6 1 Cr-54 0.0 0.0 +0 6 2 H-1 0.0 0.0 +1 6 2 O-16 0.0 0.0 +2 6 2 B-10 0.0 0.0 +3 6 2 B-11 0.0 0.0 +4 6 2 Fe-54 0.0 0.0 +5 6 2 Fe-56 0.0 0.0 +6 6 2 Fe-57 0.0 0.0 +7 6 2 Fe-58 0.0 0.0 +8 6 2 Ni-58 0.0 0.0 +9 6 2 Ni-60 0.0 0.0 +10 6 2 Ni-61 0.0 0.0 +11 6 2 Ni-62 0.0 0.0 +12 6 2 Ni-64 0.0 0.0 +13 6 2 Mn-55 0.0 0.0 +14 6 2 Si-28 0.0 0.0 +15 6 2 Si-29 0.0 0.0 +16 6 2 Si-30 0.0 0.0 +17 6 2 Cr-50 0.0 0.0 +18 6 2 Cr-52 0.0 0.0 +19 6 2 Cr-53 0.0 0.0 +20 6 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 6 1 1 H-1 0.0 0.0 +64 6 1 1 O-16 0.0 0.0 +65 6 1 1 B-10 0.0 0.0 +66 6 1 1 B-11 0.0 0.0 +67 6 1 1 Fe-54 0.0 0.0 +68 6 1 1 Fe-56 0.0 0.0 +69 6 1 1 Fe-57 0.0 0.0 +70 6 1 1 Fe-58 0.0 0.0 +71 6 1 1 Ni-58 0.0 0.0 +72 6 1 1 Ni-60 0.0 0.0 +73 6 1 1 Ni-61 0.0 0.0 +74 6 1 1 Ni-62 0.0 0.0 +75 6 1 1 Ni-64 0.0 0.0 +76 6 1 1 Mn-55 0.0 0.0 +77 6 1 1 Si-28 0.0 0.0 +78 6 1 1 Si-29 0.0 0.0 +79 6 1 1 Si-30 0.0 0.0 +80 6 1 1 Cr-50 0.0 0.0 +81 6 1 1 Cr-52 0.0 0.0 +82 6 1 1 Cr-53 0.0 0.0 +83 6 1 1 Cr-54 0.0 0.0 +42 6 1 2 H-1 0.0 0.0 +43 6 1 2 O-16 0.0 0.0 +44 6 1 2 B-10 0.0 0.0 +45 6 1 2 B-11 0.0 0.0 +46 6 1 2 Fe-54 0.0 0.0 +47 6 1 2 Fe-56 0.0 0.0 +48 6 1 2 Fe-57 0.0 0.0 +49 6 1 2 Fe-58 0.0 0.0 +50 6 1 2 Ni-58 0.0 0.0 +51 6 1 2 Ni-60 0.0 0.0 +52 6 1 2 Ni-61 0.0 0.0 +53 6 1 2 Ni-62 0.0 0.0 +54 6 1 2 Ni-64 0.0 0.0 +55 6 1 2 Mn-55 0.0 0.0 +56 6 1 2 Si-28 0.0 0.0 +57 6 1 2 Si-29 0.0 0.0 +58 6 1 2 Si-30 0.0 0.0 +59 6 1 2 Cr-50 0.0 0.0 +60 6 1 2 Cr-52 0.0 0.0 +61 6 1 2 Cr-53 0.0 0.0 +62 6 1 2 Cr-54 0.0 0.0 +21 6 2 1 H-1 0.0 0.0 +22 6 2 1 O-16 0.0 0.0 +23 6 2 1 B-10 0.0 0.0 +24 6 2 1 B-11 0.0 0.0 +25 6 2 1 Fe-54 0.0 0.0 +26 6 2 1 Fe-56 0.0 0.0 +27 6 2 1 Fe-57 0.0 0.0 +28 6 2 1 Fe-58 0.0 0.0 +29 6 2 1 Ni-58 0.0 0.0 +30 6 2 1 Ni-60 0.0 0.0 +31 6 2 1 Ni-61 0.0 0.0 +32 6 2 1 Ni-62 0.0 0.0 +33 6 2 1 Ni-64 0.0 0.0 +34 6 2 1 Mn-55 0.0 0.0 +35 6 2 1 Si-28 0.0 0.0 +36 6 2 1 Si-29 0.0 0.0 +37 6 2 1 Si-30 0.0 0.0 +38 6 2 1 Cr-50 0.0 0.0 +39 6 2 1 Cr-52 0.0 0.0 +40 6 2 1 Cr-53 0.0 0.0 +41 6 2 1 Cr-54 0.0 0.0 +0 6 2 2 H-1 0.0 0.0 +1 6 2 2 O-16 0.0 0.0 +2 6 2 2 B-10 0.0 0.0 +3 6 2 2 B-11 0.0 0.0 +4 6 2 2 Fe-54 0.0 0.0 +5 6 2 2 Fe-56 0.0 0.0 +6 6 2 2 Fe-57 0.0 0.0 +7 6 2 2 Fe-58 0.0 0.0 +8 6 2 2 Ni-58 0.0 0.0 +9 6 2 2 Ni-60 0.0 0.0 +10 6 2 2 Ni-61 0.0 0.0 +11 6 2 2 Ni-62 0.0 0.0 +12 6 2 2 Ni-64 0.0 0.0 +13 6 2 2 Mn-55 0.0 0.0 +14 6 2 2 Si-28 0.0 0.0 +15 6 2 2 Si-29 0.0 0.0 +16 6 2 2 Si-30 0.0 0.0 +17 6 2 2 Cr-50 0.0 0.0 +18 6 2 2 Cr-52 0.0 0.0 +19 6 2 2 Cr-53 0.0 0.0 +20 6 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. +21 6 1 H-1 0.0 0.0 +22 6 1 O-16 0.0 0.0 +23 6 1 B-10 0.0 0.0 +24 6 1 B-11 0.0 0.0 +25 6 1 Fe-54 0.0 0.0 +26 6 1 Fe-56 0.0 0.0 +27 6 1 Fe-57 0.0 0.0 +28 6 1 Fe-58 0.0 0.0 +29 6 1 Ni-58 0.0 0.0 +30 6 1 Ni-60 0.0 0.0 +31 6 1 Ni-61 0.0 0.0 +32 6 1 Ni-62 0.0 0.0 +33 6 1 Ni-64 0.0 0.0 +34 6 1 Mn-55 0.0 0.0 +35 6 1 Si-28 0.0 0.0 +36 6 1 Si-29 0.0 0.0 +37 6 1 Si-30 0.0 0.0 +38 6 1 Cr-50 0.0 0.0 +39 6 1 Cr-52 0.0 0.0 +40 6 1 Cr-53 0.0 0.0 +41 6 1 Cr-54 0.0 0.0 +0 6 2 H-1 0.0 0.0 +1 6 2 O-16 0.0 0.0 +2 6 2 B-10 0.0 0.0 +3 6 2 B-11 0.0 0.0 +4 6 2 Fe-54 0.0 0.0 +5 6 2 Fe-56 0.0 0.0 +6 6 2 Fe-57 0.0 0.0 +7 6 2 Fe-58 0.0 0.0 +8 6 2 Ni-58 0.0 0.0 +9 6 2 Ni-60 0.0 0.0 +10 6 2 Ni-61 0.0 0.0 +11 6 2 Ni-62 0.0 0.0 +12 6 2 Ni-64 0.0 0.0 +13 6 2 Mn-55 0.0 0.0 +14 6 2 Si-28 0.0 0.0 +15 6 2 Si-29 0.0 0.0 +16 6 2 Si-30 0.0 0.0 +17 6 2 Cr-50 0.0 0.0 +18 6 2 Cr-52 0.0 0.0 +19 6 2 Cr-53 0.0 0.0 +20 6 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 7 1 H-1 0.0 0.0 +22 7 1 O-16 0.0 0.0 +23 7 1 B-10 0.0 0.0 +24 7 1 B-11 0.0 0.0 +25 7 1 Fe-54 0.0 0.0 +26 7 1 Fe-56 0.0 0.0 +27 7 1 Fe-57 0.0 0.0 +28 7 1 Fe-58 0.0 0.0 +29 7 1 Ni-58 0.0 0.0 +30 7 1 Ni-60 0.0 0.0 +31 7 1 Ni-61 0.0 0.0 +32 7 1 Ni-62 0.0 0.0 +33 7 1 Ni-64 0.0 0.0 +34 7 1 Mn-55 0.0 0.0 +35 7 1 Si-28 0.0 0.0 +36 7 1 Si-29 0.0 0.0 +37 7 1 Si-30 0.0 0.0 +38 7 1 Cr-50 0.0 0.0 +39 7 1 Cr-52 0.0 0.0 +40 7 1 Cr-53 0.0 0.0 +41 7 1 Cr-54 0.0 0.0 +0 7 2 H-1 0.0 0.0 +1 7 2 O-16 0.0 0.0 +2 7 2 B-10 0.0 0.0 +3 7 2 B-11 0.0 0.0 +4 7 2 Fe-54 0.0 0.0 +5 7 2 Fe-56 0.0 0.0 +6 7 2 Fe-57 0.0 0.0 +7 7 2 Fe-58 0.0 0.0 +8 7 2 Ni-58 0.0 0.0 +9 7 2 Ni-60 0.0 0.0 +10 7 2 Ni-61 0.0 0.0 +11 7 2 Ni-62 0.0 0.0 +12 7 2 Ni-64 0.0 0.0 +13 7 2 Mn-55 0.0 0.0 +14 7 2 Si-28 0.0 0.0 +15 7 2 Si-29 0.0 0.0 +16 7 2 Si-30 0.0 0.0 +17 7 2 Cr-50 0.0 0.0 +18 7 2 Cr-52 0.0 0.0 +19 7 2 Cr-53 0.0 0.0 +20 7 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 7 1 H-1 0.0 0.0 +22 7 1 O-16 0.0 0.0 +23 7 1 B-10 0.0 0.0 +24 7 1 B-11 0.0 0.0 +25 7 1 Fe-54 0.0 0.0 +26 7 1 Fe-56 0.0 0.0 +27 7 1 Fe-57 0.0 0.0 +28 7 1 Fe-58 0.0 0.0 +29 7 1 Ni-58 0.0 0.0 +30 7 1 Ni-60 0.0 0.0 +31 7 1 Ni-61 0.0 0.0 +32 7 1 Ni-62 0.0 0.0 +33 7 1 Ni-64 0.0 0.0 +34 7 1 Mn-55 0.0 0.0 +35 7 1 Si-28 0.0 0.0 +36 7 1 Si-29 0.0 0.0 +37 7 1 Si-30 0.0 0.0 +38 7 1 Cr-50 0.0 0.0 +39 7 1 Cr-52 0.0 0.0 +40 7 1 Cr-53 0.0 0.0 +41 7 1 Cr-54 0.0 0.0 +0 7 2 H-1 0.0 0.0 +1 7 2 O-16 0.0 0.0 +2 7 2 B-10 0.0 0.0 +3 7 2 B-11 0.0 0.0 +4 7 2 Fe-54 0.0 0.0 +5 7 2 Fe-56 0.0 0.0 +6 7 2 Fe-57 0.0 0.0 +7 7 2 Fe-58 0.0 0.0 +8 7 2 Ni-58 0.0 0.0 +9 7 2 Ni-60 0.0 0.0 +10 7 2 Ni-61 0.0 0.0 +11 7 2 Ni-62 0.0 0.0 +12 7 2 Ni-64 0.0 0.0 +13 7 2 Mn-55 0.0 0.0 +14 7 2 Si-28 0.0 0.0 +15 7 2 Si-29 0.0 0.0 +16 7 2 Si-30 0.0 0.0 +17 7 2 Cr-50 0.0 0.0 +18 7 2 Cr-52 0.0 0.0 +19 7 2 Cr-53 0.0 0.0 +20 7 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 7 1 1 H-1 0.0 0.0 +64 7 1 1 O-16 0.0 0.0 +65 7 1 1 B-10 0.0 0.0 +66 7 1 1 B-11 0.0 0.0 +67 7 1 1 Fe-54 0.0 0.0 +68 7 1 1 Fe-56 0.0 0.0 +69 7 1 1 Fe-57 0.0 0.0 +70 7 1 1 Fe-58 0.0 0.0 +71 7 1 1 Ni-58 0.0 0.0 +72 7 1 1 Ni-60 0.0 0.0 +73 7 1 1 Ni-61 0.0 0.0 +74 7 1 1 Ni-62 0.0 0.0 +75 7 1 1 Ni-64 0.0 0.0 +76 7 1 1 Mn-55 0.0 0.0 +77 7 1 1 Si-28 0.0 0.0 +78 7 1 1 Si-29 0.0 0.0 +79 7 1 1 Si-30 0.0 0.0 +80 7 1 1 Cr-50 0.0 0.0 +81 7 1 1 Cr-52 0.0 0.0 +82 7 1 1 Cr-53 0.0 0.0 +83 7 1 1 Cr-54 0.0 0.0 +42 7 1 2 H-1 0.0 0.0 +43 7 1 2 O-16 0.0 0.0 +44 7 1 2 B-10 0.0 0.0 +45 7 1 2 B-11 0.0 0.0 +46 7 1 2 Fe-54 0.0 0.0 +47 7 1 2 Fe-56 0.0 0.0 +48 7 1 2 Fe-57 0.0 0.0 +49 7 1 2 Fe-58 0.0 0.0 +50 7 1 2 Ni-58 0.0 0.0 +51 7 1 2 Ni-60 0.0 0.0 +52 7 1 2 Ni-61 0.0 0.0 +53 7 1 2 Ni-62 0.0 0.0 +54 7 1 2 Ni-64 0.0 0.0 +55 7 1 2 Mn-55 0.0 0.0 +56 7 1 2 Si-28 0.0 0.0 +57 7 1 2 Si-29 0.0 0.0 +58 7 1 2 Si-30 0.0 0.0 +59 7 1 2 Cr-50 0.0 0.0 +60 7 1 2 Cr-52 0.0 0.0 +61 7 1 2 Cr-53 0.0 0.0 +62 7 1 2 Cr-54 0.0 0.0 +21 7 2 1 H-1 0.0 0.0 +22 7 2 1 O-16 0.0 0.0 +23 7 2 1 B-10 0.0 0.0 +24 7 2 1 B-11 0.0 0.0 +25 7 2 1 Fe-54 0.0 0.0 +26 7 2 1 Fe-56 0.0 0.0 +27 7 2 1 Fe-57 0.0 0.0 +28 7 2 1 Fe-58 0.0 0.0 +29 7 2 1 Ni-58 0.0 0.0 +30 7 2 1 Ni-60 0.0 0.0 +31 7 2 1 Ni-61 0.0 0.0 +32 7 2 1 Ni-62 0.0 0.0 +33 7 2 1 Ni-64 0.0 0.0 +34 7 2 1 Mn-55 0.0 0.0 +35 7 2 1 Si-28 0.0 0.0 +36 7 2 1 Si-29 0.0 0.0 +37 7 2 1 Si-30 0.0 0.0 +38 7 2 1 Cr-50 0.0 0.0 +39 7 2 1 Cr-52 0.0 0.0 +40 7 2 1 Cr-53 0.0 0.0 +41 7 2 1 Cr-54 0.0 0.0 +0 7 2 2 H-1 0.0 0.0 +1 7 2 2 O-16 0.0 0.0 +2 7 2 2 B-10 0.0 0.0 +3 7 2 2 B-11 0.0 0.0 +4 7 2 2 Fe-54 0.0 0.0 +5 7 2 2 Fe-56 0.0 0.0 +6 7 2 2 Fe-57 0.0 0.0 +7 7 2 2 Fe-58 0.0 0.0 +8 7 2 2 Ni-58 0.0 0.0 +9 7 2 2 Ni-60 0.0 0.0 +10 7 2 2 Ni-61 0.0 0.0 +11 7 2 2 Ni-62 0.0 0.0 +12 7 2 2 Ni-64 0.0 0.0 +13 7 2 2 Mn-55 0.0 0.0 +14 7 2 2 Si-28 0.0 0.0 +15 7 2 2 Si-29 0.0 0.0 +16 7 2 2 Si-30 0.0 0.0 +17 7 2 2 Cr-50 0.0 0.0 +18 7 2 2 Cr-52 0.0 0.0 +19 7 2 2 Cr-53 0.0 0.0 +20 7 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. +21 7 1 H-1 0.0 0.0 +22 7 1 O-16 0.0 0.0 +23 7 1 B-10 0.0 0.0 +24 7 1 B-11 0.0 0.0 +25 7 1 Fe-54 0.0 0.0 +26 7 1 Fe-56 0.0 0.0 +27 7 1 Fe-57 0.0 0.0 +28 7 1 Fe-58 0.0 0.0 +29 7 1 Ni-58 0.0 0.0 +30 7 1 Ni-60 0.0 0.0 +31 7 1 Ni-61 0.0 0.0 +32 7 1 Ni-62 0.0 0.0 +33 7 1 Ni-64 0.0 0.0 +34 7 1 Mn-55 0.0 0.0 +35 7 1 Si-28 0.0 0.0 +36 7 1 Si-29 0.0 0.0 +37 7 1 Si-30 0.0 0.0 +38 7 1 Cr-50 0.0 0.0 +39 7 1 Cr-52 0.0 0.0 +40 7 1 Cr-53 0.0 0.0 +41 7 1 Cr-54 0.0 0.0 +0 7 2 H-1 0.0 0.0 +1 7 2 O-16 0.0 0.0 +2 7 2 B-10 0.0 0.0 +3 7 2 B-11 0.0 0.0 +4 7 2 Fe-54 0.0 0.0 +5 7 2 Fe-56 0.0 0.0 +6 7 2 Fe-57 0.0 0.0 +7 7 2 Fe-58 0.0 0.0 +8 7 2 Ni-58 0.0 0.0 +9 7 2 Ni-60 0.0 0.0 +10 7 2 Ni-61 0.0 0.0 +11 7 2 Ni-62 0.0 0.0 +12 7 2 Ni-64 0.0 0.0 +13 7 2 Mn-55 0.0 0.0 +14 7 2 Si-28 0.0 0.0 +15 7 2 Si-29 0.0 0.0 +16 7 2 Si-30 0.0 0.0 +17 7 2 Cr-50 0.0 0.0 +18 7 2 Cr-52 0.0 0.0 +19 7 2 Cr-53 0.0 0.0 +20 7 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 8 1 H-1 0.0 0.0 +22 8 1 O-16 0.0 0.0 +23 8 1 B-10 0.0 0.0 +24 8 1 B-11 0.0 0.0 +25 8 1 Fe-54 0.0 0.0 +26 8 1 Fe-56 0.0 0.0 +27 8 1 Fe-57 0.0 0.0 +28 8 1 Fe-58 0.0 0.0 +29 8 1 Ni-58 0.0 0.0 +30 8 1 Ni-60 0.0 0.0 +31 8 1 Ni-61 0.0 0.0 +32 8 1 Ni-62 0.0 0.0 +33 8 1 Ni-64 0.0 0.0 +34 8 1 Mn-55 0.0 0.0 +35 8 1 Si-28 0.0 0.0 +36 8 1 Si-29 0.0 0.0 +37 8 1 Si-30 0.0 0.0 +38 8 1 Cr-50 0.0 0.0 +39 8 1 Cr-52 0.0 0.0 +40 8 1 Cr-53 0.0 0.0 +41 8 1 Cr-54 0.0 0.0 +0 8 2 H-1 0.0 0.0 +1 8 2 O-16 0.0 0.0 +2 8 2 B-10 0.0 0.0 +3 8 2 B-11 0.0 0.0 +4 8 2 Fe-54 0.0 0.0 +5 8 2 Fe-56 0.0 0.0 +6 8 2 Fe-57 0.0 0.0 +7 8 2 Fe-58 0.0 0.0 +8 8 2 Ni-58 0.0 0.0 +9 8 2 Ni-60 0.0 0.0 +10 8 2 Ni-61 0.0 0.0 +11 8 2 Ni-62 0.0 0.0 +12 8 2 Ni-64 0.0 0.0 +13 8 2 Mn-55 0.0 0.0 +14 8 2 Si-28 0.0 0.0 +15 8 2 Si-29 0.0 0.0 +16 8 2 Si-30 0.0 0.0 +17 8 2 Cr-50 0.0 0.0 +18 8 2 Cr-52 0.0 0.0 +19 8 2 Cr-53 0.0 0.0 +20 8 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 8 1 H-1 0.0 0.0 +22 8 1 O-16 0.0 0.0 +23 8 1 B-10 0.0 0.0 +24 8 1 B-11 0.0 0.0 +25 8 1 Fe-54 0.0 0.0 +26 8 1 Fe-56 0.0 0.0 +27 8 1 Fe-57 0.0 0.0 +28 8 1 Fe-58 0.0 0.0 +29 8 1 Ni-58 0.0 0.0 +30 8 1 Ni-60 0.0 0.0 +31 8 1 Ni-61 0.0 0.0 +32 8 1 Ni-62 0.0 0.0 +33 8 1 Ni-64 0.0 0.0 +34 8 1 Mn-55 0.0 0.0 +35 8 1 Si-28 0.0 0.0 +36 8 1 Si-29 0.0 0.0 +37 8 1 Si-30 0.0 0.0 +38 8 1 Cr-50 0.0 0.0 +39 8 1 Cr-52 0.0 0.0 +40 8 1 Cr-53 0.0 0.0 +41 8 1 Cr-54 0.0 0.0 +0 8 2 H-1 0.0 0.0 +1 8 2 O-16 0.0 0.0 +2 8 2 B-10 0.0 0.0 +3 8 2 B-11 0.0 0.0 +4 8 2 Fe-54 0.0 0.0 +5 8 2 Fe-56 0.0 0.0 +6 8 2 Fe-57 0.0 0.0 +7 8 2 Fe-58 0.0 0.0 +8 8 2 Ni-58 0.0 0.0 +9 8 2 Ni-60 0.0 0.0 +10 8 2 Ni-61 0.0 0.0 +11 8 2 Ni-62 0.0 0.0 +12 8 2 Ni-64 0.0 0.0 +13 8 2 Mn-55 0.0 0.0 +14 8 2 Si-28 0.0 0.0 +15 8 2 Si-29 0.0 0.0 +16 8 2 Si-30 0.0 0.0 +17 8 2 Cr-50 0.0 0.0 +18 8 2 Cr-52 0.0 0.0 +19 8 2 Cr-53 0.0 0.0 +20 8 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 8 1 1 H-1 0.0 0.0 +64 8 1 1 O-16 0.0 0.0 +65 8 1 1 B-10 0.0 0.0 +66 8 1 1 B-11 0.0 0.0 +67 8 1 1 Fe-54 0.0 0.0 +68 8 1 1 Fe-56 0.0 0.0 +69 8 1 1 Fe-57 0.0 0.0 +70 8 1 1 Fe-58 0.0 0.0 +71 8 1 1 Ni-58 0.0 0.0 +72 8 1 1 Ni-60 0.0 0.0 +73 8 1 1 Ni-61 0.0 0.0 +74 8 1 1 Ni-62 0.0 0.0 +75 8 1 1 Ni-64 0.0 0.0 +76 8 1 1 Mn-55 0.0 0.0 +77 8 1 1 Si-28 0.0 0.0 +78 8 1 1 Si-29 0.0 0.0 +79 8 1 1 Si-30 0.0 0.0 +80 8 1 1 Cr-50 0.0 0.0 +81 8 1 1 Cr-52 0.0 0.0 +82 8 1 1 Cr-53 0.0 0.0 +83 8 1 1 Cr-54 0.0 0.0 +42 8 1 2 H-1 0.0 0.0 +43 8 1 2 O-16 0.0 0.0 +44 8 1 2 B-10 0.0 0.0 +45 8 1 2 B-11 0.0 0.0 +46 8 1 2 Fe-54 0.0 0.0 +47 8 1 2 Fe-56 0.0 0.0 +48 8 1 2 Fe-57 0.0 0.0 +49 8 1 2 Fe-58 0.0 0.0 +50 8 1 2 Ni-58 0.0 0.0 +51 8 1 2 Ni-60 0.0 0.0 +52 8 1 2 Ni-61 0.0 0.0 +53 8 1 2 Ni-62 0.0 0.0 +54 8 1 2 Ni-64 0.0 0.0 +55 8 1 2 Mn-55 0.0 0.0 +56 8 1 2 Si-28 0.0 0.0 +57 8 1 2 Si-29 0.0 0.0 +58 8 1 2 Si-30 0.0 0.0 +59 8 1 2 Cr-50 0.0 0.0 +60 8 1 2 Cr-52 0.0 0.0 +61 8 1 2 Cr-53 0.0 0.0 +62 8 1 2 Cr-54 0.0 0.0 +21 8 2 1 H-1 0.0 0.0 +22 8 2 1 O-16 0.0 0.0 +23 8 2 1 B-10 0.0 0.0 +24 8 2 1 B-11 0.0 0.0 +25 8 2 1 Fe-54 0.0 0.0 +26 8 2 1 Fe-56 0.0 0.0 +27 8 2 1 Fe-57 0.0 0.0 +28 8 2 1 Fe-58 0.0 0.0 +29 8 2 1 Ni-58 0.0 0.0 +30 8 2 1 Ni-60 0.0 0.0 +31 8 2 1 Ni-61 0.0 0.0 +32 8 2 1 Ni-62 0.0 0.0 +33 8 2 1 Ni-64 0.0 0.0 +34 8 2 1 Mn-55 0.0 0.0 +35 8 2 1 Si-28 0.0 0.0 +36 8 2 1 Si-29 0.0 0.0 +37 8 2 1 Si-30 0.0 0.0 +38 8 2 1 Cr-50 0.0 0.0 +39 8 2 1 Cr-52 0.0 0.0 +40 8 2 1 Cr-53 0.0 0.0 +41 8 2 1 Cr-54 0.0 0.0 +0 8 2 2 H-1 0.0 0.0 +1 8 2 2 O-16 0.0 0.0 +2 8 2 2 B-10 0.0 0.0 +3 8 2 2 B-11 0.0 0.0 +4 8 2 2 Fe-54 0.0 0.0 +5 8 2 2 Fe-56 0.0 0.0 +6 8 2 2 Fe-57 0.0 0.0 +7 8 2 2 Fe-58 0.0 0.0 +8 8 2 2 Ni-58 0.0 0.0 +9 8 2 2 Ni-60 0.0 0.0 +10 8 2 2 Ni-61 0.0 0.0 +11 8 2 2 Ni-62 0.0 0.0 +12 8 2 2 Ni-64 0.0 0.0 +13 8 2 2 Mn-55 0.0 0.0 +14 8 2 2 Si-28 0.0 0.0 +15 8 2 2 Si-29 0.0 0.0 +16 8 2 2 Si-30 0.0 0.0 +17 8 2 2 Cr-50 0.0 0.0 +18 8 2 2 Cr-52 0.0 0.0 +19 8 2 2 Cr-53 0.0 0.0 +20 8 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. +21 8 1 H-1 0.0 0.0 +22 8 1 O-16 0.0 0.0 +23 8 1 B-10 0.0 0.0 +24 8 1 B-11 0.0 0.0 +25 8 1 Fe-54 0.0 0.0 +26 8 1 Fe-56 0.0 0.0 +27 8 1 Fe-57 0.0 0.0 +28 8 1 Fe-58 0.0 0.0 +29 8 1 Ni-58 0.0 0.0 +30 8 1 Ni-60 0.0 0.0 +31 8 1 Ni-61 0.0 0.0 +32 8 1 Ni-62 0.0 0.0 +33 8 1 Ni-64 0.0 0.0 +34 8 1 Mn-55 0.0 0.0 +35 8 1 Si-28 0.0 0.0 +36 8 1 Si-29 0.0 0.0 +37 8 1 Si-30 0.0 0.0 +38 8 1 Cr-50 0.0 0.0 +39 8 1 Cr-52 0.0 0.0 +40 8 1 Cr-53 0.0 0.0 +41 8 1 Cr-54 0.0 0.0 +0 8 2 H-1 0.0 0.0 +1 8 2 O-16 0.0 0.0 +2 8 2 B-10 0.0 0.0 +3 8 2 B-11 0.0 0.0 +4 8 2 Fe-54 0.0 0.0 +5 8 2 Fe-56 0.0 0.0 +6 8 2 Fe-57 0.0 0.0 +7 8 2 Fe-58 0.0 0.0 +8 8 2 Ni-58 0.0 0.0 +9 8 2 Ni-60 0.0 0.0 +10 8 2 Ni-61 0.0 0.0 +11 8 2 Ni-62 0.0 0.0 +12 8 2 Ni-64 0.0 0.0 +13 8 2 Mn-55 0.0 0.0 +14 8 2 Si-28 0.0 0.0 +15 8 2 Si-29 0.0 0.0 +16 8 2 Si-30 0.0 0.0 +17 8 2 Cr-50 0.0 0.0 +18 8 2 Cr-52 0.0 0.0 +19 8 2 Cr-53 0.0 0.0 +20 8 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. 21 9 1 H-1 0.150655 0.480993 22 9 1 O-16 0.116221 0.114089 23 9 1 B-10 0.000000 0.000000 @@ -1411,48 +1411,48 @@ 18 9 2 Cr-52 0.000000 0.000000 19 9 2 Cr-53 0.000000 0.000000 20 9 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 9 1 H-1 0 0 -22 9 1 O-16 0 0 -23 9 1 B-10 0 0 -24 9 1 B-11 0 0 -25 9 1 Fe-54 0 0 -26 9 1 Fe-56 0 0 -27 9 1 Fe-57 0 0 -28 9 1 Fe-58 0 0 -29 9 1 Ni-58 0 0 -30 9 1 Ni-60 0 0 -31 9 1 Ni-61 0 0 -32 9 1 Ni-62 0 0 -33 9 1 Ni-64 0 0 -34 9 1 Mn-55 0 0 -35 9 1 Si-28 0 0 -36 9 1 Si-29 0 0 -37 9 1 Si-30 0 0 -38 9 1 Cr-50 0 0 -39 9 1 Cr-52 0 0 -40 9 1 Cr-53 0 0 -41 9 1 Cr-54 0 0 -0 9 2 H-1 0 0 -1 9 2 O-16 0 0 -2 9 2 B-10 0 0 -3 9 2 B-11 0 0 -4 9 2 Fe-54 0 0 -5 9 2 Fe-56 0 0 -6 9 2 Fe-57 0 0 -7 9 2 Fe-58 0 0 -8 9 2 Ni-58 0 0 -9 9 2 Ni-60 0 0 -10 9 2 Ni-61 0 0 -11 9 2 Ni-62 0 0 -12 9 2 Ni-64 0 0 -13 9 2 Mn-55 0 0 -14 9 2 Si-28 0 0 -15 9 2 Si-29 0 0 -16 9 2 Si-30 0 0 -17 9 2 Cr-50 0 0 -18 9 2 Cr-52 0 0 -19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +21 9 1 H-1 0.0 0.0 +22 9 1 O-16 0.0 0.0 +23 9 1 B-10 0.0 0.0 +24 9 1 B-11 0.0 0.0 +25 9 1 Fe-54 0.0 0.0 +26 9 1 Fe-56 0.0 0.0 +27 9 1 Fe-57 0.0 0.0 +28 9 1 Fe-58 0.0 0.0 +29 9 1 Ni-58 0.0 0.0 +30 9 1 Ni-60 0.0 0.0 +31 9 1 Ni-61 0.0 0.0 +32 9 1 Ni-62 0.0 0.0 +33 9 1 Ni-64 0.0 0.0 +34 9 1 Mn-55 0.0 0.0 +35 9 1 Si-28 0.0 0.0 +36 9 1 Si-29 0.0 0.0 +37 9 1 Si-30 0.0 0.0 +38 9 1 Cr-50 0.0 0.0 +39 9 1 Cr-52 0.0 0.0 +40 9 1 Cr-53 0.0 0.0 +41 9 1 Cr-54 0.0 0.0 +0 9 2 H-1 0.0 0.0 +1 9 2 O-16 0.0 0.0 +2 9 2 B-10 0.0 0.0 +3 9 2 B-11 0.0 0.0 +4 9 2 Fe-54 0.0 0.0 +5 9 2 Fe-56 0.0 0.0 +6 9 2 Fe-57 0.0 0.0 +7 9 2 Fe-58 0.0 0.0 +8 9 2 Ni-58 0.0 0.0 +9 9 2 Ni-60 0.0 0.0 +10 9 2 Ni-61 0.0 0.0 +11 9 2 Ni-62 0.0 0.0 +12 9 2 Ni-64 0.0 0.0 +13 9 2 Mn-55 0.0 0.0 +14 9 2 Si-28 0.0 0.0 +15 9 2 Si-29 0.0 0.0 +16 9 2 Si-30 0.0 0.0 +17 9 2 Cr-50 0.0 0.0 +18 9 2 Cr-52 0.0 0.0 +19 9 2 Cr-53 0.0 0.0 +20 9 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. 63 9 1 1 H-1 0.150655 0.480993 64 9 1 1 O-16 0.116221 0.114089 65 9 1 1 B-10 0.000000 0.000000 @@ -1537,48 +1537,48 @@ 18 9 2 2 Cr-52 0.000000 0.000000 19 9 2 2 Cr-53 0.000000 0.000000 20 9 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. -21 9 1 H-1 0 0 -22 9 1 O-16 0 0 -23 9 1 B-10 0 0 -24 9 1 B-11 0 0 -25 9 1 Fe-54 0 0 -26 9 1 Fe-56 0 0 -27 9 1 Fe-57 0 0 -28 9 1 Fe-58 0 0 -29 9 1 Ni-58 0 0 -30 9 1 Ni-60 0 0 -31 9 1 Ni-61 0 0 -32 9 1 Ni-62 0 0 -33 9 1 Ni-64 0 0 -34 9 1 Mn-55 0 0 -35 9 1 Si-28 0 0 -36 9 1 Si-29 0 0 -37 9 1 Si-30 0 0 -38 9 1 Cr-50 0 0 -39 9 1 Cr-52 0 0 -40 9 1 Cr-53 0 0 -41 9 1 Cr-54 0 0 -0 9 2 H-1 0 0 -1 9 2 O-16 0 0 -2 9 2 B-10 0 0 -3 9 2 B-11 0 0 -4 9 2 Fe-54 0 0 -5 9 2 Fe-56 0 0 -6 9 2 Fe-57 0 0 -7 9 2 Fe-58 0 0 -8 9 2 Ni-58 0 0 -9 9 2 Ni-60 0 0 -10 9 2 Ni-61 0 0 -11 9 2 Ni-62 0 0 -12 9 2 Ni-64 0 0 -13 9 2 Mn-55 0 0 -14 9 2 Si-28 0 0 -15 9 2 Si-29 0 0 -16 9 2 Si-30 0 0 -17 9 2 Cr-50 0 0 -18 9 2 Cr-52 0 0 -19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 9 1 H-1 0.0 0.0 +22 9 1 O-16 0.0 0.0 +23 9 1 B-10 0.0 0.0 +24 9 1 B-11 0.0 0.0 +25 9 1 Fe-54 0.0 0.0 +26 9 1 Fe-56 0.0 0.0 +27 9 1 Fe-57 0.0 0.0 +28 9 1 Fe-58 0.0 0.0 +29 9 1 Ni-58 0.0 0.0 +30 9 1 Ni-60 0.0 0.0 +31 9 1 Ni-61 0.0 0.0 +32 9 1 Ni-62 0.0 0.0 +33 9 1 Ni-64 0.0 0.0 +34 9 1 Mn-55 0.0 0.0 +35 9 1 Si-28 0.0 0.0 +36 9 1 Si-29 0.0 0.0 +37 9 1 Si-30 0.0 0.0 +38 9 1 Cr-50 0.0 0.0 +39 9 1 Cr-52 0.0 0.0 +40 9 1 Cr-53 0.0 0.0 +41 9 1 Cr-54 0.0 0.0 +0 9 2 H-1 0.0 0.0 +1 9 2 O-16 0.0 0.0 +2 9 2 B-10 0.0 0.0 +3 9 2 B-11 0.0 0.0 +4 9 2 Fe-54 0.0 0.0 +5 9 2 Fe-56 0.0 0.0 +6 9 2 Fe-57 0.0 0.0 +7 9 2 Fe-58 0.0 0.0 +8 9 2 Ni-58 0.0 0.0 +9 9 2 Ni-60 0.0 0.0 +10 9 2 Ni-61 0.0 0.0 +11 9 2 Ni-62 0.0 0.0 +12 9 2 Ni-64 0.0 0.0 +13 9 2 Mn-55 0.0 0.0 +14 9 2 Si-28 0.0 0.0 +15 9 2 Si-29 0.0 0.0 +16 9 2 Si-30 0.0 0.0 +17 9 2 Cr-50 0.0 0.0 +18 9 2 Cr-52 0.0 0.0 +19 9 2 Cr-53 0.0 0.0 +20 9 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. 21 10 1 H-1 0.123944 0.541390 22 10 1 O-16 0.000000 0.000000 23 10 1 B-10 0.000000 0.000000 @@ -1621,48 +1621,48 @@ 18 10 2 Cr-52 0.000000 0.000000 19 10 2 Cr-53 0.000000 0.000000 20 10 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 10 1 H-1 0 0 -22 10 1 O-16 0 0 -23 10 1 B-10 0 0 -24 10 1 B-11 0 0 -25 10 1 Fe-54 0 0 -26 10 1 Fe-56 0 0 -27 10 1 Fe-57 0 0 -28 10 1 Fe-58 0 0 -29 10 1 Ni-58 0 0 -30 10 1 Ni-60 0 0 -31 10 1 Ni-61 0 0 -32 10 1 Ni-62 0 0 -33 10 1 Ni-64 0 0 -34 10 1 Mn-55 0 0 -35 10 1 Si-28 0 0 -36 10 1 Si-29 0 0 -37 10 1 Si-30 0 0 -38 10 1 Cr-50 0 0 -39 10 1 Cr-52 0 0 -40 10 1 Cr-53 0 0 -41 10 1 Cr-54 0 0 -0 10 2 H-1 0 0 -1 10 2 O-16 0 0 -2 10 2 B-10 0 0 -3 10 2 B-11 0 0 -4 10 2 Fe-54 0 0 -5 10 2 Fe-56 0 0 -6 10 2 Fe-57 0 0 -7 10 2 Fe-58 0 0 -8 10 2 Ni-58 0 0 -9 10 2 Ni-60 0 0 -10 10 2 Ni-61 0 0 -11 10 2 Ni-62 0 0 -12 10 2 Ni-64 0 0 -13 10 2 Mn-55 0 0 -14 10 2 Si-28 0 0 -15 10 2 Si-29 0 0 -16 10 2 Si-30 0 0 -17 10 2 Cr-50 0 0 -18 10 2 Cr-52 0 0 -19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +21 10 1 H-1 0.0 0.0 +22 10 1 O-16 0.0 0.0 +23 10 1 B-10 0.0 0.0 +24 10 1 B-11 0.0 0.0 +25 10 1 Fe-54 0.0 0.0 +26 10 1 Fe-56 0.0 0.0 +27 10 1 Fe-57 0.0 0.0 +28 10 1 Fe-58 0.0 0.0 +29 10 1 Ni-58 0.0 0.0 +30 10 1 Ni-60 0.0 0.0 +31 10 1 Ni-61 0.0 0.0 +32 10 1 Ni-62 0.0 0.0 +33 10 1 Ni-64 0.0 0.0 +34 10 1 Mn-55 0.0 0.0 +35 10 1 Si-28 0.0 0.0 +36 10 1 Si-29 0.0 0.0 +37 10 1 Si-30 0.0 0.0 +38 10 1 Cr-50 0.0 0.0 +39 10 1 Cr-52 0.0 0.0 +40 10 1 Cr-53 0.0 0.0 +41 10 1 Cr-54 0.0 0.0 +0 10 2 H-1 0.0 0.0 +1 10 2 O-16 0.0 0.0 +2 10 2 B-10 0.0 0.0 +3 10 2 B-11 0.0 0.0 +4 10 2 Fe-54 0.0 0.0 +5 10 2 Fe-56 0.0 0.0 +6 10 2 Fe-57 0.0 0.0 +7 10 2 Fe-58 0.0 0.0 +8 10 2 Ni-58 0.0 0.0 +9 10 2 Ni-60 0.0 0.0 +10 10 2 Ni-61 0.0 0.0 +11 10 2 Ni-62 0.0 0.0 +12 10 2 Ni-64 0.0 0.0 +13 10 2 Mn-55 0.0 0.0 +14 10 2 Si-28 0.0 0.0 +15 10 2 Si-29 0.0 0.0 +16 10 2 Si-30 0.0 0.0 +17 10 2 Cr-50 0.0 0.0 +18 10 2 Cr-52 0.0 0.0 +19 10 2 Cr-53 0.0 0.0 +20 10 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. 63 10 1 1 H-1 0.123944 0.541390 64 10 1 1 O-16 0.000000 0.000000 65 10 1 1 B-10 0.000000 0.000000 @@ -1747,48 +1747,48 @@ 18 10 2 2 Cr-52 0.000000 0.000000 19 10 2 2 Cr-53 0.000000 0.000000 20 10 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. -21 10 1 H-1 0 0 -22 10 1 O-16 0 0 -23 10 1 B-10 0 0 -24 10 1 B-11 0 0 -25 10 1 Fe-54 0 0 -26 10 1 Fe-56 0 0 -27 10 1 Fe-57 0 0 -28 10 1 Fe-58 0 0 -29 10 1 Ni-58 0 0 -30 10 1 Ni-60 0 0 -31 10 1 Ni-61 0 0 -32 10 1 Ni-62 0 0 -33 10 1 Ni-64 0 0 -34 10 1 Mn-55 0 0 -35 10 1 Si-28 0 0 -36 10 1 Si-29 0 0 -37 10 1 Si-30 0 0 -38 10 1 Cr-50 0 0 -39 10 1 Cr-52 0 0 -40 10 1 Cr-53 0 0 -41 10 1 Cr-54 0 0 -0 10 2 H-1 0 0 -1 10 2 O-16 0 0 -2 10 2 B-10 0 0 -3 10 2 B-11 0 0 -4 10 2 Fe-54 0 0 -5 10 2 Fe-56 0 0 -6 10 2 Fe-57 0 0 -7 10 2 Fe-58 0 0 -8 10 2 Ni-58 0 0 -9 10 2 Ni-60 0 0 -10 10 2 Ni-61 0 0 -11 10 2 Ni-62 0 0 -12 10 2 Ni-64 0 0 -13 10 2 Mn-55 0 0 -14 10 2 Si-28 0 0 -15 10 2 Si-29 0 0 -16 10 2 Si-30 0 0 -17 10 2 Cr-50 0 0 -18 10 2 Cr-52 0 0 -19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 10 1 H-1 0.0 0.0 +22 10 1 O-16 0.0 0.0 +23 10 1 B-10 0.0 0.0 +24 10 1 B-11 0.0 0.0 +25 10 1 Fe-54 0.0 0.0 +26 10 1 Fe-56 0.0 0.0 +27 10 1 Fe-57 0.0 0.0 +28 10 1 Fe-58 0.0 0.0 +29 10 1 Ni-58 0.0 0.0 +30 10 1 Ni-60 0.0 0.0 +31 10 1 Ni-61 0.0 0.0 +32 10 1 Ni-62 0.0 0.0 +33 10 1 Ni-64 0.0 0.0 +34 10 1 Mn-55 0.0 0.0 +35 10 1 Si-28 0.0 0.0 +36 10 1 Si-29 0.0 0.0 +37 10 1 Si-30 0.0 0.0 +38 10 1 Cr-50 0.0 0.0 +39 10 1 Cr-52 0.0 0.0 +40 10 1 Cr-53 0.0 0.0 +41 10 1 Cr-54 0.0 0.0 +0 10 2 H-1 0.0 0.0 +1 10 2 O-16 0.0 0.0 +2 10 2 B-10 0.0 0.0 +3 10 2 B-11 0.0 0.0 +4 10 2 Fe-54 0.0 0.0 +5 10 2 Fe-56 0.0 0.0 +6 10 2 Fe-57 0.0 0.0 +7 10 2 Fe-58 0.0 0.0 +8 10 2 Ni-58 0.0 0.0 +9 10 2 Ni-60 0.0 0.0 +10 10 2 Ni-61 0.0 0.0 +11 10 2 Ni-62 0.0 0.0 +12 10 2 Ni-64 0.0 0.0 +13 10 2 Mn-55 0.0 0.0 +14 10 2 Si-28 0.0 0.0 +15 10 2 Si-29 0.0 0.0 +16 10 2 Si-30 0.0 0.0 +17 10 2 Cr-50 0.0 0.0 +18 10 2 Cr-52 0.0 0.0 +19 10 2 Cr-53 0.0 0.0 +20 10 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. 9 11 1 H-1 0.131470 0.476035 10 11 1 O-16 0.028684 0.043000 11 11 1 B-10 0.000000 0.000000 @@ -1807,24 +1807,24 @@ 6 11 2 Zr-92 0.084226 0.103161 7 11 2 Zr-94 0.092039 0.125985 8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 11 1 H-1 0 0 -10 11 1 O-16 0 0 -11 11 1 B-10 0 0 -12 11 1 B-11 0 0 -13 11 1 Zr-90 0 0 -14 11 1 Zr-91 0 0 -15 11 1 Zr-92 0 0 -16 11 1 Zr-94 0 0 -17 11 1 Zr-96 0 0 -0 11 2 H-1 0 0 -1 11 2 O-16 0 0 -2 11 2 B-10 0 0 -3 11 2 B-11 0 0 -4 11 2 Zr-90 0 0 -5 11 2 Zr-91 0 0 -6 11 2 Zr-92 0 0 -7 11 2 Zr-94 0 0 -8 11 2 Zr-96 0 0 material group in group out nuclide mean std. dev. +9 11 1 H-1 0.0 0.0 +10 11 1 O-16 0.0 0.0 +11 11 1 B-10 0.0 0.0 +12 11 1 B-11 0.0 0.0 +13 11 1 Zr-90 0.0 0.0 +14 11 1 Zr-91 0.0 0.0 +15 11 1 Zr-92 0.0 0.0 +16 11 1 Zr-94 0.0 0.0 +17 11 1 Zr-96 0.0 0.0 +0 11 2 H-1 0.0 0.0 +1 11 2 O-16 0.0 0.0 +2 11 2 B-10 0.0 0.0 +3 11 2 B-11 0.0 0.0 +4 11 2 Zr-90 0.0 0.0 +5 11 2 Zr-91 0.0 0.0 +6 11 2 Zr-92 0.0 0.0 +7 11 2 Zr-94 0.0 0.0 +8 11 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. 27 11 1 1 H-1 0.099594 0.442578 28 11 1 1 O-16 0.028684 0.043000 29 11 1 1 B-10 0.000000 0.000000 @@ -1861,24 +1861,24 @@ 6 11 2 2 Zr-92 0.084226 0.103161 7 11 2 2 Zr-94 0.092039 0.125985 8 11 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. -9 11 1 H-1 0 0 -10 11 1 O-16 0 0 -11 11 1 B-10 0 0 -12 11 1 B-11 0 0 -13 11 1 Zr-90 0 0 -14 11 1 Zr-91 0 0 -15 11 1 Zr-92 0 0 -16 11 1 Zr-94 0 0 -17 11 1 Zr-96 0 0 -0 11 2 H-1 0 0 -1 11 2 O-16 0 0 -2 11 2 B-10 0 0 -3 11 2 B-11 0 0 -4 11 2 Zr-90 0 0 -5 11 2 Zr-91 0 0 -6 11 2 Zr-92 0 0 -7 11 2 Zr-94 0 0 -8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. +9 11 1 H-1 0.0 0.0 +10 11 1 O-16 0.0 0.0 +11 11 1 B-10 0.0 0.0 +12 11 1 B-11 0.0 0.0 +13 11 1 Zr-90 0.0 0.0 +14 11 1 Zr-91 0.0 0.0 +15 11 1 Zr-92 0.0 0.0 +16 11 1 Zr-94 0.0 0.0 +17 11 1 Zr-96 0.0 0.0 +0 11 2 H-1 0.0 0.0 +1 11 2 O-16 0.0 0.0 +2 11 2 B-10 0.0 0.0 +3 11 2 B-11 0.0 0.0 +4 11 2 Zr-90 0.0 0.0 +5 11 2 Zr-91 0.0 0.0 +6 11 2 Zr-92 0.0 0.0 +7 11 2 Zr-94 0.0 0.0 +8 11 2 Zr-96 0.0 0.0 material group in nuclide mean std. dev. 9 12 1 H-1 0.098944 0.178543 10 12 1 O-16 0.013270 0.020403 11 12 1 B-10 0.000000 0.000000 @@ -1897,24 +1897,24 @@ 6 12 2 Zr-92 0.000000 0.000000 7 12 2 Zr-94 0.000000 0.000000 8 12 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 12 1 H-1 0 0 -10 12 1 O-16 0 0 -11 12 1 B-10 0 0 -12 12 1 B-11 0 0 -13 12 1 Zr-90 0 0 -14 12 1 Zr-91 0 0 -15 12 1 Zr-92 0 0 -16 12 1 Zr-94 0 0 -17 12 1 Zr-96 0 0 -0 12 2 H-1 0 0 -1 12 2 O-16 0 0 -2 12 2 B-10 0 0 -3 12 2 B-11 0 0 -4 12 2 Zr-90 0 0 -5 12 2 Zr-91 0 0 -6 12 2 Zr-92 0 0 -7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 material group in group out nuclide mean std. dev. +9 12 1 H-1 0.0 0.0 +10 12 1 O-16 0.0 0.0 +11 12 1 B-10 0.0 0.0 +12 12 1 B-11 0.0 0.0 +13 12 1 Zr-90 0.0 0.0 +14 12 1 Zr-91 0.0 0.0 +15 12 1 Zr-92 0.0 0.0 +16 12 1 Zr-94 0.0 0.0 +17 12 1 Zr-96 0.0 0.0 +0 12 2 H-1 0.0 0.0 +1 12 2 O-16 0.0 0.0 +2 12 2 B-10 0.0 0.0 +3 12 2 B-11 0.0 0.0 +4 12 2 Zr-90 0.0 0.0 +5 12 2 Zr-91 0.0 0.0 +6 12 2 Zr-92 0.0 0.0 +7 12 2 Zr-94 0.0 0.0 +8 12 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. 27 12 1 1 H-1 0.071704 0.167588 28 12 1 1 O-16 0.013270 0.020403 29 12 1 1 B-10 0.000000 0.000000 @@ -1951,21 +1951,21 @@ 6 12 2 2 Zr-92 0.000000 0.000000 7 12 2 2 Zr-94 0.000000 0.000000 8 12 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. -9 12 1 H-1 0 0 -10 12 1 O-16 0 0 -11 12 1 B-10 0 0 -12 12 1 B-11 0 0 -13 12 1 Zr-90 0 0 -14 12 1 Zr-91 0 0 -15 12 1 Zr-92 0 0 -16 12 1 Zr-94 0 0 -17 12 1 Zr-96 0 0 -0 12 2 H-1 0 0 -1 12 2 O-16 0 0 -2 12 2 B-10 0 0 -3 12 2 B-11 0 0 -4 12 2 Zr-90 0 0 -5 12 2 Zr-91 0 0 -6 12 2 Zr-92 0 0 -7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 \ No newline at end of file +9 12 1 H-1 0.0 0.0 +10 12 1 O-16 0.0 0.0 +11 12 1 B-10 0.0 0.0 +12 12 1 B-11 0.0 0.0 +13 12 1 Zr-90 0.0 0.0 +14 12 1 Zr-91 0.0 0.0 +15 12 1 Zr-92 0.0 0.0 +16 12 1 Zr-94 0.0 0.0 +17 12 1 Zr-96 0.0 0.0 +0 12 2 H-1 0.0 0.0 +1 12 2 O-16 0.0 0.0 +2 12 2 B-10 0.0 0.0 +3 12 2 B-11 0.0 0.0 +4 12 2 Zr-90 0.0 0.0 +5 12 2 Zr-91 0.0 0.0 +6 12 2 Zr-92 0.0 0.0 +7 12 2 Zr-94 0.0 0.0 +8 12 2 Zr-96 0.0 0.0 \ No newline at end of file From bc4cf8026783dd96f5e28b9bb1185515a8d7645f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 19 Mar 2016 12:23:56 -0400 Subject: [PATCH 052/259] Changes to comments in scattering tallying --- src/tally.F90 | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index 4d57f44ca..6aabed39f 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -949,7 +949,7 @@ contains if (p % event /= EVENT_SCATTER) then if (score_bin == SCORE_SCATTER_PN) then i = i + t % moment_order(i) - else + else if (score_bin == SCORE_SCATTER_YN) then i = i + (t % moment_order(i) + 1)**2 - 1 end if cycle SCORE_LOOP @@ -967,15 +967,16 @@ contains end if else - ! Note SCORE_SCATTER_N not available for tracklength/collision. + ! Note SCORE_SCATTER_*N not available for tracklength/collision. if (i_nuclide > 0) then - score = nucxs % get_xs('scatter',p_g,UVW=p_uvw) * & - atom_density * flux / & + score = atom_density * flux * & + nucxs % get_xs('scatter',p_g,UVW=p_uvw) / & nucxs % get_xs('mult',p_g,UVW=p_uvw) else - ! Get the scattering x/s (stored in % elastic) and take away + ! Get the scattering x/s and take away ! the multiplication baked in to sigS - score = material_xs % elastic * flux / & + score = flux * & + matxs % get_xs('scatter',p_g,UVW=p_uvw) / & matxs % get_xs('mult',p_g,UVW=p_uvw) end if end if @@ -1006,14 +1007,13 @@ contains end if else - ! Note SCORE_NU_SCATTER_* not available for tracklength/collision. + ! Note SCORE_NU_SCATTER_*N not available for tracklength/collision. if (i_nuclide > 0) then score = nucxs % get_xs('scatter',p_g,UVW=p_uvw) * & atom_density * flux else - ! Get the scattering x/s (stored in % elastic) and take away - ! the multiplication baked in to sigS - score = material_xs % elastic * flux + ! Get the scattering x/s, which includes multiplication + score = matxs % get_xs('scatter',p_g,UVW=p_uvw) * flux end if end if From b742275ca3b2a394457d2ae03039741533491eb4 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 19 Mar 2016 13:52:10 -0400 Subject: [PATCH 053/259] Fixed scattering tallying issue. Next is some minor optimizations, then calling it good --- src/mgxs_header.F90 | 91 +++++++++++++++++++++++++++++++++++-- src/tally.F90 | 106 ++++++++++++++++++-------------------------- 2 files changed, 129 insertions(+), 68 deletions(-) diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 908f19c8b..75ff3e46a 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -1140,8 +1140,13 @@ module mgxs_header end if case('scatter') if (present(gout)) then - xs = this % scatter % scattxs(gin) * & - this % scatter % energy(gin) % data(gout) + if (gout < this % scatter % gmin(gin) .or. & + gout > this % scatter % gmax(gin)) then + xs = ZERO + else + xs = this % scatter % scattxs(gin) * & + this % scatter % energy(gin) % data(gout) + end if else xs = this % scatter % scattxs(gin) end if @@ -1159,6 +1164,22 @@ module mgxs_header this % scatter % energy(gin) % data) xs = xs / this % scatter % scattxs(gin) end if + case('scatter/mult') + if (present(gout)) then + if (gout < this % scatter % gmin(gin) .or. & + gout > this % scatter % gmax(gin)) then + xs = ZERO + else + xs = this % scatter % scattxs(gin) * & + this % scatter % energy(gin) % data(gout) / & + this % scatter % mult(gin) % data(gout) + end if + else + xs = this % scatter % scattxs(gin) * this % scatter % scattxs(gin) / & + (dot_product(this % scatter % mult(gin) % data, & + this % scatter % scattxs(gin) * & + this % scatter % energy(gin) % data)) + end if case('f_mu', 'f_mu/mult') if (present(gout) .and. present(mu)) then if (gout < this % scatter % gmin(gin) .or. & @@ -1177,6 +1198,26 @@ module mgxs_header ! user of this code wants the complete 1-outgoing group distribution ! which Im not sure what they would do with that. end if + case('scatter*f_mu/mult','scatter*f_mu') + if (present(gout)) then + if (gout < this % scatter % gmin(gin) .or. & + gout > this % scatter % gmax(gin)) then + xs = ZERO + else + xs = this % scatter % scattxs(gin) * & + this % scatter % energy(gin) % data(gout) * & + this % scatter % calc_f(gin, gout, mu) + if (xstype == 'scatter*f_mu/mult') then + xs = xs / this % scatter % mult(gin) % data(gout) + end if + end if + else + xs = ZERO + ! TODO (Not likely needed) + ! (asking for f_mu without asking for a group or mu would mean the + ! user of this code wants the complete 1-outgoing group distribution + ! which Im not sure what they would do with that. + end if case default xs = ZERO end select @@ -1224,8 +1265,13 @@ module mgxs_header end if case('scatter') if (present(gout)) then - xs = this % scatter(iazi,ipol) % obj % scattxs(gin) * & - this % scatter(iazi,ipol) % obj % energy(gin) % data(gout) + if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + xs = ZERO + else + xs = this % scatter(iazi,ipol) % obj % scattxs(gin) * & + this % scatter(iazi,ipol) % obj % energy(gin) % data(gout) + end if else xs = this % scatter(iazi,ipol) % obj % scattxs(gin) end if @@ -1243,6 +1289,23 @@ module mgxs_header this % scatter(iazi,ipol) % obj % energy(gin) % data) xs = xs / this % scatter(iazi,ipol) % obj % scattxs(gin) end if + case('scatter/mult') + if (present(gout)) then + if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + xs = ZERO + else + xs = this % scatter(iazi,ipol) % obj % scattxs(gin) * & + this % scatter(iazi,ipol) % obj % energy(gin) % data(gout) / & + this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + end if + else + xs = this % scatter(iazi,ipol) % obj % scattxs(gin) * & + this % scatter(iazi,ipol) % obj % scattxs(gin) / & + (dot_product(this % scatter(iazi,ipol) % obj % mult(gin) % data, & + this % scatter(iazi,ipol) % obj % scattxs(gin) * & + this % scatter(iazi,ipol) % obj % energy(gin) % data)) + end if case('f_mu', 'f_mu/mult') if (present(gout) .and. present(mu)) then if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & @@ -1262,6 +1325,26 @@ module mgxs_header ! user of this code wants the complete 1-outgoing group distribution ! which Im not sure what they would do with that. end if + case('scatter*f_mu/mult','scatter*f_mu') + if (present(gout)) then + if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + xs = ZERO + else + xs = this % scatter(iazi,ipol) % obj % scattxs(gin) * & + this % scatter(iazi,ipol) % obj % energy(gin) % data(gout) + xs = xs * this % scatter(iazi,ipol) % obj % calc_f(gin, gout, mu) + if (xstype == 'scatter*f_mu/mult') then + xs = xs / this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + end if + end if + else + xs = ZERO + ! TODO (Not likely needed) + ! (asking for f_mu without asking for a group or mu would mean the + ! user of this code wants the complete 1-outgoing group distribution + ! which Im not sure what they would do with that. + end if case default xs = ZERO end select diff --git a/src/tally.F90 b/src/tally.F90 index 6aabed39f..b0c71f6dc 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -899,18 +899,13 @@ contains ! We need to account for the fact that some weight was already ! absorbed score = p % last_wgt + p % absorb_wgt - if (i_nuclide > 0) then - score = score * atom_density * & - nucxs % get_xs('total',p_g,UVW=p_uvw) / & - matxs % get_xs('total',p_g,UVW=p_uvw) - end if else score = p % last_wgt - if (i_nuclide > 0) then - score = score * atom_density * & - nucxs % get_xs('total',p_g,UVW=p_uvw) / & - matxs % get_xs('total',p_g,UVW=p_uvw) - end if + end if + if (i_nuclide > 0) then + score = score * atom_density * & + nucxs % get_xs('total',p_g,UVW=p_uvw) / & + matxs % get_xs('total',p_g,UVW=p_uvw) end if else @@ -960,24 +955,25 @@ contains ! reaction rate score = p % last_wgt + ! Since we transport based on material data, the angle selected + ! was not selected from the f(mu) for the nuclide. Therefore + ! adjust the score by the actual probability for that nuclide. if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) / & - matxs % get_xs('f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) + nucxs % get_xs('scatter*f_mu/mult',p % last_g,p % g,UVW=p_uvw,MU=p % mu) / & + matxs % get_xs('scatter*f_mu/mult',p % last_g,p % g,UVW=p_uvw,MU=p % mu) end if else ! Note SCORE_SCATTER_*N not available for tracklength/collision. if (i_nuclide > 0) then score = atom_density * flux * & - nucxs % get_xs('scatter',p_g,UVW=p_uvw) / & - nucxs % get_xs('mult',p_g,UVW=p_uvw) + nucxs % get_xs('scatter/mult',p_g,UVW=p_uvw) else ! Get the scattering x/s and take away ! the multiplication baked in to sigS score = flux * & - matxs % get_xs('scatter',p_g,UVW=p_uvw) / & - matxs % get_xs('mult',p_g,UVW=p_uvw) + matxs % get_xs('scatter/mult',p_g,UVW=p_uvw) end if end if @@ -1000,10 +996,13 @@ contains ! neutrons exiting a reaction with neutrons in the exit channel score = p % wgt + ! Since we transport based on material data, the angle selected + ! was not selected from the f(mu) for the nuclide. Therefore + ! adjust the score by the actual probability for that nuclide. if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) / & - matxs % get_xs('f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) + nucxs % get_xs('scatter*f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) / & + matxs % get_xs('scatter*f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) end if else @@ -1038,24 +1037,18 @@ contains ! No absorption events actually occur if survival biasing is on -- ! just use weight absorbed in survival biasing score = p % absorb_wgt - if (i_nuclide > 0) then - score = score * atom_density * & - nucxs % get_xs('absorption',p_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p_g,UVW=p_uvw) - end if else ! Skip any event where the particle wasn't absorbed if (p % event == EVENT_SCATTER) cycle SCORE_LOOP ! All fission and absorption events will contribute here, so we ! can just use the particle's weight entering the collision score = p % last_wgt - if (i_nuclide > 0) then - score = score * atom_density * & - nucxs % get_xs('absorption',p_g,UVW=p_uvw) / & - material_xs % absorption - end if end if - + if (i_nuclide > 0) then + score = score * atom_density * & + nucxs % get_xs('absorption',p_g,UVW=p_uvw) / & + matxs % get_xs('absorption',p_g,UVW=p_uvw) + end if else if (i_nuclide > 0) then score = nucxs % get_xs('absorption',p_g,UVW=p_uvw) * & @@ -1072,32 +1065,24 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! fission - if (i_nuclide > 0) then - score = p % absorb_wgt * atom_density * & - nucxs % get_xs('fission', p_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p_g,UVW=p_uvw) - else - score = p % absorb_wgt * & - matxs % get_xs('fission', p_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p_g,UVW=p_uvw) - end if + score = p % absorb_wgt else ! Skip any non-absorption events if (p % event == EVENT_SCATTER) cycle SCORE_LOOP ! All fission events will contribute, so again we can use ! particle's weight entering the collision as the estimate for the ! fission reaction rate - if (i_nuclide > 0) then - score = p % last_wgt * atom_density * & + score = p % last_wgt + end if + if (i_nuclide > 0) then + score = score * atom_density * & nucxs % get_xs('fission', p_g,UVW=p_uvw) / & matxs % get_xs('absorption',p_g,UVW=p_uvw) else - score = p % last_wgt * & + score = score * & matxs % get_xs('fission', p_g,UVW=p_uvw) / & matxs % get_xs('absorption',p_g,UVW=p_uvw) end if - end if - else if (i_nuclide > 0) then score = nucxs % get_xs('fission',p_g,UVW=p_uvw) * & @@ -1126,12 +1111,13 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! nu-fission + score = p % absorb_wgt if (i_nuclide > 0) then - score = p % absorb_wgt * atom_density * & + score = score * atom_density * & nucxs % get_xs('nu_fission',p_g,UVW=p_uvw) / & matxs % get_xs('absorption',p_g,UVW=p_uvw) else - score = p % absorb_wgt * & + score = score * & matxs % get_xs('nu_fission',p_g,UVW=p_uvw) / & matxs % get_xs('absorption',p_g,UVW=p_uvw) end if @@ -1167,32 +1153,24 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! fission - if (i_nuclide > 0) then - score = p % absorb_wgt * atom_density * & - nucxs % get_xs('kappa_fission',p_g,UVW=p_uvw) / & - matxs % get_xs('absorption', p_g,UVW=p_uvw) - else - score = p % absorb_wgt * & - matxs % get_xs('kappa_fission',p_g,UVW=p_uvw) / & - matxs % get_xs('absorption', p_g,UVW=p_uvw) - end if + score = p % absorb_wgt else ! Skip any non-absorption events if (p % event == EVENT_SCATTER) cycle SCORE_LOOP ! All fission events will contribute, so again we can use ! particle's weight entering the collision as the estimate for the ! fission reaction rate - if (i_nuclide > 0) then - score = p % last_wgt * & - nucxs % get_xs('kappa_fission',p_g,UVW=p_uvw) * & - atom_density / material_xs % absorption - else - score = p % last_wgt * & - matxs % get_xs('kappa_fission',p_g,UVW=p_uvw) / & - material_xs % absorption - end if + score = p % last_wgt + end if + if (i_nuclide > 0) then + score = score * atom_density * & + nucxs % get_xs('kappa_fission',p_g,UVW=p_uvw) / & + matxs % get_xs('absorption', p_g,UVW=p_uvw) + else + score = score * & + matxs % get_xs('kappa_fission',p_g,UVW=p_uvw) / & + matxs % get_xs('absorption', p_g,UVW=p_uvw) end if - else if (i_nuclide > 0) then score = flux * nucxs % get_xs('kappa_fission',p_g,UVW=p_uvw) * & From af8fbd3a1f8e4107813cf1280d0c1f7f10690f95 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 19 Mar 2016 14:00:32 -0400 Subject: [PATCH 054/259] Removed a few paths which werent needed in get_xs and ran check_source.py --- src/mgxs_data.F90 | 2 +- src/mgxs_header.F90 | 74 ++------------------------------------------- src/tally.F90 | 4 +-- 3 files changed, 6 insertions(+), 74 deletions(-) diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index def214d67..04d76f18c 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -71,7 +71,7 @@ contains get_kfiss = .true. end if if (tallies(i) % score_bins(l) == SCORE_FISSION .or. & - tallies(i) % score_bins(l) == SCORE_NU_FISSION) then + tallies(i) % score_bins(l) == SCORE_NU_FISSION) then get_fiss = .true. end if end do diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 75ff3e46a..5f8649292 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -72,7 +72,7 @@ module mgxs_header integer, optional, intent(in) :: unit end subroutine mgxs_print_ - function mgxs_get_xs_(this,xstype,gin,gout,uvw,mu) result(xs) + pure function mgxs_get_xs_(this,xstype,gin,gout,uvw,mu) result(xs) import Mgxs class(Mgxs), intent(in) :: this character(*), intent(in) :: xstype ! Cross Section Type @@ -1150,20 +1150,6 @@ module mgxs_header else xs = this % scatter % scattxs(gin) end if - case('mult') - if (present(gout)) then - if (gout < this % scatter % gmin(gin) .or. & - gout > this % scatter % gmax(gin)) then - xs = ZERO - else - xs = this % scatter % mult(gin) % data(gout) - end if - else - xs = dot_product(this % scatter % mult(gin) % data, & - this % scatter % scattxs(gin) * & - this % scatter % energy(gin) % data) - xs = xs / this % scatter % scattxs(gin) - end if case('scatter/mult') if (present(gout)) then if (gout < this % scatter % gmin(gin) .or. & @@ -1175,29 +1161,10 @@ module mgxs_header this % scatter % mult(gin) % data(gout) end if else - xs = this % scatter % scattxs(gin) * this % scatter % scattxs(gin) / & + xs = this % scatter % scattxs(gin) / & (dot_product(this % scatter % mult(gin) % data, & - this % scatter % scattxs(gin) * & this % scatter % energy(gin) % data)) end if - case('f_mu', 'f_mu/mult') - if (present(gout) .and. present(mu)) then - if (gout < this % scatter % gmin(gin) .or. & - gout > this % scatter % gmax(gin)) then - xs = ZERO - else - xs = this % scatter % calc_f(gin, gout, mu) - if (xstype == 'f_mu/mult') then - xs = xs / this % scatter % mult(gin) % data(gout) - end if - end if - else - xs = ZERO - ! TODO (Not likely needed) - ! (asking for f_mu without asking for a group or mu would mean the - ! user of this code wants the complete 1-outgoing group distribution - ! which Im not sure what they would do with that. - end if case('scatter*f_mu/mult','scatter*f_mu') if (present(gout)) then if (gout < this % scatter % gmin(gin) .or. & @@ -1275,20 +1242,6 @@ module mgxs_header else xs = this % scatter(iazi,ipol) % obj % scattxs(gin) end if - case('mult') - if (present(gout)) then - if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & - gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then - xs = ZERO - else - xs = this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) - end if - else - xs = dot_product(this % scatter(iazi,ipol) % obj % mult(gin) % data, & - this % scatter(iazi,ipol) % obj % scattxs(gin) * & - this % scatter(iazi,ipol) % obj % energy(gin) % data) - xs = xs / this % scatter(iazi,ipol) % obj % scattxs(gin) - end if case('scatter/mult') if (present(gout)) then if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & @@ -1300,31 +1253,10 @@ module mgxs_header this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) end if else - xs = this % scatter(iazi,ipol) % obj % scattxs(gin) * & - this % scatter(iazi,ipol) % obj % scattxs(gin) / & + xs = this % scatter(iazi,ipol) % obj % scattxs(gin) / & (dot_product(this % scatter(iazi,ipol) % obj % mult(gin) % data, & - this % scatter(iazi,ipol) % obj % scattxs(gin) * & this % scatter(iazi,ipol) % obj % energy(gin) % data)) end if - case('f_mu', 'f_mu/mult') - if (present(gout) .and. present(mu)) then - if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & - gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then - xs = ZERO - else - xs = this % scatter(iazi,ipol) % obj % calc_f(gin, gout, mu) - if (xstype == 'f_mu/mult') then - xs = xs / & - this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) - end if - end if - else - xs = ZERO - ! TODO (Not likely needed) - ! (asking for f_mu without asking for a group or mu would mean the - ! user of this code wants the complete 1-outgoing group distribution - ! which Im not sure what they would do with that. - end if case('scatter*f_mu/mult','scatter*f_mu') if (present(gout)) then if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & diff --git a/src/tally.F90 b/src/tally.F90 index b0c71f6dc..553ce94da 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -819,7 +819,7 @@ contains ! Set the direction and group to use with get_xs ! this only depends on if we if (t % estimator == ESTIMATOR_ANALOG .or. & - t % estimator == ESTIMATOR_COLLISION) then + t % estimator == ESTIMATOR_COLLISION) then if (survival_biasing) then ! Then we either are alive and had a scatter (and so g changed), ! or are dead and g did not change @@ -919,7 +919,7 @@ contains case (SCORE_INVERSE_VELOCITY) if (t % estimator == ESTIMATOR_ANALOG .or. & - t % estimator == ESTIMATOR_COLLISION) then + t % estimator == ESTIMATOR_COLLISION) then ! All events score to an inverse velocity bin. We actually use a ! collision estimator in place of an analog one since there is no way ! to count 'events' exactly for the inverse velocity From 228238778547bf162ba163682d247ddd0580e629 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 19 Mar 2016 14:02:05 -0400 Subject: [PATCH 055/259] Whoops. Forgot to make mgxs*_get_xs pure like I did the interface --- src/mgxs_header.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 5f8649292..8b0023204 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -1103,7 +1103,7 @@ module mgxs_header ! MGXS*_GET_XS returns the requested data cross section data !=============================================================================== - function mgxsiso_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) + pure function mgxsiso_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) class(MgxsIso), intent(in) :: this ! The Mgxs to initialize character(*) , intent(in) :: xstype ! Type of xs requested integer, intent(in) :: gin ! Incoming Energy group @@ -1191,7 +1191,7 @@ module mgxs_header end function mgxsiso_get_xs - function mgxsang_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) + pure function mgxsang_get_xs(this, xstype, gin, gout, uvw, mu) result(xs) class(MgxsAngle), intent(in) :: this ! The Mgxs to initialize character(*) , intent(in) :: xstype ! Type of xs requested integer, intent(in) :: gin ! Incoming Energy group From 0d82883c8552618118ac430896a7169201fd193e Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sat, 19 Mar 2016 15:21:38 -0400 Subject: [PATCH 056/259] Added new iso-in-lab test to suite --- tests/test_iso_in_lab/inputs_true.dat | 1 + tests/test_iso_in_lab/results_true.dat | 2 ++ tests/test_iso_in_lab/test_iso_in_lab.py | 26 ++++++++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 tests/test_iso_in_lab/inputs_true.dat create mode 100644 tests/test_iso_in_lab/results_true.dat create mode 100644 tests/test_iso_in_lab/test_iso_in_lab.py diff --git a/tests/test_iso_in_lab/inputs_true.dat b/tests/test_iso_in_lab/inputs_true.dat new file mode 100644 index 000000000..9a21b06f1 --- /dev/null +++ b/tests/test_iso_in_lab/inputs_true.dat @@ -0,0 +1 @@ +e0409e0660d58857a6a96ff5cb539ccc41c82f0e443e8081ee00bbee7b6c81b0ad43c870950ae37d4a18c329067b09479a27aa171c3a3f5771f53b384496fe61 \ No newline at end of file diff --git a/tests/test_iso_in_lab/results_true.dat b/tests/test_iso_in_lab/results_true.dat new file mode 100644 index 000000000..a860453c6 --- /dev/null +++ b/tests/test_iso_in_lab/results_true.dat @@ -0,0 +1,2 @@ +k-combined: +9.638451E-01 1.237712E-02 diff --git a/tests/test_iso_in_lab/test_iso_in_lab.py b/tests/test_iso_in_lab/test_iso_in_lab.py new file mode 100644 index 000000000..b60daea11 --- /dev/null +++ b/tests/test_iso_in_lab/test_iso_in_lab.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import hashlib +sys.path.insert(0, os.pardir) +from testing_harness import PyAPITestHarness +import openmc +import openmc.mgxs + + +class IsoInLabTestHarness(PyAPITestHarness): + + def _build_inputs(self): + """Write input XML files with iso-in-lab scattering.""" + + self._input_set.build_default_materials_and_geometry() + self._input_set.build_default_settings() + self._input_set.materials.make_isotropic_in_lab() + self._input_set.export() + + +if __name__ == '__main__': + harness = IsoInLabTestHarness('statepoint.10.*') + harness.main() From 175af7ae5f2373e198d3b920a54cbef224a732e0 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 20 Mar 2016 15:03:48 -0400 Subject: [PATCH 057/259] Im going to trick you in to giving me output Travis... --- tests/testing_harness.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 7d6dbc914..7d74c61aa 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -117,6 +117,7 @@ class TestHarness(object): sha512.update(outstr.encode('utf-8')) outstr = sha512.hexdigest() + print(outstr) return outstr def _write_results(self, results_string): From a79779e4137c1b9acb917495be1e2707076c25b0 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 20 Mar 2016 15:20:14 -0400 Subject: [PATCH 058/259] ill get you compiler error... --- tests/run_tests.py | 5 ++++- tests/testing_harness.py | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index 48fc23d4a..a270a22b7 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -230,7 +230,10 @@ class Test(object): make_list.append(options.n_procs) # Run make - rc = call(make_list) + # rc = call(make_list) + rc = check_output(make_list, stderr=subprocess.STDOUT) + print(rc) + rc = 0 if rc != 0: self.success = False self.msg = 'Failed on make.' diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 7d74c61aa..7d6dbc914 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -117,7 +117,6 @@ class TestHarness(object): sha512.update(outstr.encode('utf-8')) outstr = sha512.hexdigest() - print(outstr) return outstr def _write_results(self, results_string): From e0a65de46eb9f88641ca6d3919af76777f5172c1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 20 Mar 2016 15:27:49 -0400 Subject: [PATCH 059/259] still trying --- tests/run_tests.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/run_tests.py b/tests/run_tests.py index a270a22b7..8441f756a 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -9,6 +9,7 @@ import re import glob import socket from subprocess import call, check_output +import subprocess from collections import OrderedDict from optparse import OptionParser From b2ee7da86c98592e27bc8a5153c21a9cae88aeef Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 20 Mar 2016 15:45:35 -0400 Subject: [PATCH 060/259] Maybe this will get my output --- tests/run_tests.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index 8441f756a..5d2a6acd0 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -9,7 +9,6 @@ import re import glob import socket from subprocess import call, check_output -import subprocess from collections import OrderedDict from optparse import OptionParser @@ -231,10 +230,7 @@ class Test(object): make_list.append(options.n_procs) # Run make - # rc = call(make_list) - rc = check_output(make_list, stderr=subprocess.STDOUT) - print(rc) - rc = 0 + rc = call(make_list) if rc != 0: self.success = False self.msg = 'Failed on make.' @@ -471,6 +467,9 @@ for key in iter(tests): logfilename = os.path.splitext(logfilename)[0] logfilename = logfilename + '_{0}.log'.format(test.name) shutil.copy(logfile[0], logfilename) + f = open(logfilename, 'r') + for line in f: + print(line) # For coverage builds, use lcov to generate HTML output if test.coverage: From 448c3281ad1bd03df782b977136c78d2710ff1cf Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 20 Mar 2016 15:57:06 -0400 Subject: [PATCH 061/259] Ok this prints the compilation results on my machine, lets see about travis...... --- tests/run_tests.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index 5d2a6acd0..19b45c125 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -9,6 +9,7 @@ import re import glob import socket from subprocess import call, check_output +import subprocess from collections import OrderedDict from optparse import OptionParser @@ -230,7 +231,8 @@ class Test(object): make_list.append(options.n_procs) # Run make - rc = call(make_list) + rc = check_output(make_list) + print(rc) if rc != 0: self.success = False self.msg = 'Failed on make.' @@ -467,9 +469,6 @@ for key in iter(tests): logfilename = os.path.splitext(logfilename)[0] logfilename = logfilename + '_{0}.log'.format(test.name) shutil.copy(logfile[0], logfilename) - f = open(logfilename, 'r') - for line in f: - print(line) # For coverage builds, use lcov to generate HTML output if test.coverage: From a31fa5e52d0dd0d42291d2104fac2d72c64783cb Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 20 Mar 2016 16:01:53 -0400 Subject: [PATCH 062/259] Ok, we are in script mode then. got it --- tests/run_tests.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index 19b45c125..9856dd264 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -196,7 +196,9 @@ class Test(object): os.environ['HDF5_ROOT'] = PHDF5_DIR else: os.environ['HDF5_ROOT'] = HDF5_DIR - rc = call(['ctest', '-S', 'ctestscript.run','-V']) + # rc = call(['ctest', '-S', 'ctestscript.run','-V']) + rc = check_output(['ctest', '-S', 'ctestscript.run','-V']) + print(rc) if rc != 0: self.success = False self.msg = 'Failed on ctest script.' @@ -257,6 +259,8 @@ class Test(object): # Run ctests rc = call(ctest_list) + rc = check_output(ctest_list) + print(rc) if rc != 0: self.success = False self.msg = 'Failed on testing.' From 1377b063d3b9b02a54b78f44c4d06518ef93cdfa Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 20 Mar 2016 16:07:10 -0400 Subject: [PATCH 063/259] If you are reading these logs you are watching someone learn how we have travis and ctest set up on the fly... must be interesting --- tests/run_tests.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index 9856dd264..28daae258 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -9,7 +9,6 @@ import re import glob import socket from subprocess import call, check_output -import subprocess from collections import OrderedDict from optparse import OptionParser @@ -197,8 +196,8 @@ class Test(object): else: os.environ['HDF5_ROOT'] = HDF5_DIR # rc = call(['ctest', '-S', 'ctestscript.run','-V']) - rc = check_output(['ctest', '-S', 'ctestscript.run','-V']) - print(rc) + rc = call(['ctest', '-S', 'ctestscript.run','-VV', + '--output-on-failure']) if rc != 0: self.success = False self.msg = 'Failed on ctest script.' @@ -233,8 +232,7 @@ class Test(object): make_list.append(options.n_procs) # Run make - rc = check_output(make_list) - print(rc) + rc = call(make_list) if rc != 0: self.success = False self.msg = 'Failed on make.' @@ -259,8 +257,6 @@ class Test(object): # Run ctests rc = call(ctest_list) - rc = check_output(ctest_list) - print(rc) if rc != 0: self.success = False self.msg = 'Failed on testing.' From db2e198ad240b75abb5a6105cce3b7fb1953f54f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 20 Mar 2016 16:11:25 -0400 Subject: [PATCH 064/259] Ok reverting now that I got the output I needed. --- tests/run_tests.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index 28daae258..48fc23d4a 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -195,9 +195,7 @@ class Test(object): os.environ['HDF5_ROOT'] = PHDF5_DIR else: os.environ['HDF5_ROOT'] = HDF5_DIR - # rc = call(['ctest', '-S', 'ctestscript.run','-V']) - rc = call(['ctest', '-S', 'ctestscript.run','-VV', - '--output-on-failure']) + rc = call(['ctest', '-S', 'ctestscript.run','-V']) if rc != 0: self.success = False self.msg = 'Failed on ctest script.' From d735633519e5135d922cc8bb34d1b34ffec2a88e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 21 Mar 2016 10:45:09 -0500 Subject: [PATCH 065/259] Remove duplicate statements in calculate_urr_xs --- src/cross_section.F90 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index d0509deb8..b2813bef0 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -378,12 +378,6 @@ contains ! sample probability table using the cumulative distribution - ! determine interpolation factor on table - f = (E - urr % energy(i_energy)) / & - (urr % energy(i_energy + 1) - urr % energy(i_energy)) - - ! sample probability table using the cumulative distribution - ! Random numbers for xs calculation are sampled from a separated stream. ! This guarantees the randomness and, at the same time, makes sure we reuse ! random number for the same nuclide at different temperatures, therefore From c70f0a587823123caf1dd716897c2bbd10404197 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 21 Mar 2016 10:12:34 -0500 Subject: [PATCH 066/259] Fix spacing around % in ace module --- src/ace.F90 | 246 ++++++++++++++++++++++++++-------------------------- 1 file changed, 123 insertions(+), 123 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index e354f5866..1d5f5f45b 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -226,10 +226,10 @@ contains ! Show which nuclide results in lowest energy for neutron transport do i = 1, n_nuclides_total - if (nuclides(i)%energy(nuclides(i)%n_grid) == energy_max_neutron) then + if (nuclides(i) % energy(nuclides(i) % n_grid) == energy_max_neutron) then call write_message("Maximum neutron transport energy: " // & trim(to_str(energy_max_neutron)) // " MeV for " // & - trim(adjustl(nuclides(i)%name)), 6) + trim(adjustl(nuclides(i) % name)), 6) exit end if end do @@ -931,42 +931,42 @@ contains ! "one" angular distribution, it is repeated as many times as there are ! energy distributions for this reaction since the ! UncorrelatedAngleEnergy type holds one angle and energy distribution. - do k = 1, size(rxn%products(1)%distribution) - select type (aedist => rxn%products(1)%distribution(k)%obj) + do k = 1, size(rxn % products(1) % distribution) + select type (aedist => rxn % products(1) % distribution(k) % obj) type is (UncorrelatedAngleEnergy) ! allocate space for incoming energies and locations NE = int(XSS(JXS(9) + LOCB - 1)) - allocate(aedist%angle%energy(NE)) - allocate(aedist%angle%distribution(NE)) + allocate(aedist % angle % energy(NE)) + allocate(aedist % angle % distribution(NE)) allocate(LC(NE)) ! read incoming energy grid and location of nucs XSS_index = JXS(9) + LOCB - aedist%angle%energy(:) = get_real(NE) + aedist % angle % energy(:) = get_real(NE) LC(:) = get_int(NE) ! determine dize of data block do j = 1, NE if (LC(j) == 0) then ! isotropic - allocate(Uniform :: aedist%angle%distribution(j)%obj) - select type (adist => aedist%angle%distribution(j)%obj) + allocate(Uniform :: aedist % angle % distribution(j) % obj) + select type (adist => aedist % angle % distribution(j) % obj) type is (Uniform) - adist%a = -ONE - adist%b = ONE + adist % a = -ONE + adist % b = ONE end select elseif (LC(j) > 0) then ! 32 equiprobable bins - allocate(Equiprobable :: aedist%angle%distribution(j)%obj) - select type (adist => aedist%angle%distribution(j)%obj) + allocate(Equiprobable :: aedist % angle % distribution(j) % obj) + select type (adist => aedist % angle % distribution(j) % obj) type is (Equiprobable) - allocate(adist%x(33)) + allocate(adist % x(33)) end select elseif (LC(j) < 0) then ! tabular distribution - allocate(Tabular :: aedist%angle%distribution(j)%obj) + allocate(Tabular :: aedist % angle % distribution(j) % obj) end if end do @@ -975,9 +975,9 @@ contains ! on-the-fly do j = 1, NE XSS_index = JXS(9) + abs(LC(j)) - 1 - select type(adist => aedist%angle%distribution(j)%obj) + select type(adist => aedist % angle % distribution(j) % obj) type is (Equiprobable) - adist%x(:) = get_real(33) + adist % x(:) = get_real(33) type is (Tabular) ! determine interpolation and number of points interp = nint(XSS(XSS_index)) @@ -985,10 +985,10 @@ contains ! Get probability density data XSS_index = XSS_index + 2 - allocate(adist%x(NP), adist%p(NP), adist%c(NP)) - adist%x(:) = get_real(NP) - adist%p(:) = get_real(NP) - adist%c(:) = get_real(NP) + allocate(adist % x(NP), adist % p(NP), adist % c(NP)) + adist % x(:) = get_real(NP) + adist % p(:) = get_real(NP) + adist % c(:) = get_real(NP) end select end do deallocate(LC) @@ -1025,9 +1025,9 @@ contains end do ! Allocate space for distributions and probability of validity - associate (p => nuc%reactions(i + 1)%products(1)) - allocate(p%applicability(n)) - allocate(p%distribution(n)) + associate (p => nuc % reactions(i + 1) % products(1)) + allocate(p % applicability(n)) + allocate(p % distribution(n)) LNW = nint(XSS(JXS(10) + i - 1)) n = 0 @@ -1039,11 +1039,11 @@ contains IDAT = nint(XSS(JXS(11) + LNW + 1)) ! Read probability of law validity - call p%applicability(n)%from_ace(XSS, JXS(11) + LNW + 2) + call p % applicability(n) % from_ace(XSS, JXS(11) + LNW + 2) ! Read energy law data - call get_energy_dist(p%distribution(n)%obj, LAW, & - JXS(11), IDAT, nuc%awr, nuc%reactions(i + 1)%Q_value) + call get_energy_dist(p % distribution(n) % obj, LAW, & + JXS(11), IDAT, nuc % awr, nuc % reactions(i + 1) % Q_value) ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< ! Before the secondary distribution refactor, when the angle/energy @@ -1052,11 +1052,11 @@ contains ! distribution even when no angle distribution exists in the ACE file ! (isotropic is assumed). To preserve the RNG stream, we explicitly ! mark fission reactions so that we avoid the angle sampling. - if (any(nuc%reactions(i + 1)%MT == & + if (any(nuc % reactions(i + 1) % MT == & [N_FISSION, N_F, N_NF, N_2NF, N_3NF])) then - select type (aedist => p%distribution(n)%obj) + select type (aedist => p % distribution(n) % obj) type is (UncorrelatedAngleEnergy) - aedist%fission = .true. + aedist % fission = .true. end select end if ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< @@ -1110,8 +1110,8 @@ contains select case (law) case (1) - allocate(TabularEquiprobable :: aedist%energy) - select type (edist => aedist%energy) + allocate(TabularEquiprobable :: aedist % energy) + select type (edist => aedist % energy) type is (TabularEquiprobable) NR = nint(XSS(XSS_index)) NE = nint(XSS(XSS_index + 1 + 2*NR)) @@ -1119,33 +1119,33 @@ contains call fatal_error("Multiple interpolation regions not yet supported & &for tabular equiprobable energy distributions.") end if - edist%n_region = NR + edist % n_region = NR ! Read incoming energies for which outgoing energies are tabulated - allocate(edist%energy_in(NE)) + allocate(edist % energy_in(NE)) XSS_index = XSS_index + 2 + 2*NR - edist%energy_in(:) = get_real(NE) + edist % energy_in(:) = get_real(NE) ! Read outgoing energy tables NP = nint(XSS(XSS_index)) - allocate(edist%energy_out(NP, NE)) + allocate(edist % energy_out(NP, NE)) XSS_index = XSS_index + 1 do i = 1, NE - edist%energy_out(:, i) = get_real(NP) + edist % energy_out(:, i) = get_real(NP) end do end select case (3) - allocate(LevelInelastic :: aedist%energy) - select type (edist => aedist%energy) + allocate(LevelInelastic :: aedist % energy) + select type (edist => aedist % energy) type is (LevelInelastic) - edist%threshold = XSS(XSS_index) - edist%mass_ratio = XSS(XSS_index + 1) + edist % threshold = XSS(XSS_index) + edist % mass_ratio = XSS(XSS_index + 1) end select case (4) - allocate(ContinuousTabular :: aedist%energy) - select type (edist => aedist%energy) + allocate(ContinuousTabular :: aedist % energy) + select type (edist => aedist % energy) type is (ContinuousTabular) NR = nint(XSS(XSS_index)) XSS_index = XSS_index + 1 @@ -1153,84 +1153,84 @@ contains call fatal_error("Multiple interpolation regions not yet supported & &for continuous tabular energy distributions.") end if - edist%n_region = NR + edist % n_region = NR ! Read breakpoints and interpolation parameters if (NR > 0) then - allocate(edist%breakpoints(NR)) - allocate(edist%interpolation(NR)) - edist%breakpoints(:) = get_int(NR) - edist%interpolation(:) = get_int(NR) + allocate(edist % breakpoints(NR)) + allocate(edist % interpolation(NR)) + edist % breakpoints(:) = get_int(NR) + edist % interpolation(:) = get_int(NR) end if ! Read incoming energies for which outgoing energies are tabulated and ! locators NE = nint(XSS(XSS_index)) XSS_index = XSS_index + 1 - allocate(edist%energy(NE)) + allocate(edist % energy(NE)) allocate(L(NE)) - edist%energy(:) = get_real(NE) + edist % energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(edist%distribution(NE)) + allocate(edist % distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - edist%distribution(i)%interpolation = mod(interp, 10) - edist%distribution(i)%n_discrete = (interp - & - edist%distribution(i)%interpolation)/10 + edist % distribution(i) % interpolation = mod(interp, 10) + edist % distribution(i) % n_discrete = (interp - & + edist % distribution(i) % interpolation)/10 ! check for discrete lines present - if (edist%distribution(i)%n_discrete > 0) then + if (edist % distribution(i) % n_discrete > 0) then call fatal_error("Discrete lines in continuous tabular & &distribution not yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(edist%distribution(i)%e_out(NP)) - allocate(edist%distribution(i)%p(NP)) - allocate(edist%distribution(i)%c(NP)) + allocate(edist % distribution(i) % e_out(NP)) + allocate(edist % distribution(i) % p(NP)) + allocate(edist % distribution(i) % c(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - edist%distribution(i)%e_out(:) = get_real(NP) - edist%distribution(i)%p(:) = get_real(NP) - edist%distribution(i)%c(:) = get_real(NP) + edist % distribution(i) % e_out(:) = get_real(NP) + edist % distribution(i) % p(:) = get_real(NP) + edist % distribution(i) % c(:) = get_real(NP) end do deallocate(L) end select case (7) - allocate(MaxwellEnergy :: aedist%energy) - select type (edist => aedist%energy) + allocate(MaxwellEnergy :: aedist % energy) + select type (edist => aedist % energy) type is (MaxwellEnergy) - call edist%theta%from_ace(XSS, XSS_index) - edist%u = XSS(XSS_index + 2 + 2*edist%theta%n_regions + & - 2*edist%theta%n_pairs) + call edist % theta % from_ace(XSS, XSS_index) + edist % u = XSS(XSS_index + 2 + 2*edist % theta % n_regions + & + 2*edist % theta % n_pairs) end select case (9) - allocate(Evaporation :: aedist%energy) - select type(edist => aedist%energy) + allocate(Evaporation :: aedist % energy) + select type(edist => aedist % energy) type is (Evaporation) - call edist%theta%from_ace(XSS, XSS_index) - edist%u = XSS(XSS_index + 2 + 2*edist%theta%n_regions + & - 2*edist%theta%n_pairs) + call edist % theta % from_ace(XSS, XSS_index) + edist % u = XSS(XSS_index + 2 + 2*edist % theta % n_regions + & + 2*edist % theta % n_pairs) end select case (11) - allocate(WattEnergy :: aedist%energy) - select type(edist => aedist%energy) + allocate(WattEnergy :: aedist % energy) + select type(edist => aedist % energy) type is (WattEnergy) - call edist%a%from_ace(XSS, XSS_index) - XSS_index = XSS_index + 2 + 2*edist%a%n_regions + 2*edist%a%n_pairs - call edist%b%from_ace(XSS, XSS_index) - XSS_index = XSS_index + 2 + 2*edist%b%n_regions + 2*edist%b%n_pairs - edist%u = XSS(XSS_index) + call edist % a % from_ace(XSS, XSS_index) + XSS_index = XSS_index + 2 + 2*edist % a % n_regions + 2*edist % a % n_pairs + call edist % b % from_ace(XSS, XSS_index) + XSS_index = XSS_index + 2 + 2*edist % b % n_regions + 2*edist % b % n_pairs + edist % u = XSS(XSS_index) end select end select @@ -1245,45 +1245,45 @@ contains call fatal_error("Multiple interpolation regions not yet supported & &for Kalbach-Mann energy distributions.") end if - aedist%n_region = NR + aedist % n_region = NR ! Read incoming energies for which outgoing energies are tabulated and locators - allocate(aedist%energy(NE)) + allocate(aedist % energy(NE)) allocate(L(NE)) XSS_index = XSS_index + 2 + 2*NR - aedist%energy(:) = get_real(NE) + aedist % energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(aedist%distribution(NE)) + allocate(aedist % distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - aedist%distribution(i)%interpolation = mod(interp, 10) - aedist%distribution(i)%n_discrete = (interp - aedist%distribution(i)%interpolation)/10 + aedist % distribution(i) % interpolation = mod(interp, 10) + aedist % distribution(i) % n_discrete = (interp - aedist % distribution(i) % interpolation)/10 ! check for discrete lines present - if (aedist%distribution(i)%n_discrete > 0) then + if (aedist % distribution(i) % n_discrete > 0) then call fatal_error("Discrete lines in Kalbach-Mann distribution not & &yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(aedist%distribution(i)%e_out(NP)) - allocate(aedist%distribution(i)%p(NP)) - allocate(aedist%distribution(i)%c(NP)) - allocate(aedist%distribution(i)%r(NP)) - allocate(aedist%distribution(i)%a(NP)) + allocate(aedist % distribution(i) % e_out(NP)) + allocate(aedist % distribution(i) % p(NP)) + allocate(aedist % distribution(i) % c(NP)) + allocate(aedist % distribution(i) % r(NP)) + allocate(aedist % distribution(i) % a(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - aedist%distribution(i)%e_out(:) = get_real(NP) - aedist%distribution(i)%p(:) = get_real(NP) - aedist%distribution(i)%c(:) = get_real(NP) - aedist%distribution(i)%r(:) = get_real(NP) - aedist%distribution(i)%a(:) = get_real(NP) + aedist % distribution(i) % e_out(:) = get_real(NP) + aedist % distribution(i) % p(:) = get_real(NP) + aedist % distribution(i) % c(:) = get_real(NP) + aedist % distribution(i) % r(:) = get_real(NP) + aedist % distribution(i) % a(:) = get_real(NP) end do deallocate(L) @@ -1298,67 +1298,67 @@ contains call fatal_error("Multiple interpolation regions not yet supported & &for correlated angle-energy distributions.") end if - aedist%n_region = NR + aedist % n_region = NR ! Read incoming energies for which outgoing energies are tabulated and ! locators - allocate(aedist%energy(NE)) + allocate(aedist % energy(NE)) allocate(L(NE)) XSS_index = XSS_index + 2 + 2*NR - aedist%energy(:) = get_real(NE) + aedist % energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(aedist%distribution(NE)) + allocate(aedist % distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - aedist%distribution(i)%interpolation = mod(interp, 10) - aedist%distribution(i)%n_discrete = (interp - aedist%distribution(i)%interpolation)/10 + aedist % distribution(i) % interpolation = mod(interp, 10) + aedist % distribution(i) % n_discrete = (interp - aedist % distribution(i) % interpolation)/10 ! check for discrete lines present - if (aedist%distribution(i)%n_discrete > 0) then + if (aedist % distribution(i) % n_discrete > 0) then call fatal_error("Discrete lines in correlated angle-energy & &distribution not yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(aedist%distribution(i)%e_out(NP)) - allocate(aedist%distribution(i)%p(NP)) - allocate(aedist%distribution(i)%c(NP)) + allocate(aedist % distribution(i) % e_out(NP)) + allocate(aedist % distribution(i) % p(NP)) + allocate(aedist % distribution(i) % c(NP)) allocate(LC(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - aedist%distribution(i)%e_out(:) = get_real(NP) - aedist%distribution(i)%p(:) = get_real(NP) - aedist%distribution(i)%c(:) = get_real(NP) + aedist % distribution(i) % e_out(:) = get_real(NP) + aedist % distribution(i) % p(:) = get_real(NP) + aedist % distribution(i) % c(:) = get_real(NP) LC(:) = get_int(NP) ! allocate angular distributions for each incoming/outgoing energy - allocate(aedist%distribution(i)%angle(NP)) + allocate(aedist % distribution(i) % angle(NP)) do j = 1, NP if (LC(j) == 0) then ! isotropic - allocate(Uniform :: aedist%distribution(i)%angle(j)%obj) - select type (adist => aedist%distribution(i)%angle(j)%obj) + allocate(Uniform :: aedist % distribution(i) % angle(j) % obj) + select type (adist => aedist % distribution(i) % angle(j) % obj) type is (Uniform) - adist%a = -ONE - adist%b = ONE + adist % a = -ONE + adist % b = ONE end select elseif (LC(j) > 0) then ! tabular distribution - allocate(Tabular :: aedist%distribution(i)%angle(j)%obj) + allocate(Tabular :: aedist % distribution(i) % angle(j) % obj) end if end do ! read angular distributions do j = 1, NP XSS_index = LDIS + abs(LC(j)) - 1 - select type(adist => aedist%distribution(i)%angle(j)%obj) + select type(adist => aedist % distribution(i) % angle(j) % obj) type is (Tabular) ! determine interpolation and number of points interp = nint(XSS(XSS_index)) @@ -1366,10 +1366,10 @@ contains ! Get probability density data XSS_index = XSS_index + 2 - allocate(adist%x(NP), adist%p(NP), adist%c(NP)) - adist%x(:) = get_real(NP) - adist%p(:) = get_real(NP) - adist%c(:) = get_real(NP) + allocate(adist % x(NP), adist % p(NP), adist % c(NP)) + adist % x(:) = get_real(NP) + adist % p(:) = get_real(NP) + adist % c(:) = get_real(NP) end select end do deallocate(LC) @@ -1382,10 +1382,10 @@ contains ! ======================================================================== ! N-BODY PHASE SPACE DISTRIBUTION - aedist%n_bodies = int(XSS(XSS_index)) - aedist%mass_ratio = XSS(XSS_index + 1) - aedist%A = awr - aedist%Q = Q_value + aedist % n_bodies = int(XSS(XSS_index)) + aedist % mass_ratio = XSS(XSS_index + 1) + aedist % A = awr + aedist % Q = Q_value end select end subroutine get_energy_dist From 743de8776791f2b47ed8e0c4ff4b60879908ae10 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 21 Mar 2016 20:07:01 -0400 Subject: [PATCH 067/259] Help us obi-wan, youre our only hope.... for defeating gfortran 4.6... --- src/mgxs_header.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 8b0023204..56c538a5d 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -172,7 +172,7 @@ module mgxs_header ! Microscopic cross sections real(8), allocatable :: total(:,:,:) ! total cross section real(8), allocatable :: absorption(:,:,:) ! absorption cross section - class(ScattDataContainer), allocatable :: scatter(:,:) ! scattering information + type(ScattDataContainer), allocatable :: scatter(:,:) ! scattering information real(8), allocatable :: nu_fission(:,:,:) ! fission matrix (Gout x Gin) real(8), allocatable :: k_fission(:,:,:) ! kappa-fission real(8), allocatable :: fission(:,:,:) ! neutron production From d3e786e46ef8cadedb68c62e481bbfa49930af69 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 22 Mar 2016 14:37:07 -0400 Subject: [PATCH 068/259] Now inserting string array of distribcell paths to summary file --- src/summary.F90 | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/summary.F90 b/src/summary.F90 index e662aa473..343159528 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -4,7 +4,7 @@ module summary use constants use endf, only: reaction_name use geometry_header, only: Cell, Universe, Lattice, RectLattice, & - &HexLattice + &HexLattice, BASE_UNIVERSE use global use hdf5_interface use material_header, only: Material @@ -14,6 +14,8 @@ module summary use surface_header use string, only: to_str use tally_header, only: TallyObject + use output, only: find_offset, write_message + use string, only: to_str use hdf5 @@ -534,6 +536,10 @@ contains type(RegularMesh), pointer :: m type(TallyObject), pointer :: t + integer :: offset ! distibcell offset + character(100), allocatable :: paths(:) ! array of distribcell paths + character(100) :: path ! temporary distribcell path + tallies_group = create_group(file_id, "tallies") ! Write total number of meshes @@ -589,6 +595,21 @@ contains t%filters(j)%type == FILTER_POLAR .or. & t%filters(j)%type == FILTER_AZIMUTHAL) then call write_dataset(filter_group, "bins", t%filters(j)%real_bins) + + ! Write paths to reach each distribcell instance + else if (t%filters(j)%type == FILTER_DISTRIBCELL) then + ! Allocate array of strings for each distribcell path + allocate(paths(t % filters(j) % n_bins)) + ! Store path for each distribcell instance + do k = 1, t % filters(j) % n_bins + path = '' + offset = 0 + call find_offset(t % filters(j) % int_bins(1), & + universes(BASE_UNIVERSE), k, offset, path) + paths(k) = path + end do + call write_dataset(filter_group, "paths", paths) + deallocate(paths) else call write_dataset(filter_group, "bins", t%filters(j)%int_bins) end if From 67f9cfe1c70005b78ea82122d4074ca2066f2fe7 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 22 Mar 2016 14:53:57 -0400 Subject: [PATCH 069/259] Distribcell paths now handled by StatePoint.link_with_summary(...) routine in Python API --- openmc/filter.py | 13 +++++++++++++ openmc/statepoint.py | 10 ++++++++-- openmc/summary.py | 5 +++++ src/summary.F90 | 10 +++++++--- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 2ae8eeb62..3d67052ea 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -45,6 +45,9 @@ class Filter(object): stride : Integral The number of filter, nuclide and score bins within each of this filter's bins. + distribcell_paths : list of str + The paths traversed through the CSG tree to reach each distribcell + instance (for 'distribcell' filters only) """ @@ -56,6 +59,7 @@ class Filter(object): self._bins = None self._mesh = None self._stride = None + self._distribcell_paths = None if type is not None: self.type = type @@ -152,6 +156,10 @@ class Filter(object): def stride(self): return self._stride + @property + def distribcell_paths(self): + return self._distribcell_paths + @type.setter def type(self, type): if type is None: @@ -246,6 +254,11 @@ class Filter(object): self._stride = stride + @distribcell_paths.setter + def distribcell_paths(self, distribcell_paths): + cv.check_iterable_type('distribcell_paths', distribcell_paths, str) + self._distribcell_paths = distribcell_paths + def can_merge(self, other): """Determine if filter can be merged with another. diff --git a/openmc/statepoint.py b/openmc/statepoint.py index dcf544ccb..1644e44ab 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -609,11 +609,13 @@ class StatePoint(object): raise ValueError(msg) for tally_id, tally in self.tallies.items(): - # Get the Tally name from the summary file - tally.name = summary.tallies[tally_id].name + summary_tally = summary.tallies[tally_id] + tally.name = summary_tally.name tally.with_summary = True for tally_filter in tally.filters: + summary_filter = summary_tally.find_filter(tally_filter.type) + if tally_filter.type == 'surface': surface_ids = [] for bin in tally_filter.bins: @@ -626,6 +628,10 @@ class StatePoint(object): distribcell_ids.append(summary.cells[bin].id) tally_filter.bins = distribcell_ids + if tally_filter.type == 'distribcell': + tally_filter.distribcell_paths = \ + summary_filter.distribcell_paths + if tally_filter.type == 'universe': universe_ids = [] for bin in tally_filter.bins: diff --git a/openmc/summary.py b/openmc/summary.py index 119a870bf..f17c0c8f9 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -562,6 +562,11 @@ class Summary(object): new_filter = openmc.Filter(filter_type, bins) new_filter.num_bins = num_bins + # Read in distribcell paths + if filter_type == 'distribcell': + new_filter.distribcell_paths = \ + self._f['{0}/paths'.format(subsubbase)][...] + # Add Filter to the Tally tally.filters.append(new_filter) diff --git a/src/summary.F90 b/src/summary.F90 index 343159528..9597bbb0d 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -595,11 +595,15 @@ contains t%filters(j)%type == FILTER_POLAR .or. & t%filters(j)%type == FILTER_AZIMUTHAL) then call write_dataset(filter_group, "bins", t%filters(j)%real_bins) + else + call write_dataset(filter_group, "bins", t%filters(j)%int_bins) + end if ! Write paths to reach each distribcell instance - else if (t%filters(j)%type == FILTER_DISTRIBCELL) then + if (t%filters(j)%type == FILTER_DISTRIBCELL) then ! Allocate array of strings for each distribcell path allocate(paths(t % filters(j) % n_bins)) + ! Store path for each distribcell instance do k = 1, t % filters(j) % n_bins path = '' @@ -608,10 +612,10 @@ contains universes(BASE_UNIVERSE), k, offset, path) paths(k) = path end do + + ! Write array of distribcell paths to summary file call write_dataset(filter_group, "paths", paths) deallocate(paths) - else - call write_dataset(filter_group, "bins", t%filters(j)%int_bins) end if ! Write name of type From 30641c5d37646212ab0540a1064ef6590065f0f0 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 22 Mar 2016 18:35:31 -0400 Subject: [PATCH 070/259] Fixed small bug in first/last distribcell paths printed to summary; updated Python API to handle distribcell paths --- openmc/filter.py | 1 + openmc/geometry.py | 8 ++++++-- openmc/universe.py | 43 +++++++++++++++++++++++++++++-------------- src/summary.F90 | 26 +++++++++++++------------- 4 files changed, 49 insertions(+), 29 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 3d67052ea..5c62c1b6b 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -114,6 +114,7 @@ class Filter(object): clone._num_bins = self.num_bins clone._mesh = copy.deepcopy(self.mesh, memo) clone._stride = self.stride + clone._distribcell_paths = copy.deepcopy(self.distribcell_paths) memo[id(self)] = clone diff --git a/openmc/geometry.py b/openmc/geometry.py index dac0bd90f..be3f281eb 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -63,15 +63,19 @@ class Geometry(object): """ + # Extract the cell id from the path + last_index = path.rfind('>') + cell_id = int(path[last_index+1:]) + # Find the distribcell index of the cell. cells = self.get_all_cells() for cell in cells: - if cell.id == path[-1]: + if cell.id == cell_id: distribcell_index = cell.distribcell_index break else: raise RuntimeError('Could not find cell {} specified in a \ - distribcell filter'.format(path[-1])) + distribcell filter'.format(cell_id)) # Return memoize'd offset if possible if (path, distribcell_index) in self._offsets: diff --git a/openmc/universe.py b/openmc/universe.py index 1729aa7e2..6a1e3da88 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -298,9 +298,6 @@ class Cell(object): self.region = Intersection(self.region, region) def get_cell_instance(self, path, distribcell_index): - # Get the current element and remove it from the list - cell_id = path[0] - path = path[1:] # If the Cell is filled by a Material if self._type == 'normal' or self._type == 'void': @@ -622,11 +619,19 @@ class Universe(object): self._cells.clear() def get_cell_instance(self, path, distribcell_index): - # Get the current element and remove it from the list - path = path[1:] - # Get the Cell ID - cell_id = path[0] + # Pop off the root Universe ID from the path + next_index = path.index('-') + path = path[next_index+2:] + + # Extract the Cell ID from the path + if '-' in path: + next_index = path.index('-') + cell_id = int(path[:next_index]) + path = path[next_index+2:] + else: + cell_id = int(path) + path = '' # Make a recursive call to the Cell within this Universe offset = self.cells[cell_id].get_cell_instance(path, distribcell_index) @@ -1090,20 +1095,30 @@ class RectLattice(Lattice): self._pitch = pitch def get_cell_instance(self, path, distribcell_index): - # Get the current element and remove it from the list - i = path[0] - path = path[1:] + + # Extract the lattice element from the path + next_index = path.index('-') + lat_id_indices = path[:next_index] + path = path[next_index+2:] + + # Extract the lattice cell indices from the path + i1 = lat_id_indices.index('(') + i2 = lat_id_indices.index(')') + i = lat_id_indices[i1+1:i2] + lat_x = int(i.split(',')[0]) - 1 + lat_y = int(i.split(',')[1]) - 1 + lat_z = int(i.split(',')[2]) - 1 # For 2D Lattices if len(self._dimension) == 2: - offset = self._offsets[i[3]-1, i[2]-1, i[1]-1, distribcell_index-1] - offset += self._universes[i[1]-1][i[2]-1].get_cell_instance(path, + offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] + offset += self._universes[lat_x][lat_y].get_cell_instance(path, distribcell_index) # For 3D Lattices else: - offset = self._offsets[i[3]-1, i[2]-1, i[1]-1, distribcell_index-1] - offset += self._universes[i[3]-1][i[2]-1][i[1]-1].get_cell_instance( + offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] + offset += self._universes[lat_z][lat_y][lat_x].get_cell_instance( path, distribcell_index) return offset diff --git a/src/summary.F90 b/src/summary.F90 index 9597bbb0d..c382f4734 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -601,21 +601,21 @@ contains ! Write paths to reach each distribcell instance if (t%filters(j)%type == FILTER_DISTRIBCELL) then - ! Allocate array of strings for each distribcell path - allocate(paths(t % filters(j) % n_bins)) + ! Allocate array of strings for each distribcell path + allocate(paths(t % filters(j) % n_bins)) - ! Store path for each distribcell instance - do k = 1, t % filters(j) % n_bins - path = '' - offset = 0 - call find_offset(t % filters(j) % int_bins(1), & - universes(BASE_UNIVERSE), k, offset, path) - paths(k) = path - end do + ! Store path for each distribcell instance + do k = 1, t % filters(j) % n_bins + path = '' + offset = 1 + call find_offset(t % filters(j) % int_bins(1), & + universes(BASE_UNIVERSE), k, offset, path) + paths(k) = path + end do - ! Write array of distribcell paths to summary file - call write_dataset(filter_group, "paths", paths) - deallocate(paths) + ! Write array of distribcell paths to summary file + call write_dataset(filter_group, "paths", paths) + deallocate(paths) end if ! Write name of type From fd94f6e80673cb523bbfd3255990c32c741b8f14 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 23 Mar 2016 11:35:25 -0400 Subject: [PATCH 071/259] Fixed Python 3 bug in both run_tests.py and distribcell_paths setter in summary.py --- openmc/summary.py | 5 +++-- tests/run_tests.py | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/openmc/summary.py b/openmc/summary.py index f17c0c8f9..9609a866b 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -564,8 +564,9 @@ class Summary(object): # Read in distribcell paths if filter_type == 'distribcell': - new_filter.distribcell_paths = \ - self._f['{0}/paths'.format(subsubbase)][...] + paths = self._f['{0}/paths'.format(subsubbase)][...] + paths = [path.decode() for path in paths] + new_filter.distribcell_paths = paths # Add Filter to the Tally tally.filters.append(new_filter) diff --git a/tests/run_tests.py b/tests/run_tests.py index 48fc23d4a..ed6ff0c20 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -363,10 +363,14 @@ sourcepoint_batch|statepoint_interval|survival_biasing|\ tally_assumesep|translation|uniform_fs|universe|void" # Delete items of dictionary if valgrind or coverage and not in script mode +to_delete = [] if not script_mode: for key in tests: if re.search('valgrind|coverage', key): - del tests[key] + to_delete.append(key) + +for key in to_delete: + del tests[key] # Check if tests empty if len(list(tests.keys())) == 0: From 1507efd5d648594870e856c085652869c1eb20fa Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 23 Mar 2016 11:40:14 -0400 Subject: [PATCH 072/259] Removed unused subroutine imports in summary.F90 used for debugging distribcell paths --- src/summary.F90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/summary.F90 b/src/summary.F90 index c382f4734..2b34ccfb6 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -14,8 +14,7 @@ module summary use surface_header use string, only: to_str use tally_header, only: TallyObject - use output, only: find_offset, write_message - use string, only: to_str + use output, only: find_offset use hdf5 From 83f19e8cf1ade0a85f980f3b86c70c3053f9d019 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 23 Mar 2016 13:50:27 -0400 Subject: [PATCH 073/259] Fixed bug for Python 2 reading of distribcell paths in Summary API --- .../pythonapi/examples/mgxs-part-i.ipynb | 309 ++-- .../pythonapi/examples/mgxs-part-ii.ipynb | 1082 +---------- .../pythonapi/examples/mgxs-part-iii.ipynb | 487 +++-- .../examples/pandas-dataframes.ipynb | 1594 ++++++----------- .../pythonapi/examples/post-processing.ipynb | 328 ++-- .../pythonapi/examples/tally-arithmetic.ipynb | 374 ++-- openmc/summary.py | 2 +- openmc/trigger.py | 7 +- 8 files changed, 1350 insertions(+), 2833 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 6b78e9d53..01cd7cd7f 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -518,9 +518,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-07 15:58:16\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 11:41:09\n", " MPI Processes: 1\n", + " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -546,56 +547,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.19804 \n", - " 2/1 1.12945 \n", - " 3/1 1.15573 \n", - " 4/1 1.13929 \n", - " 5/1 1.16300 \n", - " 6/1 1.22117 \n", - " 7/1 1.19012 \n", - " 8/1 1.11299 \n", - " 9/1 1.16066 \n", - " 10/1 1.12566 \n", - " 11/1 1.20854 \n", - " 12/1 1.14691 1.17773 +/- 0.03082\n", - " 13/1 1.17204 1.17583 +/- 0.01789\n", - " 14/1 1.14148 1.16724 +/- 0.01529\n", - " 15/1 1.17272 1.16834 +/- 0.01189\n", - " 16/1 1.18575 1.17124 +/- 0.01014\n", - " 17/1 1.20498 1.17606 +/- 0.00983\n", - " 18/1 1.14754 1.17249 +/- 0.00923\n", - " 19/1 1.18141 1.17348 +/- 0.00820\n", - " 20/1 1.15074 1.17121 +/- 0.00768\n", - " 21/1 1.15914 1.17011 +/- 0.00703\n", - " 22/1 1.14586 1.16809 +/- 0.00673\n", - " 23/1 1.18999 1.16978 +/- 0.00642\n", - " 24/1 1.15101 1.16844 +/- 0.00609\n", - " 25/1 1.13791 1.16640 +/- 0.00602\n", - " 26/1 1.19791 1.16837 +/- 0.00597\n", - " 27/1 1.19818 1.17012 +/- 0.00587\n", - " 28/1 1.14160 1.16854 +/- 0.00576\n", - " 29/1 1.11487 1.16571 +/- 0.00614\n", - " 30/1 1.17538 1.16620 +/- 0.00584\n", - " 31/1 1.20210 1.16791 +/- 0.00581\n", - " 32/1 1.20078 1.16940 +/- 0.00574\n", - " 33/1 1.14624 1.16839 +/- 0.00558\n", - " 34/1 1.14618 1.16747 +/- 0.00542\n", - " 35/1 1.16866 1.16752 +/- 0.00520\n", - " 36/1 1.18565 1.16821 +/- 0.00504\n", - " 37/1 1.16824 1.16821 +/- 0.00485\n", - " 38/1 1.18299 1.16874 +/- 0.00471\n", - " 39/1 1.21418 1.17031 +/- 0.00480\n", - " 40/1 1.11167 1.16835 +/- 0.00504\n", - " 41/1 1.11545 1.16665 +/- 0.00516\n", - " 42/1 1.11114 1.16491 +/- 0.00529\n", - " 43/1 1.14227 1.16423 +/- 0.00517\n", - " 44/1 1.14104 1.16355 +/- 0.00506\n", - " 45/1 1.16756 1.16366 +/- 0.00492\n", - " 46/1 1.13065 1.16274 +/- 0.00487\n", - " 47/1 1.11251 1.16139 +/- 0.00492\n", - " 48/1 1.14731 1.16101 +/- 0.00481\n", - " 49/1 1.16691 1.16117 +/- 0.00469\n", - " 50/1 1.19679 1.16206 +/- 0.00465\n", + " 1/1 1.11184 \n", + " 2/1 1.15820 \n", + " 3/1 1.18468 \n", + " 4/1 1.17492 \n", + " 5/1 1.19645 \n", + " 6/1 1.18436 \n", + " 7/1 1.14070 \n", + " 8/1 1.15150 \n", + " 9/1 1.19202 \n", + " 10/1 1.17677 \n", + " 11/1 1.20272 \n", + " 12/1 1.21366 1.20819 +/- 0.00547\n", + " 13/1 1.15906 1.19181 +/- 0.01668\n", + " 14/1 1.14687 1.18058 +/- 0.01629\n", + " 15/1 1.14570 1.17360 +/- 0.01442\n", + " 16/1 1.13480 1.16713 +/- 0.01343\n", + " 17/1 1.17680 1.16852 +/- 0.01144\n", + " 18/1 1.16866 1.16853 +/- 0.00990\n", + " 19/1 1.19253 1.17120 +/- 0.00913\n", + " 20/1 1.18124 1.17220 +/- 0.00823\n", + " 21/1 1.19206 1.17401 +/- 0.00766\n", + " 22/1 1.17681 1.17424 +/- 0.00700\n", + " 23/1 1.17634 1.17440 +/- 0.00644\n", + " 24/1 1.13659 1.17170 +/- 0.00654\n", + " 25/1 1.17144 1.17169 +/- 0.00609\n", + " 26/1 1.20649 1.17386 +/- 0.00610\n", + " 27/1 1.11238 1.17024 +/- 0.00678\n", + " 28/1 1.18911 1.17129 +/- 0.00647\n", + " 29/1 1.14681 1.17000 +/- 0.00626\n", + " 30/1 1.12152 1.16758 +/- 0.00641\n", + " 31/1 1.12729 1.16566 +/- 0.00639\n", + " 32/1 1.15399 1.16513 +/- 0.00612\n", + " 33/1 1.13547 1.16384 +/- 0.00599\n", + " 34/1 1.17723 1.16440 +/- 0.00576\n", + " 35/1 1.09296 1.16154 +/- 0.00622\n", + " 36/1 1.19621 1.16287 +/- 0.00612\n", + " 37/1 1.12560 1.16149 +/- 0.00605\n", + " 38/1 1.17872 1.16211 +/- 0.00586\n", + " 39/1 1.17721 1.16263 +/- 0.00568\n", + " 40/1 1.13724 1.16178 +/- 0.00555\n", + " 41/1 1.18526 1.16254 +/- 0.00542\n", + " 42/1 1.13779 1.16177 +/- 0.00531\n", + " 43/1 1.15066 1.16143 +/- 0.00516\n", + " 44/1 1.12174 1.16026 +/- 0.00514\n", + " 45/1 1.17479 1.16068 +/- 0.00501\n", + " 46/1 1.14146 1.16014 +/- 0.00489\n", + " 47/1 1.20464 1.16135 +/- 0.00491\n", + " 48/1 1.15119 1.16108 +/- 0.00479\n", + " 49/1 1.17938 1.16155 +/- 0.00468\n", + " 50/1 1.15798 1.16146 +/- 0.00457\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -605,27 +606,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.2100E-01 seconds\n", - " Reading cross sections = 7.4000E-02 seconds\n", - " Total time in simulation = 8.3830E+00 seconds\n", - " Time in transport only = 8.3670E+00 seconds\n", - " Time in inactive batches = 1.0330E+00 seconds\n", - " Time in active batches = 7.3500E+00 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 5.7200E-01 seconds\n", + " Reading cross sections = 1.3300E-01 seconds\n", + " Total time in simulation = 2.7830E+00 seconds\n", + " Time in transport only = 2.1610E+00 seconds\n", + " Time in inactive batches = 4.1200E-01 seconds\n", + " Time in active batches = 2.3710E+00 seconds\n", + " Time synchronizing fission bank = 8.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 8.7140E+00 seconds\n", - " Calculation Rate (inactive) = 24201.4 neutrons/second\n", - " Calculation Rate (active) = 13605.4 neutrons/second\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 3.3710E+00 seconds\n", + " Calculation Rate (inactive) = 60679.6 neutrons/second\n", + " Calculation Rate (active) = 42176.3 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.16131 +/- 0.00453\n", - " k-effective (Track-length) = 1.16206 +/- 0.00465\n", - " k-effective (Absorption) = 1.16096 +/- 0.00364\n", - " Combined k-effective = 1.16120 +/- 0.00325\n", + " k-effective (Collision) = 1.15984 +/- 0.00411\n", + " k-effective (Track-length) = 1.16146 +/- 0.00457\n", + " k-effective (Absorption) = 1.16177 +/- 0.00380\n", + " Combined k-effective = 1.16105 +/- 0.00364\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -751,8 +752,8 @@ "\tDomain Type =\tcell\n", "\tDomain ID =\t1\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 1.88e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 5.91e-01%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 2.69e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 5.93e-01%\n", "\n", "\n", "\n" @@ -780,7 +781,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -795,19 +796,19 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
1 1 1 total 0.668323 0.00126411total0.6677870.001802
0 1 2 total 1.293258 0.00762412total1.2920130.007642
\n", @@ -815,8 +816,8 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\n", - "1 1 1 total 0.668323 0.001264\n", - "0 1 2 total 1.293258 0.007624" + "1 1 1 total 0.667787 0.001802\n", + "0 1 2 total 1.292013 0.007642" ] }, "execution_count": 20, @@ -891,7 +892,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -908,23 +909,23 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
0 1 0.000000 0.000001 total (((total / flux) - (absorption / flux)) - (sca... 4.884981e-15 0.01127410.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...0.000000e+000.011292
1 1 0.000001 20.000000 total (((total / flux) - (absorption / flux)) - (sca... 1.221245e-15 0.00180216.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...-3.330669e-160.002570
\n", @@ -935,9 +936,9 @@ "0 1 0.00e+00 6.25e-07 total \n", "1 1 6.25e-07 2.00e+01 total \n", "\n", - " score mean std. dev. \n", - "0 (((total / flux) - (absorption / flux)) - (sca... 4.88e-15 1.13e-02 \n", - "1 (((total / flux) - (absorption / flux)) - (sca... 1.22e-15 1.80e-03 " + " score mean std. dev. \n", + "0 (((total / flux) - (absorption / flux)) - (sca... 0.00e+00 1.13e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... -3.33e-16 2.57e-03 " ] }, "execution_count": 23, @@ -970,7 +971,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -987,23 +988,23 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
0 1 0.000000 0.000001 total ((absorption / flux) / (total / flux)) 0.076219 0.00065110.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0761150.000649
1 1 0.000001 20.000000 total ((absorption / flux) / (total / flux)) 0.019319 0.00008616.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0192630.000095
\n", @@ -1015,8 +1016,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 ((absorption / flux) / (total / flux)) 7.62e-02 6.51e-04 \n", - "1 ((absorption / flux) / (total / flux)) 1.93e-02 8.65e-05 " + "0 ((absorption / flux) / (total / flux)) 7.61e-02 6.49e-04 \n", + "1 ((absorption / flux) / (total / flux)) 1.93e-02 9.46e-05 " ] }, "execution_count": 24, @@ -1042,7 +1043,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1059,23 +1060,23 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
0 1 0.000000 0.000001 total ((scatter / flux) / (total / flux)) 0.923781 0.00771410.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9238850.007736
1 1 0.000001 20.000000 total ((scatter / flux) / (total / flux)) 0.980681 0.00261716.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9807370.003737
\n", @@ -1087,8 +1088,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 ((scatter / flux) / (total / flux)) 9.24e-01 7.71e-03 \n", - "1 ((scatter / flux) / (total / flux)) 9.81e-01 2.62e-03 " + "0 ((scatter / flux) / (total / flux)) 9.24e-01 7.74e-03 \n", + "1 ((scatter / flux) / (total / flux)) 9.81e-01 3.74e-03 " ] }, "execution_count": 25, @@ -1121,7 +1122,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1138,23 +1139,23 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
0 1 0.000000 0.000001 total (((absorption / flux) / (total / flux)) + ((sc... 1 0.00774110.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.007763
1 1 0.000001 20.000000 total (((absorption / flux) / (total / flux)) + ((sc... 1 0.00261916.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.003739
\n", @@ -1166,8 +1167,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 7.74e-03 \n", - "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 2.62e-03 " + "0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 7.76e-03 \n", + "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 3.74e-03 " ] }, "execution_count": 26, @@ -1200,7 +1201,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 0a8d7230e..5d8da5da1 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -34,14 +34,23 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/lib/pymodules/python2.7/matplotlib/__init__.py:1173: UserWarning: This call to matplotlib.use() has no effect\n", + "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", "\n", - " warnings.warn(_use_error_msg)\n", - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.rxname is not yet QA compliant.\n", - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.ace is not yet QA compliant.\n" + " warnings.warn(_use_error_msg)\n" + ] + }, + { + "ename": "ImportError", + "evalue": "No module named ace", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mopenmoc\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mopenmoc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcompatible\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mget_openmoc_geometry\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34mu'matplotlib inline'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mImportError\u001b[0m: No module named ace" ] } ], @@ -70,7 +79,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": true }, @@ -93,7 +102,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false }, @@ -127,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": true }, @@ -153,7 +162,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": true }, @@ -181,7 +190,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false }, @@ -218,7 +227,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": false }, @@ -243,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": true }, @@ -270,7 +279,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": true }, @@ -308,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": true }, @@ -333,7 +342,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false }, @@ -364,7 +373,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false }, @@ -388,7 +397,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false }, @@ -425,188 +434,11 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - " .d88888b. 888b d888 .d8888b.\n", - " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", - " 888 888 88888b.d88888 888 888\n", - " 888 888 88888b. .d88b. 88888b. 888Y88888P888 888 \n", - " 888 888 888 \"88b d8P Y8b 888 \"88b 888 Y888P 888 888 \n", - " 888 888 888 888 88888888 888 888 888 Y8P 888 888 888\n", - " Y88b. .d88P 888 d88P Y8b. 888 888 888 \" 888 Y88b d88P\n", - " \"Y88888P\" 88888P\" \"Y8888 888 888 888 888 \"Y8888P\"\n", - "__________________888______________________________________________________\n", - " 888\n", - " 888\n", - "\n", - " Copyright: 2011-2015 Massachusetts Institute of Technology\n", - " License: http://mit-crpg.github.io/openmc/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 263266f4f8807fd38c6ac282fae259ae73fa1eee\n", - " Date/Time: 2016-01-20 18:12:40\n", - " MPI Processes: 1\n", - "\n", - " ===========================================================================\n", - " ========================> INITIALIZATION <=========================\n", - " ===========================================================================\n", - "\n", - " Reading settings XML file...\n", - " Reading cross sections XML file...\n", - " Reading geometry XML file...\n", - " Reading materials XML file...\n", - " Reading tallies XML file...\n", - " Building neighboring cells lists for each surface...\n", - " Loading ACE cross section table: 92235.71c\n", - " Loading ACE cross section table: 92238.71c\n", - " Loading ACE cross section table: 8016.71c\n", - " Loading ACE cross section table: 1001.71c\n", - " Loading ACE cross section table: 40090.71c\n", - " Maximum neutron transport energy: 20.0000 MeV for 92235.71c\n", - " Initializing source particles...\n", - "\n", - " ===========================================================================\n", - " ====================> K EIGENVALUE SIMULATION <====================\n", - " ===========================================================================\n", - "\n", - " Bat./Gen. k Average k \n", - " ========= ======== ==================== \n", - " 1/1 1.22593 \n", - " 2/1 1.24245 \n", - " 3/1 1.24545 \n", - " 4/1 1.21868 \n", - " 5/1 1.22429 \n", - " 6/1 1.22607 \n", - " 7/1 1.21456 \n", - " 8/1 1.23816 \n", - " 9/1 1.25060 \n", - " 10/1 1.22806 \n", - " 11/1 1.19821 \n", - " 12/1 1.19897 1.19859 +/- 0.00038\n", - " 13/1 1.22119 1.20612 +/- 0.00754\n", - " 14/1 1.20701 1.20634 +/- 0.00533\n", - " 15/1 1.24784 1.21464 +/- 0.00927\n", - " 16/1 1.22413 1.21622 +/- 0.00773\n", - " 17/1 1.25050 1.22112 +/- 0.00817\n", - " 18/1 1.22006 1.22099 +/- 0.00707\n", - " 19/1 1.22813 1.22178 +/- 0.00629\n", - " 20/1 1.22791 1.22239 +/- 0.00566\n", - " 21/1 1.22729 1.22284 +/- 0.00514\n", - " 22/1 1.19867 1.22083 +/- 0.00510\n", - " 23/1 1.23796 1.22214 +/- 0.00488\n", - " 24/1 1.22412 1.22228 +/- 0.00452\n", - " 25/1 1.22638 1.22256 +/- 0.00421\n", - " 26/1 1.22181 1.22251 +/- 0.00394\n", - " 27/1 1.19055 1.22063 +/- 0.00415\n", - " 28/1 1.20683 1.21986 +/- 0.00399\n", - " 29/1 1.21689 1.21971 +/- 0.00378\n", - " 30/1 1.23670 1.22056 +/- 0.00368\n", - " 31/1 1.21396 1.22024 +/- 0.00352\n", - " 32/1 1.21389 1.21995 +/- 0.00337\n", - " 33/1 1.24649 1.22111 +/- 0.00342\n", - " 34/1 1.23204 1.22156 +/- 0.00330\n", - " 35/1 1.20768 1.22101 +/- 0.00322\n", - " 36/1 1.22271 1.22107 +/- 0.00309\n", - " 37/1 1.21796 1.22096 +/- 0.00298\n", - " 38/1 1.23842 1.22158 +/- 0.00293\n", - " 39/1 1.23080 1.22190 +/- 0.00285\n", - " 40/1 1.23572 1.22236 +/- 0.00279\n", - " 41/1 1.21691 1.22218 +/- 0.00271\n", - " 42/1 1.24616 1.22293 +/- 0.00272\n", - " 43/1 1.21903 1.22282 +/- 0.00264\n", - " 44/1 1.22967 1.22302 +/- 0.00257\n", - " 45/1 1.22053 1.22295 +/- 0.00250\n", - " 46/1 1.24087 1.22344 +/- 0.00248\n", - " 47/1 1.20251 1.22288 +/- 0.00248\n", - " 48/1 1.20331 1.22236 +/- 0.00246\n", - " 49/1 1.22724 1.22249 +/- 0.00240\n", - " 50/1 1.24798 1.22313 +/- 0.00243\n", - " Triggers unsatisfied, max unc./thresh. is 1.32110 for scatter-p1 in tally 10054\n", - " The estimated number of batches is 80\n", - " Creating state point statepoint.050.h5...\n", - " 51/1 1.22253 1.22311 +/- 0.00237\n", - " 52/1 1.24330 1.22359 +/- 0.00236\n", - " 53/1 1.23251 1.22380 +/- 0.00231\n", - " 54/1 1.21133 1.22352 +/- 0.00228\n", - " 55/1 1.24503 1.22399 +/- 0.00228\n", - " 56/1 1.22013 1.22391 +/- 0.00223\n", - " 57/1 1.23877 1.22423 +/- 0.00220\n", - " 58/1 1.23793 1.22451 +/- 0.00218\n", - " 59/1 1.21018 1.22422 +/- 0.00215\n", - " 60/1 1.22417 1.22422 +/- 0.00211\n", - " 61/1 1.23094 1.22435 +/- 0.00207\n", - " 62/1 1.23310 1.22452 +/- 0.00204\n", - " 63/1 1.22488 1.22453 +/- 0.00200\n", - " 64/1 1.22702 1.22457 +/- 0.00196\n", - " 65/1 1.18834 1.22391 +/- 0.00204\n", - " 66/1 1.23112 1.22404 +/- 0.00200\n", - " 67/1 1.21611 1.22390 +/- 0.00197\n", - " 68/1 1.22513 1.22392 +/- 0.00194\n", - " 69/1 1.21741 1.22381 +/- 0.00191\n", - " 70/1 1.22484 1.22383 +/- 0.00188\n", - " 71/1 1.19662 1.22338 +/- 0.00190\n", - " 72/1 1.23315 1.22354 +/- 0.00187\n", - " 73/1 1.22796 1.22361 +/- 0.00185\n", - " 74/1 1.21417 1.22346 +/- 0.00182\n", - " 75/1 1.21020 1.22326 +/- 0.00181\n", - " 76/1 1.23413 1.22343 +/- 0.00179\n", - " 77/1 1.22184 1.22340 +/- 0.00176\n", - " 78/1 1.20309 1.22310 +/- 0.00176\n", - " 79/1 1.23458 1.22327 +/- 0.00174\n", - " 80/1 1.20724 1.22304 +/- 0.00173\n", - " Triggers satisfied for batch 80\n", - " Creating state point statepoint.080.h5...\n", - "\n", - " ===========================================================================\n", - " ======================> SIMULATION FINISHED <======================\n", - " ===========================================================================\n", - "\n", - "\n", - " =======================> TIMING STATISTICS <=======================\n", - "\n", - " Total time for initialization = 4.3200E-01 seconds\n", - " Reading cross sections = 9.1000E-02 seconds\n", - " Total time in simulation = 2.2239E+02 seconds\n", - " Time in transport only = 2.2234E+02 seconds\n", - " Time in inactive batches = 1.3715E+01 seconds\n", - " Time in active batches = 2.0867E+02 seconds\n", - " Time synchronizing fission bank = 2.3000E-02 seconds\n", - " Sampling source sites = 1.7000E-02 seconds\n", - " SEND/RECV source sites = 6.0000E-03 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", - " Total time for finalization = 9.0000E-03 seconds\n", - " Total time elapsed = 2.2288E+02 seconds\n", - " Calculation Rate (inactive) = 7291.29 neutrons/second\n", - " Calculation Rate (active) = 1916.88 neutrons/second\n", - "\n", - " ============================> RESULTS <============================\n", - "\n", - " k-effective (Collision) = 1.22327 +/- 0.00148\n", - " k-effective (Track-length) = 1.22304 +/- 0.00173\n", - " k-effective (Absorption) = 1.22407 +/- 0.00129\n", - " Combined k-effective = 1.22373 +/- 0.00113\n", - " Leakage Fraction = 0.00000 +/- 0.00000\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Run OpenMC\n", "executor = openmc.Executor()\n", @@ -629,7 +461,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": false }, @@ -648,7 +480,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": true }, @@ -668,7 +500,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false }, @@ -703,46 +535,11 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Multi-Group XS\n", - "\tReaction Type =\tnu-fission\n", - "\tDomain Type =\tcell\n", - "\tDomain ID =\t10000\n", - "\tNuclide =\tU-235\n", - "\tCross Sections [barns]:\n", - " Group 1 [0.821 - 20.0 MeV]:\t3.31e+00 +/- 1.88e-01%\n", - " Group 2 [0.00553 - 0.821 MeV]:\t3.97e+00 +/- 1.24e-01%\n", - " Group 3 [4e-06 - 0.00553 MeV]:\t5.50e+01 +/- 2.02e-01%\n", - " Group 4 [6.25e-07 - 4e-06 MeV]:\t8.83e+01 +/- 3.56e-01%\n", - " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t2.90e+02 +/- 4.54e-01%\n", - " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t4.49e+02 +/- 4.10e-01%\n", - " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t6.87e+02 +/- 2.56e-01%\n", - " Group 8 [0.0 - 5.8e-08 MeV]:\t1.44e+03 +/- 2.82e-01%\n", - "\n", - "\tNuclide =\tU-238\n", - "\tCross Sections [barns]:\n", - " Group 1 [0.821 - 20.0 MeV]:\t1.06e+00 +/- 2.30e-01%\n", - " Group 2 [0.00553 - 0.821 MeV]:\t1.21e-03 +/- 2.25e-01%\n", - " Group 3 [4e-06 - 0.00553 MeV]:\t5.82e-04 +/- 3.09e+00%\n", - " Group 4 [6.25e-07 - 4e-06 MeV]:\t6.54e-06 +/- 3.27e-01%\n", - " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.07e-05 +/- 4.39e-01%\n", - " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.55e-05 +/- 4.12e-01%\n", - " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.30e-05 +/- 2.57e-01%\n", - " Group 8 [0.0 - 5.8e-08 MeV]:\t4.24e-05 +/- 2.81e-01%\n", - "\n", - "\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "nufission = xs_library[fuel_cell.id]['nu-fission']\n", "nufission.print_xs(xs_type='micro', nuclides=['U-235', 'U-238'])" @@ -757,34 +554,11 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Multi-Group XS\n", - "\tReaction Type =\tnu-fission\n", - "\tDomain Type =\tcell\n", - "\tDomain ID =\t10000\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [0.821 - 20.0 MeV]:\t2.52e-02 +/- 2.19e-01%\n", - " Group 2 [0.00553 - 0.821 MeV]:\t1.51e-03 +/- 1.22e-01%\n", - " Group 3 [4e-06 - 0.00553 MeV]:\t2.06e-02 +/- 2.02e-01%\n", - " Group 4 [6.25e-07 - 4e-06 MeV]:\t3.31e-02 +/- 3.56e-01%\n", - " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.09e-01 +/- 4.54e-01%\n", - " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.69e-01 +/- 4.10e-01%\n", - " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.58e-01 +/- 2.56e-01%\n", - " Group 8 [0.0 - 5.8e-08 MeV]:\t5.40e-01 +/- 2.82e-01%\n", - "\n", - "\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "nufission = xs_library[fuel_cell.id]['nu-fission']\n", "nufission.print_xs(xs_type='macro', nuclides='sum')" @@ -799,152 +573,11 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n", - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n", - "/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/mgxs/mgxs.py:1303: FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellgroup ingroup outnuclidemeanstd. dev.
1261000211H-10.2340220.003645
1271000211O-161.5603050.006280
1241000212H-11.5880250.002815
1251000212O-160.2851470.001392
1221000213H-10.0107760.000186
1231000213O-160.0000000.000000
1201000214H-10.0000230.000010
1211000214O-160.0000000.000000
1181000215H-10.0000000.000000
1191000215O-160.0000000.000000
\n", - "
" - ], - "text/plain": [ - " cell group in group out nuclide mean std. dev.\n", - "126 10002 1 1 H-1 0.234022 0.003645\n", - "127 10002 1 1 O-16 1.560305 0.006280\n", - "124 10002 1 2 H-1 1.588025 0.002815\n", - "125 10002 1 2 O-16 0.285147 0.001392\n", - "122 10002 1 3 H-1 0.010776 0.000186\n", - "123 10002 1 3 O-16 0.000000 0.000000\n", - "120 10002 1 4 H-1 0.000023 0.000010\n", - "121 10002 1 4 O-16 0.000000 0.000000\n", - "118 10002 1 5 H-1 0.000000 0.000000\n", - "119 10002 1 5 O-16 0.000000 0.000000" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "nuscatter = xs_library[moderator_cell.id]['nu-scatter']\n", "df = nuscatter.get_pandas_dataframe(xs_type='micro')\n", @@ -960,7 +593,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": true }, @@ -982,143 +615,22 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Multi-Group XS\n", - "\tReaction Type =\ttransport\n", - "\tDomain Type =\tcell\n", - "\tDomain ID =\t10000\n", - "\tNuclide =\tU-235\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t7.81e-03 +/- 4.75e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.82e-01 +/- 1.89e-01%\n", - "\n", - "\tNuclide =\tU-238\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t2.17e-01 +/- 1.31e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t2.53e-01 +/- 2.08e-01%\n", - "\n", - "\tNuclide =\tO-16\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t1.45e-01 +/- 1.50e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.74e-01 +/- 2.66e-01%\n", - "\n", - "\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "condensed_xs.print_xs()" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n", - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellgroup innuclidemeanstd. dev.
3100001U-23520.8281270.098842
4100001U-2389.5822950.012550
5100001O-163.1573580.004725
0100002U-235485.2176490.916465
1100002U-23811.1760810.023196
2100002O-163.7881670.010090
\n", - "
" - ], - "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "3 10000 1 U-235 20.828127 0.098842\n", - "4 10000 1 U-238 9.582295 0.012550\n", - "5 10000 1 O-16 3.157358 0.004725\n", - "0 10000 2 U-235 485.217649 0.916465\n", - "1 10000 2 U-238 11.176081 0.023196\n", - "2 10000 2 O-16 3.788167 0.010090" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df = condensed_xs.get_pandas_dataframe(xs_type='micro')\n", "df" @@ -1140,7 +652,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1159,7 +671,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1204,182 +716,11 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ NORMAL ] Importing ray tracing data from file...\n", - "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.574633\tres = 5.948E-317\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.679931\tres = 4.254E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.660910\tres = 1.832E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.658975\tres = 2.797E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.642976\tres = 2.928E-03\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.625710\tres = 2.428E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.606520\tres = 2.685E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.587277\tres = 3.067E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.568777\tres = 3.173E-02\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.551415\tres = 3.150E-02\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.535708\tres = 3.052E-02\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.521916\tres = 2.849E-02\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.510221\tres = 2.575E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.500691\tres = 2.241E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.493392\tres = 1.868E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.488317\tres = 1.458E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.485438\tres = 1.028E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.484705\tres = 5.896E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.486045\tres = 1.510E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.489362\tres = 2.766E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.494546\tres = 6.824E-03\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.501481\tres = 1.059E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.510041\tres = 1.402E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.520094\tres = 1.707E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.531507\tres = 1.971E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.544144\tres = 2.194E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.557872\tres = 2.378E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.572557\tres = 2.523E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.588072\tres = 2.632E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.604293\tres = 2.710E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.621101\tres = 2.758E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.638382\tres = 2.781E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656032\tres = 2.782E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.673950\tres = 2.765E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.692043\tres = 2.731E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.710227\tres = 2.685E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.728423\tres = 2.628E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.746558\tres = 2.562E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.764569\tres = 2.490E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.782396\tres = 2.412E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.799989\tres = 2.332E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.817301\tres = 2.249E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.834292\tres = 2.164E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.850927\tres = 2.079E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.867177\tres = 1.994E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883017\tres = 1.910E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.898427\tres = 1.827E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.913389\tres = 1.745E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.927891\tres = 1.665E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.941925\tres = 1.588E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.955483\tres = 1.512E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.968562\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.981161\tres = 1.369E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.993282\tres = 1.301E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.004928\tres = 1.235E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.016104\tres = 1.172E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.026816\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037073\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.046883\tres = 9.989E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.056257\tres = 9.460E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.065205\tres = 8.954E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.073739\tres = 8.472E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.081871\tres = 8.012E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.089613\tres = 7.573E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.096979\tres = 7.156E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.103980\tres = 6.760E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.110631\tres = 6.382E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.116943\tres = 6.024E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.122931\tres = 5.684E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.128607\tres = 5.361E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.133984\tres = 5.055E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139075\tres = 4.764E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.143892\tres = 4.489E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.148447\tres = 4.229E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.152752\tres = 3.982E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.156819\tres = 3.749E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.160659\tres = 3.528E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.164282\tres = 3.319E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.167701\tres = 3.122E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.170923\tres = 2.936E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.173961\tres = 2.760E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.176822\tres = 2.594E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.179516\tres = 2.437E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.182052\tres = 2.289E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.184438\tres = 2.150E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.186682\tres = 2.019E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.188792\tres = 1.895E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.190775\tres = 1.778E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.192639\tres = 1.668E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.194389\tres = 1.565E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.196032\tres = 1.468E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.197575\tres = 1.376E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.199023\tres = 1.290E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.200381\tres = 1.209E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.201654\tres = 1.133E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.202849\tres = 1.061E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.203968\tres = 9.939E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.205017\tres = 9.307E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.206000\tres = 8.714E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.206921\tres = 8.157E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.207783\tres = 7.634E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.208590\tres = 7.144E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.209346\tres = 6.684E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.210053\tres = 6.252E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.210715\tres = 5.848E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.211334\tres = 5.468E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.211913\tres = 5.113E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.212454\tres = 4.779E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.212960\tres = 4.467E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.213434\tres = 4.175E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.213876\tres = 3.901E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.214289\tres = 3.644E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.214675\tres = 3.404E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.215036\tres = 3.180E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.215373\tres = 2.969E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.215687\tres = 2.773E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.215981\tres = 2.589E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.216255\tres = 2.416E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.216511\tres = 2.256E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.216750\tres = 2.105E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.216973\tres = 1.964E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.217181\tres = 1.833E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.217376\tres = 1.710E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.217557\tres = 1.595E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.217726\tres = 1.488E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.217883\tres = 1.388E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.218030\tres = 1.294E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.218167\tres = 1.207E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.218295\tres = 1.125E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.218414\tres = 1.049E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.218525\tres = 9.777E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.218629\tres = 9.113E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.218725\tres = 8.494E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.218815\tres = 7.916E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.218899\tres = 7.376E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.218977\tres = 6.873E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.219050\tres = 6.404E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.219117\tres = 5.966E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.219180\tres = 5.557E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.219239\tres = 5.177E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.219294\tres = 4.822E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.219345\tres = 4.491E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.219392\tres = 4.182E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.219437\tres = 3.894E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.219478\tres = 3.626E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.219516\tres = 3.376E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.219552\tres = 3.144E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.219585\tres = 2.927E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.219616\tres = 2.724E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.219645\tres = 2.536E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.219672\tres = 2.361E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.219696\tres = 2.197E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.219720\tres = 2.045E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.219741\tres = 1.903E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.219761\tres = 1.771E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.219780\tres = 1.648E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.219797\tres = 1.534E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.219814\tres = 1.427E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.219829\tres = 1.328E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.219843\tres = 1.235E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.219856\tres = 1.149E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219868\tres = 1.069E-05\n" - ] - } - ], + "outputs": [], "source": [ "# Generate tracks for OpenMOC\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, spacing=0.1)\n", @@ -1399,21 +740,11 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "openmc keff = 1.223729\n", - "openmoc keff = 1.219868\n", - "bias [pcm]: -386.1\n" - ] - } - ], + "outputs": [], "source": [ "# Print report of keff and bias with OpenMC\n", "openmoc_keff = solver.getKeff()\n", @@ -1434,7 +765,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1474,251 +805,11 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ NORMAL ] Importing ray tracing data from file...\n", - "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.495594\tres = 5.948E-317\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.557312\tres = 5.044E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.518115\tres = 1.245E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.509016\tres = 7.033E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.496279\tres = 1.756E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.488357\tres = 2.502E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.482659\tres = 1.596E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.479523\tres = 1.167E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.478568\tres = 6.497E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.479590\tres = 1.991E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.482388\tres = 2.136E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.486774\tres = 5.834E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.492575\tres = 9.091E-03\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.499632\tres = 1.192E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.507799\tres = 1.433E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.516943\tres = 1.635E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.526942\tres = 1.801E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.537681\tres = 1.934E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.549060\tres = 2.038E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.560984\tres = 2.116E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.573368\tres = 2.172E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.586133\tres = 2.207E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.599207\tres = 2.226E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.612528\tres = 2.231E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.626035\tres = 2.223E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.639676\tres = 2.205E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.653402\tres = 2.179E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.667170\tres = 2.146E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.680942\tres = 2.107E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.694681\tres = 2.064E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.708356\tres = 2.018E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.721940\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.735406\tres = 1.918E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.748734\tres = 1.865E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.761904\tres = 1.812E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.774897\tres = 1.759E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.787700\tres = 1.705E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800299\tres = 1.652E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.812684\tres = 1.600E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.824844\tres = 1.547E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.836772\tres = 1.496E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.848462\tres = 1.446E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.859908\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871105\tres = 1.349E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.882052\tres = 1.302E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.892745\tres = 1.257E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.903184\tres = 1.212E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.913367\tres = 1.169E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.923297\tres = 1.128E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.932972\tres = 1.087E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.942394\tres = 1.048E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.951566\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.960490\tres = 9.733E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969168\tres = 9.378E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.977604\tres = 9.035E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.985800\tres = 8.704E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 0.993761\tres = 8.384E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.001491\tres = 8.076E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.008992\tres = 7.778E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.016271\tres = 7.490E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.023330\tres = 7.213E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.030174\tres = 6.946E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.036809\tres = 6.688E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.043238\tres = 6.440E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.049466\tres = 6.201E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.055498\tres = 5.970E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.061339\tres = 5.748E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.066993\tres = 5.534E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.072465\tres = 5.327E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.077760\tres = 5.129E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.082882\tres = 4.937E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.087837\tres = 4.753E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.092628\tres = 4.575E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.097260\tres = 4.404E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.101737\tres = 4.239E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106065\tres = 4.081E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.110247\tres = 3.928E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.114288\tres = 3.781E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.118191\tres = 3.639E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.121961\tres = 3.503E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.125603\tres = 3.372E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.129119\tres = 3.245E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.132513\tres = 3.124E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.135790\tres = 3.007E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.138954\tres = 2.894E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142007\tres = 2.785E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.144953\tres = 2.681E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.147796\tres = 2.580E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.150539\tres = 2.483E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.153185\tres = 2.390E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.155738\tres = 2.300E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.158200\tres = 2.214E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.160575\tres = 2.130E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.162865\tres = 2.050E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165073\tres = 1.973E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.167202\tres = 1.899E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.169255\tres = 1.828E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.171234\tres = 1.759E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173142\tres = 1.693E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.174980\tres = 1.629E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.176753\tres = 1.567E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.178461\tres = 1.508E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.180107\tres = 1.452E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.181694\tres = 1.397E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.183222\tres = 1.344E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.184695\tres = 1.294E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.186115\tres = 1.245E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.187482\tres = 1.198E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.188799\tres = 1.153E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.190068\tres = 1.109E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.191290\tres = 1.067E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.192468\tres = 1.027E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.193602\tres = 9.883E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.194694\tres = 9.510E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.195746\tres = 9.151E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.196759\tres = 8.805E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.197735\tres = 8.473E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.198674\tres = 8.152E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.199579\tres = 7.844E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.200450\tres = 7.548E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.201289\tres = 7.262E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202097\tres = 6.988E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.202874\tres = 6.723E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.203623\tres = 6.469E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.204344\tres = 6.224E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205038\tres = 5.989E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.205706\tres = 5.762E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.206349\tres = 5.544E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.206968\tres = 5.334E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.207564\tres = 5.132E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208138\tres = 4.938E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.208690\tres = 4.751E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.209221\tres = 4.570E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.209733\tres = 4.397E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.210225\tres = 4.231E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.210699\tres = 4.070E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211155\tres = 3.916E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.211594\tres = 3.767E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212017\tres = 3.624E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.212423\tres = 3.487E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.212815\tres = 3.355E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.213191\tres = 3.227E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.213554\tres = 3.105E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.213902\tres = 2.987E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.214238\tres = 2.874E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.214561\tres = 2.764E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.214872\tres = 2.659E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215171\tres = 2.558E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.215458\tres = 2.461E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.215735\tres = 2.368E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216002\tres = 2.278E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.216258\tres = 2.191E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.216504\tres = 2.108E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.216742\tres = 2.028E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.216970\tres = 1.951E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.217190\tres = 1.876E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.217401\tres = 1.805E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.217604\tres = 1.736E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.217800\tres = 1.670E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.217988\tres = 1.607E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218169\tres = 1.546E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.218344\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.218511\tres = 1.430E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.218673\tres = 1.376E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.218828\tres = 1.324E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.218977\tres = 1.273E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219121\tres = 1.225E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.219259\tres = 1.178E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.219392\tres = 1.133E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.219520\tres = 1.090E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.219643\tres = 1.049E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.219761\tres = 1.009E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.219875\tres = 9.702E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.219984\tres = 9.332E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220090\tres = 8.976E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.220191\tres = 8.634E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.220288\tres = 8.305E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.220382\tres = 7.989E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.220472\tres = 7.684E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.220559\tres = 7.392E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.220643\tres = 7.110E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.220723\tres = 6.839E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.220800\tres = 6.578E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.220874\tres = 6.327E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.220946\tres = 6.086E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221015\tres = 5.854E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221081\tres = 5.631E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221144\tres = 5.416E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.221206\tres = 5.209E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.221264\tres = 5.011E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.221321\tres = 4.820E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.221375\tres = 4.636E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.221428\tres = 4.459E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.221478\tres = 4.289E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.221527\tres = 4.125E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.221573\tres = 3.968E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.221618\tres = 3.816E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.221661\tres = 3.671E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.221703\tres = 3.531E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.221743\tres = 3.396E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.221781\tres = 3.266E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.221818\tres = 3.142E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.221853\tres = 3.022E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.221888\tres = 2.906E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.221920\tres = 2.795E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.221952\tres = 2.689E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.221982\tres = 2.586E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222012\tres = 2.487E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222040\tres = 2.392E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222067\tres = 2.301E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222093\tres = 2.213E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222118\tres = 2.129E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222142\tres = 2.047E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222165\tres = 1.969E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222187\tres = 1.894E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.222209\tres = 1.822E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.222229\tres = 1.752E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.222249\tres = 1.685E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.222268\tres = 1.621E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.222287\tres = 1.559E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.222304\tres = 1.499E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.222321\tres = 1.442E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.222337\tres = 1.387E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.222353\tres = 1.334E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.222368\tres = 1.283E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.222383\tres = 1.234E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.222397\tres = 1.187E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.222410\tres = 1.142E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.222423\tres = 1.098E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.222435\tres = 1.056E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.222447\tres = 1.016E-05\n" - ] - } - ], + "outputs": [], "source": [ "# Generate tracks for OpenMOC\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, spacing=0.1)\n", @@ -1731,21 +822,11 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "openmc keff = 1.223729\n", - "openmoc keff = 1.222447\n", - "bias [pcm]: -128.2\n" - ] - } - ], + "outputs": [], "source": [ "# Print report of keff and bias with OpenMC\n", "openmoc_keff = solver.getKeff()\n", @@ -1788,7 +869,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1814,32 +895,11 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "(9.9999999999999994e-12, 20.0)" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nRETE6eQvWE4Yr8iVHuYAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create a loglog plot of the U-235 continuous-energy fission cross section \n", "plt.loglog(u235.energy, fission.sigma, color='b', linewidth=1)\n", @@ -1875,22 +935,11 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n", - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n" - ] - } - ], + "outputs": [], "source": [ "# Construct a Pandas DataFrame for the microscopic nu-scattering matrix\n", "nuscatter = xs_library[moderator_cell.id]['nu-scatter']\n", @@ -1918,22 +967,11 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "image/png": "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\nRK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create plot of the H-1 scattering matrix\n", "fig = plt.subplot(121)\n", @@ -1981,7 +1019,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.6" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index c3f19aa22..83d99976a 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -32,7 +32,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/matplotlib/__init__.py:1318: UserWarning: This call to matplotlib.use() has no effect\n", + "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", @@ -420,7 +420,6 @@ "plot = openmc.Plot(plot_id=1)\n", "plot.filename = 'materials-xy'\n", "plot.origin = [0, 0, 0]\n", - "plot.width = [21.5, 21.5]\n", "plot.pixels = [250, 250]\n", "plot.color = 'mat'\n", "\n", @@ -470,7 +469,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ABDg4MCdjYNQMAAASWSURBVGje7Zs7buMwEEBzieRc\naYaB48KVisSFj7Cn4BFU2I37LVan8BFc5ABb2ICtpSSaHP5EUqOAzsIOAjwEGjjiZ/hEDZ+eiJ9n\noHxe6fHvW4BPDmwHEMAaYBdAEb+5Amu/YNlyQLgP4xGhiG9avmwvsBF/t/FkY2vj69NLD1f41Z6Y\niw3Gvy728ceVuhLhwY8bA0fij8EgO/6wjH2pF/lKxvf3tNG3Z+BRt4oHh/Znt5bu+iQd+/Z/Xp8B\nmiO8X0X/n7KQNbWIZ1wMJjEUPwBuuI1hfcMZxv9Pj19/AexrYH84KASFV41nhe8Ku/4f+nSpu3eN\nsdadjpBLFPF6pIE76Hx4QeiMfy/yVQi/cf6mxx900jk4ScfGlc4/q9v8c9sPxhpN4wn3n+qepeqe\nAK5x/3WZfieGx+8h6Uv8DCNHeAfjv3Q8q0VjwJCesrFbP2X+7NZPidAjE7hAyGTSFOvnLX8erfw9\nYCV+BL4p7DL1gH3SNvK3Z/0Qn3HE64dn/eLifx1Fd/62eP4NVyLsJx1Cce2bf/7mfL+Kt6UB+ivt\nm+YasT88u6Yi2z+M+lrpT432J4F9pw+mZOH+rP3pLP2pEzFhaiCdzESGcOvBO5g/peMt6d2lYo39\nd0ivNUvwXyE6KhVb/ssh7r8LMRAs/1XrD0DcfxfiP8DrD54/AFV0/av6eP/6acQH/NcTr/KH6JCY\nCnezMOi/8v5H/be7f9N/tdNyluC/sv3V+rnWTvuxUNj/tbax81+u0fDfSuttOt7B/Ckd3zVvb7ra\nfzFq6XWxifqv0f8x/2XZ+PBfw39tFb5YyPTz//z+u9P+a+KnTvoO3sH4Lx3fiyzXTutgbxrgx8F/\nbdNNR+2/Uq/YuH9dLRXW60cVk14DK2P/aJkinQ7yDfZfR3pH/Feg47/532/6r196/cgVDu3/liK9\nDgLyX2260U5vMfr9dxvBh/+i+CzptVHE73V69WOj/ddBT/53toKdTV8j/5vrT9b+7/eun9P2f6P+\nm7T/G/GPkP/m481/6xHpHcNu/PJhKFbi18SFi2DhHcyf0vHYf09Sb4ON/iXR9d/J/U8Zf5dZxj91\n/s3ovzzqv3b+IfvvSNL1o5V/belNzP8P/5XxqdLhxdn9N6ZiQf+d6n8z+OeP919K+5P7nzr+Ss+f\n0vHU/EfNv8T8T11/frr/Uv1jFv+l+Ffp8V88ng9YwTT/pz5/EPuf+vz1H/pv1vM39fmfvP9A3f8o\nPn8Kx1P336j7f8T9x//Bf4n7z6T9b+r+O9l/qe8fSs+f0vHU91/U92+z+m/++8d7eX869f0v9f0z\n+f039f176fFfOp5xWv0Htf4E9fSU+hfsv1Pqb/D4h2n1P9T6I2r9E6n+ilr/Ra4/o9a/lZ4/peOp\n9ZcbYv0nsf70pXUe2rLqX19acv0ttf7XfmjOrT+2kxbE/Dd4fmZC/TW5/ptaf156/pSOp55/mNF/\nWx8y238vD//1+++k80fk80/U81elx3/peMZp5/+o5w8b2vlH7/7viP8mnJ/JPf9Zev/X9oes87fY\nf21MOf9LPn9MPf9cdv78A0xugrwgDfcHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAxLTE0VDA4\nOjEyOjA5LTA2OjAwdS8nUQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMS0xNFQwODoxMjowOS0w\nNjowMARyn+0AAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98\niBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+ADFxAKDyaI8r8AAAQUSURBVGje7VvNleMgDA4HSqAf\nl+CDnUNKSD8uIQdT5djBgIRESPztbua9RYeZPNAnCcdBP4jLpVOnTp2+TnaexJibRzE2z4MOn4UA\nt42NAq4KMPt4wWxnyeyeYxIfxvlEGJqkGnVVV//gE5v6m1+4AZuau5cL3Xiv3vuVTbgN7jcBI1Oz\nDXn5BNxzfGMmE0+RG/NE1ewiNz3iqQZeOmE3S3d6EJmHGl8uwBy8fpkEL5UZ1O8yy+V7MRF5icyk\nZi2/1chLJiKvf0xCjV/4A0i8PhlrEu+abHJXL2Ry3izYJl6fbEpmEpkFPgnOvFlmNpPjia40oeCJ\nGs/fypvEZ13JJopnD5Dgk2DCu07CTI4nuvwyCF3RJkvUsC+A8CY80eUV/FrFj8LWuCZXwVNb/WMU\nuqJNjiyTfoHM1jfxvoqfqvj5HfyxMMfwo3hMFG81PNX10PD5BWS2votfOv7X4MHv35zCv35/1ff/\nHTz6+znx+71o+4e2/xB8a//S9r/a/qXuv439k+2/1LDDVnX/JjKPZUrDXvmfmv8ghr3tvwaKvwre\nhv/l/lPz35r/r/lvMpHjBxJ/DMImHn/kWCnrMjn+SbqyTQvHp8BmbcRfSc3I8MlYGv9dJW+UWcZv\nJk6w+FPyRplLGcEf8SuNVaNMyhtjWiXTeDKzBCDE2iwmN0HPIuJns8f12ziVG2J6HqvvKcGeJ1xK\nCnlF8VbJnMQqOQmZKL5VJVeZ50oC5eS4UXIlq6c/QbLyVMRKnWZ9p06dOnX6HjnVK4m92lS2f6fU\n1RRXZSr+wyj+S6vfKWW6rL5gVnylrdTvzNMxi/rdEP5QNdfdzQsDQmFtZRPuibRUpgkxxSIc8FEs\n4/HLdKyCqrmHmKRYQIx1eP1uYP+JGhE/Wa1+Fz+q9Tu+gBTr0frdWAoiMWmxAKV+Z9Inm+PXj+p3\nF/Hpo/pd5mjW79T8IVuYPtbyB7V+lxnsKMys1u9y/kTwrfxJyd8uNL9V6ncsf1Prd/TxHnhi5qOV\nv7J5ucxq/hvzZzY/iGU263fs+Sj4Vv7fwDfrFwr+k/qHY/jxJV6t39D3y2p48n7dTuBb9aeO/3d4\n8PtH378/+v6f+f2Bv390/8H3PyL4zP6L7v+o/0H9H+p/Uf+Pxh9w/IPGX2j8h8afaPwLx99o/I/m\nH3D+g+ZfcP7XqVOnTp2+ROD5C3j+g54/gedf6Pkbev4Hnj+i55/o+St6/oueP4Pn3+j5O3r+j/Yf\noP0PaP8F2v8B9594Ydgn/S+/sX/udP/Rif6n3n/3n+P/Rv8dtanR//nt/jm0/xbt/8X7j+8S/0n/\nM9p/jfZ/o/3naP872n+P9v/D9w/Q+w/o/Qv0/gd8/wS9/4Lev4Hv/6D3j9D7T/D9q06dOnX6jH4A\n5sDOrAejcacAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTI6MTA6MTUtMDQ6MDCtXndd\nAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEyOjEwOjE1LTA0OjAw3APP4QAAAABJRU5E\nrkJggg==\n", "text/plain": [ "" ] @@ -560,7 +559,7 @@ "* `NuScatterMatrixXS` (`\"nu-scatter matrix\"`)\n", "* `Chi` (`\"chi\"`)\n", "\n", - "In this case, let's create the multi-group cross sections needed to run an OpenMOC simulation to verify the accuracy of our cross sections. In particular, we will define `\"transport\"`, `\"nu-fission\"`, `\"nu-scatter matrix\"` and `\"chi\"` cross sections for our `Library`.\n", + "In this case, let's create the multi-group cross sections needed to run an OpenMOC simulation to verify the accuracy of our cross sections. In particular, we will define `\"transport\"`, `\"nu-fission\"`, `'\"fission\"`, `\"nu-scatter matrix\"` and `\"chi\"` cross sections for our `Library`.\n", "\n", "**Note**: A variety of different approximate transport-corrected total multi-group cross sections (and corresponding scattering matrices) can be found in the literature. At the present time, the `openmc.mgxs` module only supports the `\"P0\"` transport correction. This correction can be turned on and off through the boolean `Library.correction` property which may take values of `\"P0\"` (default) or `None`." ] @@ -569,12 +568,12 @@ "cell_type": "code", "execution_count": 19, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "# Specify multi-group cross section types to compute\n", - "mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi']" + "mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'fission', 'nu-scatter matrix', 'chi']" ] }, { @@ -681,7 +680,7 @@ "mesh.type = 'regular'\n", "mesh.dimension = [17, 17]\n", "mesh.lower_left = [-10.71, -10.71]\n", - "mesh.width = [1.26, 1.26]\n", + "mesh.upper_right = [+10.71, +10.71]\n", "\n", "# Instantiate tally Filter\n", "mesh_filter = openmc.Filter()\n", @@ -736,8 +735,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ea9fb637f63f9374c7436456141afa850b84acf9\n", - " Date/Time: 2016-01-14 08:12:09\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 12:10:16\n", + " MPI Processes: 1\n", + " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -764,56 +765,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.02650 \n", - " 2/1 1.01386 \n", - " 3/1 1.01045 \n", - " 4/1 1.05511 \n", - " 5/1 1.04873 \n", - " 6/1 1.04558 \n", - " 7/1 1.03840 \n", - " 8/1 1.02086 \n", - " 9/1 1.08845 \n", - " 10/1 1.03932 \n", - " 11/1 1.01271 \n", - " 12/1 1.03448 1.02360 +/- 0.01088\n", - " 13/1 1.04395 1.03038 +/- 0.00925\n", - " 14/1 1.05477 1.03648 +/- 0.00894\n", - " 15/1 1.00485 1.03015 +/- 0.00938\n", - " 16/1 1.04523 1.03267 +/- 0.00806\n", - " 17/1 1.01328 1.02990 +/- 0.00735\n", - " 18/1 1.01476 1.02800 +/- 0.00664\n", - " 19/1 1.01490 1.02655 +/- 0.00604\n", - " 20/1 1.00926 1.02482 +/- 0.00567\n", - " 21/1 0.98504 1.02120 +/- 0.00627\n", - " 22/1 1.00397 1.01977 +/- 0.00591\n", - " 23/1 1.02556 1.02021 +/- 0.00545\n", - " 24/1 0.99808 1.01863 +/- 0.00529\n", - " 25/1 0.99638 1.01715 +/- 0.00514\n", - " 26/1 0.99615 1.01584 +/- 0.00499\n", - " 27/1 1.01843 1.01599 +/- 0.00469\n", - " 28/1 1.00315 1.01528 +/- 0.00447\n", - " 29/1 1.00633 1.01480 +/- 0.00426\n", - " 30/1 1.02159 1.01514 +/- 0.00405\n", - " 31/1 1.03395 1.01604 +/- 0.00396\n", - " 32/1 1.02672 1.01652 +/- 0.00381\n", - " 33/1 1.03778 1.01745 +/- 0.00375\n", - " 34/1 1.03807 1.01831 +/- 0.00369\n", - " 35/1 1.07854 1.02072 +/- 0.00428\n", - " 36/1 1.03524 1.02128 +/- 0.00415\n", - " 37/1 1.03100 1.02164 +/- 0.00401\n", - " 38/1 1.03853 1.02224 +/- 0.00391\n", - " 39/1 1.04089 1.02288 +/- 0.00383\n", - " 40/1 1.02150 1.02284 +/- 0.00370\n", - " 41/1 0.98470 1.02161 +/- 0.00379\n", - " 42/1 1.00658 1.02114 +/- 0.00370\n", - " 43/1 0.98652 1.02009 +/- 0.00373\n", - " 44/1 1.02787 1.02032 +/- 0.00363\n", - " 45/1 0.98800 1.01939 +/- 0.00364\n", - " 46/1 1.00286 1.01893 +/- 0.00357\n", - " 47/1 1.02559 1.01911 +/- 0.00348\n", - " 48/1 1.03729 1.01959 +/- 0.00342\n", - " 49/1 1.02538 1.01974 +/- 0.00333\n", - " 50/1 1.01478 1.01962 +/- 0.00325\n", + " 1/1 1.03852 \n", + " 2/1 0.99743 \n", + " 3/1 1.02987 \n", + " 4/1 1.04472 \n", + " 5/1 1.02183 \n", + " 6/1 1.05263 \n", + " 7/1 0.99048 \n", + " 8/1 1.02753 \n", + " 9/1 1.03159 \n", + " 10/1 1.04005 \n", + " 11/1 1.05278 \n", + " 12/1 1.02555 1.03917 +/- 0.01362\n", + " 13/1 0.99400 1.02411 +/- 0.01699\n", + " 14/1 1.03508 1.02685 +/- 0.01232\n", + " 15/1 1.00055 1.02159 +/- 0.01090\n", + " 16/1 1.01334 1.02022 +/- 0.00900\n", + " 17/1 0.99822 1.01707 +/- 0.00823\n", + " 18/1 1.01767 1.01715 +/- 0.00713\n", + " 19/1 1.05052 1.02086 +/- 0.00730\n", + " 20/1 1.03133 1.02190 +/- 0.00661\n", + " 21/1 1.04112 1.02365 +/- 0.00623\n", + " 22/1 1.04175 1.02516 +/- 0.00588\n", + " 23/1 1.01909 1.02469 +/- 0.00543\n", + " 24/1 1.07119 1.02801 +/- 0.00603\n", + " 25/1 0.97445 1.02444 +/- 0.00665\n", + " 26/1 1.04737 1.02588 +/- 0.00638\n", + " 27/1 1.04656 1.02709 +/- 0.00612\n", + " 28/1 1.03464 1.02751 +/- 0.00578\n", + " 29/1 1.02528 1.02739 +/- 0.00547\n", + " 30/1 1.02799 1.02742 +/- 0.00519\n", + " 31/1 1.05846 1.02890 +/- 0.00516\n", + " 32/1 1.03811 1.02932 +/- 0.00493\n", + " 33/1 1.00894 1.02843 +/- 0.00480\n", + " 34/1 1.02049 1.02810 +/- 0.00460\n", + " 35/1 1.00690 1.02726 +/- 0.00450\n", + " 36/1 1.03129 1.02741 +/- 0.00432\n", + " 37/1 0.98864 1.02597 +/- 0.00440\n", + " 38/1 1.00017 1.02505 +/- 0.00434\n", + " 39/1 1.03635 1.02544 +/- 0.00421\n", + " 40/1 1.07090 1.02696 +/- 0.00434\n", + " 41/1 1.03141 1.02710 +/- 0.00420\n", + " 42/1 1.02624 1.02707 +/- 0.00406\n", + " 43/1 1.02668 1.02706 +/- 0.00394\n", + " 44/1 1.05940 1.02801 +/- 0.00394\n", + " 45/1 1.01149 1.02754 +/- 0.00385\n", + " 46/1 1.06958 1.02871 +/- 0.00392\n", + " 47/1 1.02674 1.02866 +/- 0.00381\n", + " 48/1 1.02542 1.02857 +/- 0.00371\n", + " 49/1 1.03516 1.02874 +/- 0.00362\n", + " 50/1 1.06818 1.02973 +/- 0.00366\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -823,27 +824,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.1800E-01 seconds\n", - " Reading cross sections = 1.4300E-01 seconds\n", - " Total time in simulation = 4.1206E+01 seconds\n", - " Time in transport only = 4.1193E+01 seconds\n", - " Time in inactive batches = 4.1760E+00 seconds\n", - " Time in active batches = 3.7030E+01 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 5.2200E-01 seconds\n", + " Reading cross sections = 1.6000E-01 seconds\n", + " Total time in simulation = 6.0800E+00 seconds\n", + " Time in transport only = 5.6140E+00 seconds\n", + " Time in inactive batches = 6.1300E-01 seconds\n", + " Time in active batches = 5.4670E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 1.0000E-03 seconds\n", " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Time accumulating tallies = 5.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 4.1648E+01 seconds\n", - " Calculation Rate (inactive) = 5986.59 neutrons/second\n", - " Calculation Rate (active) = 2700.51 neutrons/second\n", + " Total time elapsed = 6.6230E+00 seconds\n", + " Calculation Rate (inactive) = 40783.0 neutrons/second\n", + " Calculation Rate (active) = 18291.6 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.01805 +/- 0.00261\n", - " k-effective (Track-length) = 1.01962 +/- 0.00325\n", - " k-effective (Absorption) = 1.01554 +/- 0.00339\n", - " Combined k-effective = 1.01711 +/- 0.00235\n", + " k-effective (Collision) = 1.02763 +/- 0.00343\n", + " k-effective (Track-length) = 1.02973 +/- 0.00366\n", + " k-effective (Absorption) = 1.02732 +/- 0.00319\n", + " Combined k-effective = 1.02826 +/- 0.00259\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -981,14 +982,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/romano/openmc/openmc/tallies.py:1642: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n", " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" ] }, { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1006,23 +1007,23 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1030,23 +1031,23 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1054,13 +1055,13 @@ "" ], "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "3 10000 1 U-235 0.008064 4.062984e-05\n", - "4 10000 1 U-238 0.007336 4.459335e-05\n", - "5 10000 1 O-16 0.000000 0.000000e+00\n", - "0 10000 2 U-235 0.361327 1.902492e-03\n", - "1 10000 2 U-238 0.000001 3.536787e-09\n", - "2 10000 2 O-16 0.000000 0.000000e+00" + " cell group in nuclide mean std. dev.\n", + "3 10000 1 U-235 8.055246e-03 2.857567e-05\n", + "4 10000 1 U-238 7.339215e-03 4.349466e-05\n", + "5 10000 1 O-16 0.000000e+00 0.000000e+00\n", + "0 10000 2 U-235 3.615565e-01 2.050486e-03\n", + "1 10000 2 U-238 6.742638e-07 3.795256e-09\n", + "2 10000 2 O-16 0.000000e+00 0.000000e+00" ] }, "execution_count": 31, @@ -1097,13 +1098,13 @@ "\tDomain ID =\t10000\n", "\tNuclide =\tU-235\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t8.06e-03 +/- 5.04e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t3.61e-01 +/- 5.27e-01%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t8.06e-03 +/- 3.55e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t3.62e-01 +/- 5.67e-01%\n", "\n", "\tNuclide =\tU-238\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t7.34e-03 +/- 6.08e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t6.74e-07 +/- 5.25e-01%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t7.34e-03 +/- 5.93e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t6.74e-07 +/- 5.63e-01%\n", "\n", "\tNuclide =\tO-16\n", "\tCross Sections [cm^-1]:\n", @@ -1201,7 +1202,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "
100001U-2350.0080644.062984e-058.055246e-032.857567e-05
4100001U-2380.0073364.459335e-057.339215e-034.349466e-05
5100001O-160.0000000.000000e+000.000000e+00
100002U-2350.3613271.902492e-033.615565e-012.050486e-03
1100002U-2380.0000013.536787e-096.742638e-073.795256e-09
2100002O-160.0000000.000000e+000.000000e+00
\n", " \n", " \n", @@ -1219,16 +1220,16 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -1244,8 +1245,8 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\n", - "0 10000 1 U-235 0.074383 0.000280\n", - "1 10000 1 U-238 0.005959 0.000036\n", + "0 10000 1 U-235 0.074860 0.000303\n", + "1 10000 1 U-238 0.005952 0.000035\n", "2 10000 1 O-16 0.000000 0.000000" ] }, @@ -1326,126 +1327,126 @@ "name": "stdout", "output_type": "stream", "text": [ - "[ NORMAL ] Ray tracing for track segmentation...\n", - "[ NORMAL ] Dumping tracks to file...\n", + "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.854316\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.801593\tres = 1.522E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761131\tres = 6.380E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.731467\tres = 5.066E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.709897\tres = 3.910E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.695111\tres = 2.954E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.685967\tres = 2.085E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.681511\tres = 1.317E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.680926\tres = 6.520E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.683509\tres = 1.046E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.688659\tres = 3.848E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.695861\tres = 7.565E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.704674\tres = 1.048E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.714726\tres = 1.269E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.725701\tres = 1.428E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.737329\tres = 1.537E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.749388\tres = 1.604E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.761691\tres = 1.637E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.774081\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.786431\tres = 1.628E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.798638\tres = 1.597E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.810618\tres = 1.553E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.822303\tres = 1.501E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.833643\tres = 1.443E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.844598\tres = 1.380E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.855140\tres = 1.315E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.865249\tres = 1.249E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.874914\tres = 1.183E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.884128\tres = 1.118E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.892891\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.901206\tres = 9.920E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.909080\tres = 9.320E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.916522\tres = 8.745E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.923545\tres = 8.194E-03\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.930162\tres = 7.669E-03\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.936387\tres = 7.171E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.942236\tres = 6.698E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.947725\tres = 6.252E-03\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.952869\tres = 5.830E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.957686\tres = 5.433E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.962192\tres = 5.060E-03\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.966404\tres = 4.710E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.970336\tres = 4.381E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.974005\tres = 4.073E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.977426\tres = 3.785E-03\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.980613\tres = 3.515E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.983580\tres = 3.264E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.986340\tres = 3.029E-03\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.988907\tres = 2.809E-03\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.991293\tres = 2.605E-03\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.993509\tres = 2.415E-03\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.995566\tres = 2.238E-03\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.997475\tres = 2.073E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.999246\tres = 1.920E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.000887\tres = 1.777E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.002408\tres = 1.645E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.003818\tres = 1.522E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.005123\tres = 1.408E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.006331\tres = 1.302E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.007449\tres = 1.203E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.008483\tres = 1.112E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.009439\tres = 1.028E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.010324\tres = 9.496E-04\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.011141\tres = 8.771E-04\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.011896\tres = 8.100E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.012594\tres = 7.479E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.013238\tres = 6.903E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.013833\tres = 6.372E-04\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.014382\tres = 5.880E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.014889\tres = 5.425E-04\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.015357\tres = 5.004E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.015788\tres = 4.615E-04\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.016186\tres = 4.256E-04\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.016553\tres = 3.924E-04\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.016892\tres = 3.617E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.017204\tres = 3.334E-04\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.017491\tres = 3.073E-04\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.017756\tres = 2.831E-04\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.018000\tres = 2.608E-04\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.018225\tres = 2.403E-04\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.018432\tres = 2.213E-04\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.018623\tres = 2.038E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.018799\tres = 1.877E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.018961\tres = 1.729E-04\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.019110\tres = 1.591E-04\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.019247\tres = 1.465E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.019373\tres = 1.349E-04\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.019489\tres = 1.241E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.019596\tres = 1.142E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.019695\tres = 1.051E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.019785\tres = 9.673E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.019869\tres = 8.899E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.019945\tres = 8.187E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.020016\tres = 7.532E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.020081\tres = 6.925E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.020141\tres = 6.372E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.020195\tres = 5.861E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.020246\tres = 5.388E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.020292\tres = 4.956E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.020335\tres = 4.555E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.020374\tres = 4.187E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.020410\tres = 3.850E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.020443\tres = 3.539E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.020473\tres = 3.254E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.020501\tres = 2.991E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.020527\tres = 2.747E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.020551\tres = 2.526E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.020573\tres = 2.321E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.020592\tres = 2.134E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.020611\tres = 1.961E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.020628\tres = 1.802E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.020643\tres = 1.653E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.020657\tres = 1.519E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.020671\tres = 1.398E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.020683\tres = 1.283E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.020694\tres = 1.178E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.020704\tres = 1.082E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.761746\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.732367\tres = 5.029E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.711075\tres = 3.869E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.696557\tres = 2.912E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.687673\tres = 2.044E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683470\tres = 1.277E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.683129\tres = 6.141E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.685949\tres = 7.889E-04\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.691329\tres = 4.181E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698755\tres = 7.875E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.707786\tres = 1.077E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.718050\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.729230\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.741058\tres = 1.559E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.753310\tres = 1.624E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765800\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.778371\tres = 1.660E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.790897\tres = 1.643E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803273\tres = 1.611E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815415\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.827256\tres = 1.513E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.838747\tres = 1.453E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849847\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860527\tres = 1.324E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.870770\tres = 1.258E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.880562\tres = 1.191E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889897\tres = 1.125E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898776\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.907202\tres = 9.986E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915181\tres = 9.382E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922724\tres = 8.803E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929843\tres = 8.249E-03\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.936550\tres = 7.721E-03\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.942861\tres = 7.220E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948791\tres = 6.744E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954357\tres = 6.295E-03\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.959575\tres = 5.871E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964461\tres = 5.472E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.969033\tres = 5.097E-03\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.973306\tres = 4.744E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977297\tres = 4.414E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.981021\tres = 4.104E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984493\tres = 3.814E-03\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.987729\tres = 3.543E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990742\tres = 3.290E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993546\tres = 3.053E-03\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.996153\tres = 2.833E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.998577\tres = 2.627E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.000829\tres = 2.436E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.002920\tres = 2.257E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.004860\tres = 2.091E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.006661\tres = 1.937E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.008330\tres = 1.793E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.009877\tres = 1.660E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.011311\tres = 1.536E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.012639\tres = 1.421E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.013868\tres = 1.314E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.015006\tres = 1.215E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.016059\tres = 1.124E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.039E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.017933\tres = 9.596E-04\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.018766\tres = 8.865E-04\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.019535\tres = 8.188E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.562E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020903\tres = 6.981E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.445E-04\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.022069\tres = 5.948E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.489E-04\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.023063\tres = 5.064E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023503\tres = 4.671E-04\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.023909\tres = 4.308E-04\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.024284\tres = 3.973E-04\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.024629\tres = 3.663E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024948\tres = 3.377E-04\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.025241\tres = 3.113E-04\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.025512\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.025761\tres = 2.644E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.025991\tres = 2.436E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.026203\tres = 2.244E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.026398\tres = 2.067E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026578\tres = 1.904E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.754E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.026895\tres = 1.615E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.027036\tres = 1.487E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027165\tres = 1.369E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.027284\tres = 1.260E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027393\tres = 1.160E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027494\tres = 1.068E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027587\tres = 9.825E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027672\tres = 9.041E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027751\tres = 8.319E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027823\tres = 7.654E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.042E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.478E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.028007\tres = 5.959E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.481E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028106\tres = 5.041E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028150\tres = 4.636E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028190\tres = 4.263E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028227\tres = 3.920E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028261\tres = 3.604E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028292\tres = 3.314E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028321\tres = 3.047E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.801E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.575E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028394\tres = 2.367E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.175E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 1.999E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.838E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028466\tres = 1.689E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.552E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.426E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.310E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.204E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.106E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.017E-05\n" ] } ], @@ -1477,9 +1478,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "openmc keff = 1.017105\n", - "openmoc keff = 1.020704\n", - "bias [pcm]: 359.8\n" + "openmc keff = 1.028263\n", + "openmoc keff = 1.028538\n", + "bias [pcm]: 27.5\n" ] } ], @@ -1553,20 +1554,18 @@ }, "outputs": [], "source": [ - "# Export OpenMOC's fission rates for each pin cell instance in the fuel assembly\n", - "openmoc.process.compute_fission_rates(solver)\n", + "# Create OpenMOC Mesh on which to tally fission rates\n", + "openmoc_mesh = openmoc.process.Mesh()\n", + "openmoc_mesh.dimension = np.array(mesh.dimension)\n", + "openmoc_mesh.lower_left = np.array(mesh.lower_left)\n", + "openmoc_mesh.upper_right = np.array(mesh.upper_right)\n", + "openmoc_mesh.width = openmoc_mesh.upper_right - openmoc_mesh.lower_left\n", + "openmoc_mesh.width /= openmoc_mesh.dimension\n", "\n", - "# Open the pickle file with the fission rates\n", - "fission_rates = pickle.load(open('fission-rates/fission-rates.pkl', 'rb' ))\n", - "\n", - "# Allocate array for fission rates in each fuel pin\n", - "openmoc_fission_rates = np.zeros((17, 17))\n", - "\n", - "# Extract fission rates for each fuel pin\n", - "for key, value in fission_rates.items():\n", - " lat_x = int(key.split(':')[1].split()[3][1:-1])\n", - " lat_y = int(key.split(':')[1].split()[4][:-1]) \n", - " openmoc_fission_rates[lat_x, lat_y] = value\n", + "# Tally OpenMOC fission rates on the Mesh\n", + "openmoc_fission_rates = openmoc_mesh.tally_fission_rates(solver)\n", + "openmoc_fission_rates = np.squeeze(openmoc_fission_rates)\n", + "openmoc_fission_rates = np.fliplr(openmoc_fission_rates)\n", "\n", "# Normalize to the average pin fission rate\n", "openmoc_fission_rates /= np.mean(openmoc_fission_rates)" @@ -1589,7 +1588,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 44, @@ -1598,9 +1597,9 @@ }, { "data": { - "image/png": "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\ngg==\n", + "image/png": "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\ngg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1636,7 +1635,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.6" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 85f64ff6f..1ccff330d 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -382,7 +382,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBxUBN4bMLy4AAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAyLTA3VDE2OjAxOjU1LTA1OjAwqLKcsgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMi0wN1QxNjowMTo1NS0wNTowMNnvJA4AAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxAVDQXcnQ0AAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDEyOjIxOjEzLTA0OjAwuK5PWAAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxMjoyMToxMy0wNDowMMnz9+QAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -500,7 +500,7 @@ "cell_type": "code", "execution_count": 18, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -567,9 +567,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-07 16:01:57\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 12:21:14\n", " MPI Processes: 1\n", + " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -596,35 +597,46 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 0.54958 \n", - " 2/1 0.67628 \n", - " 3/1 0.70618 \n", - " 4/1 0.66601 \n", - " 5/1 0.70876 \n", - " 6/1 0.69708 \n", - " 7/1 0.68623 0.69166 +/- 0.00543\n", - " 8/1 0.69159 0.69163 +/- 0.00313\n", - " 9/1 0.69908 0.69349 +/- 0.00289\n", - " 10/1 0.63865 0.68253 +/- 0.01120\n", - " 11/1 0.65439 0.67784 +/- 0.01027\n", - " 12/1 0.68518 0.67889 +/- 0.00875\n", - " 13/1 0.69507 0.68091 +/- 0.00784\n", - " 14/1 0.70129 0.68317 +/- 0.00728\n", - " 15/1 0.71336 0.68619 +/- 0.00717\n", - " 16/1 0.68725 0.68629 +/- 0.00649\n", - " 17/1 0.72579 0.68958 +/- 0.00678\n", - " 18/1 0.67149 0.68819 +/- 0.00639\n", - " 19/1 0.67771 0.68744 +/- 0.00596\n", - " 20/1 0.68035 0.68697 +/- 0.00557\n", - " Triggers unsatisfied, max unc./thresh. is 1.09851 for absorption in tally 10002\n", - " The estimated number of batches is 24\n", + " 1/1 0.51036 \n", + " 2/1 0.64436 \n", + " 3/1 0.64874 \n", + " 4/1 0.65998 \n", + " 5/1 0.68369 \n", + " 6/1 0.69058 \n", + " 7/1 0.68288 0.68673 +/- 0.00385\n", + " 8/1 0.69483 0.68943 +/- 0.00350\n", + " 9/1 0.70348 0.69294 +/- 0.00430\n", + " 10/1 0.69969 0.69429 +/- 0.00359\n", + " 11/1 0.67170 0.69052 +/- 0.00477\n", + " 12/1 0.67661 0.68854 +/- 0.00450\n", + " 13/1 0.69571 0.68943 +/- 0.00400\n", + " 14/1 0.67433 0.68776 +/- 0.00390\n", + " 15/1 0.67744 0.68672 +/- 0.00364\n", + " 16/1 0.65256 0.68362 +/- 0.00453\n", + " 17/1 0.66657 0.68220 +/- 0.00437\n", + " 18/1 0.66887 0.68117 +/- 0.00415\n", + " 19/1 0.68238 0.68126 +/- 0.00384\n", + " 20/1 0.64423 0.67879 +/- 0.00435\n", + " Triggers unsatisfied, max unc./thresh. is 1.40549 for absorption in tally 10002\n", + " The estimated number of batches is 35\n", " Creating state point statepoint.020.h5...\n", - " 21/1 0.68105 0.68660 +/- 0.00522\n", - " 22/1 0.67168 0.68572 +/- 0.00498\n", - " 23/1 0.67520 0.68514 +/- 0.00473\n", - " 24/1 0.67940 0.68483 +/- 0.00449\n", - " Triggers satisfied for batch 24\n", - " Creating state point statepoint.024.h5...\n", + " 21/1 0.66266 0.67778 +/- 0.00419\n", + " 22/1 0.67656 0.67771 +/- 0.00393\n", + " 23/1 0.67643 0.67764 +/- 0.00371\n", + " 24/1 0.66192 0.67681 +/- 0.00361\n", + " 25/1 0.69848 0.67789 +/- 0.00359\n", + " 26/1 0.66274 0.67717 +/- 0.00349\n", + " 27/1 0.69746 0.67810 +/- 0.00345\n", + " 28/1 0.67485 0.67795 +/- 0.00330\n", + " 29/1 0.67427 0.67780 +/- 0.00316\n", + " 30/1 0.66531 0.67730 +/- 0.00308\n", + " 31/1 0.68457 0.67758 +/- 0.00297\n", + " 32/1 0.66592 0.67715 +/- 0.00289\n", + " 33/1 0.65929 0.67651 +/- 0.00286\n", + " 34/1 0.67252 0.67637 +/- 0.00276\n", + " 35/1 0.71827 0.67777 +/- 0.00301\n", + " Triggers satisfied for batch 35\n", + " Creating state point statepoint.035.h5...\n", "\n", " ===========================================================================\n", " ======================> SIMULATION FINISHED <======================\n", @@ -633,28 +645,28 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.0900E-01 seconds\n", - " Reading cross sections = 7.8000E-02 seconds\n", - " Total time in simulation = 4.9560E+00 seconds\n", - " Time in transport only = 4.9400E+00 seconds\n", - " Time in inactive batches = 7.3100E-01 seconds\n", - " Time in active batches = 4.2250E+00 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for initialization = 4.7000E-01 seconds\n", + " Reading cross sections = 1.3500E-01 seconds\n", + " Total time in simulation = 2.1470E+00 seconds\n", + " Time in transport only = 1.8480E+00 seconds\n", + " Time in inactive batches = 2.1900E-01 seconds\n", + " Time in active batches = 1.9280E+00 seconds\n", + " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Sampling source sites = 4.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 5.2780E+00 seconds\n", - " Calculation Rate (inactive) = 17099.9 neutrons/second\n", - " Calculation Rate (active) = 8875.74 neutrons/second\n", + " Total time elapsed = 2.6360E+00 seconds\n", + " Calculation Rate (inactive) = 57077.6 neutrons/second\n", + " Calculation Rate (active) = 19450.2 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 0.68264 +/- 0.00405\n", - " k-effective (Track-length) = 0.68483 +/- 0.00449\n", - " k-effective (Absorption) = 0.68225 +/- 0.00336\n", - " Combined k-effective = 0.68275 +/- 0.00346\n", - " Leakage Fraction = 0.34345 +/- 0.00167\n", + " k-effective (Collision) = 0.67866 +/- 0.00337\n", + " k-effective (Track-length) = 0.67777 +/- 0.00301\n", + " k-effective (Absorption) = 0.68234 +/- 0.00332\n", + " Combined k-effective = 0.67987 +/- 0.00255\n", + " Leakage Fraction = 0.34141 +/- 0.00198\n", "\n" ] }, @@ -771,13 +783,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.18257268]]\n", + "[[[ 0.12916959]]\n", "\n", - " [[ 0.07111957]]\n", + " [[ 0.06336943]]\n", "\n", - " [[ 0.40880276]]\n", + " [[ 0.33288738]]\n", "\n", - " [[ 0.16407535]]]\n" + " [[ 0.14666158]]]\n" ] } ], @@ -800,290 +812,301 @@ { "data": { "text/html": [ - "
\n", + "
\n", "
100001U-2350.0743830.0002800.0748600.000303
1100001U-2380.0059590.0000360.0059520.000035
2
\n", " \n", - " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", "
(mesh 1, x)(mesh 1, y)(mesh 1, z)mesh 1energy low [MeV]energy high [MeV]scoremeanstd. dev.
xyz
0 1 1 101110.00e+006.25e-07 fission2.02e-043.69e-05fission2.37e-043.06e-05
1 1 1 111110.00e+006.25e-07 nu-fission4.92e-048.98e-05nu-fission5.78e-047.46e-05
2 1 1 121116.25e-072.00e+01 fission7.62e-053.74e-06fission7.00e-055.15e-06
3 1 1 131116.25e-072.00e+01 nu-fission2.04e-049.88e-06nu-fission1.85e-041.28e-05
4 1 2 141210.00e+006.25e-07 fission3.75e-043.86e-05fission4.04e-043.09e-05
5 1 2 151210.00e+006.25e-07 nu-fission9.14e-049.41e-05nu-fission9.85e-047.54e-05
6 1 2 161216.25e-072.00e+01 fission1.07e-041.26e-05fission1.00e-045.08e-06
7 1 2 171216.25e-072.00e+01 nu-fission2.78e-043.16e-05nu-fission2.63e-041.34e-05
8 1 3 181310.00e+006.25e-07 fission5.64e-045.60e-05fission5.82e-045.00e-05
9 1 3 191310.00e+006.25e-07 nu-fission1.37e-031.37e-04nu-fission1.42e-031.22e-04
10 1 3 11316.25e-072.00e+01 fission1.49e-047.25e-06fission1.38e-041.03e-05
11 1 3 11316.25e-072.00e+01 nu-fission3.88e-041.78e-05nu-fission3.59e-042.54e-05
12 1 4 11410.00e+006.25e-07 fission6.69e-044.44e-05fission6.88e-044.25e-05
13 1 4 11410.00e+006.25e-07 nu-fission1.63e-031.08e-04nu-fission1.68e-031.04e-04
14 1 4 11416.25e-072.00e+01 fission1.65e-041.09e-05fission1.62e-047.43e-06
15 1 4 11416.25e-072.00e+01 nu-fission4.33e-042.89e-05nu-fission4.22e-041.93e-05
16 1 5 11510.00e+006.25e-07 fission9.32e-046.90e-05fission7.62e-045.69e-05
17 1 5 11510.00e+006.25e-07 nu-fission2.27e-031.68e-04nu-fission1.86e-031.39e-04
18 1 5 11516.25e-072.00e+01 fission1.83e-041.10e-05fission1.80e-048.16e-06
19 1 5 11516.25e-072.00e+01 nu-fission4.77e-042.77e-05nu-fission4.71e-042.08e-05
\n", "
" ], "text/plain": [ - " (mesh 1, x) (mesh 1, y) (mesh 1, z) energy low [MeV] \\\n", - "0 1 1 1 0.00e+00 \n", - "1 1 1 1 0.00e+00 \n", - "2 1 1 1 6.25e-07 \n", - "3 1 1 1 6.25e-07 \n", - "4 1 2 1 0.00e+00 \n", - "5 1 2 1 0.00e+00 \n", - "6 1 2 1 6.25e-07 \n", - "7 1 2 1 6.25e-07 \n", - "8 1 3 1 0.00e+00 \n", - "9 1 3 1 0.00e+00 \n", - "10 1 3 1 6.25e-07 \n", - "11 1 3 1 6.25e-07 \n", - "12 1 4 1 0.00e+00 \n", - "13 1 4 1 0.00e+00 \n", - "14 1 4 1 6.25e-07 \n", - "15 1 4 1 6.25e-07 \n", - "16 1 5 1 0.00e+00 \n", - "17 1 5 1 0.00e+00 \n", - "18 1 5 1 6.25e-07 \n", - "19 1 5 1 6.25e-07 \n", + " mesh 1 energy low [MeV] energy high [MeV] score mean \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 fission 2.37e-04 \n", + "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.78e-04 \n", + "2 1 1 1 6.25e-07 2.00e+01 fission 7.00e-05 \n", + "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.85e-04 \n", + "4 1 2 1 0.00e+00 6.25e-07 fission 4.04e-04 \n", + "5 1 2 1 0.00e+00 6.25e-07 nu-fission 9.85e-04 \n", + "6 1 2 1 6.25e-07 2.00e+01 fission 1.00e-04 \n", + "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.63e-04 \n", + "8 1 3 1 0.00e+00 6.25e-07 fission 5.82e-04 \n", + "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.42e-03 \n", + "10 1 3 1 6.25e-07 2.00e+01 fission 1.38e-04 \n", + "11 1 3 1 6.25e-07 2.00e+01 nu-fission 3.59e-04 \n", + "12 1 4 1 0.00e+00 6.25e-07 fission 6.88e-04 \n", + "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.68e-03 \n", + "14 1 4 1 6.25e-07 2.00e+01 fission 1.62e-04 \n", + "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.22e-04 \n", + "16 1 5 1 0.00e+00 6.25e-07 fission 7.62e-04 \n", + "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.86e-03 \n", + "18 1 5 1 6.25e-07 2.00e+01 fission 1.80e-04 \n", + "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.71e-04 \n", "\n", - " energy high [MeV] score mean std. dev. \n", - "0 6.25e-07 fission 2.02e-04 3.69e-05 \n", - "1 6.25e-07 nu-fission 4.92e-04 8.98e-05 \n", - "2 2.00e+01 fission 7.62e-05 3.74e-06 \n", - "3 2.00e+01 nu-fission 2.04e-04 9.88e-06 \n", - "4 6.25e-07 fission 3.75e-04 3.86e-05 \n", - "5 6.25e-07 nu-fission 9.14e-04 9.41e-05 \n", - "6 2.00e+01 fission 1.07e-04 1.26e-05 \n", - "7 2.00e+01 nu-fission 2.78e-04 3.16e-05 \n", - "8 6.25e-07 fission 5.64e-04 5.60e-05 \n", - "9 6.25e-07 nu-fission 1.37e-03 1.37e-04 \n", - "10 2.00e+01 fission 1.49e-04 7.25e-06 \n", - "11 2.00e+01 nu-fission 3.88e-04 1.78e-05 \n", - "12 6.25e-07 fission 6.69e-04 4.44e-05 \n", - "13 6.25e-07 nu-fission 1.63e-03 1.08e-04 \n", - "14 2.00e+01 fission 1.65e-04 1.09e-05 \n", - "15 2.00e+01 nu-fission 4.33e-04 2.89e-05 \n", - "16 6.25e-07 fission 9.32e-04 6.90e-05 \n", - "17 6.25e-07 nu-fission 2.27e-03 1.68e-04 \n", - "18 2.00e+01 fission 1.83e-04 1.10e-05 \n", - "19 2.00e+01 nu-fission 4.77e-04 2.77e-05 " + " std. dev. \n", + " \n", + "0 3.06e-05 \n", + "1 7.46e-05 \n", + "2 5.15e-06 \n", + "3 1.28e-05 \n", + "4 3.09e-05 \n", + "5 7.54e-05 \n", + "6 5.08e-06 \n", + "7 1.34e-05 \n", + "8 5.00e-05 \n", + "9 1.22e-04 \n", + "10 1.03e-05 \n", + "11 2.54e-05 \n", + "12 4.25e-05 \n", + "13 1.04e-04 \n", + "14 7.43e-06 \n", + "15 1.93e-05 \n", + "16 5.69e-05 \n", + "17 1.39e-04 \n", + "18 8.16e-06 \n", + "19 2.08e-05 " ] }, "execution_count": 25, @@ -1112,9 +1135,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\nhnwAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1137,7 +1160,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1146,9 +1169,9 @@ }, { "data": { - "image/png": "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\ngg==\n", + "image/png": "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\nqJlZov8PnPpCLiDrzj8AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1218,7 +1241,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1232,148 +1255,148 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
0 10000 U-235 scatter-Y0,0 3.71e-021.15e-03010000U-235scatter-Y0,03.77e-026.49e-04
1 10000 U-235 scatter-Y1,-1 2.66e-043.23e-04
2 10000 U-235 scatter-Y1,0-4.17e-042.74e-04
3 10000 U-235 scatter-Y1,1-2.28e-042.37e-04
4 10000 U-235 scatter-Y2,-2 2.57e-051.99e-04
5 10000 U-235 scatter-Y2,-1-1.15e-041.85e-04
6 10000 U-235 scatter-Y2,0 1.51e-041.59e-04
7 10000 U-235 scatter-Y2,1-1.22e-042.80e-04
8 10000 U-235 scatter-Y2,2 7.65e-06110000U-235scatter-Y1,-12.54e-041.81e-04
9 10000 U-238 scatter-Y0,0 2.33e+001.31e-02210000U-235scatter-Y1,03.65e-052.70e-04
310000U-235scatter-Y1,1-1.70e-042.19e-04
410000U-235scatter-Y2,-27.47e-051.54e-04
510000U-235scatter-Y2,-1-2.35e-041.34e-04
610000U-235scatter-Y2,0-5.51e-051.79e-04
710000U-235scatter-Y2,1-1.27e-041.54e-04
810000U-235scatter-Y2,21.72e-041.40e-04
910000U-238scatter-Y0,02.34e+007.62e-03
10 10000 U-238 scatter-Y1,-1 2.45e-022.27e-0310000U-238scatter-Y1,-12.46e-021.71e-03
11 10000 U-238 scatter-Y1,0-5.87e-052.80e-0310000U-238scatter-Y1,01.15e-032.17e-03
12 10000 U-238 scatter-Y1,1-2.80e-022.54e-0310000U-238scatter-Y1,1-2.39e-022.15e-03
13 10000 U-238 scatter-Y2,-2-4.86e-031.58e-0310000U-238scatter-Y2,-2-3.92e-031.38e-03
14 10000 U-238 scatter-Y2,-1 5.57e-042.02e-0310000U-238scatter-Y2,-1-1.19e-031.58e-03
15 10000 U-238 scatter-Y2,0 6.24e-031.63e-0310000U-238scatter-Y2,03.22e-031.45e-03
16 10000 U-238 scatter-Y2,1-6.48e-041.55e-0310000U-238scatter-Y2,11.27e-049.70e-04
17 10000 U-238 scatter-Y2,2-1.03e-031.31e-0310000U-238scatter-Y2,2-2.70e-031.21e-03
\n", @@ -1381,24 +1404,24 @@ ], "text/plain": [ " cell nuclide score mean std. dev.\n", - "0 10000 U-235 scatter-Y0,0 3.71e-02 1.15e-03\n", - "1 10000 U-235 scatter-Y1,-1 2.66e-04 3.23e-04\n", - "2 10000 U-235 scatter-Y1,0 -4.17e-04 2.74e-04\n", - "3 10000 U-235 scatter-Y1,1 -2.28e-04 2.37e-04\n", - "4 10000 U-235 scatter-Y2,-2 2.57e-05 1.99e-04\n", - "5 10000 U-235 scatter-Y2,-1 -1.15e-04 1.85e-04\n", - "6 10000 U-235 scatter-Y2,0 1.51e-04 1.59e-04\n", - "7 10000 U-235 scatter-Y2,1 -1.22e-04 2.80e-04\n", - "8 10000 U-235 scatter-Y2,2 7.65e-06 1.81e-04\n", - "9 10000 U-238 scatter-Y0,0 2.33e+00 1.31e-02\n", - "10 10000 U-238 scatter-Y1,-1 2.45e-02 2.27e-03\n", - "11 10000 U-238 scatter-Y1,0 -5.87e-05 2.80e-03\n", - "12 10000 U-238 scatter-Y1,1 -2.80e-02 2.54e-03\n", - "13 10000 U-238 scatter-Y2,-2 -4.86e-03 1.58e-03\n", - "14 10000 U-238 scatter-Y2,-1 5.57e-04 2.02e-03\n", - "15 10000 U-238 scatter-Y2,0 6.24e-03 1.63e-03\n", - "16 10000 U-238 scatter-Y2,1 -6.48e-04 1.55e-03\n", - "17 10000 U-238 scatter-Y2,2 -1.03e-03 1.31e-03" + "0 10000 U-235 scatter-Y0,0 3.77e-02 6.49e-04\n", + "1 10000 U-235 scatter-Y1,-1 2.54e-04 1.81e-04\n", + "2 10000 U-235 scatter-Y1,0 3.65e-05 2.70e-04\n", + "3 10000 U-235 scatter-Y1,1 -1.70e-04 2.19e-04\n", + "4 10000 U-235 scatter-Y2,-2 7.47e-05 1.54e-04\n", + "5 10000 U-235 scatter-Y2,-1 -2.35e-04 1.34e-04\n", + "6 10000 U-235 scatter-Y2,0 -5.51e-05 1.79e-04\n", + "7 10000 U-235 scatter-Y2,1 -1.27e-04 1.54e-04\n", + "8 10000 U-235 scatter-Y2,2 1.72e-04 1.40e-04\n", + "9 10000 U-238 scatter-Y0,0 2.34e+00 7.62e-03\n", + "10 10000 U-238 scatter-Y1,-1 2.46e-02 1.71e-03\n", + "11 10000 U-238 scatter-Y1,0 1.15e-03 2.17e-03\n", + "12 10000 U-238 scatter-Y1,1 -2.39e-02 2.15e-03\n", + "13 10000 U-238 scatter-Y2,-2 -3.92e-03 1.38e-03\n", + "14 10000 U-238 scatter-Y2,-1 -1.19e-03 1.58e-03\n", + "15 10000 U-238 scatter-Y2,0 3.22e-03 1.45e-03\n", + "16 10000 U-238 scatter-Y2,1 1.27e-04 9.70e-04\n", + "17 10000 U-238 scatter-Y2,2 -2.70e-03 1.21e-03" ] }, "execution_count": 29, @@ -1432,8 +1455,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00131009 0.01310707]\n", - " [ 0.00018089 0.00114976]]]\n" + "[[[ 0.00121338 0.00761835]\n", + " [ 0.00013952 0.00064888]]]\n" ] } ], @@ -1501,7 +1524,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.04537029]]]\n" + "[[[ 0.03284934]]]\n" ] } ], @@ -1530,7 +1553,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1544,143 +1567,143 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
558 279 absorption9.27e-051.33e-05
559 279 scatter1.35e-028.05e-04
560 280 absorption8.41e-059.92e-06
561 280 scatter1.42e-026.12e-04
562 281 absorption9.12e-05279absorption7.14e-058.26e-06
559279scatter1.25e-025.75e-04
560280absorption8.50e-056.16e-06
561280scatter1.38e-024.58e-04
562281absorption1.04e-047.54e-06
563 281 scatter1.45e-025.90e-04281scatter1.55e-024.15e-04
564 282 absorption1.12e-041.24e-05282absorption1.22e-049.98e-06
565 282 scatter1.63e-027.29e-04282scatter1.68e-025.73e-04
566 283 absorption9.18e-057.12e-06283absorption1.14e-048.02e-06
567 283 scatter1.62e-026.61e-04283scatter1.66e-025.44e-04
568 284 absorption1.04e-041.10e-05284absorption1.06e-048.37e-06
569 284 scatter1.74e-025.99e-04284scatter1.64e-025.14e-04
570 285 absorption1.11e-041.14e-05285absorption1.23e-049.19e-06
571 285 scatter1.80e-027.74e-04285scatter1.70e-025.34e-04
572 286 absorption1.25e-041.20e-05286absorption1.14e-046.70e-06
573 286 scatter1.83e-028.28e-04286scatter1.75e-025.68e-04
574 287 absorption1.19e-041.30e-05287absorption1.14e-048.10e-06
575 287 scatter1.75e-027.57e-04287scatter1.72e-024.93e-04
576 288 absorption1.13e-041.40e-05288absorption1.06e-041.07e-05
577 288 scatter1.82e-027.82e-04288scatter1.72e-027.73e-04
\n", @@ -1688,26 +1711,26 @@ ], "text/plain": [ " distribcell score mean std. dev.\n", - "558 279 absorption 9.27e-05 1.33e-05\n", - "559 279 scatter 1.35e-02 8.05e-04\n", - "560 280 absorption 8.41e-05 9.92e-06\n", - "561 280 scatter 1.42e-02 6.12e-04\n", - "562 281 absorption 9.12e-05 8.26e-06\n", - "563 281 scatter 1.45e-02 5.90e-04\n", - "564 282 absorption 1.12e-04 1.24e-05\n", - "565 282 scatter 1.63e-02 7.29e-04\n", - "566 283 absorption 9.18e-05 7.12e-06\n", - "567 283 scatter 1.62e-02 6.61e-04\n", - "568 284 absorption 1.04e-04 1.10e-05\n", - "569 284 scatter 1.74e-02 5.99e-04\n", - "570 285 absorption 1.11e-04 1.14e-05\n", - "571 285 scatter 1.80e-02 7.74e-04\n", - "572 286 absorption 1.25e-04 1.20e-05\n", - "573 286 scatter 1.83e-02 8.28e-04\n", - "574 287 absorption 1.19e-04 1.30e-05\n", - "575 287 scatter 1.75e-02 7.57e-04\n", - "576 288 absorption 1.13e-04 1.40e-05\n", - "577 288 scatter 1.82e-02 7.82e-04" + "558 279 absorption 7.14e-05 8.26e-06\n", + "559 279 scatter 1.25e-02 5.75e-04\n", + "560 280 absorption 8.50e-05 6.16e-06\n", + "561 280 scatter 1.38e-02 4.58e-04\n", + "562 281 absorption 1.04e-04 7.54e-06\n", + "563 281 scatter 1.55e-02 4.15e-04\n", + "564 282 absorption 1.22e-04 9.98e-06\n", + "565 282 scatter 1.68e-02 5.73e-04\n", + "566 283 absorption 1.14e-04 8.02e-06\n", + "567 283 scatter 1.66e-02 5.44e-04\n", + "568 284 absorption 1.06e-04 8.37e-06\n", + "569 284 scatter 1.64e-02 5.14e-04\n", + "570 285 absorption 1.23e-04 9.19e-06\n", + "571 285 scatter 1.70e-02 5.34e-04\n", + "572 286 absorption 1.14e-04 6.70e-06\n", + "573 286 scatter 1.75e-02 5.68e-04\n", + "574 287 absorption 1.14e-04 8.10e-06\n", + "575 287 scatter 1.72e-02 4.93e-04\n", + "576 288 absorption 1.06e-04 1.07e-05\n", + "577 288 scatter 1.72e-02 7.73e-04" ] }, "execution_count": 33, @@ -1738,425 +1761,27 @@ }, "outputs": [ { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
(level 1, cell, id)(level 1, univ, id)(level 2, lat, id)(level 2, lat, x)(level 2, lat, y)(level 2, lat, z)(level 3, cell, id)(level 3, univ, id)distribcellscoremeanstd. dev.
0 10003 0 10001 0 0 0 10002 10000 0 absorption1.23e-041.19e-05
1 10003 0 10001 0 0 0 10002 10000 0 scatter1.78e-028.08e-04
2 10003 0 10001 0 1 0 10002 10000 1 absorption2.17e-041.96e-05
3 10003 0 10001 0 1 0 10002 10000 1 scatter2.89e-021.26e-03
4 10003 0 10001 0 2 0 10002 10000 2 absorption3.18e-042.03e-05
5 10003 0 10001 0 2 0 10002 10000 2 scatter4.05e-021.27e-03
6 10003 0 10001 0 3 0 10002 10000 3 absorption3.86e-041.80e-05
7 10003 0 10001 0 3 0 10002 10000 3 scatter4.86e-021.34e-03
8 10003 0 10001 0 4 0 10002 10000 4 absorption5.01e-042.60e-05
9 10003 0 10001 0 4 0 10002 10000 4 scatter5.71e-021.72e-03
10 10003 0 10001 0 5 0 10002 10000 5 absorption4.84e-042.58e-05
11 10003 0 10001 0 5 0 10002 10000 5 scatter6.08e-021.58e-03
12 10003 0 10001 0 6 0 10002 10000 6 absorption5.32e-043.90e-05
13 10003 0 10001 0 6 0 10002 10000 6 scatter6.91e-022.25e-03
14 10003 0 10001 0 7 0 10002 10000 7 absorption5.77e-043.92e-05
15 10003 0 10001 0 7 0 10002 10000 7 scatter7.67e-022.34e-03
16 10003 0 10001 0 8 0 10002 10000 8 absorption6.49e-043.90e-05
17 10003 0 10001 0 8 0 10002 10000 8 scatter8.16e-021.61e-03
18 10003 0 10001 0 9 0 10002 10000 9 absorption6.80e-043.17e-05
19 10003 0 10001 0 9 0 10002 10000 9 scatter8.77e-021.96e-03
\n", - "
" - ], - "text/plain": [ - " (level 1, cell, id) (level 1, univ, id) (level 2, lat, id) \\\n", - "0 10003 0 10001 \n", - "1 10003 0 10001 \n", - "2 10003 0 10001 \n", - "3 10003 0 10001 \n", - "4 10003 0 10001 \n", - "5 10003 0 10001 \n", - "6 10003 0 10001 \n", - "7 10003 0 10001 \n", - "8 10003 0 10001 \n", - "9 10003 0 10001 \n", - "10 10003 0 10001 \n", - "11 10003 0 10001 \n", - "12 10003 0 10001 \n", - "13 10003 0 10001 \n", - "14 10003 0 10001 \n", - "15 10003 0 10001 \n", - "16 10003 0 10001 \n", - "17 10003 0 10001 \n", - "18 10003 0 10001 \n", - "19 10003 0 10001 \n", - "\n", - " (level 2, lat, x) (level 2, lat, y) (level 2, lat, z) \\\n", - "0 0 0 0 \n", - "1 0 0 0 \n", - "2 0 1 0 \n", - "3 0 1 0 \n", - "4 0 2 0 \n", - "5 0 2 0 \n", - "6 0 3 0 \n", - "7 0 3 0 \n", - "8 0 4 0 \n", - "9 0 4 0 \n", - "10 0 5 0 \n", - "11 0 5 0 \n", - "12 0 6 0 \n", - "13 0 6 0 \n", - "14 0 7 0 \n", - "15 0 7 0 \n", - "16 0 8 0 \n", - "17 0 8 0 \n", - "18 0 9 0 \n", - "19 0 9 0 \n", - "\n", - " (level 3, cell, id) (level 3, univ, id) distribcell score \\\n", - "0 10002 10000 0 absorption \n", - "1 10002 10000 0 scatter \n", - "2 10002 10000 1 absorption \n", - "3 10002 10000 1 scatter \n", - "4 10002 10000 2 absorption \n", - "5 10002 10000 2 scatter \n", - "6 10002 10000 3 absorption \n", - "7 10002 10000 3 scatter \n", - "8 10002 10000 4 absorption \n", - "9 10002 10000 4 scatter \n", - "10 10002 10000 5 absorption \n", - "11 10002 10000 5 scatter \n", - "12 10002 10000 6 absorption \n", - "13 10002 10000 6 scatter \n", - "14 10002 10000 7 absorption \n", - "15 10002 10000 7 scatter \n", - "16 10002 10000 8 absorption \n", - "17 10002 10000 8 scatter \n", - "18 10002 10000 9 absorption \n", - "19 10002 10000 9 scatter \n", - "\n", - " mean std. dev. \n", - "0 1.23e-04 1.19e-05 \n", - "1 1.78e-02 8.08e-04 \n", - "2 2.17e-04 1.96e-05 \n", - "3 2.89e-02 1.26e-03 \n", - "4 3.18e-04 2.03e-05 \n", - "5 4.05e-02 1.27e-03 \n", - "6 3.86e-04 1.80e-05 \n", - "7 4.86e-02 1.34e-03 \n", - "8 5.01e-04 2.60e-05 \n", - "9 5.71e-02 1.72e-03 \n", - "10 4.84e-04 2.58e-05 \n", - "11 6.08e-02 1.58e-03 \n", - "12 5.32e-04 3.90e-05 \n", - "13 6.91e-02 2.25e-03 \n", - "14 5.77e-04 3.92e-05 \n", - "15 7.67e-02 2.34e-03 \n", - "16 6.49e-04 3.90e-05 \n", - "17 8.16e-02 1.61e-03 \n", - "18 6.80e-04 3.17e-05 \n", - "19 8.77e-02 1.96e-03 " - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "(('level 1', 'lat', 'x'), array([], dtype=float64), Filter\n", + "\tType =\tdistribcell\n", + "\tBins =\t[10002]\n", + ")\n" + ] + }, + { + "ename": "ZeroDivisionError", + "evalue": "integer division or modulo by zero", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Get a pandas dataframe for the distribcell tally data\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mdf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_pandas_dataframe\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msummary\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msu\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnuclides\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# Print the last twenty rows in the dataframe\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m20\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.pyc\u001b[0m in \u001b[0;36mget_pandas_dataframe\u001b[1;34m(self, filters, nuclides, scores, summary, float_format)\u001b[0m\n\u001b[0;32m 1609\u001b[0m \u001b[1;31m# Append each Filter's DataFrame to the overall DataFrame\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1610\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mself_filter\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfilters\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1611\u001b[1;33m \u001b[0mfilter_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself_filter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_pandas_dataframe\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata_size\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msummary\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1612\u001b[0m \u001b[0mdf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfilter_df\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1613\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/filter.py\u001b[0m in \u001b[0;36mget_pandas_dataframe\u001b[1;34m(self, data_size, summary)\u001b[0m\n\u001b[0;32m 739\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_key\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 740\u001b[0m \u001b[0mlevel_bins\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrepeat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstride\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 741\u001b[1;33m \u001b[0mtile_factor\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata_size\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 742\u001b[0m \u001b[0mlevel_bins\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtile\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtile_factor\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 743\u001b[0m \u001b[0mlevel_dict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mlevel_key\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlevel_bins\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mZeroDivisionError\u001b[0m: integer division or modulo by zero" + ] } ], "source": [ @@ -2169,85 +1794,11 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
meanstd. dev.
count2.89e+022.89e+02
mean4.18e-042.17e-05
std2.39e-048.82e-06
min1.81e-053.82e-06
25%2.02e-041.49e-05
50%4.02e-042.11e-05
75%6.15e-042.67e-05
max8.92e-044.43e-05
\n", - "
" - ], - "text/plain": [ - " mean std. dev.\n", - "count 2.89e+02 2.89e+02\n", - "mean 4.18e-04 2.17e-05\n", - "std 2.39e-04 8.82e-06\n", - "min 1.81e-05 3.82e-06\n", - "25% 2.02e-04 1.49e-05\n", - "50% 4.02e-04 2.11e-05\n", - "75% 6.15e-04 2.67e-05\n", - "max 8.92e-04 4.43e-05" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Show summary statistics for absorption distribcell tally data\n", "absorption = df[df['score'] == 'absorption']\n", @@ -2266,19 +1817,11 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mann-Whitney Test p-value: 0.414863173548\n" - ] - } - ], + "outputs": [], "source": [ "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", @@ -2304,19 +1847,11 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mann-Whitney Test p-value: 3.28554363741e-42\n" - ] - } - ], + "outputs": [], "source": [ "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", @@ -2340,43 +1875,11 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/smharper/.local/lib/python2.7/site-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Extract the scatter tally data from pandas\n", "scatter = df[df['score'] == 'scatter']\n", @@ -2389,32 +1892,11 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Plot a histogram and kernel density estimate for the scattering rates\n", "scatter['mean'].plot(kind='hist', bins=25)\n", @@ -2441,7 +1923,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 6526f0307..7daf1d1cf 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -350,7 +350,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ABDg0CBtSiu0UAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDEtMTRUMDc6MDI6\nMDYtMDY6MDBlmV1NAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAxLTE0VDA3OjAyOjA2LTA2OjAw\nFMTl8QAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxEMN1kSh5AAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTM6MTI6\nNTUtMDQ6MDDwd3AfAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEzOjEyOjU1LTA0OjAw\ngSrIowAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -460,8 +460,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ea9fb637f63f9374c7436456141afa850b84acf9\n", - " Date/Time: 2016-01-14 07:02:06\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 13:12:56\n", + " MPI Processes: 1\n", + " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -488,106 +490,106 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.04894 \n", - " 2/1 1.01711 \n", - " 3/1 1.05357 \n", - " 4/1 1.03052 \n", - " 5/1 1.06523 \n", - " 6/1 1.06806 \n", - " 7/1 1.05161 \n", - " 8/1 1.04199 \n", - " 9/1 1.05010 \n", - " 10/1 1.04617 \n", - " 11/1 1.04894 \n", - " 12/1 1.06806 1.05850 +/- 0.00956\n", - " 13/1 1.05002 1.05567 +/- 0.00620\n", - " 14/1 1.03471 1.05043 +/- 0.00683\n", - " 15/1 1.01803 1.04395 +/- 0.00837\n", - " 16/1 1.05588 1.04594 +/- 0.00712\n", - " 17/1 1.07503 1.05010 +/- 0.00731\n", - " 18/1 1.02786 1.04732 +/- 0.00691\n", - " 19/1 1.00071 1.04214 +/- 0.00800\n", - " 20/1 1.05587 1.04351 +/- 0.00729\n", - " 21/1 1.03886 1.04309 +/- 0.00660\n", - " 22/1 1.04335 1.04311 +/- 0.00603\n", - " 23/1 1.04057 1.04292 +/- 0.00555\n", - " 24/1 1.01976 1.04126 +/- 0.00540\n", - " 25/1 1.05811 1.04238 +/- 0.00515\n", - " 26/1 1.02351 1.04120 +/- 0.00496\n", - " 27/1 1.05261 1.04188 +/- 0.00471\n", - " 28/1 1.03355 1.04141 +/- 0.00446\n", - " 29/1 1.02797 1.04071 +/- 0.00428\n", - " 30/1 1.03758 1.04055 +/- 0.00406\n", - " 31/1 1.04883 1.04094 +/- 0.00388\n", - " 32/1 1.03557 1.04070 +/- 0.00371\n", - " 33/1 1.02947 1.04021 +/- 0.00358\n", - " 34/1 1.03651 1.04006 +/- 0.00343\n", - " 35/1 1.03331 1.03979 +/- 0.00330\n", - " 36/1 1.05947 1.04054 +/- 0.00326\n", - " 37/1 1.05093 1.04093 +/- 0.00316\n", - " 38/1 1.06787 1.04189 +/- 0.00319\n", - " 39/1 1.01451 1.04095 +/- 0.00322\n", - " 40/1 1.02351 1.04037 +/- 0.00317\n", - " 41/1 1.04826 1.04062 +/- 0.00307\n", - " 42/1 1.04228 1.04067 +/- 0.00298\n", - " 43/1 1.03214 1.04041 +/- 0.00290\n", - " 44/1 1.04950 1.04068 +/- 0.00282\n", - " 45/1 1.06616 1.04141 +/- 0.00284\n", - " 46/1 1.07039 1.04221 +/- 0.00287\n", - " 47/1 1.00292 1.04115 +/- 0.00299\n", - " 48/1 1.04477 1.04125 +/- 0.00291\n", - " 49/1 1.03360 1.04105 +/- 0.00284\n", - " 50/1 1.04783 1.04122 +/- 0.00277\n", - " 51/1 1.03985 1.04119 +/- 0.00271\n", - " 52/1 1.02507 1.04080 +/- 0.00267\n", - " 53/1 1.03477 1.04066 +/- 0.00261\n", - " 54/1 1.00412 1.03983 +/- 0.00268\n", - " 55/1 1.02239 1.03945 +/- 0.00265\n", - " 56/1 1.04308 1.03952 +/- 0.00259\n", - " 57/1 1.05534 1.03986 +/- 0.00256\n", - " 58/1 1.06667 1.04042 +/- 0.00257\n", - " 59/1 1.06458 1.04091 +/- 0.00256\n", - " 60/1 1.00304 1.04015 +/- 0.00262\n", - " 61/1 1.05038 1.04036 +/- 0.00258\n", - " 62/1 1.02904 1.04014 +/- 0.00254\n", - " 63/1 1.00249 1.03943 +/- 0.00259\n", - " 64/1 1.01779 1.03903 +/- 0.00257\n", - " 65/1 1.05335 1.03929 +/- 0.00254\n", - " 66/1 1.06231 1.03970 +/- 0.00253\n", - " 67/1 1.02382 1.03942 +/- 0.00250\n", - " 68/1 1.03796 1.03939 +/- 0.00245\n", - " 69/1 1.03672 1.03935 +/- 0.00241\n", - " 70/1 1.02926 1.03918 +/- 0.00238\n", - " 71/1 1.05834 1.03950 +/- 0.00236\n", - " 72/1 1.04332 1.03956 +/- 0.00232\n", - " 73/1 1.05613 1.03982 +/- 0.00230\n", - " 74/1 1.01963 1.03950 +/- 0.00228\n", - " 75/1 1.02228 1.03924 +/- 0.00226\n", - " 76/1 1.04842 1.03938 +/- 0.00223\n", - " 77/1 1.02157 1.03911 +/- 0.00222\n", - " 78/1 1.02810 1.03895 +/- 0.00219\n", - " 79/1 1.05030 1.03912 +/- 0.00216\n", - " 80/1 1.02391 1.03890 +/- 0.00214\n", - " 81/1 1.02488 1.03870 +/- 0.00212\n", - " 82/1 1.04957 1.03885 +/- 0.00210\n", - " 83/1 1.03499 1.03880 +/- 0.00207\n", - " 84/1 1.05922 1.03907 +/- 0.00206\n", - " 85/1 1.05898 1.03934 +/- 0.00205\n", - " 86/1 1.02242 1.03912 +/- 0.00204\n", - " 87/1 1.03278 1.03904 +/- 0.00201\n", - " 88/1 1.06134 1.03932 +/- 0.00201\n", - " 89/1 1.04521 1.03940 +/- 0.00198\n", - " 90/1 1.04277 1.03944 +/- 0.00196\n", - " 91/1 1.04214 1.03947 +/- 0.00193\n", - " 92/1 1.05610 1.03967 +/- 0.00192\n", - " 93/1 1.04531 1.03974 +/- 0.00190\n", - " 94/1 1.01534 1.03945 +/- 0.00190\n", - " 95/1 1.03971 1.03945 +/- 0.00187\n", - " 96/1 1.07183 1.03983 +/- 0.00189\n", - " 97/1 1.07214 1.04020 +/- 0.00191\n", - " 98/1 1.03710 1.04017 +/- 0.00188\n", - " 99/1 1.02532 1.04000 +/- 0.00187\n", - " 100/1 1.03965 1.04000 +/- 0.00185\n", + " 1/1 1.03019 \n", + " 2/1 1.06141 \n", + " 3/1 1.03988 \n", + " 4/1 1.02696 \n", + " 5/1 1.06159 \n", + " 6/1 1.03855 \n", + " 7/1 1.03452 \n", + " 8/1 1.04526 \n", + " 9/1 1.02137 \n", + " 10/1 1.02129 \n", + " 11/1 1.04810 \n", + " 12/1 1.00454 1.02632 +/- 0.02178\n", + " 13/1 1.06176 1.03813 +/- 0.01725\n", + " 14/1 1.02927 1.03592 +/- 0.01240\n", + " 15/1 1.06158 1.04105 +/- 0.01089\n", + " 16/1 1.02692 1.03870 +/- 0.00920\n", + " 17/1 1.06703 1.04274 +/- 0.00876\n", + " 18/1 1.02341 1.04033 +/- 0.00797\n", + " 19/1 1.06256 1.04280 +/- 0.00745\n", + " 20/1 1.04829 1.04335 +/- 0.00668\n", + " 21/1 1.01742 1.04099 +/- 0.00649\n", + " 22/1 1.01629 1.03893 +/- 0.00627\n", + " 23/1 1.01145 1.03682 +/- 0.00614\n", + " 24/1 1.05042 1.03779 +/- 0.00577\n", + " 25/1 1.02543 1.03696 +/- 0.00543\n", + " 26/1 1.04643 1.03756 +/- 0.00512\n", + " 27/1 1.03020 1.03712 +/- 0.00483\n", + " 28/1 1.04088 1.03733 +/- 0.00456\n", + " 29/1 1.03885 1.03741 +/- 0.00431\n", + " 30/1 1.05497 1.03829 +/- 0.00418\n", + " 31/1 1.01946 1.03739 +/- 0.00408\n", + " 32/1 1.07049 1.03890 +/- 0.00417\n", + " 33/1 1.05920 1.03978 +/- 0.00408\n", + " 34/1 1.04910 1.04017 +/- 0.00393\n", + " 35/1 1.03827 1.04009 +/- 0.00377\n", + " 36/1 1.08004 1.04163 +/- 0.00393\n", + " 37/1 1.05729 1.04221 +/- 0.00383\n", + " 38/1 1.00328 1.04082 +/- 0.00394\n", + " 39/1 1.04603 1.04100 +/- 0.00381\n", + " 40/1 1.03193 1.04070 +/- 0.00369\n", + " 41/1 1.05548 1.04117 +/- 0.00360\n", + " 42/1 1.03566 1.04100 +/- 0.00349\n", + " 43/1 1.02848 1.04062 +/- 0.00340\n", + " 44/1 1.01806 1.03996 +/- 0.00337\n", + " 45/1 1.05404 1.04036 +/- 0.00330\n", + " 46/1 1.06319 1.04099 +/- 0.00327\n", + " 47/1 1.03238 1.04076 +/- 0.00318\n", + " 48/1 1.07148 1.04157 +/- 0.00320\n", + " 49/1 1.06016 1.04205 +/- 0.00316\n", + " 50/1 1.02051 1.04151 +/- 0.00312\n", + " 51/1 1.04903 1.04169 +/- 0.00305\n", + " 52/1 1.06004 1.04213 +/- 0.00301\n", + " 53/1 1.04790 1.04226 +/- 0.00294\n", + " 54/1 1.03742 1.04215 +/- 0.00288\n", + " 55/1 1.05670 1.04248 +/- 0.00283\n", + " 56/1 1.02739 1.04215 +/- 0.00279\n", + " 57/1 1.03133 1.04192 +/- 0.00274\n", + " 58/1 1.00078 1.04106 +/- 0.00281\n", + " 59/1 1.06328 1.04151 +/- 0.00279\n", + " 60/1 1.02275 1.04114 +/- 0.00276\n", + " 61/1 1.04295 1.04117 +/- 0.00271\n", + " 62/1 1.06079 1.04155 +/- 0.00268\n", + " 63/1 1.02148 1.04117 +/- 0.00266\n", + " 64/1 1.04801 1.04130 +/- 0.00261\n", + " 65/1 1.03501 1.04119 +/- 0.00257\n", + " 66/1 1.07021 1.04170 +/- 0.00257\n", + " 67/1 1.01764 1.04128 +/- 0.00256\n", + " 68/1 1.02806 1.04105 +/- 0.00253\n", + " 69/1 1.01645 1.04064 +/- 0.00252\n", + " 70/1 1.03971 1.04062 +/- 0.00248\n", + " 71/1 1.06581 1.04103 +/- 0.00247\n", + " 72/1 1.03359 1.04091 +/- 0.00243\n", + " 73/1 1.02155 1.04061 +/- 0.00241\n", + " 74/1 1.06730 1.04102 +/- 0.00241\n", + " 75/1 1.03557 1.04094 +/- 0.00238\n", + " 76/1 1.03795 1.04089 +/- 0.00234\n", + " 77/1 1.02976 1.04073 +/- 0.00231\n", + " 78/1 1.02257 1.04046 +/- 0.00229\n", + " 79/1 1.05500 1.04067 +/- 0.00227\n", + " 80/1 1.03306 1.04056 +/- 0.00224\n", + " 81/1 1.04693 1.04065 +/- 0.00221\n", + " 82/1 1.02975 1.04050 +/- 0.00218\n", + " 83/1 1.07900 1.04103 +/- 0.00222\n", + " 84/1 1.02915 1.04087 +/- 0.00219\n", + " 85/1 1.03153 1.04074 +/- 0.00217\n", + " 86/1 1.05792 1.04097 +/- 0.00215\n", + " 87/1 1.06045 1.04122 +/- 0.00214\n", + " 88/1 1.08821 1.04182 +/- 0.00219\n", + " 89/1 1.08077 1.04232 +/- 0.00222\n", + " 90/1 1.06569 1.04261 +/- 0.00221\n", + " 91/1 1.04921 1.04269 +/- 0.00219\n", + " 92/1 1.04849 1.04276 +/- 0.00216\n", + " 93/1 1.06074 1.04298 +/- 0.00215\n", + " 94/1 1.04030 1.04295 +/- 0.00212\n", + " 95/1 1.03190 1.04282 +/- 0.00210\n", + " 96/1 1.04525 1.04285 +/- 0.00207\n", + " 97/1 1.08086 1.04328 +/- 0.00210\n", + " 98/1 1.04070 1.04325 +/- 0.00207\n", + " 99/1 1.05730 1.04341 +/- 0.00206\n", + " 100/1 1.05036 1.04349 +/- 0.00203\n", " Creating state point statepoint.100.h5...\n", "\n", " ===========================================================================\n", @@ -597,27 +599,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.6000E-01 seconds\n", - " Reading cross sections = 1.0600E-01 seconds\n", - " Total time in simulation = 2.5756E+02 seconds\n", - " Time in transport only = 2.5751E+02 seconds\n", - " Time in inactive batches = 9.7270E+00 seconds\n", - " Time in active batches = 2.4783E+02 seconds\n", - " Time synchronizing fission bank = 2.1000E-02 seconds\n", - " Sampling source sites = 1.3000E-02 seconds\n", - " SEND/RECV source sites = 8.0000E-03 seconds\n", - " Time accumulating tallies = 1.3000E-02 seconds\n", - " Total time for finalization = 1.4600E-01 seconds\n", - " Total time elapsed = 2.5809E+02 seconds\n", - " Calculation Rate (inactive) = 5140.33 neutrons/second\n", - " Calculation Rate (active) = 1815.75 neutrons/second\n", + " Total time for initialization = 4.4800E-01 seconds\n", + " Reading cross sections = 1.3300E-01 seconds\n", + " Total time in simulation = 4.6592E+01 seconds\n", + " Time in transport only = 4.4918E+01 seconds\n", + " Time in inactive batches = 1.1940E+00 seconds\n", + " Time in active batches = 4.5398E+01 seconds\n", + " Time synchronizing fission bank = 2.2000E-02 seconds\n", + " Sampling source sites = 1.5000E-02 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 3.1000E-02 seconds\n", + " Total time for finalization = 2.7300E-01 seconds\n", + " Total time elapsed = 4.7345E+01 seconds\n", + " Calculation Rate (inactive) = 41876.0 neutrons/second\n", + " Calculation Rate (active) = 9912.33 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.03912 +/- 0.00160\n", - " k-effective (Track-length) = 1.04000 +/- 0.00185\n", - " k-effective (Absorption) = 1.04240 +/- 0.00156\n", - " Combined k-effective = 1.04078 +/- 0.00127\n", + " k-effective (Collision) = 1.04225 +/- 0.00171\n", + " k-effective (Track-length) = 1.04349 +/- 0.00203\n", + " k-effective (Absorption) = 1.04192 +/- 0.00172\n", + " Combined k-effective = 1.04213 +/- 0.00141\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -717,18 +719,18 @@ { "data": { "text/plain": [ - "array([[[ 0.4107676 , 0. ]],\n", + "array([[[ 0.41161103, 0. ]],\n", "\n", - " [[ 0.40849402, 0. ]],\n", + " [[ 0.41135796, 0. ]],\n", "\n", - " [[ 0.41014343, 0. ]],\n", + " [[ 0.41058715, 0. ]],\n", "\n", " ..., \n", - " [[ 0.41049467, 0. ]],\n", + " [[ 0.40919256, 0. ]],\n", "\n", - " [[ 0.40982242, 0. ]],\n", + " [[ 0.41057119, 0. ]],\n", "\n", - " [[ 0.40996987, 0. ]]])" + " [[ 0.41225079, 0. ]]])" ] }, "execution_count": 20, @@ -764,30 +766,30 @@ { "data": { "text/plain": [ - "(array([[[ 0.00456408, 0. ]],\n", + "(array([[[ 0.00457346, 0. ]],\n", " \n", - " [[ 0.00453882, 0. ]],\n", + " [[ 0.00457064, 0. ]],\n", " \n", - " [[ 0.00455715, 0. ]],\n", + " [[ 0.00456208, 0. ]],\n", " \n", " ..., \n", - " [[ 0.00456105, 0. ]],\n", + " [[ 0.00454658, 0. ]],\n", " \n", - " [[ 0.00455358, 0. ]],\n", + " [[ 0.0045619 , 0. ]],\n", " \n", - " [[ 0.00455522, 0. ]]]),\n", - " array([[[ 1.95085625e-05, 0.00000000e+00]],\n", + " [[ 0.00458056, 0. ]]]),\n", + " array([[[ 1.92422804e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.78129859e-05, 0.00000000e+00]],\n", + " [[ 1.58028832e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.89709648e-05, 0.00000000e+00]],\n", + " [[ 1.56204065e-05, 0.00000000e+00]],\n", " \n", " ..., \n", - " [[ 1.56286612e-05, 0.00000000e+00]],\n", + " [[ 1.98926652e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.65813279e-05, 0.00000000e+00]],\n", + " [[ 1.70440988e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.67530331e-05, 0.00000000e+00]]]))" + " [[ 2.05592499e-05, 0.00000000e+00]]]))" ] }, "execution_count": 21, @@ -819,7 +821,7 @@ "output_type": "stream", "text": [ "Tally\n", - "\tID =\t10000\n", + "\tID =\t10001\n", "\tName =\t\n", "\tFilters =\t\n", " \t\tmesh\t[10000]\n", @@ -867,7 +869,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -876,9 +878,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWwAAAC4CAYAAADHR9Y0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3WmQHGd+5/fvk0dlXVl3VVdX9VF9Amg0boAESA5Bcsi5\nNYdmpJmVViNZXsfuSvIVYVv2vvMrvXDs2ns47NWes6GVZnTu3NQMb5AEAeIGGo2+z+qu+76zMtMv\nGkuvLYWlEAUR46lPRL+oiup+siv+8auszP/zPMK2bQYGBgYGHn/SR30AAwMDAwN/OYPAHhgYGPgJ\nMQjsgYGBgZ8Qg8AeGBgY+AkxCOyBgYGBnxCDwB4YGBj4CfGhAlsI8SkhxAMhxIoQ4jf/ug5qYOCj\nNKjrgceV+Kv2YQshZGAJeBFIA+8Df8u27cW/vsMbGPibNajrgcfZhznDfgJYtW1707ZtA/gm8IW/\nnsMaGPjIDOp64LH1YQI7Cez8J493Hz43MPCTbFDXA48t5UP87l94LUUIMZj3PvBI2bYt/rr/5F/0\ngkFdD/xN+PNq+8MEdhoY/U8ej3JwNvL/8PmLEv/7yyFecbzAnpSgiZclDtHChZMOUfI8W3iXX1j/\nQzITYW6FjvGy/El+tvJdbEvwT4K/xu3LpxFVwfPP/SkhV4kkaZ7ndQxbZd+OsyuN8mrzRd5sXSTg\nLjOs7bP+1X/Al//o55hijUnW+QZfR8XgK/wRy8xyzTzLj7qf4ClxmcPyIrpa5z3rAncKJ6jdCXM+\n9Q6piTVuyid5SfyYj/MqW4zxcuszvNF5jjl9gdPqdc7xPkdYpESYy/YF/tmX3ubp3/mv+Jz8Pc5Y\n17FlwbvOC8TIsdGa4h/t/ybPhN8g6d/itf7HUaQ+4/IWz/A2YYp4aBIlz4/sT/AH9s/hE1XKr0Yp\nfjvOF/7+H8CcxU1O8SRXsJC4zhny+wlqC0Fav/G3Of07v0nq7BoOeqRJImPyHG8wzhYaXVaZ5gGH\nWcnPkv3dEbpOJ+6TLc4fucRx3y3mjEXO3r9NcLtKq+Ji6eIUb4x9jG/yNWp9H9gCv1Sh8AfDeMot\nnv6l13n/6/+Qv/3Nz/Fy59Nc1N7gCe0q1znN65svcT9zjHNH3+Wwd5Fpe5Xj1h0WxRF+IH+GT/Aj\n3LRY7U/znW9+hT1pmMTXtmhJblQMEnaaYbGPmzYVArhpYSGxxhQJ9viW+M8+RPl+uLqGw8BXH8X4\nfwnf+ojG/mkb96Mc+3/+c5/9MIF9DZgRQqSAPQ7+q7/1/35Rzeel5AhySrqFjcRrvECWISQsNHrc\n4TiRjTLimzbhz1fxnOiQD0S47D2HlzoTYg1rXkLqWxzVFigSYo9hlpnl3e5TrPan+XXXP+NLzj/G\nR43XMp+k5IkB4KAHQAMvEYo08HKNszjp4JUaqGqfG9vnSJvjzE/dIl0eo9d1M3XqAT/T/y4ni3ew\nw4Il5RDLzGKgsJY9RG/Hg3zcohbws8gcCiZZhrhmnqVRuY3zHYvPhn+Mt9pg3z+EcrqPJQm8Wo3T\niffwqRU8osXPKn/MOpMUCbNJiio+hsgxzhbHxR26aIRFkbtn5nkj9QIbiXEiFDjKAjliKPQ5yzXa\nYQ/pM0neG+9Rmg0gGCdKnh4ObASrTNNHwU2LdSapo5MIpPncV76PLmp0vRrb7lFucZI7ynHcUy28\nIw3u9I8TD+z/3+9jIUCz66XkDXL4mWWCUpnbrhNsm2P89tbfo3wrxvCRHL75GsvM4oy3OB+6xNPu\ntzlp3uJQdwV/vUFDCxAJ5tliHBWDrqwx8tIGuijjlupkGKZq+XlgHmFPTuKTarhpkWITLw0U+qTY\n/BCl++HremDgo/BXDmzbtvtCiN8A/hSQgX/1591JTysJXpMucpZrOOngNttUsiFsVcIVbeOhBUGb\n9eNjBCNlhsjyUu0NnO4GfVVmmH1sn4SNOAhamrRws0cCSTIZk7fRRA9VMvBoDQKeEg6tSxlBkTBN\nPKwyTYY4lXaI9coMTwXeIegsk5R3KHsiNEw3aZEAh41fKuEMtNlrDxPslTkkHrDLCEXCBGljuxX8\n4Rpz6n1sYJ0JplmljYu8iKGpXeSIwau+5xGKTc4T4TbzjLNJX1Zou5xsWmN0LI3T0g2GyOKizRRr\nDFlZYmaeITtHVoqDAg08OIIGk8E1plhDYJG14+y2xpGEyah7C91RI6Wus+7JcE6/ipMOcTLU8FHD\nRxsXd26dpJfRaDzloudz4FOrhJN55pqL6K0m15yn2GGUjnDS9apsKUf5duNn+YT4IfWMj8LtOK17\nPjpOJ92XHBRdUYJahSfFFfZEi4C7QiBep657ucYZthin71TwO6uUCNI2XXRsjUvpF1j0HqIZ9FIi\nTJwMR8UCq0PTtHHQx0+j7wXLZljax0LCT5ULXKaFmyJhIhTwU/2rV/1fQ10PDHwUPswZNrZt/xD4\n4f/Xa/JHnuWHfBo3LRT6+I0qjc0gba9GKJpnhhWC0yWWpyaYwmK4tcfXS7/LvhJhUx2lgwsThT4K\nBipeGmh0KBJm3rHAOFu0cJMmSUfRmIo/QMKieWSIIiGaeGnZbtrCRakVJbs7wgntFmPOTU7Zt8gM\nxSmJICVCeHw1dLtC0/Lyiut5Vj0TfIU/ZNzeooYPp+iQHkqSHRrirHmdTWuctJTARRs3LSTZJPmk\nh+4pmd+y/3tUqUcXjbwZ45y4gi7q7JKkbym0bTfjYguvaDDMPqe5wbC5j69XR7VMGg6ddWWSHiqS\nbTFubXFBusyuGOFdnqLYHEa2TGzJJqHucVRe4Km5El8Q/+Hh+9Skh4M9ErzHeZavHSZ3c5jY0TSG\nT6aFiyJh3LUuxzIPcGg9iuoyHaEBsNQ5wjv5Z0lp63S3nGR+bxT7ioBRsE862NVSJLwZvuT/Ezbm\nOxxKvomS7LPCDHc4QQs3fWSKhBGAR27SlxT+aeE3qPZ1DnOPAhHidpaT9m1+xCfYFaPIwqTe9RKz\ncxz33KYsQsTMHC+2X+E19eMsqkdISmlUjA9Tuh+6riH6yMb/i31UY/+0jftRj/1nfajA/svwTSVJ\nsssmKXbtEW5yioIrgtdZAyBHjFlzmePGHfR+GwmLctTDjppkjUm2GMPAgU6dOBlKhCgRoouG364S\nsQu8KV3ETYvP8T16aFhIvDWX5TCv4DPrDBv7fMvxVRZ9R0jOpkm5NzjTvsGni6/xbugcVz1nuc0J\nADo9F7vFCcJ6DkuXqOFj3lggZN5jTZtgSTpE0YwwVdripHqXM4FrBCmjYHCe9/jBoXmuNp6kVI0x\nFl4HBPV8mGbYT9hb4gR3OCHfJkqeFTGDkw4Cm9d5nrqiY0kSo/YuG1KKBl7G2WSvNcr79ac5EbyD\novXxiTrJwB5nMrf50tvf4fX5Z5DifaJzbSbYYJ0pXud5plhDxaCKn9lPPeDiU68TjJZYYI5Nxqnh\noyXcqPSZaO6gKCYP3NPcY56qR+fTo99lzznMtpbCDgk4D4SBIpw8fJ3p5CKvyi/SmVunTJBpVomT\noY6XMiFMZBT6VPGzT4KEts+JM9fwqTWOcZsNJpjsbTHV2EaWbZoON5qzh9F207QDZNzDNIWH9P4I\nt18+R/5QhN5RhbpfJyHvPerS/Qv8NIbIT9u4H/XYf9YjD+ywKOJDJU+EtdY0m9VpXIEmfm8ZgU0L\nF3ZHIlos09I91Nw6dc3FGpPsMopKnyBlhs0sM911llSFkhoiRo4Wbu6KY9zgNBNsMM4mEjbBbIXU\n1jYzdQ9FV5hl+xA5K0q9qyNVJFqqG1kySTp2mJJCtNHwUaOFm7bwkFJ3iUhZwuTZJEXFCOHptiir\nfnJSjD4yO8oIIblIFycFIhioJEmTFDVapNk1U8zYKwzJWRKOHLpUoYOTDk6KIozx8Ox3z0gQ6peZ\nY4myGmZVmUTFwE2LwzzAQ5O65MenVvGLKhYBejiYd9zljOd9YnqGefUeJoINTNy0cdHGQiLLEBpd\nUmwyMrJLhAJ7JHDSIUSZOjrb7hFWIxMozj51yYthqyS7+4xbaVxKi9fFRbbD4zieatGvaHhdDcYS\nm5wPvcO4Z4M9EpQ7IZrFeZpOL1XJR7EfpV73YykSkmJhFmRupaFZ8eF4uk3fJ7FizmBLgoII87ry\nHBUpgCr6WLaEX60wziZz4j7X755j/eoMxUtxhN8gfCyHA4PN3sSjLt2BgcfOIw/suLaPgxA5YtRr\nfox9F6mZdUK+Ag56SFjQEpj7Tna9w1Q03wfXhvN2jFlrhXFpk1R/m4lqmpw+hEdtMsoOq2Kam5zi\nHvN0cBGmiGGrHNu4T2ihhl5s8sroi3xD/mVkTPplJ+0Fne1TKdLDy0ScOTRazHOXp3iXjB2npbqJ\nRnN4aJIlzr/lV7jdP0WpGyZlr5Nkl5ic483g01gITBSSpPFRw0mHs+IafjXKXfdRnlHe5Ix2g83h\nFDes0yxac+xKSe5wHBmTYfbJdOPEW1l+XfwLdE+djBxDt+qMiW10qc4Sh0i6dhlyZRhjiwYeaviY\nZYVIOMt74TMc5gFeGtzFQwMvDnpMss4Sh+ij8DTvECdDAy9vchHTUpi01+lKGov6IdoeJ27RQhIW\nim3widbrxI0chqxQ1f1kkkPs/EySxnqQIXufFw69zBPyVUKUUOjTacS4u/skN6MnkBQT0RawqWJ7\nJHCCdNui8EaC5eU5nh59nUZ4ggVznjPiOpqjw75jmJrpw2M3aVheRvUtnpAu81m+z/pbhyl/P4rV\nErj6XXzOCol+mtuNk4+6dAcGHjuPPLA1uoyQpoGXYLBI0JWlpARJGjs8p75OBxeWH/7N7C9ww3MK\nPxW+yJ8QJc9ufZxvbPwdwsksY6FNpoNrtBUXFfzcYx6NDmEKjLOFhWDfSvCpxit4R+u8emYcJTZJ\nQKrw8+L3CYgyeqSJ80yPit9HFT8AEYpYSBioHKmt0DB03g+epCiHqRAgQIVn3W8gNKjKPvxUiZFD\nxaBAmBwxBDZdNCJ2EX+nwUXjHer+f4pXbXCVc7zJc2xlppD6NmeSNyjJQfooTLHGE86reNUG18QJ\nsnIET6/FD7a+wJi+ydnhK0TJcZhFfByE9zZjzHGfLhr7DFMhyHVO08bFNQoUeRIAD02G2cdA5V2e\nYpQdJlnj63yDwH4Dq6Dw3vQ5rnfO8nL+C8guk1P+93nJ/zJ3vYdZtGcwhMKSMo0munxSfZnNkSkU\n+iDBXY5Rs33cs+fJSkuoLoOQL49frRD0Voh4i3RlDUNWmQ6sETuaJdgsE5vOsiTN0hIeqsLPBCV+\n3vp9vrn2S2y0EvQDCsHodXyeGluMcegz93jxlJPLnfO0W172vpfiVUOnMel+1KU7MPDYeeSB7aZJ\nDxU/Ncadm6haj35fwdXrsNscx+up03E4yTqGyBLDTROdBgYO6sJLV3GQlpLUJC81p85/7CR30UZg\nYyGQMOngJE+EtnAhhwxaQ33W3ZN0cTAhNghSZsSRZsq/wffVT5MnyirTTLCBgcpVnmBMpJEk2BAT\n2AhUDIKUCaplVNXgJqcwUBHYDLOHTJ8KQZwPj6WJh55wI8kWM9oyAbtCyQpzz5qnKXwMyxnCFHDT\nRKHPURYIKmUkxSJPlBo6Rl9hWxqjIxzoVIiRo4+CSv9hl0wDjS41fHipE6REA50eDhT6hKwSmt3F\nIzcJUKaHgwZedklSQ+cUN0lKGYJqjVtinr4k01ac+OQqfaGSF1GKjjAKfWRMvDTw9WvkuzFUVxdd\nqeOhiYWgjpdtxnBqt5gN3iTgyuOTa0QoMOVeY584aZIE9QLRkSxhigcfblUnrYKPOl7ivhzJyB7D\nyj7byjhFItgIejgO3tuJFiG9gHTDpr+k0t3z0HT58EQrj7p0BwYeO488sHUabDJBgj2OssCMWMan\n1rhSe5rf3v8Nzo9dYkpdJkKB09xghhVCdoldMUJJD3Jx7hV2GKVq++kLlRIhNLqc5z127FHucowG\nXly0cUpt3tGf4DAPcLHIFuN0cOJ5OOEibuQZq++j+kz25AQVAjjp0MDL/8nfY9q3SsLeI0+UJ+0r\nTIgN7nAcNy0ASoSwEXhpcJE3iVCgi5MRdunhICPiZJ1JbnnGqaFz3L5L13TS6rnRoxWCSu7hh1eV\nIbIc4gFuWnRx0sZJmiQVLYBjskkLjfv2HO+J8wQoc5glfoV/i5MOb/MMeSKMss1x+w4FEaWPQsfe\n5L8wLqHaBpvSQdufgUqQMn/Cl/g2X+QdnubLw3/Ms8NvUSJI1J3lxeAPOMQSHZwscYgoeUIUCdDi\nFDfp9Zz8q8LfZSK8xjHPbUKiRIgiuqhzW5wk6Vnls9EMAAIbLw2OssAtTrLGFAvMscsIIYoYOFjY\nP8Hdd09jy4Kh6Tz5aISJyWUafY33u09Q1XTyRBkiS4Ughe0Inf9DxyopCN1COmQTVEo0H3XxDgw8\nZh55YKdJYjHBIZbQqVNHp4WLluxGc/T4Yue7HFNvUXQF8FNlu5Hiv8z8c/aHotQkHxuZWZrbXsbE\nFp84/3vccx7lLsf5jvV58ltx8rtx+ihMjy7hSO1yk1MIbCQWmOM+AFP2GmP1PbAFf+p7AVMVDyeR\nTLHKND5qnOE6K4Uj3EmfpbumsTJzCN90mYai45B7eKUGIUqc4DZPWleZba6xJk8S1Cqcyd5hRx3h\n/eg5Mowj8wRNPBRElKrsJ6wVOSIvEiNHHZ0CUTLEqaMTIY+HJgYqOnWmWWVGrLCwcJz7y/PMf+wW\nbZeHy7VnORu6TsepodBnlhWOlRcY38zgTBlYtsTmapHgukE97KUcCTLa3cNnFjFdKheky/ipUiLM\nBhM08aDRRadGmRAbpPBRY4INfNQQ2FTxkyZJWfNzJnqV7KUEd+1TdF908nPK7zPLClHyJLvrPFHv\n813PZ7Ckg28mlzmPjEWYImVCAMiYjLGGP1HDc7HJzeJZ+n7l4L0iiixbnNfe46x8jQk2cNKhi8bR\niXsc/e8W2e6NIWz4pPEqxpjg7z/q4h0YeMw88sDeI4FGABuBhUQD70GrnkNh3n8bj9qkgc4+w/RR\n2CPBLfskvaJCx3JSbQcJGBW8ah0fVdy06BkaK7VD1DaD9JZcYMKwmsZIqbRxkSGOQZwQJn0Udhhj\niCJ1SeeSdoEAVXTq6NRQMbARmMhodAnbBVxWh74NDXTqtpeRzj5j5i5Rd45ZeZkJ1nHZbero7NpJ\n+sjo1IiRI43EvpFkq51i2zWOZUoYZSe2X0JxG3hpIAAbQRX/w3E7SFjYcBDgosWGNU3HcDFtr9LB\nTcf2sEWKJi5auNlup4i3CwTsJu52A9sWVC0fVdGnL8lIWEgPl861EQSoMsYOGl2cZg+X1cNSQBM9\nPDTIEaOJ94OQ/Y+BbSNwyF0C7hJ5OU6j5yVtJ6ij46GJkw4GKgU7SJ4IMiaeh+e+9sObsi7axMgx\nxjY6dRpeD4rWQdZ6oFr0UZCwGOvucLJ8BxHoY7gUTDxEyBMJ5rGfluiioHZMPrv/PbL+x6vdamDg\nb8IjD+x9EkxgU8FPhQCrTHOLE4y6d/my65u8xQU2RIoSIUbZJuCt8OT0Ja6+9wyZegIx12M2dY8J\n1zIL8lH2GcboqDTX/fQ2XQerPHSgMeGlgp8Umwcz+ziFzBQ5YjwQh9nRf4CKwQ1Oc5QFxtjhOd5g\nnntskuIdnual8I95IfQqyWNp8iLGqjTNbU7wmdKPeKH6Ju+MnUN29SlIEWp6lxv2CX5gf4ZkPM1x\ncZfP8n1yuKm1bJb2jhFJ7kHLpnAzgXHMgeFWeJEffxBkKgYVAhSIUkcnSp4IBXLEaBxyoU8UmXff\nJSIVmPUssiJmWGWarB3nX5f/Lm+J5/nKyd/jC5kfgg1Xpmc5NltnUqwTFTk6LpkSw+ySZI/Ew5uo\nVT7Wu8xMb51/6f06tgwptthm/OHPGD5qhCghYTHDCioGb3ER5/N1vFTwy1V2SVJ+2GJ4RztGUX8G\nWZjo1Blmj1/g33OF8/yYl0ixyTz3OM4dbnGSxf4cb3aexfLKpBydDzpmDpVX+cUbf8A/OvkbXE2e\nJkmaj/MqQcq8xsdZZhavaGEoKg3J86hLd2DgsfPIA9tPlS5OygRx0UGnzmluotBnoz/B/SvH2F0c\no7fnQPwcGHMOwqKA5RY4pQ7RQJo8Ud6qPIdWN2m0vdTqAXoZDWRwzHQZmkgzMblGsF/lVv4cZdlH\nudWgee1FRrw7fOrQn/Lx1ptEG0UuNt/FGJLoeBw08dBFw02Lj3GJcbGFKRQ2STFa2uN85xqVaICa\n38st1zxpR4IAFdy02BOzRESB/8b+35gSa2h0aOEhSZpE7QE/WPoitUyISDDHU/NvktYS7DUSFD0R\nWsL9MJqjjLLDBOsc5R5OunTR2GWEUXWHcXmLFWmGVTEFCJ6132KILBvGJP1vy+QcQ1z91XNkA8N4\nadCRFlmTYjTwotKjTJBNM8WV1nnqqo7H0eSsdI2rjrPckeeZl+5yp3ucb1W+xv71EQ5HF3nh3Gvs\nkaCBl1mWGSLLPsOUCdLM+vFZNVKJTQxJRcbkApe5zgZRMckyM3ho4qeGTgMHPVqGhyu5p7lfOEmw\nWaKYCLMnJei2dPR4GdXRp4GXJh52/EnePH6BWsDDMBmOcY8GOi08TLJOHZ2GonM1dJo9NQ5cfdTl\nOzDwWHn0fdhkSPAAH3UENjp1DvOAAhFu2aeotgM0dnW611zkzvToDyl03Rqyv8+wP03KtcJKc5b1\n0hj2ukZc2yeq5fB7q5i6hKZ3GD+yxphnC2e3y5u1MTJyDHpXKFYPERIlplkhYe0RMwuEjBJbVpKs\nOcGD3hGy8hA+ucYF+TJR8niMFs2Gl6FyEb3fYCScpugKkHeF6eEgUK2i15o4/X0kVxW32sRFmwYe\n9kjQo4hqA30wuiqq3GN8ZB2jJSFbB1//KwTIMHwwy9NeYtw+WKGugp+iFWGjOUVUzTPhXCNNkjo6\nDnoE7ArDYp+AXaaci2E5BQYqi+5DSLZJyc6TtmMYQgUOFr3atFJcNc7hk+rMc4+EvYdhOmj3XQwr\n+6zbk9T6OmZTYcS1x4X2Ff6l/Ktsy2Pocp1KP8CKNUNd0mlsBnCYfZzxLj3JQR+FOBkcGLT7LvLN\nOJpmkHMM8X77SbaUFN22k/VLM9h9CV+iiqvfQlYsEuzjUFq4lDYmCh2cZNxDXHOfQqPDFAWi5Knj\nxUZmlB06ONmWx7jrmWOrlXrUpTsw8Nh55IE9zgb/OQvU8LHDKHmiHOcOy8zwlnqR4MU8hl9h15qg\nUoxSXQiylZrkUHiRKfcKKXmTghVjp5qCu3D+qXe4cPZtcnaMDhpC2PiUGj6qdIQLVTKwkEDIMGPR\n8SgURIQV7wTrnjHSsRFycpS7neO8UvwkirPLefe7/APXbzFq7+Bv1NGWLByOPpWgjyGRYZ0J1phi\nknViq0VO3Vng+NkHfHfsM3zD/8s8x+sIbJY5xB0UzMAFOGbjjDRQ9A51ycuc5z5hioRFkTJB3LQ4\nwiLPmO8wbm/xW+J/YluM0e65Se+kOOq/SySZY5QdygTZI8EN6TRdHMzIq+SfShJRCjwt3qVImFV7\nmmXrEKdsiIgCW4wzRJa4yKIpXY4rd/gZ8V2et18nXKtiNJwsDk+T0Pb4xeHf4e7PHOdk8yaH8huU\nPSFuuk+y5pwi04xT6/swVAVzUcK2BP0nFdq4qRDEwMEafgqdZyluDNOI+dgLJfjdvV/B7y/jbVSx\nf1sQv5DmxM9fY1TeQWBTtoPsyiPo1HHSwUb6oEae4l0iFNhnmDAFQpRw0yJBmhZuFjnCzezZR126\nAwOPnUce2BYy2+YYr9Q/xbCa5inP2+SJ4KTLV8U3aTi8XB17kj98LomVU/C3m4z611GcPRqyly4a\nz7te4+TYTa6/8AQ7nlGKm1+itePC9Cto8TYT0VUMSSHfj6JGWhyW7tFxbFJsNFEtC1e4xYaYoCZ8\n7IthVq4cJm2M4DjRYUZdwqO0+Nf2r/JV61s8a76N07Iw3QIjyMFlF3qYhsw75YtUfRHSTyRxDPUo\nOoOc4DbTrOGhSZI9CljEXVeYG75PxelDUk3CFDgtbhInQxMPJYJIWBznDl1J4x2eJi+iOOjisVuk\njQmkvo2LNiYye9URbpdPMzSUw+VqocgGs0cXaVtOftj8NM9pr/MFvkPU2OUpM8GeFOcOx3mGtznN\nTWbMDcqWn4bwUiCCnxYeWsiYREUejS5v2Rd5RXueukPHVgWezTbrVw/TmPKgjnaJxbMUiirRbp4X\nrFe5yzHu2McxTJWa9S6a2kGNtgl7c4woO4SjZcKOAi65TfqrKUrJEGv9KYblfU5V7jCe2eHS2AXW\n9QmucZb93jCNjo7Ulmj7PcScB+vGNDb8BDsVPjb9Og61i0yfDVL4Q6VHXboDA4+dRx7YRcLct4+w\nYMzjEQ38VEkzh58qT/MONXx0QxrvnzyLZ6GHrtbx6UXyUpQWbmwESS1NMpamGfOwVDjK2s4sjZwH\nLEEgUCZk56nbHvYZJubPEpXyZNUs7W4HS1bootHASwcXDrtHvhKjbumkPOvMysv0LYXv9z/LDCvM\nKKv4/G3MAJS9fjqSEx81InaRy62LtAMuiBof9BsfzHrsEaLIEBlihDmq3kNX6zzgME08RMkxyjbD\ndoau6aIsBQlKZU5yiy1pnCwxIuRx0ENIsO0pYpoymWICyWdQ6ofptTVMU8FExhQyvkQZ2fBQbfuJ\n2AUOiwdkyEN2hLQYpRHXQYYhspyTbvGueJJVe4Ku6aIhe+g5NTqSRt3WyfaH2CmNUVAjbIXH8Ika\ncs2mvBDBF62gSxVcaptYJMNkd42j0gJ3OcaGNUHZCCI17+HLHaxZLu3bOOUe/tFN3FqTnuJEvGjT\nUVxUTT8CG6fRQW80SPU32bfjvGs9hWIamKaDVs/PvplAMQ20To+16jBlI8wZ+wptnOxbCba7E0Sk\nwqMu3YGBx84jD+wH9mHc8gznQ5eIiCI3OI2DHioGTTwHvchqgS8G/oT5cwuURJhvS5+ni4aXBmGK\nXOcMdXSmWEMLdtE9ZRYTR7A1QdiTYVJZQ8JiQtlAE11sBFkALxS1MPc5yjSrHOU+k9I61WcDbDHO\nCfkWHZxFeeB4AAAgAElEQVTsW3E6XY072nEivgKj7l1k2aAjuaiIAENkccst3gw+S0TNMMEG+wyz\nziTXOEsVP0dZYITdh/0ffZp4PthkYJJ1ioTBlLjQvIbllMlrQUIUkTFx02KORXYYYcMxweT4Mjtr\nKf7oxtdIntkkFdjgk/p3cSkt6uh00NgkxYyywn/r/V9xiB4POMT3tLPU3vs1rKrM+a+9RdBTZkce\n4YF+iG0ximqaTNR3MVSZBd8kGWmIS9bHeKX9EtmNEUy3RNel4tS6dGNupKct5ubvogx1eGAd5sKX\n3+M079NUD5aYMiyVblfD2A5Qf3kSS5NYWjlGzkwy/+s32UmOkraT1CwfETXHrGeJYWmfe9Ej/F7g\nqzzneAOn2aHSC/Bpxw+Jaxmyepyj8j1ONO5yaneBK8NnKAV8nFGv8W2+wI96nyS9n2K7Mv2oS3dg\n4LHz6M+wK1HuPziONt6j43ayQQqFPueq1zlXvMV2PMWeO0FFDpJ1DQEwyzJxMnQKbt69e5HsVAQ5\naeCRmwzJGTS5x4p9hOPSTU6r10iTRGCj0CfNyEGvsdThZ6N/QE9WqeFlgaMf9BXL7j5Hjft8ufod\nvuX8CjXFzzntGhd2r3C6cRdfuIrts8m7w9yT5rkn5kmTpCr8rPWmMEyVjuZEKDZuqUkVPxtMUMWP\nmyvMskwXjTRJNkjxPT5HtRNgzNwhpFXIKVH2iLPFOA56aA8XwXLSRe5ZFLaHCJslzk2+T9iVxSs3\n0OTuw3W3mw83PFgHAa+L57nAZcIUiUptzLkalU4QyyGzwgwPxGHawomLNsNSltuuozjlNg3ZQ44o\npiSR1HZJju0jVAtTFazXZmk1dIRqE1DLsGfTeCfIg5l5PGMdUr5NDFToCsw9Daeng3c8R/HqEL22\nRiPqpSr7cNEipWwyF1mi/CDE6mtH6Jz1kRpZ50nve5wwbzHDMm61xbS0SltykZeirDEJmiAaKSK8\nJqpmsMsIEQo8o1wiGKyyZMz9eft2DQz8/9ojD+xe10EuP8y6Zxo9XEXymDjokW0Ns5tNcV8/yj11\n7qB1zAoTE1mSjjSp9habuSmuPriAI9hiKJGmbnuZEC10u4VmGszaK5zjfRY4ioUgaJfZtFLooo5b\nglOBa3TRuM0JrnOGIuEP9k2csLY51FnBUiX6qswpx02ONJdIFvYRmo3ptGm6XGh0We7PcqV9gXbN\nRd4aYkuZJCQVGJG3GWYPB12KD2cQxo1LzFQydNsaO8FR1pxTvGq/gNw36doay+4pGsJLsR+h0dBR\nnT3cziY+atTRqfYD7OcTnIpc59mp1z7Y6qtiBwg1yqhtA8uQCYZKLLtm+H1+jpPcJMUWIbp45lbY\nI0EdL/vEaeClj8IIu/ilKmvOcUasXbxmE1uSiIgiLu02nTENBRPJtKgaEWxbweet4VNqdAsO9KUm\nu/oYWqTLCfs6tgC/VaXfdeMIFonPrdNddNIKeCBlU1JCjJl1UvImU8FVFtrH2bw/xfKEzlAswzz3\nCNtFoiKPRzlYW2WVaero9AliOwShaBGAPjI1dIJUOKNcxwxKtEzPILAHfuo88sAOhMtED2+xcvcw\n49UNzh27zDSrrDtn+GX/N6h3NDplFVOSkZsS444tnoq/yevpT7BSOUznhItkfItpeZUJsYEDg7pD\nJxTL0JUOZkZ6aCJhotoGzZaHjuLETYRLzDDKDnPcZ5EjaHQYZZsYOXAIfhx+jqqkE5LK6NS5PzPL\n5sQYqtpDVQw8UoNnxCWWqnO8mvksVkbC9oI23CIlbxKRcij0mWaNbcZ4zzrP56pOwjfqWMtNxl/a\nITqZw7QVnne9wRlxHVPIAIzXtnjqxjVuThzn9tRRLCQecJirjrO0Ug5aroPe9SnWiJBHNfrEFio4\nV3vYeeh/DpxTbfalOEn2aOFmgxQfY40Um1znDBIWQcp00CgRQsXgSa4y31/EZ9SxXDIZMUSOGG/z\nDB4aHJEXORK9gzvY5ph5j3UtRdUb4MVf+wG3nKfoaRJ3pONo9DjluUnv8AKZe+uMDCXo/qLzYJcf\nyct+N4m31WBC30CnzvwTd/HMNZB1E9Vp8DbPsCAfRcX44AOlSJgSIZ7iHYbIsc4ECuYHi15V8VN+\nOPkqGBhcwx746fPIA3tevcvRACyOzVMxg9zeOUMj6mM7nWLt3Ul8zxaRAgaGrdJO62SUYZbjs2y4\nxil4Q1gdCSQId0q8lH2DrcAI+UCECXWdAGXqPZ3dXIq+W8Llb1Dv+jC7Co1OjLSZpCc72LVHyPVi\nyIR5RX2JTslDjBznwu/R7ruomT6aqhuHs4dCHzcNbtdOU+4G+WLwj4k6c1wIv03CsceelmDXn2BE\n2WVYpAlQRcYkQoGL4k2E06QyrBM2K4x406TEJn6qnM7d5gnzOvvxGAU5Qs4Zwxh1kvYP08PBHAss\ntQ5T6sQI6GX8WgULiQJhOjhRZQN/vEGgXEXLGRh1CbkJBT3KNqM46aJTZ6uVQuv1+Fn7uxhuibJ2\nsB7IPsO0cLPCDCP2Hglrn6idY4MUixzBRKbQj/BO7xly/SGmlDV8noP5qS6lTdBZpmerWEjMcZ+x\n2i6q1WfTN8pbcgNDUWn7NbqmA9nsM6ZsMaFuMEQWAwcpbYuj0gP+VPs4hiwzSg5TyLRwH/RXM0aJ\nEAp9ohSYZJ0wBYpEqKPTxEOYInH20alTVoL84FEX78DAY+aRB/YRFnnWUWJoJsul7HO8l3mGTsBB\nPe9H3AD3iTZS3MDqKRh1m7qqs9w9TF3xomlt3EYFj2jgqnWI3SiyNDtL3j2ER7SQZZNa38duaYyW\n7cTjrdGq6QcbCxgeuqZGSQ5RR6fdd9HAw8vKp5BrEqe5wcfDP8JtthC2RUPRUYSJkzYBKmTaw9xt\nnmDefwe/p8zTnjdIxTdZZ5IHHGaWJca7W0Q7RZoeF16lziGxxLtei+3pBFZCQXN3GCJHXGQ4VFhl\nsrvNXixOXdZZc03x5vRFZNtkxNhF7luIpozUlZiLLTLrWMZHjRJhdhijJzuIjedw2D3MtoYuN+h3\nHXR0J2lGCFMkxBbrvUlcrR7/o/0PqaoeHmjTdHDSR3m4IfEUI2KPqFRACDB6Ko2uTsqxTc6Kcr97\nhGbPR0vLYLhVbFPCQZeIXCDWz2HbEjE5R6q9jdI3KepBun0nnU4UG0G/o+CwDI75bzOhbOC2W6R7\nI4z29jlh3uW7js/gNpqc6t2m5AiyKycpSBEsJLpoD8+m64xYu8yZdVbFNJtSioIUPtiNxq4xKV1i\ngblHXboDA4+dv4ENDHoEqDLCLnOhewjd4rh2m6WhOVbPHKaQHULkbcyqjBWWMcMKuUwSc00mIdI8\nd/oVgp4SzWUv//UP/zGZRpyGz42k9TjsvU/clUGdbuJQLPo9BXtJJhwqorvTxFUfCfYIiyJ3XcdY\nY4p9EefZ5EF/MgJecLxGjhhZMcT1hx0sfqqkQqtogRY99WAKtkaXH/MSk6zzdb5BlDzx3QLhB1VK\nT+jkomHyxGjh5r4yzWXvBWJSlip+pljD56pSU3zcFicwkdDMLiutGRqGzq3Oad4uv0An4GA0ts4v\nqf+OGZaxkVhhhk1SbNtjvNh7hdXIJD947rM853yDIUeGv8O/YIMJioQxUPHrFUy3zGXOUJX9rDHJ\nPeaZ4z4nuM0+w9xVj7KiTDMp1jixd4/PbL6KOtanGvawqw9x3z6KEDYBu8K3G1+gi0bAX+V26Qzr\nxhSv+58johdxKl2akpvVxg38mQkuJN7kXu8khWaMY9579BWZO8YJ7uydoeH0E4wWmJJXmchs88Tm\nTXrjCq+Enuc7zs/zNb6JwGaVKVy0ifRKREpVwo464640d91HeLn3SbbMMZ51XmJfGga+/ajLd2Dg\nsfLIA3u5P8MsXmwEc2KRE9I9TAHSkM3Hn/wRixwhn49h7qoQA5e3SdiTIzxcJCnvENbzhOQShtPB\ng7HDyFEDv6eEonSxFImq5MPlbhEjh241WBiRMGsKjXUf3aoTZ6DDEFmWpVmGyDLLEse0e0TJ0MHJ\n4fwKSTPDj+IfpyoFMJHJEKetOrGBCgGG2SfBHvsM08TNMrMYOHB5e3gSLbJajDZOgpTx0sQhulRl\nnTwRNLo8w9vE+xkUwyRGFgc9olKehuplWxqjJgI4rR5Br4HuqHLHPoawLabEGkFK+KgihE1JDhEy\nKxyrLSA5LdqKExcdmnipcdDj/KT8Hh3ZyRKzrFQPsdadJuuKMOtcZkTdJUiJ2+Ik98URnLQZ8+zi\njdW45T1J3hGirwgCVPDSIGiXSah75MQQaZIEnGVS6jpC6RNwlHHJbbzUqDqyDHs3kBUTe1dCSZsM\nhbLktQhlI0guPcRl71P0vQLVZRB2lSlFAhRdQTalFGkzSVYawiVamCjc5RhN2YvLZeBUOlT6Qa7u\nnsPbbvKMehn3SBsh2Y+6dAf+yjRA52ADW+/DxwA9oAlkgTrQ/UiO7ifZXxjYQohR4N8BMcAGftu2\n7X8ihAgB3wLGgU3g523b/jPbgGwaE6Q7GlFHjqPmPY70lnldeYbx0AYp/wb/xv4Vah4vVlHG8sk4\n3U2GXTtMTawSkCvUZJ0AZbRwB/mFPsFEkVHfBn6lQkc4qds6DmGQYI+EtsfekWG2L0/SuR8nmxkm\n5sgRtCpUnX6CSolP8iNahpseGg7VIFwo4+z1sGMS/m4N0bcxVYWO6qIu61i2RFTkGWcLE5lrnOH7\nfJYT3KE25KMx5D64CWZXOGHdxmt3CVEmQJUHHCbIwQSZsFnE6Guk7E28RgPZMok5cyyJQ2SI4wvV\naOMkyxDftr/Ivhjmy/wRMftgenpWDFFUwoy303x1+495oE6Rl4M0tYN+7woBAC7Y72Ki8H3xWdLV\nMbK1JN2IQFUMfHINZ68DMhTVMDV85KIRRNTk9/kSewwToMIx7h3siiP6HHUv4KVBkTBH/PdwPFxU\nKtCt4O61wAm4V0hFg2QZol+U0bY7KL0+vb6DRlvHrgmWrUPsNhPMOe7hDjRx+Zts2iluWqdomy7W\nxCRBUcFDk9uc4Kr6BJ2giwAVulUXtzNn+R/a/wuf9/wHrgyfpqwGPlThf9i6/uklQHGAw4Xq7+HW\nWvioIbVsaNnYLehZPgx8QBibGOB7+LsNBAUEeRTaqKKG5AbbLbA80sGly66bXs0B/xd77x0kSXbf\nd37Slvemq6t9T/d09/T0eLcza2YXu1gssCQIQ1L0lHgnhE6UTjSSeBdxcXehON5RlBgnXvAoxRFB\nIkRSB4AwJAAu1mB31szOjrc97W21q+7y3qS5P6pzunaJICEu5rgL8BeR0Vkv33uZlf3qm9/8vt/v\n9+pV0Bq0/jV/b5Z9Lwy7CfyKaZq3BEFwA9cFQXgZ+IfAy6Zp/ltBEP418Bu727vsI5VX+bmZPNqQ\ngeEQWZB6uScdIF5Lcr74Fl9RPosQ0AmeT1LUPJRyLqZnDrHiGcYRLePszyNJOg53Dc/BNJl8EGND\n5kT8EmnRTcLoxSbXWRH62dTjbG33Ut3xYFRlppcmSOwM4MqXUE+WOd5xDZ+Z55sbn8JJhV/v/d9Z\n748zY45QkLz8+LWvcmL9Jv7+HNd7D/NG+Bxvao+hiE06pCQxtvCTo4Jrd+FfO+XdDH37Gkt0VtOU\n9E5y+OlmjV5WaaJwj4N4I1XQBaakA5xduUxneZvF/fuIqK28fQBrdGMg4RLKZIQQd8zDfKb2NfrF\nBKu2XhqolF1OhE6TvtU1Arks2XHP7lJlflJEwVih31zmrPw2z7lewZBlbvkPcES+hVzW+Z25X2U+\nMoCzp5XDY5so8wxRxdHyA8dgmX62ieCijIxOkAwBsgyySIowL/MMhdkg/kqe00cv0mQZOzVGmUY/\nIbM13slMYD+TqUPMbI9jHtTp9CTocG0RklPMGCNc1M5RbHiQRJ199gWcYpUOkowyzR1a8lUNOyYC\nIVeK0yNvMWXsY0X6J6yrnXSy+X7H/vsa1z+8JkNoCHHsNN0/Pce5g2/yE7yI540q8htN6m/A/YpM\nwlABJwYKxi7MiOi7q6eWidNgUNVwnQbtSZXMRzz8OT/GpcmjLP2XEYz778DWHKD9nX7bD5r9jYBt\nmuYWsLW7XxIEYQroAn4UeGK32heAC3yXgd3FBj1ajnUzzC3xMFfFk+TxERVTNFWJbjlBn7JMUXVT\nWXBS33HRqLioBhx0OsrsF2aYqE7i1YvseCLsmB1QF7EJdWqbTjI7EWz+OkJQwO0uINmaBPt3MAZT\nlDWVQrkTxVXnlHQJlQY3OUraEaBuqtzhEDOuEdKEiLPOoG+BwfoCLlsVvSy2VhH3aKS1MK8b5znt\neIducZ1HuISMRm86wb7UCo1uiU01RlV2sST4UDlALyvYaOBsVuktbSDZNNaUbq5ygph9G7+Qwyvk\n8ZPFaVRwNWtEpDQBKcvJ+g08lSKxehLFrVGxO6gZDjpSKaKZNELaxDVVRfZrqJ0Net1rNFWVMln8\neoFIKcOR9F2iagbRrRNUtlDEBmtSDyveXjK2AB6yhEnRRGGdLrpJIAAV08Fsc4SQkOaMcgkDCTcl\nYmyxTheLDJLFj9tdpkPZwifmyDd93K1O0G1fQwpq2OtVrm2eZik7RL4WwOaqUNtxUlr3Eu5PkV4I\nce/CIbSIgmeoAAdhVt5PRXLSLy3veoRkmOAuJiJF2UPR60ZAx0GZKNvYqb2vgf9+x/UPh8ngcsLR\nPg70LhLeWGVwQadSWqOY3SAwtc5Y9R5RlvHM15FSOlW99WriBARaIojFk8VWj4hAEHAb4MxCc0Gm\n7nUywBVqy2U6s/cJ1afw9W6iPCvw7XsO1oUJuLUClQo/zCD+X6VhC4LQDxwFLgMdpmkmdw8lgY7v\n1kZXJbJ+Pwm5l9d5gr/gkzzBBeo2hRnbIDFjk0EWuW+OoSZ1GmmTpgOUSJX+8CKfNf+Ms8lrKHWN\n5qBMyh6ioPjYEmPo6yrGpI1mj4w6vEXEt4MWklH9DaoTmxQ92+RUH8r+CsPeGVQavCo8hSdaRGg2\n+H8LP0XSESWi7vApvoYwppEcDhErp+ndWKMrs8Hx4Wv8rvbP+Ub9R4mrGwyJc+xnFoUGfTvr9Nzb\n4hu+Z5mMjWHIIstSBdEcQtUb1CQ7A/VVHstcIRdxsmjvYcYYYTC2SETYwk8WB1V8ZpHu+jZRdZt9\nzDNemMOVrtCoKKwMxtkUY2zrHUQ303Rs7KBnRcxlATmgE1ovMNo7i1stkmMLn1HAma/Rf38duU9H\n8wn0C8usCXG2nWGCQ0mgQcRM0Wsk2BYimKLAMeMmIjoLwhC3akfpYY0nzQssyoMoYpMxprjePM6C\nOURAzXJk4DZDzOGjQE4Lc7/yCCPqDFFpG6WmcXn6MfIEEHwmxrZKbjtMNe8hEEpTfdtJ7TdccFIk\n96Mq+V4P644uEvYelqQBRFNnnEk+LXyVOfZzneNsE2HUnOYY1zEEiSUG/vaj/vswrn9wTUaUJWze\nBraGieJRaXxklMeeXGb/5Sk+8a3bpN9ospqF4m0wgDlA3W1dpQXUNkCiBdTvFTY0YBNYa4J0E/Sb\nGvU/KuDiBU7yAiZwEOg7JOP6FQfLf/I8JWEEZX4DTTSpqwL1goqh6fywgbdgmt+bRrT72vg68G9M\n0/y6IAhZ0zQDbcczpmkG39PG7DzeSbDLhSQ1kQ8Mkztwhl5WCZPGZla5XjlJSowgOHQ85RL1TQfr\nM70IXQYHo3f5RfcXCF7JkiqHeOXp86wsD1DNuIgc20RDRq/JhNQMblsBRW2Qx89GvpvEa2scfdSO\n7GiQtQXwiTlUsYGBSBUH2fUgG5d7kI838fVl6GeZbtaI7C4R1jG/Q2A7hxaTWAgOsOgdQJNFRKF1\nv8q4GKgtM169z4x7GEGEmJbk1at2Dh73Ei8kqfoU0mqQ1WY/TVkGyUQxmyhCE2l3STA7NRxmFbtR\npyy4MJsih1YncdrLNP0SVEQm7Qe47D1JqJamv7nCsD6LUZNQS018uTKbg2GWQn28dtHBc4/kiGvr\nFKp+QlIaRWmypnQiiCY6Mgl6aKDi0spM5Kcoq062XFEGyqtUZAcJWxe+WpFQKUOomCYRi5N0RcgR\noGd1A4depdDnZknso4gXPznuvFlBfeQ4PdIqHqFEuezi0sxjFEQ/ir9O3L+GLDRp6AqmB0oXfeT+\nNASSCUdB+DGDEc80XluWqugg1QzhNYucVK6SFKIU8OKgTuJukfL0GiEhjS6ITH91DtM0hff1A/hb\njmuIs6fNRna3/78sAfQ8pL5juDo8DH0ywdjiPF1X1ll2ubE5C6QrW4wUTIxyC6hNWuAssgfO1bae\nBEBvq2eZTKu9xh5jNGlpVNpuGzugukDuFrme9RIXOujNl9h8JM7s0D7m/ryP8naR3Zekh2gP8163\n287uZtn0dx3b3xPDFgRBAb4C/GfTNL++W5wUBCFmmuaWIAidwPZ3axv/1c8w+tOH6GWVDEHW6GEf\nLjAFNhpx8reeoGFzET+yyjCzlBb9bL7yDMponcFeJz/n+wOcUYnZYpjkZw6w8dLzbC/2cPBTr+MO\nF5HRCJOii3VCpFklzvX0cVLlCPFfCiE0TBobfRiKie6q4wiUCasl4qsKnZ4IpfN2hFEDlezuV9jB\nzQ4npt7i8MZdGlGV1U6Z5TAUcSIaJqYhMC/t4+BmnWeW7rMsNrEF63R150jLA5z/TIQD6QyLoT4u\nSWe4WPgUPZ4Vxuz3OcE1qjhoNG04C1WaDg9lp4MiXlKEEWsG5xbzxL1riB0ajR0nZuMIl+SfxRFe\nps9+mUcp462V8CeLhOYh1a9xPerhntlH98/Y8JEnyRi1Zgq7kaNTVRAEkGlykFYYvL1pkk4/TsVm\nZ9BT5anUKmUV7ntcnJqZpSOXwpBEbu+3MxWKM8t+np/dIKKXubu/l29KT7BMP13Ms9DYwvHpT9Dv\nvMmQOI+9XMc752dZHCTn8OEslOkNL9PVlyBBD7PxMXL5cdg0UE7Xcf1UmYC7l077Og6pyq3GEapZ\nB9nEafJKBNmvcaDrGl0/4Uc3JcbkKdab3Uzb/vv/ml/E93Vcwxlg4n2d//3Z9/PcAXwxgdEn1/BO\n2gnkTIZ7dI7lCwyyzvQ2FPXW68cBWqBhowXUFqIotIC2sPtX3C2zzALpFklp1Wns1pF26xeBGi3Q\nNgChDMqMQZUcHxFyDCmwHHRzu8dgn00heyhM4YCH2QtdFLYMIPt9vCft9nfxf/5fv2vp9+IlIgCf\nB+6bpvl/th36C+AXgN/a/fv179Ic3RBbaxjqMg6hRlTcxkeeGWOEl2ofpXnbhd+TJXQkhZ88esCG\ncNzA05/FHcxSMyUqn/JSE2SGmeOGd4fNcBxRMpDRMBBZZBAXZXpIYCLgC2UJxne4an+W9GIHhTdC\nLVGtS0c80OBJ/6uc6L/K/s99g1vCERbZRxEPtzmMhM4wcwyOLdI3tkgeHxtmjKLpYUiYJ65vYNdq\nBMUMkfkM7q81GJUXqZ+UyQ+42RDiXHMeo+5UuKif453sWe6uHqOvb4W4fQM3JcKk8NZL9K9tsNTR\nzT3nGEsMsk4X2GHuwACKWSVoZEh0dnJ/ZYzJqcP0HF1FtBtkzCDd2W1Ceh6GIVjJM5BO0GOKJI1H\nuWye4YZ4jLLgIiymOM8F0rsRk4/xJnE2EBST34t+DgGT8+YFTkm3sAtVQvU06r0mAOYpsMt1wloa\n5Fnk4QYJOrkonGPaGKWAl7i4Qa4WYCM7istWJC5usN81y88f+TyTjPN26jHeeuFJ+vat8ljfG0yb\nY5RHvMz94jjCIjh6q4TCW8xWhqhWbTzrfpGE2sP97EFe+NaPYjgkOvev0xNZ5qT9KjFzi1Whl6ni\n+wuceb/j+gfCJBHBLqI2OujbZ/Dj//NNBn//Evb/MEPyf4I0YGUdF3Y3C1yhBartpu+W6bufLWc+\nkz0Gbu1bQC/RAiGFFoBb9Zu7+/bd42UTbjRA/8oMfV+Z4QxQ/ewBFj/3KH/6j44wlzZpqEXMmg76\nD65nyffCsM8BPwvcEQTh5m7Z/wD8H8CXBEH4JXbdn75b46e2L3CinmB4eYmUO8hk1wgpIuQNP4Jg\n8NRHXuKo7QajTPE2Z1lwD+Hbt0O/c4GBygqezRpzkUE2fZ3E2aDn8BJb+yOo7gZHuUkPCS7wBCaQ\nIUiSDkwgoGXYmLZTyXlgP7ACbIsYPpU7qeOsugfwBHKcdV/krO1tUoRbzJMaNey7y365KePkrdLj\nfKf+DN3+ZR6XXuekeJVtIYK7u0btaTsvdTzJnc6DbMgxSsKraMi8wtM8NnWJx+uXuDMwjstdoonC\nZU7TySYBe477/eM4bSW85ImzTi+rALzC0ywJAzwiXsIu1NgfneIp54uMe++1coNodvSXJbgL1GH7\nJ0Jox2C/MMvzq9s0ayqpHj85m4+mpOAVCpRwkybEBnGcVOhgi33CPKrQIGJuk/W6iefKjK4s4pYq\naAGBRlCk82qSdVs3Lzz2HF31JF6zgGkXKSYDVJpu/F15Qo4dxsNv8/PyHxEgi4iBkwoRUkRcSdSz\nNW56D5NtuMjUQ2xvxhFXDEJHkwghg63pXpp3FKK+23zyua+zKcSYiw0jfaKKeceOVNBxmyWG15eI\nlre5MnCa7GzofQz79z+uP/wmIh+NYP+1g/zkF/6CM1cvUP7lbXaWMthogWc7kzZp6dQO9vRogxbw\nyuyBsNK2X2dvslFsq2dJJJZkYqnQFhhZDFtnj3Hru5uw2z4DNL+RwHv3JX51+iaXn36cL/78xyn/\n+0ma19Lf53v1wbHvxUvkLfYequ+1p/+m9gExS0DIIkgmqtjAbZa4UT1FyogQUVJ09a+yT5pnlGmq\nZRc6CjW/jVNc5mj5Jo5Mg7rHzpavgyJeGhEFH1nyeFnTu1H1Bt3KOh1GkqCRZUkeoCi4qWHHkESG\nfHMciN3nsnGajeUQ5jcqmI81MXwSdUElKGQYYAkvBWy7jvx5fIgYVHGwQ5SMECAtBEkSQhZbubwN\nRB4dtDkAACAASURBVDYjHVxXj7AdDrFlj3KXCQThHut0kTP9dG1sMqZP0XFkjZzkJ2/6yJl+TEFg\nW46w5YsxkZqkb3sDPSYTMjI4GnVycoigkMcuNLGrNUalaZxqjVh2i5rNxqqrF6e7QV2007eRQBcE\nTKeJLOjExXX8RgExp1NyuSmrTpqmyo4aZEXpJUW4lcsalRFhFg0JSdBBMVDkOh65iBw0MEQBYdHE\nM1NGCersmBESdBMQslQFB9WUk2rVRT1mQ1EadNkTnNCusyZ1MyPuJ0SaKg48apGjQ9dY0Ie4WTqJ\nW8xjuECJ1RB7m7icZULbWTS7TMCWoYadhqmiuBt0jq6jNEz89RwFyUtKDKFrMtPJcezN9xd08X7H\n9YfXvEAXZ0evEhvdJFdtcLjxDgPpa8y/0gJF684qtBiupVPbdj9r7DFgabfcAmbn7r6lUettn61+\nrLL2coM99t7Oxi2z2L0F9A3AnC9iny8yxDKNpkqiFsM1OsNaycOl6dPAOi2R5gfHHnqk40Y0xpLa\nz42ho6g0QBO4nj5NRbUz3nGLJgo7RMibPn5k5wUmmKLmVPmY8CKPmJdRmk1kQ2ObDv6EnyFAFh95\nVujjRv0Y4UaK/9H9m5zT3sbXLFJ0utmUOlmXu1FHNZ7T/pzfqP8WvxT5A7aWT2H8doLhI0nGBrbo\nZINBFnBRAkyWGSBDEBdlDEQaqKzQR9C9wxn3m1zmDHPsR0bnGDeY8+zjdc9jPMPLHOc620S5TB8N\nDnOY2yjFJjajTtRM4qWAbGpEmjtck09wRzpEA5XgbJ7h9WV4xiRcz9KdTnLEcx8k0CSJLX+QSHGa\n8+vvYKYF3o6c5oWJZ1n49D5OjN6k98/X8AXyFHCyTpzN3hL2Qg3PYo1ApUTAUcLUBCoBJ/igm7Xd\nNRQFRphhmyh504tXL+L0lqh5JBwOkCcNHBd0aII9UCXGJlP2YQRMcvho5lVqRRtrejd1M4FiaDhq\nDRbVQV5Rn6FbSCCho0oNftL/X3gt8wxfyv40Q503qY0pzA3vp9hwEpcSPD3yHUqjbgxEvsanmDP2\no4pNht1zRM8m0ZCZYoxXup7E5mxw5fpZnux7mWsPe/D+oJkgINCFYH6Cf/rcVznn+hKv/DJoldar\nRDvYQotRK237TloMu0oLsC3W7GDPE8TJHlhbLn16W5nFqts3i3nDHmBb16Dsbu3s3AJ3C7yXAdcr\nF/mFSxc596twIfKTXJ7+OKbwLUyK8D06VnwY7KED9nWOs8ET9JDAQxFZ0vlE6OvMVMeYXD/EidAN\nFHuTr/IpvkArCZCTLGmCrLm6sA8vcstzmA3ifI7/RI+eIGsE+F3jn+OV8ozqM4y+OU8hGuDKyCnm\nxSEETEJmikrTYMOMc9N2GEMRcT8iUvjfRtia8CLgJ0mUPH4UmiwxQJQk/SwzwiwBsiTp4DWeJEkH\nIjonuUodG1vE+JbxCaqCg4agkqSDCK1oyDmy9LLKiDBD9bRC0gwhS3W8egHbZgP7FYPIRJqR4RlE\nDHq6E4heA5e9jDrVIDMT4C+f/ihKoMFQbZ6eKxt4F8s0Mgp3nhin2GvnE3yTi5xjpnuYN37sDIGu\nFFXsGIjYcxrO7QZCxoQtSLojXBh7DNHZxEBgmX7W6N71vKjioUiXsEZTVEgRZkOI4+yoETEzdDmT\noEKxw8uMMEoJN16KrUWONSgsBrg+c4ZydotAaYT79hEOLk2xL7NC/ZDEiruXHH5GjBnyrgBTwhgb\n6z04nSWOx66zI4Uppby8MPlJPrXvy4wH76JSRxJ0NogTJkWGEDoSj/IW89Uh5sz9SONVet1LD3vo\n/mCZIsMTpzmlp/ncW/+QwAtXuCdBtd4CY5W9iUELiNvBwQJHizW3s2ELeE32JhyttiJ7koeye54G\n72bM7X2x24+L1oNAZy/Q3WBv4rJdVmla11uH+18Fv36JP1D+Ef/x7Ge5IjwCb10B7QfD/e+hA/ZC\naohUcwJVrpMXWiu+nHe+htsokapGCZOigp13zDM4nBqdbDLIFhIGWdXPcriHWWGIbaI8zutE2KGq\nOagXHWiCjWrVxb36BEXTzT25tYaiSoNu1lDNe6hCg1vyUQwEPOEmhYPdOHzreCngI09zN4tdDj8H\nqlMcbE4xLM/TVCWycoAAWRyNGuF6hkP6be7YJphzDFPAS7nqxqjJOD1VZEVDQ0YiSYgU3axhdpuk\nCaAjEWUbZ7mGPGsS7M4ioqHQxN/MIVd0fNUijnSD5oYdrSJTiyhkZD8D2wls603qFZWK24bsaxBn\nh7sUqHkdZL1ebJRRq02CmRzOUhVDEtDdArmqn1nbEJdcp3ApJZxUdqMYo5RxPsiXrdJgRhghKuym\nPHU7kDs1Yuo2W+4OdpxBvBTYMaIU8dIpbhAJJdGiMlLCwDArSILGbeUwvcIabqNCCTsKTUKkKeDF\nqZaYEG9yMXMeLwUOSbdZo4dNqYusHsFLAS+t8PxuYQ0H1QcumA1smAhsZbvYqHTT07uMQy0/7KH7\nA2NqvwPnUR8xb5qT61d5hK8wP2uyZbxbqrA2S4uGFthaGnY7+/5umrRl7XKGVc9oq9PuMULb+S0A\nt1i35cMt0wJ6i6lb+nb7OYXdi92eBK+4ygk5wXGxn0L8OMnng5RvFmisvL9gqw+CPXTAzk6H0MtB\nUu4wZclNwfDyMfHbnHW9Rdi1jUcosmQeYc3s4V+Gf5sjwi1SQpgQaZqCwmXhFJt0kibEmzyOKjVI\nGp2ktzopVL1sq3FunjyCw1PGTg0XJY5znWFhnnPqn5Kgh1scAcCbKrBxxWSi5y5nY2/STYIkHWQJ\n0s0aH8+8zIn8LUS3wWogRsyzxT/l9wgX8gRTBcSaTj4aJO/w4RaLNHN2Cqs+To5eo+GXeYmPYrKJ\nnToBstipksXPPQ5yWLqDTdJwkcFHHok6VZwwZaJMaUTceTBMUKv8zM6XWPPFSLpDyB4NYiAbGsOO\nWXZoZQXsYBsbNfpYxkkFb7bM/oUcnoaTfJ8DZ7zClLSPy9IxNqUYaUJUcWAg0kOCCTZJ7eaaXmKA\nb4jP8xhv8Qwvs0wfTUWm4ZO47DzGhtLBc7zAV5qfYY0uBmyLjI/f5sDYXexGldUvXWHMU+eycIov\nD3+W/JCPsJjiI3yH41znRfFZHFQ5otwiPRAiKGQZ5z4+CvSHlxGDBnaxwn3GmGaUAZYIkmGNbnpI\nkMfPyzzD2sYAjlSTsdgMBdX7N4y8vzfL3E+FGPitAT723/wmQ6+9xVXdpE6LmSrsacjtICzTmvCr\nsTeRaEka1sSf2FbXKpN2+22yB9IWsFogawXZaLTkFasf64HRbu16tsLehCRtf63zW7p6yoDVhsnR\nN36X0POP8uLn/zWL/3KZ9B9u/C3u3gfLHjpgG2mZyht+phqH0WIK4j6de8EJIrYkG0YXc5tj2MQa\n/6Tj9znbuER/I0G9niDpCbFq6yJJB04q2KoNLm6dJxBIg27SXJTxxnIEe3fwerL4lDyd2hZPp1+j\nV13hddJkmWCyMc6t+hGedbzI/u55nD9SZaMrxnWOo1Knky32M4eIgehvsmzroq+xTjiZo7Tt4ds9\nz1JzOwjKOcb1SXocy/x3/N9s0cEV6SxTNh8Hm/fpaGwQUXe4yQwH8BNhh0g1S09lm85KGj0Im9Eo\niU90k+5spYeq4qDr0CYdvTtocQmPu4h3sIARESl7baCY5A660AYENCQuB0+RpIOmqfB6+QnCQop+\n1wrhXA5/uoSsGbgSNQq4WO3uI1zKMtJc4KXwR7FJdWJsUcVBGRcr9HKMG7uLIbsRMCji4SLnWKOL\ngJyj7rRhl6oEybBOF4PyIgeocY6LiKKJIJqoNLgmznNOKOKlwBHxJhI6efyY0EoFQMujY6PRxezc\nAbQ5lYWNUUIfT3K8+zrP1l/BqVXIyT78rjxeCjR3f4YyGiIm+5mhsu2jkPBTPW2nguthD90Pvdn8\ncPhzIgO+28R/5SuEbkxi6I13AaQFABbgtjNhpa3cqmPfbVtjD4wt2cMCbNhj6pbUYu7Waa/naGtr\nSSrtGvZ75Zl2KabWdp72sPd2QDf1BsGbkzz2L36HoQP7WPxXEW79J6jn/3b384NgD3+JMFeWgeYk\nm8U4FY8Te7NK01RQs02imynWzRpx3zrPCC+zr7qEo1angZ2K4SSPjxIePBSJGCnWG/3kdD+GKbRk\nBleaodAM3bReoQNmjlFtBp+U23UrspHRg6xU+ijWfXTaN5g4epM5hijXXPgyRXS/hGTTGWvMsmjr\nY92I0Z3Ywl2v4HTWWTN6WLL3IdoN1okRKabwbRVxB0ts2btZC/QRkLOMNaeJNlOs6W78hkBUT1HV\n3ThKDcZXZtgqh1mK9DA9vp+aaMcwJUTDpB5XycfdJKUoml/GYVbZ35ijLqrkZS+1uA0HNQxELppn\nSTR7kRom95vjDMiLZAgS0vP4KGMqDdS0hiSZ5Lp9xI0k/doKI+YsboqESLNJJ8v0PZCObDSo4aCO\njRz+BwsJ6KZEw7DhlsoUaK3WHpW2CZMiuDvxq9CksfuzLuFGxCBEmhApatiZ5CD3GSFAFht1KrqL\n3GaI5FqMZK6DZ5vfYp+2yNHqHZJChLqo0s0aIgYGIm5KFHYXTu5nhaIrSNoXxisVKTb+nmH/debt\ng+5jOoeHtxi8ewf/H196kMfD+mtJH+3yhAXYFqOV2ZtghD3Gq/JuZtxuUtumttVt0ALaZtsxcfdz\no60NvBvA21m61NbGAn4L2K2t3XPFuZpk6I9fJPgvzuA4OEHxqQjrN2TyK+8rQPbvzB7+ijMn7/HP\nPv4qXzJ/krscxBRETqhXefTm2/i+WaX4D/6EYsxJ2XSh5A226eCV7ifQxZZ+aSLgI4/PmSe+b517\n4kHu1w9gTIgEfBnGmOI0l6niYF3p4o3YIziFMknu0UeeMCkaho0vrv0Mh1y3+cTo15DQGEot8/zF\nl/m9U/+Y6x1ejm1PYgRVSnkPxlsi7AfnQIWD8iQaIgsM8U2eJ7MaxTan80uP/j6x4Dqd7lVSgp9m\n3sbI9iKF5qMktRjRcpYvOc9jmBI/tfgVoitp8j1+Ns52M6TOMWZO0dnYwtmsUxD8bLliXBDOk9Ii\n/Gbmf0FyCCz6B8kRQKGJjMYl8yzT5XHqaTf7OyaJupJs0okWkKliwwxMgWkiFgzsRo1qUMVjpvlV\n6d/RRCFDkBscQ6VOhiCzjJAizDZRBAwOc4dxJukgSXdji3hhhynfPup2G9Vd3/QaNu5zgBFm8FBg\njR4u4eFVfrGVQ5ssfazwBBeo0Eo9++N8mTGmMJC4IZ4hf9xL7GCCTzm+wlONC5hNkUv+U6za44TI\n7Ppw73CQu8wwQhkXXvKcfOQSom7gtpd4LfXRhz10P9S27xNw/pdrdP7aBdxvLCHR8uCw5Ih2LdoC\nXEsaMdo+t4OoScvlT6KV5bod6EXezYrb27W77LV7hMAeA7cYt0AL1Ou77SztWuPdDwhLHrGCdKwJ\nT4nWWwDsRVPWAfn/uUHnExk+/jvP8dp/8HL99/8esL+rKXITl1IhleogXYtho85qRx8X+wSKz/kY\nj9/BIxXQBYlCwMmGEGVG2o+IgZ8cB7jPfQ4wrY2xUe4iYwtQbTgwtkXWpvt4U3mS5WMDuAIlnFKF\nQWmBGElSbNNkBK9S4AnvBVJiB4PKHGe4zDH9Jj53gdoRCTGoYW/UkJIG14TjXHA+zmvnnuKj4ZeZ\n8NzmlH6ZVaGbC0I3yWoMr79EbCzJq9VniJU2eM75AgdXptFMhXcix1HkJp2ZLaRJg/WD3VSCNtKn\nPOiCTMbtQ5QMVBrogsSiMkBvdZNAPs+JpdssRIZIdnQw5R2mQ96in2WmcLJDhDIu+oQVwo40ekgl\nYEuxX5jjEHfIiz6W3X1cjThwHokjyRqCojFcXyRfi/DHzZ/F704TcSbZopPZ0hjJaieP+S9wXL6O\nbGpMigfoZbW1Og4FfJUC6madoD3NiH2GIFk2iZElQBUHKnWcVKngpI8l+nmBd3jkQdCMnXor7SwL\nDxbXjSrbdO1foWETcHmK/CXPsUYP494p7qgH2RBiSBgc4g4BslRw0rOziawJpKIhCqoXAwk7NWzu\nysMeuh9KkztUQr8Yp8s1SfTfvoJ6ZwOx3HjAZmGPNbfnArGiCy1PDotlW0zbqqvwVwNhLN26PQDG\nAvB21mvwVyUMi9GrvFuvlnm3RGI9aN77UGl/2FjntlwK28ulcgP77U2k33qN6MDTdP6rcVJ/tEVz\n26r54bCHDtg1wUHC7GGn1kGh5MdhVLmmnGbSN872uQjr5Ri9lQQOV5ltb4QNutggjoSGjkjn7uTY\nfHmI2ckDBHtSeN1FitUwO5sxclqQjbEYMf8G/SyzjwVs1BHRW37OcoZH5bfIufyM1GcZz9zHsAuk\n1DCvhx9Hs0vYqxVuiYe4ZR7hov0sb448hqkaeKU0Hc0dfGYeN2UEfYvRwDTD0Xku7jyBo1nltHmZ\n7so6KXuIhWA/Ae7RX0nTKCtUNQdlr53KAZUSHtL40Xclh6Lgpio5sIk66CKBQo5R7wxp0c+Cqx+n\nUaJPX2ZeHEYTZEwEOoVNZJsGNtB3gauJTBOZNVsX17xxyvsOEyZNHyv062tUmm7eqJ8nZE8ywn0A\n6podoSJwwJxmwnUbh6OC38xiE+rIaKQI08SOzdRQzCZxNuk3V7gkPEKGIGWc6LtDR0ckRJYRZrnM\naQRMBEwyBHFSoY9ltuhEQqcpK8S7E0g0HkgmBdkHskmKEDkClHBzuHwXt1lGd8p4GlU89RKGKVHG\nRVn3UKz6sCnVv27Y/XBawId9n5eRgzUGLi/i+aNbwF+d1GsHy3Z92opatACbtrJ2YG3vQ+bd7Nlg\nD9QtKUVq68sKnLHqN3m3i58F0ip7mroVcWldr9Xeusb3BtgI76nzoL/1IuIf3qH3l4eonN5HcbiD\nZrMA2Q+PqP3QAXtL6eDb8gGqnTK2YplqxsG3557HG87iGU1zb+kYXiXP4OgMLlquWiXc2KkxzzBv\n8Rg26iibGnxRZPjj83Q+vk6mO0bDYcNGjSH/HAEpg4MaRTzcZYJJFM4h0k0CD6VWNr7MJqHJIvcm\nRnjB/Dj/8dY/48cmvky4M8lvTPwbZKnJQGOZe8ljXA6cQw5ojKuTeCnwk8IXsbnrDJtz9LHCiehV\nRMHAIxbIDzupiQoRY4eB8gpDjjrZp1x47Vk8CDioUsBHBSc5/KzRjdsscbR5kxnXKNddR4h1bdEr\nL9HNMt/gRyloPvyNIgWHF5dU4iD3uMlRtokioSNgkCTK2zzCKa5QwMcCXuAAgyzioUjO6cHlKPGU\n+W12xDA17PSxQo93Da9Q5Il7F6mE7SyNDDDBXXL4ucxp7nCIbv8aP+L+Bk1FwWFW8RoFyqKLlBAh\nh4914hiISOis0UWJ82QIoaGwxAApQvjJ4aTCDhFW6WWGESa4S5RttogRY4sYm4RIU8KNgImPPOMr\n0xxoztIcE1iO9jPFMDnJj45Mvubn+uIZHo+8+rCH7ofPDh/AfbSDx3/n1+hfuvIu3bd9AtBgDwCt\n9xSZlq+z1caSJyzAtADQAj877w6QsRi45TXSDpbQkiUs+QLe7SJo7beDNeyFplvpWuHdAG9NYlp6\nN7zbT9z67o62NiZw6I9fIvB2jqmnfoeSugmvvfPX3NQPlj10wO6WEojCCB61QGnDS/VtD8W6h0ZI\nobzjonzLi94tURu100Ni1xfXQZIO1rPdLM6OMNJ/n87IBs2P2QgN7SCVdLhm4oiXcR4okLX7yRUD\nSCUTPSwxqC5g12pcvXUGu6PGoX03OXR7ErMm8mb/I3y79Bxv5J9kvdLNhtZFBZV5BhkUl+hRE4T9\nWc7IlzhVvUKHtsO8OkDWFsApVtg2WwvtRoUkaUK8w2kMm0QRDxkzyDxeSkofXe5VRAwUmrzNOao4\nmGsO83b5UQYci5RUN4vSACtiPxtCHJdS5iwX2c8sIjpZyc+K2kuXsE4WP2kzzJnqNUwBMnYfHdkU\nC8IgXw58ejeYRUAkh4fCgzwoNdGGhwJ+smzRQYZgK1hHTKA4GrzVc4aoLUm0uc0d+TA5wUcNBwW8\nZKQAO1IYHQkJg4wYpCI4cVHCtrsyTRE3WYLUKaHtDqUmChWc2KixQbwVnk6BXlaJsUWA7O7qNjUS\nWg8yGi75GmFSxOtbDBRWGVIX2XFFeVE8j01qYBPqHOUmIgZNw8ZH6m9i08p86WEP3g+NeYFxHl9J\n8HTty/TMT6IWSw+AywJhy3/5vdKEZe2qrgXUFnhaQGoBfq2tL2vyr92X2gLIdl3begBYoGpdg3Xu\n9/plW0BtyTXvDdZp9x5p9xO3tmbbNVr5uauAkSsRmb/Pf2v/v7iwdZqLnAKmaOUL/GDbQwdsj1BE\nNAzi4gZCScTYUCm7XBhFieaajUAqQ29wuZUhj0UUmiTpoGI4SRcj5OeD1DxOXMMJjjx3HbtQpbTu\nIZhKQ4+BM1pAQyad7qCU8SH5moTVHSRd58biCQy/gDpQ4dzmFQSbwMK+Pm4vHWa10UfAn0ZXReqm\nHZdexilVCCkposH7nKxf4WjtFsFKgYLbw4JtgApOCoIXCY0gGWo4WGKQEm6qOKhh567SIKk+yQHu\nc5C7KDS5ywRuStQMB/W6jawaZEYYIS95qeGgYjpJG0ECQpZeMUGAHLoksClFCbNDHRsJs5fnqy/h\nlzMs2brpqW6hiBoSxgPW7SVBJ1sEyWAC+d18zS0fEtduEIqKiUhVtXO99wAntGsMa7NsmzEyUgC3\nVMRNK8imtZiTuyVFCC5ShDARcFLBaVYQTJO0GEJhkR4SZAg+uA91bGzTwQ4R+ll6oGcvG/2kCVIS\n3CzVB3EaVSJSioZNJaRlOVe+hOaTueMa58+kz3JUuMlxbtDPMk7KeMQyUUeOO8r4wx66Hxpz2gT6\nIypPZy/z3NLnWaO11K0FmrAnJVhM2PJZbvfCaAfR9pBxjT3mbMkY1qRgex8W+Fvg2Q7I7ROQzbZ6\n7b7U7RGM1vkskG6fuLTaim3HDN7N1KEFzhb7t/q3WLujsMUzb38eKQDZnn/A8rZIpd7+2Phg2kMH\n7Jv6UUKNEZ5TX+DA4Smm+8e4WTuCoYh0udY58vRNTtmucIZ3uMExrnOca5xgs9ZJVghjDEpMi2OI\neY2fC3yBkuRmM9rJYz/1HRoOddfFqMGkeoQ7rqNsSHHuMoEhTpOPeWm4FO4qE8w+Psgx4Trnhdcx\nuyWGO6bZMDo5Yb+GT8zjd+RoCComAinCXFePUjPtPFV8i359GQ2BBQYfeDCUcCOjcZzrDxijT8hj\ntxu4XT6WGCTMDhLrBMgwwgx+NceTode4LU4wy340ZHpJoBky3y5/DEnV6bWv7oIq2KmTJEoTmSjb\nqGIdu1AjKKbZioaponKCa5Rx0UQhRIpOVEKkkNFYZB+bdHKVkzipMMQ8T/EqCk1ShPFRoCkp5PHx\nyfy3mFWGuOQ9wSCL9LNEN2tMcpAkHaQIs0w/Jdx4KHKkeZugmeYN9XE62OJ5lukhwVVOMs0oOfwU\n8VDEQ9bwYwitn9pLtWfISCFsSp2dahRv4SrHqvdI94RJuwOsxGOkxAh3xHESQg+DtFLcLrAPMHE7\nygwOLbItBf+6YfdDZYPRJf7dz/wJ5o1lrr20l2EP3p0C1WKZEnuZ9Cy/6vbgmXZQtBI9WeHn7Uy1\nXaaQ2vatz1Zq1PZJTpGWRGH1X2ora5c22r1JbLRC1dvD4O1t12eVW5q51YfStt9s23RaUtB94Ny5\nr/PI8dv8+h8+xuSqnx96wA6IWVShwd3KBA3NwY4tiuaUcduK+B0ZinjI4UfAxEmZ8G5Ojp3NGGZJ\npKN3DY+9QK9tlV4hwTJ9yIrGYGSRNEEyBFFpMOycxivlWRD7KRluHJLAx/q/haGIaIJA1utnmlFk\nNOxqhUPqLSa4zUhzDl+5wIHqLJvuKNuOSMsTQnCwke2k+ecyoUAOaXiegKNANupjJxriKicJkuGY\ndoPgWh5fqYiDKtfqLiLSJCXcuCnTsZxi5NU5YsNbuP0ljMwqYW+WA745ak47K94eVuw9nFdfo19a\npoj7AVN1GFV6S+sMSisYKviKBUxFQPdKFJVW6lcJnZPaVTRkVgAXZeJsEiTNS/qzvGOeIS2FGBCW\nsFN7cL9KuFmml7nKfm6XjvOo+hZ+NcNh7lDDjpsSOhJzDHGPgxTx4iOPmxKbdGIUZQJakWA4w436\nAP85eYZkuQNnoMTRwE1clFuyFl3ogoSXIhWcuOUSefxkjCBBe5o0AX7f9o+pKQqSqJFSQ/Szgn83\nJ8sOUS7Un6SS8xB1bzFuv8e4Po1H/PvQdAD7s53YjrgorGxCIv0AiC0f6vbFBCyGaoGzlZnP0pwt\n2cPJHnNt9/6w9i1vEYsNW6APf5XJw568YjFoa0JRYy845735stvD4a2JT3i3f7cVOWlp49ZEZztr\nt8xi2ba2a6kD2eU0RtCG/afjOG56qb74wY6GfOiA3SVuIMgppspjlKs+RA28/ix9+hJDuSWWXX3M\nKCP0s4yGRBfrOKmwmBuh2nBxKHoDv5Kll0TrNd/0UjLdDIhLVHBiIiKjM2Kf4rDtFn+pfRzRNFCF\nEp+O/BmK0GSOIUwEJrWDrDe6mLDdoVtK4KJCTE8SqOXpym8TVFP4HJ2s0UOGAELWhJfB0V3DbtSJ\n27eZFEaYio5wlwn6WeaIcQslqePbKRIhRUfdyyDz7BAhTIrOtS2Of/kOwnMG+j4RbUVhMLbCQHwV\np7/KK/p5ym4Hx93XcUklFhhinS7KuPAYJc5WrhFTNqkpMs26jarpQqPlNSKj4aLMsDFHCTcVhmii\noNLARYWC4WHLiKFITfzk8JMjQxC/mUc2dXJCgLn6KFrJhi1e5Unbdzih32BKHKEqONikk22ibNNB\nlgBdrOPRStSqDmyFJg5q9Jhr/EWjl3dyv4CSafKM+pccDtwmSOZBAiddkKhjo4CXPnUVwxDJfzTn\ngwAAIABJREFUaX4CjgxJZ5jP8wucEd4hTIpFBug3l+lnmQnhHiv0sqQNsJHrZ0K4xUEmCefzVN3O\nhz10P+DWCg+JHXETO9Fk6osCgeUWkFkSgSVTWFp0u55tyQcWuLYHuVgRiDVakoLVnzXBaD0M6uyB\nfDuztfpvd8GzHgqwF6zT7lFiseR2r5T272ElnrKOS+/p33rgWJGU7Q8BC+SV3e/WrnGv3YNcWaTz\nt1WypoPFF5381SnSD449fLc+bHSJGU57LyO5DZxmlQF5gYml++y/u8CXznya+c5BXuA5ulgjyjYx\ntnD15uk3avyC9AW2iJGgh2/yPFONUZq6woB9CVVsECbFAItE2cYm1BFlnRIeZs0Mg9ureNU8/kiW\ndeIsFob4xvJn6BtYJRco8i2eZ1BdJOjPUnM78ClZ1N1swEMs0OtI4NhXpXZMoXFOxj1Zw62XGGCR\nH+EvKOLlHfkMNwaP8UjXZX5d+vc4dsp0Gpt0ieuoNBB9BkxA/bBE7pCH5PEYs8owDdXGcfk6E7fv\nMZhaYv7xPu54D5GghwEWW0mZpAb5kBOEECXJxfWek/iEHI9wCSdVOkhyhFu8ojzN25xlnTXu00kB\nL0XcCLLJ4+YbJIRuxpjiUd4iRBp/o0SjaQMHjHsnkZw6T6vfYaQxh7daQXOpLCqDpAlxjrc5zG0u\n8CQGItFsip+7+0U6ejdoxCT6pSUGnXnGe79BLL5FyJZimyjXONHKcUKePD4S9JCgm5NcIy5ssi1H\nSdajdAhJztsuMCgs0kESF2X263PoSOyTFzjFZSSHwWLvPg4XJzm8dQ9vvYhL+WGPdHTz/5H35kGW\nned53+/sd9/v7dv73j3Ts/XMADMDDAACIrhTJGNTtkiZYkxLcpw/4lRKLqssxVVOlKqILpcdJ3HF\niuNYkVyURFqhSXEnSIDAADMAZp+enu7p9fZyb/fd9+0s+ePOQZ9pgtrIARHxrerq2+ee851zu08/\n33ue73mfF2b4wB98nQ99+Rtsp7NvgZvGAfg6GxA4rUltqsKmFuCAr25zQH04TaDgwCvbzpKdFqlO\nGsYGRDujbx+6HruE3Flk48z87acCp+SvxUHmj+PzOP237QlGcYxl27zaxTf2sTZtM7S7z7nf/Ff8\nae1D/C4fBpaBd6fU75EDdoJ94kKWafk+Gm06qLRwUfYHyA+Gkd1d6lUfS9k5ToT+b2a9qzQ0jeng\ncs/IXugioeOmiYTORelVRMGgI6istSdpdD084/4Bk+YaLr1Dn5ZlUxxmDZ1N9zCDstgDgm6DjDBI\nf3ibFXWSIgE02qyJE6yLFj65xigGw8Y2w817xKw8UbmA+lSXxpRKM6lhtkXEQG/BcY0JygTJCTGK\nwTBZK0pKGKSjFCkKIW5yinHWGRF3QIWWVyMXjrDENFsMo9CljUzSzJKo55FqBkuuOdJqP1FyDLPF\ngJDGK9XooJAXYrRdCjW8bJtDDK5mCIo1mpMqqtDBQ4MYeTqMUiZIgn1mmytECwVymzEmfGtMJVZw\nh2vkxDhZK86ZnZtMeVdphxSmymuYlsSiNktbVEmu7zF6bYfxC2vUBt2UCdFFwaV1uJs4Qjnk6TU4\nFsJ4pDqD7i2auLjbmqNd0+j37CKLXdq9NsM08FDFT5Y4LUHDRMQltYkJeUaEFGv1KVaYpc+7y5C4\nzWgnxfnqVbKeKE1NY959nUljHS8V9jxRUu5hem2EfjYjMtLkxM9vMvz6EuYb62/RFC4OPKSdftY2\nxws/3AwADnhkO1u2s12bh7YtUW2QdlZDHvYAsakYJ1Xxdq3FnE5/zozffs9ZvOOkWJxqEKcSxHm8\nfR6dh+V/zsnLzsqVdgdhaZ3xx5d49hNHufXVJoXUD//O3w3xyAE7buQQ2yZD8jZusUleiHKLk6T7\n+tnsGyZHlG5ao7PmZWQszaiyzYI2zYiaooGHDEm6qIQo4aPKEfkeGm2+wYfZbg/TarrxanUSeg5f\nq0VczCLJBhp+VsIzmCacb+7QV85TkwPcGb/EClMUCHORSyxylEbLTTy3j9fbICYXmK/fwW22EEUT\n4RxYAYGuJtGdkGmLCpYlUNGDlMQwLcnFiJrCT5U1JmhaC+wbSV6TLxCkjCmJ1NweWqJKU/dStCKY\nkohLbCJigsfC7WkxW10l4c1iqQINvKh0GbB2CRolqkYQ3VQYlnZoyi7uW9P0L+VxmTUqQR8D/l1O\nareosI2fXpOBae7zZO11ZjZW4QdADMxZ6MwJ7PsTrFrjfDDzAnpEIBOI4y23WNfGeDXyOAPsMrG1\nwcTXUjSHFYxklEFph3ZXI+0a4E+Pf4DTXCdGjnXGgRsEKLPMNEvto0gtk2fUlzAVkQ1hjPoDoyYX\nbTbNUSxBQBW6+NUaSTLErBxfLvwtNoRRprz3OCYuMKOvcjZ7i/+U+Bjr2jBP8Bq6TyTti5Gmn0Vm\ngFce9e37Lg2Z+GCTn/+7d5DbKe6/0ctcffRA12n6Dw8DGjxsp+oEL7ujjF25KB8axym3c/pRHx7T\neV6nQ5+Tb7apDWfmb792yvScZk52Vu8Efrts/e2KZ6xD253vOwtvdHpNEILzm3z0s6+QvjpNIWVT\nI++ueOSAfbtykp27v8DLA88QDeZIuPZ4nDexEFhjgmVmmPKu8xuj/4JLsQu84TlBhDw3mEehyylu\nEiPLHkm+xCe5ylkG6S0MPOf5HqqrzZJ8hF1pkD4hy2OV68xZK8y3ZJ4ycvhLNYKrDaSbJmafTPPj\nHua5iYzOBqOc5wqTN+8T+Wd7hN/XwP28QWHcj08U8dbrqFtWjytWG7h3Da765rkeOsnP7b5MyrXB\ny31P4KdCgn26popW0Unmsswkl3mMN4kOZ/nBLz3BnLbEkewag/UsG/EhKkEvHTS6brX3X1IAn69G\nfzDNKBvIdNkRBvHLVcKZMo+t3cKMiGwnBliMTSEkwbXYpv9/yxP8ZJXY8RwDpImzziqT/B6fJag3\nmJFXYRLYA/EWqH6L4+ElJuQt3GNVdr1JsnIMkrAijrHJCH3ssX5ylJd+/Rk+5P0OjUqQr4R/nrXU\nLANGms9O/TtMUWSTUW5xEpUbHOEebTQS3iw+V42nzEukjBG25OHeAipNhsxt7jWPMCxucdF9iVuc\nJEiZOWsR/26VqFDgwuBrIMB+J0GkUMMbqAFwk1OEKKHSoUKABj/LHHYS7e4o/f/gi1R3dqhxsAhn\n0FNlOxUVtp+GnYVrHKg2nD7TtgOeszTdzmBt/tjO2g8Dh1OP7axItPd3AqhTYmeDp23YZEsGmxzw\n6vY+Hg4WN216xObAbZB2Xod9Xrtc3TaZsiclm/6xjae0r+0i3JCQlp8HQsCdP+fv8M7HIwdsZHD5\nmoTUEi3RxQrTDLNNU3ez0D3GjLrMsDvF/cQE1z0nKUpBpljBTxUvdfJE6KKwwyBrTFAhgLfV5Km9\nV8kFoqyHR0nTj0+o0REVThdvE5ByeC2VVSYoKWGigRL9Q2ny4TAD7HKC2zTw8F3ei0KXpLTHsCfF\nrn+EDf8AdZeLQXGbocYO4f0GuEFPKOTdARR0phobTBtrqHRI0U/rgb45L0S5Jx8hqA7yPr7DJCuU\nvSG+4vkolWaQE607eM0GRSlEzfQy0d2kHvSwMJpgWxxk150kTIEGHvr2sgxlMwSSDfyVJkreYCk2\nTdN0M1VYJxePoHdFBoxd2l6N7dYwy0UNb8PLiCdFjBwhT4FCMkjG30fcnyeeziNeBd9sDXWuSSOg\nsqUMclM4RdKVwaLH3ct0qYYClP1+hFfAL9VIPLVP1t1PrJ7jVHqBS+ELrHkmHvyJdRLtCs9kL3HD\nf4qqz0e8WqCjueiX04iYGEjogsyWNIwgWoiYzLLE0fQ9xhdTDLm28CRqnON1hs0tKoqPr8Y+xGuV\nJ9jvRpkdWCQm5XDRYpshavge+a37bo3oXIfJ2QLmt/ah0XgLhJ2ZsA2QdvbpBC97UQ8OuGdnpaCd\nbR9WfIj0wM7p1HeYT3YaOzkzfae80EnNOP237TE0HjZ1gh9WtzjVIPZ1O8vRnddhX5fTOtaZvb/l\np7LbwCxnmX5/nnpJZvP7vOvi0VMi/n0Gp69yhmssGzO83H6Ga9ZZqh0/u51+Pif9exqqh98O/mNc\nNImRo0KAYyzgpc4mo+jI5IhjICLTJdQsc+b+Lf505ENcCZ9niG1kdDqGilkV6HpE6orG68Lz3Ase\nIRws8vjR1+ljn1E2meI+e/TRxkWRMKWhKMN/J8e9o3PcGjiGJrYwBQEfDVxVk1ZboawEyCSTROtl\njlWX8Lib1DUXR4wlboonKQqhXsMFfxwlMsh/zb/BQuCadZZvmR+g7dbIecLEybLIERTd4JnWZXLB\nEDfiJ3nFfAqX1CRsFcgZcY6vL/HYzZtwAUxDoK56eTM6T1gu85Hdb/Ot0efYHukjcC5PRfSxUpzh\njdw4AzWN93m+yQUuo4S6rIaGucJ5Hk9eJ3qvgPlFiWZEph5TqRBgWZ/lkvEUs8oSx8XbnOUqGZLI\nps5kew3v1ToutckHLn6bgYE0gWIdz1KHNXmaZc80I6To0sbbajC/cZf00AB7ngRiUyQoVBl2bxGk\n1CvWEdzcd03TRmOXAS5yidNbtwh8o8HAZ7YJTOWZZJWkkWHJNcu/nfocN19/jOB2lePx24wJm/is\nKqvS5Fs0y89eCIycyXD2kxWqlzoYvXzirezT5p/hYRC1QfDwIp9t/u8MnQONtZNvtmVxtuLE2ZfR\nqfrgwZhux/hOasJWl2iOcRUOytDdPMxNO6/LzpKd260Hxzbp0UJOoyvnoqQNzvZTh9NTW3ywrevv\ncOG/vAarE2x+38W7Lf5CgC0IggS8CWxblvXzgiBEgD8CRunRP3/LsqzS25+gV6TxNfMj7KUHyKwO\nU6nGONV/jb9/4t+yIk+xwRhe6pzlKqNs4qOG8mAeHmKHcdaxEIizzyC7BHwV/vf5X0N3SzzLi5x4\nUFEoqQbSWJuiHKAqe3hcfIML1mUmrVW8Qp17whG+zCfIEUOlQ5Q8QUpUwj6++sQHGN3Z5hdvfAmm\nTXSfSCXgY/upIdpeFRGDPvZYcB3lK+JH+XTjiyRqWU6XFjD6ZNbc42SJE2EVGOQLfIoSIXJCjCPi\nPRShyxoTXOc0DTyEpBLf9b6H49VF3rv/MqdrC3w99n5uBY/z2c3/yKnind5/oQ7VmJfcQIiLXCZQ\nq4MEgmBSF9ykxGGGhC1+wf9HuAdqjISeIE2SVSbJkGSJWa5xhoC3yuzMIru/OkA3Kr9lk3op9QwL\n6/NMnV5hLTLBmzzGDMscqSxzdGuF6FABIywwLqyzzjjbvkG+cORvsuUewP+gIrJFC90r8vrcaXzu\nMs+Z38ffqbKl9rPJKHmihCgSpcAAu71GB9ygio+XZ57k1c9Z3Bw6QQ0vX+BTTEqr1OnJF3H1Jixd\nkFFKBoF2E3+8RkP+yVAiP869/c5Hr+Xt+EubPL26x91y66Hs2QbiOgdSPo9ju9OrwwZW+1g4AHuT\nAwrFKQ20j3FmrDZwujhQcDjHt8O5AGlLD20qwrlACQ/3fHTSOva1OmkUkYOqTluO6OTHBceYThC3\nKRN7fLvYJ1Bqcv6fv0yn1uA/86zjqHdH/EUz7H9IrzDI/+Dn3wC+Y1nW5wVB+McPfv6NtztwtzhI\n9XaSwfEt+uVd3J4OQ9Y2J7w3mFRX2KcPAwkPTZ6sv8podgspZdIZU8klotzXJlCELj5qJMiSJINL\nadGMqfip9n6mRaxSIFIu4XE1KSpBWoKLE4276KJEXXOzT4JVJskTZYNRglRQ6GAiUtJC3O+bpL+R\nIZHK4v1+ndqwh/3RGPvxPuSOTrhYJuIrosmtXg+UVQFDlDBiIpMLGwR9NfaH4jS2Upxb7lCa9pMT\nYsjonBRuYSH0GgMgMcwWw+YWkWaR1eo0t2vz+OQKq8Ik68Y4bUXD7IN6WGMrMoIRAp+3jL9WwhIk\nttQBuqqMShdZ0HsFLUqdQW8NRe2ywwAaHfZJUNGDnKjdZYAMbbeL5aNT7IiDlAnSwE1QKXHR+wrj\n0gYFQqTpJ0SJGWOVAT3D4vQMjZBGmBwTpQ1CxRpGXsQ/WqUdV/FSp4xGXnDjlxskxQw+o4Za7eCS\n24QoIWLQwMOOOcjp8i3GmxsMmtv8SewTrIXGEUMmDdwYSKwySVEI46LFENuk3JNUCXKDU8yIKyAL\nLAszFAn/2Df/j3tvv+MRD8KxWczbJtabu8j6AZg6i1RsKkPnQOUBB8ZJ9jF25nm4utGmQZx0hdMH\nxObCD+9vF6OIh44xeBj2Dkv4uoe229m4/d3ez3nNhwtz7OPt65EO7eecmJwFQM7rNwGjbWC8kcYc\nsOC5E/DmzXeVxcifC9iCIAwBHwb+J+C/e7D5Y8B7Hrz+PeBFfsRNfXf3ONFvBnn+U/8BeajDTnKQ\n9/NtJHRSjHDOeh2X1aKkhzmeXSZ+LQ9fAz4BNy6c4Fvq83iF+lvl4E3chChx7kEHcx2ZZXOG4N51\nZtbXEfosCv0xupbCaHmbReUof+j+22RIYiISZx8BizYqJhI1/BjIdFDJjkfIVGNM/q9N/KdbWO8r\nUfbn6SvlGSxmaA+LHHXfI17LEb5SJD8SYnV2lGNfWWbWs4bwPovOgsEnkzdpTUp8R3yeHWGQKHky\nJKnjZZgtzlpXmessEs3X+KfV/5H/Q/o1BkfXqQsepK7OK6PncY1XmTbv8z3xIkkzw3PG96kFfOyL\nfWwzRB0PUXJEyZMjToUAJWRchCgSQUfBQmCivc7n0n9AWC2SDibZcE3wkvg0WwxzkVd4bvgFTg7f\nomwGuavPkSdGU3RTVoPoEYkX409Rdvl4tvMiJ9MLxO4WEW5A6+MursdOErSq3LMCZDoxntr7KuWw\nl5IWwChLxNUsp/Ub6JLID4T3cEU/w3+/+zucyC5Q6gTZOj3Cbe0EIatEVMjjooVlCezRR4QCF61X\nWXUdYUMa5zu8j6nACm1R5gc8TfAnoJP9ce/tdzqk8QjKf3WB/d8OcjffK9d2AqENPE7ttNNbw16o\nczYxsJvcOkHdzpKdmbW9cGkDMo7vzuzVzu5txYkNtk55IRxw5zUOutB4eZhuOUx7OM2rnAoU537O\n45yvnZpyZ4d3J6XTBZoWXG/D+kwf7l85T+s3voz1/yfABv4l8I8AZ6VCn2VZew9e7wF9P+rgDxrf\n5NPt79AxLcr4GcakjpcYOU5bNxioZdFSHboL+wSSNQgC5wANzIpIJ6KyxRAmIqNsImFwn2lucIph\ntjnZvs3szioBuUx6OkpssYxpiLQFF98MP09G7MNLvWcryhbnuUyRCGWCVPEToYCL1oMMfh8l3IXn\n4Ltzz3J9+iQj6gZmREZROoTTFQayOaKVCurZJuawH90t872PPIMoWYTiRbZPL5F/ukO4VWRI28Yt\nN3HTZNJaBaAm+BivpxA7Iq/HzpCMpPgEX2RdHWWCCn3SHm1R47JwgUXxKBXBjyFKfE94L6Yg4qJJ\nkDKLHOUNHucFnqefNBEK6CxznsucQ6SGjwoBQkoFIdqlpcqInjbnpMvoiKwwxQWuMMYGWqfN2PoO\nyXSBM9U7iHMm/liFVlzkgvYqrIuMvbANjxvU5tz4ui1i4RzHWwtczLxOrdlgvhNE22uTVqZZCM2w\ndWSE0a0UE5dSNOZVJoKr5OQYK8OjrCTG2LRGiQayDNZ2uZF9nL/b97tctF4llimhI6O0ukRLeW4P\nzpPpizOhrDCn3+OkeYe/o/0BomDyrb/SLf+Tu7ff6TgRvsmvPPYdrgaWHjJccn7Zxk52ZtyiB9zO\nZgOHC12cC3A2lWKDtZNacHpl20oOe1Gz4RjLzsSd/iF2dntYRWJnv05eXXTsYx7aZk849nj2k8Rh\n6d/hlmNtHi6xN+nRRS3HezY/3gXOxV/kmdO/xm97qmyQeNu/x08j/kzAFgTho8C+ZVnXBUF49u32\nsSzLEgThRzqmvPnVS6T9IuZlgYF5P8m5CDfx4gESVpNI28C300JbqsIYtP0qZd2Pp9xgb7lEKnSJ\nmlgkS402GuVmkJIBRc8mO+IWxW6a7dIeLqGF1baQXzVpxQtsWC02zFHqUgYv6wQpkabCC9SxyCOY\nIBkme5KEaJp4Ww328y2W8i18ZYO7uR1SawJpLceKWCDc7eArWii7TcRiA3MQap4SRXGVjahOVfMi\nWRLNRZ2g1cJXMCn3bVAMFMkpUUY2dwh0yjRH3Gy2WlhtiR1rj5zvMpZ7kUTHi0tqIioNSihUTAvZ\nNECy0Mw2W902tCxUuYPi63CdDdK00ZFJUCBEmd1LLbxs4qHR67HYtCi0m3yZFoZboKQJbCJQ5Taw\nwOsUuUUbTdcI5rr4Snm05g6dVRVLA1HXqfm3kfYtlq5WaacVrCBoeYuV/H3anhRKYZWtyxZvbuVY\nEDtsxfbZCfegoH+/RV+xTXvFpKDdpmHu8wfGEPtmkhIeYuo6ze4+VnWFTOBFVoxblHIl9pQ4HVPF\n36iyEX8VM5jGJdzhT27f5v9a3McS/piOoP6oW+4vFD/+vX0ZHjSEgPiDr0cZIt3lPSqfv05ms87r\nPNxM4HCVoc3xwsPZJRzI4eCg5ZedqTobHTjleyZwm4clek6VhTOTtXlmJ1XjXNg8rCyxwdn5WZz6\n6pv8sKb6cLGNUxduTxjO8x/2RLHVKB0OJh5ny7H+a+uMfH4HIzNKD9oftSlU9sHXnx1/Xob9JPAx\nQRA+TO8JJyAIwu8De4IgJC3LygiC0A/s/6gBjv/me3B/+uN8ht+nnzQlNL7O+2nhwsMGs9xkZm2V\nscu7WPOwMdLHS74nOcFtmrgpMMsTvIaEi9/l17h1/yz1kp/Z47cZcC8yRJxpghzbWGLwlRSrS+Dz\nVvGe1Nn5L46R9UU5wj0usMoefXyRv8/TvMzj7WucKN/nvn+cTlvh6EoG+Y8MWACmgalFGmfWWR8f\nxOXqEnjwJ/ZcF/C+/qCtUKtBG53rzyW4PTbBujFOaPcu/yBW70k4L1a49fgw/yH6SS7+1pc5v/Mm\n+ue6SAaIaeD+Oq/M97E1E+KDuy9QC7jZi0WJkifSquBuddj29eFutunP5mAFspEw9x8bw2COCEO4\naOF9YK9aJsj0p0WSZKjjZf7eAlN7WxCDYr+Pa5EjfI3f4gxXeT/f5gbvofOgKClJmiljhUljjZQ8\nhDvVYfzaDgsX+hEEi2Mnagju7lvPrMvj0ArB0TKotwx+sdWk9d+INJN5ipLJBqO4iBJEoYWLaLcA\nzR0+W/48r7efQcSg27/CsHeD95PiA4Q4V/cyli3zf8Y+wqZvkJO8StD8AIP08cvCNcqfPgcmfLj1\nDRaUWd6rvvbn3uCP7t6+AJz4cc7/lwwPsfUlnv7dK+xiMccBJWIv0Nkl2Kpju73w6OUAYA16agqB\nHiVhSwKdNINd9Wh/2WD2IR7mieGAUrCzZdMxhg2qznC68tk/2xmxncXbNAkPjv853r64xv6MtjTR\nBubDXuA82G5brtq0T4sejWP7e9sxetdi8q7Fv6MPOMNB07F3Kv7Z2279MwHbsqx/AvwTAEEQ3gP8\numVZnxEE4fPAZ4HfefD9yz9qjNP6Ld5XSjO+t4FbaNLyFehGv8uGNkLZCpEoFQhpFSpPupBCBgG5\nyBPt17BkkaIUJkCFW5xAAM5wjbnkPdRolyl1GTcNAo0qx5aXqX0jx6XvwFQU1JM+yhEP065lJMZZ\nY5IuCjI6k9Yqc0vLjJZ3ELwW/V/ap3VDoLBlsrIJXRnOz0ApFqPi8pP4VgFlvE1nTmJLGiY8UmZI\n3UWuWogGCBqI4Z7OuC766EaibJ+2GFIykAQfNWZZJuQvI8ggLYI+KdKYcpFLRtkO95NWktxKzFFV\nfJQIMM192ooLQ5JZkI4ytJsmfqPIxtFhVodGWWWcGj6i9GRwM0trWKbArimTxMRHjTxRulGZhtvN\ndjBJ1hOhgp9P8qVeBSYik6wSKZToK+Uo9AdQVB2LXkf6StxH6vE+qmEPWRK8fuocZ+WrDIg7WIJI\n6MUy6o6ONG72VCtjoNUspM0OJg2UQYNgt8ZwLYNhSihah7ZL5rPhf8+gleJNzjKkbXHBuMKHO19j\n5M4uRSvCv577GP2uHYZZx0RCFEzS6UH+lxd/He1Uk8BckWVtBkOQgL86YP8k7u13LgSYmKcs+ri9\n9gUa5sNA7bQihYPM0qmnLnNAEdhKEt5mDNv2yFkJedj72gZMZwZrc8+2Y54NpHaWbGuxnXSM7Q/i\nPN6W3TmVI87FQ9ExjpMGsp8onJm4za17OJiIbImj8/PYnLs98ej0uLCCKFOPTYLnLGz8WMnBTyz+\nsjps+3fxPwN/LAjC3+OB9OlHHeClzoxVxm9WUTtd/GaDqeAqgmawzTCSZWDoEkLLoCgE6Mgqiq6z\nzDQbjCFgkSNOo+3Bl28w5N8iHtlHRkejQ8CqEDaKdFJNzAUIfAQax7yUyj5G5A4+apQIUSSMnyr9\npFGNDmZLhLZAoFhDbkikNQ8NoYOgd7HaYFVEhH2L4G4dUe1SiATYTgzRCatEfHm6FTcyBoJmUfX4\naKNhCRb77hh3x6KYbgnDI9GquzixdpfIXpGG4WZPSFBw+2lFFVzxNg1cNHHR9PXEThI6WeKUpSC6\nJJOmH0uUiaglSn0+CpEQOwzSxM2QscPp9i2mNjYoEUSwxigSxtJF4s08TZebHXeSNiqCCRG9xJi0\nSVEIUzaDjLVTDGXTBNM1SuHj6JKC3LZQxQ66pWCZAv5SnYbSJO1VaXlUKoqXGj4CUgO6LUqin2LC\nIn3MTVzOozZ1BEtgxxzEVe8SyNVp+TQqmod9OQaCwZi0gl8sMVTd5fHKm1yovEm5HOJGcJ5ve9/L\nLwn/kSF2KBPEJ9QwLYHNzhii0cEnlKlJXpLs/ahb7q8af+l7+x0LAQLnvLhkL7mUgN45AKcHbz+k\nf3ZmlnaVn+1fbb/vzE6dPh82mB529jtczu5c7LTHVBzvO7lr+/psoLePNRzvO8/lBF2qF2qoAAAg\nAElEQVT7nPZEYx7aH8f7zn2dKhLnZ3YW7Tid/Zw9JG2NdkEWkKdc+Ae9VDd5+LHgpxR/YcC2LOsl\n4KUHrwvA83+R49blMW6FZGaDS0TzJZQ8mIjEyBMWShTDAaSUwZGvrnL/k9NsHR2gIXt4mafJEWOM\nDdw0yZb6+OrlX+Dpue8zeWSJl3maM1zjA55vUZ13MTLTYDqhIz0JuVkP5ddDbDKKSK8Lt4GEiIkq\ntFk9OkInrXDhxjWEj1oYf0+j6U9w8l8XiHy3jFSB5OUs1raAOGX2/oK3FHafHIQQDGo7bMTGcNEi\nTJEtYYgqfvxUWaaPV3wTZLx9NAQPQ1d2ed+/fBH1XpfU0SG+eeY57kem8Qp1fpE/xEcNLzUmWSFE\niRIhXuZpGnhw0WuKuzvZR3qsjwvyq4QpYiLRRSHQqnE2ewtp32RX6ydvxXiJp5hqrfGrqd/jZt8x\n1r2jPJ9+Cbe7Qdcv0vRoFIQIZSPEE7lr9O3kqWc87B9JEFUUXFWDsFJCSptEX65iRQSOhtd4JnyZ\n2ojKfijKNsPwUQvN7OAXa6wU4PL5QZ5r/4BgrUbFDPCi9Cx6/TVOl2+RHQ6xEpjgujXPH9Q+wzFp\ngf9W+1eMb+wSWqsgZASW3jvNjYnjZIQkOwwyxQqTrNFHhoH+bUZ+aYuUOEIdb8/rhLW/0g3/k7y3\n36kQBIuRj64y4VrB9f+ayJ2DjNV2xHNK8GxwsrNIJ89rg6atyICHwc/lGM8GRjtLt8d3Gi8dzlTt\nrNqmJZxUifMpoE0PFO1tb0c42AZWtuWrTfvYihLbnc+penHKFuFgAdIuR285fh/O34vN1wv0JjcR\nQDWJP76PenaDxS+9zQX+FOKRVzre4Tht6wxmW2RM22Smf4WiFmSsusmZ4k1eiV8gPdxP5yMym8lh\nKvhR6fDB5ncpWmGuuufJCjEqAT/jp5c5El5givtkifWa29aDKDcs9u6a7FdgLg9i3UQz21zMXWFH\nHuBa6BT9pHHTpIGbCXENNdzk7slpwr4CireLS2mjPaUje+g9D4UszEGBylE3ak1HbJhoUgdvrom3\n0KEx5GXPk2CDMd7gcfboQ6FLlxQ1wceSMMM093FNNLj7qzOMfmGbiFnkPfnXmN9cQKnoDHqyMLLI\nUHiH+H4Z93aLbqNL4zEfjaAbCYMuMpYooNEmXKrRL2Zx+1ssCkdRNJ2r0ZNEn8jTESUSr+7xc7xA\nSCtzc2COtDtBU3bxZmye6UurJNJZmh/3kI3GWZUmuBSpIR6xyI3G2AoOEJdztEIam8oQ6dgg+XMx\nTnuvM+raJKhWGBDSGE2NBdcxduV+QpT5EN8gL0W4qp4hJuYIKDVqlpdz8hVm5GVkwSS6XUGWV4lZ\nZcbZpRZ2s+g+witDz5AI5JhvXGexb5agVeU367+DV6uyKY/ydT5MilG8Yp2q6CNfj1HWg+z4h/CK\njT/v1vtrFe+VX+CsvEiZLgY9ULFL0uFh32p78dDOlm1LU3sh0QY4m7qwAVvnoOjFqad2yuBs4IYD\nesJWlzjpEBvY7UnCLoZxls07r+NwdaZTBWKPh+M8TuWKbdHkvB4nh23THHbW71wYtT1F4GH3PwHw\n0OWEdAdJjnKPgXdDgv3oAbtAmKucRTG76KqM5mqxxTCWITLTWSNtDlCMBqhEfeyRREcmSImnrcsE\njCpf0T9CUQohuC2GxjcZZJskGUZIEWxXiJWKeLY71A2TegKMBnjXGoRSJqPFLLWIjyp+xlnHR40a\nXuKlPH6q7AwNoHWbhLpt/M06+pREzePBc7WJaFlYkoBhijT9Go2AG0nVcWU7eHbahAJVarKPfbXX\nRVxHJkAFL3Vi3TyuVptRc4uYmqP2mB99U8JdbOGljq9RR6oatC0X0U6Bvk4GX6GBvGLiybVJjuxT\n0EIYLoE6XgwkBCxk3SAhZfFRRkanJAWpej14kzW8ep3hdo0Lrfu0FZVXwhdR6OCjyn4gSn8tQzKV\nRWhZ6JZEQQzzqvcCHa/6oMWYTIY+NpSePet9aYabrnlKcT9nfNdIsI/UMCiaYdYZZ5d+4uQedMfx\nkBVi3FWOEFAqeGlwnDuMuHZp+TTudY4QbJU4Ltxl2r3CfWGCN8TTbEcGaEY0BtkkT4SAXuOCeYW0\nlSBvRSiaEfxilVCrhLbXwVvvUJAjvacF9XAt3V/fELA4uXuHee0ul80etDkLSexHfafqAt6e33Wq\nMJxA6FRW4Hjffu3MSA8XxjipFXuyOFzY4vS9s7Nt5/U7NeNOxcdhbxDJsb8dzq7tTlB1UjLOIqHD\n9InTHMp5rGYajBW3CGUWgAHeDfHIAbuPPTpilU96vsQcd9Fo80V+gcXAEfBZpKRhSgRZZ5w8vS7d\nPqr43TWqup8rrcdJaFkG1R3cNLEQ6KAiACdKi/xc9mXURAff0zAyDooK1st5Bq9KFD4yTn1SY5r7\nzLKEnyoVy8/QUgbF0qme8xGqVokWqlAS2BgeoDWsMbWXQt3oIt83COYbZB6LsXUySVeSEXQLV6PN\nmb1bRKQit+Imx1jARYtJ1niRPZ6tpzi5vYjS7CLqJpYoIF8wSIUG+Xri/TBm4jXrBIQKR8wlxhsb\nSJYFBgTqVT6y/m3uuaa4OnyKPNGe4ZVYpxT2EkGmKyoMss2ImcKn13Bv68gVmMxaDOZhKzhAw+vm\nqLDBMNtkieOfqyFHdaJqnqS+j0dp9iZSOiTJ0MJFihFyxJnjLsKWQOOFEPUPB6hMBVDosuCe7ZXq\nCBES7BOhyHVOA0skybDCFFHyjLFBmCI+X41Mfx//VPwtzolX+EfSvyCjRVGUFk/yKse5g4mE3Tmn\nJrt5zXcWF23GzTWebX+fRfUIrT0Pj3/5JrJisDee4MXBJ8mpP0M9HS3wvNjBK7dBP1g4c9Iih82O\nbACHA87YBjv7kd9Fj1qwVRrOxUDbuMm2WnUWlzg5c7sJwmFgtHgYXLuHttvncjr2ORcbnX7e9vXb\nTxP2pGF/RmcXGfvzOvXeNkDbk9LbFZvbE42LgycJTbfwLbYIlmvvCv4a3gHAVuiiUaUgRPhe43l2\nG0MkAmk8ap2sGKOKD4UuA+wiYZIhySZjvCw8DRJEtTxHpUVGSKEjs8okdzhOnggeX4tgX4WTwgJ+\ndw1hWqKo+VBKOrLRINRXYooVBvRdClKEjqDSxx6au417t8PIn6bxm3VElwURi66o0lTdWAEBCtC5\nBtmyBdk6UbFEe9rFvcQMpiRyUr9LyCwyxDZlgoSMMie7d1gyuwy3JHx79YPnQDewC2GhzBNDb4Bp\nYXhESjM+tJ0uSspCADYnhlk+NslWYpi+9j7nF67SP5bhde9j3DFPYFQ19qUBXg+coY2KIuj4pSpq\nXCcQrJINrbAQiFNUQ4QpEv9Ogeh+mc7PqxQGgxQjQUwfdCWZCdbQaLPYPcpSd5bnte9yQbpME09v\nzaCvj8iTRT5a+BoTK6u0p2QQLDLdfm7X5hnxbBBT8zxuvEHT3OUJGuzRh48a/WaaaLvMqjDJrcAJ\nznOFM/evoy6aRAcqVEa81AY8DO9maMhutvv7qeFjmyE2hDE+aHyTkb1t4jdLpOeq1BWTYKiKVm/j\n2m/z7M1LbE4OPupb990TFpRvWBQEi5bxsPzMWdzyYNeHKgBtIHIuRjqzWJsb1vhhrw4bbA9TCfb5\n7Qa4tieHM4N1ntPZEgx+eJJxarZtE6a3K1O31So2qDuzahuM7fFskLbpGCfVIhza35mxOzPutg6d\nNYtO5rAw8acXjxywLVOkY6hsiGNkjSSZ9iCftBbxUGOdcSoE8NBARsdoybRwU3EF2GQU1eyidgxk\nw0QQBUyvyKY4yh696sU9b4wVZQzN7JAQsyjeDjvePiTDZH8jy2pgEk1vEROy3LJOIgs6I6TYjfTj\nKbZJbOyju2UakohbbmNIEoYsYYbBCoIhQyMP2r6JVuziNershRJUffPEcgV8agWNNgn2SXRzDFXT\nBEwNVXRRlb00RA+SaBCVi3QbMlqrxSn3bYSWRcPtJtXXT73sY6l2BDXcYS8eZyfWz9XQPGd2bnB6\n/waWbrLNAJuMkddj7FqDXOF8byIU2rilJt2oQoAKu4Em21IMtdNhSN4mkKkipEDqmjRCKgVvlPtM\n0bVk3DSZ4y4VM8CuMcBxFjhuLiB3DcrNIDlXjCOn7/Ke668SqFbYZAC1qbPdKtFtq6iuLjFyTFkr\nrHVLnKqWyUoZ2oqKZrbxZNo0LC811cfz0gtMbm2g3DIJrdegKdBOuFDqBrqqkiNGF4WCEWGxfYwz\n0g2KjQip1BTNERnfQBV9SkDZFvBUGxzdXsYV/VnhsHsQuJ8SyXAAoDZYOasXna5z8LCMTuZhIHs7\nvtsGMjsrdS7O2cdJjrGdRTNO7td24XOqM5wLfM4Jx1nmbmf3zgnHCdgtxzZn5my9zTabrzc4kCoe\nliY6k2Ynb/6WnNGE8n5PJHGwnPrTBe9HDthN08VKa46OS+Go9x7vd3+TuLRPmn6yxMkTZZshlqwj\nbOz3muUODm8wKmzQbHi5svEMK9U5/O4yyeNb+NSeNG+ETc5wjbiyzx8m/yYJssyIS+wK/ZSkMK9o\n2/xh/R8yIm/ysdCXuS6cJsE+p4Vr/OfkxxEjFn/71B/TEl24Wh0ms1sIggUuC30IjE+A9gSMLsLm\nTIKdE/2cdN1gkaPck45yNzaNJrRoozHKBkOtDGJBoKl72I32YZ0TWLSOEmjV+FDhuxQmA3RViZiV\nQ81buKstJje3+EL8F/ju7HP0SXu8d/El3vfai7ieatEYcPG9xNMUtDARCvyy+Pu8FnmCFCO00DjO\nbcIU6aKyxjibjLLFOOHtXY637tCZFal/zENaj1MOBehvZxEbEv8Dn6LkCTLpWeWDfJM59S4jSopZ\nYYnBZhpvsYO5tks94KJ0yot/rkxJCLHFMKd27jKv3+FjE19mXrnOlLBCRk6iVxskVkpE3VWuJ46z\nbg0w+nqaM7mbHDPvoXnbKGq353/3bfDrddTHu6yMjLKiTLLOOGGKBBp1ljPH+V7f81yNPs53znyY\nX4v/Gz4W+BMaZxUkr4FruwsyqOo7Xcjw0woNiwCbqER52DrUKY+zaQTb98OGFZsCsD1BnE56Thc/\nJyjj2G5nn3b26zRRsvdzLh7a5d3Q0z8fLlyxO9nYlIgTlO3PpHKQTTurHm1Vic2XOxcV4WElinPx\n0T6308fEWfRjd2+3JySbajGALUBABcL01Oy2cvynE48csLtNjWomTHkwRMeloCPxQun9pKV+agE3\ncbLoLZU7lWNU7kUIaiW8Q3VEwSSgVXgscZnVwCRdRSEkFvHQ6C3cUWOPJHtCko6sUMdNUQ8xm19F\nxiDXqTGnvoSqtkCACn42K+NsZqZYkI4R9WUZTOxwonyXsFlhK5Gk7PGRl8KkPc8RclVwB1tUI36C\nrjJjxW38V2owKuE502Kiu8Fd8SiXpCf4G/wn2q486Wgc1WogdS2W3RPc5Sg+pcGolCLlHqKlaAzp\nW8SVPKFQFaXbIRnYZc63QAcVfUAk6wlzw3USWdEZUrYpEqZCgAIRGpIbhQ4W4Kfao1EYZZkZ/FQZ\nYoekvoegC70JMRAjIyRJMcLTvIaLDsVWjK3qCG5BZzicJulJU1dcxIwcrm4bxTBoJlUaPo2yFSRg\n1qkLfu4yx5SawpRE8nKEG8I8LdPF08YruOptxKKJHhdouVRqlpf2rAzDBi1BRlLayGkLsyBQe5+b\n/SNxtrUhdtQ+blVPcSVzkfmBq+iqSDS8x5i2hmiYpONx7rsm2TJH6GvkMWNQD6p0BZlO5NH33nh3\nRACYpUmABgc+Gk4dtg1etjTN1jzboGhvs537nJm5c2HQmYHa4Ofc5qQUnFmysyzd6T3iXNhsOfax\nwdK5MOl87eS1D9MddvbsBHpnY2DnBHE43q603ZmJOxdo4aD7jUUQmKNnRfDXHLANXcLXbOIz6rQs\nN/f1aa40nqCueomRxksdU5eR6xbDtRQBs4SIiYTZa4wbWKMU8dGRVY6Ki0gYWA9um3I3hKBbjGgp\nfEYNf6POkcoyCSHHesfieNeiKAfpoOCiRbrdz7XceQQFXLTYj/UhNe+gGDrbiSR6V4Z6rw9hRCzi\nddVJjyeYb9yhfzOLeNcgIWcRTpsku1luyadYt8bp6hq6LFOOejCFFqYuUyJECxeiaZHtRMlVYjRl\nF0q8gyLqqEoHl8tiurOMP19hKThDLhJhIzDKy+rTjFnrDAo7VPFTJgjACL3ekW00IhSp4CdDkjJB\nYuQYZptIt0qrq7Er9JMXIg/6Hx7hSOc+E80NBknTbnkIt8uMubcYMdepWF5Et0kVHw1FoNrnYlsb\nYNWawK+3aOOiQoCOT8E0BQxBIk0/0XaexF4OrdHGMgW6ioglgaGKFI4F0KwOuiBjyQbCGybqlsXW\nBwdYGR4nZY0iti3qZT97uX4aUQ9hf4Hz2ivMcI96x0c0sMeeFmfJmOVk/R7dkEQzoGIgs50bhAet\n4v56hx+YxsT/0IKZDVpwkBk7eWBbueHkpZ18t8Tb0yM2iDknBieF4FxchIcVHvY57XG6HAC/s/DG\nSX8cBlF4uLjGHst0HAcHWb/AD0sJDx8HD1+38+twsY1zUjpQovQmTdiGn3zB1l8qHjlgy/4OT0y9\nxCn1BivdSb7beS/T0VVicg4XTSoE8HsqfGrw9zgdvk5G7OP/ET/DWd5EbAh8afOj6P0wF73NE7yK\njxoFolzjDE/k3+CpymvURxTclQ6efIt60kXe5cdSShxZuE8roFE67eUYd3GH23AKJMFghmU+3Pk6\n3bBKRoqhizJDuxmiuSXOqTeRXAaGTyCbCCK4YXcihu9XaqTcQ9wTZ8l40yDoPGO+zHhhi4RcoBRt\ns6MmWfMMM0Kqp6TIlDjx0j3mlxcwoiLCL3dxr3VQ0zpiyCKYaaJZJtsfGOJP6x/npfxzNEdlkr4M\nXUkhTT8iJhOsMcgOCfYJU0ShwzZDxMkyyA7DbFEAzKyIVDNxnez5SYco08RNZKdI/94enzv9u5Tj\nAYJmmZC8j7bcJrQCt548SiEaxvJIqHKb+0xxSbiIx99ihE2e5mXC3iyiZfIp4QuEKNK/v0/gKw2E\nNoh9Ft57XWJjRQqjEW7LJ5iprTHVWqMY8tEecWFqFi+HnqaMj1EjxanUXZ7hVZ6d/x4+rYZGExmd\nZWbZUoZ5IvgaXVHhvjXFYnIKUTIwEPFT5Svf+hvAG4/69n0XhAtIIKC9BVZOHtgJTHaW6PS9tvdz\ngq/meP8wheL0p7ZpAudiopPrtq/FpkCcHLB9bU5eW3Ccy874GxwAtD2myg9n7arjWJuycFI4dtjU\nh5NTd163U/6ocFDkY3P/HQ4opoOnARWIcqBT+enFIwfsGj5cQpPb9+dZ7U6z7x1gMJkmKuc4zm0s\nRETRRFU7tFSNlD7CXr2PG9o8XqVJIFJkwrXCY1xhgjUkDEQsgpTRPSIFIYAo6ZTdIZphL25vlYhc\noKvUEAZ0PKaOvN9lPLhBW9PIy1GG2CZi5lkyZtmRBtgT+ygT5KPerzNc2cG/VaUx7KLW50ET2xii\niO4SqSU9Pa0yY3ilOh1UOqZC1h1FkxrolsCifpSV2icJWFWe9LzCqLKNP1hHHDQxQw84vBJYZYn6\nhAst3yFcKHO8co+m5scdbXJVnccn1JDRMRFR6BI0K0xX1hkqbeMt17E0gXooiJ6UiZOlz9yjo9fZ\nH45S0YO05V7JO024mL7CeCaFv1jjwvIb1EbdCAmDQKfGRmCMe2NHMNxQkXxUpQCD7OCl3svopQoy\nXSR0qoqXYLnKqXt38SZquOQW+nEBsyogKFbPm6WbpV7y8gP/RSS118D4NfEcoVCZMS2F5m4RxEAQ\nLUrBAAGpzHHvbbRuh3S3n8vKecoEaQpuVKnDqe5tju/dZfBGhu4Rkb2pOFc4jzH1Zz38/nWKHqwq\niA8t5sEPl3Q77Uptfwy7EtKZbTt9QOzs2N7HuchoA6Kz4MXOOg875Dkz5sOUiODYZgOO4DiPsyjH\nCfL2mPb+bg4A2XJst2HUqbG2x3Bm0vZ1O+kUJ9d9QIE8XDV58PzydoLAdzYeOWCX2iEKxRhvLF2k\n2IygRtrUAn4kt864tc5UeY2OoHA/OM0VznPPPEKr5eaOfJyYK8/owCrPWS9w1rqKV6jTQUOjzQgp\nzACsB0bwUierxMn7IkwJK4BFQe2SnpYJZaqEVuuMDacoR4LsefqIkUMQLV4RL7LJKBmSlAgxHl1n\nsLuDuCpRU920QjIa7QftykzqeMgTJUcM6UHuUhJDrAXGsDDxWxXS3QG2GheRTIsx9f8j772DJEnP\nM79f+vK+urq62pvp7vHe7c4O1oBYWIIACNEdqaMUIYlH8RhxokRJoT8khhQ6hY466EKhuzjyeDzy\nGLQASGIB8Ba7WKzB7s6O99097V11eW/T6I+a3M5p7Ikgl4OdCL4RFd1TnZlfVs/Xz/fm8z3P+y7T\n9d+kMy1jjQt03RJtTUJSoBVwsz6WINyu0mcVmK4vMhRY51DiKv+GXyRIGQ8NLAQELFxmk5HcBkNb\nmxh5Ad0n47MauPpbhJsl4p0cpWaVyugoW1oCFy3qphet0WVm+waRehHF0EluZKgHNDp9Eq5ul7X4\nMK8Pn+c4VxGAKv7exm93i0Qzy6i8hqkItBUXdcFHsFxn4GoGccqkOyFRvahiXDFh24IYhMwKsVqR\nsifMhtZG0jq8wxliUhbZ1WFUX8HURSqin/t9kwSFMvusBRL1HEvCJC8FP00/abzUEbA4l7vEx+6+\ngfAdqLjdVCZ9zDHNwJm/D3QI2DmljPlIx/K9tT72Zqh2s1weHmv3V4RdSZ2drcJuFruXFnDy5U76\nw85AnVSMfS9OoHTK8ODRrNiWBdrf71Wu4LgOPFra1Qm69n3bC4Lz5zYQO2kY52ak02a/txPNbkpg\ns+gfvbzv8atEql4u3XiKmhSAHZCuGvSNZtCjCtc7xxn5Vho8FpkfjzPOEoJi0Qj2MluZLjoSSXOb\nhLXDHWk/piDipcFhbhC0KoiWyYo4yqixwgnzClk5zj1hP+8yhp8YR3O3OH/5MlMrKzAl0jjpZoxl\nuigsMAWAhwbDrHFfnOF+fJbsxT4GPBvMcJ8j3EDAxEB9vzu6jE4/aYKUyREjSwwJnVFhmYOu2/x4\n5F/gos2kvICoGuyMhClZYYpimLLixzwmkTH6eMt1joHpbU4mr/FC+TWMDqh0+DQvIWLSxEXWjOMW\nmpimiFUQ6HhkKgdc5KQ4lmbwaV4idT9DNF9kJW0xVlkhFs9iIHGgPk/bdHHjwAEm15dJltI8GB/F\njIBXqOFytYiKGY5xjXGW3u+jaCISTFeZubGIK9GklAwQGCzT394h1iggNEyYB7Mj0oq6MG/p8K4J\nz0Du6RA7o1H6lS3CFAg+tK8HKDNobBIvlZAtg7LHx791/QPSUoJ5a5rPp1/CJzQYCqyzJIzjpsnT\nvEn4jSLCDWAa6gkvYHGOt58UH8OPIFpAlg5tdHrKC41eeVRbrtZ5+G8nVeLcWDQfXsVZL8O2CDjp\nC7vZgcWuLtupuoBHM1Uc17CBzq6E51Sd2Hy2ncnbpp+9iwzsgnCHR5UdAj9oQXcuCDju1b4n55i2\n9NFZSdCkZyKyS6va13Ee38vIO0CBH32J1R+Mxw7YjbSf5lAEBgwYMRE0C7e7SRuNRXGcwlAQj1bH\nQmTUWqZdclNY7UMdbCFFuuiizGXhJBn6uCfMcrZ4iYOtOcLBHGU1SEbqQ0YnLBTxC1Xe5QzvcYoH\nbDJBGF+4gTxrInt0OmGZCWuRgfkdsKA5dZmxq6u0Om7k022kDQu9olJOBHHRQKbLAlN4aOChjkKX\nftL4ujVSG2nqbi+j/SuImPipIGPglyoc1O8wkV/F7WrQcSusekfeLxDlpkE0mMdPBRMJv7dCQC2y\nKSdpuRVqeAhS6mULusFndr5FSQtSDgd50DfGkjLMSnSIICXClAhTwB2qozQ6iGUIXq3jSrRo71fw\nWh06kkbB76c5oLIUGuFWfD8JNY2LBpflE2ySIkeMAhFq+CgRYpAN+rUMgUiZetDDjjvOfWYIS2Vi\nrmKPziuDtGnivdvG8kPzuII6rqMEOwTFIsOsEdkp0lfMYQ7LWB6LvBDlvnqQOBnGpCUQehn9ijDC\n9cBh/EKV48IVGnhwmy2e6rxLf2Gn95c6DkZYootKG5X59gxPROXTxx5VYB6R6iMbjs42YE6+2s4M\nbTu4s2ToXorBmSE7N/T2ZqCa4zxnpmoDqrNQlD2+E4ztsZybijjec97TXlkhjnNs+Z2tiLHDqc12\nbkY6P699jL0xaUsMu45rO6kTcN5XBZgDKnzU8fgz7JwHUdVx9VWxhmTEroURlajjpaOobD3dRx9Z\nPNSJWnncpRb5W32I7g5SqAMifE+8iJsmOWKczV9hurBIQ1G5Kx9gQZ7gILdRhC4lMcRd9nOLQ2TQ\nKeHhQWqcxdQYYQqMssqseY/o7RKq2cE3Xsb3RhujLLN1NEZ8rtQzdhyGrdE+FqJjvGecwkudfjFN\nSCsyKq4QbFfov5WjEm0xEVnEIzeQTR2jIyObXiLlEgfv3afZ72I9McCGN8XGwzZnUfIMsgHWJltm\nimPlK8w077PgnaagRTAskf5uGlE0cetNfjr9xyz4Jvle6ClWY4NsS0ne4yQXeB2VOdw0qIx5kZUu\nVreDettA3DQRBkwkycRrNpip32fTN8BieJJFcQIvNQQsrggnWDImKBtBSnKQmuXHNESekb/HbHAO\nYwYyvgh31Wne5AJRpUDEX8TT16tJIlcMgrcbmGMa5X/kJlSt4u9UkLIdTE0ksNrAne5wKx6h6vFi\niBJvBp5myFjnOV3ARESjQ1dQuTxwjKS5zVh3mX3SPBGjzMn2NUSfRSkVxBoVKAZCZInzgCleybwA\n/C+Pe/o+AdEDCw+V9/ue2KBoc9pOZYTBrsXDzqLNPS+7ZogTHJ0d0a09xzqr4aVsA0IAACAASURB\nVMEuJWNTCDaI2ouGE5zh0czbWZfE3HNtJ8DuBXMbVO17tWkQHPdrH2ef71yEbNONszlCk136x2nj\nd1YZ7C1WFXqdTf4eADZJE9/BIuf73qKm+HhgTbGojTPCCtPMcYeDVFljkgXuizOU+3380gtfIR8M\nk5XibJNkgkW81Ht6Y6VK1ePjuvsAd+RZygQRMckJMbYYICSUiJIDoEqAGn52SPApXiJKjrBQRIl3\nqVp+7ktjTCmrBJQaKh1EzF5l9zmI1kq4g/cZzW8iGSZiwKB43IceENE7EtYDgfBWBTXYJTcSRC11\nid7LE6/6SZRrWHcErgwcYSucwCfUOM/3CVDBTZM6Hkxd4fPVl9B+p4D0Zp2DH7/H8oUxMlNRxpY3\n6ARktpIJ3tl3klCnys9u/wnaO21uRg+Sfi7R60pDkQQ7mEh0PCrEwPwYYFq4rxoI7p4A0rOjMzyR\nRpmCTW8KSTLRUTjMTVYL47yXP8+xoUt0mm7mt/cTHP0GfVYWoSCyqo5yXTnKJes0EaGAp92iP/sa\noqL3uh3GoFIOsNFOENxcQL5r4FvtMC5ssnk4yfVzh3kt8AwCJsOsc4HXmcsd4L/d+ArGpMlQcJUj\nXGeFMa41TpBLJ/ls4qvM+O6w6e3j/gszrHZGaMc00lqCNAkKhMn8ZeyxT90nI9oIFBiiwwg9YZlO\nL3u2Adt+/LcBtMWuhM9Z3AnHcc5M0qYOnBZ3HOc7qQKnxM55vJ1l25t2dgbulBg6GWAbvO1FBR6l\ndJwcuD22vajYapEPyqTtc+HRe3U+Fdhct7rnOHtsW0miASnATxso8mjJqY8mHjtghzwlDieust99\nB0OSiFlZbjaOkRUTDLvXWGeIImE2GGSVEULuEhfcr7PIJDJdNNqImHRQSbFJM6BxV5vmtrYfXZQZ\naq0TXylATQBDJqjUkRMmadocZocSYYqEEbGQTAO30aQ5pNKxFELdGuJBA6Nt4RYbKLEutQkvq4FB\nYoE8MSVH0FdmQ0jxwD/JqjSIgEFELWLMqGQ7Se7VDuA2SswwR0rI0iFO1fKDZRFsV2i0XehKT7tc\nIsQWSdYZoi24mVSWGQ/oDETKeKUym3ToiCqGR0RSDTxWg0i7iGZ20DWJYLzBcGCFs7xDiDJlgqTp\nR0ZHclvciKYZnXCTKGYYvb/BncEZymqQk6vX8LqauPvalFwh2pKKjkyFAHk9Rq7Vh2iConQQvTpR\nKU+oXsLKSFy+e5ob0eN4zjWYY5qIp8jB0XvIko5W7RK5W8KqChjIYMBGYJDCcIgUm6wODPFe/ARt\nNIqtCFutIS76vku/ss1Rz1W2pTgJdhhlhVVGaUhuTDfkpSjzwj425RTF/jDrjWFubx9hKLKK313j\nRvo4hQePu4fikxI9KImPmPQJsL0GhtkDZSdY2Zmxk7rYC9j2sXvlcE4JnQ1mzvOdGagzm3fqq/da\nw+3rOYHQjr3ZLOyqSpwLAI6fOYtF7W18sFfT7axrArvUjVPuZy9Q9u/O2XzB7j4jiBCIQcxjwspH\nz1/DjwCw++VtzvtyxMkSpshB8w6LlVnyah/r7iEUU2eeIKviMBYCJ7jCx3kZ3VAwLZmwWGRRGKct\naBziNtlwhDI+1hhmH/Mcrd0k9U4Gz2aTKWMFfJA4mWGRAJ+k0gNHNBS66LqKWu+SjYcQDYv9xQXq\nZxU6moSqd5CSJoV4gLdTJzlg3sHXLSGbJvPqON/RnmOBSSIUmfLN0/iUm++mP84fbP08z4l/hRz4\nKofH7lFciZBWYpC8xf7OHJFykeu+/Txgkh0SZIj3OsbIHvr8O/zUj32V6UPrmKpAO65RUX3sjEQJ\nGBXC9RL7l5ZY86e4OTnLgadvEyPD891XWZZGuSEe4U2eIkEGwW3xdmQFdyjGifp1+oUcryeeYtkz\nynR7HrFiUKyFWY6PYSKQpp8CEdaVISS3jiGJuP11BoPLJKxt/MUqRknixp8fZ2VwnCPnL7MojHMr\nfJCVUykk0cB/o47nzSbigIkmtRC9FnOnJrkb3cdF8zWWhWEeMMEUD8g2klwqnCesFnkx+E1+0vfH\nfEt6EcOUmTSXuCEdIeXeIJl6jy0GWOcFwhQZYRWrJnLj7gmOzlxnf/Q235z/PHUr/Lin7pMTAviP\nCQRkAXHTwjR7mawTfJ1UguJ4OUud2lmqym4W+agaYvdaNmA7qQ541BFpW8Th0U1HJ5dt65qdhZbs\n7NhpAxcdx9pA7OTW7Q1Tm5d30i57i1rZ4GwDsN30wPkUYt+/fU/OOtu2Nb4jgzIB2oAAqzz6+PER\nxWMH7L5Ymlt8iqd4q0c7iC2GIsssCuM8MCdoFoIExDL7I3cpE6REiH/Pz3J/4yCZRj+EDUaCywTd\nJd7lDM/xKse4RpAyDTzcMfYzVNnB42n2nl+ioAx20Tba+M0afqGGX6jioYGW7aBeg1iljNAGQbBo\nPe0hPxGkIgcYKWyh1dqkEls0VA8L0gR9VpYBcYOLvEaU/Pt9FA1EBsNrnHK/xUXPd0mwzZwwTiqz\nyfHiJs0LMhlPnA1PioIQJkMfeaIYyIyy+r69PqLm6YYlSjEfTZ+CAFQIENqokrhXQN3skgqmCTRr\n+LxVFL2LWRdRp3SssEALF3U8jLLCU7zFC3jxRJusPdtPIFhiOjOH2u7wZvA8bwydI6CWaaOxTT/L\njNMOyEy67xHSigywSZ+VYba5gNfdxDwKPzvwb5nwnOaGcJgZ5jjWus5sfhECBrVhN3d+bZLcu23q\nkg/TJ5LQdtA7AgNbOZ7zv8ZwbJUFpjjjf5tjriusaUO8Ij7PA2GS053LjFVW8RUbTA0s4fK3GWCL\nIGUkDMZZooqfRsjD1Ok7rPsGyKkh3McqJAZ1tv754569T0gI0HhGpaZpdF5qIXZ3nYhOcHLaqu3v\nnRm3k9rYm3nbYRtJbLOJTUPsldL9x/TSHX4w47VVIk69tU3rOM+1N/7srjd22LI7eyO1zaMVADXH\n+U7Znj1ulUfrjzgFek5teOPhy/1wfEUWaM/I1A+54Ks8EfHYATvsLqJRZ4cEhW6ETkcj6CoyIT2g\nYvlZkkJUakGKxRi+RAXV1yZHjJSyQVQtsC6lGBC2UBttrm6f4k4kS8KT4Vj2Bi3FhdmUULzd3v+g\nH1gFWdPRzA6ecouUuM1R73UakoeyEqQQCPce3bomuiTyrnaKrBBlWphDMC0wetOsJbqo1f30L2RJ\nBHNY/RJva+cRRYMaPtL0I2oG55Tvc6JwjZico+F1ESxW6Mu2aR+UWFAnyQtRhtrbZOUEHUmlg8oo\nK4QoscgEaV+CgrSOqBl0RY0SITTaJM0cHqMNErjUJoLLYE0dAhGiegGPWCdGjhg5ZuoLTFoPuG0V\nUdAoukJsp3o9q92NBgtHJ7g3vo8N3wBhij2u/uGfSVzNkFI32M89gpRR6VAVfcy5p8gGIviSZYaF\nFa5zhGOdG5ztvocmt2iIGq2gRuO4m9p9mXw1inFFIjGYxTtQJ1isEa6VCDdKeF1t1r2DbHqT1PGw\nziDbJBkSNhEkKKhxZLHL/uo9JraWqSk+LJ+AL1ZmTpymqyrIic7DR26D/vgWVlz4e2FMB7AQuDlw\nEM0l0RWvYj2EXmfN57066L01N5zORGddDpvasLPpvQYWZ1JpA6RzM9A5vg2sTjmfDY5OyZ0TVJ33\nbf98r5nGuVjsNcE4XZbOzVI7q3fW4baP2zueMyuHXQqlLUqshofY6t/PkxKPHbB9VDnINd7mHHda\nh8hX4nwm9nVOSFdAADFkcT93gHffuMCzz/0VSd8KEgafTr6ElzrfFl4kZuXIbiWovBXlraMXkAd1\nPnvjPzAY3ICwgJB6+OtvAF8F+WkddaCDO92lX1ohmdriG9qn2YoniUWz6KKMKrQJUeTrfI4iYc7x\nNpq3TZUgZUJoZhMt1yH4lw20mQ7ZZyTejpzHJTYpEWbFHGVQ2OC8/jaTa6t43VWqE26UahcxZ6G2\nTO5LsxiWzBcqL5Hzx1gXBymZIQJiBZfQ4h3Oovi7JF1bzJYeYKCQVvqRMGgE17DGwQxLNOMy+akA\nr3AByTI5zSX62GHCesA2SV4svErEKnDJCnOfGQpWBNXsIIs6Vp/A9754vlcCgCpN3Ch0iZJHRyZM\ngX0scJyr5IhzmRN0XQolgtzlAKe4RAsXgmVysn6dY9YNcgk/O0I/DTx4qdPGSybTR+ePFPrO5el7\nLo+hS1g5kdByg6fil/jGUIRL3tO0cNFBpSwE+a52kYbm4Vb0ID/DH3Bq6TLH37iD4LcojgSYj4zS\nFrX3i18d5Db7mMdERDU6vPW4J+8TEhbwsvFx8sYI57mFjvG+Jhse5ZWdumNbH21ztrbxxN60c5ZM\ndSov9mbRdtig5mx04DTR2Bmws+Srs0KesxmBk7O2x3NSG3vdjPYTgr1ZaIO1XT7VSZnsdWPuzdj3\nhq3HtlUknYf/riBz3TxM1XgO6++wh+iHiccO2B6a2C2uZtx38cs11pUhPNT5pPVtzhYv890rL/Cb\nv/vfII93aYx6WGWYB7kZ3GYTX7zIldIZNtIjNCpe+jqbxDo5pLROI+Ci3S8T6DaRbxtwC4hDK+Wi\nZnnpmmVEE9xNnbPCJcyySGSxwo2ZA2RiMQxEzvIOOyR4hedp9bsJ1SucT79DsFrBXWmhnu4yPzzB\n5eAR9klzNPDQaHv5ycWvUfd5eW/wJCvjY/RL26SkDTqjDepHIOsNk5C3cW91EN8ymTl1n7XQIN++\n8zmWxycZTi1zjGuodLgrzRAOFIlLac7zffxUibeyNBoeXh8+TzoUp4PCNgNM1RcZL2ygKW18cpeA\n9B36xQwVxUdV8LPAFErJ4Iv3vs7KyDClpJ/T3Utk5Tg7Uh9uWuhItHAxxBoiFgEq+KiRaGcZaWyx\n4BvFozSYZJFXeJ7r+hFWmyNc0o7hlquoQhMAA4kHTOJhmaHBVe79yiQj/g3UaIdX489SNgJ4jDr7\ntAVqbjdj1jKnjPfwC1UKUoSvGT9BmSBPSW+h0aEa9MMBwAeNqIc1cZgbHGGZMYZZw0OD1kOn6+n3\nrvDbj3vyPilhCWx8Y4yIbHC8K76fSXZ4tN6Hk8+26QUbKPc6/Nzsyv9ssHXK3GyruhP47Sx8b9ME\nyTGGDdRORYiTEnEqNuxSsXYmboOy0+TjHFOhl5PVHOPguKYzM7fHtekfG8idTx9OyaPzSeL9z9iR\nyF9OkE6Pwd8XwK6WA7hoodDFL1fpkzPMsQ/BEJjtzuEzm2wFUvRNbqP7JEwEhtjgHf0pFEPnJ/gT\ndoQUuC2eG32ZwdAKY+oihWQIQdRxZZtQtWCFXvXDfeCKt/CmBZRir5+S2Gcy2NlCyIJ0T6AzoNHq\nevBebnOi/zqlRJjN6AA7rgSmJJKsZQgYZUruIG8MnudeZIpV1xAKXbzU8Vp1DnXvsqBPsC4OkQtF\nqeNGtVpUYz7qcRMxbTGlLqHUuzRdGmkpQV6I4ZHqFIQwYJBghzYaaTHBFe0YYYqEKGEiYBkCeldm\nPZDimuso2UacA9ptUsY2oVYV2qBpXdz+Jg2Ph6blwl+tUWoFMAS51wtRKNJEpShEaOHCTZMkafJE\nyRInS5wIBSJmkUClRlzPg5QjQxixbbKv/oBF3yQlMURMyFFXPTyQxxlkAxctPEaDSKdMrJknRZOl\nEyMoRgefUaetSpRFL2W8RMkSrpQ4l7vEGe+7hNQSFQJsLg6TdcUYme45T1e9I1wa6xJxFci5IswL\nU9Tw4aVOlDx97NBPGgWdAfHvCyECWFC51KAlNojq1vsdUWzXns3LOsF1bwa914jiVFDYwLW364rk\neNmZrbM8q1Ph4dwodI6xF2Cci4Z9D9YHfN0LovaY8KhByF5U7Iwddp8AdB6lSZzKFnuRcPZytN/v\n0svKfbpFd6FNZavxRGw4wg8J2IIghIDfopf/WMA/BBaAP6JXln4F+LJlWaW95y5tTvAJcg+zIxcF\nIoiYxDsFJmob3AlOUf+kyuyL16kJHgbp8J/wR+Q8MbqWwpeEP8UbrpMPR/nF2X+DIUgUiDD/yTFm\n39OZfS3X+w3feXgXp6EvkmVoW8C/qmP6oXsI1JqFmAdzS8BoSrjvt9j3j1YQP2HCx4Ez8N3Y0+TV\nMEqwix4XWHQN8b8qv0ZHUImTBSDFJsPKGq5UC0OR3gdCA4m64KPgDVHttJl8Z43haJrGkEbmM0H+\nTPoJbnKY5899ix2hnzT9XOMY+7mLSodv8Bn2Mc8s9ygSQsUiShkXLTabKd4sP8OLsW8zq9ztNeKr\nQ1eQqIRdrJNCyZvs257nVqnNfP8gS2eG8Ap1RAx+T/1ZfNSYYIkQZVYZ5nUucpPDfIzXON99h/BK\nDcWjU5vQCIolvLk2gysZfnHyd2iEXXR9Mi/zY2wwSIgSKm36ujlOFm+TK+r0pyMsjYyQVhNElALP\n8l22SbLGEF7qjG5uMHxnG2G/BSHwNvP82le/wnp/kuvT+5ljhmuuI3yv/wInuIKAxW0O0UeGUVYo\nEmaCJY5wgzJBMqf6PuTU/3Dz+kcbFixeI8Ac+zG4zG4bLdhVWNiqB5uWsMHMchxrh12ZrkaPWrGr\n9tkg6DS62LVJ7HraH4RdToWywG7mb9+DbTXXH44Jj7oVYRdwbcrDVoTsrUViF7WyFxFnLRDb+u56\nOI5tPbd/B5LjWNuO36X3xGE9HLMGDAKzpo5nZxG48gGf+KOJHzbD/grwTcuyviQIgkwPMv5H4GXL\nsv4PQRD+O+DXH74eiW5K4vXORa5snEX06Az2r3CK95DVDr/l/XnOLl1iWNvEO1bnC42/AAv+pfpf\nEnIViQoFXhY+ziYpwlaRgFHB916TgVs5uhWF+oybK88fpGO6GEikGZnegElQRR1XHaRBi3wozIaU\nYPz+BmZLYv3zA4zOrRF8u4qomQg1i1wlwq3Afv6s/iW2K0naQTcHlRvEzDy/lvu/qLp9ZH0RXucC\nSWubA9zmr3zPUZN8PM2bmIgEqBA3ssS2CwTLBpmzIZa0cYreEKKos6MnyFtRVpVRppnjILdZZYQh\n1kixSZJtYuSIk6GfbRKBHbqCSFXzcUq8xKelbzKpLPBq8zle1T/Bz4b/HV5vhbc4xxQLDPo2ySVD\npILrSHRoCi48NAg8bGwwyAYjrFDDR54o1XaAykqUjD/JWmKYwEgVv1ylJarkhBilgIEy3kHxtsjQ\nx3WOYiASJUcTFwo63na956rcBhaBAZDVLm69RaDSZEuTqHoDhCmSHwiiuyQGjCzuuRbcB6HPwjvV\nIMUWEYosMsEbXMBAYjy7wn9147fxeusU+kK8MXKOsFVCMQwWtCluCYeAVz7s/P9bz+sffbRRTnQJ\n/ZKC+s+6KHet98EHdru7OI0ie8MGNltpYVf0s4HTzixtwMTxPuwCusVu9xenJNAOZ+Zs91O0y6g6\nNybte3KqPZwLjFNB4rwfmwKyAd2md+zPb59j0yhON6PdEcdZetW+T9sdCiA9qyD+nB/hN4CVj94w\nY8dfC9iCIASBC5Zl/QKAZVk6UBYE4XPAxYeH/S7wGh8wscWggY6ManSoNAOsV0YZ8mzQlhU2tSQt\nXFhGr2UBpkDFCnCLQ5xULuMSm6wyQoUAggFv1i4y3ZhnpLJBciNDeipGNhVhw5VCdXUYiW+ADJZb\nwBREKkMusr4YG3IKU1ZRIh0ah1Sm5leJVksQhu6ARDus0Mkr+I06FbXJWjxFQt7E023gtlqErQJh\ncnyPZxAxCVgVDF3CQ4OEsk2OGH6qxMhhGBIr7iEWR4dRGgZdVApCGMOS0Kw2JSuEW2gSJ8saQ0Sb\nBab0RXSvhCp2EDDJEqfl8aCoOpYCh7jFOS7xQBxjURrnmnqET5VCyJ02ZU8QHYmq5mMtMMiUu0OS\nbbqoKEaXZC3NifXr1ONu0okkbTSqBMCy6DfS9Hd28Ol1WkGNkuhnh34qBDA1kZwWIUaeAhEWmCJG\njn7ShKwym0KKbWGAlJphU82w5EqyJQwwyAY+q0bLcpG3Yg8t+QLtoIbl20HLdZDkAG3FhXe8jpA0\nSO5kqIR87GgJREzqeJHbBud2LqF4u6SVPoqpAAP5NGpDpznioa56P9TE/7Dz+kcfBrlYjDc/9knK\nv/0awkM3r3Pjzn78d/5R646vToONE+jtsGkNmwe2+V7nJp645/wPWhjs6zjHdNbcdoLwXoei053o\npFrsn9vn2xSO/QTg3My0r71XPeMc36k1dwK2fc/bAyOkL5yj6i/wKCP/0cYPk2GPAVlBEH4HOELv\n+eBXgYRlWXb7hR16RuUfCC8NnlVfZXBinbeyF3l37Slaoy6e832HL0hfpTDlZ06YIE+Ur2i/jITO\nsLJKgZ78bowVGni41TnMH2d/js8d+hpfPvSHXLj9LgOeDFqmy0ZyiG5U6S2XVWgENUpBlcWpJEUh\nQkP08vrZKZJs86zwXbwzzV7xrW2o/5gLbV+TZ996k2eG32FnPM47HEdG54Eyzv8d/8dc5DXO8i5N\nPGwJSTJmH59Nf5uKx8e9gUlKhHDRIiwVWR9I8QcTP8kbXOA3cr9B0lrjD4e/SEzJodKhgYcCEep4\nucZxjudvMVt5wMp4Ct0lUSTEX/DjlJQQEbnAGeFdJtsreJttVrzjiC6dL0b+kIPfuUtC3SH45SJt\nQWWNEe7jJkScONle1t+tMbyyyfTvr/Cbz/8KX3vxs1zgDVpohLUiR6Zv8FzjdS6W32IzFOeOepo3\nucAUC7TRWGKcJNtotFHpsMUALqvFJ81v8b+Lv84b/mc4dvAqudlXqD09y6o0wqfMbxIQy6yGR7gv\nTHGX/T0dNu8yJG2wEe9nJ5pg53Q/49IS41srDF9Lc+/oDMv9Y4iYpOln05PDHBPBhJia4xPGX+G6\nq1PLBOjvSyOpHzrr+VDz+qOI66Xj/PK1/4mj1c9zhNcfqR1X4wd12PYjvk0JuOhlnG7HMTbw2aYX\ng142bGfae80tTi58ry57L/XS4VHzy96NQTujt+3vdjbuNO/YmbPdxssZ9nVajs9in2tTPl3HtXk4\nns2/Czxqy3fKHd/OXOBrl36TZu1/4EkKwbL+/9l0QRBOAm8D5y3Lek8QhH9OT4v+y5a1azcTBKFg\nWVZkz7lW6OQYqWGBOj7Mqf10x48w4lpBzhk0Vn0k921QDfm5a81SbwZw02TIu0qYPAGquGixyihr\nnWEy1QSDnnX2K3c5WbuCKJo0FDeGJtJnZkl2dpBaUNG8vHZd5sx5kRYuSkKYLhISJm4ahOpVXOUW\nYt5CieoIbotOUybj7qPq8aOobcJmEcOSeVs6w5ixyoi5ynX5KOF2kX2lRXzzdZaio9yaPMDkm0sk\nSRPcV+bV2xqDF4ZZ96cYaq4DAsuuEapCgDpemrhJskWACjX8xFp5fEaNjDvOUGWDvkaWq7Ej3Ddm\nSbcGGPBvcKp7hbPV98iKMQquEFWPl+TONrqgsNI/TPChTf07b3k5+ZRClBxtXETNPP56DSMtcy18\nlPnYFEHKtHBRq/sQ7ojsD9zl6Pg1CnKImuinhYaMTgMveaIEKOOljosWbpq9UgGWSU3wYyISpMRb\nb4nIT51CR2LGmmPamser17kqHueGfJhRVrAQ0C2ZU8Zlgq0yektDDHTxtJsE8g1W4oPkvWHaaNxl\nP3JX52LjDRK5HBptakMubl5VuHFfY8s9QEdU2fn6u1iW9UFP5X/9xP+Q8xoG6LWOAog/fD3m8Ptg\naIBTG3/AJ5trpLuPbpg5NxmdIOnMKJ3dV/b+4pyWcRc/mG3fAk4+PMYGxw/aINybddvZtj2GU8Nt\nv+eU9znVJAA3gWOOsZy8tq1e2WtTh11Xo3Mx0ByfySkdtI8xgQEJ7oSO8vX4i7D8JrQ//H7JXx/Z\nhy877n/g3P5hMuwNYMOyLLsf058C/z2QFgSh37KstCAISSDzQSfHfuWnOfXTg1iSQFaIUyTMCSSW\nr09y6bVPE/3kywTGGsTNCfrLAn1ChpmQwbjQwYNEjhhVzpLTpxmsy4RcJXzaGFMYdFDJGzGUms6U\ntMCMouBqG5QUP1tenS/+VBVTsNgRFHRkioTZZIApFohSwEJELAs0DA/pUIyMeBgXCh/nZSYLedRS\ng+PtMkNKjZS3xe1omXi9xORaBdENL01Msnr2k3xx/V8zSwvjogdLaPK5z26TjzepCx5yQpQpKUID\nDyVCbNNPEg8JdvBRQ2pHqRkjzLv28dTm9zmdy5Da58Xb3cfbpQvkfS5U4y/5WGODiJGn7If5RBiJ\nQXZI0OEwfWQoEMGHyce+XGZ/t8R2O47q9oNmPXRYjhAhRYUgBhKdvEbaGmR4MMKZiyXWXYMYkoCH\nJnmiFAlTtfyMlVYICWUImfioYSKSJc4Iq/jNGoXuMEumjP9nThOgzLFWnUPtEhGpiKhOUlbPchyF\n+51ZrreP81Py/8bHqq8zkE9Tj7qR6ibedVichVJcR0DnpXqClu7horTAvrU6wY5OYZ+HkZ8/Qlw4\nzTv6OdYZYkc9+jf7m/g7nNdwFjj0Ycb/m0dVhrtuxkYifOZwh1uXs3RaxvvqDKcd3QY8p4rClvnZ\n9aidygqntE5hlyrZW/f6Ezxak8TO4m2eWHZcz1ljZC8o22Bsy+3+Y7U9bCXMp3jUBGNn6M52aPam\nIuxy3DZg29X67KcIp8qGh/9uAIZL4vDROEo9xddvxYB+envSP+r4nz/w3b8WsB9O3HVBEPZZljUP\nvEBPk3EH+AXgnz78+oHFiTNGgtfrz/Bl7x8jyzorjHCPWTKDScznBYqxEMNCifPS95kN3WOALbxC\nHY022yR5wCRFIoTkEof8t3AJLYKUMZBo42K7leKl+c9zIHqTF8e+gUdpoggdaixRFSFAhQQ7LDHO\nBoPMs48wJQQsKgS54j/BPWZIi0kKRBhinbO8DesS0StFLt59G2lUxzgukvDt4PE00EdADoPi7cnq\n8r8a5AFDNF0ecgvr6GGT8fo6hiCQUaPghj4ytFG5xjHqPXEgCl2OFm+TE24CKwAAIABJREFUqGeJ\nD2aJDOQoJnzoisRp620OqLf5f5f/Mdc9x/nm0As8130VRepgILFJiho+BtjiHrPkiBLh+xxoPeBc\n4TLGtsTOSITV/hRZ+phmjgPc6XVrYYuh8DrLPzPGTOkBpzauMj80ypannzw9fbqHOglzhxfuvY4l\nwWtnnuIyJ3HT5DleJUucV7ov8Of5L5Ds/J88zyWGWGd/dp5Auc5r4+epKV7GWGaZcebLs2xmR/mz\n4S8hhC2+6PozvDstpJsWvAv+cBUzbtHEzX+69fsEynXc3iaEdHBb9HXyZKR+drR+Pq98ncvWSeb/\ntn8Lfwfz+qOJnsZi8ekhXvnSFOp/8U1crfr7nWjsr04pnuvhmTbY2XzyXvrCaVYR2FWa2ADupFv2\ncsN2diqxq7awNxjtazrPd/ZktAHYXnDsY+zO7zao2kAOj2bsCrubj07+2tnqy+a57UXJXlzsMZw1\nw2shF2/8+lPcWJyAf1LjSeKv4YdXifzXwL8XBEGlpwf4h/R+t38sCMJ/xkP50wedeFp6F1kZ4nLt\nNP3qNl/W/oTx4hrbxgBvDy1RcIdQ6HKYm9RFLzskGGKddYbIESNOljxRtjqD3KichJyAx6yxOTFI\nWQ+zVR2k0a8S8eeYaC8RnS/hWm6z9Z0i/dUu1VKHlYJI+xfaBPeXGWOZscY6yXaaVtfFcmCcsc4q\nn15+mcqAF3e8zpi1gq9Qx2pA96KAEBBQXDp9xSLloI8VzzD9cobJ/AJfXvkao4MriMEuZU3HlEU6\nWQnlPZ3C8SiNITdR8txlP92qypmVa7BlYcgS5jmTit9HxQowtbZMWCzSdivUYn5uZY6wtjHKZGKO\n2cgdYnKWq+JR+vQ8k41VBE0gK3Vp42KKBcIU2UbnT+99ibv5Q/zc+O8SVfI02y4W1S4dQUWjzdPW\nm7RwkRb7WfGN0CdkUdRWz1qPmxxxNhnES50ZcZ57I/swBIkAFZ7bep2W6eLmwBEKYphtKQkBk5ic\n47i+TKqRQXF1qLlcBNQKkmBQIsQ6Q+RbMToljbWBYW55DzLuWSIV28Y6KJKLxsj2R8jQK6d7LHaT\nGc88XqvKkm+YddcgFTPIjhxHo9cg2CW0/g6m/99+Xn90YbF6Pck7zVF+rPYdZOqPbADupTuckOOs\nP+JsXmBvuDlrgDhNJs7NQCcw2tdy1jJxtthycs7O3pF7izXZ48AuuNsLDHvGtYHVHsdenOzP4uxS\nY4fzc4mO69k6bR0o01vcolWNb/7eCa6V+ulVfHqy4ocCbMuybgCnPuBHL/x15+6T5nBpd/kPzRcZ\nMLa4aL3OoeZ9dtQ4/lCBtzmHjxoxcmToo0wQD3VWGaFECC/1Hkdrhlho70cvKyh6m4weRe3qKJbB\nYP8q0437zC7PEbtdQrvd5dpdiFWhlYbOjoT2Y3X69meIUCRq5IlWS3hyTYZHNvBT4xOFl2lEFcyW\nQCKzg9o0aSZU6s9oUAJttUsgW6fu89KIeOmqMsnSNsl8Bilq0OnKqOU2WlFAzsmwA62uRldUcNGT\nxgkVkekbD/BuN2hFFLKnglwJHKdIlP3Z+0RrRYpqCDWgk64nuVM8zIWpVwm7CxRqMTbdSQpCFp/R\nomMpGEhU8eOhgY8aHVS+W/sYq/VRvuD6I2JWHlejy3Z9AL+rQkLbYUDYYksYoESIHRJU1AC6KFKW\nA+jIhCjhoYFKB0nQ2YkmUY0OE61F9m8vUOiGWfaN0PK6ERWDEd8yXrmOZBlIHRNDlWi5VATJpIGH\nHFFkurilBpKq0xI1CkKEdXmQWthLLexjeXoMHZl210Wt4eeebx9mALytKnfVGe4pswiYWFh4qXOb\nAxzQ7/1N5/rf6bz+KCN3x82D9Tifmo0hbLVobzcfUXVY7MrZ6uzSDbYZxsk3O/lcZz9E+EGg/CB6\nw76W06zipCWcWa8N2HZm6yw8ZQOp/b1Te+0Ef1t6Z3+mvUWunNUEnfTLXiWNLW+0760GaANu3MkY\nD17uY6Xi50mMx+50LBNiUMxxOvQOSWGbsuCnGZNxiTXGWcJLnRJBNhjEQx0T6WGN5y4dVN7lDDPc\n46B2k0CiDBGBpuliXt7H8+pf8rzvFe5IBzhw9z6J1wtIotkrApUCxiDRB0EssvEydXQMJLLeCJ2S\nyszqIvFoluagytUzB1GUDtHtIsNf36F5SKP2tAvRZ/Z2W74HbEC8USAsl1Emu1TOeMk/FcSv1vC8\n2iT+2xViAYifEDA+AwlvBq3dZsOd5BjXCNTqqPMd2Afdoyo5VxwdGZe7QWtapDMv4kq3mDHuURwL\nIqW6bLv7uZE/RmUrzGfHv0reH+Xfef8BR4TrvebDxDCRaOAhzw28Zyok8+u41gzkGOTUBH+69DP8\nzMDvcXD4HpfcJ1GEDtPMUcVPXM/TbXr4lvwpwmKBF/k2EzxghTHmzGle2P4eE40VVG8Htdgh1Krw\nSwu/xRtjZ7kZO0AfGe4Q4w/li+wLL3Cu9B7xfJ5X4tPcV2Zo4OFTfIu7ffspRQK9YlNsMsAW73KG\ne8yySYqjXOdM5TJPzV/izyY/x7XYUULuIreEQ5QI8pP8CWn6ucUhQGC6/uBxT90nOLYxDvhofuUI\nwr8yaf324vumGTt71ti1nttZrMEudWIf32SXe7aBTGCX2mixuwHp1OXYRh2RR2V1Tk4Zx/jOlzMj\nd7Gb5ToXC9uabl/PCbS2+sRpnLE5aXtcZ1EoyfFzmxKy1TPOBsKNTw3Q/s8P0/nVFXjHKXh8cuKx\nA7aMgSiYhKQSXuoYSDQ1jTo+SnqIfdcX0aQOtVkPhiJwV5jlq/oXSMppImKeF/k2GeKUhRBj8hKj\n8ioRs0CpE2Y/d0hKW2wIKUoDfq6eOcy2mkQSDRZrc5TbBYKhCvIZC/Jl5AWL3FSYsF7G7W6RmQlj\nBSGiFxmpbaIutvFuN1ESOtZdC/G+hXjeRGt0ezO4ArJXRx7WwQOu7Q6+d5psH03iGm8x+NlthHtt\n9IhGPhGhiwIFgYFLGZamRynGQmw824/RL2H1CURbJWCZlqqCBoZLRtAsNKHNrHqPuJpljmlueI6x\n1KcypK2hCxLzwj6ClBGwqBIgQp4YOTosEfXcZrCzgSQZzGuT3ArOEhwpEAiUcCt1RoQV2mhYCJzl\nHfxyjXn3OCvSKJskCVPkkHWLGDkWhEmUYBtXtYHrvS5GP9QGPGz6E7jdDVJsoiOj0EUQTFqSiqUI\nuIwWIaGEixYWIhotxCqIJYGL/a8z477HFgPMMU2ZIOMscbJzjYPiHfwDRUY9S3SEKb4vnKNAhKhZ\nINVNY8gymtShQJgVbfhxT90nOHSyWx7+8vc+xsduFZlmkQy72aezdogdNq+L4zj7fZs/tnleuyTp\n3poiTp22LYmzeXI7K26ym5U7lRj2+aZjTDujtzcQnZpxG3idxhqn29Fp9sFxb07A3lugCsf5ztKx\nKjAD3L05ymu/f5HsVsXx23qy4rEDtkIHLzVC9DjUFi6yYh9t04XZlgmtV4mpWawpi6asskGKvBFD\nlnTiZDjL2/wVL5IhwUFucbrxHgfqd/E0GnQDMlvBJKJgURoJMDcywWVOImJSvNmmfE8n6K4gnLRw\n3eqgZnX0KQVFr2F4ZFZnY5Tx48s3mbq/hPq9LkZTovlTGuqfdgm+VwcJ9JREe1JBzFvoKRn9gIQn\n3cK904YNgSujKdSJNvHhLNa/7tAIutnUklgIRAplRl/eYtE7Tu5kBO+zVcyihNww6DfyKLJOS1XZ\nIYGsC4Q6FVSryygrzHKPJNuE1RID/i2GpVXaqMxwv2fSQWLA2iIglIlQpMkGKZaIKkWsMNwNTHMj\nfIC+8CYSHUoE0WhjImIh0E+akhJkTpkmbSaoWL2Wan1WBh81+sQs7YhMuhBDykkEJgo0Bl2s+5Mo\nQocYOfJEiFBkhDU81KmqXnbEOG6xiZ8KKh3q+NDqXWZ3FnjB910MCb4lvciaOExYKHLEusHx5nWG\nhHWaKZkhaY0aXi5xmlrZT7hdputW0UWFtqRRIMpV4djjnrpPdORXPbzyLyaZGJjm4NQDhLVtzHbn\nfXC0gdKpvLA3B51Zt1O37QT6Ors2770NA2xgtDf23I4xnVSGk6d2ArDTgLO3G4y553xn1xpnrRP7\nfTurdhpnnFLDvQuXDey2dV8HTE1FG06ysTHDK5cmgfs8CR3SPygeO2B3UTnCTTZIUX7Im6bpZ7q9\nyHP1N7j11Cx3tH24PD0ZnAD8E+2f8bLwce6yHx2FGj4S7BChSHixQvBeAzFnUjoVIHcqhoBFjDxJ\ntllmjCJh6oKXrl8BD5iyQPGkn4rmQcTgiusIZUJI6OSIkcxmML8lwhWoxTzMRcZJPb1DSkzDDajG\nPZSf9aKdalNQopSNIAfW5wkKVYyURNqVJNQqESw3kFom7Y5GjhgjrBIr5RCuWUQuFLAw8VIn9v0S\n1e0gf/GFT7LqGqKGDz9VPrH6ChevvUliNo0RFBCAae4zlVmis+Jh7sA4O+EEHupskmLMWuaXrf+H\nP+ezLAnjZFgjjIeIu0BtRGNDTrLMGDV8LDKBhcA1jnGQWxznKtc5Sh0vBSvCZjfFppAiK8c5IVzm\nuHCNQ/8fe+8dZNl93Xd+bn45p865e3LGBAQCBAGSACmQIKmlRFGyZZlyrb1ebVCtLVe5al2q2pLt\nda0sLbWl1SqtKSoyiSQEkCAyBoPJOXWOr/v1y/G+d9P+0X0xb4aiqBU1NAjqVL3q7tc3vL7zm+89\n93u+33O4QgsvpwaOcuVT+/jJ3FeYWJ9hV+A6JSFCngQZNhhkkQe2axDn1QOsqxkUsYODSJIca/Tw\nQOQM/z2/RW9tjS+1P8afB3+SjH+dEXmeEFWUpoli2oiCgeYz6FXWeJpv8ttv/3e8UNpH/9PLFOQ4\nt51JdMfD2dVj93vpvsujBlzmxc8eZ+3IBPv/l/+d8MLqOzRCdxHOBWOXZoC7i3pwhyroltjBnUED\n92qn4Q7gtrjDS7tADHcPGeh+de8Hd7L47vaw7vtS1/buZ3aNMW523g1i7jbuueHuplGuoca9aVhA\nrifJ1/+3X+LK6Rj8xytskSXvzrj/I8I6G/SVa6wE+unIW3roMhFmZAfFa6F7ZWwZyoSpE0TAISRU\n2cV1QlTZIIWDSIA6BgpWREQfUsmlUqwkeyi1I+xevYke0JhJjZOlh4yew6fPEhkqgwHCFfD2tLmW\n2MlXlI+hKx6S4iYPcIY8CRpRL60TCnLLQC0bJF8povXpGMdF5FdtdI+HzUiceiRImQgdXcO3V6e/\nsIbfaZHW1vHJDdo+mVV/lFvBcVp48GY7BFothMMOmZVNPKd0Woc1VMUk6KkTVKpM2bfx6m28LR07\nIfH2kcNIAYNkOU8ml0PYbKHLXqoJicG1VWKVMjuiM7R0LzXFz6uR97HACEu1YebW8qQqcXrDa9zw\nTKHjIcUGEcrU8TPHKAoGCXOLYlDbDnk1ju0V6ZXWqBGkIfhZEEboYZ1J5zbxlTK2qLDZl0Bx2kht\nk1SpiBOQEBuQuVagcmud0esKgbEGOS1FhRDN7Sk4B7jIKr04HodWVGFTj1ISwxiqQlPwom/TM7RB\nKIKUdYgbZbxhHXvK4XjfSULRCutamqoQom1rmKaE4H93ya1++GEBDbKXW8Qkk8887CD5YOP63brk\n7u+72552G0bcLLgb0Ltt4PcWALuLdy7P7ao24O5eH92FyXtlfq5Cpbug2a38cM/tbqvf8zm6TTRu\ndGfoLjXTDXJuJu8Cfs8eiB10+OoFk7UrOlvPFu/euO+AHTcL0PDR8AZpylv9HwxUbisT3FImOcpp\nQlRp4aODShuNAnGGWCTQqXOrtgPRa6F52tTEIGu9acyMwKw8Rk0IEqw2eGTuNBd79nIxdWDLGNOZ\nI2guEZgyaOU0Wos+HAfWpH6e936YuFTgQd5i3JyhJEcx0xK1Zzx4xDbe13VGXlqm/XGRzgEJI6dQ\nSQTJkWKTFAYKqqfD6sE0Wr6NN7vKeHsGqWbSQmXJ308wOM6AvoyZU2nbXtSjdRIXSmjVNsu7ejB7\nJaTwlgV/wFxlqLkCVZHzI/u5eHgPmtBGXIGBxQ3kcyb5nQHmDg4yen6ZntoGliqjVA3e9B7nt2Of\nI0Eeo6WwUhykWVfohFXOcgQTmUGWsRFYsfvJOSnGmSFilonqFfoLOdYDSUSPyW7pGi3BywLD1AlQ\ntwPQEem5tU5GyBOMVohG89h1B/9iG29/GxqQvFTm1DJ0FoIwBILmYKCQpYcJpplgmhoBcnKC0/Ih\nhvyL6Cik2UDCwth+gioSJdqoElyrEa7V8aZbtMdFHt31EmlhjUscQMAmTgHN7qDFa2x8n7X34xCt\n59fRr5dI/HwGuajTul58p5Doao1dysDVP8PdMwzdrLZbReISAi74drsQ77Wkd8sCuyV03YYaqWvf\ne23s3aDr7u/y226u251pd8vz7m1Q0K166aZe6NrepWEkwD8cQxjrofF7azSXWrzb474D9orWx9eS\nJ5Bkgw4Keba0tCW2pqPUCJJmAw86IaroeFhmYIvrXs1w6bkHsI44DO6Zp9+3wlfEZ8mLCQJCnSOc\nZZ94Fc3XxlAVDBTS5Cj6I0xH9/L+fWvUjABnzQewNRFJM/m36q8yLU7Q09pgaHMdPX6NciBEkTj+\nfgPvrgrcAkV3MFoK84/3cSsyQY4UI8wTpYQHHRsBK+ywLsRJvlbEt6ZjSwJ1PQQ1iRMr53kt9RC3\nOxM8/fVvIRsWvpTOcGWVck+QDTVORQ2R7uQwVIlyJkyPsEqoU+SmsoNa0seqk6TnZoEqIaaVCWZ2\nj1MnSEGL0xdZpSKFSLLJ0zyHGHUojSRIJnvfadYUpkKUIl5arOgDXNL3c1Z8gKYWIKTU2Fu+RcIo\nsdt/m2XfAEvSIBukOcR5jutnGNjMol3rQAcmQkvYI9aWYPUk6I9qbIwnWf1EH28Kfs4d/zhrnl5y\nTpKqE0IQHV7kCa6yBxmDCBUMFHrI4qVFhnXGmSFAnRlhnFImzj7pKk+ZL5LfH6Ge8iKpJprQwUOb\nVfp4mDdIimdYVIfYFH5cpqZ/v3CY3xjkf/r9/8hnG1/kQ+LvcsHeohtEthyL99IgLji777s6Zrtr\nG5XvDheE6dq32w7end1289b3uhthC+TLXZ/DpSfcoifbP1e5M7SgG+y7zyl2be8WLw3u7t/tFlrd\n3iIBYCfw7ZOf4M8u/xTzG5e3z/bujvsO2C3JS0P1oiESo0TMKXHKPMYNYxdZo59j/tP0yFkcBGoE\n6aCSIoeCgeQzSY5s0B9dZKd0jR3c5KawgwZ+EuSRsMipSYx+DVGw+ED+VUSvhaianFRr1EM+7JrI\nQH2V1WCaoLfKbq7TwosoQd4XI2EUSRSKSLqFHDQwdwvImkOlP0Q2kmI+PsxteYIlBllmgEOc4wHj\nLMqqjaA7CBYElCbttEY2kMY332CwuETsbBn/o3X0PpXKwQAbShozKdPnX0WumnjtDngE1uReTEsl\n2cwTK1YI6zVK4zFUbxs5alA95EOPKMiCwUqwf8uSTZq4uomEgY4HjTZhpULSb1NXJ5i3h7jdmWJS\nvk1cLuCniSa1QYW6EGBJ7ueKtBsnKeJXW7RkDz6hyTgzeG2d3ZWbhM0qeV+M5GAR32wL+bkmrY9L\nOFEgCqFsg7rsZ2EsQTOqIsckMmQJOFVsQWSAFdboZZU+hlnARiRLD028LLeGyTb6mQxNE1RrdFDx\neBo0Yx6ujOxESJhIgQ4aFlfZzW2mGGCJPAmWGEQXPcjflVv9uIZDo+1wdcnkhZFjWOM2gevPodQ2\nvovK6DbYdJtpXPqhu/eGC+Jwx9qts3UjkLkb8LvB+t4Cn5tVd/c5cQG025zjZtSu3dzdrrvY6UoP\n3QJkNyXSnb27fyNd5+kGawmoB9N8a9dH+M7GMa4uuEfrVqi/O+O+AzY4xCjQxE+KDVLk+Avjk8w0\nJtB0myn1NnvkyxSI86b9MG1HY490BQcBJy1w4unXOM4p9nKFAHWC1OhljSilrY5y6gjmoMzB/GU+\nWngeOWrSEFUWUOgwRLRaY//8q5zz76HtU/DSIkSVihbmanKKg5vX6CnkaFdUWv0ylUk/4UiLDTnM\nLBmK7SgbZLgp76RIDM1qc6L+NqG5Jp5SB1m0YBBy/Ulm04PEv7jAVHEd4aLDyP55qgd95J6NcoYD\ntPDyEB0ycwXC5QaejE5OSlFpR4gWa0gLdZS6QV8mi+roBDp1CnvjiJj0V1ZZ9g9Qk4PUCBKjiI6H\nPAlW6dvi/qmy0UlzVd/DWq2PwfASgUCdGEWS2iYpLYeAjYnMTaYoD225TAUc4hQYZ4Yxe5bh4jKm\nonB9YIKdx2fJdDbx/L6O/rAHc1hCONBGvWmi3bKoDoaRqDPh3OaQcZGaFECXPOzmGq/wGN/hA/Sy\nRtPxMW+Psmo9yFptgGohyl7PZQbUJXpZI0UOw6/wqv9BhlikjxUCdp3zwmFmhHE+63yBb/FBXhbe\nD0DAqH+fdffjFFXgJC8PPsi1/Uf5x60FBhfrGJXGO/I2F+TuLUZ2DyXoBkBXHtitYW5xZ6q4jzvO\nSRdo73UYdofLT7ug260S6aZAuk0yMneeENz94M6NpVthcm8W360rb3HHvi4BhP2sjOziDx76JXLn\ns7Dw1t94dd9Ncd8BW6NNiCrDLLJJkheEDxHU6uyXL6IETZqqh2X6aeHnSvkgC84QFyIH2SNeYbdw\njY/zNRr4WKGfMWYxUGhtN4iMUCZOAQeBdkjhoncXg8oSK3If1/GzB4FEqIQ4ajHiXWDDSTAtTDDC\nPBXCXOAgw9YqqsfgTHo/OV8Sv9Tkkd43qP1OEfVUjYc/dZv2ER/rQxn2c4nDuYuE1lusTmQI5Jv0\nzW9AG3ydBv2sEKVCWLUgCmGlgolAiShVQnRQqRGkNhkCE3q1NSauztHMBvnGwQ+z6+A1jjbOkKwV\nkW7aSMsmaalIvFYj3Swx+7FxssNlDBSWGKRAnDwJrrIHCYs+XmN6ViW7OEynopE6VGBiYpowZUTn\nGIajsE+8vHXDIsIs40QpMcQiEtZWG1WxjZEQaIsa60KafCzF8LElHgme4tyOw2z4EwwNLnE7PsV1\nYSc3tClWeZPeZoaxxb9kLZHmRmqSkzzICv2EqeKnwVJ7kNO1o+iFIB1BQY7qKEqbMBX6WUHHwxKD\nvM0xTnGcvdYVPqf/HhPqDEGxxv72VZqKn7oS4C37BIsLo/d76f7oxeXrNI1l3vrln6RyKsLYb30F\nuJPRerlT6OvOuN2Wo26eabMFzO4kmm6Nczcl4Xa+czlzV2rXrShxqZUmd0DVLVLe28/ELTZ2m2m6\n+2+7oO8Oyu3mpl2wd1lol2Zxo3sU2OxnP8S1o0/Q+O0zcOPdT4N0x30H7CY+5swxpkovUFGjLARG\nKGykQHUIJTZZpZes3UPBitOWVBShw4aQYg8QpkKCTZoMUiHMBmlaeGnhZZEhelljhHliFHFUgaya\n5hYTNPFh2rNE8mU6aJxJHMRSoUiUZQZ4pPomMSoUQnHaXpUVLcNmJAGCQ6BWR561iF9tEZiu09+A\n3dYNDEtitL7A1PwMntsdfCM67YDK4mgfzYAfRenQU9kkmG/RscJcOLaP9O0s8esVJElg177bWH0S\nSavIiqePpuohyQbJQglzpk6fnMWYUFiJ9TFwfQOnLdBI+vCbOt58B2XJZKQ1TxuFOAVUOqSdDT5h\nf5mgWMMj6FjI7PRepxX1Me2ZIO1dJ8kmAepMcQuhAQ9On8LnbVFP+VkK91OWwxSJ4aOJiI0jClz3\n7UQWDELUUBQDO+0wHRzhdmCctq2xS79F0p8nopbRBQ8GCkUpylnvYVqKxjoZppmgSggZkxpBbFEk\nrhTo814jL8aZ1kaYscdImRtk5HUWGWKBYZr4WKOHULuOkrcIxBoofoNNMYFHaDHKHJskqXhi2y38\n/yHeiVIZfbbJ9PVeApkxen9uP+qLc4hrtXcIJBd43czU5aTdvtcureFmuvc6FV1OWO96T+duzXW3\nwsN9r7v5VDf42l1f3c9xb4Gym+pwz0PXsTpdx3NB2T1Wd9tUqy9I54kxltKjTN/w0p5Zg9K7U2/9\nveK+A3aZKOvmCX5i5QW8oQ51Ncji/CjeYJN4Iscq/eTsFLeMKQ75z5OUsiwJg0TtEqrToSDGqTph\nqk4QS5TeAexr7KZEFAmTIFV8tCgT4U/5NBnWCdsXSKxVWPH28q3E+/GggwOmqUBept9ZJKyVWAwO\nsiam8Tg6/c4Kg6UVoq/WSVa3qA5SMOadIWmuM5hfx7PUhhswsJRl4UQ/V57cQd5JMFxfZjS/hGcd\nCkaSFz74fp75X/+KHS9PE1eqTPyzBQTNgRrketLkY94tA4sAkUqFD7/yba4LU9w6MkkiX8HqFSgc\nCJNqFPFrOmLZZlKZJkiFHCk6jkbGznLYPMdtZZJZYYw3SPHTw69ycPgsf8TPkCCHuj184Lj5Nidy\nb3PgW9cIpJp0DstseKI8L3+QF50nyQjr2IjUCXBSOUGfs8qD5lv0mGtUxRDn4wdZI0O6nGfX4jT7\nItcYji6wEU7RokxVC/L7g5+lR9gaeHCeg1imTNLKE1YqhNQqj6qv8GjkVS52DrCg/yJn20ewLJmU\nN88VcQ91/GTIUiKK0xEQNkUsr0w+mOAtz1FEyyFo1TkinoUBOHW/F++PYJgbHdZ/bYH1f+Gn8m+e\nxJv7S7SyDk3jHdDrVoh0N+3v5qDvnQ/pArjGFjDWuSOAc6mGd6aNcwfU7+Wa751c3i3zc28U3fpt\n94ZB12fotqK3uVvR0n18uraxfQrmvl5K/+ZJsv/Zx/pvLfztL+q7KO47YKu0cRSd86P7uOrs5lpn\nFzsmrxLQash0OMgW7ylpFsutfgxBxe9v8O3iU1y2D3MwcZprjb1YpsRPhP+SohijToAHOINCBxEb\n77bCxEIiShELkXUxzeeHfxJLEglSZQc3GaivEV5voIZb1Fo+wicAuanHAAAgAElEQVQbRHdU0JIG\nsUaVv/R+hNcCj/HP9/4/REKVree4Diw1B5lLDBH3vIayv409BvImtNMaTdvHwfpV4k6eXDrMypCX\n0OQAimjQ/hmZ/IfCVMQwaU+B0NU6vACFZ2OsP5ZhN9fo7JXI9Ye5bU3SSagkpDxKxKTkizErjHLF\nu4/0/hxjA7MEUlUGLZ2oWMJf7yBjUPGHmBbGucUOSixiUyJAHT8NsmS4yEFiFJg6O8voxSW8sTYk\nwEKmQJw5Y4xbxhSPaK+hSAbzjJBhnZHaIqPrK2imjhn0EB7YuinKDRNhGsQGxFJlTjxxikUcTF3h\nxto+0pE8Y/HrzDDO3M0JNhb6+PCDLzASm31HHWLKMs96vspLuQ9xo32A31VSGHGB4/Ip/lnrD1jw\n9SH6LUrjAdpeZZsCGuLW+m4qjQj7hs+hqj9amdEPO+a+CZ11D4988lGGJqMEf+Nt4I4Ez50o41Ik\nbpbq9udwf+cCqWsH727g1OTuaTXdN4J76Q4/dzeAcouQ7nsttigYN9PvLli6AO1+7XZCuvZy90bj\n3hRM7jbPtD53mKU9e3nzVzRWz///vJjvorjvgF0iimUHebH6BMtSP3rYQyywCbbIUn2IjGeDXnmV\nj0pf57R4lDxJ/NS5Ie1FEizi5KmYYebzoySuF/AP11D7trLGDOsMOkv0GusEnAZe2uxQbtERFZbF\nNmpIR6NNPysYKNiCwJAyz7o/QVUKIHhFfJZOuFYnXisTEqus+np5a+IoQ5kl4u0Csm1S8wWoiQGW\nAz0shzLURD+JzRKGrNLfyBJ3CmiKTtO71aVOFk0cBOamhmlOeQhTwb4t4HTASgp4fFuTW6qEsRMS\nesLDKj34aBLulKn3elkKDHBJ2E9b1qgkgkiJDlUrRDRfZmp5Bn9cx4hKFMUAHtoEqOOltd3bo8U+\nLtPCQ5UgUUoENprEZsvQB03Ny2osw+vyI5zvHCbb7GdFHsQwFa7q+xjxL+AVW2SVDElxE0mxiFIi\nTBm/3ISAw6I8yFKgD0mwULCRhBYhpUqhlmDOGCcWL2Goy8g+m3Fxml5WcGyJZKVAgBZBpYlHtjjt\nHGVamiAsFBEFC1VsMyLMU1QivBx5H8v0UzXDLDZGWDUHaHc0lOsd/D0/WtzjDzsqC9AuSwQneqlm\nFHo+E2Lg9Uv4lnPvgGS3LtnNtF2gdsHy3i54buMlrWsbN+51Q3bL8LoBuJvW+OuKlu6t2NWDu7RH\ntxLF5da7R5h1c+3u8ZsDKebft59ceoKF2SSz34F25W97Fd99cd8Be94ZRdF7ePvSw6jpNpneZWQs\n1hsZLhYfIJvq4ePyl/jX/BrjvhlmGadKkGZ0ayrLM3yda/IeTuWP88Uv/iOe+ujXOdB7lhWhnz1c\n5VH7Vby6jdCBAG0eCJ+lIyrAMp/kz5ExaaPxDT7CeiDNSGCGJh4afj+FeIyx4jKJYgnq8JDvJJ5g\ng78Y+Bh7ucJBLmxrrh2ilLgdGmFOGGWZAXb5b3Csco6jxQusplJUvAH8VpNMscjI+jJXQrs5bR2l\nj1Welp6DloOeVtEfl0j6NjARWaMXABtxy8WJREP1kR1NcI0dnOYoKTa2midh8R3pCfYvXOPYly7B\nR8EJg99uMiXcJCyUmcOkzSAyFo/zEreZpEqIAZYJiVVsS8RakcjtinNhYA9/xGe41jiAWdV4LfAo\n9VaI1c0hnu3/KnpA5ZXAgxzmHEk2twu8RbSwiX1A4u3IYS769xKkhsEiac8mxwZf59yNE5xbPMrT\nh77G4OQpQpMVhpnDciQ2jQQ7V2cZt5fYFZ1mIjHN171P8bv8AnEK2MAr6oOMME+WXv5ffo4km+ht\nH6c2HiGVWCUolTn1pYeIHvoHBvv7hV6GU78G07+wn7HffIYP/fyvEVgroVjGO/ZuV0XiUgguteHq\nuLvnOra2X66ypLvPh3uMbielm7Xfa2aRu87TTc20t392reOuxK/D3WZxN8O3u7bpfgpwwVyUFEqH\ndnHqN3+ZuV9eoPB7az/Q9Xw3xP2X9ZVFjnlP8fDhN3E0ARMREZtJ702mkjepaCFWrT5+yfwNUMAR\nBWxEHuU1hpnnJjsQvA6Dk4sU/0mCw+p5nl55nsuZXfRLy9TsIM95HuVi8wjZSi8P+E6SULZGZr3O\nATZJkiNFlgxpcvwVT7FGL0knzwedb+HrNN8pR9cFPx50nuUrSGw1319ikB6yjJrzRKs1htRV5gMD\n1AjSrmkIyw7eUAtNdfC3m0imTdCoMeFM88fP/Syv2Y9z4SMHiA5XsDZVli8NMTI6g7+vyg12MsAy\nU9yij1UKxFlgiCEWyZPAQmKAZXrJotLeAs5oGSaAF0G+bON/v4G/X6cWDnKTDHH6UenwLZ5k33bP\nkAxZ9CMKp4YO8R3hA1TSIWr4qRNAdCxMW2bZHqDPv8KTynO0NQUdD2PM8setn8YQFB70nGSBYWxF\nohNTWFb6UOngo0mCPPu5tPUU06+wmBgi6i2SI8UNdhKmwsHSZQ7nL2MmBKoVP+qcxTnfIS5596Pj\noUicJn5C1DBR0GjzAGeYY5QNLUmyZw2P1gSvQ+LpLNFokex9X7zvjai9VGLmcxa18C/y/kcO8guv\n/DrLOGxyh35wqZDuMVzdZhr35Q68dTv7ueF2v+suBLa4k/m6v3Mz5m79tZuZu9Zz9xxwt2QP7jwV\ntLi7IOlm6h0gBkwJAr/z6L/klcgRNj43S/3ce+OJ7L4Dtp8Gqtwh3FMhQB3RtrnQOIzlSCTUHBYi\nWXqZYXzbdtzGMBUekt9kUFzeUjDITaKxIs2oF3+hRlCvoaGzSj9ZoZfz8gFetR5ltjmFx64xwixl\n6uRIscAQs0wwwBJpO4diWTQlP1WhjYFCVfXTCPgxbAVHgYy1TlLKkaWXeYbR0fB1WiTbBVq2HxGb\n8PYA3Y6i0PYrmJKE3DLw5A0ECzzSFldbI8iSM0iQIrfCO2jbXuQ89IlL+BDIkaSNhrhtufbaLQJO\ng3Uxw6rQSwM/fawRocw6Gfw0cGIwu2+EVHMDWTapCwFqQpAicTZJMsv4dtaroGzXzOcZIdebZrl3\ngAUGsBFRMDjCWcJqjZv+3ViSyICwzNPic2wISaqEGGWOGcbIbrddBRAlm1nvCGv00MS/1X+EJdpo\n2IjEg5sQtLHZuvE6CCwyzCiLhKjSthWEd+QHAqalUDcDSIqNIhok2aSOnwIx6ttDizu2itMWUCSD\nuC/P6MQMFT32vRfdP8Rd0ZlvUVwxKL5vnKBzlAM8S2biDEl5mYXbYFvfPW0G7gBpdxZ7r+7ZpSXc\njBju8MgufdFdBOxWhHQ7FrtNM92zFl0axej63lW3dNveBcCRITUJjjnA2ekHOOsc5cZqDF6ZBfO9\nYbS674CdimS5xlNIWOzlMjusW1zP7uemNYUYaZOI5vF5GkSkLUAodaJs1NPM+UcZ02YZZoEoRRTB\nQBRsVhI9XGAP14WdLDJMRQyTYR3BcWjZXs46RygSpsUKYcrECbDIMI/xCo9YbzLWnCPqK7GpxJkT\nRvHGWjiOSIUQU53bjBpZdFGjI6jYSEwwzXhjHm/T4MXkcSpqEA8tHASMlEA55aMkhAmutlBmqogO\nyF4Tn9DA96EK/c4Cj8sv8x0eR4l2+Oljf8II87TwUCTKdXZxhgdIscGj1mscM0/zRe2nmBdGtjoJ\nksVGZJYxfDQpJUJ8K/Yoj+99mYBQY9YzRkmIsk4GG5EFhhlmgU/xF4DDRfZzhqMsMoRKh0/wZfw0\nkLDYxTVeCj7Ofwn8LLYgcbBymY8XvsnnM58j70vgoUXUWyJHmnlG2M8lohS3ipWMMs0kXlo4FBC2\nB9LGKBJjK7uOUGaEeYrEWItl2PDF6LuRw6/rmD0y+7VLXDem+Er1WVLhTZLaJn2scol9XGcXz/MU\nPazha7S4ebOP6FCZSd9tTvAWXy9/4n4v3fdWGCa8fJIzzg7O8/v84VOf47h/meVfB7OrhUY3SHf3\ntf5eHsBuCqXJFrftHqe7V4k7LMDL3aqObvdity3eVZi4dEyTu/XW7mdyP68FiBoc+gS8VX+Qf/7r\nv4316l8BJ8F+9zsY/7Zx3wH7gH6ZPv4MEJgxx/lz4ycJpQoMzi2yeHqYcjhJe8SHb18V/UqAlu7F\nGFBY8W4NzO2gImMxxU12cZ1Vs5c/sj6DX2sQEOpEKNNGIxbbZL/vLJOem3hoMY2XElF2tm/zVOMl\ngsESHUlmxjeKINlIWCwySJoNgkIdDzpzyghZJ0OfsEoHFa3WYff1aTLiJmrY4BHPW0wHRpnThgDQ\nBS+1TpD4jQrBenPrWUwDf0dnaDHLp+N/zlXfLlbp4yAXSJGjV1iljcY6PVSIcIRz9LFKG5UFaQhL\nlNgnXKGHdUpEmWUMLy0ecM4wUMuiSW0afo3ntKepEiQhbLJBGgOVPbyNxE5qBHiTB9HoUCdAjhQD\nLDPBNCly9J/OkjxVIGKU2X/kKrVHv0ova/i8On8Wf5aXCk8SrRcYTC2xkxvs5AYjLHCao7zBQ9QJ\nMluaxLQUJmPT3GgHOFc7TMRf5nZjJ/qmH33BQ2Jgg/TEGiI2+ypXyWQLaMsGl6O7eaXvEVSvjk9o\n8lOhP6EqB1mhn9/kX5JhHUtXKRVThMJ1Qv4ymcllGj4vM/Y44+IM+8Ln+fL9XrzvtbAdHNYweZ7f\n+tYAXz3yT6l9fownv/A1hl86xQZ3hul2a6HvhTuDLVmfO5Wmzh35XYc7Rhy4u+c23G1g6R4Vdu+w\ng3tpGbfFazdoK2ypT4aBax84zjc+8wyvvTzD6rkwJi+AvfbXfPof7bjvgJ22cxzXz3C+cZiF8hiX\nWgd5evibpPybVJwo9WyQuhrCHhaQmzZeR0dVWtTEILOMUSbCWrkPw1QZjM6y6Axxgx0MssxxTjHM\nAm/YD+P1Nhn0LTLBNE18zDsm6Uaesc48U840dcdDU9SoiQGCVKnj5yp7tppRNTp0shqFQIKoVuQT\nrS+jhEw8jk68U0T2GhiaRIZ1Ck6ElW1FhzuQIWC0cWxh62paoNYNYrLBw/ZbhMNVXok+yk7hBv2s\nIGKzwDAbpEmRY4pb9LLGLKMILQGjrVEORZDkrQEOs4yRYpMdzk16nByarVPDy6w0So4UR3kbn6Hj\noUKFIh7WqTqTnLUeoEfMIlsW2VofQU+dgKdOur3JUGWFVL4Abeip59jBLRLkmVHHeU16BK2mE7NL\nNPDTyxpB6qTI8Twf5qq+j0oxStvykNTyJNhExsCxIUKJdbufNauXdkdDNVsktnvqKbaJx9ZpBjws\nRAc4Ez6EaNqEqbDDc5McSQrEWWKAhuWnakbwWS1004Pk8RFLbRJ0avQ4a6h0EL0/7u1V/65RASq8\neTOEGhwh/MwkvdoG3pgJBzdR54uIc7W7zDLdV9qlJ0zugIfrYuymO7ozZ7cgSNd78N0GmO65jfe2\nZDW4I+FzXZbSWBBrKM7yxQTXteOcCxymctNP50YRuP53vkLv5rjvgK0rHiKlJl+4/fOcnjtKqFLl\noWdP0hrXyPammT65i3InRm1ZYffkRSKhAk3RhyIYLDHARQ6wPDuKUrWQTlhYHgmP0yYnpEiRY79z\niT+xfoqUmGOfdJkR5igR46ZV58Nrp7E1gZMDD9AnLBOhTJA6furUCHKTnWyQZnM9zcZXBzCnZB5M\nneTnVv6ExJ4S1qRA87hMXQjTFH2Igk0Lddtqv4CPJpYqsXigj0SuxOT8PJSAItALvTObOIGb6Ec1\nIlJpe/qKn3lGKRPmaZ7DQKFElDQ5dq3fRlm3+ff7/hWl4NborClubXHSosJcaAAfLfzU3+kaOMo8\nBxrX0R0P55w+4jTwW3VOtY4R1sokWiWWboxT7o+hZdp8bPN5EiNFGAIMcOICDfzcZAc32MmSNMj/\n3PufmOI2JSJk6aFMhDoBWnixijLFU2ni+9eJ92XxiDppNcdk6DUOChe4GtrDmYDO+lCGMWmaw5yl\nQBxPqEHdr7Iy3ktV8hN2qnyn9TgeUedh/xv0ssYYszgIfLnzSRaEIaZ6r7LYGSSr9zDiW+Ajwjc4\nIZyiiY9v8NH7vXTf42HTuVCg8Aun+WL7OGeOHOcz/+d3GPi/3kD7jRuUt7dyJ8ts7XF3RzxXjeEO\nMLgXwL1sURtu1t3dXc/loV1u2mWYXS7bleh1m29cJYoK9AD1nxhi+hcf5k9/4X1Mvwid189gt94b\nXPX3iu8L2IIg/ArwWbau2RXg59l6EvlTtv7bLwD/jeM45b9u/9PyEWbkp5jJjSOHO6QOrdAbXSEl\n5tD8bf5yz7Ncmj3E5psZBp9cIhwrcoOdTHELPw1Oc5SegVX0lodz+mFsUUBT2ygYRDerhEot2loA\nIgXksMk5jtBBpSNe5pXUw+iSRlZIUySKgkGVED2sMWuMc6lxgKQvRyhWZvWhftRkg4C3giRb9Orr\nRK+UCdcb2EmBYLSFUAAlYuJLN6kSYoM0bVQ0uYN4tcn650FfAlMG+ZMgYtOSvcwKo4wwz1Bzif7s\nBqvxAa5HdnCFvfSwRpwiNiJqu0O0UeVp6zlOcZR5RqgSYp4R4hQQBZseskwwzSS3aeBnhX5C3q1G\nSLYgIGOxp3SdD5x9nUFriVbQS2fAQzq2xpg8yyuxh5CcEwSEBnvsq8yrAywwRIocPr3FYmuEC4FD\nyIpJwtlkR22GW8Ikfxb8JBYSR8JneHT/67STMl6xyRCLNIR5dgkaWXpQBINhY4HVpUGuXT1AKx/k\n0DNvU0zH+Lr4E+SE1HbB8wxDngV0NCRsQlQQcagRxBAVkmKeD0nPEzFq+NstwlaVfs8CSXIIBRH/\nW1/hN3/Axf+Dru0f+TBt7JqNzgaL8yJf/tUYwaufIjJgM/VPpzl85RIj37zFuTZU7buB020g1Z2F\nu4VGN9vu1nu7jklXTuhm4t3HgLsLlnTtExZgjwIrH53kyr69fPt3pyi8LFHOGSzOF9A7FnS6jenv\nzfgbAVsQhGHgc8BOx3HagiD8KfBTwG7g247j/AdBEP4V8K+3X98VM+IYRc+TmAGR/tQiU/uvE7ML\njNlzxJ0SV3v3sFAfpnotjGOD5FhEhRIjzKNYBh3DQyKWAxzmGyMMGsskhTzrcgrHEGjrHsJSDaOp\nMcMkC/4hBNkmL6zwgu8JmpYfs6GwVBtGUBzK8RCDLLHppMiaPfQ4a/SGVvHubxFVSuxyrpLzJBjK\nLdG7kYN17jzTFcDj6Ch+gxVvP3kpAUAPWaSCQeci2BI4FSC/tZ8jClhIVAnRsAIMtbKMV+fQRQ+z\ngRH6nDXiTpEFaYgVbx/tkIcReY41MiwxyAr9VAm900Y12Koj1RwS4TySZrHAMMtaLyI2JlVCVBlt\nLPChmVfwVHVyqQTmuIiitelICt8OPEGDAAnyCNs3MBCIUmbQXmK4s8jV+j4kj8UHPN8mY2ywJvQy\nxygTTDPkXyQztk6eBDoegHeMOzOME6bChH2b2dYO1gs9LGaH2du5QEPw08BHx9ZIOZvscy5jyPJ2\nwTSNBx0dLzWCDMmLaE57azivcJEB1jAtGavtYFoybd3H/vUrP9DC//tY2++dKFLNwpkveoBJouNx\n9KEI0ayF4hWZ6YvhieQJVGeIb9p0Sg517mTH3TprN7qLgS637Wqk7a73uwua3RSKCniiAv5dEu1s\nkgVxlNhGkbnEDi4OHeEN7SClSwW4dBt+jLrKfL8Mu8rWv4tPEASLLffoGvArwKPb2/wh8ArfY1Gb\nyCT9OYKP1RmTZjnABbxiC6ntkNRL2D4Ze9Qh0rvBRXkfQ9Yij8ivkyDPSmeQa5sHeCB6kt2Bq+wI\n3uSD9ZeJV4v858h/y2o6QyBRYZ94lrOrx/jCys8ztuMGQtBiwZngWu0xmo0gNBXEKxa+aI3IBzYp\nEsNQFAKxGprQZkKY4R97/5ABZxnLkXg9cpyOonBYu4jgdkIHiINmmASW23SGPDg+gShFRpijt3+D\n0EfAI4D8IWAOCEA8VOAh502mmeCWfxJnCobnVsgUczg7YdRcJGFU+GZwN/WBAN7eFqJiI+BwmHNc\nYh+9rPEgb+GlxfjGPAcuXuNbxx4j35MgySYGCk18dOgwzAJ7pGvIXgNKEC+VeGr+RV6Xj3MyfZwF\nhhFxkLC4xm4GWOYIZ6kR5JD3HI9Ir/Gr87/Kee0oD428Qccn4qfKbq4R234SuM0kOh5aeJlhnDo5\n0gzio8kAS8S8JYydCvOjI5SsCNlAmkEWeJ/zGqlOnqBVR7QdznoP0ZD99JIlQP2dLoyfkv4CA4UV\n+hn2LRDxFKhKISKFOoau8nbmEOMfW4B/cfvvvPD/Ptb2ezPmqSwu8vIvG7zV3ofiex/tT72fT3/g\neSbP/TsOfrPDyusGV/juiTHdrVHhjr7bnXbj0hmuUsRVfrjZtttQysNWIbF/r0T4t/z8wR89xufF\nX0H7nZcx/rhM+8tt9PJ57mbXfzzibwRsx3GKgiD8J2CJLarqBcdxvi0IQtpxHHdC0waQ/l7HUDAw\nRYmW14NKmwzr2/pgB802OMAlUtI6Pdo6XxOfwRAVwlQoEiOvxIhFcni0JpJgEhKqmB6BjiIxJdzC\nEkWuC7u41NpHy6fS37+Iqck0CKILGn3eFbyyjuiFW4O7KedjtL+moR/2QdqmbWiYqkxHVikKMWIU\naQh+TgsPUPFFKCYjDCuLeNUWmtwmWqqhbJr4ijoH167QSShoqTZSrI05KsOzILwBpMBKgpiFYKvB\nZH2BnC9DUYngEVv4PU28hRLve/ktro3s4ptDT3NF3EVK2CAjZ0mxuZXBWh4+Xf0SJTnKW74T1DYj\nHDIvENtZYiE4xCyjmMiotBFwqNJknl6kiEXrhI/1eoaOqLCj5ybVQAAJm4c4SRuNFl6KxIhQ3pJF\n4qALHnTFQycpMi8N8ad8mmPqadqoNPDTw9q2rnrLTRmlxBQ3eQmVk+WHqV8IcXtwB71jK/jVBnrL\nx1JzjI5PY51FCiQIyA0QoYWPeXGETeIEqLOTGzTxc43dHOcUE9UZxhaX6A+vY0cV1v1pSv44imbQ\no60hJX6wXiJ/H2v7vRkGtgGtPLSQwbLgtWneXIJb6zu4sdhHNZohP7SDnsdW2Dl0nWO8RehsE/ui\nQeEWrJhbpU0Pdxtb3MKiDESBMQV8u8HZL1M74ON1jnNjcTebrwwQWbxJcCGL9hsit65CRZiGuglN\nEWquL/LHL74fJTIG/A9s3fAqwJ8LgvDZ7m0cx3EEQfie2pnV/+PLOF86g4OIvjOAsavOTTqETBXB\n8DCrXsbnNPCaN0FpUZTSXOYGVcIUELH5Y+bNOmXKxKUCm0JhW+XxIhukWLH7mdcv4JcbJNQ8BeK0\n8GKfvIQmzKE0O7TKXmz9MsZaDOOWQOvhFtpQE4+t01IXmJZzLKOTQsTA4jy3maPCdVtiwrLxYyHa\nItSjeIs63nIT01qBIDhJgbVwCkEJEe3YXL3aAGzsBIjz0EagNCez4lnFVNYps8rVQgNPrkNnY5bn\nhiY4NaASls5hCvN4zDk65RybWpJ1X4Zg7RZZuYfLXoeNQg8Lks5SPMXquTwlLJp4EHEQsSm/uc4L\nmJzDJo3KCj5aeBmfjlKgTpUr9LGKuU3RbJJklSLzFLGo0EGlQYAq36BElJdps0IblTrrvIXDEiIO\nG+TRaAN5wsyTfzPEZukqpUtJgoNl4iObJKwCm7UOG+11WrESqEsUsUihogItPFxFp9jREZoSw1oA\nU5GZlkuUqDBaK6GtmIT9NfSwxtWgRv5mlfy1Aj6ziS2J32vJ/a3iB1/bp7ijREhuv35YsfzDO1UT\nOPkG104CiLyKBmEPgimRbGgsVn3kiRBoaTiGQcmBLBI1JDxo2EjYiNvyPBsbC4k2MSzSjoXfAKcl\n06h6OYef2w2VnCHj2BoseeD/toAZ4I9+eH/zXfHDutab26+/Ob4fJXIEOOk4TgFAEIQvAyeAdUEQ\nMo7jrAuC0APkvtcBHv8fdzPymaMsMcQGaWaReJD/QtCpMeeMYQoDjBhX+JnGbc76H6Cj7mCMrSb1\nBQbwizrFfArDqLM39Vc8Jr3CDoq00HmVERznOH0OyFg44jgyfagYtFjm2GcGWXhjnFe++CTNqA+E\nLWGQtdum7303+Ejyq0yKdRRB4Ta7iWzXxgWGybDO3nae92/UCUk1cr4kX/B+mrS9yAnzra0+IBKI\nis2y/EFMQSHSucGeC9/hZ3pKOKNbWcX5xA5++xP/hEn1FnuFK+zBJHrVxiz6mJkc4jXho6ji+/h4\n9Avsli2GNgR2/H4da6jB0jMdXrSeYUyweUyc54yRZF44ypzyBEMsspMSIhYzTLBJgiohRj6TYIpb\nJIkQYII1ejE5hgcPKiIRNhhkiQB13mYfQWpMbXPaBgobpAiToY2HJDlGkbFQmSHFAJ1tF2WFEFU0\n2lj0MYeHxMf2c3buBGPJqwzG5jlbOI6idpgMFqgrfiLCNIPEGWYejQ5lIlzgkyxN76P5epj5nTr+\n4SqhngL9qCSsUW7qOzlR+RpBp86FzM/ytPQGj5deIXO+xeZglIGv/UBjeH/AtX0cts1C/3Xiv9a5\nd0NDxZl3KJciXNP2ssQwUs2ChoNpQ5sQFhlEduKQZKuOC9DAYROBGyiso1pVpAVwNgWssyI1QjR1\nH07FhnYPEOcOw/3jdq3/3V/77vcD7JvAvxUEwVXoPAGcZqsV7j8C/v32169+rwPcru6g7uwjZyQJ\nixV2c5Ox9QU0tY2e8uChRVLKUfX6eUh6gyQbdFApL8bRrSDDI4uMeRcIqjU8QptT9nFuOZO8X3qF\nJJv0COusCT3kSNJBI7U93zxHlj00SPUVEJ6Am/4dZOt91CbCHBo/zft5iWfmv0FMK1L0R1iL9FIR\nQ1hIxCmwu36DPa3r4LcoyiFyagxUG1k0MJC5zk6SpQIHVy7xiHmKVkQjkKlS6TdZPxRnNdrHqLZE\nyrPJ49bLqHYbTdIxkWmnZAg5hGNlHrVeJmltkBY3mGOUBTW/2L8AACAASURBVO8Iw3vXaPWqzAmj\n5OQk/awwxixBtcYqfazSB0CBODOMsVIexnRkZMckQR7LUPha9ZP4fHUC3q3WZCvZQfL1FGODt5E1\nkxBVZpxxGrUgtxq7OR47SVQr4CAywDIdVERsYhTw0yBEDY0tO79bcDSRaeIjxgp7tDfoDGjoLR/L\nuSGGvP8fe28eJOl93vd9fu/V933O9NzXzszuzu7sgQUWAInTEAiRjEhJtClasiQ7SUWJ5VQqZaXs\nVFIppSpWnDgp20psJZFIStRJUSApgsRJLoAF9r7nvo+e6enp++73yh892lJkyYptDQAK86nqmuq3\np96n++1vPe/bv/d5vs8qhkeiram4qaOiUzF8fG/7JZyOJrHkbmd0mT/D7GgMLdHA8tg06VSbyLKJ\n8Ji83HoJl9HkOA9o4OJ95wVO9M2xHeqC/7C56f/B2v54YoPRAqNFu/Ynw3R9f+Z/nAd/c3SWLv7k\nJlCbTpsNgBtsuXO0a/yp02L94HHEn8dftoZ9RwjxFeA6naWom8C/BnzA7wkhfp6D0qe/aB8rjSHS\n5lmcRpMReYnHxbv0ltJILgMzDhFyOOUGu3KEYZawgXfsJ5AKEG9nmeyfYcCzipMWabpZ0I+xZg3S\nJ21iCZko+wfldZ3JJz1s08smhpXHVXGQSmzh+lyNFjL1uhMrLzManmO6eYPT+3dpuzV0oZIIZkjT\n1bE8xaarscdwY41sV4BVtZ91BnDRwEmTKl6WGcZRN+hPbzNQ3KaeclBKuFlKtSieC7Mm9RBXsiT1\nDC8a32NRHaIgB9gliR3bI2B3Jpo/a77BFPdYYYAFRtnxdPPCE2+yp0Z5336UTKOLoFyi4XARJvdw\npmWeMDU87NBNteHHbdU7vi24yBgJXq2+yAn1NhPKfURJsL3Sz0p5GCIWiqrjF2UWjVG28gOoezaS\nx2DC8YAo+zjpnFiKBLGQCFEgSQbDUMkSY0vpoUSANhpNHAi26La36Ta3ma2doGZ4eSn6MjvOBLNM\n4KOCgkHRDHE/P4XiMRhKzuOlSsS/jzzaxhfI43I2aKGxRergZJHnDcczWJLCf2b8KguMcsd1muao\n86C65Qf/3sL/q9D2EX8RfzKy9y//iX/Evxt/aR22bdu/AvzKn9mcp3NF8peS9O9Qaxk8rb3FKeUO\nLho8GBpDSDYGMhv0oaBTxct9TnDXOsUtY5rJ0RnOiFs8olx52F6to/LjxjfwGHX+tfqzaKJNHxuc\n5B4TzKCjEmMfP2WEAV++/XOYXonJ6btU8OJ1lgnHczxQJnBrFU6cuM+cNE5F8TIkVuhnnUVG+S2+\nyElljgvqNXShcptp3uZJetlEwiJPmAwJ+sMb6KOg3AFnvY1aNnE1TLqbezhdDcLvlagZbla/kGJX\nSbBLgjwRnjTeJmQVqGoefJt1gvlVIlP7mG6ZGWmSRe8AS2KYB+3jzC+fZNkzxu5Q4iA52nip8SKv\n8CKvEKJALhpBtzVWxS43+HGW1WHsoM66o4fMfozq90JU2kFaEY2Z4iSmQ9DlTFOqBdALGlYW7gyd\nQqGNlyrLB4ZPFXz4KeOlxjhz+MpNInYJMyzxmnieO5w6aKips5l/lvtvnCYxusuZk9c4od3FYoqF\nA7+RAiFyWoTHj/2AohTkHifQLZVSOUx71cv+QAJ3pIJTa7LEKBmSxNlDdlnUhJv/cf+/R/G3CPn2\nsZA4zv1/D7n/1Wr7iCM+aA6901HV2nQraVLyNg7RYo84aVdX58agLbNUOIYmtRkNzlIgjCraTEl3\nGfEu4hNl5jn2cDr4HOO0FScRKY8QNkGKDzv+WjjQ0UjT3dm3tEVPYhPDIeGlyuNcRkgWimZynbPU\nJA+r3n426KGBC40Wx2pLDJibWF6ZDVeKG+ppFqUhssTobW9yYe8Gthu2wl0YKNga6CEZY1TinjXF\nG83nWJMu01IGyBHksZFruKwGM8oxFsQoOirjzFGT3KQbKWKbeSTDohFzkpPDeKmSbGd4bfsFsp4Y\nZkSmN7RO0rGDjwp1XIQoMMEcW/Qc2LEOYKvgpo6LBl4KeJs1rG2VghWDHYnGTQ+2LEHEprYdoPqo\nn/p4Gf19F36pTLCnQHErwk6zh+GeZYoEcVNnnDkGWcFDjTJ+bIdCyfazTxQvVQLlMrMrJ3GVPLhc\ndSaH7tObWGfMOYefMie5S4gCecJkiVETbsLuHCYSkmWRL8Rot53EEhkG3EsEpCIWgixx8u0ouWqS\nsDtLVM2iePbYzPSyuj1Co9eN7Py3zeg+4oi/nhx6wjZlmaRjBxuJjJGkaIZYU/upS25sS7BYmcQp\nNzCCEpreJso+g+otXDQpEWCGSUxbpoKPRTHKA+U4QbvIeXGNYZaJkKN2YPNZIsA+0c5Vn/KAC2M3\n0FFo4+A4D/BSpYT/YMqhxj5RDBRMZPaIM9JcJ6SX6fNsUnZ6uc5pFhml29rhkeZ1Ht+6ylx0jPnw\nCA6aIMG+M0JpOMDrjaf4P8r/CUHZZFl7ilUGKZwLM8QKe1KcW0zjp8KP8Q0Kcog1Y5C+jQy1AQc7\nQ1G2SeFsNYkXstzYuEAzqTKamGW8Z46onsNVb2A4ZPrkDabsO3y18tPcFtM0fE481Ijbe7QMF0PW\nHvWqj7uz52kY7s7a4CadZcSSgLJMK+Sm3uXBMafTO7LByPA8l69+gpIVYq+n04nYwxYXuEI/axiW\nwn3zJH5XmbLkY5YJghTpq23y5oIPV7EzYHfswjxRsU+IAmX89LPOae7wDk/gNapgQFTkaMsOwiJP\ntRJCKFWSQ5uc4waBg+RuIlMyQuyVuwipOXqdGxwPPuAHK89xde8Cm9FeQo78YUv3iCM+chx6wm6j\n0cDFNc5TKETJZeOE+vfo9WzQJ20QTJSQhE3EznJ193FmUMn1hBkQa4TJc4o7XLI+wabdy4Q8y3Jr\nmJwRIeuOkZAydLFDim32iaJg4KZODQ+7dHWuyA/iq+jU8PA+j/If8Q1GWaSF8+GabZJd1v0D7Nsx\nfkz6Q+q4MZF5hjcZbG3SV9/Gp9Yoqz6yREmRpiUcfFN8hjcbz+CgxT+I/q/cVmaJEqFEgFeaLzLJ\nDF9y/yYb9GGgPFwDbzldmD0yWX+ULDEGWSGyUqa0EeLcxPtsRHuQ6DTQ3Muc4sHaKcaP36Ma8rFs\njvD2959BVxSmPnWTbVI8aJ0gW87SbIxhNwTWlgQBOjfoo3TaQuJAEDKBbtpZB8dfustLnu/wWPsK\n6pTBrHOcu0zxeb6Ogxbf4wU+yx+RaXXzT/L/iNOh6wTdHevUJLuUQ37Ux+pk5pN8//5zpE6u0+Pc\nJECJHBGmucUEMywzxERhkU/tvIqq6VwOX2Aj1stU8h6aaGGgECGHjkIDFwKboDNPIFlkVJ2nix1M\nZM6OXaFvcJVF7zDd8g//9JAjjvh35dATdqBd5mneYp8Y14zH2KmncJg1mjioml7yS1GcaoPkWJoK\nHpq4aKN13Nv0KNV6gKU74+SWIqgVC+eFFs7TGfKiY3DfxMltTuGmToQcS4x0KhgshbnCceqyC9Xf\nREVHwkLBoErHyjNLHD9l3NTJEWFXTVLGj4sG21YKA4VPSj/ASwWXWmct0cOSd5g94vSwTQMXc2Kc\niuwjLu0xps2TkzYZZIY03WTlGAYKG/Q99EYp40dHQ7V0aIJtSsi2RcTMI7uhlVDpjaxjuy3quEnT\nxbYzRSnspagGaKJRFn4qCQ9OuUkdN7l6jJ1SL+VqlPn5SbQdHXNf6dw+89D52wXusRpDPYvk7zbI\nX4e9L/i4I09j7DmJDmcJuWPM6hPcMM7SL2+QUDO8W/0E8+0JtpwpfHKBJC5kTEoEKGs+nIk6ZVmh\nVvcROnD4S9vd7OkxQnKebjmNhYymtfD6y2hKC4fWBAEx5x4BirRxUMbP7kE7fh03XqlCwrmHDazY\ng5iWgt9TRhU6nofzuo844uPFoSfsUKPE81xnlyQFYlwVFzGRO0nTkHhwa4qAu0RidAfJa+AQNTRa\n7FkJdlsplkrHaLzpRf+2yv5WknP/3fv0XlhhSYxQpOND8R3rJSaNGc5aN1jRhvBKVXx2ha1CjIIW\nIOjPskY/PWwzzS226GGWCcr4SZBBxiRDgiS7aLS5xRnmzTEky6JX26RP2cDlqXEjNMUDaZw8ERy0\nsJBo4uSseoNusUMLB16qjJqL5PQoBTVIXXZzm9N8hm/SzzoLjNLCgd+o0qg4kQMmPquCu9Vgp6uL\ntf4e4mSwEGzRwxJTtKMaQ5EF2rpKvhEmZ0eInMuhSDorxhA7e72U90JQktia6e8sg5gC1d1GCRpI\ncYv2gAPfeJnHBt5h9tUyO3+YYPGR51kNn+KtfI6f6PkaUdc+pbaf77Z+hOeV1/gF6Vf5lfI/4oY4\nQ6x7GxkdGYMudqjhoS05cGgtZMXCqTQZMNZZNftZF/3UdTdFO0RV9uKgRS3gYj4wRIwseTtAyQpS\nFj6covnwBLBDF5v04aNCiAJR9pmvH2PL7MHSJPxKmbCcJ2bt035YKnbEER8fDj1hr2SH+DXOIGGx\n0B7FrgqaphONNr3KNovHTrInx7ncvkjEnUNIcNueplIM4TOrPBf9Lnf6z7L8+BgMCFbPD1Jse5E1\nk1kxzqI5wmptsOMOtz/N0Ol5Hgu+S1G6wk8mf4U56RhLDDFIZ4lFo43Axk2dAdYO7JL8CGwGWaWP\nDVJsU9Z9rOkDlBU/20qKuuxmQYyxTxQVnT426LfWeF5/HW+pyYI6yqXQRQw2CebK/OTCN/jdY59H\njylc5DJu6lTx4qfC+zxK2puidDxAr3OdbmsHrW6z40qxpI1wnmvImMxzDCdNJpnhtHGbr838DKt7\nY1iGxMSZOSyfxLXsRZo/cMGGgHWQntIRJyzMisZw9wIDgWXcY3UeVE9RNgK47AbasRGcL5xmYmSN\n4eQlevVNHP4mDdlJwFniCe0dXmy/yonSAn/b/xtMaHdZZJiz3OQYnSWKVQa5Zp9n1p7AlCT27Rjf\n2vgcSlcTd7hGr3MTWRgs0jmx7h/cIH2St1lsjXKzNs2+L4xXqyKAaW499DIfZhnDVnjPfozM91Ok\nCml+/jP/ijvaFBXTz99t/Abftl48bOkeccRHjkNP2GWnj+vmOeyKQracxG5JVPcC7JHE4W0h+gwi\nIkuftMGoskhLOLhpnyGsrNErb3LWdYXRgVU2HAPMnx5FSrRRpebDmYVCQEAuYbo0Wj4NTW53fAuE\nStKdRqVFnEzHuxqZiu1j/eYgmq1z4cxlhGSjYNBNmkFWSbILQI+0xZ4SZ1ZM0McGfWwwZi5Qk7yk\nRRdJY5eRwhrOXIu2z0HalUTYNs5WG113ctc7wq6aoH7g2dHTSBMxCwQdJUo7YeZak0wMzNJSVbJm\nHF1zUZL9yJjkCdPCgZtObXWMLD1sYaJQLQWQt032+hO4nTW6HNv4k2VMVWY9v4/eqmNXIDKyTSS4\nh2walNMB3GqVUCBHRM4yOOmh7t8jntzFFywh08ZLhRRpavIsA/I6uq3ynnEB3Smj0SZb7MLh1nFo\nnXr4LDEsITFgr1Eq1qkuy5TP+3hcv8NE9QEb7hR1ycO8Pk5xN0yj7UZT25hxmXV9kHwjjsvdRMYi\nSaeJJtneY6S6xmx2nC2pH3tQIAVMFEnHpdRp5j3k6nHaAY24/Bc21x5xxF9bDj1hS90mFcNPOjNA\ns+RG2BZG2sGunWLfE8YTrzEpPeBZ3iBGlhwRqsLLhH+WAdYIUOT4wCu0Ek5+a/QnEGqnVXWJYbxU\n8UpVop595GETDzUMFOY5RpYteomRIMOjvM8WPWyTImdFuP7GBXxWlcem3sGnVgiJAkOsEGUfxTbw\nmHWGtRX2pSh3meIx433G9XnG7Xk8ao2r8iP42nXkHTCXNPYfD2H6YNhaplnfoyif5n8+/Yt4qeKi\nwQ/4JOOVFXrau7SCEvIctEpeHF1tltVh8nKYQiD4sEzxNqcxkOlihyJBDGSqkhc7CXLWgAWYq4zT\nZ69yoesyfV0b6Ki8Sp5csYyxqnJq+gZNl4PNrT7mL51k7OwMZyauEmMP73iF4HiOfaKU7CBl289F\nLjNsL+OwWyALrmrnWNMG6DG3yVS7uJ69yInkfXRN5hbTNHHipMlJ6R4bmQamXif64g4vSX/MU/lL\n/DPtF1i3+smUkuRmkzSLHiS3iXFBxnCo+I0aLrtJt5XmvHmNsJJnpLnMk5kr/J2bv85tx1mm+68g\nP2Zi2IL3pMe4szhNrhDju+eeY8izfNjSPeKIjxyHnrBTYotx6Tplb4CmpBCwivyi/39D+GzeUS7i\nFg0S7NJGw0LCQqKNxhoD5AnjoMmlxFMUzDBL8hDT3OIUd5jmFsDBTcImQYokyLBJLwKbAgZpuknT\njYPWwxuLi9Io/s8VqDc9/MvC32cqcJs+5zpFAniok6qmubByk3CiSF9ynXd5nMGNdew9lYWJITzO\nGufFNV52fhr3YIP++DqVkAeBTZw9dkwdoduo6IywhITFDJPcDpygbLnZUlOEp7O8oH+bptPBECuc\n4QYByrzPo9zhFCe5xzDLOGlwlUe4wgU2pT7kUJvh07NI/TbJWBq3t/OZVvVBghQZ4ivIJ/coNwKM\na3OU8GN4HMgTJvW4mz3iLDNMgRB5woyxyDP1S8Qref4f82eZbUzSbDrw9BdRfW1sS7CxMQwWnOq+\nxh3pJOt6DwPqGjU81PCwwCiuk5eZeOYuW64Ur8lPs+Qa5IrxCOk7PUgLEhfOX2ZP7WJteYgz7Zuc\n814n4dvnO8oLzOYm+drKcc6MXkX2Wwz1LKP5qnilIiXFT34nTrkeoBgLkHcl0GUHb0rPsGwPAb92\n2PI94oiPFIeesJ2igSlLjPnm8LlLtCUNPCYepcYAazRxoqJjI5gpnKSFxmhokSLBhzW5K4xQJEiY\nHAIbgY2DFvHCPmp9HWeshawZqOgsM0yOCDv2DgHiWEi0bAdmVcUWAo+3ysjIAo22m2wlgSUkTCR8\nVJivTrJWHqFf3iYu7XLOuo4uqfSKLeqyh8vy4zikBj3tLXxrNUy3xF5PlAwJXDRQhU5eC7Gu9JEt\nJwm73iam7lHHxb4jhMkwMiYDsRW8dhXZsAhYJQIU8bbq3FDOkVVjVPCxSwIBqLQReMiJCFHHHr2x\nNXyxjh2phcQ8x5Ax8VMG6iT70/iNEgklQxMHLled0yM3qEhelnfHKJtBWj4N0y/wU8Fn1sk3Y9wx\npmkYLoblBZbywzQ2XDg3m+QbcbxdZWLDafJ65wQaZR8V/cDdL0rbo9FOaliKYFYeZ4sUuqkiayam\nX0ZNtpHR0fbbjCtzHFfv43C38cllHFKThuZhqTmGy9mgy5fG7auQJE2JACE5T1Ap0pQUkKFhu1iu\njFFcjhy2dI844iPHB1CH7eCBdJwX/a+QJc4VLvB7fIEhVjjBfZYYQcJEtXVe3X6RgF3iH/p/mZvS\nNItilDI+cvk47ZaDY32X8Ug10nSzxgDPbl3i1PZ1vI9V2NRSLDHCAmPM2ePs2jpRK4pXVMhbYa7t\nPU6XnOYL3q/ipIVLa+CJ1FhkFActnuBdLu8/xfXGeUJj+zwnXmNIX+GEdp9o1z65WIhXXc+j0uap\n+g/4/PdfppVSud59ik3RS0X4sITEkq/IqudR5ndPonb9DhPqLDGyPOA4TRy8aL+CjopmGow3F8hq\nEWrCy3BpkzH3MrfVNDkizDHOPhFOcJ9udqjjxk+ZxIHb3jmu08KBjwqa2qaNxvdx0hXeRMY8qPf2\nITsNPtv/+7y++iKvL7/IbNMmOLxP0LfP22aMb1ufJi9FkGSJTwe/yZcCv8H/dPe/5eZb57FfAU4L\n1E+2yBIjrmYZYJUweWw6syA91MgXo2yuTRE/vkXBClE2fEy7bxE8V2TjXB/LDFIyIyiTBr2eDeqK\nk7eUp8gTYiCyTCp8iW/sfIFLxWcIOAt4pRqDrPI2T3IxeZkB1ti1u3hv90mK+Sh1PUD9jcBhS/eI\nIz5yHHrCDlIkA1zjPFFyPMHbeOlcXQ+xQhMnNoKgKPJS78ts7A/wT977x7jGKvjiJSLkORO5Rraa\n4MrGEyQj2/QFV+lhi9f7nuLd2KNMu29QIMQ+UY7zAJdo8I5Z5d7dFzAcEgxaSLE2stxig34mmKHf\nXqfP3mBVDLIu+rnBWXL+IPuE+YONv8WlyrMk5B1SYxtIqoWpyExIMwQpEnHkUE/qBAtFpt+8z9rp\nQVaigxSsENezDozsEwS69si7gswxwSa9JNnhWGmRwaU0VtKmEXWw7uwlL4cRlo2hyRTkEBv0EyPL\nNLcYZol3eIJZa4KK5eO0fBtddAyYLvEkTpr4KdPEiYSFjwo9bGMhATa9bOKgxX1O0IqrjHnv4zSb\nlB1eCuthjK86adcceAZaPP3cGwz75pmRJ3ENVUh6N6id8lL/shf9HYXKp318RnyTURY7XZkHzUYG\nCtpMm+KqRu7nurg4+APO+K6jCxUDhVF7kav6I9R33BjzTv6V/z/F46ygKwqf5tuEybMlUiRCadYr\ng3xr8fM81vU2ql/HQmKdfuLNfb6U+11qdogZ/SR8XSASBn+hCfsRR/w15dATdh+b9HOVe5ykToNh\nlghTIEIOB00atqtjOSoceAIVNL3J3k4cqRIm6Uwz6FvF6WpiI9irJMgYCSRdZ0xZYCUwxF4gTjdb\n1PBQIkCYPE6aWLZEut1No+ZCk5p0pbbQPC22SR14btRIsY2Tzr5XDiaZ13GzaI+yJ+LkRBgwccmd\nao2TzKHRxlIlMkMxkmmL8H6BXrYoEGSDPqp4aRsBqMOMfZyaw4vT0aDH3qbX2iRPiAAFWkLjkvIk\nulBIVXYx7s3Tk9zm9NBdKooHVbRx0MJJi24rjceoMSnNEK9mceTaVOMeNLdOjCxVvJTx00ajf3sD\n1TDI9YQoVYJk9C62w120PRpRT4YxFpitTbJV7sfYd2LnJFTLhDRUgz7KUR96QEb26BCz4VUwGhqV\nG0HkIQtXuIFGm5Sxg0abgFJizVGny3WL2cwJ9LADyWvhpoZ60HkaI0td81H2hVhQRpExcFM7MLKq\n4rRbSDWLes3Fvh1HxiRCliQ7CGxquDGQCfoKJEI75OQ4R04iR3wcOfSEfYL7PMsuv8w/7nQT0oVN\nZ1pInjB37SkAomKfBcYQEfj0xT/kOwufZWejl9D4q9QVN5qryZODb3K9fo69epy4d4+iHCRLjDJ+\nGrio4aGOmzV7gIIE+rCEuSRov+ch+EwZp7fJDl2sMMSCGKUtNNx0Jn+v00+97Ie6hHuwwKR2mwlp\nFp+oMMkMwyzTwMUOXWSUODfiU/TH1+i315kQDwCLhuSiN7aG4Vvjyt3HebPrBaYSt/jb0d9gzFxA\n87Z4bfpZToj7NISLr/DTRNnnk3uXaH/5PV567LucSd7my94vclue4hqPcIo7fNZ+mU9al2jZDtS0\nhedyi/1n/FT63Qcp3cESI6TpZuTaEsnSLr/7E5/j3fWnuFecwnc+h8tdx0eFC1yh0fTzvvwU/Biw\nBLU1L9+5+VlGxSwnn7hJzoyQr0Wp5/3wKQFzAv3/1Lj29y7ABZsRlrjQuk7cyrLk7ad+sUryOYv/\n4f1f5t39x1kN9fKS99s45BZV4eO49oDAeInVY4O4RZ2mcFLH3bErIETALlGYjdEQXpIX10lJG/Sy\nSRUfNTxUnR7+r+6fQcLmVPAGl31PUf3Gn/VgPuKIv/4cesLeJEUDwWlucyV9kWvpi4yMzTHlv02K\nbRwHnW4JMswyQVM4sYTgya63qNtu7spTLGfHUHWDH028TNERZFPtZUkaYTZ/gru502TavWiRBnay\nM5SzR2zxuPUO8wsvsNnsxXW2zIXge8TZY4ExigQZYI2T3CNNNzkibNDHaHSW7vIW19cusBnrxxlt\ncpJ73OEUl7mImzpT5l2eNr9PSfFhS4IVMcQbPEeabmwEBRGmKUdBE6QCmwz4VvCJChXJRwUfbUnD\nRiBhoaITIo8rUefqz0/TijnZc8WoSF6S7Ha6Agnzmvw898UJxqU5Isk88pMW+5EI2wdr+Y/zLgOs\n8SgLuM44WG33sa9FqftdnVFask1Dd1IyAzQcLh73XmIwtcxWtIeVnmFWykPkzRDNuEpNeBmRlxj2\nrKDLGvflk9RCHiKn8ihDbZo4aeLkuuM0BTPE280nmK/cJtF4nslTd9j0pMgrIS41PskxbY5ebYt1\n+pGFwaSYIUOcYZY4wQNuc5qrPELILJD/XhhdUqg96uVV628QFfuoskEVLz4qnBdXqeBHdhiMdd1n\nY3joYzQr+4gjOhx+4wwB2rSIkkVK26xdHcYOWwy7FumT1+kRWwgBXexwovaAFg5Snm0SgQxl/Fzm\nIqqlo5ombVvrtCfTMSBKZ1NsL/SzrffjiZbxNYo4uuqE9QJq3kLsS+CWUCI6x7R5hlnGQxVdd5Bg\nD7daZ6+RZNUepugK0uvdwEWDYKGAbmkPq1T+ZH18iBUCdpmQnWeZISp4sZHYJkUDF1Frn1rOQyPn\nJRLbYziwSL9zDRWdluRAwSBGFjd1ZEwGWUVqwYY8QOMxF4ak0MSJlwoBiuiozHOMHamLRWmUDAni\ngQzeQI1As0yhFeam4wyTPKCfdQJUSPdNscgoJfyogRY+VxFJtlAsA6fdABsmHA941HGZeY7xhu85\n0v4ko8oeIWceB00cUgu3VsOt1qnJThpxN/2edfpZx0ONbVIsK8OstQd4ffd5KgVBvDrNc2PfwauU\n2DJSlPQAqm0QJ8MWKdotD1Jb4HI3GZUXeZY32KKHdfoxUBGahV8qMcQKNTxs2n0Px5B5DooIBTYh\nuYDPW8R9rHLY0j3iiI8ch56w/6QVvEyA+o4b/ZrK6okhmkE3x70znFVu0BIOuuwdHt+9ioMWuaEA\nXlGhgpcAJXZjt9igl/elC3ipkjgYI2bsqHAfcEB90YdxW6Xr8xvcLpwhO1/GnOzHcsgY225CrjLH\nnHMk2KWnlqVme7gRnOIPsz/JA/04IwMPWJaHsTwydKGpEQAAEk1JREFU4+P3KIkAAhsTmRTbnOQe\nz/AmsmJyV57it8XfBGCKezzKe3iooRsa37s/hogITnzhJhPSDN2kMZGRMImSpYs0Gm3KBHiaN/mD\nwhd5u/YMn+v5HSYcM8TIIrDJE354c89DjTYal/gEHmpM2LP83fxX6BG7XO06Bwh26GKGXjb4EbLE\n0GiTCKURlskOSRJKhmPqPH5RJkCRbjpud+/tPkllLcJPnP59Yq4MabqZYZIabsbEIqfcd/FSZYgV\nBlklQ4Lf5QvYCIqVMM17fux9BVG1USyDafkmF6T3WdGGGGWRUZao4+Ht0lPcy57hE/2v0+vdIs4e\nj/EeoyyiKjpr/0U/CgY/rXyFNfpZZphlRhhnjm7S3OUUiYOO1SwxjPHDVu4RR3z0OPSEPc8xvqKf\nZ3F7klVtGB4D06dw3z7Bl+WfISfC1PDyNTFMNJonQp6gyFEkSBk/NTz0SRv0sckG/Qft4zusMEzf\n6CrCZ1KTPRRqEdq6RpdnG7ezgWd4mcTx71NW/eSI8tuVL7JgjPFI7D3WXMPkCbMuemmGFNxWGVuS\nKOaiSG2b0/FbKJKOifLQXyRpZuir7yCVbfSWG6tLwXDJD2ug80S4Il2gnCrTGnGz3u4jouWoGT42\nSwM86fs+j9vvcDZzB81sEzAaePSr3PWdYzE6zKIySoR9wuTZJcmd2hnuNE5DwGRYXeI812jgooyf\nPGF+Tfk5TCHjpMWr5t/AT5kWr1Mnzj5RUmwzJe7SljW+Z79AAxebopcbnGWJEWJGlucLb5FUMmgj\ndVpulS57hynzLoYsUxIBXDRwicbBRCAPNzhLhgRNnJjIOHxNLpy8TGZ1hu7BKEU1SBQvXpEhQJk2\nDlYZZJYJtumhZnuYt48RsnNookWcLEOsoAgD1d+ZOqTRpkSQBm562GK5PMat1nkqmovnXK/Tp20Q\nJ0vddh+2dI844iPHoSfs7VoPJfMMK9Vj1Hx+pJMW/mCJnBrlj+VPESdLDTcrDHV+6tdKRNfybCsp\nJLfFsdAs4UoBv1lhOTDMeGuehJFh2TOCJ1WmJ7VGlhh6TcZoqIx75vCoVVo9uwz1LlLBh8cqc2P7\nHIV2iARpth0p2rZGyCjR51lHkgyaOEEXqG0dYQtUdJy0CFAiQYZuO423UUeq2UTaeQasdQoHcw33\nSJAjQl124+3axj2cp2Z5ydhxMpbMbHuKgFUgbmcYbG7j0yu4Wg2GC+ukvFtogQab9NBPFym2qOCj\navqot71g6fioMMVdBDbbpLjLFO84n8AUMqe4wya9NGwXXpooFJENi2P1RSYdD6g5XLwvHqWMnyYu\nqng7yxC2wmh7HYenwVBogZZwUNDD+FpVPK46FcnHrpmkV95Ek1oUCDHbOEHa7KYta4S1HN3ubYaG\nVrgff0B/srPfPTuOjcAnKrTR2DmwTHVoTca9s+yJIJtWLwU5RA9b+KhgIxiSV9ii52Enpm6rOKwW\ny2tjrO0PIqJtzqZu0hvZRLF1euxt1g5bvEcc8RHj0BO2taUwqi6S6UrQ0FyoFZvjoXuo3iZZouQJ\nA6BidKbHbPl55VtPovtVTo3c5Lkn3+Dc0m1EFbYeSTG5u4BW1lk7NkjZ6UOjTQ0vqrtNt3Obi9K7\nFAnxDh52SRCiwHnpGrUuDwiTNN1U8DFqLPNTtd/jTfeTvKE9xTs8SSq2gceuMScfQ0UnQYYcEbZJ\nIds2UbtCO6pQ9Tr4lPptZpjkDlNc5iJjzPNz4v/mt10SjlCMB+I4NeFFyDbHkvdoyB1Tq9aIg5S9\nzWB1namVWXDQMaXCxx5xckSJs8ePel/mWc+rvCU9RYIMIQrsE8VFg+PiAYZXpkTnKvhp+S162WSR\ndY7zGs5am4uL1zB64HbyBF6qaLQZYI2neYtrnOeS8gl+PfklhsQyn5G+ySY9/FHrx1goTDKtXKMm\nXNyunuZL/t+kR9uiio+lzDGWq2PYXvhs9Ot8wnuJCWYxKTKJgoTJTessc9Y4P6X8FnkR6kxAx+AZ\n/2s84rnGPzf+c/rMDV6QX2WREVYZooqXBcZYZpgVhjjFHTxWjcvtixTeicM9CXvKwf4nEqyEh1iz\nB/mC8ju8c9jiPeKIjxiHnrDz16I8+MY01VoIy6lgBGw28oNEezKExwqszw+hKyr+sQIVfFRkP1WX\nD1sItsxeXrY+y5WuxzCLCnNrE+xqKbqSaSSlU1nio4JGmx2RJC/CvFz9HIqsI/Euz5uv0RYad6VT\nDCnLD6e9uKgTqeQILpUoDwXY9PSzt9fNaHiZSd99mji5uzvNUm2cRO8eVc3DmjzALe8ZUsoWCS2N\nik4DJ6uNIda+O0zN78PxbIs96T4JSSVEgU2jlxhZPqV8h0v7T3PXmMaOw6bUw6p3kGxfjLwnSIws\nDVysNoaotAN80vt9wnKOct3P2pUR2iEX/afX0NEIUGScWSxJcI8pbnMaFw0GWMdFAx0Fw6EiunVk\nL7ho0EWa+cYEi/oxRjzLOOQWY2IBh9zCQkbBYII5nI42IijQVQWNNmfdNynLftYYoIUDO2CRcq1z\n1nEdt1YlTTfjzLLcGOFe+kvsthPUAi6c/joPOE6OCCvVYQrvxZDjgvopN71ik5jIMsc4OyQxUfBR\noYWGis40t8nuJrAMmcdi77F4YZz8YIRYPEs4nsUQMsrB9KAjjvi4cegJu7q5wcZKP3pDRUrYmG7B\n5nI/wraIjWQwcyoN1YPUMrAVgeWViY/s0rIdNENOLovHCCRLmB6FtcVR8v4g/aEVamUvLmcTl7tB\nLxsYyBTtENfa5xlUV1Af3OWiVWZL6uE65+lhCy81LCS62abL2MGsSpR0PwUjTKPiwXBoKJpJTMvS\nLjrZyfegd6lktRh5Kcy+O8ZYe5Hpyi0kt0FWjlHWA7SWXKy6R8iNRqi/M4PxVC9yl45lSYQo8AhX\nmWucJKN30bBdnat2LYUVF1RxE6SIwGbL7GWz3UfczBCXMlRbPpZvjlHsCxE/nSbOHl4qOOmUQhoo\nlPGxXhggbBdYePAOGglQBE2/RktzULIC2G2JQilKsR3kgXOdoFwgRhYPNWRMigQ5yw0SWoaI1qmH\nVzDoV9bJEyZPmAJBDEXCbxcZlReYaU9y1zpFj2OT6w901p74UayaRMzaJabvcqNyjmqg44FSXomy\nb0bZPN7Ni/IrRMU+uyRpo6GhI2NSb3oBQb9zjXI9jGbWeEr5AdrZNtukGGOBKFnaOIiIPGmr+7Cl\n+5eQ/RjG/rjF/bBj/5scfpVIzy0GfnaBfTNKzfLSqjswW06qLi/bShfeswXsOuxlevCGi/SG13j0\n8ffZJUFLduJXS1wQVxBem9+a/BJpO8lGrofGzQD+oQI9E2uc5Tr9bOCSmshBkyett3ll5iqWPIEt\n4CKXyRPGR4UxFhixloiG9ilfcBJ17DEsLZAdiXKjcI472WnCyQy77h6CRoVHpffJEGObHtbtfmYy\nU3xv99McH7+Fy1+jz7uO+2fr7NzrYevLQxivFGlMnsX1H5fpkneISVnK+Hki+RZT9g0kyeIKF6jg\nI0iBAqEDEyUPbncd1aHzlvEU3SJNTOzT0hxklAR3OM3TvEWREJf4JK/zHAYyP8q3ef3Kp9gx+qjM\nfB0vQ8Rr+/iWWyymjnHJ/zSXdp9nr5hAk5qsx/rZoBcnTT7NtygRYIUhhlmmn3W6STPKAjrawy7F\nW0zzT/mvyC51o+ecbAcHackOXP4q+/0Rdld+BWeiTLPiopAOU34vhPS+jfpUA+lTbexnTdqyTK3s\nAR/E1T1GWaCNxgb93LKnub97unNy6A/x+Z4/ZIq7WLIgQxwPNcaYJ8EebTRyRJjVP+wykY9jEvm4\nxf2wY/+bHHrCNioqhXQUvU/FMiSspgoIak0fO9t9SBmL1rILfV7D/LxEanybz0u/T1EO0RQdz+Wx\nq0tkKl2oF9vUTB+yYTHZdx8prBNmn/NcY4du6sLNCfk+LqnBHgm+1v4pIlKOM9pNKvhYp58N+vCK\nKpJisaYOkCWGjwqTzgf0q2n0ipNv33sR2Wvi8Nf47uxL2AkoJ/1U2l56XZucT95gUr2Hw25SkgKs\nRge56ZNZq45CWaF6P0CrpPGo/wonHfeIs8fNxfPcmZnGXJRZj/bTHNaQz5hEvVn6lXVU2p2mGiHR\nEg5qOR8PMlPoJySm/Xf4yczvEwjmsB02MiF0VJo4sJBRB1rsN2Lk2iluNc+QcOzx1fgX2XR3s6QM\n4w5UcKb9NJbdrF8fxk4JwiM56BEcL8xyfHce90iFms9DFS8qBh7qOGjxdv0TLIhRJl0zrMdb7Di7\nKUghzJKKqFq0bCcJe4+/wz9lK9DFPONsKANYTgl9RKYlVLAkrA0FveyietGHphoMZLfYTnXR8jjY\nJ0rUn0FgsifimJpEyCgQLRe57jzPVq2X7ft9TPffING3i4xJSC4ctnSPOOIjx+En7KyDzIMUzlAZ\ny1awShoY0Kq7aG274B5wFXjPRrpgkRjf5Wnz+7SFRlvuzO0L3qxxJ61in5Fomw5Cosz0+DXaqopG\nmzPc5BY2M0xyjHk2RB/bIsUftH+cT8hv84L2PSQs1ulnhkmmxF0AbjHdaTBBZ5hlflx9GbPt4FsP\nPoP7dBk12OKbc58jYW8TT6ZpGxoTvgd8MfZVBq0V2rbGhujDQYtNeRCcQBvMHQWr7KHHlWbUsUCc\nDLPzx/nmNz8HrwDHQHrOYHO4mxdd3+GccgOwOxPDBbiUBneKZ1nZGsN9pshpbvMz2d9k3j1I1hHG\nSQsvVRq4KBDCPV7GrCbIGTGs1gT7gQi7PfGH30EsvENd91CeC5K5lYITIEs27ajGsd1Fjt1d4lby\nBOu+XgqEiJDDSRPFNvjjxktkRZTPub6OnLJox2QqVRdWVUbWDTx2Fdne4xeNf8Hd0Div+H8Eei2M\ns0qn4ageQ5QkmFexNjTqx70IVRBbLpIOdtH0uGgIFz3hdZzUuMsUBYLoukZveQchCVYKQ6xeHkdV\ndNS+zpT1hHI0ceaIjx/Ctg/P80wIcWSodsShYtu2+KBjHun6iA+CP0/bh5qwjzjiiCOO+KtD+rDf\nwBFHHHHEEf//OErYRxxxxBE/JBwl7COOOOKIHxIOLWELIX5ECDEnhFgUQvzDQ4zTK4R4SwjxQAhx\nXwjx9w+2h4UQrwkhFoQQrwohgof4HmQhxC0hxLc+qNhCiKAQ4g+EELNCiBkhxIUP6jMLIf6bg+N9\nTwjxNSGE44M83h82Hxdtfxi6PojzoWj7h0HXh5KwhRAy8C+AHwEmgb8lhJg4jFiADvyXtm0fBx4F\nfuEg1i8Br9m2PQa8cfD8sPhFYAYejhn8IGL/78B3bNueAKaAuQ8irhBiAPh7wBnbtk8CMvA3P4jY\nHwU+Ztr+MHQNH4K2f2h0bdv2X/kDeAz47p96/kvALx1GrD8n9h8Bz9H5khMH25LA3CHF6wFeB54G\nvnWw7VBjAwFg5c/ZfuifGQgD80CITh3/t4DnP6jj/WE/Pi7a/jB0fbDfD0XbPyy6PqwlkRSw+aee\nbx1sO1QOzpLTwBU6Bzlz8FIGSBxS2H8G/NeA9ae2HXbsQSArhPh1IcRNIcSvCSE8H0BcbNvOA/8L\nsAGkgaJt2699ELE/InxctP1h6Bo+JG3/sOj6sBL2B17cLYTwAl8HftG27f/P/Ci7c3r8K39PQogf\nBfZs274F/LkNHIcUWwHOAL9q2/YZoMaf+al2iJ95GPgHwADQDXiFEF/6IGJ/RPhrr+0PUdfwIWn7\nh0XXh5Wwt4HeP/W8l86VyKEghFDpCPqrtm3/0cHmjBAiefB6F3AYvcwXgc8IIVaB3waeEUJ89QOI\nvQVs2fb/287dozQURFEc/99CwUo3IGihrY2FhWCTQldgJdmFoKtwAxb2YvFKEUubCCqihdjZpHEH\nwrGYAV2AM5Mx5wcP8lFc5nFyCfeSaJKfX5JCPq1w5m3gTtKnpC/gijQmqFF7FsxDtlvlGtplu4tc\nl2rY98BGRKxFxCJwCAwlCkVEAOfAq6SzX28NwDg/HpPmf39K0qmkVUnrpAXFraSj0rUlTYGPiNjM\nL42AF9LcreiZSTO9nYhYyvd+RFpM1ag9C/59tlvlOtdule0+cl1qOA4ckIb478BJwTq7pDnbI/CQ\nr33SEuEGeAOugZWSywBgDxj0s8AoWhvYAibAE+nbwHKtMwPHpA/RM3ABLNS+3y2vecp27VznOk2y\n3UOu/V8iZmad8C8dzcw64YZtZtYJN2wzs064YZuZdcIN28ysE27YZmadcMM2M+vEN+KhxEuTIYdI\nAAAAAElFTkSuQmCC\n", + "image/png": "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\n87qEMGb9LAAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -908,9 +910,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -951,13 +953,13 @@ { "data": { "text/plain": [ - "array([ (1.0, [0.2712169917165897, -0.04844236597355761, -0.1887902218343974], [0.3889598463000694, 0.8470657529949065, 0.36220139158953857], 2.2746035619924734, 0),\n", - " (1.0, [0.080729018085932, 0.19838688738571317, -0.38053428394017363], [-0.6604834049157511, -0.6893239101986768, 0.2976478097673534], 0.7833467555325838, 0),\n", - " (1.0, [0.019430574216787868, 0.06594180627832635, 0.23329810254580194], [-0.7472138923667574, 0.13227244377548197, -0.651287493870243], 1.1632342240714935, 0),\n", + "array([ (1.0, [0.09184833943086697, -0.23957301713645024, 0.35275256701073315], [0.6943502674814661, -0.18996972225593808, 0.694110373553384], 1.8499326750790277, 0),\n", + " (1.0, [0.09184833943086697, -0.23957301713645024, 0.35275256701073315], [0.5159084442036803, 0.8277435289738373, -0.22063346854291235], 0.08218797495117988, 0),\n", + " (1.0, [0.20806026831237243, 0.2806741437409227, 0.5336799247482618], [0.1279254678841002, 0.5275600667322506, -0.8398306083110433], 3.0474103747828187, 0),\n", " ...,\n", - " (1.0, [0.18544614514351207, -0.0113070561851496, 0.5468392238881264], [-0.8006491411918817, 0.43855795172388223, -0.4082007786475368], 1.4358240241589555, 0),\n", - " (1.0, [0.18544614514351207, -0.0113070561851496, 0.5468392238881264], [-0.5150076397044656, -0.34922134026850293, 0.7828228321575105], 1.5771133724329802, 0),\n", - " (1.0, [-0.2722999793764598, 0.22680062445008103, 0.2987060438567475], [0.9207818175032396, -0.2884020326181676, 0.26265017063984586], 2.932342523379745, 0)], \n", + " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [0.5932941753311154, -0.7955471372215329, 0.12290961710458291], 1.9935677118802835, 0),\n", + " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [-0.8965339181960187, -0.33727511250097575, 0.2871801386091118], 9.772336043367204, 0),\n", + " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [0.5932941753311154, -0.7955471372215329, 0.12290961710458291], 1.9935677118802835, 0)], \n", " dtype=[('wgt', '" + "" ] }, "execution_count": 28, @@ -1033,9 +1035,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEUCAYAAAA8+dFZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGhJJREFUeJzt3Xu0ZGV55/Hvz8YL3kKfxNERUByF2O3SCWqQFTMjXhdp\nFdROBLoTlRkFjR0vk0wYV7zNOCsTHa/EJYNLVDQ2eIE4OIJ4BaV18I5KHxCWQ4bLGmLs9oZRuTzz\nR9XBsjhVZ+/u2lV1Tn8/a9Xq2u9+966n3lXdT7/73ft9U1VIktTUnWYdgCRpdTFxSJJaMXFIklox\ncUiSWjFxSJJaMXFIklrpNHEkOTrJFUmuSnLKMvsfmuRLSX6e5M/bHCtJmo109RxHknXAlcCTgOuB\nrwAnVNXiQJ37AA8EngHsrqo3NT1WkjQbXfY4jgCurqprqupm4Gzg2MEKVfX9qvoqcHPbYyVJs9Fl\n4jgQuHZg+7p+WdfHSpI61GXi2JtrYM6DIklzar8Oz309cPDA9sH0eg4TOzaJCUaS9kBVZU+P7bLH\n8VXg0CSHJLkLcBxw3oi6w1+g8bFV1fnrNa95TefHrVR31P425cNlw9vPetaz5rYt2xzbpJ7tObn2\nHLe/Sbs1KZtGW+5Ne07j7/retOfw9t7qrMdRVbck2QZcCKwDzqiqxSQn9/efnuR+9O6YujdwW5KX\nAhur6qfLHdtVrCs56qijOj9upbqj9rcpHy7b0++1N/bmM5se26Se7Tm59hy3v0m7tSnr2jz/XR+1\nbxa/zc5ux52GJLWa4583mzdv5pxzzpl1GGuG7Tk5tuVkJaHm9FKVVpkNGzbMOoQ1xfacHNtyvpg4\ndLuNGzfOOoQ1xfacHNtyvpg4JEmtmDgkSa2YOCRJrZg4JEmtmDgkSa2YOCRJrZg4JEmtmDgkSa2Y\nOCRJrZg4JEmtmDgkSa2YOCRJrZg4JEmtmDgkSa2YOCRJrZg4JO3TFhYgueNrYWHWkc0vE4ekNWFU\nAlgpCezeDVV3fO3ePb3YV5v9Zh2AJE3CUgJYTvZ4dW0txx6HJKkVE4ckqRUThySpFROHJKkVE4ck\nqRUThySpFW/HlbTmrV8/+pbc9eunG8taYOKQtObt2jXrCNYWL1VJ0jKWeilOR3JH9jgkaRnjein7\n+pPo9jgkSa2YOCRJrZg4JEmtmDgkSa2YOCRJrZg4JEmtdJo4khyd5IokVyU5ZUSdU/v7L0ty+ED5\n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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1082,19 +1084,11 @@ "metadata": {}, "output_type": "execute_result" }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n", - " if self._edgecolors == str('face'):\n" - ] - }, { "data": { - "image/png": "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\nDQ2NFuT/AMH9R/ORrjlAAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1127,7 +1121,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index bbadd1ac4..da9cb2dd1 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -366,7 +366,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBxUFD8qiUrQAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDItMDdUMTY6MDU6\nMTUtMDU6MDAlEzIyAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAyLTA3VDE2OjA1OjE1LTA1OjAw\nVE6KjgAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxEWMplVicQAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTM6MjI6\nNTAtMDQ6MDA7rTm5AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEzOjIyOjUwLTA0OjAw\nSvCBBQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -570,8 +570,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: b9efc990c7eb58f4a41524d59ae73396c9929436\n", - " Date/Time: 2016-02-23 10:52:44\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 13:22:51\n", + " MPI Processes: 1\n", + " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -598,26 +600,26 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.05992 \n", - " 2/1 1.05251 \n", - " 3/1 1.05204 \n", - " 4/1 1.02100 \n", - " 5/1 1.07784 \n", - " 6/1 1.04814 \n", - " 7/1 1.02335 1.03574 +/- 0.01239\n", - " 8/1 1.02415 1.03188 +/- 0.00813\n", - " 9/1 1.10331 1.04974 +/- 0.01876\n", - " 10/1 1.05452 1.05069 +/- 0.01456\n", - " 11/1 1.07867 1.05536 +/- 0.01277\n", - " 12/1 1.04203 1.05345 +/- 0.01096\n", - " 13/1 1.04482 1.05237 +/- 0.00955\n", - " 14/1 1.04117 1.05113 +/- 0.00852\n", - " 15/1 1.07581 1.05360 +/- 0.00801\n", - " 16/1 1.04235 1.05257 +/- 0.00731\n", - " 17/1 1.02710 1.05045 +/- 0.00701\n", - " 18/1 1.01970 1.04809 +/- 0.00687\n", - " 19/1 1.01022 1.04538 +/- 0.00691\n", - " 20/1 1.01449 1.04332 +/- 0.00675\n", + " 1/1 1.03167 \n", + " 2/1 1.03535 \n", + " 3/1 1.02709 \n", + " 4/1 1.00637 \n", + " 5/1 0.99250 \n", + " 6/1 1.06116 \n", + " 7/1 1.04289 1.05202 +/- 0.00913\n", + " 8/1 1.04779 1.05061 +/- 0.00546\n", + " 9/1 1.04695 1.04969 +/- 0.00397\n", + " 10/1 0.98778 1.03731 +/- 0.01276\n", + " 11/1 1.05810 1.04078 +/- 0.01098\n", + " 12/1 1.01539 1.03715 +/- 0.00996\n", + " 13/1 1.08644 1.04331 +/- 0.01060\n", + " 14/1 1.06425 1.04564 +/- 0.00963\n", + " 15/1 1.01768 1.04284 +/- 0.00906\n", + " 16/1 1.05877 1.04429 +/- 0.00832\n", + " 17/1 1.02195 1.04243 +/- 0.00782\n", + " 18/1 1.02488 1.04108 +/- 0.00732\n", + " 19/1 1.06285 1.04263 +/- 0.00695\n", + " 20/1 0.98751 1.03896 +/- 0.00744\n", " Creating state point statepoint.20.h5...\n", "\n", " ===========================================================================\n", @@ -627,27 +629,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 8.4700E-01 seconds\n", - " Reading cross sections = 5.8300E-01 seconds\n", - " Total time in simulation = 1.6037E+01 seconds\n", - " Time in transport only = 1.6026E+01 seconds\n", - " Time in inactive batches = 2.3070E+00 seconds\n", - " Time in active batches = 1.3730E+01 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 4.5200E-01 seconds\n", + " Reading cross sections = 1.2900E-01 seconds\n", + " Total time in simulation = 2.0330E+00 seconds\n", + " Time in transport only = 1.9420E+00 seconds\n", + " Time in inactive batches = 3.1000E-01 seconds\n", + " Time in active batches = 1.7230E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 3.0000E-03 seconds\n", - " Total time elapsed = 1.6899E+01 seconds\n", - " Calculation Rate (inactive) = 5418.29 neutrons/second\n", - " Calculation Rate (active) = 2731.25 neutrons/second\n", + " Total time for finalization = 2.0000E-03 seconds\n", + " Total time elapsed = 2.5040E+00 seconds\n", + " Calculation Rate (inactive) = 40322.6 neutrons/second\n", + " Calculation Rate (active) = 21764.4 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.03935 +/- 0.00682\n", - " k-effective (Track-length) = 1.04332 +/- 0.00675\n", - " k-effective (Absorption) = 1.03845 +/- 0.00598\n", - " Combined k-effective = 1.04024 +/- 0.00523\n", + " k-effective (Collision) = 1.03965 +/- 0.00597\n", + " k-effective (Track-length) = 1.03896 +/- 0.00744\n", + " k-effective (Absorption) = 1.03976 +/- 0.00606\n", + " Combined k-effective = 1.03991 +/- 0.00536\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -738,7 +740,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -754,8 +756,8 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
0total(nu-fission / absorption)1.0401660.0090691.0368470.009685
\n", @@ -763,7 +765,7 @@ ], "text/plain": [ " nuclide score mean std. dev.\n", - "0 total (nu-fission / absorption) 1.04e+00 9.07e-03" + "0 total (nu-fission / absorption) 1.04e+00 9.69e-03" ] }, "execution_count": 26, @@ -798,7 +800,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -815,11 +817,11 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
000.0000016.250000e-07totalabsorption0.6947070.0066990.6920340.007217
\n", @@ -827,7 +829,7 @@ ], "text/plain": [ " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total absorption 6.95e-01 6.70e-03" + "0 0.00e+00 6.25e-07 total absorption 6.92e-01 7.22e-03" ] }, "execution_count": 27, @@ -860,7 +862,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -877,11 +879,11 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
000.0000016.250000e-07totalnu-fission1.2012160.0122881.2022980.013385
\n", @@ -889,7 +891,7 @@ ], "text/plain": [ " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 1.23e-02" + "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 1.34e-02" ] }, "execution_count": 28, @@ -923,7 +925,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -941,12 +943,12 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
000.0000016.250000e-0710000totalabsorption0.749250.0082570.7491510.009003
\n", @@ -957,7 +959,7 @@ "0 0.00e+00 6.25e-07 10000 total absorption 7.49e-01 \n", "\n", " std. dev. \n", - "0 8.26e-03 " + "0 9.00e-03 " ] }, "execution_count": 29, @@ -989,7 +991,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1007,12 +1009,12 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
000.0000016.250000e-0710000total(nu-fission / absorption)1.6636160.0186241.6634350.019976
\n", @@ -1023,7 +1025,7 @@ "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", - "0 (nu-fission / absorption) 1.66e+00 1.86e-02 " + "0 (nu-fission / absorption) 1.66e+00 2.00e-02 " ] }, "execution_count": 30, @@ -1054,7 +1056,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1072,12 +1074,12 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
000.0000016.250000e-0710000total(((absorption * nu-fission) * absorption) * (n...1.0401660.0219281.0368470.023674
\n", @@ -1088,7 +1090,7 @@ "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", - "0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 2.19e-02 " + "0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 2.37e-02 " ] }, "execution_count": 31, @@ -1136,7 +1138,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1154,82 +1156,82 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
0100000.0000000.0000010.000000e+006.250000e-07(U-238 / total)(nu-fission / flux)0.0000017.377419e-096.627781e-077.082494e-09
1100000.0000000.0000010.000000e+006.250000e-07(U-238 / total)(scatter / flux)0.2099892.303838e-032.099843e-012.003686e-03
2100000.0000000.0000010.000000e+006.250000e-07(U-235 / total)(nu-fission / flux)0.3564203.951669e-033.547246e-013.854562e-03
3100000.0000000.0000010.000000e+006.250000e-07(U-235 / total)(scatter / flux)0.0055556.101004e-055.554185e-035.316706e-05
4100000.00000120.0000006.250000e-072.000000e+01(U-238 / total)(nu-fission / flux)0.0071558.053460e-057.151165e-035.480545e-05
5100000.00000120.0000006.250000e-072.000000e+01(U-238 / total)(scatter / flux)0.2277701.079289e-032.278981e-016.424480e-04
6100000.00000120.0000006.250000e-072.000000e+01(U-235 / total)(nu-fission / flux)0.0080675.254797e-058.073636e-034.374754e-05
7100000.00000120.0000006.250000e-072.000000e+01(U-235 / total)(scatter / flux)0.0033671.647058e-053.369592e-038.971220e-06
\n", @@ -1247,14 +1249,14 @@ "7 10000 6.25e-07 2.00e+01 (U-235 / total) \n", "\n", " score mean std. dev. \n", - "0 (nu-fission / flux) 6.66e-07 7.38e-09 \n", - "1 (scatter / flux) 2.10e-01 2.30e-03 \n", - "2 (nu-fission / flux) 3.56e-01 3.95e-03 \n", - "3 (scatter / flux) 5.56e-03 6.10e-05 \n", - "4 (nu-fission / flux) 7.15e-03 8.05e-05 \n", - "5 (scatter / flux) 2.28e-01 1.08e-03 \n", - "6 (nu-fission / flux) 8.07e-03 5.25e-05 \n", - "7 (scatter / flux) 3.37e-03 1.65e-05 " + "0 (nu-fission / flux) 6.63e-07 7.08e-09 \n", + "1 (scatter / flux) 2.10e-01 2.00e-03 \n", + "2 (nu-fission / flux) 3.55e-01 3.85e-03 \n", + "3 (scatter / flux) 5.55e-03 5.32e-05 \n", + "4 (nu-fission / flux) 7.15e-03 5.48e-05 \n", + "5 (scatter / flux) 2.28e-01 6.42e-04 \n", + "6 (nu-fission / flux) 8.07e-03 4.37e-05 \n", + "7 (scatter / flux) 3.37e-03 8.97e-06 " ] }, "execution_count": 33, @@ -1285,11 +1287,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 6.65702880e-07]\n", - " [ 3.56420449e-01]]\n", + "[[[ 6.62778145e-07]\n", + " [ 3.54724568e-01]]\n", "\n", - " [[ 7.15488656e-03]\n", - " [ 8.06673774e-03]]]\n" + " [[ 7.15116511e-03]\n", + " [ 8.07363630e-03]]]\n" ] } ], @@ -1317,9 +1319,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00555533]]\n", + "[[[ 0.00555418]]\n", "\n", - " [[ 0.0033668 ]]]\n" + " [[ 0.00336959]]]\n" ] } ], @@ -1341,8 +1343,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.22777006]\n", - " [ 0.0033668 ]]]\n" + "[[[ 0.22789806]\n", + " [ 0.00336959]]]\n" ] } ], @@ -1371,7 +1373,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1389,42 +1391,42 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
0100000.0000000.0000010.000000e+006.250000e-07U-238nu-fission0.0000021.283958e-081.338459e-08
1100000.0000000.0000010.000000e+006.250000e-07U-235nu-fission0.8685536.880390e-030.8641417.363278e-03
2100000.00000120.0000006.250000e-072.000000e+01U-238nu-fission0.0821498.837250e-040.0821116.090952e-04
3100000.00000120.0000006.250000e-072.000000e+01U-235nu-fission0.0926185.195308e-040.0927034.695215e-04
\n", @@ -1432,16 +1434,16 @@ ], "text/plain": [ " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10000 0.00e+00 6.25e-07 U-238 nu-fission 1.62e-06 \n", - "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 8.69e-01 \n", + "0 10000 0.00e+00 6.25e-07 U-238 nu-fission 1.61e-06 \n", + "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 8.64e-01 \n", "2 10000 6.25e-07 2.00e+01 U-238 nu-fission 8.21e-02 \n", - "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 9.26e-02 \n", + "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 9.27e-02 \n", "\n", " std. dev. \n", - "0 1.28e-08 \n", - "1 6.88e-03 \n", - "2 8.84e-04 \n", - "3 5.20e-04 " + "0 1.34e-08 \n", + "1 7.36e-03 \n", + "2 6.09e-04 \n", + "3 4.70e-04 " ] }, "execution_count": 37, @@ -1465,7 +1467,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1484,91 +1486,91 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
0100021.000000e-080.0000001.080060e-07H-1scatter4.6193980.0401244.5910220.043961
1100021.080060e-070.0000011.166529e-06H-1scatter2.0307570.0112392.0324810.010876
2100021.166529e-060.0000131.259921e-05H-1scatter1.6584880.0097771.6541870.012130
3100021.259921e-050.0001361.360790e-04H-1scatter1.8530020.0073781.8647710.011649
4100021.360790e-040.0014701.469734e-03H-1scatter2.0507730.0124842.0568930.008555
5100021.469734e-030.0158741.587401e-02H-1scatter2.1317590.0078212.1388330.015180
6100021.587401e-020.1714491.714488e-01H-1scatter2.2137100.0151592.2072090.014853
7100021.714488e-011.8517491.851749e+00H-1scatter2.0119250.0094061.9994070.009053
8100021.851749e+0020.0000002.000000e+01H-1scatter0.3712800.0039490.3687600.003373
\n", @@ -1576,26 +1578,26 @@ ], "text/plain": [ " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.62e+00 \n", + "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.59e+00 \n", "1 10002 1.08e-07 1.17e-06 H-1 scatter 2.03e+00 \n", - "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.66e+00 \n", - "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.85e+00 \n", - "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.05e+00 \n", - "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.13e+00 \n", + "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.65e+00 \n", + "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.86e+00 \n", + "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.06e+00 \n", + "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.14e+00 \n", "6 10002 1.59e-02 1.71e-01 H-1 scatter 2.21e+00 \n", - "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.01e+00 \n", - "8 10002 1.85e+00 2.00e+01 H-1 scatter 3.71e-01 \n", + "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.00e+00 \n", + "8 10002 1.85e+00 2.00e+01 H-1 scatter 3.69e-01 \n", "\n", " std. dev. \n", - "0 4.01e-02 \n", - "1 1.12e-02 \n", - "2 9.78e-03 \n", - "3 7.38e-03 \n", - "4 1.25e-02 \n", - "5 7.82e-03 \n", - "6 1.52e-02 \n", - "7 9.41e-03 \n", - "8 3.95e-03 " + "0 4.40e-02 \n", + "1 1.09e-02 \n", + "2 1.21e-02 \n", + "3 1.16e-02 \n", + "4 8.56e-03 \n", + "5 1.52e-02 \n", + "6 1.49e-02 \n", + "7 9.05e-03 \n", + "8 3.37e-03 " ] }, "execution_count": 38, @@ -1628,7 +1630,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/openmc/summary.py b/openmc/summary.py index 9609a866b..b8f92664f 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -565,7 +565,7 @@ class Summary(object): # Read in distribcell paths if filter_type == 'distribcell': paths = self._f['{0}/paths'.format(subsubbase)][...] - paths = [path.decode() for path in paths] + paths = [str(path.decode()) for path in paths] new_filter.distribcell_paths = paths # Add Filter to the Tally diff --git a/openmc/trigger.py b/openmc/trigger.py index ad2e9d681..b8383bd27 100644 --- a/openmc/trigger.py +++ b/openmc/trigger.py @@ -2,8 +2,9 @@ from numbers import Real from xml.etree import ElementTree as ET import sys import warnings +from collections import Iterable -from openmc.checkvalue import check_type, check_value +import openmc.checkvalue as cv if sys.version_info[0] >= 3: basestring = str @@ -87,13 +88,13 @@ class Trigger(object): @trigger_type.setter def trigger_type(self, trigger_type): - check_value('tally trigger type', trigger_type, + cv.check_value('tally trigger type', trigger_type, ['variance', 'std_dev', 'rel_err']) self._trigger_type = trigger_type @threshold.setter def threshold(self, threshold): - check_type('tally trigger threshold', threshold, Real) + cv.check_type('tally trigger threshold', threshold, Real) self._threshold = threshold @scores.setter From c88f51de577d1b010a3fa1c44728556ac8229b61 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 23 Mar 2016 14:44:56 -0400 Subject: [PATCH 074/259] Fixed Filter.get_pandas_dataframe(...) to use new distribcell paths as optimization --- .../pythonapi/examples/mgxs-part-i.ipynb | 36 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 1012 ++++++++++++++++- .../examples/pandas-dataframes.ipynb | 635 ++++++++++- openmc/filter.py | 14 +- 4 files changed, 1565 insertions(+), 132 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 01cd7cd7f..8db4cd4df 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -519,7 +519,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 11:41:09\n", + " Date/Time: 2016-03-23 14:42:51\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -606,20 +606,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7200E-01 seconds\n", - " Reading cross sections = 1.3300E-01 seconds\n", - " Total time in simulation = 2.7830E+00 seconds\n", - " Time in transport only = 2.1610E+00 seconds\n", - " Time in inactive batches = 4.1200E-01 seconds\n", - " Time in active batches = 2.3710E+00 seconds\n", - " Time synchronizing fission bank = 8.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 4.6200E-01 seconds\n", + " Reading cross sections = 1.3100E-01 seconds\n", + " Total time in simulation = 2.4000E+00 seconds\n", + " Time in transport only = 2.1340E+00 seconds\n", + " Time in inactive batches = 2.6400E-01 seconds\n", + " Time in active batches = 2.1360E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 3.3710E+00 seconds\n", - " Calculation Rate (inactive) = 60679.6 neutrons/second\n", - " Calculation Rate (active) = 42176.3 neutrons/second\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 2.8800E+00 seconds\n", + " Calculation Rate (inactive) = 94697.0 neutrons/second\n", + " Calculation Rate (active) = 46816.5 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -914,7 +914,7 @@ " 6.250000e-07\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " 0.000000e+00\n", + " 8.881784e-16\n", " 0.011292\n", " \n", " \n", @@ -924,7 +924,7 @@ " 2.000000e+01\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " -3.330669e-16\n", + " -9.992007e-16\n", " 0.002570\n", " \n", " \n", @@ -937,8 +937,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 (((total / flux) - (absorption / flux)) - (sca... 0.00e+00 1.13e-02 \n", - "1 (((total / flux) - (absorption / flux)) - (sca... -3.33e-16 2.57e-03 " + "0 (((total / flux) - (absorption / flux)) - (sca... 8.88e-16 1.13e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... -9.99e-16 2.57e-03 " ] }, "execution_count": 23, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 5d8da5da1..9378b1bd5 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -41,17 +41,6 @@ "\n", " warnings.warn(_use_error_msg)\n" ] - }, - { - "ename": "ImportError", - "evalue": "No module named ace", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mopenmoc\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mopenmoc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcompatible\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mget_openmoc_geometry\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34mu'matplotlib inline'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mImportError\u001b[0m: No module named ace" - ] } ], "source": [ @@ -79,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": true }, @@ -102,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -136,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": true }, @@ -162,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "collapsed": true }, @@ -190,7 +179,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -227,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -252,7 +241,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": true }, @@ -279,7 +268,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": true }, @@ -317,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": true }, @@ -342,7 +331,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -373,7 +362,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -397,7 +386,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -434,11 +423,185 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " .d88888b. 888b d888 .d8888b.\n", + " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", + " 888 888 88888b.d88888 888 888\n", + " 888 888 88888b. .d88b. 88888b. 888Y88888P888 888 \n", + " 888 888 888 \"88b d8P Y8b 888 \"88b 888 Y888P 888 888 \n", + " 888 888 888 888 88888888 888 888 888 Y8P 888 888 888\n", + " Y88b. .d88P 888 d88P Y8b. 888 888 888 \" 888 Y88b d88P\n", + " \"Y88888P\" 88888P\" \"Y8888 888 888 888 888 \"Y8888P\"\n", + "__________________888______________________________________________________\n", + " 888\n", + " 888\n", + "\n", + " Copyright: 2011-2015 Massachusetts Institute of Technology\n", + " License: http://mit-crpg.github.io/openmc/license.html\n", + " Version: 0.7.1\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 14:41:04\n", + " MPI Processes: 1\n", + " OpenMP Threads: 16\n", + "\n", + " ===========================================================================\n", + " ========================> INITIALIZATION <=========================\n", + " ===========================================================================\n", + "\n", + " Reading settings XML file...\n", + " Reading cross sections XML file...\n", + " Reading geometry XML file...\n", + " Reading materials XML file...\n", + " Reading tallies XML file...\n", + " Building neighboring cells lists for each surface...\n", + " Loading ACE cross section table: 92235.71c\n", + " Loading ACE cross section table: 92238.71c\n", + " Loading ACE cross section table: 8016.71c\n", + " Loading ACE cross section table: 1001.71c\n", + " Loading ACE cross section table: 40090.71c\n", + " Maximum neutron transport energy: 20.0000 MeV for 92235.71c\n", + " Initializing source particles...\n", + "\n", + " ===========================================================================\n", + " ====================> K EIGENVALUE SIMULATION <====================\n", + " ===========================================================================\n", + "\n", + " Bat./Gen. k Average k \n", + " ========= ======== ==================== \n", + " 1/1 1.20332 \n", + " 2/1 1.22209 \n", + " 3/1 1.24309 \n", + " 4/1 1.22833 \n", + " 5/1 1.21786 \n", + " 6/1 1.22005 \n", + " 7/1 1.20894 \n", + " 8/1 1.22071 \n", + " 9/1 1.21279 \n", + " 10/1 1.22198 \n", + " 11/1 1.22287 \n", + " 12/1 1.25490 1.23888 +/- 0.01602\n", + " 13/1 1.20224 1.22667 +/- 0.01532\n", + " 14/1 1.23375 1.22844 +/- 0.01098\n", + " 15/1 1.23068 1.22889 +/- 0.00851\n", + " 16/1 1.23073 1.22920 +/- 0.00696\n", + " 17/1 1.25364 1.23269 +/- 0.00684\n", + " 18/1 1.20820 1.22963 +/- 0.00667\n", + " 19/1 1.23138 1.22982 +/- 0.00588\n", + " 20/1 1.20682 1.22752 +/- 0.00574\n", + " 21/1 1.23580 1.22827 +/- 0.00525\n", + " 22/1 1.24190 1.22941 +/- 0.00492\n", + " 23/1 1.23125 1.22955 +/- 0.00453\n", + " 24/1 1.21606 1.22859 +/- 0.00430\n", + " 25/1 1.23653 1.22912 +/- 0.00404\n", + " 26/1 1.23850 1.22970 +/- 0.00383\n", + " 27/1 1.20986 1.22853 +/- 0.00378\n", + " 28/1 1.25277 1.22988 +/- 0.00381\n", + " 29/1 1.23334 1.23006 +/- 0.00361\n", + " 30/1 1.24345 1.23073 +/- 0.00349\n", + " 31/1 1.21565 1.23001 +/- 0.00339\n", + " 32/1 1.20555 1.22890 +/- 0.00342\n", + " 33/1 1.22995 1.22895 +/- 0.00327\n", + " 34/1 1.19763 1.22764 +/- 0.00339\n", + " 35/1 1.22645 1.22760 +/- 0.00325\n", + " 36/1 1.23900 1.22803 +/- 0.00316\n", + " 37/1 1.24305 1.22859 +/- 0.00309\n", + " 38/1 1.22484 1.22846 +/- 0.00298\n", + " 39/1 1.20986 1.22782 +/- 0.00294\n", + " 40/1 1.23764 1.22814 +/- 0.00286\n", + " 41/1 1.20476 1.22739 +/- 0.00287\n", + " 42/1 1.21652 1.22705 +/- 0.00280\n", + " 43/1 1.21279 1.22662 +/- 0.00275\n", + " 44/1 1.20210 1.22590 +/- 0.00276\n", + " 45/1 1.22644 1.22591 +/- 0.00268\n", + " 46/1 1.22907 1.22600 +/- 0.00261\n", + " 47/1 1.24057 1.22639 +/- 0.00257\n", + " 48/1 1.21610 1.22612 +/- 0.00251\n", + " 49/1 1.22199 1.22602 +/- 0.00245\n", + " 50/1 1.20860 1.22558 +/- 0.00243\n", + " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10050\n", + " The estimated number of batches is 73\n", + " Creating state point statepoint.050.h5...\n", + " 51/1 1.21850 1.22541 +/- 0.00237\n", + " 52/1 1.22833 1.22548 +/- 0.00232\n", + " 53/1 1.20239 1.22494 +/- 0.00233\n", + " 54/1 1.24876 1.22548 +/- 0.00234\n", + " 55/1 1.20670 1.22506 +/- 0.00232\n", + " 56/1 1.24260 1.22545 +/- 0.00230\n", + " 57/1 1.21039 1.22512 +/- 0.00228\n", + " 58/1 1.23929 1.22542 +/- 0.00225\n", + " 59/1 1.21357 1.22518 +/- 0.00221\n", + " 60/1 1.23456 1.22537 +/- 0.00218\n", + " 61/1 1.23963 1.22565 +/- 0.00215\n", + " 62/1 1.24020 1.22593 +/- 0.00213\n", + " 63/1 1.22325 1.22587 +/- 0.00209\n", + " 64/1 1.22070 1.22578 +/- 0.00205\n", + " 65/1 1.22423 1.22575 +/- 0.00201\n", + " 66/1 1.22973 1.22582 +/- 0.00198\n", + " 67/1 1.21842 1.22569 +/- 0.00195\n", + " 68/1 1.19552 1.22517 +/- 0.00198\n", + " 69/1 1.21475 1.22500 +/- 0.00196\n", + " 70/1 1.21888 1.22489 +/- 0.00193\n", + " 71/1 1.19720 1.22444 +/- 0.00195\n", + " 72/1 1.23770 1.22465 +/- 0.00193\n", + " 73/1 1.23894 1.22488 +/- 0.00191\n", + " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10050\n", + " The estimated number of batches is 74\n", + " 74/1 1.22437 1.22487 +/- 0.00188\n", + " Triggers satisfied for batch 74\n", + " Creating state point statepoint.074.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 4.5200E-01 seconds\n", + " Reading cross sections = 1.2500E-01 seconds\n", + " Total time in simulation = 2.6407E+01 seconds\n", + " Time in transport only = 2.5427E+01 seconds\n", + " Time in inactive batches = 1.7110E+00 seconds\n", + " Time in active batches = 2.4696E+01 seconds\n", + " Time synchronizing fission bank = 2.7000E-02 seconds\n", + " Sampling source sites = 1.9000E-02 seconds\n", + " SEND/RECV source sites = 5.0000E-03 seconds\n", + " Time accumulating tallies = 5.0000E-03 seconds\n", + " Total time for finalization = 2.0000E-02 seconds\n", + " Total time elapsed = 2.6954E+01 seconds\n", + " Calculation Rate (inactive) = 58445.4 neutrons/second\n", + " Calculation Rate (active) = 16197.0 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.22358 +/- 0.00179\n", + " k-effective (Track-length) = 1.22487 +/- 0.00188\n", + " k-effective (Absorption) = 1.22300 +/- 0.00114\n", + " Combined k-effective = 1.22347 +/- 0.00106\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Run OpenMC\n", "executor = openmc.Executor()\n", @@ -461,14 +624,14 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Load the last statepoint file\n", - "sp = openmc.StatePoint('statepoint.080.h5')" + "sp = openmc.StatePoint('statepoint.074.h5')" ] }, { @@ -480,7 +643,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "collapsed": true }, @@ -500,7 +663,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -535,11 +698,46 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\tnu-fission\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t10000\n", + "\tNuclide =\tU-235\n", + "\tCross Sections [barns]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t3.30e+00 +/- 2.19e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t3.96e+00 +/- 1.32e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t5.52e+01 +/- 2.31e-01%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t8.83e+01 +/- 2.96e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t2.90e+02 +/- 4.64e-01%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t4.49e+02 +/- 4.22e-01%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t6.87e+02 +/- 2.97e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t1.44e+03 +/- 2.91e-01%\n", + "\n", + "\tNuclide =\tU-238\n", + "\tCross Sections [barns]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t1.06e+00 +/- 2.56e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t1.21e-03 +/- 2.55e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t5.77e-04 +/- 3.67e+00%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t6.54e-06 +/- 2.74e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.07e-05 +/- 4.55e-01%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.55e-05 +/- 4.25e-01%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.30e-05 +/- 2.97e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t4.24e-05 +/- 2.90e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], "source": [ "nufission = xs_library[fuel_cell.id]['nu-fission']\n", "nufission.print_xs(xs_type='micro', nuclides=['U-235', 'U-238'])" @@ -554,11 +752,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\tnu-fission\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t10000\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t2.52e-02 +/- 2.44e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t1.51e-03 +/- 1.30e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t2.07e-02 +/- 2.31e-01%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t3.31e-02 +/- 2.96e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.09e-01 +/- 4.64e-01%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.69e-01 +/- 4.22e-01%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.58e-01 +/- 2.97e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t5.40e-01 +/- 2.91e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], "source": [ "nufission = xs_library[fuel_cell.id]['nu-fission']\n", "nufission.print_xs(xs_type='macro', nuclides='sum')" @@ -573,11 +794,141 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cellgroup ingroup outnuclidemeanstd. dev.
1261000211H-10.2341150.003568
1271000211O-161.5637070.005953
1241000212H-11.5941290.002369
1251000212O-160.2857610.001676
1221000213H-10.0110890.000248
1231000213O-160.0000000.000000
1201000214H-10.0000000.000000
1211000214O-160.0000000.000000
1181000215H-10.0000000.000000
1191000215O-160.0000000.000000
\n", + "
" + ], + "text/plain": [ + " cell group in group out nuclide mean std. dev.\n", + "126 10002 1 1 H-1 0.234115 0.003568\n", + "127 10002 1 1 O-16 1.563707 0.005953\n", + "124 10002 1 2 H-1 1.594129 0.002369\n", + "125 10002 1 2 O-16 0.285761 0.001676\n", + "122 10002 1 3 H-1 0.011089 0.000248\n", + "123 10002 1 3 O-16 0.000000 0.000000\n", + "120 10002 1 4 H-1 0.000000 0.000000\n", + "121 10002 1 4 O-16 0.000000 0.000000\n", + "118 10002 1 5 H-1 0.000000 0.000000\n", + "119 10002 1 5 O-16 0.000000 0.000000" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "nuscatter = xs_library[moderator_cell.id]['nu-scatter']\n", "df = nuscatter.get_pandas_dataframe(xs_type='micro')\n", @@ -593,7 +944,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "collapsed": true }, @@ -615,22 +966,133 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\ttransport\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t10000\n", + "\tNuclide =\tU-235\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t7.73e-03 +/- 5.06e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.82e-01 +/- 2.05e-01%\n", + "\n", + "\tNuclide =\tU-238\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t2.17e-01 +/- 1.44e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t2.53e-01 +/- 2.57e-01%\n", + "\n", + "\tNuclide =\tO-16\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t1.46e-01 +/- 1.60e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.75e-01 +/- 2.94e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], "source": [ "condensed_xs.print_xs()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cellgroup innuclidemeanstd. dev.
3100001U-23520.6116920.104237
4100001U-2389.5853580.013808
5100001O-163.1641900.005049
0100002U-235485.4134260.996410
1100002U-23811.1903860.028731
2100002O-163.7948590.011139
\n", + "
" + ], + "text/plain": [ + " cell group in nuclide mean std. dev.\n", + "3 10000 1 U-235 20.611692 0.104237\n", + "4 10000 1 U-238 9.585358 0.013808\n", + "5 10000 1 O-16 3.164190 0.005049\n", + "0 10000 2 U-235 485.413426 0.996410\n", + "1 10000 2 U-238 11.190386 0.028731\n", + "2 10000 2 O-16 3.794859 0.011139" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df = condensed_xs.get_pandas_dataframe(xs_type='micro')\n", "df" @@ -652,7 +1114,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -671,7 +1133,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -716,11 +1178,183 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ NORMAL ] Importing ray tracing data from file...\n", + "[ NORMAL ] Computing the eigenvalue...\n", + "[ NORMAL ] Iteration 0:\tk_eff = 0.574672\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.679815\tres = 4.253E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.660826\tres = 1.830E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.658940\tres = 2.793E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.853E-03\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.625810\tres = 2.417E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.606678\tres = 2.675E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.587485\tres = 3.057E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.569029\tres = 3.164E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.551707\tres = 3.142E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.536035\tres = 3.044E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.522275\tres = 2.841E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.510610\tres = 2.567E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.493832\tres = 1.861E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.488781\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.485924\tres = 1.023E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485211\tres = 5.846E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.467E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.489905\tres = 2.802E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495105\tres = 6.853E-03\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.502056\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.510630\tres = 1.404E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.520696\tres = 1.708E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532120\tres = 1.971E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.544768\tres = 2.194E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558505\tres = 2.377E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.573200\tres = 2.522E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.588723\tres = 2.631E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.604951\tres = 2.708E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.621765\tres = 2.756E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639053\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.780E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.674632\tres = 2.763E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.692730\tres = 2.729E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.710919\tres = 2.683E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729118\tres = 2.626E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.747258\tres = 2.560E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.765273\tres = 2.488E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783104\tres = 2.411E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.800701\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.818017\tres = 2.247E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.835012\tres = 2.163E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.851651\tres = 2.078E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.867906\tres = 1.993E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883750\tres = 1.909E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.899164\tres = 1.826E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914131\tres = 1.744E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.665E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.942676\tres = 1.587E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.956239\tres = 1.512E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.969323\tres = 1.439E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.981927\tres = 1.368E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.994054\tres = 1.300E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.005705\tres = 1.235E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.016886\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.027604\tres = 1.112E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037866\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.047682\tres = 9.987E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057062\tres = 9.458E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.066016\tres = 8.953E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.074556\tres = 8.471E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082693\tres = 8.011E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.090442\tres = 7.573E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.097813\tres = 7.156E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104820\tres = 6.760E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.111477\tres = 6.383E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.117795\tres = 6.025E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.685E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129470\tres = 5.362E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.134853\tres = 5.056E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139950\tres = 4.766E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.144772\tres = 4.491E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.149333\tres = 4.230E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153643\tres = 3.984E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.157716\tres = 3.751E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.161561\tres = 3.530E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.321E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.168613\tres = 3.124E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.171841\tres = 2.938E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.174883\tres = 2.762E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.177749\tres = 2.596E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.180447\tres = 2.439E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.182988\tres = 2.291E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.185378\tres = 2.152E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.187627\tres = 2.021E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.189741\tres = 1.897E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191728\tres = 1.780E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.193595\tres = 1.670E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195349\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.196996\tres = 1.469E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.198543\tres = 1.378E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.292E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.201355\tres = 1.211E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.134E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203829\tres = 1.063E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.956E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.324E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.206989\tres = 8.730E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.173E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208777\tres = 7.650E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209587\tres = 7.159E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.698E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211054\tres = 6.266E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211718\tres = 5.861E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212339\tres = 5.481E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212920\tres = 5.125E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213463\tres = 4.792E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.213971\tres = 4.479E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214446\tres = 4.186E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214890\tres = 3.912E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215305\tres = 3.655E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215692\tres = 3.414E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216055\tres = 3.189E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.979E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.782E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.217004\tres = 2.597E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217279\tres = 2.425E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217536\tres = 2.263E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217776\tres = 2.113E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.218000\tres = 1.971E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218209\tres = 1.840E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218404\tres = 1.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.601E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.494E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.393E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219062\tres = 1.299E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.212E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.130E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219448\tres = 1.054E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.822E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.156E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.534E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.954E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.219936\tres = 7.413E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.908E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220087\tres = 6.437E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220156\tres = 5.997E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220219\tres = 5.587E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220278\tres = 5.205E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220333\tres = 4.848E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220385\tres = 4.516E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220433\tres = 4.206E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220477\tres = 3.917E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220518\tres = 3.648E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220557\tres = 3.397E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220593\tres = 3.163E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220627\tres = 2.945E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220658\tres = 2.742E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220687\tres = 2.552E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220714\tres = 2.376E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220739\tres = 2.212E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220762\tres = 2.059E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220784\tres = 1.916E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220804\tres = 1.783E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220823\tres = 1.660E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220841\tres = 1.545E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.338E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.245E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.158E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.077E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.002E-05\n" + ] + } + ], "source": [ "# Generate tracks for OpenMOC\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, spacing=0.1)\n", @@ -740,11 +1374,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.223474\n", + "openmoc keff = 1.220923\n", + "bias [pcm]: -255.0\n" + ] + } + ], "source": [ "# Print report of keff and bias with OpenMC\n", "openmoc_keff = solver.getKeff()\n", @@ -765,7 +1409,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -805,11 +1449,251 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ NORMAL ] Importing ray tracing data from file...\n", + "[ NORMAL ] Computing the eigenvalue...\n", + "[ NORMAL ] Iteration 0:\tk_eff = 0.495816\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.557477\tres = 5.042E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.518301\tres = 1.244E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.509212\tres = 7.027E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.496489\tres = 1.754E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.488581\tres = 2.498E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.482897\tres = 1.593E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.479775\tres = 1.163E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.464E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.479872\tres = 1.960E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.482685\tres = 2.166E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.487085\tres = 5.861E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.492901\tres = 9.116E-03\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.499973\tres = 1.194E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.508155\tres = 1.435E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.517314\tres = 1.637E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.527327\tres = 1.802E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.538081\tres = 1.936E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.549475\tres = 2.039E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.561413\tres = 2.117E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.573810\tres = 2.173E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.586589\tres = 2.208E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.599678\tres = 2.227E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.613012\tres = 2.231E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.224E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.640186\tres = 2.206E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.653925\tres = 2.179E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.667706\tres = 2.146E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.681489\tres = 2.107E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.695240\tres = 2.064E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.708927\tres = 2.018E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.722522\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.736000\tres = 1.918E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.749339\tres = 1.865E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.762519\tres = 1.812E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.775522\tres = 1.759E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.788335\tres = 1.705E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800944\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.813338\tres = 1.599E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.825507\tres = 1.547E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.837444\tres = 1.496E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.849142\tres = 1.446E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.860595\tres = 1.397E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871801\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.882755\tres = 1.302E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.893455\tres = 1.256E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.903901\tres = 1.212E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914091\tres = 1.169E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.924027\tres = 1.127E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.933708\tres = 1.087E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.943137\tres = 1.048E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.952314\tres = 1.010E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961243\tres = 9.731E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.376E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.978367\tres = 9.033E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.986568\tres = 8.702E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 0.994534\tres = 8.382E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.002267\tres = 8.074E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.009773\tres = 7.776E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.489E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.024118\tres = 7.212E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.030966\tres = 6.944E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.037603\tres = 6.687E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.044036\tres = 6.438E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.050267\tres = 6.199E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.968E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.062145\tres = 5.746E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.532E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.073276\tres = 5.326E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.127E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083698\tres = 4.935E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.088654\tres = 4.751E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.093447\tres = 4.573E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.402E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.102560\tres = 4.238E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.079E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.111072\tres = 3.926E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.115114\tres = 3.779E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.119018\tres = 3.638E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.122790\tres = 3.501E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.126432\tres = 3.370E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.129949\tres = 3.244E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.133344\tres = 3.122E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.136622\tres = 3.005E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.139786\tres = 2.892E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142840\tres = 2.784E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.145786\tres = 2.679E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148630\tres = 2.579E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.151373\tres = 2.482E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.154020\tres = 2.388E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156573\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.159035\tres = 2.212E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.161410\tres = 2.129E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.163700\tres = 2.049E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165909\tres = 1.972E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.168038\tres = 1.898E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.170091\tres = 1.826E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.758E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.691E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.175816\tres = 1.628E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.566E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179297\tres = 1.507E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.451E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.182529\tres = 1.396E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.184058\tres = 1.343E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.185530\tres = 1.293E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.186949\tres = 1.244E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.188316\tres = 1.197E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.189633\tres = 1.152E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.108E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.192124\tres = 1.066E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.193301\tres = 1.026E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.874E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195527\tres = 9.501E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.142E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.797E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.464E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.144E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.836E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.540E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202119\tres = 7.255E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203704\tres = 6.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204452\tres = 6.462E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.217E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.982E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206534\tres = 5.755E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.537E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.327E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208391\tres = 5.126E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.931E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.209517\tres = 4.744E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.565E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.391E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.211051\tres = 4.225E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211525\tres = 4.065E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.910E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.762E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.619E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.482E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.350E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.214015\tres = 3.222E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214377\tres = 3.100E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214725\tres = 2.982E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215383\tres = 2.760E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215693\tres = 2.655E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215992\tres = 2.554E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216280\tres = 2.457E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216556\tres = 2.364E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.274E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.217078\tres = 2.187E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217325\tres = 2.104E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.217562\tres = 2.024E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217790\tres = 1.947E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.218009\tres = 1.873E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218220\tres = 1.802E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.733E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218619\tres = 1.667E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218807\tres = 1.604E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218988\tres = 1.543E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219162\tres = 1.484E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219329\tres = 1.428E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.373E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.321E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.219794\tres = 1.271E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.219938\tres = 1.222E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.220076\tres = 1.176E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220208\tres = 1.131E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220336\tres = 1.088E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220459\tres = 1.046E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220577\tres = 1.006E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220691\tres = 9.681E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220800\tres = 9.312E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220905\tres = 8.957E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.615E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.287E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.971E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.667E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.374E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.093E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221537\tres = 6.823E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.562E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.312E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.071E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.840E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.617E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.402E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.196E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.222078\tres = 4.998E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.807E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222189\tres = 4.624E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.447E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.277E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222340\tres = 4.114E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.957E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.806E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.661E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.521E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.386E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222594\tres = 3.257E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222630\tres = 3.133E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222666\tres = 3.013E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222700\tres = 2.898E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222733\tres = 2.787E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222764\tres = 2.681E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222795\tres = 2.578E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222824\tres = 2.480E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222852\tres = 2.385E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222879\tres = 2.294E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222905\tres = 2.206E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222930\tres = 2.122E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222954\tres = 2.041E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222977\tres = 1.963E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222999\tres = 1.888E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.816E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.747E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.223061\tres = 1.680E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.223080\tres = 1.616E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.554E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223116\tres = 1.495E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.382E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223164\tres = 1.330E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223179\tres = 1.279E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.230E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.183E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.138E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.094E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.052E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.012E-05\n" + ] + } + ], "source": [ "# Generate tracks for OpenMOC\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, spacing=0.1)\n", @@ -822,11 +1706,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.223474\n", + "openmoc keff = 1.223258\n", + "bias [pcm]: -21.5\n" + ] + } + ], "source": [ "# Print report of keff and bias with OpenMC\n", "openmoc_keff = solver.getKeff()\n", @@ -869,11 +1763,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'pyne' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Instantiate a PyNE ACE continuous-energy cross sections library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mpyne_lib\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mLibrary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../../../../data/nndc/293.6K/U_235_293.6K.ace'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mpyne_lib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'92235.71c'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;31m# Extract the U-235 data from the library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'pyne' is not defined" + ] + } + ], "source": [ "# Instantiate a PyNE ACE continuous-energy cross sections library\n", "pyne_lib = pyne.ace.Library('../../../../data/nndc/293.6K/U_235_293.6K.ace')\n", diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 1ccff330d..625ddeb53 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -382,7 +382,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxAVDQXcnQ0AAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDEyOjIxOjEzLTA0OjAwuK5PWAAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxMjoyMToxMy0wNDowMMnz9+QAAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIYM3KXKoUAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDE0OjI0OjUxLTA0OjAw7bdEEgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxNDoyNDo1MS0wNDowMJzq/K4AAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -568,7 +568,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 12:21:14\n", + " Date/Time: 2016-03-23 14:24:52\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -645,20 +645,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.7000E-01 seconds\n", - " Reading cross sections = 1.3500E-01 seconds\n", - " Total time in simulation = 2.1470E+00 seconds\n", - " Time in transport only = 1.8480E+00 seconds\n", - " Time in inactive batches = 2.1900E-01 seconds\n", - " Time in active batches = 1.9280E+00 seconds\n", - " Time synchronizing fission bank = 7.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", - " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.6360E+00 seconds\n", - " Calculation Rate (inactive) = 57077.6 neutrons/second\n", - " Calculation Rate (active) = 19450.2 neutrons/second\n", + " Total time for initialization = 4.7500E-01 seconds\n", + " Reading cross sections = 1.3300E-01 seconds\n", + " Total time in simulation = 2.3630E+00 seconds\n", + " Time in transport only = 1.9260E+00 seconds\n", + " Time in inactive batches = 2.6400E-01 seconds\n", + " Time in active batches = 2.0990E+00 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 2.8570E+00 seconds\n", + " Calculation Rate (inactive) = 47348.5 neutrons/second\n", + " Calculation Rate (active) = 17865.7 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1137,7 +1137,7 @@ "data": { "image/png": "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\nhnwAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1160,7 +1160,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1171,7 +1171,7 @@ "data": { "image/png": "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\nqJlZov8PnPpCLiDrzj8AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1761,27 +1761,407 @@ }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "(('level 1', 'lat', 'x'), array([], dtype=float64), Filter\n", - "\tType =\tdistribcell\n", - "\tBins =\t[10002]\n", - ")\n" - ] - }, - { - "ename": "ZeroDivisionError", - "evalue": "integer division or modulo by zero", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Get a pandas dataframe for the distribcell tally data\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mdf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_pandas_dataframe\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msummary\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msu\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnuclides\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# Print the last twenty rows in the dataframe\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m20\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.pyc\u001b[0m in \u001b[0;36mget_pandas_dataframe\u001b[1;34m(self, filters, nuclides, scores, summary, float_format)\u001b[0m\n\u001b[0;32m 1609\u001b[0m \u001b[1;31m# Append each Filter's DataFrame to the overall DataFrame\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1610\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mself_filter\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfilters\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1611\u001b[1;33m \u001b[0mfilter_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself_filter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_pandas_dataframe\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata_size\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msummary\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1612\u001b[0m \u001b[0mdf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfilter_df\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1613\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/filter.py\u001b[0m in \u001b[0;36mget_pandas_dataframe\u001b[1;34m(self, data_size, summary)\u001b[0m\n\u001b[0;32m 739\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_key\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 740\u001b[0m \u001b[0mlevel_bins\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrepeat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstride\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 741\u001b[1;33m \u001b[0mtile_factor\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata_size\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 742\u001b[0m \u001b[0mlevel_bins\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtile\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtile_factor\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 743\u001b[0m \u001b[0mlevel_dict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mlevel_key\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlevel_bins\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mZeroDivisionError\u001b[0m: integer division or modulo by zero" - ] + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
level 1level 2level 3distribcellscoremeanstd. dev.
cellunivlatcelluniv
idididxyzidid
010003010001016010002100000absorption1.30e-048.67e-06
110003010001016010002100000scatter1.98e-026.50e-04
210003010001015010002100001absorption2.24e-041.44e-05
310003010001015010002100001scatter3.00e-028.80e-04
410003010001014010002100002absorption3.16e-042.15e-05
510003010001014010002100002scatter3.90e-021.25e-03
610003010001013010002100003absorption3.78e-041.45e-05
710003010001013010002100003scatter4.86e-021.24e-03
810003010001012010002100004absorption4.21e-042.14e-05
910003010001012010002100004scatter5.52e-029.85e-04
1010003010001011010002100005absorption4.86e-042.62e-05
1110003010001011010002100005scatter6.30e-021.35e-03
1210003010001010010002100006absorption5.30e-041.92e-05
1310003010001010010002100006scatter6.93e-021.30e-03
141000301000109010002100007absorption5.86e-042.02e-05
151000301000109010002100007scatter7.57e-021.40e-03
161000301000108010002100008absorption6.30e-042.35e-05
171000301000108010002100008scatter8.09e-021.49e-03
181000301000107010002100009absorption7.10e-042.23e-05
191000301000107010002100009scatter8.94e-021.37e-03
\n", + "
" + ], + "text/plain": [ + " level 1 level 2 level 3 distribcell score \\\n", + " cell univ lat cell univ \n", + " id id id x y z id id \n", + "0 10003 0 10001 0 16 0 10002 10000 0 absorption \n", + "1 10003 0 10001 0 16 0 10002 10000 0 scatter \n", + "2 10003 0 10001 0 15 0 10002 10000 1 absorption \n", + "3 10003 0 10001 0 15 0 10002 10000 1 scatter \n", + "4 10003 0 10001 0 14 0 10002 10000 2 absorption \n", + "5 10003 0 10001 0 14 0 10002 10000 2 scatter \n", + "6 10003 0 10001 0 13 0 10002 10000 3 absorption \n", + "7 10003 0 10001 0 13 0 10002 10000 3 scatter \n", + "8 10003 0 10001 0 12 0 10002 10000 4 absorption \n", + "9 10003 0 10001 0 12 0 10002 10000 4 scatter \n", + "10 10003 0 10001 0 11 0 10002 10000 5 absorption \n", + "11 10003 0 10001 0 11 0 10002 10000 5 scatter \n", + "12 10003 0 10001 0 10 0 10002 10000 6 absorption \n", + "13 10003 0 10001 0 10 0 10002 10000 6 scatter \n", + "14 10003 0 10001 0 9 0 10002 10000 7 absorption \n", + "15 10003 0 10001 0 9 0 10002 10000 7 scatter \n", + "16 10003 0 10001 0 8 0 10002 10000 8 absorption \n", + "17 10003 0 10001 0 8 0 10002 10000 8 scatter \n", + "18 10003 0 10001 0 7 0 10002 10000 9 absorption \n", + "19 10003 0 10001 0 7 0 10002 10000 9 scatter \n", + "\n", + " mean std. dev. \n", + " \n", + " \n", + "0 1.30e-04 8.67e-06 \n", + "1 1.98e-02 6.50e-04 \n", + "2 2.24e-04 1.44e-05 \n", + "3 3.00e-02 8.80e-04 \n", + "4 3.16e-04 2.15e-05 \n", + "5 3.90e-02 1.25e-03 \n", + "6 3.78e-04 1.45e-05 \n", + "7 4.86e-02 1.24e-03 \n", + "8 4.21e-04 2.14e-05 \n", + "9 5.52e-02 9.85e-04 \n", + "10 4.86e-04 2.62e-05 \n", + "11 6.30e-02 1.35e-03 \n", + "12 5.30e-04 1.92e-05 \n", + "13 6.93e-02 1.30e-03 \n", + "14 5.86e-04 2.02e-05 \n", + "15 7.57e-02 1.40e-03 \n", + "16 6.30e-04 2.35e-05 \n", + "17 8.09e-02 1.49e-03 \n", + "18 7.10e-04 2.23e-05 \n", + "19 8.94e-02 1.37e-03 " + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -1794,11 +2174,97 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
meanstd. dev.
count2.89e+022.89e+02
mean4.15e-041.71e-05
std2.41e-046.82e-06
min1.78e-052.81e-06
25%2.06e-041.16e-05
50%4.03e-041.71e-05
75%6.05e-042.19e-05
max9.35e-044.54e-05
\n", + "
" + ], + "text/plain": [ + " mean std. dev.\n", + " \n", + " \n", + "count 2.89e+02 2.89e+02\n", + "mean 4.15e-04 1.71e-05\n", + "std 2.41e-04 6.82e-06\n", + "min 1.78e-05 2.81e-06\n", + "25% 2.06e-04 1.16e-05\n", + "50% 4.03e-04 1.71e-05\n", + "75% 6.05e-04 2.19e-05\n", + "max 9.35e-04 4.54e-05" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Show summary statistics for absorption distribcell tally data\n", "absorption = df[df['score'] == 'absorption']\n", @@ -1817,11 +2283,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mann-Whitney Test p-value: 1.39844745394e-41\n" + ] + } + ], "source": [ "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", @@ -1847,11 +2321,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mann-Whitney Test p-value: 0.902458041178\n" + ] + } + ], "source": [ "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", @@ -1875,11 +2357,43 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/wboyd/anaconda2/lib/python2.7/site-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRo\nRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkpuoWaMxs\njpndaWY/MbMeM+ssU+5sM3vIzH5qZpcltn/SzHaa2QNm9s9m1jF5tRcRkUrVs0WzBrjL3Y8Fvglc\nXlrAzGYBNwFvAE4AVpjZceHlO4ET3H0x8HDa/o1m+/bt9a5CRVTP6mmEOoLqWW2NUs9qqWegOQ/4\nTPj5M8Cfp5Q5DXjY3Xe7+wFga9gPd7/L3Q+Gct8DjqhxfWuuUf7zqZ7V0wh1BNWz2hqlntVSz0Dz\nUnd/CsDdnwRemlLmcGBP4vljYVup9wJfr3oNRURkwmbX8uBm9g3gkOQmwIH/kVLcx3mOvwUOuPuW\n8ewvIiK1Ze7jur5P/MRmO4Hl7v6Umb0M6HX340vKLAOucvezw/M1gLv7teH5u4ELgNe5+74RzlWf\nNyki0uDc3SZ6jJq2aEbxFeDdwLXAXwJfTimzAzjazOYDTwDvAFZAlI0GfBj4ryMFGajOByUiIuNT\nzxbNXOCfgCOB3cDb3f23ZnYosNHd/yyUOxu4kWg8aZO7XxO2PwxkgF+FQ37P3S+a5LchIiKjqFug\nERGRmWHarAwwlSeAljtnSZl1ZvZwOP/isexb73qa2RFm9k0z+7GZ/dDMLp6K9Uy8NsvM7jOzr0zV\neppZp5l9Lvyf/LGZvXKK1vODZvYjM3vQzG43s0w96mhmx5rZf5rZ82b2N2PZdyrUc6r9DY30eYbX\nx/Y35O7T4kE01vOR8PNlwDUpZWYBjwDzgWbgAeC48NqZwKzw8zXA/65SvcqeM1HmHOBfw8+vJOoG\nrGjfKn5+E6nny4DF4ec24CdTsZ6J1z8I/CPwlRr+f5xQPYHNwHvCz7OBjqlWT+Aw4FEgE55vA95V\npzr+EfBfgLXA34xl3ylSz6n2N5Raz8TrY/obmjYtGqbuBNCy5yyp+22hHvcAnWZ2SIX7Vsu46+nu\nT7r7A2H7c8BO0uc71bWeEH1zBM4F/qFG9ZtwPUNr+rXufmt47QV3/91Uq2d4rQloNbPZQAvwy3rU\n0d2fdvd7gRfGuu9UqOdU+xsa4fMc19/QdAo0U3UCaCXnLFem0vpWw3jq+XhpGTNbACwG7ql6DdPr\nMNZ63kCUrVjrwcmJ1PMo4GkzuzV0T2wws/xUq6e7/xK4HvhF2PZbd7+rTnWsxb5jVZVzTZG/oZGM\n+W+ooQKNmX0j9AXHjx+Gf9+cUryRJ4A2ZDq2mbUBnwcuCd/KphQzeyPwVPjmaEzdz3k2sBT4O3df\nCvyBaG3AKcXMuoi+Cc8n6kZrM7O/qG+tGtt0/Ruq5zyaMXP3s8q9ZmZPhW6ceALoQEqxx4F5iedH\nhG3xMd5N1CR8XXVqPPo5E2WOTCmTqWDfaplIPQldJ58HPuvuaXOipkI93wq82czOBfJAu5nd5u7v\nmmL1BNjj7t8PP3+eaNyxFiZSzzOBR9391wBm9gXg1UC1v6RVUsda7DtWEzrXFPsbKuc1jOdvqBaD\nTfV4ECUDXBZ+LpcM0ERhECxDNAh2fHjtbODHwEuqXK+y50yUOZfCYOsyCoOto+47FeoZnt8GfGoS\nfs8TqmeizOnUNhlgop/nt4BF4ecrgWunWj2J+vp/COSIvtluBt5fjzomyl4JXDqefetZz7BtyvwN\njVTPxGsV/w3V9A1N5gOYC9xFlK1xJ9AVth8K/Eui3NmhzMPAmsT2h4kmjt4XHjdXsW7DzgmsAt6X\nKHNT+OX/AFg6Wn1r9BmOtZ5LwrbXAC+G/7D3h8/v7ClUz6Upx6hpoKnC7/0UopUxHgC+AHRO0Xpe\nSTRw/SBREk5zPepItKbiHuC3wK+Jxo3ayu1br8+yXD2n2t/QSJ9n4hgV/w1pwqaIiNRUQyUDiIhI\n41GgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgEakSM5sfblR2q0U3\n4PtHM3u9md0dnv+xmbWY2SYz+56Z3Wtmb0rs+x9m9v3wWBa2n25mvYmboH22vu9SZOy0MoBIlZjZ\nfKIlPRa7e7+ZfR94wN3/KgSU9wL9wI/dfYtFd4HtI1oS3oGD7r7fzI4G7nD3U83sdOBLwCuAJ4Hv\nAB9y9/+c/HcoMj4NtXqzSAP4ubv3h59/DPx7+PlHwAKilXLfZGYfDtvjFbqfAG4Kt0l+ETgmccw+\nd38CwMweCMdRoJGGoUAjUl37Ej8fTDw/SPT39gLwFnd/OLmTmV0JPOnuJ5tZE7C3zDFfRH+30mA0\nRiNSXaPdCKoHuHiocNSCAegkatUAvItoKXeRaUGBRqS6vMzP8fO1QHN8h1jg4+G1m4F3m9n9wCLg\n9xUcX6QhKBlARERqSi0aERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUa\nERGpqf8HTKaAIu8FxywAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Extract the scatter tally data from pandas\n", "scatter = df[df['score'] == 'scatter']\n", @@ -1892,11 +2406,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n059Yv3498+bNo2/fvgC7+ygKCgooKCige/fuPPnkkwwbNox3332X+fPns2HDBq688koAZs2aRf/+\n/XnuuedYtmwZ69evZ+nSpUXO9eqrr9K3b1/WrVvHOeecQ40aNfj3v//NmjVrmDhxIhMmTGDQoEFF\n9hkzZgzTp09n0qRJ3HPPPVx22WUMHz6cxYsX89lnn/Hcc88l+ldVJkoQIlLp9OnTh8aNG+9+9O/f\nP+Z2tWrVYu7cuaxevZq6dety+OGHF1lfOLEMHz6c6667jpycHOrWrcs//vEPXnjhBXbu3MnIkSM5\n5ZRTOPLII6lRowa33XbbT8515JFH0rt3bwBq165Nly5dOPzwwzEz2rZty6WXXsq7775bZJ+bbrqJ\nevXqccABB3DggQdywgknkJOTw957781JJ53E9OnTK/qrqhAlCBGpdEaNGsWaNWt2P4p/M99lyJAh\nzJkzh44dO9K9e3def/31PR5z6dKl5OTk7H6dk5PD9u3bWbFiBUuXLqVNmza719WpU6fILUyBIusB\nvv76a3r37k2LFi1o2LAht9xyC999912RbZo1a1bkmM2bNy/yeuPGjSX8FpJPCUJEKp14O5fbt2/P\n8OHDWbVqFTfeeCNnnHEGmzZtitmh3bJlSxYt+vFWtosWLaJGjRo0b96cFi1a8O233+5et2nTJlav\nXl1k/+LHvPzyyznggAOYN28e69at484776x099hQghCRKuvZZ5/d/a29QYMGmBkZGRk0bdqUjIwM\n5s2bt3vbs846i3/9618sXLiQjRs3csstt9CvXz8yMjI444wzGD16NJMmTWLbtm0MHDiw1HNv2LCB\nrKws6taty5dffsngwYOTVcykUYIQkbg0b54DWNIewfFLV9pw1sLr33rrLTp37kxWVhbXXnstL7zw\nArVr16ZOnTrccsst9OzZk8aNGzNlyhQuvPBCzjvvPI4++mjat29P3bp1efDBBwHo1KkTDz30EL/7\n3e9o2bIlWVlZNGvWjNq1a+8xjvvuu49nn32WrKwsLrvsMvr161diOcoyTDdVknrLUTNrDQwDmgM7\ngcfd/UEzawS8AOQAC4G+7r4+xv665ajolqMR0C1HS/b999/TsGFD5s6dW6TfItUq+y1HtwPXuXtn\n4Eigv5l1BP4CjHP3/YEJwF+THIeISIW89tprbNq0ie+//57rr7+egw46KNLkkApJTRDuvtzdPw2f\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Plot a histogram and kernel density estimate for the scattering rates\n", "scatter['mean'].plot(kind='hist', bins=25)\n", diff --git a/openmc/filter.py b/openmc/filter.py index 5c62c1b6b..2536c3607 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -646,18 +646,10 @@ class Filter(object): # offsets to OpenCG LocalCoords linked lists offsets_to_coords = {} - # Use OpenCG to compute LocalCoords linked list for - # each region and store in dictionary - for region in range(num_regions): + for offset, path in enumerate(self.distribcell_paths): + region = opencg_geometry.get_region_from_path(path) coords = opencg_geometry.find_region(region) - path = opencg.get_path(coords) - cell_id = path[-1] - - # If this region is in Cell corresponding to the - # distribcell filter bin, store it in dictionary - if cell_id == self.bins[0]: - offset = openmc_geometry.get_cell_instance(path) - offsets_to_coords[offset] = coords + offsets_to_coords[offset] = coords # Each distribcell offset is a DataFrame bin # Unravel the paths into DataFrame columns From 5cc884555b0bcb77b540f6bea1fcfb9c04224cfc Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 23 Mar 2016 14:51:39 -0400 Subject: [PATCH 075/259] Updated IPython Notebooks --- .../pythonapi/examples/mgxs-part-iii.ipynb | 30 ++++++------- .../examples/pandas-dataframes.ipynb | 44 +++++++++---------- .../pythonapi/examples/post-processing.ipynb | 42 +++++++++--------- .../pythonapi/examples/tally-arithmetic.ipynb | 30 ++++++------- 4 files changed, 73 insertions(+), 73 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 83d99976a..023efcc10 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -469,7 +469,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98\niBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+ADFxAKDyaI8r8AAAQUSURBVGje7VvNleMgDA4HSqAf\nl+CDnUNKSD8uIQdT5djBgIRESPztbua9RYeZPNAnCcdBP4jLpVOnTp2+TnaexJibRzE2z4MOn4UA\nt42NAq4KMPt4wWxnyeyeYxIfxvlEGJqkGnVVV//gE5v6m1+4AZuau5cL3Xiv3vuVTbgN7jcBI1Oz\nDXn5BNxzfGMmE0+RG/NE1ewiNz3iqQZeOmE3S3d6EJmHGl8uwBy8fpkEL5UZ1O8yy+V7MRF5icyk\nZi2/1chLJiKvf0xCjV/4A0i8PhlrEu+abHJXL2Ry3izYJl6fbEpmEpkFPgnOvFlmNpPjia40oeCJ\nGs/fypvEZ13JJopnD5Dgk2DCu07CTI4nuvwyCF3RJkvUsC+A8CY80eUV/FrFj8LWuCZXwVNb/WMU\nuqJNjiyTfoHM1jfxvoqfqvj5HfyxMMfwo3hMFG81PNX10PD5BWS2votfOv7X4MHv35zCv35/1ff/\nHTz6+znx+71o+4e2/xB8a//S9r/a/qXuv439k+2/1LDDVnX/JjKPZUrDXvmfmv8ghr3tvwaKvwre\nhv/l/lPz35r/r/lvMpHjBxJ/DMImHn/kWCnrMjn+SbqyTQvHp8BmbcRfSc3I8MlYGv9dJW+UWcZv\nJk6w+FPyRplLGcEf8SuNVaNMyhtjWiXTeDKzBCDE2iwmN0HPIuJns8f12ziVG2J6HqvvKcGeJ1xK\nCnlF8VbJnMQqOQmZKL5VJVeZ50oC5eS4UXIlq6c/QbLyVMRKnWZ9p06dOnX6HjnVK4m92lS2f6fU\n1RRXZSr+wyj+S6vfKWW6rL5gVnylrdTvzNMxi/rdEP5QNdfdzQsDQmFtZRPuibRUpgkxxSIc8FEs\n4/HLdKyCqrmHmKRYQIx1eP1uYP+JGhE/Wa1+Fz+q9Tu+gBTr0frdWAoiMWmxAKV+Z9Inm+PXj+p3\nF/Hpo/pd5mjW79T8IVuYPtbyB7V+lxnsKMys1u9y/kTwrfxJyd8uNL9V6ncsf1Prd/TxHnhi5qOV\nv7J5ucxq/hvzZzY/iGU263fs+Sj4Vv7fwDfrFwr+k/qHY/jxJV6t39D3y2p48n7dTuBb9aeO/3d4\n8PtH378/+v6f+f2Bv390/8H3PyL4zP6L7v+o/0H9H+p/Uf+Pxh9w/IPGX2j8h8afaPwLx99o/I/m\nH3D+g+ZfcP7XqVOnTp2+ROD5C3j+g54/gedf6Pkbev4Hnj+i55/o+St6/oueP4Pn3+j5O3r+j/Yf\noP0PaP8F2v8B9594Ydgn/S+/sX/udP/Rif6n3n/3n+P/Rv8dtanR//nt/jm0/xbt/8X7j+8S/0n/\nM9p/jfZ/o/3naP872n+P9v/D9w/Q+w/o/Qv0/gd8/wS9/4Lev4Hv/6D3j9D7T/D9q06dOnX6jH4A\n5sDOrAejcacAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTI6MTA6MTUtMDQ6MDCtXndd\nAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEyOjEwOjE1LTA0OjAw3APP4QAAAABJRU5E\nrkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98\niBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+ADFxIsERzdmJYAAAQUSURBVGje7VvNleMgDA4HSqAf\nl+CDnUNKSD8uIQdT5djBgIRESPztbua9RYeZPNAnCcdBP4jLpVOnTp2+TnaexJibRzE2z4MOn4UA\nt42NAq4KMPt4wWxnyeyeYxIfxvlEGJqkGnVVV//gE5v6m1+4AZuau5cL3Xiv3vuVTbgN7jcBI1Oz\nDXn5BNxzfGMmE0+RG/NE1ewiNz3iqQZeOmE3S3d6EJmHGl8uwBy8fpkEL5UZ1O8yy+V7MRF5icyk\nZi2/1chLJiKvf0xCjV/4A0i8PhlrEu+abHJXL2Ry3izYJl6fbEpmEpkFPgnOvFlmNpPjia40oeCJ\nGs/fypvEZ13JJopnD5Dgk2DCu07CTI4nuvwyCF3RJkvUsC+A8CY80eUV/FrFj8LWuCZXwVNb/WMU\nuqJNjiyTfoHM1jfxvoqfqvj5HfyxMMfwo3hMFG81PNX10PD5BWS2votfOv7X4MHv35zCv35/1ff/\nHTz6+znx+71o+4e2/xB8a//S9r/a/qXuv439k+2/1LDDVnX/JjKPZUrDXvmfmv8ghr3tvwaKvwre\nhv/l/lPz35r/r/lvMpHjBxJ/DMImHn/kWCnrMjn+SbqyTQvHp8BmbcRfSc3I8MlYGv9dJW+UWcZv\nJk6w+FPyRplLGcEf8SuNVaNMyhtjWiXTeDKzBCDE2iwmN0HPIuJns8f12ziVG2J6HqvvKcGeJ1xK\nCnlF8VbJnMQqOQmZKL5VJVeZ50oC5eS4UXIlq6c/QbLyVMRKnWZ9p06dOnX6HjnVK4m92lS2f6fU\n1RRXZSr+wyj+S6vfKWW6rL5gVnylrdTvzNMxi/rdEP5QNdfdzQsDQmFtZRPuibRUpgkxxSIc8FEs\n4/HLdKyCqrmHmKRYQIx1eP1uYP+JGhE/Wa1+Fz+q9Tu+gBTr0frdWAoiMWmxAKV+Z9Inm+PXj+p3\nF/Hpo/pd5mjW79T8IVuYPtbyB7V+lxnsKMys1u9y/kTwrfxJyd8uNL9V6ncsf1Prd/TxHnhi5qOV\nv7J5ucxq/hvzZzY/iGU263fs+Sj4Vv7fwDfrFwr+k/qHY/jxJV6t39D3y2p48n7dTuBb9aeO/3d4\n8PtH378/+v6f+f2Bv390/8H3PyL4zP6L7v+o/0H9H+p/Uf+Pxh9w/IPGX2j8h8afaPwLx99o/I/m\nH3D+g+ZfcP7XqVOnTp2+ROD5C3j+g54/gedf6Pkbev4Hnj+i55/o+St6/oueP4Pn3+j5O3r+j/Yf\noP0PaP8F2v8B9594Ydgn/S+/sX/udP/Rif6n3n/3n+P/Rv8dtanR//nt/jm0/xbt/8X7j+8S/0n/\nM9p/jfZ/o/3naP872n+P9v/D9w/Q+w/o/Qv0/gd8/wS9/4Lev4Hv/6D3j9D7T/D9q06dOnX6jH4A\n5sDOrAejcacAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NDQ6MTYtMDQ6MDBE774l\nAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjQ0OjE2LTA0OjAwNbIGmQAAAABJRU5E\nrkJggg==\n", "text/plain": [ "" ] @@ -736,7 +736,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 12:10:16\n", + " Date/Time: 2016-03-23 14:44:19\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -824,20 +824,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.2200E-01 seconds\n", - " Reading cross sections = 1.6000E-01 seconds\n", - " Total time in simulation = 6.0800E+00 seconds\n", - " Time in transport only = 5.6140E+00 seconds\n", - " Time in inactive batches = 6.1300E-01 seconds\n", - " Time in active batches = 5.4670E+00 seconds\n", + " Total time for initialization = 4.7900E-01 seconds\n", + " Reading cross sections = 1.3600E-01 seconds\n", + " Total time in simulation = 6.5400E+00 seconds\n", + " Time in transport only = 5.8520E+00 seconds\n", + " Time in inactive batches = 6.1600E-01 seconds\n", + " Time in active batches = 5.9240E+00 seconds\n", " Time synchronizing fission bank = 2.0000E-03 seconds\n", " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 6.6230E+00 seconds\n", - " Calculation Rate (inactive) = 40783.0 neutrons/second\n", - " Calculation Rate (active) = 18291.6 neutrons/second\n", + " Total time elapsed = 7.0410E+00 seconds\n", + " Calculation Rate (inactive) = 40584.4 neutrons/second\n", + " Calculation Rate (active) = 16880.5 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1588,7 +1588,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 44, @@ -1599,7 +1599,7 @@ "data": { "image/png": "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\ngg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 625ddeb53..27812f4d6 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -382,7 +382,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIYM3KXKoUAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDE0OjI0OjUxLTA0OjAw7bdEEgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxNDoyNDo1MS0wNDowMJzq/K4AAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxItHQxw5fwAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDE0OjQ1OjI5LTA0OjAw0+qiEQAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxNDo0NToyOS0wNDowMKK3Gq0AAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -568,7 +568,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:24:52\n", + " Date/Time: 2016-03-23 14:45:30\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -645,20 +645,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.7500E-01 seconds\n", - " Reading cross sections = 1.3300E-01 seconds\n", - " Total time in simulation = 2.3630E+00 seconds\n", - " Time in transport only = 1.9260E+00 seconds\n", - " Time in inactive batches = 2.6400E-01 seconds\n", - " Time in active batches = 2.0990E+00 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 4.5300E-01 seconds\n", + " Reading cross sections = 1.3200E-01 seconds\n", + " Total time in simulation = 1.9780E+00 seconds\n", + " Time in transport only = 1.7780E+00 seconds\n", + " Time in inactive batches = 2.1000E-01 seconds\n", + " Time in active batches = 1.7680E+00 seconds\n", + " Time synchronizing fission bank = 5.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 2.8570E+00 seconds\n", - " Calculation Rate (inactive) = 47348.5 neutrons/second\n", - " Calculation Rate (active) = 17865.7 neutrons/second\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 2.4480E+00 seconds\n", + " Calculation Rate (inactive) = 59523.8 neutrons/second\n", + " Calculation Rate (active) = 21210.4 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1137,7 +1137,7 @@ "data": { "image/png": "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\nhnwAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1160,7 +1160,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1171,7 +1171,7 @@ "data": { "image/png": "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\nqJlZov8PnPpCLiDrzj8AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2376,7 +2376,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2387,7 +2387,7 @@ "data": { "image/png": "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\nphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRo\nRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkpuoWaMxs\njpndaWY/MbMeM+ssU+5sM3vIzH5qZpcltn/SzHaa2QNm9s9m1jF5tRcRkUrVs0WzBrjL3Y8Fvglc\nXlrAzGYBNwFvAE4AVpjZceHlO4ET3H0x8HDa/o1m+/bt9a5CRVTP6mmEOoLqWW2NUs9qqWegOQ/4\nTPj5M8Cfp5Q5DXjY3Xe7+wFga9gPd7/L3Q+Gct8DjqhxfWuuUf7zqZ7V0wh1BNWz2hqlntVSz0Dz\nUnd/CsDdnwRemlLmcGBP4vljYVup9wJfr3oNRURkwmbX8uBm9g3gkOQmwIH/kVLcx3mOvwUOuPuW\n8ewvIiK1Ze7jur5P/MRmO4Hl7v6Umb0M6HX340vKLAOucvezw/M1gLv7teH5u4ELgNe5+74RzlWf\nNyki0uDc3SZ6jJq2aEbxFeDdwLXAXwJfTimzAzjazOYDTwDvAFZAlI0GfBj4ryMFGajOByUiIuNT\nzxbNXOCfgCOB3cDb3f23ZnYosNHd/yyUOxu4kWg8aZO7XxO2PwxkgF+FQ37P3S+a5LchIiKjqFug\nERGRmWHarAwwlSeAljtnSZl1ZvZwOP/isexb73qa2RFm9k0z+7GZ/dDMLp6K9Uy8NsvM7jOzr0zV\neppZp5l9Lvyf/LGZvXKK1vODZvYjM3vQzG43s0w96mhmx5rZf5rZ82b2N2PZdyrUc6r9DY30eYbX\nx/Y35O7T4kE01vOR8PNlwDUpZWYBjwDzgWbgAeC48NqZwKzw8zXA/65SvcqeM1HmHOBfw8+vJOoG\nrGjfKn5+E6nny4DF4ec24CdTsZ6J1z8I/CPwlRr+f5xQPYHNwHvCz7OBjqlWT+Aw4FEgE55vA95V\npzr+EfBfgLXA34xl3ylSz6n2N5Raz8TrY/obmjYtGqbuBNCy5yyp+22hHvcAnWZ2SIX7Vsu46+nu\nT7r7A2H7c8BO0uc71bWeEH1zBM4F/qFG9ZtwPUNr+rXufmt47QV3/91Uq2d4rQloNbPZQAvwy3rU\n0d2fdvd7gRfGuu9UqOdU+xsa4fMc19/QdAo0U3UCaCXnLFem0vpWw3jq+XhpGTNbACwG7ql6DdPr\nMNZ63kCUrVjrwcmJ1PMo4GkzuzV0T2wws/xUq6e7/xK4HvhF2PZbd7+rTnWsxb5jVZVzTZG/oZGM\n+W+ooQKNmX0j9AXHjx+Gf9+cUryRJ4A2ZDq2mbUBnwcuCd/KphQzeyPwVPjmaEzdz3k2sBT4O3df\nCvyBaG3AKcXMuoi+Cc8n6kZrM7O/qG+tGtt0/Ruq5zyaMXP3s8q9ZmZPhW6ceALoQEqxx4F5iedH\nhG3xMd5N1CR8XXVqPPo5E2WOTCmTqWDfaplIPQldJ58HPuvuaXOipkI93wq82czOBfJAu5nd5u7v\nmmL1BNjj7t8PP3+eaNyxFiZSzzOBR9391wBm9gXg1UC1v6RVUsda7DtWEzrXFPsbKuc1jOdvqBaD\nTfV4ECUDXBZ+LpcM0ERhECxDNAh2fHjtbODHwEuqXK+y50yUOZfCYOsyCoOto+47FeoZnt8GfGoS\nfs8TqmeizOnUNhlgop/nt4BF4ecrgWunWj2J+vp/COSIvtluBt5fjzomyl4JXDqefetZz7BtyvwN\njVTPxGsV/w3V9A1N5gOYC9xFlK1xJ9AVth8K/Eui3NmhzMPAmsT2h4kmjt4XHjdXsW7DzgmsAt6X\nKHNT+OX/AFg6Wn1r9BmOtZ5LwrbXAC+G/7D3h8/v7ClUz6Upx6hpoKnC7/0UopUxHgC+AHRO0Xpe\nSTRw/SBREk5zPepItKbiHuC3wK+Jxo3ayu1br8+yXD2n2t/QSJ9n4hgV/w1pwqaIiNRUQyUDiIhI\n41GgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgEakSM5sfblR2q0U3\n4PtHM3u9md0dnv+xmbWY2SYz+56Z3Wtmb0rs+x9m9v3wWBa2n25mvYmboH22vu9SZOy0MoBIlZjZ\nfKIlPRa7e7+ZfR94wN3/KgSU9wL9wI/dfYtFd4HtI1oS3oGD7r7fzI4G7nD3U83sdOBLwCuAJ4Hv\nAB9y9/+c/HcoMj4NtXqzSAP4ubv3h59/DPx7+PlHwAKilXLfZGYfDtvjFbqfAG4Kt0l+ETgmccw+\nd38CwMweCMdRoJGGoUAjUl37Ej8fTDw/SPT39gLwFnd/OLmTmV0JPOnuJ5tZE7C3zDFfRH+30mA0\nRiNSXaPdCKoHuHiocNSCAegkatUAvItoKXeRaUGBRqS6vMzP8fO1QHN8h1jg4+G1m4F3m9n9wCLg\n9xUcX6QhKBlARERqSi0aERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUa\nERGpqf8HTKaAIu8FxywAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2414,7 +2414,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2425,7 +2425,7 @@ "data": { "image/png": "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\n059Yv3498+bNo2/fvgC7+ygKCgooKCige/fuPPnkkwwbNox3332X+fPns2HDBq688koAZs2aRf/+\n/XnuuedYtmwZ69evZ+nSpUXO9eqrr9K3b1/WrVvHOeecQ40aNfj3v//NmjVrmDhxIhMmTGDQoEFF\n9hkzZgzTp09n0qRJ3HPPPVx22WUMHz6cxYsX89lnn/Hcc88l+ldVJkoQIlLp9OnTh8aNG+9+9O/f\nP+Z2tWrVYu7cuaxevZq6dety+OGHF1lfOLEMHz6c6667jpycHOrWrcs//vEPXnjhBXbu3MnIkSM5\n5ZRTOPLII6lRowa33XbbT8515JFH0rt3bwBq165Nly5dOPzwwzEz2rZty6WXXsq7775bZJ+bbrqJ\nevXqccABB3DggQdywgknkJOTw957781JJ53E9OnTK/qrqhAlCBGpdEaNGsWaNWt2P4p/M99lyJAh\nzJkzh44dO9K9e3def/31PR5z6dKl5OTk7H6dk5PD9u3bWbFiBUuXLqVNmza719WpU6fILUyBIusB\nvv76a3r37k2LFi1o2LAht9xyC999912RbZo1a1bkmM2bNy/yeuPGjSX8FpJPCUJEKp14O5fbt2/P\n8OHDWbVqFTfeeCNnnHEGmzZtitmh3bJlSxYt+vFWtosWLaJGjRo0b96cFi1a8O233+5et2nTJlav\nXl1k/+LHvPzyyznggAOYN28e69at484776x099hQghCRKuvZZ5/d/a29QYMGmBkZGRk0bdqUjIwM\n5s2bt3vbs846i3/9618sXLiQjRs3csstt9CvXz8yMjI444wzGD16NJMmTWLbtm0MHDiw1HNv2LCB\nrKws6taty5dffsngwYOTVcykUYIQkbg0b54DWNIewfFLV9pw1sLr33rrLTp37kxWVhbXXnstL7zw\nArVr16ZOnTrccsst9OzZk8aNGzNlyhQuvPBCzjvvPI4++mjat29P3bp1efDBBwHo1KkTDz30EL/7\n3e9o2bIlWVlZNGvWjNq1a+8xjvvuu49nn32WrKwsLrvsMvr161diOcoyTDdVknrLUTNrDQwDmgM7\ngcfd/UEzawS8AOQAC4G+7r4+xv665ajolqMR0C1HS/b999/TsGFD5s6dW6TfItUq+y1HtwPXuXtn\n4Eigv5l1BP4CjHP3/YEJwF+THIeISIW89tprbNq0ie+//57rr7+egw46KNLkkApJTRDuvtzdPw2f\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 7daf1d1cf..130e44cf4 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -350,7 +350,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxEMN1kSh5AAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTM6MTI6\nNTUtMDQ6MDDwd3AfAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEzOjEyOjU1LTA0OjAw\ngSrIowAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIxKlK6Ha4AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NDk6\nNDEtMDQ6MDA8VgV/AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjQ5OjQxLTA0OjAw\nTQu9wwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -461,7 +461,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 13:12:56\n", + " Date/Time: 2016-03-23 14:49:42\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -599,20 +599,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.4800E-01 seconds\n", - " Reading cross sections = 1.3300E-01 seconds\n", - " Total time in simulation = 4.6592E+01 seconds\n", - " Time in transport only = 4.4918E+01 seconds\n", - " Time in inactive batches = 1.1940E+00 seconds\n", - " Time in active batches = 4.5398E+01 seconds\n", - " Time synchronizing fission bank = 2.2000E-02 seconds\n", + " Total time for initialization = 5.3200E-01 seconds\n", + " Reading cross sections = 1.7200E-01 seconds\n", + " Total time in simulation = 4.5299E+01 seconds\n", + " Time in transport only = 4.3964E+01 seconds\n", + " Time in inactive batches = 1.2390E+00 seconds\n", + " Time in active batches = 4.4060E+01 seconds\n", + " Time synchronizing fission bank = 2.3000E-02 seconds\n", " Sampling source sites = 1.5000E-02 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", - " Time accumulating tallies = 3.1000E-02 seconds\n", - " Total time for finalization = 2.7300E-01 seconds\n", - " Total time elapsed = 4.7345E+01 seconds\n", - " Calculation Rate (inactive) = 41876.0 neutrons/second\n", - " Calculation Rate (active) = 9912.33 neutrons/second\n", + " SEND/RECV source sites = 8.0000E-03 seconds\n", + " Time accumulating tallies = 2.7000E-02 seconds\n", + " Total time for finalization = 3.0800E-01 seconds\n", + " Total time elapsed = 4.6175E+01 seconds\n", + " Calculation Rate (inactive) = 40355.1 neutrons/second\n", + " Calculation Rate (active) = 10213.3 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -869,7 +869,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -880,7 +880,7 @@ "data": { "image/png": "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\n87qEMGb9LAAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -912,7 +912,7 @@ "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1026,7 +1026,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1037,7 +1037,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1088,7 +1088,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index da9cb2dd1..0ab708e09 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -366,7 +366,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxEWMplVicQAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTM6MjI6\nNTAtMDQ6MDA7rTm5AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEzOjIyOjUwLTA0OjAw\nSvCBBQAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIyLefz284AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NTA6\nNDUtMDQ6MDD1gtVmAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjUwOjQ1LTA0OjAw\nhN9t2gAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -571,7 +571,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 13:22:51\n", + " Date/Time: 2016-03-23 14:50:46\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -629,20 +629,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.5200E-01 seconds\n", - " Reading cross sections = 1.2900E-01 seconds\n", - " Total time in simulation = 2.0330E+00 seconds\n", - " Time in transport only = 1.9420E+00 seconds\n", - " Time in inactive batches = 3.1000E-01 seconds\n", - " Time in active batches = 1.7230E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 0.0000E+00 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 5.0400E-01 seconds\n", + " Reading cross sections = 1.5000E-01 seconds\n", + " Total time in simulation = 2.1570E+00 seconds\n", + " Time in transport only = 1.9760E+00 seconds\n", + " Time in inactive batches = 3.3600E-01 seconds\n", + " Time in active batches = 1.8210E+00 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 2.5040E+00 seconds\n", - " Calculation Rate (inactive) = 40322.6 neutrons/second\n", - " Calculation Rate (active) = 21764.4 neutrons/second\n", + " Total time elapsed = 2.6800E+00 seconds\n", + " Calculation Rate (inactive) = 37202.4 neutrons/second\n", + " Calculation Rate (active) = 20593.1 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1609,7 +1609,7 @@ "# \"Slice\" the H-1 scatter data in the moderator Cell into a new derived Tally\n", "need_to_slice = sp.get_tally(name='need-to-slice')\n", "slice_test = need_to_slice.get_slice(scores=['scatter'], nuclides=['H-1'],\n", - " filters=['cell'], filter_bins=[(moderator_cell.id,)])\n", + " filters=['cell'], filter_bins=[(moderator_cell.id,)])\n", "slice_test.get_pandas_dataframe()" ] } From c6dbbddf61f404e2feb04278f3eab44b98ca8820 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Wed, 23 Mar 2016 15:04:15 -0400 Subject: [PATCH 076/259] Updated MGXS Part II Notebook --- .../pythonapi/examples/mgxs-part-ii.ipynb | 170 ++++++++++-------- 1 file changed, 93 insertions(+), 77 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 9378b1bd5..9798b6f07 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -34,12 +34,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", - "because the backend has already been chosen;\n", - "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", - "or matplotlib.backends is imported for the first time.\n", - "\n", - " warnings.warn(_use_error_msg)\n" + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.rxname is not yet QA compliant.\n", + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.ace is not yet QA compliant.\n" ] } ], @@ -53,7 +49,7 @@ "from openmc.source import Source\n", "from openmc.stats import Box\n", "import openmoc\n", - "from openmoc.compatible import get_openmoc_geometry\n", + "from openmoc.opencg_compatible import get_openmoc_geometry\n", "import pyne.ace\n", "\n", "%matplotlib inline" @@ -68,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": { "collapsed": true }, @@ -91,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -125,7 +121,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": { "collapsed": true }, @@ -151,7 +147,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "collapsed": true }, @@ -179,7 +175,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -216,7 +212,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -241,7 +237,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": { "collapsed": true }, @@ -268,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": { "collapsed": true }, @@ -306,7 +302,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": { "collapsed": true }, @@ -331,7 +327,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -362,7 +358,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -386,7 +382,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -423,7 +419,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -448,10 +444,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:41:04\n", + " Git SHA1: 30641c5d37646212ab0540a1064ef6590065f0f0\n", + " Date/Time: 2016-03-23 15:00:26\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", + " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -566,20 +562,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.5200E-01 seconds\n", - " Reading cross sections = 1.2500E-01 seconds\n", - " Total time in simulation = 2.6407E+01 seconds\n", - " Time in transport only = 2.5427E+01 seconds\n", - " Time in inactive batches = 1.7110E+00 seconds\n", - " Time in active batches = 2.4696E+01 seconds\n", - " Time synchronizing fission bank = 2.7000E-02 seconds\n", - " Sampling source sites = 1.9000E-02 seconds\n", - " SEND/RECV source sites = 5.0000E-03 seconds\n", - " Time accumulating tallies = 5.0000E-03 seconds\n", - " Total time for finalization = 2.0000E-02 seconds\n", - " Total time elapsed = 2.6954E+01 seconds\n", - " Calculation Rate (inactive) = 58445.4 neutrons/second\n", - " Calculation Rate (active) = 16197.0 neutrons/second\n", + " Total time for initialization = 4.9500E-01 seconds\n", + " Reading cross sections = 1.0300E-01 seconds\n", + " Total time in simulation = 1.1163E+02 seconds\n", + " Time in transport only = 1.1148E+02 seconds\n", + " Time in inactive batches = 6.6440E+00 seconds\n", + " Time in active batches = 1.0499E+02 seconds\n", + " Time synchronizing fission bank = 2.4000E-02 seconds\n", + " Sampling source sites = 1.6000E-02 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 6.0000E-03 seconds\n", + " Total time for finalization = 1.3000E-02 seconds\n", + " Total time elapsed = 1.1220E+02 seconds\n", + " Calculation Rate (inactive) = 15051.2 neutrons/second\n", + " Calculation Rate (active) = 3810.00 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -597,7 +593,7 @@ "0" ] }, - "execution_count": 14, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -624,7 +620,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -643,7 +639,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": { "collapsed": true }, @@ -663,7 +659,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -698,7 +694,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -752,7 +748,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": { "collapsed": false }, @@ -794,7 +790,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -924,7 +920,7 @@ "119 10002 1 5 O-16 0.000000 0.000000" ] }, - "execution_count": 20, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -944,7 +940,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": { "collapsed": true }, @@ -966,7 +962,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -1005,7 +1001,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -1088,7 +1084,7 @@ "2 10000 2 O-16 3.794859 0.011139" ] }, - "execution_count": 23, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1114,7 +1110,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -1133,7 +1129,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -1178,7 +1174,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -1374,7 +1370,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -1409,7 +1405,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -1449,7 +1445,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -1706,7 +1702,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -1763,23 +1759,11 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "metadata": { "collapsed": false }, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'pyne' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Instantiate a PyNE ACE continuous-energy cross sections library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mpyne_lib\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mLibrary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../../../../data/nndc/293.6K/U_235_293.6K.ace'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mpyne_lib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'92235.71c'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;31m# Extract the U-235 data from the library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNameError\u001b[0m: name 'pyne' is not defined" - ] - } - ], + "outputs": [], "source": [ "# Instantiate a PyNE ACE continuous-energy cross sections library\n", "pyne_lib = pyne.ace.Library('../../../../data/nndc/293.6K/U_235_293.6K.ace')\n", @@ -1801,11 +1785,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(9.9999999999999994e-12, 20.0)" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create a loglog plot of the U-235 continuous-energy fission cross section \n", "plt.loglog(u235.energy, fission.sigma, color='b', linewidth=1)\n", @@ -1841,7 +1846,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { "collapsed": false }, @@ -1873,11 +1878,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAADUCAYAAACWNDiHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGXJJREFUeJzt3Xm0HFW59/HvAUEmgTDPQgAfkNcLIoogMYREBkUQ1Jfx\nhsj0iiBXERmuKOEiAgoBFZTBdUH0vQyiUbyARqKEIKAMIiL4Y7ohhkQkRAhh0iTn/rF3Q6c9Q59Q\n1UOd32etrNVdXbXr6ZOnntq1q7qqp7e3FzMzq55l2h2AmZmVwwXezKyiXODNzCrKBd7MrKJc4M3M\nKsoF3sysot7U7gDKFBG9wMaSZtVNmwAcKmlcP8tsCVwLzOtvnjzf8cBRwHLA8sB04DhJLyxlrHsA\nD0uaGRHrAjtKumGIbRwHrCvpi0sTQx/tzQDmStqhYfppwJnAZpJmDNLGUZIu7+ezqcDnJd1XRLxV\nFhE9wPHAkaScWwb4FXCapGcGWObzwFnAGEm31322C3AJsCLwJGmbmN1HGwcBJwIr5/X+AfhUX/M2\n+T12BF6W9EBEvBk4QNJVQ2xjP+DDkg5fmhj6aO9WYCtgQ0mL6qYfCnyP9Le7dZA2Bsrzq4AfSPpp\nEfEOhXvwdSJiK2AycOcg8+0JHAPsKmkr4O2kDeBrb2D1nwU2ya/HAPsMZeGIWEbSRUUV9zrr5J1e\nvY8AfRaVhpjWA07q57MeSWNd3Jt2FnAIsFddzj0H3BoRK/azzKWknHq6fmJErApcBxwpaXPg58BB\njQtHxNuBC4GP5nW+DZgB/Ocb+B6fAP4lv34nMH4oC+c8n1xUca/zd2C3hmkHAn9uIqZl6Wfbz/GO\nb0dxh4r34JfCAmBXYG8gBpjvHcBjkp4FkPRKRBwOLAaIiLWAK4BtcpsnSpqSe+bfBTYF3gx8U9Kk\niDgTGAtsHRHfIvW63hQRq0g6MCL2Bb5M2ok8BhwsaW5ETAQ2ALYDrskb7kaSjsy9khuA/YHNSEcY\nB0nqzUcx55A2/AuAKyT19PNdbyZt/P+Rv9v/IRWWtWozRMQ+wFdIRzIvAEdIuh+4A9goIv5E2qgf\nAb5D2qh3zzEeCuwIjJa0T25vCvATSRcP8H8wbETEGsBngO1qR6OSFgInR8RY4F+By/pY9NuSfhcR\nezdM3xe4T9Jdua1z+1n1NsDTtaM0SYsi4lRghRzXiqSdyCjgFeAsSd+PiJVI+b8dKSd+KOnEiPgk\n6f9+n4jYMH+nVSNiuqRREfE+0g5lBDCXlOdP5Hz9MLAacH9EPEg+Co+IK0lHIDuTdkCPAPtKeikf\nFX+HtA1eQCrC2/Zz1FnL81/k7zYCGAk8UZshInYCLiJth4uB4yXdkpdZLef5Xvm7Twc+BhwZEWfl\nOF4GTgPeJWlxRFwGPC/p8/38/d8w9+DrSJolaW4Ts95CKlDfjYi9IuItkuZLWpA/Pwd4SNJI4DDg\n6nw4+kVgVu4NjQXOjoiNc6/7KeCQvLFdBFyfi/tI0mHiQbm9X5EOrWs+BHxQ0qQ+4vww8AFS4o8B\nds7F4lvAOFIPao9BvusPSD2ZmgPzNAAi4k2kndYnJb0N+AlwXv74cGCmpK0k/T1P21jS2xo2sguB\nDSNi97wzewvw7UHiGk7eS/o7PtLHZz8FRve1kKTf9dPetsDciJgcEY9ExDW5U9Lo18AmEXFDROwX\nEWtIelnS3/LnnwOWl7QZKc8uiogNgE+RivTWwPbAhIjYRdIlwG+Bk3KenwrcmYv7W/J3+XdJWwBf\nJx1l1OwOHCPpxD7i/DhwALA5sDawX+5Vfxc4WtLWwJbAKv38PQD+G9gzb6cAHyXlcr3LgQvy9nsO\nr2+HhwOLcp7/T562A7CNpF/XFpb0Q2Amqei/k3TEcPoAMb1hw6HA3xoRf6r9A85+ow3mDed9pL/f\nd4Fn88ZSG2L5IHB13bybSnqVNIZ6bJ7+BPAXUu96IHsCt0p6ML+/hNQDWja//80AO6Xr8wb5Iqln\nswmpt/yIpAclLWbwQvoY8GJEbJfffxT4Yd3fYiGwQd347nRSz6c/NzZOyOOeRwHnkzaco3JslqxB\n/0NiT+fPh2J1UsH8PKmX/ippJ7uEPM7+HmAO8A3gmYi4JSJqQywfBK7J884iHT3OJv0/7itpcd4Z\n/JGBcwLSUcAsSb/I7V0NbFG3TT0q6dF+lr1R0ryci38g5fnbgDdLujnP800GrncvkHZoe+X3B5LO\nxdXbnrxdM3ie39xPDh8LnEza7o6V9NIAbbxhw2GIZte+TrLm11eREhhgrKSnmm1U0j3Av+YTWduT\nTjpeC+xEGr54rm7e2onXHUi99k2ARcD6DL6TXR14f9451TwPrJlfzxtg2efrXi8CliX1rOqXaeY7\nXw0cnHvrM/PwUP3nn4qIw0jDTisAA93gqM94Jd0XEfNJPaEH+5pnGJtLGorry7rAXyPiPUDtZOVk\nSacO0N7zwFRJjwFExNeBn/U1Yz5q+H95vq2BU4CbI2Jj/jnPa0ewWwCT8jmtRcDGpGGLgawObN6Q\n56+SeuSwdHn+t7rpzZwUruX5ncD6ku5vyPMDgePz0cayQH/Dmv3GK2lWRNxF6iD+oomY3pDhUOD7\nJWlIJ3hq8ljhk3lIpxe4NyJO5vWTs3NJyT8jz78pqZB+nzQWeEkeC2+muM4GbpH0sT7iWJrw57Pk\noer6TSxzLXAradzxmoYYdib1SN4jaUZEfIB0KDskEfEhYCGwQkR8UNJNQ22jwu4E1oiIbSX9vuGz\nvUnncn5LuhKkGU+ShixqFuV/S8hHbS9LEoCkhyNdqTWfdNRQy/Pa/BuRCtvFwL3AR/K4/a8b2+7D\nbNJVZDs0fhAR72jye9VrzPP1mljmJlLsBwHXN8SwISmvd8yFf0vSUfGQRMS2pA7h/aQLNUo9zzQc\nhmjKcChwSUSsBq+NQx8ETMuf3wBMyJ+9HbiPtDNdB7g3F/fDSCdrakn4D1IvpvH1z4FReSyeiHhP\n7nEtrXuBf4mILSJiGdJldwPKRzazgf9Lusqo3jrAX4GZ+eTaYcDK+cjmH8Aq+e/Tr4hYmTTmehzw\naeDiPM0ASc+TrqL5XkRsBinnIuJsUk/ymoGW78OPgdF1hfNo0nmlRnsA3490NVTtsstDSeeX5pLy\nfHxE9OR5fkcq+OsAv8vF/QMsOf7dmOer5nZ/A6wf6TJKImJkRHwvf7Y0HgWWi4hd8/tPMvCRJZJe\nAaaQhq4ah2fWBl4E/pTz+egc5yr5eyyTe/b9ytvbZcAJpOHa0/KOozQu8HUi4pSIeIW0px4TEa9E\nuqKj0WeAPwF3R4RIe/J1SZeAQerRbhTpOvJrSVcDvEw6yTo5Ih4gJfylwOW5eF9PuhLmBFKS7RYR\nd0uaQxqfnhwRD5NOwDYmX9Nye/9OOln7G9JYYjOuBv4o6bmG6T8jFf/Hc9wXkg6ZfwA8QOrR/aVu\nLLUvZwD/LekPuSc6lXTVkGWSziMVh5/mYYyHSL3ocXUnsJcQEQtyPr8VmJrz+f2SZpJydXJEPEoa\n/jmhjya+Stqh/zLn+eOkiwM+nD+/gLRzf5J0hHdibvvLwPmRrnYZTfr/PSMf7U0Gzo2IScDted2z\nSZcpfgz4Zs7zyaRrx5fqfub5nNcxwJURcT9pG13MIEWelOfzJD3UMP33pB7+I6Qjqp8Cd+XvPSd/\nl5n5O/bnU8AcSTfnv9PFpO25ND2+H/zwE+ka9N78ehvgdkkj2hyWWWnyEeECYPV8RDQsuAc/zOTD\ny6dqh8Kky8sG/GGXWTeKiLsj4oD89gDSGP+wKe7gHvywFOmn3meTdvBzSD9Meqy9UZkVK9LtGC4m\n3Y5hPuk6+rvbG1VrucCbmVWUh2jMzCqqo66D77l30DPcTRv5rj8W1RRPTNumsLasvXpHD/jjlFLs\nys8Ky+tpPQNdjDRU1w0+i3WN3t6J/5Tb7sGbmVWUC7yZWUW5wJuZVZQLvJlZRZV+kjUiLiDdz7oX\n+Lfhdh2qVZPz2rpBqT34iBgNbClpJ+AI0j2lzbqa89q6RdlDNGNJd65D0sPAiEiPlTPrZs5r6wpl\nF/j1WPJJNM/Q3H2ZzTqZ89q6QqtPsrb8RyZmLeC8to5UdoGfzZI9mw1IN7cy62bOa+sKZRf4KaSb\n+BMR2wOz655PatatnNfWFUot8JLuID2v9A7SlQbHlrk+s1ZwXlu3KP06eEmnlL0Os1ZzXls38C9Z\nzcwqygXezKyiXODNzCrKBd7MrKI66olOLCiuqZV4qbC2dhr9y8LaunPaboW1Zd1hWs9dhbV1OnsV\n1tYZnF9YW8n8gtuzN8o9eDOzinKBNzOrKBd4M7OKcoE3M6soF3gzs4pygTczqygXeDOzinKBNzOr\nKBd4M7OKcoE3M6soF3gzs4pygTczqygXeDOzinKBNzOrKBd4M7OKcoE3M6soF3gzs4pygTczq6jO\nemRfgR6c9u7C2jpz9ImFtfXq6OULa+u+3+xSWFsALOzQtuw1Z3B6YW2dw+cKawvglEIfAejH/xXB\nPXgzs4pygTczqygXeDOzinKBNzOrKBd4M7OKKv0qmoj4KjAqr+tsST8qe51mZXNeWzcotQcfEWOA\nd0jaCdgTuLDM9Zm1gvPaukXZQzTTgY/n188BK0fEsiWv06xszmvrCqUO0UhaCCzIb48AbpK0qMx1\nmpXNeW3doiW/ZI2IfUkbwu6tWJ9ZKzivrdO14iTrHsAXgD0lPV/2+sxawXlt3aDUAh8RqwFfA8ZJ\nmlfmusxaxXlt3aLsHvwBwFrAdRFRmzZe0syS12tWJue1dYWyT7JeBlxW5jrMWs15bd3Cv2Q1M6so\nF3gzs4pygTczqygXeDOziurp7e0ddKZ8WdgaQE9tmqQnCg9mGoMH0+0KvGvJjyfvUVxjwH/wxcLa\nmrFos8LamjdrncLa6n3rcj3171uR2z09E6uf18B0ziisrVHcVVhbcHOBbXWu3t6JPY3TBr2KJiK+\nAXwCeIbXN4JeYGSh0Zm1mHPbqq6ZyyTHAGtLeqXsYMxazLltldbMGPyj3gCsopzbVmnN9OBnRcRt\nwO3AwtpESV8qLSqz1nBuW6U1U+CfBaaWHYhZGzi3rdIGLfCSijs1btZBnNtWdf0W+IiYDv1ftijp\n/aVEZFYy57YNFwP14E9rWRRmreXctmGh3wIvaVorAzFrFee2DRe+VYGZWUW5wJuZVVRTD/yIiBHA\nlqQTU5I0v9SozFrEuW1VNmgPPiI+CzxGuk3WN4HHI+KYsgMzK5tz26qumR78YcDI2pPjc4/nV8C3\nywzMrAWc21ZpzYzB/6W2AQBI+htQ+K2CzdrAuW2V1kwP/vGI+DEwhbRDGAM8GxGHA0j6zxLjMyuT\nc9sqrZkCvxLwN+Dd+f38vNwo0okpbwTWrZzbVmnN3IvmE60IxKzVnNtWdc080enP9HHfDkmblBKR\nWYs4t63qmhmi2aXu9fLAWNKhrS2NzxTX1Ed6diquMWDxs6MKa+usNT5XWFs/f2uRz579QP0b53aB\nRnFOYW317v7ewtrqeaTAR+LOmFhcWy3QzBDNkw2THo2InwOTygnJrDWc21Z1zQzR7NYwaWNg83LC\nMWsd57ZVXTNDNF+se91LutLgk+WEY9ZSzm2rtGaGaMa0IhCzVnNuW9U1M0SzFfAtYAdSL+cu4FhJ\njzWzgohYEXgQOFPSlUsfqlmxnNtWdc3cquAi4HxgfWBD4BKGdq+O04B5Qw/NrHTObau0ZsbgeyTd\nWPd+ckR8upnGcw9pa+DGweY1awPntlVaMz345SNi+9qbiHg3Td5HHjgPOGFpAjNrAee2VVozyXwi\n8F8RsU5+PwcYP9hCETEeuE3SjIh4AyGalca5bZXWTIH/s6StImI1oHcIT7z5EDAyIvYHNgJejYhZ\nkm5Z2mDNCubctkprpsD/f2BM/X2zmyHpgNrriJgIzPAGYB3GuW2V1kyBV0RcBdwB/P21ib5XtnU/\n57ZVWjMF/s3AImDHumlDule2pIlDC8usJZzbVmm+H7wNW85tq7oBC3xE7Cdpcn59LekHIS8DB0t6\ntgXxmZXCuW3DQb/XwUfE8cAZEVHbCWxCujnTPcAXWhCbWSmc2zZcDPRDpwnAOEkL8/tXJE0DJpKe\nWWnWrSbg3LZhYKACv0DSX+ve/xeApH8AL5YalVm5nNs2LAw0Br9K/RtJl9e9Xa2ccGxI7plYaHPL\nrLlqYW31Xl7cI/vefuRDhbWVH9nn3C7Fy4W11DPlssLa6j23p7C2ev6nwMf/AVwysdj2GgzUg38g\nIo5qnBgRJwO/Ki8ks9I5t21YGKgHfzLwk3zfjXvyvDsDc4F9WhCbWVmc2zYs9FvgJT0NvDcixgLb\nkH4Qcp2k6a0KzqwMzm0bLpr5odNUYGoLYjFrKee2VV0z94M3M7Mu5AJvZlZRLvBmZhXlAm9mVlEu\n8GZmFeUCb2ZWUS7wZmYV5QJvZlZRLvBmZhXlAm9mVlEu8GZmFeUCb2ZWUS7wZmYV5QJvZlZRg94u\n2DrYgmKbW+G5CYW11XPhCYW11bt1cY9c4+HimrIyPVVYSz0nX19YW70nFZiLQM+4gh8B2MA9eDOz\ninKBNzOrKBd4M7OKcoE3M6uo0k+yRsQhwEnAQuBLkm4se51mZXNeWzcotQcfEWsCpwO7AHsD+5a5\nPrNWcF5btyi7Bz8OuEXSC8ALwNElr8+sFZzX1hXKLvCbAitFxA3ACGCipKklr9OsbJvivLYuUPZJ\n1h5gTWB/YAJwRUQU+0sBs9ZzXltXKLvAPw3cIWmhpMdJh7Nrl7xOs7I5r60rlF3gpwC7RcQy+cTU\nKsDcktdpVjbntXWFUgu8pKeA64G7gJuBT0taXOY6zcrmvLZuUfp18JIuBS4tez1mreS8tm7gX7Ka\nmVWUC7yZWUW5wJuZVZQLvJlZRbnAm5lVVE9vb7mPjBqKnml0TjDD0QrFNTV1x50La+u2njsLa2ti\nb2/Lf3Ha0zPReV0ZXyi0tZtYvrC29uojt92DNzOrKBd4M7OKcoE3M6soF3gzs4pygTczqygXeDOz\ninKBNzOrKBd4M7OKcoE3M6soF3gzs4pygTczqygXeDOzinKBNzOrKBd4M7OKcoE3M6soF3gzs4py\ngTczqygXeDOziuqoR/aZmVlx3IM3M6soF3gzs4pygTczqygXeDOzinKBNzOrKBd4M7OKelO7AxiK\niLgAeC/QC/ybpLvbHBIAEfFVYBTp73m2pB+1OaTXRMSKwIPAmZKubHM4AETEIcBJwELgS5JubHNI\nbefcHppOzGvovNzumh58RIwGtpS0E3AE8I02hwRARIwB3pHj2hO4sM0hNToNmNfuIGoiYk3gdGAX\nYG9g3/ZG1H7O7aXSUXkNnZnbXVPggbHAjwEkPQyMiIhV2xsSANOBj+fXzwErR8SybYznNRGxFbA1\n0Ek95HHALZJekDRH0tHtDqgDOLeHoEPzGjowt7tpiGY94N6698/kafPbE04iaSGwIL89ArhJ0qI2\nhlTvPOA4YEKb46i3KbBSRNwAjAAmSpra3pDazrk9NJ2Y19CBud1NPfhGPe0OoF5E7EvaCI5rdywA\nETEeuE3SjHbH0qAHWBPYn7SBXhERHfV/2QE66u/RSbndwXkNHZjb3dSDn03q1dRsAMxpUyxLiIg9\ngC8Ae0p6vt3xZB8CRkbE/sBGwKsRMUvSLW2O62ngjtw7fDwiXgDWBv7a3rDayrndvE7Na+jA3O6m\nAj8FOAO4NCK2B2ZLeqHNMRERqwFfA8ZJ6piTPpIOqL2OiInAjA7ZCKYAV0bEuaTD2FWAue0Nqe2c\n203q4LyGDsztrinwku6IiHsj4g5gMXBsu2PKDgDWAq6LiNq08ZJmti+kziXpqYi4HrgrT/q0pMXt\njKndnNvV0Im57dsFm5lVVDefZDUzswG4wJuZVZQLvJlZRbnAm5lVlAu8mVlFucCbmVVU11wH320i\nYj3gXGBb4AXgLcAVkr7e4jjeBXyF9Is6SPc5OVXSfYMstzPwF0lPlByidRnndvdwD74E+f4TPwHu\nlLSdpFHAHsBREfHRfuYvI451chxflrS9pO1JG8QNEbHWIIt/AhhZRlzWvZzb3cU/dCpBRIwDzpD0\nvobpy0v6e359JfAqsBVwCLAhcD7wD9JDH46T9FBE3EpK4lsiYlPgdkkb5eVfAjYH1geulDSpYX1f\nAZaVdHLD9EnAS5JOi4heYDlJCyNiAumWpz8ErgCeBD4r6ZfF/GWs2zm3u4t78OXYBrincWJtA6iz\nsqTRkmYBV5ESbgwwCbi4ifVsJGkP4P3AafmBA/XeCfy2j+XuBLbvr1FJk4H7gc9VfQOwIXNudxGP\nwZdjEXV/24g4GjgYWAH4s6TaQxTuyJ+vDqxb95i2W4FrmljPFABJz0XEI8CWwLN1n79I/zvxYX3/\nF1tqzu0u4h58OR4Adqq9kXSZpF2BU0iHnDW1Xk/jOFlP3bT6z5ZvmK/+/6+Hf25niTjqvJu+ez+N\n7Zs1cm53ERf4Eki6DXg2Ik6tTYuI5YDdgZf7mP95YE5E7JgnjeP1O9LNBzbOr3drWHRMbnsEsAWg\nhs8vBj6en61Zi2Nn0gMJalc81Lc/pm7ZxcByA35RG3ac293FQzTl2Qf4SkTcT0q0lUnPuDy4n/nH\nA5MiYhHpMPiYPP0i4JKIOBj4WcMy8yJiMulk1OmSnqv/UNKzEbEr8I2IOI/UC3oa2K/u4Q3nAFMi\n4lHg97y+QfyCdH/yz0j60dC/vlWYc7tL+CqaLpWvNLhd0nfaHYtZkZzbxfEQjZlZRbkHb2ZWUe7B\nm5lVlAu8mVlFucCbmVWUC7yZWUW5wJuZVZQLvJlZRf0vhqRibo7514YAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create plot of the H-1 scattering matrix\n", "fig = plt.subplot(121)\n", @@ -1925,7 +1941,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, From f897c605c4e8e369ed8ff6ef8df6300879266755 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 24 Mar 2016 13:28:43 -0400 Subject: [PATCH 077/259] Moved NumPy array squeezing to proper scope in MGXS.get_xs(...) --- openmc/mgxs/mgxs.py | 7 +++---- openmc/opencg_compatible.py | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2f8f729ad..cfda0d160 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -761,10 +761,9 @@ class MGXS(object): # Reverse energies to align with increasing energy groups xs = xs[:, ::-1, :] - # Eliminate trivial dimensions - xs = np.squeeze(xs) - xs = np.atleast_1d(xs) - + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_1d(xs) return xs def get_condensed_xs(self, coarse_groups): diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index cd4503063..d690c2c6a 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -1002,6 +1002,7 @@ def get_opencg_geometry(openmc_geometry): opencg_geometry = opencg.Geometry() opencg_geometry.root_universe = opencg_root_universe opencg_geometry.initialize_cell_offsets() + opencg_geometry.assign_auto_ids() return opencg_geometry From a97e522f838d8fc5db558d8dffb50e03e5abec6f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 24 Mar 2016 21:23:57 -0400 Subject: [PATCH 078/259] Removing unneeded comment --- src/physics_mg.F90 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index a72b3878d..2e5e467c1 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -242,10 +242,8 @@ contains ! Set weight of fission bank site bank_array(i) % wgt = ONE/weight - ! Sample cosine of angle -- fission neutrons are always emitted - ! isotropically. Sometimes in ACE data, fission reactions actually have - ! an angular distribution listed, but for those that do, it's simply just - ! a uniform distribution in mu + ! Sample cosine of angle -- fission neutrons are treated as being emitted + ! isotropically. mu = TWO * prn() - ONE ! Sample azimuthal angle uniformly in [0,2*pi) From 6e6e253fa647da0d99e1afb0bd5b0ce20000f9ed Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 25 Mar 2016 13:17:49 -0500 Subject: [PATCH 079/259] Fix a few issues with MGXS documentation --- docs/source/pythonapi/energy_groups.rst | 8 --- docs/source/pythonapi/index.rst | 3 +- docs/source/pythonapi/mgxs.rst | 57 +++++++++++---- docs/source/pythonapi/mgxs_library.rst | 8 +-- openmc/material.py | 3 +- openmc/mgxs_library.py | 95 ++++++++++++++++++++++--- 6 files changed, 134 insertions(+), 40 deletions(-) delete mode 100644 docs/source/pythonapi/energy_groups.rst diff --git a/docs/source/pythonapi/energy_groups.rst b/docs/source/pythonapi/energy_groups.rst deleted file mode 100644 index 28ca6f3fe..000000000 --- a/docs/source/pythonapi/energy_groups.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_energy_groups: - -============= -Energy Groups -============= - -.. automodule:: openmc.mgxs.groups - :members: diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 6dd2ae10d..864b48c55 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -19,6 +19,7 @@ on a given module or class. :maxdepth: 1 ace + mgxs_library **Creating input files:** @@ -65,8 +66,6 @@ on a given module or class. :maxdepth: 1 mgxs - energy_groups - mgxs_library **Example Jupyter Notebooks:** diff --git a/docs/source/pythonapi/mgxs.rst b/docs/source/pythonapi/mgxs.rst index c7084e565..2a0bb52ba 100644 --- a/docs/source/pythonapi/mgxs.rst +++ b/docs/source/pythonapi/mgxs.rst @@ -4,31 +4,57 @@ Multi-Group Cross Sections ========================== -.. currentmodule:: openmc.mgxs.mgxs - ---------------------------- Summary of Available Classes ---------------------------- +Energy Groups +------------- + +.. currentmodule:: openmc.mgxs.groups + .. autosummary:: - MGXS - AbsorptionXS - CaptureXS - Chi - FissionXS - NuFissionXS - NuScatterXS - NuScatterMatrixXS - ScatterXS - ScatterMatrixXS - TotalXS - TransportXS + EnergyGroups + +Multi-group Cross Sections +-------------------------- + +.. currentmodule:: openmc.mgxs.mgxs + +.. autosummary:: + + MGXS + AbsorptionXS + CaptureXS + Chi + FissionXS + NuFissionXS + NuScatterXS + NuScatterMatrixXS + ScatterXS + ScatterMatrixXS + TotalXS + TransportXS + +Multi-group Cross Section Libraries +----------------------------------- + +.. currentmodule:: openmc.mgxs.library + +.. autosummary:: + + Library ------------------- Class Documentation ------------------- +.. automodule:: openmc.mgxs.groups + :members: + +.. currentmodule:: openmc.mgxs.mgxs + .. autoclass:: MGXS :members: @@ -64,3 +90,6 @@ Class Documentation .. autoclass:: TransportXS :members: + +.. automodule:: openmc.mgxs.library + :members: diff --git a/docs/source/pythonapi/mgxs_library.rst b/docs/source/pythonapi/mgxs_library.rst index 8ac545700..bdcdc364c 100644 --- a/docs/source/pythonapi/mgxs_library.rst +++ b/docs/source/pythonapi/mgxs_library.rst @@ -1,8 +1,8 @@ .. _pythonapi_mgxs_library: -============ -MGXS Library -============ +============================== +Multi-group Cross Section Data +============================== -.. automodule:: openmc.mgxs.library +.. automodule:: openmc.mgxs_library :members: diff --git a/openmc/material.py b/openmc/material.py index e51586205..9db2f03f0 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -723,9 +723,8 @@ class MaterialsFile(object): material.make_isotropic_in_lab() def _create_material_subelements(self): - subelement = ET.SubElement(self._materials_file, "default_xs") - if self._default_xs is not None: + subelement = ET.SubElement(self._materials_file, "default_xs") subelement.text = self._default_xs for material in self._materials: diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 06b369c68..7f140dd21 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -87,8 +87,9 @@ class XSdata(object): ---------- name : str, optional Name of the mgxs data set. - - representation : {'isotropic', 'angle'} + energy_groups : openmc.mgxs.EnergyGroups + Energygroup structure + representation : {'isotropic', 'angle'}, optional Method used in generating the MGXS (isotropic or angle-dependent flux weighting). Defaults to 'isotropic' @@ -99,10 +100,10 @@ class XSdata(object): alias : str Separate unique identifier for the xsdata object kT : float - Temperature (in units of MeV) of this data set. - energy_groups : EnergyGroups + Temperature (in units of MeV). + energy_groups : openmc.mgxs.EnergyGroups Energy group structure - fissionable : boolean + fissionable : bool Whether or not this is a fissionable data set. scatt_type : {'legendre', 'histogram', or 'tabular'} Angular distribution representation (legendre, histogram, or tabular) @@ -115,6 +116,85 @@ class XSdata(object): Legendre polynomial form). Dict contains two keys: 'enable' and 'num_points'. 'enable' is a boolean and 'num_points' is the number of points to use, if 'enable' is True. + num_azimuthal : int + Number of equal width angular bins that the azimuthal angular domain is + subdivided into. This only applies when ``representation`` is "angle". + num_polar : int + Number of equal width angular bins that the polar angular domain is + subdivided into. This only applies when ``representation`` is "angle". + total : numpy.ndarray + Group-wise total cross section ordered by increasing group index (i.e., + fast to thermal). If ``representation`` is "isotropic", then the length + of this list should equal the number of groups described in the + ``groups`` element. If ``representation`` is "angle", then the length + of this list should equal the number of groups times the number of + azimuthal angles times the number of polar angles, with the + inner-dimension being groups, intermediate-dimension being azimuthal + angles and outer-dimension being the polar angles. + absorption : numpy.ndarray + Group-wise absorption cross section ordered by increasing group index + (i.e., fast to thermal). If ``representation`` is "isotropic", then the + length of this list should equal the number of groups described in the + ``groups`` attribute. If ``representation`` is "angle", then the length + of this list should equal the number of groups times the number of + azimuthal angles times the number of polar angles, with the + inner-dimension being groups, intermediate-dimension being azimuthal + angles and outer-dimension being the polar angles. + scatter : numpy.ndarray + Scattering moment matrices presented with the columns representing + incoming group and rows representing the outgoing group. That is, + down-scatter will be above the diagonal of the resultant matrix. This + matrix is repeated for every Legendre order (in order of increasing + orders) if ``scatt_type`` is "legendre"; otherwise, this matrix is + repeated for every bin of the histogram or tabular representation. + Finally, if ``representation`` is "angle", the above is repeated for + every azimuthal angle and every polar angle, in that order. + multiplicity : numpy.ndarray + Ratio of neutrons produced in scattering collisions to the neutrons + which undergo scattering collisions; that is, the multiplicity provides + the code with a scaling factor to account for neutrons being produced in + (n,xn) reactions. This information is assumed isotropic and therefore + does not need to be repeated for every Legendre moment or + histogram/tabular bin. This matrix follows the same arrangement as + described for the ``scatter`` attribute, with the exception of the data + needed to provide the scattering type information. + fission : numpy.ndarray + Group-wise fission cross section ordered by increasing group index + (i.e., fast to thermal). If ``representation`` is "isotropic", then the + length of this list should equal the number of groups described in the + ``groups`` attribute. If ``representation`` is "angle", then the length + of this list should equal the number of groups times the number of + azimuthal angles times the number of polar angles, with the + inner-dimension being groups, intermediate-dimension being azimuthal + angles and outer-dimension being the polar angles. + k_fission : numpy.ndarray + Group-wise kappa-fission cross section ordered by increasing group index + (i.e., fast to thermal). If ``representation`` is "isotropic", then the + length of this list should equal the number of groups described in the + ``groups`` attribute. If ``representation`` is "angle", then the length + of this list should equal the number of groups times the number of + azimuthal angles times the number of polar angles, with the + inner-dimension being groups, intermediate-dimension being azimuthal + angles and outer-dimension being the polar angles. + chi : numpy.ndarray + Group-wise fission spectra ordered by increasing group index (i.e., fast + to thermal). This attribute should be used if making the common + approximation that the fission spectra does not depend on incoming + energy. If the user does not wish to make this approximation, then this + should not be provided and this information included in the + ``nu_fission`` element instead. If ``representation`` is "isotropic", + then the length of this list should equal the number of groups described + in the ``groups`` element. If ``representation`` is "angle", then the + length of this list should equal the number of groups times the number + of azimuthal angles times the number of polar angles, with the + inner-dimension being groups, intermediate-dimension being azimuthal + angles and outer-dimension being the polar angles. + nu_fission : numpy.ndarray + Group-wise fission production cross section vector (i.e., if ``chi`` is + provided), or is the group-wise fission production matrix. If providing + the vector, it should be ordered the same as the ``fission`` data. If + providing the matrix, it should be ordered the same as the + ``multiplicity`` matrix. """ def __init__(self, name, energy_groups, representation="isotropic"): @@ -577,8 +657,6 @@ class MGXSLibraryFile(object): Energy group structure. inverse_velocities : Iterable of Real Inverse of velocities, units of sec/cm - filename : str - XML file to write to. xsdatas : Iterable of XSdata Iterable of multi-Group cross section data objects """ @@ -717,6 +795,3 @@ class MGXSLibraryFile(object): tree = ET.ElementTree(self._cross_sections_file) tree.write(filename, xml_declaration=True, encoding='utf-8', method="xml") - - - From d789b1339956e4c47f38a9a10d3fb82cd00dcde7 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 25 Mar 2016 13:46:00 -0500 Subject: [PATCH 080/259] Update inputs for test_source ( is gone) --- tests/test_source/inputs_true.dat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_source/inputs_true.dat b/tests/test_source/inputs_true.dat index 01130ed2e..69a1e2ea8 100644 --- a/tests/test_source/inputs_true.dat +++ b/tests/test_source/inputs_true.dat @@ -1 +1 @@ -5c2fdde85affcd44c1b02c07c300acb8e5c189c1adbf7aa079e37a68e8b8313678fc292bd7f6e0d0957f723e05b8146bd165cf3315dde5f6b2f88ebc954cd65e \ No newline at end of file +526c91551d9a80dc01216e5cb04162253f12ec684cc2b4912ca18cfc510f1ea2e5303029f1c1607882082b0c2c8a47f25dd5be14678f449a1579e3601d1bdec5 \ No newline at end of file From 923a609a90c0bff8ab554a4316968f1cebff8e99 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 25 Mar 2016 17:52:52 -0400 Subject: [PATCH 081/259] Removed errant calls to get all nuclides from domain in MGXS class to permit user-specified nuclides --- openmc/mgxs/mgxs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2f8f729ad..26f215981 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -441,7 +441,7 @@ class MGXS(object): cv.check_type('nuclide', nuclide, basestring) # Get list of all nuclides in the spatial domain - nuclides = self.domain.get_all_nuclides() + nuclides = self.get_all_nuclides() if nuclide not in nuclides: msg = 'Unable to get density for nuclide "{0}" which is not in ' \ @@ -553,7 +553,7 @@ class MGXS(object): # If this is a by-nuclide cross-section, add all nuclides to Tally if self.by_nuclide and score != 'flux': - all_nuclides = self.domain.get_all_nuclides() + all_nuclides = self.get_all_nuclides() for nuclide in all_nuclides: self.tallies[key].nuclides.append(nuclide) else: From 085d1e6c34d0e32d70053942b2fd3c3af82f51e3 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 25 Mar 2016 20:20:01 -0400 Subject: [PATCH 082/259] Now using MAX_LINE_LEN constant for distribcell offset label length per comments by @smharper --- openmc/filter.py | 2 +- src/output.F90 | 2 +- src/summary.F90 | 26 +++++++++++++------------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 2536c3607..4bc17afca 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -47,7 +47,7 @@ class Filter(object): filter's bins. distribcell_paths : list of str The paths traversed through the CSG tree to reach each distribcell - instance (for 'distribcell' filters only) + instance (for 'distribcell' filters only) """ diff --git a/src/output.F90 b/src/output.F90 index 125fe010b..7a083121a 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -1159,7 +1159,7 @@ contains function get_label(t, i_filter) result(label) type(TallyObject), intent(in) :: t ! tally object integer, intent(in) :: i_filter ! index in filters array - character(100) :: label ! user-specified identifier + character(MAX_LINE_LEN) :: label ! user-specified identifier integer :: i ! index in cells/surfaces/etc array integer :: bin diff --git a/src/summary.F90 b/src/summary.F90 index 2b34ccfb6..a33789c66 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -535,9 +535,9 @@ contains type(RegularMesh), pointer :: m type(TallyObject), pointer :: t - integer :: offset ! distibcell offset - character(100), allocatable :: paths(:) ! array of distribcell paths - character(100) :: path ! temporary distribcell path + integer :: offset ! distibcell offset + character(MAX_LINE_LEN), allocatable :: paths(:) ! distribcell paths array + character(MAX_LINE_LEN) :: path ! distribcell path tallies_group = create_group(file_id, "tallies") @@ -581,25 +581,25 @@ contains ! Write number of filters call write_dataset(tally_group, "n_filters", t%n_filters) - FILTER_LOOP: do j = 1, t%n_filters + FILTER_LOOP: do j = 1, t % n_filters filter_group = create_group(tally_group, "filter " // trim(to_str(j))) ! Write number of bins for this filter - call write_dataset(filter_group, "n_bins", t%filters(j)%n_bins) + call write_dataset(filter_group, "n_bins", t % filters(j) % n_bins) ! Write filter bins - if (t%filters(j)%type == FILTER_ENERGYIN .or. & - t%filters(j)%type == FILTER_ENERGYOUT .or. & - t%filters(j)%type == FILTER_MU .or. & - t%filters(j)%type == FILTER_POLAR .or. & - t%filters(j)%type == FILTER_AZIMUTHAL) then - call write_dataset(filter_group, "bins", t%filters(j)%real_bins) + if (t % filters(j) % type == FILTER_ENERGYIN .or. & + t % filters(j)% type == FILTER_ENERGYOUT .or. & + t % filters(j) % type == FILTER_MU .or. & + t % filters(j) % type == FILTER_POLAR .or. & + t % filters(j) % type == FILTER_AZIMUTHAL) then + call write_dataset(filter_group, "bins", t % filters(j) % real_bins) else - call write_dataset(filter_group, "bins", t%filters(j)%int_bins) + call write_dataset(filter_group, "bins", t % filters(j) % int_bins) end if ! Write paths to reach each distribcell instance - if (t%filters(j)%type == FILTER_DISTRIBCELL) then + if (t % filters(j) % type == FILTER_DISTRIBCELL) then ! Allocate array of strings for each distribcell path allocate(paths(t % filters(j) % n_bins)) From a6ff94551cb844c640d255fa54bb0e47eb9988d8 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sat, 26 Mar 2016 11:12:30 -0400 Subject: [PATCH 083/259] Style fixes --- src/state_point.F90 | 99 ++++++++++++++++++++++++--------------------- 1 file changed, 52 insertions(+), 47 deletions(-) diff --git a/src/state_point.F90 b/src/state_point.F90 index 6c0e309e2..d8d796d90 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -133,13 +133,13 @@ contains call write_dataset(file_id, "cmfd_on", 1) cmfd_group = create_group(file_id, "cmfd") - call write_dataset(cmfd_group, "indices", cmfd%indices) - call write_dataset(cmfd_group, "k_cmfd", cmfd%k_cmfd) - call write_dataset(cmfd_group, "cmfd_src", cmfd%cmfd_src) - call write_dataset(cmfd_group, "cmfd_entropy", cmfd%entropy) - call write_dataset(cmfd_group, "cmfd_balance", cmfd%balance) - call write_dataset(cmfd_group, "cmfd_dominance", cmfd%dom) - call write_dataset(cmfd_group, "cmfd_srccmp", cmfd%src_cmp) + call write_dataset(cmfd_group, "indices", cmfd % indices) + call write_dataset(cmfd_group, "k_cmfd", cmfd % k_cmfd) + call write_dataset(cmfd_group, "cmfd_src", cmfd % cmfd_src) + call write_dataset(cmfd_group, "cmfd_entropy", cmfd % entropy) + call write_dataset(cmfd_group, "cmfd_balance", cmfd % balance) + call write_dataset(cmfd_group, "cmfd_dominance", cmfd % dom) + call write_dataset(cmfd_group, "cmfd_srccmp", cmfd % src_cmp) call close_group(cmfd_group) else call write_dataset(file_id, "cmfd_on", 0) @@ -155,18 +155,18 @@ contains if (n_meshes > 0) then ! Print list of mesh IDs - current => mesh_dict%keys() + current => mesh_dict % keys() allocate(id_array(n_meshes)) allocate(key_array(n_meshes)) i = 1 do while (associated(current)) - key_array(i) = current%key - id_array(i) = current%value + key_array(i) = current % key + id_array(i) = current % value ! Move to next mesh - next => current%next + next => current % next deallocate(current) current => next i = i + 1 @@ -180,16 +180,17 @@ contains ! Write information for meshes MESH_LOOP: do i = 1, n_meshes meshp => meshes(id_array(i)) - mesh_group = create_group(meshes_group, "mesh " // trim(to_str(meshp%id))) + mesh_group = create_group(meshes_group, "mesh " & + // trim(to_str(meshp % id))) - select case (meshp%type) + select case (meshp % type) case (MESH_REGULAR) call write_dataset(mesh_group, "type", "regular") end select - call write_dataset(mesh_group, "dimension", meshp%dimension) - call write_dataset(mesh_group, "lower_left", meshp%lower_left) - call write_dataset(mesh_group, "upper_right", meshp%upper_right) - call write_dataset(mesh_group, "width", meshp%width) + call write_dataset(mesh_group, "dimension", meshp % dimension) + call write_dataset(mesh_group, "lower_left", meshp % lower_left) + call write_dataset(mesh_group, "upper_right", meshp % upper_right) + call write_dataset(mesh_group, "width", meshp % width) call close_group(mesh_group) end do MESH_LOOP @@ -211,7 +212,7 @@ contains ! Write all tally information except results do i = 1, n_tallies tally => tallies(i) - key_array(i) = tally%id + key_array(i) = tally % id id_array(i) = i end do @@ -226,9 +227,9 @@ contains ! Get pointer to tally tally => tallies(i) tally_group = create_group(tallies_group, "tally " // & - trim(to_str(tally%id))) + trim(to_str(tally % id))) - select case(tally%estimator) + select case(tally % estimator) case (ESTIMATOR_ANALOG) call write_dataset(tally_group, "estimator", "analog") case (ESTIMATOR_TRACKLENGTH) @@ -236,16 +237,17 @@ contains case (ESTIMATOR_COLLISION) call write_dataset(tally_group, "estimator", "collision") end select - call write_dataset(tally_group, "n_realizations", tally%n_realizations) - call write_dataset(tally_group, "n_filters", tally%n_filters) + call write_dataset(tally_group, "n_realizations", & + tally % n_realizations) + call write_dataset(tally_group, "n_filters", tally % n_filters) ! Write filter information - FILTER_LOOP: do j = 1, tally%n_filters + FILTER_LOOP: do j = 1, tally % n_filters filter_group = create_group(tally_group, "filter " // & trim(to_str(j))) ! Write name of type - select case (tally%filters(j)%type) + select case (tally % filters(j) % type) case(FILTER_UNIVERSE) call write_dataset(filter_group, "type", "universe") case(FILTER_MATERIAL) @@ -274,36 +276,37 @@ contains call write_dataset(filter_group, "type", "delayedgroup") end select - call write_dataset(filter_group, "n_bins", tally%filters(j)%n_bins) + call write_dataset(filter_group, "n_bins", & + tally % filters(j) % n_bins) if (tally % filters(j) % type == FILTER_ENERGYIN .or. & tally % filters(j) % type == FILTER_ENERGYOUT .or. & tally % filters(j) % type == FILTER_MU .or. & tally % filters(j) % type == FILTER_POLAR .or. & tally % filters(j) % type == FILTER_AZIMUTHAL) then call write_dataset(filter_group, "bins", & - tally%filters(j)%real_bins) + tally % filters(j) % real_bins) else call write_dataset(filter_group, "bins", & - tally%filters(j)%int_bins) + tally % filters(j) % int_bins) end if call close_group(filter_group) end do FILTER_LOOP ! Set up nuclide bin array and then write - allocate(str_array(tally%n_nuclide_bins)) - NUCLIDE_LOOP: do j = 1, tally%n_nuclide_bins - if (tally%nuclide_bins(j) > 0) then + allocate(str_array(tally % n_nuclide_bins)) + NUCLIDE_LOOP: do j = 1, tally % n_nuclide_bins + if (tally % nuclide_bins(j) > 0) then ! Get index in cross section listings for this nuclide - i_list = nuclides(tally%nuclide_bins(j))%listing + i_list = nuclides(tally % nuclide_bins(j)) % listing ! Determine position of . in alias string (e.g. "U-235.71c"). If ! no . is found, just use the entire string. - i_xs = index(xs_listings(i_list)%alias, '.') + i_xs = index(xs_listings(i_list) % alias, '.') if (i_xs > 0) then - str_array(j) = xs_listings(i_list)%alias(1:i_xs - 1) + str_array(j) = xs_listings(i_list) % alias(1:i_xs - 1) else - str_array(j) = xs_listings(i_list)%alias + str_array(j) = xs_listings(i_list) % alias end if else str_array(j) = 'total' @@ -312,32 +315,33 @@ contains call write_dataset(tally_group, "nuclides", str_array) deallocate(str_array) - call write_dataset(tally_group, "n_score_bins", tally%n_score_bins) - allocate(str_array(size(tally%score_bins))) - do j = 1, size(tally%score_bins) - str_array(j) = reaction_name(tally%score_bins(j)) + call write_dataset(tally_group, "n_score_bins", tally % n_score_bins) + allocate(str_array(size(tally % score_bins))) + do j = 1, size(tally % score_bins) + str_array(j) = reaction_name(tally % score_bins(j)) end do call write_dataset(tally_group, "score_bins", str_array) - call write_dataset(tally_group, "n_user_score_bins", tally%n_user_score_bins) + call write_dataset(tally_group, "n_user_score_bins", & + tally % n_user_score_bins) deallocate(str_array) ! Write explicit moment order strings for each score bin k = 1 - allocate(str_array(tally%n_score_bins)) - MOMENT_LOOP: do j = 1, tally%n_user_score_bins - select case(tally%score_bins(k)) + allocate(str_array(tally % n_score_bins)) + MOMENT_LOOP: do j = 1, tally % n_user_score_bins + select case(tally % score_bins(k)) case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) - str_array(k) = 'P' // trim(to_str(tally%moment_order(k))) + str_array(k) = 'P' // trim(to_str(tally % moment_order(k))) k = k + 1 case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN) - do n_order = 0, tally%moment_order(k) + do n_order = 0, tally % moment_order(k) str_array(k) = 'P' // trim(to_str(n_order)) k = k + 1 end do case (SCORE_SCATTER_YN, SCORE_NU_SCATTER_YN, SCORE_FLUX_YN, & SCORE_TOTAL_YN) - do n_order = 0, tally%moment_order(k) + do n_order = 0, tally % moment_order(k) do nm_order = -n_order, n_order str_array(k) = 'Y' // trim(to_str(n_order)) // ',' // & trim(to_str(nm_order)) @@ -389,8 +393,9 @@ contains tally => tallies(i) ! Write sum and sum_sq for each bin - tally_group = open_group(tallies_group, "tally " // to_str(tally%id)) - call write_dataset(tally_group, "results", tally%results) + tally_group = open_group(tallies_group, "tally " & + // to_str(tally % id)) + call write_dataset(tally_group, "results", tally % results) call close_group(tally_group) end do TALLY_RESULTS From fa3b28f737b28ca3615a37387e72c565498d1b94 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sat, 26 Mar 2016 13:49:41 -0400 Subject: [PATCH 084/259] Output timing results in statepoint files --- docs/source/usersguide/output/statepoint.rst | 70 +++++++++++++++++++- openmc/statepoint.py | 19 ++++-- src/constants.F90 | 2 +- src/state_point.F90 | 48 +++++++++++--- 4 files changed, 123 insertions(+), 16 deletions(-) diff --git a/docs/source/usersguide/output/statepoint.rst b/docs/source/usersguide/output/statepoint.rst index 225161965..48313aff3 100644 --- a/docs/source/usersguide/output/statepoint.rst +++ b/docs/source/usersguide/output/statepoint.rst @@ -4,7 +4,7 @@ State Point File Format ======================= -The current revision of the statepoint file format is 15. +The current revision of the statepoint file format is 16. **/filetype** (*char[]*) @@ -248,7 +248,7 @@ if run_mode == 'k-eigenvalue': Accumulated sum and sum-of-squares for each global tally. The compound type has fields named ``sum`` and ``sum_sq``. -**tallies_present** (*int*) +**/tallies_present** (*int*) Flag indicated if tallies are present in the file. @@ -260,3 +260,69 @@ if (run_mode == 'k-eigenvalue' and source_present > 0) ``wgt``, ``xyz``, ``uvw``, ``E``, ``g``, and ``delayed_group``, which represent the weight, position, direction, energy, energy group, and delayed_group of the source particle, respectively. + +**/runtime/total initialization** (*double*) + + Time (in seconds on the master processor) spent reading inputs, allocating + arrays, etc. + +**/runtime/reading cross sections** (*double*) + + Time (in seconds on the master processor) spent loading cross section + libraries (this is a subset of initialization). + +**/runtime/simulation** (*double*) + + Time (in seconds on the master processor) spent between initialization and + finalization. + +**/runtime/transport** (*double*) + + Time (in seconds on the master processor) spent transporting particles. + +**/runtime/inactive batches** (*double*) + + Time (in seconds on the master processor) spent in the inactive batches + (including non-transport activities like communcating sites). + +**/runtime/active batches** (*double*) + + Time (in seconds on the master processor) spent in the active batches + (including non-transport activities like communcating sites). + +**/runtime/synchronizing fission bank** (*double*) + + Time (in seconds on the master processor) spent sampling source particles + from fission sites and communicating them to other processes for load + balancing. + +**/runtime/sampling source sites** (*double*) + + Time (in seconds on the master processor) spent sampling source particles + from fission sites. + +**/runtime/SEND-RECV source sites** (*double*) + + Time (in seconds on the master processor) spent communicating source sites + between processes for load balancing. + +**/runtime/accumulating tallies** (*double*) + + Time (in seconds on the master processor) spent communicating tally results + and evaluating their statistics. + +**/runtime/CMFD** (*double*) + + Time (in seconds on the master processor) spent evaluating CMFD. + +**/runtime/CMFD building matrices** (*double*) + + Time (in seconds on the master processor) spent buliding CMFD matrices. + +**/runtime/CMFD solving matrices** (*double*) + + Time (in seconds on the master processor) spent solving CMFD matrices. + +**/runtime/total** (*double*) + + Total time spent (in seconds on the master processor) in the program. diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 1644e44ab..0460192c4 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -68,6 +68,9 @@ class StatePoint(object): Working directory for simulation run_mode : str Simulation run mode, e.g. 'k-eigenvalue' + runtime : dict + Dictionary whose keys are strings describing various runtime metrics + and whose values are time values in seconds. seed : Integral Pseudorandom number generator seed source : ndarray of compound datatype @@ -101,13 +104,14 @@ class StatePoint(object): raise IOError('{} is not a statepoint file.'.format(filename)) except AttributeError: raise IOError('Could not read statepoint file. This most likely ' - 'means the statepoint file was produced by a different ' - 'version of OpenMC than the one you are using.') - if self._f['revision'].value != 15: + 'means the statepoint file was produced by a ' + 'different version of OpenMC than the one you are ' + 'using.') + if self._f['revision'].value != 16: raise IOError('Statepoint file has a file revision of {} ' 'which is not consistent with the revision this ' 'version of OpenMC expects ({}).'.format( - self._f['revision'].value, 15)) + self._f['revision'].value, 16)) # Set flags for what data has been read self._meshes_read = False @@ -311,6 +315,13 @@ class StatePoint(object): def run_mode(self): return self._f['run_mode'].value.decode() + @property + def runtime(self): + out = dict() + for key in self._f['runtime'].keys(): + out[key] = self._f['runtime/' + key].value + return out + @property def seed(self): return self._f['seed'].value diff --git a/src/constants.F90 b/src/constants.F90 index 8863ca18c..473d28af6 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -11,7 +11,7 @@ module constants integer, parameter :: VERSION_RELEASE = 1 ! Revision numbers for binary files - integer, parameter :: REVISION_STATEPOINT = 15 + integer, parameter :: REVISION_STATEPOINT = 16 integer, parameter :: REVISION_PARTICLE_RESTART = 1 integer, parameter :: REVISION_TRACK = 1 integer, parameter :: REVISION_SUMMARY = 3 diff --git a/src/state_point.F90 b/src/state_point.F90 index d8d796d90..4348ad331 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -49,10 +49,8 @@ contains integer, allocatable :: id_array(:) integer, allocatable :: key_array(:) integer(HID_T) :: file_id - integer(HID_T) :: cmfd_group - integer(HID_T) :: tallies_group, tally_group - integer(HID_T) :: meshes_group, mesh_group - integer(HID_T) :: filter_group + integer(HID_T) :: cmfd_group, tallies_group, tally_group, meshes_group, & + mesh_group, filter_group, runtime_group character(20), allocatable :: str_array(:) character(MAX_FILE_LEN) :: filename type(RegularMesh), pointer :: meshp @@ -405,13 +403,45 @@ contains end if call close_group(tallies_group) + + ! Write out the runtime metrics. + runtime_group = create_group(file_id, "runtime") + call write_dataset(runtime_group, "total initialization", & + time_initialize % get_value()) + call write_dataset(runtime_group, "reading cross sections", & + time_read_xs % get_value()) + call write_dataset(runtime_group, "simulation", & + time_inactive % get_value() + time_active % get_value()) + call write_dataset(runtime_group, "transport", & + time_transport % get_value()) + if (run_mode == MODE_EIGENVALUE) then + call write_dataset(runtime_group, "inactive batches", & + time_inactive % get_value()) + end if + call write_dataset(runtime_group, "active batches", & + time_active % get_value()) + if (run_mode == MODE_EIGENVALUE) then + call write_dataset(runtime_group, "synchronizing fission bank", & + time_bank % get_value()) + call write_dataset(runtime_group, "sampling source sites", & + time_bank_sample % get_value()) + call write_dataset(runtime_group, "SEND-RECV source sites", & + time_bank_sendrecv % get_value()) + end if + call write_dataset(runtime_group, "accumulating tallies", & + time_tallies % get_value()) + if (cmfd_run) then + call write_dataset(runtime_group, "CMFD", time_cmfd % get_value()) + call write_dataset(runtime_group, "CMFD building matrices", & + time_cmfdbuild % get_value()) + call write_dataset(runtime_group, "CMFD solving matrices", & + time_cmfdsolve % get_value()) + end if + call write_dataset(runtime_group, "total", time_total % get_value()) + call close_group(runtime_group) + call file_close(file_id) end if - - if (master .and. n_tallies > 0) then - deallocate(id_array) - end if - end subroutine write_state_point !=============================================================================== From 19250b7d23ca34ea81e4ddb8dabdc741aaa64808 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sat, 26 Mar 2016 13:50:58 -0400 Subject: [PATCH 085/259] Remove orphaned 'write_timing' subroutine --- src/summary.F90 | 59 ------------------------------------------------- 1 file changed, 59 deletions(-) diff --git a/src/summary.F90 b/src/summary.F90 index b33546e66..35c62ae03 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -717,63 +717,4 @@ contains end subroutine write_tallies -!=============================================================================== -! WRITE_TIMING -!=============================================================================== - - subroutine write_timing(file_id) - integer(HID_T), intent(in) :: file_id - - integer(8) :: total_particles - integer(HID_T) :: time_group - real(8) :: speed - - time_group = create_group(file_id, "timing") - - ! Write timing data - call write_dataset(time_group, "time_initialize", time_initialize%elapsed) - call write_dataset(time_group, "time_read_xs", time_read_xs%elapsed) - call write_dataset(time_group, "time_transport", time_transport%elapsed) - call write_dataset(time_group, "time_bank", time_bank%elapsed) - call write_dataset(time_group, "time_bank_sample", time_bank_sample%elapsed) - call write_dataset(time_group, "time_bank_sendrecv", time_bank_sendrecv%elapsed) - call write_dataset(time_group, "time_tallies", time_tallies%elapsed) - call write_dataset(time_group, "time_inactive", time_inactive%elapsed) - call write_dataset(time_group, "time_active", time_active%elapsed) - call write_dataset(time_group, "time_finalize", time_finalize%elapsed) - call write_dataset(time_group, "time_total", time_total%elapsed) - - ! Add descriptions to timing data - call write_attribute_string(time_group, "time_initialize", "description", & - "Total time elapsed for initialization (s)") - call write_attribute_string(time_group, "time_read_xs", "description", & - "Time reading cross-section libraries (s)") - call write_attribute_string(time_group, "time_transport", "description", & - "Time in transport only (s)") - call write_attribute_string(time_group, "time_bank", "description", & - "Total time synchronizing fission bank (s)") - call write_attribute_string(time_group, "time_bank_sample", "description", & - "Time between generations sampling source sites (s)") - call write_attribute_string(time_group, "time_bank_sendrecv", "description", & - "Time between generations SEND/RECVing source sites (s)") - call write_attribute_string(time_group, "time_tallies", "description", & - "Time between batches accumulating tallies (s)") - call write_attribute_string(time_group, "time_inactive", "description", & - "Total time in inactive batches (s)") - call write_attribute_string(time_group, "time_active", "description", & - "Total time in active batches (s)") - call write_attribute_string(time_group, "time_finalize", "description", & - "Total time for finalization (s)") - call write_attribute_string(time_group, "time_total", "description", & - "Total time elapsed (s)") - - ! Write calculation rate - total_particles = n_particles * n_batches * gen_per_batch - speed = real(total_particles) / (time_inactive%elapsed + & - time_active%elapsed) - call write_dataset(time_group, "neutrons_per_second", speed) - - call close_group(time_group) - end subroutine write_timing - end module summary From c5c52e31356f7367759cf01d5c6228e5236b1f35 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sat, 26 Mar 2016 13:57:50 -0400 Subject: [PATCH 086/259] Added distribcell paths to summary.rst --- docs/source/usersguide/output/summary.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/source/usersguide/output/summary.rst b/docs/source/usersguide/output/summary.rst index 83602e506..8901e42e7 100644 --- a/docs/source/usersguide/output/summary.rst +++ b/docs/source/usersguide/output/summary.rst @@ -293,6 +293,13 @@ The current revision of the summary file format is 1. Filter offset (used for distribcell filter). +**/tallies/tally /filter /paths** (*char[][]*) + + The paths traversed through the CSG tree to reach each distribcell + instance (for 'distribcell' filters only). This consists of the integer + IDs for each universe, cell and lattice delimited by '->'. Each lattice + cell is specified by its (x,y) or (x,y,z) indices. + **/tallies/tally /filter /n_bins** (*int*) Number of bins for the j-th filter. From 2588b028194bcdad08d85462f419b13b7fb3e2f4 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 28 Mar 2016 14:25:11 -0400 Subject: [PATCH 087/259] Address PR comments for #620 --- docs/source/usersguide/output/statepoint.rst | 32 ++++++++++---------- openmc/statepoint.py | 10 +++--- src/constants.F90 | 2 +- 3 files changed, 21 insertions(+), 23 deletions(-) diff --git a/docs/source/usersguide/output/statepoint.rst b/docs/source/usersguide/output/statepoint.rst index 48313aff3..95a3d842c 100644 --- a/docs/source/usersguide/output/statepoint.rst +++ b/docs/source/usersguide/output/statepoint.rst @@ -4,7 +4,7 @@ State Point File Format ======================= -The current revision of the statepoint file format is 16. +The current revision of the statepoint file format is 15. **/filetype** (*char[]*) @@ -263,66 +263,66 @@ if (run_mode == 'k-eigenvalue' and source_present > 0) **/runtime/total initialization** (*double*) - Time (in seconds on the master processor) spent reading inputs, allocating + Time (in seconds on the master process) spent reading inputs, allocating arrays, etc. **/runtime/reading cross sections** (*double*) - Time (in seconds on the master processor) spent loading cross section + Time (in seconds on the master process) spent loading cross section libraries (this is a subset of initialization). **/runtime/simulation** (*double*) - Time (in seconds on the master processor) spent between initialization and + Time (in seconds on the master process) spent between initialization and finalization. **/runtime/transport** (*double*) - Time (in seconds on the master processor) spent transporting particles. + Time (in seconds on the master process) spent transporting particles. **/runtime/inactive batches** (*double*) - Time (in seconds on the master processor) spent in the inactive batches + Time (in seconds on the master process) spent in the inactive batches (including non-transport activities like communcating sites). **/runtime/active batches** (*double*) - Time (in seconds on the master processor) spent in the active batches - (including non-transport activities like communcating sites). + Time (in seconds on the master process) spent in the active batches + (including non-transport activities like communicating sites). **/runtime/synchronizing fission bank** (*double*) - Time (in seconds on the master processor) spent sampling source particles + Time (in seconds on the master process) spent sampling source particles from fission sites and communicating them to other processes for load balancing. **/runtime/sampling source sites** (*double*) - Time (in seconds on the master processor) spent sampling source particles + Time (in seconds on the master process) spent sampling source particles from fission sites. **/runtime/SEND-RECV source sites** (*double*) - Time (in seconds on the master processor) spent communicating source sites + Time (in seconds on the master process) spent communicating source sites between processes for load balancing. **/runtime/accumulating tallies** (*double*) - Time (in seconds on the master processor) spent communicating tally results + Time (in seconds on the master process) spent communicating tally results and evaluating their statistics. **/runtime/CMFD** (*double*) - Time (in seconds on the master processor) spent evaluating CMFD. + Time (in seconds on the master process) spent evaluating CMFD. **/runtime/CMFD building matrices** (*double*) - Time (in seconds on the master processor) spent buliding CMFD matrices. + Time (in seconds on the master process) spent buliding CMFD matrices. **/runtime/CMFD solving matrices** (*double*) - Time (in seconds on the master processor) spent solving CMFD matrices. + Time (in seconds on the master process) spent solving CMFD matrices. **/runtime/total** (*double*) - Total time spent (in seconds on the master processor) in the program. + Total time spent (in seconds on the master process) in the program. diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 0460192c4..693400ad6 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -107,11 +107,11 @@ class StatePoint(object): 'means the statepoint file was produced by a ' 'different version of OpenMC than the one you are ' 'using.') - if self._f['revision'].value != 16: + if self._f['revision'].value != 15: raise IOError('Statepoint file has a file revision of {} ' 'which is not consistent with the revision this ' 'version of OpenMC expects ({}).'.format( - self._f['revision'].value, 16)) + self._f['revision'].value, 15)) # Set flags for what data has been read self._meshes_read = False @@ -317,10 +317,8 @@ class StatePoint(object): @property def runtime(self): - out = dict() - for key in self._f['runtime'].keys(): - out[key] = self._f['runtime/' + key].value - return out + return {name: dataset.value + for name, dataset in self._f['runtime'].items()} @property def seed(self): diff --git a/src/constants.F90 b/src/constants.F90 index 473d28af6..8863ca18c 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -11,7 +11,7 @@ module constants integer, parameter :: VERSION_RELEASE = 1 ! Revision numbers for binary files - integer, parameter :: REVISION_STATEPOINT = 16 + integer, parameter :: REVISION_STATEPOINT = 15 integer, parameter :: REVISION_PARTICLE_RESTART = 1 integer, parameter :: REVISION_TRACK = 1 integer, parameter :: REVISION_SUMMARY = 3 From f90c46d2f3c75fa777ed935cdef35e0edc66d75d Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 28 Mar 2016 17:30:19 -0400 Subject: [PATCH 088/259] Cleaned up docstring for nuclides attribute of MGXS class for @paulromano --- openmc/mgxs/mgxs.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index edc345e87..2b05bc709 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -67,10 +67,6 @@ class MGXS(object): The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain - nuclides : Iterable of basestring - The user-specified nuclides to compute cross sections. If by_nuclide - is True but nuclides are not specified by the user, all nuclides in the - spatial domain will be used. name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. @@ -109,9 +105,11 @@ class MGXS(object): num_nuclides : Integral 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 : list of str or 'sum' - A list of nuclide string names (e.g., 'U-238', 'O-16') when by_nuclide - is True and 'sum' when by_nuclide is False. + nuclides : Iterable of str or 'sum' + The optional user-specified nuclides for which to compute cross + sections (e.g., 'U-238', 'O-16'). 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 From aaaed9e27808dc8830885e3cd75d065c887c4295 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 30 Mar 2016 16:36:09 -0600 Subject: [PATCH 089/259] Quick fix for nuclide density lookups for MGXS --- openmc/mgxs/mgxs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2b05bc709..7fcc0600a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -439,7 +439,7 @@ class MGXS(object): cv.check_type('nuclide', nuclide, basestring) # Get list of all nuclides in the spatial domain - nuclides = self.get_all_nuclides() + nuclides = self.domain.get_all_nuclides() if nuclide not in nuclides: msg = 'Unable to get density for nuclide "{0}" which is not in ' \ From ddfb01b3fe5bb91c02ca50604e726a857ac66e1c Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 8 Apr 2016 12:26:02 -0400 Subject: [PATCH 090/259] Reduced Python API module imports --- .../pythonapi/examples/mgxs-part-i.ipynb | 43 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 969 +++++++------- .../pythonapi/examples/mgxs-part-iii.ipynb | 293 +++-- .../examples/pandas-dataframes.ipynb | 1135 ++++++++--------- .../pythonapi/examples/post-processing.ipynb | 328 +++-- .../pythonapi/examples/tally-arithmetic.ipynb | 299 +++-- examples/python/basic/build-xml.py | 10 +- examples/python/boxes/build-xml.py | 9 +- .../python/lattice/hexagonal/build-xml.py | 10 +- examples/python/lattice/nested/build-xml.py | 10 +- examples/python/lattice/simple/build-xml.py | 10 +- examples/python/pincell/build-xml.py | 10 +- .../python/pincell_multigroup/build-xml.py | 12 +- examples/python/reflective/build-xml.py | 10 +- 14 files changed, 1563 insertions(+), 1585 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 8db4cd4df..f1db27133 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -146,8 +146,6 @@ "\n", "import openmc\n", "import openmc.mgxs as mgxs\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", "\n", "%matplotlib inline" ] @@ -342,9 +340,11 @@ "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", "settings_file.output = {'tallies': True}\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", - "settings_file.source = Source(space=Box(\n", - " bounds[:3], bounds[3:], only_fissionable=True))\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" @@ -518,10 +518,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:42:51\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 11:43:10\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -606,20 +605,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.6200E-01 seconds\n", - " Reading cross sections = 1.3100E-01 seconds\n", - " Total time in simulation = 2.4000E+00 seconds\n", - " Time in transport only = 2.1340E+00 seconds\n", - " Time in inactive batches = 2.6400E-01 seconds\n", - " Time in active batches = 2.1360E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Total time for initialization = 5.2800E-01 seconds\n", + " Reading cross sections = 1.3400E-01 seconds\n", + " Total time in simulation = 2.4026E+01 seconds\n", + " Time in transport only = 2.4011E+01 seconds\n", + " Time in inactive batches = 2.9230E+00 seconds\n", + " Time in active batches = 2.1103E+01 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 2.8800E+00 seconds\n", - " Calculation Rate (inactive) = 94697.0 neutrons/second\n", - " Calculation Rate (active) = 46816.5 neutrons/second\n", + " Total time elapsed = 2.4570E+01 seconds\n", + " Calculation Rate (inactive) = 8552.86 neutrons/second\n", + " Calculation Rate (active) = 4738.66 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -914,7 +913,7 @@ " 6.250000e-07\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " 8.881784e-16\n", + " -3.774758e-15\n", " 0.011292\n", " \n", " \n", @@ -924,7 +923,7 @@ " 2.000000e+01\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " -9.992007e-16\n", + " 1.443290e-15\n", " 0.002570\n", " \n", " \n", @@ -937,8 +936,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 (((total / flux) - (absorption / flux)) - (sca... 8.88e-16 1.13e-02 \n", - "1 (((total / flux) - (absorption / flux)) - (sca... -9.99e-16 2.57e-03 " + "0 (((total / flux) - (absorption / flux)) - (sca... -3.77e-15 1.13e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... 1.44e-15 2.57e-03 " ] }, "execution_count": 23, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 9798b6f07..3ca02ccb2 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": { "collapsed": false }, @@ -34,8 +34,12 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.rxname is not yet QA compliant.\n", - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.ace is not yet QA compliant.\n" + "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "because the backend has already been chosen;\n", + "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", + "or matplotlib.backends is imported for the first time.\n", + "\n", + " warnings.warn(_use_error_msg)\n" ] } ], @@ -46,8 +50,6 @@ "\n", "import openmc\n", "import openmc.mgxs as mgxs\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", "import openmoc\n", "from openmoc.opencg_compatible import get_openmoc_geometry\n", "import pyne.ace\n", @@ -64,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "collapsed": true }, @@ -87,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -121,7 +123,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": { "collapsed": true }, @@ -147,7 +149,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": { "collapsed": true }, @@ -175,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -212,7 +214,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -237,7 +239,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": { "collapsed": true }, @@ -264,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": { "collapsed": true }, @@ -281,9 +283,11 @@ "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", "settings_file.output = {'tallies': True}\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", - "settings_file.source = Source(space=Box(\n", - " bounds[:3], bounds[3:], only_fissionable=True))\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Activate tally precision triggers\n", "settings_file.trigger_active = True\n", @@ -302,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": { "collapsed": true }, @@ -327,7 +331,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -358,7 +362,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -382,7 +386,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -419,7 +423,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -444,10 +448,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 30641c5d37646212ab0540a1064ef6590065f0f0\n", - " Date/Time: 2016-03-23 15:00:26\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 11:47:45\n", " MPI Processes: 1\n", - " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -562,20 +565,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.9500E-01 seconds\n", - " Reading cross sections = 1.0300E-01 seconds\n", - " Total time in simulation = 1.1163E+02 seconds\n", - " Time in transport only = 1.1148E+02 seconds\n", - " Time in inactive batches = 6.6440E+00 seconds\n", - " Time in active batches = 1.0499E+02 seconds\n", - " Time synchronizing fission bank = 2.4000E-02 seconds\n", + " Total time for initialization = 5.6900E-01 seconds\n", + " Reading cross sections = 1.4200E-01 seconds\n", + " Total time in simulation = 3.7697E+02 seconds\n", + " Time in transport only = 3.7690E+02 seconds\n", + " Time in inactive batches = 2.4323E+01 seconds\n", + " Time in active batches = 3.5265E+02 seconds\n", + " Time synchronizing fission bank = 2.8000E-02 seconds\n", " Sampling source sites = 1.6000E-02 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", - " Time accumulating tallies = 6.0000E-03 seconds\n", - " Total time for finalization = 1.3000E-02 seconds\n", - " Total time elapsed = 1.1220E+02 seconds\n", - " Calculation Rate (inactive) = 15051.2 neutrons/second\n", - " Calculation Rate (active) = 3810.00 neutrons/second\n", + " SEND/RECV source sites = 1.0000E-02 seconds\n", + " Time accumulating tallies = 5.0000E-03 seconds\n", + " Total time for finalization = 2.6000E-02 seconds\n", + " Total time elapsed = 3.7766E+02 seconds\n", + " Calculation Rate (inactive) = 4111.33 neutrons/second\n", + " Calculation Rate (active) = 1134.27 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -593,7 +596,7 @@ "0" ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -620,7 +623,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -639,7 +642,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": { "collapsed": true }, @@ -659,7 +662,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -694,7 +697,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -748,7 +751,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -790,7 +793,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": { "collapsed": false }, @@ -920,7 +923,7 @@ "119 10002 1 5 O-16 0.000000 0.000000" ] }, - "execution_count": 21, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -940,7 +943,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "metadata": { "collapsed": true }, @@ -962,7 +965,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -1001,7 +1004,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -1084,7 +1087,7 @@ "2 10000 2 O-16 3.794859 0.011139" ] }, - "execution_count": 24, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -1110,7 +1113,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -1129,7 +1132,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -1174,7 +1177,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -1185,169 +1188,169 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.574672\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.679815\tres = 4.253E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.660826\tres = 1.830E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.658940\tres = 2.793E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.853E-03\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.625810\tres = 2.417E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.606678\tres = 2.675E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.587485\tres = 3.057E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.569029\tres = 3.164E-02\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.551707\tres = 3.142E-02\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.536035\tres = 3.044E-02\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.522275\tres = 2.841E-02\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.510610\tres = 2.567E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.493832\tres = 1.861E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.488781\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.485924\tres = 1.023E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.485211\tres = 5.846E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.467E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.489905\tres = 2.802E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.495105\tres = 6.853E-03\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.502056\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.510630\tres = 1.404E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.520696\tres = 1.708E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.532120\tres = 1.971E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.544768\tres = 2.194E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.558505\tres = 2.377E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.573200\tres = 2.522E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.588723\tres = 2.631E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.604951\tres = 2.708E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.621765\tres = 2.756E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.639053\tres = 2.779E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.780E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.674632\tres = 2.763E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.692730\tres = 2.729E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.710919\tres = 2.683E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.729118\tres = 2.626E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.747258\tres = 2.560E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.765273\tres = 2.488E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.783104\tres = 2.411E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.800701\tres = 2.330E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.818017\tres = 2.247E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.835012\tres = 2.163E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.851651\tres = 2.078E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.867906\tres = 1.993E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883750\tres = 1.909E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.899164\tres = 1.826E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914131\tres = 1.744E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.665E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.942676\tres = 1.587E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.956239\tres = 1.512E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.969323\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.981927\tres = 1.368E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.994054\tres = 1.300E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.005705\tres = 1.235E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.016886\tres = 1.172E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.027604\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037866\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.047682\tres = 9.987E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.057062\tres = 9.458E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.066016\tres = 8.953E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.074556\tres = 8.471E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.082693\tres = 8.011E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.090442\tres = 7.573E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.097813\tres = 7.156E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.104820\tres = 6.760E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.111477\tres = 6.383E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.117795\tres = 6.025E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.685E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.129470\tres = 5.362E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.134853\tres = 5.056E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139950\tres = 4.766E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.144772\tres = 4.491E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.149333\tres = 4.230E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.153643\tres = 3.984E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.157716\tres = 3.751E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.161561\tres = 3.530E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.321E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.168613\tres = 3.124E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.171841\tres = 2.938E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.174883\tres = 2.762E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.177749\tres = 2.596E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.180447\tres = 2.439E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.182988\tres = 2.291E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.185378\tres = 2.152E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.187627\tres = 2.021E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.189741\tres = 1.897E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.191728\tres = 1.780E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.193595\tres = 1.670E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.195349\tres = 1.567E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.196996\tres = 1.469E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.198543\tres = 1.378E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.292E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.201355\tres = 1.211E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.134E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.203829\tres = 1.063E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.956E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.324E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.206989\tres = 8.730E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.173E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.208777\tres = 7.650E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.209587\tres = 7.159E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.698E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.211054\tres = 6.266E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.211718\tres = 5.861E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.212339\tres = 5.481E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.212920\tres = 5.125E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.213463\tres = 4.792E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.213971\tres = 4.479E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.214446\tres = 4.186E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.214890\tres = 3.912E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.215305\tres = 3.655E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.215692\tres = 3.414E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.216055\tres = 3.189E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.979E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.782E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.217004\tres = 2.597E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.217279\tres = 2.425E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.217536\tres = 2.263E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.217776\tres = 2.113E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.218000\tres = 1.971E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.218209\tres = 1.840E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.218404\tres = 1.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.601E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.494E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.393E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.219062\tres = 1.299E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.212E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.130E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.219448\tres = 1.054E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.822E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.156E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.534E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.954E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.219936\tres = 7.413E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.908E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.220087\tres = 6.437E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.220156\tres = 5.997E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.220219\tres = 5.587E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.220278\tres = 5.205E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.220333\tres = 4.848E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.220385\tres = 4.516E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.220433\tres = 4.206E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.220477\tres = 3.917E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.220518\tres = 3.648E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.220557\tres = 3.397E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.220593\tres = 3.163E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.220627\tres = 2.945E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.220658\tres = 2.742E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.220687\tres = 2.552E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.220714\tres = 2.376E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.220739\tres = 2.212E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.220762\tres = 2.059E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.220784\tres = 1.916E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.220804\tres = 1.783E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.220823\tres = 1.660E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.220841\tres = 1.545E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.437E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.338E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.245E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.158E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.077E-05\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.002E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.574577\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.679838\tres = 4.254E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.660822\tres = 1.832E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.658929\tres = 2.797E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.866E-03\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.625823\tres = 2.415E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.606706\tres = 2.673E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.587527\tres = 3.055E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.569083\tres = 3.161E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.551772\tres = 3.139E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.536108\tres = 3.042E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.522354\tres = 2.839E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.510694\tres = 2.565E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501194\tres = 2.232E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.493922\tres = 1.860E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.488872\tres = 1.451E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.486015\tres = 1.022E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485301\tres = 5.845E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.486659\tres = 1.469E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.489990\tres = 2.797E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495186\tres = 6.846E-03\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.502132\tres = 1.060E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.510702\tres = 1.403E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.520762\tres = 1.707E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532180\tres = 1.970E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.544822\tres = 2.193E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558552\tres = 2.375E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.573240\tres = 2.520E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.588757\tres = 2.630E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.604978\tres = 2.707E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.621786\tres = 2.755E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639068\tres = 2.778E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656717\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.674634\tres = 2.762E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.692727\tres = 2.728E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.710910\tres = 2.682E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729105\tres = 2.625E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.747241\tres = 2.559E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.765251\tres = 2.487E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783079\tres = 2.410E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.800673\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.817986\tres = 2.247E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.834979\tres = 2.162E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.851616\tres = 2.077E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.867869\tres = 1.993E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883712\tres = 1.908E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.899125\tres = 1.826E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914092\tres = 1.744E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928599\tres = 1.665E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.942637\tres = 1.587E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.956200\tres = 1.512E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.969285\tres = 1.439E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.981891\tres = 1.368E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.994018\tres = 1.301E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.005671\tres = 1.235E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.016854\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.027574\tres = 1.112E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037838\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.047656\tres = 9.989E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057038\tres = 9.460E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.065995\tres = 8.955E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.074537\tres = 8.473E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082677\tres = 8.014E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.090428\tres = 7.576E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.097802\tres = 7.159E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104812\tres = 6.762E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.111471\tres = 6.385E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.117792\tres = 6.027E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.687E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129473\tres = 5.364E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.134858\tres = 5.058E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139957\tres = 4.768E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.144782\tres = 4.493E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.149346\tres = 4.233E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153659\tres = 3.986E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.157734\tres = 3.753E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.161581\tres = 3.532E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165212\tres = 3.323E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.168638\tres = 3.126E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.171868\tres = 2.940E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.174912\tres = 2.764E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.177780\tres = 2.598E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.180481\tres = 2.441E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.183023\tres = 2.293E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.185416\tres = 2.154E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.187666\tres = 2.022E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.189782\tres = 1.898E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191771\tres = 1.782E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.193640\tres = 1.672E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195395\tres = 1.568E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.197044\tres = 1.471E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.198591\tres = 1.379E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.200044\tres = 1.293E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.201406\tres = 1.212E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.202685\tres = 1.136E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203883\tres = 1.064E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.205007\tres = 9.966E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.206060\tres = 9.333E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.207047\tres = 8.739E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207971\tres = 8.181E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208837\tres = 7.658E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209647\tres = 7.167E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210406\tres = 6.706E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211116\tres = 6.273E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211781\tres = 5.868E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212403\tres = 5.488E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212984\tres = 5.131E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213528\tres = 4.797E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.214037\tres = 4.484E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214512\tres = 4.191E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214957\tres = 3.917E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215372\tres = 3.659E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215760\tres = 3.419E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216123\tres = 3.193E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216462\tres = 2.983E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216778\tres = 2.785E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.217073\tres = 2.601E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217349\tres = 2.428E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217607\tres = 2.266E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217847\tres = 2.115E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.218072\tres = 1.974E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218281\tres = 1.842E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218476\tres = 1.719E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218659\tres = 1.604E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218829\tres = 1.496E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218987\tres = 1.395E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219135\tres = 1.301E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219273\tres = 1.214E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219402\tres = 1.132E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219522\tres = 1.055E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219634\tres = 9.837E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219738\tres = 9.170E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219835\tres = 8.548E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219926\tres = 7.967E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.220010\tres = 7.425E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.220089\tres = 6.919E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220162\tres = 6.447E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220230\tres = 6.007E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220294\tres = 5.597E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220353\tres = 5.214E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220408\tres = 4.857E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220460\tres = 4.524E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220508\tres = 4.214E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220552\tres = 3.924E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220594\tres = 3.655E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220633\tres = 3.403E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220669\tres = 3.169E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220702\tres = 2.950E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220733\tres = 2.747E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220762\tres = 2.557E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220789\tres = 2.381E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220815\tres = 2.216E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220838\tres = 2.063E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220860\tres = 1.920E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220880\tres = 1.787E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220899\tres = 1.663E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220917\tres = 1.548E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220933\tres = 1.440E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220948\tres = 1.340E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220962\tres = 1.247E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220976\tres = 1.160E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220988\tres = 1.080E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220999\tres = 1.004E-05\n" ] } ], @@ -1370,7 +1373,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -1380,8 +1383,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.220923\n", - "bias [pcm]: -255.0\n" + "openmoc keff = 1.220999\n", + "bias [pcm]: -247.4\n" ] } ], @@ -1405,7 +1408,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -1445,7 +1448,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -1456,237 +1459,237 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.495816\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.557477\tres = 5.042E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.518301\tres = 1.244E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.509212\tres = 7.027E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.496489\tres = 1.754E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.488581\tres = 2.498E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.482897\tres = 1.593E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.479775\tres = 1.163E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.464E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.479872\tres = 1.960E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.482685\tres = 2.166E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.487085\tres = 5.861E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.492901\tres = 9.116E-03\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.499973\tres = 1.194E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.508155\tres = 1.435E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.517314\tres = 1.637E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.527327\tres = 1.802E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.538081\tres = 1.936E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.549475\tres = 2.039E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.561413\tres = 2.117E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.573810\tres = 2.173E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.586589\tres = 2.208E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.599678\tres = 2.227E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.613012\tres = 2.231E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.224E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.640186\tres = 2.206E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.653925\tres = 2.179E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.667706\tres = 2.146E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.681489\tres = 2.107E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.695240\tres = 2.064E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.708927\tres = 2.018E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.722522\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.736000\tres = 1.918E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.749339\tres = 1.865E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.762519\tres = 1.812E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.775522\tres = 1.759E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.788335\tres = 1.705E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800944\tres = 1.652E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.813338\tres = 1.599E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.825507\tres = 1.547E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.837444\tres = 1.496E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.849142\tres = 1.446E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.860595\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871801\tres = 1.349E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.882755\tres = 1.302E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.893455\tres = 1.256E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.903901\tres = 1.212E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914091\tres = 1.169E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.924027\tres = 1.127E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.933708\tres = 1.087E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.943137\tres = 1.048E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.952314\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.961243\tres = 9.731E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.376E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.978367\tres = 9.033E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.986568\tres = 8.702E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 0.994534\tres = 8.382E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.002267\tres = 8.074E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.009773\tres = 7.776E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.489E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.024118\tres = 7.212E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.030966\tres = 6.944E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.037603\tres = 6.687E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.044036\tres = 6.438E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.050267\tres = 6.199E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.968E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.062145\tres = 5.746E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.532E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.073276\tres = 5.326E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.127E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.083698\tres = 4.935E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.088654\tres = 4.751E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.093447\tres = 4.573E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.402E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.102560\tres = 4.238E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.079E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.111072\tres = 3.926E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.115114\tres = 3.779E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.119018\tres = 3.638E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.122790\tres = 3.501E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.126432\tres = 3.370E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.129949\tres = 3.244E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.133344\tres = 3.122E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.136622\tres = 3.005E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.139786\tres = 2.892E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142840\tres = 2.784E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.145786\tres = 2.679E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.148630\tres = 2.579E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.151373\tres = 2.482E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.154020\tres = 2.388E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.156573\tres = 2.299E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.159035\tres = 2.212E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.161410\tres = 2.129E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.163700\tres = 2.049E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165909\tres = 1.972E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.168038\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.170091\tres = 1.826E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.758E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.691E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.175816\tres = 1.628E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.566E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.179297\tres = 1.507E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.451E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.182529\tres = 1.396E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.184058\tres = 1.343E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.185530\tres = 1.293E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.186949\tres = 1.244E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.188316\tres = 1.197E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.189633\tres = 1.152E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.108E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.192124\tres = 1.066E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.193301\tres = 1.026E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.874E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.195527\tres = 9.501E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.142E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.797E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.464E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.144E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.836E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.540E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.202119\tres = 7.255E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.980E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.203704\tres = 6.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.204452\tres = 6.462E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.217E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.982E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.206534\tres = 5.755E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.537E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.327E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.208391\tres = 5.126E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.931E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.209517\tres = 4.744E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.565E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.391E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.211051\tres = 4.225E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.211525\tres = 4.065E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.910E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.762E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.619E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.482E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.350E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.214015\tres = 3.222E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.214377\tres = 3.100E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.214725\tres = 2.982E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.869E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.215383\tres = 2.760E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.215693\tres = 2.655E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215992\tres = 2.554E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.216280\tres = 2.457E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.216556\tres = 2.364E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.274E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.217078\tres = 2.187E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.217325\tres = 2.104E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.217562\tres = 2.024E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.217790\tres = 1.947E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.218009\tres = 1.873E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.218220\tres = 1.802E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.733E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.218619\tres = 1.667E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.218807\tres = 1.604E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218988\tres = 1.543E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219162\tres = 1.484E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.219329\tres = 1.428E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.373E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.321E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.219794\tres = 1.271E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219938\tres = 1.222E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.220076\tres = 1.176E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.220208\tres = 1.131E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.220336\tres = 1.088E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.220459\tres = 1.046E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.220577\tres = 1.006E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.220691\tres = 9.681E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.220800\tres = 9.312E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220905\tres = 8.957E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.615E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.287E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.971E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.667E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.374E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.093E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.221537\tres = 6.823E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.562E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.312E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.071E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.840E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.617E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.402E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.196E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.222078\tres = 4.998E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.807E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.222189\tres = 4.624E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.447E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.277E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.222340\tres = 4.114E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.957E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.806E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.661E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.521E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.386E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.222594\tres = 3.257E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.222630\tres = 3.133E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.222666\tres = 3.013E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.222700\tres = 2.898E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.222733\tres = 2.787E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.222764\tres = 2.681E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.222795\tres = 2.578E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222824\tres = 2.480E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222852\tres = 2.385E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222879\tres = 2.294E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222905\tres = 2.206E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222930\tres = 2.122E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222954\tres = 2.041E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222977\tres = 1.963E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222999\tres = 1.888E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.816E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.747E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.223061\tres = 1.680E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.223080\tres = 1.616E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.554E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.223116\tres = 1.495E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.437E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.382E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.223164\tres = 1.330E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.223179\tres = 1.279E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.230E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.183E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.138E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.094E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.052E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.012E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.495686\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.557452\tres = 5.043E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.518267\tres = 1.246E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.509166\tres = 7.029E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.496443\tres = 1.756E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.488528\tres = 2.499E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.482840\tres = 1.594E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.479714\tres = 1.164E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.478769\tres = 6.475E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.479802\tres = 1.970E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.482610\tres = 2.157E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.487005\tres = 5.852E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.492817\tres = 9.108E-03\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.499885\tres = 1.193E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.508063\tres = 1.434E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.517218\tres = 1.636E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.527227\tres = 1.802E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.537978\tres = 1.935E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.549367\tres = 2.039E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.561302\tres = 2.117E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.573697\tres = 2.172E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.586472\tres = 2.208E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.599558\tres = 2.227E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.612889\tres = 2.231E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.626407\tres = 2.224E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.640059\tres = 2.206E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.653796\tres = 2.179E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.667574\tres = 2.146E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.681356\tres = 2.108E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.695105\tres = 2.064E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.708791\tres = 2.018E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.722384\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.735861\tres = 1.918E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.749198\tres = 1.866E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.762377\tres = 1.812E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.775379\tres = 1.759E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.788191\tres = 1.706E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800799\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.813193\tres = 1.600E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.825361\tres = 1.548E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.837298\tres = 1.496E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.848995\tres = 1.446E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.860449\tres = 1.397E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871654\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.882607\tres = 1.302E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.893308\tres = 1.257E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.903754\tres = 1.212E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.913944\tres = 1.169E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.923880\tres = 1.128E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.933561\tres = 1.087E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.942990\tres = 1.048E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.952168\tres = 1.010E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961097\tres = 9.733E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969781\tres = 9.378E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.978222\tres = 9.035E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.986423\tres = 8.704E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 0.994389\tres = 8.384E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.002123\tres = 8.075E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.009629\tres = 7.778E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.016912\tres = 7.490E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.023975\tres = 7.213E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.030824\tres = 6.946E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.037462\tres = 6.688E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.043895\tres = 6.440E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.050126\tres = 6.200E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056162\tres = 5.970E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.062006\tres = 5.747E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067663\tres = 5.533E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.073138\tres = 5.327E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078436\tres = 5.128E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083561\tres = 4.937E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.088518\tres = 4.752E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.093311\tres = 4.575E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.097945\tres = 4.404E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.102425\tres = 4.239E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106755\tres = 4.080E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.110939\tres = 3.927E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.114981\tres = 3.780E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.118886\tres = 3.639E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.122658\tres = 3.502E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.126301\tres = 3.371E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.129819\tres = 3.245E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.133215\tres = 3.123E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.136493\tres = 3.006E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.139658\tres = 2.893E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142712\tres = 2.784E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.145659\tres = 2.680E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148503\tres = 2.579E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.151247\tres = 2.482E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.153894\tres = 2.389E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156448\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.158911\tres = 2.213E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.161286\tres = 2.130E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.163576\tres = 2.050E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165785\tres = 1.973E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.167915\tres = 1.898E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.169968\tres = 1.827E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.171948\tres = 1.758E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173856\tres = 1.692E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.175695\tres = 1.628E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.177468\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179176\tres = 1.508E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.180823\tres = 1.451E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.182410\tres = 1.396E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.183939\tres = 1.344E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.185412\tres = 1.293E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.186831\tres = 1.244E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.188198\tres = 1.197E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.189516\tres = 1.152E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.190785\tres = 1.109E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.192007\tres = 1.067E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.193184\tres = 1.027E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194319\tres = 9.878E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195411\tres = 9.505E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196463\tres = 9.146E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197476\tres = 8.800E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198451\tres = 8.467E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199391\tres = 8.147E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200296\tres = 7.839E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201167\tres = 7.543E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202006\tres = 7.257E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202813\tres = 6.983E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203591\tres = 6.719E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204339\tres = 6.464E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.205060\tres = 6.220E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205754\tres = 5.984E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206422\tres = 5.758E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207065\tres = 5.540E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207684\tres = 5.330E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208279\tres = 5.128E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208853\tres = 4.933E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.209405\tres = 4.746E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.209936\tres = 4.566E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210448\tres = 4.393E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.210940\tres = 4.227E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211414\tres = 4.066E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211870\tres = 3.912E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212308\tres = 3.764E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212731\tres = 3.621E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213137\tres = 3.483E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213528\tres = 3.351E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.213905\tres = 3.224E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214267\tres = 3.102E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214615\tres = 2.984E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.214951\tres = 2.870E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215273\tres = 2.761E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215584\tres = 2.656E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215883\tres = 2.555E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216170\tres = 2.458E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216447\tres = 2.365E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216713\tres = 2.275E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.216969\tres = 2.189E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217216\tres = 2.105E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.217453\tres = 2.025E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217681\tres = 1.948E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.217901\tres = 1.874E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218112\tres = 1.803E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.218315\tres = 1.734E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218511\tres = 1.668E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218699\tres = 1.605E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218880\tres = 1.544E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219054\tres = 1.485E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219221\tres = 1.428E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219382\tres = 1.374E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.219537\tres = 1.322E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.219687\tres = 1.271E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.219830\tres = 1.223E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.219968\tres = 1.176E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220101\tres = 1.131E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220229\tres = 1.088E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220351\tres = 1.047E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220470\tres = 1.007E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220583\tres = 9.686E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220693\tres = 9.317E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220798\tres = 8.962E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.220899\tres = 8.620E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.220997\tres = 8.291E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221090\tres = 7.975E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221180\tres = 7.671E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221267\tres = 7.379E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221350\tres = 7.097E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221431\tres = 6.826E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221508\tres = 6.566E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221582\tres = 6.316E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221653\tres = 6.075E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221722\tres = 5.843E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221788\tres = 5.620E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221851\tres = 5.406E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.221913\tres = 5.199E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.221971\tres = 5.001E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222028\tres = 4.810E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222082\tres = 4.626E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222135\tres = 4.450E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222185\tres = 4.280E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222233\tres = 4.117E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222280\tres = 3.959E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222325\tres = 3.808E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222368\tres = 3.663E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222409\tres = 3.523E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222449\tres = 3.389E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222487\tres = 3.259E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222524\tres = 3.135E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222560\tres = 3.015E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222594\tres = 2.900E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222626\tres = 2.789E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222658\tres = 2.683E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222688\tres = 2.580E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222718\tres = 2.482E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222746\tres = 2.387E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222773\tres = 2.296E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222799\tres = 2.208E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222824\tres = 2.124E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222848\tres = 2.042E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222871\tres = 1.964E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222893\tres = 1.889E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.222914\tres = 1.817E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.222935\tres = 1.748E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.222955\tres = 1.681E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.222974\tres = 1.617E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.222992\tres = 1.555E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223009\tres = 1.496E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223026\tres = 1.438E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223043\tres = 1.383E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223058\tres = 1.331E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223073\tres = 1.280E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223088\tres = 1.231E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223102\tres = 1.184E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223115\tres = 1.138E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223128\tres = 1.095E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223140\tres = 1.053E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223152\tres = 1.013E-05\n" ] } ], @@ -1702,7 +1705,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -1712,8 +1715,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.223258\n", - "bias [pcm]: -21.5\n" + "openmoc keff = 1.223152\n", + "bias [pcm]: -32.1\n" ] } ], @@ -1759,11 +1762,23 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'pyne' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Instantiate a PyNE ACE continuous-energy cross sections library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mpyne_lib\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mLibrary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../../../../data/nndc/293.6K/U_235_293.6K.ace'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mpyne_lib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'92235.71c'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;31m# Extract the U-235 data from the library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'pyne' is not defined" + ] + } + ], "source": [ "# Instantiate a PyNE ACE continuous-energy cross sections library\n", "pyne_lib = pyne.ace.Library('../../../../data/nndc/293.6K/U_235_293.6K.ace')\n", @@ -1785,32 +1800,11 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "(9.9999999999999994e-12, 20.0)" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create a loglog plot of the U-235 continuous-energy fission cross section \n", "plt.loglog(u235.energy, fission.sigma, color='b', linewidth=1)\n", @@ -1846,7 +1840,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1878,22 +1872,11 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create plot of the H-1 scattering matrix\n", "fig = plt.subplot(121)\n", @@ -1941,7 +1924,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.6" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 023efcc10..7a575b544 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -50,14 +50,9 @@ "\n", "import openmc\n", "import openmc.mgxs\n", - "from openmc.statepoint import StatePoint\n", - "from openmc.summary import Summary\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", - "\n", "import openmoc\n", "import openmoc.process\n", - "from openmoc.compatible import get_openmoc_geometry\n", + "from openmoc.opencg_compatible import get_openmoc_geometry\n", "from openmoc.materialize import load_openmc_mgxs_lib\n", "\n", "%matplotlib inline" @@ -393,9 +388,11 @@ "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", "settings_file.output = {'tallies': False}\n", - "source_bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", - "settings_file.source = Source(Box(\n", - " source_bounds[:3], source_bounds[3:], only_fissionable=True))\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", + "bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" @@ -421,6 +418,7 @@ "plot.filename = 'materials-xy'\n", "plot.origin = [0, 0, 0]\n", "plot.pixels = [250, 250]\n", + "plot.width = [-10.71*2, -10.71*2]\n", "plot.color = 'mat'\n", "\n", "# Instantiate a PlotsFile, add Plot, and export to \"plots.xml\"\n", @@ -469,7 +467,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98\niBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+ADFxIsERzdmJYAAAQUSURBVGje7VvNleMgDA4HSqAf\nl+CDnUNKSD8uIQdT5djBgIRESPztbua9RYeZPNAnCcdBP4jLpVOnTp2+TnaexJibRzE2z4MOn4UA\nt42NAq4KMPt4wWxnyeyeYxIfxvlEGJqkGnVVV//gE5v6m1+4AZuau5cL3Xiv3vuVTbgN7jcBI1Oz\nDXn5BNxzfGMmE0+RG/NE1ewiNz3iqQZeOmE3S3d6EJmHGl8uwBy8fpkEL5UZ1O8yy+V7MRF5icyk\nZi2/1chLJiKvf0xCjV/4A0i8PhlrEu+abHJXL2Ry3izYJl6fbEpmEpkFPgnOvFlmNpPjia40oeCJ\nGs/fypvEZ13JJopnD5Dgk2DCu07CTI4nuvwyCF3RJkvUsC+A8CY80eUV/FrFj8LWuCZXwVNb/WMU\nuqJNjiyTfoHM1jfxvoqfqvj5HfyxMMfwo3hMFG81PNX10PD5BWS2votfOv7X4MHv35zCv35/1ff/\nHTz6+znx+71o+4e2/xB8a//S9r/a/qXuv439k+2/1LDDVnX/JjKPZUrDXvmfmv8ghr3tvwaKvwre\nhv/l/lPz35r/r/lvMpHjBxJ/DMImHn/kWCnrMjn+SbqyTQvHp8BmbcRfSc3I8MlYGv9dJW+UWcZv\nJk6w+FPyRplLGcEf8SuNVaNMyhtjWiXTeDKzBCDE2iwmN0HPIuJns8f12ziVG2J6HqvvKcGeJ1xK\nCnlF8VbJnMQqOQmZKL5VJVeZ50oC5eS4UXIlq6c/QbLyVMRKnWZ9p06dOnX6HjnVK4m92lS2f6fU\n1RRXZSr+wyj+S6vfKWW6rL5gVnylrdTvzNMxi/rdEP5QNdfdzQsDQmFtZRPuibRUpgkxxSIc8FEs\n4/HLdKyCqrmHmKRYQIx1eP1uYP+JGhE/Wa1+Fz+q9Tu+gBTr0frdWAoiMWmxAKV+Z9Inm+PXj+p3\nF/Hpo/pd5mjW79T8IVuYPtbyB7V+lxnsKMys1u9y/kTwrfxJyd8uNL9V6ncsf1Prd/TxHnhi5qOV\nv7J5ucxq/hvzZzY/iGU263fs+Sj4Vv7fwDfrFwr+k/qHY/jxJV6t39D3y2p48n7dTuBb9aeO/3d4\n8PtH378/+v6f+f2Bv390/8H3PyL4zP6L7v+o/0H9H+p/Uf+Pxh9w/IPGX2j8h8afaPwLx99o/I/m\nH3D+g+ZfcP7XqVOnTp2+ROD5C3j+g54/gedf6Pkbev4Hnj+i55/o+St6/oueP4Pn3+j5O3r+j/Yf\noP0PaP8F2v8B9594Ydgn/S+/sX/udP/Rif6n3n/3n+P/Rv8dtanR//nt/jm0/xbt/8X7j+8S/0n/\nM9p/jfZ/o/3naP872n+P9v/D9w/Q+w/o/Qv0/gd8/wS9/4Lev4Hv/6D3j9D7T/D9q06dOnX6jH4A\n5sDOrAejcacAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NDQ6MTYtMDQ6MDBE774l\nAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjQ0OjE2LTA0OjAwNbIGmQAAAABJRU5E\nrkJggg==\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -735,10 +733,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:44:19\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 11:57:08\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -824,20 +821,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.7900E-01 seconds\n", - " Reading cross sections = 1.3600E-01 seconds\n", - " Total time in simulation = 6.5400E+00 seconds\n", - " Time in transport only = 5.8520E+00 seconds\n", - " Time in inactive batches = 6.1600E-01 seconds\n", - " Time in active batches = 5.9240E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", + " Total time for initialization = 5.7200E-01 seconds\n", + " Reading cross sections = 1.4400E-01 seconds\n", + " Total time in simulation = 8.3367E+01 seconds\n", + " Time in transport only = 8.3321E+01 seconds\n", + " Time in inactive batches = 6.3610E+00 seconds\n", + " Time in active batches = 7.7006E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 7.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Time accumulating tallies = 4.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 7.0410E+00 seconds\n", - " Calculation Rate (inactive) = 40584.4 neutrons/second\n", - " Calculation Rate (active) = 16880.5 neutrons/second\n", + " Total time elapsed = 8.3969E+01 seconds\n", + " Calculation Rate (inactive) = 3930.20 neutrons/second\n", + " Calculation Rate (active) = 1298.60 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1329,124 +1326,124 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761746\tres = 6.349E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.732367\tres = 5.029E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.711075\tres = 3.869E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.696557\tres = 2.912E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.687673\tres = 2.044E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.683470\tres = 1.277E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.683129\tres = 6.141E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.685949\tres = 7.889E-04\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.691329\tres = 4.181E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.698755\tres = 7.875E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.707786\tres = 1.077E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.718050\tres = 1.295E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.729230\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.741058\tres = 1.559E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.753310\tres = 1.624E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.765800\tres = 1.655E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.778371\tres = 1.660E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.790897\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803273\tres = 1.611E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.815415\tres = 1.566E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.827256\tres = 1.513E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.838747\tres = 1.453E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.849847\tres = 1.390E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.860527\tres = 1.324E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.870770\tres = 1.258E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.880562\tres = 1.191E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.889897\tres = 1.125E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.898776\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.907202\tres = 9.986E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.915181\tres = 9.382E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.922724\tres = 8.803E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.929843\tres = 8.249E-03\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.936550\tres = 7.721E-03\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.942861\tres = 7.220E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.948791\tres = 6.744E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.954357\tres = 6.295E-03\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.959575\tres = 5.871E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.964461\tres = 5.472E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.969033\tres = 5.097E-03\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.973306\tres = 4.744E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.977297\tres = 4.414E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.981021\tres = 4.104E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.984493\tres = 3.814E-03\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.987729\tres = 3.543E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990742\tres = 3.290E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.993546\tres = 3.053E-03\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.996153\tres = 2.833E-03\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.998577\tres = 2.627E-03\n", - "[ NORMAL ] Iteration 50:\tk_eff = 1.000829\tres = 2.436E-03\n", - "[ NORMAL ] Iteration 51:\tk_eff = 1.002920\tres = 2.257E-03\n", - "[ NORMAL ] Iteration 52:\tk_eff = 1.004860\tres = 2.091E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 1.006661\tres = 1.937E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.008330\tres = 1.793E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.009877\tres = 1.660E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.011311\tres = 1.536E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.012639\tres = 1.421E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.013868\tres = 1.314E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.015006\tres = 1.215E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.016059\tres = 1.124E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.039E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.017933\tres = 9.596E-04\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.018766\tres = 8.865E-04\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.019535\tres = 8.188E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.562E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.020903\tres = 6.981E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.445E-04\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.022069\tres = 5.948E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.489E-04\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.023063\tres = 5.064E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.023503\tres = 4.671E-04\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.023909\tres = 4.308E-04\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.024284\tres = 3.973E-04\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.024629\tres = 3.663E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.024948\tres = 3.377E-04\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.025241\tres = 3.113E-04\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.025512\tres = 2.869E-04\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.025761\tres = 2.644E-04\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.025991\tres = 2.436E-04\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.026203\tres = 2.244E-04\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.026398\tres = 2.067E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.026578\tres = 1.904E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.754E-04\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.026895\tres = 1.615E-04\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.027036\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.027165\tres = 1.369E-04\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.027284\tres = 1.260E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.027393\tres = 1.160E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.027494\tres = 1.068E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027587\tres = 9.825E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027672\tres = 9.041E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027751\tres = 8.319E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027823\tres = 7.654E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.042E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.478E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.028007\tres = 5.959E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.481E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028106\tres = 5.041E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028150\tres = 4.636E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028190\tres = 4.263E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028227\tres = 3.920E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028261\tres = 3.604E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028292\tres = 3.314E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028321\tres = 3.047E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.801E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.575E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028394\tres = 2.367E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.175E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 1.999E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.838E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.028466\tres = 1.689E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.552E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.426E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.310E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.204E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.106E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.017E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.854317\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.801874\tres = 1.522E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.761694\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.732314\tres = 5.030E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.711020\tres = 3.870E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.696500\tres = 2.913E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.687614\tres = 2.045E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683408\tres = 1.278E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.683065\tres = 6.144E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.685884\tres = 7.908E-04\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.691262\tres = 4.178E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698685\tres = 7.872E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.707715\tres = 1.076E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.717977\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.729155\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.740981\tres = 1.559E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.753233\tres = 1.624E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765721\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.778292\tres = 1.660E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.790816\tres = 1.643E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803191\tres = 1.611E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815332\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.827174\tres = 1.513E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.838664\tres = 1.454E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849763\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860444\tres = 1.325E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.870686\tres = 1.258E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.880478\tres = 1.191E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889814\tres = 1.126E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898693\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.907118\tres = 9.987E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915098\tres = 9.383E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922641\tres = 8.804E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929760\tres = 8.250E-03\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.936467\tres = 7.722E-03\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.942778\tres = 7.220E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948709\tres = 6.745E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954275\tres = 6.296E-03\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.959493\tres = 5.872E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964380\tres = 5.473E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.968952\tres = 5.097E-03\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.973225\tres = 4.745E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977216\tres = 4.414E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.980940\tres = 4.105E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984413\tres = 3.815E-03\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.987649\tres = 3.544E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990662\tres = 3.290E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993466\tres = 3.054E-03\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.996074\tres = 2.833E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.998498\tres = 2.628E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.000750\tres = 2.436E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.002841\tres = 2.258E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.004782\tres = 2.092E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.006582\tres = 1.937E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.008252\tres = 1.794E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.009799\tres = 1.660E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.011233\tres = 1.537E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.012561\tres = 1.421E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.013791\tres = 1.315E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.014929\tres = 1.216E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.015982\tres = 1.124E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.016956\tres = 1.039E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.017857\tres = 9.598E-04\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.018689\tres = 8.867E-04\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.019459\tres = 8.190E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020170\tres = 7.563E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020827\tres = 6.983E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021433\tres = 6.446E-04\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.021993\tres = 5.949E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022510\tres = 5.490E-04\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.022987\tres = 5.065E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023427\tres = 4.672E-04\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.023834\tres = 4.309E-04\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.024208\tres = 3.974E-04\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.024554\tres = 3.664E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024872\tres = 3.378E-04\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.025166\tres = 3.114E-04\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.025436\tres = 2.870E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.025686\tres = 2.644E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.025916\tres = 2.437E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.026128\tres = 2.245E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.026323\tres = 2.068E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026502\tres = 1.905E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026668\tres = 1.754E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.026820\tres = 1.615E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.026961\tres = 1.487E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027090\tres = 1.369E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.027209\tres = 1.261E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027318\tres = 1.160E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027419\tres = 1.068E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027512\tres = 9.828E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027597\tres = 9.044E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027676\tres = 8.322E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027748\tres = 7.657E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027814\tres = 7.044E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027876\tres = 6.480E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.027932\tres = 5.961E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.027983\tres = 5.483E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028031\tres = 5.042E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028075\tres = 4.637E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028115\tres = 4.264E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028152\tres = 3.921E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028186\tres = 3.605E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028217\tres = 3.315E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028246\tres = 3.048E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028272\tres = 2.802E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028297\tres = 2.576E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028319\tres = 2.367E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028339\tres = 2.176E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028358\tres = 2.000E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028376\tres = 1.838E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028392\tres = 1.689E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028406\tres = 1.553E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028420\tres = 1.427E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028432\tres = 1.311E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028443\tres = 1.205E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028454\tres = 1.107E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028463\tres = 1.017E-05\n" ] } ], @@ -1479,8 +1476,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.028263\n", - "openmoc keff = 1.028538\n", - "bias [pcm]: 27.5\n" + "openmoc keff = 1.028463\n", + "bias [pcm]: 20.0\n" ] } ], @@ -1588,7 +1585,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 44, @@ -1599,7 +1596,7 @@ "data": { "image/png": "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\ngg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 27812f4d6..718ff8f79 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -24,10 +24,6 @@ "import numpy as np\n", "\n", "import openmc\n", - "from openmc.statepoint import StatePoint\n", - "from openmc.summary import Summary\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", "\n", "%matplotlib inline" ] @@ -305,9 +301,11 @@ "settings_file.output = {'tallies': False}\n", "settings_file.trigger_active = True\n", "settings_file.trigger_max_batches = max_batches\n", - "source_bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", - "settings_file.source = Source(space=Box(\n", - " source_bounds[:3], source_bounds[3:]))\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", + "bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" @@ -382,7 +380,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxItHQxw5fwAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDE0OjQ1OjI5LTA0OjAw0+qiEQAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxNDo0NToyOS0wNDowMKK3Gq0AAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBABF2xKKPsAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTA4VDEyOjAxOjIzLTA0OjAwqpTBSwAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0wOFQxMjowMToyMy0wNDowMNvJefcAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -567,10 +565,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:45:30\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 12:01:24\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -597,46 +594,34 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 0.51036 \n", - " 2/1 0.64436 \n", - " 3/1 0.64874 \n", - " 4/1 0.65998 \n", - " 5/1 0.68369 \n", - " 6/1 0.69058 \n", - " 7/1 0.68288 0.68673 +/- 0.00385\n", - " 8/1 0.69483 0.68943 +/- 0.00350\n", - " 9/1 0.70348 0.69294 +/- 0.00430\n", - " 10/1 0.69969 0.69429 +/- 0.00359\n", - " 11/1 0.67170 0.69052 +/- 0.00477\n", - " 12/1 0.67661 0.68854 +/- 0.00450\n", - " 13/1 0.69571 0.68943 +/- 0.00400\n", - " 14/1 0.67433 0.68776 +/- 0.00390\n", - " 15/1 0.67744 0.68672 +/- 0.00364\n", - " 16/1 0.65256 0.68362 +/- 0.00453\n", - " 17/1 0.66657 0.68220 +/- 0.00437\n", - " 18/1 0.66887 0.68117 +/- 0.00415\n", - " 19/1 0.68238 0.68126 +/- 0.00384\n", - " 20/1 0.64423 0.67879 +/- 0.00435\n", - " Triggers unsatisfied, max unc./thresh. is 1.40549 for absorption in tally 10002\n", - " The estimated number of batches is 35\n", + " 1/1 0.55921 \n", + " 2/1 0.63816 \n", + " 3/1 0.68834 \n", + " 4/1 0.71192 \n", + " 5/1 0.67935 \n", + " 6/1 0.68274 \n", + " 7/1 0.66339 0.67307 +/- 0.00967\n", + " 8/1 0.65835 0.66816 +/- 0.00743\n", + " 9/1 0.66697 0.66786 +/- 0.00527\n", + " 10/1 0.70498 0.67528 +/- 0.00847\n", + " 11/1 0.68596 0.67706 +/- 0.00714\n", + " 12/1 0.68481 0.67817 +/- 0.00614\n", + " 13/1 0.68369 0.67886 +/- 0.00536\n", + " 14/1 0.68785 0.67986 +/- 0.00483\n", + " 15/1 0.66145 0.67802 +/- 0.00470\n", + " 16/1 0.71831 0.68168 +/- 0.00561\n", + " 17/1 0.68428 0.68190 +/- 0.00512\n", + " 18/1 0.67527 0.68139 +/- 0.00474\n", + " 19/1 0.68166 0.68141 +/- 0.00439\n", + " 20/1 0.65475 0.67963 +/- 0.00446\n", + " Triggers unsatisfied, max unc./thresh. is 1.07581 for absorption in tally 10002\n", + " The estimated number of batches is 23\n", " Creating state point statepoint.020.h5...\n", - " 21/1 0.66266 0.67778 +/- 0.00419\n", - " 22/1 0.67656 0.67771 +/- 0.00393\n", - " 23/1 0.67643 0.67764 +/- 0.00371\n", - " 24/1 0.66192 0.67681 +/- 0.00361\n", - " 25/1 0.69848 0.67789 +/- 0.00359\n", - " 26/1 0.66274 0.67717 +/- 0.00349\n", - " 27/1 0.69746 0.67810 +/- 0.00345\n", - " 28/1 0.67485 0.67795 +/- 0.00330\n", - " 29/1 0.67427 0.67780 +/- 0.00316\n", - " 30/1 0.66531 0.67730 +/- 0.00308\n", - " 31/1 0.68457 0.67758 +/- 0.00297\n", - " 32/1 0.66592 0.67715 +/- 0.00289\n", - " 33/1 0.65929 0.67651 +/- 0.00286\n", - " 34/1 0.67252 0.67637 +/- 0.00276\n", - " 35/1 0.71827 0.67777 +/- 0.00301\n", - " Triggers satisfied for batch 35\n", - " Creating state point statepoint.035.h5...\n", + " 21/1 0.64538 0.67749 +/- 0.00469\n", + " 22/1 0.73275 0.68074 +/- 0.00547\n", + " 23/1 0.71674 0.68274 +/- 0.00553\n", + " Triggers satisfied for batch 23\n", + " Creating state point statepoint.023.h5...\n", "\n", " ===========================================================================\n", " ======================> SIMULATION FINISHED <======================\n", @@ -645,28 +630,28 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.5300E-01 seconds\n", - " Reading cross sections = 1.3200E-01 seconds\n", - " Total time in simulation = 1.9780E+00 seconds\n", - " Time in transport only = 1.7780E+00 seconds\n", - " Time in inactive batches = 2.1000E-01 seconds\n", - " Time in active batches = 1.7680E+00 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", + " Total time for initialization = 5.4700E-01 seconds\n", + " Reading cross sections = 1.4200E-01 seconds\n", + " Total time in simulation = 1.4279E+01 seconds\n", + " Time in transport only = 1.4263E+01 seconds\n", + " Time in inactive batches = 2.3020E+00 seconds\n", + " Time in active batches = 1.1977E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-03 seconds\n", + " Sampling source sites = 1.0000E-03 seconds\n", " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.4480E+00 seconds\n", - " Calculation Rate (inactive) = 59523.8 neutrons/second\n", - " Calculation Rate (active) = 21210.4 neutrons/second\n", + " Total time elapsed = 1.4854E+01 seconds\n", + " Calculation Rate (inactive) = 5430.06 neutrons/second\n", + " Calculation Rate (active) = 3131.00 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 0.67866 +/- 0.00337\n", - " k-effective (Track-length) = 0.67777 +/- 0.00301\n", - " k-effective (Absorption) = 0.68234 +/- 0.00332\n", - " Combined k-effective = 0.67987 +/- 0.00255\n", - " Leakage Fraction = 0.34141 +/- 0.00198\n", + " k-effective (Collision) = 0.67952 +/- 0.00434\n", + " k-effective (Track-length) = 0.68274 +/- 0.00553\n", + " k-effective (Absorption) = 0.68095 +/- 0.00369\n", + " Combined k-effective = 0.67994 +/- 0.00349\n", + " Leakage Fraction = 0.34133 +/- 0.00332\n", "\n" ] }, @@ -709,7 +694,7 @@ "statepoints = glob.glob('statepoint.*.h5')\n", "\n", "# Load the last statepoint file\n", - "sp = StatePoint(statepoints[-1])" + "sp = openmc.StatePoint(statepoints[-1])" ] }, { @@ -722,7 +707,7 @@ "outputs": [], "source": [ "# Load the summary file and link with statepoint\n", - "su = Summary('summary.h5')\n", + "su = openmc.Summary('summary.h5')\n", "sp.link_with_summary(su)" ] }, @@ -783,13 +768,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.12916959]]\n", + "[[[ 0.1508711 ]]\n", "\n", - " [[ 0.06336943]]\n", + " [[ 0.05389822]]\n", "\n", - " [[ 0.33288738]]\n", + " [[ 0.19633 ]]\n", "\n", - " [[ 0.14666158]]]\n" + " [[ 0.12963172]]]\n" ] } ], @@ -845,8 +830,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 2.37e-04\n", - " 3.06e-05\n", + " 2.34e-04\n", + " 3.54e-05\n", " \n", " \n", " 1\n", @@ -856,8 +841,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 5.78e-04\n", - " 7.46e-05\n", + " 5.71e-04\n", + " 8.62e-05\n", " \n", " \n", " 2\n", @@ -867,8 +852,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 7.00e-05\n", - " 5.15e-06\n", + " 7.03e-05\n", + " 7.05e-06\n", " \n", " \n", " 3\n", @@ -878,8 +863,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 1.85e-04\n", - " 1.28e-05\n", + " 1.87e-04\n", + " 1.76e-05\n", " \n", " \n", " 4\n", @@ -889,8 +874,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 4.04e-04\n", - " 3.09e-05\n", + " 3.67e-04\n", + " 3.61e-05\n", " \n", " \n", " 5\n", @@ -900,8 +885,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 9.85e-04\n", - " 7.54e-05\n", + " 8.94e-04\n", + " 8.80e-05\n", " \n", " \n", " 6\n", @@ -911,8 +896,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.00e-04\n", - " 5.08e-06\n", + " 1.04e-04\n", + " 5.36e-06\n", " \n", " \n", " 7\n", @@ -922,8 +907,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 2.63e-04\n", - " 1.34e-05\n", + " 2.76e-04\n", + " 1.40e-05\n", " \n", " \n", " 8\n", @@ -933,8 +918,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 5.82e-04\n", - " 5.00e-05\n", + " 6.04e-04\n", + " 5.57e-05\n", " \n", " \n", " 9\n", @@ -944,8 +929,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.42e-03\n", - " 1.22e-04\n", + " 1.47e-03\n", + " 1.36e-04\n", " \n", " \n", " 10\n", @@ -955,8 +940,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.38e-04\n", - " 1.03e-05\n", + " 1.41e-04\n", + " 6.69e-06\n", " \n", " \n", " 11\n", @@ -966,8 +951,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 3.59e-04\n", - " 2.54e-05\n", + " 3.72e-04\n", + " 1.82e-05\n", " \n", " \n", " 12\n", @@ -977,8 +962,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 6.88e-04\n", - " 4.25e-05\n", + " 6.45e-04\n", + " 4.59e-05\n", " \n", " \n", " 13\n", @@ -988,8 +973,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.68e-03\n", - " 1.04e-04\n", + " 1.57e-03\n", + " 1.12e-04\n", " \n", " \n", " 14\n", @@ -999,8 +984,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.62e-04\n", - " 7.43e-06\n", + " 1.82e-04\n", + " 9.37e-06\n", " \n", " \n", " 15\n", @@ -1010,8 +995,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 4.22e-04\n", - " 1.93e-05\n", + " 4.76e-04\n", + " 2.47e-05\n", " \n", " \n", " 16\n", @@ -1021,8 +1006,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 7.62e-04\n", - " 5.69e-05\n", + " 7.28e-04\n", + " 7.49e-05\n", " \n", " \n", " 17\n", @@ -1032,8 +1017,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.86e-03\n", - " 1.39e-04\n", + " 1.77e-03\n", + " 1.83e-04\n", " \n", " \n", " 18\n", @@ -1043,8 +1028,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.80e-04\n", - " 8.16e-06\n", + " 1.81e-04\n", + " 1.04e-05\n", " \n", " \n", " 19\n", @@ -1054,8 +1039,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 4.71e-04\n", - " 2.08e-05\n", + " 4.72e-04\n", + " 2.67e-05\n", " \n", " \n", "\n", @@ -1064,49 +1049,49 @@ "text/plain": [ " mesh 1 energy low [MeV] energy high [MeV] score mean \\\n", " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 fission 2.37e-04 \n", - "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.78e-04 \n", - "2 1 1 1 6.25e-07 2.00e+01 fission 7.00e-05 \n", - "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.85e-04 \n", - "4 1 2 1 0.00e+00 6.25e-07 fission 4.04e-04 \n", - "5 1 2 1 0.00e+00 6.25e-07 nu-fission 9.85e-04 \n", - "6 1 2 1 6.25e-07 2.00e+01 fission 1.00e-04 \n", - "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.63e-04 \n", - "8 1 3 1 0.00e+00 6.25e-07 fission 5.82e-04 \n", - "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.42e-03 \n", - "10 1 3 1 6.25e-07 2.00e+01 fission 1.38e-04 \n", - "11 1 3 1 6.25e-07 2.00e+01 nu-fission 3.59e-04 \n", - "12 1 4 1 0.00e+00 6.25e-07 fission 6.88e-04 \n", - "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.68e-03 \n", - "14 1 4 1 6.25e-07 2.00e+01 fission 1.62e-04 \n", - "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.22e-04 \n", - "16 1 5 1 0.00e+00 6.25e-07 fission 7.62e-04 \n", - "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.86e-03 \n", - "18 1 5 1 6.25e-07 2.00e+01 fission 1.80e-04 \n", - "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.71e-04 \n", + "0 1 1 1 0.00e+00 6.25e-07 fission 2.34e-04 \n", + "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.71e-04 \n", + "2 1 1 1 6.25e-07 2.00e+01 fission 7.03e-05 \n", + "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.87e-04 \n", + "4 1 2 1 0.00e+00 6.25e-07 fission 3.67e-04 \n", + "5 1 2 1 0.00e+00 6.25e-07 nu-fission 8.94e-04 \n", + "6 1 2 1 6.25e-07 2.00e+01 fission 1.04e-04 \n", + "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.76e-04 \n", + "8 1 3 1 0.00e+00 6.25e-07 fission 6.04e-04 \n", + "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.47e-03 \n", + "10 1 3 1 6.25e-07 2.00e+01 fission 1.41e-04 \n", + "11 1 3 1 6.25e-07 2.00e+01 nu-fission 3.72e-04 \n", + "12 1 4 1 0.00e+00 6.25e-07 fission 6.45e-04 \n", + "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.57e-03 \n", + "14 1 4 1 6.25e-07 2.00e+01 fission 1.82e-04 \n", + "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.76e-04 \n", + "16 1 5 1 0.00e+00 6.25e-07 fission 7.28e-04 \n", + "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.77e-03 \n", + "18 1 5 1 6.25e-07 2.00e+01 fission 1.81e-04 \n", + "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.72e-04 \n", "\n", " std. dev. \n", " \n", - "0 3.06e-05 \n", - "1 7.46e-05 \n", - "2 5.15e-06 \n", - "3 1.28e-05 \n", - "4 3.09e-05 \n", - "5 7.54e-05 \n", - "6 5.08e-06 \n", - "7 1.34e-05 \n", - "8 5.00e-05 \n", - "9 1.22e-04 \n", - "10 1.03e-05 \n", - "11 2.54e-05 \n", - "12 4.25e-05 \n", - "13 1.04e-04 \n", - "14 7.43e-06 \n", - "15 1.93e-05 \n", - "16 5.69e-05 \n", - "17 1.39e-04 \n", - "18 8.16e-06 \n", - "19 2.08e-05 " + "0 3.54e-05 \n", + "1 8.62e-05 \n", + "2 7.05e-06 \n", + "3 1.76e-05 \n", + "4 3.61e-05 \n", + "5 8.80e-05 \n", + "6 5.36e-06 \n", + "7 1.40e-05 \n", + "8 5.57e-05 \n", + "9 1.36e-04 \n", + "10 6.69e-06 \n", + "11 1.82e-05 \n", + "12 4.59e-05 \n", + "13 1.12e-04 \n", + "14 9.37e-06 \n", + "15 2.47e-05 \n", + "16 7.49e-05 \n", + "17 1.83e-04 \n", + "18 1.04e-05 \n", + "19 2.67e-05 " ] }, "execution_count": 25, @@ -1135,9 +1120,9 @@ "outputs": [ { "data": { - "image/png": "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\nhnwAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1160,7 +1145,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1169,9 +1154,9 @@ }, { "data": { - "image/png": "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\nqJlZov8PnPpCLiDrzj8AAAAASUVORK5CYII=\n", + "image/png": "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\nTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1259,72 +1244,72 @@ " 10000\n", " U-235\n", " scatter-Y0,0\n", - " 3.77e-02\n", - " 6.49e-04\n", + " 3.86e-02\n", + " 1.11e-03\n", " \n", " \n", " 1\n", " 10000\n", " U-235\n", " scatter-Y1,-1\n", - " 2.54e-04\n", - " 1.81e-04\n", + " 2.75e-04\n", + " 2.96e-04\n", " \n", " \n", " 2\n", " 10000\n", " U-235\n", " scatter-Y1,0\n", - " 3.65e-05\n", - " 2.70e-04\n", + " -5.55e-05\n", + " 4.33e-04\n", " \n", " \n", " 3\n", " 10000\n", " U-235\n", " scatter-Y1,1\n", - " -1.70e-04\n", - " 2.19e-04\n", + " -4.22e-04\n", + " 3.51e-04\n", " \n", " \n", " 4\n", " 10000\n", " U-235\n", " scatter-Y2,-2\n", - " 7.47e-05\n", - " 1.54e-04\n", + " 5.88e-05\n", + " 2.04e-04\n", " \n", " \n", " 5\n", " 10000\n", " U-235\n", " scatter-Y2,-1\n", - " -2.35e-04\n", - " 1.34e-04\n", + " 1.00e-04\n", + " 2.49e-04\n", " \n", " \n", " 6\n", " 10000\n", " U-235\n", " scatter-Y2,0\n", - " -5.51e-05\n", - " 1.79e-04\n", + " -8.09e-05\n", + " 1.59e-04\n", " \n", " \n", " 7\n", " 10000\n", " U-235\n", " scatter-Y2,1\n", - " -1.27e-04\n", - " 1.54e-04\n", + " 1.93e-04\n", + " 2.14e-04\n", " \n", " \n", " 8\n", " 10000\n", " U-235\n", " scatter-Y2,2\n", - " 1.72e-04\n", - " 1.40e-04\n", + " 1.12e-04\n", + " 1.86e-04\n", " \n", " \n", " 9\n", @@ -1332,71 +1317,71 @@ " U-238\n", " scatter-Y0,0\n", " 2.34e+00\n", - " 7.62e-03\n", + " 1.34e-02\n", " \n", " \n", " 10\n", " 10000\n", " U-238\n", " scatter-Y1,-1\n", - " 2.46e-02\n", - " 1.71e-03\n", + " 2.32e-02\n", + " 2.97e-03\n", " \n", " \n", " 11\n", " 10000\n", " U-238\n", " scatter-Y1,0\n", - " 1.15e-03\n", - " 2.17e-03\n", + " 7.50e-04\n", + " 2.55e-03\n", " \n", " \n", " 12\n", " 10000\n", " U-238\n", " scatter-Y1,1\n", - " -2.39e-02\n", - " 2.15e-03\n", + " -2.73e-02\n", + " 3.28e-03\n", " \n", " \n", " 13\n", " 10000\n", " U-238\n", " scatter-Y2,-2\n", - " -3.92e-03\n", - " 1.38e-03\n", + " -2.36e-03\n", + " 1.21e-03\n", " \n", " \n", " 14\n", " 10000\n", " U-238\n", " scatter-Y2,-1\n", - " -1.19e-03\n", - " 1.58e-03\n", + " -1.80e-04\n", + " 1.49e-03\n", " \n", " \n", " 15\n", " 10000\n", " U-238\n", " scatter-Y2,0\n", - " 3.22e-03\n", - " 1.45e-03\n", + " 3.23e-03\n", + " 2.25e-03\n", " \n", " \n", " 16\n", " 10000\n", " U-238\n", " scatter-Y2,1\n", - " 1.27e-04\n", - " 9.70e-04\n", + " 3.75e-03\n", + " 1.97e-03\n", " \n", " \n", " 17\n", " 10000\n", " U-238\n", " scatter-Y2,2\n", - " -2.70e-03\n", - " 1.21e-03\n", + " 2.07e-03\n", + " 1.60e-03\n", " \n", " \n", "\n", @@ -1404,24 +1389,24 @@ ], "text/plain": [ " cell nuclide score mean std. dev.\n", - "0 10000 U-235 scatter-Y0,0 3.77e-02 6.49e-04\n", - "1 10000 U-235 scatter-Y1,-1 2.54e-04 1.81e-04\n", - "2 10000 U-235 scatter-Y1,0 3.65e-05 2.70e-04\n", - "3 10000 U-235 scatter-Y1,1 -1.70e-04 2.19e-04\n", - "4 10000 U-235 scatter-Y2,-2 7.47e-05 1.54e-04\n", - "5 10000 U-235 scatter-Y2,-1 -2.35e-04 1.34e-04\n", - "6 10000 U-235 scatter-Y2,0 -5.51e-05 1.79e-04\n", - "7 10000 U-235 scatter-Y2,1 -1.27e-04 1.54e-04\n", - "8 10000 U-235 scatter-Y2,2 1.72e-04 1.40e-04\n", - "9 10000 U-238 scatter-Y0,0 2.34e+00 7.62e-03\n", - "10 10000 U-238 scatter-Y1,-1 2.46e-02 1.71e-03\n", - "11 10000 U-238 scatter-Y1,0 1.15e-03 2.17e-03\n", - "12 10000 U-238 scatter-Y1,1 -2.39e-02 2.15e-03\n", - "13 10000 U-238 scatter-Y2,-2 -3.92e-03 1.38e-03\n", - "14 10000 U-238 scatter-Y2,-1 -1.19e-03 1.58e-03\n", - "15 10000 U-238 scatter-Y2,0 3.22e-03 1.45e-03\n", - "16 10000 U-238 scatter-Y2,1 1.27e-04 9.70e-04\n", - "17 10000 U-238 scatter-Y2,2 -2.70e-03 1.21e-03" + "0 10000 U-235 scatter-Y0,0 3.86e-02 1.11e-03\n", + "1 10000 U-235 scatter-Y1,-1 2.75e-04 2.96e-04\n", + "2 10000 U-235 scatter-Y1,0 -5.55e-05 4.33e-04\n", + "3 10000 U-235 scatter-Y1,1 -4.22e-04 3.51e-04\n", + "4 10000 U-235 scatter-Y2,-2 5.88e-05 2.04e-04\n", + "5 10000 U-235 scatter-Y2,-1 1.00e-04 2.49e-04\n", + "6 10000 U-235 scatter-Y2,0 -8.09e-05 1.59e-04\n", + "7 10000 U-235 scatter-Y2,1 1.93e-04 2.14e-04\n", + "8 10000 U-235 scatter-Y2,2 1.12e-04 1.86e-04\n", + "9 10000 U-238 scatter-Y0,0 2.34e+00 1.34e-02\n", + "10 10000 U-238 scatter-Y1,-1 2.32e-02 2.97e-03\n", + "11 10000 U-238 scatter-Y1,0 7.50e-04 2.55e-03\n", + "12 10000 U-238 scatter-Y1,1 -2.73e-02 3.28e-03\n", + "13 10000 U-238 scatter-Y2,-2 -2.36e-03 1.21e-03\n", + "14 10000 U-238 scatter-Y2,-1 -1.80e-04 1.49e-03\n", + "15 10000 U-238 scatter-Y2,0 3.23e-03 2.25e-03\n", + "16 10000 U-238 scatter-Y2,1 3.75e-03 1.97e-03\n", + "17 10000 U-238 scatter-Y2,2 2.07e-03 1.60e-03" ] }, "execution_count": 29, @@ -1455,8 +1440,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00121338 0.00761835]\n", - " [ 0.00013952 0.00064888]]]\n" + "[[[ 0.00159927 0.01341406]\n", + " [ 0.00018637 0.00111048]]]\n" ] } ], @@ -1524,13 +1509,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.03284934]]]\n" + "[[[ 0.05767856]]]\n" ] } ], "source": [ "# Get the relative error for the scattering reaction rates in\n", - "# the first 30 distribcell instances \n", + "# the first 10 distribcell instances \n", "data = tally.get_values(scores=['scatter'], filters=['distribcell'],\n", " filter_bins=[(i,) for i in range(10)], value='rel_err')\n", "print(data)" @@ -1569,141 +1554,141 @@ " 558\n", " 279\n", " absorption\n", - " 7.14e-05\n", - " 8.26e-06\n", + " 8.19e-05\n", + " 7.82e-06\n", " \n", " \n", " 559\n", " 279\n", " scatter\n", - " 1.25e-02\n", - " 5.75e-04\n", + " 1.33e-02\n", + " 6.19e-04\n", " \n", " \n", " 560\n", " 280\n", " absorption\n", - " 8.50e-05\n", - " 6.16e-06\n", + " 1.00e-04\n", + " 7.93e-06\n", " \n", " \n", " 561\n", " 280\n", " scatter\n", - " 1.38e-02\n", - " 4.58e-04\n", + " 1.40e-02\n", + " 5.61e-04\n", " \n", " \n", " 562\n", " 281\n", " absorption\n", - " 1.04e-04\n", - " 7.54e-06\n", + " 9.52e-05\n", + " 7.08e-06\n", " \n", " \n", " 563\n", " 281\n", " scatter\n", - " 1.55e-02\n", - " 4.15e-04\n", + " 1.51e-02\n", + " 6.50e-04\n", " \n", " \n", " 564\n", " 282\n", " absorption\n", - " 1.22e-04\n", - " 9.98e-06\n", + " 9.85e-05\n", + " 9.47e-06\n", " \n", " \n", " 565\n", " 282\n", " scatter\n", - " 1.68e-02\n", - " 5.73e-04\n", + " 1.53e-02\n", + " 4.63e-04\n", " \n", " \n", " 566\n", " 283\n", " absorption\n", - " 1.14e-04\n", - " 8.02e-06\n", + " 1.08e-04\n", + " 1.34e-05\n", " \n", " \n", " 567\n", " 283\n", " scatter\n", - " 1.66e-02\n", - " 5.44e-04\n", + " 1.65e-02\n", + " 7.04e-04\n", " \n", " \n", " 568\n", " 284\n", " absorption\n", - " 1.06e-04\n", - " 8.37e-06\n", + " 1.13e-04\n", + " 7.91e-06\n", " \n", " \n", " 569\n", " 284\n", " scatter\n", - " 1.64e-02\n", - " 5.14e-04\n", + " 1.67e-02\n", + " 5.51e-04\n", " \n", " \n", " 570\n", " 285\n", " absorption\n", " 1.23e-04\n", - " 9.19e-06\n", + " 9.53e-06\n", " \n", " \n", " 571\n", " 285\n", " scatter\n", - " 1.70e-02\n", - " 5.34e-04\n", + " 1.88e-02\n", + " 7.25e-04\n", " \n", " \n", " 572\n", " 286\n", " absorption\n", - " 1.14e-04\n", - " 6.70e-06\n", + " 1.44e-04\n", + " 1.34e-05\n", " \n", " \n", " 573\n", " 286\n", " scatter\n", - " 1.75e-02\n", - " 5.68e-04\n", + " 1.90e-02\n", + " 7.07e-04\n", " \n", " \n", " 574\n", " 287\n", " absorption\n", - " 1.14e-04\n", - " 8.10e-06\n", + " 1.26e-04\n", + " 8.66e-06\n", " \n", " \n", " 575\n", " 287\n", " scatter\n", - " 1.72e-02\n", - " 4.93e-04\n", + " 1.97e-02\n", + " 7.23e-04\n", " \n", " \n", " 576\n", " 288\n", " absorption\n", - " 1.06e-04\n", - " 1.07e-05\n", + " 1.25e-04\n", + " 9.59e-06\n", " \n", " \n", " 577\n", " 288\n", " scatter\n", - " 1.72e-02\n", - " 7.73e-04\n", + " 2.01e-02\n", + " 6.75e-04\n", " \n", " \n", "\n", @@ -1711,26 +1696,26 @@ ], "text/plain": [ " distribcell score mean std. dev.\n", - "558 279 absorption 7.14e-05 8.26e-06\n", - "559 279 scatter 1.25e-02 5.75e-04\n", - "560 280 absorption 8.50e-05 6.16e-06\n", - "561 280 scatter 1.38e-02 4.58e-04\n", - "562 281 absorption 1.04e-04 7.54e-06\n", - "563 281 scatter 1.55e-02 4.15e-04\n", - "564 282 absorption 1.22e-04 9.98e-06\n", - "565 282 scatter 1.68e-02 5.73e-04\n", - "566 283 absorption 1.14e-04 8.02e-06\n", - "567 283 scatter 1.66e-02 5.44e-04\n", - "568 284 absorption 1.06e-04 8.37e-06\n", - "569 284 scatter 1.64e-02 5.14e-04\n", - "570 285 absorption 1.23e-04 9.19e-06\n", - "571 285 scatter 1.70e-02 5.34e-04\n", - "572 286 absorption 1.14e-04 6.70e-06\n", - "573 286 scatter 1.75e-02 5.68e-04\n", - "574 287 absorption 1.14e-04 8.10e-06\n", - "575 287 scatter 1.72e-02 4.93e-04\n", - "576 288 absorption 1.06e-04 1.07e-05\n", - "577 288 scatter 1.72e-02 7.73e-04" + "558 279 absorption 8.19e-05 7.82e-06\n", + "559 279 scatter 1.33e-02 6.19e-04\n", + "560 280 absorption 1.00e-04 7.93e-06\n", + "561 280 scatter 1.40e-02 5.61e-04\n", + "562 281 absorption 9.52e-05 7.08e-06\n", + "563 281 scatter 1.51e-02 6.50e-04\n", + "564 282 absorption 9.85e-05 9.47e-06\n", + "565 282 scatter 1.53e-02 4.63e-04\n", + "566 283 absorption 1.08e-04 1.34e-05\n", + "567 283 scatter 1.65e-02 7.04e-04\n", + "568 284 absorption 1.13e-04 7.91e-06\n", + "569 284 scatter 1.67e-02 5.51e-04\n", + "570 285 absorption 1.23e-04 9.53e-06\n", + "571 285 scatter 1.88e-02 7.25e-04\n", + "572 286 absorption 1.44e-04 1.34e-05\n", + "573 286 scatter 1.90e-02 7.07e-04\n", + "574 287 absorption 1.26e-04 8.66e-06\n", + "575 287 scatter 1.97e-02 7.23e-04\n", + "576 288 absorption 1.25e-04 9.59e-06\n", + "577 288 scatter 2.01e-02 6.75e-04" ] }, "execution_count": 33, @@ -1806,357 +1791,357 @@ " \n", " \n", " \n", - " 0\n", + " 558\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", " 16\n", + " 9\n", " 0\n", " 10002\n", " 10000\n", - " 0\n", + " 279\n", " absorption\n", - " 1.30e-04\n", - " 8.67e-06\n", + " 8.19e-05\n", + " 7.82e-06\n", " \n", " \n", - " 1\n", + " 559\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", " 16\n", + " 9\n", " 0\n", " 10002\n", " 10000\n", - " 0\n", + " 279\n", " scatter\n", - " 1.98e-02\n", + " 1.33e-02\n", + " 6.19e-04\n", + " \n", + " \n", + " 560\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 8\n", + " 0\n", + " 10002\n", + " 10000\n", + " 280\n", + " absorption\n", + " 1.00e-04\n", + " 7.93e-06\n", + " \n", + " \n", + " 561\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 8\n", + " 0\n", + " 10002\n", + " 10000\n", + " 280\n", + " scatter\n", + " 1.40e-02\n", + " 5.61e-04\n", + " \n", + " \n", + " 562\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 7\n", + " 0\n", + " 10002\n", + " 10000\n", + " 281\n", + " absorption\n", + " 9.52e-05\n", + " 7.08e-06\n", + " \n", + " \n", + " 563\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 7\n", + " 0\n", + " 10002\n", + " 10000\n", + " 281\n", + " scatter\n", + " 1.51e-02\n", " 6.50e-04\n", " \n", " \n", - " 2\n", + " 564\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 15\n", - " 0\n", - " 10002\n", - " 10000\n", - " 1\n", - " absorption\n", - " 2.24e-04\n", - " 1.44e-05\n", - " \n", - " \n", - " 3\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 15\n", - " 0\n", - " 10002\n", - " 10000\n", - " 1\n", - " scatter\n", - " 3.00e-02\n", - " 8.80e-04\n", - " \n", - " \n", - " 4\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 14\n", - " 0\n", - " 10002\n", - " 10000\n", - " 2\n", - " absorption\n", - " 3.16e-04\n", - " 2.15e-05\n", - " \n", - " \n", - " 5\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 14\n", - " 0\n", - " 10002\n", - " 10000\n", - " 2\n", - " scatter\n", - " 3.90e-02\n", - " 1.25e-03\n", - " \n", - " \n", - " 6\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 13\n", - " 0\n", - " 10002\n", - " 10000\n", - " 3\n", - " absorption\n", - " 3.78e-04\n", - " 1.45e-05\n", - " \n", - " \n", - " 7\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 13\n", - " 0\n", - " 10002\n", - " 10000\n", - " 3\n", - " scatter\n", - " 4.86e-02\n", - " 1.24e-03\n", - " \n", - " \n", - " 8\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 12\n", - " 0\n", - " 10002\n", - " 10000\n", - " 4\n", - " absorption\n", - " 4.21e-04\n", - " 2.14e-05\n", - " \n", - " \n", - " 9\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 12\n", - " 0\n", - " 10002\n", - " 10000\n", - " 4\n", - " scatter\n", - " 5.52e-02\n", - " 9.85e-04\n", - " \n", - " \n", - " 10\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 11\n", - " 0\n", - " 10002\n", - " 10000\n", - " 5\n", - " absorption\n", - " 4.86e-04\n", - " 2.62e-05\n", - " \n", - " \n", - " 11\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 11\n", - " 0\n", - " 10002\n", - " 10000\n", - " 5\n", - " scatter\n", - " 6.30e-02\n", - " 1.35e-03\n", - " \n", - " \n", - " 12\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 10\n", - " 0\n", - " 10002\n", - " 10000\n", + " 16\n", " 6\n", - " absorption\n", - " 5.30e-04\n", - " 1.92e-05\n", - " \n", - " \n", - " 13\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 10\n", " 0\n", " 10002\n", " 10000\n", + " 282\n", + " absorption\n", + " 9.85e-05\n", + " 9.47e-06\n", + " \n", + " \n", + " 565\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", " 6\n", - " scatter\n", - " 6.93e-02\n", - " 1.30e-03\n", - " \n", - " \n", - " 14\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 9\n", " 0\n", " 10002\n", " 10000\n", - " 7\n", + " 282\n", + " scatter\n", + " 1.53e-02\n", + " 4.63e-04\n", + " \n", + " \n", + " 566\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 5\n", + " 0\n", + " 10002\n", + " 10000\n", + " 283\n", " absorption\n", - " 5.86e-04\n", - " 2.02e-05\n", + " 1.08e-04\n", + " 1.34e-05\n", " \n", " \n", - " 15\n", + " 567\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 9\n", + " 16\n", + " 5\n", " 0\n", " 10002\n", " 10000\n", - " 7\n", + " 283\n", " scatter\n", - " 7.57e-02\n", - " 1.40e-03\n", + " 1.65e-02\n", + " 7.04e-04\n", " \n", " \n", - " 16\n", + " 568\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 8\n", + " 16\n", + " 4\n", " 0\n", " 10002\n", " 10000\n", - " 8\n", + " 284\n", " absorption\n", - " 6.30e-04\n", - " 2.35e-05\n", + " 1.13e-04\n", + " 7.91e-06\n", " \n", " \n", - " 17\n", + " 569\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 8\n", + " 16\n", + " 4\n", " 0\n", " 10002\n", " 10000\n", - " 8\n", + " 284\n", " scatter\n", - " 8.09e-02\n", - " 1.49e-03\n", + " 1.67e-02\n", + " 5.51e-04\n", " \n", " \n", - " 18\n", + " 570\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 7\n", + " 16\n", + " 3\n", " 0\n", " 10002\n", " 10000\n", - " 9\n", + " 285\n", " absorption\n", - " 7.10e-04\n", - " 2.23e-05\n", + " 1.23e-04\n", + " 9.53e-06\n", " \n", " \n", - " 19\n", + " 571\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 7\n", + " 16\n", + " 3\n", " 0\n", " 10002\n", " 10000\n", - " 9\n", + " 285\n", " scatter\n", - " 8.94e-02\n", - " 1.37e-03\n", + " 1.88e-02\n", + " 7.25e-04\n", + " \n", + " \n", + " 572\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 2\n", + " 0\n", + " 10002\n", + " 10000\n", + " 286\n", + " absorption\n", + " 1.44e-04\n", + " 1.34e-05\n", + " \n", + " \n", + " 573\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 2\n", + " 0\n", + " 10002\n", + " 10000\n", + " 286\n", + " scatter\n", + " 1.90e-02\n", + " 7.07e-04\n", + " \n", + " \n", + " 574\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 1\n", + " 0\n", + " 10002\n", + " 10000\n", + " 287\n", + " absorption\n", + " 1.26e-04\n", + " 8.66e-06\n", + " \n", + " \n", + " 575\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 1\n", + " 0\n", + " 10002\n", + " 10000\n", + " 287\n", + " scatter\n", + " 1.97e-02\n", + " 7.23e-04\n", + " \n", + " \n", + " 576\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 0\n", + " 0\n", + " 10002\n", + " 10000\n", + " 288\n", + " absorption\n", + " 1.25e-04\n", + " 9.59e-06\n", + " \n", + " \n", + " 577\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 0\n", + " 0\n", + " 10002\n", + " 10000\n", + " 288\n", + " scatter\n", + " 2.01e-02\n", + " 6.75e-04\n", " \n", " \n", "\n", "
" ], "text/plain": [ - " level 1 level 2 level 3 distribcell score \\\n", - " cell univ lat cell univ \n", - " id id id x y z id id \n", - "0 10003 0 10001 0 16 0 10002 10000 0 absorption \n", - "1 10003 0 10001 0 16 0 10002 10000 0 scatter \n", - "2 10003 0 10001 0 15 0 10002 10000 1 absorption \n", - "3 10003 0 10001 0 15 0 10002 10000 1 scatter \n", - "4 10003 0 10001 0 14 0 10002 10000 2 absorption \n", - "5 10003 0 10001 0 14 0 10002 10000 2 scatter \n", - "6 10003 0 10001 0 13 0 10002 10000 3 absorption \n", - "7 10003 0 10001 0 13 0 10002 10000 3 scatter \n", - "8 10003 0 10001 0 12 0 10002 10000 4 absorption \n", - "9 10003 0 10001 0 12 0 10002 10000 4 scatter \n", - "10 10003 0 10001 0 11 0 10002 10000 5 absorption \n", - "11 10003 0 10001 0 11 0 10002 10000 5 scatter \n", - "12 10003 0 10001 0 10 0 10002 10000 6 absorption \n", - "13 10003 0 10001 0 10 0 10002 10000 6 scatter \n", - "14 10003 0 10001 0 9 0 10002 10000 7 absorption \n", - "15 10003 0 10001 0 9 0 10002 10000 7 scatter \n", - "16 10003 0 10001 0 8 0 10002 10000 8 absorption \n", - "17 10003 0 10001 0 8 0 10002 10000 8 scatter \n", - "18 10003 0 10001 0 7 0 10002 10000 9 absorption \n", - "19 10003 0 10001 0 7 0 10002 10000 9 scatter \n", + " level 1 level 2 level 3 distribcell score \\\n", + " cell univ lat cell univ \n", + " id id id x y z id id \n", + "558 10003 0 10001 16 9 0 10002 10000 279 absorption \n", + "559 10003 0 10001 16 9 0 10002 10000 279 scatter \n", + "560 10003 0 10001 16 8 0 10002 10000 280 absorption \n", + "561 10003 0 10001 16 8 0 10002 10000 280 scatter \n", + "562 10003 0 10001 16 7 0 10002 10000 281 absorption \n", + "563 10003 0 10001 16 7 0 10002 10000 281 scatter \n", + "564 10003 0 10001 16 6 0 10002 10000 282 absorption \n", + "565 10003 0 10001 16 6 0 10002 10000 282 scatter \n", + "566 10003 0 10001 16 5 0 10002 10000 283 absorption \n", + "567 10003 0 10001 16 5 0 10002 10000 283 scatter \n", + "568 10003 0 10001 16 4 0 10002 10000 284 absorption \n", + "569 10003 0 10001 16 4 0 10002 10000 284 scatter \n", + "570 10003 0 10001 16 3 0 10002 10000 285 absorption \n", + "571 10003 0 10001 16 3 0 10002 10000 285 scatter \n", + "572 10003 0 10001 16 2 0 10002 10000 286 absorption \n", + "573 10003 0 10001 16 2 0 10002 10000 286 scatter \n", + "574 10003 0 10001 16 1 0 10002 10000 287 absorption \n", + "575 10003 0 10001 16 1 0 10002 10000 287 scatter \n", + "576 10003 0 10001 16 0 0 10002 10000 288 absorption \n", + "577 10003 0 10001 16 0 0 10002 10000 288 scatter \n", "\n", - " mean std. dev. \n", - " \n", - " \n", - "0 1.30e-04 8.67e-06 \n", - "1 1.98e-02 6.50e-04 \n", - "2 2.24e-04 1.44e-05 \n", - "3 3.00e-02 8.80e-04 \n", - "4 3.16e-04 2.15e-05 \n", - "5 3.90e-02 1.25e-03 \n", - "6 3.78e-04 1.45e-05 \n", - "7 4.86e-02 1.24e-03 \n", - "8 4.21e-04 2.14e-05 \n", - "9 5.52e-02 9.85e-04 \n", - "10 4.86e-04 2.62e-05 \n", - "11 6.30e-02 1.35e-03 \n", - "12 5.30e-04 1.92e-05 \n", - "13 6.93e-02 1.30e-03 \n", - "14 5.86e-04 2.02e-05 \n", - "15 7.57e-02 1.40e-03 \n", - "16 6.30e-04 2.35e-05 \n", - "17 8.09e-02 1.49e-03 \n", - "18 7.10e-04 2.23e-05 \n", - "19 8.94e-02 1.37e-03 " + " mean std. dev. \n", + " \n", + " \n", + "558 8.19e-05 7.82e-06 \n", + "559 1.33e-02 6.19e-04 \n", + "560 1.00e-04 7.93e-06 \n", + "561 1.40e-02 5.61e-04 \n", + "562 9.52e-05 7.08e-06 \n", + "563 1.51e-02 6.50e-04 \n", + "564 9.85e-05 9.47e-06 \n", + "565 1.53e-02 4.63e-04 \n", + "566 1.08e-04 1.34e-05 \n", + "567 1.65e-02 7.04e-04 \n", + "568 1.13e-04 7.91e-06 \n", + "569 1.67e-02 5.51e-04 \n", + "570 1.23e-04 9.53e-06 \n", + "571 1.88e-02 7.25e-04 \n", + "572 1.44e-04 1.34e-05 \n", + "573 1.90e-02 7.07e-04 \n", + "574 1.26e-04 8.66e-06 \n", + "575 1.97e-02 7.23e-04 \n", + "576 1.25e-04 9.59e-06 \n", + "577 2.01e-02 6.75e-04 " ] }, "execution_count": 34, @@ -2169,7 +2154,7 @@ "df = tally.get_pandas_dataframe(summary=su, nuclides=False)\n", "\n", "# Print the last twenty rows in the dataframe\n", - "df.head(20)" + "df.tail(20)" ] }, { @@ -2209,38 +2194,38 @@ " \n", " \n", " mean\n", - " 4.15e-04\n", - " 1.71e-05\n", + " 4.19e-04\n", + " 2.24e-05\n", " \n", " \n", " std\n", - " 2.41e-04\n", - " 6.82e-06\n", + " 2.42e-04\n", + " 9.14e-06\n", " \n", " \n", " min\n", - " 1.78e-05\n", - " 2.81e-06\n", + " 1.90e-05\n", + " 3.44e-06\n", " \n", " \n", " 25%\n", - " 2.06e-04\n", - " 1.16e-05\n", + " 2.02e-04\n", + " 1.56e-05\n", " \n", " \n", " 50%\n", - " 4.03e-04\n", - " 1.71e-05\n", + " 4.05e-04\n", + " 2.20e-05\n", " \n", " \n", " 75%\n", - " 6.05e-04\n", - " 2.19e-05\n", + " 6.07e-04\n", + " 2.89e-05\n", " \n", " \n", " max\n", - " 9.35e-04\n", - " 4.54e-05\n", + " 9.19e-04\n", + " 4.95e-05\n", " \n", " \n", "\n", @@ -2251,13 +2236,13 @@ " \n", " \n", "count 2.89e+02 2.89e+02\n", - "mean 4.15e-04 1.71e-05\n", - "std 2.41e-04 6.82e-06\n", - "min 1.78e-05 2.81e-06\n", - "25% 2.06e-04 1.16e-05\n", - "50% 4.03e-04 1.71e-05\n", - "75% 6.05e-04 2.19e-05\n", - "max 9.35e-04 4.54e-05" + "mean 4.19e-04 2.24e-05\n", + "std 2.42e-04 9.14e-06\n", + "min 1.90e-05 3.44e-06\n", + "25% 2.02e-04 1.56e-05\n", + "50% 4.05e-04 2.20e-05\n", + "75% 6.07e-04 2.89e-05\n", + "max 9.19e-04 4.95e-05" ] }, "execution_count": 35, @@ -2292,15 +2277,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 1.39844745394e-41\n" + "Mann-Whitney Test p-value: 0.607166663014\n" ] } ], "source": [ - "# Extract tally data from pins in the pins divided along y=x diagonal \n", + "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", - "lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]\n", - "upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]\n", + "lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n", + "upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n", "lower = lower[lower['score'] == 'absorption']\n", "upper = upper[upper['score'] == 'absorption']\n", "\n", @@ -2330,15 +2315,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.902458041178\n" + "Mann-Whitney Test p-value: 1.2077327566e-41\n" ] } ], "source": [ - "# Extract tally data from pins in the pins divided along y=-x diagonal\n", + "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", - "lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n", - "upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n", + "lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]\n", + "upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]\n", "lower = lower[lower['score'] == 'absorption']\n", "upper = upper[upper['score'] == 'absorption']\n", "\n", @@ -2376,7 +2361,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2385,9 +2370,9 @@ }, { "data": { - "image/png": "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\nphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRo\nRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkpuoWaMxs\njpndaWY/MbMeM+ssU+5sM3vIzH5qZpcltn/SzHaa2QNm9s9m1jF5tRcRkUrVs0WzBrjL3Y8Fvglc\nXlrAzGYBNwFvAE4AVpjZceHlO4ET3H0x8HDa/o1m+/bt9a5CRVTP6mmEOoLqWW2NUs9qqWegOQ/4\nTPj5M8Cfp5Q5DXjY3Xe7+wFga9gPd7/L3Q+Gct8DjqhxfWuuUf7zqZ7V0wh1BNWz2hqlntVSz0Dz\nUnd/CsDdnwRemlLmcGBP4vljYVup9wJfr3oNRURkwmbX8uBm9g3gkOQmwIH/kVLcx3mOvwUOuPuW\n8ewvIiK1Ze7jur5P/MRmO4Hl7v6Umb0M6HX340vKLAOucvezw/M1gLv7teH5u4ELgNe5+74RzlWf\nNyki0uDc3SZ6jJq2aEbxFeDdwLXAXwJfTimzAzjazOYDTwDvAFZAlI0GfBj4ryMFGajOByUiIuNT\nzxbNXOCfgCOB3cDb3f23ZnYosNHd/yyUOxu4kWg8aZO7XxO2PwxkgF+FQ37P3S+a5LchIiKjqFug\nERGRmWHarAwwlSeAljtnSZl1ZvZwOP/isexb73qa2RFm9k0z+7GZ/dDMLp6K9Uy8NsvM7jOzr0zV\neppZp5l9Lvyf/LGZvXKK1vODZvYjM3vQzG43s0w96mhmx5rZf5rZ82b2N2PZdyrUc6r9DY30eYbX\nx/Y35O7T4kE01vOR8PNlwDUpZWYBjwDzgWbgAeC48NqZwKzw8zXA/65SvcqeM1HmHOBfw8+vJOoG\nrGjfKn5+E6nny4DF4ec24CdTsZ6J1z8I/CPwlRr+f5xQPYHNwHvCz7OBjqlWT+Aw4FEgE55vA95V\npzr+EfBfgLXA34xl3ylSz6n2N5Raz8TrY/obmjYtGqbuBNCy5yyp+22hHvcAnWZ2SIX7Vsu46+nu\nT7r7A2H7c8BO0uc71bWeEH1zBM4F/qFG9ZtwPUNr+rXufmt47QV3/91Uq2d4rQloNbPZQAvwy3rU\n0d2fdvd7gRfGuu9UqOdU+xsa4fMc19/QdAo0U3UCaCXnLFem0vpWw3jq+XhpGTNbACwG7ql6DdPr\nMNZ63kCUrVjrwcmJ1PMo4GkzuzV0T2wws/xUq6e7/xK4HvhF2PZbd7+rTnWsxb5jVZVzTZG/oZGM\n+W+ooQKNmX0j9AXHjx+Gf9+cUryRJ4A2ZDq2mbUBnwcuCd/KphQzeyPwVPjmaEzdz3k2sBT4O3df\nCvyBaG3AKcXMuoi+Cc8n6kZrM7O/qG+tGtt0/Ruq5zyaMXP3s8q9ZmZPhW6ceALoQEqxx4F5iedH\nhG3xMd5N1CR8XXVqPPo5E2WOTCmTqWDfaplIPQldJ58HPuvuaXOipkI93wq82czOBfJAu5nd5u7v\nmmL1BNjj7t8PP3+eaNyxFiZSzzOBR9391wBm9gXg1UC1v6RVUsda7DtWEzrXFPsbKuc1jOdvqBaD\nTfV4ECUDXBZ+LpcM0ERhECxDNAh2fHjtbODHwEuqXK+y50yUOZfCYOsyCoOto+47FeoZnt8GfGoS\nfs8TqmeizOnUNhlgop/nt4BF4ecrgWunWj2J+vp/COSIvtluBt5fjzomyl4JXDqefetZz7BtyvwN\njVTPxGsV/w3V9A1N5gOYC9xFlK1xJ9AVth8K/Eui3NmhzMPAmsT2h4kmjt4XHjdXsW7DzgmsAt6X\nKHNT+OX/AFg6Wn1r9BmOtZ5LwrbXAC+G/7D3h8/v7ClUz6Upx6hpoKnC7/0UopUxHgC+AHRO0Xpe\nSTRw/SBREk5zPepItKbiHuC3wK+Jxo3ayu1br8+yXD2n2t/QSJ9n4hgV/w1pwqaIiNRUQyUDiIhI\n41GgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgEakSM5sfblR2q0U3\n4PtHM3u9md0dnv+xmbWY2SYz+56Z3Wtmb0rs+x9m9v3wWBa2n25mvYmboH22vu9SZOy0MoBIlZjZ\nfKIlPRa7e7+ZfR94wN3/KgSU9wL9wI/dfYtFd4HtI1oS3oGD7r7fzI4G7nD3U83sdOBLwCuAJ4Hv\nAB9y9/+c/HcoMj4NtXqzSAP4ubv3h59/DPx7+PlHwAKilXLfZGYfDtvjFbqfAG4Kt0l+ETgmccw+\nd38CwMweCMdRoJGGoUAjUl37Ej8fTDw/SPT39gLwFnd/OLmTmV0JPOnuJ5tZE7C3zDFfRH+30mA0\nRiNSXaPdCKoHuHiocNSCAegkatUAvItoKXeRaUGBRqS6vMzP8fO1QHN8h1jg4+G1m4F3m9n9wCLg\n9xUcX6QhKBlARERqSi0aERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUa\nERGpqf8HTKaAIu8FxywAAAAASUVORK5CYII=\n", + "image/png": "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\nulZkiAAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2414,7 +2399,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2423,9 +2408,9 @@ }, { "data": { - "image/png": "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\n059Yv3498+bNo2/fvgC7+ygKCgooKCige/fuPPnkkwwbNox3332X+fPns2HDBq688koAZs2aRf/+\n/XnuuedYtmwZ69evZ+nSpUXO9eqrr9K3b1/WrVvHOeecQ40aNfj3v//NmjVrmDhxIhMmTGDQoEFF\n9hkzZgzTp09n0qRJ3HPPPVx22WUMHz6cxYsX89lnn/Hcc88l+ldVJkoQIlLp9OnTh8aNG+9+9O/f\nP+Z2tWrVYu7cuaxevZq6dety+OGHF1lfOLEMHz6c6667jpycHOrWrcs//vEPXnjhBXbu3MnIkSM5\n5ZRTOPLII6lRowa33XbbT8515JFH0rt3bwBq165Nly5dOPzwwzEz2rZty6WXXsq7775bZJ+bbrqJ\nevXqccABB3DggQdywgknkJOTw957781JJ53E9OnTK/qrqhAlCBGpdEaNGsWaNWt2P4p/M99lyJAh\nzJkzh44dO9K9e3def/31PR5z6dKl5OTk7H6dk5PD9u3bWbFiBUuXLqVNmza719WpU6fILUyBIusB\nvv76a3r37k2LFi1o2LAht9xyC999912RbZo1a1bkmM2bNy/yeuPGjSX8FpJPCUJEKp14O5fbt2/P\n8OHDWbVqFTfeeCNnnHEGmzZtitmh3bJlSxYt+vFWtosWLaJGjRo0b96cFi1a8O233+5et2nTJlav\nXl1k/+LHvPzyyznggAOYN28e69at484776x099hQghCRKuvZZ5/d/a29QYMGmBkZGRk0bdqUjIwM\n5s2bt3vbs846i3/9618sXLiQjRs3csstt9CvXz8yMjI444wzGD16NJMmTWLbtm0MHDiw1HNv2LCB\nrKws6taty5dffsngwYOTVcykUYIQkbg0b54DWNIewfFLV9pw1sLr33rrLTp37kxWVhbXXnstL7zw\nArVr16ZOnTrccsst9OzZk8aNGzNlyhQuvPBCzjvvPI4++mjat29P3bp1efDBBwHo1KkTDz30EL/7\n3e9o2bIlWVlZNGvWjNq1a+8xjvvuu49nn32WrKwsLrvsMvr161diOcoyTDdVknrLUTNrDQwDmgM7\ngcfd/UEzawS8AOQAC4G+7r4+xv665ajolqMR0C1HS/b999/TsGFD5s6dW6TfItUq+y1HtwPXuXtn\n4Eigv5l1BP4CjHP3/YEJwF+THIeISIW89tprbNq0ie+//57rr7+egw46KNLkkApJTRDuvtzdPw2f\n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\n", + "image/png": "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\ng/YIuXYBdJEAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 130e44cf4..e735003cf 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -20,9 +20,6 @@ "import matplotlib.pyplot as plt\n", "\n", "import openmc\n", - "from openmc.statepoint import StatePoint\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", "\n", "%matplotlib inline" ] @@ -273,9 +270,11 @@ "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", - "source_bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", - "settings_file.source = Source(space=Box(\n", - " source_bounds[:3], source_bounds[3:]))\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", + "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" @@ -350,7 +349,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIxKlK6Ha4AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NDk6\nNDEtMDQ6MDA8VgV/AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjQ5OjQxLTA0OjAw\nTQu9wwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBAFHJ/0NHcAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMDhUMTI6MDU6\nMjgtMDQ6MDCheDXLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTA4VDEyOjA1OjI4LTA0OjAw\n0CWNdwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -460,10 +459,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:49:42\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 12:05:28\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -490,106 +488,106 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.03019 \n", - " 2/1 1.06141 \n", - " 3/1 1.03988 \n", - " 4/1 1.02696 \n", - " 5/1 1.06159 \n", - " 6/1 1.03855 \n", - " 7/1 1.03452 \n", - " 8/1 1.04526 \n", - " 9/1 1.02137 \n", - " 10/1 1.02129 \n", - " 11/1 1.04810 \n", - " 12/1 1.00454 1.02632 +/- 0.02178\n", - " 13/1 1.06176 1.03813 +/- 0.01725\n", - " 14/1 1.02927 1.03592 +/- 0.01240\n", - " 15/1 1.06158 1.04105 +/- 0.01089\n", - " 16/1 1.02692 1.03870 +/- 0.00920\n", - " 17/1 1.06703 1.04274 +/- 0.00876\n", - " 18/1 1.02341 1.04033 +/- 0.00797\n", - " 19/1 1.06256 1.04280 +/- 0.00745\n", - " 20/1 1.04829 1.04335 +/- 0.00668\n", - " 21/1 1.01742 1.04099 +/- 0.00649\n", - " 22/1 1.01629 1.03893 +/- 0.00627\n", - " 23/1 1.01145 1.03682 +/- 0.00614\n", - " 24/1 1.05042 1.03779 +/- 0.00577\n", - " 25/1 1.02543 1.03696 +/- 0.00543\n", - " 26/1 1.04643 1.03756 +/- 0.00512\n", - " 27/1 1.03020 1.03712 +/- 0.00483\n", - " 28/1 1.04088 1.03733 +/- 0.00456\n", - " 29/1 1.03885 1.03741 +/- 0.00431\n", - " 30/1 1.05497 1.03829 +/- 0.00418\n", - " 31/1 1.01946 1.03739 +/- 0.00408\n", - " 32/1 1.07049 1.03890 +/- 0.00417\n", - " 33/1 1.05920 1.03978 +/- 0.00408\n", - " 34/1 1.04910 1.04017 +/- 0.00393\n", - " 35/1 1.03827 1.04009 +/- 0.00377\n", - " 36/1 1.08004 1.04163 +/- 0.00393\n", - " 37/1 1.05729 1.04221 +/- 0.00383\n", - " 38/1 1.00328 1.04082 +/- 0.00394\n", - " 39/1 1.04603 1.04100 +/- 0.00381\n", - " 40/1 1.03193 1.04070 +/- 0.00369\n", - " 41/1 1.05548 1.04117 +/- 0.00360\n", - " 42/1 1.03566 1.04100 +/- 0.00349\n", - " 43/1 1.02848 1.04062 +/- 0.00340\n", - " 44/1 1.01806 1.03996 +/- 0.00337\n", - " 45/1 1.05404 1.04036 +/- 0.00330\n", - " 46/1 1.06319 1.04099 +/- 0.00327\n", - " 47/1 1.03238 1.04076 +/- 0.00318\n", - " 48/1 1.07148 1.04157 +/- 0.00320\n", - " 49/1 1.06016 1.04205 +/- 0.00316\n", - " 50/1 1.02051 1.04151 +/- 0.00312\n", - " 51/1 1.04903 1.04169 +/- 0.00305\n", - " 52/1 1.06004 1.04213 +/- 0.00301\n", - " 53/1 1.04790 1.04226 +/- 0.00294\n", - " 54/1 1.03742 1.04215 +/- 0.00288\n", - " 55/1 1.05670 1.04248 +/- 0.00283\n", - " 56/1 1.02739 1.04215 +/- 0.00279\n", - " 57/1 1.03133 1.04192 +/- 0.00274\n", - " 58/1 1.00078 1.04106 +/- 0.00281\n", - " 59/1 1.06328 1.04151 +/- 0.00279\n", - " 60/1 1.02275 1.04114 +/- 0.00276\n", - " 61/1 1.04295 1.04117 +/- 0.00271\n", - " 62/1 1.06079 1.04155 +/- 0.00268\n", - " 63/1 1.02148 1.04117 +/- 0.00266\n", - " 64/1 1.04801 1.04130 +/- 0.00261\n", - " 65/1 1.03501 1.04119 +/- 0.00257\n", - " 66/1 1.07021 1.04170 +/- 0.00257\n", - " 67/1 1.01764 1.04128 +/- 0.00256\n", - " 68/1 1.02806 1.04105 +/- 0.00253\n", - " 69/1 1.01645 1.04064 +/- 0.00252\n", - " 70/1 1.03971 1.04062 +/- 0.00248\n", - " 71/1 1.06581 1.04103 +/- 0.00247\n", - " 72/1 1.03359 1.04091 +/- 0.00243\n", - " 73/1 1.02155 1.04061 +/- 0.00241\n", - " 74/1 1.06730 1.04102 +/- 0.00241\n", - " 75/1 1.03557 1.04094 +/- 0.00238\n", - " 76/1 1.03795 1.04089 +/- 0.00234\n", - " 77/1 1.02976 1.04073 +/- 0.00231\n", - " 78/1 1.02257 1.04046 +/- 0.00229\n", - " 79/1 1.05500 1.04067 +/- 0.00227\n", - " 80/1 1.03306 1.04056 +/- 0.00224\n", - " 81/1 1.04693 1.04065 +/- 0.00221\n", - " 82/1 1.02975 1.04050 +/- 0.00218\n", - " 83/1 1.07900 1.04103 +/- 0.00222\n", - " 84/1 1.02915 1.04087 +/- 0.00219\n", - " 85/1 1.03153 1.04074 +/- 0.00217\n", - " 86/1 1.05792 1.04097 +/- 0.00215\n", - " 87/1 1.06045 1.04122 +/- 0.00214\n", - " 88/1 1.08821 1.04182 +/- 0.00219\n", - " 89/1 1.08077 1.04232 +/- 0.00222\n", - " 90/1 1.06569 1.04261 +/- 0.00221\n", - " 91/1 1.04921 1.04269 +/- 0.00219\n", - " 92/1 1.04849 1.04276 +/- 0.00216\n", - " 93/1 1.06074 1.04298 +/- 0.00215\n", - " 94/1 1.04030 1.04295 +/- 0.00212\n", - " 95/1 1.03190 1.04282 +/- 0.00210\n", - " 96/1 1.04525 1.04285 +/- 0.00207\n", - " 97/1 1.08086 1.04328 +/- 0.00210\n", - " 98/1 1.04070 1.04325 +/- 0.00207\n", - " 99/1 1.05730 1.04341 +/- 0.00206\n", - " 100/1 1.05036 1.04349 +/- 0.00203\n", + " 1/1 1.04359 \n", + " 2/1 1.04244 \n", + " 3/1 1.03020 \n", + " 4/1 1.03630 \n", + " 5/1 1.06478 \n", + " 6/1 1.05450 \n", + " 7/1 1.02369 \n", + " 8/1 1.03614 \n", + " 9/1 1.05193 \n", + " 10/1 1.02886 \n", + " 11/1 1.05011 \n", + " 12/1 1.04597 1.04804 +/- 0.00207\n", + " 13/1 1.07035 1.05548 +/- 0.00753\n", + " 14/1 1.06150 1.05698 +/- 0.00554\n", + " 15/1 1.07094 1.05977 +/- 0.00512\n", + " 16/1 1.05131 1.05836 +/- 0.00441\n", + " 17/1 1.04733 1.05679 +/- 0.00405\n", + " 18/1 1.08130 1.05985 +/- 0.00465\n", + " 19/1 1.02559 1.05605 +/- 0.00560\n", + " 20/1 1.03399 1.05384 +/- 0.00547\n", + " 21/1 1.04617 1.05314 +/- 0.00500\n", + " 22/1 1.06981 1.05453 +/- 0.00477\n", + " 23/1 1.05270 1.05439 +/- 0.00439\n", + " 24/1 1.02487 1.05228 +/- 0.00458\n", + " 25/1 1.05905 1.05273 +/- 0.00429\n", + " 26/1 1.07658 1.05422 +/- 0.00428\n", + " 27/1 1.03455 1.05307 +/- 0.00418\n", + " 28/1 1.00971 1.05066 +/- 0.00462\n", + " 29/1 1.06111 1.05121 +/- 0.00440\n", + " 30/1 1.01777 1.04954 +/- 0.00450\n", + " 31/1 1.04718 1.04942 +/- 0.00428\n", + " 32/1 1.03340 1.04870 +/- 0.00415\n", + " 33/1 1.04570 1.04857 +/- 0.00397\n", + " 34/1 1.02728 1.04768 +/- 0.00390\n", + " 35/1 1.02852 1.04691 +/- 0.00382\n", + " 36/1 1.03242 1.04636 +/- 0.00371\n", + " 37/1 1.01479 1.04519 +/- 0.00376\n", + " 38/1 1.06045 1.04573 +/- 0.00366\n", + " 39/1 1.03810 1.04547 +/- 0.00354\n", + " 40/1 1.05281 1.04571 +/- 0.00343\n", + " 41/1 1.03941 1.04551 +/- 0.00332\n", + " 42/1 1.04049 1.04535 +/- 0.00322\n", + " 43/1 1.04586 1.04537 +/- 0.00312\n", + " 44/1 1.05437 1.04563 +/- 0.00304\n", + " 45/1 1.03445 1.04531 +/- 0.00297\n", + " 46/1 1.05104 1.04547 +/- 0.00289\n", + " 47/1 1.00773 1.04445 +/- 0.00299\n", + " 48/1 1.06879 1.04509 +/- 0.00298\n", + " 49/1 1.06625 1.04564 +/- 0.00295\n", + " 50/1 1.02641 1.04515 +/- 0.00292\n", + " 51/1 1.05701 1.04544 +/- 0.00286\n", + " 52/1 1.02868 1.04504 +/- 0.00282\n", + " 53/1 1.04592 1.04506 +/- 0.00275\n", + " 54/1 1.05757 1.04535 +/- 0.00271\n", + " 55/1 1.02329 1.04486 +/- 0.00269\n", + " 56/1 1.04116 1.04478 +/- 0.00263\n", + " 57/1 1.01990 1.04425 +/- 0.00263\n", + " 58/1 1.06202 1.04462 +/- 0.00260\n", + " 59/1 1.03550 1.04443 +/- 0.00255\n", + " 60/1 1.01383 1.04382 +/- 0.00258\n", + " 61/1 1.04111 1.04377 +/- 0.00253\n", + " 62/1 1.02061 1.04332 +/- 0.00252\n", + " 63/1 1.00456 1.04259 +/- 0.00257\n", + " 64/1 1.02277 1.04222 +/- 0.00255\n", + " 65/1 1.04544 1.04228 +/- 0.00251\n", + " 66/1 1.04487 1.04233 +/- 0.00246\n", + " 67/1 1.02699 1.04206 +/- 0.00243\n", + " 68/1 1.06160 1.04240 +/- 0.00241\n", + " 69/1 1.02989 1.04218 +/- 0.00238\n", + " 70/1 1.03107 1.04200 +/- 0.00235\n", + " 71/1 1.06571 1.04239 +/- 0.00234\n", + " 72/1 1.03444 1.04226 +/- 0.00231\n", + " 73/1 1.05059 1.04239 +/- 0.00228\n", + " 74/1 1.03352 1.04225 +/- 0.00224\n", + " 75/1 1.03707 1.04217 +/- 0.00221\n", + " 76/1 1.02994 1.04199 +/- 0.00219\n", + " 77/1 1.05416 1.04217 +/- 0.00216\n", + " 78/1 1.03794 1.04211 +/- 0.00213\n", + " 79/1 1.04652 1.04217 +/- 0.00210\n", + " 80/1 1.05715 1.04239 +/- 0.00208\n", + " 81/1 1.08146 1.04294 +/- 0.00212\n", + " 82/1 1.02159 1.04264 +/- 0.00211\n", + " 83/1 1.01968 1.04233 +/- 0.00211\n", + " 84/1 1.05577 1.04251 +/- 0.00209\n", + " 85/1 1.07808 1.04298 +/- 0.00211\n", + " 86/1 1.03943 1.04293 +/- 0.00209\n", + " 87/1 1.03431 1.04282 +/- 0.00206\n", + " 88/1 1.02414 1.04258 +/- 0.00205\n", + " 89/1 1.02316 1.04234 +/- 0.00204\n", + " 90/1 1.03342 1.04223 +/- 0.00202\n", + " 91/1 1.02781 1.04205 +/- 0.00200\n", + " 92/1 1.01293 1.04169 +/- 0.00201\n", + " 93/1 1.04347 1.04171 +/- 0.00198\n", + " 94/1 1.05357 1.04186 +/- 0.00196\n", + " 95/1 1.04740 1.04192 +/- 0.00194\n", + " 96/1 1.05215 1.04204 +/- 0.00192\n", + " 97/1 1.06667 1.04232 +/- 0.00192\n", + " 98/1 1.04926 1.04240 +/- 0.00190\n", + " 99/1 1.05386 1.04253 +/- 0.00188\n", + " 100/1 1.05088 1.04262 +/- 0.00186\n", " Creating state point statepoint.100.h5...\n", "\n", " ===========================================================================\n", @@ -599,27 +597,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.3200E-01 seconds\n", - " Reading cross sections = 1.7200E-01 seconds\n", - " Total time in simulation = 4.5299E+01 seconds\n", - " Time in transport only = 4.3964E+01 seconds\n", - " Time in inactive batches = 1.2390E+00 seconds\n", - " Time in active batches = 4.4060E+01 seconds\n", - " Time synchronizing fission bank = 2.3000E-02 seconds\n", - " Sampling source sites = 1.5000E-02 seconds\n", - " SEND/RECV source sites = 8.0000E-03 seconds\n", - " Time accumulating tallies = 2.7000E-02 seconds\n", - " Total time for finalization = 3.0800E-01 seconds\n", - " Total time elapsed = 4.6175E+01 seconds\n", - " Calculation Rate (inactive) = 40355.1 neutrons/second\n", - " Calculation Rate (active) = 10213.3 neutrons/second\n", + " Total time for initialization = 5.3700E-01 seconds\n", + " Reading cross sections = 1.4300E-01 seconds\n", + " Total time in simulation = 4.3618E+02 seconds\n", + " Time in transport only = 4.3609E+02 seconds\n", + " Time in inactive batches = 1.5047E+01 seconds\n", + " Time in active batches = 4.2113E+02 seconds\n", + " Time synchronizing fission bank = 2.4000E-02 seconds\n", + " Sampling source sites = 1.6000E-02 seconds\n", + " SEND/RECV source sites = 6.0000E-03 seconds\n", + " Time accumulating tallies = 4.0000E-02 seconds\n", + " Total time for finalization = 2.5600E-01 seconds\n", + " Total time elapsed = 4.3701E+02 seconds\n", + " Calculation Rate (inactive) = 3322.92 neutrons/second\n", + " Calculation Rate (active) = 1068.56 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.04225 +/- 0.00171\n", - " k-effective (Track-length) = 1.04349 +/- 0.00203\n", - " k-effective (Absorption) = 1.04192 +/- 0.00172\n", - " Combined k-effective = 1.04213 +/- 0.00141\n", + " k-effective (Collision) = 1.04214 +/- 0.00161\n", + " k-effective (Track-length) = 1.04262 +/- 0.00186\n", + " k-effective (Absorption) = 1.04338 +/- 0.00158\n", + " Combined k-effective = 1.04278 +/- 0.00122\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -664,7 +662,7 @@ "outputs": [], "source": [ "# Load the statepoint file\n", - "sp = StatePoint('statepoint.100.h5')" + "sp = openmc.StatePoint('statepoint.100.h5')" ] }, { @@ -719,18 +717,18 @@ { "data": { "text/plain": [ - "array([[[ 0.41161103, 0. ]],\n", + "array([[[ 0.40945685, 0. ]],\n", "\n", - " [[ 0.41135796, 0. ]],\n", + " [[ 0.40939021, 0. ]],\n", "\n", - " [[ 0.41058715, 0. ]],\n", + " [[ 0.410625 , 0. ]],\n", "\n", " ..., \n", - " [[ 0.40919256, 0. ]],\n", + " [[ 0.41130501, 0. ]],\n", "\n", - " [[ 0.41057119, 0. ]],\n", + " [[ 0.41228849, 0. ]],\n", "\n", - " [[ 0.41225079, 0. ]]])" + " [[ 0.41420317, 0. ]]])" ] }, "execution_count": 20, @@ -766,30 +764,30 @@ { "data": { "text/plain": [ - "(array([[[ 0.00457346, 0. ]],\n", + "(array([[[ 0.00454952, 0. ]],\n", " \n", - " [[ 0.00457064, 0. ]],\n", + " [[ 0.00454878, 0. ]],\n", " \n", - " [[ 0.00456208, 0. ]],\n", + " [[ 0.0045625 , 0. ]],\n", " \n", " ..., \n", - " [[ 0.00454658, 0. ]],\n", + " [[ 0.00457006, 0. ]],\n", " \n", - " [[ 0.0045619 , 0. ]],\n", + " [[ 0.00458098, 0. ]],\n", " \n", - " [[ 0.00458056, 0. ]]]),\n", - " array([[[ 1.92422804e-05, 0.00000000e+00]],\n", + " [[ 0.00460226, 0. ]]]),\n", + " array([[[ 1.64748193e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.58028832e-05, 0.00000000e+00]],\n", + " [[ 1.70922989e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.56204065e-05, 0.00000000e+00]],\n", + " [[ 1.67622385e-05, 0.00000000e+00]],\n", " \n", " ..., \n", - " [[ 1.98926652e-05, 0.00000000e+00]],\n", + " [[ 1.69274948e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.70440988e-05, 0.00000000e+00]],\n", + " [[ 1.57842763e-05, 0.00000000e+00]],\n", " \n", - " [[ 2.05592499e-05, 0.00000000e+00]]]))" + " [[ 2.06590062e-05, 0.00000000e+00]]]))" ] }, "execution_count": 21, @@ -869,7 +867,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -878,9 +876,9 @@ }, { "data": { - "image/png": "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\n87qEMGb9LAAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -910,9 +908,9 @@ "outputs": [ { "data": { - "image/png": "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\nAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -953,13 +951,13 @@ { "data": { "text/plain": [ - "array([ (1.0, [0.09184833943086697, -0.23957301713645024, 0.35275256701073315], [0.6943502674814661, -0.18996972225593808, 0.694110373553384], 1.8499326750790277, 0),\n", - " (1.0, [0.09184833943086697, -0.23957301713645024, 0.35275256701073315], [0.5159084442036803, 0.8277435289738373, -0.22063346854291235], 0.08218797495117988, 0),\n", - " (1.0, [0.20806026831237243, 0.2806741437409227, 0.5336799247482618], [0.1279254678841002, 0.5275600667322506, -0.8398306083110433], 3.0474103747828187, 0),\n", + "array([ (1.0, [-0.1382758052991497, -0.3512177196880901, -0.33148352853135243], [0.4185689312254184, 0.515870835450486, -0.7474472094699589], 0.12980877137486158, 0),\n", + " (1.0, [-0.1382758052991497, -0.3512177196880901, -0.33148352853135243], [-0.7887279871402189, -0.41474066458733805, -0.4537602268152112], 0.9055673129689725, 0),\n", + " (1.0, [-0.037141545763691594, 0.3164763430804079, -0.13705878399440294], [0.3855911650385466, 0.7867859791128493, -0.48196190359368796], 0.996776361155944, 0),\n", " ...,\n", - " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [0.5932941753311154, -0.7955471372215329, 0.12290961710458291], 1.9935677118802835, 0),\n", - " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [-0.8965339181960187, -0.33727511250097575, 0.2871801386091118], 9.772336043367204, 0),\n", - " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [0.5932941753311154, -0.7955471372215329, 0.12290961710458291], 1.9935677118802835, 0)], \n", + " (1.0, [0.10735654583359178, -0.007276312264885898, -0.05173760352485271], [0.5349120379020222, -0.015907381482490993, 0.8447579931091957], 0.8409377635712494, 0),\n", + " (1.0, [-0.048566216245400286, 0.29160532148505824, 0.31942717397594755], [0.6200960701401188, -0.409911862042636, 0.6689193741801173], 3.8787384499997857, 0),\n", + " (1.0, [0.07888442268099938, -0.14443885526015943, 0.3095767587545024], [0.373899151360205, 0.18819594431853104, 0.9081749342247754], 4.776147593645684, 0)], \n", " dtype=[('wgt', '" + "" ] }, "execution_count": 28, @@ -1035,9 +1033,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAETCAYAAAAYm1C6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHsFJREFUeJzt3XuYHFd55/HvTwjjCyBm2KwCMlZAknFsLsILsngMuB0u\nGpk1s7FJkBLQYlisLAizgSXWkyzr2U0eQEm4WJggFLwGOdiyDXgRWAFBouYSEiFsCd80aMRFSDIR\nIZIMtlkii3f/qBq53XT3dNd0dVe1fp/nmWe6Tp2qevuo1e/UOVV1FBGYmZl1aka/AzAzs3JyAjEz\ns0ycQMzMLBMnEDMzy8QJxMzMMnECMTOzTHJPIJJGJI1L2i3pyiZ11kqakLRT0sKa8rdJuiv9uSLv\nWM3MrH25JhBJM4BrgCXAOcBySWfV1VkKzIuIBcBKYF1afg7wRuD5wELgP0p6Rp7xmplZ+/I+A1kE\nTETE3og4CmwERuvqjAIbACJiGzBL0mzgN4FtEfGLiDgGfBW4JOd4zcysTXknkDnAvprl/WlZqzoH\n0rK7gRdLGpJ0KnAR8LQcYzUzsw7M7HcAzUTEuKQ1wJeAB4AdwLFGdSX5eSxmZh2KCE1n+7zPQA4A\nZ9Qsn56W1dd5WqM6EXFdRDw/IirAEWB3swNFRK4/V111Ve7bTlWv1fpG69opm2q5rG05nfbspPxE\nac9ufzbdnt1tzyxl3ZB3AtkOzJc0V9JJwDJgU12dTcAKAEmLgSMRcTBd/rX09xnAbwM35BxvU5VK\nJfdtp6rXan2jde2UTed9ZdWLtmynbrP1nZSfKO3Z7c9ms/LptufwMEiNf4aH29tHGdtzOmXTknc2\nB0aA7wATwOq0bCVweU2da4A9wLeBc2vKv0oyFrIDqLQ4Rlh3XHXVVf0OYaC4PbtrqvZs9VUwNJSs\nb/QzNNTdOMsg/d6c1vd77mMgEfEF4Jl1ZR+tW17VZNuX5BiaNdCPv6AHmduzu6bTnocONV+naY0E\nnLgUXeoL6ydJMQjvw8ymR0rOKXq1XZlJIgo+iG5mZgPKCcTMzDJxAjEzs0ycQMzMLBMnEDMzy8QJ\nxMzMMnECMTOzTJxAzMwsEycQMzPLxAnEzMwycQIxM7NMnEDM7IQ3NDT9x8CfiPwwRTMbGHk8FHFQ\nH7TohymamVnfOIGYmbXg7q3mck8gkkYkjUvaLenKJnXWSpqQtFPSwpryP5R0t6Q7JX0ynRbXzKxn\nDh1qNo8hHD7c7+j6K9cEImkGyXS1S4BzgOWSzqqrsxSYFxELSKa6XZeWPxV4K8kUt88BZpLMqW5m\nZgWQ9xnIImAiIvZGxFFgIzBaV2cU2AAQEduAWZJmp+seA5wmaSZwKnBfzvGamVmb8k4gc4B9Ncv7\n07JWdQ4AcyLiPuB9wA/TsiMR8eUcYzUzsw7M7HcAzUh6EsnZyVzgfuBTkn4vIm5oVH9sbOz460ql\nQqVS6UGUZmblUK1WqVarXd1nrveBSFoMjEXESLq8GoiIWFNTZx2wNSJuSpfHgQuAFwNLIuJNafnr\ngPMiYlWD4/g+EDPr+T0bZb5HpAz3gWwH5kuam15BtQzYVFdnE7ACjiecIxFxkKTrarGkkyUJeCmw\nK+d4zcysTbl2YUXEMUmrgC0kyeraiNglaWWyOtZHxGZJF0naAzwIXJZu+01JnwJ2AEfT3+vzjNfM\nzNrnR5mY2cBwF1b7ytCFZWZmA8oJxMzMMnECMTOzTJxAzMwsEycQMzPLxAnEzMwycQIxM7NMnEDM\nrJCGhz2JU9H5RkIzK6RmN+m1unnPNxK2zzcSmplZ3ziBmJlZJk4gZmaWiROImZll4gRiZmaZOIGY\nmVkmTiBmZpZJ7glE0oikcUm7JV3ZpM5aSROSdkpamJadKWmHpDvS3/dLuiLveM2s2IaGGt9gKCXr\nrHdyvZFQ0gxgN8l85veRzJG+LCLGa+osBVZFxCslnQdcHRGLG+xnP3BeROxrcBzfSGg2YMpwk14Z\nYmymDDcSLgImImJvRBwFNgKjdXVGgQ0AEbENmCVpdl2dlwHfbZQ8zMysP/JOIHOA2i/9/WlZqzoH\nGtR5DXBj16MzM7PMZvY7gKlIeizwKmB1q3pjY2PHX1cqFSqVSq5xmZmVSbVapVqtdnWfeY+BLAbG\nImIkXV4NRESsqamzDtgaETely+PABRFxMF1+FfDmyX00OY7HQMwGTBnGF8oQYzNlGAPZDsyXNFfS\nScAyYFNdnU3ACjiecI5MJo/Uctx9ZWZWOLl2YUXEMUmrgC0kyeraiNglaWWyOtZHxGZJF0naAzwI\nXDa5vaRTSQbQL88zTjMz65znAzGzQipD91AZYmymDF1YZmY2oJxAzMwyanZX/Iky7a67sMyskMrd\nPVT82N2FZWZmfeMEYmZmmTiBmJlZJk4gZmaWiROImZll4gRiZmaZOIGYmVkmTiBmZpaJE4iZmWXi\nBGJmZpk4gZiZWSZOIGZmlokTiJmZZZJ7ApE0Imlc0m5JVzaps1bShKSdkhbWlM+SdIukXZLukXRe\n3vGamVl7ck0gkmYA1wBLgHOA5ZLOqquzFJgXEQuAlcC6mtVXA5sj4jeB5wK78ozXzMzal/cZyCJg\nIiL2RsRRYCMwWldnFNgAEBHbgFmSZkt6IvDiiLguXfdwRPw053jNzKxNeSeQOcC+muX9aVmrOgfS\nsqcDP5F0naQ7JK2XdEqu0ZqZWdtm9juAFmYC5wJviYhvSfogsBq4qlHlsbGx468rlQqVSqUHIZqZ\nlUO1WqVarXZ1ny2ntJV0L3ADcGNEfLfjnUuLgbGIGEmXVwMREWtq6qwDtkbETenyOHBBuvofI+IZ\nafmLgCsj4uIGx/GUtmYDpgzTwjZThth7MaXtcuA0YIukb0r6Q0lP7WD/24H5kuZKOglYBmyqq7MJ\nWAHHE86RiDgYEQeBfZLOTOu9FLi3g2ObmVmOWp6BPKpi8uX+GuBS4LvADRHx121sN0JyNdUM4NqI\neK+klSRnIuvTOtcAI8CDwGURcUda/lzgY8Bjge+l6+5vcAyfgZgNmDL8Fd9MGWLvxhlI2wmk5qAV\n4APA2RHxuOkcvFucQMwGTxm+hJspQ+zdSCBtDaJLegFJd9alwPeBjwK3TOfAZmZWbi0TiKR3k3Rb\nHSK5h+P8iNjfi8DMzKzYpjoD+X/ASERM9CIYMzMrj7bGQCSdCrwDOCMi3iRpAfDMiPh83gG2w2Mg\nZoOnDOMIzZQh9l5cxjvpOuAXwAvT5QPAn03nwGZmw8PJl22jn6GhfkdnU2k3gcyLiD8HjgJExEPA\ntDKXmdnhw8lf6o1+Dh3qd3Q2lXYTyL+lz6EKAEnzSM5IzMzsBNXus7CuAr4APE3SJ4HzgdfnFZSZ\nmRVfJ3eiPxlYTNJ19U8R8ZM8A+uEB9HNyqkMg81ZlOF95X4nuqRzW208+ciRfnMCMSunMnzRZlGG\n99WLBPJL4G5g8myj9mAREb81nYN3ixOIWTmV4Ys2izK8r148yuTtwKuBn5PciX5rRDwwnQOa2Yll\neDi52qoRX6pbbu3eSPgMkkexjwJ7gXdHxM6cY2ubz0DMiqsMf413Wxnec89uJIyI7wGfBbaQzHN+\nZustzMxs0E01BlJ75rGPpBvrtoj4eW/Ca4/PQMyKqwx/jXdbGd5zrwbR7yQ5+/gp6Y2EkyLi/W0E\nOQJ8kEcmlFrToM5aYCmPTCi1Iy3/AXA/8EvgaEQsanIMJxCzgirDl2m3leE992IQ/X/VvH58pzuX\nNAO4hmQ62vuA7ZI+GxHjNXWWkjwqZYGk84CPkNxvAkniqEREkyE4MzPrl6kSyG5gS0T8a8b9LwIm\nImIvgKSNJN1h4zV1RoENABGxTdIsSbPTOdFF+49bMTOzHprqy/kM4BZJX5M0Juk8SZ2c8swhGTuZ\ntD8ta1XnQE2dAL4kabukN3VwXDMzy1nLM5B0vGKNpCcALwPeAKyTtIvk2VhfTM8U8nJ+RPxI0q+R\nJJJdEfH1RhXHxsaOv65UKlQqlRzDMjMrl2q1SrVa7eo+234W1qM2ks4mGfR+RUQsaVFvMTAWESPp\n8mqSO9jX1NRZB2yNiJvS5XHggvrEJOkq4GeNBu49iG5WXGUYUO62Mrznnt0HIukzki5KB8WJiHsj\n4n2tkkdqOzBf0lxJJ5FcEryprs4mYEV6nMXAkYg4KOlUSY9Py08DXkHyWBUzMyuAdh/n/lfAZcCH\nJN0CXBcR35lqo4g4JmkVyQ2Ik5fx7pK0Mlkd6yNic5qc9pBexptuPhu4VVKkcX4yIrZ09vbMzCwv\nHXVhSZoFLAf+hGTg+6+Bv4mIo/mE13Zc7sIyK6gydOd0Wxnecy/nRJ+cD+T1wH8BdgBXA+cCX5pO\nAGZmg2ZoqPlc78PD/Y6ue9p9mOKtwDOB64GPR8SPatZ9KyKen1+IU/MZiFlxleGv8V4qSnvk/iiT\nmgNdFBGb68oeFxGFmBfdCcSsuIryhVkURWmPXnZh/VmDsn+czoHNzKzcWl6FJenXSe4KP0XS83hk\nRsInAqfmHJuZmRXYVJfxLiEZOD8dqL2B72fAH+cUk5mZlUC7YyCXRsSnexBPJh4DMSuuovT5F0VR\n2qMX84G8NiL+RtI7qJsLBNqbD6QXnEDMiqsoX5hFUZT26MV8IKelvzueC8TMzAZbpocpFo3PQMyK\nqyh/cRdFUdoj9zOQdKrZpiLiiukc3MzMymuqLqzbexKFmZmVjruwzCxXRemyKYqitEcvurA+GBH/\nTdLnaHwV1qumc3AzMyuvqbqwrk9//2XegZiZWbm03YWVzih4FsmZyHci4t/yDKwT7sIyK66idNkU\nRVHao5dT2r4S+C6wFrgG2CNpaZvbjkgal7Rb0pVN6qyVNCFpp6SFdetmSLpDUv1UuGZm1kftTmn7\nPuDCiNgDIGkecBvwt602SudQvwZ4KXAfsF3SZyNivKbOUmBeRCyQdB6wDlhcs5u3AfeSPMDRzMwK\not3Huf9sMnmkvkfyQMWpLAImImJvOu3tRmC0rs4osAEgIrYBsyTNBpB0OnAR8LE24zSzPhgebj4D\n39BQv6OzvEx1FdYl6ctvSdoM3EwyBvI7wPY29j+HZO70SftJkkqrOgfSsoPAB4B3ArPaOJaZ9cnh\nw8Xo17femqoL6+Ka1weBC9LX/wKckktEqXTc5WBE7JRU4ZG5SBoaGxs7/rpSqVCpVPIMz8ysVKrV\nKtVqtav7zPVGQkmLgbGIGEmXVwMREWtq6qwDtkbETenyOEmiehvwWuBhkmT1BOAzEbGiwXF8FZZZ\nHxXlyqIyKEpb9XJO9JOBNwLnACdPlkfEG6bY7jHAd0gG0X8EfBNYHhG7aupcBLwlIl6ZJpwPRsTi\nuv1cALyj2Y2LTiBm/VWUL8UyKEpb9XJO9OuBXyeZofArJDMUTjmIHhHHgFXAFuAeYGNE7JK0UtLl\naZ3NwPcl7QE+Cry543dhZmY91+4ZyI6IeJ6kOyPiOZIeC3yt/kyhX3wGYtZfRfmrugyK0la9PAM5\nmv4+IulZJFdF/fvpHNjMzMqt3RsJ10saAt4FbCKZofBduUVlZoUzPJxcrtuI7/U4Mflx7mbWlqJ0\nvZRdUdqxl8/CerKkD6XPpLpd0gclPXk6BzYzs3JrdwxkI/Bj4FLg1cBPgJvyCsrMzIqv3auw7o6I\nZ9WV3RURz84tsg64C8ssf0Xpeim7orRjL6/C2iJpWfpo9RmSfhf44nQObGZm5dbyDETSz0genijg\nNOCX6aoZwAMRUYhHrPsMxCx/RfnLueyK0o65z4keEU+Yzs7NzGxwtXsfCJJeBbwkXaxGxOfzCcnM\nzMqg3ct438sjMwPeC7xN0nvyDMzMzIqt3auw7gQWRsQv0+XHADsi4jk5x9cWj4GY5a8offdlV5R2\n7OVVWABPqnntGQLNzDIYGmo+/e/wcL+j60y7YyDvAXZI2kpyRdZLgNW5RWVmNqAOHWq+TtM6H+i9\nKbuwJIlk/o+HgRekxd+MiH/OOba2uQvLLH9F6XoZZL1s417OSFiYu84bcQIxy58TSP7KlkDaHQO5\nQ9ILpq72qySNSBqXtFvSlU3qrJU0IWmnpIVp2eMkbZO0Q9Jdkq7KcnwzM8tHu2cg48AC4AfAgyTj\nIDHVVViSZgC7SeZEvw/YDiyLiPGaOkuBVemc6OcBV0/OdCjp1Ih4KL3q6x+AKyLimw2O4zMQs5z5\nDCR/ZTsDaXcQfUnG/S8CJiJiL4CkjcAoMF5TZxTYABAR2yTNkjQ7Ig5GxENpncelsfrja5YjTxpl\nnWiZQCSdDPwBMB+4C7g2Ih7uYP9zgH01y/tJkkqrOgfSsoPpGcztwDzgwxGxvYNjm1mHDh/2WYa1\nb6ozkE+QzIf+NWApcDbJHek9kd64+DxJTwT+r6SzI+LeRnXHxsaOv65UKlQqlZ7EaGZWBtVqlWq1\n2tV9TvU03uNXX0maSXL57rlt71xaDIxFxEi6vJpk7GRNTZ11wNaIuCldHgcuiIiDdft6F/BgRLy/\nwXE8BmLWBR7n6K+yjYFMdRXW0ckXHXZdTdoOzJc0V9JJwDJgU12dTcAKOJ5wjkTEQUn/TtKstPwU\n4OU8euzEzMz6aKourOdK+mn6WsAp6fLkVVgt5wOJiGOSVgFbSJLVtRGxS9LKdPv1EbFZ0kWS9pBc\n4XVZuvlTgE+k4yAzgJsiYnOmd2lmZl3X1mW8RecuLLPucBdWfw1aF5aZmVlDTiBmZpaJE4iZmWXi\nBGJmZpk4gZiZWSZOIGZmlokTiJmZZeIEYnYCGh5uPCe3n7hrnfCNhGYnIN8wWEy+kdDMzE4ITiBm\nZpaJE4iZmWXiBGJmZpk4gZiZWSZOIGZmlokTiJmZZZJ7ApE0Imlc0m5JVzaps1bShKSdkhamZadL\n+ntJ90i6S9IVecdqZmbtyzWBpNPRXgMsAc4Blks6q67OUmBeRCwAVgLr0lUPA2+PiHOAFwJvqd/W\nzMz6J+8zkEXARETsjYijwEZgtK7OKLABICK2AbMkzY6If46InWn5A8AuYE7O8ZqZWZvyTiBzgH01\ny/v51SRQX+dAfR1JvwEsBLZ1PUIzM8tkZr8DmIqkxwOfAt6Wnok0NDY2dvx1pVKhUqnkHpuZWVlU\nq1Wq1WpX95nrwxQlLQbGImIkXV4NRESsqamzDtgaETely+PABRFxUNJM4PPA30bE1S2O44cpmtUZ\nHobDhxuvGxqCQ4d6G49NzQ9TfLTtwHxJcyWdBCwDNtXV2QSsgOMJ50hEHEzX/R/g3lbJw8waO3w4\n+TJq9OPkYd2QaxdWRByTtArYQpKsro2IXZJWJqtjfURslnSRpD3Ag8DrASSdD/w+cJekHUAAfxwR\nX8gzZjMza4/nAzEbUJ7zo3zchWVmZicEJxAzM8vECcTMzDJxAjEzK4ihoWQcpNHP8HC/o/tVHkQ3\nG1AeRB8s3f739CC6mZn1jROImZll4gRiZmaZOIGYmVkmTiBmZpaJE4iZmWXiBGJmZpk4gZiZWSZO\nIGZmJVDEu9R9J7rZgPKd6CeOLP/WvhPd7AQwPFy8vzzNoAcJRNKIpHFJuyVd2aTOWkkTknZKel5N\n+bWSDkq6M+84zYqq1dS0zeY8N+uFXBOIpBnANcAS4BxguaSz6uosBeZFxAJgJfCRmtXXpduaWQOt\n+sWHhvodnQ26vM9AFgETEbE3Io4CG4HRujqjwAaAiNgGzJI0O13+OuC/scyaOHSo+dnJoUP9js4G\nXd4JZA6wr2Z5f1rWqs6BBnXMzKxgZvY7gG4ZGxs7/rpSqVCpVPoWi5lZ0VSrVarValf3metlvJIW\nA2MRMZIurwYiItbU1FkHbI2Im9LlceCCiDiYLs8FPhcRz2lxHF/Ga6U2PNx8QHxoyN1R1tqgXsa7\nHZgvaa6kk4BlwKa6OpuAFXA84RyZTB4ppT9mA6vVlVZOHlZUuSaQiDgGrAK2APcAGyNil6SVki5P\n62wGvi9pD/BR4M2T20u6AfgGcKakH0q6LM94zcysfb4T3awAfNe4TcegdmGZmdmAcgIxM7NMnEDM\nzCwTJxAzM8vECcSsR1o9VdfPrbIy8lVYZj3iK60sL74Ky8zMSsUJxMzMMnECMcug1XiGxznsRDEw\nT+M166XJZ1eZFcHkxGLN5PVZ9SC6WQYeELey8yC6mZn1jROImZll4gRi1oRv/DNrzWMgVjhFmZ3P\n4xw2yEoxBiJpRNK4pN2SrmxSZ62kCUk7JS3sZFvrrm7PmZxFq9n5miWWVmcLw8O9jb9WEdpzkLg9\niyXXBCJpBnANsAQ4B1gu6ay6OkuBeRGxAFgJrGt3W+u+ov8Hnbxcsf4Hmicd6PyejW51UxW9PcvG\n7VkseZ+BLAImImJvRBwFNgKjdXVGgQ0AEbENmCVpdpvb9sx0PrjtbjtVvVbrG61rp6wf/yGnc8zP\nfKba9rzhk8c5dKhxYtm6tfG+Jsvr9zmI7dmvz2azcrfn1Ouz/l9v57idyjuBzAH21SzvT8vaqdPO\ntj0zKB+qpUurj/or+8ILq1N29WS567rVT+0xO/3Lv5N/h6zt6S+8zus5gXS27aAkkFwH0SVdCiyJ\niMvT5dcCiyLiipo6nwPeExHfSJe/DPwR8PSptq3Zh4c6zcw6NN1B9LwfZXIAOKNm+fS0rL7O0xrU\nOamNbYHpN4KZmXUu7y6s7cB8SXMlnQQsAzbV1dkErACQtBg4EhEH29zWzMz6JNczkIg4JmkVsIUk\nWV0bEbskrUxWx/qI2CzpIkl7gAeBy1ptm2e8ZmbWvoG4kdDMzHrPjzIxM7NMnEDMzCyTgU0gks6S\n9BFJN0v6g37HU3aSRiWtl3SjpJf3O54yk/R0SR+TdHO/Yyk7SadK+rikj0r6vX7HU3adfjYHfgxE\nkoBPRMSKfscyCCQ9CfiLiHhTv2MpO0k3R8Tv9juOMkvvDzscEbdJ2hgRy/od0yBo97NZ+DMQSddK\nOijpzrrydh7SeDHweWBzL2Itg+m0Z+p/AB/ON8py6EJbWp0MbXo6jzyx4ljPAi2JvD+jhU8gwHUk\nD1Q8rtWDFiW9TtL7JT0lIj4XEa8EXtvroAssa3s+VdJ7gc0RsbPXQRdU5s/mZPVeBlsSHbUpSfI4\nfbJqr4IskU7b83i1dnZe+AQSEV8H6h/i3fRBixFxfUS8HThT0tWS1gG39TToAptGe14KvBR4taTL\nexlzUU2jLX8h6SPAQp+hPFqnbQrcSvKZ/DDwud5FWg6dtqek4U4+m3k/yiQvjR60uKi2QkR8BfhK\nL4MqsXba80PAh3oZVEm105aHgP/ay6BKrmmbRsRDwBv6EVSJtWrPjj6bhT8DMTOzYiprAmnnIY3W\nPrdn97gtu89t2l1da8+yJBDx6EEdP2hxetye3eO27D63aXfl1p6FTyCSbgC+QTIo/kNJl0XEMeCt\nJA9avAfY6Acttsft2T1uy+5zm3ZX3u058DcSmplZPgp/BmJmZsXkBGJmZpk4gZiZWSZOIGZmlokT\niJmZZeIEYmZmmTiBmJlZJk4gNrAkHZN0h6Qd6e8/6ndMkyTdIuk30tc/kPSVuvU76+dwaLCP70pa\nUFf2AUnvlPQsSdd1O26zWmV9Gq9ZOx6MiHO7uUNJj0nv5J3OPs4GZkTED9KiAJ4gaU5EHEjnZmjn\nDt8bSR5D8afpfgW8GnhhROyXNEfS6RGxfzrxmjXjMxAbZA0nxZH0fUljkm6X9G1JZ6blp6YzuP1T\nuu7itPw/S/qspL8DvqzEX0m6V9IWSbdJukTShZJurTnOyyR9pkEIvw98tq7sZpJkALAcuKFmPzMk\n/bmkbemZyeR0whtrtgF4CfCDmoTx+br1Zl3lBGKD7JS6LqzfqVn344j4D8A64L+nZX8C/F1ELAZ+\nC/hLSaek654HXBIRFwKXAGdExNnA64AXAkTEVuCZkp6cbnMZcG2DuM4Hbq9ZDuDTwG+nyxfz6MmR\n3ggciYjzSOZtuFzS3Ii4Gzgm6dlpvWUkZyWTvgW8uFUDmU2Hu7BskD3Uogtr8kzhdh754n4FcLGk\nd6bLJ/HIY6+/FBH3p69fBNwCEBEHJW2t2e/1wGslfRxYTJJg6j0F+Je6sn8FDkt6DXAv8POada8A\nnl2TAJ8ILAD2kp6FSLoX+E/A/6zZ7sfAUxu+e7MucAKxE9Uv0t/HeOT/gYBLI2KitqKkxcCDbe73\n4yRnD78AbomIXzao8xBwcoPym4EPAyvqygW8NSK+1GCbjSRPVf0q8O2IqE1MJ/PoRGTWVe7CskHW\ncAykhS8CVxzfWFrYpN4/AJemYyGzgcrkioj4EXAfSXdYs6ugdgHzG8R5K7CGJCHUx/VmSTPTuBZM\ndq1FxPeAnwDv5dHdVwBnAnc3icFs2pxAbJCdXDcG8u60vNkVTn8KPFbSnZLuBv53k3qfJplH+h5g\nA0k32P016z8J7IuI7zTZfjNwYc1yAETEAxHxFxHxcF39j5F0a90h6S6ScZva3oMbgWcC9QP2FwK3\nNYnBbNo8H4hZBpJOi4gHJQ0D24DzI+LH6boPAXdERMMzEEknA3+fbpPLf8B0prkq8KIm3Whm0+YE\nYpZBOnD+JOCxwJqIuD4t/xbwAPDyiDjaYvuXA7vyukdD0nzgqRHx1Tz2bwZOIGZmlpHHQMzMLBMn\nEDMzy8QJxMzMMnECMTOzTJxAzMwsk/8Pmq0TNsrj52MAAAAASUVORK5CYII=\n", + "image/png": "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\nYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1086,9 +1084,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\nF5W9GoMAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 0ab708e09..2f1dc820f 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -34,10 +34,6 @@ "import numpy as np\n", "\n", "import openmc\n", - "from openmc.statepoint import StatePoint\n", - "from openmc.summary import Summary\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", "\n", "%matplotlib inline" ] @@ -289,9 +285,11 @@ "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", "settings_file.output = {'tallies': True}\n", - "source_bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", - "settings_file.source = Source(space=Box(\n", - " source_bounds[:3], source_bounds[3:]))\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", + "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" @@ -366,7 +364,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIyLefz284AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NTA6\nNDUtMDQ6MDD1gtVmAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjUwOjQ1LTA0OjAw\nhN9t2gAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBAPGRVxKHIAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMDhUMTI6MTU6\nMjUtMDQ6MDABIYvLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTA4VDEyOjE1OjI1LTA0OjAw\ncHwzdwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -570,10 +568,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:50:46\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 12:15:26\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -600,26 +597,26 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.03167 \n", - " 2/1 1.03535 \n", - " 3/1 1.02709 \n", - " 4/1 1.00637 \n", - " 5/1 0.99250 \n", - " 6/1 1.06116 \n", - " 7/1 1.04289 1.05202 +/- 0.00913\n", - " 8/1 1.04779 1.05061 +/- 0.00546\n", - " 9/1 1.04695 1.04969 +/- 0.00397\n", - " 10/1 0.98778 1.03731 +/- 0.01276\n", - " 11/1 1.05810 1.04078 +/- 0.01098\n", - " 12/1 1.01539 1.03715 +/- 0.00996\n", - " 13/1 1.08644 1.04331 +/- 0.01060\n", - " 14/1 1.06425 1.04564 +/- 0.00963\n", - " 15/1 1.01768 1.04284 +/- 0.00906\n", - " 16/1 1.05877 1.04429 +/- 0.00832\n", - " 17/1 1.02195 1.04243 +/- 0.00782\n", - " 18/1 1.02488 1.04108 +/- 0.00732\n", - " 19/1 1.06285 1.04263 +/- 0.00695\n", - " 20/1 0.98751 1.03896 +/- 0.00744\n", + " 1/1 1.03471 \n", + " 2/1 1.03257 \n", + " 3/1 1.00600 \n", + " 4/1 1.04547 \n", + " 5/1 1.02287 \n", + " 6/1 1.05752 \n", + " 7/1 1.04283 1.05017 +/- 0.00734\n", + " 8/1 1.05189 1.05074 +/- 0.00428\n", + " 9/1 1.01645 1.04217 +/- 0.00909\n", + " 10/1 1.04978 1.04369 +/- 0.00721\n", + " 11/1 1.03459 1.04218 +/- 0.00608\n", + " 12/1 1.04019 1.04189 +/- 0.00514\n", + " 13/1 1.05985 1.04414 +/- 0.00499\n", + " 14/1 1.02111 1.04158 +/- 0.00509\n", + " 15/1 1.04774 1.04219 +/- 0.00459\n", + " 16/1 1.00733 1.03902 +/- 0.00523\n", + " 17/1 1.02224 1.03763 +/- 0.00497\n", + " 18/1 1.03263 1.03724 +/- 0.00459\n", + " 19/1 1.01611 1.03573 +/- 0.00451\n", + " 20/1 1.04692 1.03648 +/- 0.00426\n", " Creating state point statepoint.20.h5...\n", "\n", " ===========================================================================\n", @@ -629,27 +626,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.0400E-01 seconds\n", - " Reading cross sections = 1.5000E-01 seconds\n", - " Total time in simulation = 2.1570E+00 seconds\n", - " Time in transport only = 1.9760E+00 seconds\n", - " Time in inactive batches = 3.3600E-01 seconds\n", - " Time in active batches = 1.8210E+00 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for initialization = 6.6400E-01 seconds\n", + " Reading cross sections = 1.8900E-01 seconds\n", + " Total time in simulation = 3.0445E+01 seconds\n", + " Time in transport only = 3.0423E+01 seconds\n", + " Time in inactive batches = 4.4900E+00 seconds\n", + " Time in active batches = 2.5955E+01 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 2.6800E+00 seconds\n", - " Calculation Rate (inactive) = 37202.4 neutrons/second\n", - " Calculation Rate (active) = 20593.1 neutrons/second\n", + " Total time elapsed = 3.1139E+01 seconds\n", + " Calculation Rate (inactive) = 2783.96 neutrons/second\n", + " Calculation Rate (active) = 1444.81 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.03965 +/- 0.00597\n", - " k-effective (Track-length) = 1.03896 +/- 0.00744\n", - " k-effective (Absorption) = 1.03976 +/- 0.00606\n", - " Combined k-effective = 1.03991 +/- 0.00536\n", + " k-effective (Collision) = 1.03296 +/- 0.00669\n", + " k-effective (Track-length) = 1.03648 +/- 0.00426\n", + " k-effective (Absorption) = 1.03431 +/- 0.00702\n", + " Combined k-effective = 1.03621 +/- 0.00456\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -697,7 +694,7 @@ "outputs": [], "source": [ "# Load the statepoint file\n", - "sp = StatePoint('statepoint.20.h5')" + "sp = openmc.StatePoint('statepoint.20.h5')" ] }, { @@ -717,7 +714,7 @@ "outputs": [], "source": [ "# Load the summary file and link with statepoint\n", - "su = Summary('summary.h5')\n", + "su = openmc.Summary('summary.h5')\n", "sp.link_with_summary(su)" ] }, @@ -756,8 +753,8 @@ " 0\n", " total\n", " (nu-fission / absorption)\n", - " 1.036847\n", - " 0.009685\n", + " 1.038387\n", + " 0.006141\n", " \n", " \n", "\n", @@ -765,7 +762,7 @@ ], "text/plain": [ " nuclide score mean std. dev.\n", - "0 total (nu-fission / absorption) 1.04e+00 9.69e-03" + "0 total (nu-fission / absorption) 1.04e+00 6.14e-03" ] }, "execution_count": 26, @@ -820,8 +817,8 @@ " 6.250000e-07\n", " total\n", " absorption\n", - " 0.692034\n", - " 0.007217\n", + " 0.693337\n", + " 0.004109\n", " \n", " \n", "\n", @@ -829,7 +826,7 @@ ], "text/plain": [ " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total absorption 6.92e-01 7.22e-03" + "0 0.00e+00 6.25e-07 total absorption 6.93e-01 4.11e-03" ] }, "execution_count": 27, @@ -882,8 +879,8 @@ " 6.250000e-07\n", " total\n", " nu-fission\n", - " 1.202298\n", - " 0.013385\n", + " 1.203042\n", + " 0.0076\n", " \n", " \n", "\n", @@ -891,7 +888,7 @@ ], "text/plain": [ " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 1.34e-02" + "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 7.60e-03" ] }, "execution_count": 28, @@ -947,8 +944,8 @@ " 10000\n", " total\n", " absorption\n", - " 0.749151\n", - " 0.009003\n", + " 0.748413\n", + " 0.004723\n", " \n", " \n", "\n", @@ -956,10 +953,10 @@ ], "text/plain": [ " energy low [MeV] energy high [MeV] cell nuclide score mean \\\n", - "0 0.00e+00 6.25e-07 10000 total absorption 7.49e-01 \n", + "0 0.00e+00 6.25e-07 10000 total absorption 7.48e-01 \n", "\n", " std. dev. \n", - "0 9.00e-03 " + "0 4.72e-03 " ] }, "execution_count": 29, @@ -1013,8 +1010,8 @@ " 10000\n", " total\n", " (nu-fission / absorption)\n", - " 1.663435\n", - " 0.019976\n", + " 1.663385\n", + " 0.011253\n", " \n", " \n", "\n", @@ -1025,7 +1022,7 @@ "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", - "0 (nu-fission / absorption) 1.66e+00 2.00e-02 " + "0 (nu-fission / absorption) 1.66e+00 1.13e-02 " ] }, "execution_count": 30, @@ -1078,8 +1075,8 @@ " 10000\n", " total\n", " (((absorption * nu-fission) * absorption) * (n...\n", - " 1.036847\n", - " 0.023674\n", + " 1.038387\n", + " 0.01316\n", " \n", " \n", "\n", @@ -1090,7 +1087,7 @@ "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", - "0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 2.37e-02 " + "0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 1.32e-02 " ] }, "execution_count": 31, @@ -1160,8 +1157,8 @@ " 6.250000e-07\n", " (U-238 / total)\n", " (nu-fission / flux)\n", - " 6.627781e-07\n", - " 7.082494e-09\n", + " 6.636968e-07\n", + " 4.132875e-09\n", " \n", " \n", " 1\n", @@ -1170,8 +1167,8 @@ " 6.250000e-07\n", " (U-238 / total)\n", " (scatter / flux)\n", - " 2.099843e-01\n", - " 2.003686e-03\n", + " 2.099856e-01\n", + " 1.232455e-03\n", " \n", " \n", " 2\n", @@ -1180,8 +1177,8 @@ " 6.250000e-07\n", " (U-235 / total)\n", " (nu-fission / flux)\n", - " 3.547246e-01\n", - " 3.854562e-03\n", + " 3.552458e-01\n", + " 2.252681e-03\n", " \n", " \n", " 3\n", @@ -1190,8 +1187,8 @@ " 6.250000e-07\n", " (U-235 / total)\n", " (scatter / flux)\n", - " 5.554185e-03\n", - " 5.316706e-05\n", + " 5.554345e-03\n", + " 3.265385e-05\n", " \n", " \n", " 4\n", @@ -1200,8 +1197,8 @@ " 2.000000e+01\n", " (U-238 / total)\n", " (nu-fission / flux)\n", - " 7.151165e-03\n", - " 5.480545e-05\n", + " 7.126668e-03\n", + " 5.296883e-05\n", " \n", " \n", " 5\n", @@ -1210,8 +1207,8 @@ " 2.000000e+01\n", " (U-238 / total)\n", " (scatter / flux)\n", - " 2.278981e-01\n", - " 6.424480e-04\n", + " 2.277460e-01\n", + " 1.003558e-03\n", " \n", " \n", " 6\n", @@ -1220,8 +1217,8 @@ " 2.000000e+01\n", " (U-235 / total)\n", " (nu-fission / flux)\n", - " 8.073636e-03\n", - " 4.374754e-05\n", + " 8.010911e-03\n", + " 6.802256e-05\n", " \n", " \n", " 7\n", @@ -1230,8 +1227,8 @@ " 2.000000e+01\n", " (U-235 / total)\n", " (scatter / flux)\n", - " 3.369592e-03\n", - " 8.971220e-06\n", + " 3.367794e-03\n", + " 1.443644e-05\n", " \n", " \n", "\n", @@ -1249,14 +1246,14 @@ "7 10000 6.25e-07 2.00e+01 (U-235 / total) \n", "\n", " score mean std. dev. \n", - "0 (nu-fission / flux) 6.63e-07 7.08e-09 \n", - "1 (scatter / flux) 2.10e-01 2.00e-03 \n", - "2 (nu-fission / flux) 3.55e-01 3.85e-03 \n", - "3 (scatter / flux) 5.55e-03 5.32e-05 \n", - "4 (nu-fission / flux) 7.15e-03 5.48e-05 \n", - "5 (scatter / flux) 2.28e-01 6.42e-04 \n", - "6 (nu-fission / flux) 8.07e-03 4.37e-05 \n", - "7 (scatter / flux) 3.37e-03 8.97e-06 " + "0 (nu-fission / flux) 6.64e-07 4.13e-09 \n", + "1 (scatter / flux) 2.10e-01 1.23e-03 \n", + "2 (nu-fission / flux) 3.55e-01 2.25e-03 \n", + "3 (scatter / flux) 5.55e-03 3.27e-05 \n", + "4 (nu-fission / flux) 7.13e-03 5.30e-05 \n", + "5 (scatter / flux) 2.28e-01 1.00e-03 \n", + "6 (nu-fission / flux) 8.01e-03 6.80e-05 \n", + "7 (scatter / flux) 3.37e-03 1.44e-05 " ] }, "execution_count": 33, @@ -1287,11 +1284,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 6.62778145e-07]\n", - " [ 3.54724568e-01]]\n", + "[[[ 6.63696783e-07]\n", + " [ 3.55245846e-01]]\n", "\n", - " [[ 7.15116511e-03]\n", - " [ 8.07363630e-03]]]\n" + " [[ 7.12666800e-03]\n", + " [ 8.01091088e-03]]]\n" ] } ], @@ -1319,9 +1316,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00555418]]\n", + "[[[ 0.00555435]]\n", "\n", - " [[ 0.00336959]]]\n" + " [[ 0.00336779]]]\n" ] } ], @@ -1343,8 +1340,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.22789806]\n", - " [ 0.00336959]]]\n" + "[[[ 0.22774598]\n", + " [ 0.00336779]]]\n" ] } ], @@ -1396,7 +1393,7 @@ " U-238\n", " nu-fission\n", " 0.000002\n", - " 1.338459e-08\n", + " 7.473789e-09\n", " \n", " \n", " 1\n", @@ -1405,8 +1402,8 @@ " 6.250000e-07\n", " U-235\n", " nu-fission\n", - " 0.864141\n", - " 7.363278e-03\n", + " 0.861547\n", + " 4.131310e-03\n", " \n", " \n", " 2\n", @@ -1415,8 +1412,8 @@ " 2.000000e+01\n", " U-238\n", " nu-fission\n", - " 0.082111\n", - " 6.090952e-04\n", + " 0.082356\n", + " 5.560461e-04\n", " \n", " \n", " 3\n", @@ -1425,8 +1422,8 @@ " 2.000000e+01\n", " U-235\n", " nu-fission\n", - " 0.092703\n", - " 4.695215e-04\n", + " 0.092574\n", + " 7.315442e-04\n", " \n", " \n", "\n", @@ -1435,15 +1432,15 @@ "text/plain": [ " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", "0 10000 0.00e+00 6.25e-07 U-238 nu-fission 1.61e-06 \n", - "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 8.64e-01 \n", - "2 10000 6.25e-07 2.00e+01 U-238 nu-fission 8.21e-02 \n", - "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 9.27e-02 \n", + "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 8.62e-01 \n", + "2 10000 6.25e-07 2.00e+01 U-238 nu-fission 8.24e-02 \n", + "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 9.26e-02 \n", "\n", " std. dev. \n", - "0 1.34e-08 \n", - "1 7.36e-03 \n", - "2 6.09e-04 \n", - "3 4.70e-04 " + "0 7.47e-09 \n", + "1 4.13e-03 \n", + "2 5.56e-04 \n", + "3 7.32e-04 " ] }, "execution_count": 37, @@ -1489,8 +1486,8 @@ " 1.080060e-07\n", " H-1\n", " scatter\n", - " 4.591022\n", - " 0.043961\n", + " 4.599225\n", + " 0.015973\n", " \n", " \n", " 1\n", @@ -1499,8 +1496,8 @@ " 1.166529e-06\n", " H-1\n", " scatter\n", - " 2.032481\n", - " 0.010876\n", + " 2.037260\n", + " 0.011236\n", " \n", " \n", " 2\n", @@ -1509,8 +1506,8 @@ " 1.259921e-05\n", " H-1\n", " scatter\n", - " 1.654187\n", - " 0.012130\n", + " 1.662552\n", + " 0.010280\n", " \n", " \n", " 3\n", @@ -1519,8 +1516,8 @@ " 1.360790e-04\n", " H-1\n", " scatter\n", - " 1.864771\n", - " 0.011649\n", + " 1.872201\n", + " 0.012136\n", " \n", " \n", " 4\n", @@ -1529,8 +1526,8 @@ " 1.469734e-03\n", " H-1\n", " scatter\n", - " 2.056893\n", - " 0.008555\n", + " 2.080459\n", + " 0.013155\n", " \n", " \n", " 5\n", @@ -1539,8 +1536,8 @@ " 1.587401e-02\n", " H-1\n", " scatter\n", - " 2.138833\n", - " 0.015180\n", + " 2.154996\n", + " 0.011975\n", " \n", " \n", " 6\n", @@ -1549,8 +1546,8 @@ " 1.714488e-01\n", " H-1\n", " scatter\n", - " 2.207209\n", - " 0.014853\n", + " 2.218740\n", + " 0.008528\n", " \n", " \n", " 7\n", @@ -1559,8 +1556,8 @@ " 1.851749e+00\n", " H-1\n", " scatter\n", - " 1.999407\n", - " 0.009053\n", + " 2.010517\n", + " 0.009187\n", " \n", " \n", " 8\n", @@ -1569,8 +1566,8 @@ " 2.000000e+01\n", " H-1\n", " scatter\n", - " 0.368760\n", - " 0.003373\n", + " 0.372022\n", + " 0.003196\n", " \n", " \n", "\n", @@ -1578,26 +1575,26 @@ ], "text/plain": [ " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.59e+00 \n", - "1 10002 1.08e-07 1.17e-06 H-1 scatter 2.03e+00 \n", - "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.65e+00 \n", - "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.86e+00 \n", - "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.06e+00 \n", - "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.14e+00 \n", - "6 10002 1.59e-02 1.71e-01 H-1 scatter 2.21e+00 \n", - "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.00e+00 \n", - "8 10002 1.85e+00 2.00e+01 H-1 scatter 3.69e-01 \n", + "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.60e+00 \n", + "1 10002 1.08e-07 1.17e-06 H-1 scatter 2.04e+00 \n", + "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.66e+00 \n", + "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.87e+00 \n", + "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.08e+00 \n", + "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.15e+00 \n", + "6 10002 1.59e-02 1.71e-01 H-1 scatter 2.22e+00 \n", + "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.01e+00 \n", + "8 10002 1.85e+00 2.00e+01 H-1 scatter 3.72e-01 \n", "\n", " std. dev. \n", - "0 4.40e-02 \n", - "1 1.09e-02 \n", - "2 1.21e-02 \n", - "3 1.16e-02 \n", - "4 8.56e-03 \n", - "5 1.52e-02 \n", - "6 1.49e-02 \n", - "7 9.05e-03 \n", - "8 3.37e-03 " + "0 1.60e-02 \n", + "1 1.12e-02 \n", + "2 1.03e-02 \n", + "3 1.21e-02 \n", + "4 1.32e-02 \n", + "5 1.20e-02 \n", + "6 8.53e-03 \n", + "7 9.19e-03 \n", + "8 3.20e-03 " ] }, "execution_count": 38, diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index eb8fbd23f..fbe683661 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -1,6 +1,5 @@ import openmc -from openmc.source import Source -from openmc.stats import Box + ############################################################################### # Simulation Input File Parameters @@ -94,7 +93,12 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box([-4, -4, -4], [4, 4, 4])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-4., -4., -4., 4., 4., 4.] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.export_to_xml() diff --git a/examples/python/boxes/build-xml.py b/examples/python/boxes/build-xml.py index 2ae3ee612..ea3e81d17 100644 --- a/examples/python/boxes/build-xml.py +++ b/examples/python/boxes/build-xml.py @@ -1,8 +1,5 @@ import numpy as np - import openmc -from openmc.source import Source -from openmc.stats import Box ############################################################################### # Simulation Input File Parameters @@ -119,7 +116,11 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box(*outer_cube.bounding_box)) + +# Create an initial uniform spatial source distribution over fissionable zones +uniform_dist = openmc.stats.Box(*outer_cube.bounding_box, only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.export_to_xml() ############################################################################### diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index d1144cd91..7f92e6602 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -1,6 +1,4 @@ import openmc -from openmc.source import Source -from openmc.stats import Box ############################################################################### # Simulation Input File Parameters @@ -126,8 +124,12 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box( - [-1, -1, -1], [1, 1, 1])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-1, -1, -1, 1, 1, 1] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.keff_trigger = {'type' : 'std_dev', 'threshold' : 5E-4} settings_file.trigger_active = True settings_file.trigger_max_batches = 100 diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index e4ac84839..f54f06453 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -1,6 +1,4 @@ import openmc -from openmc.source import Source -from openmc.stats import Box ############################################################################### # Simulation Input File Parameters @@ -137,8 +135,12 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box( - [-1, -1, -1], [1, 1, 1])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-1, -1, -1, 1, 1, 1] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.export_to_xml() diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index 78ee61eb4..f633fa96f 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -1,6 +1,4 @@ import openmc -from openmc.source import Source -from openmc.stats import Box ############################################################################### # Simulation Input File Parameters @@ -127,8 +125,12 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box( - [-1, -1, -1], [1, 1, 1])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-1, -1, -1, 1, 1, 1] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.trigger_active = True settings_file.trigger_max_batches = 100 settings_file.export_to_xml() diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index aa8714838..2e72d82ab 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -1,6 +1,4 @@ import openmc -from openmc.source import Source -from openmc.stats import Box ############################################################################### # Simulation Input File Parameters @@ -170,8 +168,12 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box( - [-0.62992, -0.62992, -1], [0.62992, 0.62992, 1])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-0.62992, -0.62992, -1, 0.62992, 0.62992, 1] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.entropy_lower_left = [-0.39218, -0.39218, -1.e50] settings_file.entropy_upper_right = [0.39218, 0.39218, 1.e50] settings_file.entropy_dimension = [10, 10, 1] diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index ff75a64d9..60026c089 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -1,8 +1,6 @@ +import numpy as np import openmc import openmc.mgxs -from openmc.source import Source -from openmc.stats import Box -import numpy as np ############################################################################### # Simulation Input File Parameters @@ -145,7 +143,13 @@ settings_file.cross_sections = "./mg_cross_sections.xml" settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box([-0.63, -0.63, -1.], [0.63, 0.63, 1.])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-0.63, -0.63, -1, 0.63, 0.63, 1] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:]) +settings_file.source = openmc.source.Source(space=uniform_dist) + +settings_file.export_to_xml() ############################################################################### # Exporting to OpenMC tallies.xml File diff --git a/examples/python/reflective/build-xml.py b/examples/python/reflective/build-xml.py index 7e4fd30be..01a5c7815 100644 --- a/examples/python/reflective/build-xml.py +++ b/examples/python/reflective/build-xml.py @@ -1,8 +1,5 @@ import numpy as np - import openmc -from openmc.stats import Box -from openmc.source import Source ############################################################################### # Simulation Input File Parameters @@ -86,5 +83,10 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box(*cell.region.bounding_box)) + +# Create an initial uniform spatial source distribution over fissionable zones +uniform_dist = openmc.stats.Box(*cell.region.bounding_box, + only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.export_to_xml() From d154b760b2a2eefda8eed00445a529f6644b2eed Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 8 Apr 2016 13:20:26 -0400 Subject: [PATCH 091/259] Ran updated MGXS Part II Notebook on machine with PyNe --- .../pythonapi/examples/mgxs-part-ii.ipynb | 894 +++++++++--------- 1 file changed, 459 insertions(+), 435 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 3ca02ccb2..6483a5c29 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -34,12 +34,16 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:884: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n", + " warnings.warn(self.msg_depr % (key, alt_key))\n", + "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", "\n", - " warnings.warn(_use_error_msg)\n" + " warnings.warn(_use_error_msg)\n", + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:9: QAWarning: pyne.rxname is not yet QA compliant.\n", + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:9: QAWarning: pyne.ace is not yet QA compliant.\n" ] } ], @@ -448,8 +452,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 11:47:45\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-08 13:04:46\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -565,20 +569,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.6900E-01 seconds\n", - " Reading cross sections = 1.4200E-01 seconds\n", - " Total time in simulation = 3.7697E+02 seconds\n", - " Time in transport only = 3.7690E+02 seconds\n", - " Time in inactive batches = 2.4323E+01 seconds\n", - " Time in active batches = 3.5265E+02 seconds\n", - " Time synchronizing fission bank = 2.8000E-02 seconds\n", - " Sampling source sites = 1.6000E-02 seconds\n", - " SEND/RECV source sites = 1.0000E-02 seconds\n", - " Time accumulating tallies = 5.0000E-03 seconds\n", - " Total time for finalization = 2.6000E-02 seconds\n", - " Total time elapsed = 3.7766E+02 seconds\n", - " Calculation Rate (inactive) = 4111.33 neutrons/second\n", - " Calculation Rate (active) = 1134.27 neutrons/second\n", + " Total time for initialization = 1.2890E+00 seconds\n", + " Reading cross sections = 3.0900E-01 seconds\n", + " Total time in simulation = 6.3434E+02 seconds\n", + " Time in transport only = 6.3421E+02 seconds\n", + " Time in inactive batches = 3.6864E+01 seconds\n", + " Time in active batches = 5.9748E+02 seconds\n", + " Time synchronizing fission bank = 5.5000E-02 seconds\n", + " Sampling source sites = 3.4000E-02 seconds\n", + " SEND/RECV source sites = 1.5000E-02 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 3.5000E-02 seconds\n", + " Total time elapsed = 6.3582E+02 seconds\n", + " Calculation Rate (inactive) = 2712.67 neutrons/second\n", + " Calculation Rate (active) = 669.482 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1188,169 +1192,169 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.574577\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.679838\tres = 4.254E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.660822\tres = 1.832E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.658929\tres = 2.797E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.866E-03\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.625823\tres = 2.415E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.606706\tres = 2.673E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.587527\tres = 3.055E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.569083\tres = 3.161E-02\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.551772\tres = 3.139E-02\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.536108\tres = 3.042E-02\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.522354\tres = 2.839E-02\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.510694\tres = 2.565E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.501194\tres = 2.232E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.493922\tres = 1.860E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.488872\tres = 1.451E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.486015\tres = 1.022E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.485301\tres = 5.845E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.486659\tres = 1.469E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.489990\tres = 2.797E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.495186\tres = 6.846E-03\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.502132\tres = 1.060E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.510702\tres = 1.403E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.520762\tres = 1.707E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.532180\tres = 1.970E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.544822\tres = 2.193E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.558552\tres = 2.375E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.573240\tres = 2.520E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.588757\tres = 2.630E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.604978\tres = 2.707E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.621786\tres = 2.755E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.639068\tres = 2.778E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656717\tres = 2.779E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.674634\tres = 2.762E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.692727\tres = 2.728E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.710910\tres = 2.682E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.729105\tres = 2.625E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.747241\tres = 2.559E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.765251\tres = 2.487E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.783079\tres = 2.410E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.800673\tres = 2.330E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.817986\tres = 2.247E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.834979\tres = 2.162E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.851616\tres = 2.077E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.867869\tres = 1.993E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883712\tres = 1.908E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.899125\tres = 1.826E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914092\tres = 1.744E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.928599\tres = 1.665E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.942637\tres = 1.587E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.956200\tres = 1.512E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.969285\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.981891\tres = 1.368E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.994018\tres = 1.301E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.005671\tres = 1.235E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.016854\tres = 1.172E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.027574\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037838\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.047656\tres = 9.989E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.057038\tres = 9.460E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.065995\tres = 8.955E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.074537\tres = 8.473E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.082677\tres = 8.014E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.090428\tres = 7.576E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.097802\tres = 7.159E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.104812\tres = 6.762E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.111471\tres = 6.385E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.117792\tres = 6.027E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.687E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.129473\tres = 5.364E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.134858\tres = 5.058E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139957\tres = 4.768E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.144782\tres = 4.493E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.149346\tres = 4.233E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.153659\tres = 3.986E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.157734\tres = 3.753E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.161581\tres = 3.532E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.165212\tres = 3.323E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.168638\tres = 3.126E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.171868\tres = 2.940E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.174912\tres = 2.764E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.177780\tres = 2.598E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.180481\tres = 2.441E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.183023\tres = 2.293E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.185416\tres = 2.154E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.187666\tres = 2.022E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.189782\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.191771\tres = 1.782E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.193640\tres = 1.672E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.195395\tres = 1.568E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.197044\tres = 1.471E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.198591\tres = 1.379E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.200044\tres = 1.293E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.201406\tres = 1.212E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.202685\tres = 1.136E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.203883\tres = 1.064E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.205007\tres = 9.966E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.206060\tres = 9.333E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.207047\tres = 8.739E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.207971\tres = 8.181E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.208837\tres = 7.658E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.209647\tres = 7.167E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.210406\tres = 6.706E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.211116\tres = 6.273E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.211781\tres = 5.868E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.212403\tres = 5.488E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.212984\tres = 5.131E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.213528\tres = 4.797E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.214037\tres = 4.484E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.214512\tres = 4.191E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.214957\tres = 3.917E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.215372\tres = 3.659E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.215760\tres = 3.419E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.216123\tres = 3.193E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.216462\tres = 2.983E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.216778\tres = 2.785E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.217073\tres = 2.601E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.217349\tres = 2.428E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.217607\tres = 2.266E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.217847\tres = 2.115E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.218072\tres = 1.974E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.218281\tres = 1.842E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.218476\tres = 1.719E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.218659\tres = 1.604E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.218829\tres = 1.496E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.218987\tres = 1.395E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.219135\tres = 1.301E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.219273\tres = 1.214E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.219402\tres = 1.132E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.219522\tres = 1.055E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.219634\tres = 9.837E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.219738\tres = 9.170E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.219835\tres = 8.548E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.219926\tres = 7.967E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.220010\tres = 7.425E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.220089\tres = 6.919E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.220162\tres = 6.447E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.220230\tres = 6.007E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.220294\tres = 5.597E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.220353\tres = 5.214E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.220408\tres = 4.857E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.220460\tres = 4.524E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.220508\tres = 4.214E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.220552\tres = 3.924E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.220594\tres = 3.655E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.220633\tres = 3.403E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.220669\tres = 3.169E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.220702\tres = 2.950E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.220733\tres = 2.747E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.220762\tres = 2.557E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.220789\tres = 2.381E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.220815\tres = 2.216E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.220838\tres = 2.063E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.220860\tres = 1.920E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.220880\tres = 1.787E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.220899\tres = 1.663E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.220917\tres = 1.548E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.220933\tres = 1.440E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.220948\tres = 1.340E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.220962\tres = 1.247E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.220976\tres = 1.160E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.220988\tres = 1.080E-05\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.220999\tres = 1.004E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.574672\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.679815\tres = 4.253E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.660826\tres = 1.830E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.658940\tres = 2.793E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.853E-03\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.625810\tres = 2.417E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.606678\tres = 2.675E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.587485\tres = 3.057E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.569029\tres = 3.164E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.551707\tres = 3.142E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.536035\tres = 3.044E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.522275\tres = 2.841E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.510610\tres = 2.567E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.493832\tres = 1.861E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.488781\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.485924\tres = 1.023E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485211\tres = 5.846E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.467E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.489905\tres = 2.802E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495105\tres = 6.853E-03\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.502056\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.510630\tres = 1.404E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.520696\tres = 1.708E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532120\tres = 1.971E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.544768\tres = 2.194E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558505\tres = 2.377E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.573200\tres = 2.522E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.588723\tres = 2.631E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.604951\tres = 2.708E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.621765\tres = 2.756E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639053\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.780E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.674632\tres = 2.763E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.692730\tres = 2.729E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.710919\tres = 2.683E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729118\tres = 2.626E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.747258\tres = 2.560E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.765273\tres = 2.488E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783104\tres = 2.411E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.800701\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.818017\tres = 2.247E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.835012\tres = 2.163E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.851651\tres = 2.078E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.867906\tres = 1.993E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883750\tres = 1.909E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.899164\tres = 1.826E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914131\tres = 1.744E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.665E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.942676\tres = 1.587E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.956239\tres = 1.512E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.969323\tres = 1.439E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.981927\tres = 1.368E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.994054\tres = 1.300E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.005705\tres = 1.235E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.016886\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.027604\tres = 1.112E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037866\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.047682\tres = 9.987E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057062\tres = 9.458E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.066016\tres = 8.953E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.074556\tres = 8.471E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082693\tres = 8.011E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.090442\tres = 7.573E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.097813\tres = 7.156E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104820\tres = 6.760E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.111477\tres = 6.383E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.117795\tres = 6.025E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.685E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129470\tres = 5.362E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.134853\tres = 5.056E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139950\tres = 4.766E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.144772\tres = 4.491E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.149333\tres = 4.230E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153643\tres = 3.984E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.157716\tres = 3.751E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.161561\tres = 3.530E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.321E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.168613\tres = 3.124E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.171841\tres = 2.938E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.174883\tres = 2.762E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.177749\tres = 2.596E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.180447\tres = 2.439E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.182988\tres = 2.291E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.185378\tres = 2.152E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.187627\tres = 2.021E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.189741\tres = 1.897E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191728\tres = 1.780E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.193595\tres = 1.670E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195349\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.196996\tres = 1.469E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.198543\tres = 1.378E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.292E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.201355\tres = 1.211E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.134E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203829\tres = 1.063E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.956E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.324E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.206989\tres = 8.730E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.173E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208777\tres = 7.650E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209587\tres = 7.159E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.698E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211054\tres = 6.266E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211718\tres = 5.861E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212339\tres = 5.481E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212920\tres = 5.125E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213463\tres = 4.792E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.213971\tres = 4.479E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214446\tres = 4.186E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214890\tres = 3.912E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215305\tres = 3.655E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215692\tres = 3.414E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216055\tres = 3.189E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.979E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.782E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.217004\tres = 2.597E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217279\tres = 2.425E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217536\tres = 2.263E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217776\tres = 2.113E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.218000\tres = 1.971E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218209\tres = 1.840E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218404\tres = 1.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.601E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.494E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.393E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219062\tres = 1.299E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.212E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.130E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219448\tres = 1.054E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.822E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.156E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.534E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.954E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.219936\tres = 7.413E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.908E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220087\tres = 6.437E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220156\tres = 5.997E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220219\tres = 5.587E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220278\tres = 5.205E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220333\tres = 4.848E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220385\tres = 4.516E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220433\tres = 4.206E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220477\tres = 3.917E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220518\tres = 3.648E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220557\tres = 3.397E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220593\tres = 3.163E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220627\tres = 2.945E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220658\tres = 2.742E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220687\tres = 2.552E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220714\tres = 2.376E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220739\tres = 2.212E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220762\tres = 2.059E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220784\tres = 1.916E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220804\tres = 1.783E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220823\tres = 1.660E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220841\tres = 1.545E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.338E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.245E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.158E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.077E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.002E-05\n" ] } ], @@ -1383,8 +1387,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.220999\n", - "bias [pcm]: -247.4\n" + "openmoc keff = 1.220923\n", + "bias [pcm]: -255.0\n" ] } ], @@ -1459,237 +1463,237 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.495686\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.557452\tres = 5.043E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.518267\tres = 1.246E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.509166\tres = 7.029E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.496443\tres = 1.756E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.488528\tres = 2.499E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.482840\tres = 1.594E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.479714\tres = 1.164E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.478769\tres = 6.475E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.479802\tres = 1.970E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.482610\tres = 2.157E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.487005\tres = 5.852E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.492817\tres = 9.108E-03\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.499885\tres = 1.193E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.508063\tres = 1.434E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.517218\tres = 1.636E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.527227\tres = 1.802E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.537978\tres = 1.935E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.549367\tres = 2.039E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.561302\tres = 2.117E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.573697\tres = 2.172E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.586472\tres = 2.208E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.599558\tres = 2.227E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.612889\tres = 2.231E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.626407\tres = 2.224E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.640059\tres = 2.206E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.653796\tres = 2.179E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.667574\tres = 2.146E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.681356\tres = 2.108E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.695105\tres = 2.064E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.708791\tres = 2.018E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.722384\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.735861\tres = 1.918E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.749198\tres = 1.866E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.762377\tres = 1.812E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.775379\tres = 1.759E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.788191\tres = 1.706E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800799\tres = 1.652E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.813193\tres = 1.600E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.825361\tres = 1.548E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.837298\tres = 1.496E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.848995\tres = 1.446E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.860449\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871654\tres = 1.349E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.882607\tres = 1.302E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.893308\tres = 1.257E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.903754\tres = 1.212E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.913944\tres = 1.169E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.923880\tres = 1.128E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.933561\tres = 1.087E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.942990\tres = 1.048E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.952168\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.961097\tres = 9.733E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969781\tres = 9.378E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.978222\tres = 9.035E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.986423\tres = 8.704E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 0.994389\tres = 8.384E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.002123\tres = 8.075E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.009629\tres = 7.778E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.016912\tres = 7.490E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.023975\tres = 7.213E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.030824\tres = 6.946E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.037462\tres = 6.688E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.043895\tres = 6.440E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.050126\tres = 6.200E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.056162\tres = 5.970E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.062006\tres = 5.747E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.067663\tres = 5.533E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.073138\tres = 5.327E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.078436\tres = 5.128E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.083561\tres = 4.937E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.088518\tres = 4.752E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.093311\tres = 4.575E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.097945\tres = 4.404E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.102425\tres = 4.239E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106755\tres = 4.080E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.110939\tres = 3.927E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.114981\tres = 3.780E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.118886\tres = 3.639E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.122658\tres = 3.502E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.126301\tres = 3.371E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.129819\tres = 3.245E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.133215\tres = 3.123E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.136493\tres = 3.006E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.139658\tres = 2.893E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142712\tres = 2.784E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.145659\tres = 2.680E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.148503\tres = 2.579E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.151247\tres = 2.482E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.153894\tres = 2.389E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.156448\tres = 2.299E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.158911\tres = 2.213E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.161286\tres = 2.130E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.163576\tres = 2.050E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165785\tres = 1.973E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.167915\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.169968\tres = 1.827E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.171948\tres = 1.758E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173856\tres = 1.692E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.175695\tres = 1.628E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.177468\tres = 1.567E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.179176\tres = 1.508E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.180823\tres = 1.451E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.182410\tres = 1.396E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.183939\tres = 1.344E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.185412\tres = 1.293E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.186831\tres = 1.244E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.188198\tres = 1.197E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.189516\tres = 1.152E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.190785\tres = 1.109E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.192007\tres = 1.067E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.193184\tres = 1.027E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.194319\tres = 9.878E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.195411\tres = 9.505E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.196463\tres = 9.146E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.197476\tres = 8.800E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.198451\tres = 8.467E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.199391\tres = 8.147E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.200296\tres = 7.839E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.201167\tres = 7.543E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.202006\tres = 7.257E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202813\tres = 6.983E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.203591\tres = 6.719E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.204339\tres = 6.464E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.205060\tres = 6.220E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205754\tres = 5.984E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.206422\tres = 5.758E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.207065\tres = 5.540E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.207684\tres = 5.330E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.208279\tres = 5.128E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208853\tres = 4.933E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.209405\tres = 4.746E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.209936\tres = 4.566E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.210448\tres = 4.393E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.210940\tres = 4.227E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.211414\tres = 4.066E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211870\tres = 3.912E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.212308\tres = 3.764E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212731\tres = 3.621E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.213137\tres = 3.483E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.213528\tres = 3.351E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.213905\tres = 3.224E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.214267\tres = 3.102E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.214615\tres = 2.984E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.214951\tres = 2.870E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.215273\tres = 2.761E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.215584\tres = 2.656E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215883\tres = 2.555E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.216170\tres = 2.458E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.216447\tres = 2.365E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216713\tres = 2.275E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.216969\tres = 2.189E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.217216\tres = 2.105E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.217453\tres = 2.025E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.217681\tres = 1.948E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.217901\tres = 1.874E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.218112\tres = 1.803E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.218315\tres = 1.734E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.218511\tres = 1.668E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.218699\tres = 1.605E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218880\tres = 1.544E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219054\tres = 1.485E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.219221\tres = 1.428E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.219382\tres = 1.374E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.219537\tres = 1.322E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.219687\tres = 1.271E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219830\tres = 1.223E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.219968\tres = 1.176E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.220101\tres = 1.131E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.220229\tres = 1.088E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.220351\tres = 1.047E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.220470\tres = 1.007E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.220583\tres = 9.686E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.220693\tres = 9.317E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220798\tres = 8.962E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.220899\tres = 8.620E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.220997\tres = 8.291E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.221090\tres = 7.975E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.221180\tres = 7.671E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.221267\tres = 7.379E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.221350\tres = 7.097E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.221431\tres = 6.826E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.221508\tres = 6.566E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.221582\tres = 6.316E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.221653\tres = 6.075E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221722\tres = 5.843E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221788\tres = 5.620E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221851\tres = 5.406E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.221913\tres = 5.199E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.221971\tres = 5.001E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.222028\tres = 4.810E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.222082\tres = 4.626E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.222135\tres = 4.450E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.222185\tres = 4.280E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.222233\tres = 4.117E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.222280\tres = 3.959E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.222325\tres = 3.808E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.222368\tres = 3.663E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.222409\tres = 3.523E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.222449\tres = 3.389E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.222487\tres = 3.259E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.222524\tres = 3.135E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.222560\tres = 3.015E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.222594\tres = 2.900E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.222626\tres = 2.789E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.222658\tres = 2.683E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.222688\tres = 2.580E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222718\tres = 2.482E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222746\tres = 2.387E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222773\tres = 2.296E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222799\tres = 2.208E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222824\tres = 2.124E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222848\tres = 2.042E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222871\tres = 1.964E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222893\tres = 1.889E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.222914\tres = 1.817E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.222935\tres = 1.748E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.222955\tres = 1.681E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.222974\tres = 1.617E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.222992\tres = 1.555E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.223009\tres = 1.496E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.223026\tres = 1.438E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.223043\tres = 1.383E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.223058\tres = 1.331E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.223073\tres = 1.280E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.223088\tres = 1.231E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.223102\tres = 1.184E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.223115\tres = 1.138E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.223128\tres = 1.095E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.223140\tres = 1.053E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.223152\tres = 1.013E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.495816\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.557477\tres = 5.042E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.518301\tres = 1.244E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.509212\tres = 7.027E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.496489\tres = 1.754E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.488581\tres = 2.498E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.482897\tres = 1.593E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.479775\tres = 1.163E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.464E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.479872\tres = 1.960E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.482685\tres = 2.166E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.487085\tres = 5.861E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.492901\tres = 9.116E-03\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.499973\tres = 1.194E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.508155\tres = 1.435E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.517314\tres = 1.637E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.527327\tres = 1.802E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.538081\tres = 1.936E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.549475\tres = 2.039E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.561413\tres = 2.117E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.573810\tres = 2.173E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.586589\tres = 2.208E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.599678\tres = 2.227E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.613012\tres = 2.231E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.224E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.640186\tres = 2.206E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.653925\tres = 2.179E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.667706\tres = 2.146E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.681489\tres = 2.107E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.695240\tres = 2.064E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.708927\tres = 2.018E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.722522\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.736000\tres = 1.918E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.749339\tres = 1.865E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.762519\tres = 1.812E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.775522\tres = 1.759E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.788335\tres = 1.705E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800944\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.813338\tres = 1.599E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.825507\tres = 1.547E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.837444\tres = 1.496E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.849142\tres = 1.446E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.860595\tres = 1.397E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871801\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.882755\tres = 1.302E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.893455\tres = 1.256E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.903901\tres = 1.212E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914091\tres = 1.169E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.924027\tres = 1.127E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.933708\tres = 1.087E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.943137\tres = 1.048E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.952314\tres = 1.010E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961243\tres = 9.731E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.376E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.978367\tres = 9.033E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.986568\tres = 8.702E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 0.994534\tres = 8.382E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.002267\tres = 8.074E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.009773\tres = 7.776E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.489E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.024118\tres = 7.212E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.030966\tres = 6.944E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.037603\tres = 6.687E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.044036\tres = 6.438E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.050267\tres = 6.199E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.968E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.062145\tres = 5.746E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.532E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.073276\tres = 5.326E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.127E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083698\tres = 4.935E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.088654\tres = 4.751E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.093447\tres = 4.573E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.402E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.102560\tres = 4.238E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.079E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.111072\tres = 3.926E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.115114\tres = 3.779E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.119018\tres = 3.638E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.122790\tres = 3.501E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.126432\tres = 3.370E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.129949\tres = 3.244E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.133344\tres = 3.122E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.136622\tres = 3.005E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.139786\tres = 2.892E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142840\tres = 2.784E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.145786\tres = 2.679E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148630\tres = 2.579E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.151373\tres = 2.482E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.154020\tres = 2.388E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156573\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.159035\tres = 2.212E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.161410\tres = 2.129E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.163700\tres = 2.049E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165909\tres = 1.972E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.168038\tres = 1.898E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.170091\tres = 1.826E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.758E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.691E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.175816\tres = 1.628E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.566E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179297\tres = 1.507E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.451E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.182529\tres = 1.396E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.184058\tres = 1.343E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.185530\tres = 1.293E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.186949\tres = 1.244E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.188316\tres = 1.197E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.189633\tres = 1.152E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.108E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.192124\tres = 1.066E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.193301\tres = 1.026E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.874E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195527\tres = 9.501E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.142E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.797E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.464E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.144E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.836E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.540E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202119\tres = 7.255E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203704\tres = 6.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204452\tres = 6.462E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.217E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.982E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206534\tres = 5.755E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.537E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.327E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208391\tres = 5.126E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.931E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.209517\tres = 4.744E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.565E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.391E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.211051\tres = 4.225E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211525\tres = 4.065E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.910E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.762E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.619E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.482E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.350E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.214015\tres = 3.222E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214377\tres = 3.100E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214725\tres = 2.982E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215383\tres = 2.760E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215693\tres = 2.655E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215992\tres = 2.554E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216280\tres = 2.457E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216556\tres = 2.364E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.274E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.217078\tres = 2.187E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217325\tres = 2.104E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.217562\tres = 2.024E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217790\tres = 1.947E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.218009\tres = 1.873E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218220\tres = 1.802E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.733E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218619\tres = 1.667E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218807\tres = 1.604E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218988\tres = 1.543E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219162\tres = 1.484E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219329\tres = 1.428E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.373E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.321E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.219794\tres = 1.271E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.219938\tres = 1.222E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.220076\tres = 1.176E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220208\tres = 1.131E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220336\tres = 1.088E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220459\tres = 1.046E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220577\tres = 1.006E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220691\tres = 9.681E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220800\tres = 9.312E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220905\tres = 8.957E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.615E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.287E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.971E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.667E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.374E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.093E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221537\tres = 6.823E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.562E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.312E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.071E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.840E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.617E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.402E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.196E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.222078\tres = 4.998E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.807E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222189\tres = 4.624E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.447E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.277E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222340\tres = 4.114E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.957E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.806E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.661E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.521E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.386E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222594\tres = 3.257E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222630\tres = 3.133E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222666\tres = 3.013E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222700\tres = 2.898E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222733\tres = 2.787E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222764\tres = 2.681E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222795\tres = 2.578E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222824\tres = 2.480E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222852\tres = 2.385E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222879\tres = 2.294E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222905\tres = 2.206E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222930\tres = 2.122E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222954\tres = 2.041E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222977\tres = 1.963E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222999\tres = 1.888E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.816E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.747E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.223061\tres = 1.680E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.223080\tres = 1.616E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.554E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223116\tres = 1.495E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.382E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223164\tres = 1.330E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223179\tres = 1.279E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.230E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.183E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.138E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.094E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.052E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.012E-05\n" ] } ], @@ -1715,8 +1719,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.223152\n", - "bias [pcm]: -32.1\n" + "openmoc keff = 1.223258\n", + "bias [pcm]: -21.5\n" ] } ], @@ -1766,19 +1770,7 @@ "metadata": { "collapsed": false }, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'pyne' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Instantiate a PyNE ACE continuous-energy cross sections library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mpyne_lib\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mLibrary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../../../../data/nndc/293.6K/U_235_293.6K.ace'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mpyne_lib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'92235.71c'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;31m# Extract the U-235 data from the library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNameError\u001b[0m: name 'pyne' is not defined" - ] - } - ], + "outputs": [], "source": [ "# Instantiate a PyNE ACE continuous-energy cross sections library\n", "pyne_lib = pyne.ace.Library('../../../../data/nndc/293.6K/U_235_293.6K.ace')\n", @@ -1800,11 +1792,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(9.9999999999999994e-12, 20.0)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEfCAYAAACqKwpQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XeYVOX1wPHvzGwvgOKCoqigeBQEC4ian6ighhXEEgli\nAwNEQMUSNYq9RkNiogbEBipWsEYEwYqQWIKiKMVXEFERFaTJ9p3y++POsNN3Zpm+5/M8POzcvXPP\nO7O798zbbR6PB6WUUsqfPd0FUEoplXk0OSillAqhyUEppVQITQ5KKaVCaHJQSikVQpODUkqpEHnp\nLoDKLiKyL7DaGJMXdPwC4DxjzIlhntMGeADog/WB5DljzE3e7x0HTALaAjXA5caYhd7r3Qf86Hep\nycaYyUHXPh54A1gTFPZ54EFgvjHm4Ba8zkuAjsaYG+N9bpRrng/8CSgGCoAPgKuNMesTFSPGcpwE\n3ArsinUPWAtcaoxZ0cLrHQnUGmM+T8b7ptJDk4NKhb8ADUB3oBT4TEQWAf8BXgQGGmM+EZHTgFki\nsof3eS8bYy6I4frfGWMOjPC9uBMDQHAS2lkiMh4rMZxqjFkpIvnADcBCETnYGFPnd67dGONOZHy/\na7fDSpz9jTGfiojNW64XRaS7MaYlE5/+gPWz/DzR75tKH00OKhVeAlZ5b3jbRWQp0AP4HzDaGPOJ\n97y3gY5Au0QE9a/liMiewAxgD6xP7TONMddHOX4LsJcxZoyI7A08AuwLNAKTjDEzvNf/ALgL+CPW\nJ/E/GWNmBpXDDtwMjDDGrAQwxjQCN4vIp4DHW1MaglWD+gy4SkQuBcZh1bYMMMYYs9Fb2/onUATY\ngJuMMc9HOh70tnQDPMDn3nJ4ROQ+4Env1zbgRuBc73Ve8b4ml4h0BR4HOgFbgLFAX2AEcKqIdADa\nJOp9U+mlfQ4q6Ywx7xhjvocdTUy/AT4yxmwzxvzbe9wGjAYWGWO2eJ96qIgsEJGvRGSaiLTdiWJc\nDiw0xnTHqk3s7a2hRDru72FggTFGgMHA/d4bHMBugNsY09N7rTvCxD4Q2AV4M/gbxphXjDH13oe/\nBcYbY64SkaOAq4HjvbWi77BupgB/B67wlvlk4IxmjvtbDvwKLBCRc0RkD2OM0xizwfv984BhWDf9\n/bz/xvu9D88aY/YH7sRKKA9iJfk/G2P+keD3TaWRJgeVMiJSADwDvGqM+cDv+FCsvoVLgIu8h78C\n/o31afpQrE+k/4xw6b1F5Mugf38MOmcDMFBEjgEajTHnG2N+jHLcV7Z84CSsPhOMMd8C7wIDvKfk\nAY95v14C7B2mfLsCG2NosllljFnl/Xow8ILfTftRrOThey0jRORAY8xaY8w5zRzfwRhTAxyNdUO/\nFVgvIh95ax1gvd/TvYnb6Y37OxEpAvoDz3rP+zdwZKQXkqD3TaWRNiupeLkBm4jYgm52DsAFICJv\nA3sC+PoCRKQMq3lpHVZTyQ7GmBeAF0RkAPC2iBxqjHkfeN93jojcBcyLUKawfQ5+n1LBSiwOrJtV\nJxGZAtwS5bhPe8BmjNnmd2wL0MH7tcsYU+372nutYL8AHUUkz3vDjWSz39cVgH9HtX/MUVj9FW+J\nSC0w0fseRjoewNsBfiVwpfc9uhiYKyKdsZr0rhKRC72n5wEbsRKcHdjmvYYHqIryWhLxvqk00uSg\n4vULVpt1Z6ymDp8DfI+NMSf4P0FE8oCXgWXGmCv8jncGDjXGzPY+7x0RWQcc6W2LrzHGbPSenofV\nbt0i3pvy3cDdInIA8DrwH2PMm+GOB71et4js4tfc1R74OY7wX2F9qj8VK0HuICI3AVPDPOdnbxyf\nHTGNMT8DE4AJIvJb4CURmRfl+I6buIh0A8qMMZ96r7UWuFpERgFdsRLSq2FGhRVi/dzbA794mwH3\nA76O8JoT8b6pNNJmJRUXb7PEE8Bt3mYiROQwYCTwrwhPuxTY7p8YvAqAJ0Wkh/c6AuyP1S4+FnhQ\nRPJExIF105vT0nKLyEPeIZxg3dB+wuoIDnvc7/U6gfne8iAi+wHHAm/FGtvbEX8DVpv7Ed7r5IvI\nHVj9Ar+GedocrOYcX4IYC8zxPm+BX7/IJ1hJ0xHhePCop8Oxksb+fu/NYMAJrMRqLjpfREq83xsr\nIiO9/SJvABd4nzYQmOutQTQSNIggEe+bSi9NDqolLsVqAvlMRFYCk4FzjDGfRzh/LNA3qE/gdmPM\n11ijVZ4VkS+xRsZc4m13vwPYjnXDWoF187p6J8r8IHCnN84KrNEyb0c57m8ccLz3nJexRg19H09w\nY8xj3vI/IiJfAV9gdcoO8OuQ9j//f1g1mkXeuO2A672jnB7Fan5bAbwHTPA234Q7XhN03ZlYHdsv\niogRka+xfp6V3maeV4DZwBJv3FOxbvIAY4AhIrIG6+fj69N4GfiriAR3SO/0+6bSx6b7OSillAqm\nNQellFIhNDkopZQKoclBKaVUCE0OSimlQmT9PAen0+XZsqWm+RMTYJddSsjFWKmOp7GyL57Gyq5Y\nscSrqCi3RXt+1tcc8vJSN7EyV2OlOp7Gyr54Giu7YiUiXtYnB6WUUomnyUEppVQITQ5KKaVCaHJQ\nSikVQpODUkqpEJoclFJKhdDkoJRSKkTWT4LTRWWVUonw/fffcf/997B16xZcLjc9e/bi4osvp6Cg\nIOZrvPvuW/TvfyKrVhkWLlzA6NFjk1ji5Mr6mkOfPrBuXdSJfkopFZXL5eKGG/7MOeeM4JFHZjBt\n2pMAPPbYI3Fd56mnngCgWzfJ6sQAOVBzOPdcOPnkEh55pI6jjnKluzhKqSy0ePFH7L33vhx2WG8A\nbDYbF110KTabnVmznuXtt98AoF+/4zjvvAu4885b2G23CoxZyc8//8RNN93BJ5/8j9Wrv+K6665m\n6NCzeOmlWdxxxyTOOut0+vU7ni+/XEZhYQl/+9u9PPbYI7Rr144zzzyLNWtW849/TGLy5Id5++03\nmTnzaRwOByIHcfnlVzFt2kNhz7333r/x5ZcrcblcnHHGUAYNGpLQ9yTraw5/+hPcd18do0YV8eST\n+ekujlIqC3333Vq6dTsg4FhhYRG//LKR11+fzZQpjzBlyiO8886b/PDDOgAaGhr4xz8m8/vfD2fe\nvDmcc84IysrK+Mtf/hZwnfXrf6CycjAzZ85k+/Zf+frrVWHLUFNTw8MPT+Heex9g6tRprF//A0uW\nfBz23F9/3cb77/+HBx+cztSp03A6nQl4FwJlfc0BYMAAF6+9VsOIEcUsX27n9tvrydc8oVTWOvbY\nEr78MnFrER14oIuFC6MtemfD7Q7ebhtWrTL06NGTvDzrVtmz5yGsXv0VAIccchgAFRUdWbFiecQr\nl5aWsv/+3QDo0KEDVVVVYc/7/vvv2GuvvSkpKQHgsMN689VXX4Y9t02btnTuvA/XXvsn+vc/kcrK\nwVFeW8vkRHIA6NrVw+uv1zB+fDHDhhXz6KN1tG+vvdVKZaPoN/LE22effXnxxVkBxxoaGvjmmzX4\nb6Xc2NiIzWY1uDgcTckr2nbL/uf5zrXZmvpJfZ/6bbbA6zidjRQWFoY9F+Cee+7HmC958815zJs3\nh3/+c0pMrzVWWd+s5K+8HJ54opY+fVwMHFjC8uU59fKUUklyxBFH8vPPP/Kf/ywEwO12M3Xqv/j+\n+29ZtuwLnE4nTqeTFSuWc8ABEvE6bndsH0hLS0v55ZdfAPj8888A6Nx5H9at+46ammoAPv10CSLd\nw57744/ref755xA5kEsuuZxt27a17IVHkTM1Bx+HA66/voHu3d0MHVrMpEn1DBmS+PY4pVTusNvt\n3HPPZCZNupPHHnuE/Px8jjjiSCZMuIKXX36BCRMuxO32MGTIaey++x4Rr3PAAcIf/ziC8eMvjRrv\nuOMGcPXVl7Fy5XIOPfRwAIqLi7n44su48soJ2Gx2evU6lEMOOZSOHTuGnLvbbhUsW7aUt99+g/z8\nfAYPPjVxb4aXLVp1KEt4Nm7cHvYbn39u54ILihk+vJGrrmrAvpMViYqKciLFSrRUxkp1PI2VffE0\nVnbFiiVezm/2E02vXm7mzath4UIHo0YVEaEfSCmlVJCcTg4AHTp4eOmlWnbd1cPgwSWsXasT5pRS\nqjk5nxwACgrgnnvqGTGikcGDS1i0KLXb9SmlVLZpFckBrGFio0c38tBDdYwbV8S0afm6LpNSSkXQ\napKDzzHHuJg7t4YZM/K58spCGhrSXSKllMo8rS45AOyzj4c5c2rYvNnG735XzIYN2g+hlFL+WmVy\nACgrg+nT6zjuOBeVlSUsXdpq3wqlWr0ff1zPMcf0YcWKZQHH//jHEdx55y1hnzN37mwmT74XsJbq\nBmu5jWnTHgp7/qJFixg/fhTjx49i1KhzeeihKbhcmbtYaKu+I9rtcPXVDdx6az3Dhxfz0ks5NydQ\nKRWjTp325J133trx+KeffuTXX3+N6bnNLdX944/rufvuu7n99r8ydep0Hn74Cb755mtee+3fAedl\n0rwzvRsCQ4Y46drVzciRxaxYYWfixAYcOqBJqValR4+efPLJ/3Y8fvfdtzniiKOor69j6NAhzJgx\nk5KSEiZPvpeuXffbcd4zz8wIu1S3v1deeZGRI0ey224VAOTl5XHHHZN2LOg3fPgZHH30MbRt25ZB\ng4Zw11230djYiN1u59prb8Rms3HDDdfs2Gdi9OjzueOOvzJ9+sOUlJSwdu1atm3bynXX3cQBBxyY\nkPejVdcc/PXo4Wb+/Bo++cTBiBHFxPiBQSmVaPfcQ/sunajo0CZh/9p36UTxA/+KGjYvL49u3YRl\ny74A4P33F3H00f/XbHEjLdXt77vv1nLAAYFLgvsSA1gL6h155NFccMEYHn30QU455TQmT36YM84Y\nyvTpD0eN73Q6ue++BxgzZhyPPfZos+WNVcYlBxEpFZGPReSUVMdu397DrFm1dO7s5uSTS1izRjuq\nlUq5e+7BXp3Y5Qzs1VUUT42eHAD69z+Bd999k59//ony8jYUFxcnJL7NZt+xour69T9wySUXMn78\naK655ood53Tv3gMAY1bu2HTo8MP7sGqViXrtPn36AnDwwb34/vtvE1JeSEFyEJHpIrJBRJYFHa8U\nESMiq0XkWr9vXQMErp2bQvn5cPfd9Ywb18gpp5TwzjvavqRUSl15Je7SsoRe0l1aRu34Cc2e16fP\nkXz88WLee+9djjuu/47jkZbNjsSXAC655EK+/HIlXbp0Zdky6xbYqdOeTJ78MDfddPuO1VYB8vJ8\nm9DYdvQ9NDY6sdnsAfGDy+BbCdZ6TuI+0Kaiz+FxYDIww3dARBzAFOAkYB2wWEReBfYEVgBFKShX\nVOef30i3bm7++Mcixo9vYPz4xnQXSanW4cor2TTiwrSEzs/P54ADhDlz/s2UKY/u2GynpKSUTZt+\nobBwT5Yv/yJk2e7gpbp9CcCnffv2XHbZOHr1OoLOnfcG4OOP/0dBQUFIGQ46qDtLlnzMSSdV8tln\nn3DggQdRUlLKli2b8Xg8bN68ifXr1+04//PPP+WEE05i+fLP2XffLgl7L5KeHIwxC0Vk36DDfYHV\nxpg1ACLyHHAaUAaUAt2BWhGZa4wJ3Z4pRY46ysXrr9cwcmQxy5c7mDGj+ecopbJb//4nsnXrFsrK\nmmovZ545jGuuuYK9996HLl26hjynuaW6Kyo68M9//pPbbrsdl8uF0+lkn3325ZZb7gw5d8yYcdx1\n1+3Mnv0KeXn5TJx4I23atKFPn76MGTOC/ffvRrduTcmpoaGBP//5cn7++Wduuun2BLwDlpQs2e1N\nDq8ZYw72Ph4KVBpjxngfnw8caYy5xPv4AuAXY8xrMVw+6S+gpgZGjYJvvoGXX4ZOnZIdUSmlmnft\ntdcycOBA+vfv3/zJoaK2QWXkUFZjzOPxnJ+KNdLvvx+mTSunTx8306fX0rt3cis0mbb2u8bKrFip\njqexMjNWXV0j27bVhr1uDPs5RL12upLDD0Bnv8d7eY9lLJsNJk6Ezp3rOP/8Ym66qZ7hw3WHOaVU\n+lx//S1Ju3a6ksNioJuIdMFKCsOBc9JUlrgMHOji5ZdrGTHC6oe4+eZ68jKy/qWUUi2XiqGszwIf\nWF/KOhEZbYxxApcA84GVwCxjzPJklyVRRNzMn1+NMXbOPruYrVvTXSKllEqsVIxWOjvC8bnA3GTH\nT5Z27eCZZ2q57bZCBg4s5cknaznggLQNrFJKqYTKuBnS2SQvD267rZ4rrqjn9NOLeeMNnTCnlMoN\n2lqeAMOHO+nWzc2oUcWsWNHIZZc1YNOVN5RSWUxrDgnSu7e1cN+8eXmMHVtETU26S6SUUi2nySGB\ndt/dwyuv1JCfD0OGlLBunVYflFLZSZNDghUVweTJdQwd2sjJJ5fw4YfaD6GUyj6aHJLAZoPx4xu5\n7746Ro0q4skn85t/klJKZRBNDkk0YICL2bNrePDBfK69tpBGXdhVKZUlNDkk2X77eXj99Rq+/97O\nsGHFbNqk/RBKqcynySEF2rSBGTNq6d3bxcCBJSxfrm+7Uiqz6V0qRRwOuOGGBq67rp6hQ4t57TWd\nYqKUylx6h0qx3/3OyX77ubnggmJWrLBz1VUN2DVFK6UyjN6W0uCQQ6wJcwsXOhg1qoiqxO6lrpRS\nO02TQ5p06ODhxRdr2XVXD4MHl7B2rXZUK6UyhyaHNCoshHvuqWfEiEYGDy5h0SKdMKeUygyaHNLM\nZoPRoxt58ME6xo0rYtq0fFKwrbdSSkWlySFD9OvnYs6cGmbMyOfKKwtpaEh3iZRSrZkmhwyy774e\n5sypYfNmGwMGwIYN2g+hlEoPTQ4ZpqwMpk+v48QTobKyhKVL9UeklEo9vfNkILsdbrkFbr21nuHD\ni3npJZ2OopRKLb3rZLAhQ5x07epm5EhrwtzEiQ04dECTUioFtOaQ4Xr0sCbMffKJgxEjivn113SX\nSCnVGmhyyALt23uYNauWzp3dnHxyCV9/rR3VSqnk0uSQJfLz4e676xk7tpEhQ0pYuFDbl5RSyaPJ\nIcuMGNHII4/UMX58EY8/rjvMKaWSQ5NDFvq//7N2mHvkkXwmTizE6Ux3iZRSuUaTQ5bq2tXaYW7N\nGjvnnFPMtm3pLpFSKpdocshibdrA00/XcsABVkf1mjXaUa2USgxNDlkuLw/uuKOpo/o//9GOaqXU\nztPkkCNGjmzkoYfqGDu2iCee0I5qpdTO0eSQQ445xuqofuihfG64QTuqlVItp8khx/g6qr/6ys65\n5+qMaqVUy2hyyEFt28Izz9TStaubQYNK+OYb7ahWSsVHk0OOysuDu+6qZ8yYRk45pYT339eOaqVU\n7OJKDiLSTkT0Y2gWueCCRqZOrWPMmCKeeko7qpVSsYmYHESkl4i86Pf4aWA9sF5E+iajMCJykIg8\nKCLPi8iYZMRojY491uqonjKlgBtvLMTlSneJlFKZLlrN4X7gCQARORY4GugIDAD+EmsAEZkuIhtE\nZFnQ8UoRMSKyWkSuBTDGrDTGjAPOAgbG91JUNPvt5+H116tZscLOyJHFVFWlu0RKqUwWLTnYjTGv\ner8eAjxnjNlujFkJxNO09DhQ6X9ARBzAFOBkoDtwtoh0937vVGAu8FwcMVQM2rWD556rpUMHN6ee\nWsL69dpCqJQKL1pyaPT7uj+wIMbnBTDGLAQ2Bx3uC6w2xqwxxjRgJYLTvOe/aoypBEbGGkPFLj8f\n7rmnnjPOcDJoUAlffKFjEpRSoaJtE1orIqcBbYC9gXfB6hcAdnboy57A936P1wFHisjxwO+AIgKT\nkUogmw0mTGhg333dDBtWzL331nHeeekulVIqk0RLDpcBU4FdgHOMMY0iUgwsBIYlozDGmAW0IClU\nVJQnvCytIdaoUdCjB5xxRgmbN8Oll+bOa2sNsVIdT2NlV6ydjRcxORhjvgZ+G3SsVkS6GWO2tjii\n5Qegs9/jvbzHWmTjxu07WZzYVFSU51ysrl1h9mwbI0aU8cUXDdx+ez2OJE+JyMX3MdWxUh1PY2VX\nrFjiNZc4og1lvSjK956KpXBRLAa6iUgXESkAhgOvNvMclSR77+3hv/+Fr76yM2KEjmRSSkXvWK4U\nkTdEpJPvgHck0afA8lgDiMizwAfWl7JOREYbY5zAJcB8YCUwyxgT8zVV4rVrB88+W0vHjm6GDNGR\nTEq1dtGalU4VkXOABSIyCTgW6AJUGmNMrAGMMWdHOD4Xa8iqyhC+kUyTJxcwaFAJM2bU0quXO93F\nUkqlQbQOaYwxz4jIj8AbgAGONMZUp6RkKi38RzKddZY1kmngQJ1SrVRrE63PwS4i1wEPACdhTWb7\nSET6pahsKo2GDHHy1FO1XHVVEQ8/nI/Hk+4SZa5333WwYUP0ZriqKvjxR22qU9kjWp/DR8B+QF9j\nzAJjzN+xOo7vFZF/paR0Kq1693YzZ04NTz6Zz403FuLWFqawzjqrhL/+tSDqOZdeWsQhh5SlqERK\n7bxoyeEOY8xoY8yOsVDGmGVYayylbjyWSqu99/Ywe3YNn39uZ+zYIurr012izNRc4vzlF601qOwS\nrUP63xGONwDXJa1E8SovpyKFYy8rUhYptbGixavAGm4GQNjfilDu0jJqrp5I7UUTdr5gWcDt1pu/\nyi3Zv7CODsrPSPbqKkr+dle6i5EyzdUcbJo7VJbJ/uRQpu24mcpe3XoSt/bHqFwTdSirj4i0BXbF\nb6luY8yaZBUqLtu35+T090ybah/sqafyufvuAp58spbDDgu8M1Z0aJPo4mW85kZzac1BZZtmaw4i\ncj/Wqqlv+/17K8nlUhnuvPMa+fvf6zj33GI+/FD3p96ZmsNHHzm44IKixBVGqQSIpebQH6gwxtQl\nuzAqu1RWuigurmPUqCKmTq3juONa72S5nak5vPZaHnPn5gP6J6YyRyx9Dqs0MahIjjvOxfTpdYwf\nX8Sbb7beGoROElS5JpaawzoRWQj8B3D6DhpjbkpaqVRWOeooF08+Wcv55xczaVI9f0h3gdLAPzm4\nXGC3B9YWtM9BZZtYag6bsPoZ6gGX3z+ldujd283MmbVce21huouSdiJl3Hhj7O+D1jpUJmq25mCM\nuVVESgEBPNYhU5P0kqms07Onm+eeq4UB6S5J6vnf4H/91cann7beJjaVG2IZrXQ6sBp4EHgE+EpE\nTk52wVR2Ovjg1jngX4eyqlwTS7PS1UAvY0xfY0wfoC9wY3KLpXLFokWt4xN0cHLQpiKV7WJJDg3G\nmI2+B8aY9Vj9D0o1a+zYolYxD0KTg8o1sYxWqhKRK4E3vY8Hoquyqhg98IA1D+KZZ2o59NDcbXLS\n5KByTSzJYTRwG3AeVof0h95jSjXr98NK+T3AbwOP+68A29pWcFUqG8QyWmkDMC4FZVE5wl1aFtei\ne74VXLM5OSSj5tClSxm33FLPyJGNO38xpeIUbZvQmd7/vxeR7/z+fS8i36WuiCrb1Fw9EXdpfKvl\nZvsKrsloRqqutvHJJ7nfX6MyU7Saw6Xe/49JRUFU7qi9aELEWsDUqfk8/XQRL71URYcOnlazgmu0\noazaP6EyUcSagzHmZ++XNqCzMeZbrJbjm4CSFJRN5aDx4xs5+2wYNqyYLVvSXZrUW7w48gDBoUOL\nqQtaxUwTh0qXWIayPgY0iMhhwBjgReD+pJZK5bSbb4Zjj3Vxzjm58xkj1m1CBw8uDXi8dKmdF17I\nB2Dhwjw2bdLZciozxJIcPMaY/wFnAJONMXPx2/RHqXjZbHDrrfV07567S3TFOiP6hhsK2bIl9OS9\n97b6bLTmoNIlluRQJiJHAEOBeSJSCOyS3GKpXGezwaRJzc+lXLvWxpIlmb+bbaKXz6irs7XoeUol\nSizzHO7BWlPpIWPMRhG5C3gmucVSrYEjaCBOuM7pCqDKVsbHg6+nx/SLU1OwFmjpJ3xdk0llqmY/\nkhljZgKHGWPu89YaHjDG3JP8oqnWIJYhr2WeKnq/difV1SkoUIbR5KDSJZZVWScCl4lICfAp8IKI\n3Jb0kqlWIdY5EeVU8eKL+SkoUcskqwZgs2mng0qPWBpzhwD3Ab8HZhtjjkTnPqgEqb1oApu+Wc/G\nDb+G/efv5ZdjaQVND3eClo3SDmiVKWJJDo3GGA9wMvCK95hO21Qp98UXDn75JTvbWVpac2hoyM7X\nq7JfLMlhq4jMAQ4yxnwgIqcAubu8pspY/fs7ef31zKw9JOoTf3AS0T4HlS6xJIdzsEYrneh9XA+M\nTFqJlIpg8GAnr72W/uTw2mt5PPNMYDni6XNwxTG9w2aDqiqorIxtwqDHA198kflDf1Xmi7bwnm8r\n0LOAXYEhIjIK6ExTolAqZU480cnixQ62bk1vOa68sojLLy+Oek60T/x77FFOQ0Nssex2WL/ezpIl\nsbXkLljg4IQTSkOOacJQ8Yr2MawX8DrQL8z3PMD0ZBTIu2f1YKANMM0Y80Yy4qjsU1YG/fo5mTcv\nj+HDnWkrhzWCKPDuH2+zUmMjFBTEEiv69086qYTjjnNyww1WtqkPM69w2LAS9tnHzeLFrXAssGqx\naMnhdQBjzB8ARKS9MWZTS4KIyHTgFGCDMeZgv+OVWCOhHMCjxpi7jTGvAK+IyC7A3wFNDgqwJsnN\nBes389LQ76dq0yB7mA/hX3+dnk/mS5c6cLnYkRyUSpRov9H3Bj1+fifiPA5U+h8QEQcwBWsUVHfg\nbBHp7nfKDd7vq1Ysnn0hfJsGBYu1CWdn/PBD9OQQXAOIVNMIPu4/z+G995pvWvJ4tAdbJUa03+jg\n37IW/9YZYxYCm4MO9wVWG2PWGGMagOeA00TEJiJ/BV43xixpaUyVG+LdOCh406Bt22CvvcpZty75\nN8145zps29b8zfx//2tKCL//fQnnnVeMM4YWtTVrbGGbmJSKVbTkEPzZJtHTc/YEvvd7vM57bAJW\nh/dQEdHtSVu5cJPkJv+rhhNPaIw4Wc6fMdb/q1YlrtknUhKI5abt89NPNrp1Kw/7veOOaxqZtHq1\nI6DW8cYbedTUBJ6/bJmDgw4K7IQ+6qgy7r8/hk4NpSJI/7jAIMaY+4lzv4iKivB/ZMmQq7FSHW9n\nYo0aZe1YgIvuAAAgAElEQVQJUVtbzt57R7/2G94eq9raEioq4ovj8YTvEPY1/ZSUlFPqd092Opti\nOxyOgHIUFgZeo6DAqg3l5wc2FbVvX8bKlYHn7rJLadA55bRrF3jOpk12KirKaeO3dqHLVUhFhRU4\nL8++0z/fbPn90FiJiRctOfwmaK/oDt7HNqw9HsL8WcblB6xhsT57eY/FbePG7TtZlNhUVJTnZKxU\nx0tErNNPL+Rf//Lw5z9bHQr+933/a69aZf1xrF9fx8aNjTFff9EiB2eeWcKGDaHldLvLABtlZXi/\nb8VwOn2xy3G5XGzcaH3Eb2iAefOs5/hs3lwNlNLY6MJ/wYHNm6uAwGY037n+r6+xMfQPf+PG7Wzd\nmgdYw2xrahrYuLEeKOfrr2Hlyip2261lDQDZ9vvR2mPFEq+5xBEtOUgLyxSrxUA3EemClRSGY024\nU6pZ553XyLnnFnP55Q1Rh4SuWgW77+5m+/b4+hyi9VFE6kz2b1ZatcrOuecW8/TTtcydmxeyU5xv\nv4ZYxNqZ3ZwffrC1ODmo1idicvDuGZ0QIvIscDywm4isA242xkwTkUuA+VgfnaYbY5YnKqbKbQcf\n7Gb//d289FL0OQ9ffw29ern59df4kkO0+QXR+hx8z/v1VxtvvpnHmjU2LrwwdMLcqaeGn/H8/POJ\nW3n2wQcL6Ns3d3fbU8mVkj4HY8zZEY7PBWvoulLxuuyyBiZOLGTYsOjJYeRIFxs3xpccoo088v+e\n/6d4pxNqawPPPeqo2EdaAfzlL4XNnvPppw4GDAi96d92WwGHHx5Y8IsuKgp4/O67DqqrbZxySvom\nEarsoHPqVdbq189FmzbwwgvhP+P8+qt1s+7a1U1VVbzJIbZmpeDkMHFiUegTEmz48BJeeSWPjz4K\nPD55cmhiCW6+uvDCYkaNir70h1IQY81BRPoBR2ANZ/3QGPNBUkulVAxsNrjllnrGjSsi3Aaiq1fb\n2X9/a9mN6urk1Bzcbmuimt0OTqctZJhpslx4YTGHHBJ6fNs2nQSnEiOWneBuA/4G7IE1D+F+7+5w\nSqXdkUe6OOyw8O3qS5c66N0bSks9cd+0oyUH/9qC2w15ebDPPp645jmEu1a8li4NPXbFFdFrLrqZ\nkIpVLDWH/sBvjDFuABHJAxYCoesUKJUGd9xRD6+FHl+yxMHxx1vJIZE1h+DkYLdDXp6HxthHyiqV\n8WLpc7D7EgOAMcaJbvajMkinTqEfh51OeOstB5WVUFIC1XEuSBrtE7b/fgy+5OBwxDdDOh7Juq7P\no4/m88kn2v2oAsVSc1giIq8Cb3kfn4Q1R0GpjLR+vY3XX8/jwAPd7LuvnU2b4q85REsO/p3VvlnU\n+fnJu4mvX5+YfoTJk0MnhDz2WD7XXVfEgAFOnnuuNsyzVGsVS3K4DBgGHInVIf0kO7dCq1JJ9X//\nV0qbNh5mzaoF8igtja9DeuLEQkpKYmuctzqkrX6HZCWHRPUT/Pvf+bRpE3ixa64pSmgMlTtiSQ4T\njTF3Yq2aqlTG++qrKhyOpn0XrD6H2J8/bVoBBxwQ2+Qxl8tqUmpps9LHH8eyDHf8143lWlu2NH3t\ncllzIu67r478xM3DU1kslobGg0Rk/6SXRKkEyc8P3JCnsNC6+cXTYRzr8tsulw2Hw+qQTlbNId6l\nwGMl0rS2zsKFebzwQj4bNuhQWGWJpebQC1gpIpuABhK38J5SKWGzQWkp1NRA27aJvbZVc/BkRbMS\nsGONqe+/j5wE/vtfB8uW2Rk7VodftWaxJIchSS+FUknmG87atm18d9pIy3b7BI9WSkbbfTJ2d+vd\nO/yyHh6PtYTH4sUOTQ6tXCzNSqXAOGPMt97F+G4heE1hpTJcrHMdfDd334gkVzNdD03zHKCyMr7V\nVmOVrs7iL77Q4a2tWSw//SkELo43HXggOcVRKjlinevg21rTt4Bec8nB1yGdl2fdwX/+OfuTgy/e\nlCm6k1xrFktyyDPGLPI98P9aqWwRa83BlxR85zbXGew/WimW81silclh6VLHjhFU9fVN78eoUbBp\nk3ZWtyax9DlsE5HxwAKsZFIJpG47I6XiVNGhTeBj4H2AM2J4Lt7N0n3bUu8D7tIyaq6eSO1FE0LO\n929WgmT1OST+mpH84Q9NK7bOmZPPCSfYef/9Gh57DAYMsDNwoO4P0VrEUnP4A9AbmAU8C3TzHlMq\nY7hLk9cNZq+uouRv4ZcS8w1ldTQ/XaHFPvkkiRdvxurV6Yut0qvZmoMxZiMwJgVlUarFaq6eSMnf\n7sJeXZWU6/uuG/wp3jeU9aWXrJljyWhWMkY7hlXqRUwOIjLTGHOWiHyPt6btT+c5qExSe9GEsM0+\nvk3Wr7++kH32cXPhhdGHZ378sZ1Bg0p3PPYQ2M4ePJHO1+dQWdnIvHn5uFzZ3yEdyS+/2AFtVmot\notUcLvX+f0wqCqJUMsXaId3cjnG+0Uw+vj6Ho45yMW9eflImwr3zTkp2823WFVdYC/TtsUeGZCuV\nVNF+60REJMr3v010YZRKltJS2B5mGMWXX9o58MCmtqAtW5pLDoHf99UcCgqaHueaN95o6neoq0tj\nQVRKRUsOC4Avgf9h7d/g/1fhwdrwR6msUFLi4aefQtvujz22lFWrtu9YVmPLFht2uyfiHtINDYGP\ng4eyJnvvhXQ477ySdBdBpUG05HAMcB5wLPAG8JQxZklKSqVUgoVrVvL1H2zb1rSsxpYtNjp29PDj\nj7EnB/+hrLmYHPydfXYJH35YzV13FbBgQR7z56do02yVchGTgzHmfeB977agg4CJIrIf8ALwtHcp\nDaWywi67wC+/BN7wAye8Wclh61Ybu+/u4ccfw1+noSHwGk6nDYfDg8NhPT8ZHdKZZM0aO3/4QxFz\n5ui63rkulqGsTuBV4FURGQj8E/gTsFuSy6ZUwvTo4WLZssKAY7W11o3cf1mNzZttdOzoBkLH91d0\naNM0Sc7ndDgN4H/WrlhsCXla7pnj93WHll0i2sRClRmaHUAtIvuKyE0ishwYB9wIdEp6yZRKoM6d\nPdTV2QLWPvLVHGpqmo5t3Wo1KwHY7R5cJbrGZDJEm1ioMkO0eQ5jgPO95zwF9DPGbE5VwZRKJJsN\nevZ0sWyZnY4drSFFvhVUa/yazTdvtnH44VZyaNfOw3dnX8c+j/8laZPrWjN9TzNbtJrDw8DuWBv8\nDANeEJF3fP9SUjqlEqhnTzdffNHUXBSu5rBli40997SGtrZrB+vOupRN36zHhofzz6vnxReqcdjd\n2PBgw8P0aTUM6N/I9Gk12PBgtzV9r2I3146vc/XfHrtbr3HshfVs3PBrTP9UdojW59AlZaVQKgV6\n9XLx2mtNv/JNNYem5LBtG/Tr5+L++2uZOrUgYN6Cx2ON8y8qaqptNDYGDmX135gnLzPmriVVuOHB\nKjdEG62ko5FUTunZ081f/hJac/DvkK6utrHLLh6GD3fy0EMFAWslbd9u47zzSthjD/eOhOJLDr79\nHPzl+w3oOfxwF0uW5O4idmvWaJLINfoTVa1G165u6upg5Urr1953g/f973Ra8xiKvatW2+2BC+n9\n+KP1PP8hsU6nNWku3KqsyVypNdO89VYrqCa1MpocVKvhcMAf/9jI3XcX4PFYk9+gqYmopsbaMc63\nZ7TDEbgcRpW3/7RLl6aMEdys5K+oqKk24b943tixDaEn54AanQ+XUzQ5qFZl3LgGvv3WzpQp+WzZ\nYg1X9a9BlJY23cUdjsCaQ1WVjT59XPzjH00LDDmd1nnHHuuiZ8/AWP59Dv7JwZ6jf3UPP6zbiuaS\nHP01VSq8wkJ4+ulaHn+8gClTCujZ072jz6G62lqgz8dmC5zxXFVl9Uf41xJ8NQe7HQ49tOn4M8/U\nREwOthydRL1+fY6+sFZKk4Nqdfbc08OcOTWMH9/I+ec37qg5VFcH1xw8ATf17duhrCw4Odh21ARe\nfLHp+IknugKSQGDNITeXvH78ca055BJNDqpV6tjRw6WXNrDvvu4di+xVV9soKWm6cdvtgX0OTqct\nTHJo6m945hnr/2nTrGFQkZJDrtYcVG7JqCEGItIVuB5oa4wZmu7yqNzXu7eL5csdbNliDW0tKmr6\nXnCHNAR2WIOVHHzDWE87DQ46yIWI1VHh31+hyUFlm6QnBxGZDpwCbDDGHOx3vBK4D2uFs0eNMXcb\nY9YAo0XkhWSXSymw+hhOPtnJU08V0LWrm+LiwJpD8J7QwTWH+npbQN/Ce+81DdmJlBxytUNa5ZZU\n/Jo+DlT6HxARBzAFOBnoDpwtIt1TUBalQowZ08CMGfnU1jbNcYDYkkNDQ+BkN3/+CcHjgbfftnq+\nteagskHSk4MxZiEQvGBfX2C1MWaNMaYBeA7vysdKpdqhh7opLfXw7rt5Ic1KockhsEO5vj7yMhnB\nNYf27a3naXJQ2SBdfQ57At/7PV4HHCki7YE7gcNEZKIxJqY1fSsqypNQxNYVK9XxMi3W6afDAw84\nOOccqKiwqgJFRVBWlkdFRdN5nToVBTy22wto2xYqKgpCYvk3H+XlOdhtN2v579LSQpzO3Fx7Kd6f\na6TzM+33Ixtj7Wy8jPr1NMZswtozIi4bN4bZOT4JKirKczJWquNlYqxevRxs3VqCx9PAxo31ALhc\nRWze7GTjRidg/ZG53TVs3eoGrBv9r782suuubjZubAiJVVdXgm/TIKfTxebNtUAZtbX1bN7csOOa\nuSSW99ovt4Y9PxN/P7ItVizxmksc6eoa+wHo7Pd4L+8xpdKiZ0+rDaj5DunAGkFdXeQ+h+3bA9uP\nfM1J2qykskG6ksNioJuIdBGRAmA41lakSqVFRYWVFKz9pC2xdUjbIiaHQYOcYY9rclDZIOnJQUSe\nBT6wvpR1IjLauy/1JcB8YCUwyxizPNllUSqa3r1d9OnTNLEhfId08FDW8Mt1A9x5Z/2Or12upqQQ\nz1DWu+6qa/4kpZIg6X0OxpizIxyfC8xNdnylYvX664HLigbPkAarWcn/k399feRmpeBlNpprVurW\nzcWqVdaTzjyzkdmz86isdDJxYjyvQqnE0Ok4SkUQLjmUloY2K8Uy6qixMXqfw/LlVbz7bs2OpTem\nTq1j3TrdY1mljyYHpSII16xUWmotyOdTXw8FMaw3558cwjUrtW3roaDAatryp/0TKl00OSgVQbgO\naZst8OZuLZ/R/CqrTifYbJHP0ySgMo0mB6UicDg8uFy2gGUwIDA5RFs+w5/LZfOrOcS+ZHe2JY3g\nZjiVvTQ5KBWBr+YQfMPz72OI1iHt784763bc6MOd7/tetESUDXr3LuWbb7Iso6mwsuxXT6nU8XVI\nN3i3fPZ1FhcWNp0Ta4f073/v3JEA4lk2I9tqDj/9ZGPhwoxaeEG1kCYHpSJwOKxP8o2NUF7uYcgQ\na1Kb74ZdUODxNivF1kwUS80h1uOZ6k9/auCNN/Koq4P//MfB9u3wm9+U7NiKVWUPTQ5KReCrOWzf\nbqO8PDABfPZZFUcc4Yq6fEawpuQQOZnssYeHyZNrA8qQTUaPbqSuDv7v/0q58MIirruuiNWrHQwY\nUMpDD8X4RqmMkGW/ekqljm8nuC1bbLRtG3hD79TJQ3ExeDyRl8/wue++wG1DozUr2e0wbJjT73F2\n7Tfdvr2HF1+spbLSSX29jZkzrTfnm2/sPP+8JodsoslBqQh8HdI//WTbsfaSv112sY5FG8r65pvV\n/P73gWssxdOslG01B58bbqjnqadqGTCg6bVv25ZlbWStnPYcKRWB1axk45NPHBx+eOgYTV9y8O+g\nDnbIIU0TJXy7zMUyac6/DNmouBiOPtrF/vvX0aOHtbz5t9/a+fFHW8CS3SpzZemvnlLJ53B48Hhg\n8WJHwIJ8Pnvuad34Y73Z+5bdCFfTyJUO6WAVFR42bLD2FPjNb5y88YZ+Hs0WmhyUisBut4axfvaZ\ng9693SHfL/fulVJYGF+/QLSaRrgy5IING7YzcmQjV19d1PzJKiPkyK+eUomXlwcrVtipqPDs2P/Z\nny8pxNNMNH9+Nf36hdZCcq3PIZzKSifXXlsfcGzSpAK+/DKHXmQO0Z+KUhEUFVlNSr16hV8Tosj7\nITiemsBhh7njuuHnUnIoLrbmQfj7+98LefJJHcWUiXLoV0+pxCoq8rBhg53u3UOblKBpvkK8zUrx\nyKXkEMkjjxTgcsHEiYXMnKl9EplCfxJKReCrGXTqFD45+JqT4mlWildrSA4A115byBNPWG/kxRdb\n80v8981QqddKfvWUil9RkVUj2G238DUD32S2ZCaH4L6I/fYLn6jiETzbO53WrdvORRc17EgMYCXE\nPfYoZ+lSOx06lKexdK2bJgelIvDNSwg3AQ6aVlBN5qf74OTwwQc7v0jR6ac37vQ1EqWgAC6+uCHs\n915+2eqLePTRfOp0K+2U0+SgVATN1RyCNwJSLeNLvnvu6ebpp2tYvRp69HDxwANWbeK664pYulTb\nmFJNk4NSEfhGIYUbxgqhey+ollu6tIolS6o56SQX++0Hzz1nrUc1eXItnTq5eestBx9/bDUz/fyz\njRtvjGOImGoRTQ5KReBryojUp6A1h8TZYw9PQBNax44e/vnPOs4800llpZP77ivk/POtdr4jjihl\n+vR8nM4IF1MJoclBqQj239/NYYdF3veyXz8X06fXRvx+c+65J/EN6Z9/XpXwa6bLuec24nBYi/hN\nn16L223joINc1NXZaGy0cdllRZogkkiTg1IRdO3qYf78mojfLyyEU05p+d3Jt8bSiSe2/BqFhR5m\nzmwqo6+fJJeUlVnv86efVjFrVlMyfv75fK67rpDNm9NYuCyxZQtMmZLPjTfG/n5pclAqTXx9Fu3a\ntfyG3ratJ2CviZYs1Ne9e+TaUSYpKYEOHTzcfXcdJSXWa1661MERR5Rx+unFzJqVR2PmDMTKGLW1\n0L9/KcuXO2hshGOOKY2pz0aTg1Jp4na3fMnV3r1bdkMP3rQIrOazbGGzwahRjSxdWsU332xn/vwa\nli2r4sILG5k5M5++fUuZOjWfqtxpXdtpzz2XT8+ebh54oI67767n1VdrIg7P9qfJQak0+e1vA/ek\nbs6zzzY1Hx1ySFNy8B81FW4E1V//2tS3sTO1lEzSti2UllpfFxfDoEFOXnyxlscfr+XTTx306VPK\nlVcW8vzzeXz3na1VjCzzeMAYe8B+3fX1MGVKARMmNC14uP/+Hi69NPzcEn+6fIZSadKhg3XHijU5\nnHBC+NpCPDc+m81qnmnOvHnVVFaWxn7hDHHIIW4efriOb7+1MX9+HvPm5XHLLYXk58OQIU4uuaSB\njh1zL1O43XDNNYXMmZNHdbWNTp08HHUU5OUV0q2bm759468danJQKs1iSQ677Rb4xx0pIfiuVVnZ\nyGWXNXDyyYE3eI8Hrr22noceir7mx+GHp6apqaJDm/DHd/a6QJ/ggw95/yU4VnPcpWXUXD0Rbr4u\naTGefz6Pzz5z8NFH1RQXw6pVdpYvL+XZZ+38/e8tGxWnyUGpDDdrVg1lZfF92i0uJuwGRdDUHOMT\nvMDdzTcnd60Kd2kZ9urW0ylgr66i5G93JS05eDzw8MMFTJxYv2MDqoMOcnPssTB0aMuHWmufg1Jp\n1lzN4fjjXfTpE3ij32cfd9jn+h43V7Pwlx+0nUKyV0OtuXoi7tKy5AbJMMlMhl99ZWfzZhsDBiR2\n1JnWHJRKs3iHn37zzXaKi+GWW6w1xf0TQUuGsoYbwRRNv35OFi1q+a2j9qIJ1F40IeL3KyrK2bhx\ne4uvH4+KinK++WY7M2fmM3t2HsuWOejf38mppzoZNMi504kyUrNZIi1Y4GDAAGfCF4DUmoNSaWaz\nxXdzLi0NXAm2XTv/azUXK/TY9dfX89FHVYwZ0xDTNa68svmRLtmkrAxGj27klVdq+eADaxvXBx8s\nYL/9yhgzpojnn8/L6KVSFizI4/jjEz9XRWsOSmW5bt3cfP31dvbbrzxss1Jzo5lKSqBLl9gTVEtq\nJ9miosLDiBGNjBjRyC+/2JgzJ49HHy3g8suLGDGikQkTGth9dw9ud9N+Hi3ldltNQh995ODzz+18\n9ZWdXXbx0KWLhy5d3JxwgpPOnaP/XOrr4cMPHTzwQMv7FiLJqOQgIqXAA0ADsMAY83Sai6RU0kVa\nEjwe5eXw3nvVIZ3N/oqLPTz55M7fRPyTw5//XM+kSYX07OkK2R862+22m4eRI61EsWKFneefz+eY\nY0ppbLT6ZXr2dHHEES6OPtrFCSe4mm/WsdlCRkZ1BPrtZDmrACT896KOxGrmU0PSk4OITAdOATYY\nYw72O14J3Ac4gEeNMXcDvwNeMMbMFpGZgCYHldM++6wqIckBrBEq0RxxhIsDDoh8ju+mH0/NoFs3\n63pvvx15DapsZ7NBjx5uevSo56ab6qmttT71L1niYPFiB5MmFTJpEowY0Ui3bm66dHGz664eqqpg\n15IyHDXZOTIrFX0OjwOV/gdExAFMAU4GugNni0h3YC/ge+9p2bHgi1I7oVMnz05tMxruRl5S4uHw\nw0P/fILPjbTi7BFHRP/T8/9+LjcxhWO3W30+5eVw3HEurrqqgTfeqOHiixtYvNjBrbcW0r9/CZ07\nl9G3bxm3cjNVtuwcmZX0moMxZqGI7Bt0uC+w2hizBkBEngNOA9ZhJYjP0M5ypaK6/npo0ya0KWft\n2pZ9UvXd6A87LHoNxOGAww93sWSJ7s4G1vt2+ulOTj+9aXVdj8f3fo6llrHUkrhRWMuW2bnmmiK2\nb4ft220sXlwdtv+juXjNTf5LV5/DnjTVEMBKCkcC9wOTRWQwMDsdBVMqW9xxB2zcGPsypPF+yi8r\n81BVFf5JM2fWUF9v48MPNUGEk8wa1cEHu5k9u4YFCxx07uzZ6Y7xSDKqQ9oYUw38Id7nVVSUJ6E0\nrStWquNprNTFKyuz5kMUFuYFnJ+X5wi4hm/NJd/j7dutmdZ1ddZEucMOg/Xrre9XeD92rlgRezni\nkas/s0TGOuus5MZLV3L4Aejs93gv77EWSeWEmVyMlep4GiuV8crZvr0OKKKhwcnGjbU7jrtcLsCx\n4xoNDYVAQdA1ywAbd90FQ4dux+2GjRubvrvrrnagNKGvO1d/Zpn2+9Fc4khXu/5ioJuIdBGRAmA4\n8GqayqJUTvM1cYi4wx73ufLKeubOrQ44NmhQUzt6SYk1Ycxfr15uNmxI3Q1PpU7Sk4OIPAt8YH0p\n60RktDHGCVwCzAdWArOMMcuTXRalWiOPB777bjs331wf9bzyckLWcHrwQWsRvsLmNw5TOSYVo5XO\njnB8LjA32fGVUlBU1PLnvv12NcccU8q2bYkrj8p8OlxUqVZq991jWzCoZ0/3Ts3FUNlJk4NSOW7P\nPcMngXPOacQY7S9Q4WXUUFalVGKtXbs94ragNhvssktqy6Oyh9YclMphsewXrVQ4mhyUUkqF0OSg\nVCvV2hbNU/HR5KCUUiqEJgelWqnmdohTrZvNo78hSimlgmjNQSmlVAhNDkoppUJoclBKKRVCk4NS\nSqkQmhyUUkqF0OSglFIqhCYHpZRSITQ5KKWUCpGTS3aLSFfgeqCtMWZopGNJjFUKPAA0AAuMMU8n\nKp73+t2BW4BNwNvGmBcSef2gWHsB/wK2AF8ZY+5OVixvvH7AuVi/m92NMb9JYiw7cDvQBvjYGPNE\nEmMd7421HHjOGLMgWbG88UqB94BbjDGvJTHOQcBlQHtgvjHm0WTF8sY7HRiM9TObZox5I4mxknLP\n8Lt+Uu8TQbHifi0ZlxxEZDpwCrDBGHOw3/FK4D7AATwa7SZljFkDjBaRF6IdS1Ys4HfAC8aY2SIy\nE9jxQ09ETOBk4F/GmEUi8ioQNjkkKFYv4EVjzFPe1xJRgt7PRcAi701gcTJjAacBe2El2XVJjuUB\nqoCiFMQCuAaYFe2EBP28VgLjvIl2JhAxOSQo3ivAKyKyC/B3IGxySOLfdlRxxo14n0h0rJa8loxL\nDsDjwGRghu+AiDiAKcBJWH9Yi703RQdwV9DzRxljNqQ51l7AF96vXYmOCTwJ3Cwip2J9Ykva6wP+\nC8wWEV/caHY6nt/7eQ4wOsmvTYD3jTEPef9o3k5irEXGmPdEpCPwD6zaUbJiHQKswEpE0ex0LGPM\nBu/v4UXAI6mI5/36Bu/zUhErHvHEjXafSGgsY8yKeC+eccnBGLNQRPYNOtwXWO3NfojIc8Bpxpi7\nsDJnpsVah/WD/4ygfp0ExrzY+4vwUqRCJCKWiFwB3OC91gvAY8mM5z1nb2CbibKHZYJe2zqsKj1A\nxA2VE/x7sgUoTPLrOh4oBboDtSIy1xgT8voS9bqMMa8Cr3pveC8m+bXZgLuB140xS5IZqyXiiUuU\n+0QSYsWdHLKlQ3pP4Hu/x+u8x8ISkfYi8iBwmIhMjHQsWbGwbthnishUYHaUWC2Nua+IPIz1ieFv\nMVy/xbGAd4DLvK9xbZyxWhIPrBpDxCSUwFgvAQNF5F9Y7fNJiyUivxORh7BqX5OTGcsYc70x5nLg\nGeCRcIkhUbFE5HgRud/7+7ggjjgtigdMAE4EhorIuGTGiuOe0dK48d4nWhyrJa8l42oOiWCM2QSM\na+5YEmNVA39IdCy/668FLkzW9YNiLQXOTEUsv5g3pyhODdGbrhIZ6yWi1PKSFPPxFMRYQMuSQkvj\n3Q/cn6JYSbln+F0/qfeJoFhxv5ZsqTn8AHT2e7yX91i2x0pHzFS/vlx9bRor++Kl42871XETFitb\nag6LgW4i0gXrhQ7H6rDM9ljpiJnq15err01jZV+8dPxtpzpuwmJlXM1BRJ4FPrC+lHUiMtoY4wQu\nAeYDK4FZxpjl2RQrHTFT/fpy9bVpLP39yMS4yY6lO8EppZQKkXE1B6WUUumnyUEppVQITQ5KKaVC\naHJQSikVQpODUkqpEJoclFJKhdDkoJRSKkS2zJBWKi7e1SoN1iQhf3OMMfEuVpgwInIB1kZNr3j/\nvSwX0sAAAAMlSURBVAsMNH6b1ojIOVhr+3fxrqMV7jozgE+MMfcFHf8KaynnU4E6Y8zxiX4NqnXQ\n5KBy2cZE3xxFxGaM2dmZo48bY27xLq39FTCCwE1rzvUej2Ya8E+sTV18ZfsN4DLG/EVEnsFKEkq1\niCYH1SqJyDbgTqAS2AMYZoz5QkR6AfcA+d5/lxhjPhWRBVjr7vf23tQvxNrg5kfgQ2BvrI2RjjHG\njPTGGA78zhgzLEpRPgKOEpEyY0yViHQAdvFe11fWCcAwrL/XL71xFwLlItLTGOPbMGYEVtJQaqdp\nn4NqrdoAXxhjBgDPAWO8x58GxnlrHBcRuO1llTGmH1AG/AXoDwwCjvN+/1ngtyJS7n18NlG2zfRy\nA/+maVn0s/Hb3lNE+gJnAMcaY44GtgJjvLWX6YAvERV6z5uBUgmgNQeVyyq8n/j9/dkY8z/v1+96\n//8W2N/7qV2AaSLiO7+NWPsjA7zv/b8b8I0x5hcAEZkNHOz95P8KMFxEZgEHAm/FUM4nsZqInsBK\nDqcBp3u/dzywP/Cut0ylQKP3e08AH4nINVh9DP9t4daWSoXQ5KByWXN9Dk6/r21APVAf7jneG7Nv\nS1E7kbcVfQhrD18X8Ewsu7AZYz4XkV1FZACw1Rjzs19yqgdeNcZcEuZ560XkM+C3wPne2EolhDYr\nKeVljNkGrBWRQQAicoCI3BTm1K+BriJSLtY+3qf4XeMzrA3rryC+rU6fxkoqTwcd/y9wsoiUect0\nkYgc7ff9aVi72R0MzIsjnlJRac1B5bJwzUrfGGOibc04ArhfRK7F6pD+U/AJxphNIvI3rGGya4HP\ngRK/U2YApxpjvoujrM8ANwEvB8X6WESmAAtEpA5YT+AopNeAB4FpxhhXHPGUikr3c1CqBURkBFZz\nz1YReQBYa4yZJCI2rM3i7/efu+D3vAuAfY0xtyS5fPtiDZk9PplxVO7SZiWlWqYd8J6ILAL2BB4U\nkcOBT7BGQYUkBj8XiMi9ySqYiFRijcBSqsW05qCUUiqE1hyUUkqF0OSglFIqhCYHpZRSITQ5KKWU\nCqHJQSmlVAhNDkoppUL8Pzlt5uQccjZkAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create a loglog plot of the U-235 continuous-energy fission cross section \n", "plt.loglog(u235.energy, fission.sigma, color='b', linewidth=1)\n", @@ -1840,7 +1853,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -1872,11 +1885,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAADUCAYAAACWNDiHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGXJJREFUeJzt3Xm0HFW59/HvAUEmgTDPQgAfkNcLIoogMYREBkUQ1Jfx\nhsj0iiBXERmuKOEiAgoBFZTBdUH0vQyiUbyARqKEIKAMIiL4Y7ohhkQkRAhh0iTn/rF3Q6c9Q59Q\n1UOd32etrNVdXbXr6ZOnntq1q7qqp7e3FzMzq55l2h2AmZmVwwXezKyiXODNzCrKBd7MrKJc4M3M\nKsoF3sysot7U7gDKFBG9wMaSZtVNmwAcKmlcP8tsCVwLzOtvnjzf8cBRwHLA8sB04DhJLyxlrHsA\nD0uaGRHrAjtKumGIbRwHrCvpi0sTQx/tzQDmStqhYfppwJnAZpJmDNLGUZIu7+ezqcDnJd1XRLxV\nFhE9wPHAkaScWwb4FXCapGcGWObzwFnAGEm31322C3AJsCLwJGmbmN1HGwcBJwIr5/X+AfhUX/M2\n+T12BF6W9EBEvBk4QNJVQ2xjP+DDkg5fmhj6aO9WYCtgQ0mL6qYfCnyP9Le7dZA2Bsrzq4AfSPpp\nEfEOhXvwdSJiK2AycOcg8+0JHAPsKmkr4O2kDeBrb2D1nwU2ya/HAPsMZeGIWEbSRUUV9zrr5J1e\nvY8AfRaVhpjWA07q57MeSWNd3Jt2FnAIsFddzj0H3BoRK/azzKWknHq6fmJErApcBxwpaXPg58BB\njQtHxNuBC4GP5nW+DZgB/Ocb+B6fAP4lv34nMH4oC+c8n1xUca/zd2C3hmkHAn9uIqZl6Wfbz/GO\nb0dxh4r34JfCAmBXYG8gBpjvHcBjkp4FkPRKRBwOLAaIiLWAK4BtcpsnSpqSe+bfBTYF3gx8U9Kk\niDgTGAtsHRHfIvW63hQRq0g6MCL2Bb5M2ok8BhwsaW5ETAQ2ALYDrskb7kaSjsy9khuA/YHNSEcY\nB0nqzUcx55A2/AuAKyT19PNdbyZt/P+Rv9v/IRWWtWozRMQ+wFdIRzIvAEdIuh+4A9goIv5E2qgf\nAb5D2qh3zzEeCuwIjJa0T25vCvATSRcP8H8wbETEGsBngO1qR6OSFgInR8RY4F+By/pY9NuSfhcR\nezdM3xe4T9Jdua1z+1n1NsDTtaM0SYsi4lRghRzXiqSdyCjgFeAsSd+PiJVI+b8dKSd+KOnEiPgk\n6f9+n4jYMH+nVSNiuqRREfE+0g5lBDCXlOdP5Hz9MLAacH9EPEg+Co+IK0lHIDuTdkCPAPtKeikf\nFX+HtA1eQCrC2/Zz1FnL81/k7zYCGAk8UZshInYCLiJth4uB4yXdkpdZLef5Xvm7Twc+BhwZEWfl\nOF4GTgPeJWlxRFwGPC/p8/38/d8w9+DrSJolaW4Ts95CKlDfjYi9IuItkuZLWpA/Pwd4SNJI4DDg\n6nw4+kVgVu4NjQXOjoiNc6/7KeCQvLFdBFyfi/tI0mHiQbm9X5EOrWs+BHxQ0qQ+4vww8AFS4o8B\nds7F4lvAOFIPao9BvusPSD2ZmgPzNAAi4k2kndYnJb0N+AlwXv74cGCmpK0k/T1P21jS2xo2sguB\nDSNi97wzewvw7UHiGk7eS/o7PtLHZz8FRve1kKTf9dPetsDciJgcEY9ExDW5U9Lo18AmEXFDROwX\nEWtIelnS3/LnnwOWl7QZKc8uiogNgE+RivTWwPbAhIjYRdIlwG+Bk3KenwrcmYv7W/J3+XdJWwBf\nJx1l1OwOHCPpxD7i/DhwALA5sDawX+5Vfxc4WtLWwJbAKv38PQD+G9gzb6cAHyXlcr3LgQvy9nsO\nr2+HhwOLcp7/T562A7CNpF/XFpb0Q2Amqei/k3TEcPoAMb1hw6HA3xoRf6r9A85+ow3mDed9pL/f\nd4Fn88ZSG2L5IHB13bybSnqVNIZ6bJ7+BPAXUu96IHsCt0p6ML+/hNQDWja//80AO6Xr8wb5Iqln\nswmpt/yIpAclLWbwQvoY8GJEbJfffxT4Yd3fYiGwQd347nRSz6c/NzZOyOOeRwHnkzaco3JslqxB\n/0NiT+fPh2J1UsH8PKmX/ippJ7uEPM7+HmAO8A3gmYi4JSJqQywfBK7J884iHT3OJv0/7itpcd4Z\n/JGBcwLSUcAsSb/I7V0NbFG3TT0q6dF+lr1R0ryci38g5fnbgDdLujnP800GrncvkHZoe+X3B5LO\nxdXbnrxdM3ie39xPDh8LnEza7o6V9NIAbbxhw2GIZte+TrLm11eREhhgrKSnmm1U0j3Av+YTWduT\nTjpeC+xEGr54rm7e2onXHUi99k2ARcD6DL6TXR14f9451TwPrJlfzxtg2efrXi8CliX1rOqXaeY7\nXw0cnHvrM/PwUP3nn4qIw0jDTisAA93gqM94Jd0XEfNJPaEH+5pnGJtLGorry7rAXyPiPUDtZOVk\nSacO0N7zwFRJjwFExNeBn/U1Yz5q+H95vq2BU4CbI2Jj/jnPa0ewWwCT8jmtRcDGpGGLgawObN6Q\n56+SeuSwdHn+t7rpzZwUruX5ncD6ku5vyPMDgePz0cayQH/Dmv3GK2lWRNxF6iD+oomY3pDhUOD7\nJWlIJ3hq8ljhk3lIpxe4NyJO5vWTs3NJyT8jz78pqZB+nzQWeEkeC2+muM4GbpH0sT7iWJrw57Pk\noer6TSxzLXAradzxmoYYdib1SN4jaUZEfIB0KDskEfEhYCGwQkR8UNJNQ22jwu4E1oiIbSX9vuGz\nvUnncn5LuhKkGU+ShixqFuV/S8hHbS9LEoCkhyNdqTWfdNRQy/Pa/BuRCtvFwL3AR/K4/a8b2+7D\nbNJVZDs0fhAR72jye9VrzPP1mljmJlLsBwHXN8SwISmvd8yFf0vSUfGQRMS2pA7h/aQLNUo9zzQc\nhmjKcChwSUSsBq+NQx8ETMuf3wBMyJ+9HbiPtDNdB7g3F/fDSCdrakn4D1IvpvH1z4FReSyeiHhP\n7nEtrXuBf4mILSJiGdJldwPKRzazgf9Lusqo3jrAX4GZ+eTaYcDK+cjmH8Aq+e/Tr4hYmTTmehzw\naeDiPM0ASc+TrqL5XkRsBinnIuJsUk/ymoGW78OPgdF1hfNo0nmlRnsA3490NVTtsstDSeeX5pLy\nfHxE9OR5fkcq+OsAv8vF/QMsOf7dmOer5nZ/A6wf6TJKImJkRHwvf7Y0HgWWi4hd8/tPMvCRJZJe\nAaaQhq4ah2fWBl4E/pTz+egc5yr5eyyTe/b9ytvbZcAJpOHa0/KOozQu8HUi4pSIeIW0px4TEa9E\nuqKj0WeAPwF3R4RIe/J1SZeAQerRbhTpOvJrSVcDvEw6yTo5Ih4gJfylwOW5eF9PuhLmBFKS7RYR\nd0uaQxqfnhwRD5NOwDYmX9Nye/9OOln7G9JYYjOuBv4o6bmG6T8jFf/Hc9wXkg6ZfwA8QOrR/aVu\nLLUvZwD/LekPuSc6lXTVkGWSziMVh5/mYYyHSL3ocXUnsJcQEQtyPr8VmJrz+f2SZpJydXJEPEoa\n/jmhjya+Stqh/zLn+eOkiwM+nD+/gLRzf5J0hHdibvvLwPmRrnYZTfr/PSMf7U0Gzo2IScDted2z\nSZcpfgz4Zs7zyaRrx5fqfub5nNcxwJURcT9pG13MIEWelOfzJD3UMP33pB7+I6Qjqp8Cd+XvPSd/\nl5n5O/bnU8AcSTfnv9PFpO25ND2+H/zwE+ka9N78ehvgdkkj2hyWWWnyEeECYPV8RDQsuAc/zOTD\ny6dqh8Kky8sG/GGXWTeKiLsj4oD89gDSGP+wKe7gHvywFOmn3meTdvBzSD9Meqy9UZkVK9LtGC4m\n3Y5hPuk6+rvbG1VrucCbmVWUh2jMzCqqo66D77l30DPcTRv5rj8W1RRPTNumsLasvXpHD/jjlFLs\nys8Ky+tpPQNdjDRU1w0+i3WN3t6J/5Tb7sGbmVWUC7yZWUW5wJuZVZQLvJlZRZV+kjUiLiDdz7oX\n+Lfhdh2qVZPz2rpBqT34iBgNbClpJ+AI0j2lzbqa89q6RdlDNGNJd65D0sPAiEiPlTPrZs5r6wpl\nF/j1WPJJNM/Q3H2ZzTqZ89q6QqtPsrb8RyZmLeC8to5UdoGfzZI9mw1IN7cy62bOa+sKZRf4KaSb\n+BMR2wOz655PatatnNfWFUot8JLuID2v9A7SlQbHlrk+s1ZwXlu3KP06eEmnlL0Os1ZzXls38C9Z\nzcwqygXezKyiXODNzCrKBd7MrKI66olOLCiuqZV4qbC2dhr9y8LaunPaboW1Zd1hWs9dhbV1OnsV\n1tYZnF9YW8n8gtuzN8o9eDOzinKBNzOrKBd4M7OKcoE3M6soF3gzs4pygTczqygXeDOzinKBNzOr\nKBd4M7OKcoE3M6soF3gzs4pygTczqygXeDOzinKBNzOrKBd4M7OKcoE3M6soF3gzs4pygTczq6jO\nemRfgR6c9u7C2jpz9ImFtfXq6OULa+u+3+xSWFsALOzQtuw1Z3B6YW2dw+cKawvglEIfAejH/xXB\nPXgzs4pygTczqygXeDOzinKBNzOrKBd4M7OKKv0qmoj4KjAqr+tsST8qe51mZXNeWzcotQcfEWOA\nd0jaCdgTuLDM9Zm1gvPaukXZQzTTgY/n188BK0fEsiWv06xszmvrCqUO0UhaCCzIb48AbpK0qMx1\nmpXNeW3doiW/ZI2IfUkbwu6tWJ9ZKzivrdO14iTrHsAXgD0lPV/2+sxawXlt3aDUAh8RqwFfA8ZJ\nmlfmusxaxXlt3aLsHvwBwFrAdRFRmzZe0syS12tWJue1dYWyT7JeBlxW5jrMWs15bd3Cv2Q1M6so\nF3gzs4pygTczqygXeDOziurp7e0ddKZ8WdgaQE9tmqQnCg9mGoMH0+0KvGvJjyfvUVxjwH/wxcLa\nmrFos8LamjdrncLa6n3rcj3171uR2z09E6uf18B0ziisrVHcVVhbcHOBbXWu3t6JPY3TBr2KJiK+\nAXwCeIbXN4JeYGSh0Zm1mHPbqq6ZyyTHAGtLeqXsYMxazLltldbMGPyj3gCsopzbVmnN9OBnRcRt\nwO3AwtpESV8qLSqz1nBuW6U1U+CfBaaWHYhZGzi3rdIGLfCSijs1btZBnNtWdf0W+IiYDv1ftijp\n/aVEZFYy57YNFwP14E9rWRRmreXctmGh3wIvaVorAzFrFee2DRe+VYGZWUW5wJuZVVRTD/yIiBHA\nlqQTU5I0v9SozFrEuW1VNmgPPiI+CzxGuk3WN4HHI+KYsgMzK5tz26qumR78YcDI2pPjc4/nV8C3\nywzMrAWc21ZpzYzB/6W2AQBI+htQ+K2CzdrAuW2V1kwP/vGI+DEwhbRDGAM8GxGHA0j6zxLjMyuT\nc9sqrZkCvxLwN+Dd+f38vNwo0okpbwTWrZzbVmnN3IvmE60IxKzVnNtWdc080enP9HHfDkmblBKR\nWYs4t63qmhmi2aXu9fLAWNKhrS2NzxTX1Ed6diquMWDxs6MKa+usNT5XWFs/f2uRz579QP0b53aB\nRnFOYW317v7ewtrqeaTAR+LOmFhcWy3QzBDNkw2THo2InwOTygnJrDWc21Z1zQzR7NYwaWNg83LC\nMWsd57ZVXTNDNF+se91LutLgk+WEY9ZSzm2rtGaGaMa0IhCzVnNuW9U1M0SzFfAtYAdSL+cu4FhJ\njzWzgohYEXgQOFPSlUsfqlmxnNtWdc3cquAi4HxgfWBD4BKGdq+O04B5Qw/NrHTObau0ZsbgeyTd\nWPd+ckR8upnGcw9pa+DGweY1awPntlVaMz345SNi+9qbiHg3Td5HHjgPOGFpAjNrAee2VVozyXwi\n8F8RsU5+PwcYP9hCETEeuE3SjIh4AyGalca5bZXWTIH/s6StImI1oHcIT7z5EDAyIvYHNgJejYhZ\nkm5Z2mDNCubctkprpsD/f2BM/X2zmyHpgNrriJgIzPAGYB3GuW2V1kyBV0RcBdwB/P21ib5XtnU/\n57ZVWjMF/s3AImDHumlDule2pIlDC8usJZzbVmm+H7wNW85tq7oBC3xE7Cdpcn59LekHIS8DB0t6\ntgXxmZXCuW3DQb/XwUfE8cAZEVHbCWxCujnTPcAXWhCbWSmc2zZcDPRDpwnAOEkL8/tXJE0DJpKe\nWWnWrSbg3LZhYKACv0DSX+ve/xeApH8AL5YalVm5nNs2LAw0Br9K/RtJl9e9Xa2ccGxI7plYaHPL\nrLlqYW31Xl7cI/vefuRDhbWVH9nn3C7Fy4W11DPlssLa6j23p7C2ev6nwMf/AVwysdj2GgzUg38g\nIo5qnBgRJwO/Ki8ks9I5t21YGKgHfzLwk3zfjXvyvDsDc4F9WhCbWVmc2zYs9FvgJT0NvDcixgLb\nkH4Qcp2k6a0KzqwMzm0bLpr5odNUYGoLYjFrKee2VV0z94M3M7Mu5AJvZlZRLvBmZhXlAm9mVlEu\n8GZmFeUCb2ZWUS7wZmYV5QJvZlZRLvBmZhXlAm9mVlEu8GZmFeUCb2ZWUS7wZmYV5QJvZlZRg94u\n2DrYgmKbW+G5CYW11XPhCYW11bt1cY9c4+HimrIyPVVYSz0nX19YW70nFZiLQM+4gh8B2MA9eDOz\ninKBNzOrKBd4M7OKcoE3M6uo0k+yRsQhwEnAQuBLkm4se51mZXNeWzcotQcfEWsCpwO7AHsD+5a5\nPrNWcF5btyi7Bz8OuEXSC8ALwNElr8+sFZzX1hXKLvCbAitFxA3ACGCipKklr9OsbJvivLYuUPZJ\n1h5gTWB/YAJwRUQU+0sBs9ZzXltXKLvAPw3cIWmhpMdJh7Nrl7xOs7I5r60rlF3gpwC7RcQy+cTU\nKsDcktdpVjbntXWFUgu8pKeA64G7gJuBT0taXOY6zcrmvLZuUfp18JIuBS4tez1mreS8tm7gX7Ka\nmVWUC7yZWUW5wJuZVZQLvJlZRbnAm5lVVE9vb7mPjBqKnml0TjDD0QrFNTV1x50La+u2njsLa2ti\nb2/Lf3Ha0zPReV0ZXyi0tZtYvrC29uojt92DNzOrKBd4M7OKcoE3M6soF3gzs4pygTczqygXeDOz\ninKBNzOrKBd4M7OKcoE3M6soF3gzs4pygTczqygXeDOzinKBNzOrKBd4M7OKcoE3M6soF3gzs4py\ngTczqygXeDOziuqoR/aZmVlx3IM3M6soF3gzs4pygTczqygXeDOzinKBNzOrKBd4M7OKelO7AxiK\niLgAeC/QC/ybpLvbHBIAEfFVYBTp73m2pB+1OaTXRMSKwIPAmZKubHM4AETEIcBJwELgS5JubHNI\nbefcHppOzGvovNzumh58RIwGtpS0E3AE8I02hwRARIwB3pHj2hO4sM0hNToNmNfuIGoiYk3gdGAX\nYG9g3/ZG1H7O7aXSUXkNnZnbXVPggbHAjwEkPQyMiIhV2xsSANOBj+fXzwErR8SybYznNRGxFbA1\n0Ek95HHALZJekDRH0tHtDqgDOLeHoEPzGjowt7tpiGY94N6698/kafPbE04iaSGwIL89ArhJ0qI2\nhlTvPOA4YEKb46i3KbBSRNwAjAAmSpra3pDazrk9NJ2Y19CBud1NPfhGPe0OoF5E7EvaCI5rdywA\nETEeuE3SjHbH0qAHWBPYn7SBXhERHfV/2QE66u/RSbndwXkNHZjb3dSDn03q1dRsAMxpUyxLiIg9\ngC8Ae0p6vt3xZB8CRkbE/sBGwKsRMUvSLW2O62ngjtw7fDwiXgDWBv7a3rDayrndvE7Na+jA3O6m\nAj8FOAO4NCK2B2ZLeqHNMRERqwFfA8ZJ6piTPpIOqL2OiInAjA7ZCKYAV0bEuaTD2FWAue0Nqe2c\n203q4LyGDsztrinwku6IiHsj4g5gMXBsu2PKDgDWAq6LiNq08ZJmti+kziXpqYi4HrgrT/q0pMXt\njKndnNvV0Im57dsFm5lVVDefZDUzswG4wJuZVZQLvJlZRbnAm5lVlAu8mVlFucCbmVVU11wH320i\nYj3gXGBb4AXgLcAVkr7e4jjeBXyF9Is6SPc5OVXSfYMstzPwF0lPlByidRnndvdwD74E+f4TPwHu\nlLSdpFHAHsBREfHRfuYvI451chxflrS9pO1JG8QNEbHWIIt/AhhZRlzWvZzb3cU/dCpBRIwDzpD0\nvobpy0v6e359JfAqsBVwCLAhcD7wD9JDH46T9FBE3EpK4lsiYlPgdkkb5eVfAjYH1geulDSpYX1f\nAZaVdHLD9EnAS5JOi4heYDlJCyNiAumWpz8ErgCeBD4r6ZfF/GWs2zm3u4t78OXYBrincWJtA6iz\nsqTRkmYBV5ESbgwwCbi4ifVsJGkP4P3AafmBA/XeCfy2j+XuBLbvr1FJk4H7gc9VfQOwIXNudxGP\nwZdjEXV/24g4GjgYWAH4s6TaQxTuyJ+vDqxb95i2W4FrmljPFABJz0XEI8CWwLN1n79I/zvxYX3/\nF1tqzu0u4h58OR4Adqq9kXSZpF2BU0iHnDW1Xk/jOFlP3bT6z5ZvmK/+/6+Hf25niTjqvJu+ez+N\n7Zs1cm53ERf4Eki6DXg2Ik6tTYuI5YDdgZf7mP95YE5E7JgnjeP1O9LNBzbOr3drWHRMbnsEsAWg\nhs8vBj6en61Zi2Nn0gMJalc81Lc/pm7ZxcByA35RG3ac293FQzTl2Qf4SkTcT0q0lUnPuDy4n/nH\nA5MiYhHpMPiYPP0i4JKIOBj4WcMy8yJiMulk1OmSnqv/UNKzEbEr8I2IOI/UC3oa2K/u4Q3nAFMi\n4lHg97y+QfyCdH/yz0j60dC/vlWYc7tL+CqaLpWvNLhd0nfaHYtZkZzbxfEQjZlZRbkHb2ZWUe7B\nm5lVlAu8mVlFucCbmVWUC7yZWUW5wJuZVZQLvJlZRf0vhqRibo7514YAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create plot of the H-1 scattering matrix\n", "fig = plt.subplot(121)\n", @@ -1924,7 +1948,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, From f1e0b5b8ef9784904183e26bc28eb5f4ba60a4d5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 8 Apr 2016 16:25:24 -0500 Subject: [PATCH 092/259] Avoid bug in h5py 2.6 for the time being --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index acec278ed..b99ce540b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,7 @@ before_install: - conda config --set always_yes yes --set changeps1 no - conda update -q conda - conda info -a - - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION numpy scipy h5py pandas + - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION numpy scipy h5py=2.5 pandas - source activate test-environment # Install GCC, MPICH, HDF5, PHDF5 From 4eb9a5185319e8454ef9f038cdffd8bc9bbe464d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 8 Apr 2016 14:52:43 -0500 Subject: [PATCH 093/259] Fix bug with assigning zaids to metastable nuclides --- src/ace.F90 | 2 +- .../test_asymmetric_lattice/results_true.dat | 2 +- tests/test_filter_mesh_2d/results_true.dat | 70 +- tests/test_filter_mesh_3d/results_true.dat | 706 +++++++++--------- tests/test_iso_in_lab/results_true.dat | 2 +- tests/test_lattice_multiple/results_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 6 +- .../results_true.dat | 2 +- .../results_true.dat | 68 +- tests/test_score_current/results_true.dat | 2 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_assumesep/results_true.dat | 2 +- 13 files changed, 434 insertions(+), 434 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index 1d5f5f45b..caa7c3aed 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -369,7 +369,7 @@ contains nuc % name = name nuc % awr = awr nuc % kT = kT - nuc % zaid = NXS(2) + nuc % zaid = listing % zaid end if ! read all blocks diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index 31b09c4da..a33b9c9e5 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -219ee21902e83b0f1b8e92ca4977db998e3a4a5ca36da5be9490f9ec4f30ab90cf15a257fe4113d2f1f9eb85cab159ed65638412b9751ce786d263870c208581 \ No newline at end of file +bc8bef8121f9b6470e4fea817a4e48eabb1ecba1f42761a4cbd77d71181bf9e1612df4a3d6ddfbcd08a3086ac873e5f3c3e560bf96b2b7c959a2f7aad7e4e08d \ No newline at end of file diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index 3e43ffe88..f4c597952 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -9.581523E-01 4.261823E-02 +9.581522E-01 4.261830E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -73,8 +73,8 @@ tally 1: 0.000000E+00 1.149324E-01 1.320945E-02 -2.465049E-02 -3.049064E-04 +2.465048E-02 +3.049063E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -86,13 +86,13 @@ tally 1: 0.000000E+00 0.000000E+00 7.002118E-02 -4.902966E-03 +4.902965E-03 5.128548E-01 1.258296E-01 1.379070E+00 4.300261E-01 1.040956E+00 -3.089103E-01 +3.089102E-01 1.237157E+00 6.284409E-01 9.539296E-01 @@ -121,14 +121,14 @@ tally 1: 1.597365E-02 8.612279E-02 5.910825E-03 -9.004672E-01 +9.004671E-01 2.791173E-01 6.485841E+00 1.046238E+01 6.743595E+00 1.135216E+01 -7.681047E-01 -1.896253E-01 +7.681046E-01 +1.896252E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -155,7 +155,7 @@ tally 1: 2.287801E-01 5.651386E-01 1.286874E-01 -5.729904E-01 +5.729905E-01 2.680764E-01 5.509254E-01 1.200498E-01 @@ -185,16 +185,16 @@ tally 1: 5.854257E-02 2.237774E+00 1.109643E+00 -7.495197E-01 +7.495196E-01 1.939234E-01 3.804197E-01 1.225870E-01 1.009880E-01 -9.392498E-03 +9.392497E-03 2.424177E+00 1.613025E+00 2.226123E+00 -1.203764E+00 +1.203763E+00 1.939766E+00 1.132042E+00 3.953753E-01 @@ -207,7 +207,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.501130E-02 +2.501129E-02 6.255649E-04 3.984785E-01 1.486414E-01 @@ -233,11 +233,11 @@ tally 1: 1.425606E+00 1.377786E-01 1.716503E-02 -3.011081E-02 -9.066609E-04 +3.011069E-02 +9.066538E-04 0.000000E+00 0.000000E+00 -5.118695E-02 +5.118696E-02 2.620104E-03 0.000000E+00 0.000000E+00 @@ -260,14 +260,14 @@ tally 1: 2.560771E-01 6.557550E-02 9.262861E-03 -8.580059E-05 +8.580060E-05 2.505905E-01 6.279558E-02 5.136552E-01 2.638417E-01 1.441275E+00 -5.086866E-01 -2.913900E+00 +5.086865E-01 +2.913901E+00 1.841912E+00 6.978650E-01 2.584000E-01 @@ -301,7 +301,7 @@ tally 1: 1.575534E-01 4.033076E-01 5.492660E-02 -4.513269E+00 +4.513270E+00 5.611449E+00 1.653243E+00 8.369762E-01 @@ -318,15 +318,15 @@ tally 1: 5.709899E+00 7.095076E+00 1.194169E+00 -4.790399E-01 +4.790398E-01 1.420269E-01 -2.017164E-02 +2.017163E-02 0.000000E+00 0.000000E+00 -3.214463E-01 +3.214464E-01 1.033278E-01 -2.222164E-02 -4.938014E-04 +2.222160E-02 +4.937996E-04 2.028040E-01 4.112944E-02 1.417427E+00 @@ -335,7 +335,7 @@ tally 1: 6.697189E-01 8.534416E-01 2.290345E-01 -5.367405E+00 +5.367404E+00 6.853344E+00 1.237276E+00 4.961691E-01 @@ -345,14 +345,14 @@ tally 1: 1.049542E-01 4.235354E+00 5.638989E+00 -2.034494E+00 +2.034493E+00 1.162774E+00 1.533605E+00 -8.644494E-01 +8.644495E-01 4.663027E+00 5.641430E+00 1.261505E+00 -7.705207E-01 +7.705206E-01 1.954689E+00 9.874394E-01 1.449729E-01 @@ -364,7 +364,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.398153E-01 -1.954831E-02 +1.954832E-02 5.089636E-01 8.836228E-02 1.422521E+00 @@ -380,7 +380,7 @@ tally 1: 3.267703E-01 4.763836E-02 1.252153E+00 -4.563947E-01 +4.563949E-01 1.962807E-01 2.410165E-02 1.357567E+00 @@ -419,7 +419,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.679763E-01 +3.679762E-01 1.354065E-01 5.043842E-02 2.544034E-03 @@ -502,11 +502,11 @@ tally 1: 0.000000E+00 0.000000E+00 5.208007E-01 -2.057625E-01 +2.057626E-01 1.050464E+00 5.524605E-01 -7.171592E-02 -5.143173E-03 +7.171591E-02 +5.143172E-03 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat index 15724025c..88a522827 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -9.581523E-01 4.261823E-02 +9.581522E-01 4.261830E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -897,10 +897,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.083670E-01 +1.083669E-01 1.174340E-02 -3.904086E-02 -1.524189E-03 +3.904088E-02 +1.524190E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1444,7 +1444,7 @@ tally 1: 0.000000E+00 0.000000E+00 7.002118E-02 -4.902966E-03 +4.902965E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1476,9 +1476,9 @@ tally 1: 0.000000E+00 0.000000E+00 2.623543E-01 -4.112455E-02 -2.258488E-01 -5.100769E-02 +4.112454E-02 +2.258489E-01 +5.100771E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1504,11 +1504,11 @@ tally 1: 1.729718E-01 2.991925E-02 2.994456E-02 -8.966769E-04 +8.966764E-04 9.977770E-03 -9.955589E-05 +9.955590E-05 4.396029E-01 -6.352575E-02 +6.352573E-02 5.669837E-01 1.209384E-01 1.423672E-01 @@ -1528,7 +1528,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.722215E-02 -2.966023E-04 +2.966024E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1540,9 +1540,9 @@ tally 1: 0.000000E+00 0.000000E+00 1.565669E-02 -2.451320E-04 +2.451318E-04 8.200689E-01 -2.392979E-01 +2.392978E-01 1.748649E-01 1.584562E-02 0.000000E+00 @@ -1561,8 +1561,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.036512E-02 -9.220404E-04 +3.036511E-02 +9.220402E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1575,11 +1575,11 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.998386E-02 +9.998387E-02 7.936690E-03 1.089115E+00 5.614559E-01 -4.805841E-02 +4.805840E-02 2.309610E-03 0.000000E+00 0.000000E+00 @@ -1801,7 +1801,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.448096E-01 +3.448095E-01 5.774877E-02 0.000000E+00 0.000000E+00 @@ -1934,7 +1934,7 @@ tally 1: 0.000000E+00 0.000000E+00 5.319541E-03 -2.829751E-05 +2.829752E-05 3.420304E-01 1.169848E-01 0.000000E+00 @@ -1999,10 +1999,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.896347E-02 -1.518152E-03 -1.048933E-01 -7.753481E-03 +3.896367E-02 +1.518168E-03 +1.048931E-01 +7.753447E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2033,10 +2033,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.396515E-03 -5.743285E-06 -8.372628E-02 -5.869222E-03 +2.396759E-03 +5.744454E-06 +8.372603E-02 +5.869219E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2045,16 +2045,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.409443E-02 -1.944319E-03 +4.409446E-02 +1.944321E-03 2.812104E-01 -7.907929E-02 +7.907926E-02 0.000000E+00 0.000000E+00 1.125733E-01 1.267274E-02 -3.364086E-01 -6.085431E-02 +3.364085E-01 +6.085429E-02 8.236284E-02 4.869311E-03 0.000000E+00 @@ -2087,9 +2087,9 @@ tally 1: 5.280988E-02 2.073790E+00 1.188596E+00 -9.609430E-01 +9.609431E-01 2.621642E-01 -4.350510E-01 +4.350509E-01 1.399885E-01 0.000000E+00 0.000000E+00 @@ -2103,24 +2103,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.412546E-04 -2.929565E-07 +5.411503E-04 +2.928436E-07 1.480967E+00 -5.223268E-01 +5.223269E-01 1.727443E-01 1.798769E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.254526E-01 -1.810099E-01 +4.254527E-01 +1.810100E-01 2.391190E-01 2.413267E-02 -3.823231E-01 -4.488287E-02 -4.156040E+00 -4.315161E+00 +3.823223E-01 +4.488260E-02 +4.156041E+00 +4.315163E+00 1.009424E+00 3.060875E-01 0.000000E+00 @@ -2151,10 +2151,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.052675E-02 -8.195093E-03 +9.052674E-02 +8.195092E-03 3.050953E-01 -3.658883E-02 +3.658881E-02 1.622477E-01 1.848987E-02 0.000000E+00 @@ -2172,9 +2172,9 @@ tally 1: 0.000000E+00 0.000000E+00 1.164981E-01 -1.357182E-02 +1.357181E-02 9.373673E-02 -4.377146E-03 +4.377147E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2380,7 +2380,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.370265E-01 -1.583750E-02 +1.583751E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2505,14 +2505,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.602121E-02 +3.602120E-02 1.297527E-03 2.054694E-02 -4.221767E-04 +4.221768E-04 3.699789E-01 1.099867E-01 1.034262E-01 -6.886192E-03 +6.886191E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2575,12 +2575,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.613312E-01 -2.177880E-02 -4.750136E-01 -1.508283E-01 -5.109846E-02 -1.598242E-03 +1.613314E-01 +2.177882E-02 +4.750135E-01 +1.508282E-01 +5.109842E-02 +1.598239E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2611,10 +2611,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.936906E-01 -7.202020E-02 -1.714480E-01 -1.505050E-02 +3.936907E-01 +7.202022E-02 +1.714479E-01 +1.505049E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2626,7 +2626,7 @@ tally 1: 4.226996E-01 1.360325E-01 7.317899E-02 -5.355164E-03 +5.355165E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2652,16 +2652,16 @@ tally 1: 0.000000E+00 0.000000E+00 7.711190E-02 -5.946246E-03 +5.946245E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.946067E-02 -8.679308E-04 -1.124255E-01 +2.946064E-02 +8.679293E-04 +1.124256E-01 1.263950E-02 0.000000E+00 0.000000E+00 @@ -2683,10 +2683,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.561577E-01 +1.561576E-01 2.112454E-02 -1.640941E-01 -2.692689E-02 +1.640942E-01 +2.692690E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2697,10 +2697,10 @@ tally 1: 0.000000E+00 1.508419E-01 2.275329E-02 -2.887902E-01 -4.216076E-02 -4.015411E-01 -7.884729E-02 +2.887905E-01 +4.216084E-02 +4.015408E-01 +7.884715E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2717,10 +2717,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.595965E-02 +5.595964E-02 2.146289E-03 3.159701E-01 -3.538767E-02 +3.538768E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2751,13 +2751,13 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.403984E-02 -3.220777E-03 -1.220496E-01 +7.403983E-02 +3.220776E-03 +1.220497E-01 1.051103E-02 0.000000E+00 0.000000E+00 -4.308559E-02 +4.308558E-02 1.856368E-03 1.206585E-01 1.455847E-02 @@ -3088,9 +3088,9 @@ tally 1: 9.531928E-02 6.215764E-03 2.906510E-01 -2.666265E-02 -4.038687E-02 -1.631099E-03 +2.666266E-02 +4.038686E-02 +1.631098E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3117,8 +3117,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.367395E-03 -1.869768E-06 +1.367392E-03 +1.869762E-06 6.997755E-01 1.672455E-01 9.975381E-01 @@ -3157,7 +3157,7 @@ tally 1: 0.000000E+00 6.670089E-01 1.688817E-01 -8.251078E-02 +8.251077E-02 3.717992E-03 0.000000E+00 0.000000E+00 @@ -3187,8 +3187,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.683051E-03 -9.376148E-05 +9.683052E-03 +9.376150E-05 3.707367E-01 1.159281E-01 0.000000E+00 @@ -3230,7 +3230,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.009880E-01 -9.392498E-03 +9.392497E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3243,12 +3243,12 @@ tally 1: 3.025673E-02 0.000000E+00 0.000000E+00 -2.075805E-02 -4.308965E-04 -8.573312E-01 -2.242081E-01 -2.267548E-01 -2.900095E-02 +2.075806E-02 +4.308970E-04 +8.573314E-01 +2.242082E-01 +2.267546E-01 +2.900091E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3263,7 +3263,7 @@ tally 1: 0.000000E+00 3.978837E-01 1.583114E-01 -7.475044E-01 +7.475045E-01 2.090484E-01 0.000000E+00 0.000000E+00 @@ -3273,14 +3273,14 @@ tally 1: 0.000000E+00 3.630182E-02 1.317822E-03 -6.960537E-02 -4.844908E-03 -3.721248E-03 -1.384769E-05 -7.406530E-02 -5.485669E-03 +6.960539E-02 +4.844911E-03 +3.721224E-03 +1.384751E-05 +7.406533E-02 +5.485672E-03 1.330296E+00 -6.633077E-01 +6.633075E-01 1.862835E-02 3.470153E-04 0.000000E+00 @@ -3298,7 +3298,7 @@ tally 1: 0.000000E+00 0.000000E+00 5.329778E-01 -1.118274E-01 +1.118275E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3365,8 +3365,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.471871E-02 -5.582886E-03 +7.471872E-02 +5.582887E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3533,7 +3533,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.501130E-02 +2.501129E-02 6.255649E-04 0.000000E+00 0.000000E+00 @@ -3567,7 +3567,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.907151E-02 +8.907152E-02 7.933735E-03 3.094070E-01 8.793386E-02 @@ -3665,9 +3665,9 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.420413E-02 -1.954005E-03 -9.389955E-01 +4.420414E-02 +1.954006E-03 +9.389954E-01 4.408852E-01 0.000000E+00 0.000000E+00 @@ -3731,8 +3731,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.028972E-02 -4.229428E-03 +9.028974E-02 +4.229429E-03 8.019636E-01 2.406005E-01 0.000000E+00 @@ -3813,8 +3813,8 @@ tally 1: 0.000000E+00 4.562052E-01 1.041492E-01 -6.039508E-02 -3.647565E-03 +6.039507E-02 +3.647564E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3845,8 +3845,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.680079E-01 -7.239471E-02 +3.680080E-01 +7.239472E-02 9.309308E-01 5.812760E-01 7.945599E-03 @@ -3855,12 +3855,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.567972E-02 -7.341014E-03 +8.567983E-02 +7.341033E-03 1.754088E+00 -8.632559E-01 -7.548732E-04 -5.698335E-07 +8.632560E-01 +7.547884E-04 +5.697055E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3882,7 +3882,7 @@ tally 1: 1.211417E-01 1.467532E-02 1.144903E+00 -4.944035E-01 +4.944036E-01 7.558522E-01 3.387696E-01 0.000000E+00 @@ -3917,8 +3917,8 @@ tally 1: 0.000000E+00 1.257462E-01 1.456033E-02 -1.755760E-03 -3.082694E-06 +1.755790E-03 +3.082798E-06 0.000000E+00 0.000000E+00 1.027660E-02 @@ -3955,8 +3955,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.011081E-02 -9.066609E-04 +3.011069E-02 +9.066538E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4037,7 +4037,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.118695E-02 +5.118696E-02 2.620104E-03 0.000000E+00 0.000000E+00 @@ -4171,16 +4171,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.099507E-01 -6.290297E-02 -3.631685E-01 -1.318914E-01 +4.099509E-01 +6.290302E-02 +3.631683E-01 +1.318912E-01 0.000000E+00 0.000000E+00 1.023202E+00 7.786623E-01 -7.978888E-01 -2.156290E-01 +7.978887E-01 +2.156289E-01 2.410067E-01 5.808423E-02 0.000000E+00 @@ -4200,7 +4200,7 @@ tally 1: 0.000000E+00 0.000000E+00 8.728851E-03 -7.619283E-05 +7.619284E-05 1.582575E-01 2.504545E-02 0.000000E+00 @@ -4213,7 +4213,7 @@ tally 1: 0.000000E+00 1.698392E-01 1.770322E-02 -7.630963E-02 +7.630962E-02 2.320465E-03 0.000000E+00 0.000000E+00 @@ -4379,10 +4379,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.524617E-01 -6.373692E-02 -3.615407E-03 -1.307117E-05 +2.524618E-01 +6.373694E-02 +3.615369E-03 +1.307089E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4390,7 +4390,7 @@ tally 1: 0.000000E+00 0.000000E+00 9.262861E-03 -8.580059E-05 +8.580060E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4435,10 +4435,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.701983E-01 -2.896747E-02 -8.039213E-02 -6.462895E-03 +1.701984E-01 +2.896749E-02 +8.039207E-02 +6.462885E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4467,8 +4467,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.715403E-02 -4.509664E-03 +6.715405E-02 +4.509666E-03 4.465012E-01 1.993633E-01 0.000000E+00 @@ -4494,17 +4494,17 @@ tally 1: 0.000000E+00 0.000000E+00 2.157774E-03 -4.655987E-06 -6.310711E-02 -2.175397E-03 -8.322469E-02 +4.655990E-06 +6.310707E-02 +2.175394E-03 +8.322470E-02 3.984732E-03 -8.945208E-02 -4.272340E-03 -7.510697E-01 +8.945207E-02 +4.272339E-03 +7.510694E-01 2.592974E-01 -1.811101E-01 -3.280086E-02 +1.811100E-01 +3.280084E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4515,10 +4515,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.927050E-03 -8.567625E-06 -2.682269E-01 -7.194567E-02 +2.927144E-03 +8.568173E-06 +2.682268E-01 +7.194562E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4531,14 +4531,14 @@ tally 1: 0.000000E+00 3.678545E-02 1.353169E-03 -3.580129E-01 -9.576000E-02 -4.871555E-01 -9.900006E-02 +3.580128E-01 +9.575996E-02 +4.871561E-01 +9.900028E-02 1.399012E+00 -6.326647E-01 -4.954947E-01 -1.916585E-01 +6.326649E-01 +4.954942E-01 +1.916582E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4570,7 +4570,7 @@ tally 1: 0.000000E+00 0.000000E+00 4.262772E-01 -9.802531E-02 +9.802530E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4581,10 +4581,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.699970E-01 -4.178443E-02 -1.590778E-03 -2.530575E-06 +2.699969E-01 +4.178442E-02 +1.590867E-03 +2.530859E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4713,10 +4713,10 @@ tally 1: 1.613622E-03 0.000000E+00 0.000000E+00 -3.890880E-02 -1.513895E-03 -1.234219E+00 -4.999183E-01 +3.890902E-02 +1.513911E-03 +1.234218E+00 +4.999181E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4745,22 +4745,22 @@ tally 1: 4.742470E-02 3.209188E-02 1.029889E-03 -1.385335E-02 -1.919154E-04 -2.009712E-01 -3.766426E-02 -5.245829E-01 -7.576339E-02 +1.385333E-02 +1.919148E-04 +2.009713E-01 +3.766430E-02 +5.245828E-01 +7.576335E-02 0.000000E+00 0.000000E+00 4.241176E-01 9.055699E-02 3.230798E-01 -3.896400E-02 +3.896399E-02 2.621971E-01 -4.860490E-02 -4.089900E-03 -9.541983E-06 +4.860489E-02 +4.089938E-03 +9.542099E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4778,8 +4778,8 @@ tally 1: 1.046129E-01 1.094386E-02 1.524559E+00 -7.117854E-01 -7.244019E-01 +7.117855E-01 +7.244018E-01 2.009724E-01 1.834594E-02 3.365736E-04 @@ -4957,10 +4957,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.453315E-02 -2.112125E-04 -2.118498E-02 -4.488034E-04 +1.453317E-02 +2.112130E-04 +2.118496E-02 +4.488027E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4992,11 +4992,11 @@ tally 1: 0.000000E+00 0.000000E+00 5.015914E-02 -2.515939E-03 -5.972803E-01 +2.515940E-03 +5.972802E-01 2.058844E-01 -1.137974E-02 -1.294985E-04 +1.137979E-02 +1.294997E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5020,17 +5020,17 @@ tally 1: 0.000000E+00 0.000000E+00 1.075776E-01 -1.157293E-02 -1.876736E-02 -3.142669E-04 +1.157294E-02 +1.876735E-02 +3.142665E-04 0.000000E+00 0.000000E+00 -8.266087E-02 -6.832819E-03 -8.619422E-02 -6.961732E-03 -1.219440E-01 -1.487034E-02 +8.266086E-02 +6.832818E-03 +8.619416E-02 +6.961721E-03 +1.219441E-01 +1.487035E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5076,9 +5076,9 @@ tally 1: 0.000000E+00 0.000000E+00 1.034037E-01 -3.976882E-03 -4.274866E-02 -1.827448E-03 +3.976885E-03 +4.274862E-02 +1.827445E-03 1.074496E-01 1.154542E-02 0.000000E+00 @@ -5089,12 +5089,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.693308E-02 -6.692039E-04 +2.693310E-02 +6.692041E-04 3.591875E-02 1.290157E-03 -8.685374E-02 -7.543573E-03 +8.685372E-02 +7.543569E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5105,11 +5105,11 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.358167E-02 -5.560954E-04 +2.358169E-02 +5.560962E-04 4.196949E-01 -8.821559E-02 -9.766237E-01 +8.821556E-02 +9.766238E-01 3.187064E-01 2.263564E+00 1.440716E+00 @@ -5127,8 +5127,8 @@ tally 1: 0.000000E+00 1.770925E-01 1.577698E-02 -3.206601E-02 -8.744270E-04 +3.206602E-02 +8.744271E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5142,7 +5142,7 @@ tally 1: 1.668276E-01 2.783144E-02 9.642655E-02 -9.273190E-03 +9.273189E-03 5.348043E-02 2.860156E-03 4.290530E-02 @@ -5159,9 +5159,9 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.084059E-01 -1.536167E-01 -5.000907E-01 +7.084057E-01 +1.536166E-01 +5.000909E-01 1.141659E-01 0.000000E+00 0.000000E+00 @@ -5193,20 +5193,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.751278E-02 -3.307719E-03 -4.702080E-02 -2.210956E-03 +5.751275E-02 +3.307717E-03 +4.702083E-02 +2.210958E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.784082E-02 -1.431928E-03 -2.013938E-02 -4.055947E-04 +3.784067E-02 +1.431916E-03 +2.013954E-02 +4.056009E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5230,7 +5230,7 @@ tally 1: 0.000000E+00 0.000000E+00 2.397100E-02 -5.746087E-04 +5.746090E-04 1.667122E-01 1.609363E-02 0.000000E+00 @@ -5274,7 +5274,7 @@ tally 1: 0.000000E+00 0.000000E+00 7.532992E-02 -5.674597E-03 +5.674596E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5321,13 +5321,13 @@ tally 1: 0.000000E+00 2.715682E-01 6.930003E-02 -1.711787E+00 +1.711788E+00 1.416936E+00 -4.750553E-01 -9.493584E-02 -4.064748E-01 -9.731062E-02 -5.521307E-01 +4.750552E-01 +9.493583E-02 +4.064749E-01 +9.731066E-02 +5.521306E-01 1.121121E-01 0.000000E+00 0.000000E+00 @@ -5363,10 +5363,10 @@ tally 1: 2.558641E-01 1.298371E-01 1.330104E-02 -5.996349E-01 -1.076801E-01 -1.715162E-01 -1.827797E-02 +5.996351E-01 +1.076802E-01 +1.715160E-01 +1.827795E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5381,16 +5381,16 @@ tally 1: 0.000000E+00 1.032011E-01 1.065047E-02 -2.415666E-01 -2.918472E-02 -4.165840E-02 +2.415665E-01 +2.918471E-02 +4.165841E-02 1.735423E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.628620E-01 -9.960984E-02 +4.628619E-01 +9.960982E-02 3.325684E-01 5.701948E-02 0.000000E+00 @@ -5424,7 +5424,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.420269E-01 -2.017164E-02 +2.017163E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5501,10 +5501,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.878870E-01 -8.287890E-02 -3.355938E-02 -1.126232E-03 +2.878871E-01 +8.287897E-02 +3.355929E-02 +1.126226E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5535,8 +5535,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.222164E-02 -4.938014E-04 +2.222160E-02 +4.937996E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5597,10 +5597,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.408839E-01 -9.930466E-03 +1.408841E-01 +9.930494E-03 1.266345E+00 -7.682957E-01 +7.682954E-01 0.000000E+00 0.000000E+00 1.019759E-02 @@ -5631,10 +5631,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.157485E-01 -2.724497E-02 -7.546768E-01 -2.070655E-01 +2.157489E-01 +2.724501E-02 +7.546765E-01 +2.070654E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5683,12 +5683,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.892564E-01 -3.581800E-02 -6.573175E-01 +1.892565E-01 +3.581801E-02 +6.573174E-01 3.473163E-01 1.641852E+00 -9.021845E-01 +9.021844E-01 2.844653E+00 1.857026E+00 3.432563E-02 @@ -5781,10 +5781,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.718543E-03 -3.270174E-05 -1.244175E-01 -1.547972E-02 +5.718522E-03 +3.270150E-05 +1.244176E-01 +1.547973E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5809,7 +5809,7 @@ tally 1: 0.000000E+00 1.165202E-01 6.930471E-03 -2.882402E-01 +2.882401E-01 4.938325E-02 1.786607E-02 3.191964E-04 @@ -5835,13 +5835,13 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.215623E-02 -4.908984E-04 +2.215622E-02 +4.908983E-04 7.663116E-02 -5.274653E-03 +5.274654E-03 2.330690E-01 5.432115E-02 -4.899884E-02 +4.899885E-02 2.400887E-03 2.509994E-01 3.312022E-02 @@ -5849,12 +5849,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.646169E-01 -2.722514E-02 +2.646162E-01 +2.722494E-02 2.779035E-01 -3.159895E-02 -2.470258E-01 -3.094096E-02 +3.159893E-02 +2.470259E-01 +3.094098E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5883,12 +5883,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.327759E-01 -1.698162E-02 +1.327761E-01 +1.698166E-02 0.000000E+00 0.000000E+00 8.606674E-02 -7.407484E-03 +7.407483E-03 1.553405E-01 1.453017E-02 0.000000E+00 @@ -5901,14 +5901,14 @@ tally 1: 0.000000E+00 1.685770E-02 2.841820E-04 -4.475530E-02 -2.003037E-03 +4.475531E-02 +2.003038E-03 7.510889E-01 3.262838E-01 1.518297E-01 1.402100E-02 1.948898E-01 -3.798205E-02 +3.798204E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5935,18 +5935,18 @@ tally 1: 0.000000E+00 1.375452E-01 1.835673E-02 -1.548402E-01 -2.397550E-02 -6.058355E-02 -1.850618E-03 -1.431855E-01 -2.050210E-02 -7.003130E-01 -2.735249E-01 -3.979720E-01 -1.307259E-01 -9.764192E-02 -9.533945E-03 +1.548403E-01 +2.397552E-02 +6.058351E-02 +1.850615E-03 +1.431856E-01 +2.050213E-02 +7.003137E-01 +2.735252E-01 +3.979721E-01 +1.307262E-01 +9.764118E-02 +9.533800E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5961,8 +5961,8 @@ tally 1: 3.559292E-02 8.969160E-01 4.355459E-01 -8.832719E-02 -7.801693E-03 +8.832720E-02 +7.801694E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5995,7 +5995,7 @@ tally 1: 0.000000E+00 1.149703E+00 3.989107E-01 -8.049860E-01 +8.049861E-01 1.599684E-01 0.000000E+00 0.000000E+00 @@ -6177,10 +6177,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.355862E-01 -1.838362E-02 -4.229078E-03 -1.788510E-05 +1.355863E-01 +1.838365E-02 +4.228981E-03 +1.788428E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6195,10 +6195,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.929650E-02 -9.859794E-03 +9.929647E-02 +9.859789E-03 2.615062E-01 -3.533944E-02 +3.533945E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6212,7 +6212,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.481609E-01 -2.195166E-02 +2.195167E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6229,10 +6229,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.071176E-01 -5.415798E-02 +3.071175E-01 +5.415795E-02 1.115403E+00 -3.834870E-01 +3.834871E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6300,7 +6300,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.164369E-01 -1.355755E-02 +1.355756E-02 2.357411E-01 2.637254E-02 0.000000E+00 @@ -6361,8 +6361,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.200446E-02 -3.844553E-03 +6.200444E-02 +3.844551E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6427,8 +6427,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.297200E-01 -5.369804E-02 +3.297202E-01 +5.369813E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6448,9 +6448,9 @@ tally 1: 0.000000E+00 0.000000E+00 9.183632E-01 -2.857439E-01 -4.069857E-03 -1.656373E-05 +2.857440E-01 +4.069831E-03 +1.656352E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6499,11 +6499,11 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.853336E-01 -3.434853E-02 +1.853335E-01 +3.434852E-02 4.612134E-01 1.063957E-01 -1.223026E-01 +1.223027E-01 1.495794E-02 0.000000E+00 0.000000E+00 @@ -6519,10 +6519,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.750173E-01 -1.153950E-01 -2.136998E-01 -4.566760E-02 +3.750187E-01 +1.153951E-01 +2.136983E-01 +4.566698E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6540,7 +6540,7 @@ tally 1: 1.358408E-01 1.019608E-02 8.209316E-02 -3.505892E-03 +3.505893E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6571,10 +6571,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.078001E-01 +8.078002E-01 1.757558E-01 -5.722245E-01 -9.204133E-02 +5.722246E-01 +9.204135E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6607,8 +6607,8 @@ tally 1: 0.000000E+00 1.354717E-01 9.718740E-03 -5.221741E-02 -2.726658E-03 +5.221740E-02 +2.726657E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6807,9 +6807,9 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.663835E-02 -8.107319E-04 -1.574352E-01 +3.663834E-02 +8.107316E-04 +1.574353E-01 2.355445E-02 0.000000E+00 0.000000E+00 @@ -6848,7 +6848,7 @@ tally 1: 3.788668E-02 1.435401E-03 2.270802E-02 -5.156542E-04 +5.156541E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6879,8 +6879,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.896789E-03 -7.915286E-05 +8.896790E-03 +7.915287E-05 4.847729E-02 2.350047E-03 2.905640E-01 @@ -7117,7 +7117,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.679763E-01 +3.679762E-01 1.354065E-01 0.000000E+00 0.000000E+00 @@ -7154,7 +7154,7 @@ tally 1: 3.727350E-02 1.389314E-03 1.316492E-02 -1.733151E-04 +1.733152E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7947,8 +7947,8 @@ tally 1: 0.000000E+00 1.589438E-01 2.060098E-02 -8.883974E-03 -7.892500E-05 +8.883980E-03 +7.892509E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7975,8 +7975,8 @@ tally 1: 0.000000E+00 1.085624E-02 1.178580E-04 -1.326034E-02 -1.758367E-04 +1.326035E-02 +1.758368E-04 0.000000E+00 0.000000E+00 2.901092E-02 @@ -8555,12 +8555,12 @@ tally 1: 0.000000E+00 1.155931E-01 1.336177E-02 -2.362143E-01 -5.579719E-02 -6.926634E-01 -2.428255E-01 -5.993455E-03 -3.592151E-05 +2.362142E-01 +5.579715E-02 +6.926635E-01 +2.428256E-01 +5.993460E-03 +3.592156E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8589,8 +8589,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.171592E-02 -5.143173E-03 +7.171591E-02 +5.143172E-03 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_iso_in_lab/results_true.dat b/tests/test_iso_in_lab/results_true.dat index a860453c6..354ccb0f8 100644 --- a/tests/test_iso_in_lab/results_true.dat +++ b/tests/test_iso_in_lab/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.638451E-01 1.237712E-02 +9.638450E-01 1.237705E-02 diff --git a/tests/test_lattice_multiple/results_true.dat b/tests/test_lattice_multiple/results_true.dat index 318bd9235..5c00c4486 100644 --- a/tests/test_lattice_multiple/results_true.dat +++ b/tests/test_lattice_multiple/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.581523E-01 4.261823E-02 +9.581522E-01 4.261830E-02 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 629bf6015..e19b9ffa5 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -2,8 +2,8 @@ domain=1 type=transport [ 0.37274472 0.86160691] [ 0.02426918 0.03234902] domain=1 type=nu-fission -[ 0.021789 0.71407573] -[ 0.00118188 0.04055226] +[ 0.02178897 0.71407658] +[ 0.00118187 0.04055185] domain=1 type=nu-scatter matrix [[ 0.3373971 0.00155945] [ 0. 0.42205129]] @@ -11,7 +11,7 @@ domain=1 type=nu-scatter matrix [ 0. 0.02161702]] domain=1 type=chi [ 1. 0.] -[ 0.05533321 0. ] +[ 0.05533329 0. ] domain=2 type=transport [ 0.23725441 0.28593027] [ 0.00818357 0.04879593] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index b6cef05dc..442b8ac7b 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -2,7 +2,7 @@ 1 1 1 total 0.372745 0.024269 0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. 1 1 1 total 0.021789 0.001182 -0 1 2 total 0.714076 0.040552 material group in group out nuclide mean std. dev. +0 1 2 total 0.714077 0.040552 material group in group out nuclide mean std. dev. 3 1 1 1 total 0.337397 0.023039 2 1 1 2 total 0.001559 0.000510 1 1 2 1 total 0.000000 0.000000 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 943df1d80..145521964 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -67,23 +67,23 @@ 31 1 2 Eu-153 0.000000 0.000000 32 1 2 Gd-155 0.000000 0.000000 33 1 2 O-16 0.196946 0.014729 material group in nuclide mean std. dev. -34 1 1 U-234 7.274436e-06 4.419480e-07 -35 1 1 U-235 9.587789e-03 5.936867e-04 -36 1 1 U-236 7.566085e-05 7.523984e-06 -37 1 1 U-238 7.178361e-03 6.505657e-04 -38 1 1 Np-237 1.315681e-05 8.036505e-07 -39 1 1 Pu-238 7.746149e-06 3.992846e-07 -40 1 1 Pu-239 3.805332e-03 3.637556e-04 -41 1 1 Pu-240 6.941315e-05 4.729734e-06 -42 1 1 Pu-241 1.033846e-03 9.084007e-05 -43 1 1 Pu-242 5.995329e-06 3.821724e-07 -44 1 1 Am-241 1.148582e-06 8.271558e-08 -45 1 1 Am-242m 1.101985e-06 6.376129e-08 -46 1 1 Am-243 8.323823e-07 5.841794e-08 -47 1 1 Cm-242 5.088975e-07 5.258061e-08 -48 1 1 Cm-243 2.245435e-07 1.459031e-08 -49 1 1 Cm-244 2.993205e-07 2.746134e-08 -50 1 1 Cm-245 3.063614e-07 3.057777e-08 +34 1 1 U-234 7.274440e-06 4.419477e-07 +35 1 1 U-235 9.587803e-03 5.936922e-04 +36 1 1 U-236 7.566099e-05 7.523935e-06 +37 1 1 U-238 7.178367e-03 6.505680e-04 +38 1 1 Np-237 1.315682e-05 8.036501e-07 +39 1 1 Pu-238 7.746151e-06 3.992835e-07 +40 1 1 Pu-239 3.805294e-03 3.637600e-04 +41 1 1 Pu-240 6.941319e-05 4.729737e-06 +42 1 1 Pu-241 1.033844e-03 9.083913e-05 +43 1 1 Pu-242 5.995332e-06 3.821721e-07 +44 1 1 Am-241 1.148585e-06 8.271648e-08 +45 1 1 Am-242m 1.100215e-06 6.159956e-08 +46 1 1 Am-243 8.323826e-07 5.841792e-08 +47 1 1 Cm-242 5.088970e-07 5.258007e-08 +48 1 1 Cm-243 2.245435e-07 1.459025e-08 +49 1 1 Cm-244 2.993206e-07 2.746129e-08 +50 1 1 Cm-245 3.063611e-07 3.057751e-08 51 1 1 Mo-95 0.000000e+00 0.000000e+00 52 1 1 Tc-99 0.000000e+00 0.000000e+00 53 1 1 Ru-101 0.000000e+00 0.000000e+00 @@ -101,23 +101,23 @@ 65 1 1 Eu-153 0.000000e+00 0.000000e+00 66 1 1 Gd-155 0.000000e+00 0.000000e+00 67 1 1 O-16 0.000000e+00 0.000000e+00 -0 1 2 U-234 4.408571e-07 2.828333e-08 -1 1 2 U-235 3.768090e-01 2.445691e-02 -2 1 2 U-236 6.097532e-06 3.733076e-07 -3 1 2 U-238 5.353069e-07 3.310577e-08 -4 1 2 Np-237 2.702979e-07 2.098942e-08 -5 1 2 Pu-238 3.463104e-05 2.638405e-06 -6 1 2 Pu-239 2.889640e-01 1.376023e-02 -7 1 2 Pu-240 4.533642e-06 2.544334e-07 -8 1 2 Pu-241 4.809358e-02 2.778366e-03 -9 1 2 Pu-242 8.715316e-08 5.460943e-09 -10 1 2 Am-241 4.611731e-06 2.155065e-07 -11 1 2 Am-242m 1.428045e-04 8.436508e-06 -12 1 2 Am-243 7.883889e-08 4.734559e-09 -13 1 2 Cm-242 9.731014e-07 6.143805e-08 -14 1 2 Cm-243 1.825829e-06 1.074864e-07 -15 1 2 Cm-244 1.581821e-07 9.938154e-09 -16 1 2 Cm-245 1.213384e-05 8.812070e-07 +0 1 2 U-234 4.408576e-07 2.828309e-08 +1 1 2 U-235 3.768094e-01 2.445671e-02 +2 1 2 U-236 6.097538e-06 3.733038e-07 +3 1 2 U-238 5.353074e-07 3.310544e-08 +4 1 2 Np-237 2.702971e-07 2.098939e-08 +5 1 2 Pu-238 3.463109e-05 2.638394e-06 +6 1 2 Pu-239 2.889643e-01 1.376004e-02 +7 1 2 Pu-240 4.533642e-06 2.544289e-07 +8 1 2 Pu-241 4.809366e-02 2.778345e-03 +9 1 2 Pu-242 8.715325e-08 5.460893e-09 +10 1 2 Am-241 4.611736e-06 2.155039e-07 +11 1 2 Am-242m 1.428047e-04 8.436437e-06 +12 1 2 Am-243 7.883895e-08 4.734503e-09 +13 1 2 Cm-242 9.731025e-07 6.143750e-08 +14 1 2 Cm-243 1.825830e-06 1.074849e-07 +15 1 2 Cm-244 1.581823e-07 9.938064e-09 +16 1 2 Cm-245 1.213386e-05 8.812019e-07 17 1 2 Mo-95 0.000000e+00 0.000000e+00 18 1 2 Tc-99 0.000000e+00 0.000000e+00 19 1 2 Ru-101 0.000000e+00 0.000000e+00 diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 461681c76..d3ac03a70 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -e1bf6c8d9e29f4b6ec8a0eadb3802248eea1cc42fe17b2257ee28eabcdc63958073e226e04a2e751f92f12ef7cb8de330991de395707d9fab2a826ca6946181d \ No newline at end of file +a9310752363eb059ff40f16ac9716b41ccab6ec6607d29f498069318745e485d18d784264304cc2586865bd58cef7587203cc22a1d485c58ddd63c14c0defdb9 \ No newline at end of file diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 4fab6c561..fd5eb91a1 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -f1b2b43197e1bbb305000d5a84c228361afb876d23ed866cdb073fe7410335c87fb16066c031d0e4397225321632566c00f48eac6187d59bdeab9a8c60986c3c \ No newline at end of file +9f14aaa1694489032b3ce193ad29ecf6ac8976c88c2dd6b26d4c30ae88348e249a9b702b1d39c22204350b8f3bd689800c1b6a6003f19c7bdaf64084a209a2cc \ No newline at end of file diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index f5efc1934..6c2d7a519 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -0c46f4198850c6bedcd3294fbbed9a6814568344f39d389f0b05aa0198bf4bb8a8bac4c6aa698bf66879c3037d1352f2cf6d8dff479d5b64be41fd88d93d3a04 \ No newline at end of file +840d2648f9ba782926c71baa84e5a2ad31331e156740a3d1e9d86af8f1f0d301ef8c0f69474975d365dbcf8d229a68c62d3e60286d18045e5254373f4e1010bf \ No newline at end of file diff --git a/tests/test_tally_assumesep/results_true.dat b/tests/test_tally_assumesep/results_true.dat index e8ff199a0..7262a88a0 100644 --- a/tests/test_tally_assumesep/results_true.dat +++ b/tests/test_tally_assumesep/results_true.dat @@ -1,5 +1,5 @@ k-combined: -9.581523E-01 4.261823E-02 +9.581522E-01 4.261830E-02 tally 1: 1.529084E+01 4.769011E+01 From c53178365e44eb1106c7eb0456aab8ac864ceea1 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 11 Apr 2016 08:19:48 -0500 Subject: [PATCH 094/259] Don't mutate OrderedDict while iterating over it in run_tests.py --- tests/run_tests.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index ed6ff0c20..5a04f340a 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -300,9 +300,12 @@ if options.list_build_configs: # Delete items of dictionary that don't match regular expression if options.build_config is not None: + to_delete = [] for key in tests: if not re.search(options.build_config, key): - del tests[key] + to_delete.append(key) + for key in to_delete: + del tests[key] # Check for dashboard and determine whether to push results to server # Note that there are only 3 basic dashboards: From bda106ca8583cb9690f96fd896883061943222bd Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 13 Apr 2016 12:04:29 -0400 Subject: [PATCH 095/259] Moved %matplotlib inline ahead of matplotlib imports for ipython notebooks which do not use openmoc --- .../pythonapi/examples/mgxs-part-i.ipynb | 71 ++-- .../pythonapi/examples/mgxs-part-ii.ipynb | 36 +- .../pythonapi/examples/mgxs-part-iii.ipynb | 309 +++++++++--------- .../examples/pandas-dataframes.ipynb | 63 ++-- .../pythonapi/examples/post-processing.ipynb | 61 ++-- .../pythonapi/examples/tally-arithmetic.ipynb | 49 +-- 6 files changed, 302 insertions(+), 287 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index f1db27133..de66cbb83 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -141,13 +141,12 @@ }, "outputs": [], "source": [ + "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import openmc\n", - "import openmc.mgxs as mgxs\n", - "\n", - "%matplotlib inline" + "import openmc.mgxs as mgxs" ] }, { @@ -423,22 +422,24 @@ "data": { "text/plain": [ "OrderedDict([('flux', Tally\n", - " \tID =\t10000\n", - " \tName =\t\n", - " \tFilters =\t\n", - " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", - " \tNuclides =\ttotal \n", - " \tScores =\t['flux']\n", - " \tEstimator =\ttracklength), ('absorption', Tally\n", - " \tID =\t10001\n", - " \tName =\t\n", - " \tFilters =\t\n", - " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", - " \tNuclides =\ttotal \n", - " \tScores =\t['absorption']\n", - " \tEstimator =\ttracklength)])" + "\tID =\t10000\n", + "\tName =\t\n", + "\tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t['flux']\n", + "\tEstimator =\ttracklength\n", + "), ('absorption', Tally\n", + "\tID =\t10001\n", + "\tName =\t\n", + "\tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t['absorption']\n", + "\tEstimator =\ttracklength\n", + ")])" ] }, "execution_count": 13, @@ -518,8 +519,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 11:43:10\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-13 11:24:09\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -605,20 +606,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.2800E-01 seconds\n", - " Reading cross sections = 1.3400E-01 seconds\n", - " Total time in simulation = 2.4026E+01 seconds\n", - " Time in transport only = 2.4011E+01 seconds\n", - " Time in inactive batches = 2.9230E+00 seconds\n", - " Time in active batches = 2.1103E+01 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 4.6300E-01 seconds\n", + " Reading cross sections = 1.2100E-01 seconds\n", + " Total time in simulation = 1.6504E+01 seconds\n", + " Time in transport only = 1.6479E+01 seconds\n", + " Time in inactive batches = 1.9620E+00 seconds\n", + " Time in active batches = 1.4542E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 4.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 2.4570E+01 seconds\n", - " Calculation Rate (inactive) = 8552.86 neutrons/second\n", - " Calculation Rate (active) = 4738.66 neutrons/second\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 1.6977E+01 seconds\n", + " Calculation Rate (inactive) = 12742.1 neutrons/second\n", + " Calculation Rate (active) = 6876.63 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1200,7 +1201,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 6483a5c29..6ed5cd38d 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -453,7 +453,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", - " Date/Time: 2016-04-08 13:04:46\n", + " Date/Time: 2016-04-13 11:59:39\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -569,20 +569,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.2890E+00 seconds\n", - " Reading cross sections = 3.0900E-01 seconds\n", - " Total time in simulation = 6.3434E+02 seconds\n", - " Time in transport only = 6.3421E+02 seconds\n", - " Time in inactive batches = 3.6864E+01 seconds\n", - " Time in active batches = 5.9748E+02 seconds\n", - " Time synchronizing fission bank = 5.5000E-02 seconds\n", - " Sampling source sites = 3.4000E-02 seconds\n", - " SEND/RECV source sites = 1.5000E-02 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 3.5000E-02 seconds\n", - " Total time elapsed = 6.3582E+02 seconds\n", - " Calculation Rate (inactive) = 2712.67 neutrons/second\n", - " Calculation Rate (active) = 669.482 neutrons/second\n", + " Total time for initialization = 4.0100E-01 seconds\n", + " Reading cross sections = 8.8000E-02 seconds\n", + " Total time in simulation = 2.3897E+02 seconds\n", + " Time in transport only = 2.3892E+02 seconds\n", + " Time in inactive batches = 1.6456E+01 seconds\n", + " Time in active batches = 2.2251E+02 seconds\n", + " Time synchronizing fission bank = 1.8000E-02 seconds\n", + " Sampling source sites = 1.3000E-02 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for finalization = 1.2000E-02 seconds\n", + " Total time elapsed = 2.3943E+02 seconds\n", + " Calculation Rate (inactive) = 6076.81 neutrons/second\n", + " Calculation Rate (active) = 1797.66 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -648,7 +648,7 @@ "cell_type": "code", "execution_count": 16, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -1811,7 +1811,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1894,7 +1894,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 7a575b544..5fccc4f03 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -32,7 +32,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", @@ -44,8 +44,9 @@ "source": [ "import math\n", "import pickle\n", + "\n", "from IPython.display import Image\n", - "import matplotlib.pylab as pylab\n", + "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "import openmc\n", @@ -467,7 +468,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDQtMTNUMTE6NTc6NDAtMDQ6MDBB7YJkAAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA0LTEzVDExOjU3OjQwLTA0OjAwMLA62AAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -733,8 +734,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 11:57:08\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-13 11:57:40\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -821,20 +822,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7200E-01 seconds\n", - " Reading cross sections = 1.4400E-01 seconds\n", - " Total time in simulation = 8.3367E+01 seconds\n", - " Time in transport only = 8.3321E+01 seconds\n", - " Time in inactive batches = 6.3610E+00 seconds\n", - " Time in active batches = 7.7006E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-02 seconds\n", - " Sampling source sites = 7.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", - " Time accumulating tallies = 4.0000E-03 seconds\n", + " Total time for initialization = 4.3700E-01 seconds\n", + " Reading cross sections = 8.2000E-02 seconds\n", + " Total time in simulation = 4.7745E+01 seconds\n", + " Time in transport only = 4.7726E+01 seconds\n", + " Time in inactive batches = 3.8220E+00 seconds\n", + " Time in active batches = 4.3923E+01 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 8.3969E+01 seconds\n", - " Calculation Rate (inactive) = 3930.20 neutrons/second\n", - " Calculation Rate (active) = 1298.60 neutrons/second\n", + " Total time elapsed = 4.8198E+01 seconds\n", + " Calculation Rate (inactive) = 6541.08 neutrons/second\n", + " Calculation Rate (active) = 2276.71 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -979,8 +980,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n", - " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" + "/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n" ] }, { @@ -1326,124 +1326,124 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.854317\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.801874\tres = 1.522E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761694\tres = 6.349E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.732314\tres = 5.030E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.711020\tres = 3.870E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.696500\tres = 2.913E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.687614\tres = 2.045E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.683408\tres = 1.278E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.683065\tres = 6.144E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.685884\tres = 7.908E-04\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.691262\tres = 4.178E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.698685\tres = 7.872E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.707715\tres = 1.076E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.717977\tres = 1.295E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.729155\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.740981\tres = 1.559E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.753233\tres = 1.624E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.765721\tres = 1.655E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.778292\tres = 1.660E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.790816\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803191\tres = 1.611E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.815332\tres = 1.566E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.827174\tres = 1.513E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.838664\tres = 1.454E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.849763\tres = 1.390E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.860444\tres = 1.325E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.870686\tres = 1.258E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.880478\tres = 1.191E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.889814\tres = 1.126E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.898693\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.907118\tres = 9.987E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.915098\tres = 9.383E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.922641\tres = 8.804E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.929760\tres = 8.250E-03\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.936467\tres = 7.722E-03\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.942778\tres = 7.220E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.948709\tres = 6.745E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.954275\tres = 6.296E-03\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.959493\tres = 5.872E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.964380\tres = 5.473E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.968952\tres = 5.097E-03\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.973225\tres = 4.745E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.977216\tres = 4.414E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.980940\tres = 4.105E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.984413\tres = 3.815E-03\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.987649\tres = 3.544E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990662\tres = 3.290E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.993466\tres = 3.054E-03\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.996074\tres = 2.833E-03\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.998498\tres = 2.628E-03\n", - "[ NORMAL ] Iteration 50:\tk_eff = 1.000750\tres = 2.436E-03\n", - "[ NORMAL ] Iteration 51:\tk_eff = 1.002841\tres = 2.258E-03\n", - "[ NORMAL ] Iteration 52:\tk_eff = 1.004782\tres = 2.092E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 1.006582\tres = 1.937E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.008252\tres = 1.794E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.009799\tres = 1.660E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.011233\tres = 1.537E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.012561\tres = 1.421E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.013791\tres = 1.315E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.014929\tres = 1.216E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.015982\tres = 1.124E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.016956\tres = 1.039E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.017857\tres = 9.598E-04\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.018689\tres = 8.867E-04\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.019459\tres = 8.190E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.020170\tres = 7.563E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.020827\tres = 6.983E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021433\tres = 6.446E-04\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.021993\tres = 5.949E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022510\tres = 5.490E-04\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.022987\tres = 5.065E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.023427\tres = 4.672E-04\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.023834\tres = 4.309E-04\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.024208\tres = 3.974E-04\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.024554\tres = 3.664E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.024872\tres = 3.378E-04\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.025166\tres = 3.114E-04\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.025436\tres = 2.870E-04\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.025686\tres = 2.644E-04\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.025916\tres = 2.437E-04\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.026128\tres = 2.245E-04\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.026323\tres = 2.068E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.026502\tres = 1.905E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.026668\tres = 1.754E-04\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.026820\tres = 1.615E-04\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.026961\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.027090\tres = 1.369E-04\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.027209\tres = 1.261E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.027318\tres = 1.160E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.027419\tres = 1.068E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027512\tres = 9.828E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027597\tres = 9.044E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027676\tres = 8.322E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027748\tres = 7.657E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027814\tres = 7.044E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027876\tres = 6.480E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.027932\tres = 5.961E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.027983\tres = 5.483E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028031\tres = 5.042E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028075\tres = 4.637E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028115\tres = 4.264E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028152\tres = 3.921E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028186\tres = 3.605E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028217\tres = 3.315E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028246\tres = 3.048E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.028272\tres = 2.802E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028297\tres = 2.576E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028319\tres = 2.367E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028339\tres = 2.176E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028358\tres = 2.000E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.028376\tres = 1.838E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.028392\tres = 1.689E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028406\tres = 1.553E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.028420\tres = 1.427E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028432\tres = 1.311E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028443\tres = 1.205E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028454\tres = 1.107E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028463\tres = 1.017E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.761746\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.732367\tres = 5.029E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.711075\tres = 3.869E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.696557\tres = 2.912E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.687673\tres = 2.044E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683470\tres = 1.277E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.683129\tres = 6.141E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.685949\tres = 7.889E-04\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.691329\tres = 4.181E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698755\tres = 7.875E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.707786\tres = 1.077E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.718050\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.729230\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.741058\tres = 1.559E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.753310\tres = 1.624E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765800\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.778371\tres = 1.660E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.790897\tres = 1.643E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803273\tres = 1.611E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815415\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.827256\tres = 1.513E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.838747\tres = 1.453E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849847\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860527\tres = 1.324E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.870770\tres = 1.258E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.880562\tres = 1.191E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889897\tres = 1.125E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898776\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.907202\tres = 9.986E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915181\tres = 9.382E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922724\tres = 8.803E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929843\tres = 8.249E-03\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.936550\tres = 7.721E-03\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.942861\tres = 7.220E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948791\tres = 6.744E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954357\tres = 6.295E-03\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.959575\tres = 5.871E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964461\tres = 5.472E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.969033\tres = 5.097E-03\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.973306\tres = 4.744E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977297\tres = 4.414E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.981021\tres = 4.104E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984493\tres = 3.814E-03\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.987729\tres = 3.543E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990742\tres = 3.290E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993546\tres = 3.053E-03\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.996153\tres = 2.833E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.998577\tres = 2.627E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.000829\tres = 2.436E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.002920\tres = 2.257E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.004860\tres = 2.091E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.006661\tres = 1.937E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.008330\tres = 1.793E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.009877\tres = 1.660E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.011311\tres = 1.536E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.012639\tres = 1.421E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.013868\tres = 1.314E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.015006\tres = 1.215E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.016059\tres = 1.124E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.039E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.017933\tres = 9.596E-04\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.018766\tres = 8.865E-04\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.019535\tres = 8.188E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.562E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020903\tres = 6.981E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.445E-04\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.022069\tres = 5.948E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.489E-04\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.023063\tres = 5.064E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023503\tres = 4.671E-04\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.023909\tres = 4.308E-04\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.024284\tres = 3.973E-04\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.024629\tres = 3.663E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024948\tres = 3.377E-04\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.025241\tres = 3.113E-04\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.025512\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.025761\tres = 2.644E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.025991\tres = 2.436E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.026203\tres = 2.244E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.026398\tres = 2.067E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026578\tres = 1.904E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.754E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.026895\tres = 1.615E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.027036\tres = 1.487E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027165\tres = 1.369E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.027284\tres = 1.260E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027393\tres = 1.160E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027494\tres = 1.068E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027587\tres = 9.825E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027672\tres = 9.041E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027751\tres = 8.319E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027823\tres = 7.654E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.042E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.478E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.028007\tres = 5.959E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.481E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028106\tres = 5.041E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028150\tres = 4.636E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028190\tres = 4.263E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028227\tres = 3.920E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028261\tres = 3.604E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028292\tres = 3.314E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028321\tres = 3.047E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.801E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.575E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028394\tres = 2.367E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.175E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 1.999E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.838E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028466\tres = 1.689E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.552E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.426E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.310E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.204E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.106E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.017E-05\n" ] } ], @@ -1476,8 +1476,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.028263\n", - "openmoc keff = 1.028463\n", - "bias [pcm]: 20.0\n" + "openmoc keff = 1.028538\n", + "bias [pcm]: 27.5\n" ] } ], @@ -1585,7 +1585,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 44, @@ -1594,9 +1594,9 @@ }, { "data": { - "image/png": "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\ngg==\n", + "image/png": "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\nZOT/APiw99Nd94jXAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1605,15 +1605,24 @@ ], "source": [ "# Plot OpenMC's fission rates in the left subplot\n", - "fig = pylab.subplot(121)\n", - "pylab.imshow(openmc_fission_rates, interpolation='none', cmap='jet')\n", - "pylab.title('OpenMC Fission Rates')\n", + "fig = plt.subplot(121)\n", + "plt.imshow(openmc_fission_rates, interpolation='none', cmap='jet')\n", + "plt.title('OpenMC Fission Rates')\n", "\n", "# Plot OpenMOC's fission rates in the right subplot\n", - "fig2 = pylab.subplot(122)\n", - "pylab.imshow(openmoc_fission_rates, interpolation='none', cmap='jet')\n", - "pylab.title('OpenMOC Fission Rates')" + "fig2 = plt.subplot(122)\n", + "plt.imshow(openmoc_fission_rates, interpolation='none', cmap='jet')\n", + "plt.title('OpenMOC Fission Rates')" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { @@ -1632,7 +1641,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 718ff8f79..388e4aaa6 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -17,15 +17,14 @@ }, "outputs": [], "source": [ + "%matplotlib inline\n", "import glob\n", "from IPython.display import Image\n", "import matplotlib.pylab as pylab\n", "import scipy.stats\n", "import numpy as np\n", "\n", - "import openmc\n", - "\n", - "%matplotlib inline" + "import openmc" ] }, { @@ -380,7 +379,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBABF2xKKPsAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTA4VDEyOjAxOjIzLTA0OjAwqpTBSwAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0wOFQxMjowMToyMy0wNDowMNvJefcAAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTEzVDExOjQw\nOjAxLTA0OjAwQIJDkwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0xM1QxMTo0MDowMS0wNDow\nMDHf+y8AAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -565,8 +564,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 12:01:24\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-13 11:40:02\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -630,20 +629,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.4700E-01 seconds\n", - " Reading cross sections = 1.4200E-01 seconds\n", - " Total time in simulation = 1.4279E+01 seconds\n", - " Time in transport only = 1.4263E+01 seconds\n", - " Time in inactive batches = 2.3020E+00 seconds\n", - " Time in active batches = 1.1977E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-03 seconds\n", + " Total time for initialization = 3.7900E-01 seconds\n", + " Reading cross sections = 8.6000E-02 seconds\n", + " Total time in simulation = 8.7310E+00 seconds\n", + " Time in transport only = 8.7200E+00 seconds\n", + " Time in inactive batches = 1.3230E+00 seconds\n", + " Time in active batches = 7.4080E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", " Sampling source sites = 1.0000E-03 seconds\n", " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.4854E+01 seconds\n", - " Calculation Rate (inactive) = 5430.06 neutrons/second\n", - " Calculation Rate (active) = 3131.00 neutrons/second\n", + " Total time elapsed = 9.1240E+00 seconds\n", + " Calculation Rate (inactive) = 9448.22 neutrons/second\n", + " Calculation Rate (active) = 5062.10 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1120,9 +1119,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEeCAYAAACkBUNkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGG5JREFUeJzt3XuUZWV95vHvYzcjeInYokiAiBrUEAXSYhPHWxtQuThT\nJuD0gEogWTK4QCeOl+BlSbWaiVlkhRkU6SwdRNTR6CiUI+0AgyKO2qEVuUbAHiQCCiK0UQKJNPzm\nj71rPCmqq0693XXt72ets3qf97LPu8/aXc959z57n1QVkiTN1CPmewCSpMXJAJEkNTFAJElNDBBJ\nUhMDRJLUxACRJDUxQDQnkjyY5KokVye5Msm/noXXuHea+n2SHLu9X3e2JTk+yYcmKR9N8tb5GJME\nBojmzv1VdWBVHQC8A/jzeRjDPsA2BUiSZdtnKEtLkuXzPQbNPQNE8+HXgM0A6Zye5Lok1yZZ05f/\nfpJL+/o9ktyU5Mn9p/GxJJcl+X6S0yaufGvrBD4AvKifCb15Qp9HJPlwkhuSXJJkfZKj+7pbkvxF\nkiuBVyc5MMmGJNckOT/J4/t2lyU5qF/eLckt/fJWx5zktUmu6Mf01+MBleSEfpuvAF4wxXt5QJJv\n9et9fd/3vCSvGniNTyUZmbC9eyS5vH/d65K8qC8/rJ8hXp3k0r5sRZIL+u3dkGT/vnw0ySeSfAP4\nRJJl/fu+sW/7H6YYt5aCqvLhY9YfwIPAVcANwD8Az+3LjwIuAZYBuwM/BPbo6z4JnAJ8CTimLzse\n+DHwBGAX4DrgoL7u3qnWCawGvrSV8R0NrKf7UPVkuoA7uq+7BXj7QNtrgJf0y+8F/ku/fNnAWHYD\nbplqzMBvAf8T2Klv92HguH6sPwSeCPwr4BvAhyYZ8yhwdb/O3YBbgV8HXgJc0Ld5HPADYPmEvm8B\n3tUvLwMe27/ercBT+/IV/b8fBE7rl38PuGrg9b8D7NI/PxF4d7/8SODb4+vysTQfTjs1V+6vqgMB\nkjwfOC/Js4EXAp+uqgeBO5N8DXge8EXgjXR/bDdU1acH1nVJVd3dr+sL/Tq+PVC/tXX+fIrxvRD4\nXFU9BNyR5KsT6v+mf73HAbtW1df68o8Dnxti+ycb8xbgucDGJNAFwU+Ag4HLququvv3fAM/YynrH\nqup+4P5+zKuq6oJ+NvVEujD9fFVtmdBvI3BOkp3owuaqJKuBy6vqBwBVdc/Ae3NUX/aVJE9I8mt9\n3Rf71wd4ObD/+MyNLrz2pQswLUEGiOZcVX0ryW50n3inshfwELB7kkf0f9wBJt7AbS5u6PaPQ7TZ\nwq8OC+88oW6yMQf4eFW9Y7Bi8PDTELb2XpwHvBb498AJD+tUdXmSFwNHAucm+Sv6w4ozNPi+BHhj\nVV3UsB4tQp4D0ZxL8iy6wyZ3A18H1vTHz58IvBi4oj8pew5wDPA94D8NrOJl/XH5XYBX0R3iGTTp\nOoFf0B2qmcw3gKP6cyG70x3uepiq+gdg8/g5A+B1wPhs5Ba6GQV0h8QGTTbmS4Gjkzypf19WJHkK\n8LfAS/pP+jsBr97KmAFGkuyc5An9mDf25ecCf9KP+e8mdupf586q+gjwUWAlsAF4cZKnjo+nb/51\n4DV92Wrgp1U12WzuIuAN/ZhJ8owkj55i7FrknIForuyS5Kp+OcAfVtWDSc4Hnk93LL/ozjXckeQ9\nwNer6v8kuZruMM+Fff8rgM/TzVA+WVXf/pcvxdbWeTfwYL++c6vqjIE+nwcOAf6O7jzAlXTnaibz\nh8C6JI8CbuZXn/D/EvhskhOBCyf0mXTMSd4NXJzkEcADwMlVtSHJKPAt4Gd054625hrgq3TnQN5X\nVT8CqKo7k3wPuGAr/VYDb0vyAHAvcFxV3dWP/Qv9eH4CvIzuXMc5Sa4B7uu3fzIfpfum25Xpjsnd\nRReWWqJS5e3ctXgkOZ7uRPUps7Dux1TVvf2n+SuAF1TVHdthvcczS2Oe4jUfBVwLrOxnTdJ25wxE\n+pUvJdmV7ptP79se4TEfkhwK/DfgDMNDs8kZiCSpiSfRpWmku5DwbekuSrw3yTlJdk/y5SQ/T/K/\n86uLCX83yTeT/Ky/GG/1wHpOSPK9JL9IcvPghXZJVie5LclbkvwkyY+TPOzbU9JCYoBIwzkKOBR4\nJvBK4H8B7wSeRPf/6E1J9qQ7ef5+YAXwVuDz/TfBoDsp/Uq6K/FPAM5IsnLgNZ5Md+3EnsAfA2eN\nB5O0EBkg0nA+WFV3VtXtdF9r3VBV362qf6L71tfv0F13sb6q1lfVQ1V1Cd0FjkcAVNWFVfV/q/M1\n4GLgRQOv8QDw3qp6oKrW03076plzt4nSzBgg0nDuHFi+f5LnjwGeQnevrJ+NP+iu4t4DIMnh/b2k\n7unrjqD7+u24uydcMX5fv15pQfJbWNL2cyvwiap6/cSKJI+kuw7kOLrbjzyQ5AK6a2KkRckZiLT9\nfBL4N0le0V8Fv3N/cnwvuq8GP5Lu4rotSQ6nu3eUtGgZINJ2UlW3AiN0J9fvopuRvA14RFX9AngT\n8Fm6e04dS3fDSGnR8joQSVITZyACuh8Hmu8xSDPhPjv/nIEIgCRVVZ7Q1aLhPjv/nIFIkpoYIJKk\nJovuOpAkHnObBWvWrPG91aLiPju7hjk8uOjOgfTHPed7GEvO2NgYIyMj8z0MaWjus7MnyVAB4iEs\nSVITA0SS1MQAkSQ1MUAkSU0MEElSEwNEktTEAJEkNTFAJElNDBBJi8bo6ChJSLpr3MaXR0dH53dg\nOygDRNKiMTo6SlUxfjeK8WUDZH4YIJKkJgaIJKmJASJJamKASJKaGCCSpCYGiCSpiQEiSWpigEiS\nmhggkqQmBogkqYkBIklqYoBIkpoYIJIWDe/Gu7AYIJIWDe/Gu7AMFSBJDktyY5JNSU6dpD5Jzuzr\nr0mycgZ935Kkkuy2bZsiaalzBrKwTBsgSZYBZwGHA/sBxyTZb0Kzw4F9+8eJwNnD9E2yN/By4Ifb\nvCWSpDk1zAxkFbCpqm6uql8CnwFGJrQZAc6rzgZg1yR7DNH3DODtQG3rhkha+jyEtbAMEyB7ArcO\nPL+tLxumzVb7JhkBbq+qq2c4ZknSArB8Pl40yaOAd9IdvpIkLULDBMjtwN4Dz/fqy4Zps9NWyp8O\nPBW4uj8ZthdwZZJVVXXH4IqTjAKnjT9fs2YNY2NjQwxbM+X7qsXGfXb2JBk8tbC2qkYf1mb8WOIU\nK1kO3AQcQvfHfyNwbFVdP9DmSOAU4AjgYODMqlo1TN++/y3AQVX102E2aroxa+bGxsYYGZl4akta\nuNxnZ08SqirTtZt2BlJVW5KcAlwELAPOqarrk5zU168D1tOFxybgPuCEqfo2bpMkaQEZ6hxIVa2n\nC4nBsnUDywWcPGzfSdrsM8w4JEkLh1eiS1rQxi8WnPiYqm68XrPLAJG0oI1f6zHxMVWd50nnhgEi\nSWpigEiSmhggkqQmBogkqYkBIklqYoBIkpoYIJKkJgaIJKmJASJJamKASJKaGCCSpCYGiCSpiQEi\nSWpigEiSmhggkqQmBogkqYkBIklqYoBIkpoYIJKkJgaIJKmJASJJamKASJKaGCCSpCYGiCSpiQEi\nSWpigEiSmhggkqQmBogkqYkBIklqYoBIkpoYIJKkJgaIJKmJASJJajJUgCQ5LMmNSTYlOXWS+iQ5\ns6+/JsnK6fomeV/f9uokX0nyG9tnkyRJc2HaAEmyDDgLOBzYDzgmyX4Tmh0O7Ns/TgTOHqLv6VW1\nf1UdAFwAnLbtmyNJmivDzEBWAZuq6uaq+iXwGWBkQpsR4LzqbAB2TbLHVH2r6ucD/R8N3L2N2yJJ\nmkPLh2izJ3DrwPPbgIOHaLPndH2T/BlwHHD/JOuUJC1g83oSvareVVV7Ax8DzpjPsUiSZmaYGcjt\nwN4Dz/fqy4Zps9MQfQE+BXx5shdPMsrA+ZE1a9YwNjY2xLA1U76vWmzcZ2dPkhp4uraqRh/Wpqom\nlk1cyXLgJuAQuj/+G4Fjq+r6gTZHAqcAR9AdijqzqlZN1TfJvlX1/b7/G4HfrarXDLNR041ZMzc2\nNsbIyMRTW9LC5T47e5JQVZmu3bQzkKrakuQU4CJgGXBOHwAn9fXrgPV04bEJuA84Yaq+/ao/kOSZ\nwIPAzcAbZriNkqR5NMwhLKpqPV1IDJatG1gu4ORh+/blR81opJKkBcUr0SVJTQwQSVITA0SS1MQA\nkSQ1MUAkSU0MEElSEwNEktTEAJEkNTFAJElNDBBJUhMDRJLUxACRJDUxQCRJTQwQSVITA0SS1MQA\nkSQ1MUAkSU0MEElSEwNEktTEAJEkNTFAJElNDBBJUhMDRJLUxACRJDUxQCRJTQwQSVITA0SS1MQA\nkSQ1MUAkSU0MEElSEwNEktTEAJEkNTFAJElNDBBJUhMDRJLUZKgASXJYkhuTbEpy6iT1SXJmX39N\nkpXT9U1yepIb+vbnJ9l1+2ySJGkuTBsgSZYBZwGHA/sBxyTZb0Kzw4F9+8eJwNlD9L0EeHZV7Q/c\nBLxjm7dGkjRnhpmBrAI2VdXNVfVL4DPAyIQ2I8B51dkA7Jpkj6n6VtXFVbWl778B2Gs7bI8kaY4M\nEyB7ArcOPL+tLxumzTB9Af4I+PIQY5EkLRDzfhI9ybuALcCn5nsskqThLR+ize3A3gPP9+rLhmmz\n01R9kxwPvBI4pKpqshdPMgqcNv58zZo1jI2NDTFszZTvqxYb99nZk2Twb/Laqhp9WJut/N0eXMly\nupPch9D98d8IHFtV1w+0ORI4BTgCOBg4s6pWTdU3yWHAXwEvqaq7ZrJR041ZMzc2NsbIyMRTW9LC\n5T47e5JQVZmu3bQzkKrakuQU4CJgGXBOHwAn9fXrgPV04bEJuA84Yaq+/ao/BDwSuCQJwIaqOmlm\nmylJmi/DHMKiqtbThcRg2bqB5QJOHrZvX/6bMxqpJGlBmfeT6JKkxckAkSQ1MUAkSU0MkB3Y6Ogo\nSei/xPD/l0dHR+d3YJIWBQNkBzY6OkpVMf616PFlA0RzbcUKSGb2gJn3WbFifrdzqTFAJM27zZuh\namYPmHmfzZvndzuXGgNEktTEAJEkNTFAJElNDJAd2OrVqyf9Ftbq1avnd2CSFgUDZAe2taAwQCQN\nwwDZgfk1XknbwgDZgXkhoaRtMdTdeLV0jIfFVNauXcvatWv/RZm/wSJpImcgO5jxw1QTH1PVGR6S\nJmOASJKaGCCSpCYGiCSpiQEiSWpigEiSmhggkqQmBogkqYkBIklqYoBIkpoYIJKkJgaIJKmJASJJ\namKASJKaGCCSpCYGiCSpiQEiSWpigEiSmhggkqQmBogkqYkBIklqMlSAJDksyY1JNiU5dZL6JDmz\nr78mycrp+iZ5dZLrkzyU5KDtszmSpLkybYAkWQacBRwO7Acck2S/Cc0OB/btHycCZw/R9zrgD4DL\nt30zJElzbZgZyCpgU1XdXFW/BD4DjExoMwKcV50NwK5J9piqb1V9r6pu3G5bIkmaU8MEyJ7ArQPP\nb+vLhmkzTF9J0iLkSXRJUpPlQ7S5Hdh74PlefdkwbXYaou+UkowCp40/X7NmDWNjYzNZhYbk+6r5\ncsEF0LL7zXSfbX2dHVGSGni6tqpGH9amqiaWTVzJcuAm4BC6P/4bgWOr6vqBNkcCpwBHAAcDZ1bV\nqiH7Xga8taq+PexGTTdmzdzY2BgjIxNPbUlzI4GZ/rdu2WdbXmdHlISqynTtpp2BVNWWJKcAFwHL\ngHOq6vokJ/X164D1dOGxCbgPOGGqvv0Afx/4IPBE4MIkV1XVK2a+qZKk+TDMISyqaj1dSAyWrRtY\nLuDkYfv25ecD589ksJKkhcOT6JKkJgaIJKmJASJJamKASJKaGCCSpCYGiCSpiQEiSWpigCxBK1Z0\nV9zO5AEz77Nixfxup6T5ZYAsQZs3d7drmMkDZt5n8+b53U4tHcUMP700fuoppr07h2bAAJE078IM\nP700fuoJ3ghrezJAJElNDBBJUhMDRJLUxACRJDUxQCRJTQwQSVITA0SS1MQAkSQ1MUAkSU0MEElS\nEwNEktTEAJEkNTFAJC0Ic/ETBI9//Pxu41JjgEiadzO9EW/rTxDcc8/8budSY4BIkpoYIJKkJgaI\nJKmJAbIE+fOgkuaCAbIE+fOgkuaCASJJamKASJKaGCCSpCYGiCSpiQGyRHlbCEmzzQBZgrwthKS5\nMFSAJDksyY1JNiU5dZL6JDmzr78mycrp+iZZkeSSJN/v//XzrCQtItMGSJJlwFnA4cB+wDFJ9pvQ\n7HBg3/5xInD2EH1PBS6tqn2BS/vnkqRFYpgZyCpgU1XdXFW/BD4DjExoMwKcV50NwK5J9pim7wjw\n8X7548CrtnFbJElzaJgA2RO4deD5bX3ZMG2m6rt7Vf24X74D2H3IMUvagSSZ9DFV3Xi9ZteCOIle\nVQXeF2Mu+J9Ri01VTfqYqm68XrNr+RBtbgf2Hni+V182TJudpuh7Z5I9qurH/eGun0z24klGgdPG\nn69Zs4axsbEhhq3JXHDBBU11vudaiNwvZ0+SwRReW1WjD2szXVInWQ7cBBxC98d/I3BsVV0/0OZI\n4BTgCOBg4MyqWjVV3ySnA3dX1Qf6b2etqKq3D7NRfrrY/sbGxhgZmXhqS1q43GdnTxKqatpDD9PO\nQKpqS5JTgIuAZcA5fQCc1NevA9bThccm4D7ghKn69qv+APDZJH8M/D3w72a4jZKkeTTMISyqaj1d\nSAyWrRtYLuDkYfv25XfTzUwkSYvQgjiJLklafAwQSVITA0SS1MQAkSQ1MUAkSU2G+hbWQuOV0ZI0\n/6a9kFA7hv4CTZNZi4b77PzzEJYkqYkBIklqYoBo3Nr5HoA0Q+6z88xzIJKkJs5AJElNDBBJUhMD\nZAlJ8qYk30uyuf+NlZn2/+ZsjEtqleRZSa5K8t0kT2/ZR5O8N8mhszG+HZ3nQJaQJDcAh1bVbfM9\nFml76D8ILa+q98/3WPRwzkCWiCTrgKcBX07y5iQf6stfneS6JFcnubwv++0kV/Sf7K5Jsm9ffm//\nb5Kc3ve7Nsmavnx1ksuS/I8kNyT5VLwtgKaQZJ9+VvyRJNcnuTjJLv1+dFDfZrckt0zS9wjgT4A3\nJPlqXza+j+6R5PJ+H74uyYuSLEty7sB+++a+7blJju6XD+lnM9cmOSfJI/vyW5KsTXJlX/esOXmD\nFjkDZImoqpOAHwEvBTYPVL0HeEVVHQD8277sJOC/VtWBwEHAxBnLHwAHAgcAhwKn979bD/A7dP+p\n96MLrBds/63RErMvcFZV/TbwM+CoYTr1P0a3Djijql46ofpY4KJ+Hz4AuIpun92zqp5dVc8BPjbY\nIcnOwLnAmr5+OfCGgSY/raqVwNnAW2e2iTsmA2Tp+wZwbpLX0/2sMMC3gHcm+VPgKVV1/4Q+LwQ+\nXVUPVtWdwNeA5/V1V1TVbVX1EN1/2n1mfQu02P2gqq7ql7/D9tlnNgInJBkFnlNVvwBuBp6W5INJ\nDgN+PqHPM/ux3NQ//zjw4oH6L2znMS55BsgS189M3g3sDXwnyROq6r/TzUbuB9Yn+b0ZrPKfB5Yf\nZJHekFNzarJ9Zgu/+vuz83hlko/1h6Ue9jPYg6rqcro//rfTfUA6rqo2081GLqObZX+0cZzu10My\nQJa4JE+vqr+tqvcAdwF7J3kacHNVnQmMAftP6PZ1YE1/TPmJdP9Rr5jTgWupuwV4br989HhhVZ1Q\nVQdW1RFTdU7yFODOqvoIXVCsTLIb8Iiq+jzdh6aVE7rdCOyT5Df756+jm12rkSm79J3enyQPcClw\nNfCnwOuSPADcAfznCX3OB57fty3g7VV1hycWtR39JfDZJCcCFzb0Xw28rd+H7wWOA/YEPpZk/IPx\nOwY7VNU/JTkB+FyS5XSHwdY1jl/4NV5JUiMPYUmSmhggkqQmBogkqYkBIklqYoBIkpoYIJKkJgaI\nJKmJASLNk/5iNmnRMkCkGUjy6CQX9rfHvy7JmiTPS/LNvuyKJI9NsnN/X6dr+9uHv7Tvf3ySLyb5\nCt2dAUjytiQb+1vrr53XDZRmwE9A0swcBvyoqo4ESPI44Lt0twjfmOTX6G5S+R+Bqqrn9LeAuTjJ\nM/p1rAT2r6p7kryc7nbnq+huN/PFJC/ubxYoLWjOQKSZuRZ4WZK/SPIi4DeAH1fVRoCq+nlVbaG7\nJf4n+7IbgL8HxgPkkqq6p19+ef/4LnAl8Cy6QJEWPGcg0gxU1U1JVgJHAO8HvtKwmn8cWA7w51X1\n19tjfNJccgYizUCSXwfuq6pPAqcDBwN7JHleX//Y/uT414HX9GXPoJup3DjJKi8C/ijJY/q2eyZ5\n0uxvibTtnIFIM/MculvkPwQ8QPeTqAE+mGQXuvMfhwIfBs5Oci3djycdX1X/PPEn5Kvq4iS/BXyr\nr7sXeC3wkznaHqmZt3OXJDXxEJYkqYkBIklqYoBIkpoYIJKkJgaIJKmJASJJamKASJKaGCCSpCb/\nD03l9kElNMu/AAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1145,7 +1144,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1154,9 +1153,9 @@ }, { "data": { - "image/png": "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\nTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2277,7 +2276,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.607166663014\n" + "Mann-Whitney Test p-value: 0.303583331507\n" ] } ], @@ -2315,7 +2314,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 1.2077327566e-41\n" + "Mann-Whitney Test p-value: 6.038663783e-42\n" ] } ], @@ -2351,7 +2350,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/anaconda2/lib/python2.7/site-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:4: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", @@ -2361,7 +2360,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2370,9 +2369,9 @@ }, { "data": { - "image/png": "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\nulZkiAAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2399,7 +2398,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2408,9 +2407,9 @@ }, { "data": { - "image/png": "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\ng/YIuXYBdJEAAAAASUVORK5CYII=\n", + "image/png": "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\n9OnTh2bNmtGmTRsuu+wyioqKSt/PzLjvvvvYdddd2W677fjDH/7A3Llz6dOnD02bNmXo0KEbrZ8J\nSggi0mBcccUVXHHFFaxatYq5c+dy8sknA/Dmm28CsGLFClavXk2fPn0YOXIkI0eO5LXXXuOrr75i\n9erVXHbZZQB89tlnXHLJJTz++OMsXryYlStXlna8s97YsWMZMmQIK1as4LTTTiMej3PXXXexfPly\npkyZwqRJk7jvvvs22ubll1/mo48+4t133+WOO+7gvPPO4/HHH+ebb75hxowZjBo1KqPlo4QgIvXe\n4MGDadasWelwySWXlLteTk4Oc+bMYfny5eTn57P//vtv8T0ff/xxrr76ajp37kx+fj5/+ctfGD16\nNCUlJTz11FMce+yx9OvXj9zcXG6++ebNemnr06cPgwcPJhaL0bhxY/bee2/2339/EokEHTt25MIL\nL+SNN97YaJvrrruOJk2a0K1bN7p3786RRx5J586dadq0KYMGDWLatGnVL6wKKCGISL337LPPsmLF\nitJh01/e640YMYJZs2bRpUsX9tlnH55//vktvueiRYvo0KFD6XSHDh0oKSlhyZIlLFq0iPbt25cu\n22abbWjRosVG25ddDjBr1iyOOeYYWrduTZMmTbjxxhtZvnz5Ruu0atWqdLxx48abTa9evbqCUqg+\nJQQRaTB22203Ro0axdKlS7n++usZMmQIa9asKbcP5rZt2zJ//vzS6W+++YZEIkGrVq1o06YNCxYs\nKF22bt06vv/++4223/Q9L774Yrp06cLs2bNZtWoVf/7zn+tcHxNKCCLSYDz22GMsW7aMWCxGs2bN\nAIjFYuy4447EYjG++uqr0nVPPfVU7rrrLr7++mtWr17NjTfeyNChQ0kkEgwZMoRx48YxefJkioqK\nKCgoqPTL/aeffqJJkybk5+fzxRdfVNjvc1Qa7g23IlIt9fG5kPHjx3P11Vezdu1aOnTowOjRo2nc\nuDEAw4YNo2/fvhQXFzN+/HjOPfdcFi1aRP/+/fn555854ogjuOeee4DgYbd77rmHU045hTVr1nDl\nlVfSsmVL8vLytrjvO++8kwsuuIA77riDnj17MnToUF599dVaOe50qQtNybiqPmimB9PqHnWhWbHV\nq1fTrFkzZs+eTadOnSKLQ11oiohEYNy4caxdu5Y1a9ZwzTXX0KNHDzp27Bh1WNWiKiOpEZluxkCk\nrhk7dixnnHEG7k7v3r0ZPXp0uRen6xMlBBGRrTB8+HCGDx8edRg1SlVGIiICKCGISBpisVjG29GR\n6lm3bl21W2pVQhCRSvXq1Ys777xTSaEOKikpYe7cuZxyyikceuih1XovJQQRqdSYMWMYM2YMjRs3\nxsw01KEhLy+Pfv360b17d8aOHVutv7MuKotIpdq1a8f7778fdRiSYTpDEBERQAlBRERCSggiIgIo\nIYiISEgJQUREACUEEREJKSGIiAighCAiIiElBBERAZQQREQklNGEYGYPmdlSM/u0zLwCM1toZh+H\nw1GZjEFERNKT6TOEkcCR5cy/y933CocXMxyDiIikIaMJwd3fBH7I5D5ERKRmRHUN4Tdm9klYpbR9\nRDGIiEgZUTR/fT9wC+Dh69+Bc8tb0cwKgD/VWmRSp3W84YVy58+7/eh6sb5IlMzMy0ze5O4Fm65T\n6wnB3ZesHzezfwPPV7BuAVBQZn3f0roiIrJl7m6VrVPrVUZm1qbM5AnAp1taV0REak9GzxDMbBRw\nMLCDmS0gqP452Mz2IqgymgdcmMkYREQkPRlNCO5+ajmzR2RynyIisnX0pLKIiABKCCIiElJCEBER\nQAlBRERCSggiIgIoIYiISCiKpitEGqQtNXUBau5C6gadIYiICKCEICIiISUEEREBlBBERCSkhCAi\nIoASgoiIhJQQREQEUEIQEZGQEoKIiABKCCIiElLTFSKSti01v6GmN7KDzhBERARQQhARkZASgoiI\nAEoIIiISUkIQERFACUFEREJKCCIiAighiIhISAlBRESANJ9UNrNngBHAS+6eymxIIplVUWf3Ig1Z\numcI9wG/Bmab2e1mtnsGYxIRkQiklRDcfaK7nwb0AuYBE81sspmdY2Y5mQxQRERqR9rXEMysBXA2\ncB4wDfgnQYKYkJHIRESkVqV7DWEMsDvwKHCsuy8OF/3PzD7IVHAiIlJ70m3++t/u/mLZGWaW5+6F\n7t47A3GJiEgtS7fK6NZy5k2pyUBEKF4Hy2fT3b6iky0ml+KoIxJpUCo8QzCz1sBOQGMz6wlYuKgJ\nsE2GY5OGoPhnmP5fmP4/WDAVPMXzecGiIo8z29vxZuqXjE/uw3TfhQ0fQRGpaZVVGR1BcCG5HfCP\nMvN/Am7MUEzSUMyZBOOugJXflrs415J0s/l0i83n4sQ4Zqd24pHkQJ5JHsgaGtdysCLZr8KE4O4P\nAw+b2Unu/nQtxSRZz7kkPhYee2LDrKbtYY/joVU3LnhiFtuxjl/EvmXf2Jf0jM0BYLfYQm6JjeS6\nxP94PHkYw0uOYjlNIzoGkexTWZXR6e7+GNDRzK7edLm7/6OczUQqdH1iNBcnxgUTuflwWAHsfTbE\ng0daXhkdPkkcPhPfih84Pv4Op8cnsnNsGdvZOi5KjOPs+HhGJQ+BlXtB051q+zBEsk5lVUbbhq/5\nmQ5EGoaz4+M3JIOm7eG0J6Fl1wq3WUJzHkwey/Dk0QyITePCxPPsG/uSRlbMOYmX4Z97Qs/ToO+V\n0LxTjcdcF5u6UGf3kgmVVRn9X/h6U+2EI9msp81mWOJxAJZ4M1qd/Txs3zHt7VPEmJTam0lFe7Ov\nfc5liWfpH58BqWL4cCR89EhQ7XTA5bBTr8wchEgWS+u2UzO7w8yamFmOmU0ys2Vmdnqmg5PssR1r\nuTvnXnIsSZHHOa/omiolg01N9a6cWfw7BhfeDL8YFMz0FMwcA/8eACOP4eDYxxhqi1EkXek+h3C4\nu68CjiFoy2hX4NpMBSXZ56rEU7SPLQPgryWnMsM718j7fuy7wq9Hw0XvwC+HQiw86Z33FiNz7+DV\n3N9yYXwcLVhZI/sTyWbpJoT1VUtHA0+6u/67JG1d7BvOjL8CwHupLoxIDqr5nbTuDic+CFdMhz6X\nBRergU6xJfwuZxRT8i7j3py7OSg2nTjJmt+/SBZINyE8b2ZfAHsDk8xsR+DnzIUl2eSPiUdIWIoS\nj/HH4rPJ6MNlTdvBEbfBVTO5qfgMZqeCu49yLckx8Xd5OPevvJd3KQWJkfSyWYBnLhaReibd5q9v\nAA4Aert7MbAGOL6y7czsITNbamaflpnX3MwmmNns8HX7rQ1e6r4+sZkcEP8MgEeTA/nSd66dHTdu\nxn+SgxhYdAdDCv/IM8l+FHpwW+sOtoqzE6/wTF4Bb+ZeyW8TT7CrLaiduETqsKp0odkFGGpmZwJD\ngMPT2GYkcOQm824AJrn7bsCkcFqyknNlIniecZ3n8q+SwRHEYHzgXbi6+BJ6F97PNcUX8mayB0kP\nzlJ2ji3jN4lnmZh3HS/l3sBF8efYiWURxCkSvXSbv34U2AX4GEorYB14pKLt3P1NM+u4yezjgYPD\n8YeB14Hr04lD6pf9Y5+zX+wLAB5JDoz8qeKf2IankgfxVPIgdmQFR8ffZXD8HfaKzQWga+wbusa+\n4Yac0UxN7c5zyQN4MbkfP9Ak0rhFaku6zV/3BvZw95qocG1Vpj+F74BWNfCeUgedEx8PwM+ew4Ml\nx0QczcaW0YyRySMZmTySDvYdx8amMDj+DrvGFgGwb+xL9o19SUHiYd5K9WBssi8TUnurDSXJaukm\nhE+B1sDiylasCnd3M9NVvSzUzpZyWOxDAJ5N9uX7Otzm0Hxvzb3JE7g3OZg9bD7HxadwbHwyO9n3\nJCzFgPh0BsSns8bzGJfsw/+SA5jmu6KWVyXbpJsQdgA+M7OpQOH6me5+3Fbsc4mZtXH3xWbWBli6\npRXNrAD401bsQzIk3WYczohPIB7m+oeTR1TrvWqP8Zl35LOSjvy1ZCi9bRbHx9/hqPh7NLfVbGuF\nnJJ4nVMSr/Nlqh3/Sw5gTLIvP9ZAlVJNlUXdK1OpKzb58X2Tuxdsuk66CWGzDavhOeAs4PbwdeyW\nVgwDLt23zibqh8b8zCnx1wB4N9WVz71DxBFVnRPjfe/C+yVdKCg5i/6xTxgaf51DYx+RsBS7xxbw\nx9ijXJ8YxSup3oxKHsLkVDd01iB1lbtX+uFMKyG4+xtm1gHYzd0nmtk2QLyy7cxsFMEF5B3MbAHB\nr/3bgSfM7P8D5gMnpxOD1B9Hxt6nqa0F4OGSdG5Gq9tKSPBqqhevpnqxIys4Kf4mQ+Ov0Sm2hDwr\n4dj4uxwbf5c5qbY8mhwIP/eDRnW3ikxkS9K9y+h84AKgOcHdRjsBDwCHVrSdu5+6hUUVbif120nx\nNwH4wfOZmNo74mhq1jKa8UDyOB5IHst+9gVDE69xVOw9Glkxu8YWcVPsYfj7U7DnUNjnfGi1R9Qh\ni6Qt3ecQLgX6AqsA3H020DJTQUn91YbvOSAWPIg2NtmX4rRrJesb4z3vytXFl7Bf4b+4tfg05qfC\nf4niNfDBQ3B/H/jPUfDpM5BU/9BS96X731ro7kVmQRWUmSXQM/9SjhPibxELL/U8lewfcTS1YyX5\nDE8ezYjkIA6KfcLIbtNh9iuAw/x3giG/NVfE+/JocqCea5A6K90zhDfM7EagsZkNBJ4ExmUuLKmf\nnJPibwHwRao9M71jtOHUMifG66m94LQn4PJpQb8MjcOWWVZ/x1U5TzM57zfclhhBJ6vRO7hFakS6\nCeEGYBkwA7gQeBH4faaCkvqpq33DLrHgi+6ZZD8a9B03zTvB4bfA1Z/D8fdBm70AaGTFnJaYxKTc\na3gw5+/0ti/QybbUFek2bpcCngUucfch7v7vGnpqWbLIoPh7peMvpvaPMJI6JKdx0L3nBa9zcuEf\nmJAMenKLmXN4/EOeyruZMbl/4vDY++rMRyJXYUKwQIGZLQe+BL4Me0v7Y+2EJ/WHc3QsSAjTU51Z\n4DtGHE8dY8ZU78r5xddwaOHf+G/JgNLWV3vG5vBg7l28mHsjR8XeVWKQyFhFP/TN7GpgEHCBu38d\nzusM3A+Md/e7aiXKDfHoxCRiW3oSdjdbwIS86wC4vfgUHkhuzUPsDcsOrOTMxMucFX+l9LkNgFmp\nnbi3ZDDPp/qQqlKDxNGZd/vRUYcgFTCztB5Mq+zTdgZw6vpkAODuXwGnA2dWL0TJJkfFNlQXvZTa\nN8JI6o/lNOUfJSfTt/Bu7ig+mR886OXtF7GF3J37LybmXsNJsTdJUBJxpNJQVJYQctx9+aYz3X0Z\nkJOZkKQ+GhSfCsDMVAfme+uIo6lfVrMN9yUH06/wbm4r/jXLPLgttXPsO/6e+wCv5v6WX8cnkUdR\nxJFKtqssIVT0CdSnUwDoaIvpEvsWgJeSOjvYWmtpxL+Tx3Bg4T+5qfgMvvPgltWdY8v4c84I3sq7\nkvPjz7Mt6yKOVLJVZQlhTzNbVc7wE9CjNgKUuu+Q2Mel4y+n9okwkuzwM3n8JzmIgwrv4vfF57DA\ndwCgpa1gWM5/eSfvcq5KPMn2QcMBIjWmwoTg7nF3b1LOsJ27q8pIADgk9hEAC3wHZvtOEUeTPQrJ\n5bHkQA4u/AdXFV3M7FRQts1sDVckxvBO3hUUJEayiy2MOFLJFvXjFgaps/JZy75hN5mTkj1p0A+j\nZUgJCcakDuTwor9yQdFVfJzqDMA2VsjZiVeYlHctj+fcxhGxqcRLe7gVqbpsbXlMakm/2KfkWvAl\n9FqqZ8TRZDcnxiupfXilqDcHxGZyUXwc/eMzAOgbn0nf+EwWe3OeSfbjmeSBzNXZmlSREoJUyyGx\naQCs9TympNTUc+0wJqe6MznVnY4lizk9PpFfxd+gqa2ljf3ApYnnuDTxHB+nOvNM8kDGJfvUSK9u\nkv0qfDCtrtGDadEr+2CakWJq3iXsaKuYkOzF+cXXRBhZw9aYnzkuPoWh8dfoFZuz0bJij/NqqidP\nJA/i9dReJCvv26rK9GBa3Zbug2k6Q5Ct1sO+ZkcL7nRRdVG01tGI/yUH8L/kADrZYgbH3+ak+Fu0\ns+XkWJIj4h9wRPwDlnoznkkeyJPJ/qpSks3oorJstUPi00rHX03uFWEkUtbX3oa7Sn7FgYX/j5ML\n/8ATJQexxvOA4NbVixLjmJR3Lf/J+Sv72BcRRyt1iRKCbLV+sU8B+DzVnu9oEXE0siknxlTvynUl\nF7JP4f1cW3wBU1O7ly4fEJ/Ok3k3MyrnVrra/AgjlbpCCUG2Sj5r2cuCuuq3U3pGsa5bSyOeTB7M\nyUV/4pDCO3m05LDS1lb7xD/j+dwbuSXxENvwc8SRSpSUEGSr7B/7nIQFzTS/k+oecTRSFV95W/5Q\nci79Cv/JQyVHUuxx4uackZjIi7m/Y0+bU/mbSFZSQpCt0jesLiryOO+lukQcjWyNZTTj5pIzObLo\ndt5NdQWgY2wJT+TezHGxdyKOTqKghCBbZf31g4/8F6yjUcTRSHXM9Z04tWgYfy4+lWKPk2cl3J37\nLy6OPxd1aFLLlBCkylrxA7vFgvZz3k6quigbODEeTB7LmcU3sNK3AeD6nNFcpKTQoCghSJWtPzsA\nXT/INlNS3TipqIBl3hSAG3JGc2b85YijktqihCBV1jceJIRVvg2feOeIo5GaNsfbcWrRMJaHHfX8\nKfEIB8Y+iTgqqQ1KCFJFXnqGMCW1R0aaQZDozfF2nF10Hes8l7g5/8q5m062OOqwJMPUdIVUyS9s\nAS1tBQBvq7ooq33qnbm2+ELuzb2HJraWf+bcy0lFN1FcztdG2TauylIbR/WLzhCkSspeP9ADadnv\n+VQfHiwJvtR/GfuaKxNPRRyRZJISglTJ+ucPFnoLvvbWEUcjteHOkpOZmeoAwMXxcfSyWRFHJJmi\nhCDpKyli/9hnALyT7I56R2sYisjh8uLLKPQcYubcljOCBCVRhyUZoIQg6Vv4AdtaIaDqooZmru/E\nPSWDAega+5Zz4uMjjkgyQQlB0vfV66Wjk1PdootDIvFg8hjmptoAcFXiaVrxQ8QRSU1TQpD0zX0N\ngM9TO7OcphEHI7WtiBx+X3IuANtYIVckno44IqlpSgiSnp9XwsIPAXhL1UUN1pRUNyYlg97xhsZf\nZxdbGHFEUpOUECQ9894BTwJqrqKh+2vJKSTdiJtzfWJ01OFIDVJCkPR8FVQXFXpio163pOGZ5e15\nOtkfgMPjH9LTZkcckdQUJQRJT3hB+aOUmrsW+EfJEAo9eGL5ssSzEUcjNUUJQSq3ciEsDx5GUnMV\nAvAdLXgyeRAAh8an0c3mRRuQ1AglBKlcmdtNdf1A1nsgeRwlHnyFXKqzhKyghCCVW58Q8pqquWsp\ntcB3ZEw7uJUTAAAO0klEQVSyHwBHxaeyqy2IOCKpLiUEqZj7hoTQ6UBS+shIGfcljyflQRMm58df\njDgaqS79d0vFlsyENUuD8c4HRxmJ1EFfexsmpPYGYHD8HVqwMuKIpDqUEKRi4e2mAOxySHRxSJ01\nomQQAHlWzGnxSRFHI9URWUIws3lmNsPMPjazD6KKQyoRNldB052hua4fyOamehdmpDoCcEZiArkU\nRxuQbLWozxAGuPte7t474jikPMU/w/zJwfguB4OpuWspjzGi5CgAdrSVHBefHHE8srWiTghSl337\nHpSsC8Y7D4g2FqnTXkjtzxJvBsC58fGARxuQbJUoE4IDE83sQzO7IMI4ZEtKrx+YLihLhYpJ8EjJ\n4QDsEZtPLzVnUS9FmRD6uftewCDgUjPrH2EssonJc5ez4tNXAFjRbA+em/0zz01fFHFUUpc9kTyY\nYo8DcFpiYsTRyNaILCG4+8LwdSkwBth303XMrMDMfP1Q2zE2ZP+Z8BFNfgy6y/zv8l24fNQ0Lh81\nLeKopC5bRjNeTgWXA4+JvUczfoo4Iimr7HepmRWUt04kCcHMtjWz7daPA4cDn266nrsXuLutH2o7\nzoase+E0YmEOVv8Hkq7Hk4cBwS2ov4q/EXE0UlbZ71J3LyhvnajOEFoBb5vZdGAq8IK7q5PWOqRH\n4UcArPNcPkz9IuJopL6YktqDOam2APw6PglSqYgjkqqIJCG4+1fuvmc4dHP326KIQ7bAnR6FQfXQ\n1FQXisiJOCCpP4zHk4cC0Cm2BL5+PdpwpEp026ls7oev2DG5BFB1kVTd08kDWee5wcT7I6INRqpE\nCUE2N2dD8wNvKyFIFa0in3HJPsHEly8F/WlIvaCEIJubHdxuutib84W3jzgYqY8eCy8u40mY9mi0\nwUjalBBkY0VrYd5bALyW3BPQzV1SdZ/4LqXtG/HRI5AsiTQeSY8Sgmxs3ltQ8jMAr6V6RhyM1Gfr\nb0Fl1cLSs06p25QQZGPhP24JCXWXKdXyXPIAyN0umPjgoWiDkbQoIcgG7qUJ4fPcHqylUcQBSX22\nlkaw59BgYs5E+HFepPFI5ZQQZIPls2DFNwBMa7RZSyIiVbf3OeGIw4cPRxqKVE4JQTYoU8/7caN9\nIgxEskbr7tB+v2B82qNQUhRtPFIhJQTZYNbLwev2nVgcbxdtLJI9ep8bvK5ZBl88H20sUiElBAms\n+R7mvxOM/+JI9Y4mNWeP46Hx9sG4Li7XaUoIEpj1EnjYEFnXY6ONRbJLTmPY67RgfN5bsGxWtPHI\nFikhSODz8FR+mx1g5/2jjUWyz95nbxj/cGRUUUgllBAECn+Cua8G47sPglg82ngk++ywG3Q8MBj/\n+HEoXhdtPFIuJQQJ7hFPFgbjqi6STFl/cfnnFTDz2WhjkXIpIciG6qLcfOh0ULSxSPbqcgxsu2Mw\nrovLdZISQkNXvA5mhZ3V7TYQcvR0smRIIhd6nhGML5gK382INh7ZTCLqACRiX74ERauD8e4nRRuL\nZJ2ON7yw0XQ725k3cy3or/uD/8Ax/4goMimPzhAauhlPBa95TWHXgdHGIllvgbfkjdQvg4lPnghu\naJA6QwmhIVv344bmKvY4VtVFUitKm8Uu+gk+/m+0wchGlBAass/GQqo4GO/xq2hjkQbj1VRP2L5T\nMDHlX+o8pw5RQmjI1lcX5bfecI+4SIaliEGfS4OJFfPhi3HRBiSllBAaqh/nwby3g/HuJ+phNKld\ne50GjZsH45PvCfrikMgpITRUHz0ChP+EPU+PNBRpgHK3gX3OC8YXfgjfvBttPAIoITRMyWKY9lgw\n3m4faNUt2nikYdr3fIjnBeOT7442FgGUEBqmWeNh9ZJgvLRHK5Falt8S9jwlGP/yRT2oVgcoITRE\n65sNyGsK3U6INhZp2PpeARZev3r99mhjESWEBmfJZxtaNt1zaFCXKxKVFrtsOEv44nlY/Em08TRw\nSggNzZR7wxGD/S6KNBQRAPpfo7OEOkIJoSFZtThoLgCg6zHBrzORqDXvDHudGox/+QJ881608TRg\nSggNyXv3b3gy+YDLo41FpKyDrt9wx9HLv4NUKtp4GiglhIbipyXw3oPBePv9of2+0cYjUlaznTc8\nvbzwQ/j0qWjjaaCUEBqKt+6EkrDbwkOGRRuLSHkOvBq2bRmMTyyAojWRhtMQKSE0BD/OD9qeB+h8\nMHTqH2U0IuXL2w4O/UMwvmohvPbnaONpgJQQGoJXfr/h2sGhf4w2FpGK7HUatAurM9+9DxZ8EG08\nDYwSQrabPQE+fy4Y734S7LR3tPGIVCQWh+PugXgueArGXhp08yq1QgkhmxWuhhevCcZzt4MjdAou\n9UDLLtD/umB82Rcw/oZo42lAlBCy2fgbgmauAQ75PWzXOtJwRNLW76rgbjiAD0du6LtDMkoJIVt9\n+gxMezQY79Qf9r0g2nhEqiKegCEjoPH2wfTYy3Q9oRYoIWSjRR/Ds5cE442aweAHIKY/tdQzTdvB\nicPBYsEt0/8dCt/PjTqqrKZviWzz/VwYdUrwD2QxOGkENN0p6qhEts5uh8HRfw/G1y6Hh4+F5XOi\njSmLKSFkk+/nwsPHwU+Lg+nDbwv+oUTqs97nQv9rg/FVC+E/g4KzYKlxSgjZYt47MPxQWLUgmO5/\nLex/cbQxidSUAcPg4N8F42uWwkNHwMejoo0pCykh1HclRTDpFnj4GFj3YzCv/3XBP5BZtLGJ1BQz\nOPgGOPL28JrCz/DsRfC/04NWfKVGRJYQzOxIM/vSzOaYmW40rip3+Ow5eKBv0E6RpyCWA8ffF7RV\npGQg2Wj/i+GMZ2GbFsH05+Pg3t7Bj6K1P0QbWxYwd6/9nZrFgVnAQGAB8D5wqrt/Vsl2HkW8dcrK\nhfDp08G92T+UueOiVQ844QFo3b1GdnPqg+8y5avva+S9RDY17/ajq/cGq5cGz9l8+vSGefE82OP4\noCfADv0gp1H19pFFzAx3r/RXYqI2ginHvsAcd/8KwMxGA8cDFSaEBsU9qAL6cR4s+TToWnD+O7B0\nkyJq3BwO/G3wnEEiN5JQRWpdfksY8hD0PANevRUWfgDJQpjxRDAkGkGHA6Btr+BH0o5dg7vt8raL\nOvI6LaqEsBPwbZnpBcB+GdlT0Vr4YETwBUt4drF+vPRsY9NxNl+3wu2qsi4bLy8pDJr5LVodvq6B\ntd/DqkUbmqsuT4vdYO+zodcZ0KhpFQtFJEvsMiBowffrN+CjR4IqpGRRcI1h7qsb+g9fL68pNGkT\n/M/k5gcJIm87SORBLBEO8aD6df102erXjapia2p+mvJbwy9/VfXtqiCqhFB7itYErX3Wd4nG0LoH\n7Hoo7DoQduqV0esEnXbclp8Kizeb/+nCVRnbp8hWMQuSQueDYd2KIDnMmQTzJ8P3cyj9kQZQuBKW\nrYwkzGrbqXfGE0JU1xD6AAXufkQ4/TsAd//LJusVAH+q9QBFRLLbTe5esOnMqBJCguCi8qHAQoKL\nyr9295m1sG9P5+JKQ6Ny2ZzKpHwql81lS5lEUmXk7iVmdhnwMhAHHqqNZCAiIlsWyRlClLIlk9c0\nlcvmVCblU7lsLlvKpCE+qXxT1AHUUSqXzalMyqdy2VxWlEmDO0MQEZHyNcQzBBERKYcSgoiIAFma\nEMysuZlNMLPZ4ev2W1iv3Ab2zKzAzBaa2cfhcFTtRV+zKmtE0AJ3h8s/MbNe6W5bn1WzXOaZ2Yzw\ns5E1/TqmUSZdzGyKmRWa2TVV2bY+q2a51K/Pirtn3QDcAdwQjt8A/LWcdeLAXKAzkAtMB/YIlxUA\n10R9HDVQDls8xjLrHAW8RPBc/f7Ae+luW1+H6pRLuGwesEPUxxFBmbQE9gFuK/v/oc9K+eVSHz8r\nWXmGQNBQ3sPh+MPA4HLWKW1gz92LgPUN7GWTdI7xeOARD7wLNDOzNmluW19Vp1yyVaVl4u5L3f19\nYNM2TRr0Z6WCcql3sjUhtHL39b1mfAe0Kmed8hrYK9v58G/CqoKHtlTlVA9UdowVrZPOtvVVdcoF\ngsZxJprZh2Z2QcairF3V+Xs39M9KRerVZ6XeNm5nZhOB1uUsGlZ2wt3dzKp6b+39wC0Ef8xbgL8D\n525NnJKV+rn7QjNrCUwwsy/c/c2og5I6qV59VuptQnD3LfYeb2ZLzKyNuy8OT/OXlrPaQqB9mel2\n4TzcfUmZ9/o38HzNRF3rtniMaayTk8a29VV1ygV3X/+61MzGEFQr1Nl/8jSlUyaZ2Lauq9ax1bfP\nSrZWGT0HnBWOnwWMLWed94HdzKyTmeUCp4TbsUld8QnApxmMNZO2eIxlPAecGd5Vsz+wMqxuS2fb\n+mqry8XMtjWz7QDMbFvgcOrv56Os6vy9G/pnpVz18rMS9VXtTAxAC2ASMBuYCDQP57cFXiyz3lEE\nra7OBYaVmf8oMAP4hOCP3ybqY6pGWWx2jMBFwEXhuAH/CpfPAHpXVj7ZMGxtuRDcbTI9HGZmU7mk\nUSatCerQVwErwvEm+qyUXy718bOipitERATI3iojERGpIiUEEREBlBBERCSkhCAiIoASgoiIhJQQ\nREQEUEIQKZeZuZk9VmY6YWbLzKy+PrUuUiklBJHyrQG6m1njcHog2dMcg0i5lBBEtuxF4Ohw/FRg\n1PoFYbMED5nZVDObZmbHh/M7mtlbZvZROBwQzj/YzF43s6fM7Asze9zMrNaPSKQCSggiWzYaOMXM\nGgG/BN4rs2wY8Kq77wsMAP4WtlezFBjo7r2AocDdZbbpCVwJ7EHQrEHfzB+CSPrqbWunIpnm7p+Y\nWUeCs4MXN1l8OHBcmS4TGwE7A4uAe81sLyAJ/KLMNlPdfQGAmX0MdATezlT8IlWlhCBSseeAO4GD\nCRpNXM+Ak9z9y7Irm1kBsATYk+AM/OcyiwvLjCfR/5/UMaoyEqnYQ8BN7j5jk/kvE/SqZwBm1jOc\n3xRY7O4p4AyCPnlF6gUlBJEKuPsCd7+7nEW3EHQi9ImZzQynAe4DzjKz6UAXgruVROoFNX8tIiKA\nzhBERCSkhCAiIoASgoiIhJQQREQEUEIQEZGQEoKIiABKCCIiElJCEBERAP5/6ThHKkzIn9UAAAAA\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2443,7 +2442,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index e735003cf..0dc18d5a2 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -15,13 +15,12 @@ }, "outputs": [], "source": [ + "%matplotlib inline\n", "from IPython.display import Image\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", - "import openmc\n", - "\n", - "%matplotlib inline" + "import openmc" ] }, { @@ -349,7 +348,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBAFHJ/0NHcAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMDhUMTI6MDU6\nMjgtMDQ6MDCheDXLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTA4VDEyOjA1OjI4LTA0OjAw\n0CWNdwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAALKSURB\nVGje7dpLcqQwDAbgHHE2YeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmN\nP+HDhw8fPnz48Kf6VH9G+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4\nzPji99z0/AJ4n1lfvJ6fnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6\npA0wfln+ho/fwgYYn19C/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tN\nDbSGz7T0SBEWw4vLXzbQ6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X5\n8wZaxWd1+fMGiuFvir8bvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV\n873hB8UnM3xzANtf8nb4dwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7\nT/ppARBvp48UwJnelT5SACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4/\n/Jve+fhsH6Ctv7n8PTzjvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V\n32/o9+fl389Xnx+g5x/o+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6\n/4Le/6D3T/D9V67Y/ZsVQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/\ngPs/0P4TtP8F7r9J3AIO9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTu\nf4X7b+H+X7T/+BPuf3aM8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTYtMDQtMTNUMTE6MzI6NTUtMDQ6MDDR46xaAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEz\nVDExOjMyOjU1LTA0OjAwoL4U5gAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -459,8 +458,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 12:05:28\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-13 11:32:56\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -597,20 +596,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.3700E-01 seconds\n", - " Reading cross sections = 1.4300E-01 seconds\n", - " Total time in simulation = 4.3618E+02 seconds\n", - " Time in transport only = 4.3609E+02 seconds\n", - " Time in inactive batches = 1.5047E+01 seconds\n", - " Time in active batches = 4.2113E+02 seconds\n", - " Time synchronizing fission bank = 2.4000E-02 seconds\n", - " Sampling source sites = 1.6000E-02 seconds\n", - " SEND/RECV source sites = 6.0000E-03 seconds\n", - " Time accumulating tallies = 4.0000E-02 seconds\n", - " Total time for finalization = 2.5600E-01 seconds\n", - " Total time elapsed = 4.3701E+02 seconds\n", - " Calculation Rate (inactive) = 3322.92 neutrons/second\n", - " Calculation Rate (active) = 1068.56 neutrons/second\n", + " Total time for initialization = 3.8100E-01 seconds\n", + " Reading cross sections = 8.6000E-02 seconds\n", + " Total time in simulation = 2.4400E+02 seconds\n", + " Time in transport only = 2.4395E+02 seconds\n", + " Time in inactive batches = 8.3260E+00 seconds\n", + " Time in active batches = 2.3567E+02 seconds\n", + " Time synchronizing fission bank = 1.6000E-02 seconds\n", + " Sampling source sites = 6.0000E-03 seconds\n", + " SEND/RECV source sites = 7.0000E-03 seconds\n", + " Time accumulating tallies = 1.9000E-02 seconds\n", + " Total time for finalization = 1.7400E-01 seconds\n", + " Total time elapsed = 2.4458E+02 seconds\n", + " Calculation Rate (inactive) = 6005.28 neutrons/second\n", + " Calculation Rate (active) = 1909.46 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -867,7 +866,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -876,9 +875,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAC8CAYAAACHbT4AAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXmwJNd13vm7udVe9falX7/X+wqgARA7ARIUlzFtSZYl\nUxzZYY/sGcdE2LRjLEphyZ4Yi4oJ27I0oizb4ZmxZcmyrRhbthiWZMsiwU0kSGJfuoHe9+6377VX\nZWXe+eOcyqoGm2IDBNRCo04EAtn5Mm/evHnr3HO/851zjLWWgQxkIAMZyJ0hzu3uwEAGMpCBDOTt\nk4FSH8hABjKQO0gGSn0gAxnIQO4gGSj1gQxkIAO5g2Sg1AcykIEM5A6SgVIfyEAGMpA7SL4npW6M\n+bgx5owx5rwx5mfexH2f+V6e+16TwXj98ctbmduD7/TmZDBe74yYt8pTN8a4wFngY8B14HngL1hr\nT97CvdZaa97Sg9+DMhivP155q3N78J3enAzG652R78VSfxg4b629aK1tA/8B+KG3p1sDGchtlcHc\nHsi7Vr4XpT4DXOv793U9N5CBvNtlMLcH8q4V751+gOJmP3uT84P8BG9CBuP1luXnrLWfeScavtnc\nHnynNyeD8fqe5KZz+3tR6vPAbN+/d+q5G0QfmjzYGGOP/MxnaQ9bChflXCdjGD4bAhAWXJrDArO5\nTWhMynHkQ2pLrs+sx7Rzcr4xYRg70dHGoZORzUdzSP5e+b46XMoCMPaqxerepHihxvIjBQDKDzWZ\n/S0Ziq39HtPfqACwen+e6pxcHwfQGZU+Dr/gk96QuZi/2gBg/Z4sG/dF0u+ai9uS+wqXwJXbWLvf\nMvsFuaYy69EakT4G25bKLvTY0JiKAfBqBqtfaOSE/H/9Pkvhor7jKLhtffUOeHU5bpegk5P+tUcj\ncOQ4WPEIR6Tt9IJLa1yOM3Pyvs2LBYrnpU/toR7UWd8RQVHGOLgaUDon560DtR1y3fQzTWpTAQDZ\nlRATyTM7GZfmiCvPWZM2alM+1Z1yX3bZkluWMWmMuoRZOd/JQpSW5/g1GSOA7GrE1R+R6/1MSLgl\nFwWrLoUr8PK/+kneBpz2Lc/tj5pPfI+PHshAbi5ftP/5lub296LUnwcOGGP2IBP+x4C/eCs3li5G\neA3LxlF5fG1nhNuS44kXq4TZPABD5xt0shm5qWAYPdkEYP2uNOl1UUitjmF7j9ybX4gSZVLZK+9u\nr2YZOq8v24qpTouCKe/LEVTk2rEvpSjPyfWpTcv8k6LsM6uWvG7Cy3sge16UVnWXJfZFsbZKsmC0\ni4bMvPTDa8LIKdHkJrJYT9te81l+RO4bOhODfp70RszIabn+0p8NcHQR8CuG2Jfj5pheu2ISJRiU\nHSq7dXHb3yZ9TfrntCG9pothxiG9on29t07gyb3NTo78FTlf7xT0PkNruKvULZ2SPme4SbsuHZl8\nLmLtmL5nDSafl9Vr80AqWaTW7guSxTO91nuH9Ib8ffhMjVRFvmuYNWztk/ayK3FyX3PMULhi9VuB\ndeTezAZ4q/KeXjnF9KuyUGweNITyGm+HvOW5PZCB3G55y0rdWtsxxvxN4POAC/yatfb1t61nAxnI\nbZLB3B7Iu1m+J0zdWvv7wO+/6ftcQ23KYfI5sby9r4Sc+4s5ANJbObobjNZIgKPwgleHjUMpADKr\nMVsHHW0LqkfkojAfULwiFvzocbHyqjsctvcrFDDv0S5Ke24LgqpagrsdsktyXNthMGKgsnGPJX9V\nnjP2aoyjuwBrYOkDCmMsiuUfpS1uSzpevByxep+vxzFRoBbq2Yit/XL98p9uM/kHYnG6bcv6XQIj\n5K5D5YBYn2HHEA5JZ4rfkPtGTmxT2S8maZSC1Kb0NSz4CeRT2xPiVuR6d2edsC5ja65kyN29DkD+\neJ6tDwt0lHpNreaCpYtwRtk4aWPka1nSGwp5VNrkr2nbYe/6zXti8pfkvIkBPT98NiL2un2Uvzuh\nT3NIIaQxQ+mC7ggqEVv7/KQNryWNjL9saYzK9ZUdHoVLPSimvEsaT69ZajNvHzvurc7tgQzkdss7\n7ii9mTSHDY0Jw/hzAgKv3z/MzFflh+01Ypp75YfdGHHJL4qC297tU90t93tNQ3ZBlfacoXi8i+XG\nCW6bfvkKAMt/fy/Dr6lC2G2Jfbkvt2Cozsj56r6QofNy7F4yLL1fnmNGWpS+6mufXUws94ZZg83K\nc1LbqqhWSaCfKDC0i1bfxyY4cXm3mywekGZ7nz6n4zB0QRaJtWOGYE3a9KsGpy3Hq4/E+g5D7Hha\nFsPKznSiMJ0Q6jO6GkWGONDnn8lhYsWvr1nqiuMERci9IMo8tSnXbudJFtTMokuo7xC7hsXHZBza\nIw4Fxd3DgmFrnyy0uasCV3XP56/K8eYhF7/CDbLwpwwpRaiDLVj5hLxPtJwhvSJtz/1BmbX7FE/J\n9xZaEKMAYOVBh+I5eY6JIbcw8LkNZCCDNAEDGchABnIHyW2x1DcfChn9hk91fwmA3HIH0xFLtDnq\nM3JacITqTED2ShmAYCtNe0hghO19Frcp1trQ2Zh2QZ1oKyGVWXVm7tgPgDdeY/MutUg33J4jbrTn\nWDMdJ4FFJp9vYrNyXHghw/YeuSbKQEGtz3bJkL4iz+mIn5S4YMhfl7/XJ5zEOi3PuWRX1ak7bGiO\ndxkvwlIBgYLWjinrY1eT9Mlufy2xWqXWVejHhdX7FKpZjBl6cQWACz8+iU3Jc/w1D0cJQSOvWzaP\n6E5hb49BVNkfkbmuTuPHddex6OFXdUxiqO+S8xv3eAQK8/hbDiNnxJO7ccRn6JxcYz1o52RwR07G\nLHxY+pte9hILevh1+Za12SJ+VdlJd7VxluR906sOmWW5dvHxImFe+2Ihu9h7//r7awCEmyk6WZnC\noycq1Gf0YwxkIO9huS1K/fBnq6w9PEwsOgXrQpSSf2wedgjKchz7hvpuAcHTC3XmfncDgNXHhmko\nG6S812H4jC4IYz5rj4vCcTcFLki9mmfytOzdF5+IKVwSxePVLCYSxTLxoiUO5JrL3x9QOi7XFK5H\nCZbbHurBNX7VEitO3l0kGjMRsS/9Ll2MidLyh04O1qe6iw6Esi7R2mnJLimMkSc5bjUztIcUM14S\nOh9AuyR+g6ZnmXxOzm3v9gk/MAmIEh56Vd45vRFTn1Cfg2MZeV3ebe1YT2l6NZfKPhk3PPl/eyTG\ndOQdcvMWvyjPjGouofoiTCzUQ4CJlxqs3isKOUpBdY8oeH/bxbQVFgmho9TE5cdkFSudtWwonp99\nPUN9Tu6r74zpcjhbo3HyffLXTEJtzV+LCY/LIKY6JJj+9Y8UqO9vw+cYyEDe0zKAXwYykIEM5A6S\n22Kp1/YXaUwY6pNi8RUvG1oa7BIW48QhGVRiapPSRb8aUJ0Rp9zI63UWnxBrLbNg8WtiiXbSDkOv\nCCxS2aXb/w3L9Y+LJTrxtIcbqsNxzqE2J/eVD8HwCXWUtkhgmfKci68MmeZExMQzXSjE0BzVl1FL\n0as6tDWwx142tId7TrvMotzXHLMEZYWNzls2D8pxeg2MJlYzkcGryfnNozYZi3hN3/01h43DatWP\n2ITrPnrcEnsK/0w5Sb+39zoJQya7SML+qT7UwG7KWKUvSdvNmZA4kHGozRj2/l9iQZcPwNp9cl97\nMqT0e7prGEszfEaPRzxyi3Lv+t2QWtddTR3K+3WoHBmf3HWHwnNi4TfGLSi0NPySR3NcrvXLThJY\nVd1piQpyb31GdlndoZ/9skJBhwPGnva5ykAG8t6W26PUJ11MDKOnRGnMP+mQvyraafapTrKlLh5f\n5cxfnwDAr6UYOi6AcGOuQEuVZv66Zf2owA7jL7eIUopNa2RpejMmWNNgmZZNsOv0OhTPyKLSyUFD\nHoPTgvpOjZ5cdyldFsW/1XIS1kVuoc3qQ9pmVZ4TliKKZzx9tk1YHCaG2pwopJmvxskYrDzgEdwn\n2raUbXDt9Sl5n6uGjirq7JIRxQ3YUE5u3BeRWpXnuIcrNDSicuNoQOGyXFu62GHlfXKNsbB9VCmD\nGw5GG/cvpulkleqp0af+usfoCT2XhtqcgNqRb8guyH11fCpKI6zMOUmkp3wjOZ56NsZryLs6YUxt\nVb5PeY+MVRxAR2PK2pMd3JyMd2vYx6gvoLG/DaFCZcU2nk6K4pezeHVl2eQMrSGlNG7EbO8fbDwH\nMpDBr2AgAxnIQO4guS2WunVg6FzEqoabx0GU8JAz59dgS1gSWx89QEZD3FceimkXhgEYPV5l5qsC\nGYQFl+xyz1os75Lru0FItUknsf4WPhyRPy/PbExYUusaSp+CcQ03NxEsPaIBRRlLeU5D2Bdh5QnZ\n6gcrAcOai6Ub8LN+r5OE97eLhub9wsF3LmSIR7sQQYrcgvQr9izRt+R9NtvDDKmVu3U0xp0UJ2Lp\nv2SwRuGQY/IgP+jgXRELuraSJTclnlRzNqAxoYyS3V7Cx/dqhsy88t5rPfilNRTjNqTt1KZa71Wo\n7NK8Ow0YOS5UmPIHSz2mUEjPCetCflEhrDmP7X1y7+jJiNiX4629KXb8wQIA6U3BVqzTSw3QHnYp\nqIPXbVnq05pSYd4nOCY7s87zw7SHFUL76jLNXTJuWwcClh+RfuWuOfgybQYykPe03BalnlmL2drn\nJop0/a5epOfWg5M4HcFC1o4ZRk5qcqu6w9jL2wC4a2UWPij5ltrDlkCVUn0yRemSXL+tW/2h8xF+\nrauEXFIKFzQmIbOmwUJlWLtb4ZQGCa0vHIppjss1bsOQP+9rXyC9KcqsPuEm57o4e2ssSpgbBOAu\nCXbdHO8xXlIbhuyKRqVuRAk2X9vp0UrLghUFhuoBXUiuyjnrpYhSOo4LHuayMEry12NKZ4RHufR4\niaqmoypeiZMFszni0Drc0IEOCLalL7VDsmA4XoyzkNZxMCx9oJR8r/qOXrRmS3QqUcbitjSC9/Um\nzTEZn8qMmyQ8y61EXPyfdgAwdlw60io6ybsPn4mS9pwObN6tPoR0TPu6TIqMhZET6keYG2blwVQy\n5lZhGb9q2bi/B28NZCDvVRnALwMZyEAGcgfJbbHUw6zD0IWIhSfEyh17NaY+JetLUIlYPSYWX24B\nyru6jBPYvEssN6+RJ7uiFnTbUD4gFqBNxTSmpM2s7PhZfsQkgTsg+VxAwuC3DsnxyOuWmsIFUQSN\naWkvM+9S36PZFpsOc58XS7C6w2Pp/co9X5Z222MRw68ox3vRYeNxeZ/Mikmcgul1y/YBOe7kYqKU\nOgKblsyyUD2CbR/JIQXVnQbT6nLje4yXbpBTZiNKoKJgy7B2v4yPE1p2/zcN4NoZ4KilHhag9A2x\nxBsTJuGHT07KDqjSSFFXDjrrPoE6hjfuNqQ0w2JtV4fOqIzD7O85bO6XXUicgsr9Eu5vGzH+8572\nMSa7oBDSRC/fi68Mn+xSSGVOvrdfgbSOpxM6BGV5T6djqeyR61cfdXHysttw5tMMn+qlYC6e1r4P\nZCDvYbktSr36gxVaXy8mUZdLT0YMaX6Wzf1+AqHUJxwCxUmb4xZXA1o2D7qMaEDRygcjMkOiTJzn\ni0SqQLtwRu6aQ3tIjtvDMbNPyR+ufTRm/AWN7qzERBlNOTsWJ0m6vCaMPaMskhjmPyh9dDokib5y\ni9JXt+VR26msjOEYx1doZd1Kgitg6yBJ0q/UumH0pMJPRz0qM9Lx5qglHNP8NfM+JWXo1KeUorlq\nKO+T47XHLHv/v3YyrhtHBZboZMDfEEw/b2DxMVHkpQsxqS1pe+uoi78hba9vKY/QgLIicTridwDo\nFGOKmsO9NeLiV7pj0sENlYW0GFPVaN5U2WHovHyT2o4giW7tLmhetReQtHUgoHBVBmj9HsOwVgE1\nsaUx3hvv5pQ04hZC/LMyVjuebiUL49YhNzkeyEDeyzL4FQxkIAMZyB0kt4f9crxIbS4mTomVt+v3\nLFiBOVYe8NnKy1qTv25JVbrORMPiR8Q6z11wWHlQoYt1h5l/J+fXj1o2D0k7TYUtdv+OZeGJLqfc\nUB/rhsEbQuVnl/d4eOoczc67SU6W9JpNnJK1aUMcSF+ivCV3TeGibXn20uMWMyxWs+tYYs2M2Bgz\nSTGOHV8P2dYMlLUP1dhsC4ulvqtD6aRyz9sGpaTTyVpcMXgZfV2t82NiOUtHDNWdYh1n1jpJyoKg\nbCkflu1JfcLB01QDfj3m2sfkOblrTsLE6QYW+btquK62/VwpqcCUveYmvHOv4dDYIVbziueRltQz\nOB3L9DfkOPfb36T1Zx4CJOtjfkHTAExq9s2ZiMyCfIfaDGwqF7941mFbA5WKl2D4nHzL5Qd9cpf0\nG9Y9Grpr2doXJJWpgi1DY0a3BAMZyHtYbotSn3oupDHmUlP8e/ExJwmEyS6QQCiNScPqBxQQNpC5\nJAps6FxEdUZx51lLmPf0fJvtg6I4ujh6J2MoXpAm3NBSmRXNV7oY49e6ibY8Jl8Uhbx6b4D/PgkK\nWtmVw1+R9pw25C/LvcYK/Q5g/R7NMbMOUUUwBevBuOZzr8yRJBxbfiigsU85kHUfq8ps4hsu5W4a\n3gi60UdOSBJMtXJEWSG+Jb2sFMVyj3GzdbCXxCuzDO28MoKmLaFGY9bmHDLLim/PRgkFspua157K\n4250g7d6Y1jfGSX3vf/jx3n2vxyT8zMR7aJi/aMeGfVzZN9/bwKF1Kd6QVvjr4iSrmx4VBWq6uRt\nD+6qWQoKydUnDY2x3rfs5p7pZA3tac3vc05LKgHRPdUkTfFABvJelgH8MpCBDGQgd5DcFks9/Y3T\ntL7/Lmq7xAovzW1TrYmV265ncBR/iF3w18Qay84bcksKdTzqEI2JxZu6mqK6w+tdr5ZeN/hl/W5D\n8WIv30snLxZia8jQGFeGxoqlOdwbimpZtgruppdwvLP3r1M5PSL9PQNVZeW0S1q8ednBaWvgzsOb\nbMQCf8ReTJzR8P1TLt4JDZrK94pKNCYMdCnWVrIcArR3hITDWn3oJc0WWTI0x7pWO8kOx2mbBAqx\npudMzSybBCqqT5sEznHahmBLzkfav9Z0h8yyjHf9aEjmqhYI2d+iPi39/vKJIxgtxjH6kpNY+xMv\nttg8LNdsHciSWdeKTVciWkV5zpUfVS9sM2LiW1o9qQ0rD2p+ncmYwkU53xyPSe+Vj5lxI7ZWBary\nNnxMo5vREzpjGvFVC5h6yuMyAxnIe1tui1Ivf/womwcdbEYgj63VPG5GlEB7LCJ7RbplHUhpAWXr\nCT0RIB5vkbosi0BmRSAWkNzmXSUcKe5cvACtkiiVxkyUJO6q7TC0R+Xi9KJLI+4mFLPYujw/tdGL\nEm28MIrWjyZKQ16LInepdq0hS2dUGRr1FM5uAbKj7RR08fVxyF/rJgiDiR+V9FNX1keIzneTh0Ok\nvgZTdXGbWrVprz47FZPdLxTE6nYGtnrFpqu7e1Gk4U5Z9NpTDuNfF+UclmJaStcsnvQTqmU3N33x\ndZ/qnD674dLYJS/va/AUgGk72Jym8n0sxskog6eZoXyfRr0uBmw6oniHTwm7CKDwuua63x0lTKZ2\nwTD3eZkHa/emqOxRHH/Bwd2vi3EtjWkptLKzARvK8hnpkL4qbVrPsnGUgQzkPS8D+GUgAxnIQO4g\nuS2Wul+PCSousW71OznL0DPKCukLRzdWwvYBhs63qWh1Itt0aY2LhRinXIZOyzWVh5uw0g2n7wau\nGLqk9V2/F1He3VvH/G3NGnhvBavFOcNKgK9ZBbNLNnEEkiXhzNc+UE3aCDeUcO2ASYkF61zOEE6o\nM6/qklrTghlZS6hO02ALzr62E5BMjx2FcdyqA+Ni8WZOZpLC212ueydjaJwVaCdVN0m63bAUE0wK\nNz3z5Txjx7v5VGI6Wc03k7bkxural1KyCymdk35XZtyktqkthvjLyqxZMklxDzoGZ1szI644RGll\ntEzaJIVv8bKlroVB1h6ImPsDhahWFe4JXDaPSHNuAzbu1/w6V3u7BhNB5ap4R7PzblJ/tbMVJFk8\nTRDT3CNjVTiRSnYeAxnIe1kGlvpABjKQgdxB8l0tdWPMLPBvgUnE5P2X1tpfMcaMAP8R2A1cBj5p\nrd28lYcGWyHpdS9J5ORVDWXFjDMrvSjNdsHQHBPLbf5DPv5GtwUHr67lza5b2iXF3TcCsivdsHq5\ncu3+OKHjrT9iKB2Xa0dOxmxp/u3g6wW8pmLku6Gtu4At41G8pDh1naSkmncij/OA4NpRUc3dlRSx\np4U2mga7IRbsA4+f4cUrQqaOQodwRM5n5l1sWt7z0YdOcWFb6vMtr5cwS0qOt1DbIxaqW1E6JRBN\nqiX/ahrrdSNhLe0lqdEZz0Ftp0Zjtl3S69JcegFqjlzjlSz5a5oG4Eg3r7wlHpL3GR6t0rgifMn2\nUM8hm9p0EopkcyIm2NTEaRfFKgdor7uJQzZ3zWX5Qd1hKSyev25paK3WKAPjz6ojdxI6E7I1CZup\nxPFcuBozerIbTezReUy2TLPDW1x8XjKXBRWbfPNblXdibg/kO4uTTuOMyzy3+d62ytRlssTLq8TN\n5m3p250ktwK/dICftNa+ZIwpAC8aY54C/grwJWvtzxtjfgb4GeCnb+Wh5/5ywPArJIE9nVKEW+tV\nHsquyA/b2ICKFn4ORzukFntZErs/4OaoSULo/W0nCZipqeMVa8isKmd7t8AEAHHgJGlzazstpfNy\nPPK6xdOUtGvHTM9xGAkXHaB8bxvnsuSi7cIFnVKMo/BLayLCHZHGX/7yIfY9Lg7Rhf+6i9pO6V9j\nOiJ3Qd7n6fAIgVYKiqY6BNpmnCJJd+DulRe25/KMfF0GLqjGLD+sg5qKmJiThaaQarHwRVF2Jhau\nOkB7OmRsUhTiRnUkyeSYBC1tGUwkkMtmp4j6QOlkbVKNqfTICqtnxvRbGUJ1SJf3GUbUCR35ktkR\nwG3bpM5rN1CoMWaI0rpIrBvKu7vFRyx1rZcalKGjvuOlJ2OKpzRoaiFmeV7+cPW1Ir6uqV4jTtIK\nvAl52+f2e1Ycl873SRTb4vtTxPcIc+nj+07xY8PPArDf7yls3zj4muPINQp92oiX2gJnfm7zQb5w\n6TAA9rUi00/L7yn46qvYziDI7I+S7/orsNYuWmtf0uMKcAqYAX4I+A297DeAP/dOdXIgA3knZDC3\nB3InirHWfveruhcbsxv4GnA3cNVaO6TnDbDZ/fd3acMe+9RnaQ33eNr1aYN7r1iZ5lslilpCbvlR\ng1/pwgiAQh7jhRprX5Yc3VHQ29Y7HWhrvnBzXVb8KG2TepmtsQibUafdZZ/GXtkRZC4FiUW886t1\nlh8WiKJdkKr2AH7FJGXf3KkG48NiiWzXZRv5/Xte57m1XQBUWynWlsXJVxytkQk03P3aMNnLYp3H\nKWhqZKRpO5ROaYTsE3U6Sql0N32iQnTD+HnbLp2SnPO23CQ/e/lwh2BdYY59NcKq1h8ttfC/JbuK\n9pBNslduPdomfaGbt12drSMxwZq08eDHTvLivJjyze2UxPsDbraTjG1u3iQU0k4WWqPdKNGYwjlp\nJ7PeKzPXLdwR+71oVaabFL8uY+jVYVNpiZ3RkOmnZBxW7zdJSolgy8HeJWMftjzMkvSlcNkwdCHk\na//9p7Fdr/ebkLdrbn/UfOLNPvpdJ8bX3dyPPUDth2Xn92v3/xuO+r252rRyHAO+FtJ1jMGla5XH\nOObGz9T92xsl76SJrPwOT7RD/tLL/7Oc/1yBof/4EgA2bN/03jtJvmj/8y3N7Vtmvxhj8sBvA3/b\nWls2fR/EWmuNMTddHYwxnwF+tv9cfcZSuEhS5aY53cGpqRLyYEtZLtFQm9jTLhqLe0EU5dVUATOh\nNTA7hnhatnW5QpPmvMaTT8pH9pYCcouKizddqntVgRVtknYgt2CpaV+qs+mkUpI5VoYloX2Es21s\npFWVsi1KKXnmwrwEJP3WxoOMTckEX1sqEhT0+W5E4wtS9GO4aWmNaNsRZK4rc2RXm4YW4bbzGYxi\n7ek1Q00r/mQvSF8bOyJGXpJrWyOGzKqmA97tULgsbW/s9HCqMm7BWA37QYGDw4ulpAg0VY/8o6vS\ntmIY8y9P094t7/Vg6TLPXN6dPDu1pZj2MUOm0qsY1WWc7Hi6RX1K3mfzkEtlv/yomxMOnZyybzR3\nTmbBo3BF7mtey7J1WM4bS4LRm8hn9X6S890UDUHZsnVI0w1fyFA6J/duHQIn1OyRN87Fn7PWfoY/\nQt7OuX2nijcrTK3Tn97Jv/2hfwHA4+nnqMcyz2NiQlW8b1TWUddisiSF0ms2Jq3/6CrzVhKBJ9Jd\nDOpxm5aVH+VB3+MbD/+q3Pew4enPSKKmT/3uX+XwL18HoHPt+vf+wn9C5Vbm9i2BkMYYH5n0v2mt\n/ZyeXjbGTOvfp4GVm91rrf2MtdZ0/3szLzCQgbwV6Z9vt6DQB3N7IO8auZW5fSvsFwP8a+CUtfaz\nfX/6XeDHgZ/X///OrXZs8vmI+qjbc5Yte3gKOfg1cNpdZ2ZAc04sgfTVIOFQgyF/SKzPrcUi3rxs\nwSvDHkMnu+HnGom5G2oz6oibt3jH5TnbD7cwVqzfKOiVtqvOOKivkOZSLgnfL5QalDVU/cDoKi++\nIMnBu5kZMdBdRN1shy6qtbmRJ9DEXa2JCCev5enOZsg+tAbAsZE1Xtg8JH3JR7jKqKnbgNFntWDI\nolgq7StO4lhsD1kasgnALxsq6oh01gJi/bL1s0NECjl5TUM41S2k6iTc/IV1sXbSB7dpteTGf3nq\nCWJNkBWWLI3D4qgyVT+BXMKCTaCvTtalqoybzv4G2eNiwtf2hQwpZ377oOZev2ZpjvaKn3T58qOv\nGlYf7qUg8DRp2tITMX7Z02caoo461R2LdbrFSgyZjRuhqu8m78TcvpPEnZTJdfrv7+FrP/hLAEy6\nGVqaUbUag6N2YdNGicVdiSMCtdYdehkwQhsnMCdAPYF+lejQ/2xjEgu/bsOk7boN8bVub2hjHktL\nHdsXfvSzrP55uf5P/bef4MjPXQYgWr7penxHy3fF1I0xTwBfB07Q+z5/D3gW+C1gDriC0L42btrI\nje3Zu35jKcASAAAgAElEQVTqs1QOhuz7D/IjvPSDQRJcUziwRfsZwShiH5ozMoGKkz2+WmUri1GW\nRFz2GZmVD1uppXFPiuJtTegPPO5lIfTLJlF26TVD5YhqE9eSUigktWGSvmwf6SRVI7xciKeY4Wih\nxkZVcPfGpiivwniVWlUWl6FSjc1LwtfMzVZwVNmXl/NMzckQ1VsBnWflmvh9lSRNQKcYk7kumjK9\n0aP+dRVfdtlS1tQEblPSJ4DAOe0h/XFUDM0prQblWNLLGiy0Cs1uPYwOlB6XMkOjGQlI+kvTz/DU\n5l0APP2le8jOKwsngLKOlUlHWFX20190KZ4XfPva/1Ai1l9lJ2vZ8Q0tYvKARyCfJ8lZ49VMwl5q\nTNiEnprasklGx9iF3LJ8iDBr8LUwd33CSYpd16bcREnUp4TB9OK/+clbxtTfibn9rsfUjWHhpx4D\n4Dc/JevcIb+X/TKylpDe4tmPkYd9GjtSvZJ13ASWkeu0LjDd+l499kvb2mQxaFt7w9+77bnGkFKl\nHlubKPimjZJjH5cX2mKZfepf/A0AdvzSt+BN+A//JMrbhqlba5+G7+DBgI+82Y4NZCB/UmQwtwdy\nJ8ptSRMQBRCseAkb4tA/vsipn90NQKWawQz1LLr8eeWmvzTExgMCQWQv+biKelQOhWwo06T0akBz\nXKvYz4gF2TxbYvSEnFt9wLL32DwAF4/PEKyoY61jaA9rxsjzDqEY4ZhMhG2q0zZ0iNaELTK/nuEH\nH3wZgOeywnhZvjJCekna2xpOYdUpOJqr81fmvgnA54bfx2Ra+vXFk4fJPihsnuDpEtVdcr3NdrCa\nDMttQkETh5X3qSN3xiSpA6xHYqna95WJqtK/1EaK1IpmO5wJaY3Ju0Vph3BIg5kKISvrMm7ljOww\nPp++mz88I7CSk7YJr9yrG4amKsn3a7Tkmyw/kqN4Qfo1dCGmndNdRQfKu2Qs8ld6wWHd7JuZFcvQ\nRYFzFh9NM/tUWfvnsfo+GfzsSozT0W+5FNEc6ZYYtMx/XN9hs5dwLRztUK/2b+AH8mbEPSDRf96v\n1nll/z8HoKUBDJW4xyzpZ6g4xlBXlkvUZwWH9Jx19bhn1UeQWOLN2CbLaX8W/MQi/w79jKwl1kkf\nYkF3Ab5xyBpNbofhg5q944Wf+BUA/vKf+zjVvyowY3Tu4ncahjtCbotSL12Mqcw6rN0jH6H1wX34\nmlfFrLsJpBBsQ/mIKHLTNnhb8ofOfVXqStkrvdKDbtrF3jPsM8JA81Kw9qeF0ZE6neHCNcEJg4rB\nHBEMoLWYxfrd7b0hta2LykKQTLxOyyGlzAxi+INzwr2LlBHjb7t0NIVtnO8w8pwyQXZk+LmvCM35\nsWPn+Nbn7gUgnYKGpsc1c3GXMUhhuE51St6zOWEY3iu7fvOsBPw09rfwNCfL3BfaXPrxblZFH8q9\nz9mFrbKXfe7/ASn8+a1nDpMeFcrn/TuucyAveGNdnQjzjSGyBVG2tdBJaIydcUtrW5Tt4dklzi5M\nyniuO9RmhR3UzhlaIxpxW7MUr8h3q025SfGOIWWqrDwMld2yAOUWLPWdSiHNOfhaJSpVjlh+SMaw\ncMmhOquMm3uq5F8QqCqz2mMtuS0/ocgO5M1J9ZOP8gs/L4yW+4MODVWUXUw7BrJGa+XaqKfA+4Y7\nAsI3/BtEwft9e6Gm3usbSJsuBt97Tvfa0EJWj/uhGLlXIZe409tnWYtPl0YZJ4FNXfnNPV/guc/L\nxX/nZ/4G+d965o8elHexDHK/DGQgAxnIHSS3xVLfPORgImhpoFDqTCYpXsHBGmFdLbTLQeK+MpEh\ns6wecJMjrWHr5UMRTksdbWsOqU05ru3o5mwxlL6mgUgpMGc0F3fW0upmWAws/qYG/9zVolbWbbxn\nE5PDCQ2Fy9Lm9gEw5xUmuFsglMYsOK4GBV3NJXVJNxYLSQqEF798mNKSbh3zhjglfXEOVmk15Jlz\nQ1ucP65xLtawsSRbRnNAdhtjX02x/qRsh6/8GR8bqRm85SUpC2pzHYh0mzsR86zyzVMbDvlD0s4z\nLx/kxMw0AFNFgVZiaxjJidO0Pp9n6PVecY3/5c9/HoBfff1xoppMm9ZonNSKPfLERS78ntTkCwuG\nKFB2iwOu5tUZ/sI56cfmXpxQ+fUzAetHe9OwcVB2Co3TqSQtg3VIcrs7C1miCbXsPEOkn7A10aE5\nGwuXZSC3JNf/7vsB+Oanfik5V+9zanYtYugFE/kY2l34o88yd82NVrZ/E2gFYDuWM1kT4XLjzirC\nkNJzWdNn7dukJAHpPsgnbZweBx4SB66Loam89sRiNzEPalqS3//sL/P+/T8JwM5/+M1vH5h3udwW\npT50LqYy5+BfFOaIdcFtqBLaSIOvwSgdcEvyY44jQ/qgKp+vjROUtdjETEzphLxGfQrS80pN3NVN\nSWsJNcWuiXtVftymAYVcCGHomNALV68Mk54RWKZZD7BanMHf8Nk61KVaWqwm1Sr6CjOsF4gVrrAj\nIRtHdWEIYlITUjCjvpqjowWXK7ttgge3FnLJ8eutnXjdnDhjbQil711YZO39Ls5WNyrVUnpZoJPa\nTouvQUEYl8ljwmxZf2aKlqORoweaNC8Is2jywBrLFwTSuXSxh1tFQwp3Gcj+OWlje63Ev3rtcQAK\nX8mx8ZB0dujABhtrEq366uk5cjqbwoJNasgG25bqTk3D+wMHASlSPfyajMnm4VTy7oWrMY1pL/lW\n3Tw92/d0KJ7UWrEf2qD1wkjyHE/nBOsZjDeAX25Vzv/yo7z6o8JucXCT4J5+6eLh/Vh4jE1oQr7p\nUYaa1pA2PRglUfimdyzwiuYEMtDs5jXqg1BaN/mEjrYvxz0opmYt6T5oZ1v7mzV9+WS0hz4OaaOR\n2hhe+pRg7UfH/hb7P31nQTED+GUgAxnIQO4guS2W+tq9AmU0xVDEiYSXDIAfUzwh1mccWBxHQ+ZP\n5Ni6T6yJdEgSvGLaDrllWaHL+1y2u2Hwo2LZxqFL5W499U2f8mHdotUcHjhwGYBLWyMUUnL91pZL\nsyPOv/SKi71XLMFd+xZYrcn5zcvDpE/LLmN9QsuppWOyowJdxLFDmJW+5jNtcimBSxpRnpqkrCGz\nf5vavFi5/qbD8AMSsr/9zAShFswwfoyjKXwbdbn2gYfO8+Jrmqc4HVF9VNqendhg5cszAOSuG8oH\nxTpv72uQOamx/DNVWlpEpP6FSYbUVCo/IZCM53fYUZJdyvzJSXyFk+Kqj6lo+cAfXsbflL5snxnB\nmdJasedTAvsA6SWPnHLJU9sRGc29s3qfTLeR0zGNGRnLYNuyfbibmdEh2NCMjkdaeKsytkOv+tRm\ndec1XyTQoDVjwfum7DIymV4Rk4F8Zzn/y48CcPKT/4zI9my6rCPzrBK3E+u7C3+4iLOye9y9K+47\nThubBA9F9AccQVOfkzYxDt95N+X3WfUhhkit87TpQUKV2CGnOiHn9PjrzT7IJ6LHokl2GNZS16Cp\nCJvANq9+8p9wr/nbAOz/iTvDYr8tSj2eaVJx0qQ29KNt2ITBkt5wWb2vh4dzWbDrKABzXvOwFCHW\nhFD+pkND86kEm4bWWBeE1/YKLZrKlOmvqhQVI156WTDgu++9wmhK4ID5zkzPo35fmfi0KDDev8F4\nTq5pXR9LIikzS5qH5e4WB8YEwrm6PUR8RjrVORSx1tAcsha8o6J5Go2A3FW5t3ZXM0lna0pxEjmb\nybUId8pPa/+UKP21Rj4pTG1GmuQyolSXvzpDVtkf1oVhxcYBrCZoqV8tEBdF8datlwT9xOsyPsMH\nymR9WSSO3H+FxYq+u2O5+2GhgZ24uoO4Wy80F1N8XtruZCG1qrVdN0mCiDpZJ8mnnruuDKMxh6kv\ny1it/cgkI69oMIlHQtd0tny8qgaiFHu1asdfcmhrFaZOxlBYkPdZvddLWEsDublc/3vv5/Qn/xkg\nQUC+Mlpi4hsoiV3p2ln98MsN1EX7hq1+gnvfCK0E9CCXSM9HVhQ3iMIFUcrdBcA1Ftd0I0p7yLyD\nTdpovmGB6PYl6Ms90z0XYpNjF5MERMUYzn5SmD/HVv4mO//Rux9jH8AvAxnIQAZyB8ltsdR3fC5g\na5+ho0E+zRGThJhn1sBt91ba0eOyGnfSPcilPWwZe0CceJtPTyVBTM2JmOy8rFPthsAFrbkWnhav\naI/EGK384AURpWlh31zaGOF0S/jrOx5d5Mp15YRvZph5UJ5z5swMpqOO0L1hjzM/Jlu6D+y5yNdf\nlaT+2aseri6Xja00pin/SK25BKeEzdI8EFOfVifO1RR/7Ye/AMDvL97N5SsSy1/fzOApjHPqsjBV\nTM3DmdViA9ezbButdrS/RScvFrfpwNay7BSCsxmMMkTiYgd/RSsvLZmkkMXafdK/2lOTLN8rbTt+\njF2RG8cPrLMzK7H+V0tDZDWV8ObXpnDVs1U+FjLxh9L2+j1g1OIqXYoS1lKoG5Z2ydLYIykSTCT5\neQDaEx3QMR4+4Sbc/a1jHbLjskva8kuULkq/C9farDwgcFJzJiS9Pgg+uplUPymQy0uf+pUEFmnZ\nTuJMBBJoIqZnjffDL7W4G6bfs7ZTfY7SSuyS1juafQFKoSVhuYQW2jovAhPj02sTpN2gD2rpimsi\nmmqtByb+NgsfbswxAz24qF+6vPgImwRRpYyXOIm/8jd+kR8+/2kA8v/p2W+7/90it0WpX/8zMcQx\npqWaz4HpP5TD3PU6G4dl2x+WLJtHZPBHTloi+V1TuG5ZGBXFO7zWSw7l1Xo5UrqSfT1NU9P0xsMd\n0hdFUXUO1Qk8Za48O0Za275yJMXQK6Ictu7qsPqiBNow0SF3SYOCRh2Y1YrYNbn2668epnBW/h49\nvs1YXuCPaxfHcUYEU2imPFp7lfa4mEoSY/k1w6+flnwbxlhcLexsIkNHk1c5uW6V6DZRRZN8rTjU\n56QR49okr42zu85IQfrXbGboqFL3Mh2ilKbkrZBUCspLYSasA+nzcnFzMsLRAtgTuSrHN8QZsLWR\np3FZ8fqjDUJPfRSxkzB+SuehulO3zlMeniJB3ffNX4PLn1A2QzUmzusfXMvwS91kNtAa1fHZcGmq\nT2HyYsz2Xk2BfLaJVWbP0Cs+w+fv/Jzab1bc/Xv4P/7hryf/Dm1/znMt3m5tkpOlPxq0C3qE9DFU\n+qRuTaKY0yb69guA0Dq4fX/rKu22dYi7edaTvC72hvu6bUaYG7D47iLh0INwfHNzWKaL0WdNL/Ap\nMIZ0H10z1uWg5AT8wj/+vwH4B6984l0beTqAXwYykIEM5A6S22KpmyAiezJNWOwG4lhCzRuy+ERB\nanMijs9uiHlmpY3XENth85DH8Kty/eZDIelrAjuMvxKzdkydbpo+N7tkk+LV2XNB4uCMQodKU7fu\nkxGF85pbZNNLClnkL3sMf2QRgK0vTFOdU1ZKBPG25pnQ3UZqZ5WqevB25ussb6mT0Y+JtN+5sTq1\nbbGEp+5f4tp1MUXTd9X46wefBuCp1aO8uiztOMUQNCNiWhksUcYy9rBAQrXpALso7I8g1SHUNLxR\nNWCtIv079PErrFQF9/jgzAU+f1aKmpb3WdqjOrgKT2UuppKC0cWzLpU9Mj6vl2fJT2mN1Mj0KhhV\nfP7Ug6cA+MOr+2gjfdw8FmM11qAwUaX12tAN3yQ/b5NdWu6aQ+UuZc1cCajsVmtqu1dVqXBZ8tYA\ntIYsgVLT5z9aYuZrsg2wjqE5pg8YiAQaAOlfq/JEWgLkhIkS6bFNQv9rNk6s8n4rz+1zjrb6IJeu\n3Z3us46jPsjFv4HLHiXWtLSlaR2MTeI6Qn1qKzYJjx2gophs1ukkVn1Eb3fQfVbS75vsJlLdgKi+\nd2tai5MEKvUqMDnWcn+gc/FfV6g9qTe/y7I73hal7niWTlbS34KkxG1pEOXIyTbXP6KBJm2Dqyla\nr384oCQBiVSPtEhfEYXjrfkMn5KJ0OmLRMhd14jTvZDTQij1GcvwXcK6aF4YoZvM1606yYTIXTeJ\n8nbahuvnRVPaAx1GZgRX3lgpJthvt5pPcznHvrukVtyl5dEk3a6fCykpFFJ+eRRnj2jNxZencGbk\n+KOzZ/jdRckJc/bMDvwROf9DB09wpS4rzIuBZtfqm1+1U8M89MRZAF64sIuDs6LsPSem0ZExPHN5\nmpFxYdxcrw9ReljyvaycH02iaIfOyP/XPtzErIli9BqG1Jr+2EahdUZ8AdOvWCoaTBTORDz1FSlP\n5DYM0S6BazJnUtT3Kb7a9Im0DGCXzVLb4bDzKfnxWCfCbckzt+4LkyCjTqYH12B6xbG9BlR10fXq\nUN4ti2S7YIgyt5Rx9z0hi58WOO+be3tp4vtT4LqmxwBxeUP0ZnLcCybqSt2aPoy8N94utkcp7MPO\n0yZOrm9aN1H+oQW/GxhkurlmTA+S6ZvoTev2rsXewJDpKvWYHtYvf+u9T/fv3f45fe+G6fkQQuIE\na//1vb/LB35Cok6nP/vuYsQM4JeBDGQgA7mD5PZY6lfTOB3IrMjqu/rxFpnXdOt+MCC1X7aL0Sul\nZDtuXcvaQ3JcfDWV1MZMV00Shl7Z14GM2BzBlmI4RypUVoUh4o02kmo/Y/s2WNOQ+ThlqT0o1nHU\ncJmdlaQjj01cSopJr5TzPD59CYDfL99N+oR0oHG3WOHBuQzrJ6SOY+pjZVoaeu81YH1ErEk7ExJc\nTifj4GqahM+135ewUoIY2r70/b9fPkrrvLQTj6sTsOWyoDWQg5bh+ZOaMnXTY6Gkxa7TLRpar9PZ\n9qgXpL3NVpaNsozFkw+f5NXfkKisZMe77Sfc9fZ0mNRwtb6lcECyRS6nR/CquguZD4SxAsS+ixvI\n2DsPb/GBKdkePXt1N3FKLcI17VMbqjtkd1C4FiVWuGk61KfUadYigeeijEMgU4KNoySVnKaftpR3\nSzudDLSHv5058V4Ud3KCf/4p4V7350ZxjMFXOy7CJuyRuM9adQ3Eb0AbmtZNLOe0iW+w3LuslILp\nJKH8LjaxuLdjP9m1uljCxIKPqGs61iw6h75DavvYmmQnHXOjQ7UrUV+QU8GJvy3dQMrcmIemy6OP\nsBSc3l+SOqsY/umn/h8AfuE3P/quqqA0sNQHMpCBDOQOkttiqXs1Q+lCTKRejOn/EjD/MeWPb7k4\np8TidAzMPSVUvvUjAZW9WmuzbpNwf5Pp4C6KJRpsuLS1SEbtfqUctj2CcXGmtRdzrGsNzh+/7xn+\n7dkPyjXjLcZHBHdeOTNOPhBs+FR5iiuL4sy0ocPvrd8n1xupvQlQzIuF33IybGoRD+dKISmD1xqP\nexGgW05iCXsN2PfD4iRoRj5PPizHv3byMdhUnLjl8SMf+xYAv31SsOtHD11gvib49srpGdyKWqpj\nIZVlcYjG405SL9WZbPLEnFCzHi1e4J9Wvw+ARuSz+bBY/+N/qE7f0RZsy+7BX/UTy3d0zyblmu42\nXEt2qRcBavfJWIVOwLSO4cLyEN86J2Xxpu9dYn5BdgfdEntNYPrrMg4rD3pkFzWCdsElvS7Hm0+0\ncJfku+78SoPL3y/P92qGzqT0e/EJP/GXNHd0cJoDGwXg1M/u5h5f5ryPl2QvjPuiSJs27KUD6HME\n+vTzzLt89Z4DM6bnFI2sSbDupnVusKD7KY5dKz/E6cPjHbLmRgvd7+OuN61zg9O060yNbY/eGGMS\nuqTfF7latybZEXTbCK1NMj02raFgelz87o7FMSbJTBlby72BeN1O//09HPjUu8dS/641St/2Bxpj\n5/7fX4Agxt0UBZtZdpIteH1HhNUwea/Yxs6LkslfNUnwSmNHhK+ZF4Mtk2Tzi7MxpiQ/+Lwq2/JG\njvywTPB7JhZ5bXUKgObpoSRNQW1nhDMmyikqB7hFacPGJqlLWsw1Kb8sCj4cicnPiALr1iX1L6YZ\neV2zCu51qO/pI8xHvTw1aKHqfLFBSjne1UaKuREppJ3zW7z82h55t02Xzpy8RzYv/fPdiKmC0D9O\nnZvhoaOisJ8/s4dHDsvxcr3Aj8/KYvCflx7g5BUJXBoeqVLQPDSPjF/md87dI+9zXdg2e++dZ70m\nCrh8dpg4pdvmWm8xclu9WIDK0TZ+XtrbNb5JVetCrr4+TpSVH9OH33eSr5yR7IxdXWFrHsPHRbls\nH7R4ta7TGYrn5ZrY622520V5LkiB8G7h7U7OJoFNuaWYpSdirv71v3PLNUrfbrndNUq9nZL755e/\n8VuMO98eaOP0BRu1bHzTAJ3Q3hgMBMIFr2sQRKpPWffDJf0KuV/x9zs5+68PrZNcU9AJFVmT5HkJ\n6TlkI3pKGiRtb1eafef7F4d+LjvcyLOP3vDaXX6Fawx+0kYvrW89jvhrj/8YAJ1r17ldcqs1Sgem\nzUAGMpCB3EFyexyluZBSqc5WTRx+jXsbRHXpyvBLHtuatzx9PpukEmgNk1iOuSsuvjrrNu/tkFoV\nq2/4ZUM7L5bzxgP6arGhuiGNTMxVqF7VnN5zDaqTmis9E9JZkR1BYa5M9ZrAPzYd470u50c/ts7G\nbs0kFTlUloSH3t3ypzYMKw/qC5o4iQqNRkPuPSQhm6OpWmK11qpp5nYuAbC2VORCW1IDRG0naTN7\n9ybV0xJO39Ak68HBDdbq0o/iRJX5akmfCUs16fdmPcP/+cL3y7sFHfy0bHMfn77Ef31drPPrx6cw\nuoOIS2L5XN8YSpKfZdcd2sMyxmPHLdt75dqgbJMCGKkFn+GHZIdx/sJUkgffiw0js0L//Mbnj2HH\nNUd7Tv4frLtJ/dPUupPQNOO9dbjQ5eND6aL0a7Pgkl+QtrNLbfLzGtPwWIpI/eGxaxh63UODY9+T\ncvrTswDsdP0Eckn1wS8gFjoIV7trsb4xAVdXevCMSSz0fggl6remrUks77gvAjS2hpa6KB1jqSfc\n87DHWe9rb1v/7vTx2B1jb7imm+ArbaIE8umnOnavk/+TPOONFnpXunvqZmzJOd13jkgrVFVyAk7/\nhJAg9n/69lnqtyq3DL8YY1zgBWDeWvsDxpgR4D8Cu4HLwCettZu30I7d9c9/Ea/mEI7Ijzy15JFa\nV175fS3Sl+SXauIeVzm7bEltK1e1FrP0qHx8twl1zWQYbDhJDpnulr49HBMNy3OGRqtMFwU2OX1t\nigMzgpMtVQqU10RRTs1ssnx+TNtz8TXQpXasmeDUcd3DqckH3/kV6dP8k33bQB8yijt7TRLeux1t\nk84KXBGdLlC6Xzjzc8VNXnpFMkaml10aO3RcxnpsnaijP4xraWYflOLZl+bHeHj/ZRm3dpprW7JI\ndjouowXJe7BeyXHXlARQzVdL7CkKi6Udu7xyTSYqC8rI2dHEdhV90yN7UQazNWKJxqTfzpZPoNBX\ne38DVuVb2ZE2aMWozIJL6jFhEG1vZ2FdrokLGuzkWFzN0xKnLf5Wl/4C4azgLPlX04yckp+bdQ2t\nUhfHNxQvyzUXfsxLFoShEx6dHJz8hU+/Kfjl7ZrX2tZtg1+MH/DpU1IM/clM/Q3pAHoBR11xjbkh\nn0uXz53qOw5vwkZp9mVM7K9c5GAT3Lv/b/3QSWhd0qZXjMN5A4sl7ls8AhMnrVWslyj4lIluyA/T\nnwa4P69MV9rfgdPeL/38+q6kDUkqAd84PNsS/fCLhx/AhrcnHcU7Ab/8b8Cpvn//DPAla+0B4Ev6\n74EM5N0mg3k9kDtKbgl+McbsBL4f+AfAp/X0DwEf0uPfAL4K/PSttJe74lI9GDL9ZVn1lx+15K/p\ns6oeOS1J1xo1NMfkuF2CKU2cVh/3MLpnSq9ZjFqx1u1xm0eeEGhjcbWE+oz4s7tP8MXFQ/IPC7VQ\noIbyRi4phbb26gR2SBMJZSzFS/rMtYBgVqzfjmspvCJDd/UHdftXrBNfU3gGS2NGE3eVHbK7ZXew\na3iTC6uyC2iPRTTaYq2+9PI+0LJ9E4eWuXJRoljTTxdoCfpCZ0jsi6F71riyLA7bXTvWuVYR69x3\nYsITAsWEe5rUAnm3dBBydl2gnVyqzV+ZlHQEf+vFv0D2BYGljn3iJADfeO0AxQnx+JebeRpTWoxg\nrsxwVthE11rjtNWpbDsO2V2ylQlDl46jjqWcy0RGHLyPTl/hSxcFcnJdaW+sUONaQ/qUWewl/Krd\n18BZkl1D9ViT5rhY+OkVQ2ZNWRNZQ7skYz/zRUNb98ubRy2doW8vyfZHyds9r2+nbP7YA3wkI0Ue\nqrbTly/8xqyLN8uL7nBjfdF+eKMrXTij/1zXeZq0Y3qQS79TtGu1u6ZD0/bdo13wTZRc1+Wux0TJ\nM31iQrWaQ/rgujck+upKf+RqTncGbeswpJuMSnzju3ctW7/PBg77+u1g+WBarPP//X98H6V//ye7\nmMatYur/BPg7QKHv3KS1dlGPl4DJW32osVA85bN6vwYW+XHyw85fcglqMiG3D0CkOLpfMUnAyvbB\nGF+r3NR2GoEBAO9ymokX5N7aNemOvSsmd03u+03zMEG3CtDBJitbQqcxjsVb0vD4miE4IMq72Syw\n+kEtYJsJExjjzNoE2wdF+bh5UcadlseB98nKdPbcDkyo4dDTbfy4hw12f0u79q5wbUU0dnrFpaXX\nHDi8yvWqMHQqu2PGX5LrVxWvrzZSlIrSv8sXJvGHRHmG5RRBN0Cj7Sbb1UK6xYemhC75+etHeLmx\nG4Dp4TKbH5S+Lzfks+bG6uTTorCrmTTBdc0GeaCdVEFyqw7+koxh7FpsQ+ufjsZYDZB64MDlBN8/\nvr6D9LeUavmk4OzXT0/iT+g3O+8R6qwKzmWSQKjUpXTyayvvjZPcLyaC1fvV/3I6xtMok+FThtFX\nam8WU39b5/XtlPqPbNOwPVigeZMQ/9D2mB4YQy6BHXpKLqLHLukqd4e+ghWxl9AE+3HvN0pbP15A\n3FPOJsbvw/dDbT9Rnsb26I997JgYcwPrpqX3+SZOIB8X27ve3ng9QM6Jaffp//40Bkl/IKnelDUm\nGcGam60AACAASURBVLt6HOE7Oiaf2Kb072/6yn9i5LvCL8aYHwBWrLUvfqdrrADzNwXnjTGfMcbY\n7n9vvasDGcitSf98M8Z85jtc8z3Na21jMLcH8scqtzS3v5uj1Bjzj4C/DHSANFAEPgc8BHzIWrto\njJkGvmqtPXQrnbr/f/0lvIalMqur+TZE6qtLbVnGv6Wlzh4ZSyy3zSMQjotl6a37ZFZ6vOm2GIW4\nLcgtyg2NUa11uTtOWDPEkN0p8ILrxOwbkeeceGY/dqdYjqnXsklJterRduLQC7YMvuZcrz1cT3Ka\nZ9SabcyGjD4nFuT6+yJyV+W4XbTJ86NczOweKUu3tFHE14xw9dUcuYla0q/KvNbdvO7iPiI+uq5/\nZKa0zaVV5cs3PfIltXidmPgpOV8+GGE1k6JbCMlktV7rc0MMPbmUfIv1ssBFrUoqGdcDD10B4Ozi\nBJ7y6Dsdl6gh75M/E1C8LGO8/JChdHhd+21Z39Cdz3KKwuWevbB1nwyo0eRnhZfTVO6XHcbO3/ao\nzErb24ci/LLmjw8Nrb2aMnLbp3hWrLN2CdpHNLBsIc3ocTlsDRvSGzHP/7ufuiVn0ts9r7XNP3ZH\nqfFk7P7e2Re4N5Bx6S/XVutP4kWPDRLTs0qbfSH2/ZBGq88p2pU3slKS4hXEN00HENFjxbjYmzJn\negFCzg0QTv99b3Sqdq/vttHGSYKPHGMT2KW/jV4ysV5gk4/9Nl6+9KmXVsA1hryR0TobWn563/t1\nEG+eQ/6dklt1lH5X+MVa+3eBvwtgjPkQ8FPW2r9kjPlF4MeBn9f//86tdq6yG7AmyedRn7E9nMw3\nLH9QceeioXpIFULTTXKRuCEJyyW9bqnNaDtzEeGjMrFbC6KwbDrCaKEJm4+ol2X1cPyYK67AH6n9\nZcLXRZF2MpZwRrHfp33Wn1T8uJJOgmGicoBT1zwTV6Tj2QWPoKbH17xkkcotGJoj6rlfc1jS/Cxh\n3U8Cm8ZnN1m9Jn3JT1YpaGBTJS7i1EXhFnKi4M4vTuCqsjXrAUNTovRrbb8XcTvWZGZMoI7L5yap\nbci47frwPJcvCJrgFdtJO4TyLp18xNkF+Xu07bNzv7CDrp6ZxB/XohujfpJdM3fdsI0sJON3r5B7\nRWCZytE29Vn5bq4bk3lV3rkbOVrZY3E86evi4y4pWRdIrbkMnZXzWwcNhZdlEE0kVEqA7Xs6uH1s\nna2WXhNbto/G8O+4JXkn5vXtkPBJye55b/D15Fx/YWWXHmUvtG9geuhxxXpJgBD0gniymve6ad1e\nhCZx8vd+6KWNQ46eIu0qYQdLU3Muh0DOvKGKDSRt97eB6UWi+twIs9S6uLt1cFV5B8QJ5JOj823w\nSt26PUX+hupKUc/m69U0tRCoMy5r3IQWuseHzvdJZLn3pe+4ybut8r0EH/088DFjzDngo/rvgQzk\n3S6DeT2Qd7W8qeAja+1XETYA1tp14CNv5aGxC5lVQ+GaZmkcNnSd4lEGYs27Pf5qG68hq3x92tLR\nvNxtH6KC5rPwPUxHzs/uWaX+n8TJGOTVy5/qcdebE5Ba19wXMyGdnByP5WtsbAlzpLo3wiqLY+2x\nDkZhFve+bQrKAOl8bYrW3eLZrc4Ig2TyxTblXcq9TkF2QdrYOmKJi2JNjDzr04xkHc2UmjQ2xLLd\ne3Cdjz5yBoDTlUlePilpAlKbDkP7BC5aPyFsEetb2iVN5D9bY+G4vK+dajK0Xzjo9WYqscjzl7yk\nFupWPQP6bql0SL2qAU3Dsgtol1PEWxp8NFXlygVh4QRbDmZToZrZNmsjCpstebgKVW1WsrR3yzcZ\nmyyzdl1YOZl5j/Sqpn1o6NbaNwl8ZXIxuRNqVW1GrN2jsFUppqnsm6ETHqtPioWXKTbpFDTfzVoa\nXx3SXh0yy28t+Ojtmte3QxYeV4aQ8ZLydKHt5QWPDdSV7dHPQXcNSVbFnOn0FZDolZnrDw5y+0rL\nJRax6dzgceiHXLriYhNuum/im14T9sE8TXpO0GQn0Ac4ONiEgRPekIHSEvRBTV2uerMvB0zUt7Po\nvmNIb0eQNnECxfj06rI6TpTkhAFYeELGfO5L/ImU2xJROvqapTFqcFQZD5821Kd0IvkkE2XjcJBE\nDBbPQ3tIrrEGzLx0vTXS+7DXFv5/9t40SLLrOg/87ltzz6ysfenuqu7qFd1ANxobSYAgQYjmIkum\nJWIkezQSJcsRo5Fki3KM5FHYoiNmLNF2iKE1JibscWgsWeIicRVFQhRBLATRQO/7Wl37krVk5b68\n5c6Pc959L6ubYlMG2c1GnggEsl+9fMt9L8899zvf+U4e8fcRxS6bJAdcuNSPgTfo73o7fHmMlKOw\n60oygSzDt1KTsLhJhbOcwK6DVOizUMwqOVvxSAneJjnk2NsJl59P98LpYYZIxkE5TrCAVdLQ7qPt\nrR4L1nX+3sN1NHTeR3Ox0qJrWamnQ8rCvirycZo8CsMsflI2ocf4eCsJTByh61supbHJUsIAMXoA\nEt1KLHKzi408sI2c42TvGi5cI9lea5WuI7MhUXkfTSLZT6cRZ3qENKCqSM2yjepuZvyMN+G3aExH\nMjWsXyISSXW9Dwzjw2gQ2wkAVt5BN/bUkcs4vUKYWetcTkknrx3RVL/UHV92MPNBcvxSBwyWJnYK\nIfwj+yW8fZSLGOwtYemNYbzVTDxIUF0zQmPUIdCUAdQgOqh6AfulLtHRQeh2hUZKoGuL446KcgXm\nQXQIdFWCNlcdOi06mpKeY0a0Ohz7Vqv4VkehUoDd+5FJxZcaTNaN0SMMHVOEjJsgL+DJUJQsWjRl\nCh8x/l7F15Hl621GoCofoeiXKTRoD5a+7XXfC9bVfula17rWtfvI7kqkXnhcIr4ItNLMdHAlmhxk\nemkf257h6POL2xVEs7FfU7BI/pJEbThUaXS55ieXr6G0SXBIY5OlWh2B1R+myNu0XDiztLNftDG8\ni5gom7U42hlaEoxMrGF5jVu37S3g0TyxQWbXDqPC8rPuahwiQxHCxiJrrwy3Yc1TdOI2NNibNM3X\nd7chNhjmKElU+D4rl/LoP0hR/vmFEfTmKEKutyzV99S7mcJGiptwTNMxeh4tYLVIEXF8QcdsnSJe\nN+UBMQ7xLR/vPXgBAPD8iUOwC/SYey/4MOoUKc2NZCG20yrAYxZMdZuAcYKOXdwbKiPWxzwk5ini\nqY94ELxSSKWbGBqhldGNlT70HGXW0nwOGvP3jZkY3AQ9t0Br5uVT+2CvsupfNOgRIQtq5oMmkhP0\nR3++BzGWkWj2SlT30rH7XzHQWKdrnx+MI38Vbzl778Rl9TmAXKjxA41vU3ohq0N08tY7dF5USzet\nIwIPLAqbBJGuLbwOhkxQOESJUv+W/X2pIcaJ0nYknowWHwXbHWmoSL0uDcVsiR4vpjkdq4YoH967\nDUkkgHNMESZ7o1F7WgtXFboIC7W2jsYHJqhY7+wtZ7g37K449dwFDfENHyuP07/Hvu4hvkrOptLj\n4+q1EQCA2O3BjXOBQit0CtHuN1pLKJ2XyrUcJOvJ6An6f89wCcVzxKbRSgIjF2n73AckFmeJuSHa\nGnQWr1q+PIDJQyTac21+AF9sUHegbKqB1RVy4HpTg2BWisvYPlwNVolxzF0NNMHFSUUDiV3knGpD\nJuLHiPZn1iQ2t9ME5HmactQHR5dwjXF323SRtAi0LnD/z+WZXqWh3jzQgKbzS1m2kLpOj7P2YBOn\nVknX5ejBKVx8nio6F5/xAZ/G7SfHLuMvrlIWP9A5N/qaaAdMoaIFs8LXsaqj2RssxQXSTKPMxpu4\nOkvYff41C+XtBC2JjA9Z5K5JO+vwy/R5cpLolDOrPUie4ebabWBzHx165+daKO+gcWvlhWpYnd6U\nSC0FHZYEHM6FtDJUUQwAtQMOSrvfeo2n/3HPcfU5ijHXI9ovAeRSkaKj8XNQCWeL0HFpkKpwx49Q\nAANLiLAJtL+F5RKIdbWhIyna/F1dTSRahHVCtEeeECKwiK+6FzU76Ii3K2aK0hSBTvpisDlg9WjR\nyWXLd+zblCJo6KzE1SOyxR/ueR0AcBaP3vK9e8G68EvXuta1rt1Hdlci9doo0M5p8FiKdfb9Gka/\nHkQWJuLMllh9zEdjmLanp3TVl9Q3qZAHADRHh8Hyr/7ZHJIMgTT7KWqo73fU1NXKS2zsD2g2LvQc\nc+Bn4yqZN7B3FVMnSMJUDDdRXaWIslEyVFQcLwhUJ2kZaXKjj9QMVOTjXEtAcKMPp8+Fy9o01vEU\nWo8TzNK4mUQ8TuevrKRUFNtr19AzSrBIzbXg+syWuUwRbGPUw1NPnQcAXC4OYKVAqwc734DzGA/h\ncgLOMWLLnHpbCjqzhkRLg9amiGO+mVNaLGKQO0MtJyDy3CDEkHDGaHWQf8VGbZhlDN5zExdfJ3ZO\nOecCzD6pjQIGs5aEq6M1SM/WLcSR3kErld4YJTWvV4bQToesFZ2T1CtH4+g7T+dff8iAZHygMgGY\ndRpDoylR2smMhgogeMzj6Sbc3bdyoO9n02KxjoIjUzE6ZIRvLVXBUU6DSqA6MiyVb8uQLeJHuhwF\n2i4dCU357XRgTLXdgqei8M7vRkv/w+g4CoHEIkVDQdTuQHRsj0Iu0aKkYP+Kb6rVRkcBk9KgiRRH\nSQFWKIEJqZKjOkKVRjoOR+3Sw26usdBiMfjNJu41uytOPb4q4CSBxAw3nl2WqJMPQrNPwk3wg6hp\nqoNOddyHWQ4pToHmeOY60CxS4Y5MSwQaQ8GK0T+Zhc6UxvaOFmr5QLlIU5Kz0pCqYnN5qQeZPVS4\nU9lMIOiBlVwUaGfps/tYBbrDImKsmy48oP1+cl778uu4+jWW0r1kIvYeOl7rHUWY7KSb25ow/5rg\nhcR7yyhUCJb58MgJfHrxKI2T4WCa7809TJPBhybP46WlSQBAo21CK7D0bduG3Emvp9bS0GaoH6s2\nRo8uAgBml/PwqjQY1zb78dT2GwCA50+SxnpsuA5nmq4juS7gJviHaQpFJz13eRvSS+xsc0RZBIDm\niAfJL7twNQiX9tn+FQ+zP0zMnuOck4AngHfQmJRnMsif5cnAB2Y+EOjgA4OvMy0tp6HJNEq9KZFk\numhpEmqZLS5l4GTfWo2ntf4+haMDYWcjTUoFeehCKBihLTs1xQO2iCM15eA9CGgR7BkAHN9UuDcQ\nOuFmpKBHE7760VEVKf8+RavjmtuRIiJnS8VqVDddi1Simltglq3XEdjt9vEjcFO03V5w3Z4UHccJ\nKJ9pXUfdDyYGIMkOPto9Shvshz8zd8s577Z14Zeuda1rXbuP7K5E6tXtPoQrkKN6GzT7hEp4pW8C\nTcpfQuphwmPgGBSfuZ3zYK9xAUocqE1ww+e6ppos2DcYrhhxMTjORTlfG0AtaFiRb0OUKMo1ywJM\nn4UYdZXMbLNl4uhu6vv5mrsHkrVLdEeHXKHjB6yMVg/QukLh8ZnBOBJB/jQJlE/08WeJoQe4MUfD\nQmk38/RtB//LBOkK5/QaWi49lvcPXsAfzT8NgMr2AeDVzATWmHGj1XT43LwifdxGKUPXlCwIcIU3\nEksaZno5ISykUo9cns8ja/PSkSOY5mYMo4dWAABrrw9Cb9K+pX2eUrqsj7qojXGnqZMGig9yVyNH\nqLdJr2hIzfOzygqYzAQyZwk/2/PBazhzglYymiNg1un8S+/yVSFU8oWkuq7yLsDmNhVmVeXVIDVa\nQQFAz1UHK48GaiZvDZOJGLRIXKY+ibDDUTsStTuSkqIA0JJAgse3BS9SVu8paCIqA6DglFtK7Jk/\nLjUFkUQ1YTq6I0F06LNsPTYQ6UIUYb9EI+no8ei7YeRvRiCXQFZArSS2RPXRawrGLRYJ9Fuy8z6j\nEXpgMhG7Zdu9YN1IvWtd61rX7iO7K5F6ck5DfM2HwxWLrbyEy5/jyxJOliPYfRtw/5qi3MLjPmSO\nxbWauupo78UBe4VxbR+IT1IyrriNZv8je6dRalOEuLLHhV5jatRUDD4rGXpxqSJ8DUC5SRH8+ycv\n4sV5wq+1njYkt27zdAkrkDJ4litOT4wgSxA1/ANVlLhfZ+xCHG42OI+P7WkKOZdWs8jtpRXEb+z9\nMj5+/R/Q8RI1vG3gJgDgSn0Qj4wTT/7YJar+XF7Owcqy6uJGUkVTpb0eJDf6qA/72P8wfW+m2INE\ngJHqHpL9hPt/YOQCrtVJBqA+TsnltqejcJooim7Oh+Rkb+68gb5ztHpZNOKoT9LqoPFMCyhStGKu\n6WhzYxCxo64UON1TcQQlifX9dN2XVoYgBuizmImhEGGGOav0rBpDAg3uIas5UMqZzT6BdjaQHRCq\n4tgst5G/+BaLUbRIJA1Pcc2b0kdFBsnMcHczIhOgIfwcbSrhy1tx5zb8W6owga3ccE9tr0ljSzu7\noEdpJPqVYaI1pqo4O1vlRRUYo9ujapDRtZlKhEZUImNa0MovbK6hC6lWLB4kKqoxh4tEZLwCGqMZ\nGRdbRFym3xn93yt2V5x6s1+i3aPBolwZ7CJCHjSIew4AG9fysPp4ow88OEH88Quv7VTyAF7WhV7m\npV7Kh8WJyJ5BKp/enV7Fp14jWkhysAb9ZYIu2hla+gPU7KG3lxKRxXICVeagf+GVR1SVs9/jKGaI\nkIDHsrDrNeKaSwE0+nhi+mIe8V763BjwFb/eKOu4/CdEyhaTEhssW3Bm+3a0mSFzfmYEl01yrP5C\nHB5380nmyak6jo53jtPscSI+Bp0LsqqzfWixHEG8oOHiNHH9pSuQ6KHvNlomstyR6HxlBMfeIEVZ\nP07fS8yYYFUCuE9V4VylBGd50oeTImdrNADBTBR/OYV4nQteElKV8h942xyO5CiB9MrQLsQNmoHP\n8zU1V+PQudOTm/EhbU6wtjUIZufEVyQkOy0nDZQeoHHY/iUgvkQTd7s3jpn3s9zxwQQMVuR9q5io\nN5Xjqft+R3I0EUykMipx29ndpx5I6G5JRAYO0Y443WhyNMpbjzr7QD3Rgo8a45lJ4Si8LOrgdeHe\nVuI3cPCm8JWT3zqhbE2Qbr0W7TbwTFPqIVtHAiXeriGU6QWgJkNThkyYtKYrOMaEryAv0exMAt8r\n9hYLbbrWta517f62uxKpW5sC8u0ltM5TJOjFgNQswwh7fGR2EUTRns9SshRAakbDhTZBEEZdwOAc\nX3t7C06DomW7oKPG5f5BU4fPXH8CSNIMvb2niOuP0XZ3LYbYMEV81msZNF6mJYFlAo0JisjNgQYy\nX6djbxw0VUTZM1JCqUTb222GfnbU4NeIDljdBmRucKXjuA+jxJHI9gY203R9Bw/OYLVOHPg/v3oU\n3nWmEu4roTFF4zJyaAWHe2l1stGmfWcrPVio02pjczoH5Fi9sA1M7KMubHN9OSRO0fEag75SNZzo\nX4fFbemW6hkk55jXO8k67HXAYckFcTwLBDBHRSilS98A8mfoextHfLT76LtD2zdQaRAU40Pg+SVa\nkWzW4mjMU7VskLzV2gIOrw6GvilQeIwTr+cFHFbX1FuhdMTA8RZWBI1bYn4Ta0eYrykAyVz7Zq+G\n21S339fmr6wqumJURbDie2GDh2gUHok+nYiglx6hEkbL66Nt426nqpjVWkoawBQ+nKCiVIS66VsV\nG3GbtnTRatHA6r7ZkXhV9xzpf7q1nV60hd3WphqxLe3topICwchR45BgTCJNMiBgi4CuKeEx899f\nWcW9aHfFqQNAYzYNi2EJrSWxeZBhhoEaSrP0o5WWj97HaOCWrvcjvsiMl6SEscFFL6txJLcT1FLd\nSCBxnpxtwFdv9Xt49AFisLQ9Azpzqb2eNnCKnKfUw/29mISZZKd+JoX1Rxm81yWMOF3jWLaEkQyd\n88JlLlRqC7iD9LCtdQ2b++lrWl2Dl+KXdc2GTNMxNhoJFC4TOd8YqauuTpYUSLKsgK75cPnFf216\nHACQSTXw0qHPAgDeJz+IxTI399BjuHmFVAqN3gbaRwhOgqtDMtf+xvHtqsNTT6aOyiR7Wcbi3QTQ\n5GIvraHBZ0wdcSB+PSgykig+TTOqvhBD9ga97MteL8weWo6eu7gdP/kENed9aWUS7hDdg9PgLlKp\nlnrxWlkLBneUagwIJeUrPKC2jWEZ31Y6NM2hpJocfBPY+Vkat/IODUbz3sQ4v1fmN5u4ysD4pCkU\nLJDWyLEDVGCU1AJOduf3A+2Xpq+FnHVof6dMAKkhumrfaJFRlH1yO854tAdp1ALJ3DY09fe0Fu23\nGkInuujsRRrF19W4RBgyqucptI4m1IF8gB7pfORHlBkdCcW8q0tPdT4CgLMMm96LhUdAF37pWte6\n1rX7yu5KpN7ukdAbQmWjjbqAz8nO3HgD+hRF6rURDWtvUNIw+2ARjQ2qrnRyPvSbnN1e1lHzKFrN\nXtdQ2cXRXT8zZWoG3rhAsI2IeYhxFD4+tI5Zjdf383HEuOcpNIHWEkX7fVM+GqNcGXdFR/0d9N1z\nU6NIsgB7vI8yi/9s36v4w795LwAgeWQdoxzJF2oprHCrOpHyELtJEEVheRAaT6maJlXlamMmjXc8\nQSpwGaOFFi8h9o0Qf3wwVsFXOJGbMlsYy1JUf6U3i/R1Xs4WUkg/Fi4Ny8dpReBkfCWutb5uI8nK\ni7WdrJyXkbC4iYjUpOKp24c2UdZojLWmBo0rcfWWUMqZZkmHZL37vm2beGNjBwBgYSGP/AAnrccI\nSpou5bG+yfDQURfxWe7zOuRj7AWuI9AEcpd4yRuntoUAUBsyUB8MEqgSvkFjUd0G9J3DW87+bJNU\n8f5N/2tqmy+lUhhMar6K0E0RqjS2paaaZNB3bi39j/YQVXrmEV3yaHQe/BtgeCaivBhs96TewVP3\nt1Suaujseaq+B9HBe48eI7p/sMKIygcEx/alVFx8K8LCIeGu8HOYbEaHuqUpeLUpPfzF5iP8h3tz\nZXhXnHriYBGlUgLGFXIOA88sYP4UMSPWXx1Ca5yHNutAbtAPvjSdg8kgl4x5KD5AD7x3zxpaGwF+\nHIPGjsit0q3F8k00N+g8T0zexNkvEC6y3shADNNDsUoC9RFejrUFsozpb270wqZaIZT3etCZWWPP\nWXBYY6b/UXK2zxf2q6KYRwbncL1MjnQsvYlyL52/uZxUY+AMOECbFRHbBoRNL+TAtg2kDJo8rpQH\noKtSbZ70zDr+YP4ZAOTg395D0NLGngRWMiQ7kLxiKWVKaECc5W3T0wIBUrh+WCpaqF7msVoPJ9r6\nqIQ+RFBNZT2JHqYLlneGTS8mn74Zwk+uwADLBw8kq9ibpnFxPB2rFbrvAZtket/Y2IHhPrqohXoe\nTcblZdLF/DN0fbGCruBXowEU3k7/yJ03wgbgO12460G3KQmr/P1tBHwv2BdvkIrob/a/rvpoNqUP\nUwROWqCptFI65XYDizaKaEqh4JaoVkrYbUhTjtTcoroY1VmJRRxs4ISjnY9uZ77sLFSKUh2D7VRk\nFFIqAwvYNsF3t8I8GqRy5uaWMQiondHOUElNoK3yDBK+ugcdX5khHzKCi9/2Xu6mdeGXrnWta127\nj+yuROqbqymYSQfNPQRhLLwxAs7lwE1JGAH32Tch8xROJjJNNGoUHYuSBXud5qPihT5ghI7jJiXs\nbRQtyhmK3rXpNMw0zbjfOrMb1sP099p6DFaRIg7hEpQAANbecpgE3ZZB5hJFAINPrmB+jSJh4Qt4\newh2WVggCMdYM+GxlvvzZw7iyN5pAMBsuQfDOTre1HocvsHzqCeQG6Hto9mSWopeujaKk/w5H6/j\n0iXSRU8OUXi6kshgPElFS1/9+sP4hkmR2jvffgHlb1IxkZORiO9jUbLlNPx1esxOSqC8j6KfkV2r\nWC9Sf9MgCVl7oAWwHIGMe5At+t5zDx/Hl3IP0PdSdcwvE5x0+cQOPP4Edaa4sjaAtUtcKGb3YmqE\npAnyybpSg/zimYfofBsmCvMM4ehh5D+4dwOrDLdJPRRlayYkMlfoWnLXHVTG+PM5E01ekGRuAPWB\nu5b3v2smzxIshifCJhmmEB3NMAIYISagFBtjwlct7GIiFPoi8awwuQh0FiR5EEjzEs+RmuKgd7S5\niyRJE8JVx6n4VgjXyJChEkTcpvBVMVHFt1QSNibc26otAlDJz2ZkpRDlsgdsng4N9Q5RszBy1wGV\nHG1HICwq1GICASTc0zncy3ZXfgXpSxbqR11Ih3+1Agq/TS5IlN7O+h+n4si+TJe4sS8LLcc4WVkg\nf4mz+2kNazFuyBD3IU7SS+5z44f6uIPcEC37Nxcz8OYIL0fKh7udJ4OEDWuTrqW2nMT0McL0Ux5Q\nmeCCHteAZfEL1OMj+yodp8x0wHhBoJKhe8gMVzC9Sc6+WothzUmH98mTh17RUU2RY5uVAj+x8yQA\n4IOD5/CfXqPq0vVYCg8coCKeQIJ3qZ6BnWKq13gNmEmq7QHNM7YOVAx68fY8MoerIGir75iO5DT9\nUNbWB9Ea42KqJsvaLlvwxuggiXNxjL6XGoaeKY4ixz1f5xbzMFd4cnWAN96gBhx+zMdzzxCu++mX\nnkCai5zml/JIXCbc2+DnZ5UFcte56fgRgaD2ZGEhDwyTw4jNWQrOEpKKxQDC1Kvb6bNvSMRXaTwH\nX1rD5V/MA3+Mt5SNfJNm5NbPu0qfJK1ZqPj0bH2EkIsuBJpcBekjov0ScXIaQmceOMyaNFTQsVXL\nRbFIRLSAyb1tgVBaayvopiZNmAhxdwBoRypRtahjjpyzKUOXtRXOUZLAEYgm+F5NGhGMPqQuOjKE\nK5oQaruPsBpXh1CYugEdI6/cm0VHgXXhl651rWtdu4/sjiJ1IUQOwH8GcBCUSvtZAFcAfBLAOIBp\nAM9JKYt3crzamA/jRhxWwK54bAObGxRxJpYs2FeoJF1qwPoDvARblaptXWLVR32Ao4kVHzYzNprD\nrlqy2xuBiqOGeoHgAmtPDU6Cbtkwfbh1LhzSJZwUzdB9x3U0WNvdiwN6gw5YKGShsZ4LDImnTtAH\n9AAAIABJREFUP0ItrT5/8ggA4OiHL+DFyxS1VkpxxbL5xKOfxK+d/TG67t426jfo4HpdwGWe/uPD\ns0qH5Ud7TyF+kyLhxqgGY5TO2eDCjkd6Z1FoUeTvTyfRd5que3luBxy6TbR6gNgaHXv+a9uReISS\nkuuH02q73hDoGyL4ZzBFK5kL18ZC7nK/j/cPUTOO3z32LDTWjUfcB8YJCtLPpyB30+fY2RQ+myV4\nZeKBRUxdJWin7w1dadIIZvgYNcD7Gepnqh8bgEWXAadsqeRt/oqrZAJaaU0pWtZGBFqjNLaxWUsl\nU28+1499n1gCKd7cub3Z7/b328wXzwAAzjkJPGIFLeQ8JJhXTclTLtCKFB+1ZBihU3QeRrHJSEMK\nAEgLF/WgFCei9xITnmqkEU2aRr8b5atrEQ31WKQ031GJ11uZN1stoTlq1VDxrZDPLrVbErfR85sR\nQCraDKMuw6RqlLMOGRZ0+VIq+OWS48N44fRtr+1esTuFX34XwFeklD8uhLAAJAD8HwD+Vkr520KI\nXwfw6wB+7U4OtvuhOVw/uQ3+LtYkKaQVl8iLC3g2P1ApkL3BTq1XUxKtzZyGZIHhl5QGs8I3c7iK\ndz9yDQDw1a8S7cishA0eJgfWUGoR5GHpHuZPsD6KIVX3HfzjddSnmYLYFvCz/PK1NOwbp2YT6/kE\nCk1yrLkBOvnl4gByecLr45ajeo5+/Mb7UV8gfH/80CwujjKNMuNC52rZimuj3Kbr+v2ZZ9DqoXtO\nzBg4YxG7ZHSEcPTX13bgp7d9CwDwjcx+tLLcr7MH6H8HVZTOXx6E0xPo0wKZFwlO8nuAxjbymvaS\nCcHLb4ureYykA/MCwUpP/egp/PdpUtpK52vYt4doQNfW+5V+TAEp2Cfp3tw44C/SZDxVtAGuGG3n\nDNSHA9ojXVLt8SbkIsFDMQn0n6bjNfotFPfSD6k6rKPFFEnfAlJzvFxOhXBRc9BFP/k0bJoG5j40\nDPwHfLf2pr7b32+TLj27/+3MP8HJx/4bAECDgaoMIQJVdRr53tYlelQfxrmNP9XU30Pn6EXojWak\nSQa2QCeBRXFtR+rKiUeLlgKjCYOuOOrIo9dgira6Lg8CiWAykrcWP0WrZqP3GBOhKJgDIM2OvAZf\n5ShiWugm/+nJn8GYf+HWAbqH7DvCL0KILIB3AvgvACClbEspNwH8KEIE848B/KPv1UV2rWvfC+u+\n2127H+1OIvUJAKsA/qsQ4iEAJwD8CwCDUsol3mcZwOCdnnTub3ZA5CTcCs2RelWHvcZLHTNMJsYe\nX0dZ9qrvBfK8ZgUo7qForf+0A7NO311YS+JscpRurBYWqAST/EYjgRWOEOPTFmwOwhtDUqku1r/Z\nBzlB0azW0iFqXIyT8HB1maCTgVwVo3Fil7w2S5BLSQO0BsMFExWM9FJYGjMcTOynYao5Fg4fJl75\npZUhDGYpyn9H7ga+tEwt5crNGMwKy9ampIJi3CG+x9le/J+rH6ALF8DmQYpa9hyYx9QKUUFk0oUI\npH+vxlQA5expIHWaounaNg8bl2lsN4YJ+vKaBvx++t6l4hDSNkV7PzvxKj7+0gf5WWlojdOKZPTd\nc7g+RTCLaGgKXknOGpAc3TR7w1VQc4AjLNsFZumc9iZQOEKrlFavRLuHHkrumqZYOW5MIL5G3914\nSCK+yOyXaz5anJxu9kq43307uzf93b5blvjLLMA9ast+UyVNdQil5AiEUbsu0BGhBmhHNHEYZf2r\nVnAyTKRqESaKI7WOqDnKVomyWwLYpR2RGAgsKs3bjETyBIuEZf+64tTrHVBQwHTRhVSfrUihVBi9\nS5UENYVAUwbHDi2nGVsakLAEw2fTuNftTpy6AeBhAL8kpTwmhPhd0HJUmZRSCiFuC4IJIT4G4Dej\n2xpjHpBykD3BRTm9RMMDyMH2XODqymO9YDlkmDWoxtN6UwL8Y575EJA7w3rNsTbmz5GTCRAcoy7Q\n3EXeYWU2D7Czcw9W4bAWeHzRQO+L3LC6R6I+Tt/1TQlk6CUcGSpig4toFq/14/Mn6Xce30uAcLNh\nwfcZC6/EIDLk+Czdw0CcnPd0uRenbhB1I3nZxtLDdA+/v/E0xA06tt4QcLgYJ7GjjGqBtpttngDL\nOpJMs2z2SvVjvDI9jEO7qGLz8jcnYPAEo7lQ/Ur7/tpG4XEaUKOiYeQR8ltLx0gzRgfQZkbM3Ewf\nzA16PW68dw5mLmAKGaqfa3+simluvG2WBPreyfCPMYDYMlcA2lCcxeQ8V/RdSMLjX1Vs3YfH4tbC\nE5DMMqgNCWSnaezr/TqqIyzDWpNILPOPuifUiuk9L2E0gRkAW97Ffyel/Bhub2/6u323rOfPT+CF\n36T3+em4j6ZkhhQ0tPmzJUIHr4Noe4EphgxCaMKM4NpROCWqoRLYVr0XBZeIkLFClaFc6CZc6GIL\n+yXi6GPCjTBe9I5K162668G2kPHidVSN0vFC2qYOqOIsHQJWUEyOEEePCnfpMPACi9XlPnnyrtaR\n3sm7fSfsl3kA81LKY/zvz4B+CCtCiGE+0TCAwu2+LKX8mJRSBP99NzfQta79fSz6vv0dDh3ovttd\n+wGzO3m3v2OkLqVcFkLMCSH2SimvAHgPgIv8308D+G3+/+fv9MLsVR0tALH30W+lcbJfqRQmpiyY\ndU6OamEkZpUkPJ5Sm/0CI69QklV7dhXxPfTd6+t9qGXollKnad+1oxKaxapzmoSxSJxp1/Ax+ad0\n8OlfaKP5OBUTra2mEU9TZN++mYbXDET9JRIx2p7e2VSFE88MU/HN5z7zJHqeWqZjHB/E8jTBQIuG\nxAPvvA4AmJvrRXyGonm7KFHjHqkAsONRjnLPDuHRR+mYVcfGhSUuovoaJW+NfsDl1oheTKJn34a6\n7qC3qbm3jPY1InZbrlDwx8qTPowM3bOsx7H8LUoUB2OstwBnO91XdrCCUotC/FcLE5DMhxejTTTX\nacl05uR+CJbnbeck5uYIzkmNVlDjfqmxRBvudVqytiOrMYM7R5V3S8RWKLbI3vBRo7wwKofbqA/R\nWA2c8LHxTtpubegQzLV2EwKlfaztkfCgVXXgL3DH9r14t++WSaeN//WLPwcAuPjc73f8La/RONal\no7ZRRBr2MQ2YMLaA6v4TxMbRRhtRProDLdJ4wleJ0Jo0OmQCEpFipZzW4mMLFc0H0rtORA4gGvVv\nZdZEmTGhqmN4b54UqohIFUTJsD9rFI6qyFB6VweQ4Ei9Lh2lzGgLU43tpBNq7Nyrdqfsl18C8KfM\nDpgC8BFQlP8pIcTPgVa9z93pSXsu+dh0dGywPoqQQAB8SwHVCk1qQGOQH0pSwCb/hXYWaOVpwDe/\nvB21I+TgZdGCzt2JVp/g7iQtgf4egj+Wl3rgM70ucSmG6R/hF8htoVgm1odm+nh4hGCMVxf24ZnD\npO/w2sIOHB2hQqAzK6OolMixfeb0OwAAlgclPiZNoDVGL6++YuHaOtMYi6YqtHHjAiZXeqYe2EDM\nCF/K1QY58tVqUsnilvYzU6CoweeqWDmfRPk0OVJTB26sU/Wp5gqMHSWmTuXPR1AhPTPYBR3aAt2n\nOFxCfYUctcYaNFpbwOAJsHkqDzlIy+zhZBnVZYK1/LU4PJ5UNBdqMjbiLnb0UZ5B13w8vOMSAOAv\nXn4cMsdt7pjCOfyiQHE3HSO+qKuK0nZaKIpmaacN8SBDWzfT2PZVOkZxL1QLu/4zLYB11oWnobwv\npMl9F/amvtt30/b9Dr23Kz/WQh87cgdepNJUg8MytyXfU86MKicDWl/ozKNFSVExrKDDkS/DBs/R\nQqRkpAI0IdxQwhfowN23WhRyuQXKURBJqCvT3qIj01TQTYivB9+LiXDiakmJtBZg8QI1DhJimlAT\nny001bpu1q2qsf17vWHfZ7sjpy6lPA3gkdv86T1v7uV0rWvfX+u+21273+yuyAQsPeshf1zAmqIZ\nsvA4YC9S5C0kkFziQpNhAWuTC5RKEiXqAQ2zIrDwNM3SiUWg92sUOnoWUB+mCHroSWoIvfzyKNaY\nM24tmHDyFE20chJuhpOGho/4cYpga9t9vGFSMtOsCpxeJYji0NAS9iVJefDl5X348cfeAAB8buUJ\nAEB9xMPTj1FU/83pCejM7jAaAvVpli7IuZAsNdnql5AWF4W0TVy5QnBN7qaG6SGKvv2yiZ4xYtH0\nJGg1Uqik8A/HqSjoi8ZB1KscqeoSmRTtU1zJYOYS67rsBdI3adwqE0D6YSr6qb3WB5MLrlxu4mGu\nafCmOJJ3AaNC17pcy6DyEEsZuwKJKZYJ8AEzwSsMIVFr0/a1lQx6Y1SUlN5Rgv8KQUfak1S/s/Zg\nDm2O8JM3TST4ea8+7UBjxcj0DaBU5L6oKYEV7o6UmZKqGcbCO2117b4t0f+aDhI2eGuaO0fR5NNf\n/igu/8M/pI1SV+qNQCgtG41xNVDEClCB0u04RAHjZGt0HFhSuOpvW7npAftFh+zoR6r45pEzRpta\nRBtdOJErDs6jC6mSuc1I4wtPCnW9gRSCjxB+8bfcfxi160r3Ro/cw9Nf/ij2zL1+2/u+F+2uOPVY\nrolmb1pRDVMzQn32bKDJTZvjaxLNPFemNQA3QQM++o02Vo+QM7MqEtXRsEgloMEtv0xO0k1KVWQD\njSAIAGhPNgDuYOIVbTT7aJ+BvatYvklONbanisP9BGNc3hzAfIUFveIuPneZqieDiUGvaojr7OCm\nkzCrAf7vI7HI8IajqUIc4Qh4QYHOTAqjrwYwU8hoiQ/UUVzkRtksVvXg4CLKTAMaylSw9BpdU+NQ\nA6Upcp6j+wpYukgVqloLqNG8BGtToP4q0R7bPRJWmZflrGXfPNBA7CIdW3+siGaZPq+Vk5BuAEhK\n1MfpPode0FHlMRS6xMZm0AsPmOOxKhdSAYEI7ZNc8mpLZC5yYUnBx+ZunqCvWQqKsSoSgmGh2JpU\n0Ft9SMBJ8fisUN4FIKcevDdvdTvwsRmcei+N3VE7FKMCsAVyIXMiLBggpDo2O0S02EQo8KUL2aG9\nEsXRAyPdmKAjU/u2FZ6Bo09rTgTfDo/tb9WYkeF1BdaxPVJoFDTXTkdII0mhwQkKkSLOuxmpxNWF\nwOk2vbj7f3O6g955r1tX+6VrXeta1+4juyuReqtmwUhL1HdxkY/lIXOMI8QWYNZoFs3MtLA5SRF5\neRcQZ5bEzec0DL4YNhxW/SsHPdhrHH3HOeEy1ILcpGOYu2poMXMjfimO+i5mghg+tElivzTbJnKj\nlKArzWVxLkEc7lI1jnaFYYeGjvEDFMFfr3DxjSvwlUsHAACJooB8jGATMZNGY5A7tbQFMEoQidcw\nkOqhc1bdJBbeQxFD6qaAFaMIwTQ89IwTXPLhbaTi+NfLB3GzTFIDE5kNzHAvUs3XkBincy5fGICf\n4EiortN5AbQeaCBxksn+mkRjlOKP0a/R3xf3CrR6eQm7nMZTD10GABybHYeo0asi0y60Oo3xxgGB\ndJbuZ3//iorOF6f6sHGSVgqWDOsLRl8iGk553EZ5grYlCqQqCQD1YamUGc2aj56zvMJxJVymZNQm\nHPQep2tpp6GStkZVC6Ue3uLmLq/g5//olwAAp3/lD5AQ9N768KFzzFmXnopSNdEZrQcc7kSEORKV\n041K39q34Y9HuyMlI9K7UbVFH+E+iQjvXb9NScAtmi6RBVkzEs0HRonVTpVGXYhIUZXs+Bzce0LT\nVaLUhIaP/MGvAgCGV1695ZruZetG6l3rWte6dh+ZkPLWmfF7ekIh5MGP/g6avRKJRcbLY1Dt5Abe\nAEo7aa5p5ySSCxxNtCV85qnLZ4qQL3G/0jQQCLW1+kL8OqC9ZW/4KI+zSM+Ei57TjKlnBRpDQbd6\nwAuw8YSLiaE1db1TZwib99OeKr2HkBAsxqUbTDU8k6JKWQDmpqZyBM5wG1YipCsGw72tbxMLG4SX\nu44B+zyHswJKgCz/cAGrF4gO+YF3nQAAfGN+EhVWtDRiLnYPE9d/ej0P7zLzwYcc9LDQWHEtDWON\ncELNAdojNFjxKVtFtsE4+LZU7QAx3ILJ+vHetZS6JqskVOTtpT3YeYrUIxAttFNp1aLOXtfgcpOS\nHtZBsqo+rDIdu/CwDXuDE7ZJAZ15Z74hoHFpY21UIM7lP/UhiRQxSzH4wgoK7yIaaW2Yahou/dZH\ncbcKgYQQ8lnx43fj1Lda0KP0xT78yc6/AgDVkg0g/FhXkbpAS3b27YxayQ8j22gSNdrTs0PpMZKo\nNCHV9mhbupjwbukZ2paairijFEk/0p4uJvyOawgx+tCP+ZHtMXUdoWU1Cy0ZUYnk79pCU/mCj0x9\nCI138Uv3ffaR386+Jj9zR+/2XYFfPJv0XawqDdbmKJC7zA8+DyXFKqRQCUyzKlBn55P5Wo/6wftm\n2GTBt6Titbt95Ejr2zWINj+0FQO1Uc7iDzqIs0NqzaWQuUCPvfyQj9k1njBW47A44ekPt2Gf4gKc\ntxfVS1u5RpBDc9BH5jIvPy2oZKdvmRjfTqyZq1dGILgxiDmwjp39hDtcmh5GnZs/x6dNyJ0Eyywv\n9gDcTekrf0OsO70lkD5MLBLnZA8uVWnSsZcNtEd58pAEI/Eggus9IE0gc5Zmu/qgRM8VusjqJC+h\nBaBV6JWwEy2lxriQjyM+z9xkExD8kj+0fwZTRVadBFCvERbiD3lKB8ZLSLjJYDLk2gFfQmvROas7\nXQSvYc9VF6nrBCEVnsiroijNQeQZk8MHgOqBPlWQ5mR8pM93E6XK+Bk1fzaF179Kz+WIXVOOXIdQ\nTI+m76tEYDLCzy5xow1bABVu0hLtmATIDiZKYFtZKYHTjgmvs/GF0nMh87f0JQ0SqJqQSGvB9vAZ\nJ4RExQ+To9EORtFm0nS+oDsvFRZFpYnNiM8+2ebA6OcS94wz/26tC790rWtd69p9ZHclUo8XJKQG\nVLbxEmkN2ORy79iahiYrBWauCchgXS+hkn/CE2hnaXtmxldd5FvTOpbfRZFt3ys0E7czAtUdvLyb\naAJFShppdR3tJO1jVMNlf2zGhsXl++52Hx7tjsd3zODVwj7ax9WR5PZudYYrpAFUdnJypiHw7mdJ\nSP+Frx/GtcsUTUMLuemakLh8nmrizaqGHY8Rx/iGOQBZo+vKnLNgbzIEMRJQ94DBNCVHbwxkkD1H\n+1Z2+iqBlB8oo36cqIuWIeEyHz1W0FB/lFYB/V+IYfFZjs842rFXdLQGaJs7n8bIAVoyWeu60jNf\ne8yHZOjp0ss74e6gaP4jD30Ln56ihiG1JRupWS63HpKIrVCMlL1O3PWZDySQnonzs/QVVFYZNdDK\nUuTfe66KVh8Lrq0DrZzO9wm0WWd9ZVSH3EVjkXo1Ferwd02Zd/0mfuPXfx4A8KXf+YR6RxKaqRQb\nfeGjLgNNc6l47UE5fdOXSGoBBzyENByJDuGsrQJfdIwwgvZkZ+QcUBBv11AjITw0I5BLVP88iMJb\nErdE+8F1qQRp5HxBAtgUmoKiHOkrES8A+Le//s8AAKnrx/CDanfFqbsxgeoOCZt7yRh1iXiB5Wbj\nUE6mPixgU+U58hfb8LgXafHRtjqWWTGxuYuXUhkJa5Vuaf0heqh9JwEnxRj9gIQxTI7FaRvwyow1\nT9axuY1L9s/aqG6jBy5NCWs7YdMnF8cU+6aRtdHkoh+NWTZysAWfOynJXg9XS8T+8A0JMMdb72sj\ngC5/bOikkinxpcBkmnD89M4mTl0kakh5nwuL2TwOO8+DOxZx7gpNBpojUHsbOWl/01IAZ+VCLwSv\nKWMHN1GtkHN0RzyImwQhtbLAyNe4X+lDdH1ifxWo0H2lrlq4GidmjzHRwAazVXQAiQThOdmJJhIm\nPYs/ufwoXJeO17NvAxs6OWetLRQ7af7dzGOXEsklchxS6ApKawwK1Lj/aDuVhsa/3sq76kh+k74b\nWwkZL9qeKvYPkt7O6cmdSCx0Srl2jSz1aXJQT07+K5z8xd9V2wPH1pSeUmwkBUP6e+DqzCiqJcJC\nJUAqZ6sBHTi6HnHkgUV55WZEQjeYDHJaiHM3peiYMG4HKdiCSv6BUGUSIO2aAE5SOi9SKujJkT5i\nLKNgCh0Gu/5Df/SL2PbpHyymy+2sC790rWtd69p9ZHclUnfSQPY6FORRHxAwaBUNNwakb/IyqS6R\nnqNIcOGdNloj3Gl+2lJsDOEDFrezS8+FMEXA8lh9m46+Y0EPUwv/4b2fBAD8i1d+EmAoREwlEGP9\n8eZAyIPVaxoaNS7DFxKxo8w9b1jwWb3RS1NMkM/WUFqh6NTuraPHpgh6YawOf5Wghv58GasbJBnw\nu1feDVOn725uJjEb52rQnhK0FN2nbnjYtY8i+KAN3970Cq7PkEJXqy+MZJKzBmrbKdKJFQQqe+kY\nXt2GbvDK42YSnkXjtnHEV/evs256ez0Oo8Qwx4E2zKSj7m0yFzKCvnmWGoO4/RqKGt1bu5CAxv1c\n16omRA/zfa/ZaLOSY/4C/b88oaG4h87Ze6GNynZaMfkGkCWBSpT2SDjcMAMlG4kVGqvkMlAa58Yl\nuo/TNxnCKmuKQdW129vYb72KA/3EXz/33O+pxg+mCHtwmkIoBkgwmpYQCqqxIk0lTED9VkyElaZA\nZ0s8PxLNR9kyQUQZ44hcQ6eIWGAVaSgNd0dGue6hOTJUl3QAJDhCD/aJRSCWmOhc0e351C8AACb/\nrx/8KB24W/BLUqIlBbhnLca+XkV5J2mO9J1rYWM/OTDhAcXd3PknIWGtcDedERew6SVsVGzFlinu\nA6RGD3z4q+Qolp+UKB7kl3BDw2fWiEXy7972eXyuQBjwhcVJ+OzsxEQNGkMUvh1K9ZolgfokN8hd\nMeHn2cnc5Gu62QfJuYCY5eDsHCkm+q5Aehtd4MH8Mi7xkrNwahBPPnsKAPCKNxGOjR++fCP5Mq69\nsQMA4MXo2J/dyKjJRS6lYMfIedbGXeycJCiicHMM9jLdf8vyMThMOFdhLoF+niSEkGg5dO2bdWLw\naE0N448Qtl+opFCZpwlI5KpYa9KYVNo2duwkqpepe7hxgTQIktsqaEzR/vAFwBoujR0OYvN0LYGc\nQ2PYgzQDGqMFL0af4yuqZgRSAMLlsUg5WHwffTbWTJgcAMQMF40NZiv0ecBtHELXOm3yoyQd+6D/\nyzj7E78HgOCIhMaaRNJX2HPbDwp4QtMQkRGQITRTkULprLRkp84K1P4iQmkEuOVwhzMO3n4tAuHk\nhasmCQ8h9q5F1BbbUnZALdHrpe9JhZ1r0NQk9tCn/qUak/vFuvBL17rWta7dR3ZXInWpA5lpH7E1\nijIrOxKqi3wrG1OMF6vqQWMNbr0tkFjmhJ5nwItT/OAmJawSZ8/jEmaFPudOrgIAyjsGMfYPZgAA\n1xYGUGhQZHfSGsfpcwRjxJoCJqElKFctgJf98TlT9fds7G9ixxCpSs3WBjG0gzjm1SkqfvFsQAbQ\nxloa5gpLCgCoc9HSy199UPVOlb0S31ygCD0Ta2FhieCX7blNyBI30hh28SPvoSTXX32J1CCdHoHW\ndYqINV2ieYM+6wCml0mIzHikil0DFJFfPrcNzT56zDuPzqHcppXHWjGtEp6CE7mHjtzE5W/sonFN\nSNjM0a+PWdis0kqqP1PF4joVTQlNqnvWXsxBsFhZbNFQvHLh64gxcpOZpXFt5XU4ffy5x4dd5CYJ\nSaB8lK4pdjUGj04J3fShz/CKqSoU775yMQ+Z5qV70oF9lauiuvYdbde/eg2Prf5LAMDXf/E/IiWC\nhi0tmAh0yQOGSBgFRz/rkBF4I0yamiKM7nVQFB/sE7UgogwidlugQwJAcc1FuCIwI8lZ2ieI/EVE\nNz48SJTZEpgPH4//4UcBAJO/dX9ALlG7K0595CUH8+82MfoiDXhlm6aW3b4pkFihf8SXmyjvivP2\nEIPXm0I1XEjPSLSDVX/GhT9MWPrmEarEbOUlrlwjiECr6aj208v7+TOHVb9S39ZQ2U3fM5ct+NuJ\nrnjwfVOYLZOzXVnOoRl0FhpsqM5HjcM0G4j5OCQ3tDBWLVXl6ial2tc8VIL/OkEd9rrAoQHqdtT0\nDKynCN64ttIPGaOl4dWpYVx1WGJxO3myVKqFJlhqOOPBYDzcmizDcRjnn03iqkdje+DBWVxeIBZL\nvWnj0TGa4FxPh2WQY6320rEvLg0i/hBBNcIx4F0nOcTG5Zx6dktaCt4A3ZxuhRWlkGnozbAQKHg+\nXkzCqNG1lCboWpMLQMXW1bMMYDhnbwP5F+jeig/4CqLx1m1o/Nv0bCiMPnMTiH2IJu/WXwyiPoSu\nfRc2+nFyaB+6+av4vY8TFHPYslGV9D4EDtGHD5s/t+B3YuoRCxxvFJahop9w/2jXIcWG4f9ZkYYV\nuoBqDu0gdPAOQpgn1nEs0dFfNCqdC1D3orNt+l398q/9MsY+df8588C68EvXuta1rt1Hdlci9cUn\nTbgZD+sHaa5vHqlDLlGENnDCx+Yu5nvrcTTznNxoSaQWKLIsHtDVsl94ukqcoa0hdZwi3qCP58Tn\n6lh+G2+LA8vnCC5Br4P3HzkHAHj+2j5ofP6dj83i+gkiS09n81idYw1wTWKVk3Km5WL1JB0niCDl\n9gYSNsFJu/avKy45BOCv0rG1YhI+66DEDmzi1RN76bumhM7RrBxsIdNLXPq9fQVcLFD4GeR+XFdX\nSVMIqTjgjUoMqPLjtEKtjsO5eRzOUfJzqtaHY7PjdH7bwa4ewkUe7afWEvviS5hvE4PnU5ePQG9x\n5L2nDvD4eElfKTYaN200x1iaoFcqdpJeMiDHiFefOhlXkXjpwVAKwSzRFTaH3HDJXTFRfpZWPtlk\nE8VlTtQ6mkqmujuaSJ7m1ZsOlF6g8dEyoZZ+1747S33qNfybUz8BAEj8v2X8l4kvAoBqfWdH2uCZ\nENBURC4VzBKNznOahpoMVBq1SLGSVFF+TAgVaXtR/nokwRpwzTVAnTOGEP6JNrUwocMFzgzXAAAg\nAElEQVRkVosjPbVPwPD5qekfQvlnaMWZunZ/JUa32t2hNGZ96A2NdT8AVEz07OauOOu9SC4wG2LN\nxerDXBQ0o2Huh+ihHX30Gm4UCT9uzfWhPsKFRts2kfgrenAb+/nWRALpuUDbRGD1SCA6BLyxQs7b\nK1tIrNHDv7Hcr2iK9Zf7obFsbmpGQ22UjtlKetj/NoIxrh4ndko83sYAV3r+8MBZnLtKTt3KtDDC\nkrjTUwMwinSM6lwG5gBBF+31GDSH39q5GOwH6TjLtQz29ZNuTK9Njv5vLu1X+2prYc9Tw3ahT3El\nbFKqn8mnLj0Md40c8sjuVewfouNdXBrE6yeoUahZoXv/sgZkD1GuIB5zUOlnhs/JBBrcB9bUfFUI\nBABOmvVudteROcYMmSNNGHN0zuqhFjQWFNMTTLl8vIwS94TtydRRvkoTpz/QhrdCDrtaT8DgmSl3\nBahu5/Epx5Xzrg9LGHXaXhv14ce7lMa/r3nXpgAAlaeAp36VJGd/7xf+bwDAQ1a1o8+px8yRpNBC\npypCposH2QGNBGYK0QHZNCM0ycCCz56UHdh4cOxoU4utMEtdMoQKHada9PL88z8gCufwJ74FyI07\nGIkffOvCL13rWte6dh/ZXZHe3fHf/j1iV2No7qEluliz4Cdp9s9eMJUWiG9AQStWRaIyzuwXF2iM\nhSXF5iYnCG0JnYuIgmh26HUHbY4mpQCqo5z8sYDEMt17aQ8w+gJBA7PvN2AxG0McKsOZIshl+1fb\nWDvICofDEgafx2FdlcTuTTw+TDDGmbUR/PEDfwwA+M/rT+JL1w8CANp1E2gxs6C3gVyKoIZt6U3F\nTz89vQ32DVY7NKQqiQ+i03afh0Q/Re2G7sM9xlGuDTQHaUzsVR0thkW0kqGS0PZ4BSM54szfmO+H\nbPBqRgtoCz4MZu0MHF5BkRkvrfkUDGbC5I8WUH+eoCezItHoZ4bMuAM9Ref3HQ1mnM4vp5JhApXH\nKn9gDfk43ftiOYNWywzHxw+1fgLJ4L6zUkkJbO7W1fvR7vEQXwpZUFIDbvzrX+1K775Jpg+S1MWl\n3xzHVz/4CQDAhBGLyAu4qPth0ZJKrHY03NDQjLTT6+Std+q2WEKohKwvZQcsE7XoeYLPKS2Ggke/\ni8e/9CvY/7FpAIC3Uviu7/tetTdVelcI8a8B/BTomZwD8BEACQCfBDAOYBrAc1LK4p0cT9YMNMZc\n6AXuyGJJxBboBxxf87FxgK6755KEzrK5le064oET3idh5mhCiL+WQnk/OZDEjImgEUvuOn3Y2GfC\nYM5UYtWHx6y31JzE2hHevqihuJcpiI5U4lXlAxoyN2j/dsZQ/TO9uIS9h5yjxz06K4UUvlYkwa/+\ngTJ++sJPq/v1mYkCV1NVl74v4Hr03fPLw4hZ7ARdDTEidKC0V8JgiMYJcPmUA12nn0Z5NQUxTPc5\nuHsNa2fpR2gcLMO/Sni00+8opy1PZzGVp0lKpjz0b2PIa5pwdJFw4bMoVsxw0b5J+9plgeTjhL+v\nnRuAzmSY2qiEl6PrFnUdzz1Gmu9/dvpRGKwzX896EHyfGKFnVrzQh9UcT0DLhqKtin4PPTvomirV\nODRuRp5cDLV+yjt0xAv8Tuhh1yurIpAo+LiBO7c3+72+3yxwiHt+oYBf2fY/AQAu/8oY/vBH/isA\n4D3xOkyWxHXgKWeuReiF0aIfAB379LD+StVv3fK9VsT9mxFmiyn0DiGyF5v0Mv7yF34G+z5BuaM9\nc6//QPUUfbPtO8IvQohxAP8cwFEp5UEQ9fQnAPw6gL+VUu4G8Lf876517QfCuu911+5X+47wixAi\nD+A1AE8AKAP4HIDfA/D7AN4lpVwSQgwD+IaUcu93PKEQct9v/A7qY66aUvSqhp6LNEMXH5CqQGfs\n6y1Ux2g2b314ExVOqEFIaFwwk5wXaPHm7A0fxX0cIbBkrr6zCu1MWp0/0InRmxKNwUiRAsM8Rl2q\naL82JtTqoDwpkdlDAVtxMav0ZMqTtG972EE6T8u/yloSBicF/eUY9GGKto0LSUz+ECWkWq4Bm3ni\n566NhdOrK2CmKTJ1SraCltwURS5GRYNdpOuOFyTKE1yoVQYquxiSsnygzayhpqaKe6QA2jk+Tk2o\nMQyKg9pZqB6l8AWCpYm9rqGd42jfkOi5QN8rTQLOILNfHA1mliKudKoBJ4jOX+pBdZwHNChCWdOU\nBo2T9VWlSnxeV8VewodqkmHUJJIFuq6VxzS4XHAkE65q+tHKESd+6n+/M/jlzX6v+Zj3Ffzy7UyY\n9OPafO5hlD9EP5zfP/JneFcs7PDVCJKWQlcl+VFrSk81qgjgHA+yI5IPTIeAzfueavv42VM/AwBI\n/WUauU9S717phKu5+9XeNPhFSrkhhPhPAGYBNAA8L6V8XggxKKVc4t2WAQze6cUJD0DMR+oyQx4u\n4AeFJkkfRo1+5fVBS1WXui/n0bfMP+ynPKBC+6TnPOQv0UtTGzbRd4b2WX2OmSVLSYCx+8zxGByq\np4FVCtvgaU742dcFPN7HNySq4zwOOhCMp17VsPYkQz436B7ajkCNJW6NDRP2dd7+UA3ZNF1L8YDA\n3CYtFxstE60NwoJivQ3ox2ni0d5WhMc4uTviwR0hRylZ1jd9cB0bqwSt1A95kIxBt3wBeIESmaT/\nAGR2baJ+njs5ZXxoTFM0GkLdc8AestcF7PVwAmj10vaep5exMM367Ks6mr10jNScRJV/bG7Sh5gi\nDL4qEwr3ltt8RT+Nz3NuQ+PuUADiSzpahwhfr1sm8txU2rOEuq5UHVh4movNpgVq3PlI1Cw1AbfG\n2njXA1dAU+Z3tu/Fe/1WscCBZv/0NWT/lLb9R+MI/v3TDwEAFp+0IQ4RPPmPdp3F+7JnAQBvs70O\nBx5YQEU0ARxnOPMLpYfxheuHaIdzaYx8kwuiXjyDUfdCeC3fg/v7Qbc7gV92AfgVABMARgAkhRD/\nc3QfSeH+bcdXCPExIYQM/nsTrrlrXfs7Lfq+CSE+9m32+R96r/kY3Xe7a99Xu5N3+04SpY8AeFVK\nucoH/UsAbwewIoQYjixTb5tmllJ+DIA6uRBC1va1AE+o5sztXgmXpdri8wZMhkiE72OdJn/kLkEV\nIqWuhXPR+gENfVRDBCchkL1OUZ/23ylqroxpaAzyEr0XSjckPddGs4+26y3A3uTk404NLje+0ByB\nQLc/viywaXMxTEyq5GMQkQJQTTJ2Hp1XDatjZ5NY38vFVK5AiXVTHnv4Gq7YlNis1GJo7uATLacB\n/twzUlLHHttBnzcaCTz7wCUAwFSlF1PXqfgmedOAy1opmhOW0rfm8gDfT3pbGbUbrNviAbUJDnOT\ndD6rGDaBTqz5WD1C47wwn4dg3q+3swk/RpFa/UIGKSL8oDaiQQZtUR2A82fQqxr0ZW5SwtcU6PMA\ngJuS0GZpxSJHm2j00UESKxJugu8hp8FkJc52GqpZSTsn0XySXpbU8TSOTVFkd4fsl/+h95rP8zFs\nebfv4Lz3pUnXhfG3lCjf/rfh9hPQcAKHAQBaLAatn1Z8MhFTFUWiTitpf2UVfrOpvrsd5249z/fk\n6n9w7M1iv1wB8G+FEAnQMvU9AI4DqAH4aQC/zf///J1eWOKqjcaQDydDj6g96ECPczutigm3yAUt\nto6ABFXaC2CMHLa3GoM9Qvi1OJuGz2VoA39yBtoQOcqlD3GnnDWg/xQdozqsI1mg80w9pyPFVIlY\n0Ue9nxxFckHCSXFBy5hE9hrt48YFek+yPGlewNfps8HSJ4llAzWWabnuDSO9wO3cRnzs2U6SuNW2\njcUCwS9v3NyB0X5q66RpPvQs3U8+Xsc8QzTFlQwGRwnHP396nM6zrYKTDk0YpXISyWl6hLW9bWgs\nd+vHfMT7aKwaqwlYG3St1eksxDD9aOq9upLHzZwMqZqS9U4bgzqCn1D2jAWfHbZbiMNN0ITZf8ZH\ndZQBcU3CGWQ8p6EjMRc2qk4tMCTGQMbACR9LT9F5EksaGgMM87wYQ5vmHFTfW0X8FEFSqQUJo0HH\nKO7R1cRjbwLeIu0z+GoJhcdZBOjO7E1/r7v2d5vfbMKfm7/bl3Hf251g6qeFEP8f6IX3AZwC8P8A\nSAH4lBDi5wDMAHjue3mhXevam2nd97pr96vdEU9dSvlxAB/fsrkFim6+a3NTEr1nBDa4eYVeMmAw\nJ9kAVOm3UYdK3LVzEm6TLlfvb8K9QdnMWAvInKHS9+YT++FbtH/6Jp2rPgysH+AEnQHoDvdDPCfQ\nc4WwmJVHbRVxCy9kzrhZFxsPcuLQkOg9HigLAj5Xyqt+mY5QKo258wZcTrbqdYG6wwU9iQoWWFtl\nZGxDqTduy5Rw44skeTv642dx7SxJDMTXNGwukdqkxp2easU4WnEaK69iqibd5rKptFrGvtHC1I/S\nBQhDqqIfmfCg8+rNjDvwLV4dzRNuk5oBSk/SQPS8EFPNRcp7ffRNUIl1pR6D/RpFxwsf9ND7LU3d\nZ8BEKT/YQp3UE5C5ZKDRF6G0ANjYr8OPEeSTnfbR7KVx3TgkofPqO/lKGtUnaLWRWImjso32GTze\nxtpDLE1clCgd4OKXWkat2O7U3uz3umtduxesKxPQta51rWv3kd0VQa/2sINGxUJmFxfqPZ9Hi6sU\n3ZRU+G1pnwdrg/nWDtDzOv2h+LDA0EOUvypc7sfUTxGYHV+RaAwx3W6GcdciYFY5vSKACnerdzI+\nNg8yLfIalOhXvV9DfYzbeJUN+KyI2HNGR5NL4j0bsAgOh8nVqkY95M6X9kS6oLcF5qYo2i7eHIb2\nIEXC5aatpIjKTVtVur704iEkC/SXyl4HGtM7gwyRZnsYyFPWcLHVg9RF7i+aDmmCTtKA1mb++qqG\nxhD3Ym1rGOOKzZn5PujrXJ4f5DaO1iAbtK08CcQKnBfY7mKNaZSxazYaRymCtm7GoTE1ObYuITnx\nZSfbMC5TNF/b5sPvY/VGliAY/lYLhYcpql99CIhzKtKsCcRWOUntSfjr3NDjCVdp30vdxvArlH9Y\nfGcSgu/TSQolJdC1rr2V7a44daH7iBck1pbIUeQkYNLvFHZJoLyLnWpdU4VIzT6JzQdoe2LaxGqJ\nEqK5a0CLEA0YDWDkZeazbrKuzNVZlD7wAB2jJyy4yV4TaOUCWABwY0GDBwF7lbsTmYC+FmiLhPor\n9VEPmZucWF0mh2UX6ph/lmYmL+kpdkz2hIHKBB2jMejDnCK8pp6w4XFBkbWuB7Ry2EWBym6CJnJn\nTdUYpHiAS6MrJjZswn4SV20kl2gyysxIWCVuzps28P+3d2bPcVzXGf9u77MPZrDvJAWuoJZIpmRH\nlst2vMWp2JVK4sSuipJKyk/5A/ya16Qqb6nKU6r8kkr5IbaTUiq2LMsWZcsWZQmUSJEEKIAASKyD\n2XvW7r55OGfu0EkcUSkLYwL394JBo2f69p3G6dPnnvMdm7VagoQEsrSAOTd5gDsrtFpp1UwEGXpv\nFKN9F4aLWN2l7AQRAl3OVrEqJoKe3OqZFjI/oXBNdSFC7KAXUrFUmAeAupFIS6oF2RjfrPyJfkep\n/LVQSe9uf7mDRpEMf3zLVNudTBviJoWTWsMSK39B+5iJBiIOybWGHcx/t58tpNEcV3T4RaPRaI4Q\nA/HU3TUPZidCaoUOHySgHuOj+wSXnbKAxb1Dc9eA0jkOxXSghLZq89SFHgBawwLJbXbvuBJ192uL\n6Kb7yn+9sEk7C7gsr2y1JHxWb7TqgNmTYg8Bq0neZ2NMKE9dmlI1fth7grzG2J6N/LtdPgdb5VjH\n9yNEVs9TB+Jcqxh+roLgdVZYdIDWGHnN3p4Js05jCTyo80+tsnKkNOBPkdfqNKAWEO26ROrNLQBA\n6XdnVJVtfcpEd4gmdePaBLwy5/p/pIDiMj3i9BQyVzbH1BOG1RFoz9LTjr3pwt3jMNDZJqqn6Jy9\nXQONYVZvfDfA9rO0T+KVFDoL5Klnbprwn6XHsFaDK07nJPJLnIOevk/sqWHBYW13ywfAqo8d34G1\nQBMhtz0YXE0c2RHiXLkbusDyn6cph0WjOcYMJqb+SBOXfu8aXnjlSQDAzEshmnluHjElVBzbLQkl\n7RrZApFL24OkQBjrGW8Jj/OWWzmBwkX6J3fKZMj8KaA7R8bJve3BYyPplqBy1tM3yig+QQbWbEtU\n5/ohl15T5uZ8F/FV+kxvz4LkzJXeTag+J2A36H0igpKbrc6YqD9FcXTvRgz1OS5aWssgzQU1rRzJ\n5QJAckOiMcGNmC/V0FnmLB/qXYF2Bnj848sAgOsvnEE7x6qKBYH1r9KCge1TmT1AEgy94qL4uosm\nN/0oLudUH9Hs23QStRMRIu4/2s1EMHcopt0Z62Jsku6G53K7+PHueTqHmEThaZrDyR8aiDj7p5MS\nSsunk4aSD+iyZkt8y0SDc9alBTRZJjh100btERprMNuF9G3+fiz4s9wfdtZH+t9pTmqz/cqvIBEh\nyvS1RzSa44oOv2g0Gs0RYjALpTsubk+NqLzq9S8KTPyYBajuSJXj7E8DHmdGRDaQvs2hg60Q9UnO\nW369C7dAnnDkWqjPUBrJ7tP0vsyKQM0mj84tAZUz3Izjlon4FldXzqVRvMBiXU1DNZVwyrQwBwDO\nnqUW7kRACo4A1ILfI59Yw4o5DwCY+GkXzRGa2tqsgNil41s+IFiAyz/dRX2a3XyjL2jWqhtoXuDz\nKXsQrKroHdD5tsYCXLlGOe32oz6iPTrf5mILuSEKcxQ2s8rzd4tAaomO70/1w0apVQPBc7SwGOxR\nGafZEvCSFGPyW6YSCEsN+6j4dJxXry0iXuxVg0rs03o1Dv7Qh3GbPOjGiS6cKp1bNyXhFXpzRZPl\nn2kjfZW/k7KEU6F9pbiv4UnLQIzVJVNf2EHUpAXmmWwZt56ghWKjg34n+pIBWb1Ps0GjOaYMxKiP\nvyZxIzmNPEvq+ZMWtj9PxmT4soOT3+J48LSJFme2+LMhXM5EaY2YiO3Sf3Nz2IKQZHB2nnYoFguo\n4pZuyoIRsmGuSlgcr25MSJSaFBaIbFUXg3Y+gkxxCGDXRpczRIyOAXmSU/mWEmgOc+YKx6jfvT6L\ns89S39IbU5NwKLwNowuE3BCiblmq4fLYSxaqJzlEkYmQe7sfrki/FlPjan2MpE1rgrYlxnyYl3tG\n2ETpEoVLnDUPtVXaJ1lDv/+rtJC7QWNtjgmk7rCGiwd0Vij7yOVwuVMW8LfIMMfGfXQ6dHl4dr/L\nVDjro+Fx/iXMfqON/TQ+8ztLAIAX3z0PwXNu+ULp46T5+64FDupzXDRVFxh5i9M85z1UL1IIxbvr\nKIO9tTMEg1MaKzFPbRcSiG/RvOWvtVGbdaDRHHd0+EWj0WiOEAPx1JPrPvJvpFCf4ZBHC4i9R+5c\n+axEN8kLdClgaJnLwGuGClE4NYn0Knl3tfkYYm9vAgDiMyfRHOWQwXssVrUeqgwLaQKzL9ITQfmU\ni8Que/NxAwt/Rspd7+xMwOJ2cX4po54OYnsCZYfGFT3WQOpnnMkxw25jsov1Ii22npnfxtoWLVqG\nnoRgL1OMttB2yZv0a5YK3WRWBPwpXpCdDpC+RWPPX++gcUDH2f0Yh2H+I43qSW4wMRIgvkxjiu1L\nJYZlNSS8PfoMow3sXqLt0VAHlRRtz143EPLCpXWPzrGy2IXR5Eydsgdvk8ZaPC2QTtFTSrSZAOIR\nz4lE4xUqrMJUiO//4iJ/tqUWhO1qvzFJ7xyNLpBeodfD33wDe39FC+blpzvqOpj95DpWlkguIXHN\nVWGwWqKlwmDBeAdhkfa/+ykHciBXs0bzm8Vg/g1CiW5CqF6gzRGBzhAbvkDAn6btk6+ECOI97RVK\nWQSA9pBA7oU7AAAnfwb7nz8JACifk3BPUEqJ/X0KLaSWK2g+08tsATY+Q0YgnG3Bv81hhAjYXlqg\n95UNjF6i2Ek1k4AIbbWPVeV4r3TRZe0Xp8xFS6GL4ATdJG6/OQOH1wvMNuCUuXlGA8ogVc4HyL7N\n0y+B7G02sE0L1QsUUvEnbUz/kD4z/xYX2eQFJFcqeZu2Mpi1OSjtmW4uQPomjbsxJhHjytCRiwXU\n23T+B2II2Xc4FMPhEfvAQuIuN5KetNX3UzM9lHNk4GUqhFXhrk8n+2mh+SUD7SF6b31GIuLGGFIA\nTqUXU+fMn9NNJP6VDlr86pOq0YW556C1QOscmz+Yg8Vpod0UVO9UU0iIUboxJ1+PobZAb5aJAPPT\nhQ/Uo1SjOYro8ItGo9EcIQbiqe89k8bU9/ex9kf06C5kX2ckeTdCY5xeV+ct5RGHHpBeI2+teB4I\nLpwAABxcsJRuSv5toDTFBU2s8ZLcSqtel+Wz9w1i30Vis9d/FEitkPdZOxnizm1KonYOTGRv0e7F\nC1Jl68AwMP46eYv7j3FIxgXCNRqs3RTosqpiEO97883RfiZI7J6F1jCPRQg0JjivPASMGrd0ywYo\nniOP26my15qUSgKActo5pHG2rlrieQVbte0bfmwP+9dpnteXx2Gzlg6yEUKvp53OHvR0C3KHJjO1\nRuEqADCbQhUfOZV+mzsAKuTTztHfAGDsSoTiGdr/7OdWcD2gRq6Z2/T3khdD83lKvK9dzyOaYUmH\nex7SV+ipRun1AKiekpi5QJr06xvDtIgKUH3Ce3ScoS/sqqcQjeY4876Np3/tBxRCzv7j38Ld699P\nIlcie5Ned+MCqS0KOVRnLbhl1j45C9VwObIpVQ4AuiNdmCUuUnkPiHEhUq/phdGVvf7JaIwJeIWe\nsRWqcCi1EaGd6WmlCNVBCBHQGqWwSH5JoMP7xAqR6sLUi/V28hEev0jpHW/dnIe70+u1CRVyiRyp\n4ugwJJBmoSs7gn2DDuoVJOp8Q7J8oW5IAUv8Wi2gwboqUToAWEo4vmkh9HjNoSJUha7RleimOKQy\nHsHb51DMUhf+BI2xcIkzfJoGZI4OaN1zEefq3CAONGZpH3fXhMtVufW5CNYMNyu5nlLHbA/1m3eb\nHWD6ZdbjOaC4fGckgbU/oGMPXTVUgZm0gNY4fffDV0wc/FZfA8g5RWG1TtuG8w7NlYgAn0NeIhCY\nXtjDTz77dw/a+ejXznFpPK0ZDA/aeFqHXzQajeYIMZDwi1UzYbag2tklNgRK53ghrAVMvMy5z4sj\nCGL9zvWNCc6oqAsEE+RRGkUb0y+TtyYNgYNFOqXG+b40QC+MYHSB8kXy/qZflPD2yIPsZB20ciwB\nUJCoT/cVDnt56KHbP36sAAQc8ukVE5l1A0ur7GIHAp08qxQ6EUYvswTCtKHkcREBgc+fHZMQHK5p\nh0JJEARJCXuHx8JPBKEHDL/VWzB2YHR4MfOkVM1FGuNSSSoY3b7XHiVCCA5z7T3ZXwiNb3CmTABE\nszQnqXcdFBf5fZZUi7ORI1FZ5Lz1SCCscFHQUoDSaX46SYUwWZ8ld11i9yl+zBD006lIjPycNpVP\nQ3n1yU2JDitnFj/VwlCvxV+8iXKTJrxR9RDx01Nyw1DSu96+ib1RjjlpNMeYgRj1+D0BISmrAQDc\nagQ/6mmVS1Qu5ul1rB8/Lp+L4B70qkhb2GED0VxsYv8x+od3qkDjLBml2E36e2u4H3JozPV1ubef\nsZG9RY/xVkti7HVKI7n76RRG3yIrWJ+0UFqk/cOSAXeBmz/PmZAbFD+f4hvKxlciWFtksYVkyVsA\nSIYonecUxasRKqdoLLGnC2i8QUH1IB3C5nCNV5RozLPRNCUyy3Sz6TXjLp+TqsNPcitUhTjVBaF0\n0aUjYeXpphbsezC6tP/4j0zsfpSzRdwI5pNkNDu3Mmq+U6/S69oMkKBMUWRWA1RO0DjKT3aQWKHz\njEzA5Th6YRHI3aTPtp6totogGeJWTqgQWjvLBVYpgdQmzXErb8NiTXp/WsCeomKrdsVDKSQjLaVA\ntU7fsWhYSHIBVe0RvhuA9GOMrQQ0muOODr9oNBrNEWIgnnrzGR/mrQSGr/JiZ0KoRbn0eoDNL9L2\n3C8smC32PtdNuKVeCMBAaoMLhOZstZjoz0jYmz2VRtrWvtCGLHGsxJSIZ6loKfs9C41R7n+aEQhd\n8grtan+cQUwgz1KuhY+EmE2SZ7t+Lw9jkjzhg69zzrSQqLFKY/qWhfo8u9A1Gw4v8Ba/7AMr5E3K\nF/IYKtM5tHZNtYBanwWGX+vnpPfCUi7rrbgHAh1+wmmMmyp0kdjsywSXHpUIivSkIi2pSun9r5Rh\nt7nbUdFDb81l4gnKLNl9fRzJezSm8ilDjelg0UaLM17yP7PR5oyXznAEI+Anj32J4lmWxL06BIuX\nc6qPSMS3WPPlIs3Z+dltbNfm6RxzEiE1rkLkhcAePT2N/txAK8/qkZciGOv0HWZXAUS8IFzqh7O6\nboTkuvZRNJqBGPXE5QSa4xLdOLdcq/eFpirzFpKc+tZNArZPRmbiJz62niPDG8QcpNcpRDF+2cDO\nc5wB0RUQQ2ThOw0yAuaapzJlnB0LmZfIIpYWDNVsWpqAW+Ewi2tg/zEOefjoC2C9Z2IjHAcApO8Y\naA/RZ9bHWRL2wFKGLPxEBdE+p9CEAs1FOpAIDYQjNFa3ZKPDBjmI97XazaZA8VGOh3coPg0ATZ4r\n0RUA69SYbYEg0Zez7WW5ZN8x0GBD2R4PVHpjq+5BcpjrycVVrBxQquPmJoW7TI+MOcChKo6ju1s2\nghEKlzRqDgwet3tgIHeTzqdw0VKFSNIUKrQGASWna7GU7y1rDPI5MvBDL3n9sMwzDVhv0huNIFLn\n4F6Nq++wNgcVThIBMP40CdQ3uzaCMQP4e2g0xxrt2mg0Gs0RYiCeemOSPPNeI+fWsFAFLdmbEj4X\n1ORWQlRn6ZG+Pp1UyoypzQ5aw+RNt4YMDM+Qi1jYzkA26JQya+TBlk4bJNEKoHu2gfYmefCxgkQr\nz8U3kyHqJzi88CZg01od3LJUeiVWA0jcpXtgZAJJEmSECHgc4wFMbtLg78chOrpkqH0AAARoSURB\nVCxvYEsYWxQKCYa7MLhhhdWwVH62Xad+nwCrPo6Q224txxByRyTUeSF1z0D0BK2azuZKWL1C+ijd\nlETEWT7i8SoiVliMXU+o8/EyPoq7JJ/w1p0ZJN+kuUiz598ZAhqnWPVx2wZOU7ipGwuANitkLrQh\n21wotmIjdOl1diXC3lOciVIQas4tKZDhwq7CR7j5yc24KlQq/HYH4M8zthJgpQPUZww43JdcRP1m\nJIm7QvVtjRUjZD9NT0GmEWG30ns80GiOL4PpfDQcIn3DQsiZbtLqV13afojsexwDHjdUU+nRNwPc\n+wT985sdG6Wz/AguJYzXKItk+KMFVK5RKKHJOjFWC/CnelbLVBWYk6+2EbKRxtV+GMUIgbGfk9Hs\n5DzUZzjV8SBCbomszO6zOYx+h0pNZZPCCO2PncPa1+jz7HQHwT6dXOyuhdYIC2CtOmizZK8UAvl3\nWeLXNeBU2SCWA5ivkRFc//0QE+N0zDLrmSdOdJByyejPpw6w8Ol9AMC10gTiNlnSQiOBUk9WtwiU\nn6CbjXE7hxSfsxRQGjPeBgWmU3ckRMCZLY5Ep0nnbjoh7Hv0OnTQFwL7eBGd75CuTuhChWX8k12M\nXWadHEco4bbxy/Sz8JiEt0b71msWsqfoplxaH4LxUTpf8fIQmqwBlF2GKniClEomuZUxsPwj0v1p\njwR45Mw2uABYozm26PCLRqPRHCEGIhNwqAfUHDsGKRMwiONqjg8Pcm0fevhFSimEEHJQ/3gPI3q+\nHh709/Tg6Ov6w0GHXzQajeYIoY26RqPRHCEGZdT/ZkDHfVjR8/VwoL+nD4aerw+BQ18o1Wg0Gs2H\nhw6/aDQazRFCG3WNRqM5QmijrtFoNEeIQzXqQojPCyFuCSFuCyG+cZjHflgQQtwRQrwjhFgSQrzB\n23JCiBeFECv8c2jQ49T8Mvrafn/0tX04HJpRF0KYAP4BwBcAnAfwp0KI84d1/IeMT0opH5dSPsW/\nfwPAS1LKBQAv8e+a3xD0tf2B0Nf2h8xheuqXANyWUq5KKTsA/gXAlw7x+A8zXwLwTX79TQBfHuBY\nNP8TfW3//9HX9q+ZwzTqUwA27/v9Lm/T/DISwA+EEL8QQnydt41JKbf59Q6AscEMTfMr0Nf2g6Gv\n7UNgINK7mv+TZ6WU94QQowBeFELcvP+PksRzdHGB5mFEX9uHwGF66vcAzNz3+zRv09yHlPIe/9wD\n8G3Qo/2uEGICAPjn3uBGqPlf0Nf2A6Cv7cPhMI36FQALQogTQggHwJ8A+LdDPP5vPEKIhBAi1XsN\n4LMAroHm6Xne7XkA3x3MCDW/An1tvw/62j48Di38IqUMhBB/DeB7AEwA/ySlvH5Yx39IGAPwbSEE\nQN/NP0sp/1MIcQXAt4QQfwlgHcAfD3CMmv+GvrYfCH1tHxJa+0Wj0WiOELqiVKPRaI4Q2qhrNBrN\nEUIbdY1GozlCaKOu0Wg0Rwht1DUajeYIoY26RqPRHCG0UddoNJojxH8Bvd6e7qpUT4kAAAAASUVO\nRK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -908,9 +907,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1024,7 +1023,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1033,9 +1032,9 @@ }, { "data": { - "image/png": "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\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEWCAYAAABxMXBSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGt5JREFUeJzt3X20ZFV55/Hvj24DaIs9uiamA+1AtKPpvIiMQByzjIZR\nAaOdFUkaX+KCmESypM3rmmgmGZqYSTRvo6CBNoKKOja+JiSrEzQddZIJIK/B0GBoMQ6QNsQQpRVR\nOz7zR50rxe1bt87pe8+9Vfd+P2vVunXO3qfqqd2n66lzzj57p6qQJKmtw5Y7AEnSdDFxSJI6MXFI\nkjoxcUiSOjFxSJI6MXFIkjpZkYkjyfbljmHa2YYLZxsuDttx4Ra7DbMS7+NIUlWV5Y5jmtmGC2cb\nLg7bceEWuw1X5BFH3w41e3fZbr66XcvarFvqX3ULeb+2246rN6q87fq2bd2nvvfFQ23DUWXui93K\nJ7UNPeJYwtfvst18dbuWtVk3bnmxLeT12247rt6o8rbrx7XrUvxS7ntfPNQ2HFXmvtitfFLbcMUm\njuWOQZKmTdvksrbvQJbLSkyIktSXpP0Bidc4JEmdmDgkSZ2YOCRJnZg4JEmdmDgkSZ2YOCRJnZg4\nJEmdrNj7OCStbjfd+QUu3H07X/rqgYPK1h2+lm2nbOL4jeuXIbLpZ+KQtCJduPt2dt92z7x1Ljnr\nxCWKZmUxcUhakWaONB55xFo2bzjqm+v37LuP/Q8cmPNIRO2YOCStaJs3HMXlr3jaN5e37riKaz5z\n7zJGNP28OC5J6sTEIUnqxFNVkqbWfD2n9uy7bxkiWh1MHJKmVpueU+sOn/trbs+++9i646o569tV\nd34mDkkTrc1RxeyeUzPWHb6WV52y6aB1APsfODDyIvnu2+7h5OMePefrmVRMHJImXJujipOOfXTr\nezK2NYlkrkQ0nEjm63m12u//MHFImmij7seYMddRxXyO37h+5Bf/uKMb7/8YMHFImgqz78fow3xJ\nxfs/HmR3XElSJyYOSVInJg5JUicmDklSJyYOSVInJg5JUicmDklSJyYOSVInvSeOJKcm+VSSvUle\nPUd5klzQlN+c5IShstck2ZPk75O8J8kRfccrSZpfr4kjyRrgzcBpwGbgRUk2z6p2GrCpefwMcFGz\n7bHN8n+uqu8B1gBn9hmvJGm8vo84TgL2VtUdVfU1YCewZVadLcBlNXA1sD7JBuA+4OvAkUnWAg8H\n/qnneCVJY/Q9VtXRwJ1Dy3cBJ7eoc3RVXZfk94D/B3wF+HBVfbjPYCUtn1EDDDoh0+SZ2EEOkzwe\n+AXgOOALwPuSvLSq3jVH3e3AeUsboaTFNG749FETMmnxJKmhxfOravtc9fr+l7gb2Di0fEyzrk2d\nZwB/W1X/ApDkg8B/AQ5KHM2H2z6zPOvDS5oC8w2f3nXodB2aqkqben0njmuBTUmOY5AMzgRePKvO\nFcC5SXYyOI31xaral+RTwP9I8nAGp6pOAa7rOV5Jy2wphk/XwvSaOKrqQJJzgSsZ9Iq6tKpuSXJO\nU34xsAs4HdgL3A+c3ZTdlOQyBsniG8CNwFv6jFeSNF7vJw2raheD5DC87uKh5wW8csS2rwde32uA\nkqROvHNcktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS\n1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJ\niUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1Mna5Q5AkqbJnn33sXXHVQ9Zt+7wtWw7\nZRPHb1y/TFEtLROHJLWw7vDB1+X+Bw5wzWfunbPOJWeduJQhLRsThyS1sO2UTQB86asHHrJ+z777\n2P/AgYPWr2QmDklq4fiN6+c8oti646qRRyArlRfHJUmdmDgkSZ30njiSnJrkU0n2Jnn1HOVJckFT\nfnOSE4bK1id5f5Lbktya5Gl9xytJml+viSPJGuDNwGnAZuBFSTbPqnYasKl5/Axw0VDZG4G/qKon\nAU8Gbu0zXknSePMmjiR7kvxakscf4uufBOytqjuq6mvATmDLrDpbgMtq4GpgfZINSR4FPAO4BKCq\nvlZVXzjEOCRJi2TcEceLgEcAH07yiSS/kOTbO7z+0cCdQ8t3Neva1DkO+BfgbUluTPLWJI/o8N6S\npB7Mmziq6u+q6jVV9XjgVcDjgKuTfDTJT/cc21rgBOCiqnoK8GXgoGskkqSl1foaR1VdXVW/ALwM\nWA+8qcVmdwMbh5aPada1qXMXcFdVXdOsfz+DRHKQJNuT1MyjRVySpFmGv0eTbB9Vr1XiSHJikj9I\n8llgO7ADaHPK6lpgU5LjknwLcCZwxaw6VwAva3pXfT/wxaraV1WfA+5M8sSm3inAnrnepKq2V1Vm\nHm0+kyTpoYa/R6tq+6h68945nuS3gK3AvQwubD+9qu7qEMSBJOcCVwJrgEur6pYk5zTlFwO7gNOB\nvcD9wNlDL7ENeHeTdO6YVSZJWgbjhhx5ADi1qm4/1Deoql0MksPwuouHnhfwyhHb3gQ89VDfW5K0\n+MZdHP+Nqro9ycOT/HqSPwJIsinJDy9NiJKkSdL24vjbgK8CM3du3w38Zi8RSZImWtvE8fiq+h3g\n6wBVdT/gRWhJWoXaDqv+tSRHAgXQ3En+1d6ikrQi3XTnF7hw9+1zzl2xZ999yxCRDkXbxHEe8BfA\nxiTvBp4OnNVXUJJWpgt3387u2+6Zt87MTHuaXK3+harqI0luAL6fwSmqn6uqz/camaQVZ+ZI45FH\nrGXzhqMOKl93+Fpe1cy0p8k17j6O2Xdq72v+Pi7J46rqhn7CkrSSbd5wFJe/wlkSptW4I47rgL8H\nZo4uhi+IF/BDfQQlSZpc4xLHLwJnAF9hcOf4h6rqS71HJUmaWONuAHxDVf0Ag6E/NgK7k7w3yfFL\nEp0kaeK0vTh+R5I/AY4EfgL4TuCmPgOTNJ3scrvyjbs4/h0MRrTdwmCypZ3Ab1XVV5YgNklTyC63\nK9+4f729wM3AnwD3MZjI6WeTwTXyqvqDXqOTNHXscrvyjUsc5w89X9dnIJJWFrvcrlzjEsc/AB+u\nqn9dimAkSZNvXOJ4HPC+JA8DdgN/DnyimUNDkrQKjeuO+/qq+iEGM/T9HfCTwA1J/neSlyV57FIE\nKUmaHG274+4HPtQ8SLIZOA24DHhub9FJkiZOq/k4knwwyelJDgOoqj1V9ftVZdKQpFWm7UROfwi8\nBLg9yeuSPLHHmCRJE6xV4qiqv6yqlwAnAP8I/GWSv01ydnPhXJK0SrQ94iDJYxhM3vRTwI3AGxkk\nko/0EpkkaSK1ujie5EPAE4F3As+vqpl5OS5Pcl1fwUmSJk/bAWP+qKp2Da9IcnhVfbWqntpDXJKk\nCdX2VNVvzrHuqsUMRJI0HcaNjvttwNHAkUmewoMzAB4FPLzn2CRpauzZdx9bdxz8e3rd4WvZdsom\njt+4fhmi6se4U1XPZXBB/BhgeCTc/cCv9hSTJE2NmSHi9z9wgGs+c+/IepecdeJShdS7eRNHVb0D\neEeSF1bVB5YoJkmaGtuaIeJHTVy1/4EDc5ZNs3Gnql5aVe8Cjk3yi7PLnY9D0mp3/Mb1I48mtu64\nat6jkGk17lTVI5q/zsUhSQLGn6ra0fw9f756kqTVY9ypqgvmK6+qVy1uOJKkSTfuVNX1SxKFJGlq\ntOlVJUnSN407VfWGqvr5JH8KHDRdbFW9oLfIJEkTadypqnc2f3+v70AkSdNh3Jzj1zd/P85gbKp/\nA+4FrmrWjZXk1CSfSrI3yavnKE+SC5rym5OcMKt8TZIbk/xZ2w8lSepP26ljnwd8GrgAeBOwN8lp\nLbZbA7yZwfzkm4EXNfOVDzsN2NQ8fga4aFb5zwG3tolTktS/tqPj/j7wrKp6ZlX9IPAs4H+12O4k\nYG9V3VFVXwN2Altm1dkCXFYDVwPrk2wASHIM8DzgrS3jlCT1rO18HPurau/Q8h0MBjoc52jgzqHl\nu4CTW9Q5GtgHvAH4b8AjW8YpaYncdOcXuHD37QeNw7Rn333LFJGWyrheVT/aPL0uyS7gvQx6V/0Y\ncG2fgSX5YeCeqro+yTP7fC9J3V24+3Z233bPyPKZUWO18oz7l33+0PN/Bn6wef4vwJEtXv9uYOPQ\n8jHNujZ1Xgi8IMnpwBHAUUneVVUvnf0mSbYD57WIR9IimTnSeOQRa9m84aiHlK07fC2vakaN1fRI\nMnzbxflVtX2ueuNuADx7gXFcC2xKchyDZHAm8OJZda4Azk2yk8FprC82c5q/pnnQHHH88lxJo4lz\nO7B9ZnnWh5fUo80bjuLyVzxtucPQIqiqjK/V8hpHkiOAlwPfzeDX/8yb/OSYIA4kORe4ElgDXFpV\ntyQ5pym/GNgFnA7sBe4HFpqsJEk9ansS8p3AbQxmBPwN4CW07CJbVbsYJIfhdRcPPS/glWNe42PA\nx1rGKknqUdvuuE+oql8HvtyMX/U8Du4dJUlaBdomjq83f7+Q5HuARwHf2k9IkqRJ1vZU1VuS/Afg\n1xlczF7XPJckrTKtEkdVzdy5/XHgO/oLR5I06dqOVfWYJBcmuSHJ9UnekOQxfQcnSZo8ba9x7ATu\nYXBT3hnA54HL+wpKkjS52l7j2FBVrx1a/s0kW/sISJI02doecXw4yZlJDmseP87gpj5J0iozbpDD\n/QwGNQzw88C7mqLDgC8Bv9xrdJKkiTNurCqHM5ckPUTrcY+TvAB4RrP4sapyKldJWoXadsd9HYMp\nXPc0j59L8tt9BiZJmkxtjzhOB46vqm8AJHkHcCPNsOeSpNWjyxRd64F7m+eP6iEWSVqR9uy7j607\nrjpo/brD17LtlE0cv3H9MkR16Nomjt8GbkzyUQY9rJ4BvLq3qCRNhFHzioNzi7cxM33u/gcOcM1n\n7h1Z75KzTlyqkBbF2MSRJMDfAN8PzHy6X6mqz/UZmKTlN25ecXBu8flsa6bPHZV49z9wYM6ySTf2\nX7yqKsmuqvpeBiPjSlol5ptXHJxbfJzjN64feTSxdcdV8x6FTLK2PxVuSHJiVV3bazSSJpLzimtY\n28RxMvDSJP8IfJnBdY6qqu/rKzBJ0mRqmzie22sUkqSpMW6sqiOAc4AnAJ8ELqmq6buSI0laNOPu\nHH8H8FQGSeM04Pd7j0iSNNHGnara3PSmIsklwCf6D0mSNMnGHXF8feaJp6gkSTD+iOPJSWZuDw1w\nZLM806vq4I7dkqbOqDvEvTtccxk3H8eapQpE0vIZd4e4d4drmHuDpHnvEPfucM1m4pD0Td4hrjZa\nTeQkSdIME4ckqRMThySpExOHJKkTE4ckqRMThySpExOHJKkT7+OQVolRw4qAQ4uom94TR5JTgTcC\na4C3VtXrZpWnKT8duB84q6puSLIRuAx4LFDAW6rqjX3HK61U44YVAYcWUTu97iVJ1gBvBp4N3AVc\nm+SKqtozVO00YFPzOBm4qPl7APilJok8Erg+yUdmbSuppfmGFQGHFlF7ff+8OAnYW1V3ACTZCWwB\nhr/8twCXVVUBVydZn2RDVe0D9gFU1f4ktwJHz9pWUkcOK6KF6vvi+NHAnUPLdzXrOtVJcizwFOCa\nRY9QktTJxJ/QTLIO+ADw81XlFTxJK8qeffexdcdVD1m37vC1bDtlE8dvXL9MUc2v78RxN7BxaPmY\nZl2rOkkexiBpvLuqPjjqTZJsB85bhHglaUnMdETY/8ABrvnMvXPWueSsE5cyJJLU0OL5VbV9rnp9\nJ45rgU1JjmOQDM4EXjyrzhXAuc31j5OBL1bVvqa31SXArVX1B/O9SfPhts8sz/rw0qphl9vpsa3p\niDDXrIv7Hzgw579h36oqber1mjiq6kCSc4ErGXTHvbSqbklyTlN+MbCLQVfcvQy6457dbP504CeA\nTya5qVn3q1W1q8+YpWlml9vpcfzG9XMeUWzdcdXII5BJ0fse1HzR75q17uKh5wW8co7t/obB3OaS\nWrLLrZaCPz2kFcgut+qTY1VJkjoxcUiSOjFxSJI6MXFIkjoxcUiSOjFxSJI6MXFIkjoxcUiSOvEG\nQGkKjRqTyvGotBRMHNIUGjcmleNRqU/uXdIUmm9MKsejUt9MHNIUc0yqlWuuCZ5gMiZ5MnFI0gRp\nM8ETLP0kT8NMHJI0QUZN8ATLO8nTMBOHJE2QURM8weRM8uR9HJKkTkwckqROTBySpE5MHJKkTkwc\nkqRO7FUlLaNRY07NmISbvaTZTBzSMho35hTA7tvu4eTjHv2QdQ5mqOVk4pCW0XxjTg331x/Vd9/B\nDLUc3OukCTDXmFNtTmM5mKGWg4lDmlDz3UEsLSd7VUmSOjFxSJI68VSVtASc6lUriYlDWgJO9aqV\nxL1VWgJO9arFNGp2wM3ffhTnPf+7e39/E4e0SObrPjtzSsqpXrUQbWcH7JuJQ1okbe4C95SUFmK+\n2QFhcMSxFNyLpUUy3+ko8JSUFm5S7u0xcWjV6muAQU9HaaUzcWjVOtQBBkexa61Wi94TR5JTgTcC\na4C3VtXrZpWnKT8duB84q6puaLOttBALHWBwFK9jaKXrdQ9PsgZ4M/Bs4C7g2iRXVNWeoWqnAZua\nx8nARcDJLbeVgPGnneYyX0+nQ3k98DqGVoe+fxqdBOytqjsAkuwEtgDDX/5bgMuqqoCrk6xPsgE4\ntsW2mlIL+WKe67pDm9NO873mbJNyEVKaRH0njqOBO4eW72JwVDGuztEtt50qK3W2t/k+Vx9f9PNN\nbDSqR9MoHiFI3a3Yk7Fz3VW53NqcK+9yMXZSjPtci/VF3+a6w0nHPtojBalnfSeOu4GNQ8vHNOva\n1HlYi20BSLIdOG943XLeVdnG7C/ShVyMnSTDn2uxv+id2EjqV5IaWjy/qrbPWW9waaG3INYC/wCc\nwuBL/1rgxVV1y1Cd5wHnMuhVdTJwQVWd1Gbbed63fvziv13sj7MoZr7cnjzr1M2hnvOfFHN9rrZf\n9LPbQtLSS0JVpVXdPhNHE8zpwBsYdKm9tKr+Z5JzAKrq4qY77puAUxl0xz27qq4btW3L96y+P5ck\nrSQTlTiWg4lDkrrpkjicAVCS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktTJih1yZHB7iCRpsa3Y\nxNG2P/KhaO4T6fz6Xbabr27Xsjbrxi0vtoW8ftttx9UbVd52/bh27bsNF/IefbfhqDL3xW7lk9qG\nnqo6NOcvwXbz1e1a1mbdoX6mQ7WQ92u77bh6o8rbrm/b1n3qe1881DYcVea+2K18IttwJd857rmq\nBbANF842XBy248J5xNHOUv9iWYlsw4WzDReH7bhwi9qGK/KIQ5LUn5V6xCFJ6omJQ5LUiYlDktSJ\niUOS1MmqShxJvivJxUnel+SnljueaZXkR5L8UZLLkzxnueOZRkm+I8klSd6/3LFMkySPSPKOZv97\nyXLHM60Wuv9NTeJIcmmSe5L8/az1pyb5VJK9SV4932tU1a1VdQ6wFXhun/FOqkVqxz+uqp8GZtpy\nVVmkNryjql7eb6TToWN7/ijw/mb/e8GSBzvBurTjQve/qUkcwNsZzEv+TUnWAG8GTgM2Ay9KsjnJ\n9yb5s1mPb222eQGwC9i5tOFPjLezCO3Y+LVmu9Xm7SxeG6pDewLHAHc21f59CWOcBm+nfTsuyNSM\nVVVV/yfJsbNWnwTsrao7AJLsBLZU1W8DPzzida4ArkhyBfCB/iKeTIvRjkkCvA7486q6od+IJ89i\n7Ysa6NKewF0MksdNTNcP3951bMc9C3mvaW/4o3nw1wcMdqqjR1VO8swkFyR5C/CxnmObJp3aEdgG\n/FfgjCTn9BnYFOm6Lz4mycXAU5K8pu/gptCo9vwg8MIkFwF/uhyBTZk523Gh+9/UHHEshqr6GCaM\nBauqC4ALljuOaVZV/8rgGpE6qKovA2cvdxzTbqH737QfcdwNbBxaPqZZp25sx4WzDReX7bk4emnH\naU8c1wKbkhyX5FuAM4ErljmmaWQ7LpxtuLhsz8XRSztOTeJI8h7gKuCJSe5K8vKqOgCcC1wJ3Aq8\nt6puWc44J53tuHC24eKyPRfHUrajo+NKkjqZmiMOSdJkMHFIkjoxcUiSOjFxSJI6MXFIkjoxcUiS\nOjFxSJI6MXFo1Ujy70luGnrMO2fGUspgUqwnNM//Mclfzyq/afY8C3O8xh1Jnjhr3RuS/EqSJye5\ndPEj12q0qgY51Kr3lao6fjFfMMna5u7chbzGE4B1VbV3aPUjk2ysqjuTfFfLl9rJYEiJ85vXPQw4\nA3h6VX02yeOTPLaq/nkh8UoecWjVa37hn5/khiSfTPKkZv0jmlnVPpHkxiRbmvVnJbkiyV8Bu5Mc\nluQPk9yW5CNJdiU5I8kPJfnjofd5dpIPzRHCmRw8RPh7eXB2xRcB7xl6nTVJfjfJtUluTvKKpug9\nPHRGxmcAn62qzzbLfw782CE1kjTExKHV5MhZp6qGv2Q/X1UnABcBv9ys++/AX1XVScCzgN9N8oim\n7ATgjKr6QQbTmR7LYIa1nwCe1tT5KPCkJP+xWT4bmOt00Q8A181a94HmdQGez0MTy8uBL1bVicCJ\nwE8nOa6qPgl8I8mTm3pnMpRwgE8wSCbSgniqSqvJfKeqPtj8vZ4Hv7CfA7wgyUwiOQJ4XPP8I1V1\nb/P8B4D3VdU3gM8l+ShAVVWSdwIvTfI2BgnlZXO8938C9s1a96/AvyU5k8HgdPcPlT0H+L4kZzTL\njwI2AZ9hkCjOTHIL8CPAeUPb/RODBCctiIlDGvhq8/ffefD/RYAXVtWnhismORn4csvXfRuDo4UH\nGCSXUddDMse6yxnMF33WHHW3VdWVc2yzE/gw8HHg5lnXMwI4qqkWzFNV0mhXAtuaOdZJ8pQR9f4v\ng+lMD0vyWOCZMwVV9U8Mfun/GoMkMpfPAt82x/oPAb/TxDE7rp9N8rAmru+cOYVWVZ8GPs9gTvj3\nzNpuQ/Ne0oKYOLSazL7G8box9V8LPAy4uTn189oR9T7AYC7nPcC7gBuALw6Vvxu4s6puHbH93wBP\nnb2yqvZX1eur6muzit7avNcNTRfdHTz07MF7gCfx4Om3GScBf420QM7HIS2CJOuq6ktJHsPgIvTT\nq+pzTdmbgBur6pIR2z4euLCqTu85xo8DW2fikg6V1zikxfFnSdYD3wK8dihpXM/gesgvjdqwqj6d\nZH+SJ8y6l2PRND2tPm3S0GLwiEOS1InXOCRJnZg4JEmdmDgkSZ2YOCRJnZg4JEmdmDgkSZ38f3s/\n1LFE4vGQAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1084,9 +1083,9 @@ }, { "data": { - "image/png": "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\nF5W9GoMAAAAASUVORK5CYII=\n", + "image/png": "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\nbZVKpTqB/D+F7yW5gV7LfQAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1119,7 +1118,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 2f1dc820f..094842895 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -15,7 +15,16 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], "source": [ "%load_ext autoreload\n", "%autoreload 2" @@ -33,9 +42,7 @@ "from IPython.display import Image\n", "import numpy as np\n", "\n", - "import openmc\n", - "\n", - "%matplotlib inline" + "import openmc" ] }, { @@ -364,7 +371,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBAPGRVxKHIAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMDhUMTI6MTU6\nMjUtMDQ6MDABIYvLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTA4VDEyOjE1OjI1LTA0OjAw\ncHwzdwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAALKSURB\nVGje7dpLcqQwDAbgHHE2YeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmN\nP+HDhw8fPnz48Kf6VH9G+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4\nzPji99z0/AJ4n1lfvJ6fnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6\npA0wfln+ho/fwgYYn19C/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tN\nDbSGz7T0SBEWw4vLXzbQ6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X5\n8wZaxWd1+fMGiuFvir8bvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV\n873hB8UnM3xzANtf8nb4dwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7\nT/ppARBvp48UwJnelT5SACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4/\n/Jve+fhsH6Ctv7n8PTzjvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V\n32/o9+fl389Xnx+g5x/o+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6\n/4Le/6D3T/D9V67Y/ZsVQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/\ngPs/0P4TtP8F7r9J3AIO9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTu\nf4X7b+H+X7T/+BPuf3aM8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTYtMDQtMTNUMTE6Mzk6MTQtMDQ6MDALPlLjAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEz\nVDExOjM5OjE0LTA0OjAwemPqXwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -568,8 +575,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 12:15:26\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-13 11:39:14\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -626,20 +633,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 6.6400E-01 seconds\n", - " Reading cross sections = 1.8900E-01 seconds\n", - " Total time in simulation = 3.0445E+01 seconds\n", - " Time in transport only = 3.0423E+01 seconds\n", - " Time in inactive batches = 4.4900E+00 seconds\n", - " Time in active batches = 2.5955E+01 seconds\n", + " Total time for initialization = 4.0300E-01 seconds\n", + " Reading cross sections = 8.6000E-02 seconds\n", + " Total time in simulation = 1.4439E+01 seconds\n", + " Time in transport only = 1.4430E+01 seconds\n", + " Time in inactive batches = 2.2790E+00 seconds\n", + " Time in active batches = 1.2160E+01 seconds\n", " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 3.1139E+01 seconds\n", - " Calculation Rate (inactive) = 2783.96 neutrons/second\n", - " Calculation Rate (active) = 1444.81 neutrons/second\n", + " Sampling source sites = 1.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 1.4856E+01 seconds\n", + " Calculation Rate (inactive) = 5484.86 neutrons/second\n", + " Calculation Rate (active) = 3083.88 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1627,7 +1634,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, From a7c455410b93becb802b08d6a789109d8f603820 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 13 Apr 2016 07:48:24 -0500 Subject: [PATCH 096/259] Break up universe module into universe, cell, and lattice --- openmc/__init__.py | 4 + openmc/cell.py | 449 +++++++++++++++ openmc/lattice.py | 867 +++++++++++++++++++++++++++++ openmc/universe.py | 1297 +------------------------------------------- 4 files changed, 1323 insertions(+), 1294 deletions(-) create mode 100644 openmc/cell.py create mode 100644 openmc/lattice.py diff --git a/openmc/__init__.py b/openmc/__init__.py index 5bdc3f089..9a39bcb82 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -1,3 +1,5 @@ +from openmc.cell import * +from openmc.lattice import * from openmc.element import * from openmc.geometry import * from openmc.nuclide import * @@ -16,6 +18,8 @@ from openmc.cmfd import * from openmc.executor import * from openmc.statepoint import * from openmc.summary import * +from openmc.region import * +from openmc.source import * try: from openmc.opencg_compatible import * diff --git a/openmc/cell.py b/openmc/cell.py new file mode 100644 index 000000000..a5204f2c1 --- /dev/null +++ b/openmc/cell.py @@ -0,0 +1,449 @@ +from collections import OrderedDict, Iterable +from numbers import Real, Integral +from xml.etree import ElementTree as ET +import sys +import warnings + +import openmc +import openmc.checkvalue as cv +from openmc.surface import Halfspace +from openmc.region import Region, Intersection, Complement + + +if sys.version_info[0] >= 3: + basestring = str + + + +# A static variable for auto-generated Cell IDs +AUTO_CELL_ID = 10000 + + +def reset_auto_cell_id(): + global AUTO_CELL_ID + AUTO_CELL_ID = 10000 + + + + +class Cell(object): + """A region of space defined as the intersection of half-space created by + quadric surfaces. + + Parameters + ---------- + cell_id : int, optional + Unique identifier for the cell. If not specified, an identifier will + automatically be assigned. + name : str, optional + Name of the cell. If not specified, the name is the empty string. + + Attributes + ---------- + id : int + Unique identifier for the cell + name : str + Name of the cell + fill : Material or Universe or Lattice or 'void' or iterable of Material + Indicates what the region of space is filled with + region : openmc.region.Region + Region of space that is assigned to the cell. + rotation : ndarray + If the cell is filled with a universe, this array specifies the angles + in degrees about the x, y, and z axes that the filled universe should be + rotated. + translation : ndarray + If the cell is filled with a universe, this array specifies a vector + that is used to translate (shift) the universe. + offsets : ndarray + Array of offsets used for distributed cell searches + distribcell_index : int + Index of this cell in distribcell arrays + + """ + + def __init__(self, cell_id=None, name=''): + # Initialize Cell class attributes + self.id = cell_id + self.name = name + self._fill = None + self._type = None + self._region = None + self._rotation = None + self._translation = None + self._offsets = None + self._distribcell_index = None + + def __eq__(self, other): + if not isinstance(other, Cell): + return False + elif self.id != other.id: + return False + elif self.name != other.name: + return False + elif self.fill != other.fill: + return False + elif self.region != other.region: + return False + elif self.rotation != other.rotation: + return False + elif self.translation != other.translation: + return False + else: + return True + + def __ne__(self, other): + return not self == other + + def __hash__(self): + return hash(repr(self)) + + def __repr__(self): + string = 'Cell\n' + string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) + string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) + + if isinstance(self._fill, openmc.Material): + string += '{0: <16}{1}{2}\n'.format('\tMaterial', '=\t', + self._fill._id) + elif isinstance(self._fill, Iterable): + string += '{0: <16}{1}'.format('\tMaterial', '=\t') + string += '[' + string += ', '.join(['void' if m == 'void' else str(m.id) + for m in self.fill]) + string += ']\n' + elif isinstance(self._fill, (Universe, Lattice)): + string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', + self._fill._id) + else: + string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', self._fill) + + string += '{0: <16}{1}{2}\n'.format('\tRegion', '=\t', self._region) + + string += '{0: <16}{1}{2}\n'.format('\tRotation', '=\t', + self._rotation) + string += '{0: <16}{1}{2}\n'.format('\tTranslation', '=\t', + self._translation) + string += '{0: <16}{1}{2}\n'.format('\tOffset', '=\t', self._offsets) + string += '{0: <16}{1}{2}\n'.format('\tDistribcell index', '=\t', + self._distribcell_index) + + return string + + @property + def id(self): + return self._id + + @property + def name(self): + return self._name + + @property + def fill(self): + return self._fill + + @property + def fill_type(self): + if isinstance(self.fill, openmc.Material): + return 'material' + elif isinstance(self.fill, openmc.Universe): + return 'universe' + elif isinstance(self.fill, openmc.Lattice): + return 'lattice' + else: + return None + + @property + def region(self): + return self._region + + @property + def rotation(self): + return self._rotation + + @property + def translation(self): + return self._translation + + @property + def offsets(self): + return self._offsets + + @property + def distribcell_index(self): + return self._distribcell_index + + @id.setter + def id(self, cell_id): + if cell_id is None: + global AUTO_CELL_ID + self._id = AUTO_CELL_ID + AUTO_CELL_ID += 1 + else: + cv.check_type('cell ID', cell_id, Integral) + cv.check_greater_than('cell ID', cell_id, 0, equality=True) + self._id = cell_id + + @name.setter + def name(self, name): + if name is not None: + cv.check_type('cell name', name, basestring) + self._name = name + else: + self._name = '' + + @fill.setter + def fill(self, fill): + if isinstance(fill, basestring): + if fill.strip().lower() == 'void': + self._type = 'void' + else: + msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ + 'Universe fill "{1}"'.format(self._id, fill) + raise ValueError(msg) + + elif isinstance(fill, openmc.Material): + self._type = 'normal' + + elif isinstance(fill, Iterable): + cv.check_type('cell.fill', fill, Iterable, + (openmc.Material, basestring)) + self._type = 'normal' + + elif isinstance(fill, Universe): + self._type = 'fill' + + elif isinstance(fill, Lattice): + self._type = 'lattice' + + else: + msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ + 'Universe fill "{1}"'.format(self._id, fill) + raise ValueError(msg) + + self._fill = fill + + @rotation.setter + def rotation(self, rotation): + cv.check_type('cell rotation', rotation, Iterable, Real) + cv.check_length('cell rotation', rotation, 3) + self._rotation = rotation + + @translation.setter + def translation(self, translation): + cv.check_type('cell translation', translation, Iterable, Real) + cv.check_length('cell translation', translation, 3) + self._translation = translation + + @offsets.setter + def offsets(self, offsets): + cv.check_type('cell offsets', offsets, Iterable) + self._offsets = offsets + + @region.setter + def region(self, region): + cv.check_type('cell region', region, Region) + self._region = region + + @distribcell_index.setter + def distribcell_index(self, ind): + cv.check_type('distribcell index', ind, Integral) + self._distribcell_index = ind + + def add_surface(self, surface, halfspace): + """Add a half-space to the list of half-spaces whose intersection defines the + cell. + + .. deprecated:: 0.7.1 + Use the Cell.region property to directly specify a Region + expression. + + Parameters + ---------- + surface : openmc.surface.Surface + Quadric surface dividing space + halfspace : {-1, 1} + Indicate whether the negative or positive half-space is to be used + + """ + + warnings.warn("Cell.add_surface(...) has been deprecated and may be " + "removed in a future version. The region for a Cell " + "should be defined using the region property directly.", + DeprecationWarning) + + if not isinstance(surface, openmc.Surface): + msg = 'Unable to add Surface "{0}" to Cell ID="{1}" since it is ' \ + 'not a Surface object'.format(surface, self._id) + raise ValueError(msg) + + if halfspace not in [-1, +1]: + msg = 'Unable to add Surface "{0}" to Cell ID="{1}" with halfspace ' \ + '"{2}" since it is not +/-1'.format(surface, self._id, halfspace) + raise ValueError(msg) + + # If no region has been assigned, simply use the half-space. Otherwise, + # take the intersection of the current region and the half-space + # specified + region = +surface if halfspace == 1 else -surface + if self.region is None: + self.region = region + else: + if isinstance(self.region, Intersection): + self.region.nodes.append(region) + else: + self.region = Intersection(self.region, region) + + def get_cell_instance(self, path, distribcell_index): + + # If the Cell is filled by a Material + if self._type == 'normal' or self._type == 'void': + offset = 0 + + # If the Cell is filled by a Universe + elif self._type == 'fill': + offset = self.offsets[distribcell_index-1] + offset += self.fill.get_cell_instance(path, distribcell_index) + + # If the Cell is filled by a Lattice + else: + offset = self.fill.get_cell_instance(path, distribcell_index) + + return offset + + def get_all_nuclides(self): + """Return all nuclides contained in the cell + + Returns + ------- + nuclides : dict + Dictionary whose keys are nuclide names and values are 2-tuples of + (nuclide, density) + + """ + + nuclides = OrderedDict() + + if self._type != 'void': + nuclides.update(self._fill.get_all_nuclides()) + + return nuclides + + def get_all_cells(self): + """Return all cells that are contained within this one if it is filled with a + universe or lattice + + Returns + ------- + cells : dict + Dictionary whose keys are cell IDs and values are Cell instances + + """ + + cells = OrderedDict() + + if self._type == 'fill' or self._type == 'lattice': + cells.update(self._fill.get_all_cells()) + + return cells + + def get_all_materials(self): + """Return all materials that are contained within the cell + + Returns + ------- + materials : dict + Dictionary whose keys are material IDs and values are Material instances + + """ + + materials = OrderedDict() + if self.fill_type == 'material': + materials[self.fill.id] = self.fill + + # Append all Cells in each Cell in the Universe to the dictionary + cells = self.get_all_cells() + for cell_id, cell in cells.items(): + materials.update(cell.get_all_materials()) + + return materials + + def get_all_universes(self): + """Return all universes that are contained within this one if any of + its cells are filled with a universe or lattice. + + Returns + ------- + universes : dict + Dictionary whose keys are universe IDs and values are Universe + instances + + """ + + universes = OrderedDict() + + if self._type == 'fill': + universes[self._fill._id] = self._fill + universes.update(self._fill.get_all_universes()) + elif self._type == 'lattice': + universes.update(self._fill.get_all_universes()) + + return universes + + def create_xml_subelement(self, xml_element): + element = ET.Element("cell") + element.set("id", str(self.id)) + + if len(self._name) > 0: + element.set("name", str(self.name)) + + if isinstance(self.fill, basestring): + element.set("material", "void") + + elif isinstance(self.fill, openmc.Material): + element.set("material", str(self.fill.id)) + + elif isinstance(self.fill, Iterable): + element.set("material", ' '.join([m if m == 'void' else str(m.id) + for m in self.fill])) + + elif isinstance(self.fill, (Universe, Lattice)): + element.set("fill", str(self.fill.id)) + self.fill.create_xml_subelement(xml_element) + + else: + element.set("fill", str(self.fill)) + self.fill.create_xml_subelement(xml_element) + + if self.region is not None: + # Set the region attribute with the region specification + element.set("region", str(self.region)) + + # Only surfaces that appear in a region are added to the geometry + # file, so the appropriate check is performed here. First we create + # a function which is called recursively to navigate through the CSG + # tree. When it reaches a leaf (a Halfspace), it creates a + # element for the corresponding surface if none has been created + # thus far. + def create_surface_elements(node, element): + if isinstance(node, Halfspace): + path = './surface[@id=\'{0}\']'.format(node.surface.id) + if xml_element.find(path) is None: + surface_subelement = node.surface.create_xml_subelement() + xml_element.append(surface_subelement) + elif isinstance(node, Complement): + create_surface_elements(node.node, element) + else: + for subnode in node.nodes: + create_surface_elements(subnode, element) + + # Call the recursive function from the top node + create_surface_elements(self.region, xml_element) + + if self.translation is not None: + element.set("translation", ' '.join(map(str, self.translation))) + + if self.rotation is not None: + element.set("rotation", ' '.join(map(str, self.rotation))) + + return element diff --git a/openmc/lattice.py b/openmc/lattice.py new file mode 100644 index 000000000..047bd5830 --- /dev/null +++ b/openmc/lattice.py @@ -0,0 +1,867 @@ +import abc +from collections import OrderedDict, Iterable +from numbers import Real, Integral +import sys + +import numpy as np + +from openmc.universe import Universe, AUTO_UNIVERSE_ID + +if sys.version_info[0] >= 3: + basestring = str + + +class Lattice(object): + """A repeating structure wherein each element is a universe. + + Parameters + ---------- + lattice_id : int, optional + Unique identifier for the lattice. If not specified, an identifier will + automatically be assigned. + name : str, optional + Name of the lattice. If not specified, the name is the empty string. + + Attributes + ---------- + id : int + Unique identifier for the lattice + name : str + Name of the lattice + pitch : float + Pitch of the lattice in cm + outer : int + The unique identifier of a universe to fill all space outside the + lattice + universes : ndarray of Universe + An array of universes filling each element of the lattice + + """ + + # This is an abstract class which cannot be instantiated + __metaclass__ = abc.ABCMeta + + def __init__(self, lattice_id=None, name=''): + # Initialize Lattice class attributes + self.id = lattice_id + self.name = name + self._pitch = None + self._outer = None + self._universes = None + + def __eq__(self, other): + if not isinstance(other, Lattice): + return False + elif self.id != other.id: + return False + elif self.name != other.name: + return False + elif self.pitch != other.pitch: + return False + elif self.outer != other.outer: + return False + elif self.universes != other.universes: + return False + else: + return True + + def __ne__(self, other): + return not self == other + + @property + def id(self): + return self._id + + @property + def name(self): + return self._name + + @property + def pitch(self): + return self._pitch + + @property + def outer(self): + return self._outer + + @property + def universes(self): + return self._universes + + @id.setter + def id(self, lattice_id): + if lattice_id is None: + global AUTO_UNIVERSE_ID + self._id = AUTO_UNIVERSE_ID + AUTO_UNIVERSE_ID += 1 + else: + cv.check_type('lattice ID', lattice_id, Integral) + cv.check_greater_than('lattice ID', lattice_id, 0, equality=True) + self._id = lattice_id + + @name.setter + def name(self, name): + if name is not None: + cv.check_type('lattice name', name, basestring) + self._name = name + else: + self._name = '' + + @outer.setter + def outer(self, outer): + cv.check_type('outer universe', outer, Universe) + self._outer = outer + + @universes.setter + def universes(self, universes): + cv.check_iterable_type('lattice universes', universes, Universe, + min_depth=2, max_depth=3) + self._universes = np.asarray(universes) + + def get_unique_universes(self): + """Determine all unique universes in the lattice + + Returns + ------- + universes : dict + Dictionary whose keys are universe IDs and values are Universe + instances + + """ + + univs = OrderedDict() + for k in range(len(self._universes)): + for j in range(len(self._universes[k])): + if isinstance(self._universes[k][j], Universe): + u = self._universes[k][j] + univs[u._id] = u + else: + for i in range(len(self._universes[k][j])): + u = self._universes[k][j][i] + assert isinstance(u, Universe) + univs[u._id] = u + + if self.outer is not None: + univs[self.outer._id] = self.outer + + return univs + + def get_all_nuclides(self): + """Return all nuclides contained in the lattice + + Returns + ------- + nuclides : dict + Dictionary whose keys are nuclide names and values are 2-tuples of + (nuclide, density) + + """ + + nuclides = OrderedDict() + + # Get all unique Universes contained in each of the lattice cells + unique_universes = self.get_unique_universes() + + # Append all Universes containing each cell to the dictionary + for universe_id, universe in unique_universes.items(): + nuclides.update(universe.get_all_nuclides()) + + return nuclides + + def get_all_cells(self): + """Return all cells that are contained within the lattice + + Returns + ------- + cells : dict + Dictionary whose keys are cell IDs and values are Cell instances + + """ + + cells = OrderedDict() + unique_universes = self.get_unique_universes() + + for universe_id, universe in unique_universes.items(): + cells.update(universe.get_all_cells()) + + return cells + + def get_all_materials(self): + """Return all materials that are contained within the lattice + + Returns + ------- + materials : dict + Dictionary whose keys are material IDs and values are Material instances + + """ + + materials = OrderedDict() + + # Append all Cells in each Cell in the Universe to the dictionary + cells = self.get_all_cells() + for cell_id, cell in cells.items(): + materials.update(cell.get_all_materials()) + + return materials + + def get_all_universes(self): + """Return all universes that are contained within the lattice + + Returns + ------- + universes : dict + Dictionary whose keys are universe IDs and values are Universe + instances + + """ + + # Initialize a dictionary of all Universes contained by the Lattice + # in each nested Universe level + all_universes = OrderedDict() + + # Get all unique Universes contained in each of the lattice cells + unique_universes = self.get_unique_universes() + + # Add the unique Universes filling each Lattice cell + all_universes.update(unique_universes) + + # Append all Universes containing each cell to the dictionary + for universe_id, universe in unique_universes.items(): + all_universes.update(universe.get_all_universes()) + + return all_universes + + +class RectLattice(Lattice): + """A lattice consisting of rectangular prisms. + + Parameters + ---------- + lattice_id : int, optional + Unique identifier for the lattice. If not specified, an identifier will + automatically be assigned. + name : str, optional + Name of the lattice. If not specified, the name is the empty string. + + Attributes + ---------- + id : int + Unique identifier for the lattice + name : str + Name of the lattice + dimension : array-like of int + An array of two or three integers representing the number of lattice + cells in the x- and y- (and z-) directions, respectively. + lower_left : array-like of float + The coordinates of the lower-left corner of the lattice. If the lattice + is two-dimensional, only the x- and y-coordinates are specified. + + """ + + def __init__(self, lattice_id=None, name=''): + super(RectLattice, self).__init__(lattice_id, name) + + # Initialize Lattice class attributes + self._dimension = None + self._lower_left = None + self._offsets = None + + def __eq__(self, other): + if not isinstance(other, RectLattice): + return False + elif not super(RectLattice, self).__eq__(other): + return False + elif self.dimension != other.dimension: + return False + elif self.lower_left != other.lower_left: + return False + else: + return True + + def __ne__(self, other): + return not self == other + + def __hash__(self): + return hash(repr(self)) + + def __repr__(self): + string = 'RectLattice\n' + string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) + string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) + string += '{0: <16}{1}{2}\n'.format('\tDimension', '=\t', + self._dimension) + string += '{0: <16}{1}{2}\n'.format('\tLower Left', '=\t', + self._lower_left) + string += '{0: <16}{1}{2}\n'.format('\tPitch', '=\t', self._pitch) + + if self._outer is not None: + string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', + self._outer._id) + else: + string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', + self._outer) + + string += '{0: <16}\n'.format('\tUniverses') + + # Lattice nested Universe IDs - column major for Fortran + for i, universe in enumerate(np.ravel(self._universes)): + string += '{0} '.format(universe._id) + + # Add a newline character every time we reach end of row of cells + if (i+1) % self._dimension[-1] == 0: + string += '\n' + + string = string.rstrip('\n') + + if self._offsets is not None: + string += '{0: <16}\n'.format('\tOffsets') + + # Lattice cell offsets + for i, offset in enumerate(np.ravel(self._offsets)): + string += '{0} '.format(offset) + + # Add a newline character when we reach end of row of cells + if (i+1) % self._dimension[-1] == 0: + string += '\n' + + string = string.rstrip('\n') + + return string + + @property + def dimension(self): + return self._dimension + + @property + def lower_left(self): + return self._lower_left + + @property + def offsets(self): + return self._offsets + + @dimension.setter + def dimension(self, dimension): + cv.check_type('lattice dimension', dimension, Iterable, Integral) + cv.check_length('lattice dimension', dimension, 2, 3) + for dim in dimension: + cv.check_greater_than('lattice dimension', dim, 0) + self._dimension = dimension + + @lower_left.setter + def lower_left(self, lower_left): + cv.check_type('lattice lower left corner', lower_left, Iterable, Real) + cv.check_length('lattice lower left corner', lower_left, 2, 3) + self._lower_left = lower_left + + @offsets.setter + def offsets(self, offsets): + cv.check_type('lattice offsets', offsets, Iterable) + self._offsets = offsets + + @Lattice.pitch.setter + def pitch(self, pitch): + cv.check_type('lattice pitch', pitch, Iterable, Real) + cv.check_length('lattice pitch', pitch, 2, 3) + for dim in pitch: + cv.check_greater_than('lattice pitch', dim, 0.0) + self._pitch = pitch + + def get_cell_instance(self, path, distribcell_index): + + # Extract the lattice element from the path + next_index = path.index('-') + lat_id_indices = path[:next_index] + path = path[next_index+2:] + + # Extract the lattice cell indices from the path + i1 = lat_id_indices.index('(') + i2 = lat_id_indices.index(')') + i = lat_id_indices[i1+1:i2] + lat_x = int(i.split(',')[0]) - 1 + lat_y = int(i.split(',')[1]) - 1 + lat_z = int(i.split(',')[2]) - 1 + + # For 2D Lattices + if len(self._dimension) == 2: + offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] + offset += self._universes[lat_x][lat_y].get_cell_instance(path, + distribcell_index) + + # For 3D Lattices + else: + offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] + offset += self._universes[lat_z][lat_y][lat_x].get_cell_instance( + path, distribcell_index) + + return offset + + def create_xml_subelement(self, xml_element): + + # Determine if XML element already contains subelement for this Lattice + path = './lattice[@id=\'{0}\']'.format(self._id) + test = xml_element.find(path) + + # If the element does contain the Lattice subelement, then return + if test is not None: + return + + lattice_subelement = ET.Element("lattice") + lattice_subelement.set("id", str(self._id)) + + if len(self._name) > 0: + lattice_subelement.set("name", str(self._name)) + + # Export the Lattice cell pitch + pitch = ET.SubElement(lattice_subelement, "pitch") + pitch.text = ' '.join(map(str, self._pitch)) + + # Export the Lattice outer Universe (if specified) + if self._outer is not None: + outer = ET.SubElement(lattice_subelement, "outer") + outer.text = '{0}'.format(self._outer._id) + self._outer.create_xml_subelement(xml_element) + + # Export Lattice cell dimensions + dimension = ET.SubElement(lattice_subelement, "dimension") + dimension.text = ' '.join(map(str, self._dimension)) + + # Export Lattice lower left + lower_left = ET.SubElement(lattice_subelement, "lower_left") + lower_left.text = ' '.join(map(str, self._lower_left)) + + # Export the Lattice nested Universe IDs - column major for Fortran + universe_ids = '\n' + + # 3D Lattices + if len(self._dimension) == 3: + for z in range(self._dimension[2]): + for y in range(self._dimension[1]): + for x in range(self._dimension[0]): + universe = self._universes[z][y][x] + + # Append Universe ID to the Lattice XML subelement + universe_ids += '{0} '.format(universe._id) + + # Create XML subelement for this Universe + universe.create_xml_subelement(xml_element) + + # Add newline character when we reach end of row of cells + universe_ids += '\n' + + # Add newline character when we reach end of row of cells + universe_ids += '\n' + + # 2D Lattices + else: + for y in range(self._dimension[1]): + for x in range(self._dimension[0]): + universe = self._universes[y][x] + + # Append Universe ID to Lattice XML subelement + universe_ids += '{0} '.format(universe._id) + + # Create XML subelement for this Universe + universe.create_xml_subelement(xml_element) + + # Add newline character when we reach end of row of cells + universe_ids += '\n' + + # Remove trailing newline character from Universe IDs string + universe_ids = universe_ids.rstrip('\n') + + universes = ET.SubElement(lattice_subelement, "universes") + universes.text = universe_ids + + # Append the XML subelement for this Lattice to the XML element + xml_element.append(lattice_subelement) + + +class HexLattice(Lattice): + """A lattice consisting of hexagonal prisms. + + Parameters + ---------- + lattice_id : int, optional + Unique identifier for the lattice. If not specified, an identifier will + automatically be assigned. + name : str, optional + Name of the lattice. If not specified, the name is the empty string. + + Attributes + ---------- + id : int + Unique identifier for the lattice + name : str + Name of the lattice + num_rings : int + Number of radial ring positions in the xy-plane + num_axial : int + Number of positions along the z-axis. + center : array-like of float + Coordinates of the center of the lattice. If the lattice does not have + axial sections then only the x- and y-coordinates are specified + + """ + + def __init__(self, lattice_id=None, name=''): + super(HexLattice, self).__init__(lattice_id, name) + + # Initialize Lattice class attributes + self._num_rings = None + self._num_axial = None + self._center = None + + def __eq__(self, other): + if not isinstance(other, HexLattice): + return False + elif not super(HexLattice, self).__eq__(other): + return False + elif self.num_rings != other.num_rings: + return False + elif self.num_axial != other.num_axial: + return False + elif self.center != other.center: + return False + else: + return True + + def __ne__(self, other): + return not self == other + + def __hash__(self): + return hash(repr(self)) + + def __repr__(self): + string = 'HexLattice\n' + string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) + string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) + string += '{0: <16}{1}{2}\n'.format('\t# Rings', '=\t', self._num_rings) + string += '{0: <16}{1}{2}\n'.format('\t# Axial', '=\t', self._num_axial) + string += '{0: <16}{1}{2}\n'.format('\tCenter', '=\t', + self._center) + string += '{0: <16}{1}{2}\n'.format('\tPitch', '=\t', self._pitch) + + if self._outer is not None: + string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', + self._outer._id) + else: + string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', + self._outer) + + string += '{0: <16}\n'.format('\tUniverses') + + if self._num_axial is not None: + slices = [self._repr_axial_slice(x) for x in self._universes] + string += '\n'.join(slices) + + else: + string += self._repr_axial_slice(self._universes) + + return string + + @property + def num_rings(self): + return self._num_rings + + @property + def num_axial(self): + return self._num_axial + + @property + def center(self): + return self._center + + @num_rings.setter + def num_rings(self, num_rings): + cv.check_type('number of rings', num_rings, Integral) + cv.check_greater_than('number of rings', num_rings, 0) + self._num_rings = num_rings + + @num_axial.setter + def num_axial(self, num_axial): + cv.check_type('number of axial', num_axial, Integral) + cv.check_greater_than('number of axial', num_axial, 0) + self._num_axial = num_axial + + @center.setter + def center(self, center): + cv.check_type('lattice center', center, Iterable, Real) + cv.check_length('lattice center', center, 2, 3) + self._center = center + + @Lattice.pitch.setter + def pitch(self, pitch): + cv.check_type('lattice pitch', pitch, Iterable, Real) + cv.check_length('lattice pitch', pitch, 1, 2) + for dim in pitch: + cv.check_greater_than('lattice pitch', dim, 0) + self._pitch = pitch + + @Lattice.universes.setter + def universes(self, universes): + # Call Lattice.universes parent class setter property + Lattice.universes.fset(self, universes) + + # NOTE: This routine assumes that the user creates a "ragged" list of + # lists, where each sub-list corresponds to one ring of Universes. + # The sub-lists are ordered from outermost ring to innermost ring. + # The Universes within each sub-list are ordered from the "top" in a + # clockwise fashion. + + # Check to see if the given universes look like a 2D or a 3D array. + if isinstance(self._universes[0][0], Universe): + n_dims = 2 + + elif isinstance(self._universes[0][0][0], Universe): + n_dims = 3 + + else: + msg = 'HexLattice ID={0:d} does not appear to be either 2D or ' \ + '3D. Make sure set_universes was given a two-deep or ' \ + 'three-deep iterable of universes.'.format(self._id) + raise RuntimeError(msg) + + # Set the number of axial positions. + if n_dims == 3: + self.num_axial = len(self._universes) + else: + self._num_axial = None + + # Set the number of rings and make sure this number is consistent for + # all axial positions. + if n_dims == 3: + self.num_rings = len(self._universes) + for rings in self._universes: + if len(rings) != self._num_rings: + msg = 'HexLattice ID={0:d} has an inconsistent number of ' \ + 'rings per axial positon'.format(self._id) + raise ValueError(msg) + + else: + self.num_rings = len(self._universes) + + # Make sure there are the correct number of elements in each ring. + if n_dims == 3: + for axial_slice in self._universes: + # Check the center ring. + if len(axial_slice[-1]) != 1: + msg = 'HexLattice ID={0:d} has the wrong number of ' \ + 'elements in the innermost ring. Only 1 element is ' \ + 'allowed in the innermost ring.'.format(self._id) + raise ValueError(msg) + + # Check the outer rings. + for r in range(self._num_rings-1): + if len(axial_slice[r]) != 6*(self._num_rings - 1 - r): + msg = 'HexLattice ID={0:d} has the wrong number of ' \ + 'elements in ring number {1:d} (counting from the '\ + 'outermost ring). This ring should have {2:d} ' \ + 'elements.'.format(self._id, r, + 6*(self._num_rings - 1 - r)) + raise ValueError(msg) + + else: + axial_slice = self._universes + # Check the center ring. + if len(axial_slice[-1]) != 1: + msg = 'HexLattice ID={0:d} has the wrong number of ' \ + 'elements in the innermost ring. Only 1 element is ' \ + 'allowed in the innermost ring.'.format(self._id) + raise ValueError(msg) + + # Check the outer rings. + for r in range(self._num_rings-1): + if len(axial_slice[r]) != 6*(self._num_rings - 1 - r): + msg = 'HexLattice ID={0:d} has the wrong number of ' \ + 'elements in ring number {1:d} (counting from the '\ + 'outermost ring). This ring should have {2:d} ' \ + 'elements.'.format(self._id, r, + 6*(self._num_rings - 1 - r)) + raise ValueError(msg) + + def create_xml_subelement(self, xml_element): + # Determine if XML element already contains subelement for this Lattice + path = './hex_lattice[@id=\'{0}\']'.format(self._id) + test = xml_element.find(path) + + # If the element does contain the Lattice subelement, then return + if test is not None: + return + + lattice_subelement = ET.Element("hex_lattice") + lattice_subelement.set("id", str(self._id)) + + if len(self._name) > 0: + lattice_subelement.set("name", str(self._name)) + + # Export the Lattice cell pitch + pitch = ET.SubElement(lattice_subelement, "pitch") + pitch.text = ' '.join(map(str, self._pitch)) + + # Export the Lattice outer Universe (if specified) + if self._outer is not None: + outer = ET.SubElement(lattice_subelement, "outer") + outer.text = '{0}'.format(self._outer._id) + self._outer.create_xml_subelement(xml_element) + + lattice_subelement.set("n_rings", str(self._num_rings)) + + if self._num_axial is not None: + lattice_subelement.set("n_axial", str(self._num_axial)) + + # Export Lattice cell center + dimension = ET.SubElement(lattice_subelement, "center") + dimension.text = ' '.join(map(str, self._center)) + + # Export the Lattice nested Universe IDs. + + # 3D Lattices + if self._num_axial is not None: + slices = [] + for z in range(self._num_axial): + # Initialize the center universe. + universe = self._universes[z][-1][0] + universe.create_xml_subelement(xml_element) + + # Initialize the remaining universes. + for r in range(self._num_rings-1): + for theta in range(6*(self._num_rings - 1 - r)): + universe = self._universes[z][r][theta] + universe.create_xml_subelement(xml_element) + + # Get a string representation of the universe IDs. + slices.append(self._repr_axial_slice(self._universes[z])) + + # Collapse the list of axial slices into a single string. + universe_ids = '\n'.join(slices) + + # 2D Lattices + else: + # Initialize the center universe. + universe = self._universes[-1][0] + universe.create_xml_subelement(xml_element) + + # Initialize the remaining universes. + for r in range(self._num_rings - 1): + for theta in range(6*(self._num_rings - 1 - r)): + universe = self._universes[r][theta] + universe.create_xml_subelement(xml_element) + + # Get a string representation of the universe IDs. + universe_ids = self._repr_axial_slice(self._universes) + + universes = ET.SubElement(lattice_subelement, "universes") + universes.text = '\n' + universe_ids + + # Append the XML subelement for this Lattice to the XML element + xml_element.append(lattice_subelement) + + def _repr_axial_slice(self, universes): + """Return string representation for the given 2D group of universes. + + The 'universes' argument should be a list of lists of universes where + each sub-list represents a single ring. The first list should be the + outer ring. + """ + + # Find the largest universe ID and count the number of digits so we can + # properly pad the output string later. + largest_id = max([max([univ._id for univ in ring]) + for ring in universes]) + n_digits = len(str(largest_id)) + pad = ' '*n_digits + id_form = '{: ^' + str(n_digits) + 'd}' + + # Initialize the list for each row. + rows = [ [] for i in range(1 + 4 * (self._num_rings-1)) ] + middle = 2 * (self._num_rings - 1) + + # Start with the degenerate first ring. + universe = universes[-1][0] + rows[middle] = [id_form.format(universe._id)] + + # Add universes one ring at a time. + for r in range(1, self._num_rings): + # r_prime increments down while r increments up. + r_prime = self._num_rings - 1 - r + theta = 0 + y = middle + 2*r + + # Climb down the top-right. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].append(id_form.format(universe._id)) + + # Translate the indices. + y -= 1 + theta += 1 + + # Climb down the right. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].append(id_form.format(universe._id)) + + # Translate the indices. + y -= 2 + theta += 1 + + # Climb down the bottom-right. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].append(id_form.format(universe._id)) + + # Translate the indices. + y -= 1 + theta += 1 + + # Climb up the bottom-left. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].insert(0, id_form.format(universe._id)) + + # Translate the indices. + y += 1 + theta += 1 + + # Climb up the left. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].insert(0, id_form.format(universe._id)) + + # Translate the indices. + y += 2 + theta += 1 + + # Climb up the top-left. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].insert(0, id_form.format(universe._id)) + + # Translate the indices. + y += 1 + theta += 1 + + # Flip the rows and join each row into a single string. + rows = [pad.join(x) for x in rows[::-1]] + + # Pad the beginning of the rows so they line up properly. + for y in range(self._num_rings - 1): + rows[y] = (self._num_rings - 1 - y)*pad + rows[y] + rows[-1 - y] = (self._num_rings - 1 - y)*pad + rows[-1 - y] + + for y in range(self._num_rings % 2, self._num_rings, 2): + rows[middle + y] = pad + rows[middle + y] + if y != 0: + rows[middle - y] = pad + rows[middle - y] + + # Join the rows together and return the string. + universe_ids = '\n'.join(rows) + return universe_ids diff --git a/openmc/universe.py b/openmc/universe.py index 6a1e3da88..09f547042 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -1,6 +1,5 @@ -import abc from collections import OrderedDict, Iterable -from numbers import Real, Integral +from numbers import Integral from xml.etree import ElementTree as ET import sys import warnings @@ -9,449 +8,15 @@ import numpy as np import openmc import openmc.checkvalue as cv -from openmc.surface import Halfspace -from openmc.region import Region, Intersection, Complement if sys.version_info[0] >= 3: basestring = str -# A static variable for auto-generated Cell IDs -AUTO_CELL_ID = 10000 - # A dictionary for storing IDs of cell elements that have already been written, # used to optimize the writing process WRITTEN_IDS = {} - -def reset_auto_cell_id(): - global AUTO_CELL_ID - AUTO_CELL_ID = 10000 - - -class Cell(object): - """A region of space defined as the intersection of half-space created by - quadric surfaces. - - Parameters - ---------- - cell_id : int, optional - Unique identifier for the cell. If not specified, an identifier will - automatically be assigned. - name : str, optional - Name of the cell. If not specified, the name is the empty string. - - Attributes - ---------- - id : int - Unique identifier for the cell - name : str - Name of the cell - fill : Material or Universe or Lattice or 'void' or iterable of Material - Indicates what the region of space is filled with - region : openmc.region.Region - Region of space that is assigned to the cell. - rotation : ndarray - If the cell is filled with a universe, this array specifies the angles - in degrees about the x, y, and z axes that the filled universe should be - rotated. - translation : ndarray - If the cell is filled with a universe, this array specifies a vector - that is used to translate (shift) the universe. - offsets : ndarray - Array of offsets used for distributed cell searches - distribcell_index : int - Index of this cell in distribcell arrays - - """ - - def __init__(self, cell_id=None, name=''): - # Initialize Cell class attributes - self.id = cell_id - self.name = name - self._fill = None - self._type = None - self._region = None - self._rotation = None - self._translation = None - self._offsets = None - self._distribcell_index = None - - def __eq__(self, other): - if not isinstance(other, Cell): - return False - elif self.id != other.id: - return False - elif self.name != other.name: - return False - elif self.fill != other.fill: - return False - elif self.region != other.region: - return False - elif self.rotation != other.rotation: - return False - elif self.translation != other.translation: - return False - else: - return True - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash(repr(self)) - - def __repr__(self): - string = 'Cell\n' - string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) - string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) - - if isinstance(self._fill, openmc.Material): - string += '{0: <16}{1}{2}\n'.format('\tMaterial', '=\t', - self._fill._id) - elif isinstance(self._fill, Iterable): - string += '{0: <16}{1}'.format('\tMaterial', '=\t') - string += '[' - string += ', '.join(['void' if m == 'void' else str(m.id) - for m in self.fill]) - string += ']\n' - elif isinstance(self._fill, (Universe, Lattice)): - string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', - self._fill._id) - else: - string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', self._fill) - - string += '{0: <16}{1}{2}\n'.format('\tRegion', '=\t', self._region) - - string += '{0: <16}{1}{2}\n'.format('\tRotation', '=\t', - self._rotation) - string += '{0: <16}{1}{2}\n'.format('\tTranslation', '=\t', - self._translation) - string += '{0: <16}{1}{2}\n'.format('\tOffset', '=\t', self._offsets) - string += '{0: <16}{1}{2}\n'.format('\tDistribcell index', '=\t', - self._distribcell_index) - - return string - - @property - def id(self): - return self._id - - @property - def name(self): - return self._name - - @property - def fill(self): - return self._fill - - @property - def fill_type(self): - if isinstance(self.fill, openmc.Material): - return 'material' - elif isinstance(self.fill, openmc.Universe): - return 'universe' - elif isinstance(self.fill, openmc.Lattice): - return 'lattice' - else: - return None - - @property - def region(self): - return self._region - - @property - def rotation(self): - return self._rotation - - @property - def translation(self): - return self._translation - - @property - def offsets(self): - return self._offsets - - @property - def distribcell_index(self): - return self._distribcell_index - - @id.setter - def id(self, cell_id): - if cell_id is None: - global AUTO_CELL_ID - self._id = AUTO_CELL_ID - AUTO_CELL_ID += 1 - else: - cv.check_type('cell ID', cell_id, Integral) - cv.check_greater_than('cell ID', cell_id, 0, equality=True) - self._id = cell_id - - @name.setter - def name(self, name): - if name is not None: - cv.check_type('cell name', name, basestring) - self._name = name - else: - self._name = '' - - @fill.setter - def fill(self, fill): - if isinstance(fill, basestring): - if fill.strip().lower() == 'void': - self._type = 'void' - else: - msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ - 'Universe fill "{1}"'.format(self._id, fill) - raise ValueError(msg) - - elif isinstance(fill, openmc.Material): - self._type = 'normal' - - elif isinstance(fill, Iterable): - cv.check_type('cell.fill', fill, Iterable, - (openmc.Material, basestring)) - self._type = 'normal' - - elif isinstance(fill, Universe): - self._type = 'fill' - - elif isinstance(fill, Lattice): - self._type = 'lattice' - - else: - msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ - 'Universe fill "{1}"'.format(self._id, fill) - raise ValueError(msg) - - self._fill = fill - - @rotation.setter - def rotation(self, rotation): - cv.check_type('cell rotation', rotation, Iterable, Real) - cv.check_length('cell rotation', rotation, 3) - self._rotation = rotation - - @translation.setter - def translation(self, translation): - cv.check_type('cell translation', translation, Iterable, Real) - cv.check_length('cell translation', translation, 3) - self._translation = translation - - @offsets.setter - def offsets(self, offsets): - cv.check_type('cell offsets', offsets, Iterable) - self._offsets = offsets - - @region.setter - def region(self, region): - cv.check_type('cell region', region, Region) - self._region = region - - @distribcell_index.setter - def distribcell_index(self, ind): - cv.check_type('distribcell index', ind, Integral) - self._distribcell_index = ind - - def add_surface(self, surface, halfspace): - """Add a half-space to the list of half-spaces whose intersection defines the - cell. - - .. deprecated:: 0.7.1 - Use the Cell.region property to directly specify a Region - expression. - - Parameters - ---------- - surface : openmc.surface.Surface - Quadric surface dividing space - halfspace : {-1, 1} - Indicate whether the negative or positive half-space is to be used - - """ - - warnings.warn("Cell.add_surface(...) has been deprecated and may be " - "removed in a future version. The region for a Cell " - "should be defined using the region property directly.", - DeprecationWarning) - - if not isinstance(surface, openmc.Surface): - msg = 'Unable to add Surface "{0}" to Cell ID="{1}" since it is ' \ - 'not a Surface object'.format(surface, self._id) - raise ValueError(msg) - - if halfspace not in [-1, +1]: - msg = 'Unable to add Surface "{0}" to Cell ID="{1}" with halfspace ' \ - '"{2}" since it is not +/-1'.format(surface, self._id, halfspace) - raise ValueError(msg) - - # If no region has been assigned, simply use the half-space. Otherwise, - # take the intersection of the current region and the half-space - # specified - region = +surface if halfspace == 1 else -surface - if self.region is None: - self.region = region - else: - if isinstance(self.region, Intersection): - self.region.nodes.append(region) - else: - self.region = Intersection(self.region, region) - - def get_cell_instance(self, path, distribcell_index): - - # If the Cell is filled by a Material - if self._type == 'normal' or self._type == 'void': - offset = 0 - - # If the Cell is filled by a Universe - elif self._type == 'fill': - offset = self.offsets[distribcell_index-1] - offset += self.fill.get_cell_instance(path, distribcell_index) - - # If the Cell is filled by a Lattice - else: - offset = self.fill.get_cell_instance(path, distribcell_index) - - return offset - - def get_all_nuclides(self): - """Return all nuclides contained in the cell - - Returns - ------- - nuclides : dict - Dictionary whose keys are nuclide names and values are 2-tuples of - (nuclide, density) - - """ - - nuclides = OrderedDict() - - if self._type != 'void': - nuclides.update(self._fill.get_all_nuclides()) - - return nuclides - - def get_all_cells(self): - """Return all cells that are contained within this one if it is filled with a - universe or lattice - - Returns - ------- - cells : dict - Dictionary whose keys are cell IDs and values are Cell instances - - """ - - cells = OrderedDict() - - if self._type == 'fill' or self._type == 'lattice': - cells.update(self._fill.get_all_cells()) - - return cells - - def get_all_materials(self): - """Return all materials that are contained within the cell - - Returns - ------- - materials : dict - Dictionary whose keys are material IDs and values are Material instances - - """ - - materials = OrderedDict() - if self.fill_type == 'material': - materials[self.fill.id] = self.fill - - # Append all Cells in each Cell in the Universe to the dictionary - cells = self.get_all_cells() - for cell_id, cell in cells.items(): - materials.update(cell.get_all_materials()) - - return materials - - def get_all_universes(self): - """Return all universes that are contained within this one if any of - its cells are filled with a universe or lattice. - - Returns - ------- - universes : dict - Dictionary whose keys are universe IDs and values are Universe - instances - - """ - - universes = OrderedDict() - - if self._type == 'fill': - universes[self._fill._id] = self._fill - universes.update(self._fill.get_all_universes()) - elif self._type == 'lattice': - universes.update(self._fill.get_all_universes()) - - return universes - - def create_xml_subelement(self, xml_element): - element = ET.Element("cell") - element.set("id", str(self.id)) - - if len(self._name) > 0: - element.set("name", str(self.name)) - - if isinstance(self.fill, basestring): - element.set("material", "void") - - elif isinstance(self.fill, openmc.Material): - element.set("material", str(self.fill.id)) - - elif isinstance(self.fill, Iterable): - element.set("material", ' '.join([m if m == 'void' else str(m.id) - for m in self.fill])) - - elif isinstance(self.fill, (Universe, Lattice)): - element.set("fill", str(self.fill.id)) - self.fill.create_xml_subelement(xml_element) - - else: - element.set("fill", str(self.fill)) - self.fill.create_xml_subelement(xml_element) - - if self.region is not None: - # Set the region attribute with the region specification - element.set("region", str(self.region)) - - # Only surfaces that appear in a region are added to the geometry - # file, so the appropriate check is performed here. First we create - # a function which is called recursively to navigate through the CSG - # tree. When it reaches a leaf (a Halfspace), it creates a - # element for the corresponding surface if none has been created - # thus far. - def create_surface_elements(node, element): - if isinstance(node, Halfspace): - path = './surface[@id=\'{0}\']'.format(node.surface.id) - if xml_element.find(path) is None: - surface_subelement = node.surface.create_xml_subelement() - xml_element.append(surface_subelement) - elif isinstance(node, Complement): - create_surface_elements(node.node, element) - else: - for subnode in node.nodes: - create_surface_elements(subnode, element) - - # Call the recursive function from the top node - create_surface_elements(self.region, xml_element) - - if self.translation is not None: - element.set("translation", ' '.join(map(str, self.translation))) - - if self.rotation is not None: - element.set("rotation", ' '.join(map(str, self.rotation))) - - return element - - # A static variable for auto-generated Lattice (Universe) IDs AUTO_UNIVERSE_ID = 10000 @@ -566,7 +131,7 @@ class Universe(object): """ - if not isinstance(cell, Cell): + if not isinstance(cell, openmc.Cell): msg = 'Unable to add a Cell to Universe ID="{0}" since "{1}" is not ' \ 'a Cell'.format(self._id, cell) raise ValueError(msg) @@ -604,7 +169,7 @@ class Universe(object): """ - if not isinstance(cell, Cell): + if not isinstance(cell, openmc.Cell): msg = 'Unable to remove a Cell from Universe ID="{0}" since "{1}" is ' \ 'not a Cell'.format(self._id, cell) raise ValueError(msg) @@ -735,859 +300,3 @@ class Universe(object): # Append the Universe ID to the subelement and add to Element cell_subelement.set("universe", str(self._id)) xml_element.append(cell_subelement) - - -class Lattice(object): - """A repeating structure wherein each element is a universe. - - Parameters - ---------- - lattice_id : int, optional - Unique identifier for the lattice. If not specified, an identifier will - automatically be assigned. - name : str, optional - Name of the lattice. If not specified, the name is the empty string. - - Attributes - ---------- - id : int - Unique identifier for the lattice - name : str - Name of the lattice - pitch : float - Pitch of the lattice in cm - outer : int - The unique identifier of a universe to fill all space outside the - lattice - universes : ndarray of Universe - An array of universes filling each element of the lattice - - """ - - # This is an abstract class which cannot be instantiated - __metaclass__ = abc.ABCMeta - - def __init__(self, lattice_id=None, name=''): - # Initialize Lattice class attributes - self.id = lattice_id - self.name = name - self._pitch = None - self._outer = None - self._universes = None - - def __eq__(self, other): - if not isinstance(other, Lattice): - return False - elif self.id != other.id: - return False - elif self.name != other.name: - return False - elif self.pitch != other.pitch: - return False - elif self.outer != other.outer: - return False - elif self.universes != other.universes: - return False - else: - return True - - def __ne__(self, other): - return not self == other - - @property - def id(self): - return self._id - - @property - def name(self): - return self._name - - @property - def pitch(self): - return self._pitch - - @property - def outer(self): - return self._outer - - @property - def universes(self): - return self._universes - - @id.setter - def id(self, lattice_id): - if lattice_id is None: - global AUTO_UNIVERSE_ID - self._id = AUTO_UNIVERSE_ID - AUTO_UNIVERSE_ID += 1 - else: - cv.check_type('lattice ID', lattice_id, Integral) - cv.check_greater_than('lattice ID', lattice_id, 0, equality=True) - self._id = lattice_id - - @name.setter - def name(self, name): - if name is not None: - cv.check_type('lattice name', name, basestring) - self._name = name - else: - self._name = '' - - @outer.setter - def outer(self, outer): - cv.check_type('outer universe', outer, Universe) - self._outer = outer - - @universes.setter - def universes(self, universes): - cv.check_iterable_type('lattice universes', universes, Universe, - min_depth=2, max_depth=3) - self._universes = np.asarray(universes) - - def get_unique_universes(self): - """Determine all unique universes in the lattice - - Returns - ------- - universes : dict - Dictionary whose keys are universe IDs and values are Universe - instances - - """ - - univs = OrderedDict() - for k in range(len(self._universes)): - for j in range(len(self._universes[k])): - if isinstance(self._universes[k][j], Universe): - u = self._universes[k][j] - univs[u._id] = u - else: - for i in range(len(self._universes[k][j])): - u = self._universes[k][j][i] - assert isinstance(u, Universe) - univs[u._id] = u - - if self.outer is not None: - univs[self.outer._id] = self.outer - - return univs - - def get_all_nuclides(self): - """Return all nuclides contained in the lattice - - Returns - ------- - nuclides : dict - Dictionary whose keys are nuclide names and values are 2-tuples of - (nuclide, density) - - """ - - nuclides = OrderedDict() - - # Get all unique Universes contained in each of the lattice cells - unique_universes = self.get_unique_universes() - - # Append all Universes containing each cell to the dictionary - for universe_id, universe in unique_universes.items(): - nuclides.update(universe.get_all_nuclides()) - - return nuclides - - def get_all_cells(self): - """Return all cells that are contained within the lattice - - Returns - ------- - cells : dict - Dictionary whose keys are cell IDs and values are Cell instances - - """ - - cells = OrderedDict() - unique_universes = self.get_unique_universes() - - for universe_id, universe in unique_universes.items(): - cells.update(universe.get_all_cells()) - - return cells - - def get_all_materials(self): - """Return all materials that are contained within the lattice - - Returns - ------- - materials : dict - Dictionary whose keys are material IDs and values are Material instances - - """ - - materials = OrderedDict() - - # Append all Cells in each Cell in the Universe to the dictionary - cells = self.get_all_cells() - for cell_id, cell in cells.items(): - materials.update(cell.get_all_materials()) - - return materials - - def get_all_universes(self): - """Return all universes that are contained within the lattice - - Returns - ------- - universes : dict - Dictionary whose keys are universe IDs and values are Universe - instances - - """ - - # Initialize a dictionary of all Universes contained by the Lattice - # in each nested Universe level - all_universes = OrderedDict() - - # Get all unique Universes contained in each of the lattice cells - unique_universes = self.get_unique_universes() - - # Add the unique Universes filling each Lattice cell - all_universes.update(unique_universes) - - # Append all Universes containing each cell to the dictionary - for universe_id, universe in unique_universes.items(): - all_universes.update(universe.get_all_universes()) - - return all_universes - - -class RectLattice(Lattice): - """A lattice consisting of rectangular prisms. - - Parameters - ---------- - lattice_id : int, optional - Unique identifier for the lattice. If not specified, an identifier will - automatically be assigned. - name : str, optional - Name of the lattice. If not specified, the name is the empty string. - - Attributes - ---------- - id : int - Unique identifier for the lattice - name : str - Name of the lattice - dimension : array-like of int - An array of two or three integers representing the number of lattice - cells in the x- and y- (and z-) directions, respectively. - lower_left : array-like of float - The coordinates of the lower-left corner of the lattice. If the lattice - is two-dimensional, only the x- and y-coordinates are specified. - - """ - - def __init__(self, lattice_id=None, name=''): - super(RectLattice, self).__init__(lattice_id, name) - - # Initialize Lattice class attributes - self._dimension = None - self._lower_left = None - self._offsets = None - - def __eq__(self, other): - if not isinstance(other, RectLattice): - return False - elif not super(RectLattice, self).__eq__(other): - return False - elif self.dimension != other.dimension: - return False - elif self.lower_left != other.lower_left: - return False - else: - return True - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash(repr(self)) - - def __repr__(self): - string = 'RectLattice\n' - string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) - string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) - string += '{0: <16}{1}{2}\n'.format('\tDimension', '=\t', - self._dimension) - string += '{0: <16}{1}{2}\n'.format('\tLower Left', '=\t', - self._lower_left) - string += '{0: <16}{1}{2}\n'.format('\tPitch', '=\t', self._pitch) - - if self._outer is not None: - string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', - self._outer._id) - else: - string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', - self._outer) - - string += '{0: <16}\n'.format('\tUniverses') - - # Lattice nested Universe IDs - column major for Fortran - for i, universe in enumerate(np.ravel(self._universes)): - string += '{0} '.format(universe._id) - - # Add a newline character every time we reach end of row of cells - if (i+1) % self._dimension[-1] == 0: - string += '\n' - - string = string.rstrip('\n') - - if self._offsets is not None: - string += '{0: <16}\n'.format('\tOffsets') - - # Lattice cell offsets - for i, offset in enumerate(np.ravel(self._offsets)): - string += '{0} '.format(offset) - - # Add a newline character when we reach end of row of cells - if (i+1) % self._dimension[-1] == 0: - string += '\n' - - string = string.rstrip('\n') - - return string - - @property - def dimension(self): - return self._dimension - - @property - def lower_left(self): - return self._lower_left - - @property - def offsets(self): - return self._offsets - - @dimension.setter - def dimension(self, dimension): - cv.check_type('lattice dimension', dimension, Iterable, Integral) - cv.check_length('lattice dimension', dimension, 2, 3) - for dim in dimension: - cv.check_greater_than('lattice dimension', dim, 0) - self._dimension = dimension - - @lower_left.setter - def lower_left(self, lower_left): - cv.check_type('lattice lower left corner', lower_left, Iterable, Real) - cv.check_length('lattice lower left corner', lower_left, 2, 3) - self._lower_left = lower_left - - @offsets.setter - def offsets(self, offsets): - cv.check_type('lattice offsets', offsets, Iterable) - self._offsets = offsets - - @Lattice.pitch.setter - def pitch(self, pitch): - cv.check_type('lattice pitch', pitch, Iterable, Real) - cv.check_length('lattice pitch', pitch, 2, 3) - for dim in pitch: - cv.check_greater_than('lattice pitch', dim, 0.0) - self._pitch = pitch - - def get_cell_instance(self, path, distribcell_index): - - # Extract the lattice element from the path - next_index = path.index('-') - lat_id_indices = path[:next_index] - path = path[next_index+2:] - - # Extract the lattice cell indices from the path - i1 = lat_id_indices.index('(') - i2 = lat_id_indices.index(')') - i = lat_id_indices[i1+1:i2] - lat_x = int(i.split(',')[0]) - 1 - lat_y = int(i.split(',')[1]) - 1 - lat_z = int(i.split(',')[2]) - 1 - - # For 2D Lattices - if len(self._dimension) == 2: - offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] - offset += self._universes[lat_x][lat_y].get_cell_instance(path, - distribcell_index) - - # For 3D Lattices - else: - offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] - offset += self._universes[lat_z][lat_y][lat_x].get_cell_instance( - path, distribcell_index) - - return offset - - def create_xml_subelement(self, xml_element): - - # Determine if XML element already contains subelement for this Lattice - path = './lattice[@id=\'{0}\']'.format(self._id) - test = xml_element.find(path) - - # If the element does contain the Lattice subelement, then return - if test is not None: - return - - lattice_subelement = ET.Element("lattice") - lattice_subelement.set("id", str(self._id)) - - if len(self._name) > 0: - lattice_subelement.set("name", str(self._name)) - - # Export the Lattice cell pitch - pitch = ET.SubElement(lattice_subelement, "pitch") - pitch.text = ' '.join(map(str, self._pitch)) - - # Export the Lattice outer Universe (if specified) - if self._outer is not None: - outer = ET.SubElement(lattice_subelement, "outer") - outer.text = '{0}'.format(self._outer._id) - self._outer.create_xml_subelement(xml_element) - - # Export Lattice cell dimensions - dimension = ET.SubElement(lattice_subelement, "dimension") - dimension.text = ' '.join(map(str, self._dimension)) - - # Export Lattice lower left - lower_left = ET.SubElement(lattice_subelement, "lower_left") - lower_left.text = ' '.join(map(str, self._lower_left)) - - # Export the Lattice nested Universe IDs - column major for Fortran - universe_ids = '\n' - - # 3D Lattices - if len(self._dimension) == 3: - for z in range(self._dimension[2]): - for y in range(self._dimension[1]): - for x in range(self._dimension[0]): - universe = self._universes[z][y][x] - - # Append Universe ID to the Lattice XML subelement - universe_ids += '{0} '.format(universe._id) - - # Create XML subelement for this Universe - universe.create_xml_subelement(xml_element) - - # Add newline character when we reach end of row of cells - universe_ids += '\n' - - # Add newline character when we reach end of row of cells - universe_ids += '\n' - - # 2D Lattices - else: - for y in range(self._dimension[1]): - for x in range(self._dimension[0]): - universe = self._universes[y][x] - - # Append Universe ID to Lattice XML subelement - universe_ids += '{0} '.format(universe._id) - - # Create XML subelement for this Universe - universe.create_xml_subelement(xml_element) - - # Add newline character when we reach end of row of cells - universe_ids += '\n' - - # Remove trailing newline character from Universe IDs string - universe_ids = universe_ids.rstrip('\n') - - universes = ET.SubElement(lattice_subelement, "universes") - universes.text = universe_ids - - # Append the XML subelement for this Lattice to the XML element - xml_element.append(lattice_subelement) - - -class HexLattice(Lattice): - """A lattice consisting of hexagonal prisms. - - Parameters - ---------- - lattice_id : int, optional - Unique identifier for the lattice. If not specified, an identifier will - automatically be assigned. - name : str, optional - Name of the lattice. If not specified, the name is the empty string. - - Attributes - ---------- - id : int - Unique identifier for the lattice - name : str - Name of the lattice - num_rings : int - Number of radial ring positions in the xy-plane - num_axial : int - Number of positions along the z-axis. - center : array-like of float - Coordinates of the center of the lattice. If the lattice does not have - axial sections then only the x- and y-coordinates are specified - - """ - - def __init__(self, lattice_id=None, name=''): - super(HexLattice, self).__init__(lattice_id, name) - - # Initialize Lattice class attributes - self._num_rings = None - self._num_axial = None - self._center = None - - def __eq__(self, other): - if not isinstance(other, HexLattice): - return False - elif not super(HexLattice, self).__eq__(other): - return False - elif self.num_rings != other.num_rings: - return False - elif self.num_axial != other.num_axial: - return False - elif self.center != other.center: - return False - else: - return True - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash(repr(self)) - - def __repr__(self): - string = 'HexLattice\n' - string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) - string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) - string += '{0: <16}{1}{2}\n'.format('\t# Rings', '=\t', self._num_rings) - string += '{0: <16}{1}{2}\n'.format('\t# Axial', '=\t', self._num_axial) - string += '{0: <16}{1}{2}\n'.format('\tCenter', '=\t', - self._center) - string += '{0: <16}{1}{2}\n'.format('\tPitch', '=\t', self._pitch) - - if self._outer is not None: - string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', - self._outer._id) - else: - string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', - self._outer) - - string += '{0: <16}\n'.format('\tUniverses') - - if self._num_axial is not None: - slices = [self._repr_axial_slice(x) for x in self._universes] - string += '\n'.join(slices) - - else: - string += self._repr_axial_slice(self._universes) - - return string - - @property - def num_rings(self): - return self._num_rings - - @property - def num_axial(self): - return self._num_axial - - @property - def center(self): - return self._center - - @num_rings.setter - def num_rings(self, num_rings): - cv.check_type('number of rings', num_rings, Integral) - cv.check_greater_than('number of rings', num_rings, 0) - self._num_rings = num_rings - - @num_axial.setter - def num_axial(self, num_axial): - cv.check_type('number of axial', num_axial, Integral) - cv.check_greater_than('number of axial', num_axial, 0) - self._num_axial = num_axial - - @center.setter - def center(self, center): - cv.check_type('lattice center', center, Iterable, Real) - cv.check_length('lattice center', center, 2, 3) - self._center = center - - @Lattice.pitch.setter - def pitch(self, pitch): - cv.check_type('lattice pitch', pitch, Iterable, Real) - cv.check_length('lattice pitch', pitch, 1, 2) - for dim in pitch: - cv.check_greater_than('lattice pitch', dim, 0) - self._pitch = pitch - - @Lattice.universes.setter - def universes(self, universes): - # Call Lattice.universes parent class setter property - Lattice.universes.fset(self, universes) - - # NOTE: This routine assumes that the user creates a "ragged" list of - # lists, where each sub-list corresponds to one ring of Universes. - # The sub-lists are ordered from outermost ring to innermost ring. - # The Universes within each sub-list are ordered from the "top" in a - # clockwise fashion. - - # Check to see if the given universes look like a 2D or a 3D array. - if isinstance(self._universes[0][0], Universe): - n_dims = 2 - - elif isinstance(self._universes[0][0][0], Universe): - n_dims = 3 - - else: - msg = 'HexLattice ID={0:d} does not appear to be either 2D or ' \ - '3D. Make sure set_universes was given a two-deep or ' \ - 'three-deep iterable of universes.'.format(self._id) - raise RuntimeError(msg) - - # Set the number of axial positions. - if n_dims == 3: - self.num_axial = len(self._universes) - else: - self._num_axial = None - - # Set the number of rings and make sure this number is consistent for - # all axial positions. - if n_dims == 3: - self.num_rings = len(self._universes) - for rings in self._universes: - if len(rings) != self._num_rings: - msg = 'HexLattice ID={0:d} has an inconsistent number of ' \ - 'rings per axial positon'.format(self._id) - raise ValueError(msg) - - else: - self.num_rings = len(self._universes) - - # Make sure there are the correct number of elements in each ring. - if n_dims == 3: - for axial_slice in self._universes: - # Check the center ring. - if len(axial_slice[-1]) != 1: - msg = 'HexLattice ID={0:d} has the wrong number of ' \ - 'elements in the innermost ring. Only 1 element is ' \ - 'allowed in the innermost ring.'.format(self._id) - raise ValueError(msg) - - # Check the outer rings. - for r in range(self._num_rings-1): - if len(axial_slice[r]) != 6*(self._num_rings - 1 - r): - msg = 'HexLattice ID={0:d} has the wrong number of ' \ - 'elements in ring number {1:d} (counting from the '\ - 'outermost ring). This ring should have {2:d} ' \ - 'elements.'.format(self._id, r, - 6*(self._num_rings - 1 - r)) - raise ValueError(msg) - - else: - axial_slice = self._universes - # Check the center ring. - if len(axial_slice[-1]) != 1: - msg = 'HexLattice ID={0:d} has the wrong number of ' \ - 'elements in the innermost ring. Only 1 element is ' \ - 'allowed in the innermost ring.'.format(self._id) - raise ValueError(msg) - - # Check the outer rings. - for r in range(self._num_rings-1): - if len(axial_slice[r]) != 6*(self._num_rings - 1 - r): - msg = 'HexLattice ID={0:d} has the wrong number of ' \ - 'elements in ring number {1:d} (counting from the '\ - 'outermost ring). This ring should have {2:d} ' \ - 'elements.'.format(self._id, r, - 6*(self._num_rings - 1 - r)) - raise ValueError(msg) - - def create_xml_subelement(self, xml_element): - # Determine if XML element already contains subelement for this Lattice - path = './hex_lattice[@id=\'{0}\']'.format(self._id) - test = xml_element.find(path) - - # If the element does contain the Lattice subelement, then return - if test is not None: - return - - lattice_subelement = ET.Element("hex_lattice") - lattice_subelement.set("id", str(self._id)) - - if len(self._name) > 0: - lattice_subelement.set("name", str(self._name)) - - # Export the Lattice cell pitch - pitch = ET.SubElement(lattice_subelement, "pitch") - pitch.text = ' '.join(map(str, self._pitch)) - - # Export the Lattice outer Universe (if specified) - if self._outer is not None: - outer = ET.SubElement(lattice_subelement, "outer") - outer.text = '{0}'.format(self._outer._id) - self._outer.create_xml_subelement(xml_element) - - lattice_subelement.set("n_rings", str(self._num_rings)) - - if self._num_axial is not None: - lattice_subelement.set("n_axial", str(self._num_axial)) - - # Export Lattice cell center - dimension = ET.SubElement(lattice_subelement, "center") - dimension.text = ' '.join(map(str, self._center)) - - # Export the Lattice nested Universe IDs. - - # 3D Lattices - if self._num_axial is not None: - slices = [] - for z in range(self._num_axial): - # Initialize the center universe. - universe = self._universes[z][-1][0] - universe.create_xml_subelement(xml_element) - - # Initialize the remaining universes. - for r in range(self._num_rings-1): - for theta in range(6*(self._num_rings - 1 - r)): - universe = self._universes[z][r][theta] - universe.create_xml_subelement(xml_element) - - # Get a string representation of the universe IDs. - slices.append(self._repr_axial_slice(self._universes[z])) - - # Collapse the list of axial slices into a single string. - universe_ids = '\n'.join(slices) - - # 2D Lattices - else: - # Initialize the center universe. - universe = self._universes[-1][0] - universe.create_xml_subelement(xml_element) - - # Initialize the remaining universes. - for r in range(self._num_rings - 1): - for theta in range(6*(self._num_rings - 1 - r)): - universe = self._universes[r][theta] - universe.create_xml_subelement(xml_element) - - # Get a string representation of the universe IDs. - universe_ids = self._repr_axial_slice(self._universes) - - universes = ET.SubElement(lattice_subelement, "universes") - universes.text = '\n' + universe_ids - - # Append the XML subelement for this Lattice to the XML element - xml_element.append(lattice_subelement) - - def _repr_axial_slice(self, universes): - """Return string representation for the given 2D group of universes. - - The 'universes' argument should be a list of lists of universes where - each sub-list represents a single ring. The first list should be the - outer ring. - """ - - # Find the largest universe ID and count the number of digits so we can - # properly pad the output string later. - largest_id = max([max([univ._id for univ in ring]) - for ring in universes]) - n_digits = len(str(largest_id)) - pad = ' '*n_digits - id_form = '{: ^' + str(n_digits) + 'd}' - - # Initialize the list for each row. - rows = [ [] for i in range(1 + 4 * (self._num_rings-1)) ] - middle = 2 * (self._num_rings - 1) - - # Start with the degenerate first ring. - universe = universes[-1][0] - rows[middle] = [id_form.format(universe._id)] - - # Add universes one ring at a time. - for r in range(1, self._num_rings): - # r_prime increments down while r increments up. - r_prime = self._num_rings - 1 - r - theta = 0 - y = middle + 2*r - - # Climb down the top-right. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].append(id_form.format(universe._id)) - - # Translate the indices. - y -= 1 - theta += 1 - - # Climb down the right. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].append(id_form.format(universe._id)) - - # Translate the indices. - y -= 2 - theta += 1 - - # Climb down the bottom-right. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].append(id_form.format(universe._id)) - - # Translate the indices. - y -= 1 - theta += 1 - - # Climb up the bottom-left. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].insert(0, id_form.format(universe._id)) - - # Translate the indices. - y += 1 - theta += 1 - - # Climb up the left. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].insert(0, id_form.format(universe._id)) - - # Translate the indices. - y += 2 - theta += 1 - - # Climb up the top-left. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].insert(0, id_form.format(universe._id)) - - # Translate the indices. - y += 1 - theta += 1 - - # Flip the rows and join each row into a single string. - rows = [pad.join(x) for x in rows[::-1]] - - # Pad the beginning of the rows so they line up properly. - for y in range(self._num_rings - 1): - rows[y] = (self._num_rings - 1 - y)*pad + rows[y] - rows[-1 - y] = (self._num_rings - 1 - y)*pad + rows[-1 - y] - - for y in range(self._num_rings % 2, self._num_rings, 2): - rows[middle + y] = pad + rows[middle + y] - if y != 0: - rows[middle - y] = pad + rows[middle - y] - - # Join the rows together and return the string. - universe_ids = '\n'.join(rows) - return universe_ids From 14dc134869d6b4659ef78c89da8605f57c7d0429 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 13 Apr 2016 22:17:16 -0500 Subject: [PATCH 097/259] Complete overhaul of Python API documentation --- .gitignore | 1 + docs/source/_templates/myclass.rst | 7 + docs/source/conf.py | 39 ++- docs/source/pythonapi/ace.rst | 8 - docs/source/pythonapi/cmfd.rst | 8 - docs/source/pythonapi/element.rst | 8 - docs/source/pythonapi/executor.rst | 8 - docs/source/pythonapi/filter.rst | 8 - docs/source/pythonapi/geometry.rst | 8 - docs/source/pythonapi/index.rst | 280 ++++++++++++++++++--- docs/source/pythonapi/material.rst | 8 - docs/source/pythonapi/mesh.rst | 8 - docs/source/pythonapi/mgxs.rst | 95 ------- docs/source/pythonapi/mgxs_library.rst | 8 - docs/source/pythonapi/nuclide.rst | 8 - docs/source/pythonapi/particle_restart.rst | 8 - docs/source/pythonapi/plots.rst | 8 - docs/source/pythonapi/settings.rst | 8 - docs/source/pythonapi/source.rst | 8 - docs/source/pythonapi/statepoint.rst | 8 - docs/source/pythonapi/stats.rst | 58 ----- docs/source/pythonapi/summary.rst | 8 - docs/source/pythonapi/surface.rst | 8 - docs/source/pythonapi/tallies.rst | 8 - docs/source/pythonapi/trigger.rst | 8 - docs/source/pythonapi/universe.rst | 8 - docs/source/usersguide/processing.rst | 8 +- openmc/__init__.py | 2 + openmc/cell.py | 12 +- openmc/cmfd.py | 4 +- openmc/element.py | 2 +- openmc/filter.py | 16 +- openmc/geometry.py | 28 +-- openmc/lattice.py | 12 +- openmc/material.py | 18 +- openmc/mgxs/groups.py | 16 +- openmc/mgxs/library.py | 18 +- openmc/mgxs/mgxs.py | 66 ++--- openmc/mgxs_library.py | 10 +- openmc/plots.py | 6 +- openmc/region.py | 48 ++-- openmc/settings.py | 10 +- openmc/statepoint.py | 42 ++-- openmc/stats/multivariate.py | 40 +-- openmc/stats/univariate.py | 16 +- openmc/summary.py | 10 +- openmc/surface.py | 40 +-- openmc/tallies.py | 135 +++++----- openmc/universe.py | 16 +- 49 files changed, 555 insertions(+), 660 deletions(-) create mode 100644 docs/source/_templates/myclass.rst delete mode 100644 docs/source/pythonapi/ace.rst delete mode 100644 docs/source/pythonapi/cmfd.rst delete mode 100644 docs/source/pythonapi/element.rst delete mode 100644 docs/source/pythonapi/executor.rst delete mode 100644 docs/source/pythonapi/filter.rst delete mode 100644 docs/source/pythonapi/geometry.rst delete mode 100644 docs/source/pythonapi/material.rst delete mode 100644 docs/source/pythonapi/mesh.rst delete mode 100644 docs/source/pythonapi/mgxs.rst delete mode 100644 docs/source/pythonapi/mgxs_library.rst delete mode 100644 docs/source/pythonapi/nuclide.rst delete mode 100644 docs/source/pythonapi/particle_restart.rst delete mode 100644 docs/source/pythonapi/plots.rst delete mode 100644 docs/source/pythonapi/settings.rst delete mode 100644 docs/source/pythonapi/source.rst delete mode 100644 docs/source/pythonapi/statepoint.rst delete mode 100644 docs/source/pythonapi/stats.rst delete mode 100644 docs/source/pythonapi/summary.rst delete mode 100644 docs/source/pythonapi/surface.rst delete mode 100644 docs/source/pythonapi/tallies.rst delete mode 100644 docs/source/pythonapi/trigger.rst delete mode 100644 docs/source/pythonapi/universe.rst diff --git a/.gitignore b/.gitignore index 815e97851..f0378dfc6 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ examples/python/**/*.xml docs/build docs/source/_images/*.pdf docs/source/_images/*.aux +docs/source/pythonapi/generated/ # Source build build diff --git a/docs/source/_templates/myclass.rst b/docs/source/_templates/myclass.rst new file mode 100644 index 000000000..a0560f93a --- /dev/null +++ b/docs/source/_templates/myclass.rst @@ -0,0 +1,7 @@ +{{ fullname }} +{{ underline }} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: diff --git a/docs/source/conf.py b/docs/source/conf.py index 6ca551a43..3bf5b0b1e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -24,13 +24,8 @@ except ImportError: from mock import Mock as MagicMock -class Mock(MagicMock): - @classmethod - def __getattr__(cls, name): - return Mock() - MOCK_MODULES = ['numpy', 'h5py', 'pandas', 'opencg'] -sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES) +sys.modules.update((mod_name, MagicMock()) for mod_name in MOCK_MODULES) # If extensions (or modules to document with autodoc) are in another directory, @@ -48,6 +43,7 @@ extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.mathjax', 'sphinx.ext.autosummary', + 'sphinx.ext.intersphinx', 'sphinx_numfig', 'notebook_sphinxext'] @@ -65,7 +61,7 @@ master_doc = 'index' # General information about the project. project = u'OpenMC' -copyright = u'2011-2015, Massachusetts Institute of Technology' +copyright = u'2011-2016, Massachusetts Institute of Technology' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -122,20 +118,13 @@ pygments_style = 'tango' # -- Options for HTML output --------------------------------------------------- -# The theme to use for HTML and HTML Help pages. Major themes that come with -# Sphinx are currently 'default' and 'sphinxdoc'. -if on_rtd: - html_theme = 'default' - html_logo = '_images/openmc200px.png' -else: - html_theme = 'haiku' - html_theme_options = {'full_logo': True, - 'linkcolor': '#0c3762', - 'visitedlinkcolor': '#0c3762'} - html_logo = '_images/openmc.png' +# The theme to use for HTML and HTML Help pages +if not on_rtd: + import sphinx_rtd_theme + html_theme = 'sphinx_rtd_theme' + html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = ["_theme"] +html_logo = '_images/openmc200px.png' # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". @@ -248,4 +237,12 @@ latex_elements = { #Autodocumentation Flags #autodoc_member_order = "groupwise" #autoclass_content = "both" -#autosummary_generate = [] +autosummary_generate = True + +napoleon_use_ivar = True + +intersphinx_mapping = { + 'python': ('https://docs.python.org/3', None), + 'numpy': ('http://docs.scipy.org/doc/numpy/', None), + 'pandas': ('http://pandas.pydata.org/pandas-docs/stable/', None) +} diff --git a/docs/source/pythonapi/ace.rst b/docs/source/pythonapi/ace.rst deleted file mode 100644 index 4810ec4bb..000000000 --- a/docs/source/pythonapi/ace.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_ace: - -========== -ACE Format -========== - -.. automodule:: openmc.ace - :members: diff --git a/docs/source/pythonapi/cmfd.rst b/docs/source/pythonapi/cmfd.rst deleted file mode 100644 index 51470069f..000000000 --- a/docs/source/pythonapi/cmfd.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_cmfd: - -==== -CMFD -==== - -.. automodule:: openmc.cmfd - :members: diff --git a/docs/source/pythonapi/element.rst b/docs/source/pythonapi/element.rst deleted file mode 100644 index 473cbba45..000000000 --- a/docs/source/pythonapi/element.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_element: - -======= -Element -======= - -.. automodule:: openmc.element - :members: diff --git a/docs/source/pythonapi/executor.rst b/docs/source/pythonapi/executor.rst deleted file mode 100644 index ef6693ec9..000000000 --- a/docs/source/pythonapi/executor.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_executor: - -======== -Executor -======== - -.. automodule:: openmc.executor - :members: diff --git a/docs/source/pythonapi/filter.rst b/docs/source/pythonapi/filter.rst deleted file mode 100644 index f93ba5a15..000000000 --- a/docs/source/pythonapi/filter.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_filter: - -====== -Filter -====== - -.. automodule:: openmc.filter - :members: diff --git a/docs/source/pythonapi/geometry.rst b/docs/source/pythonapi/geometry.rst deleted file mode 100644 index 6b87edb97..000000000 --- a/docs/source/pythonapi/geometry.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_geometry: - -======== -Geometry -======== - -.. automodule:: openmc.geometry - :members: diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 864b48c55..3e0d8a418 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -13,61 +13,261 @@ online. We recommend going through the modules from Codecademy_ and/or the `Scipy lectures`_. The full API documentation serves to provide more information on a given module or class. -**Handling nuclear data:** +------------------------------------ +:mod:`openmc` -- Basic Functionality +------------------------------------ -.. toctree:: - :maxdepth: 1 +Handling nuclear data +--------------------- - ace - mgxs_library +Classes ++++++++ -**Creating input files:** +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst -.. toctree:: - :maxdepth: 1 + openmc.XSdata + openmc.MGXSLibraryFile - cmfd - element - filter - geometry - material - mesh - nuclide - opencg_compatible - plots - settings - source - stats - surface - tallies - trigger - universe +Functions ++++++++++ -**Running OpenMC:** +.. autosummary:: + :toctree: generated + :nosignatures: -.. toctree:: - :maxdepth: 1 + openmc.ace.ascii_to_binary - executor +Simulation Settings +------------------- -**Post-processing:** +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst -.. toctree:: - :maxdepth: 1 + openmc.Source + openmc.ResonanceScattering + openmc.SettingsFile - particle_restart - statepoint - summary - tallies +Material Specification +---------------------- -**Multi-Group Cross Section Generation** +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst -.. toctree:: - :maxdepth: 1 + openmc.Nuclide + openmc.Element + openmc.Macroscopic + openmc.Material + openmc.MaterialsFile - mgxs +Building geometry +----------------- -**Example Jupyter Notebooks:** +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.XPlane + openmc.YPlane + openmc.ZPlane + openmc.XCylinder + openmc.YCylinder + openmc.ZCylinder + openmc.Sphere + openmc.Halfspace + openmc.Intersection + openmc.Union + openmc.Complement + openmc.Cell + openmc.Universe + openmc.RectLattice + openmc.HexLattice + openmc.Geometry + openmc.GeometryFile + +Many of the above classes are derived from several abstract classes: + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.Surface + openmc.Region + openmc.Lattice + +Constructing Tallies +-------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.Filter + openmc.Mesh + openmc.Trigger + openmc.Tally + openmc.TalliesFile + +Coarse Mesh Finite Difference Acceleration +------------------------------------------ + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.CMFDMesh + openmc.CMFDFile + +Plotting +-------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.Plot + openmc.PlotsFile + +Running OpenMC +-------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.Executor + +Post-processing +--------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.Particle + openmc.StatePoint + openmc.Summary + +Various classes may be created when performing tally slicing and/or arithmetic: + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.CrossScore + openmc.CrossNuclide + openmc.CrossFilter + openmc.AggregateScore + openmc.AggregateNuclide + openmc.AggregateFilter + +--------------------------------- +:mod:`openmc.stats` -- Statistics +--------------------------------- + +Univariate Probability Distributions +------------------------------------ + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.stats.Univariate + openmc.stats.Discrete + openmc.stats.Uniform + openmc.stats.Maxwell + openmc.stats.Watt + openmc.stats.Tabular + +Angular Distributions +--------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.stats.UnitSphere + openmc.stats.PolarAzimuthal + openmc.stats.Isotropic + openmc.stats.Monodirectional + +Spatial Distributions +--------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.stats.Spatial + openmc.stats.CartesianIndependent + openmc.stats.Box + openmc.stats.Point + +---------------------------------------------------------- +:mod:`openmc.mgxs` -- Multi-Group Cross Section Generation +---------------------------------------------------------- + +Energy Groups +------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.mgxs.EnergyGroups + +Multi-group Cross Sections +-------------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.mgxs.MGXS + openmc.mgxs.AbsorptionXS + openmc.mgxs.CaptureXS + openmc.mgxs.Chi + openmc.mgxs.FissionXS + openmc.mgxs.NuFissionXS + openmc.mgxs.NuScatterXS + openmc.mgxs.NuScatterMatrixXS + openmc.mgxs.ScatterXS + openmc.mgxs.ScatterMatrixXS + openmc.mgxs.TotalXS + openmc.mgxs.TransportXS + +Multi-group Cross Section Libraries +----------------------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.mgxs.Library + +------------------------- +Example Jupyter Notebooks +------------------------- .. toctree:: :maxdepth: 1 diff --git a/docs/source/pythonapi/material.rst b/docs/source/pythonapi/material.rst deleted file mode 100644 index 16a3af701..000000000 --- a/docs/source/pythonapi/material.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_material: - -========= -Materials -========= - -.. automodule:: openmc.material - :members: diff --git a/docs/source/pythonapi/mesh.rst b/docs/source/pythonapi/mesh.rst deleted file mode 100644 index dbecd7c31..000000000 --- a/docs/source/pythonapi/mesh.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_mesh: - -==== -Mesh -==== - -.. automodule:: openmc.mesh - :members: diff --git a/docs/source/pythonapi/mgxs.rst b/docs/source/pythonapi/mgxs.rst deleted file mode 100644 index 2a0bb52ba..000000000 --- a/docs/source/pythonapi/mgxs.rst +++ /dev/null @@ -1,95 +0,0 @@ -.. _pythonapi_mgxs: - -========================== -Multi-Group Cross Sections -========================== - ----------------------------- -Summary of Available Classes ----------------------------- - -Energy Groups -------------- - -.. currentmodule:: openmc.mgxs.groups - -.. autosummary:: - - EnergyGroups - -Multi-group Cross Sections --------------------------- - -.. currentmodule:: openmc.mgxs.mgxs - -.. autosummary:: - - MGXS - AbsorptionXS - CaptureXS - Chi - FissionXS - NuFissionXS - NuScatterXS - NuScatterMatrixXS - ScatterXS - ScatterMatrixXS - TotalXS - TransportXS - -Multi-group Cross Section Libraries ------------------------------------ - -.. currentmodule:: openmc.mgxs.library - -.. autosummary:: - - Library - -------------------- -Class Documentation -------------------- - -.. automodule:: openmc.mgxs.groups - :members: - -.. currentmodule:: openmc.mgxs.mgxs - -.. autoclass:: MGXS - :members: - -.. autoclass:: AbsorptionXS - :members: - -.. autoclass:: CaptureXS - :members: - -.. autoclass:: Chi - :members: - -.. autoclass:: FissionXS - :members: - -.. autoclass:: NuFissionXS - :members: - -.. autoclass:: NuScatterXS - :members: - -.. autoclass:: NuScatterMatrixXS - :members: - -.. autoclass:: ScatterXS - :members: - -.. autoclass:: ScatterMatrixXS - :members: - -.. autoclass:: TotalXS - :members: - -.. autoclass:: TransportXS - :members: - -.. automodule:: openmc.mgxs.library - :members: diff --git a/docs/source/pythonapi/mgxs_library.rst b/docs/source/pythonapi/mgxs_library.rst deleted file mode 100644 index bdcdc364c..000000000 --- a/docs/source/pythonapi/mgxs_library.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_mgxs_library: - -============================== -Multi-group Cross Section Data -============================== - -.. automodule:: openmc.mgxs_library - :members: diff --git a/docs/source/pythonapi/nuclide.rst b/docs/source/pythonapi/nuclide.rst deleted file mode 100644 index 9e3214e92..000000000 --- a/docs/source/pythonapi/nuclide.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_nuclide: - -======= -Nuclide -======= - -.. automodule:: openmc.nuclide - :members: diff --git a/docs/source/pythonapi/particle_restart.rst b/docs/source/pythonapi/particle_restart.rst deleted file mode 100644 index 66ed89988..000000000 --- a/docs/source/pythonapi/particle_restart.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_particle_restart: - -================ -Particle Restart -================ - -.. automodule:: openmc.particle_restart - :members: diff --git a/docs/source/pythonapi/plots.rst b/docs/source/pythonapi/plots.rst deleted file mode 100644 index 8ad5348be..000000000 --- a/docs/source/pythonapi/plots.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_plots: - -===== -Plots -===== - -.. automodule:: openmc.plots - :members: diff --git a/docs/source/pythonapi/settings.rst b/docs/source/pythonapi/settings.rst deleted file mode 100644 index 3a3915ff5..000000000 --- a/docs/source/pythonapi/settings.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_settings: - -======== -Settings -======== - -.. automodule:: openmc.settings - :members: diff --git a/docs/source/pythonapi/source.rst b/docs/source/pythonapi/source.rst deleted file mode 100644 index 4bc770363..000000000 --- a/docs/source/pythonapi/source.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_source: - -====== -Source -====== - -.. automodule:: openmc.source - :members: diff --git a/docs/source/pythonapi/statepoint.rst b/docs/source/pythonapi/statepoint.rst deleted file mode 100644 index 737fc03fc..000000000 --- a/docs/source/pythonapi/statepoint.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_statepoint: - -========== -Statepoint -========== - -.. automodule:: openmc.statepoint - :members: diff --git a/docs/source/pythonapi/stats.rst b/docs/source/pythonapi/stats.rst deleted file mode 100644 index 58060cacb..000000000 --- a/docs/source/pythonapi/stats.rst +++ /dev/null @@ -1,58 +0,0 @@ -.. _pythonapi_stats: - -===================== -Statistical Functions -===================== - ----------------------------- -Summary of Available Classes ----------------------------- - -Univariate Probability Distributions ------------------------------------- - -.. currentmodule:: openmc.stats.univariate - -.. autosummary:: - - Univariate - Discrete - Uniform - Maxwell - Watt - Tabular - -Angular Distributions ---------------------- - -.. currentmodule:: openmc.stats.multivariate - -.. autosummary:: - - UnitSphere - PolarAzimuthal - Isotropic - Monodirectional - -Spatial Distributions ---------------------- - -.. autosummary:: - - Spatial - CartesianIndependent - Box - Point - - -Univariate Probability Distributions ------------------------------------- - -.. automodule:: openmc.stats.univariate - :members: - -Multivariate Probability Distributions --------------------------------------- - -.. automodule:: openmc.stats.multivariate - :members: diff --git a/docs/source/pythonapi/summary.rst b/docs/source/pythonapi/summary.rst deleted file mode 100644 index 9a791127b..000000000 --- a/docs/source/pythonapi/summary.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_summary: - -======= -Summary -======= - -.. automodule:: openmc.summary - :members: diff --git a/docs/source/pythonapi/surface.rst b/docs/source/pythonapi/surface.rst deleted file mode 100644 index cc31f5b3e..000000000 --- a/docs/source/pythonapi/surface.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_surface: - -======= -Surface -======= - -.. automodule:: openmc.surface - :members: diff --git a/docs/source/pythonapi/tallies.rst b/docs/source/pythonapi/tallies.rst deleted file mode 100644 index 2f24edf3a..000000000 --- a/docs/source/pythonapi/tallies.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_tallies: - -======= -Tallies -======= - -.. automodule:: openmc.tallies - :members: diff --git a/docs/source/pythonapi/trigger.rst b/docs/source/pythonapi/trigger.rst deleted file mode 100644 index 82567c2cf..000000000 --- a/docs/source/pythonapi/trigger.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_trigger: - -======= -Trigger -======= - -.. automodule:: openmc.trigger - :members: diff --git a/docs/source/pythonapi/universe.rst b/docs/source/pythonapi/universe.rst deleted file mode 100644 index fd4a3c1e2..000000000 --- a/docs/source/pythonapi/universe.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_universe: - -======== -Universe -======== - -.. automodule:: openmc.universe - :members: diff --git a/docs/source/usersguide/processing.rst b/docs/source/usersguide/processing.rst index b18569ec6..059659dbc 100644 --- a/docs/source/usersguide/processing.rst +++ b/docs/source/usersguide/processing.rst @@ -196,10 +196,10 @@ Data Extraction A great deal of information is available in statepoint files (See :ref:`usersguide_statepoint`), all of which is accessible through the Python -API. The ``openmc.statepoint`` module (see :ref:`pythonapi_statepoint`) provides -a class to load statepoints and access data as requested; it is used in many of -the provided plotting utilities, OpenMC's regression test suite, and can be used -in user-created scripts to carry out manipulations of the data. +API. The :class:`openmc.StatePoint` class can load statepoints and access data +as requested; it is used in many of the provided plotting utilities, OpenMC's +regression test suite, and can be used in user-created scripts to carry out +manipulations of the data. An :ref:`example IPython notebook ` demonstrates how to extract data from a statepoint using the Python API. diff --git a/openmc/__init__.py b/openmc/__init__.py index 9a39bcb82..b6a93c0a4 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -20,6 +20,8 @@ from openmc.statepoint import * from openmc.summary import * from openmc.region import * from openmc.source import * +from openmc.particle_restart import * +from openmc.arithmetic import * try: from openmc.opencg_compatible import * diff --git a/openmc/cell.py b/openmc/cell.py index a5204f2c1..c138f3044 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -44,15 +44,15 @@ class Cell(object): Unique identifier for the cell name : str Name of the cell - fill : Material or Universe or Lattice or 'void' or iterable of Material + fill : openmc.Material or openmc.Universe or openmc.Lattice or 'void' or iterable of openmc.Material Indicates what the region of space is filled with - region : openmc.region.Region + region : openmc.Region Region of space that is assigned to the cell. - rotation : ndarray + rotation : numpy.ndarray If the cell is filled with a universe, this array specifies the angles in degrees about the x, y, and z axes that the filled universe should be rotated. - translation : ndarray + translation : numpy.ndarray If the cell is filled with a universe, this array specifies a vector that is used to translate (shift) the universe. offsets : ndarray @@ -255,12 +255,12 @@ class Cell(object): cell. .. deprecated:: 0.7.1 - Use the Cell.region property to directly specify a Region + Use the :attr:`Cell.region` property to directly specify a Region expression. Parameters ---------- - surface : openmc.surface.Surface + surface : openmc.Surface Quadric surface dividing space halfspace : {-1, 1} Indicate whether the negative or positive half-space is to be used diff --git a/openmc/cmfd.py b/openmc/cmfd.py index c247719c9..b9977a288 100644 --- a/openmc/cmfd.py +++ b/openmc/cmfd.py @@ -69,7 +69,7 @@ class CMFDMesh(object): to any tallies far away from fission source neutron regions. A ``2`` must be used to identify any fission source region. -""" + """ def __init__(self): self._lower_left = None @@ -219,7 +219,7 @@ class CMFDFile(object): inner tolerance for Gauss-Seidel iterations when performing CMFD. ktol : float Tolerance on the eigenvalue when performing CMFD power iteration - cmfd_mesh : CMFDMesh + cmfd_mesh : openmc.CMFDMesh Structured mesh to be used for acceleration norm : float Normalization factor applied to the CMFD fission source distribution diff --git a/openmc/element.py b/openmc/element.py index dda110ea7..219aafbdf 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -24,7 +24,7 @@ class Element(object): Chemical symbol of the element, e.g. Pu xs : str Cross section identifier, e.g. 71c - scattering : 'data' or 'iso-in-lab' or None + scattering : {'data', 'iso-in-lab', None} The type of angular scattering distribution to use """ diff --git a/openmc/filter.py b/openmc/filter.py index 4bc17afca..037062a4c 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -40,7 +40,7 @@ class Filter(object): The bins for the filter num_bins : Integral The number of filter bins - mesh : Mesh or None + mesh : openmc.Mesh or None A Mesh object for 'mesh' type filters. stride : Integral The number of filter, nuclide and score bins within each of this @@ -265,7 +265,7 @@ class Filter(object): Parameters ---------- - other : Filter + other : openmc.Filter Filter to compare with Returns @@ -310,12 +310,12 @@ class Filter(object): Parameters ---------- - other : Filter + other : openmc.Filter Filter to merge with Returns ------- - merged_filter : Filter + merged_filter : openmc.Filter Filter resulting from the merge """ @@ -355,7 +355,7 @@ class Filter(object): Parameters ---------- - other : Filter + other : openmc.Filter The filter to query as a subset of this filter Returns @@ -519,8 +519,8 @@ class Filter(object): """Builds a Pandas DataFrame for the Filter's bins. This method constructs a Pandas DataFrame object for the filter with - columns annotated by filter bin information. This is a helper method - for the Tally.get_pandas_dataframe(...) method. + columns annotated by filter bin information. This is a helper method for + :math:`Tally.get_pandas_dataframe`. This capability has been tested for Pandas >=0.13.1. However, it is recommended to use v0.16 or newer versions of Pandas since this method @@ -530,7 +530,7 @@ class Filter(object): ---------- data_size : Integral The total number of bins in the tally corresponding to this filter - summary : None or Summary + summary : None or openmc.Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric information in the Summary object is embedded into a Multi-index diff --git a/openmc/geometry.py b/openmc/geometry.py index be3f281eb..f5dfe97e4 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -17,7 +17,7 @@ class Geometry(object): Attributes ---------- - root_universe : openmc.universe.Universe + root_universe : openmc.Universe Root universe which contains all others """ @@ -95,7 +95,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Cell + list of openmc.Cell Cells in the geometry """ @@ -116,7 +116,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Universe + list of openmc.Universe Universes in the geometry """ @@ -136,7 +136,7 @@ class Geometry(object): Returns ------- - list of openmc.nuclide.Nuclide + list of openmc.Nuclide Nuclides in the geometry """ @@ -154,7 +154,7 @@ class Geometry(object): Returns ------- - list of openmc.material.Material + list of openmc.Material Materials in the geometry """ @@ -177,7 +177,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Cell + list of openmc.Cell Cells filled by Materials in the geometry """ @@ -198,7 +198,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Universe + list of openmc.Universe Universes with non-fill cells """ @@ -221,7 +221,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Lattice + list of openmc.Lattice Lattices in the geometry """ @@ -252,7 +252,7 @@ class Geometry(object): Returns ------- - list of openmc.material.Material + list of openmc.Material Materials matching the queried name """ @@ -292,7 +292,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Cell + list of openmc.Cell Cells matching the queried name """ @@ -332,7 +332,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Cell + list of openmc.Cell Cells with fills matching the queried name """ @@ -372,7 +372,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Universe + list of openmc.Universe Universes matching the queried name """ @@ -412,7 +412,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Lattice + list of openmc.Lattice Lattices matching the queried name """ @@ -444,7 +444,7 @@ class GeometryFile(object): Attributes ---------- - geometry : Geometry + geometry : openmc.Geometry The geometry to be used """ diff --git a/openmc/lattice.py b/openmc/lattice.py index 047bd5830..6417eef3c 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -33,7 +33,7 @@ class Lattice(object): outer : int The unique identifier of a universe to fill all space outside the lattice - universes : ndarray of Universe + universes : numpy.ndarray of openmc.Universe An array of universes filling each element of the lattice """ @@ -123,7 +123,7 @@ class Lattice(object): Returns ------- - universes : dict + universes : collections.OrderedDict Dictionary whose keys are universe IDs and values are Universe instances @@ -151,7 +151,7 @@ class Lattice(object): Returns ------- - nuclides : dict + nuclides : collections.OrderedDict Dictionary whose keys are nuclide names and values are 2-tuples of (nuclide, density) @@ -173,7 +173,7 @@ class Lattice(object): Returns ------- - cells : dict + cells : collections.OrderedDict Dictionary whose keys are cell IDs and values are Cell instances """ @@ -191,7 +191,7 @@ class Lattice(object): Returns ------- - materials : dict + materials : collections.OrderedDict Dictionary whose keys are material IDs and values are Material instances """ @@ -210,7 +210,7 @@ class Lattice(object): Returns ------- - universes : dict + universes : collections.OrderedDict Dictionary whose keys are universe IDs and values are Universe instances diff --git a/openmc/material.py b/openmc/material.py index 9db2f03f0..2c04a9ecf 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -270,7 +270,7 @@ class Material(object): Parameters ---------- - nuclide : str or openmc.nuclide.Nuclide + nuclide : str or openmc.Nuclide Nuclide to add percent : float Atom or weight percent @@ -313,7 +313,7 @@ class Material(object): Parameters ---------- - nuclide : openmc.nuclide.Nuclide + nuclide : openmc.Nuclide Nuclide to remove """ @@ -332,7 +332,7 @@ class Material(object): Parameters ---------- - macroscopic : str or Macroscopic + macroscopic : str or openmc.Macroscopic Macroscopic to add """ @@ -371,7 +371,7 @@ class Material(object): Parameters ---------- - macroscopic : Macroscopic + macroscopic : openmc.Macroscopic Macroscopic to remove """ @@ -390,7 +390,7 @@ class Material(object): Parameters ---------- - element : openmc.element.Element + element : openmc.Element Element to add percent : float Atom or weight percent @@ -429,7 +429,7 @@ class Material(object): Parameters ---------- - element : openmc.element.Element + element : openmc.Element Element to remove """ @@ -671,7 +671,7 @@ class MaterialsFile(object): Parameters ---------- - material : Material + material : openmc.Material Material to add """ @@ -688,7 +688,7 @@ class MaterialsFile(object): Parameters ---------- - materials : tuple or list of Material + materials : tuple or list of openmc.Material Materials to add """ @@ -706,7 +706,7 @@ class MaterialsFile(object): Parameters ---------- - material : Material + material : openmc.Material Material to remove """ diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index a1e03c337..068977d88 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -24,7 +24,7 @@ class EnergyGroups(object): ---------- group_edges : Iterable of Real The energy group boundaries [MeV] - num_groups : Integral + num_groups : int The number of energy groups """ @@ -86,7 +86,7 @@ class EnergyGroups(object): Parameters ---------- - energy : Real + energy : float The energy of interest in MeV Returns @@ -115,7 +115,7 @@ class EnergyGroups(object): Parameters ---------- - group : Integral + group : int The energy group index, starting at 1 for the highest energies Returns @@ -153,7 +153,7 @@ class EnergyGroups(object): Returns ------- - ndarray + numpy.ndarray The ndarray array indices for each energy group of interest Raises @@ -200,7 +200,7 @@ class EnergyGroups(object): Returns ------- - EnergyGroups + openmc.mgxs.EnergyGroups A coarsened version of this EnergyGroups object. Raises @@ -244,7 +244,7 @@ class EnergyGroups(object): Parameters ---------- - other : EnergyGroups + other : openmc.mgxs.EnergyGroups EnergyGroups to compare with Returns @@ -275,12 +275,12 @@ class EnergyGroups(object): Parameters ---------- - other : EnergyGroups + other : openmc.mgxs.EnergyGroups EnergyGroups to merge with Returns ------- - merged_groups : EnergyGroups + merged_groups : openmc.mgxs.EnergyGroups EnergyGroups resulting from the merge """ diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index c36d8d516..4de4bb48a 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -53,22 +53,22 @@ class Library(object): The types of cross sections in the library (e.g., ['total', 'scatter']) domain_type : {'material', 'cell', 'distribcell', 'universe'} Domain type for spatial homogenization - domains : Iterable of Material, Cell or Universe + domains : Iterable of openmc.Material, openmc.Cell or openmc.Universe The spatial domain(s) for which MGXS in the Library are computed - correction : 'P0' or None + correction : {'P0', None} Apply the P0 correction to scattering matrices if set to 'P0' - energy_groups : EnergyGroups + energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation - tally_trigger : Trigger + tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to compute the cross section - all_mgxs : OrderedDict + all_mgxs : collections.OrderedDict MGXS objects keyed by domain ID and cross section type sp_filename : str The filename of the statepoint with tally data used to the compute cross sections keff : Real or None - The combined keff from the statepoint file with tally data used to + The combined keff from the statepoint file with tally data used to compute cross sections (for eigenvalue calculations only) name : str, optional Name of the multi-group cross section library. Used as a label to @@ -308,7 +308,7 @@ class Library(object): """ cv.check_type('sparse', sparse, bool) - + # Sparsify or densify each MGXS in the Library for domain in self.domains: for mgxs_type in self.mgxs_types: @@ -350,7 +350,7 @@ class Library(object): def add_to_tallies_file(self, tallies_file, merge=True): """Add all tallies from all MGXS objects to a tallies file. - NOTE: This assumes that build_library() has been called + NOTE: This assumes that :meth:`Library.build_library` has been called Parameters ---------- @@ -537,7 +537,7 @@ class Library(object): Returns ------- - Library + openmc.mgxs.Library A new multi-group cross section library averaged across subdomains Raises diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 7fcc0600a..a9a58b957 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -59,11 +59,11 @@ class MGXS(object): Parameters ---------- - domain : Material or Cell or Universe + domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : EnergyGroups + energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -83,26 +83,26 @@ class MGXS(object): Domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} Domain type for spatial homogenization - energy_groups : EnergyGroups + energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation - tally_trigger : Trigger + tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to compute the cross section - tallies : OrderedDict + tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section - rxn_rate_tally : 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 : Tally + 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 : Integral + num_subdomains : int The number of subdomains is unity for 'material', 'cell' and 'universe' domain types. When the 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 : Integral + 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' @@ -334,11 +334,11 @@ class MGXS(object): ---------- mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} The type of multi-group cross section object to return - domain : Material or Cell or Universe + domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : EnergyGroups + energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain. @@ -349,7 +349,7 @@ class MGXS(object): Returns ------- - MGXS + openmc.mgxs.MGXS A subclass of the abstract MGXS class for the multi-group cross section type requested by the user @@ -425,7 +425,7 @@ class MGXS(object): Returns ------- - Real + float The atomic number density (atom/b-cm) for the nuclide of interest Raises @@ -464,7 +464,7 @@ class MGXS(object): Returns ------- - ndarray of Real + numpy.ndarray of float An array of the atomic number densities (atom/b-cm) for each of the nuclides in the spatial domain @@ -512,11 +512,11 @@ class MGXS(object): ---------- scores : Iterable of str Scores for each tally - all_filters : Iterable of tuple of Filter + all_filters : Iterable of tuple of openmc.Filter Tuples of non-spatial domain filters for each tally keys : Iterable of str Key string used to store each tally in the tallies dictionary - estimator : {'analog' or 'tracklength'} + estimator : {'analog', 'tracklength'} Type of estimator to use for each tally """ @@ -684,7 +684,7 @@ class MGXS(object): Returns ------- - ndarray + numpy.ndarray A NumPy array of the multi-group cross section indexed in the order each group, subdomain and nuclide is listed in the parameters. @@ -855,7 +855,7 @@ class MGXS(object): Returns ------- - MGXS + openmc.mgxs.MGXS A new MGXS averaged across the subdomains of interest Raises @@ -907,13 +907,13 @@ class MGXS(object): nuclides : list of str A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is []) - groups : list of Integral + groups : list of int A list of energy group indices starting at 1 for the high energies (e.g., [1, 2, 3]; default is []) Returns ------- - MGXS + openmc.mgxs.MGXS A new tally which encapsulates the subset of data requested for the nuclide(s) and/or energy group(s) requested in the parameters. @@ -973,7 +973,7 @@ class MGXS(object): Parameters ---------- - other : MGXS + other : openmc.mgxs.MGXS MGXS to check for merging """ @@ -1010,12 +1010,12 @@ class MGXS(object): Parameters ---------- - other : MGXS + other : openmc.mgxs.MGXS MGXS to merge with this one Returns ------- - merged_mgxs : MGXS + merged_mgxs : openmc.mgxs.MGXS Merged MGXS """ @@ -1349,7 +1349,7 @@ class MGXS(object): xs_type='macro', summary=None): """Build a Pandas DataFrame for the MGXS data. - This method leverages the Tally.get_pandas_dataframe(...) method, but + This method leverages :math:`openmc.Tally.get_pandas_dataframe`, but renames the columns with terminology appropriate for cross section data. Parameters @@ -1366,7 +1366,7 @@ class MGXS(object): xs_type: {'macro', 'micro'} Return macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - summary : None or Summary + summary : None or openmc.Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric information in the Summary object is embedded into a multi-index @@ -1933,16 +1933,16 @@ class ScatterMatrixXS(MGXS): nuclides : list of str A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is []) - in_groups : list of Integral + in_groups : list of int A list of incoming energy group indices starting at 1 for the high energies (e.g., [1, 2, 3]; default is []) - out_groups : list of Integral + out_groups : list of int A list of outgoing energy group indices starting at 1 for the high energies (e.g., [1, 2, 3]; default is []) Returns ------- - MGXS + openmc.mgxs.MGXS A new tally which encapsulates the subset of data requested for the nuclide(s) and/or energy group(s) requested in the parameters. @@ -2379,12 +2379,12 @@ class Chi(MGXS): Parameters ---------- - other : MGXS + other : openmc.mgxs.MGXS MGXS to merge with this one Returns ------- - merged_mgxs : MGXS + merged_mgxs : openmc.mgxs.MGXS Merged MGXS """ @@ -2452,7 +2452,7 @@ class Chi(MGXS): Returns ------- - ndarray + numpy.ndarray A NumPy array of the multi-group cross section indexed in the order each group, subdomain and nuclide is listed in the parameters. @@ -2560,7 +2560,7 @@ class Chi(MGXS): xs_type='macro', summary=None): """Build a Pandas DataFrame for the MGXS data. - This method leverages the Tally.get_pandas_dataframe(...) method, but + This method leverages :math:`openmc.Tally.get_pandas_dataframe`, but renames the columns with terminology appropriate for cross section data. Parameters @@ -2577,7 +2577,7 @@ class Chi(MGXS): xs_type: {'macro', 'micro'} Return macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - summary : None or Summary + summary : None or openmc.Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric information in the Summary object is embedded into a multi-index diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 7f140dd21..c0b04fed1 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -24,7 +24,7 @@ def ndarray_to_string(arr): Parameters ---------- - arr : ndarray + arr : numpy.ndarray Array to combine in to a string Returns @@ -657,7 +657,7 @@ class MGXSLibraryFile(object): Energy group structure. inverse_velocities : Iterable of Real Inverse of velocities, units of sec/cm - xsdatas : Iterable of XSdata + xsdatas : Iterable of openmc.XSdata Iterable of multi-Group cross section data objects """ @@ -693,7 +693,7 @@ class MGXSLibraryFile(object): Parameters ---------- - xsdata : XSdata + xsdata : openmc.XSdata MGXS information to add """ @@ -716,7 +716,7 @@ class MGXSLibraryFile(object): Parameters ---------- - xsdatas : tuple or list of XSdata + xsdatas : tuple or list of openmc.XSdata XSdatas to add """ @@ -734,7 +734,7 @@ class MGXSLibraryFile(object): Parameters ---------- - xsdata : XSdata + xsdata : openmc.XSdata XSdata to remove """ diff --git a/openmc/plots.py b/openmc/plots.py index 636ca225c..6e78995f4 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -275,7 +275,7 @@ class Plot(object): The random number seed used to generate the color scheme """ - + cv.check_type('geometry', geometry, openmc.Geometry) cv.check_type('seed', seed, Integral) cv.check_greater_than('seed', seed, 1, equality=True) @@ -417,7 +417,7 @@ class PlotsFile(object): Parameters ---------- - plot : Plot + plot : openmc.Plot Plot to add """ @@ -433,7 +433,7 @@ class PlotsFile(object): Parameters ---------- - plot : Plot + plot : openmc.Plot Plot to remove """ diff --git a/openmc/region.py b/openmc/region.py index 7589184aa..a2edbeedd 100644 --- a/openmc/region.py +++ b/openmc/region.py @@ -9,10 +9,11 @@ from openmc.checkvalue import check_type class Region(object): """Region of space that can be assigned to a cell. - Region is an abstract base class that is inherited by Halfspace, - Intersection, Union, and Complement. Each of those respective classes are - typically not instantiated directly but rather are created through operators - of the Surface and Region classes. + Region is an abstract base class that is inherited by + :class:`openmc.Halfspace`, :class:`openmc.Intersection`, + :class:`openmc.Union`, and :class:`openmc.Complement`. Each of those + respective classes are typically not instantiated directly but rather are + created through operators of the Surface and Region classes. """ @@ -201,11 +202,11 @@ class Intersection(Region): """Intersection of two or more regions. Instances of Intersection are generally created via the __and__ operator - applied to two instances of Region. This is illustrated in the following - example: + applied to two instances of :class:`openmc.Region`. This is illustrated in + the following example: - >>> equator = openmc.surface.ZPlane(z0=0.0) - >>> earth = openmc.surface.Sphere(R=637.1e6) + >>> equator = openmc.ZPlane(z0=0.0) + >>> earth = openmc.Sphere(R=637.1e6) >>> northern_hemisphere = -earth & +equator >>> southern_hemisphere = -earth & -equator >>> type(northern_hemisphere) @@ -213,12 +214,12 @@ class Intersection(Region): Parameters ---------- - *nodes + \*nodes Regions to take the intersection of Attributes ---------- - nodes : tuple of Region + nodes : tuple of openmc.Region Regions to take the intersection of bounding_box : tuple of numpy.array Lower-left and upper-right coordinates of an axis-aligned bounding box @@ -255,21 +256,22 @@ class Union(Region): """Union of two or more regions. Instances of Union are generally created via the __or__ operator applied to - two instances of Region. This is illustrated in the following example: + two instances of :class:`openmc.Region`. This is illustrated in the + following example: - >>> s1 = openmc.surface.ZPlane(z0=0.0) - >>> s2 = openmc.surface.Sphere(R=637.1e6) + >>> s1 = openmc.ZPlane(z0=0.0) + >>> s2 = openmc.Sphere(R=637.1e6) >>> type(-s2 | +s1) Parameters ---------- - *nodes + \*nodes Regions to take the union of Attributes ---------- - nodes : tuple of Region + nodes : tuple of openmc.Region Regions to take the union of bounding_box : tuple of numpy.array Lower-left and upper-right coordinates of an axis-aligned bounding box @@ -305,13 +307,13 @@ class Union(Region): class Complement(Region): """Complement of a region. - The Complement of an existing Region can be created by using the __invert__ - operator as the following example demonstrates: + The Complement of an existing :class:`openmc.Region` can be created by using + the __invert__ operator as the following example demonstrates: - >>> xl = openmc.surface.XPlane(x0=-10.0) - >>> xr = openmc.surface.XPlane(x0=10.0) - >>> yl = openmc.surface.YPlane(y0=-10.0) - >>> yr = openmc.surface.YPlane(y0=10.0) + >>> xl = openmc.XPlane(x0=-10.0) + >>> xr = openmc.XPlane(x0=10.0) + >>> yl = openmc.YPlane(y0=-10.0) + >>> yr = openmc.YPlane(y0=10.0) >>> inside_box = +xl & -xr & +yl & -yl >>> outside_box = ~inside_box >>> type(outside_box) @@ -319,12 +321,12 @@ class Complement(Region): Parameters ---------- - node : Region + node : openmc.Region Region to take the complement of Attributes ---------- - node : Region + node : openmc.Region Regions to take the complement of bounding_box : tuple of numpy.array Lower-left and upper-right coordinates of an axis-aligned bounding box diff --git a/openmc/settings.py b/openmc/settings.py index 271932b84..0be50bc56 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -38,7 +38,7 @@ class SettingsFile(object): type are 'variance', 'std_dev', and 'rel_err'. The threshold value should be a float indicating the variance, standard deviation, or relative error used. - source : Iterable of openmc.source.Source + source : Iterable of openmc.Source Distribution of source sites in space, angle, and energy output : dict Dictionary indicating what files to output. Valid keys are 'summary', @@ -1125,19 +1125,19 @@ class ResonanceScattering(object): Attributes ---------- - nuclide : openmc.nuclide.Nuclide + nuclide : openmc.Nuclide The nuclide affected by this resonance scattering treatment. - nuclide_0K : openmc.nuclide.Nuclide + nuclide_0K : openmc.Nuclide This should be the same isotope as the nuclide attribute above, but it should have an xs attribute that identifies 0 Kelvin data. method : str The method used to sample outgoing scattering energies. Valid options are 'ARES', 'CXS' (constant cross section), 'DBRC' (Doppler broadening rejection correction), and 'WCM' (weight correction method). - E_min : Real + E_min : float The minimum energy above which the specified method is applied. By default, CXS will be used below E_min. - E_max : Real + E_max : float The maximum energy below which the specified method is applied. By default, the asymptotic target-at-rest model is applied above E_max. diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 693400ad6..7b75ac767 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -18,51 +18,51 @@ class StatePoint(object): ---------- cmfd_on : bool Indicate whether CMFD is active - cmfd_balance : ndarray + cmfd_balance : numpy.ndarray Residual neutron balance for each batch cmfd_dominance Dominance ratio for each batch - cmfd_entropy : ndarray + cmfd_entropy : numpy.ndarray Shannon entropy of CMFD fission source for each batch - cmfd_indices : ndarray + cmfd_indices : numpy.ndarray Number of CMFD mesh cells and energy groups. The first three indices correspond to the x-, y-, and z- spatial directions and the fourth index is the number of energy groups. - cmfd_srccmp : ndarray + cmfd_srccmp : numpy.ndarray Root-mean-square difference between OpenMC and CMFD fission source for each batch - cmfd_src : ndarray + cmfd_src : numpy.ndarray CMFD fission source distribution over all mesh cells and energy groups. - current_batch : Integral + current_batch : int Number of batches simulated date_and_time : str Date and time when simulation began - entropy : ndarray + entropy : numpy.ndarray Shannon entropy of fission source at each batch gen_per_batch : Integral Number of fission generations per batch - global_tallies : ndarray of compound datatype + global_tallies : numpy.ndarray of compound datatype Global tallies for k-effective estimates and leakage. The compound datatype has fields 'name', 'sum', 'sum_sq', 'mean', and 'std_dev'. k_combined : list Combined estimator for k-effective and its uncertainty - k_col_abs : Real + k_col_abs : float Cross-product of collision and absorption estimates of k-effective - k_col_tra : Real + k_col_tra : float Cross-product of collision and tracklength estimates of k-effective - k_abs_tra : Real + k_abs_tra : float Cross-product of absorption and tracklength estimates of k-effective - k_generation : ndarray + k_generation : numpy.ndarray Estimate of k-effective for each batch/generation meshes : dict Dictionary whose keys are mesh IDs and whose values are Mesh objects - n_batches : Integral + n_batches : int Number of batches - n_inactive : Integral + n_inactive : int Number of inactive batches - n_particles : Integral + n_particles : int Number of particles per generation - n_realizations : Integral + n_realizations : int Number of tally realizations path : str Working directory for simulation @@ -71,9 +71,9 @@ class StatePoint(object): runtime : dict Dictionary whose keys are strings describing various runtime metrics and whose values are time values in seconds. - seed : Integral + seed : int Pseudorandom number generator seed - source : ndarray of compound datatype + source : numpy.ndarray of compound datatype Array of source sites. The compound datatype has fields 'wgt', 'xyz', 'uvw', and 'E' corresponding to the weight, position, direction, and energy of the source site. @@ -88,7 +88,7 @@ class StatePoint(object): Indicate whether user-defined tallies are present version: tuple of Integral Version of OpenMC - summary : None or openmc.summary.Summary + summary : None or openmc.Summary A summary object if the statepoint has been linked with a summary file """ @@ -504,7 +504,7 @@ class StatePoint(object): Returns ------- - tally : Tally + tally : openmc.Tally A tally matching the specified criteria Raises @@ -601,7 +601,7 @@ class StatePoint(object): Parameters ---------- - summary : Summary + summary : openmc.Summary A Summary object. Raises diff --git a/openmc/stats/multivariate.py b/openmc/stats/multivariate.py index 29258ee8d..4ce34a071 100644 --- a/openmc/stats/multivariate.py +++ b/openmc/stats/multivariate.py @@ -22,12 +22,12 @@ class UnitSphere(object): Parameters ---------- - reference_uvw : Iterable of Real + reference_uvw : Iterable of float Direction from which polar angle is measured Attributes ---------- - reference_uvw : Iterable of Real + reference_uvw : Iterable of float Direction from which polar angle is measured """ @@ -62,19 +62,19 @@ class PolarAzimuthal(UnitSphere): Parameters ---------- - mu : Univariate + mu : openmc.stats.Univariate Distribution of the cosine of the polar angle - phi : Univariate + phi : openmc.stats.Univariate Distribution of the azimuthal angle in radians - reference_uvw : Iterable of Real + reference_uvw : Iterable of float Direction from which polar angle is measured. Defaults to the positive z-direction. Attributes ---------- - mu : Univariate + mu : openmc.stats.Univariate Distribution of the cosine of the polar angle - phi : Univariate + phi : openmc.stats.Univariate Distribution of the azimuthal angle in radians """ @@ -142,7 +142,7 @@ class Monodirectional(UnitSphere): Parameters ---------- - reference_uvw : Iterable of Real + reference_uvw : Iterable of float Direction from which polar angle is measured. Defaults to the positive x-direction. @@ -186,20 +186,20 @@ class CartesianIndependent(Spatial): Parameters ---------- - x : Univariate + x : openmc.stats.Univariate Distribution of x-coordinates - y : Univariate + y : openmc.stats.Univariate Distribution of y-coordinates - z : Univariate + z : openmc.stats.Univariate Distribution of z-coordinates Attributes ---------- - x : Univariate + x : openmc.stats.Univariate Distribution of x-coordinates - y : Univariate + y : openmc.stats.Univariate Distribution of y-coordinates - z : Univariate + z : openmc.stats.Univariate Distribution of z-coordinates """ @@ -252,9 +252,9 @@ class Box(Spatial): Parameters ---------- - lower_left : Iterable of Real + lower_left : Iterable of float Lower-left coordinates of cuboid - upper_right : Iterable of Real + upper_right : Iterable of float Upper-right coordinates of cuboid only_fissionable : bool, optional Whether spatial sites should only be accepted if they occur in @@ -262,9 +262,9 @@ class Box(Spatial): Attributes ---------- - lower_left : Iterable of Real + lower_left : Iterable of float Lower-left coordinates of cuboid - upper_right : Iterable of Real + upper_right : Iterable of float Upper-right coordinates of cuboid only_fissionable : bool, optional Whether spatial sites should only be accepted if they occur in @@ -328,12 +328,12 @@ class Point(Spatial): Parameters ---------- - xyz : Iterable of Real + xyz : Iterable of float Cartesian coordinates of location Attributes ---------- - xyz : Iterable of Real + xyz : Iterable of float Cartesian coordinates of location """ diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 04e70bd00..0deeb600c 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -37,16 +37,16 @@ class Discrete(Univariate): Parameters ---------- - x : Iterable of Real + x : Iterable of float Values of the random variable - p : Iterable of Real + p : Iterable of float Discrete probability for each value Attributes ---------- - x : Iterable of Real + x : Iterable of float Values of the random variable - p : Iterable of Real + p : Iterable of float Discrete probability for each value """ @@ -243,9 +243,9 @@ class Tabular(Univariate): Parameters ---------- - x : Iterable of Real + x : Iterable of float Tabulated values of the random variable - p : Iterable of Real + p : Iterable of float Tabulated probabilities interpolation : {'histogram', 'linear-linear'}, optional Indicate whether the density function is constant between tabulated @@ -253,9 +253,9 @@ class Tabular(Univariate): Attributes ---------- - x : Iterable of Real + x : Iterable of float Tabulated values of the random variable - p : Iterable of Real + p : Iterable of float Tabulated probabilities interpolation : {'histogram', 'linear-linear'}, optional Indicate whether the density function is constant between tabulated diff --git a/openmc/summary.py b/openmc/summary.py index b8f92664f..9b1c451f3 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -584,7 +584,7 @@ class Summary(object): Returns ------- - material : openmc.material.Material + material : openmc.Material Material with given id """ @@ -605,7 +605,7 @@ class Summary(object): Returns ------- - surface : openmc.surface.Surface + surface : openmc.Surface Surface with given id """ @@ -626,7 +626,7 @@ class Summary(object): Returns ------- - cell : openmc.universe.Cell + cell : openmc.Cell Cell with given id """ @@ -647,7 +647,7 @@ class Summary(object): Returns ------- - universe : openmc.universe.Universe + universe : openmc.Universe Universe with given id """ @@ -668,7 +668,7 @@ class Summary(object): Returns ------- - lattice : openmc.universe.Lattice + lattice : openmc.Lattice Lattice with given id """ diff --git a/openmc/surface.py b/openmc/surface.py index 8dc45209b..5b0b1a7b5 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -153,10 +153,10 @@ class Surface(object): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -338,10 +338,10 @@ class XPlane(Plane): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -416,10 +416,10 @@ class YPlane(Plane): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -494,10 +494,10 @@ class ZPlane(Plane): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -641,10 +641,10 @@ class XCylinder(Cylinder): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -740,10 +740,10 @@ class YCylinder(Cylinder): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -839,10 +839,10 @@ class ZCylinder(Cylinder): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -967,10 +967,10 @@ class Sphere(Surface): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -1383,7 +1383,7 @@ class Halfspace(Region): can be created from an existing Surface through the __neg__ and __pos__ operators, as the following example demonstrates: - >>> sphere = openmc.surface.Sphere(surface_id=1, R=10.0) + >>> sphere = openmc.Sphere(surface_id=1, R=10.0) >>> inside_sphere = -sphere >>> outside_sphere = +sphere >>> type(inside_sphere) @@ -1391,18 +1391,18 @@ class Halfspace(Region): Parameters ---------- - surface : Surface + surface : openmc.Surface Surface which divides Euclidean space. side : {'+', '-'} Indicates whether the positive or negative half-space is used. Attributes ---------- - surface : Surface + surface : openmc.Surface Surface which divides Euclidean space. side : {'+', '-'} Indicates whether the positive or negative half-space is used. - bounding_box : tuple of numpy.array + bounding_box : tuple of numpy.ndarray Lower-left and upper-right coordinates of an axis-aligned bounding box """ diff --git a/openmc/tallies.py b/openmc/tallies.py index 1e47811e3..2ee03c675 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -51,7 +51,7 @@ class Tally(object): Parameters ---------- - tally_id : Integral, optional + tally_id : int, optional Unique identifier for the tally. If none is specified, an identifier will automatically be assigned name : str, optional @@ -59,43 +59,43 @@ class Tally(object): Attributes ---------- - id : Integral + id : int Unique identifier for the tally name : str Name of the tally - filters : list of openmc.filter.Filter + filters : list of openmc.Filter List of specified filters for the tally - nuclides : list of openmc.nuclide.Nuclide + nuclides : list of openmc.Nuclide List of nuclides to score results for scores : list of str List of defined scores, e.g. 'flux', 'fission', etc. estimator : {'analog', 'tracklength', 'collision'} Type of estimator for the tally - triggers : list of openmc.trigger.Trigger + triggers : list of openmc.Trigger List of tally triggers - num_scores : Integral + num_scores : int Total number of scores, accounting for the fact that a single user-specified score, e.g. scatter-P3 or flux-Y2,2, might have multiple bins - num_filter_bins : Integral + num_filter_bins : int Total number of filter bins accounting for all filters - num_bins : Integral + num_bins : int Total number of bins for the tally - shape : 3-tuple of Integral + shape : 3-tuple of int The shape of the tally data array ordered as the number of filter bins, nuclide bins and score bins - num_realizations : Integral + num_realizations : int Total number of realizations with_summary : bool Whether or not a Summary has been linked - sum : ndarray + sum : numpy.ndarray An array containing the sum of each independent realization for each bin - sum_sq : ndarray + sum_sq : numpy.ndarray An array containing the sum of each independent realization squared for each bin - mean : ndarray + mean : numpy.ndarray An array containing the sample mean for each bin - std_dev : ndarray + std_dev : numpy.ndarray An array containing the sample standard deviation for each bin derived : bool Whether or not the tally is derived from one or more other tallies @@ -444,7 +444,7 @@ class Tally(object): Parameters ---------- - trigger : openmc.trigger.Trigger + trigger : openmc.Trigger Trigger to add """ @@ -688,7 +688,7 @@ class Tally(object): Parameters ---------- - old_filter : openmc.filter.Filter + old_filter : openmc.Filter Filter to remove """ @@ -705,7 +705,7 @@ class Tally(object): Parameters ---------- - nuclide : openmc.nuclide.Nuclide + nuclide : openmc.Nuclide Nuclide to remove """ @@ -727,7 +727,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally Tally to check for mergeable filters """ @@ -780,7 +780,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally Tally to check for mergeable nuclides """ @@ -817,7 +817,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally Tally to check for mergeable scores """ @@ -858,7 +858,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally Tally to check for merging """ @@ -903,12 +903,12 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally Tally to merge with this one Returns ------- - merged_tally : Tally + merged_tally : openmc.Tally Merged tallies """ @@ -1151,7 +1151,7 @@ class Tally(object): Returns ------- - filter_found : openmc.filter.Filter + filter_found : openmc.Filter Filter from this tally with matching type, or None if no matching Filter is found @@ -1185,7 +1185,7 @@ class Tally(object): ---------- filter_type : str The type of Filter (e.g., 'cell', 'energy', etc.) - filter_bin : Integral or tuple + filter_bin : int or tuple The bin is an integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. The bin is an integer for the cell instance ID for 'distribcell' Filters. The bin is a 2-tuple of @@ -1311,7 +1311,7 @@ class Tally(object): Returns ------- - ndarray + numpy.ndarray A NumPy array of the filter indices """ @@ -1393,7 +1393,7 @@ class Tally(object): Returns ------- - ndarray + numpy.ndarray A NumPy array of the nuclide indices """ @@ -1427,7 +1427,7 @@ class Tally(object): Returns ------- - ndarray + numpy.ndarray A NumPy array of the score indices """ @@ -1489,7 +1489,7 @@ class Tally(object): Returns ------- - float or ndarray + float or numpy.ndarray A scalar or NumPy array of the Tally data indexed in the order each filter, nuclide and score is listed in the parameters. @@ -1557,13 +1557,13 @@ class Tally(object): Include columns with nuclide bin information (default is True). scores : bool Include columns with score bin information (default is True). - summary : None or Summary + summary : None or openmc.Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric information in the Summary object is embedded into a Multi-index column with a geometric "path" to each distribcell intance. NOTE: This option requires the OpenCG Python package. - float_format : string + float_format : str All floats in the DataFrame will be formatted using the given format string before printing. @@ -1683,8 +1683,8 @@ class Tally(object): The tally data in OpenMC is stored as a 3D array with the dimensions corresponding to filters, nuclides and scores. As a result, tally data - can be opaque for a user to directly index (i.e., without use of the - Tally.get_values(...) method) since one must know how to properly use + can be opaque for a user to directly index (i.e., without use of + :meth:`openmc.Tally.get_values`) since one must know how to properly use the number of bins and strides for each filter to index into the first (filter) dimension. @@ -1704,7 +1704,7 @@ class Tally(object): Returns ------- - ndarray + numpy.ndarray The tally data array indexed by filters, nuclides and scores. """ @@ -1882,7 +1882,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally The tally on the right hand side of the hybrid product binary_op : {'+', '-', '*', '/', '^'} The binary operation in the hybrid product @@ -1904,7 +1904,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new Tally that is the hybrid product with this one. Raises @@ -2082,7 +2082,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally The tally to outer product with this tally filter_product : {'entrywise'} The type of product to be performed between filter data. Currently, @@ -2464,12 +2464,12 @@ class Tally(object): Parameters ---------- - other : Tally or Real + other : openmc.Tally or float The tally or scalar value to add to this tally Returns ------- - Tally + openmc.Tally A new derived tally which is the sum of this tally and the other tally or scalar value in the addition. @@ -2536,12 +2536,12 @@ class Tally(object): Parameters ---------- - other : Tally or Real + other : openmc.Tally or float The tally or scalar value to subtract from this tally Returns ------- - Tally + openmc.Tally A new derived tally which is the difference of this tally and the other tally or scalar value in the subtraction. @@ -2608,12 +2608,12 @@ class Tally(object): Parameters ---------- - other : Tally or Real + other : openmc.Tally or float The tally or scalar value to multiply with this tally Returns ------- - Tally + openmc.Tally A new derived tally which is the product of this tally and the other tally or scalar value in the multiplication. @@ -2680,12 +2680,12 @@ class Tally(object): Parameters ---------- - other : Tally or Real + other : openmc.Tally or float The tally or scalar value to divide this tally by Returns ------- - Tally + openmc.Tally A new derived tally which is the dividend of this tally and the other tally or scalar value in the division. @@ -2755,12 +2755,12 @@ class Tally(object): Parameters ---------- - power : Tally or Real + power : openmc.Tally or float The tally or scalar value exponent Returns ------- - Tally + openmc.Tally A new derived tally which is this tally raised to the power of the other tally or scalar value in the exponentiation. @@ -2816,12 +2816,12 @@ class Tally(object): Parameters ---------- - other : Integer or Real + other : float The scalar value to add to this tally Returns ------- - Tally + openmc.Tally A new derived tally of this tally added with the scalar value. """ @@ -2835,12 +2835,12 @@ class Tally(object): Parameters ---------- - other : Integer or Real + other : float The scalar value to subtract this tally from Returns ------- - Tally + openmc.Tally A new derived tally of this tally subtracted from the scalar value. """ @@ -2854,12 +2854,12 @@ class Tally(object): Parameters ---------- - other : Integer or Real + other : float The scalar value to multiply with this tally Returns ------- - Tally + openmc.Tally A new derived tally of this tally multiplied by the scalar value. """ @@ -2873,12 +2873,12 @@ class Tally(object): Parameters ---------- - other : Integer or Real + other : float The scalar value to divide by this tally Returns ------- - Tally + openmc.Tally A new derived tally of the scalar value divided by this tally. """ @@ -2890,7 +2890,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new derived tally which is the absolute value of this tally. """ @@ -2904,7 +2904,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new derived tally which is the negated value of this tally. """ @@ -2946,7 +2946,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new tally which encapsulates the subset of data requested in the order each filter, nuclide and score is listed in the parameters. @@ -3069,7 +3069,7 @@ class Tally(object): filter_type : str A filter type string (e.g., 'cell', 'energy') corresponding to the filter bins to sum across - filter_bins : Iterable of Integral or tuple + filter_bins : Iterable of int or tuple A list of the filter bins corresponding to the filter_type parameter Each bin in the list is the integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer @@ -3087,7 +3087,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new tally which encapsulates the sum of data requested. """ @@ -3217,7 +3217,7 @@ class Tally(object): filter_type : str A filter type string (e.g., 'cell', 'energy') corresponding to the filter bins to average across - filter_bins : Iterable of Integral or tuple + filter_bins : Iterable of int or tuple A list of the filter bins corresponding to the filter_type parameter Each bin in the list is the integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer @@ -3235,7 +3235,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new tally which encapsulates the average of data requested. """ @@ -3368,7 +3368,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new derived Tally with data diagaonalized along the new filter. """ @@ -3444,9 +3444,8 @@ class TalliesFile(object): Parameters ---------- - tally : Tally + tally : openmc.Tally Tally to add to file - merge : bool Indicate whether the tally should be merged with an existing tally, if possible. Defaults to False. @@ -3483,7 +3482,7 @@ class TalliesFile(object): Parameters ---------- - tally : Tally + tally : openmc.Tally Tally to remove """ @@ -3519,7 +3518,7 @@ class TalliesFile(object): Parameters ---------- - mesh : openmc.mesh.Mesh + mesh : openmc.Mesh Mesh to add to the file """ @@ -3535,7 +3534,7 @@ class TalliesFile(object): Parameters ---------- - mesh : openmc.mesh.Mesh + mesh : openmc.Mesh Mesh to remove from the file """ diff --git a/openmc/universe.py b/openmc/universe.py index 09f547042..ebc2eced4 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -43,7 +43,7 @@ class Universe(object): Unique identifier of the universe name : str Name of the universe - cells : dict + cells : collections.OrderedDict Dictionary whose keys are cell IDs and values are Cell instances """ @@ -126,7 +126,7 @@ class Universe(object): Parameters ---------- - cell : Cell + cell : openmc.Cell Cell to add """ @@ -146,7 +146,7 @@ class Universe(object): Parameters ---------- - cells : array-like of Cell + cells : Iterable of openmc.Cell Cells to add """ @@ -164,7 +164,7 @@ class Universe(object): Parameters ---------- - cell : Cell + cell : openmc.Cell Cell to remove """ @@ -209,7 +209,7 @@ class Universe(object): Returns ------- - nuclides : dict + nuclides : collections.OrderedDict Dictionary whose keys are nuclide names and values are 2-tuples of (nuclide, density) @@ -228,7 +228,7 @@ class Universe(object): Returns ------- - cells : dict + cells : collections.OrderedDict Dictionary whose keys are cell IDs and values are Cell instances """ @@ -249,7 +249,7 @@ class Universe(object): Returns ------- - materials : dict + materials : Collections.OrderedDict Dictionary whose keys are material IDs and values are Material instances """ @@ -268,7 +268,7 @@ class Universe(object): Returns ------- - universes : dict + universes : collections.OrderedDict Dictionary whose keys are universe IDs and values are Universe instances From 0339809deb8045c8a9132ea16d20ea44004ba177 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 14 Apr 2016 07:58:06 -0500 Subject: [PATCH 098/259] Fix imports in cell and lattice modules --- openmc/cell.py | 9 ++++----- openmc/lattice.py | 2 ++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index c138f3044..cf247963a 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -9,7 +9,6 @@ import openmc.checkvalue as cv from openmc.surface import Halfspace from openmc.region import Region, Intersection, Complement - if sys.version_info[0] >= 3: basestring = str @@ -112,7 +111,7 @@ class Cell(object): string += ', '.join(['void' if m == 'void' else str(m.id) for m in self.fill]) string += ']\n' - elif isinstance(self._fill, (Universe, Lattice)): + elif isinstance(self._fill, (openmc.Universe, openmc.Lattice)): string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', self._fill._id) else: @@ -210,10 +209,10 @@ class Cell(object): (openmc.Material, basestring)) self._type = 'normal' - elif isinstance(fill, Universe): + elif isinstance(fill, openmc.Universe): self._type = 'fill' - elif isinstance(fill, Lattice): + elif isinstance(fill, openmc.Lattice): self._type = 'lattice' else: @@ -407,7 +406,7 @@ class Cell(object): element.set("material", ' '.join([m if m == 'void' else str(m.id) for m in self.fill])) - elif isinstance(self.fill, (Universe, Lattice)): + elif isinstance(self.fill, (openmc.Universe, openmc.Lattice)): element.set("fill", str(self.fill.id)) self.fill.create_xml_subelement(xml_element) diff --git a/openmc/lattice.py b/openmc/lattice.py index 6417eef3c..1b478e537 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -1,10 +1,12 @@ import abc from collections import OrderedDict, Iterable from numbers import Real, Integral +from xml.etree import ElementTree as ET import sys import numpy as np +import openmc.checkvalue as cv from openmc.universe import Universe, AUTO_UNIVERSE_ID if sys.version_info[0] >= 3: From fa1ca340944312acb0c0f2051433326ba06b2089 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 14 Apr 2016 15:57:59 -0500 Subject: [PATCH 099/259] Respond to @wbinventor comments on #626 --- docs/source/pythonapi/index.rst | 18 ++++++++++++------ openmc/__init__.py | 1 - openmc/cell.py | 15 +++++++-------- openmc/filter.py | 2 +- openmc/lattice.py | 22 ++++++++++++---------- openmc/mgxs/mgxs.py | 4 ++-- openmc/surface.py | 9 +++------ openmc/universe.py | 13 ++++++++----- 8 files changed, 45 insertions(+), 39 deletions(-) diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 3e0d8a418..9fd70cb5a 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -74,6 +74,7 @@ Building geometry :nosignatures: :template: myclass.rst + openmc.Plane openmc.XPlane openmc.YPlane openmc.ZPlane @@ -81,6 +82,11 @@ Building geometry openmc.YCylinder openmc.ZCylinder openmc.Sphere + openmc.Cone + openmc.XCone + openmc.YCone + openmc.ZCone + openmc.Quadric openmc.Halfspace openmc.Intersection openmc.Union @@ -168,12 +174,12 @@ Various classes may be created when performing tally slicing and/or arithmetic: :nosignatures: :template: myclass.rst - openmc.CrossScore - openmc.CrossNuclide - openmc.CrossFilter - openmc.AggregateScore - openmc.AggregateNuclide - openmc.AggregateFilter + openmc.arithmetic.CrossScore + openmc.arithmetic.CrossNuclide + openmc.arithmetic.CrossFilter + openmc.arithmetic.AggregateScore + openmc.arithmetic.AggregateNuclide + openmc.arithmetic.AggregateFilter --------------------------------- :mod:`openmc.stats` -- Statistics diff --git a/openmc/__init__.py b/openmc/__init__.py index b6a93c0a4..0bde0f584 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -21,7 +21,6 @@ from openmc.summary import * from openmc.region import * from openmc.source import * from openmc.particle_restart import * -from openmc.arithmetic import * try: from openmc.opencg_compatible import * diff --git a/openmc/cell.py b/openmc/cell.py index cf247963a..ed1f3178b 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -13,7 +13,6 @@ if sys.version_info[0] >= 3: basestring = str - # A static variable for auto-generated Cell IDs AUTO_CELL_ID = 10000 @@ -23,8 +22,6 @@ def reset_auto_cell_id(): AUTO_CELL_ID = 10000 - - class Cell(object): """A region of space defined as the intersection of half-space created by quadric surfaces. @@ -81,7 +78,7 @@ class Cell(object): elif self.name != other.name: return False elif self.fill != other.fill: - return False + return False elif self.region != other.region: return False elif self.rotation != other.rotation: @@ -335,7 +332,8 @@ class Cell(object): Returns ------- cells : dict - Dictionary whose keys are cell IDs and values are Cell instances + Dictionary whose keys are cell IDs and values are :class:`Cell` + instances """ @@ -352,7 +350,8 @@ class Cell(object): Returns ------- materials : dict - Dictionary whose keys are material IDs and values are Material instances + Dictionary whose keys are material IDs and values are + :class:`Material` instances """ @@ -374,8 +373,8 @@ class Cell(object): Returns ------- universes : dict - Dictionary whose keys are universe IDs and values are Universe - instances + Dictionary whose keys are universe IDs and values are + :class:`Universe` instances """ diff --git a/openmc/filter.py b/openmc/filter.py index 037062a4c..249bdcc02 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -520,7 +520,7 @@ class Filter(object): This method constructs a Pandas DataFrame object for the filter with columns annotated by filter bin information. This is a helper method for - :math:`Tally.get_pandas_dataframe`. + :meth:`Tally.get_pandas_dataframe`. This capability has been tested for Pandas >=0.13.1. However, it is recommended to use v0.16 or newer versions of Pandas since this method diff --git a/openmc/lattice.py b/openmc/lattice.py index 1b478e537..7e78abf06 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -126,8 +126,8 @@ class Lattice(object): Returns ------- universes : collections.OrderedDict - Dictionary whose keys are universe IDs and values are Universe - instances + Dictionary whose keys are universe IDs and values are + :class:`Universe` instances """ @@ -176,7 +176,8 @@ class Lattice(object): Returns ------- cells : collections.OrderedDict - Dictionary whose keys are cell IDs and values are Cell instances + Dictionary whose keys are cell IDs and values are :class:`Cell` + instances """ @@ -194,7 +195,8 @@ class Lattice(object): Returns ------- materials : collections.OrderedDict - Dictionary whose keys are material IDs and values are Material instances + Dictionary whose keys are material IDs and values are + :class:`Material` instances """ @@ -213,8 +215,8 @@ class Lattice(object): Returns ------- universes : collections.OrderedDict - Dictionary whose keys are universe IDs and values are Universe - instances + Dictionary whose keys are universe IDs and values are + :class:`Universe` instances """ @@ -252,10 +254,10 @@ class RectLattice(Lattice): Unique identifier for the lattice name : str Name of the lattice - dimension : array-like of int + dimension : Iterable of int An array of two or three integers representing the number of lattice cells in the x- and y- (and z-) directions, respectively. - lower_left : array-like of float + lower_left : Iterable of float The coordinates of the lower-left corner of the lattice. If the lattice is two-dimensional, only the x- and y-coordinates are specified. @@ -501,7 +503,7 @@ class HexLattice(Lattice): Number of radial ring positions in the xy-plane num_axial : int Number of positions along the z-axis. - center : array-like of float + center : Iterable of float Coordinates of the center of the lattice. If the lattice does not have axial sections then only the x- and y-coordinates are specified @@ -777,7 +779,7 @@ class HexLattice(Lattice): id_form = '{: ^' + str(n_digits) + 'd}' # Initialize the list for each row. - rows = [ [] for i in range(1 + 4 * (self._num_rings-1)) ] + rows = [[] for i in range(1 + 4 * (self._num_rings-1))] middle = 2 * (self._num_rings - 1) # Start with the degenerate first ring. diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index a9a58b957..0c3612e9f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1349,7 +1349,7 @@ class MGXS(object): xs_type='macro', summary=None): """Build a Pandas DataFrame for the MGXS data. - This method leverages :math:`openmc.Tally.get_pandas_dataframe`, but + This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but renames the columns with terminology appropriate for cross section data. Parameters @@ -2560,7 +2560,7 @@ class Chi(MGXS): xs_type='macro', summary=None): """Build a Pandas DataFrame for the MGXS data. - This method leverages :math:`openmc.Tally.get_pandas_dataframe`, but + This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but renames the columns with terminology appropriate for cross section data. Parameters diff --git a/openmc/surface.py b/openmc/surface.py index 5b0b1a7b5..5c8b20856 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -278,8 +278,7 @@ class Plane(Surface): class XPlane(Plane): - """A plane perpendicular to the x axis, i.e. a surface of the form :math:`x - - x_0 = 0` + """A plane perpendicular to the x axis of the form :math:`x - x_0 = 0` Parameters ---------- @@ -356,8 +355,7 @@ class XPlane(Plane): class YPlane(Plane): - """A plane perpendicular to the y axis, i.e. a surface of the form :math:`y - - y_0 = 0` + """A plane perpendicular to the y axis of the form :math:`y - y_0 = 0` Parameters ---------- @@ -434,8 +432,7 @@ class YPlane(Plane): class ZPlane(Plane): - """A plane perpendicular to the z axis, i.e. a surface of the form :math:`z - - z_0 = 0` + """A plane perpendicular to the z axis of the form :math:`z - z_0 = 0` Parameters ---------- diff --git a/openmc/universe.py b/openmc/universe.py index ebc2eced4..eb6d13233 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -44,7 +44,8 @@ class Universe(object): name : str Name of the universe cells : collections.OrderedDict - Dictionary whose keys are cell IDs and values are Cell instances + Dictionary whose keys are cell IDs and values are :class:`Cell` + instances """ @@ -229,7 +230,8 @@ class Universe(object): Returns ------- cells : collections.OrderedDict - Dictionary whose keys are cell IDs and values are Cell instances + Dictionary whose keys are cell IDs and values are :class:`Cell` + instances """ @@ -250,7 +252,8 @@ class Universe(object): Returns ------- materials : Collections.OrderedDict - Dictionary whose keys are material IDs and values are Material instances + Dictionary whose keys are material IDs and values are + :class:`Material` instances """ @@ -269,8 +272,8 @@ class Universe(object): Returns ------- universes : collections.OrderedDict - Dictionary whose keys are universe IDs and values are Universe - instances + Dictionary whose keys are universe IDs and values are + :class:`Universe` instances """ From 9b4d4af21815b2d1eb6b40042ebe3d5e9529e331 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 15 Apr 2016 09:00:36 -0500 Subject: [PATCH 100/259] Add sphinx.ext.viewcode extension for docs --- docs/source/conf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/conf.py b/docs/source/conf.py index 3bf5b0b1e..38661cdb3 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -44,6 +44,7 @@ extensions = ['sphinx.ext.autodoc', 'sphinx.ext.mathjax', 'sphinx.ext.autosummary', 'sphinx.ext.intersphinx', + 'sphinx.ext.viewcode', 'sphinx_numfig', 'notebook_sphinxext'] From f5f12b045ecac2bb2a957ce3802dae88ebccf4d8 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 20 Apr 2016 19:13:55 -0400 Subject: [PATCH 101/259] Hotfix for OpenCG compatibility module to properly handle ZSquarePrism for @cjosey --- openmc/opencg_compatible.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index d690c2c6a..562fe9cad 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -393,9 +393,9 @@ def get_compatible_opencg_surfaces(opencg_surface): surfaces = [left, right, bottom, top] elif opencg_surface.type == 'z-squareprism': - x0 = opencg_surface.x0['x0'] - y0 = opencg_surface.y0['y0'] - R = opencg_surface.r['R'] + x0 = opencg_surface.x0 + y0 = opencg_surface.y0 + R = opencg_surface.r # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) @@ -528,7 +528,7 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): # Get the compatible Surfaces (XPlanes and YPlanes) compatible_surfaces = get_compatible_opencg_surfaces(opencg_surface) - opencg_cell.removeSurface(opencg_surface) + opencg_cell.remove_surface(opencg_surface) # If Cell is inside SquarePrism, add "inside" of Surface halfspaces if halfspace == -1: @@ -595,7 +595,7 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): # Remove redundant Surfaces from the Cells for cell in compatible_cells: - cell.removeRedundantSurfaces() + cell.remove_redundant_surfaces() # Return the list of OpenMC compatible OpenCG Cells return compatible_cells @@ -639,7 +639,7 @@ def make_opencg_cells_compatible(opencg_universe): surface, halfspace) # Remove the non-compatible OpenCG Cell from the Universe - opencg_universe.removeCell(opencg_cell) + opencg_universe.remove_cell(opencg_cell) # Add the compatible OpenCG Cells to the Universe opencg_universe.add_cells(cells) From f622300b7fc3c9f991aace1b13ac2336ec53a59c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Apr 2016 08:29:36 -0500 Subject: [PATCH 102/259] Various improvements/fixes to Python API. Also fix MPI F08 binding issue. --- openmc/filter.py | 3 +- openmc/material.py | 35 +- openmc/plots.py | 4 +- openmc/surface.py | 588 ++++++++++-------- src/simulation.F90 | 2 +- tests/test_asymmetric_lattice/inputs_true.dat | 2 +- tests/test_distribmat/inputs_true.dat | 2 +- tests/test_iso_in_lab/inputs_true.dat | 2 +- tests/test_mg_basic/inputs_true.dat | 2 +- tests/test_mg_max_order/inputs_true.dat | 2 +- tests/test_mg_nuclide/inputs_true.dat | 2 +- tests/test_mg_tallies/inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- tests/test_tallies/inputs_true.dat | 2 +- tests/test_tally_aggregation/inputs_true.dat | 2 +- tests/test_tally_arithmetic/inputs_true.dat | 2 +- tests/test_tally_slice_merge/inputs_true.dat | 2 +- 21 files changed, 365 insertions(+), 299 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 249bdcc02..b0e59874b 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -27,7 +27,8 @@ class Filter(object): type : str The type of the tally filter. Acceptable values are "universe", "material", "cell", "cellborn", "surface", "mesh", "energy", - "energyout", and "distribcell". + "energyout", "distribcell", "mu", "polar", "azimuthal", and + "delayedgroup". bins : Integral or Iterable of Integral or Iterable of Real The bins for the filter. This takes on different meaning for different filters. See the OpenMC online documentation for more details. diff --git a/openmc/material.py b/openmc/material.py index 2c04a9ecf..16af82439 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -25,9 +25,6 @@ def reset_auto_material_id(): DENSITY_UNITS = ['g/cm3', 'g/cc', 'kg/cm3', 'atom/b-cm', 'atom/cm3', 'sum', 'macro'] -# Constant for density when not needed -NO_DENSITY = 99999. - class Material(object): """A material composed of a collection of nuclides/elements that can be @@ -141,9 +138,9 @@ class Material(object): string += '{0: <16}\n'.format('\tElements') for element in self._elements: - percent = self._nuclides[element][1] - percent_type = self._nuclides[element][2] - string += '{0: >16}'.format('\t{0}'.format(element)) + percent = self._elements[element][1] + percent_type = self._elements[element][2] + string += '{0: <16}'.format('\t{0}'.format(element)) string += '=\t{0: <12} [{1}]\n'.format(percent, percent_type) return string @@ -218,13 +215,13 @@ class Material(object): else: self._name = '' - def set_density(self, units, density=NO_DENSITY): + def set_density(self, units, density=None): """Set the density of the material Parameters ---------- - units : str - Physical units of density + units : {'g/cm3', 'g/cc', 'km/cm3', 'atom/b-cm', 'atom/cm3', 'sum', 'macro'} + Physical units of density. density : float, optional Value of the density. Must be specified unless units is given as 'sum'. @@ -235,8 +232,8 @@ class Material(object): density, Real) check_value('density units', units, DENSITY_UNITS) - if density == NO_DENSITY and units is not 'sum': - msg = 'Unable to set the density Material ID="{0}" ' \ + if density is None and units is not 'sum': + msg = 'Unable to set the density for Material ID="{0}" ' \ 'because a density must be set when not using ' \ 'sum unit'.format(self._id) raise ValueError(msg) @@ -274,7 +271,7 @@ class Material(object): Nuclide to add percent : float Atom or weight percent - percent_type : str + percent_type : {'ao', 'wo'} 'ao' for atom percent and 'wo' for weight percent """ @@ -394,7 +391,7 @@ class Material(object): Element to add percent : float Atom or weight percent - percent_type : str + percent_type : {'ao', 'wo'} 'ao' for atom percent and 'wo' for weight percent """ @@ -420,7 +417,10 @@ class Material(object): raise ValueError(msg) # Copy this Element to separate it from same Element in other Materials - element = deepcopy(element) + if isinstance(element, openmc.Element): + element = deepcopy(element) + else: + element = openmc.Element(element) self._elements[element._name] = (element, percent, percent_type) @@ -498,7 +498,7 @@ class Material(object): xml_element.set("name", nuclide[0]._name) if not distrib: - if nuclide[2] is 'ao': + if nuclide[2] == 'ao': xml_element.set("ao", str(nuclide[1])) else: xml_element.set("wo", str(nuclide[1])) @@ -525,11 +525,14 @@ class Material(object): xml_element.set("name", str(element[0]._name)) if not distrib: - if element[2] is 'ao': + if element[2] == 'ao': xml_element.set("ao", str(element[1])) else: xml_element.set("wo", str(element[1])) + if element[0].xs is not None: + xml_element.set("xs", element[0].xs) + if not element[0].scattering is None: xml_element.set("scattering", element[0].scattering) diff --git a/openmc/plots.py b/openmc/plots.py index 6e78995f4..5e7c47743 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -125,7 +125,7 @@ class Plot(object): return self._background @property - def mask_componenets(self): + def mask_components(self): return self._mask_components @property @@ -227,7 +227,7 @@ class Plot(object): self._col_spec = col_spec - @mask_componenets.setter + @mask_components.setter def mask_components(self, mask_components): cv.check_type('plot mask_components', mask_components, Iterable, Integral) for component in mask_components: diff --git a/openmc/surface.py b/openmc/surface.py index 5c8b20856..c6f3f2cd0 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -23,8 +23,7 @@ def reset_auto_surface_id(): class Surface(object): - """A two-dimensional surface that can be used define regions of space with an - associated boundary condition. + """A two-dimensional surface with an associated boundary condition. Parameters ---------- @@ -56,7 +55,6 @@ class Surface(object): """ def __init__(self, surface_id=None, boundary_type='transmission', name=''): - # Initialize class attributes self.id = surface_id self.name = name self._type = '' @@ -173,7 +171,8 @@ class Surface(object): element.set("name", str(self._name)) element.set("type", self._type) - element.set("boundary", self._boundary_type) + if self.boundary_type != 'transmission': + element.set("boundary", self.boundary_type) element.set("coeffs", ' '.join([str(self._coeffs.setdefault(key, 0.0)) for key in self._coeff_keys])) @@ -185,22 +184,22 @@ class Plane(Surface): Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - A : float - The 'A' parameter for the plane - B : float - The 'B' parameter for the plane - C : float - The 'C' parameter for the plane - D : float - The 'D' parameter for the plane - name : str + A : float, optional + The 'A' parameter for the plane. Defaults to 1. + B : float, optional + The 'B' parameter for the plane. Defaults to 0. + C : float, optional + The 'C' parameter for the plane. Defaults to 0. + D : float, optional + The 'D' parameter for the plane. Defaults to 0. + name : str, optional Name of the plane. If not specified, the name will be the empty string. Attributes @@ -213,32 +212,30 @@ class Plane(Surface): The 'C' parameter for the plane d : float The 'D' parameter for the plane + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - A=None, B=None, C=None, D=None, name=''): - # Initialize Plane class attributes + A=1., B=0., C=0., D=0., name=''): super(Plane, self).__init__(surface_id, boundary_type, name=name) self._type = 'plane' self._coeff_keys = ['A', 'B', 'C', 'D'] - self._coeffs['A'] = 1. - self._coeffs['B'] = 0. - self._coeffs['C'] = 0. - self._coeffs['D'] = 0. - - if A is not None: - self.a = A - - if B is not None: - self.b = B - - if C is not None: - self.c = C - - if D is not None: - self.d = D + self.a = A + self.b = B + self.c = C + self.d = D @property def a(self): @@ -282,36 +279,43 @@ class XPlane(Plane): Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - x0 : float - Location of the plane - name : str + x0 : float, optional + Location of the plane. Defaults to 0. + name : str, optional Name of the plane. If not specified, the name will be the empty string. Attributes ---------- x0 : float Location of the plane + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - x0=None, name=''): - # Initialize XPlane class attributes + x0=0., name=''): super(XPlane, self).__init__(surface_id, boundary_type, name=name) self._type = 'x-plane' self._coeff_keys = ['x0'] - self._coeffs['x0'] = 0. - - if x0 is not None: - self.x0 = x0 + self.x0 = x0 @property def x0(self): @@ -359,36 +363,44 @@ class YPlane(Plane): Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - y0 : float + y0 : float, optional Location of the plane - name : str + name : str, optional Name of the plane. If not specified, the name will be the empty string. Attributes ---------- y0 : float Location of the plane + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - y0=None, name=''): + y0=0., name=''): # Initialize YPlane class attributes super(YPlane, self).__init__(surface_id, boundary_type, name=name) self._type = 'y-plane' self._coeff_keys = ['y0'] - self._coeffs['y0'] = 0. - - if y0 is not None: - self.y0 = y0 + self.y0 = y0 @property def y0(self): @@ -436,36 +448,44 @@ class ZPlane(Plane): Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - z0 : float - Location of the plane - name : str + z0 : float, optional + Location of the plane. Defaults to 0. + name : str, optional Name of the plane. If not specified, the name will be the empty string. Attributes ---------- z0 : float Location of the plane + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - z0=None, name=''): + z0=0., name=''): # Initialize ZPlane class attributes super(ZPlane, self).__init__(surface_id, boundary_type, name=name) self._type = 'z-plane' self._coeff_keys = ['z0'] - self._coeffs['z0'] = 0. - - if z0 is not None: - self.z0 = z0 + self.z0 = z0 @property def z0(self): @@ -513,16 +533,16 @@ class Cylinder(Surface): Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - R : float - Radius of the cylinder - name : str + R : float, optional + Radius of the cylinder. Defaults to 1. + name : str, optional Name of the cylinder. If not specified, the name will be the empty string. @@ -530,21 +550,28 @@ class Cylinder(Surface): ---------- r : float Radius of the cylinder + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ __metaclass__ = ABCMeta def __init__(self, surface_id=None, boundary_type='transmission', - R=None, name=''): - # Initialize Cylinder class attributes + R=1., name=''): super(Cylinder, self).__init__(surface_id, boundary_type, name=name) self._coeff_keys = ['R'] - self._coeffs['R'] = 1. - - if R is not None: - self.r = R + self.r = R @property def r(self): @@ -557,25 +584,25 @@ class Cylinder(Surface): class XCylinder(Cylinder): - """An infinite cylinder whose length is parallel to the x-axis. This is a - quadratic surface of the form :math:`(y - y_0)^2 + (z - z_0)^2 = R^2`. + """An infinite cylinder whose length is parallel to the x-axis of the form + :math:`(y - y_0)^2 + (z - z_0)^2 = R^2`. Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - y0 : float - y-coordinate of the center of the cylinder - z0 : float - z-coordinate of the center of the cylinder - R : float - Radius of the cylinder - name : str + y0 : float, optional + y-coordinate of the center of the cylinder. Defaults to 0. + z0 : float, optional + z-coordinate of the center of the cylinder. Defaults to 0. + R : float, optional + Radius of the cylinder. Defaults to 0. + name : str, optional Name of the cylinder. If not specified, the name will be the empty string. @@ -585,24 +612,28 @@ class XCylinder(Cylinder): y-coordinate of the center of the cylinder z0 : float z-coordinate of the center of the cylinder + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - y0=None, z0=None, R=None, name=''): - # Initialize XCylinder class attributes + y0=0., z0=0., R=1., name=''): super(XCylinder, self).__init__(surface_id, boundary_type, R, name=name) self._type = 'x-cylinder' self._coeff_keys = ['y0', 'z0', 'R'] - self._coeffs['y0'] = 0. - self._coeffs['z0'] = 0. - - if y0 is not None: - self.y0 = y0 - - if z0 is not None: - self.z0 = z0 + self.y0 = y0 + self.z0 = z0 @property def y0(self): @@ -656,25 +687,25 @@ class XCylinder(Cylinder): class YCylinder(Cylinder): - """An infinite cylinder whose length is parallel to the y-axis. This is a - quadratic surface of the form :math:`(x - x_0)^2 + (z - z_0)^2 = R^2`. + """An infinite cylinder whose length is parallel to the y-axis of the form + :math:`(x - x_0)^2 + (z - z_0)^2 = R^2`. Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - x0 : float - x-coordinate of the center of the cylinder - z0 : float - z-coordinate of the center of the cylinder - R : float - Radius of the cylinder - name : str + x0 : float, optional + x-coordinate of the center of the cylinder. Defaults to 0. + z0 : float, optional + z-coordinate of the center of the cylinder. Defaults to 0. + R : float, optional + Radius of the cylinder. Defaults to 1. + name : str, optional Name of the cylinder. If not specified, the name will be the empty string. @@ -684,24 +715,28 @@ class YCylinder(Cylinder): x-coordinate of the center of the cylinder z0 : float z-coordinate of the center of the cylinder + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - x0=None, z0=None, R=None, name=''): - # Initialize YCylinder class attributes + x0=0., z0=0., R=1., name=''): super(YCylinder, self).__init__(surface_id, boundary_type, R, name=name) self._type = 'y-cylinder' self._coeff_keys = ['x0', 'z0', 'R'] - self._coeffs['x0'] = 0. - self._coeffs['z0'] = 0. - - if x0 is not None: - self.x0 = x0 - - if z0 is not None: - self.z0 = z0 + self.x0 = x0 + self.z0 = z0 @property def x0(self): @@ -755,25 +790,25 @@ class YCylinder(Cylinder): class ZCylinder(Cylinder): - """An infinite cylinder whose length is parallel to the z-axis. This is a - quadratic surface of the form :math:`(x - x_0)^2 + (y - y_0)^2 = R^2`. + """An infinite cylinder whose length is parallel to the z-axis of the form + :math:`(x - x_0)^2 + (y - y_0)^2 = R^2`. Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - x0 : float - x-coordinate of the center of the cylinder - y0 : float - y-coordinate of the center of the cylinder - R : float - Radius of the cylinder - name : str + x0 : float, optional + x-coordinate of the center of the cylinder. Defaults to 0. + y0 : float, optional + y-coordinate of the center of the cylinder. Defaults to 0. + R : float, optional + Radius of the cylinder. Defaults to 1. + name : str, optional Name of the cylinder. If not specified, the name will be the empty string. @@ -783,24 +818,28 @@ class ZCylinder(Cylinder): x-coordinate of the center of the cylinder y0 : float y-coordinate of the center of the cylinder + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - x0=None, y0=None, R=None, name=''): - # Initialize ZCylinder class attributes + x0=0., y0=0., R=1., name=''): super(ZCylinder, self).__init__(surface_id, boundary_type, R, name=name) self._type = 'z-cylinder' self._coeff_keys = ['x0', 'y0', 'R'] - self._coeffs['x0'] = 0. - self._coeffs['y0'] = 0. - - if x0 is not None: - self.x0 = x0 - - if y0 is not None: - self.y0 = y0 + self.x0 = x0 + self.y0 = y0 @property def x0(self): @@ -858,22 +897,22 @@ class Sphere(Surface): Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - x0 : float - x-coordinate of the center of the sphere - y0 : float - y-coordinate of the center of the sphere - z0 : float - z-coordinate of the center of the sphere - R : float - Radius of the sphere - name : str + x0 : float, optional + x-coordinate of the center of the sphere. Defaults to 0. + y0 : float, optional + y-coordinate of the center of the sphere. Defaults to 0. + z0 : float, optional + z-coordinate of the center of the sphere. Defaults to 0. + R : float, optional + Radius of the sphere. Defaults to 1. + name : str, optional Name of the sphere. If not specified, the name will be the empty string. Attributes @@ -886,32 +925,30 @@ class Sphere(Surface): z-coordinate of the center of the sphere R : float Radius of the sphere + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - x0=None, y0=None, z0=None, R=None, name=''): - # Initialize Sphere class attributes + x0=0., y0=0., z0=0., R=1., name=''): super(Sphere, self).__init__(surface_id, boundary_type, name=name) self._type = 'sphere' self._coeff_keys = ['x0', 'y0', 'z0', 'R'] - self._coeffs['x0'] = 0. - self._coeffs['y0'] = 0. - self._coeffs['z0'] = 0. - self._coeffs['R'] = 1. - - if x0 is not None: - self.x0 = x0 - - if y0 is not None: - self.y0 = y0 - - if z0 is not None: - self.z0 = z0 - - if R is not None: - self.r = R + self.x0 = x0 + self.y0 = y0 + self.z0 = z0 + self.r = R @property def x0(self): @@ -988,21 +1025,21 @@ class Cone(Surface): Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - x0 : float - x-coordinate of the apex + x0 : float, optional + x-coordinate of the apex. Defaults to 0. y0 : float - y-coordinate of the apex + y-coordinate of the apex. Defaults to 0. z0 : float - z-coordinate of the apex + z-coordinate of the apex. Defaults to 0. R2 : float - Parameter related to the aperature + Parameter related to the aperature. Defaults to 1. name : str Name of the cone. If not specified, the name will be the empty string. @@ -1016,33 +1053,31 @@ class Cone(Surface): z-coordinate of the apex R2 : float Parameter related to the aperature + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ __metaclass__ = ABCMeta def __init__(self, surface_id=None, boundary_type='transmission', - x0=None, y0=None, z0=None, R2=None, name=''): - # Initialize Cone class attributes + x0=0., y0=0., z0=0., R2=1., name=''): super(Cone, self).__init__(surface_id, boundary_type, name=name) self._coeff_keys = ['x0', 'y0', 'z0', 'R2'] - self._coeffs['x0'] = 0. - self._coeffs['y0'] = 0. - self._coeffs['z0'] = 0. - self._coeffs['R2'] = 1. - - if x0 is not None: - self.x0 = x0 - - if y0 is not None: - self.y0 = y0 - - if z0 is not None: - self.z0 = z0 - - if R2 is not None: - self.r2 = R2 + self.x0 = x0 + self.y0 = y0 + self.z0 = z0 + self.r2 = R2 @property def x0(self): @@ -1087,22 +1122,22 @@ class XCone(Cone): Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - x0 : float - x-coordinate of the apex - y0 : float - y-coordinate of the apex - z0 : float - z-coordinate of the apex - R2 : float - Parameter related to the aperature - name : str + x0 : float, optional + x-coordinate of the apex. Defaults to 0. + y0 : float, optional + y-coordinate of the apex. Defaults to 0. + z0 : float, optional + z-coordinate of the apex. Defaults to 0. + R2 : float, optional + Parameter related to the aperature. Defaults to 1. + name : str, optional Name of the cone. If not specified, the name will be the empty string. Attributes @@ -1115,12 +1150,22 @@ class XCone(Cone): z-coordinate of the apex R2 : float Parameter related to the aperature + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - x0=None, y0=None, z0=None, R2=None, name=''): - # Initialize XCone class attributes + x0=0., y0=0., z0=0., R2=1., name=''): super(XCone, self).__init__(surface_id, boundary_type, x0, y0, z0, R2, name=name) @@ -1133,22 +1178,22 @@ class YCone(Cone): Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - x0 : float - x-coordinate of the apex - y0 : float - y-coordinate of the apex - z0 : float - z-coordinate of the apex - R2 : float - Parameter related to the aperature - name : str + x0 : float, optional + x-coordinate of the apex. Defaults to 0. + y0 : float, optional + y-coordinate of the apex. Defaults to 0. + z0 : float, optional + z-coordinate of the apex. Defaults to 0. + R2 : float, optional + Parameter related to the aperature. Defaults to 1. + name : str, optional Name of the cone. If not specified, the name will be the empty string. Attributes @@ -1161,12 +1206,22 @@ class YCone(Cone): z-coordinate of the apex R2 : float Parameter related to the aperature + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - x0=None, y0=None, z0=None, R2=None, name=''): - # Initialize YCone class attributes + x0=0., y0=0., z0=0., R2=1., name=''): super(YCone, self).__init__(surface_id, boundary_type, x0, y0, z0, R2, name=name) @@ -1179,22 +1234,22 @@ class ZCone(Cone): Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - x0 : float - x-coordinate of the apex - y0 : float - y-coordinate of the apex - z0 : float - z-coordinate of the apex - R2 : float - Parameter related to the aperature - name : str + x0 : float, optional + x-coordinate of the apex. Defaults to 0. + y0 : float, optional + y-coordinate of the apex. Defaults to 0. + z0 : float, optional + z-coordinate of the apex. Defaults to 0. + R2 : float, optional + Parameter related to the aperature. Defaults to 1. + name : str, optional Name of the cone. If not specified, the name will be the empty string. Attributes @@ -1207,12 +1262,22 @@ class ZCone(Cone): z-coordinate of the apex R2 : float Parameter related to the aperature + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - x0=None, y0=None, z0=None, R2=None, name=''): - # Initialize ZCone class attributes + x0=0., y0=0., z0=0., R2=1., name=''): super(ZCone, self).__init__(surface_id, boundary_type, x0, y0, z0, R2, name=name) @@ -1220,61 +1285,58 @@ class ZCone(Cone): class Quadric(Surface): - """A sphere of the form :math:`Ax^2 + By^2 + Cz^2 + Dxy + Eyz + Fxz + Gx + Hy + - Jz + K`. + """A surface of the form :math:`Ax^2 + By^2 + Cz^2 + Dxy + Eyz + Fxz + Gx + Hy + + Jz + K = 0`. Parameters ---------- - surface_id : int + surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. - a, b, c, d, e, f, g, h, j, k : float - coefficients for the surface - name : str + a, b, c, d, e, f, g, h, j, k : float, optional + coefficients for the surface. All default to 0. + name : str, optional Name of the sphere. If not specified, the name will be the empty string. Attributes ---------- a, b, c, d, e, f, g, h, j, k : float coefficients for the surface + boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + Boundary condition that defines the behavior for particles hitting the + surface. + coeffs : dict + Dictionary of surface coefficients + id : int + Unique identifier for the surface + name : str + Name of the surface + type : str + Type of the surface, e.g. 'x-plane' """ def __init__(self, surface_id=None, boundary_type='transmission', - a=None, b=None, c=None, d=None, e=None, f=None, g=None, - h=None, j=None, k=None, name=''): - # Initialize Quadric class attributes + a=0., b=0., c=0., d=0., e=0., f=0., g=0., + h=0., j=0., k=0., name=''): super(Quadric, self).__init__(surface_id, boundary_type, name=name) self._type = 'quadric' self._coeff_keys = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k'] - for key in self._coeff_keys: - self._coeffs[key] = 0. - - if a is not None: - self.a = a - if b is not None: - self.b = b - if c is not None: - self.c = c - if d is not None: - self.d = d - if e is not None: - self.e = e - if f is not None: - self.f = f - if g is not None: - self.g = g - if h is not None: - self.h = h - if j is not None: - self.j = j - if k is not None: - self.k = k + self.a = a + self.b = b + self.c = c + self.d = d + self.e = e + self.f = f + self.g = g + self.h = h + self.j = j + self.k = k @property def a(self): diff --git a/src/simulation.F90 b/src/simulation.F90 index 41a28741c..b762979d7 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -1,7 +1,7 @@ module simulation #ifdef MPI - use mpi + use message_passing #endif use cmfd_execute, only: cmfd_init_batch, execute_cmfd diff --git a/tests/test_asymmetric_lattice/inputs_true.dat b/tests/test_asymmetric_lattice/inputs_true.dat index e3b00b185..f40e661b3 100644 --- a/tests/test_asymmetric_lattice/inputs_true.dat +++ b/tests/test_asymmetric_lattice/inputs_true.dat @@ -1 +1 @@ -b9b4222c4beea80fe6083590f6b785303d174972d80671fb661bac8e030db6f4a61648240cfad6162799361fc0e08a23c61d31aff844d978528d6dad5b5fbc63 \ No newline at end of file +9b859eb5501c05b6a652d299bd0cadc0a924ffae31117babbdc9f7f8ca87689322c275818eb0dde0ff5fa78317d8d8f1585b18dcc772e3ff4ed499de8a491dc3 \ No newline at end of file diff --git a/tests/test_distribmat/inputs_true.dat b/tests/test_distribmat/inputs_true.dat index fddab0a60..9c8a86bfa 100644 --- a/tests/test_distribmat/inputs_true.dat +++ b/tests/test_distribmat/inputs_true.dat @@ -1 +1 @@ -401b8be1b296db7f21ccae089c7ac480044d953b7264ca0ae8e34bb79e24cbb57195bcb568deda6f2f7e07366bbfac408a92306351b9169edd04499723707e1b \ No newline at end of file +96c54eb4f1da175445bf2187449ee32c9ff435d8c60e9421a4a16497aae9f233e3e494f531892dd55f6ac1a06e0240799503ff19e14e2436a0b0f0d83ba56cb8 \ No newline at end of file diff --git a/tests/test_iso_in_lab/inputs_true.dat b/tests/test_iso_in_lab/inputs_true.dat index 9a21b06f1..bd722c9f6 100644 --- a/tests/test_iso_in_lab/inputs_true.dat +++ b/tests/test_iso_in_lab/inputs_true.dat @@ -1 +1 @@ -e0409e0660d58857a6a96ff5cb539ccc41c82f0e443e8081ee00bbee7b6c81b0ad43c870950ae37d4a18c329067b09479a27aa171c3a3f5771f53b384496fe61 \ No newline at end of file +85faac9b8c725ec9242ebc3793b70dcd1c8e58aeb4296345aefd8031304263bd66eaad0c6f1c61a1c644b73f397699856ab3d76d2b397295176650b4069acc9e \ No newline at end of file diff --git a/tests/test_mg_basic/inputs_true.dat b/tests/test_mg_basic/inputs_true.dat index fdbdb1c96..3f83de760 100644 --- a/tests/test_mg_basic/inputs_true.dat +++ b/tests/test_mg_basic/inputs_true.dat @@ -1 +1 @@ -04b4a5099f0097bbe02983c67dea691d0d0d4ece7fb7c264b9b2c29955baa9e870b6fa999480da08ead1e5a0c078ae33ce1b0a5c8594ad465aedf9bf3933e104 \ No newline at end of file +2fdba76bad058eec6e43657692ef759de79c934076067d4ec5c9f2bdb131877e001f67e16b16bb14889e5e0a1ba84c780979b9d6772573aa6f82d979774c2af8 \ No newline at end of file diff --git a/tests/test_mg_max_order/inputs_true.dat b/tests/test_mg_max_order/inputs_true.dat index 1ad336e19..913f8200f 100644 --- a/tests/test_mg_max_order/inputs_true.dat +++ b/tests/test_mg_max_order/inputs_true.dat @@ -1 +1 @@ -abe20c626d613e73ccb1a3f8468ad1b9aecca528afa9e8131a411d754eb86b8ab64a6fb1fdc9c0b8b8158ff7c82f548de5912041bf035aa5a2d4532cfe0c9510 \ No newline at end of file +7f7465abaf559b3ef56cb6b0f28050c12f392f55db33dc5d2cefc14b92beb2c9068834c05273e51323d3516643e8a385e4c177a7a471678c961808d19055a30f \ No newline at end of file diff --git a/tests/test_mg_nuclide/inputs_true.dat b/tests/test_mg_nuclide/inputs_true.dat index eb643bbaf..32a7773c1 100644 --- a/tests/test_mg_nuclide/inputs_true.dat +++ b/tests/test_mg_nuclide/inputs_true.dat @@ -1 +1 @@ -c9f9e7211bfb2af58130bedfd64592d093b7bfa424953eba433ecf08940595a96b8de7a892f12d1ab465cebd8e5dd784114c1b1299b534ed329df92752c9ed1f \ No newline at end of file +825dee3ca35d48788f1a4d5364789bbd83b36e33af9a990da758dd73c3bfcbee14bce2a41e6c80e0147f45575e59078653c8dfa8590cd361c09f19c26dc8c88e \ No newline at end of file diff --git a/tests/test_mg_tallies/inputs_true.dat b/tests/test_mg_tallies/inputs_true.dat index 304d2e888..41bbd2136 100644 --- a/tests/test_mg_tallies/inputs_true.dat +++ b/tests/test_mg_tallies/inputs_true.dat @@ -1 +1 @@ -ca8490e0e4549fed727ddc75b6d92cfe5162e11b905218a0afaa3ce2ee0763e2ff38074de27aaa678818624f49c5823650475dfa8f66f502a98fc03145399c0d \ No newline at end of file +6c437c3f9281c52a80a9b166971aa0f5db7ff8b6cf65c79b6d7bf294fad30cc7044f6a665cd9059f8580441bcbb581f7152ff5bccbc21fbcc407847ea6fe3306 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index b94f64122..51fc95c60 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -53b1740921b71e4ead909ab9e4c25f7d43990fe7d7051fde6f66c39c0a6082177385640244010e1b9dbeaf5f34adf1627e9603088af729fadd6b589c19102edc \ No newline at end of file +3e7b4ee62e0a53b92d4241f33493786532934f20ebcf47d92825bb1ee2f67c52aa8e7832cf28a9911221f802da205fba2b23c7228899780089da69e21042743c \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 04e56658f..78ffa3faf 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -224a9e84e87c8a21385326d34ef27c046107d4a2ace6ee85d7a36142a3726e12532e2fc1a318ab707437e0b306a81c6d2b80c531d4c3210d4162242e6265ba70 \ No newline at end of file +2c078f650fed5fc241f42b2d7404fb7fae59d782102fad66b4cd2c8a4b1f266d64e8ce1ec0556117c2a2b1fe49aa583f340dc43df3ddc9320557aa97bb554c05 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index b94f64122..51fc95c60 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -53b1740921b71e4ead909ab9e4c25f7d43990fe7d7051fde6f66c39c0a6082177385640244010e1b9dbeaf5f34adf1627e9603088af729fadd6b589c19102edc \ No newline at end of file +3e7b4ee62e0a53b92d4241f33493786532934f20ebcf47d92825bb1ee2f67c52aa8e7832cf28a9911221f802da205fba2b23c7228899780089da69e21042743c \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index b94f64122..51fc95c60 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -53b1740921b71e4ead909ab9e4c25f7d43990fe7d7051fde6f66c39c0a6082177385640244010e1b9dbeaf5f34adf1627e9603088af729fadd6b589c19102edc \ No newline at end of file +3e7b4ee62e0a53b92d4241f33493786532934f20ebcf47d92825bb1ee2f67c52aa8e7832cf28a9911221f802da205fba2b23c7228899780089da69e21042743c \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index f87bc242d..9436f03a0 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -c6a2a1c707bc723fd38bafd18efcfb22beaac0bd5953d7524ced1d47866cc1e1ee4152e39234d32a06fe43aff446fb12f8c5b62a44075607f274778b49110762 \ No newline at end of file +b035f783fa75ada619b0a58675913e318fef94e519c85cae6982f650d7655cb130f625572fde2058e005b490359180cb9d1e1095f5d35d41c9a0f8ff6e0dc3c1 \ No newline at end of file diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index 657a9e77d..be789fc83 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -5e168146d91b7b5fadecb80a32df9edc906718fb2d70b68b4c18dbed0641739251a1c16177c9f4d47516dfd528ec930879534292ff0eb82af89eca2c3fa4a3e0 \ No newline at end of file +0597eff3fddbc45a09b5b324c9704e540b694b07c136f2040426fdcfe5ec544f036073e4afa34a5fb0fbd721a4c0a609b9b68bf17ce4ec78302023b46b71930c \ No newline at end of file diff --git a/tests/test_tally_aggregation/inputs_true.dat b/tests/test_tally_aggregation/inputs_true.dat index 7b4276f59..055ac76fd 100644 --- a/tests/test_tally_aggregation/inputs_true.dat +++ b/tests/test_tally_aggregation/inputs_true.dat @@ -1 +1 @@ -530a5e969901e153531f74aed46246b1e8783a0e2f347e472f7554c9970152f45d85499f17d7df9c35c74fed6f78d449aa70bf0c1f8947cd34d3a829483a0055 \ No newline at end of file +f819f1b3564ca1df1e235f120f4bd65003cd80935fa8261f0a5982b7e7ec5b2e7497716673c142fab99f3fb26c174ac7a12e145b9a6f2caf707d2a07702f6eb2 \ No newline at end of file diff --git a/tests/test_tally_arithmetic/inputs_true.dat b/tests/test_tally_arithmetic/inputs_true.dat index 1b6046f1a..d7b854a51 100644 --- a/tests/test_tally_arithmetic/inputs_true.dat +++ b/tests/test_tally_arithmetic/inputs_true.dat @@ -1 +1 @@ -57384883e37964076aa82c19fa542434331cdb09735d710485b5aa0ca3445d543729e40cb9c7b6a70e7101ef186923eb1ff6315c73b01ff257052838add68fc7 \ No newline at end of file +bb7e730630f7bb4694a27fd77c3c0171f70c78df2681acc26b0ef88bcff367523b11335f487b46269325adbcee7faeb756484af64055c3c91b0103f7ed962053 \ No newline at end of file diff --git a/tests/test_tally_slice_merge/inputs_true.dat b/tests/test_tally_slice_merge/inputs_true.dat index 29f0f1d82..be2ec63dc 100644 --- a/tests/test_tally_slice_merge/inputs_true.dat +++ b/tests/test_tally_slice_merge/inputs_true.dat @@ -1 +1 @@ -8d1ab9e4add51b99045e990ac9c3dad9447e9720d811bc430d4bfdd7c2c035424bcb7750e4a4d0ec0460ea1ef4be46ac58372ed01d55f5d8cfeebbce75559066 \ No newline at end of file +bb4ae3b75445846bd5db05a06cc20e7589990154ccef8302f276cd8356630d585c513ebb6bfa99f9fc93dd2d30c42bfbb67dd3454134f4c9fcb3bac128d1f1c5 \ No newline at end of file From cccca4062aea16d8894a2257173ce33fad0a25d3 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Apr 2016 09:04:52 -0500 Subject: [PATCH 103/259] Goodbye openmc.Executor. Hello openmc.run and openmc.plot. --- openmc/executor.py | 177 ++++++++---------- tests/test_plot/test_plot.py | 5 +- .../test_statepoint_restart.py | 17 +- tests/testing_harness.py | 25 +-- 4 files changed, 92 insertions(+), 132 deletions(-) diff --git a/openmc/executor.py b/openmc/executor.py index 214517d6e..89bcc2e10 100644 --- a/openmc/executor.py +++ b/openmc/executor.py @@ -1,131 +1,100 @@ from __future__ import print_function import subprocess from numbers import Integral -import os import sys -from openmc.checkvalue import check_type - if sys.version_info[0] >= 3: basestring = str -class Executor(object): - """Control execution of OpenMC +def _run(command, output, cwd): + # Launch a subprocess + p = subprocess.Popen(command, shell=True, cwd=cwd, stdout=subprocess.PIPE, + universal_newlines=True) - Attributes + # Capture and re-print OpenMC output in real-time + while True: + # If OpenMC is finished, break loop + line = p.stdout.readline() + if not line and p.poll() != None: + break + + # If user requested output, print to screen + if output: + print(line, end='') + + # Return the returncode (integer, zero if no problems encountered) + return p.returncode + + +def plot(output=True, openmc_exec='openmc', cwd='.'): + """Run OpenMC in plotting mode + + Parameters ---------- - working_directory : str - Path to working directory to run in + output : bool + Capture OpenMC output from standard out + openmc_exec : str + Path to OpenMC executable + cwd : str, optional + Path to working directory to run in. Defaults to the current working directory. """ - def __init__(self): - self._working_directory = '.' + return _run(openmc_exec + ' -p', output, cwd) - def _run_openmc(self, command, output): - # Launch a subprocess to run OpenMC - p = subprocess.Popen(command, shell=True, - cwd=self._working_directory, - stdout=subprocess.PIPE, - universal_newlines=True) - # Capture and re-print OpenMC output in real-time - while True: - # If OpenMC is finished, break loop - line = p.stdout.readline() - if not line and p.poll() != None: - break +def run(particles=None, threads=None, geometry_debug=False, + restart_file=None, tracks=False, mpi_procs=1, output=True, + openmc_exec='openmc', mpi_exec='mpiexec', cwd='.'): + """Run an OpenMC simulation. - # If user requested output, print to screen - if output: - print(line, end='') + Parameters + ---------- + particles : int, optional + Number of particles to simulate per generation. + threads : int, optional + Number of OpenMP threads. + geometry_debug : bool, optional + Turn on geometry debugging during simulation. Defaults to False. + restart_file : str, optional + Path to restart file to use + tracks : bool, optional + Write tracks for all particles. Defaults to False. + mpi_procs : int, optional + Number of MPI processes. + output : bool, optional + Capture OpenMC output from standard out. Defaults to True. + openmc_exec : str, optional + Path to OpenMC executable. Defaults to 'openmc'. + mpi_exec : str, optional + MPI execute command. Defaults to 'mpiexec'. + cwd : str, optional + Path to working directory to run in. Defaults to the current working directory. - # Return the returncode (integer, zero if no problems encountered) - return p.returncode + """ - @property - def working_directory(self): - return self._working_directory + post_args = ' ' + pre_args = '' - @working_directory.setter - def working_directory(self, working_directory): - check_type("Executor's working directory", working_directory, - basestring) - if not os.path.isdir(working_directory): - msg = 'Unable to set Executor\'s working directory to "{0}" ' \ - 'which does not exist'.format(working_directory) - raise ValueError(msg) + if isinstance(particles, Integral) and particles > 0: + post_args += '-n {0} '.format(particles) - self._working_directory = working_directory + if isinstance(threads, Integral) and threads > 0: + post_args += '-s {0} '.format(threads) - def plot_geometry(self, output=True, openmc_exec='openmc'): - """Run OpenMC in plotting mode""" + if geometry_debug: + post_args += '-g ' - return self._run_openmc(openmc_exec + ' -p', output) + if isinstance(restart_file, basestring): + post_args += '-r {0} '.format(restart_file) - def run_simulation(self, particles=None, threads=None, - geometry_debug=False, restart_file=None, - tracks=False, mpi_procs=1, output=True, - openmc_exec='openmc', mpi_exec=None): - """Run an OpenMC simulation. + if tracks: + post_args += '-t' - Parameters - ---------- - particles : int - Number of particles to simulate per generation - threads : int - Number of OpenMP threads - geometry_debug : bool - Turn on geometry debugging during simulation - restart_file : str - Path to restart file to use - tracks : bool - Write tracks for all particles - mpi_procs : int - Number of MPI processes - output : bool - Capture OpenMC output from standard out - openmc_exec : str - Path to OpenMC executable + if isinstance(mpi_procs, Integral) and mpi_procs > 1: + pre_args += '{} -n {} '.format(mpi_exec, mpi_procs) - """ + command = pre_args + openmc_exec + ' ' + post_args - post_args = ' ' - pre_args = '' - - if isinstance(particles, Integral) and particles > 0: - post_args += '-n {0} '.format(particles) - - if isinstance(threads, Integral) and threads > 0: - post_args += '-s {0} '.format(threads) - - if geometry_debug: - post_args += '-g ' - - if isinstance(restart_file, basestring): - post_args += '-r {0} '.format(restart_file) - - if tracks: - post_args += '-t' - - if isinstance(mpi_procs, Integral) and mpi_procs > 1: - np_present = True - else: - np_present = False - - if mpi_exec is not None and isinstance(mpi_exec, basestring): - mpi_exec_present = True - else: - mpi_exec_present = False - - if np_present or mpi_exec_present: - if mpi_exec_present: - pre_args += mpi_exec + ' ' - else: - pre_args += 'mpirun ' - pre_args += '-n {0} '.format(mpi_procs) - - command = pre_args + openmc_exec + ' ' + post_args - - return self._run_openmc(command, output) + return _run(command, output, cwd) diff --git a/tests/test_plot/test_plot.py b/tests/test_plot/test_plot.py index 015577d21..e40cef49c 100644 --- a/tests/test_plot/test_plot.py +++ b/tests/test_plot/test_plot.py @@ -9,7 +9,7 @@ from testing_harness import TestHarness import h5py -from openmc import Executor +import openmc class PlotTestHarness(TestHarness): @@ -19,8 +19,7 @@ class PlotTestHarness(TestHarness): self._plot_names = plot_names def _run_openmc(self): - executor = Executor() - returncode = executor.plot_geometry(openmc_exec=self._opts.exe) + returncode = openmc.plot(openmc_exec=self._opts.exe) assert returncode == 0, 'OpenMC did not exit successfully.' def _test_output_created(self): diff --git a/tests/test_statepoint_restart/test_statepoint_restart.py b/tests/test_statepoint_restart/test_statepoint_restart.py index c842689d9..d39bf7cd5 100644 --- a/tests/test_statepoint_restart/test_statepoint_restart.py +++ b/tests/test_statepoint_restart/test_statepoint_restart.py @@ -5,8 +5,7 @@ import os import sys sys.path.insert(0, os.pardir) from testing_harness import TestHarness -from openmc.statepoint import StatePoint -from openmc.executor import Executor +import openmc class StatepointRestartTestHarness(TestHarness): @@ -50,17 +49,15 @@ class StatepointRestartTestHarness(TestHarness): statepoint = statepoint[0] # Run OpenMC - executor = Executor() - if self._opts.mpi_exec is not None: - returncode = executor.run_simulation(mpi_procs=self._opts.mpi_np, - restart_file=statepoint, - openmc_exec=self._opts.exe, - mpi_exec=self._opts.mpi_exec) + returncode = openmc.run(mpi_procs=self._opts.mpi_np, + restart_file=statepoint, + openmc_exec=self._opts.exe, + mpi_exec=self._opts.mpi_exec) else: - returncode = executor.run_simulation(openmc_exec=self._opts.exe, - restart_file=statepoint) + returncode = openmc.run(openmc_exec=self._opts.exe, + restart_file=statepoint) assert returncode == 0, 'OpenMC did not exit successfully.' diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 7d6dbc914..78e5553e8 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -13,9 +13,7 @@ import numpy as np sys.path.insert(0, os.path.join(os.pardir, os.pardir)) from input_set import InputSet, MGInputSet -from openmc.statepoint import StatePoint -from openmc.executor import Executor -import openmc.particle_restart as pr +import openmc class TestHarness(object): @@ -63,15 +61,13 @@ class TestHarness(object): self._cleanup() def _run_openmc(self): - executor = Executor() - if self._opts.mpi_exec is not None: - returncode = executor.run_simulation(mpi_procs=self._opts.mpi_np, - openmc_exec=self._opts.exe, - mpi_exec=self._opts.mpi_exec) + returncode = openmc.run(mpi_procs=self._opts.mpi_np, + openmc_exec=self._opts.exe, + mpi_exec=self._opts.mpi_exec) else: - returncode = executor.run_simulation(openmc_exec=self._opts.exe) + returncode = openmc.run(openmc_exec=self._opts.exe) assert returncode == 0, 'OpenMC did not exit successfully.' @@ -90,7 +86,7 @@ class TestHarness(object): """Digest info in the statepoint and return as a string.""" # Read the statepoint file. statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] - sp = StatePoint(statepoint) + sp = openmc.StatePoint(statepoint) # Write out k-combined. outstr = 'k-combined:\n' @@ -158,7 +154,7 @@ class CMFDTestHarness(TestHarness): """Digest info in the statepoint and return as a string.""" # Read the statepoint file. statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] - sp = StatePoint(statepoint) + sp = openmc.StatePoint(statepoint) # Write out the eigenvalue and tallies. outstr = super(CMFDTestHarness, self)._get_results() @@ -195,13 +191,12 @@ class ParticleRestartTestHarness(TestHarness): 'mpi_exec': self._opts.mpi_exec}) # Initial run - executor = Executor() - returncode = executor.run_simulation(**args) + returncode = openmc.run(**args) assert returncode == 0, 'OpenMC did not exit successfully.' # Run particle restart args.update({'restart_file': self._sp_name}) - returncode = executor.run_simulation(**args) + returncode = openmc.run(**args) assert returncode == 0, 'OpenMC did not exit successfully.' def _test_output_created(self): @@ -216,7 +211,7 @@ class ParticleRestartTestHarness(TestHarness): """Digest info in the statepoint and return as a string.""" # Read the particle restart file. particle = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] - p = pr.Particle(particle) + p = openmc.Particle(particle) # Write out the properties. outstr = '' From a855e8f1b04f3983b699422c9d938d21f2f3315c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Apr 2016 09:31:40 -0500 Subject: [PATCH 104/259] Increase MAX_EVENTS to 1 million --- src/constants.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constants.F90 b/src/constants.F90 index 8863ca18c..5b58f409d 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -37,7 +37,7 @@ module constants real(8), parameter :: FP_COINCIDENT = 1e-12_8 ! Maximum number of collisions/crossings - integer, parameter :: MAX_EVENTS = 10000 + integer, parameter :: MAX_EVENTS = 1000000 integer, parameter :: MAX_SAMPLE = 100000 ! Maximum number of secondary particles created From 50a80693b5d4ac0fb1bc0e88a4c105338c35601e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Apr 2016 10:37:06 -0500 Subject: [PATCH 105/259] Rename main Python API classes to get rid of File. --- docs/source/_templates/myfunction.rst | 6 ++ docs/source/pythonapi/index.rst | 18 ++--- examples/python/basic/build-xml.py | 28 ++++---- examples/python/boxes/build-xml.py | 20 +++--- .../python/lattice/hexagonal/build-xml.py | 28 ++++---- examples/python/lattice/nested/build-xml.py | 34 ++++----- examples/python/lattice/simple/build-xml.py | 34 ++++----- examples/python/pincell/build-xml.py | 28 ++++---- .../python/pincell_multigroup/build-xml.py | 32 ++++----- examples/python/reflective/build-xml.py | 22 +++--- openmc/cmfd.py | 2 +- openmc/executor.py | 2 +- openmc/geometry.py | 71 ++++++------------- openmc/material.py | 9 ++- openmc/mgxs/library.py | 6 +- openmc/mgxs_library.py | 9 ++- openmc/plots.py | 5 +- openmc/settings.py | 2 +- openmc/tallies.py | 7 +- tests/input_set.py | 26 ++----- .../test_asymmetric_lattice.py | 10 ++- tests/test_distribmat/test_distribmat.py | 10 ++- tests/test_mg_max_order/test_mg_max_order.py | 2 +- tests/test_mg_nuclide/test_mg_nuclide.py | 2 +- tests/test_mg_tallies/test_mg_tallies.py | 2 +- .../test_mgxs_library_condense.py | 4 +- .../test_mgxs_library_distribcell.py | 4 +- .../test_mgxs_library_hdf5.py | 8 +-- .../test_mgxs_library_no_nuclides.py | 4 +- .../test_mgxs_library_nuclides.py | 4 +- tests/test_plot/test_plot.py | 2 +- .../test_resonance_scattering.py | 8 +-- tests/test_source/test_source.py | 16 ++--- tests/test_tallies/test_tallies.py | 4 +- .../test_tally_aggregation.py | 2 +- .../test_tally_arithmetic.py | 2 +- .../test_tally_slice_merge.py | 14 ++-- 37 files changed, 203 insertions(+), 284 deletions(-) create mode 100644 docs/source/_templates/myfunction.rst diff --git a/docs/source/_templates/myfunction.rst b/docs/source/_templates/myfunction.rst new file mode 100644 index 000000000..4d7ea38a1 --- /dev/null +++ b/docs/source/_templates/myfunction.rst @@ -0,0 +1,6 @@ +{{ fullname }} +{{ underline }} + +.. currentmodule:: {{ module }} + +.. autofunction:: {{ objname }} diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 9fd70cb5a..3bedaf2c7 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -29,7 +29,7 @@ Classes :template: myclass.rst openmc.XSdata - openmc.MGXSLibraryFile + openmc.MGXSLibrary Functions +++++++++ @@ -50,7 +50,7 @@ Simulation Settings openmc.Source openmc.ResonanceScattering - openmc.SettingsFile + openmc.Settings Material Specification ---------------------- @@ -64,7 +64,7 @@ Material Specification openmc.Element openmc.Macroscopic openmc.Material - openmc.MaterialsFile + openmc.Materials Building geometry ----------------- @@ -96,7 +96,6 @@ Building geometry openmc.RectLattice openmc.HexLattice openmc.Geometry - openmc.GeometryFile Many of the above classes are derived from several abstract classes: @@ -121,7 +120,7 @@ Constructing Tallies openmc.Mesh openmc.Trigger openmc.Tally - openmc.TalliesFile + openmc.Tallies Coarse Mesh Finite Difference Acceleration ------------------------------------------ @@ -132,7 +131,7 @@ Coarse Mesh Finite Difference Acceleration :template: myclass.rst openmc.CMFDMesh - openmc.CMFDFile + openmc.CMFD Plotting -------- @@ -143,7 +142,7 @@ Plotting :template: myclass.rst openmc.Plot - openmc.PlotsFile + openmc.Plots Running OpenMC -------------- @@ -151,9 +150,10 @@ Running OpenMC .. autosummary:: :toctree: generated :nosignatures: - :template: myclass.rst + :template: myfunction.rst - openmc.Executor + openmc.run + openmc.plot_geometry Post-processing --------------- diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index fbe683661..19737cf91 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -12,7 +12,7 @@ particles = 10000 ############################################################################### -# Exporting to OpenMC materials.xml File +# Exporting to OpenMC materials.xml file ############################################################################### # Instantiate some Nuclides @@ -31,15 +31,15 @@ fuel = openmc.Material(material_id=40, name='fuel') fuel.set_density('g/cc', 4.5) fuel.add_nuclide(u235, 1.) -# Instantiate a MaterialsFile, register all Materials, and export to XML -materials_file = openmc.MaterialsFile() +# Instantiate a Materials collection, register all Materials, and export to XML +materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([moderator, fuel]) materials_file.export_to_xml() ############################################################################### -# Exporting to OpenMC geometry.xml File +# Exporting to OpenMC geometry.xml file ############################################################################### # Instantiate ZCylinder surfaces @@ -74,22 +74,18 @@ cell1.fill = universe1 universe1.add_cells([cell2, cell3]) root.add_cells([cell1, cell4]) -# Instantiate a Geometry and register the root Universe +# Instantiate a Geometry and register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root - -# Instantiate a GeometryFile, register Geometry, and export to XML -geometry_file = openmc.GeometryFile() -geometry_file.geometry = geometry -geometry_file.export_to_xml() +geometry.export_to_xml() ############################################################################### -# Exporting to OpenMC settings.xml File +# Exporting to OpenMC settings.xml file ############################################################################### -# Instantiate a SettingsFile, set all runtime parameters, and export to XML -settings_file = openmc.SettingsFile() +# Instantiate a Settings object, set all runtime parameters, and export to XML +settings_file = openmc.Settings() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles @@ -103,7 +99,7 @@ settings_file.export_to_xml() ############################################################################### -# Exporting to OpenMC tallies.xml File +# Exporting to OpenMC tallies.xml file ############################################################################### # Instantiate some tally Filters @@ -128,8 +124,8 @@ third_tally = openmc.Tally(tally_id=3, name='third tally') third_tally.filters = [cell_filter, energy_filter, energyout_filter] third_tally.scores = ['scatter', 'nu-scatter', 'nu-fission'] -# Instantiate a TalliesFile, register all Tallies, and export to XML -tallies_file = openmc.TalliesFile() +# Instantiate a Tallies object, register all Tallies, and export to XML +tallies_file = openmc.Tallies() tallies_file.add_tally(first_tally) tallies_file.add_tally(second_tally) tallies_file.add_tally(third_tally) diff --git a/examples/python/boxes/build-xml.py b/examples/python/boxes/build-xml.py index ea3e81d17..196a10ca7 100644 --- a/examples/python/boxes/build-xml.py +++ b/examples/python/boxes/build-xml.py @@ -36,15 +36,15 @@ moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) moderator.add_s_alpha_beta('HH2O', '71t') -# Instantiate a MaterialsFile, register all Materials, and export to XML -materials_file = openmc.MaterialsFile() +# Instantiate a Materials object, register all Materials, and export to XML +materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([fuel1, fuel2, moderator]) materials_file.export_to_xml() ############################################################################### -# Exporting to OpenMC geometry.xml File +# Exporting to OpenMC geometry.xml file ############################################################################### # Instantiate planar surfaces @@ -97,14 +97,10 @@ outer_box.fill = moderator root = openmc.Universe(universe_id=0, name='root universe') root.add_cells([inner_box, middle_box, outer_box]) -# Instantiate a Geometry and register the root Universe +# Instantiate a Geometry and register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root - -# Instantiate a GeometryFile, register Geometry, and export to XML -geometry_file = openmc.GeometryFile() -geometry_file.geometry = geometry -geometry_file.export_to_xml() +geometry.export_to_xml() ############################################################################### @@ -112,7 +108,7 @@ geometry_file.export_to_xml() ############################################################################### # Instantiate a SettingsFile, set all runtime parameters, and export to XML -settings_file = openmc.SettingsFile() +settings_file = openmc.Settings() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles @@ -133,7 +129,7 @@ plot.width = [20, 20] plot.pixels = [200, 200] plot.color = 'cell' -# Instantiate a PlotsFile, add Plot, and export to XML -plot_file = openmc.PlotsFile() +# Instantiate a Plots object, add Plot, and export to XML +plot_file = openmc.Plots() plot_file.add_plot(plot) plot_file.export_to_xml() diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index 7f92e6602..a9d7f6899 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -35,15 +35,15 @@ iron = openmc.Material(material_id=3, name='iron') iron.set_density('g/cc', 7.9) iron.add_nuclide(fe56, 1.) -# Instantiate a MaterialsFile, register all Materials, and export to XML -materials_file = openmc.MaterialsFile() +# Instantiate a Materials object, register all Materials, and export to XML +materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([moderator, fuel, iron]) materials_file.export_to_xml() ############################################################################### -# Exporting to OpenMC geometry.xml File +# Exporting to OpenMC geometry.xml file ############################################################################### # Instantiate Surfaces @@ -105,22 +105,18 @@ lattice.outer = univ2 # Fill Cell with the Lattice cell1.fill = lattice -# Instantiate a Geometry and register the root Universe +# Instantiate a Geometry and register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root - -# Instantiate a GeometryFile, register Geometry, and export to XML -geometry_file = openmc.GeometryFile() -geometry_file.geometry = geometry -geometry_file.export_to_xml() +geometry.export_to_xml() ############################################################################### -# Exporting to OpenMC settings.xml File +# Exporting to OpenMC settings.xml file ############################################################################### # Instantiate a SettingsFile, set all runtime parameters, and export to XML -settings_file = openmc.SettingsFile() +settings_file = openmc.Settings() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles @@ -137,7 +133,7 @@ settings_file.export_to_xml() ############################################################################### -# Exporting to OpenMC plots.xml File +# Exporting to OpenMC plots.xml file ############################################################################### plot_xy = openmc.Plot(plot_id=1) @@ -155,8 +151,8 @@ plot_yz.width = [8, 8] plot_yz.pixels = [400, 400] plot_yz.color = 'mat' -# Instantiate a PlotsFile, add Plot, and export to XML -plot_file = openmc.PlotsFile() +# Instantiate a Plots object, add plots, and export to XML +plot_file = openmc.Plots() plot_file.add_plot(plot_xy) plot_file.add_plot(plot_yz) plot_file.export_to_xml() @@ -171,7 +167,7 @@ tally = openmc.Tally(tally_id=1) tally.filters = [openmc.Filter(type='distribcell', bins=[cell2.id])] tally.scores = ['total'] -# Instantiate a TalliesFile, register Tally/Mesh, and export to XML -tallies_file = openmc.TalliesFile() +# Instantiate a Tallies object, register Tally/Mesh, and export to XML +tallies_file = openmc.Tallies() tallies_file.add_tally(tally) tallies_file.export_to_xml() diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index f54f06453..eb16c8327 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -11,7 +11,7 @@ particles = 10000 ############################################################################### -# Exporting to OpenMC materials.xml File +# Exporting to OpenMC materials.xml file ############################################################################### # Instantiate some Nuclides @@ -30,15 +30,15 @@ moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) moderator.add_s_alpha_beta('HH2O', '71t') -# Instantiate a MaterialsFile, register all Materials, and export to XML -materials_file = openmc.MaterialsFile() +# Instantiate a Materials object, register all Materials, and export to XML +materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([moderator, fuel]) materials_file.export_to_xml() ############################################################################### -# Exporting to OpenMC geometry.xml File +# Exporting to OpenMC geometry.xml file ############################################################################### # Instantiate Surfaces @@ -116,22 +116,18 @@ lattice2.universes = [[univ4, univ4], cell1.fill = lattice2 cell2.fill = lattice1 -# Instantiate a Geometry and register the root Universe +# Instantiate a Geometry and register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root - -# Instantiate a GeometryFile, register Geometry, and export to XML -geometry_file = openmc.GeometryFile() -geometry_file.geometry = geometry -geometry_file.export_to_xml() +geometry.export_to_xml() ############################################################################### -# Exporting to OpenMC settings.xml File +# Exporting to OpenMC settings.xml file ############################################################################### -# Instantiate a SettingsFile, set all runtime parameters, and export to XML -settings_file = openmc.SettingsFile() +# Instantiate a Settings object, set all runtime parameters, and export to XML +settings_file = openmc.Settings() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles @@ -145,7 +141,7 @@ settings_file.export_to_xml() ############################################################################### -# Exporting to OpenMC plots.xml File +# Exporting to OpenMC plots.xml file ############################################################################### plot = openmc.Plot(plot_id=1) @@ -154,14 +150,14 @@ plot.width = [4, 4] plot.pixels = [400, 400] plot.color = 'mat' -# Instantiate a PlotsFile, add Plot, and export to XML -plot_file = openmc.PlotsFile() +# Instantiate a Plots object, add Plot, and export to XML +plot_file = openmc.Plots() plot_file.add_plot(plot) plot_file.export_to_xml() ############################################################################### -# Exporting to OpenMC tallies.xml File +# Exporting to OpenMC tallies.xml file ############################################################################### # Instantiate a tally mesh @@ -180,8 +176,8 @@ tally = openmc.Tally(tally_id=1) tally.filters = [mesh_filter] tally.scores = ['total'] -# Instantiate a TalliesFile, register Tally/Mesh, and export to XML -tallies_file = openmc.TalliesFile() +# Instantiate a Tallies object, register Tally/Mesh, and export to XML +tallies_file = openmc.Tallies() tallies_file.add_mesh(mesh) tallies_file.add_tally(tally) tallies_file.export_to_xml() diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index f633fa96f..6e44e4da0 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -11,7 +11,7 @@ particles = 10000 ############################################################################### -# Exporting to OpenMC materials.xml File +# Exporting to OpenMC materials.xml file ############################################################################### # Instantiate some Nuclides @@ -30,15 +30,15 @@ moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) moderator.add_s_alpha_beta('HH2O', '71t') -# Instantiate a MaterialsFile, register all Materials, and export to XML -materials_file = openmc.MaterialsFile() +# Instantiate a Materials object, register all Materials, and export to XML +materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([moderator, fuel]) materials_file.export_to_xml() ############################################################################### -# Exporting to OpenMC geometry.xml File +# Exporting to OpenMC geometry.xml file ############################################################################### # Instantiate Surfaces @@ -106,22 +106,18 @@ lattice.universes = [[univ1, univ2, univ1, univ2], # Fill Cell with the Lattice cell1.fill = lattice -# Instantiate a Geometry and register the root Universe +# Instantiate a Geometry and register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root - -# Instantiate a GeometryFile, register Geometry, and export to XML -geometry_file = openmc.GeometryFile() -geometry_file.geometry = geometry -geometry_file.export_to_xml() +geometry.export_to_xml() ############################################################################### -# Exporting to OpenMC settings.xml File +# Exporting to OpenMC settings.xml file ############################################################################### -# Instantiate a SettingsFile, set all runtime parameters, and export to XML -settings_file = openmc.SettingsFile() +# Instantiate a Settings object, set all runtime parameters, and export to XML +settings_file = openmc.Settings() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles @@ -137,7 +133,7 @@ settings_file.export_to_xml() ############################################################################### -# Exporting to OpenMC plots.xml File +# Exporting to OpenMC plots.xml file ############################################################################### plot = openmc.Plot(plot_id=1) @@ -146,14 +142,14 @@ plot.width = [4, 4] plot.pixels = [400, 400] plot.color = 'mat' -# Instantiate a PlotsFile, add Plot, and export to XML -plot_file = openmc.PlotsFile() +# Instantiate a Plots object, add Plot, and export to XML +plot_file = openmc.Plots() plot_file.add_plot(plot) plot_file.export_to_xml() ############################################################################### -# Exporting to OpenMC tallies.xml File +# Exporting to OpenMC tallies.xml file ############################################################################### # Instantiate a tally mesh @@ -177,8 +173,8 @@ tally.filters = [mesh_filter] tally.scores = ['total'] tally.triggers = [trigger] -# Instantiate a TalliesFile, register Tally/Mesh, and export to XML -tallies_file = openmc.TalliesFile() +# Instantiate a Tallies object, register Tally/Mesh, and export to XML +tallies_file = openmc.Tallies() tallies_file.add_mesh(mesh) tallies_file.add_tally(tally) tallies_file.export_to_xml() diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index 2e72d82ab..10cd4944d 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -11,7 +11,7 @@ particles = 1000 ############################################################################### -# Exporting to OpenMC materials.xml File +# Exporting to OpenMC materials.xml file ############################################################################### # Instantiate some Nuclides @@ -100,15 +100,15 @@ borated_water.add_nuclide(o16, 2.4672e-2) borated_water.add_nuclide(o17, 6.0099e-5) borated_water.add_s_alpha_beta('HH2O', '71t') -# Instantiate a MaterialsFile, register all Materials, and export to XML -materials_file = openmc.MaterialsFile() +# Instantiate a Materials object, register all Materials, and export to XML +materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([uo2, helium, zircaloy, borated_water]) materials_file.export_to_xml() ############################################################################### -# Exporting to OpenMC geometry.xml File +# Exporting to OpenMC geometry.xml file ############################################################################### # Instantiate ZCylinder surfaces @@ -149,22 +149,18 @@ root = openmc.Universe(universe_id=0, name='root universe') # Register Cells with Universe root.add_cells([fuel, gap, clad, water]) -# Instantiate a Geometry and register the root Universe +# Instantiate a Geometry and register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root - -# Instantiate a GeometryFile, register Geometry, and export to XML -geometry_file = openmc.GeometryFile() -geometry_file.geometry = geometry -geometry_file.export_to_xml() +geometry.export_to_xml() ############################################################################### -# Exporting to OpenMC settings.xml File +# Exporting to OpenMC settings.xml file ############################################################################### -# Instantiate a SettingsFile, set all runtime parameters, and export to XML -settings_file = openmc.SettingsFile() +# Instantiate a Settings object, set all runtime parameters, and export to XML +settings_file = openmc.Settings() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles @@ -181,7 +177,7 @@ settings_file.export_to_xml() ############################################################################### -# Exporting to OpenMC tallies.xml File +# Exporting to OpenMC tallies.xml file ############################################################################### # Instantiate a tally mesh @@ -201,8 +197,8 @@ tally = openmc.Tally(tally_id=1, name='tally 1') tally.filters = [energy_filter, mesh_filter] tally.scores = ['flux', 'fission', 'nu-fission'] -# Instantiate a TalliesFile, register all Tallies, and export to XML -tallies_file = openmc.TalliesFile() +# Instantiate a Tallies object, register all Tallies, and export to XML +tallies_file = openmc.Tallies() tallies_file.add_mesh(mesh) tallies_file.add_tally(tally) tallies_file.export_to_xml() diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index 60026c089..233728142 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -12,7 +12,7 @@ inactive = 10 particles = 1000 ############################################################################### -# Exporting to OpenMC mg_cross_sections.xml File +# Exporting to OpenMC mg_cross_sections.xml file ############################################################################### # Instantiate the energy group data @@ -59,13 +59,13 @@ scatter = [[[0.0444777, 0.1134000, 0.0007235, 0.0000037, 0.0000001, 0.0000000, 0 [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.1324400, 2.4807000]]] h2o_xsdata.scatter = np.array(scatter) -mg_cross_sections_file = openmc.MGXSLibraryFile(groups) +mg_cross_sections_file = openmc.MGXSLibrary(groups) mg_cross_sections_file.add_xsdatas([uo2_xsdata,h2o_xsdata]) mg_cross_sections_file.export_to_xml() ############################################################################### -# Exporting to OpenMC materials.xml File +# Exporting to OpenMC materials.xml file ############################################################################### # Instantiate some Macroscopic Data @@ -81,15 +81,15 @@ water = openmc.Material(material_id=2, name='Water') water.set_density('macro', 1.0) water.add_macroscopic(h2o_data) -# Instantiate a MaterialsFile, register all Materials, and export to XML -materials_file = openmc.MaterialsFile() +# Instantiate a Materials object, register all Materials, and export to XML +materials_file = openmc.Materials() materials_file.default_xs = '300K' materials_file.add_materials([uo2, water]) materials_file.export_to_xml() ############################################################################### -# Exporting to OpenMC geometry.xml File +# Exporting to OpenMC geometry.xml file ############################################################################### # Instantiate ZCylinder surfaces @@ -122,22 +122,18 @@ root = openmc.Universe(universe_id=0, name='root universe') # Register Cells with Universe root.add_cells([fuel, moderator]) -# Instantiate a Geometry and register the root Universe +# Instantiate a Geometry and register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root - -# Instantiate a GeometryFile, register Geometry, and export to XML -geometry_file = openmc.GeometryFile() -geometry_file.geometry = geometry -geometry_file.export_to_xml() +geometry.export_to_xml() ############################################################################### -# Exporting to OpenMC settings.xml File +# Exporting to OpenMC settings.xml file ############################################################################### -# Instantiate a SettingsFile, set all runtime parameters, and export to XML -settings_file = openmc.SettingsFile() +# Instantiate a Settings object, set all runtime parameters, and export to XML +settings_file = openmc.Settings() settings_file.energy_mode = "multi-group" settings_file.cross_sections = "./mg_cross_sections.xml" settings_file.batches = batches @@ -152,7 +148,7 @@ settings_file.source = openmc.source.Source(space=uniform_dist) settings_file.export_to_xml() ############################################################################### -# Exporting to OpenMC tallies.xml File +# Exporting to OpenMC tallies.xml file ############################################################################### # Instantiate a tally mesh @@ -177,8 +173,8 @@ tally.add_score('flux') tally.add_score('fission') tally.add_score('nu-fission') -# Instantiate a TalliesFile, register all Tallies, and export to XML -tallies_file = openmc.TalliesFile() +# Instantiate a Tallies object, register all Tallies, and export to XML +tallies_file = openmc.Tallies() tallies_file.add_mesh(mesh) tallies_file.add_tally(tally) tallies_file.export_to_xml() diff --git a/examples/python/reflective/build-xml.py b/examples/python/reflective/build-xml.py index 01a5c7815..7d96e296d 100644 --- a/examples/python/reflective/build-xml.py +++ b/examples/python/reflective/build-xml.py @@ -12,7 +12,7 @@ particles = 10000 ############################################################################### -# Exporting to OpenMC materials.xml File +# Exporting to OpenMC materials.xml file ############################################################################### # Instantiate a Nuclides @@ -23,15 +23,15 @@ fuel = openmc.Material(material_id=1, name='fuel') fuel.set_density('g/cc', 4.5) fuel.add_nuclide(u235, 1.) -# Instantiate a MaterialsFile, register Material, and export to XML -materials_file = openmc.MaterialsFile() +# Instantiate a Materials object, register Material, and export to XML +materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_material(fuel) materials_file.export_to_xml() ############################################################################### -# Exporting to OpenMC geometry.xml File +# Exporting to OpenMC geometry.xml file ############################################################################### # Instantiate Surfaces @@ -64,22 +64,18 @@ root = openmc.Universe(universe_id=0, name='root universe') # Register Cell with Universe root.add_cell(cell) -# Instantiate a Geometry and register the root Universe +# Instantiate a Geometry and register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root - -# Instantiate a GeometryFile, register Geometry, and export to XML -geometry_file = openmc.GeometryFile() -geometry_file.geometry = geometry -geometry_file.export_to_xml() +geometry.export_to_xml() ############################################################################### -# Exporting to OpenMC settings.xml File +# Exporting to OpenMC settings.xml file ############################################################################### -# Instantiate a SettingsFile, set all runtime parameters, and export to XML -settings_file = openmc.SettingsFile() +# Instantiate a Settings object, set all runtime parameters, and export to XML +settings_file = openmc.Settings() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles diff --git a/openmc/cmfd.py b/openmc/cmfd.py index b9977a288..d4cce2af5 100644 --- a/openmc/cmfd.py +++ b/openmc/cmfd.py @@ -187,7 +187,7 @@ class CMFDMesh(object): return element -class CMFDFile(object): +class CMFD(object): """Parameters that control the use of coarse-mesh finite difference acceleration in OpenMC. This corresponds directly to the cmfd.xml input file. diff --git a/openmc/executor.py b/openmc/executor.py index 89bcc2e10..9bb3477c5 100644 --- a/openmc/executor.py +++ b/openmc/executor.py @@ -27,7 +27,7 @@ def _run(command, output, cwd): return p.returncode -def plot(output=True, openmc_exec='openmc', cwd='.'): +def plot_geometry(output=True, openmc_exec='openmc', cwd='.'): """Run OpenMC in plotting mode Parameters diff --git a/openmc/geometry.py b/openmc/geometry.py index f5dfe97e4..ed437f6e1 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -23,7 +23,6 @@ class Geometry(object): """ def __init__(self): - # Initialize Geometry class attributes self._root_universe = None self._offsets = {} @@ -42,6 +41,27 @@ class Geometry(object): self._root_universe = root_universe + def export_to_xml(self): + """Create a geometry.xml file that can be used for a simulation. + + """ + + # Clear OpenMC written IDs used to optimize XML generation + openmc.universe.WRITTEN_IDS = {} + + # Create XML representation + geometry_file = ET.Element("geometry") + self.root_universe.create_xml_subelement(geometry_file) + + # Clean the indentation in the file to be user-readable + sort_xml_elements(geometry_file) + clean_xml_indentation(geometry_file) + + # Write the XML Tree to the geometry.xml file + tree = ET.ElementTree(geometry_file) + tree.write("geometry.xml", xml_declaration=True, encoding='utf-8', + method="xml") + def get_cell_instance(self, path): """Return the instance number for the final cell in a geometry path. @@ -436,52 +456,3 @@ class Geometry(object): lattices = list(lattices) lattices.sort(key=lambda x: x.id) return lattices - - -class GeometryFile(object): - """Geometry file used for an OpenMC simulation. Corresponds directly to the - geometry.xml input file. - - Attributes - ---------- - geometry : openmc.Geometry - The geometry to be used - - """ - - def __init__(self): - # Initialize GeometryFile class attributes - self._geometry = None - self._geometry_file = ET.Element("geometry") - - @property - def geometry(self): - return self._geometry - - @geometry.setter - def geometry(self, geometry): - check_type('the geometry', geometry, Geometry) - self._geometry = geometry - - def export_to_xml(self): - """Create a geometry.xml file that can be used for a simulation. - - """ - - # Clear OpenMC written IDs used to optimize XML generation - openmc.universe.WRITTEN_IDS = {} - - # Reset xml element tree - self._geometry_file.clear() - - root_universe = self.geometry.root_universe - root_universe.create_xml_subelement(self._geometry_file) - - # Clean the indentation in the file to be user-readable - sort_xml_elements(self._geometry_file) - clean_xml_indentation(self._geometry_file) - - # Write the XML Tree to the geometry.xml file - tree = ET.ElementTree(self._geometry_file) - tree.write("geometry.xml", xml_declaration=True, - encoding='utf-8', method="xml") diff --git a/openmc/material.py b/openmc/material.py index 16af82439..6b0a0f246 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -642,8 +642,8 @@ class Material(object): return element -class MaterialsFile(object): - """Materials file used for an OpenMC simulation. Corresponds directly to the +class Materials(object): + """Materials used for an OpenMC simulation. Corresponds directly to the materials.xml input file. Attributes @@ -655,7 +655,6 @@ class MaterialsFile(object): """ def __init__(self): - # Initialize MaterialsFile class attributes self._materials = [] self._default_xs = None self._materials_file = ET.Element("materials") @@ -681,7 +680,7 @@ class MaterialsFile(object): if not isinstance(material, Material): msg = 'Unable to add a non-Material "{0}" to the ' \ - 'MaterialsFile'.format(material) + 'Materials instance'.format(material) raise ValueError(msg) self._materials.append(material) @@ -716,7 +715,7 @@ class MaterialsFile(object): if not isinstance(material, Material): msg = 'Unable to remove a non-Material "{0}" from the ' \ - 'MaterialsFile'.format(material) + 'Materials instance'.format(material) raise ValueError(msg) self._materials.remove(material) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 4de4bb48a..ca7bf39cd 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -354,8 +354,8 @@ class Library(object): Parameters ---------- - tallies_file : openmc.TalliesFile - A TalliesFile object to add each MGXS' tallies to generate a + tallies_file : openmc.Tallies + A Tallies object to add each MGXS' tallies to generate a "tallies.xml" input file for OpenMC merge : bool Indicate whether tallies should be merged when possible. Defaults @@ -363,7 +363,7 @@ class Library(object): """ - cv.check_type('tallies_file', tallies_file, openmc.TalliesFile) + cv.check_type('tallies_file', tallies_file, openmc.Tallies) # Add tallies from each MGXS for each domain and mgxs type for domain in self.domains: diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index c0b04fed1..8db3c84ff 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -647,7 +647,7 @@ class XSdata(object): return element -class MGXSLibraryFile(object): +class MGXSLibrary(object): """Multi-Group Cross Sections file used for an OpenMC simulation. Corresponds directly to the MG version of the cross_sections.xml input file. @@ -662,7 +662,6 @@ class MGXSLibraryFile(object): """ def __init__(self, energy_groups): - # Initialize MGXSLibraryFile class attributes self._xsdatas = [] self._energy_groups = energy_groups self._inverse_velocities = None @@ -701,12 +700,12 @@ class MGXSLibraryFile(object): # Check the type if not isinstance(xsdata, XSdata): msg = 'Unable to add a non-XSdata "{0}" to the ' \ - 'MGXSLibraryFile'.format(xsdata) + 'MGXSLibrary instance'.format(xsdata) raise ValueError(msg) # Make sure energy groups match. if xsdata.energy_groups != self._energy_groups: - msg = 'Energy groups of XSdata do not match that of MGXSLibraryFile!' + msg = 'Energy groups of XSdata do not match that of MGXSLibrary!' raise ValueError(msg) self._xsdatas.append(xsdata) @@ -741,7 +740,7 @@ class MGXSLibraryFile(object): if not isinstance(xsdata, XSdata): msg = 'Unable to remove a non-XSdata "{0}" from the ' \ - 'XSdatasFile'.format(xsdata) + 'MGXSLibrary instance'.format(xsdata) raise ValueError(msg) self._xsdatas.remove(xsdata) diff --git a/openmc/plots.py b/openmc/plots.py index 5e7c47743..ae34678bb 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -401,14 +401,13 @@ class Plot(object): return element -class PlotsFile(object): +class Plots(object): """Plots file used for an OpenMC simulation. Corresponds directly to the plots.xml input file. """ def __init__(self): - # Initialize PlotsFile class attributes self._plots = [] self._plots_file = ET.Element("plots") @@ -423,7 +422,7 @@ class PlotsFile(object): """ if not isinstance(plot, Plot): - msg = 'Unable to add a non-Plot "{0}" to the PlotsFile'.format(plot) + msg = 'Unable to add a non-Plot "{0}" to the Plots instance'.format(plot) raise ValueError(msg) self._plots.append(plot) diff --git a/openmc/settings.py b/openmc/settings.py index 0be50bc56..ec38bf54c 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -16,7 +16,7 @@ if sys.version_info[0] >= 3: basestring = str -class SettingsFile(object): +class Settings(object): """Settings file used for an OpenMC simulation. Corresponds directly to the settings.xml input file. diff --git a/openmc/tallies.py b/openmc/tallies.py index 2ee03c675..1af3b12bc 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3419,14 +3419,13 @@ class Tally(object): return new_tally -class TalliesFile(object): +class Tallies(object): """Tallies file used for an OpenMC simulation. Corresponds directly to the tallies.xml input file. """ def __init__(self): - # Initialize TalliesFile class attributes self._tallies = [] self._meshes = [] self._tallies_file = ET.Element("tallies") @@ -3453,7 +3452,7 @@ class TalliesFile(object): """ if not isinstance(tally, Tally): - msg = 'Unable to add a non-Tally "{0}" to the TalliesFile'.format(tally) + msg = 'Unable to add a non-Tally "{0}" to the Tallies instance'.format(tally) raise ValueError(msg) if merge: @@ -3524,7 +3523,7 @@ class TalliesFile(object): """ if not isinstance(mesh, Mesh): - msg = 'Unable to add a non-Mesh "{0}" to the TalliesFile'.format(mesh) + msg = 'Unable to add a non-Mesh "{0}" to the Tallies instance'.format(mesh) raise ValueError(msg) self._meshes.append(mesh) diff --git a/tests/input_set.py b/tests/input_set.py index daff38ba1..3be6c1db4 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -5,9 +5,9 @@ from openmc.stats import Box class InputSet(object): def __init__(self): - self.settings = openmc.SettingsFile() - self.materials = openmc.MaterialsFile() - self.geometry = openmc.GeometryFile() + self.settings = openmc.Settings() + self.materials = openmc.Materials() + self.geometry = openmc.Geometry() self.tallies = None self.plots = None @@ -550,11 +550,8 @@ class InputSet(object): root.add_cells((c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12)) - # Define the geometry file. - geometry = openmc.Geometry() - geometry.root_universe = root - - self.geometry.geometry = geometry + # Assign root universe to geometry + self.geometry.root_universe = root def build_default_settings(self): self.settings.batches = 10 @@ -630,12 +627,8 @@ class MGInputSet(InputSet): root.add_cells((c1,c2,c3)) - # Define the geometry file. - geometry = openmc.Geometry() - geometry.root_universe = root - - self.geometry.geometry = geometry - + # Assign root universe to geometry + self.geometry.root_universe = root def build_default_settings(self): self.settings.batches = 10 @@ -656,8 +649,3 @@ class MGInputSet(InputSet): plot.color = 'mat' self.plots.add_plot(plot) - - - - - diff --git a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py index fdb21db33..94562e6d9 100644 --- a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py +++ b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py @@ -7,8 +7,6 @@ import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness import openmc -from openmc.source import Source -from openmc.stats import Box class AsymmetricLatticeTestHarness(PyAPITestHarness): @@ -20,7 +18,7 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): self._input_set.build_default_materials_and_geometry() # Extract universes encapsulating fuel and water assemblies - geometry = self._input_set.geometry.geometry + geometry = self._input_set.geometry water = geometry.get_universes_by_name('water assembly (hot)')[0] fuel = geometry.get_universes_by_name('fuel assembly (hot)')[0] @@ -49,7 +47,7 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): root_univ.add_cell(root_cell) # Over-ride geometry in the input set with this 3x3 lattice - self._input_set.geometry.geometry.root_universe = root_univ + self._input_set.geometry.root_universe = root_univ # Initialize a "distribcell" filter for the fuel pin cell distrib_filter = openmc.Filter(type='distribcell', bins=[27]) @@ -60,7 +58,7 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): tally.add_score('nu-fission') # Initialize the tallies file - tallies_file = openmc.TalliesFile() + tallies_file = openmc.Tallies() tallies_file.add_tally(tally) # Assign the tallies file to the input set @@ -70,7 +68,7 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): self._input_set.build_default_settings() # Specify summary output and correct source sampling box - source = Source(space=Box([-32, -32, 0], [32, 32, 32])) + source = openmc.Source(space=openmc.stats.Box([-32, -32, 0], [32, 32, 32])) source.space.only_fissionable = True self._input_set.settings.source = source self._input_set.settings.output = {'summary': True} diff --git a/tests/test_distribmat/test_distribmat.py b/tests/test_distribmat/test_distribmat.py index a0608c108..ded2863bd 100644 --- a/tests/test_distribmat/test_distribmat.py +++ b/tests/test_distribmat/test_distribmat.py @@ -28,7 +28,7 @@ class DistribmatTestHarness(PyAPITestHarness): light_fuel.set_density('g/cc', 2.0) light_fuel.add_nuclide('U-235', 1.0) - mats_file = openmc.MaterialsFile() + mats_file = openmc.Materials() mats_file.default_xs = '71c' mats_file.add_materials([moderator, dense_fuel, light_fuel]) mats_file.export_to_xml() @@ -74,16 +74,14 @@ class DistribmatTestHarness(PyAPITestHarness): geometry = openmc.Geometry() geometry.root_universe = root_univ - geo_file = openmc.GeometryFile() - geo_file.geometry = geometry - geo_file.export_to_xml() + geometry.export_to_xml() #################### # Settings #################### - sets_file = openmc.SettingsFile() + sets_file = openmc.Settings() sets_file.batches = 5 sets_file.inactive = 0 sets_file.particles = 1000 @@ -96,7 +94,7 @@ class DistribmatTestHarness(PyAPITestHarness): # Plots #################### - plots_file = openmc.PlotsFile() + plots_file = openmc.Plots() plot = openmc.Plot(plot_id=1) plot.basis = 'xy' diff --git a/tests/test_mg_max_order/test_mg_max_order.py b/tests/test_mg_max_order/test_mg_max_order.py index 2f5ee4e4e..2c4db58df 100644 --- a/tests/test_mg_max_order/test_mg_max_order.py +++ b/tests/test_mg_max_order/test_mg_max_order.py @@ -68,7 +68,7 @@ class MGNuclideInputSet(MGInputSet): geometry = openmc.Geometry() geometry.root_universe = root - self.geometry.geometry = geometry + self.geometry = geometry class MGMaxOrderTestHarness(PyAPITestHarness): def __init__(self, statepoint_name, tallies_present, mg=False): diff --git a/tests/test_mg_nuclide/test_mg_nuclide.py b/tests/test_mg_nuclide/test_mg_nuclide.py index deb784bad..0fa7184a3 100644 --- a/tests/test_mg_nuclide/test_mg_nuclide.py +++ b/tests/test_mg_nuclide/test_mg_nuclide.py @@ -67,7 +67,7 @@ class MGNuclideInputSet(MGInputSet): geometry = openmc.Geometry() geometry.root_universe = root - self.geometry.geometry = geometry + self.geometry = geometry class MGNuclideTestHarness(PyAPITestHarness): def __init__(self, statepoint_name, tallies_present, mg=False): diff --git a/tests/test_mg_tallies/test_mg_tallies.py b/tests/test_mg_tallies/test_mg_tallies.py index c54fb4d32..ffc57f9e9 100644 --- a/tests/test_mg_tallies/test_mg_tallies.py +++ b/tests/test_mg_tallies/test_mg_tallies.py @@ -41,7 +41,7 @@ class MGTalliesTestHarness(PyAPITestHarness): tally2.add_score('scatter') tally2.add_score('nu-scatter') - self._input_set.tallies = openmc.TalliesFile() + self._input_set.tallies = openmc.Tallies() self._input_set.tallies.add_mesh(mesh) self._input_set.tallies.add_tally(tally1) self._input_set.tallies.add_tally(tally2) diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index 82ce3acab..97bb853b6 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -23,7 +23,7 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) # Initialize MGXS Library for a few cross section types - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry.geometry) + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi'] @@ -32,7 +32,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.build_library() # Initialize a tallies file - self._input_set.tallies = openmc.TalliesFile() + self._input_set.tallies = openmc.Tallies() self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) self._input_set.tallies.export_to_xml() diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index 1de21a603..681266186 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -24,7 +24,7 @@ class MGXSTestHarness(PyAPITestHarness): # Initialize MGXS Library for a few cross section types # for one material-filled cell in the geometry - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry.geometry) + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi'] @@ -35,7 +35,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.build_library() # Initialize a tallies file - self._input_set.tallies = openmc.TalliesFile() + self._input_set.tallies = openmc.Tallies() self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) self._input_set.tallies.export_to_xml() diff --git a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py index 642073104..30be46b4c 100644 --- a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py +++ b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py @@ -24,7 +24,7 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) # Initialize MGXS Library for a few cross section types - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry.geometry) + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi'] @@ -33,7 +33,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.build_library() # Initialize a tallies file - self._input_set.tallies = openmc.TalliesFile() + self._input_set.tallies = openmc.Tallies() self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) self._input_set.tallies.export_to_xml() @@ -51,7 +51,7 @@ class MGXSTestHarness(PyAPITestHarness): # Load the MGXS library from the statepoint self.mgxs_lib.load_from_statepoint(sp) - + # Export the MGXS Library to an HDF5 file self.mgxs_lib.build_hdf5_store(directory='.') @@ -67,7 +67,7 @@ class MGXSTestHarness(PyAPITestHarness): outstr += str(f[key][...]) + '\n' key = 'material/{0}/{1}/std. dev.'.format(domain.id, mgxs_type) outstr += str(f[key][...]) + '\n' - + # Close the MGXS HDF5 file f.close() diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 2afa9039e..381b5b87c 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -23,7 +23,7 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) # Initialize MGXS Library for a few cross section types - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry.geometry) + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi'] @@ -32,7 +32,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.build_library() # Initialize a tallies file - self._input_set.tallies = openmc.TalliesFile() + self._input_set.tallies = openmc.Tallies() self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) self._input_set.tallies.export_to_xml() diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index 173043cf0..c3e4f5f77 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -23,7 +23,7 @@ class MGXSTestHarness(PyAPITestHarness): energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) # Initialize MGXS Library for a few cross section types - self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry.geometry) + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = True self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi'] @@ -32,7 +32,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.build_library() # Initialize a tallies file - self._input_set.tallies = openmc.TalliesFile() + self._input_set.tallies = openmc.Tallies() self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) self._input_set.tallies.export_to_xml() diff --git a/tests/test_plot/test_plot.py b/tests/test_plot/test_plot.py index e40cef49c..606a1fd64 100644 --- a/tests/test_plot/test_plot.py +++ b/tests/test_plot/test_plot.py @@ -19,7 +19,7 @@ class PlotTestHarness(TestHarness): self._plot_names = plot_names def _run_openmc(self): - returncode = openmc.plot(openmc_exec=self._opts.exe) + returncode = openmc.plot_geometry(openmc_exec=self._opts.exe) assert returncode == 0, 'OpenMC did not exit successfully.' def _test_output_created(self): diff --git a/tests/test_resonance_scattering/test_resonance_scattering.py b/tests/test_resonance_scattering/test_resonance_scattering.py index d977488bf..5cecfedc4 100644 --- a/tests/test_resonance_scattering/test_resonance_scattering.py +++ b/tests/test_resonance_scattering/test_resonance_scattering.py @@ -17,7 +17,7 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): mat.add_nuclide('Pu-239', 0.02) mat.add_nuclide('H-1', 20.0) - mats_file = openmc.MaterialsFile() + mats_file = openmc.Materials() mats_file.default_xs = '71c' mats_file.add_material(mat) mats_file.export_to_xml() @@ -35,9 +35,7 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): geometry = openmc.Geometry() geometry.root_universe = root_univ - geo_file = openmc.GeometryFile() - geo_file.geometry = geometry - geo_file.export_to_xml() + geometry.export_to_xml() # Settings nuclide = openmc.Nuclide('U-238', '71c') @@ -67,7 +65,7 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): res_scatt_ares.E_min = 1e-6 res_scatt_ares.E_max = 210e-6 - sets_file = openmc.SettingsFile() + sets_file = openmc.Settings() sets_file.batches = 10 sets_file.inactive = 5 sets_file.particles = 1000 diff --git a/tests/test_source/test_source.py b/tests/test_source/test_source.py index 9d303b06b..1e41bd10e 100644 --- a/tests/test_source/test_source.py +++ b/tests/test_source/test_source.py @@ -9,8 +9,6 @@ import numpy as np sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness import openmc -import openmc.stats -from openmc.source import Source class SourceTestHarness(PyAPITestHarness): @@ -18,7 +16,7 @@ class SourceTestHarness(PyAPITestHarness): mat1 = openmc.Material(material_id=1) mat1.set_density('g/cm3', 4.5) mat1.add_nuclide(openmc.Nuclide('U-235', '71c'), 1.0) - materials = openmc.MaterialsFile() + materials = openmc.Materials() materials.add_material(mat1) materials.export_to_xml() @@ -31,9 +29,7 @@ class SourceTestHarness(PyAPITestHarness): root.add_cell(inside_sphere) geometry = openmc.Geometry() geometry.root_universe = root - geometry_xml = openmc.GeometryFile() - geometry_xml.geometry = geometry - geometry_xml.export_to_xml() + geometry.export_to_xml() # Create an array of different sources x_dist = openmc.stats.Uniform(-3., 3.) @@ -56,11 +52,11 @@ class SourceTestHarness(PyAPITestHarness): energy2 = openmc.stats.Watt(0.988, 2.249) energy3 = openmc.stats.Tabular(E, p, interpolation='histogram') - source1 = Source(spatial1, angle1, energy1, strength=0.5) - source2 = Source(spatial2, angle2, energy2, strength=0.3) - source3 = Source(spatial3, angle3, energy3, strength=0.2) + source1 = openmc.Source(spatial1, angle1, energy1, strength=0.5) + source2 = openmc.Source(spatial2, angle2, energy2, strength=0.3) + source3 = openmc.Source(spatial3, angle3, energy3, strength=0.2) - settings = openmc.SettingsFile() + settings = openmc.Settings() settings.batches = 10 settings.inactive = 5 settings.particles = 1000 diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index 81e8641de..bb0273589 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -4,7 +4,7 @@ import os import sys sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness -from openmc import Filter, Mesh, Tally, TalliesFile +from openmc import Filter, Mesh, Tally, Tallies from openmc.source import Source from openmc.stats import Box @@ -170,7 +170,7 @@ class TalliesTestHarness(PyAPITestHarness): all_nuclide_tallies[0].estimator = 'tracklength' all_nuclide_tallies[0].estimator = 'collision' - self._input_set.tallies = TalliesFile() + self._input_set.tallies = Tallies() self._input_set.tallies.add_tally(azimuthal_tally1) self._input_set.tallies.add_tally(azimuthal_tally2) self._input_set.tallies.add_tally(azimuthal_tally3) diff --git a/tests/test_tally_aggregation/test_tally_aggregation.py b/tests/test_tally_aggregation/test_tally_aggregation.py index 7d682b698..009a7dc09 100644 --- a/tests/test_tally_aggregation/test_tally_aggregation.py +++ b/tests/test_tally_aggregation/test_tally_aggregation.py @@ -16,7 +16,7 @@ class TallyAggregationTestHarness(PyAPITestHarness): self._input_set.settings.output = {'summary': True} # Initialize the tallies file - tallies_file = openmc.TalliesFile() + tallies_file = openmc.Tallies() # Initialize the nuclides u235 = openmc.Nuclide('U-235') diff --git a/tests/test_tally_arithmetic/test_tally_arithmetic.py b/tests/test_tally_arithmetic/test_tally_arithmetic.py index cf8d012e8..ffea74603 100644 --- a/tests/test_tally_arithmetic/test_tally_arithmetic.py +++ b/tests/test_tally_arithmetic/test_tally_arithmetic.py @@ -16,7 +16,7 @@ class TallyArithmeticTestHarness(PyAPITestHarness): self._input_set.settings.output = {'summary': True} # Initialize the tallies file - tallies_file = openmc.TalliesFile() + tallies_file = openmc.Tallies() # Initialize the nuclides u235 = openmc.Nuclide('U-235') diff --git a/tests/test_tally_slice_merge/test_tally_slice_merge.py b/tests/test_tally_slice_merge/test_tally_slice_merge.py index 79acf182d..933fdf6fa 100644 --- a/tests/test_tally_slice_merge/test_tally_slice_merge.py +++ b/tests/test_tally_slice_merge/test_tally_slice_merge.py @@ -17,7 +17,7 @@ class TallySliceMergeTestHarness(PyAPITestHarness): self._input_set.settings.output = {'summary': True} # Initialize the tallies file - tallies_file = openmc.TalliesFile() + tallies_file = openmc.Tallies() # Define nuclides and scores to add to both tallies self.nuclides = ['U-235', 'U-238'] @@ -69,8 +69,8 @@ class TallySliceMergeTestHarness(PyAPITestHarness): for nuclide in self.nuclides: distribcell_tally.add_nuclide(nuclide) - # Add tallies to a TalliesFile - tallies_file = openmc.TalliesFile() + # Add tallies to a Tallies object + tallies_file = openmc.Tallies() tallies_file.add_tally(tallies[0]) tallies_file.add_tally(distribcell_tally) @@ -95,7 +95,7 @@ class TallySliceMergeTestHarness(PyAPITestHarness): # Slice the tallies by cell filter bins cell_filter_prod = itertools.product(tallies, self.cell_filters) - tallies = map(lambda tf: tf[0].get_slice(filters=[tf[1].type], + tallies = map(lambda tf: tf[0].get_slice(filters=[tf[1].type], filter_bins=[tf[1].get_bin(0)]), cell_filter_prod) # Slice the tallies by energy filter bins @@ -133,11 +133,11 @@ class TallySliceMergeTestHarness(PyAPITestHarness): # Extract the distribcell tally distribcell_tally = sp.get_tally(name='distribcell tally') - # Sum up a few subdomains from the distribcell tally - sum1 = distribcell_tally.summation(filter_type='distribcell', + # Sum up a few subdomains from the distribcell tally + sum1 = distribcell_tally.summation(filter_type='distribcell', filter_bins=[0,100,2000,30000]) # Sum up a few subdomains from the distribcell tally - sum2 = distribcell_tally.summation(filter_type='distribcell', + sum2 = distribcell_tally.summation(filter_type='distribcell', filter_bins=[500,5000,50000]) # Merge the distribcell tally slices From 68f7de13155231cf88213b19d9dd7e0aba8571ae Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Apr 2016 10:44:20 -0500 Subject: [PATCH 106/259] Update Jupyter notebooks --- .../pythonapi/examples/mgxs-part-i.ipynb | 27 ++++++-------- .../pythonapi/examples/mgxs-part-ii.ipynb | 29 ++++++--------- .../pythonapi/examples/mgxs-part-iii.ipynb | 37 ++++++++----------- .../examples/pandas-dataframes.ipynb | 37 ++++++++----------- .../pythonapi/examples/post-processing.ipynb | 27 ++++++-------- .../pythonapi/examples/tally-arithmetic.ipynb | 29 ++++++--------- 6 files changed, 78 insertions(+), 108 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index de66cbb83..c7a5b2ffa 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -201,7 +201,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "With our material, we can now create a `MaterialsFile` object that can be exported to an actual XML file." + "With our material, we can now create a `Materials` object that can be exported to an actual XML file." ] }, { @@ -212,8 +212,8 @@ }, "outputs": [], "source": [ - "# Instantiate a MaterialsFile, register all Materials, and export to XML\n", - "materials_file = openmc.MaterialsFile()\n", + "# Instantiate a Materials object, register all Materials, and export to XML\n", + "materials_file = openmc.Materials()\n", "materials_file.default_xs = '71c'\n", "materials_file.add_material(inf_medium)\n", "materials_file.export_to_xml()" @@ -290,7 +290,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We now must create a geometry that is assigned a root universe, put the geometry into a `GeometryFile` object, and export it to XML." + "We now must create a geometry that is assigned a root universe and export it to XML." ] }, { @@ -305,12 +305,8 @@ "openmc_geometry = openmc.Geometry()\n", "openmc_geometry.root_universe = root_universe\n", "\n", - "# Instantiate a GeometryFile\n", - "geometry_file = openmc.GeometryFile()\n", - "geometry_file.geometry = openmc_geometry\n", - "\n", "# Export to \"geometry.xml\"\n", - "geometry_file.export_to_xml()" + "openmc_geometry.export_to_xml()" ] }, { @@ -333,8 +329,8 @@ "inactive = 10\n", "particles = 2500\n", "\n", - "# Instantiate a SettingsFile\n", - "settings_file = openmc.SettingsFile()\n", + "# Instantiate a Settings object\n", + "settings_file = openmc.Settings()\n", "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", @@ -455,7 +451,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The `Absorption` object includes tracklength tallies for the 'absorption' and 'flux' scores in the 2-group structure in cell 1. Now that each `MGXS` object contains the tallies that it needs, we must add these tallies to a `TalliesFile` object to generate the \"tallies.xml\" input file for OpenMC." + "The `Absorption` object includes tracklength tallies for the 'absorption' and 'flux' scores in the 2-group structure in cell 1. Now that each `MGXS` object contains the tallies that it needs, we must add these tallies to a `Tallies` object to generate the \"tallies.xml\" input file for OpenMC." ] }, { @@ -466,8 +462,8 @@ }, "outputs": [], "source": [ - "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()\n", + "# Instantiate an empty Tallies object\n", + "tallies_file = openmc.Tallies()\n", "\n", "# Add total tallies to the tallies file\n", "for tally in total.tallies.values():\n", @@ -644,8 +640,7 @@ ], "source": [ "# Run OpenMC\n", - "executor = openmc.Executor()\n", - "executor.run_simulation()" + "openmc.run()" ] }, { diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 6ed5cd38d..49e301f5b 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -122,7 +122,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "With our materials, we can now create a `MaterialsFile` object that can be exported to an actual XML file." + "With our materials, we can now create a `Materials` object that can be exported to an actual XML file." ] }, { @@ -133,8 +133,8 @@ }, "outputs": [], "source": [ - "# Instantiate a MaterialsFile, add Materials\n", - "materials_file = openmc.MaterialsFile()\n", + "# Instantiate a Materials object, add Materials\n", + "materials_file = openmc.Materials()\n", "materials_file.add_material(fuel)\n", "materials_file.add_material(water)\n", "materials_file.add_material(zircaloy)\n", @@ -238,7 +238,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We now must create a geometry that is assigned a root universe, put the geometry into a `GeometryFile` object, and export it to XML." + "We now must create a geometry that is assigned a root universe and export it to XML." ] }, { @@ -253,12 +253,8 @@ "openmc_geometry = openmc.Geometry()\n", "openmc_geometry.root_universe = root_universe\n", "\n", - "# Instantiate a GeometryFile\n", - "geometry_file = openmc.GeometryFile()\n", - "geometry_file.geometry = openmc_geometry\n", - "\n", "# Export to \"geometry.xml\"\n", - "geometry_file.export_to_xml()" + "openmc_geometry.export_to_xml()" ] }, { @@ -281,8 +277,8 @@ "inactive = 10\n", "particles = 10000\n", "\n", - "# Instantiate a SettingsFile\n", - "settings_file = openmc.SettingsFile()\n", + "# Instantiate a Settings object\n", + "settings_file = openmc.Settings()\n", "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", @@ -396,8 +392,8 @@ }, "outputs": [], "source": [ - "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()\n", + "# Instantiate an empty Tallies object\n", + "tallies_file = openmc.Tallies()\n", "\n", "# Iterate over all cells and cross section types\n", "for cell in openmc_cells:\n", @@ -607,8 +603,7 @@ ], "source": [ "# Run OpenMC\n", - "executor = openmc.Executor()\n", - "executor.run_simulation(output=True)" + "openmc.run(output=True)" ] }, { @@ -1360,7 +1355,7 @@ ], "source": [ "# Generate tracks for OpenMOC\n", - "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, spacing=0.1)\n", + "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, azim_spacing=0.1)\n", "track_generator.generateTracks()\n", "\n", "# Run OpenMOC\n", @@ -1699,7 +1694,7 @@ ], "source": [ "# Generate tracks for OpenMOC\n", - "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, spacing=0.1)\n", + "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, azim_spacing=0.1)\n", "track_generator.generateTracks()\n", "\n", "# Run OpenMOC\n", diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 5fccc4f03..3a3533ffe 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -122,7 +122,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "With our three materials, we can now create a `MaterialsFile` object that can be exported to an actual XML file." + "With our three materials, we can now create a `Materials` object that can be exported to an actual XML file." ] }, { @@ -133,8 +133,8 @@ }, "outputs": [], "source": [ - "# Instantiate a MaterialsFile, add Materials\n", - "materials_file = openmc.MaterialsFile()\n", + "# Instantiate a Materials object, add Materials\n", + "materials_file = openmc.Materials()\n", "materials_file.add_material(fuel)\n", "materials_file.add_material(water)\n", "materials_file.add_material(zircaloy)\n", @@ -331,7 +331,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We now must create a geometry that is assigned a root universe, put the geometry into a `GeometryFile` object, and export it to XML." + "We now must create a geometry that is assigned a root universe and export it to XML." ] }, { @@ -355,12 +355,8 @@ }, "outputs": [], "source": [ - "# Instantiate a GeometryFile\n", - "geometry_file = openmc.GeometryFile()\n", - "geometry_file.geometry = geometry\n", - "\n", "# Export to \"geometry.xml\"\n", - "geometry_file.export_to_xml()" + "geometry.export_to_xml()" ] }, { @@ -383,8 +379,8 @@ "inactive = 10\n", "particles = 2500\n", "\n", - "# Instantiate a SettingsFile\n", - "settings_file = openmc.SettingsFile()\n", + "# Instantiate a Settings object\n", + "settings_file = openmc.Settings()\n", "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", @@ -403,7 +399,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Let us also create a `PlotsFile` that we can use to verify that our fuel assembly geometry was created successfully." + "Let us also create a `Plots` file that we can use to verify that our fuel assembly geometry was created successfully." ] }, { @@ -422,8 +418,8 @@ "plot.width = [-10.71*2, -10.71*2]\n", "plot.color = 'mat'\n", "\n", - "# Instantiate a PlotsFile, add Plot, and export to \"plots.xml\"\n", - "plot_file = openmc.PlotsFile()\n", + "# Instantiate a Plots object, add Plot, and export to \"plots.xml\"\n", + "plot_file = openmc.Plots()\n", "plot_file.add_plot(plot)\n", "plot_file.export_to_xml()" ] @@ -455,8 +451,7 @@ ], "source": [ "# Run openmc in plotting mode\n", - "executor = openmc.Executor()\n", - "executor.plot_geometry(output=False)" + "openmc.plot_geometry(output=False)" ] }, { @@ -643,7 +638,7 @@ "source": [ "The tallies can now be export to a \"tallies.xml\" input file for OpenMC. \n", "\n", - "**NOTE**: At this point the `Library` has constructed nearly 100 distinct `Tally` objects. The overhead to tally in OpenMC scales as $O(N)$ for $N$ tallies, which can become a bottleneck for large tally datasets. To compensate for this, the Python API's `Tally`, `Filter` and `TalliesFile` classes allow for the smart *merging* of tallies when possible. The `Library` class supports this runtime optimization with the use of the optional `merge` paramter (`False` by default) for the `Library.add_to_tallies_file(...)` method, as shown below." + "**NOTE**: At this point the `Library` has constructed nearly 100 distinct `Tally` objects. The overhead to tally in OpenMC scales as $O(N)$ for $N$ tallies, which can become a bottleneck for large tally datasets. To compensate for this, the Python API's `Tally`, `Filter` and `Tallies` classes allow for the smart *merging* of tallies when possible. The `Library` class supports this runtime optimization with the use of the optional `merge` paramter (`False` by default) for the `Library.add_to_tallies_file(...)` method, as shown below." ] }, { @@ -655,7 +650,7 @@ "outputs": [], "source": [ "# Create a \"tallies.xml\" file for the MGXS Library\n", - "tallies_file = openmc.TalliesFile()\n", + "tallies_file = openmc.Tallies()\n", "mgxs_lib.add_to_tallies_file(tallies_file, merge=True)" ] }, @@ -690,7 +685,7 @@ "tally.filters = [mesh_filter]\n", "tally.scores = ['fission', 'nu-fission']\n", "\n", - "# Add mesh and Tally to TalliesFile\n", + "# Add mesh and tally to Tallies\n", "tallies_file.add_mesh(mesh)\n", "tallies_file.add_tally(tally)" ] @@ -860,7 +855,7 @@ ], "source": [ "# Run OpenMC\n", - "executor.run_simulation()" + "openmc.run()" ] }, { @@ -1449,7 +1444,7 @@ ], "source": [ "# Generate tracks for OpenMOC\n", - "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=32, spacing=0.1)\n", + "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=32, azim_spacing=0.1)\n", "track_generator.generateTracks()\n", "\n", "# Run OpenMOC\n", diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 388e4aaa6..b0f2f6b13 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -108,8 +108,8 @@ }, "outputs": [], "source": [ - "# Instantiate a MaterialsFile, add Materials\n", - "materials_file = openmc.MaterialsFile()\n", + "# Instantiate a Materials object, add Materials\n", + "materials_file = openmc.Materials()\n", "materials_file.add_material(fuel)\n", "materials_file.add_material(water)\n", "materials_file.add_material(zircaloy)\n", @@ -239,7 +239,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We now must create a geometry that is assigned a root universe, put the geometry into a `GeometryFile` object, and export it to XML." + "We now must create a geometry that is assigned a root universe and export it to XML." ] }, { @@ -263,12 +263,8 @@ }, "outputs": [], "source": [ - "# Instantiate a GeometryFile\n", - "geometry_file = openmc.GeometryFile()\n", - "geometry_file.geometry = geometry\n", - "\n", "# Export to \"geometry.xml\"\n", - "geometry_file.export_to_xml()" + "geometry.export_to_xml()" ] }, { @@ -292,8 +288,8 @@ "inactive = 5\n", "particles = 2500\n", "\n", - "# Instantiate a SettingsFile\n", - "settings_file = openmc.SettingsFile()\n", + "# Instantiate a Settings object\n", + "settings_file = openmc.Settings()\n", "settings_file.batches = min_batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", @@ -333,8 +329,8 @@ "plot.pixels = [250, 250]\n", "plot.color = 'mat'\n", "\n", - "# Instantiate a PlotsFile, add Plot, and export to \"plots.xml\"\n", - "plot_file = openmc.PlotsFile()\n", + "# Instantiate a Plots object, add Plot, and export to \"plots.xml\"\n", + "plot_file = openmc.Plots()\n", "plot_file.add_plot(plot)\n", "plot_file.export_to_xml()" ] @@ -366,8 +362,7 @@ ], "source": [ "# Run openmc in plotting mode\n", - "executor = openmc.Executor()\n", - "executor.plot_geometry(output=False)" + "openmc.plot_geometry(output=False)" ] }, { @@ -412,8 +407,8 @@ }, "outputs": [], "source": [ - "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()\n", + "# Instantiate an empty Tallies object\n", + "tallies_file = openmc.Tallies()\n", "tallies_file._tallies = []" ] }, @@ -453,7 +448,7 @@ "tally.filters = [mesh_filter, energy_filter]\n", "tally.scores = ['fission', 'nu-fission']\n", "\n", - "# Add mesh and Tally to TalliesFile\n", + "# Add mesh and Tally to Tallies\n", "tallies_file.add_mesh(mesh)\n", "tallies_file.add_tally(tally)" ] @@ -482,7 +477,7 @@ "tally.scores = ['scatter-y2']\n", "tally.nuclides = [u235, u238]\n", "\n", - "# Add mesh and tally to TalliesFile\n", + "# Add mesh and tally to Tallies\n", "tallies_file.add_tally(tally)" ] }, @@ -514,7 +509,7 @@ "tally.scores = ['absorption', 'scatter']\n", "tally.triggers = [trigger]\n", "\n", - "# Add mesh and tally to TalliesFile\n", + "# Add mesh and tally to Tallies\n", "tallies_file.add_tally(tally)" ] }, @@ -669,8 +664,8 @@ "# Remove old HDF5 (summary, statepoint) files\n", "!rm statepoint.*\n", "\n", - "# Run OpenMC with MPI!\n", - "executor.run_simulation()" + "# Run OpenMC!\n", + "openmc.run()" ] }, { diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 0dc18d5a2..ce9209b03 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -104,8 +104,8 @@ }, "outputs": [], "source": [ - "# Instantiate a MaterialsFile, add Materials\n", - "materials_file = openmc.MaterialsFile()\n", + "# Instantiate a Materials object, add Materials\n", + "materials_file = openmc.Materials()\n", "materials_file.add_material(fuel)\n", "materials_file.add_material(water)\n", "materials_file.add_material(zircaloy)\n", @@ -236,12 +236,8 @@ }, "outputs": [], "source": [ - "# Instantiate a GeometryFile\n", - "geometry_file = openmc.GeometryFile()\n", - "geometry_file.geometry = geometry\n", - "\n", "# Export to \"geometry.xml\"\n", - "geometry_file.export_to_xml()" + "geometry.export_to_xml()" ] }, { @@ -264,8 +260,8 @@ "inactive = 10\n", "particles = 5000\n", "\n", - "# Instantiate a SettingsFile\n", - "settings_file = openmc.SettingsFile()\n", + "# Instantiate a Settings object\n", + "settings_file = openmc.Settings()\n", "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", @@ -302,8 +298,8 @@ "plot.pixels = [250, 250]\n", "plot.color = 'mat'\n", "\n", - "# Instantiate a PlotsFile, add Plot, and export to \"plots.xml\"\n", - "plot_file = openmc.PlotsFile()\n", + "# Instantiate a Plots object, add Plot, and export to \"plots.xml\"\n", + "plot_file = openmc.Plots()\n", "plot_file.add_plot(plot)\n", "plot_file.export_to_xml()" ] @@ -335,8 +331,7 @@ ], "source": [ "# Run openmc in plotting mode\n", - "executor = openmc.Executor()\n", - "executor.plot_geometry(output=False)" + "openmc.plot_geometry(output=False)" ] }, { @@ -381,8 +376,8 @@ }, "outputs": [], "source": [ - "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()" + "# Instantiate an empty Tallies object\n", + "tallies_file = openmc.Tallies()" ] }, { @@ -634,7 +629,7 @@ ], "source": [ "# Run OpenMC!\n", - "executor.run_simulation()" + "openmc.run()" ] }, { diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 094842895..81334efc2 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -126,8 +126,8 @@ }, "outputs": [], "source": [ - "# Instantiate a MaterialsFile, add Materials\n", - "materials_file = openmc.MaterialsFile()\n", + "# Instantiate a Materials object, add Materials\n", + "materials_file = openmc.Materials()\n", "materials_file.add_material(fuel)\n", "materials_file.add_material(water)\n", "materials_file.add_material(zircaloy)\n", @@ -258,12 +258,8 @@ }, "outputs": [], "source": [ - "# Instantiate a GeometryFile\n", - "geometry_file = openmc.GeometryFile()\n", - "geometry_file.geometry = geometry\n", - "\n", "# Export to \"geometry.xml\"\n", - "geometry_file.export_to_xml()" + "geometry.export_to_xml()" ] }, { @@ -286,8 +282,8 @@ "inactive = 5\n", "particles = 2500\n", "\n", - "# Instantiate a SettingsFile\n", - "settings_file = openmc.SettingsFile()\n", + "# Instantiate a Settings object\n", + "settings_file = openmc.Settings()\n", "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", @@ -325,8 +321,8 @@ "plot.pixels = [250, 250]\n", "plot.color = 'mat'\n", "\n", - "# Instantiate a PlotsFile, add Plot, and export to \"plots.xml\"\n", - "plot_file = openmc.PlotsFile()\n", + "# Instantiate a Plots object, add Plot, and export to \"plots.xml\"\n", + "plot_file = openmc.Plots()\n", "plot_file.add_plot(plot)\n", "plot_file.export_to_xml()" ] @@ -358,8 +354,7 @@ ], "source": [ "# Run openmc in plotting mode\n", - "executor = openmc.Executor()\n", - "executor.plot_geometry(output=False)" + "openmc.plot_geometry(output=False)" ] }, { @@ -404,8 +399,8 @@ }, "outputs": [], "source": [ - "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()" + "# Instantiate an empty Tallies object\n", + "tallies_file = openmc.Tallies()" ] }, { @@ -673,8 +668,8 @@ "# Remove old HDF5 (summary, statepoint) files\n", "!rm statepoint.*\n", "\n", - "# Run OpenMC with MPI!\n", - "executor.run_simulation()" + "# Run OpenMC!\n", + "openmc.run()" ] }, { From 3da96a89be182d72cec65f6ce448fdc7780ee76d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Apr 2016 12:43:38 -0500 Subject: [PATCH 107/259] Fix assignment of universe IDs for lattices --- openmc/lattice.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/openmc/lattice.py b/openmc/lattice.py index 7e78abf06..baccbad90 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -7,7 +7,7 @@ import sys import numpy as np import openmc.checkvalue as cv -from openmc.universe import Universe, AUTO_UNIVERSE_ID +import openmc if sys.version_info[0] >= 3: basestring = str @@ -93,9 +93,8 @@ class Lattice(object): @id.setter def id(self, lattice_id): if lattice_id is None: - global AUTO_UNIVERSE_ID - self._id = AUTO_UNIVERSE_ID - AUTO_UNIVERSE_ID += 1 + self._id = openmc.universe.AUTO_UNIVERSE_ID + openmc.universe.AUTO_UNIVERSE_ID += 1 else: cv.check_type('lattice ID', lattice_id, Integral) cv.check_greater_than('lattice ID', lattice_id, 0, equality=True) @@ -111,12 +110,12 @@ class Lattice(object): @outer.setter def outer(self, outer): - cv.check_type('outer universe', outer, Universe) + cv.check_type('outer universe', outer, openmc.Universe) self._outer = outer @universes.setter def universes(self, universes): - cv.check_iterable_type('lattice universes', universes, Universe, + cv.check_iterable_type('lattice universes', universes, openmc.Universe, min_depth=2, max_depth=3) self._universes = np.asarray(universes) @@ -127,20 +126,20 @@ class Lattice(object): ------- universes : collections.OrderedDict Dictionary whose keys are universe IDs and values are - :class:`Universe` instances + :class:`openmc.Universe` instances """ univs = OrderedDict() for k in range(len(self._universes)): for j in range(len(self._universes[k])): - if isinstance(self._universes[k][j], Universe): + if isinstance(self._universes[k][j], openmc.Universe): u = self._universes[k][j] univs[u._id] = u else: for i in range(len(self._universes[k][j])): u = self._universes[k][j][i] - assert isinstance(u, Universe) + assert isinstance(u, openmc.Universe) univs[u._id] = u if self.outer is not None: @@ -615,10 +614,10 @@ class HexLattice(Lattice): # clockwise fashion. # Check to see if the given universes look like a 2D or a 3D array. - if isinstance(self._universes[0][0], Universe): + if isinstance(self._universes[0][0], openmc.Universe): n_dims = 2 - elif isinstance(self._universes[0][0][0], Universe): + elif isinstance(self._universes[0][0][0], openmc.Universe): n_dims = 3 else: From 34bd4052452d034e3bcd096054ae9aafc0eae8df Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 25 Apr 2016 12:58:33 -0500 Subject: [PATCH 108/259] Fix Python 3.5-related issue in mgxs module --- openmc/mgxs/mgxs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 0c3612e9f..33255de30 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -412,7 +412,7 @@ class MGXS(object): # Otherwise, return all nuclides in the spatial domain else: nuclides = self.domain.get_all_nuclides() - return nuclides.keys() + return list(nuclides.keys()) def get_nuclide_density(self, nuclide): """Get the atomic number density in units of atoms/b-cm for a nuclide From 6234c4e05ebe416c48ba113b39c1911afb9e6ef4 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 26 Apr 2016 07:06:18 -0500 Subject: [PATCH 109/259] Update copyright in two places and link to license in header --- docs/source/license.rst | 2 +- src/output.F90 | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/license.rst b/docs/source/license.rst index 73e329617..c51902d6f 100644 --- a/docs/source/license.rst +++ b/docs/source/license.rst @@ -4,7 +4,7 @@ License Agreement ================= -Copyright © 2011-2015 Massachusetts Institute of Technology +Copyright © 2011-2016 Massachusetts Institute of Technology Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/src/output.F90 b/src/output.F90 index fafa198f7..4b4b966dc 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -52,9 +52,9 @@ contains ! Write version information write(UNIT=OUTPUT_UNIT, FMT=*) & - ' Copyright: 2011-2015 Massachusetts Institute of Technology' + ' Copyright: 2011-2016 Massachusetts Institute of Technology' write(UNIT=OUTPUT_UNIT, FMT=*) & - ' License: http://mit-crpg.github.io/openmc/license.html' + ' License: http://openmc.readthedocs.org/en/latest/license.html' write(UNIT=OUTPUT_UNIT, FMT='(6X,"Version:",8X,I1,".",I1,".",I1)') & VERSION_MAJOR, VERSION_MINOR, VERSION_RELEASE #ifdef GIT_SHA1 From 1e57cb84074c4d35500fcb9f027b203a20a546de Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 26 Apr 2016 07:08:03 -0500 Subject: [PATCH 110/259] Respond to @wbinventor comments on #632 --- examples/python/basic/build-xml.py | 4 +- examples/python/boxes/build-xml.py | 8 +- .../python/lattice/hexagonal/build-xml.py | 10 +- examples/python/lattice/nested/build-xml.py | 6 +- examples/python/lattice/simple/build-xml.py | 8 +- examples/python/pincell/build-xml.py | 6 +- .../python/pincell_multigroup/build-xml.py | 6 +- examples/python/reflective/build-xml.py | 4 +- openmc/executor.py | 5 +- openmc/material.py | 4 +- openmc/mgxs/library.py | 2 +- openmc/mgxs_library.py | 2 +- openmc/plots.py | 4 +- openmc/surface.py | 211 +++++++++--------- openmc/tallies.py | 4 +- 15 files changed, 146 insertions(+), 138 deletions(-) diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index 19737cf91..05accbc5e 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -74,7 +74,7 @@ cell1.fill = universe1 universe1.add_cells([cell2, cell3]) root.add_cells([cell1, cell4]) -# Instantiate a Geometry and register the root Universe, and export to XML +# Instantiate a Geometry, register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root geometry.export_to_xml() @@ -124,7 +124,7 @@ third_tally = openmc.Tally(tally_id=3, name='third tally') third_tally.filters = [cell_filter, energy_filter, energyout_filter] third_tally.scores = ['scatter', 'nu-scatter', 'nu-fission'] -# Instantiate a Tallies object, register all Tallies, and export to XML +# Instantiate a Tallies collection, register all Tallies, and export to XML tallies_file = openmc.Tallies() tallies_file.add_tally(first_tally) tallies_file.add_tally(second_tally) diff --git a/examples/python/boxes/build-xml.py b/examples/python/boxes/build-xml.py index 196a10ca7..318af2265 100644 --- a/examples/python/boxes/build-xml.py +++ b/examples/python/boxes/build-xml.py @@ -36,7 +36,7 @@ moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) moderator.add_s_alpha_beta('HH2O', '71t') -# Instantiate a Materials object, register all Materials, and export to XML +# Instantiate a Materials collection, register all Materials, and export to XML materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([fuel1, fuel2, moderator]) @@ -97,7 +97,7 @@ outer_box.fill = moderator root = openmc.Universe(universe_id=0, name='root universe') root.add_cells([inner_box, middle_box, outer_box]) -# Instantiate a Geometry and register the root Universe, and export to XML +# Instantiate a Geometry, register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root geometry.export_to_xml() @@ -107,7 +107,7 @@ geometry.export_to_xml() # Exporting to OpenMC settings.xml File ############################################################################### -# Instantiate a SettingsFile, set all runtime parameters, and export to XML +# Instantiate a Settings object, set all runtime parameters, and export to XML settings_file = openmc.Settings() settings_file.batches = batches settings_file.inactive = inactive @@ -129,7 +129,7 @@ plot.width = [20, 20] plot.pixels = [200, 200] plot.color = 'cell' -# Instantiate a Plots object, add Plot, and export to XML +# Instantiate a Plots collection, add Plot, and export to XML plot_file = openmc.Plots() plot_file.add_plot(plot) plot_file.export_to_xml() diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index a9d7f6899..04002faf2 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -35,7 +35,7 @@ iron = openmc.Material(material_id=3, name='iron') iron.set_density('g/cc', 7.9) iron.add_nuclide(fe56, 1.) -# Instantiate a Materials object, register all Materials, and export to XML +# Instantiate a Materials collection, register all Materials, and export to XML materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([moderator, fuel, iron]) @@ -105,7 +105,7 @@ lattice.outer = univ2 # Fill Cell with the Lattice cell1.fill = lattice -# Instantiate a Geometry and register the root Universe, and export to XML +# Instantiate a Geometry, register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root geometry.export_to_xml() @@ -115,7 +115,7 @@ geometry.export_to_xml() # Exporting to OpenMC settings.xml file ############################################################################### -# Instantiate a SettingsFile, set all runtime parameters, and export to XML +# Instantiate a Settings object, set all runtime parameters, and export to XML settings_file = openmc.Settings() settings_file.batches = batches settings_file.inactive = inactive @@ -151,7 +151,7 @@ plot_yz.width = [8, 8] plot_yz.pixels = [400, 400] plot_yz.color = 'mat' -# Instantiate a Plots object, add plots, and export to XML +# Instantiate a Plots collection, add plots, and export to XML plot_file = openmc.Plots() plot_file.add_plot(plot_xy) plot_file.add_plot(plot_yz) @@ -167,7 +167,7 @@ tally = openmc.Tally(tally_id=1) tally.filters = [openmc.Filter(type='distribcell', bins=[cell2.id])] tally.scores = ['total'] -# Instantiate a Tallies object, register Tally/Mesh, and export to XML +# Instantiate a Tallies collection, register Tally/Mesh, and export to XML tallies_file = openmc.Tallies() tallies_file.add_tally(tally) tallies_file.export_to_xml() diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index eb16c8327..0e4e459e2 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -30,7 +30,7 @@ moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) moderator.add_s_alpha_beta('HH2O', '71t') -# Instantiate a Materials object, register all Materials, and export to XML +# Instantiate a Materials collection, register all Materials, and export to XML materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([moderator, fuel]) @@ -116,7 +116,7 @@ lattice2.universes = [[univ4, univ4], cell1.fill = lattice2 cell2.fill = lattice1 -# Instantiate a Geometry and register the root Universe, and export to XML +# Instantiate a Geometry, register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root geometry.export_to_xml() @@ -176,7 +176,7 @@ tally = openmc.Tally(tally_id=1) tally.filters = [mesh_filter] tally.scores = ['total'] -# Instantiate a Tallies object, register Tally/Mesh, and export to XML +# Instantiate a Tallies collection, register Tally/Mesh, and export to XML tallies_file = openmc.Tallies() tallies_file.add_mesh(mesh) tallies_file.add_tally(tally) diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index 6e44e4da0..8d9481aaa 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -30,7 +30,7 @@ moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) moderator.add_s_alpha_beta('HH2O', '71t') -# Instantiate a Materials object, register all Materials, and export to XML +# Instantiate a Materials collection, register all Materials, and export to XML materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([moderator, fuel]) @@ -106,7 +106,7 @@ lattice.universes = [[univ1, univ2, univ1, univ2], # Fill Cell with the Lattice cell1.fill = lattice -# Instantiate a Geometry and register the root Universe, and export to XML +# Instantiate a Geometry, register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root geometry.export_to_xml() @@ -142,7 +142,7 @@ plot.width = [4, 4] plot.pixels = [400, 400] plot.color = 'mat' -# Instantiate a Plots object, add Plot, and export to XML +# Instantiate a Plots collection, add Plot, and export to XML plot_file = openmc.Plots() plot_file.add_plot(plot) plot_file.export_to_xml() @@ -173,7 +173,7 @@ tally.filters = [mesh_filter] tally.scores = ['total'] tally.triggers = [trigger] -# Instantiate a Tallies object, register Tally/Mesh, and export to XML +# Instantiate a Tallies collection, register Tally/Mesh, and export to XML tallies_file = openmc.Tallies() tallies_file.add_mesh(mesh) tallies_file.add_tally(tally) diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index 10cd4944d..561df2b5a 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -100,7 +100,7 @@ borated_water.add_nuclide(o16, 2.4672e-2) borated_water.add_nuclide(o17, 6.0099e-5) borated_water.add_s_alpha_beta('HH2O', '71t') -# Instantiate a Materials object, register all Materials, and export to XML +# Instantiate a Materials collection, register all Materials, and export to XML materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_materials([uo2, helium, zircaloy, borated_water]) @@ -149,7 +149,7 @@ root = openmc.Universe(universe_id=0, name='root universe') # Register Cells with Universe root.add_cells([fuel, gap, clad, water]) -# Instantiate a Geometry and register the root Universe, and export to XML +# Instantiate a Geometry, register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root geometry.export_to_xml() @@ -197,7 +197,7 @@ tally = openmc.Tally(tally_id=1, name='tally 1') tally.filters = [energy_filter, mesh_filter] tally.scores = ['flux', 'fission', 'nu-fission'] -# Instantiate a Tallies object, register all Tallies, and export to XML +# Instantiate a Tallies collection, register all Tallies, and export to XML tallies_file = openmc.Tallies() tallies_file.add_mesh(mesh) tallies_file.add_tally(tally) diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index 233728142..697a596d9 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -81,7 +81,7 @@ water = openmc.Material(material_id=2, name='Water') water.set_density('macro', 1.0) water.add_macroscopic(h2o_data) -# Instantiate a Materials object, register all Materials, and export to XML +# Instantiate a Materials collection, register all Materials, and export to XML materials_file = openmc.Materials() materials_file.default_xs = '300K' materials_file.add_materials([uo2, water]) @@ -122,7 +122,7 @@ root = openmc.Universe(universe_id=0, name='root universe') # Register Cells with Universe root.add_cells([fuel, moderator]) -# Instantiate a Geometry and register the root Universe, and export to XML +# Instantiate a Geometry, register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root geometry.export_to_xml() @@ -173,7 +173,7 @@ tally.add_score('flux') tally.add_score('fission') tally.add_score('nu-fission') -# Instantiate a Tallies object, register all Tallies, and export to XML +# Instantiate a Tallies collection, register all Tallies, and export to XML tallies_file = openmc.Tallies() tallies_file.add_mesh(mesh) tallies_file.add_tally(tally) diff --git a/examples/python/reflective/build-xml.py b/examples/python/reflective/build-xml.py index 7d96e296d..e4776e744 100644 --- a/examples/python/reflective/build-xml.py +++ b/examples/python/reflective/build-xml.py @@ -23,7 +23,7 @@ fuel = openmc.Material(material_id=1, name='fuel') fuel.set_density('g/cc', 4.5) fuel.add_nuclide(u235, 1.) -# Instantiate a Materials object, register Material, and export to XML +# Instantiate a Materials collection, register Material, and export to XML materials_file = openmc.Materials() materials_file.default_xs = '71c' materials_file.add_material(fuel) @@ -64,7 +64,7 @@ root = openmc.Universe(universe_id=0, name='root universe') # Register Cell with Universe root.add_cell(cell) -# Instantiate a Geometry and register the root Universe, and export to XML +# Instantiate a Geometry, register the root Universe, and export to XML geometry = openmc.Geometry() geometry.root_universe = root geometry.export_to_xml() diff --git a/openmc/executor.py b/openmc/executor.py index 9bb3477c5..edbbaddc4 100644 --- a/openmc/executor.py +++ b/openmc/executor.py @@ -54,7 +54,10 @@ def run(particles=None, threads=None, geometry_debug=False, particles : int, optional Number of particles to simulate per generation. threads : int, optional - Number of OpenMP threads. + Number of OpenMP threads. If OpenMC is compiled with OpenMP threading + enabled, the default is implementation-dependent but is usually equal to + the number of hardware threads available (or a value set by the + OMP_NUM_THREADS environment variable). geometry_debug : bool, optional Turn on geometry debugging during simulation. Defaults to False. restart_file : str, optional diff --git a/openmc/material.py b/openmc/material.py index 6b0a0f246..c6030a8e6 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -643,8 +643,8 @@ class Material(object): class Materials(object): - """Materials used for an OpenMC simulation. Corresponds directly to the - materials.xml input file. + """Collection of Materials used for an OpenMC simulation. Corresponds directly + to the materials.xml input file. Attributes ---------- diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index ca7bf39cd..8d5e9854e 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -355,7 +355,7 @@ class Library(object): Parameters ---------- tallies_file : openmc.Tallies - A Tallies object to add each MGXS' tallies to generate a + A Tallies collection to add each MGXS' tallies to generate a "tallies.xml" input file for OpenMC merge : bool Indicate whether tallies should be merged when possible. Defaults diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 8db3c84ff..d3e49b238 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -705,7 +705,7 @@ class MGXSLibrary(object): # Make sure energy groups match. if xsdata.energy_groups != self._energy_groups: - msg = 'Energy groups of XSdata do not match that of MGXSLibrary!' + msg = 'Energy groups of XSdata do not match that of MGXSLibrary.' raise ValueError(msg) self._xsdatas.append(xsdata) diff --git a/openmc/plots.py b/openmc/plots.py index ae34678bb..a967cb060 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -402,8 +402,8 @@ class Plot(object): class Plots(object): - """Plots file used for an OpenMC simulation. Corresponds directly to the - plots.xml input file. + """Collection of Plots used for an OpenMC simulation. Corresponds directly to + the plots.xml input file. """ diff --git a/openmc/surface.py b/openmc/surface.py index c6f3f2cd0..37e7c2ffd 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -23,7 +23,11 @@ def reset_auto_surface_id(): class Surface(object): - """A two-dimensional surface with an associated boundary condition. + """An implicit surface with an associated boundary condition. + + An implicit surface is defined as the set of zeros of a function of the + three Cartesian coordinates. Surfaces in OpenMC are limited to a set of + algebraic surfaces, i.e., surfaces that are polynomial in x, y, and z. Parameters ---------- @@ -43,14 +47,14 @@ class Surface(object): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -63,7 +67,7 @@ class Surface(object): # A dictionary of the quadratic surface coefficients # Key - coefficeint name # Value - coefficient value - self._coeffs = {} + self._coefficients = {} # An ordered list of the coefficient names to export to XML in the # proper order @@ -82,12 +86,13 @@ class Surface(object): string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', self._type) string += '{0: <16}{1}{2}\n'.format('\tBoundary', '=\t', self._boundary_type) - coeffs = '{0: <16}'.format('\tCoefficients') + '\n' + coefficients = '{0: <16}'.format('\tCoefficients') + '\n' - for coeff in self._coeffs: - coeffs += '{0: <16}{1}{2}\n'.format(coeff, '=\t', self._coeffs[coeff]) + for coeff in self._coefficients: + coefficients += '{0: <16}{1}{2}\n'.format( + coeff, '=\t', self._coefficients[coeff]) - string += coeffs + string += coefficients return string @@ -108,8 +113,8 @@ class Surface(object): return self._boundary_type @property - def coeffs(self): - return self._coeffs + def coefficients(self): + return self._coefficients @id.setter def id(self, surface_id): @@ -173,7 +178,7 @@ class Surface(object): element.set("type", self._type) if self.boundary_type != 'transmission': element.set("boundary", self.boundary_type) - element.set("coeffs", ' '.join([str(self._coeffs.setdefault(key, 0.0)) + element.set("coeffs", ' '.join([str(self._coefficients.setdefault(key, 0.0)) for key in self._coeff_keys])) return element @@ -215,14 +220,14 @@ class Plane(Surface): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -239,39 +244,39 @@ class Plane(Surface): @property def a(self): - return self.coeffs['A'] + return self.coefficients['A'] @property def b(self): - return self.coeffs['B'] + return self.coefficients['B'] @property def c(self): - return self.coeffs['C'] + return self.coefficients['C'] @property def d(self): - return self.coeffs['D'] + return self.coefficients['D'] @a.setter def a(self, A): check_type('A coefficient', A, Real) - self._coeffs['A'] = A + self._coefficients['A'] = A @b.setter def b(self, B): check_type('B coefficient', B, Real) - self._coeffs['B'] = B + self._coefficients['B'] = B @c.setter def c(self, C): check_type('C coefficient', C, Real) - self._coeffs['C'] = C + self._coefficients['C'] = C @d.setter def d(self, D): check_type('D coefficient', D, Real) - self._coeffs['D'] = D + self._coefficients['D'] = D class XPlane(Plane): @@ -298,14 +303,14 @@ class XPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -319,12 +324,12 @@ class XPlane(Plane): @property def x0(self): - return self.coeffs['x0'] + return self.coefficients['x0'] @x0.setter def x0(self, x0): check_type('x0 coefficient', x0, Real) - self._coeffs['x0'] = x0 + self._coefficients['x0'] = x0 def bounding_box(self, side): """Determine an axis-aligned bounding box. @@ -382,14 +387,14 @@ class YPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -404,12 +409,12 @@ class YPlane(Plane): @property def y0(self): - return self.coeffs['y0'] + return self.coefficients['y0'] @y0.setter def y0(self, y0): check_type('y0 coefficient', y0, Real) - self._coeffs['y0'] = y0 + self._coefficients['y0'] = y0 def bounding_box(self, side): """Determine an axis-aligned bounding box. @@ -467,14 +472,14 @@ class ZPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -489,12 +494,12 @@ class ZPlane(Plane): @property def z0(self): - return self.coeffs['z0'] + return self.coefficients['z0'] @z0.setter def z0(self, z0): check_type('z0 coefficient', z0, Real) - self._coeffs['z0'] = z0 + self._coefficients['z0'] = z0 def bounding_box(self, side): """Determine an axis-aligned bounding box. @@ -553,14 +558,14 @@ class Cylinder(Surface): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -575,12 +580,12 @@ class Cylinder(Surface): @property def r(self): - return self.coeffs['R'] + return self.coefficients['R'] @r.setter def r(self, R): check_type('R coefficient', R, Real) - self._coeffs['R'] = R + self._coefficients['R'] = R class XCylinder(Cylinder): @@ -615,14 +620,14 @@ class XCylinder(Cylinder): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -637,21 +642,21 @@ class XCylinder(Cylinder): @property def y0(self): - return self.coeffs['y0'] + return self.coefficients['y0'] @property def z0(self): - return self.coeffs['z0'] + return self.coefficients['z0'] @y0.setter def y0(self, y0): check_type('y0 coefficient', y0, Real) - self._coeffs['y0'] = y0 + self._coefficients['y0'] = y0 @z0.setter def z0(self, z0): check_type('z0 coefficient', z0, Real) - self._coeffs['z0'] = z0 + self._coefficients['z0'] = z0 def bounding_box(self, side): """Determine an axis-aligned bounding box. @@ -718,14 +723,14 @@ class YCylinder(Cylinder): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -740,21 +745,21 @@ class YCylinder(Cylinder): @property def x0(self): - return self.coeffs['x0'] + return self.coefficients['x0'] @property def z0(self): - return self.coeffs['z0'] + return self.coefficients['z0'] @x0.setter def x0(self, x0): check_type('x0 coefficient', x0, Real) - self._coeffs['x0'] = x0 + self._coefficients['x0'] = x0 @z0.setter def z0(self, z0): check_type('z0 coefficient', z0, Real) - self._coeffs['z0'] = z0 + self._coefficients['z0'] = z0 def bounding_box(self, side): """Determine an axis-aligned bounding box. @@ -821,14 +826,14 @@ class ZCylinder(Cylinder): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -843,21 +848,21 @@ class ZCylinder(Cylinder): @property def x0(self): - return self.coeffs['x0'] + return self.coefficients['x0'] @property def y0(self): - return self.coeffs['y0'] + return self.coefficients['y0'] @x0.setter def x0(self, x0): check_type('x0 coefficient', x0, Real) - self._coeffs['x0'] = x0 + self._coefficients['x0'] = x0 @y0.setter def y0(self, y0): check_type('y0 coefficient', y0, Real) - self._coeffs['y0'] = y0 + self._coefficients['y0'] = y0 def bounding_box(self, side): """Determine an axis-aligned bounding box. @@ -928,14 +933,14 @@ class Sphere(Surface): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -952,39 +957,39 @@ class Sphere(Surface): @property def x0(self): - return self.coeffs['x0'] + return self.coefficients['x0'] @property def y0(self): - return self.coeffs['y0'] + return self.coefficients['y0'] @property def z0(self): - return self.coeffs['z0'] + return self.coefficients['z0'] @property def r(self): - return self.coeffs['R'] + return self.coefficients['R'] @x0.setter def x0(self, x0): check_type('x0 coefficient', x0, Real) - self._coeffs['x0'] = x0 + self._coefficients['x0'] = x0 @y0.setter def y0(self, y0): check_type('y0 coefficient', y0, Real) - self._coeffs['y0'] = y0 + self._coefficients['y0'] = y0 @z0.setter def z0(self, z0): check_type('z0 coefficient', z0, Real) - self._coeffs['z0'] = z0 + self._coefficients['z0'] = z0 @r.setter def r(self, R): check_type('R coefficient', R, Real) - self._coeffs['R'] = R + self._coefficients['R'] = R def bounding_box(self, side): """Determine an axis-aligned bounding box. @@ -1056,14 +1061,14 @@ class Cone(Surface): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -1081,39 +1086,39 @@ class Cone(Surface): @property def x0(self): - return self.coeffs['x0'] + return self.coefficients['x0'] @property def y0(self): - return self.coeffs['y0'] + return self.coefficients['y0'] @property def z0(self): - return self.coeffs['z0'] + return self.coefficients['z0'] @property def r2(self): - return self.coeffs['r2'] + return self.coefficients['r2'] @x0.setter def x0(self, x0): check_type('x0 coefficient', x0, Real) - self._coeffs['x0'] = x0 + self._coefficients['x0'] = x0 @y0.setter def y0(self, y0): check_type('y0 coefficient', y0, Real) - self._coeffs['y0'] = y0 + self._coefficients['y0'] = y0 @z0.setter def z0(self, z0): check_type('z0 coefficient', z0, Real) - self._coeffs['z0'] = z0 + self._coefficients['z0'] = z0 @r2.setter def r2(self, R2): check_type('R^2 coefficient', R2, Real) - self._coeffs['R2'] = R2 + self._coefficients['R2'] = R2 class XCone(Cone): @@ -1153,14 +1158,14 @@ class XCone(Cone): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -1209,14 +1214,14 @@ class YCone(Cone): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -1265,14 +1270,14 @@ class ZCone(Cone): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -1309,14 +1314,14 @@ class Quadric(Surface): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. - coeffs : dict + coefficients : dict Dictionary of surface coefficients id : int Unique identifier for the surface name : str Name of the surface type : str - Type of the surface, e.g. 'x-plane' + Type of the surface """ @@ -1340,93 +1345,93 @@ class Quadric(Surface): @property def a(self): - return self.coeffs['a'] + return self.coefficients['a'] @property def b(self): - return self.coeffs['b'] + return self.coefficients['b'] @property def c(self): - return self.coeffs['c'] + return self.coefficients['c'] @property def d(self): - return self.coeffs['d'] + return self.coefficients['d'] @property def e(self): - return self.coeffs['e'] + return self.coefficients['e'] @property def f(self): - return self.coeffs['f'] + return self.coefficients['f'] @property def g(self): - return self.coeffs['g'] + return self.coefficients['g'] @property def h(self): - return self.coeffs['h'] + return self.coefficients['h'] @property def j(self): - return self.coeffs['j'] + return self.coefficients['j'] @property def k(self): - return self.coeffs['k'] + return self.coefficients['k'] @a.setter def a(self, a): check_type('a coefficient', a, Real) - self._coeffs['a'] = a + self._coefficients['a'] = a @b.setter def b(self, b): check_type('b coefficient', b, Real) - self._coeffs['b'] = b + self._coefficients['b'] = b @c.setter def c(self, c): check_type('c coefficient', c, Real) - self._coeffs['c'] = c + self._coefficients['c'] = c @d.setter def d(self, d): check_type('d coefficient', d, Real) - self._coeffs['d'] = d + self._coefficients['d'] = d @e.setter def e(self, e): check_type('e coefficient', e, Real) - self._coeffs['e'] = e + self._coefficients['e'] = e @f.setter def f(self, f): check_type('f coefficient', f, Real) - self._coeffs['f'] = f + self._coefficients['f'] = f @g.setter def g(self, g): check_type('g coefficient', g, Real) - self._coeffs['g'] = g + self._coefficients['g'] = g @h.setter def h(self, h): check_type('h coefficient', h, Real) - self._coeffs['h'] = h + self._coefficients['h'] = h @j.setter def j(self, j): check_type('j coefficient', j, Real) - self._coeffs['j'] = j + self._coefficients['j'] = j @k.setter def k(self, k): check_type('k coefficient', k, Real) - self._coeffs['k'] = k + self._coefficients['k'] = k class Halfspace(Region): diff --git a/openmc/tallies.py b/openmc/tallies.py index 1af3b12bc..90b09f582 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3420,8 +3420,8 @@ class Tally(object): class Tallies(object): - """Tallies file used for an OpenMC simulation. Corresponds directly to the - tallies.xml input file. + """Collection of Tallies used for an OpenMC simulation. Corresponds directly to + the tallies.xml input file. """ From d6268831c75604f29d718d01253786a368e923d0 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Tue, 26 Apr 2016 23:07:07 -0400 Subject: [PATCH 111/259] Allow plotting without settings.xml --- src/input_xml.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 295422533..474c59d18 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -38,8 +38,8 @@ contains subroutine read_input_xml() - call read_settings_xml() if (run_mode /= MODE_PLOTTING) then + call read_settings_xml() if (run_CE) then call read_ce_cross_sections_xml() else From e204952c369cc7181fbc74842956e991f84c5953 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Tue, 26 Apr 2016 23:26:16 -0400 Subject: [PATCH 112/259] Alow string shortcut to Material.add_element --- openmc/material.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index c6030a8e6..17283d4dd 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -387,7 +387,7 @@ class Material(object): Parameters ---------- - element : openmc.Element + element : openmc.Element or str Element to add percent : float Atom or weight percent @@ -401,7 +401,7 @@ class Material(object): 'macroscopic data-set has already been added'.format(self._id) raise ValueError(msg) - if not isinstance(element, openmc.Element): + if not isinstance(element, (openmc.Element, str)): msg = 'Unable to add an Element to Material ID="{0}" with a ' \ 'non-Element value "{1}"'.format(self._id, element) raise ValueError(msg) From 37e8f455d8116d675fe1f514d9ee95eeb26373ab Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 27 Apr 2016 10:47:06 -0400 Subject: [PATCH 113/259] Allow plotting with or without settings.xml --- src/input_xml.F90 | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 474c59d18..90c703d27 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -38,8 +38,8 @@ contains subroutine read_input_xml() + call read_settings_xml() if (run_mode /= MODE_PLOTTING) then - call read_settings_xml() if (run_CE) then call read_ce_cross_sections_xml() else @@ -92,18 +92,22 @@ contains type(NodeList), pointer :: node_scat_list => null() type(NodeList), pointer :: node_source_list => null() - ! Display output message - call write_message("Reading settings XML file...", 5) - ! Check if settings.xml exists filename = trim(path_input) // "settings.xml" inquire(FILE=filename, EXIST=file_exists) if (.not. file_exists) then - call fatal_error("Settings XML file '" // trim(filename) // "' does not & - &exist! In order to run OpenMC, you first need a set of input files;& - & at a minimum, this includes settings.xml, geometry.xml, and & - &materials.xml. Please consult the user's guide at & - &http://mit-crpg.github.io/openmc for further information.") + if (run_mode /= MODE_PLOTTING) then + call fatal_error("Settings XML file '" // trim(filename) // "' does & + ¬ exist! In order to run OpenMC, you first need a set of input & + &files; at a minimum, this includes settings.xml, geometry.xml, & + &and materials.xml. Please consult the user's guide at & + &http://mit-crpg.github.io/openmc for further information.") + else + ! The settings.xml file is optional if we just want to make a plot. + return + end if + else + call write_message("Reading settings XML file...", 5) end if ! Parse settings.xml file From ad7bff393d38aaa15c84e51bd3c0222974efed38 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 27 Apr 2016 15:36:36 -0500 Subject: [PATCH 114/259] Make sure to capture stderr when using openmc.run() --- openmc/executor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/executor.py b/openmc/executor.py index edbbaddc4..fbd9e5d82 100644 --- a/openmc/executor.py +++ b/openmc/executor.py @@ -10,7 +10,7 @@ if sys.version_info[0] >= 3: def _run(command, output, cwd): # Launch a subprocess p = subprocess.Popen(command, shell=True, cwd=cwd, stdout=subprocess.PIPE, - universal_newlines=True) + stderr=subprocess.STDOUT, universal_newlines=True) # Capture and re-print OpenMC output in real-time while True: From 76b2b65ab8e7233bfbc49663b9792c41edfc69bc Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 27 Apr 2016 18:13:32 -0400 Subject: [PATCH 115/259] Use basestring instead of str --- openmc/material.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index 17283d4dd..97c7cedca 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -281,7 +281,7 @@ class Material(object): 'macroscopic data-set has already been added'.format(self._id) raise ValueError(msg) - if not isinstance(nuclide, (openmc.Nuclide, str)): + if not isinstance(nuclide, (openmc.Nuclide, basestring)): msg = 'Unable to add a Nuclide to Material ID="{0}" with a ' \ 'non-Nuclide value "{1}"'.format(self._id, nuclide) raise ValueError(msg) @@ -401,7 +401,7 @@ class Material(object): 'macroscopic data-set has already been added'.format(self._id) raise ValueError(msg) - if not isinstance(element, (openmc.Element, str)): + if not isinstance(element, (openmc.Element, basestring)): msg = 'Unable to add an Element to Material ID="{0}" with a ' \ 'non-Element value "{1}"'.format(self._id, element) raise ValueError(msg) From d9b097dbaf967405005e6a5706492ff0d4d227e8 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 29 Apr 2016 16:14:02 -0500 Subject: [PATCH 116/259] Make Materials, Plots, and Tallies list-like --- .../pythonapi/examples/mgxs-part-i.ipynb | 16 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 9 +- .../pythonapi/examples/mgxs-part-iii.ipynb | 15 +- .../examples/pandas-dataframes.ipynb | 19 +-- .../pythonapi/examples/post-processing.ipynb | 17 +-- .../pythonapi/examples/tally-arithmetic.ipynb | 29 ++-- examples/python/basic/build-xml.py | 12 +- examples/python/boxes/build-xml.py | 10 +- .../python/lattice/hexagonal/build-xml.py | 14 +- examples/python/lattice/nested/build-xml.py | 14 +- examples/python/lattice/simple/build-xml.py | 16 +- examples/python/pincell/build-xml.py | 11 +- .../python/pincell_multigroup/build-xml.py | 16 +- examples/python/reflective/build-xml.py | 5 +- openmc/checkvalue.py | 26 +++- openmc/material.py | 122 +++++++++++----- openmc/mgxs/library.py | 2 +- openmc/plots.py | 76 ++++++++-- openmc/tallies.py | 137 +++++++++++++----- tests/input_set.py | 8 +- .../test_asymmetric_lattice.py | 7 +- tests/test_distribmat/test_distribmat.py | 3 +- tests/test_mg_max_order/test_mg_max_order.py | 2 +- tests/test_mg_nuclide/test_mg_nuclide.py | 2 +- tests/test_mg_tallies/test_mg_tallies.py | 21 +-- .../test_resonance_scattering.py | 3 +- tests/test_source/test_source.py | 3 +- tests/test_tallies/test_tallies.py | 41 ++---- .../test_tally_aggregation.py | 5 +- .../test_tally_arithmetic.py | 5 +- .../test_tally_slice_merge.py | 4 +- 31 files changed, 373 insertions(+), 297 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index c7a5b2ffa..a450af97e 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -212,10 +212,9 @@ }, "outputs": [], "source": [ - "# Instantiate a Materials object, register all Materials, and export to XML\n", - "materials_file = openmc.Materials()\n", + "# Instantiate a Materials collection and export to XML\n", + "materials_file = openmc.Materials([inf_medium])\n", "materials_file.default_xs = '71c'\n", - "materials_file.add_material(inf_medium)\n", "materials_file.export_to_xml()" ] }, @@ -466,17 +465,14 @@ "tallies_file = openmc.Tallies()\n", "\n", "# Add total tallies to the tallies file\n", - "for tally in total.tallies.values():\n", - " tallies_file.add_tally(tally)\n", + "tallies_file += total.tallies.values()\n", "\n", "# Add absorption tallies to the tallies file\n", - "for tally in absorption.tallies.values():\n", - " tallies_file.add_tally(tally)\n", + "tallies_file += absorption.tallies.values()\n", "\n", "# Add scattering tallies to the tallies file\n", - "for tally in scattering.tallies.values():\n", - " tallies_file.add_tally(tally)\n", - " \n", + "tallies_file += scattering.tallies.values()\n", + "\n", "# Export to \"tallies.xml\"\n", "tallies_file.export_to_xml()" ] diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 49e301f5b..793d88436 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -133,11 +133,8 @@ }, "outputs": [], "source": [ - "# Instantiate a Materials object, add Materials\n", - "materials_file = openmc.Materials()\n", - "materials_file.add_material(fuel)\n", - "materials_file.add_material(water)\n", - "materials_file.add_material(zircaloy)\n", + "# Instantiate a Materials collection\n", + "materials_file = openmc.Materials((fuel, water, zircaloy))\n", "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", @@ -408,7 +405,7 @@ " \n", " # Add OpenMC tallies to the tallies file for XML generation\n", " for tally in xs_library[cell.id][rxn_type].tallies.values():\n", - " tallies_file.add_tally(tally, merge=True)\n", + " tallies_file.append(tally, merge=True)\n", "\n", "# Export to \"tallies.xml\"\n", "tallies_file.export_to_xml()" diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 3a3533ffe..34190371b 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -133,11 +133,8 @@ }, "outputs": [], "source": [ - "# Instantiate a Materials object, add Materials\n", - "materials_file = openmc.Materials()\n", - "materials_file.add_material(fuel)\n", - "materials_file.add_material(water)\n", - "materials_file.add_material(zircaloy)\n", + "# Instantiate a Materials object\n", + "materials_file = openmc.Materials((fuel, water, zircaloy))\n", "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", @@ -419,8 +416,7 @@ "plot.color = 'mat'\n", "\n", "# Instantiate a Plots object, add Plot, and export to \"plots.xml\"\n", - "plot_file = openmc.Plots()\n", - "plot_file.add_plot(plot)\n", + "plot_file = openmc.Plots([plot])\n", "plot_file.export_to_xml()" ] }, @@ -685,9 +681,8 @@ "tally.filters = [mesh_filter]\n", "tally.scores = ['fission', 'nu-fission']\n", "\n", - "# Add mesh and tally to Tallies\n", - "tallies_file.add_mesh(mesh)\n", - "tallies_file.add_tally(tally)" + "# Add tally to collection\n", + "tallies_file.append(tally)" ] }, { diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index b0f2f6b13..d5e8b9861 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -108,11 +108,8 @@ }, "outputs": [], "source": [ - "# Instantiate a Materials object, add Materials\n", - "materials_file = openmc.Materials()\n", - "materials_file.add_material(fuel)\n", - "materials_file.add_material(water)\n", - "materials_file.add_material(zircaloy)\n", + "# Instantiate a Materials collection\n", + "materials_file = openmc.Materials((fuel, water, zircaloy))\n", "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", @@ -329,9 +326,8 @@ "plot.pixels = [250, 250]\n", "plot.color = 'mat'\n", "\n", - "# Instantiate a Plots object, add Plot, and export to \"plots.xml\"\n", - "plot_file = openmc.Plots()\n", - "plot_file.add_plot(plot)\n", + "# Instantiate a Plots collection and export to \"plots.xml\"\n", + "plot_file = openmc.Plots([plot])\n", "plot_file.export_to_xml()" ] }, @@ -449,8 +445,7 @@ "tally.scores = ['fission', 'nu-fission']\n", "\n", "# Add mesh and Tally to Tallies\n", - "tallies_file.add_mesh(mesh)\n", - "tallies_file.add_tally(tally)" + "tallies_file.append(tally)" ] }, { @@ -478,7 +473,7 @@ "tally.nuclides = [u235, u238]\n", "\n", "# Add mesh and tally to Tallies\n", - "tallies_file.add_tally(tally)" + "tallies_file.append(tally)" ] }, { @@ -510,7 +505,7 @@ "tally.triggers = [trigger]\n", "\n", "# Add mesh and tally to Tallies\n", - "tallies_file.add_tally(tally)" + "tallies_file.append(tally)" ] }, { diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index ce9209b03..36cf63c6a 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -104,11 +104,8 @@ }, "outputs": [], "source": [ - "# Instantiate a Materials object, add Materials\n", - "materials_file = openmc.Materials()\n", - "materials_file.add_material(fuel)\n", - "materials_file.add_material(water)\n", - "materials_file.add_material(zircaloy)\n", + "# Instantiate a Materials collection\n", + "materials_file = openmc.Materials((fuel, water, zircaloy))\n", "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", @@ -298,9 +295,8 @@ "plot.pixels = [250, 250]\n", "plot.color = 'mat'\n", "\n", - "# Instantiate a Plots object, add Plot, and export to \"plots.xml\"\n", - "plot_file = openmc.Plots()\n", - "plot_file.add_plot(plot)\n", + "# Instantiate a Plots collection and export to \"plots.xml\"\n", + "plot_file = openmc.Plots([plot])\n", "plot_file.export_to_xml()" ] }, @@ -393,17 +389,16 @@ "mesh.dimension = [100, 100]\n", "mesh.lower_left = [-0.63, -0.63]\n", "mesh.upper_right = [0.63, 0.63]\n", - "tallies_file.add_mesh(mesh)\n", "\n", "# Create mesh filter for tally\n", - "mesh_filter = openmc.Filter(type='mesh', bins=[1])\n", + "mesh_filter = openmc.Filter(type='mesh')\n", "mesh_filter.mesh = mesh\n", "\n", "# Create mesh tally to score flux and fission rate\n", "tally = openmc.Tally(name='flux')\n", "tally.filters = [mesh_filter]\n", "tally.scores = ['flux', 'fission']\n", - "tallies_file.add_tally(tally)" + "tallies_file.append(tally)" ] }, { diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 81334efc2..14ca97d3f 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -126,11 +126,8 @@ }, "outputs": [], "source": [ - "# Instantiate a Materials object, add Materials\n", - "materials_file = openmc.Materials()\n", - "materials_file.add_material(fuel)\n", - "materials_file.add_material(water)\n", - "materials_file.add_material(zircaloy)\n", + "# Instantiate a Materials collection\n", + "materials_file = openmc.Materials((fuel, water, zircaloy))\n", "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", @@ -321,9 +318,8 @@ "plot.pixels = [250, 250]\n", "plot.color = 'mat'\n", "\n", - "# Instantiate a Plots object, add Plot, and export to \"plots.xml\"\n", - "plot_file = openmc.Plots()\n", - "plot_file.add_plot(plot)\n", + "# Instantiate a Plots collection and export to \"plots.xml\"\n", + "plot_file = openmc.Plots([plot])\n", "plot_file.export_to_xml()" ] }, @@ -421,7 +417,7 @@ "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id])]\n", "tally.filters.append(energy_filter)\n", "tally.scores = ['flux']\n", - "tallies_file.add_tally(tally)\n", + "tallies_file.append(tally)\n", "\n", "# Instantiate reaction rate Tally in fuel\n", "tally = openmc.Tally(name='fuel rxn rates')\n", @@ -429,7 +425,7 @@ "tally.filters.append(energy_filter)\n", "tally.scores = ['nu-fission', 'scatter']\n", "tally.nuclides = [u238, u235]\n", - "tallies_file.add_tally(tally)\n", + "tallies_file.append(tally)\n", "\n", "# Instantiate reaction rate Tally in moderator\n", "tally = openmc.Tally(name='moderator rxn rates')\n", @@ -437,7 +433,7 @@ "tally.filters.append(energy_filter)\n", "tally.scores = ['absorption', 'total']\n", "tally.nuclides = [o16, h1]\n", - "tallies_file.add_tally(tally)" + "tallies_file.append(tally)" ] }, { @@ -453,8 +449,7 @@ "abs_rate = openmc.Tally(name='abs. rate')\n", "fiss_rate.scores = ['nu-fission']\n", "abs_rate.scores = ['absorption']\n", - "tallies_file.add_tally(fiss_rate)\n", - "tallies_file.add_tally(abs_rate)" + "tallies_file += (fiss_rate, abs_rate)", ] }, { @@ -469,7 +464,7 @@ "therm_abs_rate = openmc.Tally(name='therm. abs. rate')\n", "therm_abs_rate.scores = ['absorption']\n", "therm_abs_rate.filters = [openmc.Filter(type='energy', bins=[0., 0.625e-6])]\n", - "tallies_file.add_tally(therm_abs_rate)" + "tallies_file.append(therm_abs_rate)" ] }, { @@ -485,7 +480,7 @@ "fuel_therm_abs_rate.scores = ['absorption']\n", "fuel_therm_abs_rate.filters = [openmc.Filter(type='energy', bins=[0., 0.625e-6]),\n", " openmc.Filter(type='cell', bins=[fuel_cell.id])]\n", - "tallies_file.add_tally(fuel_therm_abs_rate)" + "tallies_file.append(fuel_therm_abs_rate)" ] }, { @@ -500,7 +495,7 @@ "therm_fiss_rate = openmc.Tally(name='therm. fiss. rate')\n", "therm_fiss_rate.scores = ['nu-fission']\n", "therm_fiss_rate.filters = [openmc.Filter(type='energy', bins=[0., 0.625e-6])]\n", - "tallies_file.add_tally(therm_fiss_rate)" + "tallies_file.append(therm_fiss_rate)" ] }, { @@ -520,7 +515,7 @@ "tally.filters.append(energy_filter)\n", "tally.scores = ['nu-fission', 'scatter']\n", "tally.nuclides = [h1, u238]\n", - "tallies_file.add_tally(tally)" + "tallies_file.append(tally)" ] }, { diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index 05accbc5e..ffff03720 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -31,10 +31,9 @@ fuel = openmc.Material(material_id=40, name='fuel') fuel.set_density('g/cc', 4.5) fuel.add_nuclide(u235, 1.) -# Instantiate a Materials collection, register all Materials, and export to XML -materials_file = openmc.Materials() +# Instantiate a Materials collection and export to XML +materials_file = openmc.Materials([moderator, fuel]) materials_file.default_xs = '71c' -materials_file.add_materials([moderator, fuel]) materials_file.export_to_xml() @@ -124,9 +123,6 @@ third_tally = openmc.Tally(tally_id=3, name='third tally') third_tally.filters = [cell_filter, energy_filter, energyout_filter] third_tally.scores = ['scatter', 'nu-scatter', 'nu-fission'] -# Instantiate a Tallies collection, register all Tallies, and export to XML -tallies_file = openmc.Tallies() -tallies_file.add_tally(first_tally) -tallies_file.add_tally(second_tally) -tallies_file.add_tally(third_tally) +# Instantiate a Tallies collection and export to XML +tallies_file = openmc.Tallies((first_tally, second_tally, third_tally)) tallies_file.export_to_xml() diff --git a/examples/python/boxes/build-xml.py b/examples/python/boxes/build-xml.py index 318af2265..814f60beb 100644 --- a/examples/python/boxes/build-xml.py +++ b/examples/python/boxes/build-xml.py @@ -36,10 +36,9 @@ moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) moderator.add_s_alpha_beta('HH2O', '71t') -# Instantiate a Materials collection, register all Materials, and export to XML -materials_file = openmc.Materials() +# Instantiate a Materials collection and export to XML +materials_file = openmc.Materials([fuel1, fuel2, moderator]) materials_file.default_xs = '71c' -materials_file.add_materials([fuel1, fuel2, moderator]) materials_file.export_to_xml() @@ -129,7 +128,6 @@ plot.width = [20, 20] plot.pixels = [200, 200] plot.color = 'cell' -# Instantiate a Plots collection, add Plot, and export to XML -plot_file = openmc.Plots() -plot_file.add_plot(plot) +# Instantiate a Plots collection and export to XML +plot_file = openmc.Plots([plot]) plot_file.export_to_xml() diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index 04002faf2..ef3a12847 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -35,10 +35,9 @@ iron = openmc.Material(material_id=3, name='iron') iron.set_density('g/cc', 7.9) iron.add_nuclide(fe56, 1.) -# Instantiate a Materials collection, register all Materials, and export to XML -materials_file = openmc.Materials() +# Instantiate a Materials collection and export to XML +materials_file = openmc.Materials([moderator, fuel, iron]) materials_file.default_xs = '71c' -materials_file.add_materials([moderator, fuel, iron]) materials_file.export_to_xml() @@ -152,9 +151,7 @@ plot_yz.pixels = [400, 400] plot_yz.color = 'mat' # Instantiate a Plots collection, add plots, and export to XML -plot_file = openmc.Plots() -plot_file.add_plot(plot_xy) -plot_file.add_plot(plot_yz) +plot_file = openmc.Plots((plot_xy, plot_yz)) plot_file.export_to_xml() @@ -167,7 +164,6 @@ tally = openmc.Tally(tally_id=1) tally.filters = [openmc.Filter(type='distribcell', bins=[cell2.id])] tally.scores = ['total'] -# Instantiate a Tallies collection, register Tally/Mesh, and export to XML -tallies_file = openmc.Tallies() -tallies_file.add_tally(tally) +# Instantiate a Tallies collection and export to XML +tallies_file = openmc.Tallies([tally]) tallies_file.export_to_xml() diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index 0e4e459e2..b2d611d34 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -30,10 +30,9 @@ moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) moderator.add_s_alpha_beta('HH2O', '71t') -# Instantiate a Materials collection, register all Materials, and export to XML -materials_file = openmc.Materials() +# Instantiate a Materials collection and export to XML +materials_file = openmc.Materials((moderator, fuel)) materials_file.default_xs = '71c' -materials_file.add_materials([moderator, fuel]) materials_file.export_to_xml() @@ -150,9 +149,8 @@ plot.width = [4, 4] plot.pixels = [400, 400] plot.color = 'mat' -# Instantiate a Plots object, add Plot, and export to XML -plot_file = openmc.Plots() -plot_file.add_plot(plot) +# Instantiate a Plots object and export to XML +plot_file = openmc.Plots([plot]) plot_file.export_to_xml() @@ -177,7 +175,5 @@ tally.filters = [mesh_filter] tally.scores = ['total'] # Instantiate a Tallies collection, register Tally/Mesh, and export to XML -tallies_file = openmc.Tallies() -tallies_file.add_mesh(mesh) -tallies_file.add_tally(tally) +tallies_file = openmc.Tallies([tally]) tallies_file.export_to_xml() diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index 8d9481aaa..65c355479 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -30,10 +30,9 @@ moderator.add_nuclide(h1, 2.) moderator.add_nuclide(o16, 1.) moderator.add_s_alpha_beta('HH2O', '71t') -# Instantiate a Materials collection, register all Materials, and export to XML -materials_file = openmc.Materials() +# Instantiate a Materials collection and export to XML +materials_file = openmc.Materials([moderator, fuel]) materials_file.default_xs = '71c' -materials_file.add_materials([moderator, fuel]) materials_file.export_to_xml() @@ -142,9 +141,8 @@ plot.width = [4, 4] plot.pixels = [400, 400] plot.color = 'mat' -# Instantiate a Plots collection, add Plot, and export to XML -plot_file = openmc.Plots() -plot_file.add_plot(plot) +# Instantiate a Plots collection and export to XML +plot_file = openmc.Plots([plot]) plot_file.export_to_xml() @@ -173,8 +171,6 @@ tally.filters = [mesh_filter] tally.scores = ['total'] tally.triggers = [trigger] -# Instantiate a Tallies collection, register Tally/Mesh, and export to XML -tallies_file = openmc.Tallies() -tallies_file.add_mesh(mesh) -tallies_file.add_tally(tally) +# Instantiate a Tallies collection and export to XML +tallies_file = openmc.Tallies([tally]) tallies_file.export_to_xml() diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index 561df2b5a..a3be3e97e 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -100,10 +100,9 @@ borated_water.add_nuclide(o16, 2.4672e-2) borated_water.add_nuclide(o17, 6.0099e-5) borated_water.add_s_alpha_beta('HH2O', '71t') -# Instantiate a Materials collection, register all Materials, and export to XML -materials_file = openmc.Materials() +# Instantiate a Materials collection and export to XML +materials_file = openmc.Materials([uo2, helium, zircaloy, borated_water]) materials_file.default_xs = '71c' -materials_file.add_materials([uo2, helium, zircaloy, borated_water]) materials_file.export_to_xml() @@ -197,8 +196,6 @@ tally = openmc.Tally(tally_id=1, name='tally 1') tally.filters = [energy_filter, mesh_filter] tally.scores = ['flux', 'fission', 'nu-fission'] -# Instantiate a Tallies collection, register all Tallies, and export to XML -tallies_file = openmc.Tallies() -tallies_file.add_mesh(mesh) -tallies_file.add_tally(tally) +# Instantiate a Tallies collection and export to XML +tallies_file = openmc.Tallies([tally]) tallies_file.export_to_xml() diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index 697a596d9..c7d6dfc8b 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -81,10 +81,9 @@ water = openmc.Material(material_id=2, name='Water') water.set_density('macro', 1.0) water.add_macroscopic(h2o_data) -# Instantiate a Materials collection, register all Materials, and export to XML -materials_file = openmc.Materials() +# Instantiate a Materials collection and export to XML +materials_file = openmc.Materials([uo2, water]) materials_file.default_xs = '300K' -materials_file.add_materials([uo2, water]) materials_file.export_to_xml() @@ -167,14 +166,9 @@ mesh_filter.mesh = mesh # Instantiate the Tally tally = openmc.Tally(tally_id=1, name='tally 1') -tally.add_filter(energy_filter) -tally.add_filter(mesh_filter) -tally.add_score('flux') -tally.add_score('fission') -tally.add_score('nu-fission') +tally.filters = [energy_filter, mesh_filter] +tally.scores = ['flux', 'fission', 'nu-fission'] # Instantiate a Tallies collection, register all Tallies, and export to XML -tallies_file = openmc.Tallies() -tallies_file.add_mesh(mesh) -tallies_file.add_tally(tally) +tallies_file = openmc.Tallies([tally]) tallies_file.export_to_xml() diff --git a/examples/python/reflective/build-xml.py b/examples/python/reflective/build-xml.py index e4776e744..4ecd0351f 100644 --- a/examples/python/reflective/build-xml.py +++ b/examples/python/reflective/build-xml.py @@ -23,10 +23,9 @@ fuel = openmc.Material(material_id=1, name='fuel') fuel.set_density('g/cc', 4.5) fuel.add_nuclide(u235, 1.) -# Instantiate a Materials collection, register Material, and export to XML -materials_file = openmc.Materials() +# Instantiate a Materials collection and export to XML +materials_file = openmc.Materials([fuel]) materials_file.default_xs = '71c' -materials_file.add_material(fuel) materials_file.export_to_xml() diff --git a/openmc/checkvalue.py b/openmc/checkvalue.py index 53f4b8368..62b843a3a 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -1,3 +1,4 @@ +import copy from collections import Iterable from numbers import Integral, Real @@ -57,7 +58,7 @@ def check_type(name, value, expected_type, expected_iter_type=None): else: msg = 'Unable to set "{0}" to "{1}" which is not of type "{2}"'.format( name, value, expected_type.__name__) - raise ValueError(msg) + raise TypeError(msg) if expected_iter_type: for item in value: @@ -71,7 +72,7 @@ def check_type(name, value, expected_type, expected_iter_type=None): msg = 'Unable to set "{0}" to "{1}" since each item must be ' \ 'of type "{2}"'.format(name, value, expected_iter_type.__name__) - raise ValueError(msg) + raise TypeError(msg) def check_iterable_type(name, value, expected_type, min_depth=1, max_depth=1): @@ -122,7 +123,7 @@ def check_iterable_type(name, value, expected_type, min_depth=1, max_depth=1): if len(tree) < min_depth: msg = 'Error setting "{0}": The item at {1} does not meet the '\ 'minimum depth of {2}'.format(name, ind_str, min_depth) - raise ValueError(msg) + raise TypeError(msg) # This item is okay. Move on to the next item. index[-1] += 1 @@ -140,7 +141,7 @@ def check_iterable_type(name, value, expected_type, min_depth=1, max_depth=1): msg = 'Error setting {0}: Found an iterable at {1}, items '\ 'in that iterable exceed the maximum depth of {2}' \ .format(name, ind_str, max_depth) - raise ValueError(msg) + raise TypeError(msg) else: # This item is completely unexpected. @@ -148,7 +149,7 @@ def check_iterable_type(name, value, expected_type, min_depth=1, max_depth=1): "item at {2} is of type '{3}'"\ .format(name, expected_type.__name__, ind_str, type(current_item).__name__) - raise ValueError(msg) + raise TypeError(msg) def check_length(name, value, length_min, length_max=None): @@ -278,6 +279,21 @@ class CheckedList(list): for item in items: self.append(item) + def __add__(self, other): + new_instance = copy.copy(self) + new_instance += other + return new_instance + + def __radd__(self, other): + return self + other + + def __iadd__(self, other): + check_type('CheckedList add operand', other, Iterable, + self.expected_type) + for item in other: + self.append(item) + return self + def append(self, item): """Append item to list diff --git a/openmc/material.py b/openmc/material.py index 97c7cedca..b3c281341 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -8,7 +8,7 @@ if sys.version_info[0] >= 3: basestring = str import openmc -from openmc.checkvalue import check_type, check_value, check_greater_than +import openmc.checkvalue as cv from openmc.clean_xml import * @@ -202,15 +202,15 @@ class Material(object): self._id = AUTO_MATERIAL_ID AUTO_MATERIAL_ID += 1 else: - check_type('material ID', material_id, Integral) - check_greater_than('material ID', material_id, 0, equality=True) + cv.check_type('material ID', material_id, Integral) + cv.check_greater_than('material ID', material_id, 0, equality=True) self._id = material_id @name.setter def name(self, name): if name is not None: - check_type('name for Material ID="{0}"'.format(self._id), - name, basestring) + cv.check_type('name for Material ID="{0}"'.format(self._id), + name, basestring) self._name = name else: self._name = '' @@ -228,9 +228,9 @@ class Material(object): """ - check_type('the density for Material ID="{0}"'.format(self._id), - density, Real) - check_value('density units', units, DENSITY_UNITS) + cv.check_type('the density for Material ID="{0}"'.format(self._id), + density, Real) + cv.check_value('density units', units, DENSITY_UNITS) if density is None and units is not 'sum': msg = 'Unable to set the density for Material ID="{0}" ' \ @@ -642,9 +642,25 @@ class Material(object): return element -class Materials(object): - """Collection of Materials used for an OpenMC simulation. Corresponds directly - to the materials.xml input file. +class Materials(cv.CheckedList): + """Collection of Materials used for an OpenMC simulation. + + This class corresponds directly to the materials.xml input file. It can be + thought of as a normal Python list where each member is a + :class:`Material`. It behaves like a list as the following example + demonstrates: + + >>> fuel = openmc.Material() + >>> clad = openmc.Material() + >>> water = openmc.Material() + >>> m = openmc.Materials([fuel]) + >>> m.append(water) + >>> m += [clad] + + Parameters + ---------- + materials : Iterable of openmc.Material + Materials to add to the collection Attributes ---------- @@ -654,10 +670,12 @@ class Materials(object): """ - def __init__(self): - self._materials = [] + def __init__(self, materials=None): + super(Materials, self).__init__(Material, 'materials collection') self._default_xs = None self._materials_file = ET.Element("materials") + if materials is not None: + self += materials @property def default_xs(self): @@ -665,11 +683,14 @@ class Materials(object): @default_xs.setter def default_xs(self, xs): - check_type('default xs', xs, basestring) + cv.check_type('default xs', xs, basestring) self._default_xs = xs def add_material(self, material): - """Add a material to the file. + """Append material to collection + + .. deprecated:: 0.8 + Use :meth:`Materials.append` instead. Parameters ---------- @@ -677,51 +698,72 @@ class Materials(object): Material to add """ - - if not isinstance(material, Material): - msg = 'Unable to add a non-Material "{0}" to the ' \ - 'Materials instance'.format(material) - raise ValueError(msg) - - self._materials.append(material) + warnings.warn("Materials.add_material(...) has been deprecated and may be " + "removed in a future version. Use Material.append(...) " + "instead.", DeprecationWarning) + self.append(material) def add_materials(self, materials): - """Add multiple materials to the file. + """Add multiple materials to the collection + + .. deprecated:: 0.8 + Use compound assignment instead. Parameters ---------- - materials : tuple or list of openmc.Material + materials : Iterable of openmc.Material Materials to add """ - - if not isinstance(materials, Iterable): - msg = 'Unable to create OpenMC materials.xml file from "{0}" which ' \ - 'is not iterable'.format(materials) - raise ValueError(msg) - + warnings.warn("Materials.add_materials(...) has been deprecated and may be " + "removed in a future version. Use compound assignment " + "instead.", DeprecationWarning) for material in materials: - self.add_material(material) + self.append(material) + + def append(self, material): + """Append material to collection + + Parameters + ---------- + material : openmc.Material + Material to append + + """ + super(Materials, self).append(material) + + def insert(self, index, material): + """Insert material before index + + Parameters + ---------- + index : int + Index in list + material : openmc.Material + Material to insert + + """ + super(Materials, self).insert(index, material) def remove_material(self, material): """Remove a material from the file + .. deprecated:: 0.8 + Use :meth:`Materials.remove` instead. + Parameters ---------- material : openmc.Material Material to remove """ - - if not isinstance(material, Material): - msg = 'Unable to remove a non-Material "{0}" from the ' \ - 'Materials instance'.format(material) - raise ValueError(msg) - - self._materials.remove(material) + warnings.warn("Materials.remove_material(...) has been deprecated and " + "may be removed in a future version. Use " + "Materials.remove(...) instead.", DeprecationWarning) + self.remove(material) def make_isotropic_in_lab(self): - for material in self._materials: + for material in self: material.make_isotropic_in_lab() def _create_material_subelements(self): @@ -729,7 +771,7 @@ class Materials(object): subelement = ET.SubElement(self._materials_file, "default_xs") subelement.text = self._default_xs - for material in self._materials: + for material in self: xml_element = material.get_material_xml() self._materials_file.append(xml_element) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 8d5e9854e..f3bf2018d 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -370,7 +370,7 @@ class Library(object): for mgxs_type in self.mgxs_types: mgxs = self.get_mgxs(domain, mgxs_type) for tally_id, tally in mgxs.tallies.items(): - tallies_file.add_tally(tally, merge=merge) + tallies_file.append(tally, merge=merge) def load_from_statepoint(self, statepoint): """Extracts tallies in an OpenMC StatePoint with the data needed to diff --git a/openmc/plots.py b/openmc/plots.py index a967cb060..9167e55d5 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -2,6 +2,7 @@ from collections import Iterable from numbers import Real, Integral from xml.etree import ElementTree as ET import sys +import warnings import numpy as np @@ -401,43 +402,90 @@ class Plot(object): return element -class Plots(object): - """Collection of Plots used for an OpenMC simulation. Corresponds directly to - the plots.xml input file. +class Plots(cv.CheckedList): + """Collection of Plots used for an OpenMC simulation. + + This class corresponds directly to the plots.xml input file. It can be + thought of as a normal Python list where each member is a :class:`Plot`. It + behaves like a list as the following example demonstrates: + + >>> xz_plot = openmc.Plot() + >>> big_plot = openmc.Plot() + >>> small_plot = openmc.Plot() + >>> p = openmc.Plots((xz_plot, big_plot)) + >>> p.append(small_plot) + >>> small_plot = p.pop() + + Parameters + ---------- + plots : Iterable of openmc.Plot + Plots to add to the collection """ - def __init__(self): - self._plots = [] + def __init__(self, plots=None): + super(Plots, self).__init__(Plot, 'plots collection') self._plots_file = ET.Element("plots") + if plots is not None: + self += plots def add_plot(self, plot): """Add a plot to the file. + .. deprecated:: 0.8 + Use :meth:`Plots.append` instead. + Parameters ---------- plot : openmc.Plot Plot to add """ + warnings.warn("Plots.add_plot(...) has been deprecated and may be " + "removed in a future version. Use Plots.append(...) " + "instead.", DeprecationWarning) + self.append(plot) - if not isinstance(plot, Plot): - msg = 'Unable to add a non-Plot "{0}" to the Plots instance'.format(plot) - raise ValueError(msg) + def append(self, plot): + """Append plot to collection - self._plots.append(plot) + Parameters + ---------- + plot : openmc.Plot + Plot to append + + """ + super(Plots, self).append(plot) + + def insert(self, index, plot): + """Insert plot before index + + Parameters + ---------- + index : int + Index in list + plot : openmc.Plot + Plot to insert + + """ + super(Plots, self).insert(index, plot) def remove_plot(self, plot): """Remove a plot from the file. + .. deprecated:: 0.8 + Use :meth:`Plots.remove` instead. + Parameters ---------- plot : openmc.Plot Plot to remove """ - - self._plots.remove(plot) + warnings.warn("Plots.remove_plot(...) has been deprecated and may be " + "removed in a future version. Use Plots.remove(...) " + "instead.", DeprecationWarning) + self.remove(plot) def colorize(self, geometry, seed=1): """Generate a consistent color scheme for each domain in each plot. @@ -455,7 +503,7 @@ class Plots(object): """ - for plot in self._plots: + for plot in self: plot.colorize(geometry, seed) @@ -481,11 +529,11 @@ class Plots(object): """ - for plot in self._plots: + for plot in self: plot.highlight_domains(geometry, domains, seed, alpha, background) def _create_plot_subelements(self): - for plot in self._plots: + for plot in self: xml_element = plot.get_plot_xml() if len(plot._name) > 0: diff --git a/openmc/tallies.py b/openmc/tallies.py index 90b09f582..3a5a1f1e8 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3419,65 +3419,108 @@ class Tally(object): return new_tally -class Tallies(object): - """Collection of Tallies used for an OpenMC simulation. Corresponds directly to - the tallies.xml input file. +class Tallies(cv.CheckedList): + """Collection of Tallies used for an OpenMC simulation. + + This class corresponds directly to the tallies.xml input file. It can be + thought of as a normal Python list where each member is a :class:`Tally`. It + behaves like a list as the following example demonstrates: + + >>> t1 = openmc.Tally() + >>> t2 = openmc.Tally() + >>> t3 = openmc.Tally() + >>> tallies = openmc.Tallies([t1]) + >>> tallies.append(t2) + >>> tallies += [t3] + + Parameters + ---------- + tallies : Iterable of openmc.Tally + Tallies to add to the collection """ - def __init__(self): - self._tallies = [] - self._meshes = [] + def __init__(self, tallies=None): + super(Tallies, self).__init__(Tally, 'tallies collection') self._tallies_file = ET.Element("tallies") - - @property - def tallies(self): - return self._tallies - - @property - def meshes(self): - return self._meshes + if tallies is not None: + self += tallies def add_tally(self, tally, merge=False): - """Add a tally to the file + """Append tally to collection + + .. deprecated:: 0.8 + Use :meth:`Tallies.append` instead. Parameters ---------- tally : openmc.Tally - Tally to add to file + Tally to add merge : bool Indicate whether the tally should be merged with an existing tally, if possible. Defaults to False. """ + warnings.warn("Tallies.add_tally(...) has been deprecated and may be " + "removed in a future version. Use Tallies.append(...) " + "instead.", DeprecationWarning) + self.append(tally, merge) + def append(self, tally, merge=False): + """Append tally to collection + + Parameters + ---------- + tally : openmc.Tally + Tally to append + merge : bool + Indicate whether the tally should be merged with an existing tally, + if possible. Defaults to False. + + """ if not isinstance(tally, Tally): msg = 'Unable to add a non-Tally "{0}" to the Tallies instance'.format(tally) - raise ValueError(msg) + raise TypeError(msg) if merge: merged = False # Look for a tally to merge with this one - for i, tally2 in enumerate(self._tallies): + for i, tally2 in enumerate(self): # If a mergeable tally is found if tally2.can_merge(tally): # Replace tally 2 with the merged tally merged_tally = tally2.merge(tally) - self._tallies[i] = merged_tally + self[i] = merged_tally merged = True break # If not mergeable tally was found, simply add this tally if not merged: - self._tallies.append(tally) + super(Tallies, self).append(tally) else: - self._tallies.append(tally) + super(Tallies, self).append(tally) + + def insert(self, index, item): + """Insert tally before index + + Parameters + ---------- + index : int + Index in list + item : openmc.Tally + Tally to insert + + """ + super(Tallies, self).insert(index, item) def remove_tally(self, tally): - """Remove a tally from the file + """Remove a tally from the collection + + .. deprecated:: 0.8 + Use :meth:`Tallies.remove` instead. Parameters ---------- @@ -3485,8 +3528,11 @@ class Tallies(object): Tally to remove """ + warnings.warn("Tallies.remove_tally(...) has been deprecated and may " + "be removed in a future version. Use Tallies.remove(...) " + "instead.", DeprecationWarning) - self._tallies.remove(tally) + self.remove(tally) def merge_tallies(self): """Merge any mergeable tallies together. Note that n-way merges are @@ -3494,8 +3540,8 @@ class Tallies(object): """ - for i, tally1 in enumerate(self._tallies): - for j, tally2 in enumerate(self._tallies): + for i, tally1 in enumerate(self): + for j, tally2 in enumerate(self): # Do not merge the same tally with itself if i == j: continue @@ -3504,10 +3550,10 @@ class Tallies(object): if tally1.can_merge(tally2): # Replace tally 1 with the merged tally merged_tally = tally1.merge(tally2) - self._tallies[i] = merged_tally + self[i] = merged_tally # Remove tally 2 since it is no longer needed - self._tallies.pop(j) + self.pop(j) # Continue iterating from the first loop break @@ -3515,6 +3561,10 @@ class Tallies(object): def add_mesh(self, mesh): """Add a mesh to the file + .. deprecated:: 0.8 + Meshes that appear in a tally are automatically added to the + collection. + Parameters ---------- mesh : openmc.Mesh @@ -3522,36 +3572,43 @@ class Tallies(object): """ - if not isinstance(mesh, Mesh): - msg = 'Unable to add a non-Mesh "{0}" to the Tallies instance'.format(mesh) - raise ValueError(msg) - - self._meshes.append(mesh) + warnings.warn("Tallies.add_mesh(...) has been deprecated and may be " + "removed in a future version. Meshes that appear in a " + "tally are automatically added to the collection.", + DeprecationWarning) def remove_mesh(self, mesh): """Remove a mesh from the file + .. deprecated:: 0.8 + Meshes do not need to be managed explicitly. + Parameters ---------- mesh : openmc.Mesh Mesh to remove from the file """ - - self._meshes.remove(mesh) + warnings.warn("Tallies.remove_mesh(...) has been deprecated and may be " + "removed in a future version. Meshes do not need to be " + "managed explicitly.", DeprecationWarning) def _create_tally_subelements(self): - for tally in self._tallies: + for tally in self: xml_element = tally.get_tally_xml() self._tallies_file.append(xml_element) def _create_mesh_subelements(self): - for mesh in self._meshes: - if len(mesh._name) > 0: - self._tallies_file.append(ET.Comment(mesh._name)) + already_written = set() + for tally in self: + for f in tally.filters: + if f.type == 'mesh' and f.mesh not in already_written: + if len(f.mesh.name) > 0: + self._tallies_file.append(ET.Comment(f.mesh.name)) - xml_element = mesh.get_mesh_xml() - self._tallies_file.append(xml_element) + xml_element = f.mesh.get_mesh_xml() + self._tallies_file.append(xml_element) + already_written.add(f.mesh) def export_to_xml(self): """Create a tallies.xml file that can be used for a simulation. diff --git a/tests/input_set.py b/tests/input_set.py index 3be6c1db4..2c6841e25 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -267,9 +267,9 @@ class InputSet(object): # Define the materials file. self.materials.default_xs = '71c' - self.materials.add_materials((fuel, clad, cold_water, hot_water, - rpv_steel, lower_rad_ref, upper_rad_ref, bot_plate, bot_nozzle, - top_nozzle, top_fa, bot_fa)) + self.materials += (fuel, clad, cold_water, hot_water, rpv_steel, + lower_rad_ref, upper_rad_ref, bot_plate, + bot_nozzle, top_nozzle, top_fa, bot_fa) # Define surfaces. s1 = openmc.ZCylinder(R=0.41, surface_id=1) @@ -590,7 +590,7 @@ class MGInputSet(InputSet): # Define the materials file. self.materials.default_xs = '71c' - self.materials.add_materials((uo2, clad, water)) + self.materials += (uo2, clad, water) # Define surfaces. diff --git a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py index 94562e6d9..03e55d32f 100644 --- a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py +++ b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py @@ -54,12 +54,11 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): # Initialize the tallies tally = openmc.Tally(name='distribcell tally', tally_id=27) - tally.add_filter(distrib_filter) - tally.add_score('nu-fission') + tally.filters.append(distrib_filter) + tally.scores.append('nu-fission') # Initialize the tallies file - tallies_file = openmc.Tallies() - tallies_file.add_tally(tally) + tallies_file = openmc.Tallies([tally]) # Assign the tallies file to the input set self._input_set.tallies = tallies_file diff --git a/tests/test_distribmat/test_distribmat.py b/tests/test_distribmat/test_distribmat.py index ded2863bd..d8f78c5cf 100644 --- a/tests/test_distribmat/test_distribmat.py +++ b/tests/test_distribmat/test_distribmat.py @@ -28,9 +28,8 @@ class DistribmatTestHarness(PyAPITestHarness): light_fuel.set_density('g/cc', 2.0) light_fuel.add_nuclide('U-235', 1.0) - mats_file = openmc.Materials() + mats_file = openmc.Materials([moderator, dense_fuel, light_fuel]) mats_file.default_xs = '71c' - mats_file.add_materials([moderator, dense_fuel, light_fuel]) mats_file.export_to_xml() diff --git a/tests/test_mg_max_order/test_mg_max_order.py b/tests/test_mg_max_order/test_mg_max_order.py index 2c4db58df..7f59572cf 100644 --- a/tests/test_mg_max_order/test_mg_max_order.py +++ b/tests/test_mg_max_order/test_mg_max_order.py @@ -27,7 +27,7 @@ class MGNuclideInputSet(MGInputSet): # Define the materials file. self.materials.default_xs = '71c' - self.materials.add_materials((uo2, clad, water)) + self.materials += (uo2, clad, water) # Define surfaces. diff --git a/tests/test_mg_nuclide/test_mg_nuclide.py b/tests/test_mg_nuclide/test_mg_nuclide.py index 0fa7184a3..866840ddf 100644 --- a/tests/test_mg_nuclide/test_mg_nuclide.py +++ b/tests/test_mg_nuclide/test_mg_nuclide.py @@ -26,7 +26,7 @@ class MGNuclideInputSet(MGInputSet): # Define the materials file. self.materials.default_xs = '71c' - self.materials.add_materials((uo2, clad, water)) + self.materials += (uo2, clad, water) # Define surfaces. diff --git a/tests/test_mg_tallies/test_mg_tallies.py b/tests/test_mg_tallies/test_mg_tallies.py index ffc57f9e9..3048f4a39 100644 --- a/tests/test_mg_tallies/test_mg_tallies.py +++ b/tests/test_mg_tallies/test_mg_tallies.py @@ -27,24 +27,15 @@ class MGTalliesTestHarness(PyAPITestHarness): mat_filter = openmc.Filter(type='material', bins=[1,2,3]) tally1 = openmc.Tally(tally_id=1) - tally1.add_filter(mesh_filter) - tally1.add_score('total') - tally1.add_score('absorption') - tally1.add_score('flux') - tally1.add_score('fission') - tally1.add_score('nu-fission') + tally1.filters = [mesh_filter] + tally1.scores = ['total', 'absorption', 'flux', + 'fission', 'nu-fission'] tally2 = openmc.Tally(tally_id=2) - tally2.add_filter(mat_filter) - tally2.add_filter(energy_filter) - tally2.add_filter(energyout_filter) - tally2.add_score('scatter') - tally2.add_score('nu-scatter') + tally2.filters = [mat_filter, energy_filter, energyout_filter] + tally2.scores = ['scatter', 'nu-scatter'] - self._input_set.tallies = openmc.Tallies() - self._input_set.tallies.add_mesh(mesh) - self._input_set.tallies.add_tally(tally1) - self._input_set.tallies.add_tally(tally2) + self._input_set.tallies = openmc.Tallies([tally1, tally2]) super(MGTalliesTestHarness, self)._build_inputs() diff --git a/tests/test_resonance_scattering/test_resonance_scattering.py b/tests/test_resonance_scattering/test_resonance_scattering.py index 5cecfedc4..b752cf7f3 100644 --- a/tests/test_resonance_scattering/test_resonance_scattering.py +++ b/tests/test_resonance_scattering/test_resonance_scattering.py @@ -17,9 +17,8 @@ class ResonanceScatteringTestHarness(PyAPITestHarness): mat.add_nuclide('Pu-239', 0.02) mat.add_nuclide('H-1', 20.0) - mats_file = openmc.Materials() + mats_file = openmc.Materials([mat]) mats_file.default_xs = '71c' - mats_file.add_material(mat) mats_file.export_to_xml() # Geometry diff --git a/tests/test_source/test_source.py b/tests/test_source/test_source.py index 1e41bd10e..0abae4344 100644 --- a/tests/test_source/test_source.py +++ b/tests/test_source/test_source.py @@ -16,8 +16,7 @@ class SourceTestHarness(PyAPITestHarness): mat1 = openmc.Material(material_id=1) mat1.set_density('g/cm3', 4.5) mat1.add_nuclide(openmc.Nuclide('U-235', '71c'), 1.0) - materials = openmc.Materials() - materials.add_material(mat1) + materials = openmc.Materials([mat1]) materials.export_to_xml() sphere = openmc.Sphere(surface_id=1, R=10.0, boundary_type='vacuum') diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index bb0273589..52d4084fd 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -42,7 +42,8 @@ class TalliesTestHarness(PyAPITestHarness): mesh_2x2.lower_left = [-182.07, -182.07] mesh_2x2.upper_right = [182.07, 182.07] mesh_2x2.dimension = [2, 2] - mesh_filter = Filter(type='mesh', bins=(1,)) + mesh_filter = Filter(type='mesh') + mesh_filter.mesh = mesh_2x2 azimuthal_tally4 = Tally() azimuthal_tally4.filters = [azimuthal_filter2, mesh_filter] azimuthal_tally4.scores = ['flux'] @@ -171,32 +172,18 @@ class TalliesTestHarness(PyAPITestHarness): all_nuclide_tallies[0].estimator = 'collision' self._input_set.tallies = Tallies() - self._input_set.tallies.add_tally(azimuthal_tally1) - self._input_set.tallies.add_tally(azimuthal_tally2) - self._input_set.tallies.add_tally(azimuthal_tally3) - self._input_set.tallies.add_tally(azimuthal_tally4) - self._input_set.tallies.add_tally(cellborn_tally) - self._input_set.tallies.add_tally(dg_tally) - self._input_set.tallies.add_tally(energy_tally) - self._input_set.tallies.add_tally(energyout_tally) - self._input_set.tallies.add_tally(transfer_tally) - self._input_set.tallies.add_tally(material_tally) - self._input_set.tallies.add_tally(mu_tally1) - self._input_set.tallies.add_tally(mu_tally2) - self._input_set.tallies.add_tally(mu_tally3) - self._input_set.tallies.add_tally(polar_tally1) - self._input_set.tallies.add_tally(polar_tally2) - self._input_set.tallies.add_tally(polar_tally3) - self._input_set.tallies.add_tally(polar_tally4) - self._input_set.tallies.add_tally(universe_tally) - [self._input_set.tallies.add_tally(t) for t in score_tallies] - [self._input_set.tallies.add_tally(t) for t in flux_tallies] - self._input_set.tallies.add_tally(scatter_tally1) - self._input_set.tallies.add_tally(scatter_tally2) - [self._input_set.tallies.add_tally(t) for t in total_tallies] - self._input_set.tallies.add_tally(questionable_tally) - [self._input_set.tallies.add_tally(t) for t in all_nuclide_tallies] - self._input_set.tallies.add_mesh(mesh_2x2) + self._input_set.tallies += ( + [azimuthal_tally1, azimuthal_tally2, azimuthal_tally3, + azimuthal_tally4, cellborn_tally, dg_tally, energy_tally, + energyout_tally, transfer_tally, material_tally, mu_tally1, + mu_tally2, mu_tally3, polar_tally1, polar_tally2, polar_tally3, + polar_tally4, universe_tally]) + self._input_set.tallies += score_tallies + self._input_set.tallies += flux_tallies + self._input_set.tallies += (scatter_tally1, scatter_tally2) + self._input_set.tallies += total_tallies + self._input_set.tallies.append(questionable_tally) + self._input_set.tallies += all_nuclide_tallies self._input_set.export() diff --git a/tests/test_tally_aggregation/test_tally_aggregation.py b/tests/test_tally_aggregation/test_tally_aggregation.py index 009a7dc09..359afbe34 100644 --- a/tests/test_tally_aggregation/test_tally_aggregation.py +++ b/tests/test_tally_aggregation/test_tally_aggregation.py @@ -15,9 +15,6 @@ class TallyAggregationTestHarness(PyAPITestHarness): # The summary.h5 file needs to be created to read in the tallies self._input_set.settings.output = {'summary': True} - # Initialize the tallies file - tallies_file = openmc.Tallies() - # Initialize the nuclides u235 = openmc.Nuclide('U-235') u238 = openmc.Nuclide('U-238') @@ -33,7 +30,7 @@ class TallyAggregationTestHarness(PyAPITestHarness): tally.filters = [energy_filter, distrib_filter] tally.scores = ['nu-fission', 'total'] tally.nuclides = [u235, u238, pu239] - tallies_file.add_tally(tally) + tallies_file = openmc.Tallies([tally]) # Export tallies to file self._input_set.tallies = tallies_file diff --git a/tests/test_tally_arithmetic/test_tally_arithmetic.py b/tests/test_tally_arithmetic/test_tally_arithmetic.py index ffea74603..8e2d2b349 100644 --- a/tests/test_tally_arithmetic/test_tally_arithmetic.py +++ b/tests/test_tally_arithmetic/test_tally_arithmetic.py @@ -43,14 +43,13 @@ class TallyArithmeticTestHarness(PyAPITestHarness): tally.filters = [material_filter, energy_filter, distrib_filter] tally.scores = ['nu-fission', 'total'] tally.nuclides = [u235, pu239] - tallies_file.add_tally(tally) + tallies_file.append(tally) tally = openmc.Tally(name='tally 2') tally.filters = [energy_filter, mesh_filter] tally.scores = ['total', 'fission'] tally.nuclides = [u238, u235] - tallies_file.add_tally(tally) - tallies_file.add_mesh(mesh) + tallies_file.append(tally) # Export tallies to file self._input_set.tallies = tallies_file diff --git a/tests/test_tally_slice_merge/test_tally_slice_merge.py b/tests/test_tally_slice_merge/test_tally_slice_merge.py index 933fdf6fa..85dd532c6 100644 --- a/tests/test_tally_slice_merge/test_tally_slice_merge.py +++ b/tests/test_tally_slice_merge/test_tally_slice_merge.py @@ -70,9 +70,7 @@ class TallySliceMergeTestHarness(PyAPITestHarness): distribcell_tally.add_nuclide(nuclide) # Add tallies to a Tallies object - tallies_file = openmc.Tallies() - tallies_file.add_tally(tallies[0]) - tallies_file.add_tally(distribcell_tally) + tallies_file = openmc.Tallies((tallies[0], distribcell_tally)) # Export tallies to file self._input_set.tallies = tallies_file From ed5505cd979b72ee6a32f5e4624ec614ef34e802 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 29 Apr 2016 22:13:41 -0400 Subject: [PATCH 117/259] Added option to transpose array returned by ScatterMatrixXS.get_xs(...) method --- openmc/mgxs/mgxs.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 33255de30..90b956b21 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -654,7 +654,8 @@ class MGXS(object): self.tallies[tally_type] = sp_tally def get_xs(self, groups='all', subdomains='all', nuclides='all', - xs_type='macro', order_groups='increasing', value='mean'): + xs_type='macro', order_groups='increasing', + value='mean', **kwargs): """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested multi-group @@ -1143,7 +1144,7 @@ class MGXS(object): def build_hdf5_store(self, filename='mgxs.h5', directory='mgxs', subdomains='all', nuclides='all', - xs_type='macro', append=True): + xs_type='macro', row_column='inout', append=True): """Export the multi-group cross section data to an HDF5 binary file. This method constructs an HDF5 file which stores the multi-group @@ -1172,6 +1173,9 @@ class MGXS(object): xs_type: {'macro', 'micro'} Store the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + row_column: {'inout', 'outin'} + Store scattering matrices indexed first by incoming group and second + by outgoing group ('inout'), or vice versa ('outin'). append : bool If true, appends to an existing HDF5 file with the same filename directory (if one exists). Defaults to True. @@ -1258,9 +1262,9 @@ class MGXS(object): # Extract the cross section for this subdomain and nuclide average = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], - xs_type=xs_type, value='mean') + xs_type=xs_type, value='mean', row_column=row_column) std_dev = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], - xs_type=xs_type, value='std_dev') + xs_type=xs_type, value='std_dev', row_column=row_column) average = average.squeeze() std_dev = std_dev.squeeze() @@ -1973,7 +1977,8 @@ class ScatterMatrixXS(MGXS): def get_xs(self, in_groups='all', out_groups='all', subdomains='all', nuclides='all', xs_type='macro', - order_groups='increasing', value='mean'): + order_groups='increasing', row_column='inout', + value='mean', **kwargs): """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested scattering @@ -1999,6 +2004,9 @@ class ScatterMatrixXS(MGXS): Return the cross section indexed according to increasing or decreasing energy groups (decreasing or increasing energies). Defaults to 'increasing'. + row_column: {'inout', 'outin'} + Return the cross section indexed first by incoming group and second + by outgoing group ('inout'), or vice versa ('outin'). value : str A string for the type of value to return - 'mean', 'std_dev', or 'rel_err' are accepted. Defaults to the empty string. @@ -2092,6 +2100,10 @@ class ScatterMatrixXS(MGXS): new_shape += xs.shape[1:] xs = np.reshape(xs, new_shape) + # Transpose the scattering matrix if requested by user + if row_column == 'outin': + xs = np.swapaxes(xs, 1, 2) + # Reverse energies to align with increasing energy groups xs = xs[:, ::-1, ::-1, :] @@ -2422,7 +2434,8 @@ class Chi(MGXS): return merged_mgxs def get_xs(self, groups='all', subdomains='all', nuclides='all', - xs_type='macro', order_groups='increasing', value='mean'): + xs_type='macro', order_groups='increasing', + value='mean', **kwargs): """Returns an array of the fission spectrum. This method constructs a 2D NumPy array for the requested multi-group From d460e51fb772fe53121974c1daaa6996877298d0 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 29 Apr 2016 23:27:59 -0400 Subject: [PATCH 118/259] Moved Jupyter Notebook examples to top of Python API page --- docs/source/pythonapi/index.rst | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 3bedaf2c7..1631976e6 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -13,6 +13,20 @@ online. We recommend going through the modules from Codecademy_ and/or the `Scipy lectures`_. The full API documentation serves to provide more information on a given module or class. +------------------------- +Example Jupyter Notebooks +------------------------- + +.. toctree:: + :maxdepth: 1 + + examples/post-processing + examples/pandas-dataframes + examples/tally-arithmetic + examples/mgxs-part-i + examples/mgxs-part-ii + examples/mgxs-part-iii + ------------------------------------ :mod:`openmc` -- Basic Functionality ------------------------------------ @@ -271,20 +285,6 @@ Multi-group Cross Section Libraries openmc.mgxs.Library -------------------------- -Example Jupyter Notebooks -------------------------- - -.. toctree:: - :maxdepth: 1 - - examples/post-processing - examples/pandas-dataframes - examples/tally-arithmetic - examples/mgxs-part-i - examples/mgxs-part-ii - examples/mgxs-part-iii - .. _Jupyter: https://jupyter.org/ .. _NumPy: http://www.numpy.org/ .. _Codecademy: https://www.codecademy.com/tracks/python From 6fc37fb99cf277dfe364559edf642a78f90762b4 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 29 Apr 2016 23:31:12 -0400 Subject: [PATCH 119/259] Added a link to Read the Docs to homepage --- docs/source/index.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 54ba825e5..7edc560e2 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -13,11 +13,12 @@ OpenMC was originally developed by members of the `Computational Reactor Physics Group`_ at the `Massachusetts Institute of Technology`_ starting in 2011. Various universities, laboratories, and other organizations now contribute to the development of OpenMC. For more information on OpenMC, feel -free to send a message to the User's Group `mailing list`_. +free to send a message to the User's Group `mailing list`_. Documentation for the latest version of the develop branch can be found on `Read the Docs`_. .. _Computational Reactor Physics Group: http://crpg.mit.edu .. _Massachusetts Institute of Technology: http://web.mit.edu .. _mailing list: https://groups.google.com/forum/?fromgroups=#!forum/openmc-users +.. _Read the Docs: http://openmc.readthedocs.io/en/latest/ .. only:: html From 6a2743f1e12fbc0745ff770f22df8847af859e90 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sat, 30 Apr 2016 06:37:02 -0500 Subject: [PATCH 120/259] Fix comma in tally arithmetic notebook --- .../pythonapi/examples/tally-arithmetic.ipynb | 66 ++++++++----------- 1 file changed, 28 insertions(+), 38 deletions(-) diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 14ca97d3f..25c57f3c5 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -15,16 +15,7 @@ "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" @@ -362,7 +353,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAALKSURB\nVGje7dpLcqQwDAbgHHE2YeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmN\nP+HDhw8fPnz48Kf6VH9G+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4\nzPji99z0/AJ4n1lfvJ6fnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6\npA0wfln+ho/fwgYYn19C/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tN\nDbSGz7T0SBEWw4vLXzbQ6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X5\n8wZaxWd1+fMGiuFvir8bvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV\n873hB8UnM3xzANtf8nb4dwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7\nT/ppARBvp48UwJnelT5SACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4/\n/Jve+fhsH6Ctv7n8PTzjvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V\n32/o9+fl389Xnx+g5x/o+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6\n/4Le/6D3T/D9V67Y/ZsVQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/\ngPs/0P4TtP8F7r9J3AIO9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTu\nf4X7b+H+X7T/+BPuf3aM8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTYtMDQtMTNUMTE6Mzk6MTQtMDQ6MDALPlLjAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEz\nVDExOjM5OjE0LTA0OjAwemPqXwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AEHgslKE7FoLIAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMzBUMDY6Mzc6\nNDAtMDU6MDAMbOxZAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTMwVDA2OjM3OjQwLTA1OjAw\nfTFU5QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -449,7 +440,7 @@ "abs_rate = openmc.Tally(name='abs. rate')\n", "fiss_rate.scores = ['nu-fission']\n", "abs_rate.scores = ['absorption']\n", - "tallies_file += (fiss_rate, abs_rate)", + "tallies_file += (fiss_rate, abs_rate)" ] }, { @@ -562,12 +553,11 @@ " 888\n", " 888\n", "\n", - " Copyright: 2011-2015 Massachusetts Institute of Technology\n", - " License: http://mit-crpg.github.io/openmc/license.html\n", + " Copyright: 2011-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", - " Date/Time: 2016-04-13 11:39:14\n", - " MPI Processes: 1\n", + " Git SHA1: ae083cf5d491e6a778d5b762dad19c8d5fe45238\n", + " Date/Time: 2016-04-30 06:37:41\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -623,20 +613,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.0300E-01 seconds\n", - " Reading cross sections = 8.6000E-02 seconds\n", - " Total time in simulation = 1.4439E+01 seconds\n", - " Time in transport only = 1.4430E+01 seconds\n", - " Time in inactive batches = 2.2790E+00 seconds\n", - " Time in active batches = 1.2160E+01 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Total time for initialization = 7.0900E-01 seconds\n", + " Reading cross sections = 4.0400E-01 seconds\n", + " Total time in simulation = 1.7108E+01 seconds\n", + " Time in transport only = 1.7093E+01 seconds\n", + " Time in inactive batches = 3.3970E+00 seconds\n", + " Time in active batches = 1.3711E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-03 seconds\n", " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 1.4856E+01 seconds\n", - " Calculation Rate (inactive) = 5484.86 neutrons/second\n", - " Calculation Rate (active) = 3083.88 neutrons/second\n", + " Total time elapsed = 1.7835E+01 seconds\n", + " Calculation Rate (inactive) = 3679.72 neutrons/second\n", + " Calculation Rate (active) = 2735.03 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -810,7 +800,7 @@ " \n", " \n", " 0\n", - " 0\n", + " 0.0\n", " 6.250000e-07\n", " total\n", " absorption\n", @@ -872,7 +862,7 @@ " \n", " \n", " 0\n", - " 0\n", + " 0.0\n", " 6.250000e-07\n", " total\n", " nu-fission\n", @@ -936,7 +926,7 @@ " \n", " \n", " 0\n", - " 0\n", + " 0.0\n", " 6.250000e-07\n", " 10000\n", " total\n", @@ -1002,7 +992,7 @@ " \n", " \n", " 0\n", - " 0\n", + " 0.0\n", " 6.250000e-07\n", " 10000\n", " total\n", @@ -1067,7 +1057,7 @@ " \n", " \n", " 0\n", - " 0\n", + " 0.0\n", " 6.250000e-07\n", " 10000\n", " total\n", @@ -1610,21 +1600,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.5.1" } }, "nbformat": 4, From 7741b525bb5457ba03dd4dde101e06c0c2daf766 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 30 Apr 2016 09:35:17 -0400 Subject: [PATCH 121/259] Removed OpenCG dependency for distribcell paths in Pandas DataFrames --- .../examples/pandas-dataframes.ipynb | 484 ++++-------------- openmc/filter.py | 189 ++++--- openmc/tallies.py | 19 +- 3 files changed, 208 insertions(+), 484 deletions(-) diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index b0f2f6b13..c9e73caac 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -374,7 +374,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTEzVDExOjQw\nOjAxLTA0OjAwQIJDkwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0xM1QxMTo0MDowMS0wNDow\nMDHf+y8AAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTMwVDA5OjMx\nOjI5LTA0OjAwzUliGgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0zMFQwOTozMToyOS0wNDow\nMLwU2qYAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -538,134 +538,13 @@ "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - " .d88888b. 888b d888 .d8888b.\n", - " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", - " 888 888 88888b.d88888 888 888\n", - " 888 888 88888b. .d88b. 88888b. 888Y88888P888 888 \n", - " 888 888 888 \"88b d8P Y8b 888 \"88b 888 Y888P 888 888 \n", - " 888 888 888 888 88888888 888 888 888 Y8P 888 888 888\n", - " Y88b. .d88P 888 d88P Y8b. 888 888 888 \" 888 Y88b d88P\n", - " \"Y88888P\" 88888P\" \"Y8888 888 888 888 888 \"Y8888P\"\n", - "__________________888______________________________________________________\n", - " 888\n", - " 888\n", - "\n", - " Copyright: 2011-2015 Massachusetts Institute of Technology\n", - " License: http://mit-crpg.github.io/openmc/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", - " Date/Time: 2016-04-13 11:40:02\n", - " MPI Processes: 1\n", - "\n", - " ===========================================================================\n", - " ========================> INITIALIZATION <=========================\n", - " ===========================================================================\n", - "\n", - " Reading settings XML file...\n", - " Reading cross sections XML file...\n", - " Reading geometry XML file...\n", - " Reading materials XML file...\n", - " Reading tallies XML file...\n", - " Building neighboring cells lists for each surface...\n", - " Loading ACE cross section table: 92235.71c\n", - " Loading ACE cross section table: 92238.71c\n", - " Loading ACE cross section table: 8016.71c\n", - " Loading ACE cross section table: 1001.71c\n", - " Loading ACE cross section table: 5010.71c\n", - " Loading ACE cross section table: 40090.71c\n", - " Maximum neutron transport energy: 20.0000 MeV for 92235.71c\n", - " Initializing source particles...\n", - "\n", - " ===========================================================================\n", - " ====================> K EIGENVALUE SIMULATION <====================\n", - " ===========================================================================\n", - "\n", - " Bat./Gen. k Average k \n", - " ========= ======== ==================== \n", - " 1/1 0.55921 \n", - " 2/1 0.63816 \n", - " 3/1 0.68834 \n", - " 4/1 0.71192 \n", - " 5/1 0.67935 \n", - " 6/1 0.68274 \n", - " 7/1 0.66339 0.67307 +/- 0.00967\n", - " 8/1 0.65835 0.66816 +/- 0.00743\n", - " 9/1 0.66697 0.66786 +/- 0.00527\n", - " 10/1 0.70498 0.67528 +/- 0.00847\n", - " 11/1 0.68596 0.67706 +/- 0.00714\n", - " 12/1 0.68481 0.67817 +/- 0.00614\n", - " 13/1 0.68369 0.67886 +/- 0.00536\n", - " 14/1 0.68785 0.67986 +/- 0.00483\n", - " 15/1 0.66145 0.67802 +/- 0.00470\n", - " 16/1 0.71831 0.68168 +/- 0.00561\n", - " 17/1 0.68428 0.68190 +/- 0.00512\n", - " 18/1 0.67527 0.68139 +/- 0.00474\n", - " 19/1 0.68166 0.68141 +/- 0.00439\n", - " 20/1 0.65475 0.67963 +/- 0.00446\n", - " Triggers unsatisfied, max unc./thresh. is 1.07581 for absorption in tally 10002\n", - " The estimated number of batches is 23\n", - " Creating state point statepoint.020.h5...\n", - " 21/1 0.64538 0.67749 +/- 0.00469\n", - " 22/1 0.73275 0.68074 +/- 0.00547\n", - " 23/1 0.71674 0.68274 +/- 0.00553\n", - " Triggers satisfied for batch 23\n", - " Creating state point statepoint.023.h5...\n", - "\n", - " ===========================================================================\n", - " ======================> SIMULATION FINISHED <======================\n", - " ===========================================================================\n", - "\n", - "\n", - " =======================> TIMING STATISTICS <=======================\n", - "\n", - " Total time for initialization = 3.7900E-01 seconds\n", - " Reading cross sections = 8.6000E-02 seconds\n", - " Total time in simulation = 8.7310E+00 seconds\n", - " Time in transport only = 8.7200E+00 seconds\n", - " Time in inactive batches = 1.3230E+00 seconds\n", - " Time in active batches = 7.4080E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 9.1240E+00 seconds\n", - " Calculation Rate (inactive) = 9448.22 neutrons/second\n", - " Calculation Rate (active) = 5062.10 neutrons/second\n", - "\n", - " ============================> RESULTS <============================\n", - "\n", - " k-effective (Collision) = 0.67952 +/- 0.00434\n", - " k-effective (Track-length) = 0.68274 +/- 0.00553\n", - " k-effective (Absorption) = 0.68095 +/- 0.00369\n", - " Combined k-effective = 0.67994 +/- 0.00349\n", - " Leakage Fraction = 0.34133 +/- 0.00332\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Remove old HDF5 (summary, statepoint) files\n", - "!rm statepoint.*\n", + "#!rm statepoint.*\n", "\n", "# Run OpenMC!\n", - "openmc.run()" + "#openmc.run()()" ] }, { @@ -1114,9 +993,9 @@ "outputs": [ { "data": { - "image/png": "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\nD03l9kElNMu/AAAAAElFTkSuQmCC\n", + "image/png": "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\nSWry/wHxFqsYpaO7aQAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1139,7 +1018,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1150,7 +1029,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1734,7 +1613,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -1757,11 +1636,11 @@ " \n", " \n", " \n", - " cell\n", " univ\n", + " cell\n", " lat\n", - " cell\n", " univ\n", + " cell\n", " \n", " \n", " \n", @@ -1786,14 +1665,14 @@ " \n", " \n", " 558\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 9\n", + " 7\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 279\n", " absorption\n", " 8.19e-05\n", @@ -1801,14 +1680,14 @@ " \n", " \n", " 559\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 9\n", + " 7\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 279\n", " scatter\n", " 1.33e-02\n", @@ -1816,14 +1695,14 @@ " \n", " \n", " 560\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", " 8\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 280\n", " absorption\n", " 1.00e-04\n", @@ -1831,14 +1710,14 @@ " \n", " \n", " 561\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", " 8\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 280\n", " scatter\n", " 1.40e-02\n", @@ -1846,14 +1725,14 @@ " \n", " \n", " 562\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 7\n", + " 9\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 281\n", " absorption\n", " 9.52e-05\n", @@ -1861,14 +1740,14 @@ " \n", " \n", " 563\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 7\n", + " 9\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 281\n", " scatter\n", " 1.51e-02\n", @@ -1876,14 +1755,14 @@ " \n", " \n", " 564\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 6\n", + " 10\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 282\n", " absorption\n", " 9.85e-05\n", @@ -1891,14 +1770,14 @@ " \n", " \n", " 565\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 6\n", + " 10\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 282\n", " scatter\n", " 1.53e-02\n", @@ -1906,14 +1785,14 @@ " \n", " \n", " 566\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 5\n", + " 11\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 283\n", " absorption\n", " 1.08e-04\n", @@ -1921,14 +1800,14 @@ " \n", " \n", " 567\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 5\n", + " 11\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 283\n", " scatter\n", " 1.65e-02\n", @@ -1936,14 +1815,14 @@ " \n", " \n", " 568\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 4\n", + " 12\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 284\n", " absorption\n", " 1.13e-04\n", @@ -1951,14 +1830,14 @@ " \n", " \n", " 569\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 4\n", + " 12\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 284\n", " scatter\n", " 1.67e-02\n", @@ -1966,14 +1845,14 @@ " \n", " \n", " 570\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 3\n", + " 13\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 285\n", " absorption\n", " 1.23e-04\n", @@ -1981,14 +1860,14 @@ " \n", " \n", " 571\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 3\n", + " 13\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 285\n", " scatter\n", " 1.88e-02\n", @@ -1996,14 +1875,14 @@ " \n", " \n", " 572\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 2\n", + " 14\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 286\n", " absorption\n", " 1.44e-04\n", @@ -2011,14 +1890,14 @@ " \n", " \n", " 573\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 2\n", + " 14\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 286\n", " scatter\n", " 1.90e-02\n", @@ -2026,14 +1905,14 @@ " \n", " \n", " 574\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 1\n", + " 15\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 287\n", " absorption\n", " 1.26e-04\n", @@ -2041,14 +1920,14 @@ " \n", " \n", " 575\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", - " 1\n", + " 15\n", " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 287\n", " scatter\n", " 1.97e-02\n", @@ -2056,14 +1935,14 @@ " \n", " \n", " 576\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", + " 16\n", " 0\n", - " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 288\n", " absorption\n", " 1.25e-04\n", @@ -2071,14 +1950,14 @@ " \n", " \n", " 577\n", - " 10003\n", " 0\n", + " 10003\n", " 10001\n", " 16\n", + " 16\n", " 0\n", - " 0\n", - " 10002\n", " 10000\n", + " 10002\n", " 288\n", " scatter\n", " 2.01e-02\n", @@ -2089,29 +1968,29 @@ "
" ], "text/plain": [ - " level 1 level 2 level 3 distribcell score \\\n", - " cell univ lat cell univ \n", - " id id id x y z id id \n", - "558 10003 0 10001 16 9 0 10002 10000 279 absorption \n", - "559 10003 0 10001 16 9 0 10002 10000 279 scatter \n", - "560 10003 0 10001 16 8 0 10002 10000 280 absorption \n", - "561 10003 0 10001 16 8 0 10002 10000 280 scatter \n", - "562 10003 0 10001 16 7 0 10002 10000 281 absorption \n", - "563 10003 0 10001 16 7 0 10002 10000 281 scatter \n", - "564 10003 0 10001 16 6 0 10002 10000 282 absorption \n", - "565 10003 0 10001 16 6 0 10002 10000 282 scatter \n", - "566 10003 0 10001 16 5 0 10002 10000 283 absorption \n", - "567 10003 0 10001 16 5 0 10002 10000 283 scatter \n", - "568 10003 0 10001 16 4 0 10002 10000 284 absorption \n", - "569 10003 0 10001 16 4 0 10002 10000 284 scatter \n", - "570 10003 0 10001 16 3 0 10002 10000 285 absorption \n", - "571 10003 0 10001 16 3 0 10002 10000 285 scatter \n", - "572 10003 0 10001 16 2 0 10002 10000 286 absorption \n", - "573 10003 0 10001 16 2 0 10002 10000 286 scatter \n", - "574 10003 0 10001 16 1 0 10002 10000 287 absorption \n", - "575 10003 0 10001 16 1 0 10002 10000 287 scatter \n", - "576 10003 0 10001 16 0 0 10002 10000 288 absorption \n", - "577 10003 0 10001 16 0 0 10002 10000 288 scatter \n", + " level 1 level 2 level 3 distribcell score \\\n", + " univ cell lat univ cell \n", + " id id id x y z id id \n", + "558 0 10003 10001 16 7 0 10000 10002 279 absorption \n", + "559 0 10003 10001 16 7 0 10000 10002 279 scatter \n", + "560 0 10003 10001 16 8 0 10000 10002 280 absorption \n", + "561 0 10003 10001 16 8 0 10000 10002 280 scatter \n", + "562 0 10003 10001 16 9 0 10000 10002 281 absorption \n", + "563 0 10003 10001 16 9 0 10000 10002 281 scatter \n", + "564 0 10003 10001 16 10 0 10000 10002 282 absorption \n", + "565 0 10003 10001 16 10 0 10000 10002 282 scatter \n", + "566 0 10003 10001 16 11 0 10000 10002 283 absorption \n", + "567 0 10003 10001 16 11 0 10000 10002 283 scatter \n", + "568 0 10003 10001 16 12 0 10000 10002 284 absorption \n", + "569 0 10003 10001 16 12 0 10000 10002 284 scatter \n", + "570 0 10003 10001 16 13 0 10000 10002 285 absorption \n", + "571 0 10003 10001 16 13 0 10000 10002 285 scatter \n", + "572 0 10003 10001 16 14 0 10000 10002 286 absorption \n", + "573 0 10003 10001 16 14 0 10000 10002 286 scatter \n", + "574 0 10003 10001 16 15 0 10000 10002 287 absorption \n", + "575 0 10003 10001 16 15 0 10000 10002 287 scatter \n", + "576 0 10003 10001 16 16 0 10000 10002 288 absorption \n", + "577 0 10003 10001 16 16 0 10000 10002 288 scatter \n", "\n", " mean std. dev. \n", " \n", @@ -2138,14 +2017,14 @@ "577 2.01e-02 6.75e-04 " ] }, - "execution_count": 34, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get a pandas dataframe for the distribcell tally data\n", - "df = tally.get_pandas_dataframe(summary=su, nuclides=False)\n", + "df = tally.get_pandas_dataframe(nuclides=False, distribcell_paths=True)\n", "\n", "# Print the last twenty rows in the dataframe\n", "df.tail(20)" @@ -2153,97 +2032,11 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
meanstd. dev.
count2.89e+022.89e+02
mean4.19e-042.24e-05
std2.42e-049.14e-06
min1.90e-053.44e-06
25%2.02e-041.56e-05
50%4.05e-042.20e-05
75%6.07e-042.89e-05
max9.19e-044.95e-05
\n", - "
" - ], - "text/plain": [ - " mean std. dev.\n", - " \n", - " \n", - "count 2.89e+02 2.89e+02\n", - "mean 4.19e-04 2.24e-05\n", - "std 2.42e-04 9.14e-06\n", - "min 1.90e-05 3.44e-06\n", - "25% 2.02e-04 1.56e-05\n", - "50% 4.05e-04 2.20e-05\n", - "75% 6.07e-04 2.89e-05\n", - "max 9.19e-04 4.95e-05" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Show summary statistics for absorption distribcell tally data\n", "absorption = df[df['score'] == 'absorption']\n", @@ -2262,19 +2055,11 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mann-Whitney Test p-value: 0.303583331507\n" - ] - } - ], + "outputs": [], "source": [ "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", @@ -2300,19 +2085,11 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mann-Whitney Test p-value: 6.038663783e-42\n" - ] - } - ], + "outputs": [], "source": [ "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", @@ -2336,43 +2113,11 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:4: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEdCAYAAAAb9oCRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuYXHWd5/H3tzsdIVFMIDgDCRDSBBB1hQ4EL8REeARB\nV5CZ3VFnFCKKYQAvAzg6s7uGmXUenxHW28ZkHJTL6Mg6igzjMAvKJYsXICTgBQKhu0kgCTPkajAB\nknR9949zqjl1+tSpc6rqVFdVf17P009yblW/U931+57f3dwdERGRrHrGOwEiItJZFDhERCQXBQ4R\nEclFgUNERHJR4BARkVwUOEREJBcFDpECmNlfmNl1450OkSIocEjHMLPTzOznZvZbM9tuZj8zs1Ma\nfM0LzeynsX03mNn/bOR13f1v3P0jjbxGNWbmZrbbzH5nZpvN7Gtm1pfx2kVmtrGIdMnEocAhHcHM\nDgJ+BHwNOBiYCVwNvDSe6UpiZpNa8DZvdPdXAm8DzgcubsF7igAKHNI5jgVw9++6+4i7v+Dud7r7\nr8onmNlHzWytmT1vZo+Z2UC4/zNmNhTZ/95w/2uBFcCbw6f3nWZ2MfDHwKfDff8Snnu4mf3AzLaY\n2VNm9vHI+y41s++b2bfNbBdwYbjv2+Hx2WEp4QIze9rMtprZX0auP9DMbjSzHWH6P521VODug8DP\ngNdFXm9x5HMYNrOPhfunAv8GHB7e2+/C++qJfEbbzOx7ZnZweM0B4X1tCz+fVWb2e7l/e9JVFDik\nU6wDRsIM9mwzmx49aGb/BVgKfAg4CHgPsC08PAQsAF5NUEr5tpkd5u5rgSXAL9z9le4+zd2/AXwH\n+Ntw3382sx7gX4BfEpR0zgA+aWZnRZJwLvB9YFp4fZLTgOPC6/9HGLgAPgfMBuYA7wD+JOuHYmbH\nh/f2YGT3c8C7w89hMfAlMxtw993A2cDm8N5e6e6bgcuB84CFwOHADmBZ+FoXhJ/bEcAh4ef1Qtb0\nSXdS4JCO4O67CDJeB/4e2GJmt0Wefj9CkNmv8sCgu28Ir/0nd9/s7iV3/z/Ak8D8HG9/CnCou/+V\nu+919+EwDe+LnPMLd781fI9qGevVYUnplwRB6I3h/v8K/I2773D3jcBXM6RpjZntBtYCP3D3G8oH\n3P1f3X0o/BxWAncSBJdqlgB/6e4b3f0lggD8h2GV2z6CgHFMWNJbHf4uZAJT4JCO4e5r3f1Cd58F\nvJ7g6fjL4eEjCEoWY5jZh8zskbCqZWd47Ywcb30UQfXOzshr/AUQrbJ5JsPr/Hvk/3uAV4b/Pzx2\nfZbXGgiv/yPgg2Y2u3wgLJHdH3Yg2AmcQ/r9HgX8MHJva4ERgvv7B+AO4OawIf5vszbES/dS4JCO\n5O6PAzcQBAEIMtv++HlmdhRB6eAy4BB3nwb8BrDySyW9fGz7GeCpsCqr/PMqdz8n5Zo8ngVmRbaP\nyHJRWKL4HkGngaUAZvYK4AfANcDvhfd7O+n3+wxwduz+DnD3Te6+z92vdvcTgLcQVIF9KP8tSjdR\n4JCOYGbHm9kVZjYr3D4CeD9wf3jKdcCVZjbPAseEQWMqQWa5JbxuMS8HG4D/AGaZ2eTYvjmR7QeB\n583sz8OG7F4ze32jXYEjvgd81symm9lMgiCXxxeA94efyWTgFQT3u9/MzgbOjJz7H8AhZvbqyL4V\nwOfDzwszO9TMzg3//3Yze4OZ9QK7CKquSvlvUbqJAod0iueBU4EHwrr9+wlKDldA0I4BfB74x/Dc\nW4GD3f0x4FrgFwSZ5hsIeiGV3Q08Cvy7mW0N930TOCGsurnV3UcInrRPBJ4CthIEqmjm24i/AjaG\nr/0Tgkb2zN2M3f3X4X1c4e7PAx8nCEY7gA8At0XOfRz4LjAc3t/hwFfCc+40s+cJPttTw0t+P0zP\nLoIqrJUE1VcygZkWchJpL2Z2CfA+d1843mkRSaISRw1mtnS809Asupf2ZGbXmNlbw/EUxxGUon44\n3umqR5f9XpaOdxqapdn3ohJHDWbm7m61z2x/upf2ZGZOUF12NLATuBn4rLvvHdeE1aHbfi+6l2St\nmBpBRGpw99fXPkukPaiqSkREcunKqqqw6C8iIjlkrc7q2qqqbgyIIiJFMcveBKKqKhERyaXwwGFm\n7zSzJ8xs0Mw+k3D8eDP7hZm9ZGZX5rlWRERar9A2jnCagnUEU0VvBFYB7w9H85bPeQ3BJGvnATvc\n/Zqs16a8r6uqSkQkOzPL3MZRdIljPjDo7sNhn/SbCdYtGOXuz7n7KoI5cHJdKyIirVd04JhJ5RTR\nG8N9RV8rIiIF6YrGcQuW6fTyz3inR0SkE0Xz0bRpSorujruJyrUFZoX7mnqtuy8lXI8ANI5DRKQe\n7dLGsQqYa2ZHh+sdvI/IFM8FXisiIgUptMTh7vvN7DKCpSd7gW+5+6NmtiQ8vsLMfh94CDgIKJnZ\nJ4ET3H1X0rVFpldERGrr2ilHuvG+RESK0k7dcUVEpMsocIiISC4KHCIikosCh4iI5KLAISIiuShw\niIhILgocIiKSiwKHiIjkosAhIiK5KHCIiEguChwiIpJL0dOqd62RkrNi5RBrNuxg4KjpXLKwn56e\nTNO8iIh0NAWOOq1YOcQX73gCgLsefw6AS99+zHgmSUSkJVRVVac1G3akbouIdCsFjjoNHDU9dVtE\npFupqqpOlyzsB6ho4xARmQi0kJOIiGghJxERKY4Ch4iI5KI2jibS2A4RmQgUOJpIYztEZCJQVVUT\naWyHiEwEChxNpLEdIjIRqKqqiTS2Q0QmAo3jEBERjeMQEZHiKHCIiEguChwiIpKLAoeIiOSiwCEi\nIrkocIiISC4KHCIikosCh4iI5KLAISIiuRQeOMzsnWb2hJkNmtlnEo6bmX01PP4rMxuIHPusmT1m\nZr8xs++a2QFFp1dERNIVGjjMrBdYBpwNnAC838xOiJ12NjA3/LkYWB5eOzvcnufurwd6gfcVmV4R\nEamt6BLHfGDQ3YfdfS9wM3Bu7JxzgZs8cD8wzcwOA3YB+4ADzWwSMAXYXHB6RUSkhqIDx0zgmcj2\nxnBfzXPcfTtwDfA08CzwW3e/s8C0iohIBm3bOG5m/cCngKOBw4GpZvYnVc5damZe/mllOkVEukU0\nHzWzpdXOKzpwbAKOiGzPCvdlOedk4OfuvsXd9wG3AG9JehN3X+ruVv5pWupFRCaQaD7q7kurnVd0\n4FgFzDWzo81sMkHj9m2xc24DPhT2rnoTQZXUs8ATwJvMbIqZGXAGsLbg9IqISA2FrgDo7vvN7DLg\nDoJeUd9y90fNbEl4fAVwO3AOMAjsARaHxx4xs5uAh4AS8DDwjSLT2ywjJWfFyqGKlQB7elQQEpHu\noBUAC7DsnkG+eMcTo9tXnXUcl779mHFLj4hILVoBcJyt2bAjdVtEpJMpcBRg4KjpqdsiIp2s0DaO\nieqShf0AFW0cIiLdQm0cLaRGcxFpV3naOFTiaLK04PD1ewe59s51ANz1+HOU3Ln89LnjmVwRkdwU\nOJpsxcqh0R5Vdz3+HMBoj6pbH64c+3jrw5sUOESk46hxvMlSe1TFa8/arzZNRKQmBY4mS+tR9d6B\nyvkd49siIp1AVVVNltaj6mNv6+eBp7azdvMuXnv4QSx5m3pbiUjnUa+qFtKIchFpVxo53qY0olxE\nuoECRwtpRLmIdAO1cbSQRpSLSDdQG4eIiKiNQ0REiqPAISIiuShwiIhILgocIiKSiwKHiIjkosAh\nIiK5KHCIiEguGgDYxrRioIi0IwWONpa2KJSIyHhRVVUb06SIItKOFDjamCZFFJF2pKqqNqZJEUWk\nHWmSQxER0SSHIiJSHAUOERHJRYFDRERyUeN4F9LAQREpkgJHF9LAQREpkgLHOCuidKCBgyJSJAWO\ncVZE6WDgqOmjr1XeFhFplsIDh5m9E/gK0Atc5+5fiB238Pg5wB7gQndfEx6bBlwHvB5w4MPu/oui\n09xKRZQONHBQRIpUaOAws15gGfAOYCOwysxuc/fHIqedDcwNf04Flof/QhBQ/q+7/6GZTQamFJne\n8VBE6aCnx9SmISKFKbrEMR8YdPdhADO7GTgXiAaOc4GbwqHe95vZNDM7jKD08TbgQgB33wvsLTi9\nLafSgYh0mqIDx0zgmcj2Rl4uTaSdMxPYD2wBrjezNwKrgU+4++7iktt6Kh2ISKdp5wGAk4ABYLm7\nnwTsBj6TdKKZLTUzL/+0MpGtMlJylt0zyEU3rGLZPYOUSl15myIyjqL5qJktrXZe0SWOTcARke1Z\n4b4s5ziw0d0fCPd/nyqBw92XAkvL250UPLJ2x9XYDBEpWtZJDusKHGa2xt0HMpy6CphrZkcTBIP3\nAR+InXMbcFnY/nEq8Ft3fzZ8n2fM7Dh3fwI4g8q2ka6QNSBobIaItIu6AkfGoIG77zezy4A7CLrj\nfsvdHzWzJeHxFcDtBF1xBwkaxBdHXuJy4Dthj6rh2LGukDUg5O19pWlHRKQoqYEj7E77E3d/e71v\n4O63EwSH6L4Vkf87cGmVax8BTq73vTtB1oCQt/eVqrZEpCipgcPdR8ysZGavdvfftipRE0G5RLB6\n/XYWzJ1BX28P81ICQt7eV6raEpGiZKmq+h3wazP7MUHPJgDc/eOFpWoCiJYIAK4667imlgjiJZm9\nIyVKJVd1lYg0LEt33FuA/w78P4KxFOUfaUDRJYJLFvazYO6M0e37ntzK8pVDTX0PEZmYsrRxnOnu\nf9yi9EwYRU9E2NNjTO6tfC5QdZWINEOWNo6jzGxyOOWHNEkrphrRLLkiUgQLOjWlnGB2E/BagvEW\n0TaO/1Vs0upnZl7rviaCUslZri65IpKBmWUeAJglcHwuab+7X11H2lqiGwKHxmGISCs1NXBEXnSK\nu+9pKGUt0g2B42t3P8m1d64b3b7izGO5/PS545giEelmeQJHzV5VZvZmM3sMeDzcfqOZfb3BNEoN\ntz68KXW7XSc9bNd0iUjzZBnH8WXgLII2Dtz9l2b2tkJT1SUaqm6K57ex7XYdGd6u6RKR5sk0rbq7\nPxPbNVJAWrpOORO96/Hn+OIdT+QaR/HegZmp2+06Mrxd0yUizZOlxPGMmb0FcDPrAz4BrC02Wd2h\nkUz0Txcdg5lV7a7brl1t2zVdItI8WQLHEoK1v2cSTI1+J1UmJZRKjWSiteamShsHMlJyvn7vILeu\n2QQG5500k0sXHdOSXllaClek+2XuVdVJ2qVXVa1xFEV1uV12z2DFPFjQ/LmwRKS75OlVVfQKgBNa\nrVJDUQ3JSVViamsQkWZp5zXHu17WNpC8XVyTqsTU1iAizaISxzjK2gaSt2RyycJ+3J0fRto41NYg\nIs1SVxuHmQ24+5oC0tMU7dLGUUu5DWT1+u3sK3nFYk7Rto6LblhVEWDOOP41fPPCU8YjyZoKRaRL\nNXXkeBWX1HmdRJTbQObNPpj7ntzK3VXGe8RLIuNZ7dTI2BQR6Q51VVW5+0ebnZCJrFZbRzt1cdUA\nPxGpGjjMbCDtwnauquo0tdo68q43XqSkJWkvumGVqq1EJpC0Ese1KcccOL3JaZmw6i1RjEd7QzSt\ne0dK3PfkVkDzUolMJFUDh7u/vZUJmcjqbcYfjwkFo6Wfi25YVXFM1VYiE0PNNg4zmwL8GXCku19s\nZnOB49z9R4WnboJICwBppYp4Rn3Lmo0tLX1oXiqRiSlL4/j1wGrgLeH2JuCfAAWOJqnW4DxSci68\n/sEx1UFLFvazYuUQ67furrhuaMtuhrbsblnpo50a7UWkdbIEjn53/yMzez+Au+8xM7WANlG1J/cV\nK4dGg0bZmg07KkooAP2HTgWHoUggaUW1UTs12otI62QJHHvN7EDCqngz6wdeKjRVE0y1J/ekzH/g\nqOlj9s8+ZCoDR02vCCZp1UZ5GtU14E9E4mqOHDezdwD/DTiBYEr1twIXuvu9haeuTp0ycjwunkm7\nO9dE1h1fMHcGNy6ez/KEEsd5J83EgIef3lkzg4/Pnps2c26ec0WkczVtdtywSupx4HzgTYABn3D3\nrWnXSX3ijeRXnHksV511XMXTvgMld/oPncqO3XvZvmcfQ1t2c+2d67jqrOMyTUWSZxCfBvyJSFxq\n4HB3N7Pb3f0NwL+2KE0TVjxTfuTpnWMCwbJ7Brk2UgpJu76aPL2h1HNKROKytHGsMbNT3H1V7VOl\nEVky6dXrt6den0W0DeXEI6fh7lVHfye1v6jdQ2RiyxI4TgX+2Mw2ALsJqqvc3f9ToSmbgLJ0b90X\nW4vjyIMPpK+nByyowiqVvGYmHu0NFW3DSOrGm9RzqtY1ItLdsgSOswpPhQDZurf29VZOaDypp2e0\nG+61d66jx7J3kR0pObes3lixL0t1l9o9RCa2mtOqu/uGpJ9WJE7Gmherjtr5wt6K7TyZ+IqVQxVj\nPwDWb9tdc5XBeJVYeaLDWtflXclQRNpT4SsAmtk7ga8AvcB17v6F2HELj58D7CHo6rsmcrwXeAjY\n5O7vLjq97e6Shf3cP7xtdGDg9t37Ko7nabxOCjJDW3aPVkNVK7nUO9HheMytJSLNV2jgCDP9ZcA7\ngI3AKjO7zd0fi5x2NjA3/DkVWB7+W/YJYC1wUJFp7RQ9PcbkWHVV/4ypzJ4xNfe0H/HG+Ki0kku9\nEx2qikukO9S7AmBW84FBdx92973AzcC5sXPOBW7ywP3ANDM7DMDMZgHvAq4rOJ1tLV7Fc9KR0yqO\nnzcwc3RE+fKVQ4lVQEnVRJcs7Oeqs47jjONfw4K5MyrOz1pyybM6YTutZCgi9Su6qmom8ExkeyOV\npYlq58wEngW+DHwaeFWBaWx7tQYGunvNKqBq1UTl88rrn+edsDDPRIeaFFGkOxTexlEvM3s38Jy7\nrzazRTXOXQp8rhXpGg+1BgZmqS6qVU1U74SFea7TpIgi7c3MotUVV7v70qTziq6q2gQcEdmeFe7L\ncs5bgfeY2XqCKq7TzezbSW/i7kvd3co/zUp8u6hVxZPUy2nf/lJq9VaR1UTd0HuqG+5BJK9oPlot\naECGSQ4bYWaTgHXAGQTBYBXwAXd/NHLOu4DLCHpVnQp81d3nx15nEXBl1l5VnTrJYTVJ1UjRQX6l\nknNBZN0OCCZEjG5fceax9JiNmfeqiBHg3TAxYjfcg0geTZvksFHuvt/MLgPuIOiO+y13f9TMloTH\nVwC3EwSNQYLuuIuLTFMnqlXFk9TTau3mXRXbtz68iR9/amFFYChqBHjSyoSdNi2JeoCJVFd0VRXu\nfru7H+vu/e7++XDfijBoEPamujQ8/gZ3fyjhNe7VGI508aqn4w+r7E8wtGU3y1cOVeyLZ4arN+xo\nSvVMPC1J793u1ANMpLq2bRyXfOI9lkZGnJ8Obqs455bVlU/+8XEce/ePVJRA3J3LTp+bKx0jJcfd\nObCvlxf2jYzuX91hT+zqASZSXaFtHOOl29o46nHRDasSB/dF6+pLJWfZvYPc+vAmcNi+ey87Xnh5\nJHr/jKncdeWiXO8bbxsoWzB3Bv9wUbwntoi0i7Zp45DmyzqlebVR4dHqqZ4eo8eMoS27x5wHBPMg\n51StLaAvlsa0+9C07SLtTYGjw2Sd76lctXLL6o0VExnuHSlVTL2e1uh73kkzc6evWsCaN/vgiu20\n+2jXOa0U0EQCChwdJmtvn3JPrEsW9ld01b3vya0sXznEkoX9rFg5xPptlaWNBXNnMLm3p+56/fI1\nqzfsYN9Iib4eY97sg8e8Vtp9tGuPpnYNaCKtpsDRYfIu5ZrUVXfNhh0VmSAE7Rnnz5uV+hSd5Yk7\n6+jwtPto1+Vqx/RCW7+dZfcMqgQiE44CR4ep1tsnLVNPyojjmeDsGVNrZvhZn7izBJi0XkvxpW1L\nKUvbNluez3FfqfYcYSLdSIGjw1R7ok/L1C9eMIf7h7exdvMuXnv4QXxswRz+juHcT/VZq5CyBJi0\nkkmepW2bLS3t8WAX72LcLlVqIkVT4Ohw5Sfk63/6VMX+8vYlC/v5xn3DFW0cf3ffcF3jFOJP3Ou3\nBqsFxksBzWyjiGfORY8HSUt7PNgtu2eQu5tcpTaeDfBq/JesFDg63NfvHeTaO9eN2b91997RJ+ek\nzLBWW0Q5E1m9fjt7R0ps3vkiuHPaMYeweeeLDG/dzdDWYLXA+4e3cePi+alVY3mV3/+RpyvTvnf/\nSKHtCnnS3sggwWqZ9Hg2wKvxX7JS4Ohwtz5cOdlwj0F0ppByxhTPDGs9XcYbz8uGt+2h/9CpFfvu\ne3IrF1z/4GhvrI8tmFPx3lkz1GiaXto/MmbkO8DmHS80lLnVuu88waCRaeKrZdLj2aOsXXuzSftR\n4Oh0sQHy0w7sY/uel0d/RzO/aGa4vMbTZWqmkTAoP+u642kZd7VgFWWx0kXezC2eYd8/vK2i+3E8\nGJSnV292CadaJp21xFNEtVK79mbrFt1UFajA0eHeOzCTayJVVYvfOpuenp4xf5zxjLzW02XaeuTv\nHZjJA09tr5i2Pf5a9VTFpAWBKX29XHr6MZTcK6rmsmRu0bTEx63UCnhFVd9Uy6SzlniKSJfm5ypW\nN1UFKnB0uD9ddAwWW2cjy1NMrafLcqZx3X1D7Nizf3T/EdMPwAmmEFkwdwZ9vT3sGylVBJGBo6bX\nVRVz4pHTqgarJYuC6q+Hn94ZvG+VgYVJspRk4mmpti++Xe9TZLVMOmv1VxHVSlqhsVjdVBWowNGB\nmlHkrfV0Wc5EVq/fzt1PbBnd39fbU/HEf9VZx41WfUVf66M3Vc6On6UqJj4x5Vv7D+aAvkmceOQ0\nHhjeVtHmkWdhpXhPrDkzpnL0jKnsTQh4cbUCbN6nyGing30lp6+3vpUNVK3UefL8ztq9WkuBowM1\no8ib9ely3uyDKwKH2dg2hqTXqqcq5p8f2VzxGv++6yXuuuLNLLtncExDedLTWrUv276RUuV57vz9\nh05mpOR8+MZVFeNb4moF2LyjyZNKP3fX8TtUtVLnyfM7a/dqLQWODtTKIm/8jz1rG0O1L0nqZPfx\ng+F20v0ljSGp9mWLz8y7Ydselt07yIORdpr7ntzK4htXVXQrhtoBttZo8njje7XfVZ5AmCVd0lzN\nKAHk+Z21e7WWAkcHamU1RfyPvVTyMWuXZ7muLO1JKt7Q/96BYHbepIb68hiS6PXVvmzxUhME3Zjj\n08nf9+RW3n7tvdz1qYVMmvRyFdLe/SUuipRMrr/glNHjtUaTRxvf3b1qp4Ok32Ezp3iRxtRbAqj3\nd9PuVZEKHB1oPKspGn3STXuSSmroh8r7Xb9td0WGH70+rXrs/uFtlb3AqhR9NmzbwxlfWsk9Vywa\n/YJfdOOqMSWT8qJUtUaTR/1wzSZ+/GcLx6RlwdwZib/DtM8qmiFF22ruevw5Sj42uCuQNKbeEkC9\nAafdqyIVODpQp1VTxDO5qOiTVLX7qjZ3Vfz6tJ5KNy6eX9GA7+4VpZuoDdv2sHzl0Oh7rt28q+J4\ndDt6byceOQ13Z86MKezcs4/nX9zPvuhoTEtOS9bFuKL3mtZTLFqaKleXxavgJJ8xyyzH1rWppt6A\n0+7fcQUOyS1v8TueyTWy5kfak1j0yzZS8jGZc7zKzcxYvX47a57eyc7Ikrnl1y/fZynW2+v4w141\n2gAef9pPU14YK2umkHavaRmQlyrTW16DJf6equLKLl5qve/JrbzjSys5fyB9KYJ2r3KqlwKH5BYv\nfteqGolncn09Njq1+/KVQ7kyrJ4eG12EKun6cmZ4y5qNFU/dUFlFEM289+8vccaXVrJh257R4/Gx\nKABTJvcy76jpzJ89PdO4kLIZUyez+LSjuWRhf67MOi3ApA3QPHz6gQxH7gWSA02799xpJ0nr2gxt\nGdvOFtfuVU71UuCQ3Fav316x/cM1GxneGmRUSRlQs9axGA0KkeVw05adjUp7Qp80qYd7rlhUcyzK\nm+ccwjcvPIWLblhVM61Ri087uunTxKe1+0ye1MuCuTNqjlFp55477Vgaqhas0z63dq9yqpcCh+S2\nL1YVklTNE9WsdSyyBIVqr1WriiDPWJT4/nLV24lHTsPCNJQH982rUcVUb2ad1u5Tfs94IIxr52qU\ndiwNlT/D6IMLtNfn1ioKHJJbfLTztAMns3135cSKUc1axyJLUIhnhgdP6ePDYTVRXtWqGZL2Z30a\nrpVZxxvbjWCalWrvM1Jy3J3+GVPBgnaUavOTZb2/dtCOpaHyZ1oOyuXR/6s37KgYU9SOpaVmU+CQ\n3OYdNb0i4z9/YGZiN9pq6s2w4plu/6FTRxsno68dbcTcvmcfZlbXF7dWY3s9a7On3ftIybnw+gcT\nG9vTJmGM9g7ryXGv5fsrp/ejNz3UNhldq0pD1X5XIyXn6/cOBssWeDCm6E8XHUNPj41+btGS3t2R\ntr5a7WvdQIFDcmvkiRvqr/dNel+HMRl6vBGzvBrixQvm8I37hutKd56qk6Sp28vdYdPufcXKoaoz\nDpfvG2Kz/W7dnXhOHvH03rJ6I+fPS+8tVLS8Dxf1PuVX+72uWDlUMUPCNXeuw6zydxf/rJMGlSad\n1w0UOCS3Rhr86v2Cx0dvf2zBHHp6LLGxOf60Wl4NMVoSyfskmKfqJH6sWnfYWtfFlZ+608ZwRJ/M\nkz5rD6+P7ou/b9Ko/FbL+zdWb5tItd9r2kzJ5c81HrSrDSod3PI7Tv7rH4+ZdaCTKXBIS9X7Ba82\nejvpi//3HzoZCEoaW3fvHT0WH8h3y+qNmQNYPBideOS0qpMZJvW+yfLUGb9u+pQ+Xnf4QUye1FvR\nyB5/rf5DpzL7kKljnsyjywqXpzwxs5qBNprmtCqbdlJvm0jWDhDRY/HAXa4yjQ8q7Z8xlf3uo928\n47MOdDIFDmmppC94llJItdHbSV/86NNq9As+9YBJFYFkKFw3Pcs8UKvXbx9df2ReOPK8WgBMmuIk\nSx19vNfOjj37+OngtjFTyMfv+fyBWYlpv3VN5bLCP1yzidkzKpf9jQbaaN18+X2yVNm0g3rbRNI6\nQJTcKwJmtcA9+5CpXPr2Y0YHlUZfa/7nf1JxbvzvuFMpcEhLJX3Bs5RCXnv4QRUZ8WsPPwhIrwuP\nZ+Abtu0KWCmhAAAPaElEQVQZ7TqbNudVVPzpspyJx8dyRK+vNq1ILeWAt2bDjorunrW6N8dfuxzs\nnt31YuUbWHqgjXbhLU+fcsPP1o9JZzvW2dfb4SJtmpvLT5/L5afPHXOsWpBKeq343+3UAyZlmqqk\n3SlwSEslfcGrLfoUdf0Fp7A4NkMtpNeFJ432ndzbwzcvPCV1zqu0tJS3a81dlJaucvXPD9dsYuee\nvUyb0sd7B2ZxaVgFVOvpuVb9f7U2EPdgsawrzjyWRyJdfJNeN/75RNXTwylre0u9GWr8M9m7v8RF\n1z+YOKNx3nTG05QnSF1/wSkVsxLE50HrVAoc0lJ5BtpFTZrUU1E3PFLy1AWTar121i9/1hl3szaA\nA2Oqf7bv2ce1d66jx15+8s+Stmoeio3sP6DXeHHEGd66m2vuXMf0Aydx0YI5qRl1PGBO6evlsFcf\nUFFlk0dST7P5Rx9c0QYD2VZPTPqdx4/9Ymjr6OJf0baFWoEhS+k3T8P9pEk9HHPoKyums0nqHdcu\n3aCzUuCQlkr6stSTUWZtZE+bMbeRiQaTSjNZq3CqnVfe3+g0FcOx3j77Y719drywv2ZbRTxgzps9\nncm9PWNWgEyS9DtO6mm2eecLFftuWb0xNfNM+53Hj02Z3FtxbbltodbfTVoje9aOAvH7P/HIaYkP\nH+04Oj6rwgOHmb0T+ArQC1zn7l+IHbfw+DnAHuBCd19jZkcANwG/R9DR7Rvu/pWi0yv1yfr0VO3L\nkvcLk7UXTaOZcJ6JBtdvG7sqYdxIycdMLR99vWb43Yv7K7bjs/uWpQW6aMBMmgE4a1VZWs+t+Cy+\nQ1t3p5ba0n7n8WMHTOphz96R0e1ym1itv5u00m/WjgLx+7/yzGO56qzjxjx8tOPo+KwKDRxm1gss\nA94BbARWmdlt7v5Y5LSzgbnhz6nA8vDf/cAVYRB5FbDazH4cu1baRFJVRHTq9HJG2qwvSzvMsxTv\nBZVlttT4IL8D+3rCKqBZuWfPreaEWIPsEdMPZMP2F8acV2vMR/kekjoCjPY227CDfSMl+nqMebMP\nTixdlHtufe+hZyqqbA6ffiDWY5k6KZTTW+13Hj/22sNehZnx+LPPV7SJxZ/+TzpyWsV7pJV+45N7\nVktvfN/DT+/kmxeekut+2l3RJY75wKC7DwOY2c3AuUA08z8XuMndHbjfzKaZ2WHu/izwLIC7P29m\na4GZsWulTSRVRcDYJ9RmfFmqzc/Uall7QUXFj72lf0ZFplJr9tx4Bp80Gj7ekeCbHzyZD9+0arTO\nH+C0Yw6p+MzSqk2SMtukBvjy8rzVem71x+r6J0/q5fyBWZk6KUC+HnQ/G9rOVWcdx7c/8qaK14iX\nvqLbtYJ2fHLPaunN+jfeznOF1VJ04JgJPBPZ3khQmqh1zkzCoAFgZrOBk4AHikikNK7aIDKozCyb\n8WVpZH6mIuQJhrXOrVUiSyrZJQXp+CCzV0zqHbOdtmZKWvBz4OGUdpryuJD47zg+x1l8UGP53GoZ\neFK14Wi7w5pNPPvbyu7HSfdw28ObK7b/+eHNfPyMY4H0qWJg7OSec2ZMTfz7zfo33slTrrd947iZ\nvRL4AfBJd++O0TNdqFqdOGRbHjaPdqsbzhMMa52bN7DEB5RV+yxqvW7a8Uee3llxbrkrb9KDQrl0\nUV5sa/X67VwwvI2+3h4Gjpw2pitw0t9DnjVL4u0O8bSMEX++iGzXmiomHvj+YN6sxAeWTg4IWRUd\nODYBR0S2Z4X7Mp1jZn0EQeM77n5LtTcxs6XA55qQXqlT9MtSSphJtpnGs2642tNw1oyi1rnlz6rc\ndrB6/XaW3TM4WiUVnx8pPsCs3mqRtCf/+HuWBwdO6etlz76XG6D7D53KxQvm8LW7n+T6nz1VMdU+\nBDPIlgdgpskyu0D58yhPYBkVXXEx7ryTZlYEmvJyvlB7qphOrlrKysyi9XFXu/vSxPO8So+LJiVi\nErAOOIMgGKwCPuDuj0bOeRdwGUGvqlOBr7r7/LC31Y3Adnf/ZM739SLvS8ZXUmBqVVVVfGBcfDqQ\not4nvqJfeX6kjy2Yw9/VOeNv3jRUm5Op7KqzjgOoOnAw6fykzy7pM46/bvzziLrizGOrLmWc9rdT\nKjkXRKa1T0tjNzIz3D3TH0+hJQ53329mlwF3EHTH/Za7P2pmS8LjK4DbCYLGIEF33MXh5W8FPgj8\n2sweCff9hbvfXmSapf2NZ1VAq6rJalVJledHguL6/lebkyneyyr6hB+fBSDP65cllbo2bK9cQ/3+\n4W0V21P6ejls2gGcd9JMDBKrumo1flebKqaTB+oVpfA2jjCjvz22b0Xk/w5cmnDdTxlbIykyrlpV\nTTame2nGKqki01B+z6S0rdmwg+Urh8b0wKr1+kmSFkqK2zdSWaNw6enHpHYfhuSeY+W2mPL8XNEV\nFy9eMIflK4cmxMJMebV947hII5r9tNiqeu74+yRVSRUtbebY8v744MArzzyWK848dnR0teMMb325\ntFBtCviytEWqDp7Sx/Y9le0m5dLOxQvmjE5BEx9gWQ5QSaXFpGBS/n98huPodROdAod0tVrTOuQN\nLK2qJkt6n1a8b5bPI5q2+NN9ebBbeVbZeKmh2hTwZWmLVE2fOnlM4Fh82tGJpZNyI3w0QCWVoNKC\nQLUp0DtpoF5RFDikq+UdFwETuxoi7+dRrTorOrJ8wdwZFSPL08R/P9ESSsm9okfUgrkzqk7fUZ4F\nOSqpBLV85VDVqrV49WD/jKmjS+pOdAoc0tUaHXA30eT9PKpVZ1Vbx6SW+O8rWkIplbxqb6ksbU9J\npbjRaWNii1gtmDuD6y84pbAea51OgUO6WqMD7iaavJ9Htaq7egNy2u+r2sjxpBUa8y7kFF3Eqp7x\nORNNoeM4xovGcXS/ZjV6j+eYkGZrxmfSrM+j0fEuWe+lVeNqJoK2GcchUpRmtU1001NlMz6TZn0e\njfY+y3ovqmocHwoc0pGUYYzVTp9JWrVSNJhUWz42672oqnF8KHBIR1KGMVa7fybVxkwklSwmwtTk\nnUyBQzqSMoyx2v0zyVKKKO+bCFOTdzIFDulIyjDGavfPpFopImlfu9/LRKfAISINydoDKq0U0a6l\nJEmm7rgi0hB1ie0Oebrjpq+oIiJSQzv15pLWUOAQkYYkLUMr3U1tHCLSkHbvzSXNpzYOERFRG4eI\niBRHgUNERHJR4BARkVwUOEREJBcFDhERyUWBQ0REclHgEBGRXBQ4REQkFwUOERHJRYFDRERyUeAQ\nEZFcFDhERCQXBQ4REclFgUNERHJR4BARkVwUOEREJBcFDhERyaXwwGFm7zSzJ8xs0Mw+k3DczOyr\n4fFfmdlA1mtFRKT1Cg0cZtYLLAPOBk4A3m9mJ8ROOxuYG/5cDCzPca2IiLRY0SWO+cCguw+7+17g\nZuDc2DnnAjd54H5gmpkdlvFaERFpsaIDx0zgmcj2xnBflnOyXCsiIi2mxnEREcllUsGvvwk4IrI9\nK9yX5Zy+DNcCYGZLgc/F9tWVYBGRicrMPLJ5tbsvTTzP3ZP2NysRk4B1wBkEmf4q4APu/mjknHcB\nlwHnAKcCX3X3+VmubQUzc3fviiike2lPupf2pHuprtASh7vvN7PLgDuAXuBb7v6omS0Jj68AbicI\nGoPAHmBx2rVFpldERGortMTRDfTU0Z50L+1J99Kemn0vahyv7erxTkAT6V7ak+6lPeleqlCJQ0RE\nclGJQ0REclHgEBGRXCZs4OimyRfrvRczO8LM7jGzx8zsUTP7ROtTPyatdf9ewuO9Zvawmf2odamu\nrsG/s2lm9n0ze9zM1prZm1ub+jFpbeRePhv+nf3GzL5rZge0NvVj0lrrXo43s1+Y2UtmdmWea1ut\n3ntp6Pvv7hPuh6B77xAwB5gM/BI4IXbOOcC/AQa8CXgg67UddC+HAQPh/19FMG6mI+8lcvzPgH8E\nftTJf2fhsRuBj4T/nwxM68R7AWYDTwEHhtvfAy5s83t5DXAK8HngyjzXdtC91P39n6gljm6afLHu\ne3H3Z919DYC7Pw+sZXznA2vk94KZzQLeBVzXykSnqPt+zOzVwNuAbwK4+15339nKxMc08rvZBewD\nDrRgYO8UYHML0x5X817c/Tl3X0WQ7lzXtljd99LI93+iBo5umnyxkXsZZWazgZOAB5qewuwavZcv\nA58GSkUlMKdG7udoYAtwfVj1dp2ZTS0ysTXUfS/uvh24BngaeBb4rbvfWWBaa2nkO9yJ3/+a8n7/\nJ2rgkAgzeyXwA+CT7r5rvNNTDzN7N/Ccu68e77Q0ySRgAFju7icBu4Fxr0+vh5n1A58iCIaHA1PN\n7E/GN1VSVs/3f6IGjkYmX8xybSs1ci+YWR/BH8133P2WAtOZRSP38lbgPWa2nqC4frqZfbu4pGbS\nyP1sBDa6e/kJ8PsEgWS8NHIvJwM/d/ct7r4PuAV4S4FpraWR73Anfv+rqvv7P16NOuP5Q/A0N0zw\nBFRuUHpd7Jx3UdnQ92DWazvoXgy4CfjyeP9OGr2X2DmLaI/G8YbuB7gPOC78/1Lgi514L8CJwKME\nbRtG0Oh/eTvfS+TcpVQ2KHfc9z/lXur+/o/LzbbDD0EPkHUEPRL+Mty3BFgS+VCXhcd/DZycdm0n\n3gtwGuDAr4BHwp9zOvFeYq+xiDYIHE34OzsReCj8/dwKTO/ge/lz4DHgN8A/AK9o83v5fYJS3y5g\nZ/j/g6pd24n30sj3X1OOiIhILhO1jUNEROqkwCEiIrkocIiISC4KHCIikosCh4iI5KLAISIiuShw\niIhILgocIiKSiwKHSJ3MbHa4yNINZrbOzP7RzM40s5+b2ZNmNt/MpprZt8zswXCW23Mj195nZmvC\nn7eE+xeZ2b2RBZy+Y2Y2vncqUkkjx0XqFE5FPUgwHfWjwCqC6Rs+DLwHWEwwzcZj7v5tM5sGPBie\n70DJ3V80s7nAd939ZDNbBPwz8DqCNSt+Blzl7j9t4a2JpJo03gkQ6XBPufuvAczsUeAn7u5m9muC\nle9mEczaW16y8wDgSIKg8L/N7ERgBDg28poPuvvG8DUfCV9HgUPahgKHSGNeivy/FNkuEXy/RoA/\ncPcnoheZ2VLgP4A3ElQZv1jlNUfQ91TajNo4RIp1B3B5uZ3CzE4K978aeNbdS8AHCdaOFukIChwi\nxfproA/4VViV9dfh/q8DF5jZL4HjCVb4E+kIahwXEZFcVOIQEZFcFDhERCQXBQ4REclFgUNERHJR\n4BARkVwUOEREJBcFDhERyUWBQ0REcvn/LoeoUWOZMN0AAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Extract the scatter tally data from pandas\n", "scatter = df[df['score'] == 'scatter']\n", @@ -2385,32 +2130,11 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n9OnTh2bNmtGmTRsuu+wyioqKSt/PzLjvvvvYdddd2W677fjDH/7A3Llz6dOnD02bNmXo0KEbrZ8J\nSggi0mBcccUVXHHFFaxatYq5c+dy8sknA/Dmm28CsGLFClavXk2fPn0YOXIkI0eO5LXXXuOrr75i\n9erVXHbZZQB89tlnXHLJJTz++OMsXryYlStXlna8s97YsWMZMmQIK1as4LTTTiMej3PXXXexfPly\npkyZwqRJk7jvvvs22ubll1/mo48+4t133+WOO+7gvPPO4/HHH+ebb75hxowZjBo1KqPlo4QgIvXe\n4MGDadasWelwySWXlLteTk4Oc+bMYfny5eTn57P//vtv8T0ff/xxrr76ajp37kx+fj5/+ctfGD16\nNCUlJTz11FMce+yx9OvXj9zcXG6++ebNemnr06cPgwcPJhaL0bhxY/bee2/2339/EokEHTt25MIL\nL+SNN97YaJvrrruOJk2a0K1bN7p3786RRx5J586dadq0KYMGDWLatGnVL6wKKCGISL337LPPsmLF\nitJh01/e640YMYJZs2bRpUsX9tlnH55//vktvueiRYvo0KFD6XSHDh0oKSlhyZIlLFq0iPbt25cu\n22abbWjRosVG25ddDjBr1iyOOeYYWrduTZMmTbjxxhtZvnz5Ruu0atWqdLxx48abTa9evbqCUqg+\nJQQRaTB22203Ro0axdKlS7n++usZMmQIa9asKbcP5rZt2zJ//vzS6W+++YZEIkGrVq1o06YNCxYs\nKF22bt06vv/++4223/Q9L774Yrp06cLs2bNZtWoVf/7zn+tcHxNKCCLSYDz22GMsW7aMWCxGs2bN\nAIjFYuy4447EYjG++uqr0nVPPfVU7rrrLr7++mtWr17NjTfeyNChQ0kkEgwZMoRx48YxefJkioqK\nKCgoqPTL/aeffqJJkybk5+fzxRdfVNjvc1Qa7g23IlIt9fG5kPHjx3P11Vezdu1aOnTowOjRo2nc\nuDEAw4YNo2/fvhQXFzN+/HjOPfdcFi1aRP/+/fn555854ogjuOeee4DgYbd77rmHU045hTVr1nDl\nlVfSsmVL8vLytrjvO++8kwsuuIA77riDnj17MnToUF599dVaOe50qQtNybiqPmimB9PqHnWhWbHV\nq1fTrFkzZs+eTadOnSKLQ11oiohEYNy4caxdu5Y1a9ZwzTXX0KNHDzp27Bh1WNWiKiOpEZluxkCk\n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\nSUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Plot a histogram and kernel density estimate for the scattering rates\n", "scatter['mean'].plot(kind='hist', bins=25)\n", diff --git a/openmc/filter.py b/openmc/filter.py index b0e59874b..840482e85 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -1,4 +1,4 @@ -from collections import Iterable +from collections import Iterable, OrderedDict import copy from numbers import Real, Integral import sys @@ -516,7 +516,7 @@ class Filter(object): return filter_bin - def get_pandas_dataframe(self, data_size, summary=None): + def get_pandas_dataframe(self, data_size, distribcell_paths=False): """Builds a Pandas DataFrame for the Filter's bins. This method constructs a Pandas DataFrame object for the filter with @@ -531,12 +531,10 @@ class Filter(object): ---------- data_size : Integral The total number of bins in the tally corresponding to this filter - summary : None or openmc.Summary - An optional Summary object to be used to construct columns for - distribcell tally filters (default is None). The geometric + distribcell_paths : bool + Construct columns for distribcell tally filters. The geometric information in the Summary object is embedded into a Multi-index column with a geometric "path" to each distribcell instance. - NOTE: This option requires the OpenCG Python package. Returns ------- @@ -554,7 +552,7 @@ class Filter(object): 1. a single column with the cell instance IDs (without summary info) 2. separate columns for the cell IDs, universe IDs, and lattice IDs - and x,y,z cell indices corresponding to each (with summary info). + and x,y,z cell indices corresponding to each (distribcell paths). For 'energy' and 'energyout' filters, the DataFrame includes one column for the lower energy bound and one column for the upper @@ -566,8 +564,7 @@ class Filter(object): Raises ------ ImportError - When Pandas is not installed, or summary info is requested but - OpenCG is not installed. + When Pandas is not installed See also -------- @@ -626,106 +623,108 @@ class Filter(object): elif self.type == 'distribcell': level_df = None - if isinstance(summary, Summary): - # Attempt to import the OpenCG package - try: - import opencg - except ImportError: - msg = 'The OpenCG package must be installed ' \ - 'to use a Summary for distribcell dataframes' - raise ImportError(msg) + # Create Pandas Multi-index columns for each level in CSG tree + if distribcell_paths: - # Extract the OpenCG geometry from the Summary - opencg_geometry = summary.opencg_geometry - openmc_geometry = summary.openmc_geometry + # FIXME: Make assumption that each path is the same length??? + # NOTE: Just state this caveat in the docstring - # Use OpenCG to compute the number of regions - opencg_geometry.initialize_cell_offsets() - num_regions = opencg_geometry.num_regions - - # Initialize a dictionary mapping OpenMC distribcell - # offsets to OpenCG LocalCoords linked lists - offsets_to_coords = {} - - for offset, path in enumerate(self.distribcell_paths): - region = opencg_geometry.get_region_from_path(path) - coords = opencg_geometry.find_region(region) - offsets_to_coords[offset] = coords - - # Each distribcell offset is a DataFrame bin - # Unravel the paths into DataFrame columns - num_offsets = len(offsets_to_coords) - - # Initialize termination condition for while loop + distribcell_paths = copy.deepcopy(self.distribcell_paths) + num_offsets = len(distribcell_paths) levels_remain = True - counter = 0 + level_counter = 0 - # Iterate over each level in the CSG tree hierarchy + # FIXME: Allocate NumPy arrays for each CSG level while levels_remain: - levels_remain = False + level_counter += 1 + level_key = 'level {}'.format(level_counter) + first_path = distribcell_paths[0] + level_dict = OrderedDict() - # Initialize dictionary to build Pandas Multi-index - # column for this level in the CSG tree hierarchy - level_dict = {} + next_index = first_path.index('-') + level = first_path[:next_index] + first_path = first_path[next_index+2:] - # Initialize prefix Multi-index keys - counter += 1 - level_key = 'level {0}'.format(counter) - univ_key = (level_key, 'univ', 'id') - cell_key = (level_key, 'cell', 'id') - lat_id_key = (level_key, 'lat', 'id') - lat_x_key = (level_key, 'lat', 'x') - lat_y_key = (level_key, 'lat', 'y') - lat_z_key = (level_key, 'lat', 'z') + # This level is a lattice (e.g., ID(x,y,z)) + if '(' in level: + level_type = 'lattice' - # Allocate NumPy arrays for each CSG level and - # each Multi-index column in the DataFrame - level_dict[univ_key] = np.empty(num_offsets) - level_dict[cell_key] = np.empty(num_offsets) - level_dict[lat_id_key] = np.empty(num_offsets) - level_dict[lat_x_key] = np.empty(num_offsets) - level_dict[lat_y_key] = np.empty(num_offsets) - level_dict[lat_z_key] = np.empty(num_offsets) + # Initialize prefix Multi-index keys + lat_id_key = (level_key, 'lat', 'id') + lat_x_key = (level_key, 'lat', 'x') + lat_y_key = (level_key, 'lat', 'y') + lat_z_key = (level_key, 'lat', 'z') - # Initialize Multi-index columns to NaN - this is - # necessary since some distribcell instances may - # have very different LocalCoords linked lists - level_dict[univ_key][:] = np.NAN - level_dict[cell_key][:] = np.NAN - level_dict[lat_id_key][:] = np.NAN - level_dict[lat_x_key][:] = np.NAN - level_dict[lat_y_key][:] = np.NAN - level_dict[lat_z_key][:] = np.NAN + # Allocate NumPy arrays for each CSG level and + # each Multi-index column in the DataFrame + level_dict[lat_id_key] = np.empty(num_offsets) + level_dict[lat_x_key] = np.empty(num_offsets) + level_dict[lat_y_key] = np.empty(num_offsets) + level_dict[lat_z_key] = np.empty(num_offsets) - # Iterate over all regions (distribcell instances) - for offset in range(num_offsets): - coords = offsets_to_coords[offset] + # This level is a universe / cell (e.g., ID->ID) + else: + level_type = 'universe' - # If entire LocalCoords has been unraveled into - # Multi-index columns already, continue - if coords is None: - continue - - # Assign entry to Universe Multi-index column - if coords._type == 'universe': - level_dict[univ_key][offset] = coords._universe._id - level_dict[cell_key][offset] = coords._cell._id - - # Assign entry to Lattice Multi-index column + # Pop off the cell ID from the path + if '-' in first_path: + next_index = first_path.index('-') + level = first_path[:next_index] + first_path = first_path[next_index+2:] else: - # Reverse y index per lattice ordering in OpenCG - level_dict[lat_id_key][offset] = coords._lattice._id - level_dict[lat_x_key][offset] = coords._lat_x - level_dict[lat_y_key][offset] = \ - coords._lattice.dimension[1] - coords._lat_y - 1 - level_dict[lat_z_key][offset] = coords._lat_z + levels_remain = False + + # Initialize prefix Multi-index keys + univ_key = (level_key, 'univ', 'id') + cell_key = (level_key, 'cell', 'id') + + # Allocate NumPy arrays for each CSG level and + # each Multi-index column in the DataFrame + level_dict[univ_key] = np.empty(num_offsets) + level_dict[cell_key] = np.empty(num_offsets) + + # Populate Multi-index arrays with all distribcell paths + for i, path in enumerate(distribcell_paths): + + if level_type == 'lattice': + # Extract lattice ID, indices from path + next_index = path.index('-') + lat_id_indices = path[:next_index] + + # Trim lattice info from distribcell path + distribcell_paths[i] = path[next_index+2:] + + # Extract the lattice cell indices from the path + i1 = lat_id_indices.index('(') + i2 = lat_id_indices.index(')') + i3 = lat_id_indices[i1+1:i2] + + # Assign entry to Lattice Multi-index column + level_dict[lat_id_key][i] = path[:i1] + level_dict[lat_x_key][i] = int(i3.split(',')[0]) - 1 + level_dict[lat_y_key][i] = int(i3.split(',')[1]) - 1 + level_dict[lat_z_key][i] = int(i3.split(',')[2]) - 1 - # Move to next node in LocalCoords linked list - if coords._next is None: - offsets_to_coords[offset] = None else: - offsets_to_coords[offset] = coords._next - levels_remain = True + # Extract universe ID from path + next_index = path.index('-') + universe_id = int(path[:next_index]) + + # Trim universe info from distribcell path + path = path[next_index+2:] + + # Extract cell ID from path + if '-' in path: + next_index = path.index('-') + cell_id = int(path[:next_index]) + distribcell_paths[i] = path[next_index+2:] + else: + cell_id = int(path) + distribcell_paths[i] = '' + + # Assign entry to Universe, Cell Multi-index columns + level_dict[univ_key][i] = universe_id + level_dict[cell_key][i] = cell_id # Tile the Multi-index columns for level_key, level_bins in level_dict.items(): diff --git a/openmc/tallies.py b/openmc/tallies.py index 90b09f582..6bd55b20f 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1538,8 +1538,8 @@ class Tally(object): return data - def get_pandas_dataframe(self, filters=True, nuclides=True, - scores=True, summary=None, float_format='{:.2e}'): + def get_pandas_dataframe(self, filters=True, nuclides=True, scores=True, + distribcell_paths=False, float_format='{:.2e}'): """Build a Pandas DataFrame for the Tally data. This method constructs a Pandas DataFrame object for the Tally data @@ -1557,12 +1557,10 @@ class Tally(object): Include columns with nuclide bin information (default is True). scores : bool Include columns with score bin information (default is True). - summary : None or openmc.Summary - An optional Summary object to be used to construct columns for - distribcell tally filters (default is None). The geometric + distribcell_paths : bool + Construct columns for distribcell tally filters. The geometric information in the Summary object is embedded into a Multi-index - column with a geometric "path" to each distribcell intance. - NOTE: This option requires the OpenCG Python package. + column with a geometric "path" to each distribcell instance. float_format : str All floats in the DataFrame will be formatted using the given format string before printing. @@ -1588,13 +1586,15 @@ class Tally(object): msg = 'The Tally ID="{0}" has no data to return'.format(self.id) raise KeyError(msg) + ''' # If using Summary, ensure StatePoint.link_with_summary(...) was called - if summary and not self.with_summary: + if distribcell_pathssummary and not self.with_summary: msg = 'The Tally ID="{0}" has not been linked with the Summary. ' \ 'Call the StatePoint.link_with_summary(...) method ' \ 'before using Tally.get_pandas_dataframe(...) with ' \ 'Summary info'.format(self.id) raise KeyError(msg) + ''' # Initialize a pandas dataframe for the tally data import pandas as pd @@ -1608,7 +1608,8 @@ class Tally(object): # Append each Filter's DataFrame to the overall DataFrame for self_filter in self.filters: - filter_df = self_filter.get_pandas_dataframe(data_size, summary) + filter_df = self_filter.get_pandas_dataframe( + data_size, distribcell_paths) df = pd.concat([df, filter_df], axis=1) # Include DataFrame column for nuclides if user requested it From 615cec9e96f11e4dc45f7d271cfc809970aba425 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 30 Apr 2016 09:45:40 -0400 Subject: [PATCH 122/259] Improved comments for Pandas DataFrames distribcell path construction --- .../examples/pandas-dataframes.ipynb | 319 ++++++++++++++++-- openmc/filter.py | 40 ++- 2 files changed, 321 insertions(+), 38 deletions(-) diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index c9e73caac..57b4b06fb 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -374,7 +374,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTMwVDA5OjMx\nOjI5LTA0OjAwzUliGgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0zMFQwOTozMToyOS0wNDow\nMLwU2qYAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTMwVDA5OjQ0\nOjQ1LTA0OjAwA5TfLgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0zMFQwOTo0NDo0NS0wNDow\nMHLJZ5IAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -538,13 +538,135 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " .d88888b. 888b d888 .d8888b.\n", + " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", + " 888 888 88888b.d88888 888 888\n", + " 888 888 88888b. .d88b. 88888b. 888Y88888P888 888 \n", + " 888 888 888 \"88b d8P Y8b 888 \"88b 888 Y888P 888 888 \n", + " 888 888 888 888 88888888 888 888 888 Y8P 888 888 888\n", + " Y88b. .d88P 888 d88P Y8b. 888 888 888 \" 888 Y88b d88P\n", + " \"Y88888P\" 88888P\" \"Y8888 888 888 888 888 \"Y8888P\"\n", + "__________________888______________________________________________________\n", + " 888\n", + " 888\n", + "\n", + " Copyright: 2011-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.org/en/latest/license.html\n", + " Version: 0.7.1\n", + " Git SHA1: 5863cc5c9906ae7b2ec15efbf793b22b9c7f7dcb\n", + " Date/Time: 2016-04-30 09:44:46\n", + " MPI Processes: 1\n", + " OpenMP Threads: 4\n", + "\n", + " ===========================================================================\n", + " ========================> INITIALIZATION <=========================\n", + " ===========================================================================\n", + "\n", + " Reading settings XML file...\n", + " Reading cross sections XML file...\n", + " Reading geometry XML file...\n", + " Reading materials XML file...\n", + " Reading tallies XML file...\n", + " Building neighboring cells lists for each surface...\n", + " Loading ACE cross section table: 92235.71c\n", + " Loading ACE cross section table: 92238.71c\n", + " Loading ACE cross section table: 8016.71c\n", + " Loading ACE cross section table: 1001.71c\n", + " Loading ACE cross section table: 5010.71c\n", + " Loading ACE cross section table: 40090.71c\n", + " Maximum neutron transport energy: 20.0000 MeV for 92235.71c\n", + " Initializing source particles...\n", + "\n", + " ===========================================================================\n", + " ====================> K EIGENVALUE SIMULATION <====================\n", + " ===========================================================================\n", + "\n", + " Bat./Gen. k Average k \n", + " ========= ======== ==================== \n", + " 1/1 0.55921 \n", + " 2/1 0.63816 \n", + " 3/1 0.68834 \n", + " 4/1 0.71192 \n", + " 5/1 0.67935 \n", + " 6/1 0.68274 \n", + " 7/1 0.66339 0.67307 +/- 0.00967\n", + " 8/1 0.65835 0.66816 +/- 0.00743\n", + " 9/1 0.66697 0.66786 +/- 0.00527\n", + " 10/1 0.70498 0.67528 +/- 0.00847\n", + " 11/1 0.68596 0.67706 +/- 0.00714\n", + " 12/1 0.68481 0.67817 +/- 0.00614\n", + " 13/1 0.68369 0.67886 +/- 0.00536\n", + " 14/1 0.68785 0.67986 +/- 0.00483\n", + " 15/1 0.66145 0.67802 +/- 0.00470\n", + " 16/1 0.71831 0.68168 +/- 0.00561\n", + " 17/1 0.68428 0.68190 +/- 0.00512\n", + " 18/1 0.67527 0.68139 +/- 0.00474\n", + " 19/1 0.68166 0.68141 +/- 0.00439\n", + " 20/1 0.65475 0.67963 +/- 0.00446\n", + " Triggers unsatisfied, max unc./thresh. is 1.07581 for absorption in tally 10002\n", + " The estimated number of batches is 23\n", + " Creating state point statepoint.020.h5...\n", + " 21/1 0.64538 0.67749 +/- 0.00469\n", + " 22/1 0.73275 0.68074 +/- 0.00547\n", + " 23/1 0.71674 0.68274 +/- 0.00553\n", + " Triggers satisfied for batch 23\n", + " Creating state point statepoint.023.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 4.1400E-01 seconds\n", + " Reading cross sections = 9.3000E-02 seconds\n", + " Total time in simulation = 4.6240E+00 seconds\n", + " Time in transport only = 4.5580E+00 seconds\n", + " Time in inactive batches = 6.9200E-01 seconds\n", + " Time in active batches = 3.9320E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 1.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 5.0530E+00 seconds\n", + " Calculation Rate (inactive) = 18063.6 neutrons/second\n", + " Calculation Rate (active) = 9537.13 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 0.67952 +/- 0.00434\n", + " k-effective (Track-length) = 0.68274 +/- 0.00553\n", + " k-effective (Absorption) = 0.68095 +/- 0.00369\n", + " Combined k-effective = 0.67994 +/- 0.00349\n", + " Leakage Fraction = 0.34133 +/- 0.00332\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Remove old HDF5 (summary, statepoint) files\n", - "#!rm statepoint.*\n", + "!rm statepoint.*\n", "\n", "# Run OpenMC!\n", - "#openmc.run()()" + "openmc.run()" ] }, { @@ -995,7 +1117,7 @@ "data": { "image/png": "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\nSWry/wHxFqsYpaO7aQAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1018,7 +1140,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1029,7 +1151,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1398,7 +1520,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Print the distribcell tally dataframe **without** OpenCG info" + "Print the distribcell tally dataframe **without** distribcell paths" ] }, { @@ -1608,12 +1730,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Print the distribcell tally dataframe **with** OpenCG info" + "Print the distribcell tally dataframe **with** distribcell paths" ] }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "metadata": { "collapsed": false }, @@ -2017,7 +2139,7 @@ "577 2.01e-02 6.75e-04 " ] }, - "execution_count": 35, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -2032,11 +2154,97 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
meanstd. dev.
count2.89e+022.89e+02
mean4.19e-042.24e-05
std2.42e-049.14e-06
min1.90e-053.44e-06
25%2.02e-041.56e-05
50%4.05e-042.20e-05
75%6.07e-042.89e-05
max9.19e-044.95e-05
\n", + "
" + ], + "text/plain": [ + " mean std. dev.\n", + " \n", + " \n", + "count 2.89e+02 2.89e+02\n", + "mean 4.19e-04 2.24e-05\n", + "std 2.42e-04 9.14e-06\n", + "min 1.90e-05 3.44e-06\n", + "25% 2.02e-04 1.56e-05\n", + "50% 4.05e-04 2.20e-05\n", + "75% 6.07e-04 2.89e-05\n", + "max 9.19e-04 4.95e-05" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Show summary statistics for absorption distribcell tally data\n", "absorption = df[df['score'] == 'absorption']\n", @@ -2055,11 +2263,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mann-Whitney Test p-value: 6.038663783e-42\n" + ] + } + ], "source": [ "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", @@ -2085,11 +2301,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mann-Whitney Test p-value: 0.303583331507\n" + ] + } + ], "source": [ "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", @@ -2113,11 +2337,43 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:4: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Extract the scatter tally data from pandas\n", "scatter = df[df['score'] == 'scatter']\n", @@ -2130,11 +2386,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n9OnTh2bNmtGmTRsuu+wyioqKSt/PzLjvvvvYdddd2W677fjDH/7A3Llz6dOnD02bNmXo0KEbrZ8J\nSggi0mBcccUVXHHFFaxatYq5c+dy8sknA/Dmm28CsGLFClavXk2fPn0YOXIkI0eO5LXXXuOrr75i\n9erVXHbZZQB89tlnXHLJJTz++OMsXryYlStXlna8s97YsWMZMmQIK1as4LTTTiMej3PXXXexfPly\npkyZwqRJk7jvvvs22ubll1/mo48+4t133+WOO+7gvPPO4/HHH+ebb75hxowZjBo1KqPlo4QgIvXe\n4MGDadasWelwySWXlLteTk4Oc+bMYfny5eTn57P//vtv8T0ff/xxrr76ajp37kx+fj5/+ctfGD16\nNCUlJTz11FMce+yx9OvXj9zcXG6++ebNemnr06cPgwcPJhaL0bhxY/bee2/2339/EokEHTt25MIL\nL+SNN97YaJvrrruOJk2a0K1bN7p3786RRx5J586dadq0KYMGDWLatGnVL6wKKCGISL337LPPsmLF\nitJh01/e640YMYJZs2bRpUsX9tlnH55//vktvueiRYvo0KFD6XSHDh0oKSlhyZIlLFq0iPbt25cu\n22abbWjRosVG25ddDjBr1iyOOeYYWrduTZMmTbjxxhtZvnz5Ruu0atWqdLxx48abTa9evbqCUqg+\nJQQRaTB22203Ro0axdKlS7n++usZMmQIa9asKbcP5rZt2zJ//vzS6W+++YZEIkGrVq1o06YNCxYs\nKF22bt06vv/++4223/Q9L774Yrp06cLs2bNZtWoVf/7zn+tcHxNKCCLSYDz22GMsW7aMWCxGs2bN\nAIjFYuy4447EYjG++uqr0nVPPfVU7rrrLr7++mtWr17NjTfeyNChQ0kkEgwZMoRx48YxefJkioqK\nKCgoqPTL/aeffqJJkybk5+fzxRdfVNjvc1Qa7g23IlIt9fG5kPHjx3P11Vezdu1aOnTowOjRo2nc\nuDEAw4YNo2/fvhQXFzN+/HjOPfdcFi1aRP/+/fn555854ogjuOeee4DgYbd77rmHU045hTVr1nDl\nlVfSsmVL8vLytrjvO++8kwsuuIA77riDnj17MnToUF599dVaOe50qQtNybiqPmimB9PqHnWhWbHV\nq1fTrFkzZs+eTadOnSKLQ11oiohEYNy4caxdu5Y1a9ZwzTXX0KNHDzp27Bh1WNWiKiOpEZluxkCk\n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\nSUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Plot a histogram and kernel density estimate for the scattering rates\n", "scatter['mean'].plot(kind='hist', bins=25)\n", diff --git a/openmc/filter.py b/openmc/filter.py index 840482e85..ff21f4e93 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -535,6 +535,9 @@ class Filter(object): Construct columns for distribcell tally filters. The geometric information in the Summary object is embedded into a Multi-index column with a geometric "path" to each distribcell instance. + NOTE: This option assumes that all distribcell paths are of the same + length and do not have the same universes and cells but different + lattice cell indices. Returns ------- @@ -626,25 +629,32 @@ class Filter(object): # Create Pandas Multi-index columns for each level in CSG tree if distribcell_paths: - # FIXME: Make assumption that each path is the same length??? - # NOTE: Just state this caveat in the docstring - + # Make copy of array of distribcell paths to use in + # Pandas Multi-index column construction distribcell_paths = copy.deepcopy(self.distribcell_paths) num_offsets = len(distribcell_paths) - levels_remain = True - level_counter = 0 - # FIXME: Allocate NumPy arrays for each CSG level + # Loop over CSG levels in the distribcell paths + level_counter = 0 + levels_remain = True while levels_remain: + + # Use level key as first index in Pandas Multi-index column level_counter += 1 level_key = 'level {}'.format(level_counter) - first_path = distribcell_paths[0] - level_dict = OrderedDict() + # Use the first distribcell path to determine if level + # is a universe/cell or lattice level + first_path = distribcell_paths[0] next_index = first_path.index('-') level = first_path[:next_index] + + # Trim universe/lattice info from path first_path = first_path[next_index+2:] + # Create a dictionary for this level for Pandas Multi-index + level_dict = OrderedDict() + # This level is a lattice (e.g., ID(x,y,z)) if '(' in level: level_type = 'lattice' @@ -666,14 +676,6 @@ class Filter(object): else: level_type = 'universe' - # Pop off the cell ID from the path - if '-' in first_path: - next_index = first_path.index('-') - level = first_path[:next_index] - first_path = first_path[next_index+2:] - else: - levels_remain = False - # Initialize prefix Multi-index keys univ_key = (level_key, 'univ', 'id') cell_key = (level_key, 'cell', 'id') @@ -683,6 +685,10 @@ class Filter(object): level_dict[univ_key] = np.empty(num_offsets) level_dict[cell_key] = np.empty(num_offsets) + # Determine any levels remain in path + if '-' not in first_path: + levels_remain = False + # Populate Multi-index arrays with all distribcell paths for i, path in enumerate(distribcell_paths): @@ -739,7 +745,7 @@ class Filter(object): else: level_df = pd.concat([level_df, pd.DataFrame(level_dict)], axis=1) - # Create DataFrame column for distribcell instances IDs + # Create DataFrame column for distribcell instance IDs # NOTE: This is performed regardless of whether the user # requests Summary geometric information filter_bins = np.arange(self.num_bins) From 5e6de55a47955167e5c5cc2b50d58f2d112b3a82 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 30 Apr 2016 14:00:24 -0400 Subject: [PATCH 123/259] Updated MGXS.get_pandas_dataframe(...) method to use distribcell_paths parameter --- openmc/mgxs/mgxs.py | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 33255de30..d7ba0117d 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1346,7 +1346,7 @@ class MGXS(object): modified.write('\n\\end{document}') def get_pandas_dataframe(self, groups='all', nuclides='all', - xs_type='macro', summary=None): + xs_type='macro', distribcell_paths=False): """Build a Pandas DataFrame for the MGXS data. This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but @@ -1366,12 +1366,9 @@ class MGXS(object): xs_type: {'macro', 'micro'} Return macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - summary : None or openmc.Summary - An optional Summary object to be used to construct columns for - distribcell tally filters (default is None). The geometric - information in the Summary object is embedded into a multi-index - column with a geometric "path" to each distribcell intance. - NOTE: This option requires the OpenCG Python package. + distribcell_paths : list of str + The paths traversed through the CSG tree to reach each distribcell + instance (for 'distribcell' filters only) Returns ------- @@ -1398,7 +1395,8 @@ class MGXS(object): # Use tally summation to sum across all nuclides query_nuclides = self.get_all_nuclides() xs_tally = self.xs_tally.summation(nuclides=query_nuclides) - df = xs_tally.get_pandas_dataframe(summary=summary) + df = xs_tally.get_pandas_dataframe( + distribcell_paths=distribcell_paths) # Remove nuclide column since it is homogeneous and redundant df.drop('nuclide', axis=1, inplace=True) @@ -1406,14 +1404,16 @@ class MGXS(object): # If the user requested a specific set of nuclides elif self.by_nuclide and nuclides != 'all': xs_tally = self.xs_tally.get_slice(nuclides=nuclides) - df = xs_tally.get_pandas_dataframe(summary=summary) + df = xs_tally.get_pandas_dataframe( + distribcell_paths=distribcell_paths) # If the user requested all nuclides, keep nuclide column in dataframe else: - df = self.xs_tally.get_pandas_dataframe(summary=summary) + df = self.xs_tally.get_pandas_dataframe( + distribcell_paths=distribcell_paths) # Remove the score column since it is homogeneous and redundant - if summary and 'distribcell' in self.domain_type: + if distribcell_paths and 'distribcell' in self.domain_type: df = df.drop('score', level=0, axis=1) else: df = df.drop('score', axis=1) @@ -2557,7 +2557,7 @@ class Chi(MGXS): return xs def get_pandas_dataframe(self, groups='all', nuclides='all', - xs_type='macro', summary=None): + xs_type='macro', distribcell_paths=False): """Build a Pandas DataFrame for the MGXS data. This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but @@ -2577,12 +2577,9 @@ class Chi(MGXS): xs_type: {'macro', 'micro'} Return macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - summary : None or openmc.Summary - An optional Summary object to be used to construct columns for - distribcell tally filters (default is None). The geometric - information in the Summary object is embedded into a multi-index - column with a geometric "path" to each distribcell intance. - NOTE: This option requires the OpenCG Python package. + distribcell_paths : list of str + The paths traversed through the CSG tree to reach each distribcell + instance (for 'distribcell' filters only) Returns ------- @@ -2598,8 +2595,8 @@ class Chi(MGXS): """ # Build the dataframe using the parent class method - df = super(Chi, self).get_pandas_dataframe(groups, nuclides, - xs_type, summary) + df = super(Chi, self).get_pandas_dataframe( + groups, nuclides, xs_type, distribcell_paths=distribcell_paths) # If user requested micro cross sections, multiply by the atom # densities to cancel out division made by the parent class method From d2018de8ec151e4f2239a402f0773bd5a0cd4d97 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 30 Apr 2016 16:08:47 -0400 Subject: [PATCH 124/259] Added ability to set data of the multi-group xs library (openmc.mgxs_library) with MGXS class objects. These are accessible via set_* where * can include total, absorption... . These routines can either take numpy arrays as the former and current setters do, or the appropriate MGXS objects. Also made some changes to meet PEP8 - GUESS WHO HAS A LINTER!!! and finally fixed a documentation issue in settings.py where CROSS_SECTIONS was still referenced instead of OPENMC_CROSS_SECTIONS. --- openmc/mgxs_library.py | 593 ++++++++++++++++++++++++++++++++++++++--- openmc/settings.py | 7 +- 2 files changed, 555 insertions(+), 45 deletions(-) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index d3e49b238..b41a2030c 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -1,19 +1,19 @@ from collections import Iterable from numbers import Real, Integral from xml.etree import ElementTree as ET -import warnings import sys -if sys.version_info[0] >= 3: - basestring = str import numpy as np import openmc -from openmc.mgxs import EnergyGroups +import openmc.mgxs from openmc.checkvalue import check_type, check_value, check_greater_than, \ - check_iterable_type + check_iterable_type from openmc.clean_xml import * +if sys.version_info[0] >= 3: + basestring = str + # Supported incoming particle MGXS angular treatment representations _REPRESENTATIONS = ['isotropic', 'angle'] @@ -133,9 +133,9 @@ class XSdata(object): angles and outer-dimension being the polar angles. absorption : numpy.ndarray Group-wise absorption cross section ordered by increasing group index - (i.e., fast to thermal). If ``representation`` is "isotropic", then the + (i.e., fast to thermal). If ``representation`` is "isotropic", then the length of this list should equal the number of groups described in the - ``groups`` attribute. If ``representation`` is "angle", then the length + ``groups`` attribute. If ``representation`` is "angle", then the length of this list should equal the number of groups times the number of azimuthal angles times the number of polar angles, with the inner-dimension being groups, intermediate-dimension being azimuthal @@ -152,7 +152,7 @@ class XSdata(object): multiplicity : numpy.ndarray Ratio of neutrons produced in scattering collisions to the neutrons which undergo scattering collisions; that is, the multiplicity provides - the code with a scaling factor to account for neutrons being produced in + the code with a scaling factor to account for neutrons produced in (n,xn) reactions. This information is assumed isotropic and therefore does not need to be repeated for every Legendre moment or histogram/tabular bin. This matrix follows the same arrangement as @@ -160,30 +160,30 @@ class XSdata(object): needed to provide the scattering type information. fission : numpy.ndarray Group-wise fission cross section ordered by increasing group index - (i.e., fast to thermal). If ``representation`` is "isotropic", then the + (i.e., fast to thermal). If ``representation`` is "isotropic", then the length of this list should equal the number of groups described in the - ``groups`` attribute. If ``representation`` is "angle", then the length + ``groups`` attribute. If ``representation`` is "angle", then the length of this list should equal the number of groups times the number of azimuthal angles times the number of polar angles, with the inner-dimension being groups, intermediate-dimension being azimuthal angles and outer-dimension being the polar angles. k_fission : numpy.ndarray - Group-wise kappa-fission cross section ordered by increasing group index - (i.e., fast to thermal). If ``representation`` is "isotropic", then the - length of this list should equal the number of groups described in the - ``groups`` attribute. If ``representation`` is "angle", then the length + Group-wise kappa-fission cross section ordered by increasing group + index (i.e., fast to thermal). If ``representation`` is "isotropic", + then the length of this list should equal the number of groups in the + ``groups`` attribute. If ``representation`` is "angle", then the length of this list should equal the number of groups times the number of azimuthal angles times the number of polar angles, with the inner-dimension being groups, intermediate-dimension being azimuthal angles and outer-dimension being the polar angles. chi : numpy.ndarray - Group-wise fission spectra ordered by increasing group index (i.e., fast - to thermal). This attribute should be used if making the common + Group-wise fission spectra ordered by increasing group index (i.e., + fast to thermal). This attribute should be used if making the common approximation that the fission spectra does not depend on incoming - energy. If the user does not wish to make this approximation, then this - should not be provided and this information included in the + energy. If the user does not wish to make this approximation, then + this should not be provided and this information included in the ``nu_fission`` element instead. If ``representation`` is "isotropic", - then the length of this list should equal the number of groups described + then the length of this list should equal the number of groups in the ``groups`` element. If ``representation`` is "angle", then the length of this list should equal the number of groups times the number of azimuthal angles times the number of polar angles, with the @@ -191,12 +191,13 @@ class XSdata(object): angles and outer-dimension being the polar angles. nu_fission : numpy.ndarray Group-wise fission production cross section vector (i.e., if ``chi`` is - provided), or is the group-wise fission production matrix. If providing + provided), or is the group-wise fission production matrix. If providing the vector, it should be ordered the same as the ``fission`` data. If providing the matrix, it should be ordered the same as the ``multiplicity`` matrix. """ + def __init__(self, name, energy_groups, representation="isotropic"): # Initialize class attributes self._name = name @@ -308,11 +309,11 @@ class XSdata(object): @energy_groups.setter def energy_groups(self, energy_groups): # Check validity of energy_groups - check_type("energy_groups", energy_groups, EnergyGroups) + check_type("energy_groups", energy_groups, openmc.mgxs.EnergyGroups) - # Check that there is one or more groups - if ((energy_groups.num_groups is None) or - (energy_groups.num_groups < 1)): + # Check that there are one or more groups + ng = energy_groups.num_groups + if ((ng is None) or (ng < 1)): msg = 'energy_groups object incorrectly initialized.' raise ValueError(msg) @@ -413,7 +414,8 @@ class XSdata(object): shape = (self._num_polar, self._num_azimuthal, self._energy_groups.num_groups) # check we have a numpy list - check_type("absorption", absorption, np.ndarray, expected_iter_type=Real) + check_type("absorption", absorption, np.ndarray, + expected_iter_type=Real) if absorption.shape == shape: self._absorption = np.copy(absorption) else: @@ -447,14 +449,15 @@ class XSdata(object): shape = (self._num_polar, self._num_azimuthal, self._energy_groups.num_groups) # check we have a numpy list - check_type("k_fission", k_fission, np.ndarray, expected_iter_type=Real) + check_type("k_fission", k_fission, np.ndarray, + expected_iter_type=Real) if k_fission.shape == shape: self._k_fission = np.copy(k_fission) if np.sum(self._k_fission) > 0.0: self._fissionable = True else: - msg = 'Shape of provided k_fission "{0}" does not match shape ' \ - 'required, "{1}"'.format(k_fission.shape, shape) + msg = 'Shape of provided k_fission "{0}" does not match ' \ + 'shape required, "{1}"'.format(k_fission.shape, shape) raise ValueError(msg) @chi.setter @@ -462,6 +465,7 @@ class XSdata(object): if not self._use_chi: msg = 'Providing chi when nu_fission already provided as matrix!' raise ValueError(msg) + if self._representation is 'isotropic': shape = (self._energy_groups.num_groups,) elif self._representation is 'angle': @@ -516,18 +520,21 @@ class XSdata(object): if multiplicity.shape == shape: self._multiplicity = np.copy(multiplicity) else: - msg = 'Shape of provided multiplicity "{0}" does not match shape ' \ - 'required, "{1}"'.format(multiplicity.shape, shape) + msg = 'Shape of provided multiplicity "{0}" does not match shape' \ + ' required, "{1}"'.format(multiplicity.shape, shape) raise ValueError(msg) @nu_fission.setter def nu_fission(self, nu_fission): + # The NuFissionXS class does not have the capability to produce + # a fission matrix and therefore if this path is pursued, we know + # chi must be used. # nu_fission can be given as a vector or a matrix # Vector is used when chi also exists. # Matrix is used when chi does not exist. # We have to check that the correct form is given, but only if # chi already has been set. If not, we just check that this is OK - # and set the use_chi flag. + # and set the use_chi flag accordingly # First lets set our dimensions here since they get used repeatedly # throughout this code. @@ -542,8 +549,8 @@ class XSdata(object): self._energy_groups.num_groups, self._energy_groups.num_groups) - # Begin by checking the case when chi has already been given and thus - # the rules for filling in nu_fission are set. + # Begin by checking the case when chi has already been given and + # thus the rules for filling in nu_fission are set. if self._use_chi is not None: if self._use_chi: shape = shape_vec @@ -553,23 +560,524 @@ class XSdata(object): msg = "Invalid Shape of Nu_fission!" raise ValueError(msg) else: - # Get shape of nu_fission so we can figure if we need chi or not + # Get shape of nu_fission to determine if we need chi or not if nu_fission.shape == shape_vec: self._use_chi = True - shape = shape_vec elif nu_fission.shape == shape_mat: self._use_chi = False - shape = shape_mat else: msg = "Invalid Shape of Nu_fission!" raise ValueError(msg) # check we have a numpy list - check_type("nu_fission", nu_fission, np.ndarray, expected_iter_type=Real) + check_type("nu_fission", nu_fission, np.ndarray, + expected_iter_type=Real) self._nu_fission = np.copy(nu_fission) if np.sum(self._nu_fission) > 0.0: self._fissionable = True + def set_total(self, total, **kwargs): + if isinstance(total, openmc.mgxs.TotalXS): + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != total.energy_groups: + msg = 'Group structure of provided TotalXS does not match' \ + ' group structure of XSdata object' + raise ValueError(msg) + # Get openmc.mgxs.get_xs() arguments from kwargs + # nuclides, xs_type, and value will have sane defaults but can be + # overridden by kwards + if 'nuclides' in kwargs: + nuclides = kwargs['nuclides'] + else: + nuclides = 'sum' + if 'xs_type' in kwargs: + xs_type = kwargs['xs_type'] + else: + xs_type = 'macro' + if 'value' in kwargs: + value = kwargs['value'] + else: + value = 'mean' + # subdomains is required from the kwargs as this is specific to + # this XSdata object. + if 'subdomains' in kwargs: + subdomains = kwargs['subdomains'] + else: + msg = "Argument 'subdomains' is required" + raise ValueError(msg) + + if self._representation is 'isotropic': + self._total = total.get_xs(subdomains=subdomains, + nuclides=nuclides, xs_type=xs_type, + value=value) + elif self._representation is 'angle': + # Not yet implemented as MGXS do not yet support this + pass + + else: + if self._representation is 'isotropic': + shape = (self._energy_groups.num_groups,) + elif self._representation is 'angle': + shape = (self._num_polar, self._num_azimuthal, + self._energy_groups.num_groups) + # check we have a numpy list + check_type("total", total, np.ndarray, expected_iter_type=Real) + if total.shape == shape: + self._total = np.copy(total) + else: + msg = 'Shape of provided total "{0}" does not match shape ' \ + 'required, "{1}"'.format(total.shape, shape) + raise ValueError(msg) + + def set_absorption(self, absorption, **kwargs): + if isinstance(absorption, openmc.mgxs.AbsorptionXS): + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != absorption.energy_groups: + msg = 'Group structure of provided AbsorptionXS does not ' \ + ' match group structure of XSdata object' + raise ValueError(msg) + # Get openmc.mgxs.get_xs() arguments from kwargs + # nuclides, xs_type, and value will have sane defaults but can be + # overridden by kwards + if 'nuclides' in kwargs: + nuclides = kwargs['nuclides'] + else: + nuclides = 'sum' + if 'xs_type' in kwargs: + xs_type = kwargs['xs_type'] + else: + xs_type = 'macro' + if 'value' in kwargs: + value = kwargs['value'] + else: + value = 'mean' + # subdomains is required from the kwargs as this is specific to + # this XSdata object. + if 'subdomains' in kwargs: + subdomains = kwargs['subdomains'] + else: + msg = "Argument 'subdomains' is required" + raise ValueError(msg) + + if self._representation is 'isotropic': + self._absorption = absorption.get_xs(subdomains=subdomains, + nuclides=nuclides, + xs_type=xs_type, + value=value) + elif self._representation is 'angle': + # Not yet implemented as MGXS do not yet support this + pass + + else: + if self._representation is 'isotropic': + shape = (self._energy_groups.num_groups,) + elif self._representation is 'angle': + shape = (self._num_polar, self._num_azimuthal, + self._energy_groups.num_groups) + # check we have a numpy list + check_type("absorption", absorption, np.ndarray, expected_iter_type=Real) + if absorption.shape == shape: + self._absorption = np.copy(absorption) + else: + msg = 'Shape of provided absorption "{0}" does not match shape ' \ + 'required, "{1}"'.format(absorption.shape, shape) + raise ValueError(msg) + + def set_fission(self, fission, **kwargs): + if isinstance(fission, openmc.mgxs.FissionXS): + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != fission.energy_groups: + msg = 'Group structure of provided FissionXS does not match ' \ + 'group structure of XSdata object' + raise ValueError(msg) + # Get openmc.mgxs.get_xs() arguments from kwargs + # nuclides, xs_type, and value will have sane defaults but can be + # overridden by kwards + if 'nuclides' in kwargs: + nuclides = kwargs['nuclides'] + else: + nuclides = 'sum' + if 'xs_type' in kwargs: + xs_type = kwargs['xs_type'] + else: + xs_type = 'macro' + if 'value' in kwargs: + value = kwargs['value'] + else: + value = 'mean' + # subdomains is required from the kwargs as this is specific to + # this XSdata object. + if 'subdomains' in kwargs: + subdomains = kwargs['subdomains'] + else: + msg = "Argument 'subdomains' is required" + raise ValueError(msg) + + if self._representation is 'isotropic': + self._fission = fission.get_xs(subdomains=subdomains, + nuclides=nuclides, + xs_type=xs_type, + value=value) + elif self._representation is 'angle': + # Not yet implemented as MGXS do not yet support this + pass + + else: + if self._representation is 'isotropic': + shape = (self._energy_groups.num_groups,) + elif self._representation is 'angle': + shape = (self._num_polar, self._num_azimuthal, + self._energy_groups.num_groups) + # check we have a numpy list + check_type("fission", fission, np.ndarray, expected_iter_type=Real) + if fission.shape == shape: + self._fission = np.copy(fission) + if np.sum(self._fission) > 0.0: + self._fissionable = True + else: + msg = 'Shape of provided fission "{0}" does not match shape ' \ + 'required, "{1}"'.format(fission.shape, shape) + raise ValueError(msg) + + def set_k_fission(self, k_fission, **kwargs): + if isinstance(k_fission, openmc.mgxs.KappaFissionXS): + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != k_fission.energy_groups: + msg = 'Group structure of provided KappaFissionXS does not ' \ + 'match group structure of XSdata object' + raise ValueError(msg) + # Get openmc.mgxs.get_xs() arguments from kwargs + # nuclides, xs_type, and value will have sane defaults but can be + # overridden by kwards + if 'nuclides' in kwargs: + nuclides = kwargs['nuclides'] + else: + nuclides = 'sum' + if 'xs_type' in kwargs: + xs_type = kwargs['xs_type'] + else: + xs_type = 'macro' + if 'value' in kwargs: + value = kwargs['value'] + else: + value = 'mean' + # subdomains is required from the kwargs as this is specific to + # this XSdata object. + if 'subdomains' in kwargs: + subdomains = kwargs['subdomains'] + else: + msg = "Argument 'subdomains' is required" + raise ValueError(msg) + + if self._representation is 'isotropic': + self._k_fission = k_fission.get_xs(subdomains=subdomains, + nuclides=nuclides, + xs_type=xs_type, + value=value) + elif self._representation is 'angle': + # Not yet implemented as MGXS do not yet support this + pass + + else: + if self._representation is 'isotropic': + shape = (self._energy_groups.num_groups,) + elif self._representation is 'angle': + shape = (self._num_polar, self._num_azimuthal, + self._energy_groups.num_groups) + # check we have a numpy list + check_type("k_fission", k_fission, np.ndarray, + expected_iter_type=Real) + if k_fission.shape == shape: + self._k_fission = np.copy(k_fission) + if np.sum(self._k_fission) > 0.0: + self._fissionable = True + else: + msg = 'Shape of provided k_fission "{0}" does not match ' \ + 'shape required, "{1}"'.format(k_fission.shape, shape) + raise ValueError(msg) + + def set_chi(self, chi, **kwargs): + if not self._use_chi: + msg = 'Providing chi when nu_fission already provided as matrix!' + raise ValueError(msg) + + if isinstance(chi, openmc.mgxs.Chi): + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != chi.energy_groups: + msg = 'Group structure of provided Chi does not ' \ + 'match group structure of XSdata object' + raise ValueError(msg) + # Get openmc.mgxs.get_xs() arguments from kwargs + # nuclides, xs_type, and value will have sane defaults but can be + # overridden by kwards + if 'nuclides' in kwargs: + nuclides = kwargs['nuclides'] + else: + nuclides = 'sum' + if 'xs_type' in kwargs: + xs_type = kwargs['xs_type'] + else: + xs_type = 'macro' + if 'value' in kwargs: + value = kwargs['value'] + else: + value = 'mean' + # subdomains is required from the kwargs as this is specific to + # this XSdata object. + if 'subdomains' in kwargs: + subdomains = kwargs['subdomains'] + else: + msg = "Argument 'subdomains' is required" + raise ValueError(msg) + + if self._representation is 'isotropic': + self._chi = chi.get_xs(subdomains=subdomains, + nuclides=nuclides, + xs_type=xs_type, + value=value) + elif self._representation is 'angle': + # Not yet implemented as MGXS do not yet support this + pass + + else: + if self._representation is 'isotropic': + shape = (self._energy_groups.num_groups,) + elif self._representation is 'angle': + shape = (self._num_polar, self._num_azimuthal, + self._energy_groups.num_groups) + # check we have a numpy list + check_type("chi", chi, np.ndarray, expected_iter_type=Real) + if chi.shape == shape: + self._chi = np.copy(chi) + else: + msg = 'Shape of provided chi "{0}" does not match shape ' \ + 'required, "{1}"'.format(chi.shape, shape) + raise ValueError(msg) + if self._use_chi is not None: + self._use_chi = True + + def set_scatter(self, scatter, **kwargs): + if isinstance(scatter, openmc.mgxs.ScatterMatrixXS): + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != scatter.energy_groups: + msg = 'Group structure of provided ScatterMatrixXS does not ' \ + 'match group structure of XSdata object' + raise ValueError(msg) + # Get openmc.mgxs.get_xs() arguments from kwargs + # nuclides, xs_type, and value will have sane defaults but can be + # overridden by kwards + if 'nuclides' in kwargs: + nuclides = kwargs['nuclides'] + else: + nuclides = 'sum' + if 'xs_type' in kwargs: + xs_type = kwargs['xs_type'] + else: + xs_type = 'macro' + if 'value' in kwargs: + value = kwargs['value'] + else: + value = 'mean' + # subdomains is required from the kwargs as this is specific to + # this XSdata object. + if 'subdomains' in kwargs: + subdomains = kwargs['subdomains'] + else: + msg = "Argument 'subdomains' is required" + raise ValueError(msg) + + if self._representation is 'isotropic': + self._scatter = scatter.get_xs(subdomains=subdomains, + nuclides=nuclides, + xs_type=xs_type, + value=value) + elif self._representation is 'angle': + # Not yet implemented as MGXS do not yet support this + pass + + else: + if self._representation is 'isotropic': + shape = (self.num_orders, self._energy_groups.num_groups, + self._energy_groups.num_groups) + max_depth = 3 + elif self._representation is 'angle': + shape = (self._num_polar, self._num_azimuthal, self.num_orders, + self._energy_groups.num_groups, + self._energy_groups.num_groups) + max_depth = 5 + # check we have a numpy list + check_iterable_type("scatter", scatter, expected_type=Real, + max_depth=max_depth) + if scatter.shape == shape: + self._scatter = np.copy(scatter) + else: + msg = 'Shape of provided scatter "{0}" does not match shape ' \ + 'required, "{1}"'.format(scatter.shape, shape) + raise ValueError(msg) + + def set_multiplicity(self, multiplicity, scatter=None, **kwargs): + if isinstance(multiplicity, openmc.mgxs.NuScatterMatrixXS): + if not isinstance(scatter, openmc.mgxs.ScatterMatrixXS): + msg = "Argument 'scatter' must be provided." + raise ValueError(msg) + # Make sure passed MGXS objects contain correct group structure + if self.energy_groups != multiplicity.energy_groups: + msg = 'Group structure of provided NuScatterMatrixXS does not ' \ + 'match group structure of XSdata object' + raise ValueError(msg) + if self.energy_groups != scatter.energy_groups: + msg = 'Group structure of provided ScatterMatrixXS does not ' \ + 'match group structure of XSdata object' + raise ValueError(msg) + # Get openmc.mgxs.get_xs() arguments from kwargs + # nuclides, xs_type, and value will have sane defaults but can be + # overridden by kwards + if 'nuclides' in kwargs: + nuclides = kwargs['nuclides'] + else: + nuclides = 'sum' + if 'xs_type' in kwargs: + xs_type = kwargs['xs_type'] + else: + xs_type = 'macro' + if 'value' in kwargs: + value = kwargs['value'] + else: + value = 'mean' + # subdomains is required from the kwargs as this is specific to + # this XSdata object. + if 'subdomains' in kwargs: + subdomains = kwargs['subdomains'] + else: + msg = "Argument 'subdomains' is required" + raise ValueError(msg) + + if self._representation is 'isotropic': + nuscatt = multiplicity.get_xs(subdomains=subdomains, + nuclides=nuclides, + xs_type=xs_type, + value=value) + scatt = scatter.get_xs(subdomains=subdomains, + nuclides=nuclides, + xs_type=xs_type, + value=value) + self._multiplicity = np.divide(nuscatt, scatt) + elif self._representation is 'angle': + # Not yet implemented as MGXS do not yet support this + pass + + else: + if self._representation is 'isotropic': + shape = (self._energy_groups.num_groups, + self._energy_groups.num_groups) + max_depth = 2 + elif self._representation is 'angle': + shape = (self._num_polar, self._num_azimuthal, + self._energy_groups.num_groups, + self._energy_groups.num_groups) + max_depth = 4 + # check we have a numpy list + check_iterable_type("multiplicity", multiplicity, expected_type=Real, + max_depth=max_depth) + if multiplicity.shape == shape: + self._multiplicity = np.copy(multiplicity) + else: + msg = 'Shape of provided multiplicity "{0}" does not match shape' \ + ' required, "{1}"'.format(multiplicity.shape, shape) + raise ValueError(msg) + + def set_nu_fission(self, nu_fission, **kwargs): + # The NuFissionXS class does not have the capability to produce + # a fission matrix and therefore if this path is pursued, we know + # chi must be used. + if isinstance(nu_fission, openmc.mgxs.NuFissionXS): + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != nu_fission.energy_groups: + msg = 'Group structure of provided NuFissionXS does not match'\ + ' group structure of XSdata object' + raise ValueError(msg) + # Get openmc.mgxs.get_xs() arguments from kwargs + # nuclides, xs_type, and value will have sane defaults but can be + # overridden by kwards + if 'nuclides' in kwargs: + nuclides = kwargs['nuclides'] + else: + nuclides = 'sum' + if 'xs_type' in kwargs: + xs_type = kwargs['xs_type'] + else: + xs_type = 'macro' + if 'value' in kwargs: + value = kwargs['value'] + else: + value = 'mean' + # subdomains is required from the kwargs as this is specific to + # this XSdata object. + if 'subdomains' in kwargs: + subdomains = kwargs['subdomains'] + else: + msg = "Argument 'subdomains' is required" + raise ValueError(msg) + + if self._representation is 'isotropic': + self._nu_fission = nu_fission.get_xs(subdomains=subdomains, + nuclides=nuclides, + xs_type=xs_type, + value=value) + elif self._representation is 'angle': + # Not yet implemented as MGXS do not yet support this + pass + + self._use_chi = True + + else: + # nu_fission can be given as a vector or a matrix + # Vector is used when chi also exists. + # Matrix is used when chi does not exist. + # We have to check that the correct form is given, but only if + # chi already has been set. If not, we just check that this is OK + # and set the use_chi flag accordingly + + # First lets set our dimensions here since they get used repeatedly + # throughout this code. + if self._representation is 'isotropic': + shape_vec = (self._energy_groups.num_groups,) + shape_mat = (self._energy_groups.num_groups, + self._energy_groups.num_groups) + elif self._representation is 'angle': + shape_vec = (self._num_polar, self._num_azimuthal, + self._energy_groups.num_groups) + shape_mat = (self._num_polar, self._num_azimuthal, + self._energy_groups.num_groups, + self._energy_groups.num_groups) + + # Begin by checking the case when chi has already been given and + # thus the rules for filling in nu_fission are set. + if self._use_chi is not None: + if self._use_chi: + shape = shape_vec + else: + shape = shape_mat + if nu_fission.shape != shape: + msg = "Invalid Shape of Nu_fission!" + raise ValueError(msg) + else: + # Get shape of nu_fission to determine if we need chi or not + if nu_fission.shape == shape_vec: + self._use_chi = True + elif nu_fission.shape == shape_mat: + self._use_chi = False + else: + msg = "Invalid Shape of Nu_fission!" + raise ValueError(msg) + + # check we have a numpy list + check_type("nu_fission", nu_fission, np.ndarray, + expected_iter_type=Real) + self._nu_fission = np.copy(nu_fission) + if np.sum(self._nu_fission) > 0.0: + self._fissionable = True + def _get_xsdata_xml(self): element = ET.Element("xsdata") element.set("name", self._name) @@ -649,7 +1157,8 @@ class XSdata(object): class MGXSLibrary(object): """Multi-Group Cross Sections file used for an OpenMC simulation. - Corresponds directly to the MG version of the cross_sections.xml input file. + Corresponds directly to the MG version of the cross_sections.xml input + file. Attributes ---------- @@ -684,7 +1193,7 @@ class MGXSLibrary(object): @energy_groups.setter def energy_groups(self, energy_groups): - check_type("energy groups", energy_groups, EnergyGroups) + check_type("energy groups", energy_groups, openmc.mgxs.EnergyGroups) self._energy_groups = energy_groups def add_xsdata(self, xsdata): @@ -721,8 +1230,8 @@ class MGXSLibrary(object): """ if not isinstance(xsdatas, Iterable): - msg = 'Unable to create OpenMC xsdatas.xml file from "{0}" which ' \ - 'is not iterable'.format(xsdatas) + msg = 'Unable to create OpenMC xsdatas.xml file from "{0}" which' \ + ' is not iterable'.format(xsdatas) raise ValueError(msg) for xsdata in xsdatas: @@ -793,4 +1302,4 @@ class MGXSLibrary(object): # Write the XML Tree to the xsdatas.xml file tree = ET.ElementTree(self._cross_sections_file) tree.write(filename, xml_declaration=True, - encoding='utf-8', method="xml") + encoding='utf-8', method="xml") diff --git a/openmc/settings.py b/openmc/settings.py index ec38bf54c..e64935d7a 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -70,9 +70,10 @@ class Settings(object): deviation. cross_sections : str Indicates the path to an XML cross section listing file (usually named - cross_sections.xml). If it is not set, the :envvar:`CROSS_SECTIONS` - environment variable will be used for continuous-energy calculations - and :envvar:`MG_CROSS_SECTIONS` will be used for multi-group + cross_sections.xml). If it is not set, the + :envvar:`OPENMC_CROSS_SECTIONS` environment variable will be used for + continuous-energy calculations and + :envvar:`OPENMC_MG_CROSS_SECTIONS` will be used for multi-group calculations to find the path to the XML cross section file. energy_grid : {'nuclide', 'logarithm', 'material-union'} Set the method used to search energy grids. From e5432e84a8c5398296c6229a1ab073f86697d58a Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 1 May 2016 01:25:45 -0400 Subject: [PATCH 125/259] Improved wording of latest developmental branch URL in docs --- docs/source/index.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 7edc560e2..a79a10de1 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -13,7 +13,9 @@ OpenMC was originally developed by members of the `Computational Reactor Physics Group`_ at the `Massachusetts Institute of Technology`_ starting in 2011. Various universities, laboratories, and other organizations now contribute to the development of OpenMC. For more information on OpenMC, feel -free to send a message to the User's Group `mailing list`_. Documentation for the latest version of the develop branch can be found on `Read the Docs`_. +free to send a message to the User's Group `mailing list`_. Documentation for +the latest developmental version of the develop branch can be found on +`Read the Docs`_. .. _Computational Reactor Physics Group: http://crpg.mit.edu .. _Massachusetts Institute of Technology: http://web.mit.edu From e1f70b40d40fcc302c833bb6a1349846f4cbcd65 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 May 2016 10:23:20 -0400 Subject: [PATCH 126/259] Incorporated ability to transfer from Library to MGXS_Library. Didnt test yet. --- openmc/mgxs/library.py | 168 +++++++++++++++++++++++++++++++++++++ openmc/mgxs_library.py | 184 ++++++++++++++++++++--------------------- 2 files changed, 260 insertions(+), 92 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index f3bf2018d..7e6f07ce2 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -4,6 +4,8 @@ import copy import pickle from numbers import Integral from collections import OrderedDict +import numpy as np +import warnings.warn as warn import openmc import openmc.mgxs @@ -712,3 +714,169 @@ class Library(object): # Load and return pickled Library object return pickle.load(open(full_filename, 'rb')) + + def write_mg_library(self, xs_type='micro', domain_names=None, xs_ids=None, + filename='mg_cross_sections', directory='./'): + """Create a cross-section data library file for the Multi-Group + mode of OpenMC. + + Parameters + ---------- + xs_type: {'macro', 'micro'} + Provide the macro or micro cross section in units of cm^-1 or + barns. Defaults to 'macro'. If the Library object is not tallied by + nuclide this will be set to 'macro' regardless + domain_names : Iterable of str + List of names to apply to the xsdata entries in the + resultant mgxs data file. Defaults to "set1", "set2", ... + xs_ids : str or Iterable of str + Cross section set identifier (i.e., "71c") for all + data sets (if only str) or for each individual one + (if iterable of str). Defaults to '1g' + filename : str + Filename for the pickle file. Defaults to 'mg_cross_sections'. + directory : str + Directory for the pickle file. Defaults to './' (the + current working directory). + + See also + -------- + Library.dump_to_file(mgxs_lib, filename, directory) + + """ + + # Check data types provided + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + if not self.by_nuclide: + xs_type = 'macro' + if domain_names is not None: + cv.check_iterable_type('domain_names', filename, basestring) + if xs_ids is not None: + if isinstance(xs_ids, basestring): + # If we only have a string lets convert it now to a list + # of strings. + xs_ids = [xs_ids for i in range(len(self.domains))] + else: + cv.check_iterable_type('xs_ids', xs_ids, basestring) + else: + xs_ids = ['.1g'] + cv.check_type('filename', filename, basestring) + cv.check_type('directory', directory, basestring) + + # Make directory if it does not exist + if not os.path.exists(directory): + os.makedirs(directory) + + full_filename = os.path.join(directory, filename + '.xml') + full_filename = full_filename.replace(' ', '-') + + # Initialize file + mgxs_file = openmc.MGXSLibrary(self.energy_groups) + + # Set the scattering order as isotropic until + # support for higher orders are included + order = 0 + + # Build XSdata objects + xsdatas = [] + for i in range(len(self.domains)): + id = self.domains[i].id + if not self.by_nuclide: + # Use k instead of i simply because k will be used for + # the nuclide index in the else part of this conditional + # and using k allows us to use the same code. + k = i + # Build & add metadata to XSdata object + # (Use i here because k in nuclides will add chars to this) + if domain_names is None: + name = 'set' + str(i + 1) + else: + name = domain_names[i] + name += xs_ids[k] + xsdata = openmc.XSdata(name, self.energy_groups) + xsdata.order = order + + # Now get xs data itself + if 'total' in self.mgxs_types: + xsdata.set_total(self.all_mgxs[id]['total'], + xs_type=xs_type, subdomains=(k + 1,)) + if 'absorption' in self.mgxs_types: + xsdata.set_absorption(self.all_mgxs[id]['absorption'], + xs_type=xs_type, subdomains=(k + 1,)) + if 'fission' in self.mgxs_types: + xsdata.set_fission(self.all_mgxs[id]['fission'], + xs_type=xs_type, subdomains=(k + 1,)) + if 'kappa-fission' in self.mgxs_types: + xsdata.set_k_fission(self.all_mgxs[id]['kappa-fission'], + xs_type=xs_type, subdomains=(k + 1,)) + if 'chi' in self.mgxs_types: + xsdata.set_chi(self.all_mgxs[id]['chi'], + xs_type=xs_type, subdomains=(k + 1,)) + if 'nu-fission' in self.mgxs_types: + xsdata.set_nu_fission(self.all_mgxs[id]['nu-fission'], + xs_type=xs_type, subdomains=(k + 1,)) + # multiplicity requires scatter and nu-scatter + if (('scatter' in self.mgxs_types) and ('nu-scatter' in + self.mgxs_types)): + xsdata.set_multiplicity(self.all_mgxs[id]['nu-scatter'], + self.all_mgxs[id]['scatter'], + xs_type=xs_type, + subdomains=(k + 1,)) + using_multiplicity = True + else: + using_multiplicity = False + + if using_multiplicity: + xsdata.set_scatter(self.all_mgxs[id]['scatter'], + xs_type=xs_type, + subdomains=(k + 1,)) + else: + if 'nu-scatter' in self.mgxs_types: + xsdata.set_scatter(self.all_mgxs[id]['nu-scatter'], + xs_type=xs_type, + subdomains=(k + 1,)) + # Since we are not using multiplicity, then + # scattering multiplication (nu-scatter) must be + # accounted for approximately by using an adjusted + # absorption cross section. + if self.total is not None: + xsdata.absorption = \ + np.subtract(xsdata.total, + np.sum(xsdata.scatter[0, :, :], + axis=1)) + else: + # Total isnt included so we cant do the above + # approximation w/out changing absorption instead. + # That can be done with: + # SigA' = SigA - (nuSigS - SigS) + # Doing so would mean essentially duplicating + # set_scatter from MGXSLibrary to obtain the + # SigS, which would be big and ugly once + # angle filters are available. + # Instead, raise a warning about the + # lack of neutron balance and then use scatter + # instead of nu-scatter + if 'scatter' in self.mgxs_types: + msg = "To properly use the 'nu-scatter' " + \ + "MGXS type and maintain neutron " + \ + "balance, a 'total' MGXS type " + \ + "should be provided." + warn(msg) + xsdata.set_scatter( + self.all_mgxs[id]['scatter'], + xs_type=xs_type, subdomains=(k + 1,)) + else: + # Welp, cant do that either. Quit while ahead. + msg = "Total X/S must be provided if using" + \ + " nu-scatter as the scattering data" + raise ValueError(msg) + + xsdatas.append(xsdata) + else: + pass + + # Add XSdatas to file + + # Finally, write the file + mgxs_file.export_to_xml(full_filename) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index b41a2030c..eae6aa4c1 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -739,6 +739,98 @@ class XSdata(object): 'required, "{1}"'.format(fission.shape, shape) raise ValueError(msg) + def set_nu_fission(self, nu_fission, **kwargs): + # The NuFissionXS class does not have the capability to produce + # a fission matrix and therefore if this path is pursued, we know + # chi must be used. + if isinstance(nu_fission, openmc.mgxs.NuFissionXS): + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != nu_fission.energy_groups: + msg = 'Group structure of provided NuFissionXS does not match'\ + ' group structure of XSdata object' + raise ValueError(msg) + # Get openmc.mgxs.get_xs() arguments from kwargs + # nuclides, xs_type, and value will have sane defaults but can be + # overridden by kwards + if 'nuclides' in kwargs: + nuclides = kwargs['nuclides'] + else: + nuclides = 'sum' + if 'xs_type' in kwargs: + xs_type = kwargs['xs_type'] + else: + xs_type = 'macro' + if 'value' in kwargs: + value = kwargs['value'] + else: + value = 'mean' + # subdomains is required from the kwargs as this is specific to + # this XSdata object. + if 'subdomains' in kwargs: + subdomains = kwargs['subdomains'] + else: + msg = "Argument 'subdomains' is required" + raise ValueError(msg) + + if self._representation is 'isotropic': + self._nu_fission = nu_fission.get_xs(subdomains=subdomains, + nuclides=nuclides, + xs_type=xs_type, + value=value) + elif self._representation is 'angle': + # Not yet implemented as MGXS do not yet support this + pass + + self._use_chi = True + + else: + # nu_fission can be given as a vector or a matrix + # Vector is used when chi also exists. + # Matrix is used when chi does not exist. + # We have to check that the correct form is given, but only if + # chi already has been set. If not, we just check that this is OK + # and set the use_chi flag accordingly + + # First lets set our dimensions here since they get used repeatedly + # throughout this code. + if self._representation is 'isotropic': + shape_vec = (self._energy_groups.num_groups,) + shape_mat = (self._energy_groups.num_groups, + self._energy_groups.num_groups) + elif self._representation is 'angle': + shape_vec = (self._num_polar, self._num_azimuthal, + self._energy_groups.num_groups) + shape_mat = (self._num_polar, self._num_azimuthal, + self._energy_groups.num_groups, + self._energy_groups.num_groups) + + # Begin by checking the case when chi has already been given and + # thus the rules for filling in nu_fission are set. + if self._use_chi is not None: + if self._use_chi: + shape = shape_vec + else: + shape = shape_mat + if nu_fission.shape != shape: + msg = "Invalid Shape of Nu_fission!" + raise ValueError(msg) + else: + # Get shape of nu_fission to determine if we need chi or not + if nu_fission.shape == shape_vec: + self._use_chi = True + elif nu_fission.shape == shape_mat: + self._use_chi = False + else: + msg = "Invalid Shape of Nu_fission!" + raise ValueError(msg) + + # check we have a numpy list + check_type("nu_fission", nu_fission, np.ndarray, + expected_iter_type=Real) + self._nu_fission = np.copy(nu_fission) + if np.sum(self._nu_fission) > 0.0: + self._fissionable = True + def set_k_fission(self, k_fission, **kwargs): if isinstance(k_fission, openmc.mgxs.KappaFissionXS): # Make sure passed MGXS object contains correct group structure @@ -986,98 +1078,6 @@ class XSdata(object): ' required, "{1}"'.format(multiplicity.shape, shape) raise ValueError(msg) - def set_nu_fission(self, nu_fission, **kwargs): - # The NuFissionXS class does not have the capability to produce - # a fission matrix and therefore if this path is pursued, we know - # chi must be used. - if isinstance(nu_fission, openmc.mgxs.NuFissionXS): - # Make sure passed MGXS object contains correct group structure - if self.energy_groups != nu_fission.energy_groups: - msg = 'Group structure of provided NuFissionXS does not match'\ - ' group structure of XSdata object' - raise ValueError(msg) - # Get openmc.mgxs.get_xs() arguments from kwargs - # nuclides, xs_type, and value will have sane defaults but can be - # overridden by kwards - if 'nuclides' in kwargs: - nuclides = kwargs['nuclides'] - else: - nuclides = 'sum' - if 'xs_type' in kwargs: - xs_type = kwargs['xs_type'] - else: - xs_type = 'macro' - if 'value' in kwargs: - value = kwargs['value'] - else: - value = 'mean' - # subdomains is required from the kwargs as this is specific to - # this XSdata object. - if 'subdomains' in kwargs: - subdomains = kwargs['subdomains'] - else: - msg = "Argument 'subdomains' is required" - raise ValueError(msg) - - if self._representation is 'isotropic': - self._nu_fission = nu_fission.get_xs(subdomains=subdomains, - nuclides=nuclides, - xs_type=xs_type, - value=value) - elif self._representation is 'angle': - # Not yet implemented as MGXS do not yet support this - pass - - self._use_chi = True - - else: - # nu_fission can be given as a vector or a matrix - # Vector is used when chi also exists. - # Matrix is used when chi does not exist. - # We have to check that the correct form is given, but only if - # chi already has been set. If not, we just check that this is OK - # and set the use_chi flag accordingly - - # First lets set our dimensions here since they get used repeatedly - # throughout this code. - if self._representation is 'isotropic': - shape_vec = (self._energy_groups.num_groups,) - shape_mat = (self._energy_groups.num_groups, - self._energy_groups.num_groups) - elif self._representation is 'angle': - shape_vec = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) - shape_mat = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups, - self._energy_groups.num_groups) - - # Begin by checking the case when chi has already been given and - # thus the rules for filling in nu_fission are set. - if self._use_chi is not None: - if self._use_chi: - shape = shape_vec - else: - shape = shape_mat - if nu_fission.shape != shape: - msg = "Invalid Shape of Nu_fission!" - raise ValueError(msg) - else: - # Get shape of nu_fission to determine if we need chi or not - if nu_fission.shape == shape_vec: - self._use_chi = True - elif nu_fission.shape == shape_mat: - self._use_chi = False - else: - msg = "Invalid Shape of Nu_fission!" - raise ValueError(msg) - - # check we have a numpy list - check_type("nu_fission", nu_fission, np.ndarray, - expected_iter_type=Real) - self._nu_fission = np.copy(nu_fission) - if np.sum(self._nu_fission) > 0.0: - self._fissionable = True - def _get_xsdata_xml(self): element = ET.Element("xsdata") element.set("name", self._name) From 9bff2ab4747873a542a27cd7cfdf7341c23a4405 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 1 May 2016 13:49:51 -0400 Subject: [PATCH 127/259] Updated Mann-Whitney test to reflect lattice cell indexing in new distribcell paths --- .../examples/pandas-dataframes.ipynb | 63 +++++++++---------- 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 34b136ee9..87eb50f7b 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -370,7 +370,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTMwVDA5OjQ0\nOjQ1LTA0OjAwA5TfLgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0zMFQwOTo0NDo0NS0wNDow\nMHLJZ5IAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA1LTAxVDEzOjQ5\nOjA2LTA0OjAwzoiN5AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNS0wMVQxMzo0OTowNi0wNDow\nML/VNVgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -554,9 +554,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5863cc5c9906ae7b2ec15efbf793b22b9c7f7dcb\n", - " Date/Time: 2016-04-30 09:44:46\n", - " MPI Processes: 1\n", + " Git SHA1: cc27630f7db25b148efab11d182c6c7b34e40a5b\n", + " Date/Time: 2016-05-01 13:49:06\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -620,20 +619,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.1400E-01 seconds\n", - " Reading cross sections = 9.3000E-02 seconds\n", - " Total time in simulation = 4.6240E+00 seconds\n", - " Time in transport only = 4.5580E+00 seconds\n", - " Time in inactive batches = 6.9200E-01 seconds\n", - " Time in active batches = 3.9320E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for initialization = 3.9900E-01 seconds\n", + " Reading cross sections = 9.0000E-02 seconds\n", + " Total time in simulation = 4.8580E+00 seconds\n", + " Time in transport only = 4.8080E+00 seconds\n", + " Time in inactive batches = 7.9400E-01 seconds\n", + " Time in active batches = 4.0640E+00 seconds\n", + " Time synchronizing fission bank = 0.0000E+00 seconds\n", + " Sampling source sites = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 5.0530E+00 seconds\n", - " Calculation Rate (inactive) = 18063.6 neutrons/second\n", - " Calculation Rate (active) = 9537.13 neutrons/second\n", + " Total time elapsed = 5.2710E+00 seconds\n", + " Calculation Rate (inactive) = 15743.1 neutrons/second\n", + " Calculation Rate (active) = 9227.36 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1112,7 +1111,7 @@ "data": { "image/png": "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\nSWry/wHxFqsYpaO7aQAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1135,7 +1134,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1146,7 +1145,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2267,15 +2266,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 6.038663783e-42\n" + "Mann-Whitney Test p-value: 0.303583331507\n" ] } ], "source": [ - "# Extract tally data from pins in the pins divided along y=-x diagonal\n", + "# Extract tally data from pins in the pins divided along y=x diagonal\n", "multi_index = ('level 2', 'lat',)\n", - "lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n", - "upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n", + "lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]\n", + "upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]\n", "lower = lower[lower['score'] == 'absorption']\n", "upper = upper[upper['score'] == 'absorption']\n", "\n", @@ -2305,15 +2304,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.303583331507\n" + "Mann-Whitney Test p-value: 6.038663783e-42\n" ] } ], "source": [ - "# Extract tally data from pins in the pins divided along y=x diagonal \n", + "# Extract tally data from pins in the pins divided along y=-x diagonal \n", "multi_index = ('level 2', 'lat',)\n", - "lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]\n", - "upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]\n", + "lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n", + "upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n", "lower = lower[lower['score'] == 'absorption']\n", "upper = upper[upper['score'] == 'absorption']\n", "\n", @@ -2351,7 +2350,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2362,7 +2361,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2389,7 +2388,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2400,7 +2399,7 @@ "data": { "image/png": "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\n9OnTh2bNmtGmTRsuu+wyioqKSt/PzLjvvvvYdddd2W677fjDH/7A3Llz6dOnD02bNmXo0KEbrZ8J\nSggi0mBcccUVXHHFFaxatYq5c+dy8sknA/Dmm28CsGLFClavXk2fPn0YOXIkI0eO5LXXXuOrr75i\n9erVXHbZZQB89tlnXHLJJTz++OMsXryYlStXlna8s97YsWMZMmQIK1as4LTTTiMej3PXXXexfPly\npkyZwqRJk7jvvvs22ubll1/mo48+4t133+WOO+7gvPPO4/HHH+ebb75hxowZjBo1KqPlo4QgIvXe\n4MGDadasWelwySWXlLteTk4Oc+bMYfny5eTn57P//vtv8T0ff/xxrr76ajp37kx+fj5/+ctfGD16\nNCUlJTz11FMce+yx9OvXj9zcXG6++ebNemnr06cPgwcPJhaL0bhxY/bee2/2339/EokEHTt25MIL\nL+SNN97YaJvrrruOJk2a0K1bN7p3786RRx5J586dadq0KYMGDWLatGnVL6wKKCGISL337LPPsmLF\nitJh01/e640YMYJZs2bRpUsX9tlnH55//vktvueiRYvo0KFD6XSHDh0oKSlhyZIlLFq0iPbt25cu\n22abbWjRosVG25ddDjBr1iyOOeYYWrduTZMmTbjxxhtZvnz5Ruu0atWqdLxx48abTa9evbqCUqg+\nJQQRaTB22203Ro0axdKlS7n++usZMmQIa9asKbcP5rZt2zJ//vzS6W+++YZEIkGrVq1o06YNCxYs\nKF22bt06vv/++4223/Q9L774Yrp06cLs2bNZtWoVf/7zn+tcHxNKCCLSYDz22GMsW7aMWCxGs2bN\nAIjFYuy4447EYjG++uqr0nVPPfVU7rrrLr7++mtWr17NjTfeyNChQ0kkEgwZMoRx48YxefJkioqK\nKCgoqPTL/aeffqJJkybk5+fzxRdfVNjvc1Qa7g23IlIt9fG5kPHjx3P11Vezdu1aOnTowOjRo2nc\nuDEAw4YNo2/fvhQXFzN+/HjOPfdcFi1aRP/+/fn555854ogjuOeee4DgYbd77rmHU045hTVr1nDl\nlVfSsmVL8vLytrjvO++8kwsuuIA77riDnj17MnToUF599dVaOe50qQtNybiqPmimB9PqHnWhWbHV\nq1fTrFkzZs+eTadOnSKLQ11oiohEYNy4caxdu5Y1a9ZwzTXX0KNHDzp27Bh1WNWiKiOpEZluxkCk\n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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, From 1f17718de845d70732485418de27ee307bb63de2 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 May 2016 13:53:21 -0400 Subject: [PATCH 128/259] Tested, works (!!!!). Next up will be some useful features found during this testing --- openmc/mgxs/library.py | 32 ++++++++++++++++++-------------- openmc/mgxs_library.py | 14 ++++++++------ 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 7e6f07ce2..0ce7348b9 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -5,7 +5,7 @@ import pickle from numbers import Integral from collections import OrderedDict import numpy as np -import warnings.warn as warn +from warnings import warn import openmc import openmc.mgxs @@ -715,7 +715,7 @@ class Library(object): # Load and return pickled Library object return pickle.load(open(full_filename, 'rb')) - def write_mg_library(self, xs_type='micro', domain_names=None, xs_ids=None, + def write_mg_library(self, xs_type='macro', domain_names=None, xs_ids=None, filename='mg_cross_sections', directory='./'): """Create a cross-section data library file for the Multi-Group mode of OpenMC. @@ -725,7 +725,7 @@ class Library(object): xs_type: {'macro', 'micro'} Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. If the Library object is not tallied by - nuclide this will be set to 'macro' regardless + nuclide this will be set to 'macro' regardless. domain_names : Iterable of str List of names to apply to the xsdata entries in the resultant mgxs data file. Defaults to "set1", "set2", ... @@ -760,7 +760,7 @@ class Library(object): else: cv.check_iterable_type('xs_ids', xs_ids, basestring) else: - xs_ids = ['.1g'] + xs_ids = ['1g'] cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) @@ -781,6 +781,7 @@ class Library(object): # Build XSdata objects xsdatas = [] for i in range(len(self.domains)): + id = self.domains[i].id if not self.by_nuclide: # Use k instead of i simply because k will be used for @@ -793,7 +794,7 @@ class Library(object): name = 'set' + str(i + 1) else: name = domain_names[i] - name += xs_ids[k] + name += '.' + xs_ids[k] xsdata = openmc.XSdata(name, self.energy_groups) xsdata.order = order @@ -817,10 +818,10 @@ class Library(object): xsdata.set_nu_fission(self.all_mgxs[id]['nu-fission'], xs_type=xs_type, subdomains=(k + 1,)) # multiplicity requires scatter and nu-scatter - if (('scatter' in self.mgxs_types) and ('nu-scatter' in - self.mgxs_types)): - xsdata.set_multiplicity(self.all_mgxs[id]['nu-scatter'], - self.all_mgxs[id]['scatter'], + if ((('scatter matrix' in self.mgxs_types) and + ('nu-scatter matrix' in self.mgxs_types))): + xsdata.set_multiplicity(self.all_mgxs[id]['nu-scatter matrix'], + self.all_mgxs[id]['scatter matrix'], xs_type=xs_type, subdomains=(k + 1,)) using_multiplicity = True @@ -828,12 +829,12 @@ class Library(object): using_multiplicity = False if using_multiplicity: - xsdata.set_scatter(self.all_mgxs[id]['scatter'], + xsdata.set_scatter(self.all_mgxs[id]['scatter matrix'], xs_type=xs_type, subdomains=(k + 1,)) else: if 'nu-scatter' in self.mgxs_types: - xsdata.set_scatter(self.all_mgxs[id]['nu-scatter'], + xsdata.set_scatter(self.all_mgxs[id]['nu-scatter matrix'], xs_type=xs_type, subdomains=(k + 1,)) # Since we are not using multiplicity, then @@ -858,8 +859,9 @@ class Library(object): # lack of neutron balance and then use scatter # instead of nu-scatter if 'scatter' in self.mgxs_types: - msg = "To properly use the 'nu-scatter' " + \ - "MGXS type and maintain neutron " + \ + msg = "To properly use the " + \ + "'nu-scatter matrix' MGXS type " + \ + "and maintain neutron " + \ "balance, a 'total' MGXS type " + \ "should be provided." warn(msg) @@ -869,7 +871,8 @@ class Library(object): else: # Welp, cant do that either. Quit while ahead. msg = "Total X/S must be provided if using" + \ - " nu-scatter as the scattering data" + " 'nu-scatter matrix' as the " + \ + "scattering data" raise ValueError(msg) xsdatas.append(xsdata) @@ -877,6 +880,7 @@ class Library(object): pass # Add XSdatas to file + mgxs_file.add_xsdatas(xsdatas) # Finally, write the file mgxs_file.export_to_xml(full_filename) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index eae6aa4c1..ef12c6c8a 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -462,9 +462,10 @@ class XSdata(object): @chi.setter def chi(self, chi): - if not self._use_chi: - msg = 'Providing chi when nu_fission already provided as matrix!' - raise ValueError(msg) + if self._use_chi is not None: + if not self._use_chi: + msg = 'Providing chi when nu_fission already provided as matrix!' + raise ValueError(msg) if self._representation is 'isotropic': shape = (self._energy_groups.num_groups,) @@ -889,9 +890,10 @@ class XSdata(object): raise ValueError(msg) def set_chi(self, chi, **kwargs): - if not self._use_chi: - msg = 'Providing chi when nu_fission already provided as matrix!' - raise ValueError(msg) + if self._use_chi is not None: + if not self._use_chi: + msg = 'Providing chi when nu_fission already provided as matrix!' + raise ValueError(msg) if isinstance(chi, openmc.mgxs.Chi): # Make sure passed MGXS object contains correct group structure From 192523743f8519759f863362927eb8674950dce0 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 May 2016 15:20:13 -0400 Subject: [PATCH 129/259] Implemented microscopic nuclidic writing for mgxs_library. May have exposed a bug in OpenMC, need to understand. --- openmc/mgxs/library.py | 177 +++++++++++++++++++++++++++++------------ 1 file changed, 125 insertions(+), 52 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 0ce7348b9..1e9156ce5 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -15,6 +15,11 @@ import openmc.checkvalue as cv if sys.version_info[0] >= 3: basestring = str +# The following represent the most accurate MGXS generation strategy +# for use in the MG mode of OpenMC. +OPENMC_MG_MGXS_TYPES = ['total', 'absorption', 'nu-fission', 'chi', + 'scatter matrix', 'nu-scatter matrix'] + class Library(object): """A multi-group cross section library for some energy group structure. @@ -748,7 +753,10 @@ class Library(object): # Check data types provided cv.check_value('xs_type', xs_type, ['macro', 'micro']) - if not self.by_nuclide: + # Construct the collection of the nuclides to report + if self.by_nuclide: + nuclides = self.all_mgxs[1][self.mgxs_types[-1]].get_all_nuclides() + else: xs_type = 'macro' if domain_names is not None: cv.check_iterable_type('domain_names', filename, basestring) @@ -781,62 +789,58 @@ class Library(object): # Build XSdata objects xsdatas = [] for i in range(len(self.domains)): - id = self.domains[i].id if not self.by_nuclide: - # Use k instead of i simply because k will be used for - # the nuclide index in the else part of this conditional - # and using k allows us to use the same code. - k = i # Build & add metadata to XSdata object # (Use i here because k in nuclides will add chars to this) if domain_names is None: name = 'set' + str(i + 1) else: name = domain_names[i] - name += '.' + xs_ids[k] + name += '.' + xs_ids[i] xsdata = openmc.XSdata(name, self.energy_groups) xsdata.order = order # Now get xs data itself if 'total' in self.mgxs_types: xsdata.set_total(self.all_mgxs[id]['total'], - xs_type=xs_type, subdomains=(k + 1,)) + xs_type=xs_type, subdomains=(i + 1,)) if 'absorption' in self.mgxs_types: xsdata.set_absorption(self.all_mgxs[id]['absorption'], - xs_type=xs_type, subdomains=(k + 1,)) + xs_type=xs_type, subdomains=(i + 1,)) if 'fission' in self.mgxs_types: xsdata.set_fission(self.all_mgxs[id]['fission'], - xs_type=xs_type, subdomains=(k + 1,)) + xs_type=xs_type, subdomains=(i + 1,)) if 'kappa-fission' in self.mgxs_types: xsdata.set_k_fission(self.all_mgxs[id]['kappa-fission'], - xs_type=xs_type, subdomains=(k + 1,)) + xs_type=xs_type, subdomains=(i + 1,)) if 'chi' in self.mgxs_types: xsdata.set_chi(self.all_mgxs[id]['chi'], - xs_type=xs_type, subdomains=(k + 1,)) + xs_type=xs_type, subdomains=(i + 1,)) if 'nu-fission' in self.mgxs_types: xsdata.set_nu_fission(self.all_mgxs[id]['nu-fission'], - xs_type=xs_type, subdomains=(k + 1,)) + xs_type=xs_type, subdomains=(i + 1,)) # multiplicity requires scatter and nu-scatter if ((('scatter matrix' in self.mgxs_types) and ('nu-scatter matrix' in self.mgxs_types))): - xsdata.set_multiplicity(self.all_mgxs[id]['nu-scatter matrix'], - self.all_mgxs[id]['scatter matrix'], - xs_type=xs_type, - subdomains=(k + 1,)) + xsdata.set_multiplicity( + self.all_mgxs[id]['nu-scatter matrix'], + self.all_mgxs[id]['scatter matrix'], + xs_type=xs_type, subdomains=(i + 1,)) + xsdata.multiplicity = np.nan_to_num(xsdata.multiplicity) using_multiplicity = True else: using_multiplicity = False if using_multiplicity: - xsdata.set_scatter(self.all_mgxs[id]['scatter matrix'], + xsdata.set_scatter(self.all_mgxs[id]['nu-scatter matrix'], xs_type=xs_type, - subdomains=(k + 1,)) + subdomains=(i + 1,)) else: - if 'nu-scatter' in self.mgxs_types: - xsdata.set_scatter(self.all_mgxs[id]['nu-scatter matrix'], - xs_type=xs_type, - subdomains=(k + 1,)) + if 'nu-scatter matrix' in self.mgxs_types: + xsdata.set_scatter( + self.all_mgxs[id]['nu-scatter matrix'], + xs_type=xs_type, subdomains=(i + 1,)) # Since we are not using multiplicity, then # scattering multiplication (nu-scatter) must be # accounted for approximately by using an adjusted @@ -846,41 +850,110 @@ class Library(object): np.subtract(xsdata.total, np.sum(xsdata.scatter[0, :, :], axis=1)) - else: - # Total isnt included so we cant do the above - # approximation w/out changing absorption instead. - # That can be done with: - # SigA' = SigA - (nuSigS - SigS) - # Doing so would mean essentially duplicating - # set_scatter from MGXSLibrary to obtain the - # SigS, which would be big and ugly once - # angle filters are available. - # Instead, raise a warning about the - # lack of neutron balance and then use scatter - # instead of nu-scatter - if 'scatter' in self.mgxs_types: - msg = "To properly use the " + \ - "'nu-scatter matrix' MGXS type " + \ - "and maintain neutron " + \ - "balance, a 'total' MGXS type " + \ - "should be provided." - warn(msg) - xsdata.set_scatter( - self.all_mgxs[id]['scatter'], - xs_type=xs_type, subdomains=(k + 1,)) - else: - # Welp, cant do that either. Quit while ahead. - msg = "Total X/S must be provided if using" + \ - " 'nu-scatter matrix' as the " + \ - "scattering data" - raise ValueError(msg) + else: + msg = "No nu-scatter matrix data was provided. " + \ + "This means neutron balance cannot be " + \ + "achieved since (n,xn) multiplication is " + \ + "ignored." + warn(msg) + xsdata.set_scatter(self.all_mgxs[id]['scatter matrix'], + xs_type=xs_type, + subdomains=(i + 1,)) xsdatas.append(xsdata) else: - pass + for nuclide in nuclides: + # Build & add metadata to XSdata object + if domain_names is None: + name = 'set' + str(i + 1) + else: + name = domain_names[i] + name += '_' + nuclide + name += '.' + xs_ids[i] + xsdata = openmc.XSdata(name, self.energy_groups) + xsdata.order = order + + # Now get xs data itself + if 'total' in self.mgxs_types: + xsdata.set_total(self.all_mgxs[id]['total'], + xs_type=xs_type, subdomains=(i + 1,), + nuclides=[nuclide]) + if 'absorption' in self.mgxs_types: + xsdata.set_absorption(self.all_mgxs[id]['absorption'], + xs_type=xs_type, + subdomains=(i + 1,), + nuclides=[nuclide]) + if 'fission' in self.mgxs_types: + xsdata.set_fission(self.all_mgxs[id]['fission'], + xs_type=xs_type, + subdomains=(i + 1,), + nuclides=[nuclide]) + if 'kappa-fission' in self.mgxs_types: + xsdata.set_k_fission( + self.all_mgxs[id]['kappa-fission'], + xs_type=xs_type, subdomains=(i + 1,), + nuclides=[nuclide]) + if 'chi' in self.mgxs_types: + xsdata.set_chi(self.all_mgxs[id]['chi'], + xs_type=xs_type, subdomains=(i + 1,), + nuclides=[nuclide]) + if 'nu-fission' in self.mgxs_types: + xsdata.set_nu_fission(self.all_mgxs[id]['nu-fission'], + xs_type=xs_type, + subdomains=(i + 1,), + nuclides=[nuclide]) + # multiplicity requires scatter and nu-scatter + if ((('scatter matrix' in self.mgxs_types) and + ('nu-scatter matrix' in self.mgxs_types))): + xsdata.set_multiplicity( + self.all_mgxs[id]['nu-scatter matrix'], + self.all_mgxs[id]['scatter matrix'], + xs_type=xs_type, subdomains=(i + 1,), + nuclides=[nuclide]) + xsdata.multiplicity = \ + np.nan_to_num(xsdata.multiplicity) + using_multiplicity = True + else: + using_multiplicity = False + + if using_multiplicity: + xsdata.set_scatter( + self.all_mgxs[id]['nu-scatter matrix'], + xs_type=xs_type, subdomains=(i + 1,), + nuclides=[nuclide]) + else: + if 'nu-scatter matrix' in self.mgxs_types: + xsdata.set_scatter( + self.all_mgxs[id]['nu-scatter matrix'], + xs_type=xs_type, subdomains=(i + 1,), + nuclides=[nuclide]) + # Since we are not using multiplicity, then + # scattering multiplication (nu-scatter) must be + # accounted for approximately by using an adjusted + # absorption cross section. + if self.total is not None: + xsdata.absorption = \ + np.subtract(xsdata.total, + np.sum(xsdata.scatter[0, :, :], + axis=1)) + else: + msg = "No nu-scatter matrix data was provided. " +\ + "This means neutron balance cannot be " + \ + "achieved since (n,xn) multiplication is " +\ + "ignored." + warn(msg) + xsdata.set_scatter( + self.all_mgxs[id]['scatter matrix'], + xs_type=xs_type, + subdomains=(i + 1,), + nuclides=[nuclide]) + + xsdatas.append(xsdata) # Add XSdatas to file mgxs_file.add_xsdatas(xsdatas) # Finally, write the file mgxs_file.export_to_xml(full_filename) + + From b35d37c4fbea2d3ac0b5976dc512eae268414f53 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 May 2016 20:02:42 -0400 Subject: [PATCH 130/259] Read in AWR data for MGXS Library if available --- src/mgxs_header.F90 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 56c538a5d..b6f8a2b49 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -221,6 +221,11 @@ module mgxs_header else this % zaid = 0 end if + if (check_for_node(node_xsdata, "awr")) then + call get_node_value(node_xsdata, "awr", this % awr) + else + this % awr = -ONE + end if if (check_for_node(node_xsdata, "scatt_type")) then call get_node_value(node_xsdata, "scatt_type", temp_str) temp_str = trim(to_lower(temp_str)) From f20636565a9fe4c83b4594bb833f2e03afefbdf2 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 May 2016 21:16:31 -0400 Subject: [PATCH 131/259] Fixed generation of scatter % mult from complicated nuclidic information --- src/mgxs_data.F90 | 2 -- src/mgxs_header.F90 | 80 ++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 71 insertions(+), 11 deletions(-) diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 04d76f18c..6cf730cfa 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -164,8 +164,6 @@ contains subroutine create_macro_xs() integer :: i_mat ! index in materials array - integer :: i ! loop index over nuclides - integer :: l ! Loop over score bins type(Material), pointer :: mat ! current material integer :: scatt_type diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index b6f8a2b49..7d4ee275d 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -1333,9 +1333,9 @@ module mgxs_header integer :: i ! loop index over nuclides integer :: gin, gout ! group indices real(8) :: atom_density ! atom density of a nuclide - real(8) :: norm + real(8) :: norm, nuscatt integer :: mat_max_order, order, order_dim, nuc_order_dim - real(8), allocatable :: temp_mult(:,:) + real(8), allocatable :: temp_mult(:,:), mult_num(:,:), mult_denom(:,:) real(8), allocatable :: scatt_coeffs(:,:,:) ! Set the meta-data @@ -1417,6 +1417,10 @@ module mgxs_header this % chi = ZERO allocate(temp_mult(groups,groups)) temp_mult = ZERO + allocate(mult_num(groups,groups)) + mult_num = ZERO + allocate(mult_denom(groups,groups)) + mult_denom = ZERO allocate(scatt_coeffs(order_dim,groups,groups)) scatt_coeffs = ZERO @@ -1445,10 +1449,24 @@ module mgxs_header end if ! Get the multiplication matrix + ! To combine from nuclidic data we need to use the final relationship + ! mult_{gg'} = sum_i(N_i*nuscatt_{i,g,g'}) / + ! sum_i(N_i*(nuscatt_{i,g,g'} / mult_{i,g,g'})) + ! Developed as follows: + ! mult_{gg'} = nuScatt{g,g'} / Scatt{g,g'} + ! mult_{gg'} = sum_i(N_i*nuscatt_{i,g,g'}) / sum(N_i*scatt_{i,g,g'}) + ! mult_{gg'} = sum_i(N_i*nuscatt_{i,g,g'}) / + ! sum_i(N_i*(nuscatt_{i,g,g'} / mult_{i,g,g'})) + ! nuscatt_{i,g,g'} can be reconstructed from scatter % energy and + ! scatter % scattxs do gin = 1, groups do gout = nuc % scatter % gmin(gin), nuc % scatter % gmax(gin) - temp_mult(gout,gin) = temp_mult(gout,gin) + atom_density * & - nuc % scatter % mult(gin) % data(gout) + nuscatt = nuc % scatter % scattxs(gin) * & + nuc % scatter % energy(gin) % data(gout) + mult_num(gout, gin) = mult_num(gout, gin) + atom_density * & + nuscatt + mult_denom(gout, gin) = mult_denom(gout,gin) + atom_density * & + nuscatt / nuc % scatter % mult(gin) % data(gout) end do end do @@ -1464,6 +1482,17 @@ module mgxs_header end select end do + ! Obtain temp_mult + do gin = 1, groups + do gout = 1, groups + if (mult_denom(gout, gin) > ZERO) then + temp_mult(gout, gin) = mult_num(gout, gin) / mult_denom(gout, gin) + else + temp_mult(gout, gin) = ONE + end if + end do + end do + ! Initialize the ScattData Object call this % scatter % init(temp_mult,scatt_coeffs) @@ -1478,7 +1507,7 @@ module mgxs_header end if ! Deallocate temporaries - deallocate(scatt_coeffs, temp_mult) + deallocate(scatt_coeffs, temp_mult, mult_num, mult_denom) end subroutine mgxsiso_combine @@ -1496,9 +1525,9 @@ module mgxs_header integer :: gin, gout ! group indices real(8) :: atom_density ! atom density of a nuclide integer :: ipol, iazi, n_pol, n_azi - real(8) :: norm + real(8) :: norm, nuscatt integer :: mat_max_order, order, order_dim, nuc_order_dim - real(8), allocatable :: temp_mult(:,:,:,:) + real(8), allocatable :: temp_mult(:,:,:,:), mult_num(:,:,:,:), mult_denom(:,:,:,:) real(8), allocatable :: scatt_coeffs(:,:,:,:,:) ! Set the meta-data @@ -1617,6 +1646,10 @@ module mgxs_header this % chi = ZERO allocate(temp_mult(groups,groups,n_azi,n_pol)) temp_mult = ZERO + allocate(mult_num(groups,groups,n_azi,n_pol)) + mult_num = ZERO + allocate(mult_denom(groups,groups,n_azi,n_pol)) + mult_denom = ZERO allocate(scatt_coeffs(order_dim,groups,groups,n_azi,n_pol)) scatt_coeffs = ZERO @@ -1647,13 +1680,27 @@ module mgxs_header end if ! Get the multiplication matrix + ! To combine from nuclidic data we need to use the final relationship + ! mult_{gg'} = sum_i(N_i*nuscatt_{i,g,g'}) / + ! sum_i(N_i*(nuscatt_{i,g,g'} / mult_{i,g,g'})) + ! Developed as follows: + ! mult_{gg'} = nuScatt{g,g'} / Scatt{g,g'} + ! mult_{gg'} = sum_i(N_i*nuscatt_{i,g,g'}) / sum(N_i*scatt_{i,g,g'}) + ! mult_{gg'} = sum_i(N_i*nuscatt_{i,g,g'}) / + ! sum_i(N_i*(nuscatt_{i,g,g'} / mult_{i,g,g'})) + ! nuscatt_{i,g,g'} can be reconstructed from scatter % energy and + ! scatter % scattxs do ipol = 1, n_pol do iazi = 1, n_azi do gin = 1, groups do gout = nuc % scatter(iazi,ipol) % obj % gmin(gin), & nuc % scatter(iazi,ipol) % obj % gmax(gin) - temp_mult(gout,gin,iazi,ipol) = temp_mult(gout,gin,iazi,ipol) + & - atom_density * & + nuscatt = nuc % scatter(iazi,ipol) % obj % scattxs(gin) * & + nuc % scatter(iazi,ipol) % obj % energy(gin) % data(gout) + mult_num(gout,gin,iazi,ipol) = mult_num(gout,gin,iazi,ipol) + & + atom_density * nuscatt + mult_denom(gout,gin,iazi,ipol) = mult_denom(gout,gin,iazi,ipol) + & + atom_density * nuscatt / & nuc % scatter(iazi,ipol) % obj % mult(gin) % data(gout) end do end do @@ -1674,6 +1721,21 @@ module mgxs_header end select end do + ! Obtain temp_mult + do ipol = 1, n_pol + do iazi = 1, n_azi + do gin = 1, groups + do gout = 1, groups + if (mult_denom(gout,gin,iazi,ipol) > ZERO) then + temp_mult(gout,gin,iazi,ipol) = mult_num(gout,gin,iazi,ipol) / mult_denom(gout,gin,iazi,ipol) + else + temp_mult(gout,gin,iazi,ipol) = ONE + end if + end do + end do + end do + end do + ! Initialize the ScattData Object do ipol = 1, n_pol do iazi = 1, n_azi From 2220fb02a7e65d2d03f16d5bbfce6233a24b1259 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 3 May 2016 04:40:59 -0400 Subject: [PATCH 132/259] Added zaid and awr data to summary so that openmc.mgxs.Library can access that information and pass it forward to the outputted microscopic library. --- openmc/mgxs/library.py | 5 +++++ openmc/mgxs_library.py | 36 ++++++++++++++++++++++++++++++++++ openmc/summary.py | 16 +++++++++++++-- src/summary.F90 | 44 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 1e9156ce5..0ceb154b8 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -410,6 +410,7 @@ class Library(object): self._sp_filename = statepoint._f.filename self._openmc_geometry = statepoint.summary.openmc_geometry + self._nuclides = statepoint.summary.nuclides if statepoint.run_mode == 'k-eigenvalue': self._keff = statepoint.k_combined[0] @@ -872,6 +873,10 @@ class Library(object): name += '.' + xs_ids[i] xsdata = openmc.XSdata(name, self.energy_groups) xsdata.order = order + print(self._nuclides) + print(nuclide) + xsdata.zaid = self._nuclides[nuclide][0] + xsdata.awr = self._nuclides[nuclide][1] # Now get xs data itself if 'total' in self.mgxs_types: diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index ef12c6c8a..9f16888c1 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -204,6 +204,8 @@ class XSdata(object): self._energy_groups = energy_groups self._representation = representation self._alias = None + self._zaid = None + self._awr = None self._kT = None self._fissionable = False self._scatt_type = 'legendre' @@ -237,6 +239,14 @@ class XSdata(object): def alias(self): return self._alias + @property + def zaid(self): + return self._zaid + + @property + def awr(self): + return self._awr + @property def kT(self): return self._kT @@ -334,6 +344,20 @@ class XSdata(object): else: self._alias = self._name + @zaid.setter + def zaid(self, zaid): + # Check type and value + check_type("zaid", zaid, Integral) + check_greater_than("zaid", zaid, 0, equality=False) + self._zaid = zaid + + @awr.setter + def awr(self, awr): + # Check validity of type and that the awr value is > 0 + check_type("awr", awr, Real) + check_greater_than("awr", awr, 0.0, equality=False) + self._awr = awr + @kT.setter def kT(self, kT): # Check validity of type and that the kT value is >= 0 @@ -1092,6 +1116,18 @@ class XSdata(object): subelement = ET.SubElement(element, 'kT') subelement.text = str(self._kT) + if self._zaid is not None: + subelement = ET.SubElement(element, 'zaid') + subelement.text = str(self._zaid) + + if self._awr is not None: + subelement = ET.SubElement(element, 'awr') + subelement.text = str(self._awr) + + if self._kT is not None: + subelement = ET.SubElement(element, 'kT') + subelement.text = str(self._kT) + if self._fissionable is not None: subelement = ET.SubElement(element, 'fissionable') subelement.text = str(self._fissionable) diff --git a/openmc/summary.py b/openmc/summary.py index 9b1c451f3..f33397d72 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -38,6 +38,7 @@ class Summary(object): self._opencg_geometry = None self._read_metadata() + self._read_nuclides() self._read_geometry() self._read_tallies() @@ -55,8 +56,8 @@ class Summary(object): def _read_metadata(self): # Read OpenMC version self.version = [self._f['version_major'].value, - self._f['version_minor'].value, - self._f['version_release'].value] + self._f['version_minor'].value, + self._f['version_release'].value] # Read date and time self.date_and_time = self._f['date_and_time'][...] @@ -70,6 +71,17 @@ class Summary(object): self.gen_per_batch = self._f['gen_per_batch'].value self.n_procs = self._f['n_procs'].value + def _read_nuclides(self): + self.nuclides = {} + n_nuclides = self._f['nuclides/n_nuclides_total'].value + names = self._f['nuclides/names'].value + awrs = self._f['nuclides/awrs'].value + zaids = self._f['nuclides/zaids'].value + for n in range(n_nuclides): + name = names[n].decode() + name = name[:name.find('.')] + self.nuclides[name] = (zaids[n], awrs[n]) + def _read_geometry(self): # Read in and initialize the Materials and Geometry self._read_materials() diff --git a/src/summary.F90 b/src/summary.F90 index 4502058ca..9defcc92f 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -68,6 +68,7 @@ contains "description", "Number of generations per batch") end if + call write_nuclides(file_id) call write_geometry(file_id) call write_materials(file_id) if (n_tallies > 0) then @@ -105,6 +106,49 @@ contains end subroutine write_header +!=============================================================================== +! WRITE_NUCLIDES +!=============================================================================== + + subroutine write_nuclides(file_id) + integer(HID_T), intent(in) :: file_id + integer(HID_T) :: nuclide_group + integer :: i + character(12), allocatable :: nucnames(:) + real(8), allocatable :: awrs(:) + integer, allocatable :: zaids(:) + + ! Use H5LT interface to write useful data from nuclide objects + nuclide_group = create_group(file_id, "nuclides") + call write_dataset(nuclide_group, "n_nuclides_total", n_nuclides_total) + + ! Build array of nuclide names, awrs, and zaids + allocate(nucnames(n_nuclides_total)) + allocate(awrs(n_nuclides_total)) + allocate(zaids(n_nuclides_total)) + do i = 1, n_nuclides_total + if (run_CE) then + nucnames(i) = xs_listings(nuclides(i) % listing) % alias + awrs(i) = nuclides(i) % awr + zaids(i) = nuclides(i) % zaid + else + nucnames(i) = xs_listings(nuclides_MG(i) % obj % listing) % alias + awrs(i) = nuclides_MG(i) % obj % awr + zaids(i) = nuclides_MG(i) % obj % zaid + end if + end do + + ! Write nuclide names, awrs and zaids + call write_dataset(nuclide_group, "names", nucnames) + call write_dataset(nuclide_group, "awrs", awrs) + call write_dataset(nuclide_group, "zaids", zaids) + + call close_group(nuclide_group) + + deallocate(nucnames, awrs, zaids) + + end subroutine write_nuclides + !=============================================================================== ! WRITE_GEOMETRY !=============================================================================== From 879728ea5d5b5b46c1f1b15b87357dc3acfa170c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 3 May 2016 14:46:52 -0600 Subject: [PATCH 133/259] Add ability to expand natural elements in Python API --- openmc/data/__init__.py | 1 + openmc/data/data.py | 101 ++++++++++++++++++++++++++++++++++++++++ openmc/element.py | 21 +++++++++ openmc/material.py | 29 ++++++++++-- setup.py | 2 +- 5 files changed, 149 insertions(+), 5 deletions(-) create mode 100644 openmc/data/__init__.py create mode 100644 openmc/data/data.py diff --git a/openmc/data/__init__.py b/openmc/data/__init__.py new file mode 100644 index 000000000..df22d8bbb --- /dev/null +++ b/openmc/data/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/openmc/data/data.py b/openmc/data/data.py new file mode 100644 index 000000000..c6dd81ba6 --- /dev/null +++ b/openmc/data/data.py @@ -0,0 +1,101 @@ +# Isotopic abundances from M. Berglund and M. E. Wieser, "Isotopic compositions +# of the elements 2009 (IUPAC Technical Report)", Pure. Appl. Chem. 83 (2), +# pp. 397--410 (2011). +natural_abundance = { + 'H-1': 0.999885, 'H-2': 0.000115, 'He-3': 1.34e-06, + 'He-4': 0.99999866, 'Li-6': 0.0759, 'Li-7': 0.9241, + 'Be-9': 1.0, 'B-10': 0.199, 'B-11': 0.801, + 'C-12': 0.9893, 'C-13': 0.0107, 'N-14': 0.99636, + 'N-15': 0.00364, 'O-16': 0.99757, 'O-17': 0.00038, + 'O-18': 0.00205, 'F-19': 1.0, 'Ne-20': 0.9048, + 'Ne-21': 0.0027, 'Ne-22': 0.0925, 'Na-23': 1.0, + 'Mg-24': 0.7899, 'Mg-25': 0.1, 'Mg-26': 0.1101, + 'Al-27': 1.0, 'Si-28': 0.92223, 'Si-29': 0.04685, + 'Si-30': 0.03092, 'P-31': 1.0, 'S-32': 0.9499, + 'S-33': 0.0075, 'S-34': 0.0425, 'S-36': 0.0001, + 'Cl-35': 0.7576, 'Cl-37': 0.2424, 'Ar-36': 0.003336, + 'Ar-38': 0.000629, 'Ar-40': 0.996035, 'K-39': 0.932581, + 'K-40': 0.000117, 'K-41': 0.067302, 'Ca-40': 0.96941, + 'Ca-42': 0.00647, 'Ca-43': 0.00135, 'Ca-44': 0.02086, + 'Ca-46': 4e-05, 'Ca-48': 0.00187, 'Sc-45': 1.0, + 'Ti-46': 0.0825, 'Ti-47': 0.0744, 'Ti-48': 0.7372, + 'Ti-49': 0.0541, 'Ti-50': 0.0518, 'V-50': 0.0025, + 'V-51': 0.9975, 'Cr-50': 0.04345, 'Cr-52': 0.83789, + 'Cr-53': 0.09501, 'Cr-54': 0.02365, 'Mn-55': 1.0, + 'Fe-54': 0.05845, 'Fe-56': 0.91754, 'Fe-57': 0.02119, + 'Fe-58': 0.00282, 'Co-59': 1.0, 'Ni-58': 0.68077, + 'Ni-60': 0.26223, 'Ni-61': 0.011399, 'Ni-62': 0.036346, + 'Ni-64': 0.009255, 'Cu-63': 0.6915, 'Cu-65': 0.3085, + 'Zn-64': 0.4917, 'Zn-66': 0.2773, 'Zn-67': 0.0404, + 'Zn-68': 0.1845, 'Zn-70': 0.0061, 'Ga-69': 0.60108, + 'Ga-71': 0.39892, 'Ge-70': 0.2057, 'Ge-72': 0.2745, + 'Ge-73': 0.0775, 'Ge-74': 0.365, 'Ge-76': 0.0773, + 'As-75': 1.0, 'Se-74': 0.0089, 'Se-76': 0.0937, + 'Se-77': 0.0763, 'Se-78': 0.2377, 'Se-80': 0.4961, + 'Se-82': 0.0873, 'Br-79': 0.5069, 'Br-81': 0.4931, + 'Kr-78': 0.00355, 'Kr-80': 0.02286, 'Kr-82': 0.11593, + 'Kr-83': 0.115, 'Kr-84': 0.56987, 'Kr-86': 0.17279, + 'Rb-85': 0.7217, 'Rb-87': 0.2783, 'Sr-84': 0.0056, + 'Sr-86': 0.0986, 'Sr-87': 0.07, 'Sr-88': 0.8258, + 'Y-89': 1.0, 'Zr-90': 0.5145, 'Zr-91': 0.1122, + 'Zr-92': 0.1715, 'Zr-94': 0.1738, 'Zr-96': 0.028, + 'Nb-93': 1.0, 'Mo-92': 0.1453, 'Mo-94': 0.0915, + 'Mo-95': 0.1584, 'Mo-96': 0.1667, 'Mo-97': 0.096, + 'Mo-98': 0.2439, 'Mo-100': 0.0982, 'Ru-96': 0.0554, + 'Ru-98': 0.0187, 'Ru-99': 0.1276, 'Ru-100': 0.126, + 'Ru-101': 0.1706, 'Ru-102': 0.3155, 'Ru-104': 0.1862, + 'Rh-103': 1.0, 'Pd-102': 0.0102, 'Pd-104': 0.1114, + 'Pd-105': 0.2233, 'Pd-106': 0.2733, 'Pd-108': 0.2646, + 'Pd-110': 0.1172, 'Ag-107': 0.51839, 'Ag-109': 0.48161, + 'Cd-106': 0.0125, 'Cd-108': 0.0089, 'Cd-110': 0.1249, + 'Cd-111': 0.128, 'Cd-112': 0.2413, 'Cd-113': 0.1222, + 'Cd-114': 0.2873, 'Cd-116': 0.0749, 'In-113': 0.0429, + 'In-115': 0.9571, 'Sn-112': 0.0097, 'Sn-114': 0.0066, + 'Sn-115': 0.0034, 'Sn-116': 0.1454, 'Sn-117': 0.0768, + 'Sn-118': 0.2422, 'Sn-119': 0.0859, 'Sn-120': 0.3258, + 'Sn-122': 0.0463, 'Sn-124': 0.0579, 'Sb-121': 0.5721, + 'Sb-123': 0.4279, 'Te-120': 0.0009, 'Te-122': 0.0255, + 'Te-123': 0.0089, 'Te-124': 0.0474, 'Te-125': 0.0707, + 'Te-126': 0.1884, 'Te-128': 0.3174, 'Te-130': 0.3408, + 'I-127': 1.0, 'Xe-124': 0.000952, 'Xe-126': 0.00089, + 'Xe-128': 0.019102, 'Xe-129': 0.264006, 'Xe-130': 0.04071, + 'Xe-131': 0.212324, 'Xe-132': 0.269086, 'Xe-134': 0.104357, + 'Xe-136': 0.088573, 'Cs-133': 1.0, 'Ba-130': 0.00106, + 'Ba-132': 0.00101, 'Ba-134': 0.02417, 'Ba-135': 0.06592, + 'Ba-136': 0.07854, 'Ba-137': 0.11232, 'Ba-138': 0.71698, + 'La-138': 0.0008881, 'La-139': 0.9991119, 'Ce-136': 0.00185, + 'Ce-138': 0.00251, 'Ce-140': 0.8845, 'Ce-142': 0.11114, + 'Pr-141': 1.0, 'Nd-142': 0.27152, 'Nd-143': 0.12174, + 'Nd-144': 0.23798, 'Nd-145': 0.08293, 'Nd-146': 0.17189, + 'Nd-148': 0.05756, 'Nd-150': 0.05638, 'Sm-144': 0.0307, + 'Sm-147': 0.1499, 'Sm-148': 0.1124, 'Sm-149': 0.1382, + 'Sm-150': 0.0738, 'Sm-152': 0.2675, 'Sm-154': 0.2275, + 'Eu-151': 0.4781, 'Eu-153': 0.5219, 'Gd-152': 0.002, + 'Gd-154': 0.0218, 'Gd-155': 0.148, 'Gd-156': 0.2047, + 'Gd-157': 0.1565, 'Gd-158': 0.2484, 'Gd-160': 0.2186, + 'Tb-159': 1.0, 'Dy-156': 0.00056, 'Dy-158': 0.00095, + 'Dy-160': 0.02329, 'Dy-161': 0.18889, 'Dy-162': 0.25475, + 'Dy-163': 0.24896, 'Dy-164': 0.2826, 'Ho-165': 1.0, + 'Er-162': 0.00139, 'Er-164': 0.01601, 'Er-166': 0.33503, + 'Er-167': 0.22869, 'Er-168': 0.26978, 'Er-170': 0.1491, + 'Tm-169': 1.0, 'Yb-168': 0.00123, 'Yb-170': 0.02982, + 'Yb-171': 0.1409, 'Yb-172': 0.2168, 'Yb-173': 0.16103, + 'Yb-174': 0.32026, 'Yb-176': 0.12996, 'Lu-175': 0.97401, + 'Lu-176': 0.02599, 'Hf-174': 0.0016, 'Hf-176': 0.0526, + 'Hf-177': 0.186, 'Hf-178': 0.2728, 'Hf-179': 0.1362, + 'Hf-180': 0.3508, 'Ta-180': 0.0001201, 'Ta-181': 0.9998799, + 'W-180': 0.0012, 'W-182': 0.265, 'W-183': 0.1431, + 'W-184': 0.3064, 'W-186': 0.2843, 'Re-185': 0.374, + 'Re-187': 0.626, 'Os-184': 0.0002, 'Os-186': 0.0159, + 'Os-187': 0.0196, 'Os-188': 0.1324, 'Os-189': 0.1615, + 'Os-190': 0.2626, 'Os-192': 0.4078, 'Ir-191': 0.373, + 'Ir-193': 0.627, 'Pt-190': 0.00012, 'Pt-192': 0.00782, + 'Pt-194': 0.3286, 'Pt-195': 0.3378, 'Pt-196': 0.2521, + 'Pt-198': 0.07356, 'Au-197': 1.0, 'Hg-196': 0.0015, + 'Hg-198': 0.0997, 'Hg-199': 0.1687, 'Hg-200': 0.231, + 'Hg-201': 0.1318, 'Hg-202': 0.2986, 'Hg-204': 0.0687, + 'Tl-203': 0.2952, 'Tl-205': 0.7048, 'Pb-204': 0.014, + 'Pb-206': 0.241, 'Pb-207': 0.221, 'Pb-208': 0.524, + 'Bi-209': 1.0, 'Th-232': 1.0, 'Pa-231': 1.0, + 'U-234': 5.4e-05, 'U-235': 0.007204, 'U-238': 0.992742 +} diff --git a/openmc/element.py b/openmc/element.py index 219aafbdf..39564add4 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -1,6 +1,8 @@ import sys +import openmc from openmc.checkvalue import check_type +from openmc.data import natural_abundance if sys.version_info[0] >= 3: basestring = str @@ -109,3 +111,22 @@ class Element(object): raise ValueError(msg) self._scattering = scattering + + def expand(self): + """Expand natural element into its naturally-occurring isotopes. + + Returns + ------- + isotopes : list + Naturally-occurring isotopes of the element. Each item of the list + is a tuple consisting of an openmc.Nuclide instance and the natural + abundance of the isotope. + + """ + + isotopes = [] + for isotope, abundance in natural_abundance.items(): + if isotope.startswith(self.name): + nuc = openmc.Nuclide(isotope, self.xs) + isotopes.append((nuc, abundance)) + return isotopes diff --git a/openmc/material.py b/openmc/material.py index b3c281341..c617015a3 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -10,6 +10,7 @@ if sys.version_info[0] >= 3: import openmc import openmc.checkvalue as cv from openmc.clean_xml import * +from openmc.data import natural_abundance # A static variable for auto-generated Material IDs @@ -382,7 +383,7 @@ class Material(object): if macroscopic._name == self._macroscopic.name: self._macroscopic = None - def add_element(self, element, percent, percent_type='ao'): + def add_element(self, element, percent, percent_type='ao', expand=False): """Add a natural element to the material Parameters @@ -391,8 +392,12 @@ class Material(object): Element to add percent : float Atom or weight percent - percent_type : {'ao', 'wo'} - 'ao' for atom percent and 'wo' for weight percent + percent_type : {'ao', 'wo'}, optional + 'ao' for atom percent and 'wo' for weight percent. Defaults to atom + percent. + expand : bool, optional + Whether to expand the natural element into its naturally-occurring + isotopes. Defaults to False. """ @@ -422,7 +427,15 @@ class Material(object): else: element = openmc.Element(element) - self._elements[element._name] = (element, percent, percent_type) + if expand: + if percent_type == 'wo': + raise NotImplementedError('Expanding natural element based on ' + 'weight percent is not yet supported.') + for isotope, abundance in element.expand(): + self._nuclides[isotope.name] = ( + isotope, percent*abundance, percent_type) + else: + self._elements[element.name] = (element, percent, percent_type) def remove_element(self, element): """Remove a natural element from the material @@ -491,6 +504,14 @@ class Material(object): density = nuclide_tuple[1] nuclides[nuclide._name] = (nuclide, density) + for element_name, element_tuple in self._elements.items(): + element = element_tuple[0] + density = element_tuple[1] + + # Expand natural element into isotopes + for isotope, abundance in element.expand(): + nuclides[isotope.name] = (isotope, density*abundance) + return nuclides def _get_nuclide_xml(self, nuclide, distrib=False): diff --git a/setup.py b/setup.py index e66b0b7a0..770f280ad 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ except ImportError: kwargs = {'name': 'openmc', 'version': '0.7.1', - 'packages': ['openmc', 'openmc.mgxs', 'openmc.stats'], + 'packages': ['openmc', 'openmc.data', 'openmc.mgxs', 'openmc.stats'], 'scripts': glob.glob('scripts/openmc-*'), # Metadata From 7eae7a629d5599f5f157ebf28aa6f9faf89583ba Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 4 May 2016 11:32:23 -0600 Subject: [PATCH 134/259] Add nuclides and elements properties on openmc.Material --- openmc/material.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/openmc/material.py b/openmc/material.py index c617015a3..ff690aa9a 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -50,6 +50,14 @@ class Material(object): Units used for `density`. Can be one of 'g/cm3', 'g/cc', 'kg/cm3', 'atom/b-cm', 'atom/cm3', 'sum', or 'macro'. The 'macro' unit only applies in the case of a multi-group calculation. + elements : collections.OrderedDict + Dictionary whose keys are element names and values are 3-tuples + consisting of an :class:`openmc.Element` instance, the percent density, + and the percent type (atom or weight fraction). + nuclides : collections.OrderedDict + Dictionary whose keys are nuclide names and values are 3-tuples + consisting of an :class:`openmc.Nuclide` instance, the percent density, + and the percent type (atom or weight fraction). """ @@ -187,6 +195,14 @@ class Material(object): def density_units(self): return self._density_units + @property + def elements(self): + return self._elements + + @property + def nuclides(self): + return self._nuclides + @property def convert_to_distrib_comps(self): return self._convert_to_distrib_comps From 179e9ab147e505563d118ed58096b3d225160ffa Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 5 May 2016 20:08:42 -0400 Subject: [PATCH 135/259] Added ability to use transport-corrected x/s and cleaned up some comments --- openmc/mgxs/library.py | 144 +++++++++++++++++++++++++++++------------ openmc/mgxs_library.py | 5 +- 2 files changed, 106 insertions(+), 43 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 0ceb154b8..34221f707 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -722,8 +722,9 @@ class Library(object): return pickle.load(open(full_filename, 'rb')) def write_mg_library(self, xs_type='macro', domain_names=None, xs_ids=None, - filename='mg_cross_sections', directory='./'): - """Create a cross-section data library file for the Multi-Group + filename='mg_cross_sections', directory='./', + return_names=True): + """Creates a cross-section data library file for the Multi-Group mode of OpenMC. Parameters @@ -744,6 +745,23 @@ class Library(object): directory : str Directory for the pickle file. Defaults to './' (the current working directory). + return_names : bool + Flag to indicate if the user would like the names of the + materials generated by this function returned with completion. + Defaults to True. + + Returns + ------- + mat_names : Iterable of str + Iterable of material names generated during this routine and + applies to the cross section library. Note this is returned if + the return_names parameter is provided. + + Raises + ------ + ValueError + When the Library object is initialized with insufficient types of + cross sections for the Library. See also -------- @@ -751,14 +769,8 @@ class Library(object): """ - # Check data types provided - + # Check the provided parameters cv.check_value('xs_type', xs_type, ['macro', 'micro']) - # Construct the collection of the nuclides to report - if self.by_nuclide: - nuclides = self.all_mgxs[1][self.mgxs_types[-1]].get_all_nuclides() - else: - xs_type = 'macro' if domain_names is not None: cv.check_iterable_type('domain_names', filename, basestring) if xs_ids is not None: @@ -769,14 +781,19 @@ class Library(object): else: cv.check_iterable_type('xs_ids', xs_ids, basestring) else: - xs_ids = ['1g'] + xs_ids = ['1g' for i in range(len(self.domains))] cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) - # Make directory if it does not exist + # Construct the collection of the nuclides to report + if self.by_nuclide: + nuclides = self.all_mgxs[1][self.mgxs_types[-1]].get_all_nuclides() + else: + xs_type = 'macro' + + # Make directory if it does not exist and build our filename if not os.path.exists(directory): os.makedirs(directory) - full_filename = os.path.join(directory, filename + '.xml') full_filename = full_filename.replace(' ', '-') @@ -784,12 +801,15 @@ class Library(object): mgxs_file = openmc.MGXSLibrary(self.energy_groups) # Set the scattering order as isotropic until - # support for higher orders are included + # support for higher orders are included in openmc.mgxs order = 0 # Build XSdata objects xsdatas = [] + + mat_names = {} for i in range(len(self.domains)): + id = self.domains[i].id if not self.by_nuclide: # Build & add metadata to XSdata object @@ -802,32 +822,46 @@ class Library(object): xsdata = openmc.XSdata(name, self.energy_groups) xsdata.order = order + mat_names[id] = name + # Now get xs data itself - if 'total' in self.mgxs_types: + if 'transport' in self.mgxs_types: + if self.correction == 'P0': + xsdata.set_total(self.all_mgxs[id]['transport'], + xs_type=xs_type, subdomains=(id,)) + else: + msg = "The use of a transport cross section " + \ + "requires the correction attribute to be" + \ + "set to 'P0' to produce valid cross " + \ + "section libraries" + raise ValueError(msg) + elif 'total' in self.mgxs_types: xsdata.set_total(self.all_mgxs[id]['total'], - xs_type=xs_type, subdomains=(i + 1,)) + xs_type=xs_type, subdomains=(id,)) if 'absorption' in self.mgxs_types: xsdata.set_absorption(self.all_mgxs[id]['absorption'], - xs_type=xs_type, subdomains=(i + 1,)) + xs_type=xs_type, + subdomains=(id,)) if 'fission' in self.mgxs_types: xsdata.set_fission(self.all_mgxs[id]['fission'], - xs_type=xs_type, subdomains=(i + 1,)) + xs_type=xs_type, subdomains=(id,)) if 'kappa-fission' in self.mgxs_types: xsdata.set_k_fission(self.all_mgxs[id]['kappa-fission'], - xs_type=xs_type, subdomains=(i + 1,)) + xs_type=xs_type, subdomains=(id,)) if 'chi' in self.mgxs_types: xsdata.set_chi(self.all_mgxs[id]['chi'], - xs_type=xs_type, subdomains=(i + 1,)) + xs_type=xs_type, subdomains=(id,)) if 'nu-fission' in self.mgxs_types: xsdata.set_nu_fission(self.all_mgxs[id]['nu-fission'], - xs_type=xs_type, subdomains=(i + 1,)) + xs_type=xs_type, + subdomains=(id,)) # multiplicity requires scatter and nu-scatter if ((('scatter matrix' in self.mgxs_types) and ('nu-scatter matrix' in self.mgxs_types))): xsdata.set_multiplicity( self.all_mgxs[id]['nu-scatter matrix'], self.all_mgxs[id]['scatter matrix'], - xs_type=xs_type, subdomains=(i + 1,)) + xs_type=xs_type, subdomains=(id,)) xsdata.multiplicity = np.nan_to_num(xsdata.multiplicity) using_multiplicity = True else: @@ -836,21 +870,29 @@ class Library(object): if using_multiplicity: xsdata.set_scatter(self.all_mgxs[id]['nu-scatter matrix'], xs_type=xs_type, - subdomains=(i + 1,)) + subdomains=(id,)) else: if 'nu-scatter matrix' in self.mgxs_types: xsdata.set_scatter( self.all_mgxs[id]['nu-scatter matrix'], - xs_type=xs_type, subdomains=(i + 1,)) + xs_type=xs_type, subdomains=(id,)) # Since we are not using multiplicity, then # scattering multiplication (nu-scatter) must be # accounted for approximately by using an adjusted # absorption cross section. - if self.total is not None: + # We can not do this with a transport x/s so check + # for that. + if 'total' in self.mgxs_types: xsdata.absorption = \ np.subtract(xsdata.total, np.sum(xsdata.scatter[0, :, :], axis=1)) + else: + msg = "Absorption cross section must be " + \ + "provided if using a transport cross" + \ + " section and while not providing a " + \ + "scattering matrix" + raise ValueError(msg) else: msg = "No nu-scatter matrix data was provided. " + \ "This means neutron balance cannot be " + \ @@ -859,10 +901,11 @@ class Library(object): warn(msg) xsdata.set_scatter(self.all_mgxs[id]['scatter matrix'], xs_type=xs_type, - subdomains=(i + 1,)) + subdomains=(id,)) xsdatas.append(xsdata) else: + mat_names[id] = {} for nuclide in nuclides: # Build & add metadata to XSdata object if domain_names is None: @@ -871,41 +914,53 @@ class Library(object): name = domain_names[i] name += '_' + nuclide name += '.' + xs_ids[i] + + mat_names[id][nuclide] = name + xsdata = openmc.XSdata(name, self.energy_groups) xsdata.order = order - print(self._nuclides) - print(nuclide) xsdata.zaid = self._nuclides[nuclide][0] - xsdata.awr = self._nuclides[nuclide][1] + xsdata.awr = self._nuclides[nuclide][1] # Now get xs data itself - if 'total' in self.mgxs_types: + if 'transport' in self.mgxs_types: + if self.correction == 'P0': + xsdata.set_total(self.all_mgxs[id]['transport'], + xs_type=xs_type, subdomains=(id,), + nuclides=[nuclide]) + else: + msg = "The use of a transport cross section " + \ + "requires the correction attribute to be" + \ + "set to 'P0' to produce valid cross " + \ + "section libraries" + raise ValueError(msg) + elif 'total' in self.mgxs_types: xsdata.set_total(self.all_mgxs[id]['total'], - xs_type=xs_type, subdomains=(i + 1,), + xs_type=xs_type, subdomains=(id,), nuclides=[nuclide]) if 'absorption' in self.mgxs_types: xsdata.set_absorption(self.all_mgxs[id]['absorption'], xs_type=xs_type, - subdomains=(i + 1,), + subdomains=(id,), nuclides=[nuclide]) if 'fission' in self.mgxs_types: xsdata.set_fission(self.all_mgxs[id]['fission'], xs_type=xs_type, - subdomains=(i + 1,), + subdomains=(id,), nuclides=[nuclide]) if 'kappa-fission' in self.mgxs_types: xsdata.set_k_fission( self.all_mgxs[id]['kappa-fission'], - xs_type=xs_type, subdomains=(i + 1,), + xs_type=xs_type, subdomains=(id,), nuclides=[nuclide]) if 'chi' in self.mgxs_types: xsdata.set_chi(self.all_mgxs[id]['chi'], - xs_type=xs_type, subdomains=(i + 1,), + xs_type=xs_type, subdomains=(id,), nuclides=[nuclide]) if 'nu-fission' in self.mgxs_types: xsdata.set_nu_fission(self.all_mgxs[id]['nu-fission'], xs_type=xs_type, - subdomains=(i + 1,), + subdomains=(id,), nuclides=[nuclide]) # multiplicity requires scatter and nu-scatter if ((('scatter matrix' in self.mgxs_types) and @@ -913,7 +968,7 @@ class Library(object): xsdata.set_multiplicity( self.all_mgxs[id]['nu-scatter matrix'], self.all_mgxs[id]['scatter matrix'], - xs_type=xs_type, subdomains=(i + 1,), + xs_type=xs_type, subdomains=(id,), nuclides=[nuclide]) xsdata.multiplicity = \ np.nan_to_num(xsdata.multiplicity) @@ -924,23 +979,29 @@ class Library(object): if using_multiplicity: xsdata.set_scatter( self.all_mgxs[id]['nu-scatter matrix'], - xs_type=xs_type, subdomains=(i + 1,), + xs_type=xs_type, subdomains=(id,), nuclides=[nuclide]) else: if 'nu-scatter matrix' in self.mgxs_types: xsdata.set_scatter( self.all_mgxs[id]['nu-scatter matrix'], - xs_type=xs_type, subdomains=(i + 1,), + xs_type=xs_type, subdomains=(id,), nuclides=[nuclide]) # Since we are not using multiplicity, then # scattering multiplication (nu-scatter) must be # accounted for approximately by using an adjusted # absorption cross section. - if self.total is not None: + if 'total' in self.mgxs_types: xsdata.absorption = \ np.subtract(xsdata.total, np.sum(xsdata.scatter[0, :, :], axis=1)) + else: + msg = "Absorption cross section must be " + \ + "provided if using a transport cross" + \ + " section and while not providing a " + \ + "scattering matrix" + raise ValueError(msg) else: msg = "No nu-scatter matrix data was provided. " +\ "This means neutron balance cannot be " + \ @@ -950,7 +1011,7 @@ class Library(object): xsdata.set_scatter( self.all_mgxs[id]['scatter matrix'], xs_type=xs_type, - subdomains=(i + 1,), + subdomains=(id,), nuclides=[nuclide]) xsdatas.append(xsdata) @@ -961,4 +1022,5 @@ class Library(object): # Finally, write the file mgxs_file.export_to_xml(full_filename) - + if return_names: + return mat_names diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 9f16888c1..bae23b0bc 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -602,10 +602,11 @@ class XSdata(object): self._fissionable = True def set_total(self, total, **kwargs): - if isinstance(total, openmc.mgxs.TotalXS): + if (isinstance(total, openmc.mgxs.TotalXS) or + isinstance(total, openmc.mgxs.TransportXS)): # Make sure passed MGXS object contains correct group structure if self.energy_groups != total.energy_groups: - msg = 'Group structure of provided TotalXS does not match' \ + msg = 'Group structure of provided data does not match' \ ' group structure of XSdata object' raise ValueError(msg) # Get openmc.mgxs.get_xs() arguments from kwargs From ff198abf3a704767f8195e002b8b5a4e6c2b4f04 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 2 May 2016 10:41:45 -0600 Subject: [PATCH 136/259] Improve constructors for Universe and Cell --- openmc/cell.py | 11 ++++++++++- openmc/universe.py | 10 ++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index ed1f3178b..37828d8fc 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -33,6 +33,10 @@ class Cell(object): automatically be assigned. name : str, optional Name of the cell. If not specified, the name is the empty string. + fill : openmc.Material or openmc.Universe or openmc.Lattice or 'void' or iterable of openmc.Material, optional + Indicates what the region of space is filled with + region : openmc.Region, optional + Region of space that is assigned to the cell. Attributes ---------- @@ -58,7 +62,7 @@ class Cell(object): """ - def __init__(self, cell_id=None, name=''): + def __init__(self, cell_id=None, name='', fill=None, region=None): # Initialize Cell class attributes self.id = cell_id self.name = name @@ -70,6 +74,11 @@ class Cell(object): self._offsets = None self._distribcell_index = None + if fill is not None: + self.fill = fill + if region is not None: + self.region = region + def __eq__(self, other): if not isinstance(other, Cell): return False diff --git a/openmc/universe.py b/openmc/universe.py index eb6d13233..8834eaa52 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -36,6 +36,8 @@ class Universe(object): automatically be assigned name : str, optional Name of the universe. If not specified, the name is the empty string. + cells : Iterable of openmc.Cell + Cells to add to the universe Attributes ---------- @@ -49,7 +51,7 @@ class Universe(object): """ - def __init__(self, universe_id=None, name=''): + def __init__(self, universe_id=None, name='', cells=None): # Initialize Cell class attributes self.id = universe_id self.name = name @@ -61,7 +63,9 @@ class Universe(object): # Keys - Cell IDs # Values - Offsets self._cell_offsets = OrderedDict() - self._num_regions = 0 + + if cells is not None: + self.add_cells(cells) def __eq__(self, other): if not isinstance(other, Universe): @@ -87,8 +91,6 @@ class Universe(object): string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) string += '{0: <16}{1}{2}\n'.format('\tCells', '=\t', list(self._cells.keys())) - string += '{0: <16}{1}{2}\n'.format('\t# Regions', '=\t', - self._num_regions) return string @property From 744ed3c5f81712416a6144b5a7f598475dc17682 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 2 May 2016 10:42:53 -0600 Subject: [PATCH 137/259] Fix up docstrings for Lattice and its subclasses --- openmc/lattice.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/openmc/lattice.py b/openmc/lattice.py index baccbad90..f1e775920 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -32,11 +32,11 @@ class Lattice(object): Name of the lattice pitch : float Pitch of the lattice in cm - outer : int - The unique identifier of a universe to fill all space outside the - lattice - universes : numpy.ndarray of openmc.Universe - An array of universes filling each element of the lattice + outer : openmc.Universe + A universe to fill all space outside the lattice + universes : Iterable of Iterable of openmc.Universe + A two- or three-dimensional list/array of universes filling each element + of the lattice """ @@ -259,6 +259,13 @@ class RectLattice(Lattice): lower_left : Iterable of float The coordinates of the lower-left corner of the lattice. If the lattice is two-dimensional, only the x- and y-coordinates are specified. + pitch : float + Pitch of the lattice in cm + outer : openmc.Universe + A universe to fill all space outside the lattice + universes : Iterable of Iterable of openmc.Universe + A two- or three-dimensional list/array of universes filling each element + of the lattice """ @@ -505,6 +512,13 @@ class HexLattice(Lattice): center : Iterable of float Coordinates of the center of the lattice. If the lattice does not have axial sections then only the x- and y-coordinates are specified + pitch : float + Pitch of the lattice in cm + outer : openmc.Universe + A universe to fill all space outside the lattice + universes : Iterable of Iterable of openmc.Universe + A two- or three-dimensional list/array of universes filling each element + of the lattice """ From e1a1e081fd7e84c38ed74e1a96f4b02484a056c1 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 2 May 2016 10:50:56 -0600 Subject: [PATCH 138/259] Automatically link summary.h5 by default when present --- openmc/statepoint.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 7b75ac767..6c8af88a7 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -1,5 +1,6 @@ import sys import re +import os import numpy as np import openmc @@ -14,6 +15,14 @@ class StatePoint(object): of a given batch). Statepoints can be used to analyze tally results as well as restart a simulation. + Parameters + ---------- + filename : str + Path to file to load + autolink : bool, optional + Whether to automatically link in metadata from a summary.h5 + file. Defaults to True. + Attributes ---------- cmfd_on : bool @@ -93,7 +102,7 @@ class StatePoint(object): """ - def __init__(self, filename): + def __init__(self, filename, autolink=True): import h5py self._f = h5py.File(filename, 'r') @@ -116,10 +125,17 @@ class StatePoint(object): # Set flags for what data has been read self._meshes_read = False self._tallies_read = False - self._summary = False + self._summary = None self._global_tallies = None self._sparse = False + # Automatically link in a summary file if one exists + if autolink: + path_summary = os.path.join(os.path.dirname(filename), 'summary.h5') + if os.path.exists(path_summary): + su = openmc.Summary(path_summary) + self.link_with_summary(su) + def close(self): self._f.close() @@ -606,12 +622,17 @@ class StatePoint(object): Raises ------ + RuntimeError + If a Summary object has already been linked. ValueError An error when the argument passed to the 'summary' parameter is not an openmc.Summary object. """ + if self.summary is not None: + raise RuntimeError('A Summary object has already been linked.') + if not isinstance(summary, openmc.summary.Summary): msg = 'Unable to link statepoint with "{0}" which ' \ 'is not a Summary object'.format(summary) From 6558fd8a34032e143a34b9ffdcf06e9acb4ee0a7 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 3 May 2016 10:44:16 -0600 Subject: [PATCH 139/259] Fix reading hexagonal lattices in Summary --- openmc/summary.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/summary.py b/openmc/summary.py index 9b1c451f3..ea13284bd 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -378,11 +378,11 @@ class Summary(object): self.lattices[index] = lattice if lattice_type == 'hexagonal': - n_rings = self._f['geometry/lattices'][key]['n_rings'][0] - n_axial = self._f['geometry/lattices'][key]['n_axial'][0] + n_rings = self._f['geometry/lattices'][key]['n_rings'].value + n_axial = self._f['geometry/lattices'][key]['n_axial'].value center = self._f['geometry/lattices'][key]['center'][...] pitch = self._f['geometry/lattices'][key]['pitch'][...] - outer = self._f['geometry/lattices'][key]['outer'][0] + outer = self._f['geometry/lattices'][key]['outer'].value universe_ids = self._f[ 'geometry/lattices'][key]['universes'][...] From 5947bbefd2f833b03dfb78453cee296810a9ee4f Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 4 May 2016 14:09:12 -0600 Subject: [PATCH 140/259] Don't read eigenvalue-related data in summary.h5 if fixed source --- openmc/summary.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openmc/summary.py b/openmc/summary.py index ea13284bd..34c51bc51 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -65,9 +65,10 @@ class Summary(object): self.n_batches = self._f['n_batches'].value self.n_particles = self._f['n_particles'].value - self.n_active = self._f['n_active'].value - self.n_inactive = self._f['n_inactive'].value - self.gen_per_batch = self._f['gen_per_batch'].value + if 'n_inactive' in self._f: + self.n_active = self._f['n_active'].value + self.n_inactive = self._f['n_inactive'].value + self.gen_per_batch = self._f['gen_per_batch'].value self.n_procs = self._f['n_procs'].value def _read_geometry(self): From 049b04d99595b4115ce3170dc7c83bec426423f6 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 5 May 2016 13:40:34 -0600 Subject: [PATCH 141/259] Fix tests which autolink summary metadata now --- tests/test_asymmetric_lattice/test_asymmetric_lattice.py | 9 ++------- .../test_mgxs_library_condense.py | 5 ----- .../test_mgxs_library_distribcell.py | 5 ----- tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py | 5 ----- .../test_mgxs_library_no_nuclides.py | 5 ----- .../test_mgxs_library_nuclides.py | 5 ----- tests/test_tally_aggregation/test_tally_aggregation.py | 5 ----- tests/test_tally_arithmetic/test_tally_arithmetic.py | 5 ----- tests/test_tally_slice_merge/test_tally_slice_merge.py | 5 ----- 9 files changed, 2 insertions(+), 47 deletions(-) diff --git a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py index 03e55d32f..504cc4746 100644 --- a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py +++ b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py @@ -82,11 +82,6 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] sp = openmc.StatePoint(statepoint) - # Read the summary file - summary = glob.glob(os.path.join(os.getcwd(), 'summary.h5'))[0] - su = openmc.Summary(summary) - sp.link_with_summary(su) - # Extract the tally of interest tally = sp.get_tally(name='distribcell tally') @@ -96,8 +91,8 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): outstr += ', '.join(map(str, tally.std_dev.flatten())) + '\n' # Extract fuel assembly lattices from the summary - core = su.get_cell_by_id(1) - fuel = su.get_cell_by_id(80) + core = sp.summary.get_cell_by_id(1) + fuel = sp.summary.get_cell_by_id(80) fuel = fuel.fill core = core.fill diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index 97bb853b6..3ca98904f 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -43,11 +43,6 @@ class MGXSTestHarness(PyAPITestHarness): statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] sp = openmc.StatePoint(statepoint) - # Read the summary file. - summary = glob.glob(os.path.join(os.getcwd(), 'summary.h5'))[0] - su = openmc.Summary(summary) - sp.link_with_summary(su) - # Load the MGXS library from the statepoint self.mgxs_lib.load_from_statepoint(sp) diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index 681266186..d488e8ec9 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -46,11 +46,6 @@ class MGXSTestHarness(PyAPITestHarness): statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] sp = openmc.StatePoint(statepoint) - # Read the summary file. - summary = glob.glob(os.path.join(os.getcwd(), 'summary.h5'))[0] - su = openmc.Summary(summary) - sp.link_with_summary(su) - # Load the MGXS library from the statepoint self.mgxs_lib.load_from_statepoint(sp) diff --git a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py index 30be46b4c..91bb036e3 100644 --- a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py +++ b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py @@ -44,11 +44,6 @@ class MGXSTestHarness(PyAPITestHarness): statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] sp = openmc.StatePoint(statepoint) - # Read the summary file. - summary = glob.glob(os.path.join(os.getcwd(), 'summary.h5'))[0] - su = openmc.Summary(summary) - sp.link_with_summary(su) - # Load the MGXS library from the statepoint self.mgxs_lib.load_from_statepoint(sp) diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 381b5b87c..15f90cb87 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -43,11 +43,6 @@ class MGXSTestHarness(PyAPITestHarness): statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] sp = openmc.StatePoint(statepoint) - # Read the summary file. - summary = glob.glob(os.path.join(os.getcwd(), 'summary.h5'))[0] - su = openmc.Summary(summary) - sp.link_with_summary(su) - # Load the MGXS library from the statepoint self.mgxs_lib.load_from_statepoint(sp) diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index c3e4f5f77..113f2aa41 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -43,11 +43,6 @@ class MGXSTestHarness(PyAPITestHarness): statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] sp = openmc.StatePoint(statepoint) - # Read the summary file. - summary = glob.glob(os.path.join(os.getcwd(), 'summary.h5'))[0] - su = openmc.Summary(summary) - sp.link_with_summary(su) - # Load the MGXS library from the statepoint self.mgxs_lib.load_from_statepoint(sp) diff --git a/tests/test_tally_aggregation/test_tally_aggregation.py b/tests/test_tally_aggregation/test_tally_aggregation.py index 359afbe34..fdc086e68 100644 --- a/tests/test_tally_aggregation/test_tally_aggregation.py +++ b/tests/test_tally_aggregation/test_tally_aggregation.py @@ -43,11 +43,6 @@ class TallyAggregationTestHarness(PyAPITestHarness): statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] sp = openmc.StatePoint(statepoint) - # Read the summary file. - summary = glob.glob(os.path.join(os.getcwd(), 'summary.h5'))[0] - su = openmc.Summary(summary) - sp.link_with_summary(su) - # Extract the tally of interest tally = sp.get_tally(name='distribcell tally') diff --git a/tests/test_tally_arithmetic/test_tally_arithmetic.py b/tests/test_tally_arithmetic/test_tally_arithmetic.py index 8e2d2b349..a5919909f 100644 --- a/tests/test_tally_arithmetic/test_tally_arithmetic.py +++ b/tests/test_tally_arithmetic/test_tally_arithmetic.py @@ -62,11 +62,6 @@ class TallyArithmeticTestHarness(PyAPITestHarness): statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] sp = openmc.StatePoint(statepoint) - # Read the summary file. - summary = glob.glob(os.path.join(os.getcwd(), 'summary.h5'))[0] - su = openmc.Summary(summary) - sp.link_with_summary(su) - # Load the tallies tally_1 = sp.get_tally(name='tally 1') tally_2 = sp.get_tally(name='tally 2') diff --git a/tests/test_tally_slice_merge/test_tally_slice_merge.py b/tests/test_tally_slice_merge/test_tally_slice_merge.py index 85dd532c6..4dbb993d5 100644 --- a/tests/test_tally_slice_merge/test_tally_slice_merge.py +++ b/tests/test_tally_slice_merge/test_tally_slice_merge.py @@ -83,11 +83,6 @@ class TallySliceMergeTestHarness(PyAPITestHarness): statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] sp = openmc.StatePoint(statepoint) - # Read the summary file. - summary = glob.glob(os.path.join(os.getcwd(), 'summary.h5'))[0] - su = openmc.Summary(summary) - sp.link_with_summary(su) - # Extract the cell tally tallies = [sp.get_tally(name='cell tally')] From 8923e1b8f2731cd21b66088c79916fa1c6ef3ad0 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 5 May 2016 15:14:26 -0600 Subject: [PATCH 142/259] Update Jupyter notebook examples --- .../pythonapi/examples/mgxs-part-i.ipynb | 124 ++- .../pythonapi/examples/mgxs-part-ii.ipynb | 690 ++++++++--------- .../pythonapi/examples/mgxs-part-iii.ipynb | 206 +++-- .../examples/pandas-dataframes.ipynb | 721 +++++++++--------- .../pythonapi/examples/post-processing.ipynb | 75 +- .../pythonapi/examples/tally-arithmetic.ipynb | 161 ++-- src/output.F90 | 2 +- 7 files changed, 927 insertions(+), 1052 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index a450af97e..610e82ec1 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -417,24 +417,22 @@ "data": { "text/plain": [ "OrderedDict([('flux', Tally\n", - "\tID =\t10000\n", - "\tName =\t\n", - "\tFilters =\t\n", - " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", - "\tNuclides =\ttotal \n", - "\tScores =\t['flux']\n", - "\tEstimator =\ttracklength\n", - "), ('absorption', Tally\n", - "\tID =\t10001\n", - "\tName =\t\n", - "\tFilters =\t\n", - " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", - "\tNuclides =\ttotal \n", - "\tScores =\t['absorption']\n", - "\tEstimator =\ttracklength\n", - ")])" + " \tID =\t10000\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + " \tNuclides =\ttotal \n", + " \tScores =\t['flux']\n", + " \tEstimator =\ttracklength), ('absorption', Tally\n", + " \tID =\t10001\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + " \tNuclides =\ttotal \n", + " \tScores =\t['absorption']\n", + " \tEstimator =\ttracklength)])" ] }, "execution_count": 13, @@ -508,12 +506,11 @@ " 888\n", " 888\n", "\n", - " Copyright: 2011-2015 Massachusetts Institute of Technology\n", - " License: http://mit-crpg.github.io/openmc/license.html\n", + " Copyright: 2011-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", - " Date/Time: 2016-04-13 11:24:09\n", - " MPI Processes: 1\n", + " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", + " Date/Time: 2016-05-05 13:43:54\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -598,20 +595,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.6300E-01 seconds\n", - " Reading cross sections = 1.2100E-01 seconds\n", - " Total time in simulation = 1.6504E+01 seconds\n", - " Time in transport only = 1.6479E+01 seconds\n", - " Time in inactive batches = 1.9620E+00 seconds\n", - " Time in active batches = 1.4542E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-02 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 5.7300E-01 seconds\n", + " Reading cross sections = 1.7600E-01 seconds\n", + " Total time in simulation = 2.1188E+01 seconds\n", + " Time in transport only = 2.1173E+01 seconds\n", + " Time in inactive batches = 2.6880E+00 seconds\n", + " Time in active batches = 1.8500E+01 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.6977E+01 seconds\n", - " Calculation Rate (inactive) = 12742.1 neutrons/second\n", - " Calculation Rate (active) = 6876.63 neutrons/second\n", + " Total time elapsed = 2.1776E+01 seconds\n", + " Calculation Rate (inactive) = 9300.60 neutrons/second\n", + " Calculation Rate (active) = 5405.41 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -669,20 +666,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In addition to the statepoint file, our simulation also created a summary file which encapsulates information about the materials and geometry. This is necessary for the `openmc.mgxs` module to properly process the tally data. We first create a `Summary` object and link it with the statepoint." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Load the summary file and link it with the statepoint\n", - "su = openmc.Summary('summary.h5')\n", - "sp.link_with_summary(su)" + "In addition to the statepoint file, our simulation also created a summary file which encapsulates information about the materials and geometry. By default, a `Summary` object is automatically linked when a `StatePoint` is loaded. This is necessary for the `openmc.mgxs` module to properly process the tally data." ] }, { @@ -694,7 +678,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -729,7 +713,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -764,7 +748,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -811,7 +795,7 @@ "0 1 2 total 1.292013 0.007642" ] }, - "execution_count": 20, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -830,7 +814,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": { "collapsed": true }, @@ -848,7 +832,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -875,7 +859,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -932,7 +916,7 @@ "1 (((total / flux) - (absorption / flux)) - (sca... 1.44e-15 2.57e-03 " ] }, - "execution_count": 23, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -954,7 +938,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -1011,7 +995,7 @@ "1 ((absorption / flux) / (total / flux)) 1.93e-02 9.46e-05 " ] }, - "execution_count": 24, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -1026,7 +1010,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -1083,7 +1067,7 @@ "1 ((scatter / flux) / (total / flux)) 9.81e-01 3.74e-03 " ] }, - "execution_count": 25, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1105,7 +1089,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -1135,7 +1119,7 @@ " 6.250000e-07\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", - " 1\n", + " 1.0\n", " 0.007763\n", " \n", " \n", @@ -1145,7 +1129,7 @@ " 2.000000e+01\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", - " 1\n", + " 1.0\n", " 0.003739\n", " \n", " \n", @@ -1162,7 +1146,7 @@ "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 3.74e-03 " ] }, - "execution_count": 26, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1178,21 +1162,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.5.1" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 793d88436..fd8d09052 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -13,7 +13,7 @@ "* The use of **[PyNE](http://pyne.io/) to plot** continuous-energy vs. multi-group cross sections\n", "* **Validation** of multi-group cross sections with **[OpenMOC](https://mit-crpg.github.io/OpenMOC/)**\n", "\n", - "**Note:** This Notebook was created using [OpenMOC](https://mit-crpg.github.io/OpenMOC/) to verify the multi-group cross-sections generated by OpenMC. In order to run this Notebook in its entirety, you must have [OpenMOC](https://mit-crpg.github.io/OpenMOC/) installed on your system, along with OpenCG to convert the OpenMC geometries into OpenMOC geometries. In addition, this Notebook illustrates the use of [Pandas](http://pandas.pydata.org/) `DataFrames` to containerize multi-group cross section data. We recommend using [Pandas](http://pandas.pydata.org/) >v0.15.0 or later since OpenMC's Python API leverages the multi-indexing feature included in the most recent releases of [Pandas](http://pandas.pydata.org/)." + "**Note:** This Notebook was created using [OpenMOC](https://mit-crpg.github.io/OpenMOC/) to verify the multi-group cross-sections generated by OpenMC. In order to run this Notebook in its entirety, you must have [OpenMOC](https://mit-crpg.github.io/OpenMOC/) installed on your system, along with OpenCG to convert the OpenMC geometries into OpenMOC geometries. In addition, this Notebook illustrates the use of [Pandas](http://pandas.pydata.org/) `DataFrames` to containerize multi-group cross section data." ] }, { @@ -34,16 +34,16 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:884: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n", - " warnings.warn(self.msg_depr % (key, alt_key))\n", - "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", + "/home/romano/miniconda3/envs/default/lib/python3.5/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", "\n", " warnings.warn(_use_error_msg)\n", - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:9: QAWarning: pyne.rxname is not yet QA compliant.\n", - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:9: QAWarning: pyne.ace is not yet QA compliant.\n" + "/home/romano/miniconda3/envs/default/lib/python3.5/importlib/_bootstrap.py:222: QAWarning: pyne.rxname is not yet QA compliant.\n", + " return f(*args, **kwds)\n", + "/home/romano/miniconda3/envs/default/lib/python3.5/importlib/_bootstrap.py:222: QAWarning: pyne.ace is not yet QA compliant.\n", + " return f(*args, **kwds)\n" ] } ], @@ -442,12 +442,11 @@ " 888\n", " 888\n", "\n", - " Copyright: 2011-2015 Massachusetts Institute of Technology\n", - " License: http://mit-crpg.github.io/openmc/license.html\n", + " Copyright: 2011-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", - " Date/Time: 2016-04-13 11:59:39\n", - " MPI Processes: 1\n", + " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", + " Date/Time: 2016-05-05 15:00:51\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -523,7 +522,7 @@ " 48/1 1.21610 1.22612 +/- 0.00251\n", " 49/1 1.22199 1.22602 +/- 0.00245\n", " 50/1 1.20860 1.22558 +/- 0.00243\n", - " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10050\n", + " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10056\n", " The estimated number of batches is 73\n", " Creating state point statepoint.050.h5...\n", " 51/1 1.21850 1.22541 +/- 0.00237\n", @@ -549,7 +548,7 @@ " 71/1 1.19720 1.22444 +/- 0.00195\n", " 72/1 1.23770 1.22465 +/- 0.00193\n", " 73/1 1.23894 1.22488 +/- 0.00191\n", - " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10050\n", + " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10056\n", " The estimated number of batches is 74\n", " 74/1 1.22437 1.22487 +/- 0.00188\n", " Triggers satisfied for batch 74\n", @@ -562,20 +561,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.0100E-01 seconds\n", - " Reading cross sections = 8.8000E-02 seconds\n", - " Total time in simulation = 2.3897E+02 seconds\n", - " Time in transport only = 2.3892E+02 seconds\n", - " Time in inactive batches = 1.6456E+01 seconds\n", - " Time in active batches = 2.2251E+02 seconds\n", - " Time synchronizing fission bank = 1.8000E-02 seconds\n", - " Sampling source sites = 1.3000E-02 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Total time for initialization = 3.8600E-01 seconds\n", + " Reading cross sections = 1.1000E-01 seconds\n", + " Total time in simulation = 2.3697E+02 seconds\n", + " Time in transport only = 2.3690E+02 seconds\n", + " Time in inactive batches = 1.5640E+01 seconds\n", + " Time in active batches = 2.2133E+02 seconds\n", + " Time synchronizing fission bank = 3.0000E-02 seconds\n", + " Sampling source sites = 1.9000E-02 seconds\n", + " SEND/RECV source sites = 1.1000E-02 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.2000E-02 seconds\n", - " Total time elapsed = 2.3943E+02 seconds\n", - " Calculation Rate (inactive) = 6076.81 neutrons/second\n", - " Calculation Rate (active) = 1797.66 neutrons/second\n", + " Total time for finalization = 1.0000E-02 seconds\n", + " Total time elapsed = 2.3743E+02 seconds\n", + " Calculation Rate (inactive) = 6393.86 neutrons/second\n", + " Calculation Rate (active) = 1807.26 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -629,26 +628,6 @@ "sp = openmc.StatePoint('statepoint.074.h5')" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In addition to the statepoint file, our simulation also created a summary file which encapsulates information about the materials and geometry. This is necessary for the `openmc.mgxs` module to properly process the tally data. We first create a `Summary` object and link it with the statepoint." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Load the summary file and link it with the statepoint\n", - "su = openmc.Summary('summary.h5')\n", - "sp.link_with_summary(su)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -658,7 +637,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -693,7 +672,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -747,7 +726,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -789,7 +768,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -919,7 +898,7 @@ "119 10002 1 5 O-16 0.000000 0.000000" ] }, - "execution_count": 20, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -939,7 +918,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": { "collapsed": true }, @@ -961,7 +940,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -1000,7 +979,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -1083,7 +1062,7 @@ "2 10000 2 O-16 3.794859 0.011139" ] }, - "execution_count": 23, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -1109,14 +1088,14 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Create an OpenMOC Geometry from the OpenCG Geometry\n", - "openmoc_geometry = get_openmoc_geometry(su.opencg_geometry)" + "openmoc_geometry = get_openmoc_geometry(sp.summary.opencg_geometry)" ] }, { @@ -1128,7 +1107,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -1173,7 +1152,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -1187,81 +1166,81 @@ "[ NORMAL ] Iteration 0:\tk_eff = 0.574672\tres = 0.000E+00\n", "[ NORMAL ] Iteration 1:\tk_eff = 0.679815\tres = 4.253E-01\n", "[ NORMAL ] Iteration 2:\tk_eff = 0.660826\tres = 1.830E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.658940\tres = 2.793E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.853E-03\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.658941\tres = 2.793E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.852E-03\n", "[ NORMAL ] Iteration 5:\tk_eff = 0.625810\tres = 2.417E-02\n", "[ NORMAL ] Iteration 6:\tk_eff = 0.606678\tres = 2.675E-02\n", "[ NORMAL ] Iteration 7:\tk_eff = 0.587485\tres = 3.057E-02\n", "[ NORMAL ] Iteration 8:\tk_eff = 0.569029\tres = 3.164E-02\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.551707\tres = 3.142E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.551708\tres = 3.142E-02\n", "[ NORMAL ] Iteration 10:\tk_eff = 0.536035\tres = 3.044E-02\n", "[ NORMAL ] Iteration 11:\tk_eff = 0.522275\tres = 2.841E-02\n", "[ NORMAL ] Iteration 12:\tk_eff = 0.510610\tres = 2.567E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501107\tres = 2.233E-02\n", "[ NORMAL ] Iteration 14:\tk_eff = 0.493832\tres = 1.861E-02\n", "[ NORMAL ] Iteration 15:\tk_eff = 0.488781\tres = 1.452E-02\n", "[ NORMAL ] Iteration 16:\tk_eff = 0.485924\tres = 1.023E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.485211\tres = 5.846E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.467E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.489905\tres = 2.802E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.495105\tres = 6.853E-03\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485212\tres = 5.845E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.466E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.489906\tres = 2.802E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495106\tres = 6.853E-03\n", "[ NORMAL ] Iteration 21:\tk_eff = 0.502056\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.510630\tres = 1.404E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.510631\tres = 1.404E-02\n", "[ NORMAL ] Iteration 23:\tk_eff = 0.520696\tres = 1.708E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.532120\tres = 1.971E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532121\tres = 1.971E-02\n", "[ NORMAL ] Iteration 25:\tk_eff = 0.544768\tres = 2.194E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.558505\tres = 2.377E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558506\tres = 2.377E-02\n", "[ NORMAL ] Iteration 27:\tk_eff = 0.573200\tres = 2.522E-02\n", "[ NORMAL ] Iteration 28:\tk_eff = 0.588723\tres = 2.631E-02\n", "[ NORMAL ] Iteration 29:\tk_eff = 0.604951\tres = 2.708E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.621765\tres = 2.756E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.639053\tres = 2.779E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.780E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.621766\tres = 2.757E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639054\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.781E-02\n", "[ NORMAL ] Iteration 33:\tk_eff = 0.674632\tres = 2.763E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.692730\tres = 2.729E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.692731\tres = 2.729E-02\n", "[ NORMAL ] Iteration 35:\tk_eff = 0.710919\tres = 2.683E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.729118\tres = 2.626E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729119\tres = 2.626E-02\n", "[ NORMAL ] Iteration 37:\tk_eff = 0.747258\tres = 2.560E-02\n", "[ NORMAL ] Iteration 38:\tk_eff = 0.765273\tres = 2.488E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.783104\tres = 2.411E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783105\tres = 2.411E-02\n", "[ NORMAL ] Iteration 40:\tk_eff = 0.800701\tres = 2.330E-02\n", "[ NORMAL ] Iteration 41:\tk_eff = 0.818017\tres = 2.247E-02\n", "[ NORMAL ] Iteration 42:\tk_eff = 0.835012\tres = 2.163E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.851651\tres = 2.078E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.851652\tres = 2.078E-02\n", "[ NORMAL ] Iteration 44:\tk_eff = 0.867906\tres = 1.993E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883750\tres = 1.909E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883751\tres = 1.909E-02\n", "[ NORMAL ] Iteration 46:\tk_eff = 0.899164\tres = 1.826E-02\n", "[ NORMAL ] Iteration 47:\tk_eff = 0.914131\tres = 1.744E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.665E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.664E-02\n", "[ NORMAL ] Iteration 49:\tk_eff = 0.942676\tres = 1.587E-02\n", "[ NORMAL ] Iteration 50:\tk_eff = 0.956239\tres = 1.512E-02\n", "[ NORMAL ] Iteration 51:\tk_eff = 0.969323\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.981927\tres = 1.368E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.981928\tres = 1.368E-02\n", "[ NORMAL ] Iteration 53:\tk_eff = 0.994054\tres = 1.300E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.005705\tres = 1.235E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.016886\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.005706\tres = 1.235E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.016887\tres = 1.172E-02\n", "[ NORMAL ] Iteration 56:\tk_eff = 1.027604\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037866\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.047682\tres = 9.987E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.057062\tres = 9.458E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037867\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.047683\tres = 9.987E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057063\tres = 9.458E-03\n", "[ NORMAL ] Iteration 60:\tk_eff = 1.066016\tres = 8.953E-03\n", "[ NORMAL ] Iteration 61:\tk_eff = 1.074556\tres = 8.471E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.082693\tres = 8.011E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082694\tres = 8.011E-03\n", "[ NORMAL ] Iteration 63:\tk_eff = 1.090442\tres = 7.573E-03\n", "[ NORMAL ] Iteration 64:\tk_eff = 1.097813\tres = 7.156E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.104820\tres = 6.760E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104821\tres = 6.760E-03\n", "[ NORMAL ] Iteration 66:\tk_eff = 1.111477\tres = 6.383E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.117795\tres = 6.025E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.685E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.129470\tres = 5.362E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.134853\tres = 5.056E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139950\tres = 4.766E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.144772\tres = 4.491E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.117796\tres = 6.025E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123790\tres = 5.684E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129472\tres = 5.362E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.134854\tres = 5.056E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139951\tres = 4.765E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.144773\tres = 4.491E-03\n", "[ NORMAL ] Iteration 73:\tk_eff = 1.149333\tres = 4.230E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.153643\tres = 3.984E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153644\tres = 3.983E-03\n", "[ NORMAL ] Iteration 75:\tk_eff = 1.157716\tres = 3.751E-03\n", "[ NORMAL ] Iteration 76:\tk_eff = 1.161561\tres = 3.530E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.321E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.322E-03\n", "[ NORMAL ] Iteration 78:\tk_eff = 1.168613\tres = 3.124E-03\n", "[ NORMAL ] Iteration 79:\tk_eff = 1.171841\tres = 2.938E-03\n", "[ NORMAL ] Iteration 80:\tk_eff = 1.174883\tres = 2.762E-03\n", @@ -1271,82 +1250,82 @@ "[ NORMAL ] Iteration 84:\tk_eff = 1.185378\tres = 2.152E-03\n", "[ NORMAL ] Iteration 85:\tk_eff = 1.187627\tres = 2.021E-03\n", "[ NORMAL ] Iteration 86:\tk_eff = 1.189741\tres = 1.897E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.191728\tres = 1.780E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.193595\tres = 1.670E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.195349\tres = 1.567E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.196996\tres = 1.469E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.198543\tres = 1.378E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.292E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191729\tres = 1.780E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.193596\tres = 1.670E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195350\tres = 1.566E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.196997\tres = 1.470E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.198542\tres = 1.378E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.291E-03\n", "[ NORMAL ] Iteration 93:\tk_eff = 1.201355\tres = 1.211E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.134E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.203829\tres = 1.063E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.956E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.324E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.206989\tres = 8.730E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.173E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.208777\tres = 7.650E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.209587\tres = 7.159E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.698E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.211054\tres = 6.266E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.211718\tres = 5.861E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.212339\tres = 5.481E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.212920\tres = 5.125E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.213463\tres = 4.792E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.213971\tres = 4.479E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.214446\tres = 4.186E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.214890\tres = 3.912E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.215305\tres = 3.655E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.215692\tres = 3.414E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.216055\tres = 3.189E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.979E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.782E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.217004\tres = 2.597E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.217279\tres = 2.425E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.217536\tres = 2.263E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.217776\tres = 2.113E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.218000\tres = 1.971E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.218209\tres = 1.840E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.218404\tres = 1.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.601E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.494E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.393E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.219062\tres = 1.299E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.212E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.130E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.219448\tres = 1.054E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.822E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.156E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.534E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.954E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.219936\tres = 7.413E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.908E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.220087\tres = 6.437E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.220156\tres = 5.997E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.220219\tres = 5.587E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.220278\tres = 5.205E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.220333\tres = 4.848E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.220385\tres = 4.516E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.220433\tres = 4.206E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.220477\tres = 3.917E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.220518\tres = 3.648E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.220557\tres = 3.397E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.220593\tres = 3.163E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.220627\tres = 2.945E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.220658\tres = 2.742E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.220687\tres = 2.552E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.220714\tres = 2.376E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.220739\tres = 2.212E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.220762\tres = 2.059E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.220784\tres = 1.916E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.220804\tres = 1.783E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.220823\tres = 1.660E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.220841\tres = 1.545E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.437E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.338E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.245E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.158E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.077E-05\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.002E-05\n" + "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.135E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203830\tres = 1.063E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.959E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.320E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.206990\tres = 8.733E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.176E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208778\tres = 7.643E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209588\tres = 7.163E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.699E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211055\tres = 6.262E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211719\tres = 5.863E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212340\tres = 5.480E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212921\tres = 5.126E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213464\tres = 4.791E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.213972\tres = 4.476E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214447\tres = 4.190E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214891\tres = 3.909E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215306\tres = 3.656E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215693\tres = 3.414E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216056\tres = 3.186E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.983E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.777E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.217005\tres = 2.600E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217280\tres = 2.425E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217538\tres = 2.261E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217777\tres = 2.116E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.218001\tres = 1.970E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218210\tres = 1.836E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218405\tres = 1.717E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.604E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.497E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.387E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219063\tres = 1.301E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.213E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.126E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219449\tres = 1.058E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.819E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.124E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.522E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.946E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.219935\tres = 7.396E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.887E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220086\tres = 6.461E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220155\tres = 5.971E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220218\tres = 5.596E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220276\tres = 5.177E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220332\tres = 4.809E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220383\tres = 4.555E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220431\tres = 4.197E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220475\tres = 3.922E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220516\tres = 3.642E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220556\tres = 3.368E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220592\tres = 3.194E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220625\tres = 2.959E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220657\tres = 2.763E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220686\tres = 2.555E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220712\tres = 2.384E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220737\tres = 2.193E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220761\tres = 2.076E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220783\tres = 1.910E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220803\tres = 1.796E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220822\tres = 1.660E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220840\tres = 1.568E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.465E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.346E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.233E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.178E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.083E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.012E-05\n" ] } ], @@ -1369,7 +1348,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -1404,13 +1383,13 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [], "source": [ - "openmoc_geometry = get_openmoc_geometry(su.opencg_geometry)\n", + "openmoc_geometry = get_openmoc_geometry(sp.summary.opencg_geometry)\n", "openmoc_cells = openmoc_geometry.getRootUniverse().getAllCells()\n", "\n", "# Inject multi-group cross sections into OpenMOC Materials\n", @@ -1444,7 +1423,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -1456,14 +1435,14 @@ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", "[ NORMAL ] Iteration 0:\tk_eff = 0.495816\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.557477\tres = 5.042E-01\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.557478\tres = 5.042E-01\n", "[ NORMAL ] Iteration 2:\tk_eff = 0.518301\tres = 1.244E-01\n", "[ NORMAL ] Iteration 3:\tk_eff = 0.509212\tres = 7.027E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.496489\tres = 1.754E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.496490\tres = 1.754E-02\n", "[ NORMAL ] Iteration 5:\tk_eff = 0.488581\tres = 2.498E-02\n", "[ NORMAL ] Iteration 6:\tk_eff = 0.482897\tres = 1.593E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.479775\tres = 1.163E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.464E-03\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.479776\tres = 1.163E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.465E-03\n", "[ NORMAL ] Iteration 9:\tk_eff = 0.479872\tres = 1.960E-03\n", "[ NORMAL ] Iteration 10:\tk_eff = 0.482685\tres = 2.166E-03\n", "[ NORMAL ] Iteration 11:\tk_eff = 0.487085\tres = 5.861E-03\n", @@ -1472,34 +1451,34 @@ "[ NORMAL ] Iteration 14:\tk_eff = 0.508155\tres = 1.435E-02\n", "[ NORMAL ] Iteration 15:\tk_eff = 0.517314\tres = 1.637E-02\n", "[ NORMAL ] Iteration 16:\tk_eff = 0.527327\tres = 1.802E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.538081\tres = 1.936E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.538082\tres = 1.936E-02\n", "[ NORMAL ] Iteration 18:\tk_eff = 0.549475\tres = 2.039E-02\n", "[ NORMAL ] Iteration 19:\tk_eff = 0.561413\tres = 2.117E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.573810\tres = 2.173E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.573811\tres = 2.173E-02\n", "[ NORMAL ] Iteration 21:\tk_eff = 0.586589\tres = 2.208E-02\n", "[ NORMAL ] Iteration 22:\tk_eff = 0.599678\tres = 2.227E-02\n", "[ NORMAL ] Iteration 23:\tk_eff = 0.613012\tres = 2.231E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.224E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.223E-02\n", "[ NORMAL ] Iteration 25:\tk_eff = 0.640186\tres = 2.206E-02\n", "[ NORMAL ] Iteration 26:\tk_eff = 0.653925\tres = 2.179E-02\n", "[ NORMAL ] Iteration 27:\tk_eff = 0.667706\tres = 2.146E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.681489\tres = 2.107E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.695240\tres = 2.064E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.708927\tres = 2.018E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.722522\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.736000\tres = 1.918E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.681490\tres = 2.107E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.695241\tres = 2.064E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.708928\tres = 2.018E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.722523\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.736001\tres = 1.918E-02\n", "[ NORMAL ] Iteration 33:\tk_eff = 0.749339\tres = 1.865E-02\n", "[ NORMAL ] Iteration 34:\tk_eff = 0.762519\tres = 1.812E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.775522\tres = 1.759E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.788335\tres = 1.705E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800944\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.775523\tres = 1.759E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.788336\tres = 1.705E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800945\tres = 1.652E-02\n", "[ NORMAL ] Iteration 38:\tk_eff = 0.813338\tres = 1.599E-02\n", "[ NORMAL ] Iteration 39:\tk_eff = 0.825507\tres = 1.547E-02\n", "[ NORMAL ] Iteration 40:\tk_eff = 0.837444\tres = 1.496E-02\n", "[ NORMAL ] Iteration 41:\tk_eff = 0.849142\tres = 1.446E-02\n", "[ NORMAL ] Iteration 42:\tk_eff = 0.860595\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871801\tres = 1.349E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.882755\tres = 1.302E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871800\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.882754\tres = 1.302E-02\n", "[ NORMAL ] Iteration 45:\tk_eff = 0.893455\tres = 1.256E-02\n", "[ NORMAL ] Iteration 46:\tk_eff = 0.903901\tres = 1.212E-02\n", "[ NORMAL ] Iteration 47:\tk_eff = 0.914091\tres = 1.169E-02\n", @@ -1507,30 +1486,30 @@ "[ NORMAL ] Iteration 49:\tk_eff = 0.933708\tres = 1.087E-02\n", "[ NORMAL ] Iteration 50:\tk_eff = 0.943137\tres = 1.048E-02\n", "[ NORMAL ] Iteration 51:\tk_eff = 0.952314\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.961243\tres = 9.731E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.376E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.978367\tres = 9.033E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.986568\tres = 8.702E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961244\tres = 9.731E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.377E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.978368\tres = 9.033E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.986569\tres = 8.702E-03\n", "[ NORMAL ] Iteration 56:\tk_eff = 0.994534\tres = 8.382E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.002267\tres = 8.074E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.002268\tres = 8.074E-03\n", "[ NORMAL ] Iteration 58:\tk_eff = 1.009773\tres = 7.776E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.489E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.488E-03\n", "[ NORMAL ] Iteration 60:\tk_eff = 1.024118\tres = 7.212E-03\n", "[ NORMAL ] Iteration 61:\tk_eff = 1.030966\tres = 6.944E-03\n", "[ NORMAL ] Iteration 62:\tk_eff = 1.037603\tres = 6.687E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.044036\tres = 6.438E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.044035\tres = 6.438E-03\n", "[ NORMAL ] Iteration 64:\tk_eff = 1.050267\tres = 6.199E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.968E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.969E-03\n", "[ NORMAL ] Iteration 66:\tk_eff = 1.062145\tres = 5.746E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.532E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.531E-03\n", "[ NORMAL ] Iteration 68:\tk_eff = 1.073276\tres = 5.326E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.127E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.083698\tres = 4.935E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.126E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083697\tres = 4.936E-03\n", "[ NORMAL ] Iteration 71:\tk_eff = 1.088654\tres = 4.751E-03\n", "[ NORMAL ] Iteration 72:\tk_eff = 1.093447\tres = 4.573E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.402E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.403E-03\n", "[ NORMAL ] Iteration 74:\tk_eff = 1.102560\tres = 4.238E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.079E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.080E-03\n", "[ NORMAL ] Iteration 76:\tk_eff = 1.111072\tres = 3.926E-03\n", "[ NORMAL ] Iteration 77:\tk_eff = 1.115114\tres = 3.779E-03\n", "[ NORMAL ] Iteration 78:\tk_eff = 1.119018\tres = 3.638E-03\n", @@ -1540,152 +1519,152 @@ "[ NORMAL ] Iteration 82:\tk_eff = 1.133344\tres = 3.122E-03\n", "[ NORMAL ] Iteration 83:\tk_eff = 1.136622\tres = 3.005E-03\n", "[ NORMAL ] Iteration 84:\tk_eff = 1.139786\tres = 2.892E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142840\tres = 2.784E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142839\tres = 2.783E-03\n", "[ NORMAL ] Iteration 86:\tk_eff = 1.145786\tres = 2.679E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.148630\tres = 2.579E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148629\tres = 2.579E-03\n", "[ NORMAL ] Iteration 88:\tk_eff = 1.151373\tres = 2.482E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.154020\tres = 2.388E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.156573\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.154019\tres = 2.388E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156572\tres = 2.299E-03\n", "[ NORMAL ] Iteration 91:\tk_eff = 1.159035\tres = 2.212E-03\n", "[ NORMAL ] Iteration 92:\tk_eff = 1.161410\tres = 2.129E-03\n", "[ NORMAL ] Iteration 93:\tk_eff = 1.163700\tres = 2.049E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165909\tres = 1.972E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165908\tres = 1.972E-03\n", "[ NORMAL ] Iteration 95:\tk_eff = 1.168038\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.170091\tres = 1.826E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.758E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.691E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.170090\tres = 1.826E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.757E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.692E-03\n", "[ NORMAL ] Iteration 99:\tk_eff = 1.175816\tres = 1.628E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.566E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.179297\tres = 1.507E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.451E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179296\tres = 1.507E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.450E-03\n", "[ NORMAL ] Iteration 103:\tk_eff = 1.182529\tres = 1.396E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.184058\tres = 1.343E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.184057\tres = 1.343E-03\n", "[ NORMAL ] Iteration 105:\tk_eff = 1.185530\tres = 1.293E-03\n", "[ NORMAL ] Iteration 106:\tk_eff = 1.186949\tres = 1.244E-03\n", "[ NORMAL ] Iteration 107:\tk_eff = 1.188316\tres = 1.197E-03\n", "[ NORMAL ] Iteration 108:\tk_eff = 1.189633\tres = 1.152E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.108E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.109E-03\n", "[ NORMAL ] Iteration 110:\tk_eff = 1.192124\tres = 1.066E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.193301\tres = 1.026E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.874E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.195527\tres = 9.501E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.142E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.797E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.464E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.144E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.836E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.540E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.202119\tres = 7.255E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.980E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.203704\tres = 6.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.204452\tres = 6.462E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.217E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.982E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.206534\tres = 5.755E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.537E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.327E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.208391\tres = 5.126E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.931E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.209517\tres = 4.744E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.565E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.391E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.211051\tres = 4.225E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.211525\tres = 4.065E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.910E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.762E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.619E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.482E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.350E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.214015\tres = 3.222E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.214377\tres = 3.100E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.214725\tres = 2.982E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.869E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.215383\tres = 2.760E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.215693\tres = 2.655E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215992\tres = 2.554E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.216280\tres = 2.457E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.216556\tres = 2.364E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.274E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.217078\tres = 2.187E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.217325\tres = 2.104E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.217562\tres = 2.024E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.217790\tres = 1.947E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.218009\tres = 1.873E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.218220\tres = 1.802E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.733E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.218619\tres = 1.667E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.218807\tres = 1.604E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218988\tres = 1.543E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219162\tres = 1.484E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.219329\tres = 1.428E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.373E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.321E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.193300\tres = 1.026E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.872E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195526\tres = 9.503E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.141E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.792E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.468E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.141E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.840E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.538E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202120\tres = 7.257E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.979E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203705\tres = 6.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204453\tres = 6.466E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.218E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.979E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206535\tres = 5.760E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.534E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.326E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208392\tres = 5.126E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.937E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.209516\tres = 4.744E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.559E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.393E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.211050\tres = 4.224E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211524\tres = 4.061E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.914E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.763E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.624E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.480E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.344E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.214014\tres = 3.223E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214376\tres = 3.098E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214724\tres = 2.986E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.870E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215382\tres = 2.763E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215692\tres = 2.648E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215991\tres = 2.554E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216278\tres = 2.460E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216555\tres = 2.363E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.277E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.217077\tres = 2.191E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217324\tres = 2.101E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.217561\tres = 2.024E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217789\tres = 1.949E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.218008\tres = 1.871E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218219\tres = 1.802E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.732E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218618\tres = 1.669E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218806\tres = 1.602E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218987\tres = 1.543E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219161\tres = 1.487E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219328\tres = 1.428E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.375E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.322E-04\n", "[ NORMAL ] Iteration 165:\tk_eff = 1.219794\tres = 1.271E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219938\tres = 1.222E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.220076\tres = 1.176E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.220208\tres = 1.131E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.220336\tres = 1.088E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.220459\tres = 1.046E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.220577\tres = 1.006E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.220691\tres = 9.681E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.220800\tres = 9.312E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220905\tres = 8.957E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.615E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.287E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.971E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.667E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.374E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.093E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.221537\tres = 6.823E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.562E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.312E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.071E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.840E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.617E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.402E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.196E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.222078\tres = 4.998E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.807E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.222189\tres = 4.624E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.447E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.277E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.222340\tres = 4.114E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.957E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.806E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.661E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.521E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.386E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.222594\tres = 3.257E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.222630\tres = 3.133E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.222666\tres = 3.013E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.222700\tres = 2.898E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.222733\tres = 2.787E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.222764\tres = 2.681E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.222795\tres = 2.578E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222824\tres = 2.480E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222852\tres = 2.385E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222879\tres = 2.294E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222905\tres = 2.206E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222930\tres = 2.122E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222954\tres = 2.041E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222977\tres = 1.963E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222999\tres = 1.888E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.816E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.747E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.223061\tres = 1.680E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.223080\tres = 1.616E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.554E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.223116\tres = 1.495E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.437E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.382E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.223164\tres = 1.330E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.223179\tres = 1.279E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.230E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.183E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.138E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.094E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.052E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.012E-05\n" + "[ NORMAL ] Iteration 166:\tk_eff = 1.219937\tres = 1.223E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.220075\tres = 1.174E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220207\tres = 1.131E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220335\tres = 1.085E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220458\tres = 1.044E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220576\tres = 1.008E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220689\tres = 9.680E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220799\tres = 9.304E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220904\tres = 8.975E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.643E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.326E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.985E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.662E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.371E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.101E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221538\tres = 6.821E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.577E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.307E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.069E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.831E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.641E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.382E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.206E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.222077\tres = 4.967E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.811E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222188\tres = 4.618E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.456E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.293E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222339\tres = 4.122E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.982E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.788E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.663E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.522E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.381E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222593\tres = 3.264E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222629\tres = 3.117E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222665\tres = 2.985E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222699\tres = 2.901E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222732\tres = 2.770E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222763\tres = 2.679E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222793\tres = 2.560E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222823\tres = 2.487E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222851\tres = 2.412E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222878\tres = 2.298E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222904\tres = 2.194E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222929\tres = 2.131E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222953\tres = 2.030E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222976\tres = 1.963E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222998\tres = 1.889E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.812E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.764E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.223060\tres = 1.691E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.223079\tres = 1.629E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.571E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223115\tres = 1.508E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.429E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.394E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223165\tres = 1.330E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223180\tres = 1.299E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.241E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.167E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.151E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.073E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.051E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.000E-05\n" ] } ], @@ -1701,7 +1680,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -1758,7 +1737,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -1784,7 +1763,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -1795,15 +1774,15 @@ "(9.9999999999999994e-12, 20.0)" ] }, - "execution_count": 32, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\nRK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1845,7 +1824,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -1877,16 +1856,16 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\nfn35+EIOpHUAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1913,34 +1892,25 @@ "# Show the plot on screen\n", "plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.5.1" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 34190371b..c39f21dfa 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -11,7 +11,7 @@ "* **Validation** of multi-group cross sections with **[OpenMOC](https://mit-crpg.github.io/OpenMOC/)**\n", "* Steady-state pin-by-pin **fission rates comparison** between OpenMC and [OpenMOC](https://mit-crpg.github.io/OpenMOC/)\n", "\n", - "**Note:** This Notebook was created using [OpenMOC](https://mit-crpg.github.io/OpenMOC/) to verify the multi-group cross-sections generated by OpenMC. In order to run this Notebook in its entirety, you must have [OpenMOC](https://mit-crpg.github.io/OpenMOC/) installed on your system, along with OpenCG to convert the OpenMC geometries into OpenMOC geometries. In addition, this Notebook illustrates the use of [Pandas](http://pandas.pydata.org/) `DataFrames` to containerize multi-group cross section data. We recommend using [Pandas](http://pandas.pydata.org/) >v0.15.0 or later since OpenMC's Python API leverages the multi-indexing feature included in the most recent releases of [Pandas](http://pandas.pydata.org/)." + "**Note:** This Notebook was created using [OpenMOC](https://mit-crpg.github.io/OpenMOC/) to verify the multi-group cross-sections generated by OpenMC. In order to run this Notebook in its entirety, you must have [OpenMOC](https://mit-crpg.github.io/OpenMOC/) installed on your system, along with OpenCG to convert the OpenMC geometries into OpenMOC geometries. In addition, this Notebook illustrates the use of [Pandas](http://pandas.pydata.org/) `DataFrames` to containerize multi-group cross section data." ] }, { @@ -32,7 +32,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", + "/home/romano/miniconda3/envs/default/lib/python3.5/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", @@ -459,7 +459,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDQtMTNUMTE6NTc6NDAtMDQ6MDBB7YJkAAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA0LTEzVDExOjU3OjQwLTA0OjAwMLA62AAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -721,12 +721,11 @@ " 888\n", " 888\n", "\n", - " Copyright: 2011-2015 Massachusetts Institute of Technology\n", - " License: http://mit-crpg.github.io/openmc/license.html\n", + " Copyright: 2011-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", - " Date/Time: 2016-04-13 11:57:40\n", - " MPI Processes: 1\n", + " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", + " Date/Time: 2016-05-05 15:06:49\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -812,20 +811,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.3700E-01 seconds\n", - " Reading cross sections = 8.2000E-02 seconds\n", - " Total time in simulation = 4.7745E+01 seconds\n", - " Time in transport only = 4.7726E+01 seconds\n", - " Time in inactive batches = 3.8220E+00 seconds\n", - " Time in active batches = 4.3923E+01 seconds\n", + " Total time for initialization = 4.1500E-01 seconds\n", + " Reading cross sections = 1.1800E-01 seconds\n", + " Total time in simulation = 5.3686E+01 seconds\n", + " Time in transport only = 5.3657E+01 seconds\n", + " Time in inactive batches = 4.3970E+00 seconds\n", + " Time in active batches = 4.9289E+01 seconds\n", " Time synchronizing fission bank = 3.0000E-03 seconds\n", " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 4.8198E+01 seconds\n", - " Calculation Rate (inactive) = 6541.08 neutrons/second\n", - " Calculation Rate (active) = 2276.71 neutrons/second\n", + " Total time elapsed = 5.4118E+01 seconds\n", + " Calculation Rate (inactive) = 5685.70 neutrons/second\n", + " Calculation Rate (active) = 2028.85 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -879,25 +878,6 @@ "sp = openmc.StatePoint('statepoint.50.h5')" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In addition to the statepoint file, our simulation also created a summary file which encapsulates information about the materials and geometry. This is necessary for the `openmc.mgxs` module to properly process the tally data. We first create a `Summary` object and link it with the statepoint." - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "su = openmc.Summary('summary.h5')\n", - "sp.link_with_summary(su)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -907,7 +887,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -942,7 +922,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -961,7 +941,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -970,7 +950,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n" + "/home/romano/openmc/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n", + " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" ] }, { @@ -1051,7 +1032,7 @@ "2 10000 2 O-16 0.000000e+00 0.000000e+00" ] }, - "execution_count": 31, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -1070,7 +1051,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -1116,7 +1097,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 32, "metadata": { "collapsed": true }, @@ -1135,7 +1116,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "metadata": { "collapsed": true }, @@ -1147,7 +1128,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "metadata": { "collapsed": true }, @@ -1166,7 +1147,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 35, "metadata": { "collapsed": true }, @@ -1181,7 +1162,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 36, "metadata": { "collapsed": false }, @@ -1237,7 +1218,7 @@ "2 10000 1 O-16 0.000000 0.000000" ] }, - "execution_count": 37, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -1266,7 +1247,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 37, "metadata": { "collapsed": false }, @@ -1285,7 +1266,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -1304,7 +1285,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 39, "metadata": { "collapsed": false, "scrolled": true @@ -1318,12 +1299,12 @@ "[ NORMAL ] Computing the eigenvalue...\n", "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761746\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.761745\tres = 6.349E-02\n", "[ NORMAL ] Iteration 3:\tk_eff = 0.732367\tres = 5.029E-02\n", "[ NORMAL ] Iteration 4:\tk_eff = 0.711075\tres = 3.869E-02\n", "[ NORMAL ] Iteration 5:\tk_eff = 0.696557\tres = 2.912E-02\n", "[ NORMAL ] Iteration 6:\tk_eff = 0.687673\tres = 2.044E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.683470\tres = 1.277E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683469\tres = 1.277E-02\n", "[ NORMAL ] Iteration 8:\tk_eff = 0.683129\tres = 6.141E-03\n", "[ NORMAL ] Iteration 9:\tk_eff = 0.685949\tres = 7.889E-04\n", "[ NORMAL ] Iteration 10:\tk_eff = 0.691329\tres = 4.181E-03\n", @@ -1336,11 +1317,11 @@ "[ NORMAL ] Iteration 17:\tk_eff = 0.765800\tres = 1.655E-02\n", "[ NORMAL ] Iteration 18:\tk_eff = 0.778371\tres = 1.660E-02\n", "[ NORMAL ] Iteration 19:\tk_eff = 0.790897\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803273\tres = 1.611E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.815415\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803272\tres = 1.611E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815414\tres = 1.566E-02\n", "[ NORMAL ] Iteration 22:\tk_eff = 0.827256\tres = 1.513E-02\n", "[ NORMAL ] Iteration 23:\tk_eff = 0.838747\tres = 1.453E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.849847\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849846\tres = 1.390E-02\n", "[ NORMAL ] Iteration 25:\tk_eff = 0.860527\tres = 1.324E-02\n", "[ NORMAL ] Iteration 26:\tk_eff = 0.870770\tres = 1.258E-02\n", "[ NORMAL ] Iteration 27:\tk_eff = 0.880562\tres = 1.191E-02\n", @@ -1362,8 +1343,8 @@ "[ NORMAL ] Iteration 43:\tk_eff = 0.981021\tres = 4.104E-03\n", "[ NORMAL ] Iteration 44:\tk_eff = 0.984493\tres = 3.814E-03\n", "[ NORMAL ] Iteration 45:\tk_eff = 0.987729\tres = 3.543E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990742\tres = 3.290E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.993546\tres = 3.053E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990741\tres = 3.290E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993545\tres = 3.053E-03\n", "[ NORMAL ] Iteration 48:\tk_eff = 0.996153\tres = 2.833E-03\n", "[ NORMAL ] Iteration 49:\tk_eff = 0.998577\tres = 2.627E-03\n", "[ NORMAL ] Iteration 50:\tk_eff = 1.000829\tres = 2.436E-03\n", @@ -1377,63 +1358,63 @@ "[ NORMAL ] Iteration 58:\tk_eff = 1.013868\tres = 1.314E-03\n", "[ NORMAL ] Iteration 59:\tk_eff = 1.015006\tres = 1.215E-03\n", "[ NORMAL ] Iteration 60:\tk_eff = 1.016059\tres = 1.124E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.039E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.038E-03\n", "[ NORMAL ] Iteration 62:\tk_eff = 1.017933\tres = 9.596E-04\n", "[ NORMAL ] Iteration 63:\tk_eff = 1.018766\tres = 8.865E-04\n", "[ NORMAL ] Iteration 64:\tk_eff = 1.019535\tres = 8.188E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.562E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.561E-04\n", "[ NORMAL ] Iteration 66:\tk_eff = 1.020903\tres = 6.981E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.445E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.444E-04\n", "[ NORMAL ] Iteration 68:\tk_eff = 1.022069\tres = 5.948E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.489E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.488E-04\n", "[ NORMAL ] Iteration 70:\tk_eff = 1.023063\tres = 5.064E-04\n", "[ NORMAL ] Iteration 71:\tk_eff = 1.023503\tres = 4.671E-04\n", "[ NORMAL ] Iteration 72:\tk_eff = 1.023909\tres = 4.308E-04\n", "[ NORMAL ] Iteration 73:\tk_eff = 1.024284\tres = 3.973E-04\n", "[ NORMAL ] Iteration 74:\tk_eff = 1.024629\tres = 3.663E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.024948\tres = 3.377E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024947\tres = 3.377E-04\n", "[ NORMAL ] Iteration 76:\tk_eff = 1.025241\tres = 3.113E-04\n", "[ NORMAL ] Iteration 77:\tk_eff = 1.025512\tres = 2.869E-04\n", "[ NORMAL ] Iteration 78:\tk_eff = 1.025761\tres = 2.644E-04\n", "[ NORMAL ] Iteration 79:\tk_eff = 1.025991\tres = 2.436E-04\n", "[ NORMAL ] Iteration 80:\tk_eff = 1.026203\tres = 2.244E-04\n", "[ NORMAL ] Iteration 81:\tk_eff = 1.026398\tres = 2.067E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.026578\tres = 1.904E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.754E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026577\tres = 1.904E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.753E-04\n", "[ NORMAL ] Iteration 84:\tk_eff = 1.026895\tres = 1.615E-04\n", "[ NORMAL ] Iteration 85:\tk_eff = 1.027036\tres = 1.487E-04\n", "[ NORMAL ] Iteration 86:\tk_eff = 1.027165\tres = 1.369E-04\n", "[ NORMAL ] Iteration 87:\tk_eff = 1.027284\tres = 1.260E-04\n", "[ NORMAL ] Iteration 88:\tk_eff = 1.027393\tres = 1.160E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.027494\tres = 1.068E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027587\tres = 9.825E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027672\tres = 9.041E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027751\tres = 8.319E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027823\tres = 7.654E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.042E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.478E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.028007\tres = 5.959E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.481E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028106\tres = 5.041E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028150\tres = 4.636E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028190\tres = 4.263E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028227\tres = 3.920E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028261\tres = 3.604E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028292\tres = 3.314E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028321\tres = 3.047E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.801E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.575E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028394\tres = 2.367E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.175E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 1.999E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.838E-05\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027493\tres = 1.067E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027586\tres = 9.824E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027671\tres = 9.043E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027750\tres = 8.318E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027822\tres = 7.654E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.041E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.481E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.028006\tres = 5.960E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.480E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028105\tres = 5.043E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028149\tres = 4.634E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028189\tres = 4.266E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028226\tres = 3.920E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028260\tres = 3.604E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028291\tres = 3.316E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028320\tres = 3.047E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.800E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.576E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028393\tres = 2.367E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.176E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 2.003E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.836E-05\n", "[ NORMAL ] Iteration 111:\tk_eff = 1.028466\tres = 1.689E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.552E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.426E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.310E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.204E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.106E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.017E-05\n" + "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.553E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.427E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.309E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.202E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.107E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.015E-05\n" ] } ], @@ -1456,7 +1437,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 40, "metadata": { "collapsed": false }, @@ -1509,7 +1490,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 41, "metadata": { "collapsed": false }, @@ -1535,7 +1516,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 42, "metadata": { "collapsed": false }, @@ -1567,7 +1548,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 43, "metadata": { "collapsed": false }, @@ -1575,18 +1556,18 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 44, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\nZOT/APiw99Nd94jXAAAAAElFTkSuQmCC\n", + "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1604,34 +1585,25 @@ "plt.imshow(openmoc_fission_rates, interpolation='none', cmap='jet')\n", "plt.title('OpenMOC Fission Rates')" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.5.1" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index d5e8b9861..ea71055a7 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -20,7 +20,7 @@ "%matplotlib inline\n", "import glob\n", "from IPython.display import Image\n", - "import matplotlib.pylab as pylab\n", + "import matplotlib.pyplot as plt\n", "import scipy.stats\n", "import numpy as np\n", "\n", @@ -370,7 +370,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTEzVDExOjQw\nOjAxLTA0OjAwQIJDkwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0xM1QxMTo0MDowMS0wNDow\nMDHf+y8AAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AFBRQnIjEkNk0AAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA1LTA1VDE0OjM5OjM0LTA2OjAw/egM+QAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNS0wNVQxNDozOTozNC0wNjowMIy1tEUAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -551,12 +551,11 @@ " 888\n", " 888\n", "\n", - " Copyright: 2011-2015 Massachusetts Institute of Technology\n", - " License: http://mit-crpg.github.io/openmc/license.html\n", + " Copyright: 2011-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", - " Date/Time: 2016-04-13 11:40:02\n", - " MPI Processes: 1\n", + " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", + " Date/Time: 2016-05-05 14:39:34\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -619,20 +618,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.7900E-01 seconds\n", - " Reading cross sections = 8.6000E-02 seconds\n", - " Total time in simulation = 8.7310E+00 seconds\n", - " Time in transport only = 8.7200E+00 seconds\n", - " Time in inactive batches = 1.3230E+00 seconds\n", - " Time in active batches = 7.4080E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Total time for initialization = 4.6600E-01 seconds\n", + " Reading cross sections = 1.1100E-01 seconds\n", + " Total time in simulation = 1.1106E+01 seconds\n", + " Time in transport only = 1.1089E+01 seconds\n", + " Time in inactive batches = 1.7090E+00 seconds\n", + " Time in active batches = 9.3970E+00 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 9.1240E+00 seconds\n", - " Calculation Rate (inactive) = 9448.22 neutrons/second\n", - " Calculation Rate (active) = 5062.10 neutrons/second\n", + " Total time elapsed = 1.1590E+01 seconds\n", + " Calculation Rate (inactive) = 7314.22 neutrons/second\n", + " Calculation Rate (active) = 3990.64 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -686,20 +685,6 @@ "sp = openmc.StatePoint(statepoints[-1])" ] }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": { - "collapsed": false, - "scrolled": true - }, - "outputs": [], - "source": [ - "# Load the summary file and link with statepoint\n", - "su = openmc.Summary('summary.h5')\n", - "sp.link_with_summary(su)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -709,7 +694,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -725,7 +710,7 @@ " \t\tmesh\t[1]\n", " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", "\tNuclides =\ttotal \n", - "\tScores =\t[u'fission', u'nu-fission']\n", + "\tScores =\t['fission', 'nu-fission']\n", "\tEstimator =\ttracklength\n", "\n" ] @@ -748,7 +733,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -757,13 +742,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.1508711 ]]\n", + "[[[ 0.1501735 ]]\n", "\n", - " [[ 0.05389822]]\n", + " [[ 0.05936257]]\n", "\n", - " [[ 0.19633 ]]\n", + " [[ 0.21402727]]\n", "\n", - " [[ 0.12963172]]]\n" + " [[ 0.13436703]]]\n" ] } ], @@ -778,7 +763,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -819,8 +804,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 2.34e-04\n", - " 3.54e-05\n", + " 2.20e-04\n", + " 3.31e-05\n", " \n", " \n", " 1\n", @@ -830,8 +815,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 5.71e-04\n", - " 8.62e-05\n", + " 5.37e-04\n", + " 8.06e-05\n", " \n", " \n", " 2\n", @@ -841,8 +826,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 7.03e-05\n", - " 7.05e-06\n", + " 7.43e-05\n", + " 7.91e-06\n", " \n", " \n", " 3\n", @@ -852,8 +837,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 1.87e-04\n", - " 1.76e-05\n", + " 1.97e-04\n", + " 1.96e-05\n", " \n", " \n", " 4\n", @@ -863,8 +848,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 3.67e-04\n", - " 3.61e-05\n", + " 3.52e-04\n", + " 3.39e-05\n", " \n", " \n", " 5\n", @@ -874,8 +859,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 8.94e-04\n", - " 8.80e-05\n", + " 8.57e-04\n", + " 8.26e-05\n", " \n", " \n", " 6\n", @@ -885,8 +870,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.04e-04\n", - " 5.36e-06\n", + " 1.02e-04\n", + " 6.16e-06\n", " \n", " \n", " 7\n", @@ -896,8 +881,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 2.76e-04\n", - " 1.40e-05\n", + " 2.70e-04\n", + " 1.61e-05\n", " \n", " \n", " 8\n", @@ -907,8 +892,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 6.04e-04\n", - " 5.57e-05\n", + " 6.09e-04\n", + " 6.55e-05\n", " \n", " \n", " 9\n", @@ -918,8 +903,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.47e-03\n", - " 1.36e-04\n", + " 1.48e-03\n", + " 1.60e-04\n", " \n", " \n", " 10\n", @@ -929,8 +914,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.41e-04\n", - " 6.69e-06\n", + " 1.38e-04\n", + " 6.74e-06\n", " \n", " \n", " 11\n", @@ -940,8 +925,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 3.72e-04\n", - " 1.82e-05\n", + " 3.65e-04\n", + " 1.88e-05\n", " \n", " \n", " 12\n", @@ -951,8 +936,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 6.45e-04\n", - " 4.59e-05\n", + " 6.23e-04\n", + " 5.16e-05\n", " \n", " \n", " 13\n", @@ -962,8 +947,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.57e-03\n", - " 1.12e-04\n", + " 1.52e-03\n", + " 1.26e-04\n", " \n", " \n", " 14\n", @@ -973,8 +958,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.82e-04\n", - " 9.37e-06\n", + " 1.74e-04\n", + " 9.99e-06\n", " \n", " \n", " 15\n", @@ -984,8 +969,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 4.76e-04\n", - " 2.47e-05\n", + " 4.58e-04\n", + " 2.68e-05\n", " \n", " \n", " 16\n", @@ -995,8 +980,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 7.28e-04\n", - " 7.49e-05\n", + " 6.94e-04\n", + " 8.68e-05\n", " \n", " \n", " 17\n", @@ -1006,8 +991,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.77e-03\n", - " 1.83e-04\n", + " 1.69e-03\n", + " 2.12e-04\n", " \n", " \n", " 18\n", @@ -1017,8 +1002,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.81e-04\n", - " 1.04e-05\n", + " 1.75e-04\n", + " 1.10e-05\n", " \n", " \n", " 19\n", @@ -1028,8 +1013,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 4.72e-04\n", - " 2.67e-05\n", + " 4.55e-04\n", + " 2.80e-05\n", " \n", " \n", "\n", @@ -1038,52 +1023,52 @@ "text/plain": [ " mesh 1 energy low [MeV] energy high [MeV] score mean \\\n", " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 fission 2.34e-04 \n", - "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.71e-04 \n", - "2 1 1 1 6.25e-07 2.00e+01 fission 7.03e-05 \n", - "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.87e-04 \n", - "4 1 2 1 0.00e+00 6.25e-07 fission 3.67e-04 \n", - "5 1 2 1 0.00e+00 6.25e-07 nu-fission 8.94e-04 \n", - "6 1 2 1 6.25e-07 2.00e+01 fission 1.04e-04 \n", - "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.76e-04 \n", - "8 1 3 1 0.00e+00 6.25e-07 fission 6.04e-04 \n", - "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.47e-03 \n", - "10 1 3 1 6.25e-07 2.00e+01 fission 1.41e-04 \n", - "11 1 3 1 6.25e-07 2.00e+01 nu-fission 3.72e-04 \n", - "12 1 4 1 0.00e+00 6.25e-07 fission 6.45e-04 \n", - "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.57e-03 \n", - "14 1 4 1 6.25e-07 2.00e+01 fission 1.82e-04 \n", - "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.76e-04 \n", - "16 1 5 1 0.00e+00 6.25e-07 fission 7.28e-04 \n", - "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.77e-03 \n", - "18 1 5 1 6.25e-07 2.00e+01 fission 1.81e-04 \n", - "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.72e-04 \n", + "0 1 1 1 0.00e+00 6.25e-07 fission 2.20e-04 \n", + "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.37e-04 \n", + "2 1 1 1 6.25e-07 2.00e+01 fission 7.43e-05 \n", + "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.97e-04 \n", + "4 1 2 1 0.00e+00 6.25e-07 fission 3.52e-04 \n", + "5 1 2 1 0.00e+00 6.25e-07 nu-fission 8.57e-04 \n", + "6 1 2 1 6.25e-07 2.00e+01 fission 1.02e-04 \n", + "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.70e-04 \n", + "8 1 3 1 0.00e+00 6.25e-07 fission 6.09e-04 \n", + "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.48e-03 \n", + "10 1 3 1 6.25e-07 2.00e+01 fission 1.38e-04 \n", + "11 1 3 1 6.25e-07 2.00e+01 nu-fission 3.65e-04 \n", + "12 1 4 1 0.00e+00 6.25e-07 fission 6.23e-04 \n", + "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.52e-03 \n", + "14 1 4 1 6.25e-07 2.00e+01 fission 1.74e-04 \n", + "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.58e-04 \n", + "16 1 5 1 0.00e+00 6.25e-07 fission 6.94e-04 \n", + "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.69e-03 \n", + "18 1 5 1 6.25e-07 2.00e+01 fission 1.75e-04 \n", + "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.55e-04 \n", "\n", " std. dev. \n", " \n", - "0 3.54e-05 \n", - "1 8.62e-05 \n", - "2 7.05e-06 \n", - "3 1.76e-05 \n", - "4 3.61e-05 \n", - "5 8.80e-05 \n", - "6 5.36e-06 \n", - "7 1.40e-05 \n", - "8 5.57e-05 \n", - "9 1.36e-04 \n", - "10 6.69e-06 \n", - "11 1.82e-05 \n", - "12 4.59e-05 \n", - "13 1.12e-04 \n", - "14 9.37e-06 \n", - "15 2.47e-05 \n", - "16 7.49e-05 \n", - "17 1.83e-04 \n", - "18 1.04e-05 \n", - "19 2.67e-05 " + "0 3.31e-05 \n", + "1 8.06e-05 \n", + "2 7.91e-06 \n", + "3 1.96e-05 \n", + "4 3.39e-05 \n", + "5 8.26e-05 \n", + "6 6.16e-06 \n", + "7 1.61e-05 \n", + "8 6.55e-05 \n", + "9 1.60e-04 \n", + "10 6.74e-06 \n", + "11 1.88e-05 \n", + "12 5.16e-05 \n", + "13 1.26e-04 \n", + "14 9.99e-06 \n", + "15 2.68e-05 \n", + "16 8.68e-05 \n", + "17 2.12e-04 \n", + "18 1.10e-05 \n", + "19 2.80e-05 " ] }, - "execution_count": 25, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1102,16 +1087,16 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "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\nD03l9kElNMu/AAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAEaCAYAAADpMdsXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+YVdV97/H3Bw21Ta5EQ4KJCEZAnLEmhFrkubGGxkaB\n3IplEiuTNEpue2mVpH1avcYkjdb2XvOjt6ZqrdrQVFInaDr44xqiaIVcM41IRZDcGXQwShCJv4Ak\nYm9E+N4/9gJPzpw5Z+9h5pw5zOf1POdx77XXd+21x8N8Z+0faysiMDMzK2JUoztgZmbNx8nDzMwK\nc/IwM7PCnDzMzKwwJw8zMyvMycPMzApz8rC6krRX0jpJ6yX9u6SZQ7CPn9XYPlHSgsHe71CTdIGk\n6yqUXyHpTxvRJxu5nDys3nZHxPSImAZ8FvjiEOyj1sNL7wbaD2YHkhr1b2dYP5gl6bBG98Hqw8nD\n6k0ly2OAHQc2SF+RtFHSBknnpbJzJT2Qlt8p6QlJ70h/hd8paVUq+0LFnf1imx9NxVcDp6cR0B+X\n1ZekGyR1S7pP0rclzU/bnpb0RUn/DnxE0nslfT+NojoljUn1VkmanpbfJunptNxvnyV9TNKa1Ke/\nl6RUvjDVfRh4f5Wf6zRJ/5bq/tcUe4ukc0r28c+SfrvseI+R9N2038clvT+Vz5b0qKTHJN2fyo6S\ndEf6Wf6bpF9N5VdIWirpe8BSSaMkfTkdz3pJf1Cl39asIsIff+r2AV4H1gE9wE7gfal8PnBfWn4H\nsAUYl9aXAhcD/xs4L5VdAGwD3gocAWwEpqdtP03/bavUJvAB4O5++tcG3JOWx5Elt/lp/WngkpK6\nG4DT0/JfAH+TlleV9OVtwA+r9Rk4CbgbOCzV+zvg48Axqc9HA4cD3wOurdDnK4DHgNFpfz9KsWcA\nd6Q6RwJPAaPKYv8UuDwtC3gzMDa1MSGVvzX991rgz9PybwKPlex/LTA6rf8B8Nm0PDptm9jo754/\ng/s5HLP6ejUi9v9VPhP4BvCrwOnANwEi4gVJq4FfB+4BPg38APh+RNxe0tb9EbErtbU8tbGuZPv7\n+2mz2jWR04FvpZjnJa0q235b2t+RwJiI+F4qvwW4ndpK+9yZ9rcX+DVgbRpxHAE8D5wGrIqIHan+\nbcCUftq9KyJeA16W9CAwIyLulvR3kt4GfATojIh9ZXFrgSWS3pTa2CDpN4HvRsSP0s9hV8nPZn4q\nWyXpaElvSdvuTvsHOAs4pWSkd2Tq95YcPx9rEk4e1jAR8bCksZLGVthcenrrOGAf2UjgF5qosV6t\nzYHanaPO67xxSviIsm2lfVTJ+j9FxOdKK0qaR/4+99fuUuD3gPOBC/sERTwk6Qzgw8DXJf0NsKuf\n/Vb7+Zb+XAR8KiLuz9l3a0K+5mH1duCXkqSTyL6DLwMPAb+bzpe/HfgN4BFJhwNLyH759Uj6s5K2\nPiTprZJ+GTiX7LRO6T4qtkk28vhP/fSvC2hL1z7GAbMqVYqInwI7918jIPsF/d20/Axwalr+aFlo\neZ+7gAfJrqG8Pf1cjpI0AVgDnJHW31ShrVLzJI1Oo4wPkI0oIBsR/UnW5dhUHpT280JELCH7OU8H\nHgZ+Q9LE/f1J1R8iO52GpFnASxHxSoW+3AdclP7fIWlKOl47hHjkYfV2hKR1vPEL/hMREcAd6TTW\nBrJRxqXpVNOfA/8nIv5N0uNkCeWeFPsIsBw4FvhGRDyWygMgIvprcwewT9JjZH/x/21J/zqBDwL/\nF9gKPAr8pLTdEhcAN6VfjD8EFqbyvwZuTxeKv10WU97ndQCSPg+sVHYX12vAxRHxiKQryX6Z7wTW\nV/m5Pg6sJrvmcVVE/Dj9DF6Q1APc0U/cLOBSSXvIkuonIuIlSf+N7P+JgBeAs8mu6/yjpA1kI41P\n9NPm14DjgXUl8edW6bs1IWX/bs2ai6QLgF+LiE8PQdtvjojdko4m++v//RHxwiC0O2R9rrLPXyFL\nntMjourzL2ZFeORh1tc9kt4KvInsr/iDThyNIOlMslNR/8uJwwabRx5mZlaYL5ib5aTsIcFL0kNy\nP5P0D8oeWFwh6aeSVuqNBwVnSuqStDM9aPeBknYuVPYQ4k8lbU7XF/Zv+4CkrZL+VNLzkrZJurAB\nh2tWlZOHWTHzgTOBE4FzgBXAZ8gerDsM+LSkd5E9n3JVRBwFXAJ0pjuhIHuGY25EHEl2kf0aSdNK\n9nEM2d1g7wJ+H/i7/UnJbLhw8jAr5rqIeCkitpPduromIh5PD8jdQXar68eBb0fEfQAR8a/AvwNz\n0/p3IuKZtPwQsJLsNuL9XgP+MiL2RsR3gFeAqXU5OrOcnDzMinm+ZPk/Kqy/BZgInCdpR/rsJHva\n/Z0AkuYomxPr5bRtDtnIZb+Xy54EfzW1azZs+G4rs8EVZPNCLY2IReUbJY0G/oVsdHJXROyTdAeD\n8/S7Wd145GE2+P4ZOEfSWenp9iPShfB3kU0UOJrs6ex9kuaQzQVl1lScPMzyyzWXVkRsI7uY/lng\nRbIJAS8hm9H2FbKJHr+VnnQ/H7ir4H7NGi7Xcx6SZgNfJUs2SyLiSxXqXEt27nY3cGFErM8Tm+Yq\n+gowNiJ2pPl0eoD98/A8HBEXDfD4zMxsCNS85pHm2rme7PbE58imjb6rdJK1NPSeFBFTJJ0G3AjM\nrBUraTzwIfpO1bx5/7TdZmY2/OQ5bTUD6I2ILRGxB1gGzCurM49s6mciYg0wJs1IWiv2GuDSCvv0\nxUMzs2EsT/I4lmx20f2eTWV56vQbq+z1mFsjYmOFfR6v7LWYqySdnqOPZmZWR0N1q27VkUOawvqz\nZKesymOeI3v95U5l74G+U1JrP+8NMDOzBsiTPLYBE0rWx6ey8jrHVagzup/YSWTz/W9I8/2PBx6V\nNCPNYLoTICLWSXqKbCqI0teLIsl3oJiZDbGIqDgYyJM81gKT011Q28luLVxQVudu4GLgtvTynV3p\n/c8vVYqNiB6y+XuAbMI5svcN7FT2StId6R74E4DJZC/aqXRQObpvRbW1tdHZ2dnobpjl1tLSQk9P\nT6O7ccjJ/ravrGbyiIi9khaTzb+z/3bbHkmLss1xc0SskDRX0mayW3UXVouttBveOG11BnCVpNfI\n3v62KCJ25T1YMzMbermueUTEvZRNzBYRN5WtL84bW6HOCSXLy8le02lm1q/Vq1ezevVqADZt2sSV\nV14JwKxZs5g1a1bD+jVSeG4r66OlpaXRXTCrqTRJPPjggweSh9WHpyexPlpbWxvdBbNC3v72tze6\nCyOOk4eZNT2PluvPycPMmp5Hy/Xn5GFmZoU5eZiZWWFOHmZmVpiTh5mZFebkYWZNr7u7u9FdGHGc\nPMys6Xleq/pz8jAzs8I8PYmZNaXSua2WL1/uua3qzMnDzJpSaZLYuHGj57aqM5+2MrOm9+KLLza6\nCyOOk4eZmRWWK3lImi1pk6QnJV3WT51rJfVKWi9pWt5YSX8maZ+ko0vKLk9t9Ug6ayAHZmYjh2fV\nrb+a1zwkjQKuB84EngPWSrorIjaV1JkDTIqIKZJOA24EZtaKlTQe+BCwpaStFuA8oIXs3eYPSJoS\nfuesmZXwBfPGynPBfAbQGxFbACQtA+YBm0rqzAOWAkTEGkljJI0D3l0j9hrgUrJ3oJe2tSwiXgee\nkdSb+rBmYIdoZoei0iRx2223+YJ5neU5bXUssLVk/dlUlqdOv7GSzgG2RsTGGm1tq7A/MzNroKG6\nVVdVN0q/DHyW7JSVmVlhfod5Y+VJHtuACSXr41NZeZ3jKtQZ3U/sJOB4YIMkpfJ1kmbk3B8AbW1t\nB5ZbWlr8QphB0tXV1egumOVy4oknAjB16tQDy8899xwdHR2N7FbT6u7uzj3Vi2pdh5Z0GPAE2UXv\n7cAjwIKI6CmpMxe4OCI+LGkm8NWImJknNsU/DUyPiJ2SWoFbgdPITlfdD/S5YC7J19CHSEdHB+3t\n7Y3uhlluLS0tnt9qCEgiIiqeSao58oiIvZIWAyvJrpEsiYgeSYuyzXFzRKyQNFfSZmA3sLBabKXd\nkE51RUS3pNuBbmAPcJGzhJlV41t16y/XNY+IuBeYWlZ2U9n64ryxFeqcULZ+NXB1nr6Z2chUes3j\noYce8jWPOqt52mq48mmroePTVjYcZZdHi/PviYGrdtrK05OYWVOIiH4/cEWVbTYUnDzM7BAwq9Ed\nGHGcPMzsEDCr0R0YcZw8zMysMCcPM2t68+eXz3JkQ83Jw8yaXlubk0e9OXmYmVlhTh5mZlaYk4eZ\nmRXm5GFmZoU5eZhZ0+vsPKXRXRhxnDzMrOktX+7kUW9OHmZmVpiTh5mZFZYreUiaLWmTpCclXdZP\nnWsl9UpaL2larVhJV0naIOkxSfdKOiaVT5T0qqR16XPDwR6kmZkNrprJQ9Io4HrgbOBkYIGkk8rq\nzAEmRcQUYBFwY47YL0fEeyPifcC3gStKmtwcEdPT56KDOkIzMxt0eUYeM4DeiNgSEXuAZcC8sjrz\ngKUAEbEGGCNpXLXYiHilJP7NwL6S9YG99cXMRiTPbVV/eZLHscDWkvVnU1meOlVjJf2VpB8B7cAX\nSuodn05ZrZJ0eo4+mtkI5rmt6m+oLpjnGjlExOcjYgJwK/CpVLwdmBAR04E/AzokvWVoumlmZgNx\neI4624AJJevjU1l5neMq1BmdIxagA1gBXBkRrwGvAUTEOklPAScC68qD2traDiy3tLTQ2tqa43Cs\nlq6urkZ3wawQf2cHR3d3Nz09Pbnq5kkea4HJkiaSjQrOBxaU1bkbuBi4TdJMYFdEPC/ppf5iJU2O\niM0p/lygJ5WPBXZExD5JJwCTgR9W6lhnZ2eug7Ti2tvbG90Fs0L8nR18Uv8nkWomj4jYK2kxsJLs\nNNeSiOiRtCjbHDdHxApJcyVtBnYDC6vFpqa/KOlEsgvlW4A/TOVnAFdJei1tWxQRu4oftpmZDRVF\nRKP7MCCSoln7Ptx1dHT4rzhrKm1tGz2/1RCQRERUHH74CXMza3qe26r+nDzMzKwwJw8zMyvMycPM\nzApz8jAzs8KcPMys6Xluq/pz8jCzpue5rerPycPMzApz8jAzs8KcPMzMrDAnDzMzK8zJw8yanue1\nqj8nDzNrep7bqv6cPMzMrDAnDzMzKyxX8pA0W9ImSU9KuqyfOtdK6pW0XtK0WrGSrpK0QdJjku6V\ndEzJtstTWz2SzjqYAzQzs8FXM3lIGgVcD5wNnAwskHRSWZ05wKSImAIsAm7MEfvliHhvRLwP+DZw\nRYppBc4DWoA5wA2q9i5EMzOruzwjjxlAb0RsiYg9wDJgXlmdecBSgIhYA4yRNK5abES8UhL/ZrJX\nzgKcAyyLiNcj4hmgN7VjZlaR57aqvzzJ41hga8n6s6ksT52qsZL+StKPgHbgC/20ta3C/szMDvDc\nVvU3VBfMc51miojPR8QE4FbgU0PUFzMzG2SH56izDZhQsj4+lZXXOa5CndE5YgE6yK57XFmlrT7a\n2toOLLe0tNDa2tr/UVhuXV1dje6CWSH+zg6O7u5uenp6ctXNkzzWApMlTQS2A+cDC8rq3A1cDNwm\naSawKyKel/RSf7GSJkfE5hR/LrCppK1bJV1DdrpqMvBIpY51dnbmOkgrrr29vdFdMCvE39nBV+1e\npZrJIyL2SloMrCQ7zbUkInokLco2x80RsULSXEmbgd3AwmqxqekvSjqR7EL5FuAPU0y3pNuBbmAP\ncFFExICO3MzMhoSa9feyJOeUIdLR0eG/4qyptLVt9PxWQ0ASEVFx+OEnzM2s6Xluq/pz8jAzs8Kc\nPMzMrDAnDzMzK8zJw8zMCnPyMLOm57mt6s/Jw8yanue2qj8nDzMzK8zJw8zMCnPyMDOzwpw8zMys\nMCcPM2t6nteq/pw8zKzpeW6r+nPyMDOzwpw8zMyssFzJQ9JsSZskPSnpsn7qXCupV9J6SdNqxUr6\nsqSeVL9T0pGpfKKkVyWtS58bDvYgzcxscNVMHpJGAdcDZwMnAwsknVRWZw4wKSKmAIuAG3PErgRO\njohpQC9weUmTmyNievpcdDAHaGZmgy/PyGMG0BsRWyJiD7AMmFdWZx6wFCAi1gBjJI2rFhsRD0TE\nvhT/MDC+pL3+X5xrZlbGc1vVX57kcSywtWT92VSWp06eWIBPAt8pWT8+nbJaJen0HH00sxHMc1vV\n3+FD1G7ukYOkzwF7IqIjFT0HTIiInZKmA3dKao2IV4aio2ZmVlye5LENmFCyPj6Vldc5rkKd0dVi\nJV0IzAU+uL8snd7amZbXSXoKOBFYV96xtra2A8stLS20trbmOByrpaurq9FdMCvE39nB0d3dTU9P\nT666eZLHWmCypInAduB8YEFZnbuBi4HbJM0EdkXE85Je6i9W0mzgUuCMiPj5/oYkjQV2RMQ+SScA\nk4EfVupYZ2dnroO04trb2xvdBbNC/J0dfFL/J5FqJo+I2CtpMdndUaOAJRHRI2lRtjlujogVkuZK\n2gzsBhZWi01NX0c2Mrk/dfDhdGfVGcBVkl4D9gGLImLXgI7czMyGhCKi0X0YEEnRrH0f7jo6OvxX\nnDWVtraNnt9qCEgiIioOP/yEuZk1Pc9tVX9OHmZmVpiTh5mZFebkYWZmhTl5mJlZYU4eZtb0PLdV\n/Tl5mFnT89xW9efkYWZmhTl5mJlZYU4eZmZWmJOHmZkV5uRhZk3P81rVn5OHmTU9z21Vf04eZmZW\nmJOHmZkVlit5SJotaZOkJyVd1k+dayX1SlovaVqtWElfltST6ndKOrJk2+WprR5JZx3MAZqZ2eCr\nmTwkjQKuB84GTgYWSDqprM4cYFJETAEWATfmiF0JnBwR04Be4PIU0wqcB7QAc4AbVO1diGZmVnd5\nRh4zgN6I2BIRe4BlwLyyOvOApQARsQYYI2lctdiIeCAi9qX4h4HxafkcYFlEvB4Rz5AllhkDPUAz\nO/R5bqv6y5M8jgW2lqw/m8ry1MkTC/BJYEU/bW3rJ8bMDPDcVo0wVBfMc59mkvQ5YE9EfHOI+mJm\nZoPs8Bx1tgETStbHp7LyOsdVqDO6WqykC4G5wAdztNVHW1vbgeWWlhZaW1urHojl09XV1egumBXi\n7+zg6O7upqenJ1fdPMljLTBZ0kRgO3A+sKCszt3AxcBtkmYCuyLieUkv9RcraTZwKXBGRPy8rK1b\nJV1DdrpqMvBIpY51dnbmOkgrrr29vdFdMCvE39nBV+1epZrJIyL2SlpMdnfUKGBJRPRIWpRtjpsj\nYoWkuZI2A7uBhdViU9PXkY1M7k8dfDgiLoqIbkm3A93AHuCiiIiBHbqZmQ0FNevvZUnOKUOko6PD\nf8VZU2lr2+j5rYaAJCKi4vDDT5ibWdPz3Fb15+RhZmaFOXlYH93d3Y3ugpkNc04e1kfeW/XMbORy\n8jAzs8LyPOdhI8Dq1atZvXo1AMuXL+fKK68EYNasWcyaNath/bKR5+ijYefO4nFFpk896ijYsaP4\nPuwNvlXX+mhra/MDmNYwEhT9p1309vKB7GMk8q26VsiLL77Y6C6Y2TDn5GF97Nq1q9FdMLNhzsnD\n+tizZ0+ju2Bmw5wvmBvwixfMN23a5AvmZlaVRx5mZlaY77ayPsaOHctLL73U6G7YCOW7rYaPandb\n+bSVAb942urll1/2aSszq8ojjxGq2kteqvHP3IaaRx7Dx0E/5yFptqRNkp6UdFk/da6V1CtpvaRp\ntWIlfUTSDyTtlTS9pHyipFclrUufG/IfquUVEf1+4Ioq28zMcpy2kjQKuB44E3gOWCvprojYVFJn\nDjApIqZIOg24EZhZI3Yj8DvATRV2uzkiplcot7qY1egOmNkwl2fkMQPojYgtEbEHWAbMK6szD1gK\nEBFrgDGSxlWLjYgnIqIXqDQkGtg5FRsksxrdATMb5vIkj2OBrSXrz6ayPHXyxFZyfDpltUrS6Tnq\nm5lZHQ3V3VYHM3J4DpgQETvTtZA7JbVGxCuD1DczMztIeZLHNmBCyfr4VFZe57gKdUbniP0F6fTW\nzrS8TtJTwInAuvK6bW1tB5ZbWlpobW2tcSiWx6mnjqGj4yeN7oaNWO10dHQUiujq6hryfYwE3d3d\nuV8GV/NWXUmHAU+QXfTeDjwCLIiInpI6c4GLI+LDkmYCX42ImTljVwGXRMSjaX0ssCMi9kk6Afgu\ncEpE/MJsfb5Vd+gUve3RbDD5Vt3h46AeEoyIvZIWAyvJrpEsiYgeSYuyzXFzRKyQNFfSZmA3sLBa\nbOrUucB1wFjgHknrI2IOcAZwlaTXgH3AovLEYWZmjZXrmkdE3AtMLSu7qWx9cd7YVH4ncGeF8uXA\n8jz9MjOzxvDEiGZmVpiTh5mZFebkYX10dp7S6C6Y2TDn5GF9LF/u5GFm1Tl5mJlZYU4eZmZWmJOH\nmZkV5uRhZmaFOXlYH/Pnb2x0F8xsmHPysD7a2pw8zKw6Jw8zMyvMycPMzApz8jAzs8KcPMzMrDAn\nD+vDc1uZWS25koek2ZI2SXpS0mX91LlWUq+k9ZKm1YqV9BFJP5C0N72rvLSty1NbPZLOGujB2cB4\nbiszq6Vm8pA0CrgeOBs4GVgg6aSyOnOASRExBVgE3JgjdiPwO2SvmS1tqwU4D2gB5gA3SKr4GkQz\nM2uMPCOPGUBvRGyJiD3AMmBeWZ15wFKAiFgDjJE0rlpsRDwREb1AeWKYByyLiNcj4hmgN7VjZmbD\nRJ7kcSywtWT92VSWp06e2Fr725YjxszM6mioLpj7NJOZ2SHs8Bx1tgETStbHp7LyOsdVqDM6R2yl\n/VVqq4+2trYDyy0tLbS2ttZo2vI49dQxdHT8pNHdsBGrnY6OjkIRXV1dQ76PkaC7u5uenp5cdRUR\n1StIhwFPAGcC24FHgAUR0VNSZy5wcUR8WNJM4KsRMTNn7Crgkoh4NK23ArcCp5GdrrofmBJlHZVU\nXmSDpKOjg/b29kZ3w0YoCYr+0y76nR3IPkYiSURExTNJNUceEbFX0mJgJdlpriUR0SNpUbY5bo6I\nFZLmStoM7AYWVotNnToXuA4YC9wjaX1EzImIbkm3A93AHuAiZwkzs+Elz2krIuJeYGpZ2U1l64vz\nxqbyO4E7+4m5Grg6T9/MzKz+/IS5mZkV5uRhZmaFOXlYH57bysxqcfKwPjy3lZnV4uRhZmaFOXmY\nmVlhTh5mZlaYk4eZmRXm5HGIO/robCqGIh8oHnP00Y09TjOrr5pzWw1Xntsqn3rMEzTQ/ZhVVK93\nv/kLW1O1ua088jCzYUVE9ou9wKfj1lsL1RdOHAfLycPMzApz8jAzs8KcPMzMrDAnDzMzKyxX8pA0\nW9ImSU9KuqyfOtdK6pW0XtK0WrGSjpK0UtITku6TNCaVT5T0qqR16XPDwR6kmZkNrprJQ9Io4Hrg\nbOBkYIGkk8rqzAEmRcQUYBFwY47YzwAPRMRU4EHg8pImN0fE9PS56GAO0MzMBl+ekccMoDcitkTE\nHmAZMK+szjxgKUBErAHGSBpXI3YecEtavgU4t6S9Ot3obWZmA5EneRwLbC1ZfzaV5alTLXZcRDwP\nEBE/Bt5RUu/4dMpqlaTTc/TRzMzqKNc7zAdgICOH/U/tbAcmRMROSdOBOyW1RsQrg9c9MzM7GHmS\nxzZgQsn6+FRWXue4CnVGV4n9saRxEfG8pGOAFwAi4jXgtbS8TtJTwInAuvKOtbW1HVhuaWmhtbU1\nx+GMNO10dHQUiujq6qrLfswqq8d31t/XSrq7u+np6clVt+bcVpIOA54AziQbFTwCLIiInpI6c4GL\nI+LDkmYCX42ImdViJX0J2BERX0p3YR0VEZ+RNDaV75N0AvBd4JSI2FXWL89tlYPntrJmU4/vrL+v\n+VSb26rmyCMi9kpaDKwku0ayJP3yX5RtjpsjYoWkuZI2A7uBhdViU9NfAm6X9ElgC3BeKj8DuErS\na8A+YFF54jAzs8bKdc0jIu4FppaV3VS2vjhvbCrfAfxWhfLlwPI8/TIzs8bwE+ZmZlbYUN1tZWY2\nYMVf6dHOxz6Wv/ZRRxVt38o5eZjZsDKQC9m+AF5/Pm1lZmaFOXmYmVlhTh5mZlZYzYcEhys/JJhT\n8SuPA+f/H9YgvuYxNKo9JOiRxyFORPavqsCn49ZbC8cI/8u1xpk/f2OjuzDiOHmYWdNra3PyqDcn\nDzMzK8zJw8zMCnPyMDOzwvyE+Qgw1FM9gKd7MBtpPPI4xBW8aerA7Y5FY3bsaOxx2sjW2XlKo7sw\n4vg5D+vD98xbs/F3dmgc9HMekmZL2iTpyfTWv0p1rpXUK2m9pGm1YiUdJWmlpCck3SdpTMm2y1Nb\nPZLOyn+oZmZWDzWTh6RRwPXA2cDJwAJJJ5XVmQNMiogpwCLgxhyxnwEeiIipwIPA5Smmleytgi3A\nHOAGqZ6PSZuZWS15Rh4zgN6I2BIRe4BlwLyyOvOApQARsQYYI2lcjdh5wC1p+Rbg3LR8DrAsIl6P\niGeA3tSOmZkNE3mSx7HA1pL1Z1NZnjrVYsdFxPMAEfFj4B39tLWtwv5sCJ100m2N7oJZH5L6/UC1\nbTYUhupuq4H8H/Plrjqq9g9x06bz/Q/Rhp2I6Pczf/78frfZ0MjznMc2YELJ+vhUVl7nuAp1RleJ\n/bGkcRHxvKRjgBdqtNWHf5nVn3/mNlz5u1lfeZLHWmCypInAduB8YEFZnbuBi4HbJM0EdqWk8FKV\n2LuBC4EvARcAd5WU3yrpGrLTVZOBR8o71d/tY2ZmNvRqJo+I2CtpMbCS7DTXkojokbQo2xw3R8QK\nSXMlbQZ2AwurxaamvwTcLumTwBayO6yIiG5JtwPdwB7gIj/QYWY2vDTtQ4JmZtY4np7kECXpU5K6\nJb0s6b8PIP57Q9Evs4GQNFXSY5IelXTCQL6fkv5C0geHon8jkUcehyhJPcCZEfFco/tidrDS7BSH\nRcT/bHRfLOORxyFI0t8DJwDfkfQnkq5L5R+VtDH9Bbc6lbVKWiNpXZpaZlIq/1lJe19JcRsknZfK\nPiBplaRvpWlkvlH3A7WmIWliGgnfLOkHku6VdET6Dk1Pdd4m6ekKsXOAPwH+SNK/prKfpf8eI+m7\n6fv7uKQv+AxtAAAEMElEQVT3Sxol6etpfYOkP051vy5pflo+M8VskPQ1SW9K5U9LujKNcDZIOrE+\nP6Hm4+RxCIqIPyK7vXkWsJM3nqH5c+CsiHgf2ZP8AH8IfDUipgOnkj3Iyf4YSW3AeyLiFOBDwFfS\n7AEA04BPA63AJEn/eSiPy5reZOC6iPhVYBfQRt/nu/qcComI75BNeXRNRJxZVq8duDd9f98LrCf7\nXh4bEe+JiPcCXy9tT9IvpbKPpu1vAv6opMoLEfFraZ+XDvRgD3VOHoe28tuZvwfcIun3eeNOu+8D\nn5N0KXB8RPy8LOb9wDcBIuIFYDXw62nbIxGxPd0Ntx44ftCPwA4lT0fE/peNr2Nwvi9rgYWSvkD2\nR85u4IfAuyX9raSzgZ+VxUwFfhgRT6X1W4AzSrbfkf77KDBxEPp4SHLyGEEi4iLgc2QPYT4q6aiI\n+Cbw28D/A1ZImlWjmdKEVJpo9uKXi1l1lb4vr/PG76Ej9m+U9I/p9Oo91RqMiIfIfvFvA/5J0scj\nYhfZKGQ12cj6HyqEVntObH8//Z2uwsnj0NXnH4ekEyJibURcQfZE/3GS3h0RT0fEdWQPar6nLP4h\n4HfTeeS3A79BhYc2zXKo9Av7GbLTpQAf3V8YEZ+MiPdFxH+p1pakCWSnmZYAXwOmSzqa7OL6HcDn\ngellsU8AEyWdkNZ/jyzRWAHOqoeuSrfRfUXSlLT8QEQ8LukySb9H9kDmduB/lMZHxB1p1oANwD7g\n0oh4QVJLjv2Zlap0feOvgW9J+gPg2wNoaxZwqaQ9ZKenPkE2pdHXlb0SIshe/3AgJiJ+Lmkh8C+S\nDiM79XVTP320fvhWXTMzK8ynrczMrDAnDzMzK8zJw8zMCnPyMDOzwpw8zMysMCcPMzMrzMnDzMwK\nc/Iwa7D0oJpZU3HyMBsASb8i6Z40/9Ljabr7UyV1pantH5b0Zkm/lOZpejxN8z0rxV8g6a40xfgD\nqewSSY+k+CsaeXxmtXh6ErOBmQ1s2z/3kqQjgcfIpvleJ+ktZJNN/jGwLyLeI2kqsLJkipj3AadE\nxE8kfQiYEhEzJAm4W9LpEeE3Otqw5JGH2cBsBD4k6WpJpwMTgOciYh1ARLwSEXuB04F/TmVPkE0E\nuP8FQ/dHxE/S8lmpvXVk05VPBfYnGbNhxyMPswGIiN70Bry5wF8Cq3KGls4su7us/OqIqDR9uNmw\n45GH2QBIeifwHxHRQTYz7GnAOyWdmra/JV0Ifwj4WCo7kexdKk9UaPI+4JOS3pzqvitNgW82LHnk\nYTYwp5BNcb8PeI3sNaYCrpf0y8CrwG8BNwB/L+lxsmnvL4iIPdlljTdExP2STgK+n7b9DPg48GKd\njsesEE/JbmZmhfm0lZmZFebkYWZmhTl5mJlZYU4eZmZWmJOHmZkV5uRhZmaFOXmYmVlhTh5mZlbY\n/wf1F+RhutXrZwAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1126,7 +1111,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -1134,18 +1119,18 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 27, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\nJ/KLgSwAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1160,11 +1145,11 @@ "# Extract mean and reshape as 2D NumPy arrays\n", "mean = fiss['mean'].reshape((17,17))\n", "\n", - "pylab.imshow(mean, interpolation='nearest')\n", - "pylab.title('fission rate')\n", - "pylab.xlabel('x')\n", - "pylab.ylabel('y')\n", - "pylab.colorbar()" + "plt.imshow(mean, interpolation='nearest')\n", + "plt.title('fission rate')\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", + "plt.colorbar()" ] }, { @@ -1176,7 +1161,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -1191,7 +1176,7 @@ "\tFilters =\t\n", " \t\tcell\t[10000]\n", "\tNuclides =\tU-235 U-238 \n", - "\tScores =\t[u'scatter-Y0,0', u'scatter-Y1,-1', u'scatter-Y1,0', u'scatter-Y1,1', u'scatter-Y2,-2', u'scatter-Y2,-1', u'scatter-Y2,0', u'scatter-Y2,1', u'scatter-Y2,2']\n", + "\tScores =\t['scatter-Y0,0', 'scatter-Y1,-1', 'scatter-Y1,0', 'scatter-Y1,1', 'scatter-Y2,-2', 'scatter-Y2,-1', 'scatter-Y2,0', 'scatter-Y2,1', 'scatter-Y2,2']\n", "\tEstimator =\tanalog\n", "\n" ] @@ -1207,7 +1192,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -1233,144 +1218,144 @@ " 10000\n", " U-235\n", " scatter-Y0,0\n", - " 3.86e-02\n", - " 1.11e-03\n", + " 3.84e-02\n", + " 1.32e-03\n", " \n", " \n", " 1\n", " 10000\n", " U-235\n", " scatter-Y1,-1\n", - " 2.75e-04\n", - " 2.96e-04\n", + " 3.61e-04\n", + " 3.13e-04\n", " \n", " \n", " 2\n", " 10000\n", " U-235\n", " scatter-Y1,0\n", - " -5.55e-05\n", - " 4.33e-04\n", + " -2.38e-04\n", + " 4.69e-04\n", " \n", " \n", " 3\n", " 10000\n", " U-235\n", " scatter-Y1,1\n", - " -4.22e-04\n", - " 3.51e-04\n", + " -5.08e-04\n", + " 3.83e-04\n", " \n", " \n", " 4\n", " 10000\n", " U-235\n", " scatter-Y2,-2\n", - " 5.88e-05\n", - " 2.04e-04\n", + " 6.68e-05\n", + " 2.46e-04\n", " \n", " \n", " 5\n", " 10000\n", " U-235\n", " scatter-Y2,-1\n", - " 1.00e-04\n", - " 2.49e-04\n", + " 6.47e-06\n", + " 2.84e-04\n", " \n", " \n", " 6\n", " 10000\n", " U-235\n", " scatter-Y2,0\n", - " -8.09e-05\n", - " 1.59e-04\n", + " -1.41e-04\n", + " 1.75e-04\n", " \n", " \n", " 7\n", " 10000\n", " U-235\n", " scatter-Y2,1\n", - " 1.93e-04\n", - " 2.14e-04\n", + " 1.61e-04\n", + " 2.33e-04\n", " \n", " \n", " 8\n", " 10000\n", " U-235\n", " scatter-Y2,2\n", - " 1.12e-04\n", - " 1.86e-04\n", + " -1.80e-05\n", + " 1.97e-04\n", " \n", " \n", " 9\n", " 10000\n", " U-238\n", " scatter-Y0,0\n", - " 2.34e+00\n", - " 1.34e-02\n", + " 2.33e+00\n", + " 1.35e-02\n", " \n", " \n", " 10\n", " 10000\n", " U-238\n", " scatter-Y1,-1\n", - " 2.32e-02\n", - " 2.97e-03\n", + " 2.53e-02\n", + " 3.23e-03\n", " \n", " \n", " 11\n", " 10000\n", " U-238\n", " scatter-Y1,0\n", - " 7.50e-04\n", - " 2.55e-03\n", + " 7.10e-04\n", + " 2.92e-03\n", " \n", " \n", " 12\n", " 10000\n", " U-238\n", " scatter-Y1,1\n", - " -2.73e-02\n", - " 3.28e-03\n", + " -2.49e-02\n", + " 3.52e-03\n", " \n", " \n", " 13\n", " 10000\n", " U-238\n", " scatter-Y2,-2\n", - " -2.36e-03\n", - " 1.21e-03\n", + " -1.43e-03\n", + " 1.17e-03\n", " \n", " \n", " 14\n", " 10000\n", " U-238\n", " scatter-Y2,-1\n", - " -1.80e-04\n", - " 1.49e-03\n", + " 6.84e-04\n", + " 1.63e-03\n", " \n", " \n", " 15\n", " 10000\n", " U-238\n", " scatter-Y2,0\n", - " 3.23e-03\n", - " 2.25e-03\n", + " 2.85e-03\n", + " 2.63e-03\n", " \n", " \n", " 16\n", " 10000\n", " U-238\n", " scatter-Y2,1\n", - " 3.75e-03\n", - " 1.97e-03\n", + " 3.97e-03\n", + " 2.24e-03\n", " \n", " \n", " 17\n", " 10000\n", " U-238\n", " scatter-Y2,2\n", - " 2.07e-03\n", - " 1.60e-03\n", + " 2.26e-03\n", + " 1.85e-03\n", " \n", " \n", "\n", @@ -1378,27 +1363,27 @@ ], "text/plain": [ " cell nuclide score mean std. dev.\n", - "0 10000 U-235 scatter-Y0,0 3.86e-02 1.11e-03\n", - "1 10000 U-235 scatter-Y1,-1 2.75e-04 2.96e-04\n", - "2 10000 U-235 scatter-Y1,0 -5.55e-05 4.33e-04\n", - "3 10000 U-235 scatter-Y1,1 -4.22e-04 3.51e-04\n", - "4 10000 U-235 scatter-Y2,-2 5.88e-05 2.04e-04\n", - "5 10000 U-235 scatter-Y2,-1 1.00e-04 2.49e-04\n", - "6 10000 U-235 scatter-Y2,0 -8.09e-05 1.59e-04\n", - "7 10000 U-235 scatter-Y2,1 1.93e-04 2.14e-04\n", - "8 10000 U-235 scatter-Y2,2 1.12e-04 1.86e-04\n", - "9 10000 U-238 scatter-Y0,0 2.34e+00 1.34e-02\n", - "10 10000 U-238 scatter-Y1,-1 2.32e-02 2.97e-03\n", - "11 10000 U-238 scatter-Y1,0 7.50e-04 2.55e-03\n", - "12 10000 U-238 scatter-Y1,1 -2.73e-02 3.28e-03\n", - "13 10000 U-238 scatter-Y2,-2 -2.36e-03 1.21e-03\n", - "14 10000 U-238 scatter-Y2,-1 -1.80e-04 1.49e-03\n", - "15 10000 U-238 scatter-Y2,0 3.23e-03 2.25e-03\n", - "16 10000 U-238 scatter-Y2,1 3.75e-03 1.97e-03\n", - "17 10000 U-238 scatter-Y2,2 2.07e-03 1.60e-03" + "0 10000 U-235 scatter-Y0,0 3.84e-02 1.32e-03\n", + "1 10000 U-235 scatter-Y1,-1 3.61e-04 3.13e-04\n", + "2 10000 U-235 scatter-Y1,0 -2.38e-04 4.69e-04\n", + "3 10000 U-235 scatter-Y1,1 -5.08e-04 3.83e-04\n", + "4 10000 U-235 scatter-Y2,-2 6.68e-05 2.46e-04\n", + "5 10000 U-235 scatter-Y2,-1 6.47e-06 2.84e-04\n", + "6 10000 U-235 scatter-Y2,0 -1.41e-04 1.75e-04\n", + "7 10000 U-235 scatter-Y2,1 1.61e-04 2.33e-04\n", + "8 10000 U-235 scatter-Y2,2 -1.80e-05 1.97e-04\n", + "9 10000 U-238 scatter-Y0,0 2.33e+00 1.35e-02\n", + "10 10000 U-238 scatter-Y1,-1 2.53e-02 3.23e-03\n", + "11 10000 U-238 scatter-Y1,0 7.10e-04 2.92e-03\n", + "12 10000 U-238 scatter-Y1,1 -2.49e-02 3.52e-03\n", + "13 10000 U-238 scatter-Y2,-2 -1.43e-03 1.17e-03\n", + "14 10000 U-238 scatter-Y2,-1 6.84e-04 1.63e-03\n", + "15 10000 U-238 scatter-Y2,0 2.85e-03 2.63e-03\n", + "16 10000 U-238 scatter-Y2,1 3.97e-03 2.24e-03\n", + "17 10000 U-238 scatter-Y2,2 2.26e-03 1.85e-03" ] }, - "execution_count": 29, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -1420,7 +1405,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -1429,8 +1414,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00159927 0.01341406]\n", - " [ 0.00018637 0.00111048]]]\n" + "[[[ 0.00185463 0.01350521]\n", + " [ 0.00019723 0.00131654]]]\n" ] } ], @@ -1451,7 +1436,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -1466,7 +1451,7 @@ "\tFilters =\t\n", " \t\tdistribcell\t[10002]\n", "\tNuclides =\ttotal \n", - "\tScores =\t[u'absorption', u'scatter']\n", + "\tScores =\t['absorption', 'scatter']\n", "\tEstimator =\ttracklength\n", "\n" ] @@ -1489,7 +1474,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -1498,7 +1483,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.05767856]]]\n" + "[[[ 0.05468423]]]\n" ] } ], @@ -1519,7 +1504,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -1543,141 +1528,141 @@ " 558\n", " 279\n", " absorption\n", - " 8.19e-05\n", - " 7.82e-06\n", + " 8.72e-05\n", + " 8.13e-06\n", " \n", " \n", " 559\n", " 279\n", " scatter\n", - " 1.33e-02\n", - " 6.19e-04\n", + " 1.37e-02\n", + " 6.98e-04\n", " \n", " \n", " 560\n", " 280\n", " absorption\n", - " 1.00e-04\n", - " 7.93e-06\n", + " 1.03e-04\n", + " 9.17e-06\n", " \n", " \n", " 561\n", " 280\n", " scatter\n", - " 1.40e-02\n", - " 5.61e-04\n", + " 1.41e-02\n", + " 6.26e-04\n", " \n", " \n", " 562\n", " 281\n", " absorption\n", - " 9.52e-05\n", - " 7.08e-06\n", + " 9.41e-05\n", + " 8.40e-06\n", " \n", " \n", " 563\n", " 281\n", " scatter\n", - " 1.51e-02\n", - " 6.50e-04\n", + " 1.50e-02\n", + " 6.92e-04\n", " \n", " \n", " 564\n", " 282\n", " absorption\n", - " 9.85e-05\n", - " 9.47e-06\n", + " 9.56e-05\n", + " 1.03e-05\n", " \n", " \n", " 565\n", " 282\n", " scatter\n", - " 1.53e-02\n", - " 4.63e-04\n", + " 1.52e-02\n", + " 5.37e-04\n", " \n", " \n", " 566\n", " 283\n", " absorption\n", - " 1.08e-04\n", - " 1.34e-05\n", + " 1.06e-04\n", + " 1.49e-05\n", " \n", " \n", " 567\n", " 283\n", " scatter\n", - " 1.65e-02\n", - " 7.04e-04\n", + " 1.64e-02\n", + " 8.14e-04\n", " \n", " \n", " 568\n", " 284\n", " absorption\n", - " 1.13e-04\n", - " 7.91e-06\n", + " 1.16e-04\n", + " 9.02e-06\n", " \n", " \n", " 569\n", " 284\n", " scatter\n", - " 1.67e-02\n", - " 5.51e-04\n", + " 1.64e-02\n", + " 6.00e-04\n", " \n", " \n", " 570\n", " 285\n", " absorption\n", - " 1.23e-04\n", - " 9.53e-06\n", + " 1.25e-04\n", + " 1.12e-05\n", " \n", " \n", " 571\n", " 285\n", " scatter\n", - " 1.88e-02\n", - " 7.25e-04\n", + " 1.87e-02\n", + " 8.26e-04\n", " \n", " \n", " 572\n", " 286\n", " absorption\n", - " 1.44e-04\n", - " 1.34e-05\n", + " 1.47e-04\n", + " 1.49e-05\n", " \n", " \n", " 573\n", " 286\n", " scatter\n", - " 1.90e-02\n", - " 7.07e-04\n", + " 1.94e-02\n", + " 7.71e-04\n", " \n", " \n", " 574\n", " 287\n", " absorption\n", - " 1.26e-04\n", - " 8.66e-06\n", + " 1.31e-04\n", + " 9.84e-06\n", " \n", " \n", " 575\n", " 287\n", " scatter\n", " 1.97e-02\n", - " 7.23e-04\n", + " 7.93e-04\n", " \n", " \n", " 576\n", " 288\n", " absorption\n", - " 1.25e-04\n", - " 9.59e-06\n", + " 1.23e-04\n", + " 1.07e-05\n", " \n", " \n", " 577\n", " 288\n", " scatter\n", - " 2.01e-02\n", - " 6.75e-04\n", + " 1.97e-02\n", + " 7.34e-04\n", " \n", " \n", "\n", @@ -1685,29 +1670,29 @@ ], "text/plain": [ " distribcell score mean std. dev.\n", - "558 279 absorption 8.19e-05 7.82e-06\n", - "559 279 scatter 1.33e-02 6.19e-04\n", - "560 280 absorption 1.00e-04 7.93e-06\n", - "561 280 scatter 1.40e-02 5.61e-04\n", - "562 281 absorption 9.52e-05 7.08e-06\n", - "563 281 scatter 1.51e-02 6.50e-04\n", - "564 282 absorption 9.85e-05 9.47e-06\n", - "565 282 scatter 1.53e-02 4.63e-04\n", - "566 283 absorption 1.08e-04 1.34e-05\n", - "567 283 scatter 1.65e-02 7.04e-04\n", - "568 284 absorption 1.13e-04 7.91e-06\n", - "569 284 scatter 1.67e-02 5.51e-04\n", - "570 285 absorption 1.23e-04 9.53e-06\n", - "571 285 scatter 1.88e-02 7.25e-04\n", - "572 286 absorption 1.44e-04 1.34e-05\n", - "573 286 scatter 1.90e-02 7.07e-04\n", - "574 287 absorption 1.26e-04 8.66e-06\n", - "575 287 scatter 1.97e-02 7.23e-04\n", - "576 288 absorption 1.25e-04 9.59e-06\n", - "577 288 scatter 2.01e-02 6.75e-04" + "558 279 absorption 8.72e-05 8.13e-06\n", + "559 279 scatter 1.37e-02 6.98e-04\n", + "560 280 absorption 1.03e-04 9.17e-06\n", + "561 280 scatter 1.41e-02 6.26e-04\n", + "562 281 absorption 9.41e-05 8.40e-06\n", + "563 281 scatter 1.50e-02 6.92e-04\n", + "564 282 absorption 9.56e-05 1.03e-05\n", + "565 282 scatter 1.52e-02 5.37e-04\n", + "566 283 absorption 1.06e-04 1.49e-05\n", + "567 283 scatter 1.64e-02 8.14e-04\n", + "568 284 absorption 1.16e-04 9.02e-06\n", + "569 284 scatter 1.64e-02 6.00e-04\n", + "570 285 absorption 1.25e-04 1.12e-05\n", + "571 285 scatter 1.87e-02 8.26e-04\n", + "572 286 absorption 1.47e-04 1.49e-05\n", + "573 286 scatter 1.94e-02 7.71e-04\n", + "574 287 absorption 1.31e-04 9.84e-06\n", + "575 287 scatter 1.97e-02 7.93e-04\n", + "576 288 absorption 1.23e-04 1.07e-05\n", + "577 288 scatter 1.97e-02 7.34e-04" ] }, - "execution_count": 33, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -1729,7 +1714,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -1791,8 +1776,8 @@ " 10000\n", " 279\n", " absorption\n", - " 8.19e-05\n", - " 7.82e-06\n", + " 8.72e-05\n", + " 8.13e-06\n", " \n", " \n", " 559\n", @@ -1806,8 +1791,8 @@ " 10000\n", " 279\n", " scatter\n", - " 1.33e-02\n", - " 6.19e-04\n", + " 1.37e-02\n", + " 6.98e-04\n", " \n", " \n", " 560\n", @@ -1821,8 +1806,8 @@ " 10000\n", " 280\n", " absorption\n", - " 1.00e-04\n", - " 7.93e-06\n", + " 1.03e-04\n", + " 9.17e-06\n", " \n", " \n", " 561\n", @@ -1836,8 +1821,8 @@ " 10000\n", " 280\n", " scatter\n", - " 1.40e-02\n", - " 5.61e-04\n", + " 1.41e-02\n", + " 6.26e-04\n", " \n", " \n", " 562\n", @@ -1851,8 +1836,8 @@ " 10000\n", " 281\n", " absorption\n", - " 9.52e-05\n", - " 7.08e-06\n", + " 9.41e-05\n", + " 8.40e-06\n", " \n", " \n", " 563\n", @@ -1866,8 +1851,8 @@ " 10000\n", " 281\n", " scatter\n", - " 1.51e-02\n", - " 6.50e-04\n", + " 1.50e-02\n", + " 6.92e-04\n", " \n", " \n", " 564\n", @@ -1881,8 +1866,8 @@ " 10000\n", " 282\n", " absorption\n", - " 9.85e-05\n", - " 9.47e-06\n", + " 9.56e-05\n", + " 1.03e-05\n", " \n", " \n", " 565\n", @@ -1896,8 +1881,8 @@ " 10000\n", " 282\n", " scatter\n", - " 1.53e-02\n", - " 4.63e-04\n", + " 1.52e-02\n", + " 5.37e-04\n", " \n", " \n", " 566\n", @@ -1911,8 +1896,8 @@ " 10000\n", " 283\n", " absorption\n", - " 1.08e-04\n", - " 1.34e-05\n", + " 1.06e-04\n", + " 1.49e-05\n", " \n", " \n", " 567\n", @@ -1926,8 +1911,8 @@ " 10000\n", " 283\n", " scatter\n", - " 1.65e-02\n", - " 7.04e-04\n", + " 1.64e-02\n", + " 8.14e-04\n", " \n", " \n", " 568\n", @@ -1941,8 +1926,8 @@ " 10000\n", " 284\n", " absorption\n", - " 1.13e-04\n", - " 7.91e-06\n", + " 1.16e-04\n", + " 9.02e-06\n", " \n", " \n", " 569\n", @@ -1956,8 +1941,8 @@ " 10000\n", " 284\n", " scatter\n", - " 1.67e-02\n", - " 5.51e-04\n", + " 1.64e-02\n", + " 6.00e-04\n", " \n", " \n", " 570\n", @@ -1971,8 +1956,8 @@ " 10000\n", " 285\n", " absorption\n", - " 1.23e-04\n", - " 9.53e-06\n", + " 1.25e-04\n", + " 1.12e-05\n", " \n", " \n", " 571\n", @@ -1986,8 +1971,8 @@ " 10000\n", " 285\n", " scatter\n", - " 1.88e-02\n", - " 7.25e-04\n", + " 1.87e-02\n", + " 8.26e-04\n", " \n", " \n", " 572\n", @@ -2001,8 +1986,8 @@ " 10000\n", " 286\n", " absorption\n", - " 1.44e-04\n", - " 1.34e-05\n", + " 1.47e-04\n", + " 1.49e-05\n", " \n", " \n", " 573\n", @@ -2016,8 +2001,8 @@ " 10000\n", " 286\n", " scatter\n", - " 1.90e-02\n", - " 7.07e-04\n", + " 1.94e-02\n", + " 7.71e-04\n", " \n", " \n", " 574\n", @@ -2031,8 +2016,8 @@ " 10000\n", " 287\n", " absorption\n", - " 1.26e-04\n", - " 8.66e-06\n", + " 1.31e-04\n", + " 9.84e-06\n", " \n", " \n", " 575\n", @@ -2047,7 +2032,7 @@ " 287\n", " scatter\n", " 1.97e-02\n", - " 7.23e-04\n", + " 7.93e-04\n", " \n", " \n", " 576\n", @@ -2061,8 +2046,8 @@ " 10000\n", " 288\n", " absorption\n", - " 1.25e-04\n", - " 9.59e-06\n", + " 1.23e-04\n", + " 1.07e-05\n", " \n", " \n", " 577\n", @@ -2076,8 +2061,8 @@ " 10000\n", " 288\n", " scatter\n", - " 2.01e-02\n", - " 6.75e-04\n", + " 1.97e-02\n", + " 7.34e-04\n", " \n", " \n", "\n", @@ -2111,36 +2096,36 @@ " mean std. dev. \n", " \n", " \n", - "558 8.19e-05 7.82e-06 \n", - "559 1.33e-02 6.19e-04 \n", - "560 1.00e-04 7.93e-06 \n", - "561 1.40e-02 5.61e-04 \n", - "562 9.52e-05 7.08e-06 \n", - "563 1.51e-02 6.50e-04 \n", - "564 9.85e-05 9.47e-06 \n", - "565 1.53e-02 4.63e-04 \n", - "566 1.08e-04 1.34e-05 \n", - "567 1.65e-02 7.04e-04 \n", - "568 1.13e-04 7.91e-06 \n", - "569 1.67e-02 5.51e-04 \n", - "570 1.23e-04 9.53e-06 \n", - "571 1.88e-02 7.25e-04 \n", - "572 1.44e-04 1.34e-05 \n", - "573 1.90e-02 7.07e-04 \n", - "574 1.26e-04 8.66e-06 \n", - "575 1.97e-02 7.23e-04 \n", - "576 1.25e-04 9.59e-06 \n", - "577 2.01e-02 6.75e-04 " + "558 8.72e-05 8.13e-06 \n", + "559 1.37e-02 6.98e-04 \n", + "560 1.03e-04 9.17e-06 \n", + "561 1.41e-02 6.26e-04 \n", + "562 9.41e-05 8.40e-06 \n", + "563 1.50e-02 6.92e-04 \n", + "564 9.56e-05 1.03e-05 \n", + "565 1.52e-02 5.37e-04 \n", + "566 1.06e-04 1.49e-05 \n", + "567 1.64e-02 8.14e-04 \n", + "568 1.16e-04 9.02e-06 \n", + "569 1.64e-02 6.00e-04 \n", + "570 1.25e-04 1.12e-05 \n", + "571 1.87e-02 8.26e-04 \n", + "572 1.47e-04 1.49e-05 \n", + "573 1.94e-02 7.71e-04 \n", + "574 1.31e-04 9.84e-06 \n", + "575 1.97e-02 7.93e-04 \n", + "576 1.23e-04 1.07e-05 \n", + "577 1.97e-02 7.34e-04 " ] }, - "execution_count": 34, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get a pandas dataframe for the distribcell tally data\n", - "df = tally.get_pandas_dataframe(summary=su, nuclides=False)\n", + "df = tally.get_pandas_dataframe(summary=sp.summary, nuclides=False)\n", "\n", "# Print the last twenty rows in the dataframe\n", "df.tail(20)" @@ -2148,7 +2133,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "metadata": { "collapsed": false }, @@ -2183,38 +2168,38 @@ " \n", " \n", " mean\n", - " 4.19e-04\n", - " 2.24e-05\n", + " 4.16e-04\n", + " 2.42e-05\n", " \n", " \n", " std\n", - " 2.42e-04\n", - " 9.14e-06\n", + " 2.39e-04\n", + " 1.03e-05\n", " \n", " \n", " min\n", " 1.90e-05\n", - " 3.44e-06\n", + " 3.80e-06\n", " \n", " \n", " 25%\n", - " 2.02e-04\n", - " 1.56e-05\n", + " 1.99e-04\n", + " 1.61e-05\n", " \n", " \n", " 50%\n", - " 4.05e-04\n", - " 2.20e-05\n", + " 4.09e-04\n", + " 2.37e-05\n", " \n", " \n", " 75%\n", - " 6.07e-04\n", - " 2.89e-05\n", + " 6.00e-04\n", + " 3.08e-05\n", " \n", " \n", " max\n", - " 9.19e-04\n", - " 4.95e-05\n", + " 9.07e-04\n", + " 5.38e-05\n", " \n", " \n", "\n", @@ -2225,16 +2210,16 @@ " \n", " \n", "count 2.89e+02 2.89e+02\n", - "mean 4.19e-04 2.24e-05\n", - "std 2.42e-04 9.14e-06\n", - "min 1.90e-05 3.44e-06\n", - "25% 2.02e-04 1.56e-05\n", - "50% 4.05e-04 2.20e-05\n", - "75% 6.07e-04 2.89e-05\n", - "max 9.19e-04 4.95e-05" + "mean 4.16e-04 2.42e-05\n", + "std 2.39e-04 1.03e-05\n", + "min 1.90e-05 3.80e-06\n", + "25% 1.99e-04 1.61e-05\n", + "50% 4.09e-04 2.37e-05\n", + "75% 6.00e-04 3.08e-05\n", + "max 9.07e-04 5.38e-05" ] }, - "execution_count": 35, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -2257,7 +2242,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -2266,7 +2251,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.303583331507\n" + "Mann-Whitney Test p-value: 0.7234916721800682\n" ] } ], @@ -2295,7 +2280,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 36, "metadata": { "collapsed": false }, @@ -2304,7 +2289,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 6.038663783e-42\n" + "Mann-Whitney Test p-value: 3.5054120724573393e-41\n" ] } ], @@ -2331,7 +2316,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 37, "metadata": { "collapsed": false }, @@ -2340,7 +2325,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:4: SettingWithCopyWarning: \n", + "/home/romano/miniconda3/envs/default/lib/python3.5/site-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", @@ -2350,18 +2335,18 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 38, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2380,7 +2365,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -2388,18 +2373,18 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 39, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n9OnTh2bNmtGmTRsuu+wyioqKSt/PzLjvvvvYdddd2W677fjDH/7A3Llz6dOnD02bNmXo0KEbrZ8J\nSggi0mBcccUVXHHFFaxatYq5c+dy8sknA/Dmm28CsGLFClavXk2fPn0YOXIkI0eO5LXXXuOrr75i\n9erVXHbZZQB89tlnXHLJJTz++OMsXryYlStXlna8s97YsWMZMmQIK1as4LTTTiMej3PXXXexfPly\npkyZwqRJk7jvvvs22ubll1/mo48+4t133+WOO+7gvPPO4/HHH+ebb75hxowZjBo1KqPlo4QgIvXe\n4MGDadasWelwySWXlLteTk4Oc+bMYfny5eTn57P//vtv8T0ff/xxrr76ajp37kx+fj5/+ctfGD16\nNCUlJTz11FMce+yx9OvXj9zcXG6++ebNemnr06cPgwcPJhaL0bhxY/bee2/2339/EokEHTt25MIL\nL+SNN97YaJvrrruOJk2a0K1bN7p3786RRx5J586dadq0KYMGDWLatGnVL6wKKCGISL337LPPsmLF\nitJh01/e640YMYJZs2bRpUsX9tlnH55//vktvueiRYvo0KFD6XSHDh0oKSlhyZIlLFq0iPbt25cu\n22abbWjRosVG25ddDjBr1iyOOeYYWrduTZMmTbjxxhtZvnz5Ruu0atWqdLxx48abTa9evbqCUqg+\nJQQRaTB22203Ro0axdKlS7n++usZMmQIa9asKbcP5rZt2zJ//vzS6W+++YZEIkGrVq1o06YNCxYs\nKF22bt06vv/++4223/Q9L774Yrp06cLs2bNZtWoVf/7zn+tcHxNKCCLSYDz22GMsW7aMWCxGs2bN\nAIjFYuy4447EYjG++uqr0nVPPfVU7rrrLr7++mtWr17NjTfeyNChQ0kkEgwZMoRx48YxefJkioqK\nKCgoqPTL/aeffqJJkybk5+fzxRdfVNjvc1Qa7g23IlIt9fG5kPHjx3P11Vezdu1aOnTowOjRo2nc\nuDEAw4YNo2/fvhQXFzN+/HjOPfdcFi1aRP/+/fn555854ogjuOeee4DgYbd77rmHU045hTVr1nDl\nlVfSsmVL8vLytrjvO++8kwsuuIA77riDnj17MnToUF599dVaOe50qQtNybiqPmimB9PqHnWhWbHV\nq1fTrFkzZs+eTadOnSKLQ11oiohEYNy4caxdu5Y1a9ZwzTXX0KNHDzp27Bh1WNWiKiOpEZluxkCk\n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\nSUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2410,29 +2395,29 @@ "# Plot a histogram and kernel density estimate for the scattering rates\n", "scatter['mean'].plot(kind='hist', bins=25)\n", "scatter['mean'].plot(kind='kde')\n", - "pylab.title('Scattering Rates')\n", - "pylab.xlabel('Mean')\n", - "pylab.legend(['KDE', 'Histogram'])" + "plt.title('Scattering Rates')\n", + "plt.xlabel('Mean')\n", + "plt.legend(['KDE', 'Histogram'])" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.5.1" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 36cf63c6a..de92c2bcb 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -339,7 +339,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAALKSURB\nVGje7dpLcqQwDAbgHHE2YeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmN\nP+HDhw8fPnz48Kf6VH9G+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4\nzPji99z0/AJ4n1lfvJ6fnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6\npA0wfln+ho/fwgYYn19C/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tN\nDbSGz7T0SBEWw4vLXzbQ6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X5\n8wZaxWd1+fMGiuFvir8bvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV\n873hB8UnM3xzANtf8nb4dwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7\nT/ppARBvp48UwJnelT5SACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4/\n/Jve+fhsH6Ctv7n8PTzjvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V\n32/o9+fl389Xnx+g5x/o+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6\n/4Le/6D3T/D9V67Y/ZsVQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/\ngPs/0P4TtP8F7r9J3AIO9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTu\nf4X7b+H+X7T/+BPuf3aM8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTYtMDQtMTNUMTE6MzI6NTUtMDQ6MDDR46xaAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEz\nVDExOjMyOjU1LTA0OjAwoL4U5gAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AFBRQpN8J6/ygAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDUtMDVUMTQ6NDE6\nNTUtMDY6MDCnHFu9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA1LTA1VDE0OjQxOjU1LTA2OjAw\n1kHjAQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -445,12 +445,11 @@ " 888\n", " 888\n", "\n", - " Copyright: 2011-2015 Massachusetts Institute of Technology\n", - " License: http://mit-crpg.github.io/openmc/license.html\n", + " Copyright: 2011-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", - " Date/Time: 2016-04-13 11:32:56\n", - " MPI Processes: 1\n", + " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", + " Date/Time: 2016-05-05 14:41:55\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -586,20 +585,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.8100E-01 seconds\n", - " Reading cross sections = 8.6000E-02 seconds\n", - " Total time in simulation = 2.4400E+02 seconds\n", - " Time in transport only = 2.4395E+02 seconds\n", - " Time in inactive batches = 8.3260E+00 seconds\n", - " Time in active batches = 2.3567E+02 seconds\n", - " Time synchronizing fission bank = 1.6000E-02 seconds\n", - " Sampling source sites = 6.0000E-03 seconds\n", - " SEND/RECV source sites = 7.0000E-03 seconds\n", + " Total time for initialization = 4.4900E-01 seconds\n", + " Reading cross sections = 1.2100E-01 seconds\n", + " Total time in simulation = 3.4132E+02 seconds\n", + " Time in transport only = 3.4128E+02 seconds\n", + " Time in inactive batches = 1.0748E+01 seconds\n", + " Time in active batches = 3.3057E+02 seconds\n", + " Time synchronizing fission bank = 1.1000E-02 seconds\n", + " Sampling source sites = 1.1000E-02 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 1.9000E-02 seconds\n", - " Total time for finalization = 1.7400E-01 seconds\n", - " Total time elapsed = 2.4458E+02 seconds\n", - " Calculation Rate (inactive) = 6005.28 neutrons/second\n", - " Calculation Rate (active) = 1909.46 neutrons/second\n", + " Total time for finalization = 1.5600E-01 seconds\n", + " Total time elapsed = 3.4196E+02 seconds\n", + " Calculation Rate (inactive) = 4652.03 neutrons/second\n", + " Calculation Rate (active) = 1361.27 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -674,11 +673,11 @@ "text": [ "Tally\n", "\tID =\t10000\n", - "\tName =\t\n", + "\tName =\tflux\n", "\tFilters =\t\n", " \t\tmesh\t[10000]\n", "\tNuclides =\ttotal \n", - "\tScores =\t[u'flux', u'fission']\n", + "\tScores =\t['flux', 'fission']\n", "\tEstimator =\ttracklength\n", "\n" ] @@ -809,11 +808,11 @@ "text": [ "Tally\n", "\tID =\t10001\n", - "\tName =\t\n", + "\tName =\tflux\n", "\tFilters =\t\n", " \t\tmesh\t[10000]\n", "\tNuclides =\ttotal \n", - "\tScores =\t[u'flux']\n", + "\tScores =\t['flux']\n", "\tEstimator =\ttracklength\n", "\n" ] @@ -856,7 +855,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -865,9 +864,9 @@ }, { "data": { - "image/png": "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\nRK5CYII=\n", + "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -897,9 +896,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1013,7 +1012,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1022,9 +1021,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEWCAYAAABxMXBSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGt5JREFUeJzt3X20ZFV55/Hvj24DaIs9uiamA+1AtKPpvIiMQByzjIZR\nAaOdFUkaX+KCmESypM3rmmgmGZqYSTRvo6CBNoKKOja+JiSrEzQddZIJIK/B0GBoMQ6QNsQQpRVR\nOz7zR50rxe1bt87pe8+9Vfd+P2vVunXO3qfqqd2n66lzzj57p6qQJKmtw5Y7AEnSdDFxSJI6MXFI\nkjoxcUiSOjFxSJI6MXFIkjpZkYkjyfbljmHa2YYLZxsuDttx4Ra7DbMS7+NIUlWV5Y5jmtmGC2cb\nLg7bceEWuw1X5BFH3w41e3fZbr66XcvarFvqX3ULeb+2246rN6q87fq2bd2nvvfFQ23DUWXui93K\nJ7UNPeJYwtfvst18dbuWtVk3bnmxLeT12247rt6o8rbrx7XrUvxS7ntfPNQ2HFXmvtitfFLbcMUm\njuWOQZKmTdvksrbvQJbLSkyIktSXpP0Bidc4JEmdmDgkSZ2YOCRJnZg4JEmdmDgkSZ2YOCRJnZg4\nJEmdrNj7OCStbjfd+QUu3H07X/rqgYPK1h2+lm2nbOL4jeuXIbLpZ+KQtCJduPt2dt92z7x1Ljnr\nxCWKZmUxcUhakWaONB55xFo2bzjqm+v37LuP/Q8cmPNIRO2YOCStaJs3HMXlr3jaN5e37riKaz5z\n7zJGNP28OC5J6sTEIUnqxFNVkqbWfD2n9uy7bxkiWh1MHJKmVpueU+sOn/trbs+++9i646o569tV\nd34mDkkTrc1RxeyeUzPWHb6WV52y6aB1APsfODDyIvnu2+7h5OMePefrmVRMHJImXJujipOOfXTr\nezK2NYlkrkQ0nEjm63m12u//MHFImmij7seYMddRxXyO37h+5Bf/uKMb7/8YMHFImgqz78fow3xJ\nxfs/HmR3XElSJyYOSVInJg5JUicmDklSJyYOSVInJg5JUicmDklSJyYOSVInvSeOJKcm+VSSvUle\nPUd5klzQlN+c5IShstck2ZPk75O8J8kRfccrSZpfr4kjyRrgzcBpwGbgRUk2z6p2GrCpefwMcFGz\n7bHN8n+uqu8B1gBn9hmvJGm8vo84TgL2VtUdVfU1YCewZVadLcBlNXA1sD7JBuA+4OvAkUnWAg8H\n/qnneCVJY/Q9VtXRwJ1Dy3cBJ7eoc3RVXZfk94D/B3wF+HBVfbjPYCUtn1EDDDoh0+SZ2EEOkzwe\n+AXgOOALwPuSvLSq3jVH3e3AeUsboaTFNG749FETMmnxJKmhxfOravtc9fr+l7gb2Di0fEyzrk2d\nZwB/W1X/ApDkg8B/AQ5KHM2H2z6zPOvDS5oC8w2f3nXodB2aqkqben0njmuBTUmOY5AMzgRePKvO\nFcC5SXYyOI31xaral+RTwP9I8nAGp6pOAa7rOV5Jy2wphk/XwvSaOKrqQJJzgSsZ9Iq6tKpuSXJO\nU34xsAs4HdgL3A+c3ZTdlOQyBsniG8CNwFv6jFeSNF7vJw2raheD5DC87uKh5wW8csS2rwde32uA\nkqROvHNcktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS\n1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJ\niUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1Mna5Q5AkqbJnn33sXXHVQ9Zt+7wtWw7\nZRPHb1y/TFEtLROHJLWw7vDB1+X+Bw5wzWfunbPOJWeduJQhLRsThyS1sO2UTQB86asHHrJ+z777\n2P/AgYPWr2QmDklq4fiN6+c8oti646qRRyArlRfHJUmdmDgkSZ30njiSnJrkU0n2Jnn1HOVJckFT\nfnOSE4bK1id5f5Lbktya5Gl9xytJml+viSPJGuDNwGnAZuBFSTbPqnYasKl5/Axw0VDZG4G/qKon\nAU8Gbu0zXknSePMmjiR7kvxakscf4uufBOytqjuq6mvATmDLrDpbgMtq4GpgfZINSR4FPAO4BKCq\nvlZVXzjEOCRJi2TcEceLgEcAH07yiSS/kOTbO7z+0cCdQ8t3Neva1DkO+BfgbUluTPLWJI/o8N6S\npB7Mmziq6u+q6jVV9XjgVcDjgKuTfDTJT/cc21rgBOCiqnoK8GXgoGskkqSl1foaR1VdXVW/ALwM\nWA+8qcVmdwMbh5aPada1qXMXcFdVXdOsfz+DRHKQJNuT1MyjRVySpFmGv0eTbB9Vr1XiSHJikj9I\n8llgO7ADaHPK6lpgU5LjknwLcCZwxaw6VwAva3pXfT/wxaraV1WfA+5M8sSm3inAnrnepKq2V1Vm\n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\n1LFE4vGQAAAAAElFTkSuQmCC\n", + "image/png": "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\nrkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1073,9 +1072,9 @@ }, { "data": { - "image/png": "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\nbZVKpTqB/D+F7yW5gV7LfQAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1094,21 +1093,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.5.1" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 25c57f3c5..56b3cb45c 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -4,9 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This notebook shows the how tallies can be combined (added, subtracted, multiplied, etc.) using the Python API in order to create derived tallies. Since no covariance information is obtained, it is assumed that tallies are completely independent of one another when propagating uncertainties. The target problem is a simple pin cell.\n", - "\n", - "**Note:** that this Notebook was created using the latest Pandas v0.16.1. Everything in the Notebook will wun with older versions of Pandas, but the multi-indexing option in >v0.15.0 makes the tables look prettier." + "This notebook shows the how tallies can be combined (added, subtracted, multiplied, etc.) using the Python API in order to create derived tallies. Since no covariance information is obtained, it is assumed that tallies are completely independent of one another when propagating uncertainties. The target problem is a simple pin cell." ] }, { @@ -16,18 +14,6 @@ "collapsed": false }, "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false - }, - "outputs": [], "source": [ "import glob\n", "from IPython.display import Image\n", @@ -52,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "collapsed": true }, @@ -76,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -111,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -134,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -163,7 +149,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -200,7 +186,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -227,7 +213,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -240,7 +226,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -259,7 +245,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": { "collapsed": true }, @@ -295,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -323,7 +309,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -334,7 +320,7 @@ "0" ] }, - "execution_count": 13, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -346,19 +332,19 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AEHgslKE7FoLIAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMzBUMDY6Mzc6\nNDAtMDU6MDAMbOxZAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTMwVDA2OjM3OjQwLTA1OjAw\nfTFU5QAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AFBRQzLY81/IkAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDUtMDVUMTQ6NTE6\nNDUtMDY6MDCqOITjAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA1LTA1VDE0OjUxOjQ1LTA2OjAw\n22U8XwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, - "execution_count": 14, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -380,7 +366,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -392,7 +378,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -429,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": { "collapsed": true }, @@ -445,7 +431,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -460,7 +446,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -476,7 +462,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": { "collapsed": true }, @@ -491,7 +477,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": { "collapsed": true }, @@ -511,7 +497,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -530,7 +516,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "metadata": { "collapsed": false, "scrolled": true @@ -556,8 +542,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ae083cf5d491e6a778d5b762dad19c8d5fe45238\n", - " Date/Time: 2016-04-30 06:37:41\n", + " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", + " Date/Time: 2016-05-05 14:51:45\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -613,20 +599,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 7.0900E-01 seconds\n", - " Reading cross sections = 4.0400E-01 seconds\n", - " Total time in simulation = 1.7108E+01 seconds\n", - " Time in transport only = 1.7093E+01 seconds\n", - " Time in inactive batches = 3.3970E+00 seconds\n", - " Time in active batches = 1.3711E+01 seconds\n", + " Total time for initialization = 7.2500E-01 seconds\n", + " Reading cross sections = 4.4400E-01 seconds\n", + " Total time in simulation = 1.5547E+01 seconds\n", + " Time in transport only = 1.5527E+01 seconds\n", + " Time in inactive batches = 2.2880E+00 seconds\n", + " Time in active batches = 1.3259E+01 seconds\n", " Time synchronizing fission bank = 1.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", + " Sampling source sites = 0.0000E+00 seconds\n", " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 1.7835E+01 seconds\n", - " Calculation Rate (inactive) = 3679.72 neutrons/second\n", - " Calculation Rate (active) = 2735.03 neutrons/second\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 2.0000E-03 seconds\n", + " Total time elapsed = 1.6291E+01 seconds\n", + " Calculation Rate (inactive) = 5463.29 neutrons/second\n", + " Calculation Rate (active) = 2828.27 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -644,7 +630,7 @@ "0" ] }, - "execution_count": 23, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -673,7 +659,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": { "collapsed": false, "scrolled": true @@ -684,27 +670,6 @@ "sp = openmc.StatePoint('statepoint.20.h5')" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You may have also noticed we instructed OpenMC to create a summary file with lots of geometry information in it. This can help to produce more sensible output from the Python API, so we will use the summary file to link against." - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": { - "collapsed": false, - "scrolled": true - }, - "outputs": [], - "source": [ - "# Load the summary file and link with statepoint\n", - "su = openmc.Summary('summary.h5')\n", - "sp.link_with_summary(su)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -716,7 +681,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -752,7 +717,7 @@ "0 total (nu-fission / absorption) 1.04e+00 6.14e-03" ] }, - "execution_count": 26, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -776,7 +741,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -816,7 +781,7 @@ "0 0.00e+00 6.25e-07 total absorption 6.93e-01 4.11e-03" ] }, - "execution_count": 27, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -838,7 +803,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -878,7 +843,7 @@ "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 7.60e-03" ] }, - "execution_count": 28, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -901,7 +866,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -946,7 +911,7 @@ "0 4.72e-03 " ] }, - "execution_count": 29, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -967,7 +932,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -1012,7 +977,7 @@ "0 (nu-fission / absorption) 1.66e+00 1.13e-02 " ] }, - "execution_count": 30, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -1032,7 +997,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -1077,7 +1042,7 @@ "0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 1.32e-02 " ] }, - "execution_count": 31, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -1098,7 +1063,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 30, "metadata": { "collapsed": false, "scrolled": true @@ -1114,7 +1079,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -1243,7 +1208,7 @@ "7 (scatter / flux) 3.37e-03 1.44e-05 " ] }, - "execution_count": 33, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -1262,7 +1227,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -1294,7 +1259,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -1318,7 +1283,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 34, "metadata": { "collapsed": false }, @@ -1349,7 +1314,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -1430,7 +1395,7 @@ "3 7.32e-04 " ] }, - "execution_count": 37, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -1443,7 +1408,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 36, "metadata": { "collapsed": false }, @@ -1584,7 +1549,7 @@ "8 3.20e-03 " ] }, - "execution_count": 38, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } diff --git a/src/output.F90 b/src/output.F90 index 4b4b966dc..786d9a10e 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -54,7 +54,7 @@ contains write(UNIT=OUTPUT_UNIT, FMT=*) & ' Copyright: 2011-2016 Massachusetts Institute of Technology' write(UNIT=OUTPUT_UNIT, FMT=*) & - ' License: http://openmc.readthedocs.org/en/latest/license.html' + ' License: http://openmc.readthedocs.io/en/latest/license.html' write(UNIT=OUTPUT_UNIT, FMT='(6X,"Version:",8X,I1,".",I1,".",I1)') & VERSION_MAJOR, VERSION_MINOR, VERSION_RELEASE #ifdef GIT_SHA1 From 7a671655865aefa8b99847cf843dc9b5fbd70514 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 7 May 2016 14:36:32 -0400 Subject: [PATCH 143/259] Finished generating ipython notebook and incorporating in to docs --- .../pythonapi/examples/mgxs-part-iv.ipynb | 1871 +++++++++++++++++ .../pythonapi/examples/mgxs-part-iv.rst | 13 + docs/source/pythonapi/index.rst | 1 + openmc/summary.py | 1 + 4 files changed, 1886 insertions(+) create mode 100644 docs/source/pythonapi/examples/mgxs-part-iv.ipynb create mode 100644 docs/source/pythonapi/examples/mgxs-part-iv.rst diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb new file mode 100644 index 000000000..bc85af5c2 --- /dev/null +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -0,0 +1,1871 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This Notebook illustrates the use of the openmc.mgxs.Library class specifically for application in OpenMC's multi-group mode. This example notebook follows the same process as was done in MGXS Part III, but instead uses OpenMC as the multi-group solver. This Notebook illustrates the following features:\n", + "\n", + " Calculation of multi-group cross sections for a fuel assembly\n", + " Automated creation, manipulation and storage of MGXS with openmc.mgxs.Library\n", + " Validation of multi-group cross sections with OpenMC\n", + " Steady-state pin-by-pin fission rates comparison between Continuous-Energy mode and Multi-Group OpenMC.\n", + "\n", + "Note: This Notebook illustrates the use of Pandas DataFrames to containerize multi-group cross section data. We recommend using Pandas >v0.15.0 or later since OpenMC's Python API leverages the multi-indexing feature included in the most recent releases of Pandas.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generate Input Files" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import math\n", + "import pickle\n", + "\n", + "from IPython.display import Image\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import os\n", + "\n", + "import openmc\n", + "import openmc.mgxs\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "First we need to define materials that will be used in the problem. Before defining a material, we must create nuclides that are used in the material." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate some Nuclides\n", + "h1 = openmc.Nuclide('H-1')\n", + "b10 = openmc.Nuclide('B-10')\n", + "o16 = openmc.Nuclide('O-16')\n", + "u235 = openmc.Nuclide('U-235')\n", + "u238 = openmc.Nuclide('U-238')\n", + "zr90 = openmc.Nuclide('Zr-90')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the nuclides we defined, we will now create three materials for the fuel, water, and cladding of the fuel pins." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# 1.6 enriched fuel\n", + "fuel = openmc.Material(name='1.6% Fuel')\n", + "fuel.set_density('g/cm3', 10.31341)\n", + "fuel.add_nuclide(u235, 3.7503e-4)\n", + "fuel.add_nuclide(u238, 2.2625e-2)\n", + "fuel.add_nuclide(o16, 4.6007e-2)\n", + "\n", + "# borated water\n", + "water = openmc.Material(name='Borated Water')\n", + "water.set_density('g/cm3', 0.740582)\n", + "water.add_nuclide(h1, 4.9457e-2)\n", + "water.add_nuclide(o16, 2.4732e-2)\n", + "water.add_nuclide(b10, 8.0042e-6)\n", + "\n", + "# zircaloy\n", + "zircaloy = openmc.Material(name='Zircaloy')\n", + "zircaloy.set_density('g/cm3', 6.55)\n", + "zircaloy.add_nuclide(zr90, 7.2758e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our three materials, we can now create a Materials object that can be exported to an actual XML file." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a Materials object\n", + "materials_file = openmc.Materials((fuel, water, zircaloy))\n", + "materials_file.default_xs = '71c'\n", + "\n", + "# Export to \"materials.xml\"\n", + "materials_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's move on to the geometry. This problem will be a square array of fuel pins and control rod guide tubes for which we can use OpenMC's lattice/universe feature. The basic universe will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces for fuel and clad, as well as the outer bounding surfaces of the problem." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create cylinders for the fuel and clad\n", + "fuel_outer_radius = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.39218)\n", + "clad_outer_radius = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.45720)\n", + "\n", + "# Create boundary planes to surround the geometry\n", + "min_x = openmc.XPlane(x0=-10.71, boundary_type='reflective')\n", + "max_x = openmc.XPlane(x0=+10.71, boundary_type='reflective')\n", + "min_y = openmc.YPlane(y0=-10.71, boundary_type='reflective')\n", + "max_y = openmc.YPlane(y0=+10.71, boundary_type='reflective')\n", + "min_z = openmc.ZPlane(z0=-10., boundary_type='reflective')\n", + "max_z = openmc.ZPlane(z0=+10., boundary_type='reflective')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the surfaces defined, we can now construct a fuel pin cell from cells that are defined by intersections of half-spaces created by the surfaces." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create a Universe to encapsulate a fuel pin\n", + "fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin')\n", + "\n", + "# Create fuel Cell\n", + "fuel_cell = openmc.Cell(name='1.6% Fuel')\n", + "fuel_cell.fill = fuel\n", + "fuel_cell.region = -fuel_outer_radius\n", + "fuel_pin_universe.add_cell(fuel_cell)\n", + "\n", + "# Create a clad Cell\n", + "clad_cell = openmc.Cell(name='1.6% Clad')\n", + "clad_cell.fill = zircaloy\n", + "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", + "fuel_pin_universe.add_cell(clad_cell)\n", + "\n", + "# Create a moderator Cell\n", + "moderator_cell = openmc.Cell(name='1.6% Moderator')\n", + "moderator_cell.fill = water\n", + "moderator_cell.region = +clad_outer_radius\n", + "fuel_pin_universe.add_cell(moderator_cell)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Likewise, we can construct a control rod guide tube with the same surfaces." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create a Universe to encapsulate a control rod guide tube\n", + "guide_tube_universe = openmc.Universe(name='Guide Tube')\n", + "\n", + "# Create guide tube Cell\n", + "guide_tube_cell = openmc.Cell(name='Guide Tube Water')\n", + "guide_tube_cell.fill = water\n", + "guide_tube_cell.region = -fuel_outer_radius\n", + "guide_tube_universe.add_cell(guide_tube_cell)\n", + "\n", + "# Create a clad Cell\n", + "clad_cell = openmc.Cell(name='Guide Clad')\n", + "clad_cell.fill = zircaloy\n", + "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", + "guide_tube_universe.add_cell(clad_cell)\n", + "\n", + "# Create a moderator Cell\n", + "moderator_cell = openmc.Cell(name='Guide Tube Moderator')\n", + "moderator_cell.fill = water\n", + "moderator_cell.region = +clad_outer_radius\n", + "guide_tube_universe.add_cell(moderator_cell)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the pin cell universe, we can construct a 17x17 rectangular lattice with a 1.26 cm pitch." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create fuel assembly Lattice\n", + "assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n", + "assembly.dimension = (17, 17)\n", + "assembly.pitch = (1.26, 1.26)\n", + "assembly.lower_left = [-1.26 * 17. / 2.0] * 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we create a NumPy array of fuel pin and guide tube universes for the lattice." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create array indices for guide tube locations in lattice\n", + "template_x = np.array([5, 8, 11, 3, 13, 2, 5, 8, 11, 14, 2, 5, 8,\n", + " 11, 14, 2, 5, 8, 11, 14, 3, 13, 5, 8, 11])\n", + "template_y = np.array([2, 2, 2, 3, 3, 5, 5, 5, 5, 5, 8, 8, 8, 8,\n", + " 8, 11, 11, 11, 11, 11, 13, 13, 14, 14, 14])\n", + "\n", + "# Initialize an empty 17x17 array of the lattice universes\n", + "universes = np.empty((17, 17), dtype=openmc.Universe)\n", + "\n", + "# Fill the array with the fuel pin and guide tube universes\n", + "universes[:,:] = fuel_pin_universe\n", + "universes[template_x, template_y] = guide_tube_universe\n", + "\n", + "# Store the array of universes in the lattice\n", + "assembly.universes = universes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "OpenMC requires that there is a \"root\" universe. Let us create a root cell that is filled by the pin cell universe and then assign it to the root universe." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create root Cell\n", + "root_cell = openmc.Cell(name='root cell')\n", + "root_cell.fill = assembly\n", + "\n", + "# Add boundary planes\n", + "root_cell.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n", + "\n", + "# Create root Universe\n", + "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", + "root_universe.add_cell(root_cell)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now must create a geometry that is assigned a root universe and export it to XML." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create Geometry and set root Universe\n", + "geometry = openmc.Geometry()\n", + "geometry.root_universe = root_universe\n", + "# Export to \"geometry.xml\"\n", + "geometry.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 10 inactive batches and 40 active batches each with 2500 particles." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# OpenMC simulation parameters\n", + "batches = 200\n", + "inactive = 10\n", + "particles = 5000\n", + "\n", + "# Instantiate a Settings object\n", + "settings_file = openmc.Settings()\n", + "settings_file.batches = batches\n", + "settings_file.inactive = inactive\n", + "settings_file.particles = particles\n", + "settings_file.output = {'tallies': False}\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", + "bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", + "\n", + "# Export to \"settings.xml\"\n", + "settings_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us also create a Plots file that we can use to verify that our fuel assembly geometry was created successfully." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a Plot\n", + "plot = openmc.Plot(plot_id=1)\n", + "plot.filename = 'materials-xy'\n", + "plot.origin = [0, 0, 0]\n", + "plot.pixels = [250, 250]\n", + "plot.width = [-10.71*2, -10.71*2]\n", + "plot.color = 'mat'\n", + "\n", + "# Instantiate a Plots object, add Plot, and export to \"plots.xml\"\n", + "plot_file = openmc.Plots([plot])\n", + "plot_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the plots.xml file, we can now generate and view the plot. OpenMC outputs plots in .ppm format, which can be converted into a compressed format like .png with the convert utility." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Run openmc in plotting mode\n", + "openmc.plot_geometry(output=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Convert OpenMC's funky ppm to png\n", + "!convert materials-xy.ppm materials-xy.png\n", + "\n", + "# Display the materials plot inline\n", + "Image(filename='materials-xy.png')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we can see from the plot, we have a nice array of fuel and guide tube pin cells with fuel, cladding, and water!\n", + "\n", + "# Create an MGXS Library\n", + "\n", + "Now we are ready to generate multi-group cross sections! First, let's define a 2-group structure using the built-in EnergyGroups class." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a 2-group EnergyGroups object\n", + "groups = openmc.mgxs.EnergyGroups()\n", + "groups.group_edges = np.array([0., 0.625e-6, 20.])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we will instantiate an openmc.mgxs.Library for the energy groups with our the fuel assembly geometry." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Initialize an 2-group MGXS Library for OpenMOC\n", + "mgxs_lib = openmc.mgxs.Library(geometry)\n", + "mgxs_lib.energy_groups = groups" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we must specify to the Library which types of cross sections to compute. OpenMC's multi-group mode can accept isotropic flux-weighted cross sections or angle-dependent cross sections, as well as supporting anisotropic scattering represented by either Legendre polynomials, histogram, or tabular angular distributions. At this time the MGXS Library class only supports the generation of isotropic flux-weighted cross sections and P0 scattering, so that is what will be used for this example. Therefore, we will create the following multi-group cross sections needed to run an OpenMC simulation to verify the accuracy of our cross sections: \"transport\", \"absorption\", \"nu-fission\", '\"fission\", \"nu-scatter matrix\", \"scatter matrix\", and \"chi\".\n", + "\"scatter matrix\" is needed in addition to \"nu-scatter matrix\" because OpenMC's multi-group mode can treat scattering multiplication (i.e., (n,xn) reactions)) explicitly instead of adjusting the absorption cross section to maintain neutron balance, and using this explicit treatment would require tallying of both types of scattering matrices." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Specify multi-group cross section types to compute\n", + "mgxs_lib.mgxs_types = ['transport', 'absorption', 'nu-fission', 'fission',\n", + " 'nu-scatter matrix', 'scatter matrix', 'chi']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports \"material,\" \"cell,\" and \"universe\" domain types. We will use a \"cell\" domain type here to compute cross sections in each of the cells in the fuel assembly geometry.\n", + "\n", + "**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell or universe) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property. In our case, we wish to compute multi-group cross sections in each and every cell since they will be needed in our downstream multi-group OpenMC calculation on the identical combinatorial geometry mesh." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Specify a \"cell\" domain type for the cross section tally filters\n", + "mgxs_lib.domain_type = \"cell\"\n", + "\n", + "# Specify the cell domains over which to compute multi-group cross sections\n", + "mgxs_lib.domains = geometry.get_all_material_cells()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will instruct the library to not compute cross sections on a nuclide-by-nuclide basis, and instead to focus on generating material-specific macroscopic cross sections.\n", + "\n", + "**NOTE:** The default value of the `by_nuclide` parameter is `False`, so the following step is not necessary but is included for illustrative purposes." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Do not compute cross sections on a nuclide-by-nuclide basis\n", + "mgxs_lib.by_nuclide = False" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lastly, we use the `Library` to construct the tallies needed to compute all of the requested multi-group cross sections in each domain and nuclide." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Construct all tallies needed for the multi-group cross section library\n", + "mgxs_lib.build_library()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The tallies can now be export to a \"tallies.xml\" input file for OpenMC.\n", + "\n", + "**NOTE:** At this point the `Library` has constructed nearly 100 distinct Tally objects. The overhead to tally in OpenMC scales as O(N) for N tallies, which can become a bottleneck for large tally datasets. To compensate for this, the Python API's `Tally`, `Filter` and `Tallies` classes allow for the smart merging of tallies when possible. The `Library` class supports this runtime optimization with the use of the optional `merge` parameter (`False` by default) for the `Library.add_to_tallies_file(...)` method, as shown below." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create a \"tallies.xml\" file for the MGXS Library\n", + "tallies_file = openmc.Tallies()\n", + "mgxs_lib.add_to_tallies_file(tallies_file, merge=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition, we instantiate a fission rate mesh tally to compare with the multi-group result." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a tally Mesh\n", + "mesh = openmc.Mesh(mesh_id=1)\n", + "mesh.type = 'regular'\n", + "mesh.dimension = [17, 17]\n", + "mesh.lower_left = [-10.71, -10.71]\n", + "mesh.upper_right = [+10.71, +10.71]\n", + "\n", + "# Instantiate tally Filter\n", + "mesh_filter = openmc.Filter()\n", + "mesh_filter.mesh = mesh\n", + "\n", + "# Instantiate the Tally\n", + "tally = openmc.Tally(name='mesh tally')\n", + "tally.filters = [mesh_filter]\n", + "tally.scores = ['fission']\n", + "\n", + "# Add tally to collection\n", + "tallies_file.append(tally)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Export all tallies to a \"tallies.xml\" file\n", + "tallies_file.export_to_xml()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " .d88888b. 888b d888 .d8888b.\n", + " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", + " 888 888 88888b.d88888 888 888\n", + " 888 888 88888b. .d88b. 88888b. 888Y88888P888 888 \n", + " 888 888 888 \"88b d8P Y8b 888 \"88b 888 Y888P 888 888 \n", + " 888 888 888 888 88888888 888 888 888 Y8P 888 888 888\n", + " Y88b. .d88P 888 d88P Y8b. 888 888 888 \" 888 Y88b d88P\n", + " \"Y88888P\" 88888P\" \"Y8888 888 888 888 888 \"Y8888P\"\n", + "__________________888______________________________________________________\n", + " 888\n", + " 888\n", + "\n", + " Copyright: 2011-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.org/en/latest/license.html\n", + " Version: 0.7.1\n", + " Git SHA1: 179e9ab147e505563d118ed58096b3d225160ffa\n", + " Date/Time: 2016-05-07 14:22:04\n", + " OpenMP Threads: 4\n", + "\n", + " ===========================================================================\n", + " ========================> INITIALIZATION <=========================\n", + " ===========================================================================\n", + "\n", + " Reading settings XML file...\n", + " Reading cross sections XML file...\n", + " Reading geometry XML file...\n", + " Reading materials XML file...\n", + " Reading tallies XML file...\n", + " Building neighboring cells lists for each surface...\n", + " Loading ACE cross section table: 92235.71c\n", + " Loading ACE cross section table: 92238.71c\n", + " Loading ACE cross section table: 8016.71c\n", + " Loading ACE cross section table: 1001.71c\n", + " Loading ACE cross section table: 5010.71c\n", + " Loading ACE cross section table: 40090.71c\n", + " Maximum neutron transport energy: 20.0000 MeV for 92235.71c\n", + " Initializing source particles...\n", + "\n", + " ===========================================================================\n", + " ====================> K EIGENVALUE SIMULATION <====================\n", + " ===========================================================================\n", + "\n", + " Bat./Gen. k Average k \n", + " ========= ======== ==================== \n", + " 1/1 1.05162 \n", + " 2/1 1.05369 \n", + " 3/1 1.02989 \n", + " 4/1 1.00126 \n", + " 5/1 1.03151 \n", + " 6/1 1.00183 \n", + " 7/1 0.99379 \n", + " 8/1 1.04193 \n", + " 9/1 1.01578 \n", + " 10/1 1.03349 \n", + " 11/1 1.03354 \n", + " 12/1 1.03646 1.03500 +/- 0.00146\n", + " 13/1 1.00873 1.02624 +/- 0.00880\n", + " 14/1 1.04263 1.03034 +/- 0.00745\n", + " 15/1 1.01556 1.02738 +/- 0.00648\n", + " 16/1 1.04897 1.03098 +/- 0.00640\n", + " 17/1 1.01796 1.02912 +/- 0.00572\n", + " 18/1 1.02276 1.02833 +/- 0.00502\n", + " 19/1 1.04003 1.02963 +/- 0.00461\n", + " 20/1 1.00695 1.02736 +/- 0.00471\n", + " 21/1 1.00012 1.02488 +/- 0.00493\n", + " 22/1 1.03580 1.02579 +/- 0.00459\n", + " 23/1 1.03427 1.02644 +/- 0.00427\n", + " 24/1 1.06024 1.02886 +/- 0.00463\n", + " 25/1 1.00742 1.02743 +/- 0.00454\n", + " 26/1 1.02556 1.02731 +/- 0.00425\n", + " 27/1 1.02207 1.02700 +/- 0.00401\n", + " 28/1 1.05847 1.02875 +/- 0.00416\n", + " 29/1 1.01125 1.02783 +/- 0.00404\n", + " 30/1 1.03213 1.02804 +/- 0.00384\n", + " 31/1 1.02241 1.02778 +/- 0.00366\n", + " 32/1 1.02675 1.02773 +/- 0.00349\n", + " 33/1 1.05484 1.02891 +/- 0.00354\n", + " 34/1 1.01893 1.02849 +/- 0.00341\n", + " 35/1 0.99044 1.02697 +/- 0.00361\n", + " 36/1 1.02602 1.02693 +/- 0.00347\n", + " 37/1 1.04107 1.02746 +/- 0.00338\n", + " 38/1 1.03237 1.02763 +/- 0.00326\n", + " 39/1 1.01489 1.02719 +/- 0.00318\n", + " 40/1 1.01065 1.02664 +/- 0.00312\n", + " 41/1 1.03722 1.02698 +/- 0.00304\n", + " 42/1 1.04339 1.02750 +/- 0.00298\n", + " 43/1 1.00921 1.02694 +/- 0.00294\n", + " 44/1 1.04576 1.02750 +/- 0.00291\n", + " 45/1 1.02580 1.02745 +/- 0.00283\n", + " 46/1 1.03464 1.02765 +/- 0.00275\n", + " 47/1 1.01552 1.02732 +/- 0.00270\n", + " 48/1 1.03357 1.02748 +/- 0.00263\n", + " 49/1 1.03439 1.02766 +/- 0.00257\n", + " 50/1 1.04281 1.02804 +/- 0.00253\n", + " 51/1 1.02902 1.02806 +/- 0.00247\n", + " 52/1 1.02245 1.02793 +/- 0.00241\n", + " 53/1 1.05271 1.02851 +/- 0.00243\n", + " 54/1 0.98630 1.02755 +/- 0.00256\n", + " 55/1 1.02690 1.02753 +/- 0.00250\n", + " 56/1 1.04107 1.02783 +/- 0.00246\n", + " 57/1 1.03029 1.02788 +/- 0.00241\n", + " 58/1 1.01874 1.02769 +/- 0.00237\n", + " 59/1 1.04211 1.02798 +/- 0.00234\n", + " 60/1 0.99584 1.02734 +/- 0.00238\n", + " 61/1 1.05166 1.02782 +/- 0.00238\n", + " 62/1 1.05572 1.02835 +/- 0.00239\n", + " 63/1 1.02694 1.02833 +/- 0.00235\n", + " 64/1 1.03314 1.02842 +/- 0.00231\n", + " 65/1 1.05850 1.02896 +/- 0.00233\n", + " 66/1 1.01100 1.02864 +/- 0.00231\n", + " 67/1 1.03784 1.02880 +/- 0.00227\n", + " 68/1 1.04084 1.02901 +/- 0.00224\n", + " 69/1 1.03932 1.02919 +/- 0.00221\n", + " 70/1 1.02564 1.02913 +/- 0.00218\n", + " 71/1 1.00027 1.02865 +/- 0.00219\n", + " 72/1 1.02385 1.02858 +/- 0.00216\n", + " 73/1 1.04885 1.02890 +/- 0.00215\n", + " 74/1 1.00298 1.02849 +/- 0.00215\n", + " 75/1 1.02009 1.02836 +/- 0.00212\n", + " 76/1 1.04505 1.02862 +/- 0.00211\n", + " 77/1 1.02889 1.02862 +/- 0.00207\n", + " 78/1 1.01306 1.02839 +/- 0.00206\n", + " 79/1 1.01817 1.02824 +/- 0.00203\n", + " 80/1 1.00533 1.02792 +/- 0.00203\n", + " 81/1 1.04439 1.02815 +/- 0.00201\n", + " 82/1 1.02212 1.02806 +/- 0.00199\n", + " 83/1 0.99419 1.02760 +/- 0.00201\n", + " 84/1 1.07132 1.02819 +/- 0.00207\n", + " 85/1 1.02710 1.02818 +/- 0.00204\n", + " 86/1 1.01702 1.02803 +/- 0.00202\n", + " 87/1 1.02134 1.02794 +/- 0.00200\n", + " 88/1 1.05231 1.02826 +/- 0.00200\n", + " 89/1 1.05290 1.02857 +/- 0.00200\n", + " 90/1 1.05751 1.02893 +/- 0.00200\n", + " 91/1 1.03970 1.02906 +/- 0.00198\n", + " 92/1 0.99678 1.02867 +/- 0.00200\n", + " 93/1 1.04471 1.02886 +/- 0.00198\n", + " 94/1 1.00820 1.02862 +/- 0.00198\n", + " 95/1 1.05823 1.02896 +/- 0.00198\n", + " 96/1 1.05118 1.02922 +/- 0.00198\n", + " 97/1 1.03617 1.02930 +/- 0.00196\n", + " 98/1 1.00585 1.02904 +/- 0.00195\n", + " 99/1 1.06663 1.02946 +/- 0.00198\n", + " 100/1 1.01802 1.02933 +/- 0.00196\n", + " 101/1 1.02695 1.02931 +/- 0.00194\n", + " 102/1 1.01642 1.02917 +/- 0.00192\n", + " 103/1 1.02567 1.02913 +/- 0.00190\n", + " 104/1 1.03519 1.02919 +/- 0.00188\n", + " 105/1 1.02439 1.02914 +/- 0.00186\n", + " 106/1 1.03779 1.02923 +/- 0.00184\n", + " 107/1 1.01304 1.02906 +/- 0.00183\n", + " 108/1 1.02541 1.02903 +/- 0.00181\n", + " 109/1 1.04297 1.02917 +/- 0.00180\n", + " 110/1 1.00442 1.02892 +/- 0.00180\n", + " 111/1 1.03102 1.02894 +/- 0.00178\n", + " 112/1 1.00380 1.02870 +/- 0.00178\n", + " 113/1 1.04010 1.02881 +/- 0.00177\n", + " 114/1 1.01297 1.02865 +/- 0.00176\n", + " 115/1 1.00130 1.02839 +/- 0.00176\n", + " 116/1 1.02001 1.02831 +/- 0.00174\n", + " 117/1 1.03847 1.02841 +/- 0.00173\n", + " 118/1 1.00371 1.02818 +/- 0.00173\n", + " 119/1 1.02650 1.02817 +/- 0.00171\n", + " 120/1 1.00767 1.02798 +/- 0.00171\n", + " 121/1 1.00408 1.02776 +/- 0.00171\n", + " 122/1 1.00235 1.02754 +/- 0.00171\n", + " 123/1 1.01212 1.02740 +/- 0.00170\n", + " 124/1 1.03278 1.02745 +/- 0.00168\n", + " 125/1 1.00818 1.02728 +/- 0.00168\n", + " 126/1 1.02132 1.02723 +/- 0.00166\n", + " 127/1 1.03677 1.02731 +/- 0.00165\n", + " 128/1 1.04148 1.02743 +/- 0.00164\n", + " 129/1 1.01245 1.02730 +/- 0.00163\n", + " 130/1 1.04172 1.02742 +/- 0.00162\n", + " 131/1 1.04519 1.02757 +/- 0.00162\n", + " 132/1 1.02495 1.02755 +/- 0.00160\n", + " 133/1 0.99747 1.02731 +/- 0.00161\n", + " 134/1 1.02411 1.02728 +/- 0.00160\n", + " 135/1 1.05750 1.02752 +/- 0.00160\n", + " 136/1 1.02341 1.02749 +/- 0.00159\n", + " 137/1 1.02212 1.02745 +/- 0.00158\n", + " 138/1 1.03464 1.02750 +/- 0.00157\n", + " 139/1 1.05920 1.02775 +/- 0.00157\n", + " 140/1 1.01911 1.02768 +/- 0.00156\n", + " 141/1 1.03076 1.02771 +/- 0.00155\n", + " 142/1 1.03648 1.02777 +/- 0.00154\n", + " 143/1 1.00382 1.02759 +/- 0.00154\n", + " 144/1 1.00366 1.02741 +/- 0.00154\n", + " 145/1 1.01638 1.02733 +/- 0.00153\n", + " 146/1 1.02418 1.02731 +/- 0.00152\n", + " 147/1 0.99267 1.02706 +/- 0.00153\n", + " 148/1 1.02575 1.02705 +/- 0.00152\n", + " 149/1 0.98560 1.02675 +/- 0.00153\n", + " 150/1 1.02725 1.02675 +/- 0.00152\n", + " 151/1 1.03723 1.02683 +/- 0.00151\n", + " 152/1 1.00857 1.02670 +/- 0.00151\n", + " 153/1 1.00642 1.02656 +/- 0.00151\n", + " 154/1 1.03461 1.02661 +/- 0.00150\n", + " 155/1 1.00088 1.02643 +/- 0.00150\n", + " 156/1 1.02589 1.02643 +/- 0.00149\n", + " 157/1 1.02494 1.02642 +/- 0.00148\n", + " 158/1 1.03303 1.02646 +/- 0.00147\n", + " 159/1 1.02276 1.02644 +/- 0.00146\n", + " 160/1 1.03293 1.02648 +/- 0.00145\n", + " 161/1 1.04758 1.02662 +/- 0.00144\n", + " 162/1 1.01033 1.02652 +/- 0.00144\n", + " 163/1 1.03883 1.02660 +/- 0.00143\n", + " 164/1 1.00519 1.02646 +/- 0.00143\n", + " 165/1 1.05958 1.02667 +/- 0.00144\n", + " 166/1 1.03849 1.02675 +/- 0.00143\n", + " 167/1 1.02306 1.02672 +/- 0.00142\n", + " 168/1 1.02693 1.02672 +/- 0.00141\n", + " 169/1 1.02584 1.02672 +/- 0.00140\n", + " 170/1 0.99388 1.02651 +/- 0.00141\n", + " 171/1 0.99376 1.02631 +/- 0.00141\n", + " 172/1 1.00453 1.02618 +/- 0.00141\n", + " 173/1 1.04516 1.02629 +/- 0.00141\n", + " 174/1 1.02402 1.02628 +/- 0.00140\n", + " 175/1 0.99012 1.02606 +/- 0.00141\n", + " 176/1 1.02084 1.02603 +/- 0.00140\n", + " 177/1 1.03959 1.02611 +/- 0.00139\n", + " 178/1 1.01719 1.02606 +/- 0.00139\n", + " 179/1 1.01671 1.02600 +/- 0.00138\n", + " 180/1 1.03691 1.02606 +/- 0.00137\n", + " 181/1 1.04276 1.02616 +/- 0.00137\n", + " 182/1 1.02002 1.02613 +/- 0.00136\n", + " 183/1 1.03081 1.02615 +/- 0.00135\n", + " 184/1 1.02432 1.02614 +/- 0.00135\n", + " 185/1 1.02225 1.02612 +/- 0.00134\n", + " 186/1 1.04722 1.02624 +/- 0.00134\n", + " 187/1 0.98045 1.02598 +/- 0.00135\n", + " 188/1 1.02555 1.02598 +/- 0.00135\n", + " 189/1 1.03645 1.02604 +/- 0.00134\n", + " 190/1 1.00407 1.02592 +/- 0.00134\n", + " 191/1 1.03033 1.02594 +/- 0.00133\n", + " 192/1 1.04175 1.02603 +/- 0.00133\n", + " 193/1 1.00555 1.02592 +/- 0.00132\n", + " 194/1 1.00183 1.02578 +/- 0.00132\n", + " 195/1 1.04328 1.02588 +/- 0.00132\n", + " 196/1 1.03041 1.02590 +/- 0.00131\n", + " 197/1 1.04791 1.02602 +/- 0.00131\n", + " 198/1 1.01366 1.02596 +/- 0.00130\n", + " 199/1 1.04471 1.02605 +/- 0.00130\n", + " 200/1 1.02416 1.02604 +/- 0.00129\n", + " Creating state point statepoint.200.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 1.4810E+00 seconds\n", + " Reading cross sections = 1.1600E+00 seconds\n", + " Total time in simulation = 9.8823E+01 seconds\n", + " Time in transport only = 9.8622E+01 seconds\n", + " Time in inactive batches = 2.1290E+00 seconds\n", + " Time in active batches = 9.6694E+01 seconds\n", + " Time synchronizing fission bank = 1.4000E-02 seconds\n", + " Sampling source sites = 1.1000E-02 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 1.0031E+02 seconds\n", + " Calculation Rate (inactive) = 23485.2 neutrons/second\n", + " Calculation Rate (active) = 9824.81 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.02505 +/- 0.00122\n", + " k-effective (Track-length) = 1.02604 +/- 0.00129\n", + " k-effective (Absorption) = 1.02501 +/- 0.00111\n", + " Combined k-effective = 1.02544 +/- 0.00091\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Run OpenMC\n", + "openmc.run()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To make the files available and not be over-written when running the multi-group calculation, we will now rename the statepoint and summary files." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Move the StatePoint File\n", + "ce_spfile = './ce.h5'\n", + "os.rename('statepoint.' + str(batches) + '.h5', ce_spfile)\n", + "# Move the Summary file\n", + "ce_sumfile = './ce_summary.h5'\n", + "os.rename('summary.h5', ce_sumfile)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tally Data Processing\n", + "\n", + "Our simulation ran successfully and created statepoint and summary output files. We begin our analysis by instantiating a `StatePoint` object." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Load the statepoint file\n", + "sp = openmc.StatePoint(ce_spfile)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we will save the value of keff from the continuous-energy calculation for later comparison" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "ce_keff = sp.k_combined" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition to the statepoint file, our simulation also created a summary file which encapsulates information about the materials and geometry. This is necessary for the `openmc.mgxs` module to properly process the tally data. We first create a `Summary` object and link it with the statepoint." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "su = openmc.Summary(ce_sumfile)\n", + "sp.link_with_summary(su)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we will extract our fission distribution results from the statepoint for later comparison." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get the OpenMC fission rate mesh tally data\n", + "mesh_tally = sp.get_tally(name='mesh tally')\n", + "openmc_fission_rates = mesh_tally.get_values(scores=['fission'])\n", + "\n", + "# Reshape array to 2D for plotting\n", + "openmc_fission_rates.shape = (17,17)\n", + "\n", + "# Normalize to the average pin power\n", + "openmc_fission_rates /= np.mean(openmc_fission_rates)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The statepoint is now ready to be analyzed by the `Library`. We simply have to load the tallies from the statepoint into the `Library` and our `MGXS` objects will compute the cross sections for us under-the-hood." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Initialize MGXS Library with OpenMC statepoint data\n", + "mgxs_lib.load_from_statepoint(sp)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The next step will be to prepare the input for OpenMC to use our newly created multi-group data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Multi-Group OpenMC Calculation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will now use the `Library` to produce a multi-group cross section data set for use by the OpenMC multi-group solver. " + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/nelsonag/git/openmc/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n", + " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1997: RuntimeWarning: invalid value encountered in true_divide\n", + " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1998: RuntimeWarning: invalid value encountered in true_divide\n", + " new_tally._mean = data['self']['mean'] / data['other']['mean']\n" + ] + }, + { + "data": { + "text/plain": [ + "{10000: 'fuel.2g',\n", + " 10001: 'fuel_clad.2g',\n", + " 10002: 'fuel_mod.2g',\n", + " 10003: 'gt_inmod.2g',\n", + " 10004: 'gt_clad.2g',\n", + " 10005: 'gt_outmod.2g'}" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mgxs_lib.write_mg_library(filename='mgxs', xs_type='macro',\n", + " domain_names=['fuel', 'fuel_clad', 'fuel_mod',\n", + " 'gt_inmod', 'gt_clad', 'gt_outmod'],\n", + " xs_ids='2g')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we will need to recreate similar xml files from above, beginning with materials.xml" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate our Macroscopic Data\n", + "fuel_macro = openmc.Macroscopic('fuel')\n", + "fuel_clad_macro = openmc.Macroscopic('fuel_clad')\n", + "fuel_mod_macro = openmc.Macroscopic('fuel_mod')\n", + "gt_inmod_macro = openmc.Macroscopic('gt_inmod')\n", + "gt_clad_macro = openmc.Macroscopic('gt_clad')\n", + "gt_outmod_macro = openmc.Macroscopic('gt_outmod')\n", + "\n", + "# Now define the materials\n", + "\n", + "# 1.6 enriched fuel UO2\n", + "fuel = openmc.Material(name='1.6% Fuel UO2')\n", + "fuel.set_density('macro', 1.0)\n", + "fuel.add_macroscopic(fuel_macro)\n", + "\n", + "# 1.6 enriched fuel cladding\n", + "fuel_clad = openmc.Material(name='1.6% Fuel Clad')\n", + "fuel_clad.set_density('macro', 1.0)\n", + "fuel_clad.add_macroscopic(fuel_clad_macro)\n", + "\n", + "# 1.6 enriched fuel moderator\n", + "fuel_mod = openmc.Material(name='1.6% Fuel Water')\n", + "fuel_mod.set_density('macro', 1.0)\n", + "fuel_mod.add_macroscopic(fuel_mod_macro)\n", + "\n", + "# Guide Tube Inner Moderator\n", + "gt_inmod = openmc.Material(name='GT Inner Water')\n", + "gt_inmod.set_density('macro', 1.0)\n", + "gt_inmod.add_macroscopic(gt_inmod_macro)\n", + "\n", + "# Guide Tube Cladding\n", + "gt_clad = openmc.Material(name='GT Clad')\n", + "gt_clad.set_density('macro', 1.0)\n", + "gt_clad.add_macroscopic(gt_clad_macro)\n", + "\n", + "# Guide Tube Outer Moderator\n", + "gt_outmod = openmc.Material(name='GT Outer Water')\n", + "gt_outmod.set_density('macro', 1.0)\n", + "gt_outmod.add_macroscopic(gt_outmod_macro)\n", + "\n", + "# Finally, instantiate our Materials object\n", + "materials_file = openmc.Materials((fuel, fuel_clad, fuel_mod,\n", + " gt_inmod, gt_clad, gt_outmod))\n", + "materials_file.default_xs = '2g'\n", + "\n", + "# Export to \"materials.xml\"\n", + "materials_file.export_to_xml()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For our geometry files we will simply repeat what as done for continuous-energy mode, except change the cell fill (i.e., the material) to use our newly defined materials." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create a Universe to encapsulate a fuel pin\n", + "fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin')\n", + "\n", + "# Create fuel Cell\n", + "fuel_cell = openmc.Cell(name='1.6% Fuel')\n", + "fuel_cell.fill = fuel\n", + "fuel_cell.region = -fuel_outer_radius\n", + "fuel_pin_universe.add_cell(fuel_cell)\n", + "\n", + "# Create a clad Cell\n", + "clad_cell = openmc.Cell(name='1.6% Clad')\n", + "clad_cell.fill = fuel_clad\n", + "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", + "fuel_pin_universe.add_cell(clad_cell)\n", + "\n", + "# Create a moderator Cell\n", + "moderator_cell = openmc.Cell(name='1.6% Moderator')\n", + "moderator_cell.fill = fuel_mod\n", + "moderator_cell.region = +clad_outer_radius\n", + "fuel_pin_universe.add_cell(moderator_cell)\n", + "\n", + "# Create a Universe to encapsulate a control rod guide tube\n", + "guide_tube_universe = openmc.Universe(name='Guide Tube')\n", + "\n", + "# Create guide tube Cell\n", + "guide_tube_cell = openmc.Cell(name='Guide Tube Water')\n", + "guide_tube_cell.fill = gt_inmod\n", + "guide_tube_cell.region = -fuel_outer_radius\n", + "guide_tube_universe.add_cell(guide_tube_cell)\n", + "\n", + "# Create a clad Cell\n", + "clad_cell = openmc.Cell(name='Guide Clad')\n", + "clad_cell.fill = gt_clad\n", + "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", + "guide_tube_universe.add_cell(clad_cell)\n", + "\n", + "# Create a moderator Cell\n", + "moderator_cell = openmc.Cell(name='Guide Tube Moderator')\n", + "moderator_cell.fill = gt_outmod\n", + "moderator_cell.region = +clad_outer_radius\n", + "guide_tube_universe.add_cell(moderator_cell)\n", + "\n", + "# Create fuel assembly Lattice\n", + "assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n", + "assembly.dimension = (17, 17)\n", + "assembly.pitch = (1.26, 1.26)\n", + "assembly.lower_left = [-1.26 * 17. / 2.0] * 2\n", + "\n", + "# Create array indices for guide tube locations in lattice\n", + "template_x = np.array([5, 8, 11, 3, 13, 2, 5, 8, 11, 14, 2, 5, 8,\n", + " 11, 14, 2, 5, 8, 11, 14, 3, 13, 5, 8, 11])\n", + "template_y = np.array([2, 2, 2, 3, 3, 5, 5, 5, 5, 5, 8, 8, 8, 8,\n", + " 8, 11, 11, 11, 11, 11, 13, 13, 14, 14, 14])\n", + "\n", + "# Initialize an empty 17x17 array of the lattice universes\n", + "universes = np.empty((17, 17), dtype=openmc.Universe)\n", + "\n", + "# Fill the array with the fuel pin and guide tube universes\n", + "universes[:,:] = fuel_pin_universe\n", + "universes[template_x, template_y] = guide_tube_universe\n", + "\n", + "# Store the array of universes in the lattice\n", + "assembly.universes = universes\n", + "\n", + "# Create root Cell\n", + "root_cell = openmc.Cell(name='root cell')\n", + "root_cell.fill = assembly\n", + "\n", + "# Add boundary planes\n", + "root_cell.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n", + "\n", + "# Create root Universe\n", + "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", + "root_universe.add_cell(root_cell)\n", + "\n", + "# Create Geometry and set root Universe\n", + "geometry = openmc.Geometry()\n", + "geometry.root_universe = root_universe\n", + "# Export to \"geometry.xml\"\n", + "geometry.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we can make the changes we need to the settings file.\n", + "These changes are limited to telling OpenMC we will be running a multi-group calculation and pointing to the location of our multi-group cross section file." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Set the location of the cross sections file\n", + "settings_file.cross_sections = './mgxs.xml'\n", + "settings_file.energy_mode = 'multi-group'\n", + "\n", + "# Export to \"settings.xml\"\n", + "settings_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, lets tell OpenMC we want to tally fissions over a mesh for comparison. " + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a tally Mesh\n", + "mesh = openmc.Mesh(mesh_id=1)\n", + "mesh.type = 'regular'\n", + "mesh.dimension = [17, 17]\n", + "mesh.lower_left = [-10.71, -10.71]\n", + "mesh.upper_right = [+10.71, +10.71]\n", + "\n", + "# Instantiate tally Filter\n", + "mesh_filter = openmc.Filter()\n", + "mesh_filter.mesh = mesh\n", + "\n", + "# Instantiate the Tally\n", + "tally = openmc.Tally(name='mesh tally')\n", + "tally.filters = [mesh_filter]\n", + "tally.scores = ['fission']\n", + "\n", + "# Add tally to collection\n", + "tallies_file.append(tally)\n", + "\n", + "# Export all tallies to a \"tallies.xml\" file\n", + "tallies_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we run the calculation we will close the StatePoint file (as we are about to over-write it), and then we can run the multi-group calculation." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " .d88888b. 888b d888 .d8888b.\n", + " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", + " 888 888 88888b.d88888 888 888\n", + " 888 888 88888b. .d88b. 88888b. 888Y88888P888 888 \n", + " 888 888 888 \"88b d8P Y8b 888 \"88b 888 Y888P 888 888 \n", + " 888 888 888 888 88888888 888 888 888 Y8P 888 888 888\n", + " Y88b. .d88P 888 d88P Y8b. 888 888 888 \" 888 Y88b d88P\n", + " \"Y88888P\" 88888P\" \"Y8888 888 888 888 888 \"Y8888P\"\n", + "__________________888______________________________________________________\n", + " 888\n", + " 888\n", + "\n", + " Copyright: 2011-2016 Massachusetts Institute of Technology\n", + " License: http://openmc.readthedocs.org/en/latest/license.html\n", + " Version: 0.7.1\n", + " Git SHA1: 179e9ab147e505563d118ed58096b3d225160ffa\n", + " Date/Time: 2016-05-07 14:23:45\n", + " OpenMP Threads: 4\n", + "\n", + " ===========================================================================\n", + " ========================> INITIALIZATION <=========================\n", + " ===========================================================================\n", + "\n", + " Reading settings XML file...\n", + " Reading cross sections XML file...\n", + " Reading geometry XML file...\n", + " Reading materials XML file...\n", + " Reading tallies XML file...\n", + " Building neighboring cells lists for each surface...\n", + " Loading Cross Section Data...\n", + " Loading fuel.2g Data...\n", + " Loading fuel_clad.2g Data...\n", + " Loading fuel_mod.2g Data...\n", + " Loading gt_inmod.2g Data...\n", + " Loading gt_clad.2g Data...\n", + " Loading gt_outmod.2g Data...\n", + " Initializing source particles...\n", + "\n", + " ===========================================================================\n", + " ====================> K EIGENVALUE SIMULATION <====================\n", + " ===========================================================================\n", + "\n", + " Bat./Gen. k Average k \n", + " ========= ======== ==================== \n", + " 1/1 1.01863 \n", + " 2/1 1.02630 \n", + " 3/1 1.03077 \n", + " 4/1 0.99715 \n", + " 5/1 1.02328 \n", + " 6/1 1.02283 \n", + " 7/1 1.00540 \n", + " 8/1 1.02232 \n", + " 9/1 0.99782 \n", + " 10/1 1.00838 \n", + " 11/1 1.01803 \n", + " 12/1 1.02530 1.02167 +/- 0.00363\n", + " 13/1 1.00514 1.01616 +/- 0.00589\n", + " 14/1 0.98994 1.00960 +/- 0.00777\n", + " 15/1 1.01028 1.00974 +/- 0.00602\n", + " 16/1 1.04607 1.01580 +/- 0.00780\n", + " 17/1 1.03300 1.01825 +/- 0.00703\n", + " 18/1 1.03149 1.01991 +/- 0.00631\n", + " 19/1 0.98692 1.01624 +/- 0.00667\n", + " 20/1 1.05205 1.01982 +/- 0.00695\n", + " 21/1 1.01572 1.01945 +/- 0.00630\n", + " 22/1 1.02517 1.01993 +/- 0.00577\n", + " 23/1 1.00274 1.01861 +/- 0.00547\n", + " 24/1 1.04739 1.02066 +/- 0.00547\n", + " 25/1 1.01883 1.02054 +/- 0.00509\n", + " 26/1 1.02021 1.02052 +/- 0.00476\n", + " 27/1 1.04696 1.02207 +/- 0.00474\n", + " 28/1 1.02751 1.02238 +/- 0.00448\n", + " 29/1 1.09537 1.02622 +/- 0.00572\n", + " 30/1 1.03685 1.02675 +/- 0.00545\n", + " 31/1 0.99812 1.02539 +/- 0.00536\n", + " 32/1 1.02526 1.02538 +/- 0.00511\n", + " 33/1 1.05466 1.02665 +/- 0.00505\n", + " 34/1 1.04816 1.02755 +/- 0.00491\n", + " 35/1 1.00148 1.02651 +/- 0.00483\n", + " 36/1 1.02315 1.02638 +/- 0.00464\n", + " 37/1 1.05771 1.02754 +/- 0.00461\n", + " 38/1 1.01675 1.02715 +/- 0.00446\n", + " 39/1 1.03707 1.02749 +/- 0.00432\n", + " 40/1 1.01903 1.02721 +/- 0.00418\n", + " 41/1 1.00332 1.02644 +/- 0.00412\n", + " 42/1 1.02533 1.02641 +/- 0.00399\n", + " 43/1 0.98531 1.02516 +/- 0.00406\n", + " 44/1 1.00406 1.02454 +/- 0.00399\n", + " 45/1 1.01057 1.02414 +/- 0.00389\n", + " 46/1 1.02755 1.02424 +/- 0.00378\n", + " 47/1 1.02783 1.02433 +/- 0.00368\n", + " 48/1 1.00003 1.02369 +/- 0.00364\n", + " 49/1 1.00442 1.02320 +/- 0.00358\n", + " 50/1 1.03215 1.02342 +/- 0.00350\n", + " 51/1 1.01672 1.02326 +/- 0.00341\n", + " 52/1 1.03702 1.02359 +/- 0.00335\n", + " 53/1 1.02063 1.02352 +/- 0.00327\n", + " 54/1 1.04596 1.02403 +/- 0.00323\n", + " 55/1 1.01926 1.02392 +/- 0.00316\n", + " 56/1 1.03058 1.02407 +/- 0.00310\n", + " 57/1 1.06126 1.02486 +/- 0.00313\n", + " 58/1 1.06411 1.02568 +/- 0.00317\n", + " 59/1 1.03278 1.02582 +/- 0.00311\n", + " 60/1 1.04472 1.02620 +/- 0.00307\n", + " 61/1 1.00186 1.02572 +/- 0.00305\n", + " 62/1 1.01133 1.02545 +/- 0.00300\n", + " 63/1 1.03713 1.02567 +/- 0.00295\n", + " 64/1 1.01363 1.02544 +/- 0.00291\n", + " 65/1 0.98126 1.02464 +/- 0.00296\n", + " 66/1 1.01500 1.02447 +/- 0.00292\n", + " 67/1 1.02437 1.02447 +/- 0.00286\n", + " 68/1 1.05057 1.02492 +/- 0.00285\n", + " 69/1 1.04903 1.02533 +/- 0.00283\n", + " 70/1 1.02199 1.02527 +/- 0.00278\n", + " 71/1 1.00536 1.02494 +/- 0.00276\n", + " 72/1 1.01658 1.02481 +/- 0.00272\n", + " 73/1 1.00866 1.02455 +/- 0.00268\n", + " 74/1 1.01800 1.02445 +/- 0.00264\n", + " 75/1 0.99176 1.02395 +/- 0.00265\n", + " 76/1 1.03336 1.02409 +/- 0.00262\n", + " 77/1 1.02699 1.02413 +/- 0.00258\n", + " 78/1 1.01596 1.02401 +/- 0.00254\n", + " 79/1 1.02292 1.02400 +/- 0.00250\n", + " 80/1 1.04804 1.02434 +/- 0.00249\n", + " 81/1 0.99494 1.02393 +/- 0.00249\n", + " 82/1 1.02646 1.02396 +/- 0.00246\n", + " 83/1 1.01223 1.02380 +/- 0.00243\n", + " 84/1 1.02572 1.02383 +/- 0.00239\n", + " 85/1 1.02709 1.02387 +/- 0.00236\n", + " 86/1 1.00315 1.02360 +/- 0.00235\n", + " 87/1 1.01809 1.02353 +/- 0.00232\n", + " 88/1 1.01566 1.02342 +/- 0.00229\n", + " 89/1 1.01093 1.02327 +/- 0.00227\n", + " 90/1 1.02812 1.02333 +/- 0.00224\n", + " 91/1 1.02288 1.02332 +/- 0.00221\n", + " 92/1 1.04070 1.02353 +/- 0.00219\n", + " 93/1 1.03697 1.02370 +/- 0.00217\n", + " 94/1 1.03486 1.02383 +/- 0.00215\n", + " 95/1 1.06359 1.02430 +/- 0.00218\n", + " 96/1 1.04811 1.02457 +/- 0.00217\n", + " 97/1 1.01303 1.02444 +/- 0.00215\n", + " 98/1 1.01243 1.02430 +/- 0.00213\n", + " 99/1 1.03238 1.02439 +/- 0.00211\n", + " 100/1 1.02054 1.02435 +/- 0.00208\n", + " 101/1 1.00402 1.02413 +/- 0.00207\n", + " 102/1 1.03800 1.02428 +/- 0.00206\n", + " 103/1 1.02541 1.02429 +/- 0.00203\n", + " 104/1 1.06867 1.02476 +/- 0.00207\n", + " 105/1 1.03192 1.02484 +/- 0.00205\n", + " 106/1 1.00100 1.02459 +/- 0.00204\n", + " 107/1 1.01098 1.02445 +/- 0.00202\n", + " 108/1 1.02930 1.02450 +/- 0.00200\n", + " 109/1 1.02173 1.02447 +/- 0.00198\n", + " 110/1 1.01411 1.02437 +/- 0.00197\n", + " 111/1 1.03920 1.02452 +/- 0.00195\n", + " 112/1 1.01984 1.02447 +/- 0.00193\n", + " 113/1 1.03912 1.02461 +/- 0.00192\n", + " 114/1 1.04124 1.02477 +/- 0.00191\n", + " 115/1 1.04802 1.02499 +/- 0.00190\n", + " 116/1 1.04129 1.02515 +/- 0.00189\n", + " 117/1 1.03072 1.02520 +/- 0.00187\n", + " 118/1 1.05167 1.02544 +/- 0.00187\n", + " 119/1 0.99954 1.02521 +/- 0.00187\n", + " 120/1 1.00093 1.02499 +/- 0.00187\n", + " 121/1 1.04929 1.02520 +/- 0.00186\n", + " 122/1 1.04556 1.02539 +/- 0.00185\n", + " 123/1 1.03298 1.02545 +/- 0.00184\n", + " 124/1 1.01603 1.02537 +/- 0.00182\n", + " 125/1 1.03522 1.02546 +/- 0.00181\n", + " 126/1 1.05644 1.02572 +/- 0.00181\n", + " 127/1 1.03754 1.02582 +/- 0.00180\n", + " 128/1 1.01524 1.02573 +/- 0.00179\n", + " 129/1 1.01263 1.02562 +/- 0.00178\n", + " 130/1 0.99835 1.02540 +/- 0.00178\n", + " 131/1 1.01268 1.02529 +/- 0.00177\n", + " 132/1 1.03975 1.02541 +/- 0.00175\n", + " 133/1 1.00702 1.02526 +/- 0.00175\n", + " 134/1 1.02335 1.02525 +/- 0.00173\n", + " 135/1 1.04378 1.02539 +/- 0.00173\n", + " 136/1 1.04610 1.02556 +/- 0.00172\n", + " 137/1 1.02284 1.02554 +/- 0.00171\n", + " 138/1 1.05720 1.02578 +/- 0.00171\n", + " 139/1 1.00965 1.02566 +/- 0.00170\n", + " 140/1 1.03719 1.02575 +/- 0.00169\n", + " 141/1 1.02413 1.02574 +/- 0.00168\n", + " 142/1 1.03125 1.02578 +/- 0.00167\n", + " 143/1 1.03641 1.02586 +/- 0.00166\n", + " 144/1 1.02137 1.02582 +/- 0.00164\n", + " 145/1 1.01522 1.02575 +/- 0.00163\n", + " 146/1 1.05163 1.02594 +/- 0.00163\n", + " 147/1 1.03612 1.02601 +/- 0.00162\n", + " 148/1 1.03346 1.02606 +/- 0.00161\n", + " 149/1 1.02306 1.02604 +/- 0.00160\n", + " 150/1 1.01764 1.02598 +/- 0.00159\n", + " 151/1 1.01787 1.02592 +/- 0.00158\n", + " 152/1 1.03263 1.02597 +/- 0.00157\n", + " 153/1 1.01877 1.02592 +/- 0.00156\n", + " 154/1 1.02870 1.02594 +/- 0.00155\n", + " 155/1 1.03071 1.02597 +/- 0.00154\n", + " 156/1 1.04229 1.02609 +/- 0.00153\n", + " 157/1 1.03973 1.02618 +/- 0.00152\n", + " 158/1 1.02180 1.02615 +/- 0.00151\n", + " 159/1 1.01067 1.02604 +/- 0.00151\n", + " 160/1 1.02888 1.02606 +/- 0.00150\n", + " 161/1 1.01711 1.02600 +/- 0.00149\n", + " 162/1 1.01087 1.02590 +/- 0.00148\n", + " 163/1 1.01886 1.02586 +/- 0.00147\n", + " 164/1 1.02210 1.02583 +/- 0.00146\n", + " 165/1 1.04020 1.02593 +/- 0.00146\n", + " 166/1 1.03658 1.02600 +/- 0.00145\n", + " 167/1 1.03222 1.02603 +/- 0.00144\n", + " 168/1 1.03247 1.02608 +/- 0.00143\n", + " 169/1 0.99739 1.02590 +/- 0.00143\n", + " 170/1 1.02464 1.02589 +/- 0.00142\n", + " 171/1 1.04623 1.02601 +/- 0.00142\n", + " 172/1 1.04328 1.02612 +/- 0.00142\n", + " 173/1 1.00812 1.02601 +/- 0.00141\n", + " 174/1 1.01224 1.02593 +/- 0.00141\n", + " 175/1 1.00882 1.02582 +/- 0.00140\n", + " 176/1 1.01286 1.02574 +/- 0.00140\n", + " 177/1 1.02048 1.02571 +/- 0.00139\n", + " 178/1 1.04269 1.02581 +/- 0.00138\n", + " 179/1 1.05862 1.02601 +/- 0.00139\n", + " 180/1 1.02924 1.02603 +/- 0.00138\n", + " 181/1 1.01491 1.02596 +/- 0.00137\n", + " 182/1 1.04255 1.02606 +/- 0.00137\n", + " 183/1 0.99191 1.02586 +/- 0.00137\n", + " 184/1 1.00392 1.02573 +/- 0.00137\n", + " 185/1 1.02982 1.02576 +/- 0.00137\n", + " 186/1 1.02682 1.02576 +/- 0.00136\n", + " 187/1 1.01484 1.02570 +/- 0.00135\n", + " 188/1 1.02825 1.02572 +/- 0.00134\n", + " 189/1 0.98954 1.02551 +/- 0.00135\n", + " 190/1 1.00522 1.02540 +/- 0.00135\n", + " 191/1 1.03762 1.02547 +/- 0.00134\n", + " 192/1 1.02091 1.02544 +/- 0.00134\n", + " 193/1 1.04549 1.02555 +/- 0.00133\n", + " 194/1 1.05531 1.02572 +/- 0.00134\n", + " 195/1 1.01479 1.02566 +/- 0.00133\n", + " 196/1 1.01337 1.02559 +/- 0.00132\n", + " 197/1 0.99187 1.02541 +/- 0.00133\n", + " 198/1 1.01280 1.02534 +/- 0.00132\n", + " 199/1 1.00049 1.02521 +/- 0.00132\n", + " 200/1 1.01879 1.02518 +/- 0.00132\n", + " Creating state point statepoint.200.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 6.3000E-02 seconds\n", + " Reading cross sections = 5.0000E-03 seconds\n", + " Total time in simulation = 7.3280E+01 seconds\n", + " Time in transport only = 7.3104E+01 seconds\n", + " Time in inactive batches = 1.1200E+00 seconds\n", + " Time in active batches = 7.2160E+01 seconds\n", + " Time synchronizing fission bank = 2.5000E-02 seconds\n", + " Sampling source sites = 1.8000E-02 seconds\n", + " SEND/RECV source sites = 7.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 7.3353E+01 seconds\n", + " Calculation Rate (inactive) = 44642.9 neutrons/second\n", + " Calculation Rate (active) = 13165.2 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.02597 +/- 0.00117\n", + " k-effective (Track-length) = 1.02518 +/- 0.00132\n", + " k-effective (Absorption) = 1.02581 +/- 0.00070\n", + " Combined k-effective = 1.02562 +/- 0.00068\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Close the StatePoint File\n", + "sp._f.close()\n", + "\n", + "# Run the Multi-Group OpenMC Simulation\n", + "openmc.run()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Results Comparison\n", + "Now we can compare the multi-group and continuous-energy results.\n", + "\n", + "We will begin by loading the multi-group statepoint file we just finished writing and extracting the calculated keff." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the last statepoint file and keff value\n", + "mgsp = openmc.StatePoint('statepoint.' + str(batches) + '.h5')\n", + "mgsu = openmc.Summary('summary.h5')\n", + "mgsp.link_with_summary(mgsu)\n", + "mg_keff = mgsp.k_combined" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lets compare the two eigenvalues, including their bias" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Continuous-Energy keff = 1.025440\n", + "Multi-Group keff = 1.025621\n", + "bias [pcm]: -18.1\n" + ] + } + ], + "source": [ + "bias = 1.0E5 * (ce_keff[0] - mg_keff[0])\n", + "\n", + "print('Continuous-Energy keff = {0:1.6f}'.format(ce_keff[0]))\n", + "print('Multi-Group keff = {0:1.6f}'.format(mg_keff[0]))\n", + "print('bias [pcm]: {0:1.1f}'.format(bias))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see quite good agreement with only an 18pcm difference between the two." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Flux and Pin Power Visualizations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we will visualize the mesh tally results obtained from both the Continuous-Energy and Multi-Group OpenMC calculations.\n", + "\n", + "First, we extract volume-integrated fission rates from the Multi-Group calculation's mesh fission rate tally for each pin cell in the fuel assembly." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can do the same for the Multi-Group results." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get the OpenMC fission rate mesh tally data\n", + "mg_mesh_tally = mgsp.get_tally(name='mesh tally')\n", + "mgopenmc_fission_rates = mg_mesh_tally.get_values(scores=['fission'])\n", + "\n", + "# Reshape array to 2D for plotting\n", + "mgopenmc_fission_rates.shape = (17,17)\n", + "\n", + "# Normalize to the average pin power\n", + "mgopenmc_fission_rates /= np.mean(mgopenmc_fission_rates)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can easily use Matplotlib to visualize the two fission rates side-by-side." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the CE fission rates in the left subplot\n", + "fig = plt.subplot(121)\n", + "plt.imshow(openmc_fission_rates, interpolation='none', cmap='jet')\n", + "plt.title('Continuous-Energy Fission Rates')\n", + "\n", + "# Plot the MG fission rates in the right subplot\n", + "fig2 = plt.subplot(122)\n", + "plt.imshow(mgopenmc_fission_rates, interpolation='none', cmap='jet')\n", + "plt.title('Multi-Group Fission Rates')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "We also see very good agreement between the fission rate distributions." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.rst b/docs/source/pythonapi/examples/mgxs-part-iv.rst new file mode 100644 index 000000000..e24325521 --- /dev/null +++ b/docs/source/pythonapi/examples/mgxs-part-iv.rst @@ -0,0 +1,13 @@ +.. _notebook_mgxs_part_iv: + +==================================================== +MGXS Part IV: Multi-Group Mode Cross-Section Library +==================================================== + +.. only:: html + + .. notebook:: mgxs-part-iv.ipynb + +.. only:: latex + + IPython notebooks must be viewed in the online HTML documentation. diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 1631976e6..3c4899cd2 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -26,6 +26,7 @@ Example Jupyter Notebooks examples/mgxs-part-i examples/mgxs-part-ii examples/mgxs-part-iii + examples/mgxs-part-iv ------------------------------------ :mod:`openmc` -- Basic Functionality diff --git a/openmc/summary.py b/openmc/summary.py index f33397d72..af164a12c 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -41,6 +41,7 @@ class Summary(object): self._read_nuclides() self._read_geometry() self._read_tallies() + self._f.close() @property def openmc_geometry(self): From 187d332dc38e41814f75b3c87024a5524b38e5b3 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 7 May 2016 14:40:57 -0400 Subject: [PATCH 144/259] Changed OPENMC_MG_MGXS_TYPES to use transport instead of total --- openmc/mgxs/library.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 34221f707..d74c8ced3 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -17,7 +17,7 @@ if sys.version_info[0] >= 3: # The following represent the most accurate MGXS generation strategy # for use in the MG mode of OpenMC. -OPENMC_MG_MGXS_TYPES = ['total', 'absorption', 'nu-fission', 'chi', +OPENMC_MG_MGXS_TYPES = ['transport', 'absorption', 'nu-fission', 'chi', 'scatter matrix', 'nu-scatter matrix'] From cf45388d6e0e207e814a378708189e0b19778780 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sat, 7 May 2016 15:38:59 -0400 Subject: [PATCH 145/259] Fix universe assignment for openmc.HexLattice --- openmc/lattice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/lattice.py b/openmc/lattice.py index f1e775920..f78ec8e90 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -649,7 +649,7 @@ class HexLattice(Lattice): # Set the number of rings and make sure this number is consistent for # all axial positions. if n_dims == 3: - self.num_rings = len(self._universes) + self.num_rings = len(self._universes[0]) for rings in self._universes: if len(rings) != self._num_rings: msg = 'HexLattice ID={0:d} has an inconsistent number of ' \ From 08995f74e2ad9f4a8954c92b110e4d07e85e440d Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 May 2016 11:40:29 -0400 Subject: [PATCH 146/259] Fixed issues with indentation for distribcell paths per comments by @paulromano --- openmc/filter.py | 16 ++++++++-------- openmc/mgxs/mgxs.py | 8 +++++--- openmc/tallies.py | 10 ---------- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index ff21f4e93..01f2ad201 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -516,7 +516,7 @@ class Filter(object): return filter_bin - def get_pandas_dataframe(self, data_size, distribcell_paths=False): + def get_pandas_dataframe(self, data_size, distribcell_paths=True): """Builds a Pandas DataFrame for the Filter's bins. This method constructs a Pandas DataFrame object for the filter with @@ -531,13 +531,13 @@ class Filter(object): ---------- data_size : Integral The total number of bins in the tally corresponding to this filter - distribcell_paths : bool - Construct columns for distribcell tally filters. The geometric - information in the Summary object is embedded into a Multi-index - column with a geometric "path" to each distribcell instance. - NOTE: This option assumes that all distribcell paths are of the same - length and do not have the same universes and cells but different - lattice cell indices. + distribcell_paths : bool, optional + Construct columns for distribcell tally filters (default is True). + The geometric information in the Summary object is embedded into a + Multi-index column with a geometric "path" to each distribcell + instance. NOTE: This option assumes that all distribcell paths are + of the same length and do not have the same universes and cells but + different lattice cell indices. Returns ------- diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d7ba0117d..504ee51db 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1366,9 +1366,11 @@ class MGXS(object): xs_type: {'macro', 'micro'} Return macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - distribcell_paths : list of str - The paths traversed through the CSG tree to reach each distribcell - instance (for 'distribcell' filters only) + distribcell_paths : bool, optional + Construct columns for distribcell tally filters (default is True). + The geometric information in the Summary object is embedded into + a Multi-index column with a geometric "path" to each distribcell + instance. Returns ------- diff --git a/openmc/tallies.py b/openmc/tallies.py index 2cac33404..bea5bc3ff 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1586,16 +1586,6 @@ class Tally(object): msg = 'The Tally ID="{0}" has no data to return'.format(self.id) raise KeyError(msg) - ''' - # If using Summary, ensure StatePoint.link_with_summary(...) was called - if distribcell_pathssummary and not self.with_summary: - msg = 'The Tally ID="{0}" has not been linked with the Summary. ' \ - 'Call the StatePoint.link_with_summary(...) method ' \ - 'before using Tally.get_pandas_dataframe(...) with ' \ - 'Summary info'.format(self.id) - raise KeyError(msg) - ''' - # Initialize a pandas dataframe for the tally data import pandas as pd df = pd.DataFrame() From 417b9a86a684f471ea938c083fddb21b7ce0a24a Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 May 2016 11:43:48 -0400 Subject: [PATCH 147/259] Made distribcell paths default to True for MGXS Pandas DataFrames --- openmc/mgxs/mgxs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 504ee51db..a5c56034e 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1346,7 +1346,7 @@ class MGXS(object): modified.write('\n\\end{document}') def get_pandas_dataframe(self, groups='all', nuclides='all', - xs_type='macro', distribcell_paths=False): + xs_type='macro', distribcell_paths=True): """Build a Pandas DataFrame for the MGXS data. This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but From b01c0281cec94c1ee1e397617f8a42a36eb2dde7 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 May 2016 11:50:09 -0400 Subject: [PATCH 148/259] Fixed issue with dropping scores from MGXS Pandas DF with multi-indexed distribcell paths --- openmc/mgxs/mgxs.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index a5c56034e..99a3d8bfe 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1415,10 +1415,7 @@ class MGXS(object): distribcell_paths=distribcell_paths) # Remove the score column since it is homogeneous and redundant - if distribcell_paths and 'distribcell' in self.domain_type: - df = df.drop('score', level=0, axis=1) - else: - df = df.drop('score', axis=1) + df = df.drop('score', axis=1) # Override energy groups bounds with indices all_groups = np.arange(self.num_groups, 0, -1, dtype=np.int) From 2ca61564e2c7fb5b514661f1ce00e0630725606a Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 May 2016 13:01:05 -0400 Subject: [PATCH 149/259] Made distribcell paths default to True for Tally Pandas DF --- .../examples/pandas-dataframes.ipynb | 283 +++--------------- openmc/tallies.py | 11 +- 2 files changed, 47 insertions(+), 247 deletions(-) diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 87eb50f7b..50d66292c 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -370,7 +370,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA1LTAxVDEzOjQ5\nOjA2LTA0OjAwzoiN5AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNS0wMVQxMzo0OTowNi0wNDow\nML/VNVgAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA1LTA4VDEyOjU4\nOjE2LTA0OjAwLIPu3wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNS0wOFQxMjo1ODoxNi0wNDow\nMF3eVmMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -554,8 +554,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: cc27630f7db25b148efab11d182c6c7b34e40a5b\n", - " Date/Time: 2016-05-01 13:49:06\n", + " Git SHA1: 9bff2ab4747873a542a27cd7cfdf7341c23a4405\n", + " Date/Time: 2016-05-08 12:58:17\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -619,20 +619,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.9900E-01 seconds\n", - " Reading cross sections = 9.0000E-02 seconds\n", - " Total time in simulation = 4.8580E+00 seconds\n", - " Time in transport only = 4.8080E+00 seconds\n", - " Time in inactive batches = 7.9400E-01 seconds\n", - " Time in active batches = 4.0640E+00 seconds\n", - " Time synchronizing fission bank = 0.0000E+00 seconds\n", - " Sampling source sites = 0.0000E+00 seconds\n", + " Total time for initialization = 3.8600E-01 seconds\n", + " Reading cross sections = 9.1000E-02 seconds\n", + " Total time in simulation = 4.3500E+00 seconds\n", + " Time in transport only = 4.3200E+00 seconds\n", + " Time in inactive batches = 6.6700E-01 seconds\n", + " Time in active batches = 3.6830E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 5.2710E+00 seconds\n", - " Calculation Rate (inactive) = 15743.1 neutrons/second\n", - " Calculation Rate (active) = 9227.36 neutrons/second\n", + " Total time elapsed = 4.7500E+00 seconds\n", + " Calculation Rate (inactive) = 18740.6 neutrons/second\n", + " Calculation Rate (active) = 10181.9 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1111,7 +1111,7 @@ "data": { "image/png": "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\nSWry/wHxFqsYpaO7aQAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1134,7 +1134,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1145,7 +1145,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1514,7 +1514,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Print the distribcell tally dataframe **without** distribcell paths" + "Print the distribcell tally dataframe with distribcell paths" ] }, { @@ -1523,216 +1523,6 @@ "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
distribcellscoremeanstd. dev.
558279absorption8.19e-057.82e-06
559279scatter1.33e-026.19e-04
560280absorption1.00e-047.93e-06
561280scatter1.40e-025.61e-04
562281absorption9.52e-057.08e-06
563281scatter1.51e-026.50e-04
564282absorption9.85e-059.47e-06
565282scatter1.53e-024.63e-04
566283absorption1.08e-041.34e-05
567283scatter1.65e-027.04e-04
568284absorption1.13e-047.91e-06
569284scatter1.67e-025.51e-04
570285absorption1.23e-049.53e-06
571285scatter1.88e-027.25e-04
572286absorption1.44e-041.34e-05
573286scatter1.90e-027.07e-04
574287absorption1.26e-048.66e-06
575287scatter1.97e-027.23e-04
576288absorption1.25e-049.59e-06
577288scatter2.01e-026.75e-04
\n", - "
" - ], - "text/plain": [ - " distribcell score mean std. dev.\n", - "558 279 absorption 8.19e-05 7.82e-06\n", - "559 279 scatter 1.33e-02 6.19e-04\n", - "560 280 absorption 1.00e-04 7.93e-06\n", - "561 280 scatter 1.40e-02 5.61e-04\n", - "562 281 absorption 9.52e-05 7.08e-06\n", - "563 281 scatter 1.51e-02 6.50e-04\n", - "564 282 absorption 9.85e-05 9.47e-06\n", - "565 282 scatter 1.53e-02 4.63e-04\n", - "566 283 absorption 1.08e-04 1.34e-05\n", - "567 283 scatter 1.65e-02 7.04e-04\n", - "568 284 absorption 1.13e-04 7.91e-06\n", - "569 284 scatter 1.67e-02 5.51e-04\n", - "570 285 absorption 1.23e-04 9.53e-06\n", - "571 285 scatter 1.88e-02 7.25e-04\n", - "572 286 absorption 1.44e-04 1.34e-05\n", - "573 286 scatter 1.90e-02 7.07e-04\n", - "574 287 absorption 1.26e-04 8.66e-06\n", - "575 287 scatter 1.97e-02 7.23e-04\n", - "576 288 absorption 1.25e-04 9.59e-06\n", - "577 288 scatter 2.01e-02 6.75e-04" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Get a pandas dataframe for the distribcell tally data\n", - "df = tally.get_pandas_dataframe(nuclides=False)\n", - "\n", - "# Print the last twenty rows in the dataframe\n", - "df.tail(20)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Print the distribcell tally dataframe **with** distribcell paths" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": { - "collapsed": false - }, "outputs": [ { "data": { @@ -2133,14 +1923,14 @@ "577 2.01e-02 6.75e-04 " ] }, - "execution_count": 34, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get a pandas dataframe for the distribcell tally data\n", - "df = tally.get_pandas_dataframe(nuclides=False, distribcell_paths=True)\n", + "df = tally.get_pandas_dataframe(nuclides=False)\n", "\n", "# Print the last twenty rows in the dataframe\n", "df.tail(20)" @@ -2148,7 +1938,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "metadata": { "collapsed": false }, @@ -2234,7 +2024,7 @@ "max 9.19e-04 4.95e-05" ] }, - "execution_count": 35, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -2257,7 +2047,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -2295,7 +2085,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 36, "metadata": { "collapsed": false }, @@ -2331,7 +2121,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 37, "metadata": { "collapsed": false }, @@ -2350,10 +2140,10 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 38, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" }, @@ -2361,7 +2151,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2380,7 +2170,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -2388,10 +2178,10 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 39, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" }, @@ -2399,7 +2189,7 @@ "data": { "image/png": "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\n9OnTh2bNmtGmTRsuu+wyioqKSt/PzLjvvvvYdddd2W677fjDH/7A3Llz6dOnD02bNmXo0KEbrZ8J\nSggi0mBcccUVXHHFFaxatYq5c+dy8sknA/Dmm28CsGLFClavXk2fPn0YOXIkI0eO5LXXXuOrr75i\n9erVXHbZZQB89tlnXHLJJTz++OMsXryYlStXlna8s97YsWMZMmQIK1as4LTTTiMej3PXXXexfPly\npkyZwqRJk7jvvvs22ubll1/mo48+4t133+WOO+7gvPPO4/HHH+ebb75hxowZjBo1KqPlo4QgIvXe\n4MGDadasWelwySWXlLteTk4Oc+bMYfny5eTn57P//vtv8T0ff/xxrr76ajp37kx+fj5/+ctfGD16\nNCUlJTz11FMce+yx9OvXj9zcXG6++ebNemnr06cPgwcPJhaL0bhxY/bee2/2339/EokEHTt25MIL\nL+SNN97YaJvrrruOJk2a0K1bN7p3786RRx5J586dadq0KYMGDWLatGnVL6wKKCGISL337LPPsmLF\nitJh01/e640YMYJZs2bRpUsX9tlnH55//vktvueiRYvo0KFD6XSHDh0oKSlhyZIlLFq0iPbt25cu\n22abbWjRosVG25ddDjBr1iyOOeYYWrduTZMmTbjxxhtZvnz5Ruu0atWqdLxx48abTa9evbqCUqg+\nJQQRaTB22203Ro0axdKlS7n++usZMmQIa9asKbcP5rZt2zJ//vzS6W+++YZEIkGrVq1o06YNCxYs\nKF22bt06vv/++4223/Q9L774Yrp06cLs2bNZtWoVf/7zn+tcHxNKCCLSYDz22GMsW7aMWCxGs2bN\nAIjFYuy4447EYjG++uqr0nVPPfVU7rrrLr7++mtWr17NjTfeyNChQ0kkEgwZMoRx48YxefJkioqK\nKCgoqPTL/aeffqJJkybk5+fzxRdfVNjvc1Qa7g23IlIt9fG5kPHjx3P11Vezdu1aOnTowOjRo2nc\nuDEAw4YNo2/fvhQXFzN+/HjOPfdcFi1aRP/+/fn555854ogjuOeee4DgYbd77rmHU045hTVr1nDl\nlVfSsmVL8vLytrjvO++8kwsuuIA77riDnj17MnToUF599dVaOe50qQtNybiqPmimB9PqHnWhWbHV\nq1fTrFkzZs+eTadOnSKLQ11oiohEYNy4caxdu5Y1a9ZwzTXX0KNHDzp27Bh1WNWiKiOpEZluxkCk\n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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2414,6 +2204,15 @@ "pylab.xlabel('Mean')\n", "pylab.legend(['KDE', 'Histogram'])" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/openmc/tallies.py b/openmc/tallies.py index bea5bc3ff..96323763a 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1539,7 +1539,7 @@ class Tally(object): return data def get_pandas_dataframe(self, filters=True, nuclides=True, scores=True, - distribcell_paths=False, float_format='{:.2e}'): + distribcell_paths=True, float_format='{:.2e}'): """Build a Pandas DataFrame for the Tally data. This method constructs a Pandas DataFrame object for the Tally data @@ -1557,10 +1557,11 @@ class Tally(object): Include columns with nuclide bin information (default is True). scores : bool Include columns with score bin information (default is True). - distribcell_paths : bool - Construct columns for distribcell tally filters. The geometric - information in the Summary object is embedded into a Multi-index - column with a geometric "path" to each distribcell instance. + distribcell_paths : bool, optional + Construct columns for distribcell tally filters (default is True). + The geometric information in the Summary object is embedded into a + Multi-index column with a geometric "path" to each distribcell + instance. float_format : str All floats in the DataFrame will be formatted using the given format string before printing. From b390a2a53647f1775d1cf68cd2ef2500b528d72e Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 8 May 2016 13:17:43 -0400 Subject: [PATCH 150/259] Resolved comma comments from @paulromano as well as some additional instances I found. --- src/math.F90 | 27 -- src/mgxs_data.F90 | 6 +- src/mgxs_header.F90 | 530 ++++++++++++++++++++++------------------ src/nuclide_header.F90 | 2 +- src/particle_header.F90 | 2 +- src/tally.F90 | 80 +++--- 6 files changed, 337 insertions(+), 310 deletions(-) diff --git a/src/math.F90 b/src/math.F90 index f49220da7..c7ede8d2a 100644 --- a/src/math.F90 +++ b/src/math.F90 @@ -702,31 +702,4 @@ contains end function watt_spectrum - -!=============================================================================== -! find_angle finds the closest angle on the data grid and returns that index -!=============================================================================== - - pure subroutine find_angle(polar, azimuthal, uvw, i_azi, i_pol) - real(8), intent(in) :: polar(:) ! Polar angles [0,pi] - real(8), intent(in) :: azimuthal(:) ! Azi. angles [-pi,pi] - real(8), intent(in) :: uvw(3) ! Direction of motion - integer, intent(inout) :: i_pol ! Closest polar bin - integer, intent(inout) :: i_azi ! Closest azi bin - - real(8) :: my_pol, my_azi, dangle - - ! Convert uvw to polar and azi - - my_pol = acos(uvw(3)) - my_azi = atan2(uvw(2), uvw(1)) - - ! Search for equi-binned angles - dangle = PI / real(size(polar),8) - i_pol = floor(my_pol / dangle + ONE) - dangle = TWO * PI / real(size(azimuthal),8) - i_azi = floor((my_azi + PI) / dangle + ONE) - - end subroutine find_angle - end module math diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 6cf730cfa..38d6ebc6c 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -125,7 +125,7 @@ contains ! Now read in the data specific to the type we just declared call nuclides_MG(i_nuclide) % obj % init_file(node_xsdata, & - energy_groups,get_kfiss,get_fiss,max_order,i_listing) + energy_groups, get_kfiss, get_fiss, max_order, i_listing) ! Add name and alias to dictionary call already_read % add(name) @@ -184,8 +184,8 @@ contains type is (MgxsAngle) allocate(MgxsAngle :: macro_xs(i_mat) % obj) end select - call macro_xs(i_mat) % obj % combine(mat,nuclides_MG,energy_groups, & - max_order,scatt_type,i_mat) + call macro_xs(i_mat) % obj % combine(mat, nuclides_MG, energy_groups, & + max_order, scatt_type, i_mat) end do end subroutine create_macro_xs diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 7d4ee275d..725aacffa 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -6,7 +6,7 @@ module mgxs_header use list_header, only: ListInt use material_header, only: material use math, only: calc_pn, calc_rn, expand_harmonic, & - evaluate_legendre, find_angle + evaluate_legendre use nuclide_header, only: MaterialMacroXS use random_lcg, only: prn use scattdata_header @@ -150,7 +150,7 @@ module mgxs_header real(8), allocatable :: nu_fission(:) ! fission matrix (Gout x Gin) real(8), allocatable :: k_fission(:) ! kappa-fission real(8), allocatable :: fission(:) ! neutron production - real(8), allocatable :: chi(:,:) ! Fission Spectra + real(8), allocatable :: chi(:, :) ! Fission Spectra contains procedure :: init_file => mgxsiso_init_file ! Initialize Nuclidic MGXS Data @@ -170,13 +170,13 @@ module mgxs_header type, extends(Mgxs) :: MgxsAngle ! Microscopic cross sections - real(8), allocatable :: total(:,:,:) ! total cross section - real(8), allocatable :: absorption(:,:,:) ! absorption cross section - type(ScattDataContainer), allocatable :: scatter(:,:) ! scattering information - real(8), allocatable :: nu_fission(:,:,:) ! fission matrix (Gout x Gin) - real(8), allocatable :: k_fission(:,:,:) ! kappa-fission - real(8), allocatable :: fission(:,:,:) ! neutron production - real(8), allocatable :: chi(:,:,:,:) ! Fission Spectra + real(8), allocatable :: total(:, :, :) ! total cross section + real(8), allocatable :: absorption(:, :, :) ! absorption cross section + type(ScattDataContainer), allocatable :: scatter(:, :) ! scattering information + real(8), allocatable :: nu_fission(:, :, :) ! fission matrix (Gout x Gin) + real(8), allocatable :: k_fission(:, :, :) ! kappa-fission + real(8), allocatable :: fission(:, :, :) ! neutron production + real(8), allocatable :: chi(:, :, :, :) ! Fission Spectra ! In all cases, right-most indices are theta, phi integer :: n_pol ! Number of polar angles integer :: n_azi ! Number of azimuthal angles @@ -272,11 +272,11 @@ module mgxs_header type(Node), pointer :: node_legendre_mu character(MAX_LINE_LEN) :: temp_str logical :: enable_leg_mu - real(8), allocatable :: temp_arr(:), temp_2d(:,:) - real(8), allocatable :: temp_mult(:,:) - real(8), allocatable :: scatt_coeffs(:,:,:) - real(8), allocatable :: input_scatt(:,:,:) - real(8), allocatable :: temp_scatt(:,:,:) + real(8), allocatable :: temp_arr(:), temp_2d(:, :) + real(8), allocatable :: temp_mult(:, :) + real(8), allocatable :: scatt_coeffs(:, :, :) + real(8), allocatable :: input_scatt(:, :, :) + real(8), allocatable :: temp_scatt(:, :, :) real(8) :: dmu, mu, norm integer :: order, order_dim, gin, gout, l, arr_len integer :: legendre_mu_points, imu @@ -288,24 +288,24 @@ module mgxs_header allocate(this % nu_fission(groups)) allocate(this % chi(groups,groups)) if (this % fissionable) then - if (check_for_node(node_xsdata,"chi")) then + if (check_for_node(node_xsdata, "chi")) then ! Chi was provided, that means they are giving chi and nu-fission ! vectors ! Get chi allocate(temp_arr(1 * groups)) - call get_node_array(node_xsdata,"chi",temp_arr) + call get_node_array(node_xsdata, "chi", temp_arr) do gin = 1, groups do gout = 1, groups - this % chi(gout,gin) = temp_arr(gout) + this % chi(gout, gin) = temp_arr(gout) end do ! Normalize chi so its CDF goes to 1 - this % chi(:,gin) = this % chi(:,gin) / sum(this % chi(:,gin)) + this % chi(:, gin) = this % chi(:, gin) / sum(this % chi(:, gin)) end do deallocate(temp_arr) ! Get nu_fission (as a vector) - if (check_for_node(node_xsdata,"nu_fission")) then - call get_node_array(node_xsdata,"nu_fission",this % nu_fission) + if (check_for_node(node_xsdata, "nu_fission")) then + call get_node_array(node_xsdata, "nu_fission", this % nu_fission) else call fatal_error("If fissionable, must provide nu_fission!") end if @@ -313,11 +313,11 @@ module mgxs_header else ! chi isnt provided but is within nu_fission, existing as a matrix ! So, get nu_fission (as a matrix) - if (check_for_node(node_xsdata,"nu_fission")) then + if (check_for_node(node_xsdata, "nu_fission")) then allocate(temp_arr(groups*groups)) - call get_node_array(node_xsdata,"nu_fission",temp_arr) - allocate(temp_2d(groups,groups)) - temp_2d = reshape(temp_arr,(/groups,groups/)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + allocate(temp_2d(groups, groups)) + temp_2d = reshape(temp_arr, (/groups, groups/)) deallocate(temp_arr) else call fatal_error("If fissionable, must provide nu_fission!") @@ -325,14 +325,14 @@ module mgxs_header ! Set the vector nu-fission from the matrix nu-fission do gin = 1, groups - this % nu_fission(gin) = sum(temp_2d(:,gin)) + this % nu_fission(gin) = sum(temp_2d(:, gin)) end do ! Now pull out information needed for chi this % chi = temp_2d ! Normalize chi so its CDF goes to 1 do gin = 1, groups - this % chi(:,gin) = this % chi(:,gin) / sum(this % chi(:,gin)) + this % chi(:, gin) = this % chi(:, gin) / sum(this % chi(:, gin)) end do deallocate(temp_2d) end if @@ -340,8 +340,8 @@ module mgxs_header ! (*Need is defined as will be using it to tally) if (get_fiss) then allocate(this % fission(groups)) - if (check_for_node(node_xsdata,"fission")) then - call get_node_array(node_xsdata,"fission",this % fission) + if (check_for_node(node_xsdata, "fission")) then + call get_node_array(node_xsdata, "fission", this % fission) else call fatal_error("Fission data missing, required due to fission& & tallies in tallies.xml file!") @@ -349,8 +349,8 @@ module mgxs_header end if if (get_kfiss) then allocate(this % k_fission(groups)) - if (check_for_node(node_xsdata,"kappa_fission")) then - call get_node_array(node_xsdata,"kappa_fission",this % k_fission) + if (check_for_node(node_xsdata, "kappa_fission")) then + call get_node_array(node_xsdata, "kappa_fission", this % k_fission) else call fatal_error("kappa_fission data missing, required due to & &kappa-fission tallies in tallies.xml file!") @@ -362,19 +362,19 @@ module mgxs_header end if allocate(this % absorption(groups)) - if (check_for_node(node_xsdata,"absorption")) then - call get_node_array(node_xsdata,"absorption",this % absorption) + if (check_for_node(node_xsdata, "absorption")) then + call get_node_array(node_xsdata, "absorption", this % absorption) else call fatal_error("Must provide absorption!") end if ! Get multiplication data if present allocate(temp_mult(groups, groups)) - if (check_for_node(node_xsdata,"multiplicity")) then - arr_len = get_arraysize_double(node_xsdata,"multiplicity") + if (check_for_node(node_xsdata, "multiplicity")) then + arr_len = get_arraysize_double(node_xsdata, "multiplicity") if (arr_len == groups * groups) then allocate(temp_arr(arr_len)) - call get_node_array(node_xsdata,"multiplicity",temp_arr) + call get_node_array(node_xsdata, "multiplicity", temp_arr) temp_mult = reshape(temp_arr, (/groups, groups/)) deallocate(temp_arr) else @@ -392,24 +392,25 @@ module mgxs_header ! Set the default (leave as Legendre polynomials) enable_leg_mu = .false. - if (check_for_node(node_xsdata,"tabular_legendre")) then - call get_node_ptr(node_xsdata,"tabular_legendre",node_legendre_mu) + if (check_for_node(node_xsdata, "tabular_legendre")) then + call get_node_ptr(node_xsdata, "tabular_legendre", node_legendre_mu) if (check_for_node(node_legendre_mu, "enable")) then - call get_node_value(node_legendre_mu,"enable",temp_str) + call get_node_value(node_legendre_mu, "enable", temp_str) temp_str = trim(to_lower(temp_str)) if (temp_str == 'true' .or. temp_str == '1') then enable_leg_mu = .true. elseif (temp_str == 'false' .or. temp_str == '0') then enable_leg_mu = .false. else - call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) + call fatal_error("Unrecognized tabular_legendre/enable: " & + // temp_str) end if end if ! Ok, so if we need to convert to a tabular form, get the user provided ! number of points if (enable_leg_mu) then - if (check_for_node(node_legendre_mu,"num_points")) then - call get_node_value(node_legendre_mu,"num_points", & + if (check_for_node(node_legendre_mu, "num_points")) then + call get_node_value(node_legendre_mu, "num_points", & legendre_mu_points) if (legendre_mu_points <= 0) & call fatal_error("num_points element must be positive& @@ -422,8 +423,8 @@ module mgxs_header end if ! Get the library's value for the order - if (check_for_node(node_xsdata,"order")) then - call get_node_value(node_xsdata,"order",order) + if (check_for_node(node_xsdata, "order")) then + call get_node_value(node_xsdata, "order", order) else call fatal_error("Order Must Be Provided!") end if @@ -444,10 +445,10 @@ module mgxs_header ! but then need to convert it to a more useful ordering for processing ! (Order x Gout x Gin). allocate(input_scatt(groups, groups, order_dim)) - if (check_for_node(node_xsdata,"scatter")) then + if (check_for_node(node_xsdata, "scatter")) then allocate(temp_arr(groups * groups * order_dim)) - call get_node_array(node_xsdata,"scatter",temp_arr) - input_scatt = reshape(temp_arr,(/groups,groups,order_dim/)) + call get_node_array(node_xsdata, "scatter", temp_arr) + input_scatt = reshape(temp_arr, (/groups, groups, order_dim/)) deallocate(temp_arr) ! Compare the number of orders given with the maximum order of the @@ -456,8 +457,8 @@ module mgxs_header order = min(order_dim - 1, max_order) order_dim = order + 1 end if - allocate(temp_scatt(groups,groups,order_dim)) - temp_scatt(:,:,:) = input_scatt(:,:,1:order_dim) + allocate(temp_scatt(groups, groups, order_dim)) + temp_scatt(:, :, :) = input_scatt(:, :, 1:order_dim) ! Take input format (groups, groups, order) and convert to ! the more useful format needed for scattdata: (order, groups, groups) @@ -470,9 +471,9 @@ module mgxs_header this % scatt_type = ANGLE_TABULAR order_dim = legendre_mu_points order = order_dim - dmu = TWO / real(order - 1,8) + dmu = TWO / real(order - 1, 8) - allocate(scatt_coeffs(order_dim,groups,groups)) + allocate(scatt_coeffs(order_dim, groups, groups)) do gin = 1, groups do gout = 1, groups norm = ZERO @@ -482,35 +483,36 @@ module mgxs_header else if (imu == order_dim) then mu = ONE else - mu = -ONE + real(imu - 1,8) * dmu + mu = -ONE + real(imu - 1, 8) * dmu end if - scatt_coeffs(imu,gout,gin) = & - evaluate_legendre(temp_scatt(gout,gin,:),mu) + scatt_coeffs(imu, gout, gin) = & + evaluate_legendre(temp_scatt(gout, gin, :),mu) ! Ensure positivity of distribution - if (scatt_coeffs(imu,gout,gin) < ZERO) & - scatt_coeffs(imu,gout,gin) = ZERO + if (scatt_coeffs(imu, gout, gin) < ZERO) & + scatt_coeffs(imu, gout, gin) = ZERO ! And accrue the integral if (imu > 1) then - norm = norm + HALF * dmu * (scatt_coeffs(imu-1,gout,gin) + & - scatt_coeffs(imu,gout,gin)) + norm = norm + HALF * dmu * & + (scatt_coeffs(imu - 1, gout, gin) + & + scatt_coeffs(imu, gout, gin)) end if end do ! Now that we have the integral, lets ensure that the distribution ! is normalized such that it preserves the original scattering xs if (norm > ZERO) then - scatt_coeffs(:,gout,gin) = scatt_coeffs(:,gout,gin) * & - temp_scatt(gout,gin,1) / norm + scatt_coeffs(:, gout, gin) = scatt_coeffs(:, gout, gin) * & + temp_scatt(gout, gin, 1) / norm end if end do end do else ! Sticking with current representation, carry forward but change ! the array ordering - allocate(scatt_coeffs(order_dim,groups,groups)) + allocate(scatt_coeffs(order_dim, groups, groups)) do gin = 1, groups do gout = 1, groups do l = 1, order_dim - scatt_coeffs(l,gout,gin) = temp_scatt(gout,gin,l) + scatt_coeffs(l, gout, gin) = temp_scatt(gout, gin, l) end do end do end do @@ -541,8 +543,8 @@ module mgxs_header ! Get, or infer, total xs data. allocate(this % total(groups)) - if (check_for_node(node_xsdata,"total")) then - call get_node_array(node_xsdata,"total",this % total) + if (check_for_node(node_xsdata, "total")) then + call get_node_array(node_xsdata, "total", this % total) else this % total = this % absorption + this % scatter % scattxs end if @@ -572,11 +574,11 @@ module mgxs_header type(Node), pointer :: node_legendre_mu character(MAX_LINE_LEN) :: temp_str logical :: enable_leg_mu - real(8), allocatable :: temp_arr(:), temp_4d(:,:,:,:) - real(8), allocatable :: temp_mult(:,:,:,:) - real(8), allocatable :: scatt_coeffs(:,:,:,:,:) - real(8), allocatable :: input_scatt(:,:,:,:,:) - real(8), allocatable :: temp_scatt(:,:,:,:,:) + real(8), allocatable :: temp_arr(:), temp_4d(:, :, :, :) + real(8), allocatable :: temp_mult(:, :, :, :) + real(8), allocatable :: scatt_coeffs(:, :, :, :, :) + real(8), allocatable :: input_scatt(:, :, :, :, :) + real(8), allocatable :: temp_scatt(:, :, :, :, :) real(8) :: dmu, mu, norm, dangle integer :: order, order_dim, gin, gout, l, arr_len integer :: legendre_mu_points, imu, ipol, iazi @@ -604,9 +606,9 @@ module mgxs_header ! When this feature is supported, this line will be activated call get_node_array(node_xsdata, "polar", this % polar) else - dangle = PI / real(this % n_pol,8) + dangle = PI / real(this % n_pol, 8) do ipol = 1, this % n_pol - this % polar(ipol) = (real(ipol,8) - HALF) * dangle + this % polar(ipol) = (real(ipol, 8) - HALF) * dangle end do end if if (check_for_node(node_xsdata, "azimuthal")) then @@ -614,22 +616,22 @@ module mgxs_header ! When this feature is supported, this line will be activated call get_node_array(node_xsdata, "azimuthal", this % azimuthal) else - dangle = TWO * PI / real(this % n_azi,8) + dangle = TWO * PI / real(this % n_azi, 8) do iazi = 1, this % n_azi - this % azimuthal(iazi) = -PI + (real(iazi,8) - HALF) * dangle + this % azimuthal(iazi) = -PI + (real(iazi, 8) - HALF) * dangle end do end if ! Load the more specific data - allocate(this % nu_fission(groups,this % n_azi,this % n_pol)) - allocate(this % chi(groups,groups,this % n_azi,this % n_pol)) + allocate(this % nu_fission(groups, this % n_azi, this % n_pol)) + allocate(this % chi(groups, groups, this % n_azi, this % n_pol)) if (this % fissionable) then - if (check_for_node(node_xsdata,"chi")) then + if (check_for_node(node_xsdata, "chi")) then ! Chi was provided, that means they are giving chi and nu-fission ! vectors ! Get chi allocate(temp_arr(1 * groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"chi",temp_arr) + call get_node_array(node_xsdata, "chi", temp_arr) ! Initialize counter for temp_arr l = 0 gin = 1 @@ -637,11 +639,12 @@ module mgxs_header do iazi = 1, this % n_azi do gout = 1, groups l = l + 1 - this % chi(gout,gin,iazi,ipol) = temp_arr(l) + this % chi(gout, gin, iazi, ipol) = temp_arr(l) end do ! Normalize chi so its CDF goes to 1 - this % chi(:,gin,iazi,ipol) = this % chi(:,gin,iazi,ipol) / & - sum(this % chi(:,gin,iazi,ipol)) + this % chi(:, gin, iazi, ipol) = & + this % chi(:, gin, iazi, ipol) / & + sum(this % chi(:, gin, iazi, ipol)) end do end do @@ -649,17 +652,19 @@ module mgxs_header do ipol = 1, this % n_pol do iazi = 1, this % n_azi do gin = 2, groups - this % chi(:,gin,iazi,ipol) = this % chi(:,1,iazi,ipol) + this % chi(:, gin, iazi, ipol) = & + this % chi(:, 1, iazi, ipol) end do end do end do deallocate(temp_arr) ! Get nu_fission (as a vector) - if (check_for_node(node_xsdata,"nu_fission")) then + if (check_for_node(node_xsdata, "nu_fission")) then allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"nu_fission",temp_arr) - this % nu_fission = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + this % nu_fission = reshape(temp_arr,(/groups, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else call fatal_error("If fissionable, must provide nu_fission!") @@ -668,11 +673,12 @@ module mgxs_header else ! chi isnt provided but is within nu_fission, existing as a matrix ! So, get nu_fission (as a matrix) - if (check_for_node(node_xsdata,"nu_fission")) then + if (check_for_node(node_xsdata, "nu_fission")) then allocate(temp_arr(groups * groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"nu_fission",temp_arr) - allocate(temp_4d(groups,groups,this % n_azi,this % n_pol)) - temp_4d = reshape(temp_arr,(/groups,groups,this % n_azi,this % n_pol/)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + allocate(temp_4d(groups, groups, this % n_azi,this % n_pol)) + temp_4d = reshape(temp_arr, (/groups, groups, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else call fatal_error("If fissionable, must provide nu_fission!") @@ -682,7 +688,8 @@ module mgxs_header do ipol = 1, this % n_pol do iazi = 1, this % n_azi do gin = 1, groups - this % nu_fission(gin,iazi,ipol) = sum(temp_4d(:,gin,iazi,ipol)) + this % nu_fission(gin, iazi, ipol) = & + sum(temp_4d(:, gin, iazi, ipol)) end do end do end do @@ -693,8 +700,9 @@ module mgxs_header do ipol = 1, this % n_pol do iazi = 1, this % n_azi do gin = 1, groups - this % chi(:,gin,iazi,ipol) = this % chi(:,gin,iazi,ipol) / & - sum(this % chi(:,gin,iazi,ipol)) + this % chi(:, gin, iazi, ipol) = & + this % chi(:, gin, iazi, ipol) / & + sum(this % chi(:, gin, iazi, ipol)) end do end do end do @@ -704,11 +712,12 @@ module mgxs_header ! If we have a need* for the fission and kappa-fission x/s, get them ! (*Need is defined as will be using it to tally) if (get_fiss) then - if (check_for_node(node_xsdata,"fission")) then + if (check_for_node(node_xsdata, "fission")) then allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"fission",temp_arr) - allocate(this % fission(groups,this % n_azi,this % n_pol)) - this % fission = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + call get_node_array(node_xsdata, "fission", temp_arr) + allocate(this % fission(groups, this % n_azi, this % n_pol)) + this % fission = reshape(temp_arr, (/groups, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else call fatal_error("Fission data missing, required due to fission& @@ -716,11 +725,12 @@ module mgxs_header end if end if if (get_kfiss) then - if (check_for_node(node_xsdata,"kappa_fission")) then + if (check_for_node(node_xsdata, "kappa_fission")) then allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"kappa_fission",temp_arr) - allocate(this % k_fission(groups,this % n_azi,this % n_pol)) - this % k_fission = reshape(temp_arr,(/groups, this % n_azi,this % n_pol/)) + call get_node_array(node_xsdata, "kappa_fission", temp_arr) + allocate(this % k_fission(groups, this % n_azi, this % n_pol)) + this % k_fission = reshape(temp_arr, (/groups, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else call fatal_error("kappa_fission data missing, required due to & @@ -732,24 +742,26 @@ module mgxs_header this % chi = ZERO end if - if (check_for_node(node_xsdata,"absorption")) then + if (check_for_node(node_xsdata, "absorption")) then allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"absorption",temp_arr) - allocate(this % absorption(groups,this % n_azi,this % n_pol)) - this % absorption = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + call get_node_array(node_xsdata, "absorption", temp_arr) + allocate(this % absorption(groups, this % n_azi, this % n_pol)) + this % absorption = reshape(temp_arr, (/groups, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else call fatal_error("Must provide absorption!") end if ! Get multiplication data if present - allocate(temp_mult(groups,groups,this % n_azi,this % n_pol)) - if (check_for_node(node_xsdata,"multiplicity")) then - arr_len = get_arraysize_double(node_xsdata,"multiplicity") + allocate(temp_mult(groups,groups, this % n_azi, this % n_pol)) + if (check_for_node(node_xsdata, "multiplicity")) then + arr_len = get_arraysize_double(node_xsdata, "multiplicity") if (arr_len == groups * groups * this % n_azi * this % n_pol) then allocate(temp_arr(arr_len)) - call get_node_array(node_xsdata,"multiplicity",temp_arr) - temp_mult = reshape(temp_arr,(/groups,groups,this % n_azi,this % n_pol/)) + call get_node_array(node_xsdata, "multiplicity", temp_arr) + temp_mult = reshape(temp_arr, (/groups, groups, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else call fatal_error("Multiplicity length not same as number of groups& @@ -766,24 +778,25 @@ module mgxs_header ! Set the default (leave as Legendre polynomials) enable_leg_mu = .false. - if (check_for_node(node_xsdata,"tabular_legendre")) then - call get_node_ptr(node_xsdata,"tabular_legendre",node_legendre_mu) + if (check_for_node(node_xsdata, "tabular_legendre")) then + call get_node_ptr(node_xsdata, "tabular_legendre", node_legendre_mu) if (check_for_node(node_legendre_mu, "enable")) then - call get_node_value(node_legendre_mu,"enable",temp_str) + call get_node_value(node_legendre_mu, "enable", temp_str) temp_str = trim(to_lower(temp_str)) if (temp_str == 'true' .or. temp_str == '1') then enable_leg_mu = .true. elseif (temp_str == 'false' .or. temp_str == '0') then enable_leg_mu = .false. else - call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) + call fatal_error("Unrecognized tabular_legendre/enable: " & + // temp_str) end if end if ! Ok, so if we need to convert to a tabular form, get the user provided ! number of points if (enable_leg_mu) then - if (check_for_node(node_legendre_mu,"num_points")) then - call get_node_value(node_legendre_mu,"num_points", & + if (check_for_node(node_legendre_mu, "num_points")) then + call get_node_value(node_legendre_mu, "num_points", & legendre_mu_points) if (legendre_mu_points <= 0) & call fatal_error("num_points element must be positive& @@ -796,8 +809,8 @@ module mgxs_header end if ! Get the library's value for the order - if (check_for_node(node_xsdata,"order")) then - call get_node_value(node_xsdata,"order",order) + if (check_for_node(node_xsdata, "order")) then + call get_node_value(node_xsdata, "order", order) else call fatal_error("Order Must Be Provided!") end if @@ -817,13 +830,14 @@ module mgxs_header ! Gout x Gin x Order x Azi x Pol. We will get it in that format in ! input_scatt, but then need to convert it to a more useful ordering ! for processing (Order x Gout x Gin x Azi x Pol). - allocate(input_scatt(groups,groups,order_dim,this % n_azi,this % n_pol)) - if (check_for_node(node_xsdata,"scatter")) then + allocate(input_scatt(groups, groups, order_dim, this % n_azi, & + this % n_pol)) + if (check_for_node(node_xsdata, "scatter")) then allocate(temp_arr(groups * groups * order_dim * this % n_azi * & this % n_pol)) - call get_node_array(node_xsdata,"scatter",temp_arr) - input_scatt = reshape(temp_arr,(/groups,groups,order_dim,this % n_azi, & - this % n_pol/)) + call get_node_array(node_xsdata, "scatter", temp_arr) + input_scatt = reshape(temp_arr, (/groups, groups, order_dim, & + this % n_azi, this % n_pol/)) deallocate(temp_arr) ! Compare the number of orders given with the maximum order of the @@ -833,8 +847,9 @@ module mgxs_header order_dim = order + 1 end if - allocate(temp_scatt(groups,groups,order_dim,this % n_azi,this % n_pol)) - temp_scatt(:,:,:,:,:) = input_scatt(:,:,1:order_dim,:,:) + allocate(temp_scatt(groups, groups, order_dim, this % n_azi, & + this % n_pol)) + temp_scatt(:, :, :, :, :) = input_scatt(:, :, 1:order_dim, :, :) ! Take input format (groups, groups, order) and convert to ! the more useful format needed for scattdata: (order, groups, groups) @@ -848,9 +863,10 @@ module mgxs_header this % scatt_type = ANGLE_TABULAR order_dim = legendre_mu_points order = order_dim - dmu = TWO / real(order - 1,8) + dmu = TWO / real(order - 1, 8) - allocate(scatt_coeffs(order_dim,groups,groups,this % n_azi,this % n_pol)) + allocate(scatt_coeffs(order_dim, groups, groups, this % n_azi, & + this % n_pol)) do ipol = 1, this % n_pol do iazi = 1, this % n_azi do gin = 1, groups @@ -862,26 +878,26 @@ module mgxs_header else if (imu == order_dim) then mu = ONE else - mu = -ONE + real(imu - 1,8) * dmu + mu = -ONE + real(imu - 1, 8) * dmu end if - scatt_coeffs(imu,gout,gin,iazi,ipol) = & - evaluate_legendre(temp_scatt(gout,gin,:,iazi,ipol),mu) + scatt_coeffs(imu, gout, gin, iazi, ipol) = & + evaluate_legendre(temp_scatt(gout, gin, :, iazi, ipol), mu) ! Ensure positivity of distribution - if (scatt_coeffs(imu,gout,gin,iazi,ipol) < ZERO) & - scatt_coeffs(imu,gout,gin,iazi,ipol) = ZERO + if (scatt_coeffs(imu, gout, gin, iazi, ipol) < ZERO) & + scatt_coeffs(imu, gout, gin, iazi, ipol) = ZERO ! And accrue the integral if (imu > 1) then norm = norm + HALF * dmu * & - (scatt_coeffs(imu-1,gout,gin,iazi,ipol) + & - scatt_coeffs(imu,gout,gin,iazi,ipol)) + (scatt_coeffs(imu - 1, gout, gin, iazi, ipol) + & + scatt_coeffs(imu, gout, gin, iazi, ipol)) end if end do ! Now that we have the integral, lets ensure that the distribution ! is normalized such that it preserves the original scattering xs if (norm > ZERO) then - scatt_coeffs(:,gout,gin,iazi,ipol) = & - scatt_coeffs(:,gout,gin,iazi,ipol) * & - temp_scatt(gout,gin,1,iazi,ipol) / norm + scatt_coeffs(:, gout, gin, iazi, ipol) = & + scatt_coeffs(:, gout, gin, iazi, ipol) * & + temp_scatt(gout, gin, 1, iazi, ipol) / norm end if end do end do @@ -890,14 +906,15 @@ module mgxs_header else ! Sticking with current representation, carry forward but change ! the array ordering - allocate(scatt_coeffs(order_dim,groups,groups,this % n_azi,this % n_pol)) + allocate(scatt_coeffs(order_dim, groups, groups, this % n_azi, & + this % n_pol)) do ipol = 1, this % n_pol do iazi = 1, this % n_azi do gin = 1, groups do gout = 1, groups do l = 1, order_dim - scatt_coeffs(l,gout,gin,iazi,ipol) = & - temp_scatt(gout,gin,l,iazi,ipol) + scatt_coeffs(l, gout, gin, iazi, ipol) = & + temp_scatt(gout, gin, l, iazi, ipol) end do end do end do @@ -911,35 +928,37 @@ module mgxs_header allocate(this % scatter(this % n_azi, this % n_pol)) do ipol = 1, this % n_pol - do iazi = 1, this % n_azi + do iazi = 1, this % n_azi ! Allocate and initialize our ScattData Object. if (this % scatt_type == ANGLE_HISTOGRAM) then - allocate(ScattDataHistogram :: this % scatter(iazi,ipol) % obj) + allocate(ScattDataHistogram :: this % scatter(iazi, ipol) % obj) else if (this % scatt_type == ANGLE_TABULAR) then - allocate(ScattDataTabular :: this % scatter(iazi,ipol) % obj) + allocate(ScattDataTabular :: this % scatter(iazi, ipol) % obj) else if (this % scatt_type == ANGLE_LEGENDRE) then - allocate(ScattDataLegendre :: this % scatter(iazi,ipol) % obj) + allocate(ScattDataLegendre :: this % scatter(iazi, ipol) % obj) end if ! Initialize the ScattData Object - call this % scatter(iazi,ipol) % obj % init(& - temp_mult(:,:,iazi,ipol), scatt_coeffs(:,:,:,iazi,ipol)) + call this % scatter(iazi, ipol) % obj % init(& + temp_mult(:, :, iazi, ipol), & + scatt_coeffs(:, :, :, iazi, ipol)) end do end do ! Deallocate temporaries for the next material - deallocate(input_scatt,scatt_coeffs,temp_mult) + deallocate(input_scatt, scatt_coeffs, temp_mult) - allocate(this % total(groups,this % n_azi,this % n_pol)) - if (check_for_node(node_xsdata,"total")) then + allocate(this % total(groups, this % n_azi, this % n_pol)) + if (check_for_node(node_xsdata, "total")) then allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata,"total",temp_arr) - this % total = reshape(temp_arr,(/groups,this % n_azi,this % n_pol/)) + call get_node_array(node_xsdata, "total", temp_arr) + this % total = reshape(temp_arr, (/groups, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else do ipol = 1, this % n_pol do iazi = 1, this % n_azi - this % total(:,iazi,ipol) = this % absorption(:,iazi,ipol) + & - this % scatter(iazi,ipol) % obj % scattxs(:) + this % total(:, iazi, ipol) = this % absorption(:, iazi, ipol) + & + this % scatter(iazi, ipol) % obj % scattxs(:) end do end do end if @@ -1074,13 +1093,13 @@ module mgxs_header size_scattmat = 0 do ipol = 1, this % n_pol do iazi = 1, this % n_azi - do gin = 1, size(this % scatter(iazi,ipol) % obj % energy) + do gin = 1, size(this % scatter(iazi, ipol) % obj % energy) size_scattmat = size_scattmat + & - 2 * size(this % scatter(iazi,ipol) % obj % energy(gin) % data) + & - size(this % scatter(iazi,ipol) % obj % dist(gin) % data) + 2 * size(this % scatter(iazi, ipol) % obj % energy(gin) % data) + & + size(this % scatter(iazi, ipol) % obj % dist(gin) % data) end do size_scattmat = size_scattmat + & - size(this % scatter(iazi,ipol) % obj % scattxs) + size(this % scatter(iazi, ipol) % obj % scattxs) end do end do size_scattmat = size_scattmat * 8 @@ -1141,7 +1160,7 @@ module mgxs_header xs = this % chi(gout,gin) else ! Not sure youd want a 1 or a 0, but here you go! - xs = sum(this % chi(:,gin)) + xs = sum(this % chi(:, gin)) end if case('scatter') if (present(gout)) then @@ -1211,68 +1230,69 @@ module mgxs_header call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) select case(xstype) case('total') - xs = this % total(gin,iazi,ipol) + xs = this % total(gin, iazi, ipol) case('absorption') - xs = this % absorption(gin,iazi,ipol) + xs = this % absorption(gin, iazi, ipol) case('fission') if (allocated(this % fission)) then - xs = this % fission(gin,iazi,ipol) + xs = this % fission(gin, iazi, ipol) else xs = ZERO end if case('kappa_fission') if (allocated(this % k_fission)) then - xs = this % k_fission(gin,iazi,ipol) + xs = this % k_fission(gin, iazi, ipol) else xs = ZERO end if case('nu_fission') - xs = this % nu_fission(gin,iazi,ipol) + xs = this % nu_fission(gin, iazi, ipol) case('chi') if (present(gout)) then - xs = this % chi(gout,gin,iazi,ipol) + xs = this % chi(gout, gin, iazi, ipol) else ! Not sure youd want a 1 or a 0, but here you go! - xs = sum(this % chi(:,gin,iazi,ipol)) + xs = sum(this % chi(:, gin, iazi, ipol)) end if case('scatter') if (present(gout)) then - if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & - gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + if (gout < this % scatter(iazi, ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi, ipol) % obj % gmax(gin)) then xs = ZERO else - xs = this % scatter(iazi,ipol) % obj % scattxs(gin) * & - this % scatter(iazi,ipol) % obj % energy(gin) % data(gout) + xs = this % scatter(iazi, ipol) % obj % scattxs(gin) * & + this % scatter(iazi, ipol) % obj % energy(gin) % data(gout) end if else - xs = this % scatter(iazi,ipol) % obj % scattxs(gin) + xs = this % scatter(iazi, ipol) % obj % scattxs(gin) end if case('scatter/mult') if (present(gout)) then - if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & - gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + if (gout < this % scatter(iazi, ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi, ipol) % obj % gmax(gin)) then xs = ZERO else - xs = this % scatter(iazi,ipol) % obj % scattxs(gin) * & - this % scatter(iazi,ipol) % obj % energy(gin) % data(gout) / & - this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + xs = this % scatter(iazi, ipol) % obj % scattxs(gin) * & + this % scatter(iazi, ipol) % obj % energy(gin) % data(gout) / & + this % scatter(iazi, ipol) % obj % mult(gin) % data(gout) end if else - xs = this % scatter(iazi,ipol) % obj % scattxs(gin) / & - (dot_product(this % scatter(iazi,ipol) % obj % mult(gin) % data, & - this % scatter(iazi,ipol) % obj % energy(gin) % data)) + xs = this % scatter(iazi, ipol) % obj % scattxs(gin) / & + (dot_product(this % scatter(iazi, ipol) % obj % mult(gin) % data, & + this % scatter(iazi, ipol) % obj % energy(gin) % data)) end if case('scatter*f_mu/mult','scatter*f_mu') if (present(gout)) then - if (gout < this % scatter(iazi,ipol) % obj % gmin(gin) .or. & - gout > this % scatter(iazi,ipol) % obj % gmax(gin)) then + if (gout < this % scatter(iazi, ipol) % obj % gmin(gin) .or. & + gout > this % scatter(iazi, ipol) % obj % gmax(gin)) then xs = ZERO else - xs = this % scatter(iazi,ipol) % obj % scattxs(gin) * & - this % scatter(iazi,ipol) % obj % energy(gin) % data(gout) - xs = xs * this % scatter(iazi,ipol) % obj % calc_f(gin, gout, mu) + xs = this % scatter(iazi, ipol) % obj % scattxs(gin) * & + this % scatter(iazi, ipol) % obj % energy(gin) % data(gout) + xs = xs * this % scatter(iazi, ipol) % obj % calc_f(gin, gout, mu) if (xstype == 'scatter*f_mu/mult') then - xs = xs / this % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + xs = xs / & + this % scatter(iazi, ipol) % obj % mult(gin) % data(gout) end if end if else @@ -1335,11 +1355,11 @@ module mgxs_header real(8) :: atom_density ! atom density of a nuclide real(8) :: norm, nuscatt integer :: mat_max_order, order, order_dim, nuc_order_dim - real(8), allocatable :: temp_mult(:,:), mult_num(:,:), mult_denom(:,:) - real(8), allocatable :: scatt_coeffs(:,:,:) + real(8), allocatable :: temp_mult(:, :), mult_num(:, :), mult_denom(:, :) + real(8), allocatable :: scatt_coeffs(:, :, :) ! Set the meta-data - call mgxs_combine(this,mat,scatt_type,i_listing) + call mgxs_combine(this, mat, scatt_type, i_listing) ! Determine the scattering type of our data and ensure all scattering orders ! are the same. @@ -1350,7 +1370,6 @@ module mgxs_header ! If we have tabular only data, then make sure all datasets have same size if (scatt_type == ANGLE_HISTOGRAM) then ! Check all scattering data to ensure it is the same size - ! order = size(nuclides(mat % nuclide(1)) % obj % scatter % data,dim=1) do i = 2, mat % n_nuclides select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsIso) @@ -1370,7 +1389,7 @@ module mgxs_header do i = 2, mat % n_nuclides select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsIso) - if (order /= size(nuc % scatter % dist(1) % data,dim=1)) & + if (order /= size(nuc % scatter % dist(1) % data, dim=1)) & call fatal_error("All Tabular Scattering Entries Must Be& & Same Length!") end select @@ -1388,7 +1407,7 @@ module mgxs_header select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsIso) if (size(nuc % scatter % dist(1) % data,dim=1) > mat_max_order) & - mat_max_order = size(nuc % scatter % dist(1) % data,dim=1) + mat_max_order = size(nuc % scatter % dist(1) % data, dim=1) end select end do @@ -1444,7 +1463,8 @@ module mgxs_header this % fission = this % fission + atom_density * nuc % fission end if if (allocated(nuc % k_fission)) then - this % k_fission = this % k_fission + atom_density * nuc % k_fission + this % k_fission = this % k_fission + atom_density * & + nuc % k_fission end if end if @@ -1471,11 +1491,11 @@ module mgxs_header end do ! Get the complete scattering matrix - nuc_order_dim = size(nuc % scatter % dist(1) % data,dim=1) - scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:) = & - scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:) + & + nuc_order_dim = size(nuc % scatter % dist(1) % data, dim=1) + scatt_coeffs(1:min(nuc_order_dim, order_dim), :, :) = & + scatt_coeffs(1:min(nuc_order_dim, order_dim), :, :) + & atom_density * & - nuc % scatter % get_matrix(min(nuc_order_dim,order_dim)) + nuc % scatter % get_matrix(min(nuc_order_dim, order_dim)) type is (MgxsAngle) call fatal_error("Invalid Passing of MgxsAngle to MgxsIso Object") @@ -1494,14 +1514,14 @@ module mgxs_header end do ! Initialize the ScattData Object - call this % scatter % init(temp_mult,scatt_coeffs) + call this % scatter % init(temp_mult, scatt_coeffs) ! Now normalize chi if (mat % fissionable) then do gin = 1, groups - norm = sum(this % chi(:,gin)) + norm = sum(this % chi(:, gin)) if (norm > ZERO) then - this % chi(:,gin) = this % chi(:,gin) / norm + this % chi(:, gin) = this % chi(:, gin) / norm end if end do end if @@ -1527,8 +1547,8 @@ module mgxs_header integer :: ipol, iazi, n_pol, n_azi real(8) :: norm, nuscatt integer :: mat_max_order, order, order_dim, nuc_order_dim - real(8), allocatable :: temp_mult(:,:,:,:), mult_num(:,:,:,:), mult_denom(:,:,:,:) - real(8), allocatable :: scatt_coeffs(:,:,:,:,:) + real(8), allocatable :: temp_mult(:, :, :, :), mult_num(:, :, :, :) + real(8), allocatable :: mult_denom(:, :, :, :), scatt_coeffs(:, :, :, :, :) ! Set the meta-data call mgxs_combine(this,mat,scatt_type,i_listing) @@ -1568,7 +1588,7 @@ module mgxs_header do i = 2, mat % n_nuclides select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsAngle) - if (order /= size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1)) & + if (order /= size(nuc % scatter(1,1) % obj % dist(1) % data, dim=1)) & call fatal_error("All Histogram Scattering Entries Must Be& & Same Length!") end select @@ -1589,7 +1609,7 @@ module mgxs_header do i = 2, mat % n_nuclides select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsAngle) - if (order /= size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1)) & + if (order /= size(nuc % scatter(1, 1) % obj % dist(1) % data,dim=1)) & call fatal_error("All Tabular Scattering Entries Must Be& & Same Length!") end select @@ -1611,8 +1631,8 @@ module mgxs_header do i = 1, mat % n_nuclides select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsAngle) - if (size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1) > mat_max_order) & - mat_max_order = size(nuc % scatter(1,1) % obj% dist(1) % data,dim=1) + if (size(nuc % scatter(1,1) % obj % dist(1) % data, dim=1) > mat_max_order) & + mat_max_order = size(nuc % scatter(1,1) % obj% dist(1) % data, dim=1) end select end do @@ -1632,25 +1652,25 @@ module mgxs_header end if ! Allocate and initialize data within macro_xs(i_mat) object - allocate(this % total(groups,n_azi,n_pol)) + allocate(this % total(groups, n_azi, n_pol)) this % total = ZERO - allocate(this % absorption(groups,n_azi,n_pol)) + allocate(this % absorption(groups, n_azi, n_pol)) this % absorption = ZERO - allocate(this % fission(groups,n_azi,n_pol)) + allocate(this % fission(groups, n_azi, n_pol)) this % fission = ZERO - allocate(this % k_fission(groups,n_azi,n_pol)) + allocate(this % k_fission(groups, n_azi, n_pol)) this % k_fission = ZERO - allocate(this % nu_fission(groups,n_azi,n_pol)) + allocate(this % nu_fission(groups, n_azi, n_pol)) this % nu_fission = ZERO - allocate(this % chi(groups,groups,n_azi,n_pol)) + allocate(this % chi(groups, groups, n_azi, n_pol)) this % chi = ZERO - allocate(temp_mult(groups,groups,n_azi,n_pol)) + allocate(temp_mult(groups, groups, n_azi, n_pol)) temp_mult = ZERO - allocate(mult_num(groups,groups,n_azi,n_pol)) + allocate(mult_num(groups, groups, n_azi, n_pol)) mult_num = ZERO - allocate(mult_denom(groups,groups,n_azi,n_pol)) + allocate(mult_denom(groups, groups, n_azi, n_pol)) mult_denom = ZERO - allocate(scatt_coeffs(order_dim,groups,groups,n_azi,n_pol)) + allocate(scatt_coeffs(order_dim, groups, groups, n_azi, n_pol)) scatt_coeffs = ZERO ! Add contribution from each nuclide in material @@ -1675,7 +1695,8 @@ module mgxs_header this % fission = this % fission + atom_density * nuc % fission end if if (allocated(nuc % k_fission)) then - this % k_fission = this % k_fission + atom_density * nuc % k_fission + this % k_fission = this % k_fission + atom_density * & + nuc % k_fission end if end if @@ -1693,15 +1714,16 @@ module mgxs_header do ipol = 1, n_pol do iazi = 1, n_azi do gin = 1, groups - do gout = nuc % scatter(iazi,ipol) % obj % gmin(gin), & - nuc % scatter(iazi,ipol) % obj % gmax(gin) - nuscatt = nuc % scatter(iazi,ipol) % obj % scattxs(gin) * & - nuc % scatter(iazi,ipol) % obj % energy(gin) % data(gout) - mult_num(gout,gin,iazi,ipol) = mult_num(gout,gin,iazi,ipol) + & + do gout = nuc % scatter(iazi, ipol) % obj % gmin(gin), & + nuc % scatter(iazi, ipol) % obj % gmax(gin) + nuscatt = nuc % scatter(iazi, ipol) % obj % scattxs(gin) * & + nuc % scatter(iazi, ipol) % obj % energy(gin) % data(gout) + mult_num(gout, gin, iazi, ipol) = mult_num(gout, gin, iazi, ipol) + & atom_density * nuscatt - mult_denom(gout,gin,iazi,ipol) = mult_denom(gout,gin,iazi,ipol) + & + mult_denom(gout, gin, iazi, ipol) = & + mult_denom(gout, gin, iazi, ipol) + & atom_density * nuscatt / & - nuc % scatter(iazi,ipol) % obj % mult(gin) % data(gout) + nuc % scatter(iazi, ipol) % obj % mult(gin) % data(gout) end do end do end do @@ -1711,11 +1733,10 @@ module mgxs_header nuc_order_dim = size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1) do ipol = 1, n_pol do iazi = 1, n_azi - scatt_coeffs(1:min(nuc_order_dim,order_dim),:,:,iazi,ipol) = & - scatt_coeffs(1:min(nuc_order_dim, order_dim),:,:,iazi,ipol) + & - atom_density * & - nuc % scatter(iazi,ipol) % obj % get_matrix(& - min(nuc_order_dim,order_dim)) + scatt_coeffs(1:min(nuc_order_dim, order_dim), :, :, iazi, ipol) = & + scatt_coeffs(1:min(nuc_order_dim, order_dim), :, :, iazi, ipol) + & + atom_density * nuc % scatter(iazi, ipol) % obj % get_matrix(& + min(nuc_order_dim, order_dim)) end do end do end select @@ -1726,10 +1747,12 @@ module mgxs_header do iazi = 1, n_azi do gin = 1, groups do gout = 1, groups - if (mult_denom(gout,gin,iazi,ipol) > ZERO) then - temp_mult(gout,gin,iazi,ipol) = mult_num(gout,gin,iazi,ipol) / mult_denom(gout,gin,iazi,ipol) + if (mult_denom(gout, gin, iazi, ipol) > ZERO) then + temp_mult(gout, gin, iazi, ipol) = & + mult_num(gout, gin, iazi, ipol) / & + mult_denom(gout, gin, iazi, ipol) else - temp_mult(gout,gin,iazi,ipol) = ONE + temp_mult(gout, gin, iazi, ipol) = ONE end if end do end do @@ -1739,8 +1762,8 @@ module mgxs_header ! Initialize the ScattData Object do ipol = 1, n_pol do iazi = 1, n_azi - call this % scatter(iazi,ipol) % obj % init( & - temp_mult(:,:,iazi,ipol), scatt_coeffs(:,:,:,iazi,ipol)) + call this % scatter(iazi, ipol) % obj % init( & + temp_mult(:, :, iazi, ipol), scatt_coeffs(:, :, :, iazi, ipol)) end do end do @@ -1749,9 +1772,9 @@ module mgxs_header do ipol = 1, n_pol do iazi = 1, n_azi do gin = 1, groups - norm = sum(this % chi(:,gin,iazi,ipol)) + norm = sum(this % chi(:, gin, iazi, ipol)) if (norm > ZERO) then - this % chi(:,gin,iazi,ipol) = this % chi(:,gin,iazi,ipol) / norm + this % chi(:, gin, iazi, ipol) = this % chi(:, gin, iazi, ipol) / norm end if end do end do @@ -1799,11 +1822,11 @@ module mgxs_header xi = prn() gout = 1 - prob = this % chi(gout,gin,iazi,ipol) + prob = this % chi(gout, gin, iazi, ipol) do while (prob < xi) gout = gout + 1 - prob = prob + this % chi(gout,gin,iazi,ipol) + prob = prob + this % chi(gout, gin, iazi, ipol) end do end function mgxsang_sample_fission_energy @@ -1835,7 +1858,7 @@ module mgxs_header integer :: iazi, ipol ! Angular indices call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - call this % scatter(iazi,ipol) % obj % sample(gin,gout,mu,wgt) + call this % scatter(iazi, ipol) % obj % sample(gin, gout, mu, wgt) end subroutine mgxsang_sample_scatter @@ -1867,15 +1890,38 @@ module mgxs_header integer :: iazi, ipol call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - xs % total = this % total(gin,iazi,ipol) - xs % elastic = this % scatter(iazi,ipol) % obj % scattxs(gin) - xs % absorption = this % absorption(gin,iazi,ipol) - xs % fission = this % fission(gin,iazi,ipol) - xs % nu_fission = this % nu_fission(gin,iazi,ipol) + xs % total = this % total(gin, iazi, ipol) + xs % elastic = this % scatter(iazi, ipol) % obj % scattxs(gin) + xs % absorption = this % absorption(gin, iazi, ipol) + xs % fission = this % fission(gin, iazi, ipol) + xs % nu_fission = this % nu_fission(gin, iazi, ipol) end subroutine mgxsang_calculate_xs -!!!TODO: -! Move find_angle from math to here after we fully implement this and are ready -! to delete macroxs_header and relevant portions from nuclide_header. +!=============================================================================== +! find_angle finds the closest angle on the data grid and returns that index +!=============================================================================== + + pure subroutine find_angle(polar, azimuthal, uvw, i_azi, i_pol) + real(8), intent(in) :: polar(:) ! Polar angles [0,pi] + real(8), intent(in) :: azimuthal(:) ! Azi. angles [-pi,pi] + real(8), intent(in) :: uvw(3) ! Direction of motion + integer, intent(inout) :: i_pol ! Closest polar bin + integer, intent(inout) :: i_azi ! Closest azi bin + + real(8) :: my_pol, my_azi, dangle + + ! Convert uvw to polar and azi + + my_pol = acos(uvw(3)) + my_azi = atan2(uvw(2), uvw(1)) + + ! Search for equi-binned angles + dangle = PI / real(size(polar),8) + i_pol = floor(my_pol / dangle + ONE) + dangle = TWO * PI / real(size(azimuthal),8) + i_azi = floor((my_azi + PI) / dangle + ONE) + + end subroutine find_angle + end module mgxs_header \ No newline at end of file diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index ad7e4da32..92e2d7ba3 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -8,7 +8,7 @@ module nuclide_header use endf_header, only: Function1D use error, only: fatal_error, warning use list_header, only: ListInt - use math, only: evaluate_legendre, find_angle + use math, only: evaluate_legendre use product_header, only: AngleEnergyContainer use reaction_header, only: Reaction use stl_vector, only: VectorInt diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 6b2972768..8544cb38b 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -232,7 +232,7 @@ contains this % n_secondary = n this % secondary_bank(this % n_secondary) % E = this % E if (.not. run_CE) then - this % secondary_bank(this % n_secondary) % E = real(this % g,8) + this % secondary_bank(this % n_secondary) % E = real(this % g, 8) end if end subroutine create_secondary diff --git a/src/tally.F90 b/src/tally.F90 index ed1d45c87..86e108c3d 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -903,13 +903,14 @@ contains end if if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('total',p_g,UVW=p_uvw) / & - matxs % get_xs('total',p_g,UVW=p_uvw) + nucxs % get_xs('total', p_g, UVW=p_uvw) / & + matxs % get_xs('total', p_g, UVW=p_uvw) end if else if (i_nuclide > 0) then - score = nucxs % get_xs('total',p_g,UVW=p_uvw) * atom_density * flux + score = nucxs % get_xs('total', p_g, UVW=p_uvw) * & + atom_density * flux else score = material_xs % total * flux end if @@ -959,20 +960,22 @@ contains ! adjust the score by the actual probability for that nuclide. if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('scatter*f_mu/mult',p % last_g,p % g,UVW=p_uvw,MU=p % mu) / & - matxs % get_xs('scatter*f_mu/mult',p % last_g,p % g,UVW=p_uvw,MU=p % mu) + nucxs % get_xs('scatter*f_mu/mult', p % last_g, p % g, & + UVW=p_uvw,MU=p % mu) / & + matxs % get_xs('scatter*f_mu/mult', p % last_g, p % g, & + UVW=p_uvw,MU=p % mu) end if else ! Note SCORE_SCATTER_*N not available for tracklength/collision. if (i_nuclide > 0) then score = atom_density * flux * & - nucxs % get_xs('scatter/mult',p_g,UVW=p_uvw) + nucxs % get_xs('scatter/mult', p_g, UVW=p_uvw) else ! Get the scattering x/s and take away ! the multiplication baked in to sigS score = flux * & - matxs % get_xs('scatter/mult',p_g,UVW=p_uvw) + matxs % get_xs('scatter/mult', p_g, UVW=p_uvw) end if end if @@ -1000,18 +1003,20 @@ contains ! adjust the score by the actual probability for that nuclide. if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('scatter*f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) / & - matxs % get_xs('scatter*f_mu',p % last_g,p % g,UVW=p_uvw,MU=p % mu) + nucxs % get_xs('scatter*f_mu', p % last_g, p % g, & + UVW=p_uvw, MU=p % mu) / & + matxs % get_xs('scatter*f_mu', p % last_g, p % g, & + UVW=p_uvw, MU=p % mu) end if else ! Note SCORE_NU_SCATTER_*N not available for tracklength/collision. if (i_nuclide > 0) then - score = nucxs % get_xs('scatter',p_g,UVW=p_uvw) * & + score = nucxs % get_xs('scatter', p_g, UVW=p_uvw) * & atom_density * flux else ! Get the scattering x/s, which includes multiplication - score = matxs % get_xs('scatter',p_g,UVW=p_uvw) * flux + score = matxs % get_xs('scatter', p_g, UVW=p_uvw) * flux end if end if @@ -1045,12 +1050,12 @@ contains end if if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('absorption',p_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p_g,UVW=p_uvw) + nucxs % get_xs('absorption', p_g, UVW=p_uvw) / & + matxs % get_xs('absorption', p_g, UVW=p_uvw) end if else if (i_nuclide > 0) then - score = nucxs % get_xs('absorption',p_g,UVW=p_uvw) * & + score = nucxs % get_xs('absorption', p_g, UVW=p_uvw) * & atom_density * flux else score = material_xs % absorption * flux @@ -1075,16 +1080,16 @@ contains end if if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('fission', p_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p_g,UVW=p_uvw) + nucxs % get_xs('fission', p_g, UVW=p_uvw) / & + matxs % get_xs('absorption', p_g, UVW=p_uvw) else score = score * & - matxs % get_xs('fission', p_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p_g,UVW=p_uvw) + matxs % get_xs('fission', p_g, UVW=p_uvw) / & + matxs % get_xs('absorption', p_g, UVW=p_uvw) end if else if (i_nuclide > 0) then - score = nucxs % get_xs('fission',p_g,UVW=p_uvw) * & + score = nucxs % get_xs('fission', p_g, UVW=p_uvw) * & atom_density * flux else score = flux * material_xs % fission @@ -1102,7 +1107,8 @@ contains ! neutrons were emitted with different energies, multiple ! outgoing energy bins may have been scored to. The following ! logic treats this special case and results to multiple bins - call score_fission_eout_mg(p,t,score_index,i_nuclide,atom_density) + call score_fission_eout_mg(p, t, score_index, i_nuclide, & + atom_density) cycle SCORE_LOOP end if end if @@ -1113,12 +1119,12 @@ contains score = p % absorb_wgt if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('nu_fission',p_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p_g,UVW=p_uvw) + nucxs % get_xs('nu_fission', p_g, UVW=p_uvw) / & + matxs % get_xs('absorption', p_g, UVW=p_uvw) else score = score * & - matxs % get_xs('nu_fission',p_g,UVW=p_uvw) / & - matxs % get_xs('absorption',p_g,UVW=p_uvw) + matxs % get_xs('nu_fission', p_g, UVW=p_uvw) / & + matxs % get_xs('absorption', p_g, UVW=p_uvw) end if else ! Skip any non-fission events @@ -1131,14 +1137,14 @@ contains score = keff * p % wgt_bank if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('fission',p_g,UVW=p_uvw) / & - matxs % get_xs('fission',p_g,UVW=p_uvw) + nucxs % get_xs('fission', p_g, UVW=p_uvw) / & + matxs % get_xs('fission', p_g, UVW=p_uvw) end if end if else if (i_nuclide > 0) then - score = nucxs % get_xs('nu_fission',p_g,UVW=p_uvw) * & + score = nucxs % get_xs('nu_fission', p_g, UVW=p_uvw) * & atom_density * flux else score = material_xs % nu_fission * flux @@ -1163,19 +1169,19 @@ contains end if if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('kappa_fission',p_g,UVW=p_uvw) / & - matxs % get_xs('absorption', p_g,UVW=p_uvw) + nucxs % get_xs('kappa_fission', p_g, UVW=p_uvw) / & + matxs % get_xs('absorption', p_g, UVW=p_uvw) else score = score * & - matxs % get_xs('kappa_fission',p_g,UVW=p_uvw) / & - matxs % get_xs('absorption', p_g,UVW=p_uvw) + matxs % get_xs('kappa_fission', p_g, UVW=p_uvw) / & + matxs % get_xs('absorption', p_g, UVW=p_uvw) end if else if (i_nuclide > 0) then - score = flux * nucxs % get_xs('kappa_fission',p_g,UVW=p_uvw) * & - atom_density + score = flux * atom_density * & + nucxs % get_xs('kappa_fission', p_g, UVW=p_uvw) else - score = flux * matxs % get_xs('kappa_fission',p_g,UVW=p_uvw) + score = flux * matxs % get_xs('kappa_fission', p_g, UVW=p_uvw) end if end if @@ -1643,8 +1649,10 @@ contains gin = p % last_g end if score = score * atom_density * & - nuclides_MG(i_nuclide) % obj % get_xs('fission',gin,UVW=p % last_uvw) / & - macro_xs(p % material) % obj % get_xs('fission',gin,UVW=p % last_uvw) + nuclides_MG(i_nuclide) % obj % get_xs('fission', gin, & + UVW=p % last_uvw) / & + macro_xs(p % material) % obj % get_xs('fission', gin, & + UVW=p % last_uvw) end if if (t % energyout_matches_groups) then From 8aada0af2977c12940ecf37dbb2b2bdaaf5e117a Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 May 2016 18:43:43 -0400 Subject: [PATCH 151/259] Added row_column parameter to Library.build_hdf5_store(...)` --- openmc/mgxs/library.py | 11 ++++++++--- openmc/mgxs/mgxs.py | 10 ++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 8d5e9854e..c3529fc98 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -575,7 +575,8 @@ class Library(object): return subdomain_avg_library def build_hdf5_store(self, filename='mgxs.h5', directory='mgxs', - subdomains='all', nuclides='all', xs_type='macro'): + subdomains='all', nuclides='all', xs_type='macro', + row_column='inout'): """Export the multi-group cross section library to an HDF5 binary file. This method constructs an HDF5 file which stores the library's @@ -605,6 +606,10 @@ class Library(object): xs_type: {'macro', 'micro'} Store the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + row_column: {'inout', 'outin'} + Store scattering matrices indexed first by incoming group and + second by outgoing group ('inout'), or vice versa ('outin'). + Defaults to 'inout'. Raises ------ @@ -646,8 +651,8 @@ class Library(object): if subdomains == 'avg': mgxs = mgxs.get_subdomain_avg_xs() - mgxs.build_hdf5_store(filename, directory, - xs_type=xs_type, nuclides=nuclides) + mgxs.build_hdf5_store(filename, directory, xs_type=xs_type, + nuclides=nuclides, row_column=row_column) def dump_to_file(self, filename='mgxs', directory='mgxs'): """Store this Library object in a pickle binary file. diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 90b956b21..57f42c1ee 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1174,8 +1174,9 @@ class MGXS(object): Store the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. row_column: {'inout', 'outin'} - Store scattering matrices indexed first by incoming group and second - by outgoing group ('inout'), or vice versa ('outin'). + Store scattering matrices indexed first by incoming group and + second by outgoing group ('inout'), or vice versa ('outin'). + Defaults to 'inout'. append : bool If true, appends to an existing HDF5 file with the same filename directory (if one exists). Defaults to True. @@ -2005,8 +2006,9 @@ class ScatterMatrixXS(MGXS): decreasing energy groups (decreasing or increasing energies). Defaults to 'increasing'. row_column: {'inout', 'outin'} - Return the cross section indexed first by incoming group and second - by outgoing group ('inout'), or vice versa ('outin'). + Return the cross section indexed first by incoming group and + second by outgoing group ('inout'), or vice versa ('outin'). + Defaults to 'inout'. value : str A string for the type of value to return - 'mean', 'std_dev', or 'rel_err' are accepted. Defaults to the empty string. From dfe7a0026ab9b6e79e10798922de4d70f46f2d61 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 May 2016 09:26:25 -0400 Subject: [PATCH 152/259] Fixed indentation and added error message for unlinked Summary file with distribcell paths in DataFrame --- openmc/filter.py | 6 ++++++ openmc/mgxs/mgxs.py | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 01f2ad201..aab0fc081 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -629,6 +629,12 @@ class Filter(object): # Create Pandas Multi-index columns for each level in CSG tree if distribcell_paths: + # Distribcell paths require linked metadata from the Summary + if self.distribcell_paths is None: + msg = 'Unable to construct distribcell paths since ' + 'the Summary is not linked to the StatePoint' + raise ValueError(msg) + # Make copy of array of distribcell paths to use in # Pandas Multi-index column construction distribcell_paths = copy.deepcopy(self.distribcell_paths) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 99a3d8bfe..3133db047 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -2576,9 +2576,11 @@ class Chi(MGXS): xs_type: {'macro', 'micro'} Return macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - distribcell_paths : list of str - The paths traversed through the CSG tree to reach each distribcell - instance (for 'distribcell' filters only) + distribcell_paths : bool, optional + Construct columns for distribcell tally filters (default is True). + The geometric information in the Summary object is embedded into + a Multi-index column with a geometric "path" to each distribcell + instance. Returns ------- From 838f84c963dbf5fe0f80b02bec2f056a3fd4036f Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 9 May 2016 08:33:18 -0500 Subject: [PATCH 153/259] Respond to @wbinventor comments on #642 --- openmc/statepoint.py | 6 +++--- openmc/universe.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 6c8af88a7..19aa3dbaf 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -622,8 +622,6 @@ class StatePoint(object): Raises ------ - RuntimeError - If a Summary object has already been linked. ValueError An error when the argument passed to the 'summary' parameter is not an openmc.Summary object. @@ -631,7 +629,9 @@ class StatePoint(object): """ if self.summary is not None: - raise RuntimeError('A Summary object has already been linked.') + warnings.warn('A Summary object has already been linked.', + RuntimeWarning) + return if not isinstance(summary, openmc.summary.Summary): msg = 'Unable to link statepoint with "{0}" which ' \ diff --git a/openmc/universe.py b/openmc/universe.py index 8834eaa52..770e789da 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -36,8 +36,8 @@ class Universe(object): automatically be assigned name : str, optional Name of the universe. If not specified, the name is the empty string. - cells : Iterable of openmc.Cell - Cells to add to the universe + cells : Iterable of openmc.Cell, optional + Cells to add to the universe. By default no cells are added. Attributes ---------- From 15fcf59d325b57acc4cb156e7bc5786b19641661 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 May 2016 09:47:11 -0400 Subject: [PATCH 154/259] Fixed line continuation for error in Filter --- openmc/filter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/filter.py b/openmc/filter.py index aab0fc081..52560a193 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -631,7 +631,7 @@ class Filter(object): # Distribcell paths require linked metadata from the Summary if self.distribcell_paths is None: - msg = 'Unable to construct distribcell paths since ' + msg = 'Unable to construct distribcell paths since ' \ 'the Summary is not linked to the StatePoint' raise ValueError(msg) From f5f26bada09bf910fcfab89348f4080d8c8ebafc Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 May 2016 12:03:12 -0400 Subject: [PATCH 155/259] Initial implementation of scattering moments for ScatterMatrixXS --- openmc/mgxs/mgxs.py | 147 ++++++++++++++++++++++++++++++++------------ openmc/tallies.py | 2 +- src/input_xml.F90 | 21 ++----- src/state_point.F90 | 4 +- 4 files changed, 115 insertions(+), 59 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 33255de30..9c3b32657 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -2,6 +2,7 @@ from __future__ import division from collections import Iterable, OrderedDict from numbers import Integral +import warnings import os import sys import copy @@ -1412,12 +1413,6 @@ class MGXS(object): else: df = self.xs_tally.get_pandas_dataframe(summary=summary) - # Remove the score column since it is homogeneous and redundant - if summary and 'distribcell' in self.domain_type: - df = df.drop('score', level=0, axis=1) - else: - df = df.drop('score', axis=1) - # Override energy groups bounds with indices all_groups = np.arange(self.num_groups, 0, -1, dtype=np.int) all_groups = np.repeat(all_groups, self.num_nuclides) @@ -1431,7 +1426,8 @@ class MGXS(object): df.rename(columns={'energyout low [MeV]': 'group out'}, inplace=True) - out_groups = np.tile(all_groups, df.shape[0] / all_groups.size) + out_groups = np.repeat(all_groups, self.xs_tally.num_scores) + out_groups = np.tile(out_groups, df.shape[0] / out_groups.size) df['group out'] = out_groups del df['energyout high [MeV]'] columns = ['group in', 'group out'] @@ -1843,6 +1839,8 @@ class ScatterMatrixXS(MGXS): ---------- correction : 'P0' or None Apply the P0 correction to scattering matrices if set to 'P0' + order : int + The highest order in the scattering matrix (default is 0) """ @@ -1852,6 +1850,7 @@ class ScatterMatrixXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'scatter matrix' self._correction = 'P0' + self._order = 0 def __deepcopy__(self, memo): clone = super(ScatterMatrixXS, self).__deepcopy__(memo) @@ -1862,6 +1861,10 @@ class ScatterMatrixXS(MGXS): def correction(self): return self._correction + @property + def order(self): + return self._order + @property def tallies(self): """Construct the OpenMC tallies needed to compute this cross section. @@ -1879,13 +1882,19 @@ class ScatterMatrixXS(MGXS): energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - # Create a list of scores for each Tally to be created - if self.correction == 'P0': - scores = ['flux', 'scatter', 'scatter-P1'] - filters = [[energy], [energy, energyout], [energyout]] - else: - scores = ['flux', 'scatter'] - filters = [[energy], [energy, energyout]] + # Create lists of scores, filters for each Tally to be created + scores = ['flux'] + filters = [[energy]] + + # Create separate tallies for each moment + for moment in range(self.order+1): + scores.append('scatter-{}'.format(moment)) + filters.append([energy, energyout]) + + # Append to the lists for the P0 approximation if needed + if self.correction == 'P0' and self.order == 0: + scores.append('scatter-1') + filters.append([energyout]) estimator = 'analog' keys = scores @@ -1899,16 +1908,25 @@ class ScatterMatrixXS(MGXS): def rxn_rate_tally(self): if self._rxn_rate_tally is None: + # If using P0 correction subtract scatter-P1 from the diagonal - if self.correction == 'P0': - scatter_p1 = self.tallies['scatter-P1'] - scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) - energy_filter = self.tallies['scatter'].find_filter('energy') + if self.correction == 'P0' and self.order == 0: + scatter_p1 = self.tallies['scatter-1'] + scatter_p1 = scatter_p1.get_slice(scores=['scatter-1']) + energy_filter = self.tallies['scatter-0'].find_filter('energy') energy_filter = copy.deepcopy(energy_filter) scatter_p1 = scatter_p1.diagonalize_filter(energy_filter) - self._rxn_rate_tally = self.tallies['scatter'] - scatter_p1 + self._rxn_rate_tally = self.tallies['scatter-0'] - scatter_p1 + + # Merge all scattering moments into a single reaction rate Tally else: - self._rxn_rate_tally = self.tallies['scatter'] + rxn_rate_tally = self.tallies['scatter-0'] + for moment in range(1, self.order+1): + scatter_key = 'scatter-{}'.format(moment) + scatter_pn = self.tallies[scatter_key] + rxn_rate_tally = rxn_rate_tally.merge(scatter_pn) + + self._rxn_rate_tally = rxn_rate_tally self._rxn_rate_tally.sparse = self.sparse @@ -1917,8 +1935,27 @@ class ScatterMatrixXS(MGXS): @correction.setter def correction(self, correction): cv.check_value('correction', correction, ('P0', None)) + + if correction == 'P0' and self.order > 0: + msg = 'The P0 correction will be ignored since the scattering ' \ + 'order {} is greater than zero'.format(self.order) + warnings.warn(msg) + self._correction = correction + @order.setter + def order(self, order): + cv.check_type('order', order, Integral) + cv.check_greater_than('order', order, 0, equality=True) + + if self.correction == 'P0' and self.order > 0: + msg = 'The P0 correction will be ignored since the scattering ' \ + 'order {} is greater than zero'.format(self.order) + warnings.warn(msg, RuntimeWarning) + + self._order = order + + # FIXME: Add order param def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): """Build a sliced ScatterMatrix for the specified nuclides and energy groups. @@ -1971,8 +2008,8 @@ class ScatterMatrixXS(MGXS): slice_xs.sparse = self.sparse return slice_xs - def get_xs(self, in_groups='all', out_groups='all', - subdomains='all', nuclides='all', xs_type='macro', + def get_xs(self, in_groups='all', out_groups='all', subdomains='all', + nuclides='all', moment='all', xs_type='macro', order_groups='increasing', value='mean'): """Returns an array of multi-group cross sections. @@ -1992,6 +2029,10 @@ class ScatterMatrixXS(MGXS): special string 'all' will return the cross sections for all nuclides in the spatial domain. The special string 'sum' will return the cross section summed over all nuclides. Defaults to 'all'. + moment : int or 'all' + The scattering matrix moment to return. All moments will be + returned if the moment is 'all' (default); otherwise, a specific + moment will be returned. xs_type: {'macro', 'micro'} Return the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. @@ -2044,6 +2085,15 @@ class ScatterMatrixXS(MGXS): filters.append('energyout') filter_bins.append((self.energy_groups.get_group_bounds(group),)) + # Construct CrossScore for requested scattering moment + if moment != 'all': + cv.check_type('moment', moment, Integral) + cv.check_greater_than('moment', moment, 0, equality=True) + cv.check_less_than('moment', moment, self.order, equality=True) + scores = [self.xs_tally.scores[moment]] + else: + scores = [] + # Construct a collection of the nuclides to retrieve from the xs tally if self.by_nuclide: if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: @@ -2056,10 +2106,10 @@ class ScatterMatrixXS(MGXS): # Use tally summation if user requested the sum for all nuclides if nuclides == 'sum' or nuclides == ['sum']: xs_tally = self.xs_tally.summation(nuclides=query_nuclides) - xs = xs_tally.get_values(filters=filters, + xs = xs_tally.get_values(scores=scores, filters=filters, filter_bins=filter_bins, value=value) else: - xs = self.xs_tally.get_values(filters=filters, + xs = self.xs_tally.get_values(scores=scores, filters=filters, filter_bins=filter_bins, nuclides=query_nuclides, value=value) @@ -2101,7 +2151,8 @@ class ScatterMatrixXS(MGXS): return xs - def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): + def print_xs(self, subdomains='all', nuclides='all', + xs_type='macro', moment=0): """Prints a string representation for the multi-group cross section. Parameters @@ -2118,6 +2169,8 @@ class ScatterMatrixXS(MGXS): xs_type: {'macro', 'micro'} Return the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + moment : int + The scattering moment to print (default is 0) """ @@ -2142,9 +2195,14 @@ class ScatterMatrixXS(MGXS): cv.check_value('xs_type', xs_type, ['macro', 'micro']) + if self.correction != 'P0': + rxn_type= '{0} (moment {1})'.format(self.rxn_type, moment) + else: + rxn_type = self.rxn_type + # Build header for string with type and domain info string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', rxn_type) string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) @@ -2189,11 +2247,11 @@ class ScatterMatrixXS(MGXS): string += template.format('', in_group, out_group) average = \ self.get_xs([in_group], [out_group], - [subdomain], [nuclide], + [subdomain], [nuclide], moment=moment, xs_type=xs_type, value='mean') rel_err = \ self.get_xs([in_group], [out_group], - [subdomain], [nuclide], + [subdomain], [nuclide], moment=moment, xs_type=xs_type, value='rel_err') average = average.flatten()[0] rel_err = rel_err.flatten()[0] * 100. @@ -2206,6 +2264,8 @@ class ScatterMatrixXS(MGXS): print(string) +# FIXME: Add order property to Library + class NuScatterMatrixXS(ScatterMatrixXS): """A scattering production matrix multi-group cross section.""" @@ -2228,28 +2288,35 @@ class NuScatterMatrixXS(ScatterMatrixXS): # Instantiate tallies if they do not exist if self._tallies is None: - # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - # Create a list of scores for each Tally to be created - if self.correction == 'P0': - scores = ['flux', 'nu-scatter', 'scatter-P1'] - estimator = 'analog' - keys = ['flux', 'scatter', 'scatter-P1'] - filters = [[energy], [energy, energyout], [energyout]] - else: - scores = ['flux', 'nu-scatter'] - estimator = 'analog' - keys = ['flux', 'scatter'] - filters = [[energy], [energy, energyout]] + # Create lists of scores, filters for each Tally to be created + scores = ['flux'] + filters = [[energy]] + keys = ['flux'] + + # Create separate tallies for each moment + for moment in range(self.order+1): + scores.append('nu-scatter-{}'.format(moment)) + filters.append([energy, energyout]) + keys.append('scatter-{}'.format(moment)) + + # Append to the lists for the P0 approximation if needed + if self.correction == 'P0' and self.order == 0: + scores.append('scatter-1') + filters.append([energyout]) + keys.append('scatter-1') + + estimator = 'analog' # Intialize the Tallies self._create_tallies(scores, filters, keys, estimator) return self._tallies + class Chi(MGXS): """The fission spectrum.""" diff --git a/openmc/tallies.py b/openmc/tallies.py index 3a5a1f1e8..dc431ddf9 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1637,7 +1637,7 @@ class Tally(object): for score in self.scores: if isinstance(score, (basestring, CrossScore)): - scores.append(score) + scores.append(str(score)) elif isinstance(score, AggregateScore): scores.append(score.name) column_name = '{0}(score)'.format(score.aggregate_op) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 90c703d27..b69235690 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3338,28 +3338,17 @@ contains case ('nu-scatter') t % score_bins(j) = SCORE_NU_SCATTER - - ! Set tally estimator to analog t % estimator = ESTIMATOR_ANALOG + case ('scatter-n') - if (n_order == 0) then - t % score_bins(j) = SCORE_SCATTER - else - t % score_bins(j) = SCORE_SCATTER_N - ! Set tally estimator to analog - t % estimator = ESTIMATOR_ANALOG - end if + t % score_bins(j) = SCORE_SCATTER_N t % moment_order(j) = n_order + t % estimator = ESTIMATOR_ANALOG case ('nu-scatter-n') - ! Set tally estimator to analog - t % estimator = ESTIMATOR_ANALOG - if (n_order == 0) then - t % score_bins(j) = SCORE_NU_SCATTER - else - t % score_bins(j) = SCORE_NU_SCATTER_N - end if + t % score_bins(j) = SCORE_NU_SCATTER_N t % moment_order(j) = n_order + t % estimator = ESTIMATOR_ANALOG case ('scatter-pn') t % estimator = ESTIMATOR_ANALOG diff --git a/src/state_point.F90 b/src/state_point.F90 index 4348ad331..10979ee9e 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -330,11 +330,11 @@ contains MOMENT_LOOP: do j = 1, tally % n_user_score_bins select case(tally % score_bins(k)) case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) - str_array(k) = 'P' // trim(to_str(tally % moment_order(k))) + str_array(k) = trim(to_str(tally % moment_order(k))) k = k + 1 case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN) do n_order = 0, tally % moment_order(k) - str_array(k) = 'P' // trim(to_str(n_order)) + str_array(k) = trim(to_str(n_order)) k = k + 1 end do case (SCORE_SCATTER_YN, SCORE_NU_SCATTER_YN, SCORE_FLUX_YN, & From 2dae4f9a69bac6c6e34c610a6f5dc27992eb91e2 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 May 2016 12:17:55 -0400 Subject: [PATCH 156/259] Added legendre moment parameter to Pandas DF construction for ScatterMatrixXS --- openmc/mgxs/mgxs.py | 67 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 5 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 9c3b32657..e5ba9b4ac 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1833,14 +1833,15 @@ class NuScatterXS(MGXS): class ScatterMatrixXS(MGXS): - """A scattering matrix multi-group cross section. + """A scattering matrix multi-group cross section for one or more Legendre + moments. Attributes ---------- correction : 'P0' or None Apply the P0 correction to scattering matrices if set to 'P0' order : int - The highest order in the scattering matrix (default is 0) + The highest legendre moment in the scattering matrix (default is 0) """ @@ -1869,8 +1870,8 @@ class ScatterMatrixXS(MGXS): def tallies(self): """Construct the OpenMC tallies needed to compute this cross section. - This method constructs three analog tallies to compute the 'flux', - 'scatter' and 'scatter-P1' reaction rates in the spatial domain and + This method constructs three analog tallies to compute the 'flux' + and Legendre scattering moment reaction rates in the spatial domain and energy groups of interest. """ @@ -1955,7 +1956,6 @@ class ScatterMatrixXS(MGXS): self._order = order - # FIXME: Add order param def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): """Build a sliced ScatterMatrix for the specified nuclides and energy groups. @@ -2151,6 +2151,63 @@ class ScatterMatrixXS(MGXS): return xs + def get_pandas_dataframe(self, groups='all', nuclides='all', moment='all', + xs_type='macro', summary=None): + """Build a Pandas DataFrame for the MGXS data. + + This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but + renames the columns with terminology appropriate for cross section data. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the dataframe. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will include the cross sections for all + nuclides in the spatial domain. The special string 'sum' will + include the cross sections summed over all nuclides. Defaults + to 'all'. + moment : int or 'all' + The scattering matrix moment to return. All moments will be + returned if the moment is 'all' (default); otherwise, a specific + moment will be returned. + xs_type: {'macro', 'micro'} + Return macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + summary : None or openmc.Summary + An optional Summary object to be used to construct columns for + distribcell tally filters (default is None). The geometric + information in the Summary object is embedded into a multi-index + column with a geometric "path" to each distribcell intance. + NOTE: This option requires the OpenCG Python package. + + Returns + ------- + pandas.DataFrame + A Pandas DataFrame for the cross section data. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + df = super(ScatterMatrixXS, self).get_pandas_dataframe( + groups, nuclides, xs_type, summary) + + # Select rows corresponding to requested scattering moment + if moment != 'all': + cv.check_type('moment', moment, Integral) + cv.check_greater_than('moment', moment, 0, equality=True) + cv.check_less_than('moment', moment, self.order, equality=True) + df = df[df['score'] == str(self.xs_tally.scores[moment])] + + return df + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro', moment=0): """Prints a string representation for the multi-group cross section. From 8f6961fec514e1c8bacd1d5f6834f3c8e25f618e Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 May 2016 12:48:43 -0400 Subject: [PATCH 157/259] Added legendre moment order to get_slice method for ScatterMatrixXS --- openmc/mgxs/library.py | 30 ++++++++++++++----- openmc/mgxs/mgxs.py | 66 ++++++++++++++++++++++++++---------------- 2 files changed, 64 insertions(+), 32 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index f3bf2018d..a7defba5d 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -2,6 +2,7 @@ import sys import os import copy import pickle +import warnings from numbers import Integral from collections import OrderedDict @@ -57,6 +58,8 @@ class Library(object): The spatial domain(s) for which MGXS in the Library are computed correction : {'P0', None} Apply the P0 correction to scattering matrices if set to 'P0' + legendre_order : int + The highest legendre moments in the scattering matrices (default is 0) energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation tally_trigger : openmc.Trigger @@ -89,8 +92,9 @@ class Library(object): self._mgxs_types = [] self._domain_type = None self._domains = 'all' - self._correction = 'P0' self._energy_groups = None + self._correction = 'P0' + self._legendre_order = 0 self._tally_trigger = None self._all_mgxs = OrderedDict() self._sp_filename = None @@ -118,6 +122,7 @@ class Library(object): clone._domain_type = self.domain_type clone._domains = copy.deepcopy(self.domains) clone._correction = self.correction + clone._legendre_order = self.legendre_order clone._energy_groups = copy.deepcopy(self.energy_groups, memo) clone._tally_trigger = copy.deepcopy(self.tally_trigger, memo) clone._all_mgxs = copy.deepcopy(self.all_mgxs) @@ -185,13 +190,17 @@ class Library(object): else: return self._domains + @property + def energy_groups(self): + return self._energy_groups + @property def correction(self): return self._correction @property - def energy_groups(self): - return self._energy_groups + def legendre_order(self): + return self._legendre_order @property def tally_trigger(self): @@ -280,15 +289,21 @@ class Library(object): self._domains = domains + @energy_groups.setter + def energy_groups(self, energy_groups): + cv.check_type('energy groups', energy_groups, openmc.mgxs.EnergyGroups) + self._energy_groups = energy_groups + @correction.setter def correction(self, correction): cv.check_value('correction', correction, ('P0', None)) self._correction = correction - @energy_groups.setter - def energy_groups(self, energy_groups): - cv.check_type('energy groups', energy_groups, openmc.mgxs.EnergyGroups) - self._energy_groups = energy_groups + @legendre_order.setter + def legendre_order(self, legendre_order): + cv.check_type('legendre_order', legendre_order, Integral) + cv.check_greater_than('legendre_order', legendre_order, 0, equality=True) + self._legendre_order = legendre_order @tally_trigger.setter def tally_trigger(self, tally_trigger): @@ -344,6 +359,7 @@ class Library(object): # Specify whether to use a transport ('P0') correction if isinstance(mgxs, openmc.mgxs.ScatterMatrixXS): mgxs.correction = self.correction + mgxs.legendre_order = self.legendre_order self.all_mgxs[domain.id][mgxs_type] = mgxs diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e5ba9b4ac..9a60d2493 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1840,7 +1840,7 @@ class ScatterMatrixXS(MGXS): ---------- correction : 'P0' or None Apply the P0 correction to scattering matrices if set to 'P0' - order : int + legendre_order : int The highest legendre moment in the scattering matrix (default is 0) """ @@ -1851,11 +1851,12 @@ class ScatterMatrixXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'scatter matrix' self._correction = 'P0' - self._order = 0 + self._legendre_order = 0 def __deepcopy__(self, memo): clone = super(ScatterMatrixXS, self).__deepcopy__(memo) clone._correction = self.correction + clone._legendre_order = self.legendre_order return clone @property @@ -1863,8 +1864,8 @@ class ScatterMatrixXS(MGXS): return self._correction @property - def order(self): - return self._order + def legendre_order(self): + return self._legendre_order @property def tallies(self): @@ -1888,12 +1889,12 @@ class ScatterMatrixXS(MGXS): filters = [[energy]] # Create separate tallies for each moment - for moment in range(self.order+1): + for moment in range(self.legendre_order+1): scores.append('scatter-{}'.format(moment)) filters.append([energy, energyout]) # Append to the lists for the P0 approximation if needed - if self.correction == 'P0' and self.order == 0: + if self.correction == 'P0' and self.legendre_order == 0: scores.append('scatter-1') filters.append([energyout]) @@ -1911,7 +1912,7 @@ class ScatterMatrixXS(MGXS): if self._rxn_rate_tally is None: # If using P0 correction subtract scatter-P1 from the diagonal - if self.correction == 'P0' and self.order == 0: + if self.correction == 'P0' and self.legendre_order == 0: scatter_p1 = self.tallies['scatter-1'] scatter_p1 = scatter_p1.get_slice(scores=['scatter-1']) energy_filter = self.tallies['scatter-0'].find_filter('energy') @@ -1922,7 +1923,7 @@ class ScatterMatrixXS(MGXS): # Merge all scattering moments into a single reaction rate Tally else: rxn_rate_tally = self.tallies['scatter-0'] - for moment in range(1, self.order+1): + for moment in range(1, self.legendre_order+1): scatter_key = 'scatter-{}'.format(moment) scatter_pn = self.tallies[scatter_key] rxn_rate_tally = rxn_rate_tally.merge(scatter_pn) @@ -1937,26 +1938,27 @@ class ScatterMatrixXS(MGXS): def correction(self, correction): cv.check_value('correction', correction, ('P0', None)) - if correction == 'P0' and self.order > 0: + if correction == 'P0' and self.legendre_order > 0: msg = 'The P0 correction will be ignored since the scattering ' \ - 'order {} is greater than zero'.format(self.order) + 'order {} is greater than zero'.format(self.legendre_order) warnings.warn(msg) self._correction = correction - @order.setter - def order(self, order): - cv.check_type('order', order, Integral) - cv.check_greater_than('order', order, 0, equality=True) + @legendre_order.setter + def legendre_order(self, legendre_order): + cv.check_type('legendre_order', legendre_order, Integral) + cv.check_greater_than('legendre_order', legendre_order, 0, equality=True) - if self.correction == 'P0' and self.order > 0: + if self.correction == 'P0' and legendre_order > 0: msg = 'The P0 correction will be ignored since the scattering ' \ - 'order {} is greater than zero'.format(self.order) + 'order {} is greater than zero'.format(self.legendre_order) warnings.warn(msg, RuntimeWarning) - self._order = order + self._legendre_order = legendre_order - def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): + def get_slice(self, nuclides=[], in_groups=[], out_groups=[], + legendre_order='same'): """Build a sliced ScatterMatrix for the specified nuclides and energy groups. @@ -1976,6 +1978,12 @@ class ScatterMatrixXS(MGXS): out_groups : list of int A list of outgoing energy group indices starting at 1 for the high energies (e.g., [1, 2, 3]; default is []) + legendre_order : int or 'same' + The highest Legendre moment in the sliced MGXS. If order is 'same' + then the sliced MGXS will have the same Legendre moments as the + original MGXS (default). If order is an integer less than the + original MGXS' order, then only those Legendre moments up to that + order will be included in the sliced MGXS. Returns ------- @@ -1990,6 +1998,16 @@ class ScatterMatrixXS(MGXS): slice_xs._rxn_rate_tally = None slice_xs._xs_tally = None + # Slice the Legendre order if needed + if legendre_order != 'same': + cv.check_type('legendre_order', legendre_order, Integral) + cv.check_less_than('legendre_order', legendre_order, + self.legendre_order, equality=True) + slice_xs.legendre_order = legendre_order + + for moment in range(legendre_order+1, self.legendre_order+1): + del slice_xs.tallies['scatter-{}'.format(moment)] + # Slice outgoing energy groups if needed if len(out_groups) != 0: filter_bins = [] @@ -2089,7 +2107,7 @@ class ScatterMatrixXS(MGXS): if moment != 'all': cv.check_type('moment', moment, Integral) cv.check_greater_than('moment', moment, 0, equality=True) - cv.check_less_than('moment', moment, self.order, equality=True) + cv.check_less_than('moment', moment, 10, equality=True) scores = [self.xs_tally.scores[moment]] else: scores = [] @@ -2203,7 +2221,7 @@ class ScatterMatrixXS(MGXS): if moment != 'all': cv.check_type('moment', moment, Integral) cv.check_greater_than('moment', moment, 0, equality=True) - cv.check_less_than('moment', moment, self.order, equality=True) + cv.check_less_than('moment', moment, 10, equality=True) df = df[df['score'] == str(self.xs_tally.scores[moment])] return df @@ -2253,7 +2271,7 @@ class ScatterMatrixXS(MGXS): cv.check_value('xs_type', xs_type, ['macro', 'micro']) if self.correction != 'P0': - rxn_type= '{0} (moment {1})'.format(self.rxn_type, moment) + rxn_type= '{0} (P{1})'.format(self.rxn_type, moment) else: rxn_type = self.rxn_type @@ -2321,8 +2339,6 @@ class ScatterMatrixXS(MGXS): print(string) -# FIXME: Add order property to Library - class NuScatterMatrixXS(ScatterMatrixXS): """A scattering production matrix multi-group cross section.""" @@ -2355,13 +2371,13 @@ class NuScatterMatrixXS(ScatterMatrixXS): keys = ['flux'] # Create separate tallies for each moment - for moment in range(self.order+1): + for moment in range(self.legendre_order+1): scores.append('nu-scatter-{}'.format(moment)) filters.append([energy, energyout]) keys.append('scatter-{}'.format(moment)) # Append to the lists for the P0 approximation if needed - if self.correction == 'P0' and self.order == 0: + if self.correction == 'P0' and self.legendre_order == 0: scores.append('scatter-1') filters.append([energyout]) keys.append('scatter-1') From 41e8f83c603d5a20d735da3e09212bec94666a8d Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 May 2016 13:17:57 -0400 Subject: [PATCH 158/259] Hard over-ride of ScatterMatrixXS correction with higher order legendre moments --- openmc/mgxs/mgxs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 7405b71fd..d8b80cc43 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1959,6 +1959,7 @@ class ScatterMatrixXS(MGXS): msg = 'The P0 correction will be ignored since the scattering ' \ 'order {} is greater than zero'.format(self.legendre_order) warnings.warn(msg, RuntimeWarning) + self.correction = None self._legendre_order = legendre_order From 9e5460321ffe1f4dd0966c41ee8f21b27857a0e6 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 May 2016 13:26:42 -0400 Subject: [PATCH 159/259] Updated MGXS test results to include Pandas DF column for scores --- openmc/mgxs/mgxs.py | 16 +- .../inputs_true.dat | 2 +- .../results_true.dat | 98 +- .../inputs_true.dat | 2 +- .../results_true.dat | 10 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- .../inputs_true.dat | 2 +- .../results_true.dat | 242 +- .../inputs_true.dat | 2 +- .../results_true.dat | 3942 ++++++++--------- 10 files changed, 2156 insertions(+), 2162 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d8b80cc43..051dd3cf1 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1534,7 +1534,7 @@ class TransportXS(MGXS): """Construct the OpenMC tallies needed to compute this cross section. This method constructs three analog tallies to compute the 'flux', - 'total' and 'scatter-P1' reaction rates in the spatial domain and + 'total' and 'scatter-1' reaction rates in the spatial domain and energy groups of interest. """ @@ -1543,7 +1543,7 @@ class TransportXS(MGXS): if self._tallies is None: # Create a list of scores for each Tally to be created - scores = ['flux', 'total', 'scatter-P1'] + scores = ['flux', 'total', 'scatter-1'] estimator = 'analog' keys = scores @@ -1561,15 +1561,9 @@ class TransportXS(MGXS): @property def rxn_rate_tally(self): if self._rxn_rate_tally is None: - scatter_p1 = copy.deepcopy(self.tallies['scatter-P1']) - - # Use tally slicing to remove scatter-P0 data from scatter-P1 tally - self.tallies['scatter-P1'] = \ - scatter_p1.get_slice(scores=['scatter-P1']) - - self.tallies['scatter-P1'].filters[-1].type = 'energy' + self.tallies['scatter-1'].filters[-1].type = 'energy' self._rxn_rate_tally = \ - self.tallies['total'] - self.tallies['scatter-P1'] + self.tallies['total'] - self.tallies['scatter-1'] self._rxn_rate_tally.sparse = self.sparse return self._rxn_rate_tally @@ -1916,7 +1910,7 @@ class ScatterMatrixXS(MGXS): if self._rxn_rate_tally is None: - # If using P0 correction subtract scatter-P1 from the diagonal + # If using P0 correction subtract scatter-1 from the diagonal if self.correction == 'P0' and self.legendre_order == 0: scatter_p1 = self.tallies['scatter-1'] scatter_p1 = scatter_p1.get_slice(scores=['scatter-1']) diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index 51fc95c60..708ec114e 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -3e7b4ee62e0a53b92d4241f33493786532934f20ebcf47d92825bb1ee2f67c52aa8e7832cf28a9911221f802da205fba2b23c7228899780089da69e21042743c \ No newline at end of file +e3834da92fc6ae57ce109621e3f692a186a03820b61332fa9ed898bc07fb8a63484ace095713d5b88196b1d2f1430d2e7b27a505944c7c3027f6365801f58146 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 438215372..7e8a49673 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,49 +1,49 @@ - material group in nuclide mean std. dev. -0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. -0 1 1 total 0.076425 0.003691 material group in group out nuclide mean std. dev. -0 1 1 1 total 0.345643 0.021487 material group out nuclide mean std. dev. -0 1 1 total 1.0 0.055333 material group in nuclide mean std. dev. -0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. -0 2 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 2 1 1 total 0.241262 0.00841 material group out nuclide mean std. dev. -0 2 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 3 1 total 0.400028 0.034667 material group in nuclide mean std. dev. -0 3 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 3 1 1 total 0.393462 0.033646 material group out nuclide mean std. dev. -0 3 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 4 1 total 0.377402 0.072937 material group in nuclide mean std. dev. -0 4 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 4 1 1 total 0.371473 0.071226 material group out nuclide mean std. dev. -0 4 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 5 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 5 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 6 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 6 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 7 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 7 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 8 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 8 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 9 1 total 0.600536 0.748875 material group in nuclide mean std. dev. -0 9 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 9 1 1 total 0.600536 0.748875 material group out nuclide mean std. dev. -0 9 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 10 1 total 0.235515 0.613974 material group in nuclide mean std. dev. -0 10 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 10 1 1 total 0.235515 0.613974 material group out nuclide mean std. dev. -0 10 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 11 1 total 0.510145 0.741941 material group in nuclide mean std. dev. -0 11 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 11 1 1 total 0.491857 0.715554 material group out nuclide mean std. dev. -0 11 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 12 1 total 0.73836 0.825631 material group in nuclide mean std. dev. -0 12 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 12 1 1 total 0.723265 0.808231 material group out nuclide mean std. dev. -0 12 1 total 0.0 0.0 \ No newline at end of file + material group in nuclide score mean std. dev. +0 1 1 total ((total - scatter-1) / flux) 4.12e-01 2.36e-02 material group in nuclide score mean std. dev. +0 1 1 total (nu-fission / flux) 7.64e-02 3.69e-03 material group in group out nuclide score mean std. dev. +0 1 1 1 total ((nu-scatter-0 - scatter-1) / flux) 3.46e-01 2.15e-02 material group out nuclide score mean std. dev. +0 1 1 total nu-fission 1.00e+00 5.53e-02 material group in nuclide score mean std. dev. +0 2 1 total ((total - scatter-1) / flux) 2.41e-01 8.41e-03 material group in nuclide score mean std. dev. +0 2 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 2 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.41e-01 8.41e-03 material group out nuclide score mean std. dev. +0 2 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 3 1 total ((total - scatter-1) / flux) 4.00e-01 3.47e-02 material group in nuclide score mean std. dev. +0 3 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 3 1 1 total ((nu-scatter-0 - scatter-1) / flux) 3.93e-01 3.36e-02 material group out nuclide score mean std. dev. +0 3 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 4 1 total ((total - scatter-1) / flux) 3.77e-01 7.29e-02 material group in nuclide score mean std. dev. +0 4 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 4 1 1 total ((nu-scatter-0 - scatter-1) / flux) 3.71e-01 7.12e-02 material group out nuclide score mean std. dev. +0 4 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 5 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 5 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 5 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +0 5 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 6 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 6 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 6 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +0 6 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 7 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 7 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 7 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +0 7 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 8 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 8 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 8 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +0 8 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 9 1 total ((total - scatter-1) / flux) 6.01e-01 7.49e-01 material group in nuclide score mean std. dev. +0 9 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 9 1 1 total ((nu-scatter-0 - scatter-1) / flux) 6.01e-01 7.49e-01 material group out nuclide score mean std. dev. +0 9 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 10 1 total ((total - scatter-1) / flux) 2.36e-01 6.14e-01 material group in nuclide score mean std. dev. +0 10 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 10 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.36e-01 6.14e-01 material group out nuclide score mean std. dev. +0 10 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 11 1 total ((total - scatter-1) / flux) 5.10e-01 7.42e-01 material group in nuclide score mean std. dev. +0 11 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 11 1 1 total ((nu-scatter-0 - scatter-1) / flux) 4.92e-01 7.16e-01 material group out nuclide score mean std. dev. +0 11 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +0 12 1 total ((total - scatter-1) / flux) 7.38e-01 8.26e-01 material group in nuclide score mean std. dev. +0 12 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +0 12 1 1 total ((nu-scatter-0 - scatter-1) / flux) 7.23e-01 8.08e-01 material group out nuclide score mean std. dev. +0 12 1 total nu-fission 0.00e+00 0.00e+00 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 78ffa3faf..4ab730274 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -2c078f650fed5fc241f42b2d7404fb7fae59d782102fad66b4cd2c8a4b1f266d64e8ce1ec0556117c2a2b1fe49aa583f340dc43df3ddc9320557aa97bb554c05 \ No newline at end of file +aadb1e94492741c091bff4b5e17634ee327c718fc9fd1f27aa22fe8406fb70f732750dfdceb30eb40b5e4f406061bea6bd5235ba613c3c81009f5857a9051728 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 0d5c7c7b4..a23417d92 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ - avg(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.718919 0.520644 avg(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.0 0.0 avg(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.695166 0.510606 avg(distribcell) group out nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 \ No newline at end of file + avg(distribcell) group in nuclide score mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total ((total - scatter-1) / flux) 7.19e-01 5.21e-01 avg(distribcell) group in nuclide score mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total (nu-fission / flux) 0.00e+00 0.00e+00 avg(distribcell) group in group out nuclide score mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total ((nu-scatter-0 - scatter-1) / flux) 6.95e-01 5.11e-01 avg(distribcell) group out nuclide score mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total nu-fission 0.00e+00 0.00e+00 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index 51fc95c60..708ec114e 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -3e7b4ee62e0a53b92d4241f33493786532934f20ebcf47d92825bb1ee2f67c52aa8e7832cf28a9911221f802da205fba2b23c7228899780089da69e21042743c \ No newline at end of file +e3834da92fc6ae57ce109621e3f692a186a03820b61332fa9ed898bc07fb8a63484ace095713d5b88196b1d2f1430d2e7b27a505944c7c3027f6365801f58146 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index 51fc95c60..708ec114e 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -3e7b4ee62e0a53b92d4241f33493786532934f20ebcf47d92825bb1ee2f67c52aa8e7832cf28a9911221f802da205fba2b23c7228899780089da69e21042743c \ No newline at end of file +e3834da92fc6ae57ce109621e3f692a186a03820b61332fa9ed898bc07fb8a63484ace095713d5b88196b1d2f1430d2e7b27a505944c7c3027f6365801f58146 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 442b8ac7b..c279653e5 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,121 +1,121 @@ - material group in nuclide mean std. dev. -1 1 1 total 0.372745 0.024269 -0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. -1 1 1 total 0.021789 0.001182 -0 1 2 total 0.714077 0.040552 material group in group out nuclide mean std. dev. -3 1 1 1 total 0.337397 0.023039 -2 1 1 2 total 0.001559 0.000510 -1 1 2 1 total 0.000000 0.000000 -0 1 2 2 total 0.422051 0.021617 material group out nuclide mean std. dev. -1 1 1 total 1.0 0.055333 -0 1 2 total 0.0 0.000000 material group in nuclide mean std. dev. -1 2 1 total 0.237254 0.008184 -0 2 2 total 0.285930 0.048796 material group in nuclide mean std. dev. -1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 2 1 1 total 0.237254 0.008184 -2 2 1 2 total 0.000000 0.000000 -1 2 2 1 total 0.000000 0.000000 -0 2 2 2 total 0.285930 0.048796 material group out nuclide mean std. dev. -1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 3 1 total 0.286906 0.027401 -0 3 2 total 1.418151 0.265308 material group in nuclide mean std. dev. -1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 3 1 1 total 0.259937 0.026115 -2 3 1 2 total 0.026187 0.001665 -1 3 2 1 total 0.000000 0.000000 -0 3 2 2 total 1.359521 0.258505 material group out nuclide mean std. dev. -1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 4 1 total 0.242447 0.061031 -0 4 2 total 1.253959 0.388363 material group in nuclide mean std. dev. -1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 4 1 1 total 0.217930 0.058565 -2 4 1 2 total 0.023662 0.003083 -1 4 2 1 total 0.000000 0.000000 -0 4 2 2 total 1.215074 0.381025 material group out nuclide mean std. dev. -1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 5 1 1 total 0.0 0.0 -2 5 1 2 total 0.0 0.0 -1 5 2 1 total 0.0 0.0 -0 5 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 6 1 1 total 0.0 0.0 -2 6 1 2 total 0.0 0.0 -1 6 2 1 total 0.0 0.0 -0 6 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 7 1 1 total 0.0 0.0 -2 7 1 2 total 0.0 0.0 -1 7 2 1 total 0.0 0.0 -0 7 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 8 1 1 total 0.0 0.0 -2 8 1 2 total 0.0 0.0 -1 8 2 1 total 0.0 0.0 -0 8 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 9 1 total 0.600536 0.748875 -0 9 2 total 0.000000 0.000000 material group in nuclide mean std. dev. -1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 9 1 1 total 0.600536 0.748875 -2 9 1 2 total 0.000000 0.000000 -1 9 2 1 total 0.000000 0.000000 -0 9 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. -1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 10 1 total 0.235515 0.613974 -0 10 2 total 0.000000 0.000000 material group in nuclide mean std. dev. -1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 10 1 1 total 0.235515 0.613974 -2 10 1 2 total 0.000000 0.000000 -1 10 2 1 total 0.000000 0.000000 -0 10 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. -1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 11 1 total 0.186324 0.632129 -0 11 2 total 0.945986 1.591133 material group in nuclide mean std. dev. -1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 11 1 1 total 0.154449 0.597686 -2 11 1 2 total 0.031875 0.045078 -1 11 2 1 total 0.000000 0.000000 -0 11 2 2 total 0.903085 1.532144 material group out nuclide mean std. dev. -1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 12 1 total 0.213292 0.271444 -0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 12 1 1 total 0.186052 0.257633 -2 12 1 2 total 0.027240 0.029555 -1 12 2 1 total 0.000000 0.000000 -0 12 2 2 total 1.357118 2.089846 material group out nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 \ No newline at end of file + material group in nuclide score mean std. dev. +1 1 1 total ((total - scatter-1) / flux) 3.73e-01 2.43e-02 +0 1 2 total ((total - scatter-1) / flux) 8.62e-01 3.23e-02 material group in nuclide score mean std. dev. +1 1 1 total (nu-fission / flux) 2.18e-02 1.18e-03 +0 1 2 total (nu-fission / flux) 7.14e-01 4.06e-02 material group in group out nuclide score mean std. dev. +3 1 1 1 total ((nu-scatter-0 - scatter-1) / flux) 3.37e-01 2.30e-02 +2 1 1 2 total ((nu-scatter-0 - scatter-1) / flux) 1.56e-03 5.10e-04 +1 1 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 1 2 2 total ((nu-scatter-0 - scatter-1) / flux) 4.22e-01 2.16e-02 material group out nuclide score mean std. dev. +1 1 1 total nu-fission 1.00e+00 5.53e-02 +0 1 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 2 1 total ((total - scatter-1) / flux) 2.37e-01 8.18e-03 +0 2 2 total ((total - scatter-1) / flux) 2.86e-01 4.88e-02 material group in nuclide score mean std. dev. +1 2 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 2 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 2 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.37e-01 8.18e-03 +2 2 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 2 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 2 2 2 total ((nu-scatter-0 - scatter-1) / flux) 2.86e-01 4.88e-02 material group out nuclide score mean std. dev. +1 2 1 total nu-fission 0.00e+00 0.00e+00 +0 2 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 3 1 total ((total - scatter-1) / flux) 2.87e-01 2.74e-02 +0 3 2 total ((total - scatter-1) / flux) 1.42e+00 2.65e-01 material group in nuclide score mean std. dev. +1 3 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 3 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 3 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.60e-01 2.61e-02 +2 3 1 2 total ((nu-scatter-0 - scatter-1) / flux) 2.62e-02 1.66e-03 +1 3 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 3 2 2 total ((nu-scatter-0 - scatter-1) / flux) 1.36e+00 2.59e-01 material group out nuclide score mean std. dev. +1 3 1 total nu-fission 0.00e+00 0.00e+00 +0 3 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 4 1 total ((total - scatter-1) / flux) 2.42e-01 6.10e-02 +0 4 2 total ((total - scatter-1) / flux) 1.25e+00 3.88e-01 material group in nuclide score mean std. dev. +1 4 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 4 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 4 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.18e-01 5.86e-02 +2 4 1 2 total ((nu-scatter-0 - scatter-1) / flux) 2.37e-02 3.08e-03 +1 4 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 4 2 2 total ((nu-scatter-0 - scatter-1) / flux) 1.22e+00 3.81e-01 material group out nuclide score mean std. dev. +1 4 1 total nu-fission 0.00e+00 0.00e+00 +0 4 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 5 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 5 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 5 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 5 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 5 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 5 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 5 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 5 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +1 5 1 total nu-fission 0.00e+00 0.00e+00 +0 5 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 6 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 6 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 6 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 6 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 6 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 6 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 6 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 6 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +1 6 1 total nu-fission 0.00e+00 0.00e+00 +0 6 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 7 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 7 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 7 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 7 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 7 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 7 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 7 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 7 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +1 7 1 total nu-fission 0.00e+00 0.00e+00 +0 7 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 8 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 8 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 8 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 8 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 8 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 8 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 8 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 8 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +1 8 1 total nu-fission 0.00e+00 0.00e+00 +0 8 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 9 1 total ((total - scatter-1) / flux) 6.01e-01 7.49e-01 +0 9 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 9 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 9 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 9 1 1 total ((nu-scatter-0 - scatter-1) / flux) 6.01e-01 7.49e-01 +2 9 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 9 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 9 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +1 9 1 total nu-fission 0.00e+00 0.00e+00 +0 9 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 10 1 total ((total - scatter-1) / flux) 2.36e-01 6.14e-01 +0 10 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 10 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 10 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 10 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.36e-01 6.14e-01 +2 10 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 10 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 10 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +1 10 1 total nu-fission 0.00e+00 0.00e+00 +0 10 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 11 1 total ((total - scatter-1) / flux) 1.86e-01 6.32e-01 +0 11 2 total ((total - scatter-1) / flux) 9.46e-01 1.59e+00 material group in nuclide score mean std. dev. +1 11 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 11 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 11 1 1 total ((nu-scatter-0 - scatter-1) / flux) 1.54e-01 5.98e-01 +2 11 1 2 total ((nu-scatter-0 - scatter-1) / flux) 3.19e-02 4.51e-02 +1 11 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 11 2 2 total ((nu-scatter-0 - scatter-1) / flux) 9.03e-01 1.53e+00 material group out nuclide score mean std. dev. +1 11 1 total nu-fission 0.00e+00 0.00e+00 +0 11 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +1 12 1 total ((total - scatter-1) / flux) 2.13e-01 2.71e-01 +0 12 2 total ((total - scatter-1) / flux) 1.39e+00 2.14e+00 material group in nuclide score mean std. dev. +1 12 1 total (nu-fission / flux) 0.00e+00 0.00e+00 +0 12 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +3 12 1 1 total ((nu-scatter-0 - scatter-1) / flux) 1.86e-01 2.58e-01 +2 12 1 2 total ((nu-scatter-0 - scatter-1) / flux) 2.72e-02 2.96e-02 +1 12 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 12 2 2 total ((nu-scatter-0 - scatter-1) / flux) 1.36e+00 2.09e+00 material group out nuclide score mean std. dev. +1 12 1 total nu-fission 0.00e+00 0.00e+00 +0 12 2 total nu-fission 0.00e+00 0.00e+00 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 9436f03a0..5b7a83037 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -b035f783fa75ada619b0a58675913e318fef94e519c85cae6982f650d7655cb130f625572fde2058e005b490359180cb9d1e1095f5d35d41c9a0f8ff6e0dc3c1 \ No newline at end of file +f1c203fb7f0b141ee608d7bb9223aa5f7ab84966b6a80525879df730d19179f6c6a1a4bc7038d84e6b366b360f43a1ca17a0af8d02f96eb23e53b93a2445380e \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 145521964..99582fa7d 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1,1971 +1,1971 @@ - material group in nuclide mean std. dev. -34 1 1 U-234 0.000173 0.000173 -35 1 1 U-235 0.010677 0.001889 -36 1 1 U-236 0.002390 0.001055 -37 1 1 U-238 0.213680 0.013272 -38 1 1 Np-237 0.000000 0.000000 -39 1 1 Pu-238 0.000000 0.000000 -40 1 1 Pu-239 0.002911 0.000639 -41 1 1 Pu-240 0.004426 0.000806 -42 1 1 Pu-241 0.000690 0.000387 -43 1 1 Pu-242 0.000000 0.000000 -44 1 1 Am-241 0.000173 0.000173 -45 1 1 Am-242m 0.000000 0.000000 -46 1 1 Am-243 0.000000 0.000000 -47 1 1 Cm-242 0.000000 0.000000 -48 1 1 Cm-243 0.000000 0.000000 -49 1 1 Cm-244 0.000000 0.000000 -50 1 1 Cm-245 0.000000 0.000000 -51 1 1 Mo-95 0.000000 0.000000 -52 1 1 Tc-99 0.000173 0.000173 -53 1 1 Ru-101 0.000238 0.000254 -54 1 1 Ru-103 0.000002 0.000243 -55 1 1 Ag-109 0.000000 0.000000 -56 1 1 Xe-135 0.000000 0.000000 -57 1 1 Cs-133 0.000347 0.000213 -58 1 1 Nd-143 0.000447 0.000292 -59 1 1 Nd-145 0.000564 0.000294 -60 1 1 Sm-147 0.000000 0.000000 -61 1 1 Sm-149 0.000000 0.000000 -62 1 1 Sm-150 0.000472 0.000239 -63 1 1 Sm-151 0.000000 0.000000 -64 1 1 Sm-152 0.000492 0.000352 -65 1 1 Eu-153 0.000173 0.000173 -66 1 1 Gd-155 0.000000 0.000000 -67 1 1 O-16 0.134715 0.009801 -0 1 2 U-234 0.000000 0.000000 -1 1 2 U-235 0.199907 0.007776 -2 1 2 U-236 0.001501 0.002037 -3 1 2 U-238 0.255355 0.029743 -4 1 2 Np-237 0.000000 0.000000 -5 1 2 Pu-238 0.000000 0.000000 -6 1 2 Pu-239 0.160378 0.011366 -7 1 2 Pu-240 0.007920 0.003710 -8 1 2 Pu-241 0.017820 0.003733 -9 1 2 Pu-242 0.000000 0.000000 -10 1 2 Am-241 0.000000 0.000000 -11 1 2 Am-242m 0.000000 0.000000 -12 1 2 Am-243 0.000000 0.000000 -13 1 2 Cm-242 0.000000 0.000000 -14 1 2 Cm-243 0.000000 0.000000 -15 1 2 Cm-244 0.000000 0.000000 -16 1 2 Cm-245 0.000000 0.000000 -17 1 2 Mo-95 0.000000 0.000000 -18 1 2 Tc-99 0.000000 0.000000 -19 1 2 Ru-101 0.000000 0.000000 -20 1 2 Ru-103 0.000000 0.000000 -21 1 2 Ag-109 0.000000 0.000000 -22 1 2 Xe-135 0.013860 0.003976 -23 1 2 Cs-133 0.000000 0.000000 -24 1 2 Nd-143 0.003960 0.002427 -25 1 2 Nd-145 0.000000 0.000000 -26 1 2 Sm-147 0.000000 0.000000 -27 1 2 Sm-149 0.001980 0.001981 -28 1 2 Sm-150 0.000000 0.000000 -29 1 2 Sm-151 0.001980 0.001981 -30 1 2 Sm-152 0.000000 0.000000 -31 1 2 Eu-153 0.000000 0.000000 -32 1 2 Gd-155 0.000000 0.000000 -33 1 2 O-16 0.196946 0.014729 material group in nuclide mean std. dev. -34 1 1 U-234 7.274440e-06 4.419477e-07 -35 1 1 U-235 9.587803e-03 5.936922e-04 -36 1 1 U-236 7.566099e-05 7.523935e-06 -37 1 1 U-238 7.178367e-03 6.505680e-04 -38 1 1 Np-237 1.315682e-05 8.036501e-07 -39 1 1 Pu-238 7.746151e-06 3.992835e-07 -40 1 1 Pu-239 3.805294e-03 3.637600e-04 -41 1 1 Pu-240 6.941319e-05 4.729737e-06 -42 1 1 Pu-241 1.033844e-03 9.083913e-05 -43 1 1 Pu-242 5.995332e-06 3.821721e-07 -44 1 1 Am-241 1.148585e-06 8.271648e-08 -45 1 1 Am-242m 1.100215e-06 6.159956e-08 -46 1 1 Am-243 8.323826e-07 5.841792e-08 -47 1 1 Cm-242 5.088970e-07 5.258007e-08 -48 1 1 Cm-243 2.245435e-07 1.459025e-08 -49 1 1 Cm-244 2.993206e-07 2.746129e-08 -50 1 1 Cm-245 3.063611e-07 3.057751e-08 -51 1 1 Mo-95 0.000000e+00 0.000000e+00 -52 1 1 Tc-99 0.000000e+00 0.000000e+00 -53 1 1 Ru-101 0.000000e+00 0.000000e+00 -54 1 1 Ru-103 0.000000e+00 0.000000e+00 -55 1 1 Ag-109 0.000000e+00 0.000000e+00 -56 1 1 Xe-135 0.000000e+00 0.000000e+00 -57 1 1 Cs-133 0.000000e+00 0.000000e+00 -58 1 1 Nd-143 0.000000e+00 0.000000e+00 -59 1 1 Nd-145 0.000000e+00 0.000000e+00 -60 1 1 Sm-147 0.000000e+00 0.000000e+00 -61 1 1 Sm-149 0.000000e+00 0.000000e+00 -62 1 1 Sm-150 0.000000e+00 0.000000e+00 -63 1 1 Sm-151 0.000000e+00 0.000000e+00 -64 1 1 Sm-152 0.000000e+00 0.000000e+00 -65 1 1 Eu-153 0.000000e+00 0.000000e+00 -66 1 1 Gd-155 0.000000e+00 0.000000e+00 -67 1 1 O-16 0.000000e+00 0.000000e+00 -0 1 2 U-234 4.408576e-07 2.828309e-08 -1 1 2 U-235 3.768094e-01 2.445671e-02 -2 1 2 U-236 6.097538e-06 3.733038e-07 -3 1 2 U-238 5.353074e-07 3.310544e-08 -4 1 2 Np-237 2.702971e-07 2.098939e-08 -5 1 2 Pu-238 3.463109e-05 2.638394e-06 -6 1 2 Pu-239 2.889643e-01 1.376004e-02 -7 1 2 Pu-240 4.533642e-06 2.544289e-07 -8 1 2 Pu-241 4.809366e-02 2.778345e-03 -9 1 2 Pu-242 8.715325e-08 5.460893e-09 -10 1 2 Am-241 4.611736e-06 2.155039e-07 -11 1 2 Am-242m 1.428047e-04 8.436437e-06 -12 1 2 Am-243 7.883895e-08 4.734503e-09 -13 1 2 Cm-242 9.731025e-07 6.143750e-08 -14 1 2 Cm-243 1.825830e-06 1.074849e-07 -15 1 2 Cm-244 1.581823e-07 9.938064e-09 -16 1 2 Cm-245 1.213386e-05 8.812019e-07 -17 1 2 Mo-95 0.000000e+00 0.000000e+00 -18 1 2 Tc-99 0.000000e+00 0.000000e+00 -19 1 2 Ru-101 0.000000e+00 0.000000e+00 -20 1 2 Ru-103 0.000000e+00 0.000000e+00 -21 1 2 Ag-109 0.000000e+00 0.000000e+00 -22 1 2 Xe-135 0.000000e+00 0.000000e+00 -23 1 2 Cs-133 0.000000e+00 0.000000e+00 -24 1 2 Nd-143 0.000000e+00 0.000000e+00 -25 1 2 Nd-145 0.000000e+00 0.000000e+00 -26 1 2 Sm-147 0.000000e+00 0.000000e+00 -27 1 2 Sm-149 0.000000e+00 0.000000e+00 -28 1 2 Sm-150 0.000000e+00 0.000000e+00 -29 1 2 Sm-151 0.000000e+00 0.000000e+00 -30 1 2 Sm-152 0.000000e+00 0.000000e+00 -31 1 2 Eu-153 0.000000e+00 0.000000e+00 -32 1 2 Gd-155 0.000000e+00 0.000000e+00 -33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide mean std. dev. -102 1 1 1 U-234 0.000000 0.000000 -103 1 1 1 U-235 0.003226 0.001139 -104 1 1 1 U-236 0.001697 0.000923 -105 1 1 1 U-238 0.194620 0.013297 -106 1 1 1 Np-237 0.000000 0.000000 -107 1 1 1 Pu-238 0.000000 0.000000 -108 1 1 1 Pu-239 0.001005 0.000477 -109 1 1 1 Pu-240 0.001307 0.000295 -110 1 1 1 Pu-241 0.000344 0.000244 -111 1 1 1 Pu-242 0.000000 0.000000 -112 1 1 1 Am-241 0.000000 0.000000 -113 1 1 1 Am-242m 0.000000 0.000000 -114 1 1 1 Am-243 0.000000 0.000000 -115 1 1 1 Cm-242 0.000000 0.000000 -116 1 1 1 Cm-243 0.000000 0.000000 -117 1 1 1 Cm-244 0.000000 0.000000 -118 1 1 1 Cm-245 0.000000 0.000000 -119 1 1 1 Mo-95 0.000000 0.000000 -120 1 1 1 Tc-99 0.000000 0.000000 -121 1 1 1 Ru-101 0.000238 0.000254 -122 1 1 1 Ru-103 0.000002 0.000243 -123 1 1 1 Ag-109 0.000000 0.000000 -124 1 1 1 Xe-135 0.000000 0.000000 -125 1 1 1 Cs-133 0.000000 0.000000 -126 1 1 1 Nd-143 0.000447 0.000292 -127 1 1 1 Nd-145 0.000564 0.000294 -128 1 1 1 Sm-147 0.000000 0.000000 -129 1 1 1 Sm-149 0.000000 0.000000 -130 1 1 1 Sm-150 0.000299 0.000238 -131 1 1 1 Sm-151 0.000000 0.000000 -132 1 1 1 Sm-152 0.000492 0.000352 -133 1 1 1 Eu-153 0.000000 0.000000 -134 1 1 1 Gd-155 0.000000 0.000000 -135 1 1 1 O-16 0.133156 0.009821 -68 1 1 2 U-234 0.000000 0.000000 -69 1 1 2 U-235 0.000000 0.000000 -70 1 1 2 U-236 0.000000 0.000000 -71 1 1 2 U-238 0.000173 0.000173 -72 1 1 2 Np-237 0.000000 0.000000 -73 1 1 2 Pu-238 0.000000 0.000000 -74 1 1 2 Pu-239 0.000000 0.000000 -75 1 1 2 Pu-240 0.000000 0.000000 -76 1 1 2 Pu-241 0.000000 0.000000 -77 1 1 2 Pu-242 0.000000 0.000000 -78 1 1 2 Am-241 0.000000 0.000000 -79 1 1 2 Am-242m 0.000000 0.000000 -80 1 1 2 Am-243 0.000000 0.000000 -81 1 1 2 Cm-242 0.000000 0.000000 -82 1 1 2 Cm-243 0.000000 0.000000 -83 1 1 2 Cm-244 0.000000 0.000000 -84 1 1 2 Cm-245 0.000000 0.000000 -85 1 1 2 Mo-95 0.000000 0.000000 -86 1 1 2 Tc-99 0.000000 0.000000 -87 1 1 2 Ru-101 0.000000 0.000000 -88 1 1 2 Ru-103 0.000000 0.000000 -89 1 1 2 Ag-109 0.000000 0.000000 -90 1 1 2 Xe-135 0.000000 0.000000 -91 1 1 2 Cs-133 0.000000 0.000000 -92 1 1 2 Nd-143 0.000000 0.000000 -93 1 1 2 Nd-145 0.000000 0.000000 -94 1 1 2 Sm-147 0.000000 0.000000 -95 1 1 2 Sm-149 0.000000 0.000000 -96 1 1 2 Sm-150 0.000000 0.000000 -97 1 1 2 Sm-151 0.000000 0.000000 -98 1 1 2 Sm-152 0.000000 0.000000 -99 1 1 2 Eu-153 0.000000 0.000000 -100 1 1 2 Gd-155 0.000000 0.000000 -101 1 1 2 O-16 0.001386 0.000446 -34 1 2 1 U-234 0.000000 0.000000 -35 1 2 1 U-235 0.000000 0.000000 -36 1 2 1 U-236 0.000000 0.000000 -37 1 2 1 U-238 0.000000 0.000000 -38 1 2 1 Np-237 0.000000 0.000000 -39 1 2 1 Pu-238 0.000000 0.000000 -40 1 2 1 Pu-239 0.000000 0.000000 -41 1 2 1 Pu-240 0.000000 0.000000 -42 1 2 1 Pu-241 0.000000 0.000000 -43 1 2 1 Pu-242 0.000000 0.000000 -44 1 2 1 Am-241 0.000000 0.000000 -45 1 2 1 Am-242m 0.000000 0.000000 -46 1 2 1 Am-243 0.000000 0.000000 -47 1 2 1 Cm-242 0.000000 0.000000 -48 1 2 1 Cm-243 0.000000 0.000000 -49 1 2 1 Cm-244 0.000000 0.000000 -50 1 2 1 Cm-245 0.000000 0.000000 -51 1 2 1 Mo-95 0.000000 0.000000 -52 1 2 1 Tc-99 0.000000 0.000000 -53 1 2 1 Ru-101 0.000000 0.000000 -54 1 2 1 Ru-103 0.000000 0.000000 -55 1 2 1 Ag-109 0.000000 0.000000 -56 1 2 1 Xe-135 0.000000 0.000000 -57 1 2 1 Cs-133 0.000000 0.000000 -58 1 2 1 Nd-143 0.000000 0.000000 -59 1 2 1 Nd-145 0.000000 0.000000 -60 1 2 1 Sm-147 0.000000 0.000000 -61 1 2 1 Sm-149 0.000000 0.000000 -62 1 2 1 Sm-150 0.000000 0.000000 -63 1 2 1 Sm-151 0.000000 0.000000 -64 1 2 1 Sm-152 0.000000 0.000000 -65 1 2 1 Eu-153 0.000000 0.000000 -66 1 2 1 Gd-155 0.000000 0.000000 -67 1 2 1 O-16 0.000000 0.000000 -0 1 2 2 U-234 0.000000 0.000000 -1 1 2 2 U-235 0.003889 0.003962 -2 1 2 2 U-236 0.001501 0.002037 -3 1 2 2 U-238 0.219715 0.025984 -4 1 2 2 Np-237 0.000000 0.000000 -5 1 2 2 Pu-238 0.000000 0.000000 -6 1 2 2 Pu-239 0.000000 0.000000 -7 1 2 2 Pu-240 0.000000 0.000000 -8 1 2 2 Pu-241 0.000000 0.000000 -9 1 2 2 Pu-242 0.000000 0.000000 -10 1 2 2 Am-241 0.000000 0.000000 -11 1 2 2 Am-242m 0.000000 0.000000 -12 1 2 2 Am-243 0.000000 0.000000 -13 1 2 2 Cm-242 0.000000 0.000000 -14 1 2 2 Cm-243 0.000000 0.000000 -15 1 2 2 Cm-244 0.000000 0.000000 -16 1 2 2 Cm-245 0.000000 0.000000 -17 1 2 2 Mo-95 0.000000 0.000000 -18 1 2 2 Tc-99 0.000000 0.000000 -19 1 2 2 Ru-101 0.000000 0.000000 -20 1 2 2 Ru-103 0.000000 0.000000 -21 1 2 2 Ag-109 0.000000 0.000000 -22 1 2 2 Xe-135 0.000000 0.000000 -23 1 2 2 Cs-133 0.000000 0.000000 -24 1 2 2 Nd-143 0.000000 0.000000 -25 1 2 2 Nd-145 0.000000 0.000000 -26 1 2 2 Sm-147 0.000000 0.000000 -27 1 2 2 Sm-149 0.000000 0.000000 -28 1 2 2 Sm-150 0.000000 0.000000 -29 1 2 2 Sm-151 0.000000 0.000000 -30 1 2 2 Sm-152 0.000000 0.000000 -31 1 2 2 Eu-153 0.000000 0.000000 -32 1 2 2 Gd-155 0.000000 0.000000 -33 1 2 2 O-16 0.196946 0.014729 material group out nuclide mean std. dev. -34 1 1 U-234 0.0 0.000000 -35 1 1 U-235 1.0 0.066362 -36 1 1 U-236 0.0 0.000000 -37 1 1 U-238 1.0 0.093082 -38 1 1 Np-237 0.0 0.000000 -39 1 1 Pu-238 0.0 0.000000 -40 1 1 Pu-239 1.0 0.104567 -41 1 1 Pu-240 0.0 0.000000 -42 1 1 Pu-241 1.0 0.263696 -43 1 1 Pu-242 0.0 0.000000 -44 1 1 Am-241 0.0 0.000000 -45 1 1 Am-242m 0.0 0.000000 -46 1 1 Am-243 0.0 0.000000 -47 1 1 Cm-242 0.0 0.000000 -48 1 1 Cm-243 0.0 0.000000 -49 1 1 Cm-244 0.0 0.000000 -50 1 1 Cm-245 0.0 0.000000 -51 1 1 Mo-95 0.0 0.000000 -52 1 1 Tc-99 0.0 0.000000 -53 1 1 Ru-101 0.0 0.000000 -54 1 1 Ru-103 0.0 0.000000 -55 1 1 Ag-109 0.0 0.000000 -56 1 1 Xe-135 0.0 0.000000 -57 1 1 Cs-133 0.0 0.000000 -58 1 1 Nd-143 0.0 0.000000 -59 1 1 Nd-145 0.0 0.000000 -60 1 1 Sm-147 0.0 0.000000 -61 1 1 Sm-149 0.0 0.000000 -62 1 1 Sm-150 0.0 0.000000 -63 1 1 Sm-151 0.0 0.000000 -64 1 1 Sm-152 0.0 0.000000 -65 1 1 Eu-153 0.0 0.000000 -66 1 1 Gd-155 0.0 0.000000 -67 1 1 O-16 0.0 0.000000 -0 1 2 U-234 0.0 0.000000 -1 1 2 U-235 0.0 0.000000 -2 1 2 U-236 0.0 0.000000 -3 1 2 U-238 0.0 0.000000 -4 1 2 Np-237 0.0 0.000000 -5 1 2 Pu-238 0.0 0.000000 -6 1 2 Pu-239 0.0 0.000000 -7 1 2 Pu-240 0.0 0.000000 -8 1 2 Pu-241 0.0 0.000000 -9 1 2 Pu-242 0.0 0.000000 -10 1 2 Am-241 0.0 0.000000 -11 1 2 Am-242m 0.0 0.000000 -12 1 2 Am-243 0.0 0.000000 -13 1 2 Cm-242 0.0 0.000000 -14 1 2 Cm-243 0.0 0.000000 -15 1 2 Cm-244 0.0 0.000000 -16 1 2 Cm-245 0.0 0.000000 -17 1 2 Mo-95 0.0 0.000000 -18 1 2 Tc-99 0.0 0.000000 -19 1 2 Ru-101 0.0 0.000000 -20 1 2 Ru-103 0.0 0.000000 -21 1 2 Ag-109 0.0 0.000000 -22 1 2 Xe-135 0.0 0.000000 -23 1 2 Cs-133 0.0 0.000000 -24 1 2 Nd-143 0.0 0.000000 -25 1 2 Nd-145 0.0 0.000000 -26 1 2 Sm-147 0.0 0.000000 -27 1 2 Sm-149 0.0 0.000000 -28 1 2 Sm-150 0.0 0.000000 -29 1 2 Sm-151 0.0 0.000000 -30 1 2 Sm-152 0.0 0.000000 -31 1 2 Eu-153 0.0 0.000000 -32 1 2 Gd-155 0.0 0.000000 -33 1 2 O-16 0.0 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0.104734 0.008915 -6 2 1 Zr-91 0.036155 0.003735 -7 2 1 Zr-92 0.042422 0.003029 -8 2 1 Zr-94 0.046148 0.006251 -9 2 1 Zr-96 0.007794 0.001536 -0 2 2 Zr-90 0.121688 0.034934 -1 2 2 Zr-91 0.061792 0.024317 -2 2 2 Zr-92 0.041633 0.016323 -3 2 2 Zr-94 0.060818 0.021483 -4 2 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0.0 0.0 -6 2 1 Zr-91 0.0 0.0 -7 2 1 Zr-92 0.0 0.0 -8 2 1 Zr-94 0.0 0.0 -9 2 1 Zr-96 0.0 0.0 -0 2 2 Zr-90 0.0 0.0 -1 2 2 Zr-91 0.0 0.0 -2 2 2 Zr-92 0.0 0.0 -3 2 2 Zr-94 0.0 0.0 -4 2 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. -15 2 1 1 Zr-90 0.104734 0.008915 -16 2 1 1 Zr-91 0.036155 0.003735 -17 2 1 1 Zr-92 0.042422 0.003029 -18 2 1 1 Zr-94 0.046148 0.006251 -19 2 1 1 Zr-96 0.007794 0.001536 -10 2 1 2 Zr-90 0.000000 0.000000 -11 2 1 2 Zr-91 0.000000 0.000000 -12 2 1 2 Zr-92 0.000000 0.000000 -13 2 1 2 Zr-94 0.000000 0.000000 -14 2 1 2 Zr-96 0.000000 0.000000 -5 2 2 1 Zr-90 0.000000 0.000000 -6 2 2 1 Zr-91 0.000000 0.000000 -7 2 2 1 Zr-92 0.000000 0.000000 -8 2 2 1 Zr-94 0.000000 0.000000 -9 2 2 1 Zr-96 0.000000 0.000000 -0 2 2 2 Zr-90 0.121688 0.034934 -1 2 2 2 Zr-91 0.061792 0.024317 -2 2 2 2 Zr-92 0.041633 0.016323 -3 2 2 2 Zr-94 0.060818 0.021483 -4 2 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. -5 2 1 Zr-90 0.0 0.0 -6 2 1 Zr-91 0.0 0.0 -7 2 1 Zr-92 0.0 0.0 -8 2 1 Zr-94 0.0 0.0 -9 2 1 Zr-96 0.0 0.0 -0 2 2 Zr-90 0.0 0.0 -1 2 2 Zr-91 0.0 0.0 -2 2 2 Zr-92 0.0 0.0 -3 2 2 Zr-94 0.0 0.0 -4 2 2 Zr-96 0.0 0.0 material group in nuclide mean std. dev. -4 3 1 H-1 0.207103 0.023028 -5 3 1 O-16 0.079282 0.005197 -6 3 1 B-10 0.000521 0.000244 -7 3 1 B-11 0.000000 0.000000 -0 3 2 H-1 1.283344 0.250946 -1 3 2 O-16 0.085363 0.014001 -2 3 2 B-10 0.049249 0.008232 -3 3 2 B-11 0.000195 0.001527 material group in nuclide mean std. dev. -4 3 1 H-1 0.0 0.0 -5 3 1 O-16 0.0 0.0 -6 3 1 B-10 0.0 0.0 -7 3 1 B-11 0.0 0.0 -0 3 2 H-1 0.0 0.0 -1 3 2 O-16 0.0 0.0 -2 3 2 B-10 0.0 0.0 -3 3 2 B-11 0.0 0.0 material group in group out nuclide mean std. dev. -12 3 1 1 H-1 0.181306 0.022102 -13 3 1 1 O-16 0.078631 0.005044 -14 3 1 1 B-10 0.000000 0.000000 -15 3 1 1 B-11 0.000000 0.000000 -8 3 1 2 H-1 0.025666 0.001582 -9 3 1 2 O-16 0.000521 0.000131 -10 3 1 2 B-10 0.000000 0.000000 -11 3 1 2 B-11 0.000000 0.000000 -4 3 2 1 H-1 0.000000 0.000000 -5 3 2 1 O-16 0.000000 0.000000 -6 3 2 1 B-10 0.000000 0.000000 -7 3 2 1 B-11 0.000000 0.000000 -0 3 2 2 H-1 1.273963 0.250623 -1 3 2 2 O-16 0.085363 0.014001 -2 3 2 2 B-10 0.000000 0.000000 -3 3 2 2 B-11 0.000195 0.001527 material group out nuclide mean std. dev. -4 3 1 H-1 0.0 0.0 -5 3 1 O-16 0.0 0.0 -6 3 1 B-10 0.0 0.0 -7 3 1 B-11 0.0 0.0 -0 3 2 H-1 0.0 0.0 -1 3 2 O-16 0.0 0.0 -2 3 2 B-10 0.0 0.0 -3 3 2 B-11 0.0 0.0 material group in nuclide mean std. dev. -4 4 1 H-1 0.175242 0.053715 -5 4 1 O-16 0.066545 0.010083 -6 4 1 B-10 0.000570 0.000352 -7 4 1 B-11 0.000089 0.000346 -0 4 2 H-1 1.142895 0.365140 -1 4 2 O-16 0.085141 0.028073 -2 4 2 B-10 0.025923 0.007276 -3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. -4 4 1 H-1 0.0 0.0 -5 4 1 O-16 0.0 0.0 -6 4 1 B-10 0.0 0.0 -7 4 1 B-11 0.0 0.0 -0 4 2 H-1 0.0 0.0 -1 4 2 O-16 0.0 0.0 -2 4 2 B-10 0.0 0.0 -3 4 2 B-11 0.0 0.0 material group in group out nuclide mean std. dev. -12 4 1 1 H-1 0.151295 0.051491 -13 4 1 1 O-16 0.066545 0.010083 -14 4 1 1 B-10 0.000000 0.000000 -15 4 1 1 B-11 0.000089 0.000346 -8 4 1 2 H-1 0.023662 0.003083 -9 4 1 2 O-16 0.000000 0.000000 -10 4 1 2 B-10 0.000000 0.000000 -11 4 1 2 B-11 0.000000 0.000000 -4 4 2 1 H-1 0.000000 0.000000 -5 4 2 1 O-16 0.000000 0.000000 -6 4 2 1 B-10 0.000000 0.000000 -7 4 2 1 B-11 0.000000 0.000000 -0 4 2 2 H-1 1.129933 0.361681 -1 4 2 2 O-16 0.085141 0.028073 -2 4 2 2 B-10 0.000000 0.000000 -3 4 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. -4 4 1 H-1 0.0 0.0 -5 4 1 O-16 0.0 0.0 -6 4 1 B-10 0.0 0.0 -7 4 1 B-11 0.0 0.0 -0 4 2 H-1 0.0 0.0 -1 4 2 O-16 0.0 0.0 -2 4 2 B-10 0.0 0.0 -3 4 2 B-11 0.0 0.0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0.0 0.0 -28 5 1 Fe-56 0.0 0.0 -29 5 1 Fe-57 0.0 0.0 -30 5 1 Fe-58 0.0 0.0 -31 5 1 Ni-58 0.0 0.0 -32 5 1 Ni-60 0.0 0.0 -33 5 1 Ni-61 0.0 0.0 -34 5 1 Ni-62 0.0 0.0 -35 5 1 Ni-64 0.0 0.0 -36 5 1 Mn-55 0.0 0.0 -37 5 1 Mo-92 0.0 0.0 -38 5 1 Mo-94 0.0 0.0 -39 5 1 Mo-95 0.0 0.0 -40 5 1 Mo-96 0.0 0.0 -41 5 1 Mo-97 0.0 0.0 -42 5 1 Mo-98 0.0 0.0 -43 5 1 Mo-100 0.0 0.0 -44 5 1 Si-28 0.0 0.0 -45 5 1 Si-29 0.0 0.0 -46 5 1 Si-30 0.0 0.0 -47 5 1 Cr-50 0.0 0.0 -48 5 1 Cr-52 0.0 0.0 -49 5 1 Cr-53 0.0 0.0 -50 5 1 Cr-54 0.0 0.0 -51 5 1 C-Nat 0.0 0.0 -52 5 1 Cu-63 0.0 0.0 -53 5 1 Cu-65 0.0 0.0 -0 5 2 Fe-54 0.0 0.0 -1 5 2 Fe-56 0.0 0.0 -2 5 2 Fe-57 0.0 0.0 -3 5 2 Fe-58 0.0 0.0 -4 5 2 Ni-58 0.0 0.0 -5 5 2 Ni-60 0.0 0.0 -6 5 2 Ni-61 0.0 0.0 -7 5 2 Ni-62 0.0 0.0 -8 5 2 Ni-64 0.0 0.0 -9 5 2 Mn-55 0.0 0.0 -10 5 2 Mo-92 0.0 0.0 -11 5 2 Mo-94 0.0 0.0 -12 5 2 Mo-95 0.0 0.0 -13 5 2 Mo-96 0.0 0.0 -14 5 2 Mo-97 0.0 0.0 -15 5 2 Mo-98 0.0 0.0 -16 5 2 Mo-100 0.0 0.0 -17 5 2 Si-28 0.0 0.0 -18 5 2 Si-29 0.0 0.0 -19 5 2 Si-30 0.0 0.0 -20 5 2 Cr-50 0.0 0.0 -21 5 2 Cr-52 0.0 0.0 -22 5 2 Cr-53 0.0 0.0 -23 5 2 Cr-54 0.0 0.0 -24 5 2 C-Nat 0.0 0.0 -25 5 2 Cu-63 0.0 0.0 -26 5 2 Cu-65 0.0 0.0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0.0 0.0 -28 5 1 Fe-56 0.0 0.0 -29 5 1 Fe-57 0.0 0.0 -30 5 1 Fe-58 0.0 0.0 -31 5 1 Ni-58 0.0 0.0 -32 5 1 Ni-60 0.0 0.0 -33 5 1 Ni-61 0.0 0.0 -34 5 1 Ni-62 0.0 0.0 -35 5 1 Ni-64 0.0 0.0 -36 5 1 Mn-55 0.0 0.0 -37 5 1 Mo-92 0.0 0.0 -38 5 1 Mo-94 0.0 0.0 -39 5 1 Mo-95 0.0 0.0 -40 5 1 Mo-96 0.0 0.0 -41 5 1 Mo-97 0.0 0.0 -42 5 1 Mo-98 0.0 0.0 -43 5 1 Mo-100 0.0 0.0 -44 5 1 Si-28 0.0 0.0 -45 5 1 Si-29 0.0 0.0 -46 5 1 Si-30 0.0 0.0 -47 5 1 Cr-50 0.0 0.0 -48 5 1 Cr-52 0.0 0.0 -49 5 1 Cr-53 0.0 0.0 -50 5 1 Cr-54 0.0 0.0 -51 5 1 C-Nat 0.0 0.0 -52 5 1 Cu-63 0.0 0.0 -53 5 1 Cu-65 0.0 0.0 -0 5 2 Fe-54 0.0 0.0 -1 5 2 Fe-56 0.0 0.0 -2 5 2 Fe-57 0.0 0.0 -3 5 2 Fe-58 0.0 0.0 -4 5 2 Ni-58 0.0 0.0 -5 5 2 Ni-60 0.0 0.0 -6 5 2 Ni-61 0.0 0.0 -7 5 2 Ni-62 0.0 0.0 -8 5 2 Ni-64 0.0 0.0 -9 5 2 Mn-55 0.0 0.0 -10 5 2 Mo-92 0.0 0.0 -11 5 2 Mo-94 0.0 0.0 -12 5 2 Mo-95 0.0 0.0 -13 5 2 Mo-96 0.0 0.0 -14 5 2 Mo-97 0.0 0.0 -15 5 2 Mo-98 0.0 0.0 -16 5 2 Mo-100 0.0 0.0 -17 5 2 Si-28 0.0 0.0 -18 5 2 Si-29 0.0 0.0 -19 5 2 Si-30 0.0 0.0 -20 5 2 Cr-50 0.0 0.0 -21 5 2 Cr-52 0.0 0.0 -22 5 2 Cr-53 0.0 0.0 -23 5 2 Cr-54 0.0 0.0 -24 5 2 C-Nat 0.0 0.0 -25 5 2 Cu-63 0.0 0.0 -26 5 2 Cu-65 0.0 0.0 material group in group out nuclide mean std. dev. -81 5 1 1 Fe-54 0.0 0.0 -82 5 1 1 Fe-56 0.0 0.0 -83 5 1 1 Fe-57 0.0 0.0 -84 5 1 1 Fe-58 0.0 0.0 -85 5 1 1 Ni-58 0.0 0.0 -86 5 1 1 Ni-60 0.0 0.0 -87 5 1 1 Ni-61 0.0 0.0 -88 5 1 1 Ni-62 0.0 0.0 -89 5 1 1 Ni-64 0.0 0.0 -90 5 1 1 Mn-55 0.0 0.0 -91 5 1 1 Mo-92 0.0 0.0 -92 5 1 1 Mo-94 0.0 0.0 -93 5 1 1 Mo-95 0.0 0.0 -94 5 1 1 Mo-96 0.0 0.0 -95 5 1 1 Mo-97 0.0 0.0 -96 5 1 1 Mo-98 0.0 0.0 -97 5 1 1 Mo-100 0.0 0.0 -98 5 1 1 Si-28 0.0 0.0 -99 5 1 1 Si-29 0.0 0.0 -100 5 1 1 Si-30 0.0 0.0 -101 5 1 1 Cr-50 0.0 0.0 -102 5 1 1 Cr-52 0.0 0.0 -103 5 1 1 Cr-53 0.0 0.0 -104 5 1 1 Cr-54 0.0 0.0 -105 5 1 1 C-Nat 0.0 0.0 -106 5 1 1 Cu-63 0.0 0.0 -107 5 1 1 Cu-65 0.0 0.0 -54 5 1 2 Fe-54 0.0 0.0 -55 5 1 2 Fe-56 0.0 0.0 -56 5 1 2 Fe-57 0.0 0.0 -57 5 1 2 Fe-58 0.0 0.0 -58 5 1 2 Ni-58 0.0 0.0 -59 5 1 2 Ni-60 0.0 0.0 -60 5 1 2 Ni-61 0.0 0.0 -61 5 1 2 Ni-62 0.0 0.0 -62 5 1 2 Ni-64 0.0 0.0 -63 5 1 2 Mn-55 0.0 0.0 -64 5 1 2 Mo-92 0.0 0.0 -65 5 1 2 Mo-94 0.0 0.0 -66 5 1 2 Mo-95 0.0 0.0 -67 5 1 2 Mo-96 0.0 0.0 -68 5 1 2 Mo-97 0.0 0.0 -69 5 1 2 Mo-98 0.0 0.0 -70 5 1 2 Mo-100 0.0 0.0 -71 5 1 2 Si-28 0.0 0.0 -72 5 1 2 Si-29 0.0 0.0 -73 5 1 2 Si-30 0.0 0.0 -74 5 1 2 Cr-50 0.0 0.0 -75 5 1 2 Cr-52 0.0 0.0 -76 5 1 2 Cr-53 0.0 0.0 -77 5 1 2 Cr-54 0.0 0.0 -78 5 1 2 C-Nat 0.0 0.0 -79 5 1 2 Cu-63 0.0 0.0 -80 5 1 2 Cu-65 0.0 0.0 -27 5 2 1 Fe-54 0.0 0.0 -28 5 2 1 Fe-56 0.0 0.0 -29 5 2 1 Fe-57 0.0 0.0 -30 5 2 1 Fe-58 0.0 0.0 -31 5 2 1 Ni-58 0.0 0.0 -32 5 2 1 Ni-60 0.0 0.0 -33 5 2 1 Ni-61 0.0 0.0 -34 5 2 1 Ni-62 0.0 0.0 -35 5 2 1 Ni-64 0.0 0.0 -36 5 2 1 Mn-55 0.0 0.0 -37 5 2 1 Mo-92 0.0 0.0 -38 5 2 1 Mo-94 0.0 0.0 -39 5 2 1 Mo-95 0.0 0.0 -40 5 2 1 Mo-96 0.0 0.0 -41 5 2 1 Mo-97 0.0 0.0 -42 5 2 1 Mo-98 0.0 0.0 -43 5 2 1 Mo-100 0.0 0.0 -44 5 2 1 Si-28 0.0 0.0 -45 5 2 1 Si-29 0.0 0.0 -46 5 2 1 Si-30 0.0 0.0 -47 5 2 1 Cr-50 0.0 0.0 -48 5 2 1 Cr-52 0.0 0.0 -49 5 2 1 Cr-53 0.0 0.0 -50 5 2 1 Cr-54 0.0 0.0 -51 5 2 1 C-Nat 0.0 0.0 -52 5 2 1 Cu-63 0.0 0.0 -53 5 2 1 Cu-65 0.0 0.0 -0 5 2 2 Fe-54 0.0 0.0 -1 5 2 2 Fe-56 0.0 0.0 -2 5 2 2 Fe-57 0.0 0.0 -3 5 2 2 Fe-58 0.0 0.0 -4 5 2 2 Ni-58 0.0 0.0 -5 5 2 2 Ni-60 0.0 0.0 -6 5 2 2 Ni-61 0.0 0.0 -7 5 2 2 Ni-62 0.0 0.0 -8 5 2 2 Ni-64 0.0 0.0 -9 5 2 2 Mn-55 0.0 0.0 -10 5 2 2 Mo-92 0.0 0.0 -11 5 2 2 Mo-94 0.0 0.0 -12 5 2 2 Mo-95 0.0 0.0 -13 5 2 2 Mo-96 0.0 0.0 -14 5 2 2 Mo-97 0.0 0.0 -15 5 2 2 Mo-98 0.0 0.0 -16 5 2 2 Mo-100 0.0 0.0 -17 5 2 2 Si-28 0.0 0.0 -18 5 2 2 Si-29 0.0 0.0 -19 5 2 2 Si-30 0.0 0.0 -20 5 2 2 Cr-50 0.0 0.0 -21 5 2 2 Cr-52 0.0 0.0 -22 5 2 2 Cr-53 0.0 0.0 -23 5 2 2 Cr-54 0.0 0.0 -24 5 2 2 C-Nat 0.0 0.0 -25 5 2 2 Cu-63 0.0 0.0 -26 5 2 2 Cu-65 0.0 0.0 material group out nuclide mean std. dev. -27 5 1 Fe-54 0.0 0.0 -28 5 1 Fe-56 0.0 0.0 -29 5 1 Fe-57 0.0 0.0 -30 5 1 Fe-58 0.0 0.0 -31 5 1 Ni-58 0.0 0.0 -32 5 1 Ni-60 0.0 0.0 -33 5 1 Ni-61 0.0 0.0 -34 5 1 Ni-62 0.0 0.0 -35 5 1 Ni-64 0.0 0.0 -36 5 1 Mn-55 0.0 0.0 -37 5 1 Mo-92 0.0 0.0 -38 5 1 Mo-94 0.0 0.0 -39 5 1 Mo-95 0.0 0.0 -40 5 1 Mo-96 0.0 0.0 -41 5 1 Mo-97 0.0 0.0 -42 5 1 Mo-98 0.0 0.0 -43 5 1 Mo-100 0.0 0.0 -44 5 1 Si-28 0.0 0.0 -45 5 1 Si-29 0.0 0.0 -46 5 1 Si-30 0.0 0.0 -47 5 1 Cr-50 0.0 0.0 -48 5 1 Cr-52 0.0 0.0 -49 5 1 Cr-53 0.0 0.0 -50 5 1 Cr-54 0.0 0.0 -51 5 1 C-Nat 0.0 0.0 -52 5 1 Cu-63 0.0 0.0 -53 5 1 Cu-65 0.0 0.0 -0 5 2 Fe-54 0.0 0.0 -1 5 2 Fe-56 0.0 0.0 -2 5 2 Fe-57 0.0 0.0 -3 5 2 Fe-58 0.0 0.0 -4 5 2 Ni-58 0.0 0.0 -5 5 2 Ni-60 0.0 0.0 -6 5 2 Ni-61 0.0 0.0 -7 5 2 Ni-62 0.0 0.0 -8 5 2 Ni-64 0.0 0.0 -9 5 2 Mn-55 0.0 0.0 -10 5 2 Mo-92 0.0 0.0 -11 5 2 Mo-94 0.0 0.0 -12 5 2 Mo-95 0.0 0.0 -13 5 2 Mo-96 0.0 0.0 -14 5 2 Mo-97 0.0 0.0 -15 5 2 Mo-98 0.0 0.0 -16 5 2 Mo-100 0.0 0.0 -17 5 2 Si-28 0.0 0.0 -18 5 2 Si-29 0.0 0.0 -19 5 2 Si-30 0.0 0.0 -20 5 2 Cr-50 0.0 0.0 -21 5 2 Cr-52 0.0 0.0 -22 5 2 Cr-53 0.0 0.0 -23 5 2 Cr-54 0.0 0.0 -24 5 2 C-Nat 0.0 0.0 -25 5 2 Cu-63 0.0 0.0 -26 5 2 Cu-65 0.0 0.0 material group in nuclide mean std. dev. -21 6 1 H-1 0.0 0.0 -22 6 1 O-16 0.0 0.0 -23 6 1 B-10 0.0 0.0 -24 6 1 B-11 0.0 0.0 -25 6 1 Fe-54 0.0 0.0 -26 6 1 Fe-56 0.0 0.0 -27 6 1 Fe-57 0.0 0.0 -28 6 1 Fe-58 0.0 0.0 -29 6 1 Ni-58 0.0 0.0 -30 6 1 Ni-60 0.0 0.0 -31 6 1 Ni-61 0.0 0.0 -32 6 1 Ni-62 0.0 0.0 -33 6 1 Ni-64 0.0 0.0 -34 6 1 Mn-55 0.0 0.0 -35 6 1 Si-28 0.0 0.0 -36 6 1 Si-29 0.0 0.0 -37 6 1 Si-30 0.0 0.0 -38 6 1 Cr-50 0.0 0.0 -39 6 1 Cr-52 0.0 0.0 -40 6 1 Cr-53 0.0 0.0 -41 6 1 Cr-54 0.0 0.0 -0 6 2 H-1 0.0 0.0 -1 6 2 O-16 0.0 0.0 -2 6 2 B-10 0.0 0.0 -3 6 2 B-11 0.0 0.0 -4 6 2 Fe-54 0.0 0.0 -5 6 2 Fe-56 0.0 0.0 -6 6 2 Fe-57 0.0 0.0 -7 6 2 Fe-58 0.0 0.0 -8 6 2 Ni-58 0.0 0.0 -9 6 2 Ni-60 0.0 0.0 -10 6 2 Ni-61 0.0 0.0 -11 6 2 Ni-62 0.0 0.0 -12 6 2 Ni-64 0.0 0.0 -13 6 2 Mn-55 0.0 0.0 -14 6 2 Si-28 0.0 0.0 -15 6 2 Si-29 0.0 0.0 -16 6 2 Si-30 0.0 0.0 -17 6 2 Cr-50 0.0 0.0 -18 6 2 Cr-52 0.0 0.0 -19 6 2 Cr-53 0.0 0.0 -20 6 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 6 1 H-1 0.0 0.0 -22 6 1 O-16 0.0 0.0 -23 6 1 B-10 0.0 0.0 -24 6 1 B-11 0.0 0.0 -25 6 1 Fe-54 0.0 0.0 -26 6 1 Fe-56 0.0 0.0 -27 6 1 Fe-57 0.0 0.0 -28 6 1 Fe-58 0.0 0.0 -29 6 1 Ni-58 0.0 0.0 -30 6 1 Ni-60 0.0 0.0 -31 6 1 Ni-61 0.0 0.0 -32 6 1 Ni-62 0.0 0.0 -33 6 1 Ni-64 0.0 0.0 -34 6 1 Mn-55 0.0 0.0 -35 6 1 Si-28 0.0 0.0 -36 6 1 Si-29 0.0 0.0 -37 6 1 Si-30 0.0 0.0 -38 6 1 Cr-50 0.0 0.0 -39 6 1 Cr-52 0.0 0.0 -40 6 1 Cr-53 0.0 0.0 -41 6 1 Cr-54 0.0 0.0 -0 6 2 H-1 0.0 0.0 -1 6 2 O-16 0.0 0.0 -2 6 2 B-10 0.0 0.0 -3 6 2 B-11 0.0 0.0 -4 6 2 Fe-54 0.0 0.0 -5 6 2 Fe-56 0.0 0.0 -6 6 2 Fe-57 0.0 0.0 -7 6 2 Fe-58 0.0 0.0 -8 6 2 Ni-58 0.0 0.0 -9 6 2 Ni-60 0.0 0.0 -10 6 2 Ni-61 0.0 0.0 -11 6 2 Ni-62 0.0 0.0 -12 6 2 Ni-64 0.0 0.0 -13 6 2 Mn-55 0.0 0.0 -14 6 2 Si-28 0.0 0.0 -15 6 2 Si-29 0.0 0.0 -16 6 2 Si-30 0.0 0.0 -17 6 2 Cr-50 0.0 0.0 -18 6 2 Cr-52 0.0 0.0 -19 6 2 Cr-53 0.0 0.0 -20 6 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. -63 6 1 1 H-1 0.0 0.0 -64 6 1 1 O-16 0.0 0.0 -65 6 1 1 B-10 0.0 0.0 -66 6 1 1 B-11 0.0 0.0 -67 6 1 1 Fe-54 0.0 0.0 -68 6 1 1 Fe-56 0.0 0.0 -69 6 1 1 Fe-57 0.0 0.0 -70 6 1 1 Fe-58 0.0 0.0 -71 6 1 1 Ni-58 0.0 0.0 -72 6 1 1 Ni-60 0.0 0.0 -73 6 1 1 Ni-61 0.0 0.0 -74 6 1 1 Ni-62 0.0 0.0 -75 6 1 1 Ni-64 0.0 0.0 -76 6 1 1 Mn-55 0.0 0.0 -77 6 1 1 Si-28 0.0 0.0 -78 6 1 1 Si-29 0.0 0.0 -79 6 1 1 Si-30 0.0 0.0 -80 6 1 1 Cr-50 0.0 0.0 -81 6 1 1 Cr-52 0.0 0.0 -82 6 1 1 Cr-53 0.0 0.0 -83 6 1 1 Cr-54 0.0 0.0 -42 6 1 2 H-1 0.0 0.0 -43 6 1 2 O-16 0.0 0.0 -44 6 1 2 B-10 0.0 0.0 -45 6 1 2 B-11 0.0 0.0 -46 6 1 2 Fe-54 0.0 0.0 -47 6 1 2 Fe-56 0.0 0.0 -48 6 1 2 Fe-57 0.0 0.0 -49 6 1 2 Fe-58 0.0 0.0 -50 6 1 2 Ni-58 0.0 0.0 -51 6 1 2 Ni-60 0.0 0.0 -52 6 1 2 Ni-61 0.0 0.0 -53 6 1 2 Ni-62 0.0 0.0 -54 6 1 2 Ni-64 0.0 0.0 -55 6 1 2 Mn-55 0.0 0.0 -56 6 1 2 Si-28 0.0 0.0 -57 6 1 2 Si-29 0.0 0.0 -58 6 1 2 Si-30 0.0 0.0 -59 6 1 2 Cr-50 0.0 0.0 -60 6 1 2 Cr-52 0.0 0.0 -61 6 1 2 Cr-53 0.0 0.0 -62 6 1 2 Cr-54 0.0 0.0 -21 6 2 1 H-1 0.0 0.0 -22 6 2 1 O-16 0.0 0.0 -23 6 2 1 B-10 0.0 0.0 -24 6 2 1 B-11 0.0 0.0 -25 6 2 1 Fe-54 0.0 0.0 -26 6 2 1 Fe-56 0.0 0.0 -27 6 2 1 Fe-57 0.0 0.0 -28 6 2 1 Fe-58 0.0 0.0 -29 6 2 1 Ni-58 0.0 0.0 -30 6 2 1 Ni-60 0.0 0.0 -31 6 2 1 Ni-61 0.0 0.0 -32 6 2 1 Ni-62 0.0 0.0 -33 6 2 1 Ni-64 0.0 0.0 -34 6 2 1 Mn-55 0.0 0.0 -35 6 2 1 Si-28 0.0 0.0 -36 6 2 1 Si-29 0.0 0.0 -37 6 2 1 Si-30 0.0 0.0 -38 6 2 1 Cr-50 0.0 0.0 -39 6 2 1 Cr-52 0.0 0.0 -40 6 2 1 Cr-53 0.0 0.0 -41 6 2 1 Cr-54 0.0 0.0 -0 6 2 2 H-1 0.0 0.0 -1 6 2 2 O-16 0.0 0.0 -2 6 2 2 B-10 0.0 0.0 -3 6 2 2 B-11 0.0 0.0 -4 6 2 2 Fe-54 0.0 0.0 -5 6 2 2 Fe-56 0.0 0.0 -6 6 2 2 Fe-57 0.0 0.0 -7 6 2 2 Fe-58 0.0 0.0 -8 6 2 2 Ni-58 0.0 0.0 -9 6 2 2 Ni-60 0.0 0.0 -10 6 2 2 Ni-61 0.0 0.0 -11 6 2 2 Ni-62 0.0 0.0 -12 6 2 2 Ni-64 0.0 0.0 -13 6 2 2 Mn-55 0.0 0.0 -14 6 2 2 Si-28 0.0 0.0 -15 6 2 2 Si-29 0.0 0.0 -16 6 2 2 Si-30 0.0 0.0 -17 6 2 2 Cr-50 0.0 0.0 -18 6 2 2 Cr-52 0.0 0.0 -19 6 2 2 Cr-53 0.0 0.0 -20 6 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. -21 6 1 H-1 0.0 0.0 -22 6 1 O-16 0.0 0.0 -23 6 1 B-10 0.0 0.0 -24 6 1 B-11 0.0 0.0 -25 6 1 Fe-54 0.0 0.0 -26 6 1 Fe-56 0.0 0.0 -27 6 1 Fe-57 0.0 0.0 -28 6 1 Fe-58 0.0 0.0 -29 6 1 Ni-58 0.0 0.0 -30 6 1 Ni-60 0.0 0.0 -31 6 1 Ni-61 0.0 0.0 -32 6 1 Ni-62 0.0 0.0 -33 6 1 Ni-64 0.0 0.0 -34 6 1 Mn-55 0.0 0.0 -35 6 1 Si-28 0.0 0.0 -36 6 1 Si-29 0.0 0.0 -37 6 1 Si-30 0.0 0.0 -38 6 1 Cr-50 0.0 0.0 -39 6 1 Cr-52 0.0 0.0 -40 6 1 Cr-53 0.0 0.0 -41 6 1 Cr-54 0.0 0.0 -0 6 2 H-1 0.0 0.0 -1 6 2 O-16 0.0 0.0 -2 6 2 B-10 0.0 0.0 -3 6 2 B-11 0.0 0.0 -4 6 2 Fe-54 0.0 0.0 -5 6 2 Fe-56 0.0 0.0 -6 6 2 Fe-57 0.0 0.0 -7 6 2 Fe-58 0.0 0.0 -8 6 2 Ni-58 0.0 0.0 -9 6 2 Ni-60 0.0 0.0 -10 6 2 Ni-61 0.0 0.0 -11 6 2 Ni-62 0.0 0.0 -12 6 2 Ni-64 0.0 0.0 -13 6 2 Mn-55 0.0 0.0 -14 6 2 Si-28 0.0 0.0 -15 6 2 Si-29 0.0 0.0 -16 6 2 Si-30 0.0 0.0 -17 6 2 Cr-50 0.0 0.0 -18 6 2 Cr-52 0.0 0.0 -19 6 2 Cr-53 0.0 0.0 -20 6 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 7 1 H-1 0.0 0.0 -22 7 1 O-16 0.0 0.0 -23 7 1 B-10 0.0 0.0 -24 7 1 B-11 0.0 0.0 -25 7 1 Fe-54 0.0 0.0 -26 7 1 Fe-56 0.0 0.0 -27 7 1 Fe-57 0.0 0.0 -28 7 1 Fe-58 0.0 0.0 -29 7 1 Ni-58 0.0 0.0 -30 7 1 Ni-60 0.0 0.0 -31 7 1 Ni-61 0.0 0.0 -32 7 1 Ni-62 0.0 0.0 -33 7 1 Ni-64 0.0 0.0 -34 7 1 Mn-55 0.0 0.0 -35 7 1 Si-28 0.0 0.0 -36 7 1 Si-29 0.0 0.0 -37 7 1 Si-30 0.0 0.0 -38 7 1 Cr-50 0.0 0.0 -39 7 1 Cr-52 0.0 0.0 -40 7 1 Cr-53 0.0 0.0 -41 7 1 Cr-54 0.0 0.0 -0 7 2 H-1 0.0 0.0 -1 7 2 O-16 0.0 0.0 -2 7 2 B-10 0.0 0.0 -3 7 2 B-11 0.0 0.0 -4 7 2 Fe-54 0.0 0.0 -5 7 2 Fe-56 0.0 0.0 -6 7 2 Fe-57 0.0 0.0 -7 7 2 Fe-58 0.0 0.0 -8 7 2 Ni-58 0.0 0.0 -9 7 2 Ni-60 0.0 0.0 -10 7 2 Ni-61 0.0 0.0 -11 7 2 Ni-62 0.0 0.0 -12 7 2 Ni-64 0.0 0.0 -13 7 2 Mn-55 0.0 0.0 -14 7 2 Si-28 0.0 0.0 -15 7 2 Si-29 0.0 0.0 -16 7 2 Si-30 0.0 0.0 -17 7 2 Cr-50 0.0 0.0 -18 7 2 Cr-52 0.0 0.0 -19 7 2 Cr-53 0.0 0.0 -20 7 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 7 1 H-1 0.0 0.0 -22 7 1 O-16 0.0 0.0 -23 7 1 B-10 0.0 0.0 -24 7 1 B-11 0.0 0.0 -25 7 1 Fe-54 0.0 0.0 -26 7 1 Fe-56 0.0 0.0 -27 7 1 Fe-57 0.0 0.0 -28 7 1 Fe-58 0.0 0.0 -29 7 1 Ni-58 0.0 0.0 -30 7 1 Ni-60 0.0 0.0 -31 7 1 Ni-61 0.0 0.0 -32 7 1 Ni-62 0.0 0.0 -33 7 1 Ni-64 0.0 0.0 -34 7 1 Mn-55 0.0 0.0 -35 7 1 Si-28 0.0 0.0 -36 7 1 Si-29 0.0 0.0 -37 7 1 Si-30 0.0 0.0 -38 7 1 Cr-50 0.0 0.0 -39 7 1 Cr-52 0.0 0.0 -40 7 1 Cr-53 0.0 0.0 -41 7 1 Cr-54 0.0 0.0 -0 7 2 H-1 0.0 0.0 -1 7 2 O-16 0.0 0.0 -2 7 2 B-10 0.0 0.0 -3 7 2 B-11 0.0 0.0 -4 7 2 Fe-54 0.0 0.0 -5 7 2 Fe-56 0.0 0.0 -6 7 2 Fe-57 0.0 0.0 -7 7 2 Fe-58 0.0 0.0 -8 7 2 Ni-58 0.0 0.0 -9 7 2 Ni-60 0.0 0.0 -10 7 2 Ni-61 0.0 0.0 -11 7 2 Ni-62 0.0 0.0 -12 7 2 Ni-64 0.0 0.0 -13 7 2 Mn-55 0.0 0.0 -14 7 2 Si-28 0.0 0.0 -15 7 2 Si-29 0.0 0.0 -16 7 2 Si-30 0.0 0.0 -17 7 2 Cr-50 0.0 0.0 -18 7 2 Cr-52 0.0 0.0 -19 7 2 Cr-53 0.0 0.0 -20 7 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. -63 7 1 1 H-1 0.0 0.0 -64 7 1 1 O-16 0.0 0.0 -65 7 1 1 B-10 0.0 0.0 -66 7 1 1 B-11 0.0 0.0 -67 7 1 1 Fe-54 0.0 0.0 -68 7 1 1 Fe-56 0.0 0.0 -69 7 1 1 Fe-57 0.0 0.0 -70 7 1 1 Fe-58 0.0 0.0 -71 7 1 1 Ni-58 0.0 0.0 -72 7 1 1 Ni-60 0.0 0.0 -73 7 1 1 Ni-61 0.0 0.0 -74 7 1 1 Ni-62 0.0 0.0 -75 7 1 1 Ni-64 0.0 0.0 -76 7 1 1 Mn-55 0.0 0.0 -77 7 1 1 Si-28 0.0 0.0 -78 7 1 1 Si-29 0.0 0.0 -79 7 1 1 Si-30 0.0 0.0 -80 7 1 1 Cr-50 0.0 0.0 -81 7 1 1 Cr-52 0.0 0.0 -82 7 1 1 Cr-53 0.0 0.0 -83 7 1 1 Cr-54 0.0 0.0 -42 7 1 2 H-1 0.0 0.0 -43 7 1 2 O-16 0.0 0.0 -44 7 1 2 B-10 0.0 0.0 -45 7 1 2 B-11 0.0 0.0 -46 7 1 2 Fe-54 0.0 0.0 -47 7 1 2 Fe-56 0.0 0.0 -48 7 1 2 Fe-57 0.0 0.0 -49 7 1 2 Fe-58 0.0 0.0 -50 7 1 2 Ni-58 0.0 0.0 -51 7 1 2 Ni-60 0.0 0.0 -52 7 1 2 Ni-61 0.0 0.0 -53 7 1 2 Ni-62 0.0 0.0 -54 7 1 2 Ni-64 0.0 0.0 -55 7 1 2 Mn-55 0.0 0.0 -56 7 1 2 Si-28 0.0 0.0 -57 7 1 2 Si-29 0.0 0.0 -58 7 1 2 Si-30 0.0 0.0 -59 7 1 2 Cr-50 0.0 0.0 -60 7 1 2 Cr-52 0.0 0.0 -61 7 1 2 Cr-53 0.0 0.0 -62 7 1 2 Cr-54 0.0 0.0 -21 7 2 1 H-1 0.0 0.0 -22 7 2 1 O-16 0.0 0.0 -23 7 2 1 B-10 0.0 0.0 -24 7 2 1 B-11 0.0 0.0 -25 7 2 1 Fe-54 0.0 0.0 -26 7 2 1 Fe-56 0.0 0.0 -27 7 2 1 Fe-57 0.0 0.0 -28 7 2 1 Fe-58 0.0 0.0 -29 7 2 1 Ni-58 0.0 0.0 -30 7 2 1 Ni-60 0.0 0.0 -31 7 2 1 Ni-61 0.0 0.0 -32 7 2 1 Ni-62 0.0 0.0 -33 7 2 1 Ni-64 0.0 0.0 -34 7 2 1 Mn-55 0.0 0.0 -35 7 2 1 Si-28 0.0 0.0 -36 7 2 1 Si-29 0.0 0.0 -37 7 2 1 Si-30 0.0 0.0 -38 7 2 1 Cr-50 0.0 0.0 -39 7 2 1 Cr-52 0.0 0.0 -40 7 2 1 Cr-53 0.0 0.0 -41 7 2 1 Cr-54 0.0 0.0 -0 7 2 2 H-1 0.0 0.0 -1 7 2 2 O-16 0.0 0.0 -2 7 2 2 B-10 0.0 0.0 -3 7 2 2 B-11 0.0 0.0 -4 7 2 2 Fe-54 0.0 0.0 -5 7 2 2 Fe-56 0.0 0.0 -6 7 2 2 Fe-57 0.0 0.0 -7 7 2 2 Fe-58 0.0 0.0 -8 7 2 2 Ni-58 0.0 0.0 -9 7 2 2 Ni-60 0.0 0.0 -10 7 2 2 Ni-61 0.0 0.0 -11 7 2 2 Ni-62 0.0 0.0 -12 7 2 2 Ni-64 0.0 0.0 -13 7 2 2 Mn-55 0.0 0.0 -14 7 2 2 Si-28 0.0 0.0 -15 7 2 2 Si-29 0.0 0.0 -16 7 2 2 Si-30 0.0 0.0 -17 7 2 2 Cr-50 0.0 0.0 -18 7 2 2 Cr-52 0.0 0.0 -19 7 2 2 Cr-53 0.0 0.0 -20 7 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. -21 7 1 H-1 0.0 0.0 -22 7 1 O-16 0.0 0.0 -23 7 1 B-10 0.0 0.0 -24 7 1 B-11 0.0 0.0 -25 7 1 Fe-54 0.0 0.0 -26 7 1 Fe-56 0.0 0.0 -27 7 1 Fe-57 0.0 0.0 -28 7 1 Fe-58 0.0 0.0 -29 7 1 Ni-58 0.0 0.0 -30 7 1 Ni-60 0.0 0.0 -31 7 1 Ni-61 0.0 0.0 -32 7 1 Ni-62 0.0 0.0 -33 7 1 Ni-64 0.0 0.0 -34 7 1 Mn-55 0.0 0.0 -35 7 1 Si-28 0.0 0.0 -36 7 1 Si-29 0.0 0.0 -37 7 1 Si-30 0.0 0.0 -38 7 1 Cr-50 0.0 0.0 -39 7 1 Cr-52 0.0 0.0 -40 7 1 Cr-53 0.0 0.0 -41 7 1 Cr-54 0.0 0.0 -0 7 2 H-1 0.0 0.0 -1 7 2 O-16 0.0 0.0 -2 7 2 B-10 0.0 0.0 -3 7 2 B-11 0.0 0.0 -4 7 2 Fe-54 0.0 0.0 -5 7 2 Fe-56 0.0 0.0 -6 7 2 Fe-57 0.0 0.0 -7 7 2 Fe-58 0.0 0.0 -8 7 2 Ni-58 0.0 0.0 -9 7 2 Ni-60 0.0 0.0 -10 7 2 Ni-61 0.0 0.0 -11 7 2 Ni-62 0.0 0.0 -12 7 2 Ni-64 0.0 0.0 -13 7 2 Mn-55 0.0 0.0 -14 7 2 Si-28 0.0 0.0 -15 7 2 Si-29 0.0 0.0 -16 7 2 Si-30 0.0 0.0 -17 7 2 Cr-50 0.0 0.0 -18 7 2 Cr-52 0.0 0.0 -19 7 2 Cr-53 0.0 0.0 -20 7 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 8 1 H-1 0.0 0.0 -22 8 1 O-16 0.0 0.0 -23 8 1 B-10 0.0 0.0 -24 8 1 B-11 0.0 0.0 -25 8 1 Fe-54 0.0 0.0 -26 8 1 Fe-56 0.0 0.0 -27 8 1 Fe-57 0.0 0.0 -28 8 1 Fe-58 0.0 0.0 -29 8 1 Ni-58 0.0 0.0 -30 8 1 Ni-60 0.0 0.0 -31 8 1 Ni-61 0.0 0.0 -32 8 1 Ni-62 0.0 0.0 -33 8 1 Ni-64 0.0 0.0 -34 8 1 Mn-55 0.0 0.0 -35 8 1 Si-28 0.0 0.0 -36 8 1 Si-29 0.0 0.0 -37 8 1 Si-30 0.0 0.0 -38 8 1 Cr-50 0.0 0.0 -39 8 1 Cr-52 0.0 0.0 -40 8 1 Cr-53 0.0 0.0 -41 8 1 Cr-54 0.0 0.0 -0 8 2 H-1 0.0 0.0 -1 8 2 O-16 0.0 0.0 -2 8 2 B-10 0.0 0.0 -3 8 2 B-11 0.0 0.0 -4 8 2 Fe-54 0.0 0.0 -5 8 2 Fe-56 0.0 0.0 -6 8 2 Fe-57 0.0 0.0 -7 8 2 Fe-58 0.0 0.0 -8 8 2 Ni-58 0.0 0.0 -9 8 2 Ni-60 0.0 0.0 -10 8 2 Ni-61 0.0 0.0 -11 8 2 Ni-62 0.0 0.0 -12 8 2 Ni-64 0.0 0.0 -13 8 2 Mn-55 0.0 0.0 -14 8 2 Si-28 0.0 0.0 -15 8 2 Si-29 0.0 0.0 -16 8 2 Si-30 0.0 0.0 -17 8 2 Cr-50 0.0 0.0 -18 8 2 Cr-52 0.0 0.0 -19 8 2 Cr-53 0.0 0.0 -20 8 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 8 1 H-1 0.0 0.0 -22 8 1 O-16 0.0 0.0 -23 8 1 B-10 0.0 0.0 -24 8 1 B-11 0.0 0.0 -25 8 1 Fe-54 0.0 0.0 -26 8 1 Fe-56 0.0 0.0 -27 8 1 Fe-57 0.0 0.0 -28 8 1 Fe-58 0.0 0.0 -29 8 1 Ni-58 0.0 0.0 -30 8 1 Ni-60 0.0 0.0 -31 8 1 Ni-61 0.0 0.0 -32 8 1 Ni-62 0.0 0.0 -33 8 1 Ni-64 0.0 0.0 -34 8 1 Mn-55 0.0 0.0 -35 8 1 Si-28 0.0 0.0 -36 8 1 Si-29 0.0 0.0 -37 8 1 Si-30 0.0 0.0 -38 8 1 Cr-50 0.0 0.0 -39 8 1 Cr-52 0.0 0.0 -40 8 1 Cr-53 0.0 0.0 -41 8 1 Cr-54 0.0 0.0 -0 8 2 H-1 0.0 0.0 -1 8 2 O-16 0.0 0.0 -2 8 2 B-10 0.0 0.0 -3 8 2 B-11 0.0 0.0 -4 8 2 Fe-54 0.0 0.0 -5 8 2 Fe-56 0.0 0.0 -6 8 2 Fe-57 0.0 0.0 -7 8 2 Fe-58 0.0 0.0 -8 8 2 Ni-58 0.0 0.0 -9 8 2 Ni-60 0.0 0.0 -10 8 2 Ni-61 0.0 0.0 -11 8 2 Ni-62 0.0 0.0 -12 8 2 Ni-64 0.0 0.0 -13 8 2 Mn-55 0.0 0.0 -14 8 2 Si-28 0.0 0.0 -15 8 2 Si-29 0.0 0.0 -16 8 2 Si-30 0.0 0.0 -17 8 2 Cr-50 0.0 0.0 -18 8 2 Cr-52 0.0 0.0 -19 8 2 Cr-53 0.0 0.0 -20 8 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. -63 8 1 1 H-1 0.0 0.0 -64 8 1 1 O-16 0.0 0.0 -65 8 1 1 B-10 0.0 0.0 -66 8 1 1 B-11 0.0 0.0 -67 8 1 1 Fe-54 0.0 0.0 -68 8 1 1 Fe-56 0.0 0.0 -69 8 1 1 Fe-57 0.0 0.0 -70 8 1 1 Fe-58 0.0 0.0 -71 8 1 1 Ni-58 0.0 0.0 -72 8 1 1 Ni-60 0.0 0.0 -73 8 1 1 Ni-61 0.0 0.0 -74 8 1 1 Ni-62 0.0 0.0 -75 8 1 1 Ni-64 0.0 0.0 -76 8 1 1 Mn-55 0.0 0.0 -77 8 1 1 Si-28 0.0 0.0 -78 8 1 1 Si-29 0.0 0.0 -79 8 1 1 Si-30 0.0 0.0 -80 8 1 1 Cr-50 0.0 0.0 -81 8 1 1 Cr-52 0.0 0.0 -82 8 1 1 Cr-53 0.0 0.0 -83 8 1 1 Cr-54 0.0 0.0 -42 8 1 2 H-1 0.0 0.0 -43 8 1 2 O-16 0.0 0.0 -44 8 1 2 B-10 0.0 0.0 -45 8 1 2 B-11 0.0 0.0 -46 8 1 2 Fe-54 0.0 0.0 -47 8 1 2 Fe-56 0.0 0.0 -48 8 1 2 Fe-57 0.0 0.0 -49 8 1 2 Fe-58 0.0 0.0 -50 8 1 2 Ni-58 0.0 0.0 -51 8 1 2 Ni-60 0.0 0.0 -52 8 1 2 Ni-61 0.0 0.0 -53 8 1 2 Ni-62 0.0 0.0 -54 8 1 2 Ni-64 0.0 0.0 -55 8 1 2 Mn-55 0.0 0.0 -56 8 1 2 Si-28 0.0 0.0 -57 8 1 2 Si-29 0.0 0.0 -58 8 1 2 Si-30 0.0 0.0 -59 8 1 2 Cr-50 0.0 0.0 -60 8 1 2 Cr-52 0.0 0.0 -61 8 1 2 Cr-53 0.0 0.0 -62 8 1 2 Cr-54 0.0 0.0 -21 8 2 1 H-1 0.0 0.0 -22 8 2 1 O-16 0.0 0.0 -23 8 2 1 B-10 0.0 0.0 -24 8 2 1 B-11 0.0 0.0 -25 8 2 1 Fe-54 0.0 0.0 -26 8 2 1 Fe-56 0.0 0.0 -27 8 2 1 Fe-57 0.0 0.0 -28 8 2 1 Fe-58 0.0 0.0 -29 8 2 1 Ni-58 0.0 0.0 -30 8 2 1 Ni-60 0.0 0.0 -31 8 2 1 Ni-61 0.0 0.0 -32 8 2 1 Ni-62 0.0 0.0 -33 8 2 1 Ni-64 0.0 0.0 -34 8 2 1 Mn-55 0.0 0.0 -35 8 2 1 Si-28 0.0 0.0 -36 8 2 1 Si-29 0.0 0.0 -37 8 2 1 Si-30 0.0 0.0 -38 8 2 1 Cr-50 0.0 0.0 -39 8 2 1 Cr-52 0.0 0.0 -40 8 2 1 Cr-53 0.0 0.0 -41 8 2 1 Cr-54 0.0 0.0 -0 8 2 2 H-1 0.0 0.0 -1 8 2 2 O-16 0.0 0.0 -2 8 2 2 B-10 0.0 0.0 -3 8 2 2 B-11 0.0 0.0 -4 8 2 2 Fe-54 0.0 0.0 -5 8 2 2 Fe-56 0.0 0.0 -6 8 2 2 Fe-57 0.0 0.0 -7 8 2 2 Fe-58 0.0 0.0 -8 8 2 2 Ni-58 0.0 0.0 -9 8 2 2 Ni-60 0.0 0.0 -10 8 2 2 Ni-61 0.0 0.0 -11 8 2 2 Ni-62 0.0 0.0 -12 8 2 2 Ni-64 0.0 0.0 -13 8 2 2 Mn-55 0.0 0.0 -14 8 2 2 Si-28 0.0 0.0 -15 8 2 2 Si-29 0.0 0.0 -16 8 2 2 Si-30 0.0 0.0 -17 8 2 2 Cr-50 0.0 0.0 -18 8 2 2 Cr-52 0.0 0.0 -19 8 2 2 Cr-53 0.0 0.0 -20 8 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. -21 8 1 H-1 0.0 0.0 -22 8 1 O-16 0.0 0.0 -23 8 1 B-10 0.0 0.0 -24 8 1 B-11 0.0 0.0 -25 8 1 Fe-54 0.0 0.0 -26 8 1 Fe-56 0.0 0.0 -27 8 1 Fe-57 0.0 0.0 -28 8 1 Fe-58 0.0 0.0 -29 8 1 Ni-58 0.0 0.0 -30 8 1 Ni-60 0.0 0.0 -31 8 1 Ni-61 0.0 0.0 -32 8 1 Ni-62 0.0 0.0 -33 8 1 Ni-64 0.0 0.0 -34 8 1 Mn-55 0.0 0.0 -35 8 1 Si-28 0.0 0.0 -36 8 1 Si-29 0.0 0.0 -37 8 1 Si-30 0.0 0.0 -38 8 1 Cr-50 0.0 0.0 -39 8 1 Cr-52 0.0 0.0 -40 8 1 Cr-53 0.0 0.0 -41 8 1 Cr-54 0.0 0.0 -0 8 2 H-1 0.0 0.0 -1 8 2 O-16 0.0 0.0 -2 8 2 B-10 0.0 0.0 -3 8 2 B-11 0.0 0.0 -4 8 2 Fe-54 0.0 0.0 -5 8 2 Fe-56 0.0 0.0 -6 8 2 Fe-57 0.0 0.0 -7 8 2 Fe-58 0.0 0.0 -8 8 2 Ni-58 0.0 0.0 -9 8 2 Ni-60 0.0 0.0 -10 8 2 Ni-61 0.0 0.0 -11 8 2 Ni-62 0.0 0.0 -12 8 2 Ni-64 0.0 0.0 -13 8 2 Mn-55 0.0 0.0 -14 8 2 Si-28 0.0 0.0 -15 8 2 Si-29 0.0 0.0 -16 8 2 Si-30 0.0 0.0 -17 8 2 Cr-50 0.0 0.0 -18 8 2 Cr-52 0.0 0.0 -19 8 2 Cr-53 0.0 0.0 -20 8 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 9 1 H-1 0.150655 0.480993 -22 9 1 O-16 0.116221 0.114089 -23 9 1 B-10 0.000000 0.000000 -24 9 1 B-11 0.000000 0.000000 -25 9 1 Fe-54 0.000000 0.000000 -26 9 1 Fe-56 0.186217 0.199795 -27 9 1 Fe-57 0.000000 0.000000 -28 9 1 Fe-58 0.000000 0.000000 -29 9 1 Ni-58 0.000000 0.000000 -30 9 1 Ni-60 0.000000 0.000000 -31 9 1 Ni-61 0.000000 0.000000 -32 9 1 Ni-62 0.000000 0.000000 -33 9 1 Ni-64 0.000000 0.000000 -34 9 1 Mn-55 0.000000 0.000000 -35 9 1 Si-28 0.000000 0.000000 -36 9 1 Si-29 0.000000 0.000000 -37 9 1 Si-30 0.000000 0.000000 -38 9 1 Cr-50 0.000000 0.000000 -39 9 1 Cr-52 0.000000 0.000000 -40 9 1 Cr-53 0.147443 0.139574 -41 9 1 Cr-54 0.000000 0.000000 -0 9 2 H-1 0.000000 0.000000 -1 9 2 O-16 0.000000 0.000000 -2 9 2 B-10 0.000000 0.000000 -3 9 2 B-11 0.000000 0.000000 -4 9 2 Fe-54 0.000000 0.000000 -5 9 2 Fe-56 0.000000 0.000000 -6 9 2 Fe-57 0.000000 0.000000 -7 9 2 Fe-58 0.000000 0.000000 -8 9 2 Ni-58 0.000000 0.000000 -9 9 2 Ni-60 0.000000 0.000000 -10 9 2 Ni-61 0.000000 0.000000 -11 9 2 Ni-62 0.000000 0.000000 -12 9 2 Ni-64 0.000000 0.000000 -13 9 2 Mn-55 0.000000 0.000000 -14 9 2 Si-28 0.000000 0.000000 -15 9 2 Si-29 0.000000 0.000000 -16 9 2 Si-30 0.000000 0.000000 -17 9 2 Cr-50 0.000000 0.000000 -18 9 2 Cr-52 0.000000 0.000000 -19 9 2 Cr-53 0.000000 0.000000 -20 9 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 9 1 H-1 0.0 0.0 -22 9 1 O-16 0.0 0.0 -23 9 1 B-10 0.0 0.0 -24 9 1 B-11 0.0 0.0 -25 9 1 Fe-54 0.0 0.0 -26 9 1 Fe-56 0.0 0.0 -27 9 1 Fe-57 0.0 0.0 -28 9 1 Fe-58 0.0 0.0 -29 9 1 Ni-58 0.0 0.0 -30 9 1 Ni-60 0.0 0.0 -31 9 1 Ni-61 0.0 0.0 -32 9 1 Ni-62 0.0 0.0 -33 9 1 Ni-64 0.0 0.0 -34 9 1 Mn-55 0.0 0.0 -35 9 1 Si-28 0.0 0.0 -36 9 1 Si-29 0.0 0.0 -37 9 1 Si-30 0.0 0.0 -38 9 1 Cr-50 0.0 0.0 -39 9 1 Cr-52 0.0 0.0 -40 9 1 Cr-53 0.0 0.0 -41 9 1 Cr-54 0.0 0.0 -0 9 2 H-1 0.0 0.0 -1 9 2 O-16 0.0 0.0 -2 9 2 B-10 0.0 0.0 -3 9 2 B-11 0.0 0.0 -4 9 2 Fe-54 0.0 0.0 -5 9 2 Fe-56 0.0 0.0 -6 9 2 Fe-57 0.0 0.0 -7 9 2 Fe-58 0.0 0.0 -8 9 2 Ni-58 0.0 0.0 -9 9 2 Ni-60 0.0 0.0 -10 9 2 Ni-61 0.0 0.0 -11 9 2 Ni-62 0.0 0.0 -12 9 2 Ni-64 0.0 0.0 -13 9 2 Mn-55 0.0 0.0 -14 9 2 Si-28 0.0 0.0 -15 9 2 Si-29 0.0 0.0 -16 9 2 Si-30 0.0 0.0 -17 9 2 Cr-50 0.0 0.0 -18 9 2 Cr-52 0.0 0.0 -19 9 2 Cr-53 0.0 0.0 -20 9 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. -63 9 1 1 H-1 0.150655 0.480993 -64 9 1 1 O-16 0.116221 0.114089 -65 9 1 1 B-10 0.000000 0.000000 -66 9 1 1 B-11 0.000000 0.000000 -67 9 1 1 Fe-54 0.000000 0.000000 -68 9 1 1 Fe-56 0.186217 0.199795 -69 9 1 1 Fe-57 0.000000 0.000000 -70 9 1 1 Fe-58 0.000000 0.000000 -71 9 1 1 Ni-58 0.000000 0.000000 -72 9 1 1 Ni-60 0.000000 0.000000 -73 9 1 1 Ni-61 0.000000 0.000000 -74 9 1 1 Ni-62 0.000000 0.000000 -75 9 1 1 Ni-64 0.000000 0.000000 -76 9 1 1 Mn-55 0.000000 0.000000 -77 9 1 1 Si-28 0.000000 0.000000 -78 9 1 1 Si-29 0.000000 0.000000 -79 9 1 1 Si-30 0.000000 0.000000 -80 9 1 1 Cr-50 0.000000 0.000000 -81 9 1 1 Cr-52 0.000000 0.000000 -82 9 1 1 Cr-53 0.147443 0.139574 -83 9 1 1 Cr-54 0.000000 0.000000 -42 9 1 2 H-1 0.000000 0.000000 -43 9 1 2 O-16 0.000000 0.000000 -44 9 1 2 B-10 0.000000 0.000000 -45 9 1 2 B-11 0.000000 0.000000 -46 9 1 2 Fe-54 0.000000 0.000000 -47 9 1 2 Fe-56 0.000000 0.000000 -48 9 1 2 Fe-57 0.000000 0.000000 -49 9 1 2 Fe-58 0.000000 0.000000 -50 9 1 2 Ni-58 0.000000 0.000000 -51 9 1 2 Ni-60 0.000000 0.000000 -52 9 1 2 Ni-61 0.000000 0.000000 -53 9 1 2 Ni-62 0.000000 0.000000 -54 9 1 2 Ni-64 0.000000 0.000000 -55 9 1 2 Mn-55 0.000000 0.000000 -56 9 1 2 Si-28 0.000000 0.000000 -57 9 1 2 Si-29 0.000000 0.000000 -58 9 1 2 Si-30 0.000000 0.000000 -59 9 1 2 Cr-50 0.000000 0.000000 -60 9 1 2 Cr-52 0.000000 0.000000 -61 9 1 2 Cr-53 0.000000 0.000000 -62 9 1 2 Cr-54 0.000000 0.000000 -21 9 2 1 H-1 0.000000 0.000000 -22 9 2 1 O-16 0.000000 0.000000 -23 9 2 1 B-10 0.000000 0.000000 -24 9 2 1 B-11 0.000000 0.000000 -25 9 2 1 Fe-54 0.000000 0.000000 -26 9 2 1 Fe-56 0.000000 0.000000 -27 9 2 1 Fe-57 0.000000 0.000000 -28 9 2 1 Fe-58 0.000000 0.000000 -29 9 2 1 Ni-58 0.000000 0.000000 -30 9 2 1 Ni-60 0.000000 0.000000 -31 9 2 1 Ni-61 0.000000 0.000000 -32 9 2 1 Ni-62 0.000000 0.000000 -33 9 2 1 Ni-64 0.000000 0.000000 -34 9 2 1 Mn-55 0.000000 0.000000 -35 9 2 1 Si-28 0.000000 0.000000 -36 9 2 1 Si-29 0.000000 0.000000 -37 9 2 1 Si-30 0.000000 0.000000 -38 9 2 1 Cr-50 0.000000 0.000000 -39 9 2 1 Cr-52 0.000000 0.000000 -40 9 2 1 Cr-53 0.000000 0.000000 -41 9 2 1 Cr-54 0.000000 0.000000 -0 9 2 2 H-1 0.000000 0.000000 -1 9 2 2 O-16 0.000000 0.000000 -2 9 2 2 B-10 0.000000 0.000000 -3 9 2 2 B-11 0.000000 0.000000 -4 9 2 2 Fe-54 0.000000 0.000000 -5 9 2 2 Fe-56 0.000000 0.000000 -6 9 2 2 Fe-57 0.000000 0.000000 -7 9 2 2 Fe-58 0.000000 0.000000 -8 9 2 2 Ni-58 0.000000 0.000000 -9 9 2 2 Ni-60 0.000000 0.000000 -10 9 2 2 Ni-61 0.000000 0.000000 -11 9 2 2 Ni-62 0.000000 0.000000 -12 9 2 2 Ni-64 0.000000 0.000000 -13 9 2 2 Mn-55 0.000000 0.000000 -14 9 2 2 Si-28 0.000000 0.000000 -15 9 2 2 Si-29 0.000000 0.000000 -16 9 2 2 Si-30 0.000000 0.000000 -17 9 2 2 Cr-50 0.000000 0.000000 -18 9 2 2 Cr-52 0.000000 0.000000 -19 9 2 2 Cr-53 0.000000 0.000000 -20 9 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. -21 9 1 H-1 0.0 0.0 -22 9 1 O-16 0.0 0.0 -23 9 1 B-10 0.0 0.0 -24 9 1 B-11 0.0 0.0 -25 9 1 Fe-54 0.0 0.0 -26 9 1 Fe-56 0.0 0.0 -27 9 1 Fe-57 0.0 0.0 -28 9 1 Fe-58 0.0 0.0 -29 9 1 Ni-58 0.0 0.0 -30 9 1 Ni-60 0.0 0.0 -31 9 1 Ni-61 0.0 0.0 -32 9 1 Ni-62 0.0 0.0 -33 9 1 Ni-64 0.0 0.0 -34 9 1 Mn-55 0.0 0.0 -35 9 1 Si-28 0.0 0.0 -36 9 1 Si-29 0.0 0.0 -37 9 1 Si-30 0.0 0.0 -38 9 1 Cr-50 0.0 0.0 -39 9 1 Cr-52 0.0 0.0 -40 9 1 Cr-53 0.0 0.0 -41 9 1 Cr-54 0.0 0.0 -0 9 2 H-1 0.0 0.0 -1 9 2 O-16 0.0 0.0 -2 9 2 B-10 0.0 0.0 -3 9 2 B-11 0.0 0.0 -4 9 2 Fe-54 0.0 0.0 -5 9 2 Fe-56 0.0 0.0 -6 9 2 Fe-57 0.0 0.0 -7 9 2 Fe-58 0.0 0.0 -8 9 2 Ni-58 0.0 0.0 -9 9 2 Ni-60 0.0 0.0 -10 9 2 Ni-61 0.0 0.0 -11 9 2 Ni-62 0.0 0.0 -12 9 2 Ni-64 0.0 0.0 -13 9 2 Mn-55 0.0 0.0 -14 9 2 Si-28 0.0 0.0 -15 9 2 Si-29 0.0 0.0 -16 9 2 Si-30 0.0 0.0 -17 9 2 Cr-50 0.0 0.0 -18 9 2 Cr-52 0.0 0.0 -19 9 2 Cr-53 0.0 0.0 -20 9 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 10 1 H-1 0.123944 0.541390 -22 10 1 O-16 0.000000 0.000000 -23 10 1 B-10 0.000000 0.000000 -24 10 1 B-11 0.000000 0.000000 -25 10 1 Fe-54 0.000000 0.000000 -26 10 1 Fe-56 0.000000 0.000000 -27 10 1 Fe-57 0.000000 0.000000 -28 10 1 Fe-58 0.000000 0.000000 -29 10 1 Ni-58 0.000000 0.000000 -30 10 1 Ni-60 0.000000 0.000000 -31 10 1 Ni-61 0.000000 0.000000 -32 10 1 Ni-62 0.000000 0.000000 -33 10 1 Ni-64 0.000000 0.000000 -34 10 1 Mn-55 0.000000 0.000000 -35 10 1 Si-28 0.000000 0.000000 -36 10 1 Si-29 0.000000 0.000000 -37 10 1 Si-30 0.000000 0.000000 -38 10 1 Cr-50 0.111571 0.138458 -39 10 1 Cr-52 0.000000 0.000000 -40 10 1 Cr-53 0.000000 0.000000 -41 10 1 Cr-54 0.000000 0.000000 -0 10 2 H-1 0.000000 0.000000 -1 10 2 O-16 0.000000 0.000000 -2 10 2 B-10 0.000000 0.000000 -3 10 2 B-11 0.000000 0.000000 -4 10 2 Fe-54 0.000000 0.000000 -5 10 2 Fe-56 0.000000 0.000000 -6 10 2 Fe-57 0.000000 0.000000 -7 10 2 Fe-58 0.000000 0.000000 -8 10 2 Ni-58 0.000000 0.000000 -9 10 2 Ni-60 0.000000 0.000000 -10 10 2 Ni-61 0.000000 0.000000 -11 10 2 Ni-62 0.000000 0.000000 -12 10 2 Ni-64 0.000000 0.000000 -13 10 2 Mn-55 0.000000 0.000000 -14 10 2 Si-28 0.000000 0.000000 -15 10 2 Si-29 0.000000 0.000000 -16 10 2 Si-30 0.000000 0.000000 -17 10 2 Cr-50 0.000000 0.000000 -18 10 2 Cr-52 0.000000 0.000000 -19 10 2 Cr-53 0.000000 0.000000 -20 10 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 10 1 H-1 0.0 0.0 -22 10 1 O-16 0.0 0.0 -23 10 1 B-10 0.0 0.0 -24 10 1 B-11 0.0 0.0 -25 10 1 Fe-54 0.0 0.0 -26 10 1 Fe-56 0.0 0.0 -27 10 1 Fe-57 0.0 0.0 -28 10 1 Fe-58 0.0 0.0 -29 10 1 Ni-58 0.0 0.0 -30 10 1 Ni-60 0.0 0.0 -31 10 1 Ni-61 0.0 0.0 -32 10 1 Ni-62 0.0 0.0 -33 10 1 Ni-64 0.0 0.0 -34 10 1 Mn-55 0.0 0.0 -35 10 1 Si-28 0.0 0.0 -36 10 1 Si-29 0.0 0.0 -37 10 1 Si-30 0.0 0.0 -38 10 1 Cr-50 0.0 0.0 -39 10 1 Cr-52 0.0 0.0 -40 10 1 Cr-53 0.0 0.0 -41 10 1 Cr-54 0.0 0.0 -0 10 2 H-1 0.0 0.0 -1 10 2 O-16 0.0 0.0 -2 10 2 B-10 0.0 0.0 -3 10 2 B-11 0.0 0.0 -4 10 2 Fe-54 0.0 0.0 -5 10 2 Fe-56 0.0 0.0 -6 10 2 Fe-57 0.0 0.0 -7 10 2 Fe-58 0.0 0.0 -8 10 2 Ni-58 0.0 0.0 -9 10 2 Ni-60 0.0 0.0 -10 10 2 Ni-61 0.0 0.0 -11 10 2 Ni-62 0.0 0.0 -12 10 2 Ni-64 0.0 0.0 -13 10 2 Mn-55 0.0 0.0 -14 10 2 Si-28 0.0 0.0 -15 10 2 Si-29 0.0 0.0 -16 10 2 Si-30 0.0 0.0 -17 10 2 Cr-50 0.0 0.0 -18 10 2 Cr-52 0.0 0.0 -19 10 2 Cr-53 0.0 0.0 -20 10 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. -63 10 1 1 H-1 0.123944 0.541390 -64 10 1 1 O-16 0.000000 0.000000 -65 10 1 1 B-10 0.000000 0.000000 -66 10 1 1 B-11 0.000000 0.000000 -67 10 1 1 Fe-54 0.000000 0.000000 -68 10 1 1 Fe-56 0.000000 0.000000 -69 10 1 1 Fe-57 0.000000 0.000000 -70 10 1 1 Fe-58 0.000000 0.000000 -71 10 1 1 Ni-58 0.000000 0.000000 -72 10 1 1 Ni-60 0.000000 0.000000 -73 10 1 1 Ni-61 0.000000 0.000000 -74 10 1 1 Ni-62 0.000000 0.000000 -75 10 1 1 Ni-64 0.000000 0.000000 -76 10 1 1 Mn-55 0.000000 0.000000 -77 10 1 1 Si-28 0.000000 0.000000 -78 10 1 1 Si-29 0.000000 0.000000 -79 10 1 1 Si-30 0.000000 0.000000 -80 10 1 1 Cr-50 0.111571 0.138458 -81 10 1 1 Cr-52 0.000000 0.000000 -82 10 1 1 Cr-53 0.000000 0.000000 -83 10 1 1 Cr-54 0.000000 0.000000 -42 10 1 2 H-1 0.000000 0.000000 -43 10 1 2 O-16 0.000000 0.000000 -44 10 1 2 B-10 0.000000 0.000000 -45 10 1 2 B-11 0.000000 0.000000 -46 10 1 2 Fe-54 0.000000 0.000000 -47 10 1 2 Fe-56 0.000000 0.000000 -48 10 1 2 Fe-57 0.000000 0.000000 -49 10 1 2 Fe-58 0.000000 0.000000 -50 10 1 2 Ni-58 0.000000 0.000000 -51 10 1 2 Ni-60 0.000000 0.000000 -52 10 1 2 Ni-61 0.000000 0.000000 -53 10 1 2 Ni-62 0.000000 0.000000 -54 10 1 2 Ni-64 0.000000 0.000000 -55 10 1 2 Mn-55 0.000000 0.000000 -56 10 1 2 Si-28 0.000000 0.000000 -57 10 1 2 Si-29 0.000000 0.000000 -58 10 1 2 Si-30 0.000000 0.000000 -59 10 1 2 Cr-50 0.000000 0.000000 -60 10 1 2 Cr-52 0.000000 0.000000 -61 10 1 2 Cr-53 0.000000 0.000000 -62 10 1 2 Cr-54 0.000000 0.000000 -21 10 2 1 H-1 0.000000 0.000000 -22 10 2 1 O-16 0.000000 0.000000 -23 10 2 1 B-10 0.000000 0.000000 -24 10 2 1 B-11 0.000000 0.000000 -25 10 2 1 Fe-54 0.000000 0.000000 -26 10 2 1 Fe-56 0.000000 0.000000 -27 10 2 1 Fe-57 0.000000 0.000000 -28 10 2 1 Fe-58 0.000000 0.000000 -29 10 2 1 Ni-58 0.000000 0.000000 -30 10 2 1 Ni-60 0.000000 0.000000 -31 10 2 1 Ni-61 0.000000 0.000000 -32 10 2 1 Ni-62 0.000000 0.000000 -33 10 2 1 Ni-64 0.000000 0.000000 -34 10 2 1 Mn-55 0.000000 0.000000 -35 10 2 1 Si-28 0.000000 0.000000 -36 10 2 1 Si-29 0.000000 0.000000 -37 10 2 1 Si-30 0.000000 0.000000 -38 10 2 1 Cr-50 0.000000 0.000000 -39 10 2 1 Cr-52 0.000000 0.000000 -40 10 2 1 Cr-53 0.000000 0.000000 -41 10 2 1 Cr-54 0.000000 0.000000 -0 10 2 2 H-1 0.000000 0.000000 -1 10 2 2 O-16 0.000000 0.000000 -2 10 2 2 B-10 0.000000 0.000000 -3 10 2 2 B-11 0.000000 0.000000 -4 10 2 2 Fe-54 0.000000 0.000000 -5 10 2 2 Fe-56 0.000000 0.000000 -6 10 2 2 Fe-57 0.000000 0.000000 -7 10 2 2 Fe-58 0.000000 0.000000 -8 10 2 2 Ni-58 0.000000 0.000000 -9 10 2 2 Ni-60 0.000000 0.000000 -10 10 2 2 Ni-61 0.000000 0.000000 -11 10 2 2 Ni-62 0.000000 0.000000 -12 10 2 2 Ni-64 0.000000 0.000000 -13 10 2 2 Mn-55 0.000000 0.000000 -14 10 2 2 Si-28 0.000000 0.000000 -15 10 2 2 Si-29 0.000000 0.000000 -16 10 2 2 Si-30 0.000000 0.000000 -17 10 2 2 Cr-50 0.000000 0.000000 -18 10 2 2 Cr-52 0.000000 0.000000 -19 10 2 2 Cr-53 0.000000 0.000000 -20 10 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. -21 10 1 H-1 0.0 0.0 -22 10 1 O-16 0.0 0.0 -23 10 1 B-10 0.0 0.0 -24 10 1 B-11 0.0 0.0 -25 10 1 Fe-54 0.0 0.0 -26 10 1 Fe-56 0.0 0.0 -27 10 1 Fe-57 0.0 0.0 -28 10 1 Fe-58 0.0 0.0 -29 10 1 Ni-58 0.0 0.0 -30 10 1 Ni-60 0.0 0.0 -31 10 1 Ni-61 0.0 0.0 -32 10 1 Ni-62 0.0 0.0 -33 10 1 Ni-64 0.0 0.0 -34 10 1 Mn-55 0.0 0.0 -35 10 1 Si-28 0.0 0.0 -36 10 1 Si-29 0.0 0.0 -37 10 1 Si-30 0.0 0.0 -38 10 1 Cr-50 0.0 0.0 -39 10 1 Cr-52 0.0 0.0 -40 10 1 Cr-53 0.0 0.0 -41 10 1 Cr-54 0.0 0.0 -0 10 2 H-1 0.0 0.0 -1 10 2 O-16 0.0 0.0 -2 10 2 B-10 0.0 0.0 -3 10 2 B-11 0.0 0.0 -4 10 2 Fe-54 0.0 0.0 -5 10 2 Fe-56 0.0 0.0 -6 10 2 Fe-57 0.0 0.0 -7 10 2 Fe-58 0.0 0.0 -8 10 2 Ni-58 0.0 0.0 -9 10 2 Ni-60 0.0 0.0 -10 10 2 Ni-61 0.0 0.0 -11 10 2 Ni-62 0.0 0.0 -12 10 2 Ni-64 0.0 0.0 -13 10 2 Mn-55 0.0 0.0 -14 10 2 Si-28 0.0 0.0 -15 10 2 Si-29 0.0 0.0 -16 10 2 Si-30 0.0 0.0 -17 10 2 Cr-50 0.0 0.0 -18 10 2 Cr-52 0.0 0.0 -19 10 2 Cr-53 0.0 0.0 -20 10 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -9 11 1 H-1 0.131470 0.476035 -10 11 1 O-16 0.028684 0.043000 -11 11 1 B-10 0.000000 0.000000 -12 11 1 B-11 0.000000 0.000000 -13 11 1 Zr-90 0.021980 0.039963 -14 11 1 Zr-91 0.000000 0.000000 -15 11 1 Zr-92 0.000000 0.000000 -16 11 1 Zr-94 0.004191 0.087344 -17 11 1 Zr-96 0.000000 0.000000 -0 11 2 H-1 0.687243 1.239217 -1 11 2 O-16 0.000000 0.000000 -2 11 2 B-10 0.042902 0.060672 -3 11 2 B-11 0.000000 0.000000 -4 11 2 Zr-90 0.039576 0.105193 -5 11 2 Zr-91 0.000000 0.000000 -6 11 2 Zr-92 0.084226 0.103161 -7 11 2 Zr-94 0.092039 0.125985 -8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 11 1 H-1 0.0 0.0 -10 11 1 O-16 0.0 0.0 -11 11 1 B-10 0.0 0.0 -12 11 1 B-11 0.0 0.0 -13 11 1 Zr-90 0.0 0.0 -14 11 1 Zr-91 0.0 0.0 -15 11 1 Zr-92 0.0 0.0 -16 11 1 Zr-94 0.0 0.0 -17 11 1 Zr-96 0.0 0.0 -0 11 2 H-1 0.0 0.0 -1 11 2 O-16 0.0 0.0 -2 11 2 B-10 0.0 0.0 -3 11 2 B-11 0.0 0.0 -4 11 2 Zr-90 0.0 0.0 -5 11 2 Zr-91 0.0 0.0 -6 11 2 Zr-92 0.0 0.0 -7 11 2 Zr-94 0.0 0.0 -8 11 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. -27 11 1 1 H-1 0.099594 0.442578 -28 11 1 1 O-16 0.028684 0.043000 -29 11 1 1 B-10 0.000000 0.000000 -30 11 1 1 B-11 0.000000 0.000000 -31 11 1 1 Zr-90 0.021980 0.039963 -32 11 1 1 Zr-91 0.000000 0.000000 -33 11 1 1 Zr-92 0.000000 0.000000 -34 11 1 1 Zr-94 0.004191 0.087344 -35 11 1 1 Zr-96 0.000000 0.000000 -18 11 1 2 H-1 0.031875 0.045078 -19 11 1 2 O-16 0.000000 0.000000 -20 11 1 2 B-10 0.000000 0.000000 -21 11 1 2 B-11 0.000000 0.000000 -22 11 1 2 Zr-90 0.000000 0.000000 -23 11 1 2 Zr-91 0.000000 0.000000 -24 11 1 2 Zr-92 0.000000 0.000000 -25 11 1 2 Zr-94 0.000000 0.000000 -26 11 1 2 Zr-96 0.000000 0.000000 -9 11 2 1 H-1 0.000000 0.000000 -10 11 2 1 O-16 0.000000 0.000000 -11 11 2 1 B-10 0.000000 0.000000 -12 11 2 1 B-11 0.000000 0.000000 -13 11 2 1 Zr-90 0.000000 0.000000 -14 11 2 1 Zr-91 0.000000 0.000000 -15 11 2 1 Zr-92 0.000000 0.000000 -16 11 2 1 Zr-94 0.000000 0.000000 -17 11 2 1 Zr-96 0.000000 0.000000 -0 11 2 2 H-1 0.687243 1.239217 -1 11 2 2 O-16 0.000000 0.000000 -2 11 2 2 B-10 0.000000 0.000000 -3 11 2 2 B-11 0.000000 0.000000 -4 11 2 2 Zr-90 0.039576 0.105193 -5 11 2 2 Zr-91 0.000000 0.000000 -6 11 2 2 Zr-92 0.084226 0.103161 -7 11 2 2 Zr-94 0.092039 0.125985 -8 11 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. -9 11 1 H-1 0.0 0.0 -10 11 1 O-16 0.0 0.0 -11 11 1 B-10 0.0 0.0 -12 11 1 B-11 0.0 0.0 -13 11 1 Zr-90 0.0 0.0 -14 11 1 Zr-91 0.0 0.0 -15 11 1 Zr-92 0.0 0.0 -16 11 1 Zr-94 0.0 0.0 -17 11 1 Zr-96 0.0 0.0 -0 11 2 H-1 0.0 0.0 -1 11 2 O-16 0.0 0.0 -2 11 2 B-10 0.0 0.0 -3 11 2 B-11 0.0 0.0 -4 11 2 Zr-90 0.0 0.0 -5 11 2 Zr-91 0.0 0.0 -6 11 2 Zr-92 0.0 0.0 -7 11 2 Zr-94 0.0 0.0 -8 11 2 Zr-96 0.0 0.0 material group in nuclide mean std. dev. -9 12 1 H-1 0.098944 0.178543 -10 12 1 O-16 0.013270 0.020403 -11 12 1 B-10 0.000000 0.000000 -12 12 1 B-11 0.000000 0.000000 -13 12 1 Zr-90 0.089997 0.075538 -14 12 1 Zr-91 0.000000 0.000000 -15 12 1 Zr-92 0.003501 0.017031 -16 12 1 Zr-94 0.004850 0.016327 -17 12 1 Zr-96 0.002730 0.017476 -0 12 2 H-1 1.261686 1.980336 -1 12 2 O-16 0.079159 0.104796 -2 12 2 B-10 0.016928 0.023940 -3 12 2 B-11 0.000000 0.000000 -4 12 2 Zr-90 0.000000 0.000000 -5 12 2 Zr-91 0.033201 0.040665 -6 12 2 Zr-92 0.000000 0.000000 -7 12 2 Zr-94 0.000000 0.000000 -8 12 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 12 1 H-1 0.0 0.0 -10 12 1 O-16 0.0 0.0 -11 12 1 B-10 0.0 0.0 -12 12 1 B-11 0.0 0.0 -13 12 1 Zr-90 0.0 0.0 -14 12 1 Zr-91 0.0 0.0 -15 12 1 Zr-92 0.0 0.0 -16 12 1 Zr-94 0.0 0.0 -17 12 1 Zr-96 0.0 0.0 -0 12 2 H-1 0.0 0.0 -1 12 2 O-16 0.0 0.0 -2 12 2 B-10 0.0 0.0 -3 12 2 B-11 0.0 0.0 -4 12 2 Zr-90 0.0 0.0 -5 12 2 Zr-91 0.0 0.0 -6 12 2 Zr-92 0.0 0.0 -7 12 2 Zr-94 0.0 0.0 -8 12 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. -27 12 1 1 H-1 0.071704 0.167588 -28 12 1 1 O-16 0.013270 0.020403 -29 12 1 1 B-10 0.000000 0.000000 -30 12 1 1 B-11 0.000000 0.000000 -31 12 1 1 Zr-90 0.089997 0.075538 -32 12 1 1 Zr-91 0.000000 0.000000 -33 12 1 1 Zr-92 0.003501 0.017031 -34 12 1 1 Zr-94 0.004850 0.016327 -35 12 1 1 Zr-96 0.002730 0.017476 -18 12 1 2 H-1 0.027240 0.029555 -19 12 1 2 O-16 0.000000 0.000000 -20 12 1 2 B-10 0.000000 0.000000 -21 12 1 2 B-11 0.000000 0.000000 -22 12 1 2 Zr-90 0.000000 0.000000 -23 12 1 2 Zr-91 0.000000 0.000000 -24 12 1 2 Zr-92 0.000000 0.000000 -25 12 1 2 Zr-94 0.000000 0.000000 -26 12 1 2 Zr-96 0.000000 0.000000 -9 12 2 1 H-1 0.000000 0.000000 -10 12 2 1 O-16 0.000000 0.000000 -11 12 2 1 B-10 0.000000 0.000000 -12 12 2 1 B-11 0.000000 0.000000 -13 12 2 1 Zr-90 0.000000 0.000000 -14 12 2 1 Zr-91 0.000000 0.000000 -15 12 2 1 Zr-92 0.000000 0.000000 -16 12 2 1 Zr-94 0.000000 0.000000 -17 12 2 1 Zr-96 0.000000 0.000000 -0 12 2 2 H-1 1.244758 1.956675 -1 12 2 2 O-16 0.079159 0.104796 -2 12 2 2 B-10 0.000000 0.000000 -3 12 2 2 B-11 0.000000 0.000000 -4 12 2 2 Zr-90 0.000000 0.000000 -5 12 2 2 Zr-91 0.033201 0.040665 -6 12 2 2 Zr-92 0.000000 0.000000 -7 12 2 2 Zr-94 0.000000 0.000000 -8 12 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. -9 12 1 H-1 0.0 0.0 -10 12 1 O-16 0.0 0.0 -11 12 1 B-10 0.0 0.0 -12 12 1 B-11 0.0 0.0 -13 12 1 Zr-90 0.0 0.0 -14 12 1 Zr-91 0.0 0.0 -15 12 1 Zr-92 0.0 0.0 -16 12 1 Zr-94 0.0 0.0 -17 12 1 Zr-96 0.0 0.0 -0 12 2 H-1 0.0 0.0 -1 12 2 O-16 0.0 0.0 -2 12 2 B-10 0.0 0.0 -3 12 2 B-11 0.0 0.0 -4 12 2 Zr-90 0.0 0.0 -5 12 2 Zr-91 0.0 0.0 -6 12 2 Zr-92 0.0 0.0 -7 12 2 Zr-94 0.0 0.0 -8 12 2 Zr-96 0.0 0.0 \ No newline at end of file + material group in nuclide score mean std. dev. +34 1 1 U-234 ((total - scatter-1) / flux) 1.73e-04 1.73e-04 +35 1 1 U-235 ((total - scatter-1) / flux) 1.07e-02 1.89e-03 +36 1 1 U-236 ((total - scatter-1) / flux) 2.39e-03 1.06e-03 +37 1 1 U-238 ((total - scatter-1) / flux) 2.14e-01 1.33e-02 +38 1 1 Np-237 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +39 1 1 Pu-238 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +40 1 1 Pu-239 ((total - scatter-1) / flux) 2.91e-03 6.39e-04 +41 1 1 Pu-240 ((total - scatter-1) / flux) 4.43e-03 8.06e-04 +42 1 1 Pu-241 ((total - scatter-1) / flux) 6.90e-04 3.87e-04 +43 1 1 Pu-242 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +44 1 1 Am-241 ((total - scatter-1) / flux) 1.73e-04 1.73e-04 +45 1 1 Am-242m ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +46 1 1 Am-243 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +47 1 1 Cm-242 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +48 1 1 Cm-243 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +49 1 1 Cm-244 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +50 1 1 Cm-245 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +51 1 1 Mo-95 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +52 1 1 Tc-99 ((total - scatter-1) / flux) 1.73e-04 1.73e-04 +53 1 1 Ru-101 ((total - scatter-1) / flux) 2.38e-04 2.54e-04 +54 1 1 Ru-103 ((total - scatter-1) / flux) 2.26e-06 2.43e-04 +55 1 1 Ag-109 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +56 1 1 Xe-135 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +57 1 1 Cs-133 ((total - scatter-1) / flux) 3.47e-04 2.13e-04 +58 1 1 Nd-143 ((total - scatter-1) / flux) 4.47e-04 2.92e-04 +59 1 1 Nd-145 ((total - scatter-1) / flux) 5.64e-04 2.94e-04 +60 1 1 Sm-147 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +61 1 1 Sm-149 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +62 1 1 Sm-150 ((total - scatter-1) / flux) 4.72e-04 2.39e-04 +63 1 1 Sm-151 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +64 1 1 Sm-152 ((total - scatter-1) / flux) 4.92e-04 3.52e-04 +65 1 1 Eu-153 ((total - scatter-1) / flux) 1.73e-04 1.73e-04 +66 1 1 Gd-155 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +67 1 1 O-16 ((total - scatter-1) / flux) 1.35e-01 9.80e-03 +0 1 2 U-234 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +1 1 2 U-235 ((total - scatter-1) / flux) 2.00e-01 7.78e-03 +2 1 2 U-236 ((total - scatter-1) / flux) 1.50e-03 2.04e-03 +3 1 2 U-238 ((total - scatter-1) / flux) 2.55e-01 2.97e-02 +4 1 2 Np-237 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +5 1 2 Pu-238 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +6 1 2 Pu-239 ((total - scatter-1) / flux) 1.60e-01 1.14e-02 +7 1 2 Pu-240 ((total - scatter-1) / flux) 7.92e-03 3.71e-03 +8 1 2 Pu-241 ((total - scatter-1) / flux) 1.78e-02 3.73e-03 +9 1 2 Pu-242 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +10 1 2 Am-241 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +11 1 2 Am-242m ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +12 1 2 Am-243 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +13 1 2 Cm-242 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +14 1 2 Cm-243 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +15 1 2 Cm-244 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +16 1 2 Cm-245 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +17 1 2 Mo-95 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +18 1 2 Tc-99 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +19 1 2 Ru-101 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +20 1 2 Ru-103 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +21 1 2 Ag-109 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +22 1 2 Xe-135 ((total - scatter-1) / flux) 1.39e-02 3.98e-03 +23 1 2 Cs-133 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +24 1 2 Nd-143 ((total - scatter-1) / flux) 3.96e-03 2.43e-03 +25 1 2 Nd-145 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +26 1 2 Sm-147 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +27 1 2 Sm-149 ((total - scatter-1) / flux) 1.98e-03 1.98e-03 +28 1 2 Sm-150 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +29 1 2 Sm-151 ((total - scatter-1) / flux) 1.98e-03 1.98e-03 +30 1 2 Sm-152 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +31 1 2 Eu-153 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +32 1 2 Gd-155 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +33 1 2 O-16 ((total - scatter-1) / flux) 1.97e-01 1.47e-02 material group in nuclide score mean std. dev. +34 1 1 U-234 (nu-fission / flux) 7.27e-06 4.42e-07 +35 1 1 U-235 (nu-fission / flux) 9.59e-03 5.94e-04 +36 1 1 U-236 (nu-fission / flux) 7.57e-05 7.52e-06 +37 1 1 U-238 (nu-fission / flux) 7.18e-03 6.51e-04 +38 1 1 Np-237 (nu-fission / flux) 1.32e-05 8.04e-07 +39 1 1 Pu-238 (nu-fission / flux) 7.75e-06 3.99e-07 +40 1 1 Pu-239 (nu-fission / flux) 3.81e-03 3.64e-04 +41 1 1 Pu-240 (nu-fission / flux) 6.94e-05 4.73e-06 +42 1 1 Pu-241 (nu-fission / flux) 1.03e-03 9.08e-05 +43 1 1 Pu-242 (nu-fission / flux) 6.00e-06 3.82e-07 +44 1 1 Am-241 (nu-fission / flux) 1.15e-06 8.27e-08 +45 1 1 Am-242m (nu-fission / flux) 1.10e-06 6.16e-08 +46 1 1 Am-243 (nu-fission / flux) 8.32e-07 5.84e-08 +47 1 1 Cm-242 (nu-fission / flux) 5.09e-07 5.26e-08 +48 1 1 Cm-243 (nu-fission / flux) 2.25e-07 1.46e-08 +49 1 1 Cm-244 (nu-fission / flux) 2.99e-07 2.75e-08 +50 1 1 Cm-245 (nu-fission / flux) 3.06e-07 3.06e-08 +51 1 1 Mo-95 (nu-fission / flux) 0.00e+00 0.00e+00 +52 1 1 Tc-99 (nu-fission / flux) 0.00e+00 0.00e+00 +53 1 1 Ru-101 (nu-fission / flux) 0.00e+00 0.00e+00 +54 1 1 Ru-103 (nu-fission / flux) 0.00e+00 0.00e+00 +55 1 1 Ag-109 (nu-fission / flux) 0.00e+00 0.00e+00 +56 1 1 Xe-135 (nu-fission / flux) 0.00e+00 0.00e+00 +57 1 1 Cs-133 (nu-fission / flux) 0.00e+00 0.00e+00 +58 1 1 Nd-143 (nu-fission / flux) 0.00e+00 0.00e+00 +59 1 1 Nd-145 (nu-fission / flux) 0.00e+00 0.00e+00 +60 1 1 Sm-147 (nu-fission / flux) 0.00e+00 0.00e+00 +61 1 1 Sm-149 (nu-fission / flux) 0.00e+00 0.00e+00 +62 1 1 Sm-150 (nu-fission / flux) 0.00e+00 0.00e+00 +63 1 1 Sm-151 (nu-fission / flux) 0.00e+00 0.00e+00 +64 1 1 Sm-152 (nu-fission / flux) 0.00e+00 0.00e+00 +65 1 1 Eu-153 (nu-fission / flux) 0.00e+00 0.00e+00 +66 1 1 Gd-155 (nu-fission / flux) 0.00e+00 0.00e+00 +67 1 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +0 1 2 U-234 (nu-fission / flux) 4.41e-07 2.83e-08 +1 1 2 U-235 (nu-fission / flux) 3.77e-01 2.45e-02 +2 1 2 U-236 (nu-fission / flux) 6.10e-06 3.73e-07 +3 1 2 U-238 (nu-fission / flux) 5.35e-07 3.31e-08 +4 1 2 Np-237 (nu-fission / flux) 2.70e-07 2.10e-08 +5 1 2 Pu-238 (nu-fission / flux) 3.46e-05 2.64e-06 +6 1 2 Pu-239 (nu-fission / flux) 2.89e-01 1.38e-02 +7 1 2 Pu-240 (nu-fission / flux) 4.53e-06 2.54e-07 +8 1 2 Pu-241 (nu-fission / flux) 4.81e-02 2.78e-03 +9 1 2 Pu-242 (nu-fission / flux) 8.72e-08 5.46e-09 +10 1 2 Am-241 (nu-fission / flux) 4.61e-06 2.16e-07 +11 1 2 Am-242m (nu-fission / flux) 1.43e-04 8.44e-06 +12 1 2 Am-243 (nu-fission / flux) 7.88e-08 4.73e-09 +13 1 2 Cm-242 (nu-fission / flux) 9.73e-07 6.14e-08 +14 1 2 Cm-243 (nu-fission / flux) 1.83e-06 1.07e-07 +15 1 2 Cm-244 (nu-fission / flux) 1.58e-07 9.94e-09 +16 1 2 Cm-245 (nu-fission / flux) 1.21e-05 8.81e-07 +17 1 2 Mo-95 (nu-fission / flux) 0.00e+00 0.00e+00 +18 1 2 Tc-99 (nu-fission / flux) 0.00e+00 0.00e+00 +19 1 2 Ru-101 (nu-fission / flux) 0.00e+00 0.00e+00 +20 1 2 Ru-103 (nu-fission / flux) 0.00e+00 0.00e+00 +21 1 2 Ag-109 (nu-fission / flux) 0.00e+00 0.00e+00 +22 1 2 Xe-135 (nu-fission / flux) 0.00e+00 0.00e+00 +23 1 2 Cs-133 (nu-fission / flux) 0.00e+00 0.00e+00 +24 1 2 Nd-143 (nu-fission / flux) 0.00e+00 0.00e+00 +25 1 2 Nd-145 (nu-fission / flux) 0.00e+00 0.00e+00 +26 1 2 Sm-147 (nu-fission / flux) 0.00e+00 0.00e+00 +27 1 2 Sm-149 (nu-fission / flux) 0.00e+00 0.00e+00 +28 1 2 Sm-150 (nu-fission / flux) 0.00e+00 0.00e+00 +29 1 2 Sm-151 (nu-fission / flux) 0.00e+00 0.00e+00 +30 1 2 Sm-152 (nu-fission / flux) 0.00e+00 0.00e+00 +31 1 2 Eu-153 (nu-fission / flux) 0.00e+00 0.00e+00 +32 1 2 Gd-155 (nu-fission / flux) 0.00e+00 0.00e+00 +33 1 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +102 1 1 1 U-234 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +103 1 1 1 U-235 ((nu-scatter-0 - scatter-1) / flux) 3.23e-03 1.14e-03 +104 1 1 1 U-236 ((nu-scatter-0 - scatter-1) / flux) 1.70e-03 9.23e-04 +105 1 1 1 U-238 ((nu-scatter-0 - scatter-1) / flux) 1.95e-01 1.33e-02 +106 1 1 1 Np-237 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +107 1 1 1 Pu-238 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +108 1 1 1 Pu-239 ((nu-scatter-0 - scatter-1) / flux) 1.01e-03 4.77e-04 +109 1 1 1 Pu-240 ((nu-scatter-0 - scatter-1) / flux) 1.31e-03 2.95e-04 +110 1 1 1 Pu-241 ((nu-scatter-0 - scatter-1) / flux) 3.44e-04 2.44e-04 +111 1 1 1 Pu-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +112 1 1 1 Am-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +113 1 1 1 Am-242m ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +114 1 1 1 Am-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +115 1 1 1 Cm-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +116 1 1 1 Cm-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +117 1 1 1 Cm-244 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +118 1 1 1 Cm-245 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +119 1 1 1 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +120 1 1 1 Tc-99 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +121 1 1 1 Ru-101 ((nu-scatter-0 - scatter-1) / flux) 2.38e-04 2.54e-04 +122 1 1 1 Ru-103 ((nu-scatter-0 - scatter-1) / flux) 2.26e-06 2.43e-04 +123 1 1 1 Ag-109 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +124 1 1 1 Xe-135 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +125 1 1 1 Cs-133 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +126 1 1 1 Nd-143 ((nu-scatter-0 - scatter-1) / flux) 4.47e-04 2.92e-04 +127 1 1 1 Nd-145 ((nu-scatter-0 - scatter-1) / flux) 5.64e-04 2.94e-04 +128 1 1 1 Sm-147 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +129 1 1 1 Sm-149 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +130 1 1 1 Sm-150 ((nu-scatter-0 - scatter-1) / flux) 2.99e-04 2.38e-04 +131 1 1 1 Sm-151 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +132 1 1 1 Sm-152 ((nu-scatter-0 - scatter-1) / flux) 4.92e-04 3.52e-04 +133 1 1 1 Eu-153 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +134 1 1 1 Gd-155 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +135 1 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 1.33e-01 9.82e-03 +68 1 1 2 U-234 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +69 1 1 2 U-235 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +70 1 1 2 U-236 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +71 1 1 2 U-238 ((nu-scatter-0 - scatter-1) / flux) 1.73e-04 1.73e-04 +72 1 1 2 Np-237 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +73 1 1 2 Pu-238 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +74 1 1 2 Pu-239 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +75 1 1 2 Pu-240 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +76 1 1 2 Pu-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +77 1 1 2 Pu-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +78 1 1 2 Am-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +79 1 1 2 Am-242m ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +80 1 1 2 Am-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +81 1 1 2 Cm-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +82 1 1 2 Cm-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +83 1 1 2 Cm-244 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +84 1 1 2 Cm-245 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +85 1 1 2 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +86 1 1 2 Tc-99 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +87 1 1 2 Ru-101 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +88 1 1 2 Ru-103 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +89 1 1 2 Ag-109 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +90 1 1 2 Xe-135 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +91 1 1 2 Cs-133 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +92 1 1 2 Nd-143 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +93 1 1 2 Nd-145 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +94 1 1 2 Sm-147 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +95 1 1 2 Sm-149 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +96 1 1 2 Sm-150 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +97 1 1 2 Sm-151 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +98 1 1 2 Sm-152 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +99 1 1 2 Eu-153 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +100 1 1 2 Gd-155 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +101 1 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 1.39e-03 4.46e-04 +34 1 2 1 U-234 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +35 1 2 1 U-235 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +36 1 2 1 U-236 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +37 1 2 1 U-238 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +38 1 2 1 Np-237 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +39 1 2 1 Pu-238 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +40 1 2 1 Pu-239 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +41 1 2 1 Pu-240 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +42 1 2 1 Pu-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +43 1 2 1 Pu-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +44 1 2 1 Am-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +45 1 2 1 Am-242m ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +46 1 2 1 Am-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +47 1 2 1 Cm-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +48 1 2 1 Cm-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +49 1 2 1 Cm-244 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +50 1 2 1 Cm-245 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +51 1 2 1 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +52 1 2 1 Tc-99 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +53 1 2 1 Ru-101 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +54 1 2 1 Ru-103 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +55 1 2 1 Ag-109 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +56 1 2 1 Xe-135 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +57 1 2 1 Cs-133 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +58 1 2 1 Nd-143 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +59 1 2 1 Nd-145 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +60 1 2 1 Sm-147 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +61 1 2 1 Sm-149 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +62 1 2 1 Sm-150 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +63 1 2 1 Sm-151 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +64 1 2 1 Sm-152 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +65 1 2 1 Eu-153 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +66 1 2 1 Gd-155 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +67 1 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 1 2 2 U-234 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 1 2 2 U-235 ((nu-scatter-0 - scatter-1) / flux) 3.89e-03 3.96e-03 +2 1 2 2 U-236 ((nu-scatter-0 - scatter-1) / flux) 1.50e-03 2.04e-03 +3 1 2 2 U-238 ((nu-scatter-0 - scatter-1) / flux) 2.20e-01 2.60e-02 +4 1 2 2 Np-237 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 1 2 2 Pu-238 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 1 2 2 Pu-239 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 1 2 2 Pu-240 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +8 1 2 2 Pu-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +9 1 2 2 Pu-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +10 1 2 2 Am-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 1 2 2 Am-242m ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +12 1 2 2 Am-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +13 1 2 2 Cm-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +14 1 2 2 Cm-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 1 2 2 Cm-244 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +16 1 2 2 Cm-245 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +17 1 2 2 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +18 1 2 2 Tc-99 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +19 1 2 2 Ru-101 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +20 1 2 2 Ru-103 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +21 1 2 2 Ag-109 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +22 1 2 2 Xe-135 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +23 1 2 2 Cs-133 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +24 1 2 2 Nd-143 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +25 1 2 2 Nd-145 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +26 1 2 2 Sm-147 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +27 1 2 2 Sm-149 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +28 1 2 2 Sm-150 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +29 1 2 2 Sm-151 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +30 1 2 2 Sm-152 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +31 1 2 2 Eu-153 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +32 1 2 2 Gd-155 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +33 1 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 1.97e-01 1.47e-02 material group out nuclide score mean std. dev. +34 1 1 U-234 nu-fission 0.00e+00 0.00e+00 +35 1 1 U-235 nu-fission 1.00e+00 6.64e-02 +36 1 1 U-236 nu-fission 0.00e+00 0.00e+00 +37 1 1 U-238 nu-fission 1.00e+00 9.31e-02 +38 1 1 Np-237 nu-fission 0.00e+00 0.00e+00 +39 1 1 Pu-238 nu-fission 0.00e+00 0.00e+00 +40 1 1 Pu-239 nu-fission 1.00e+00 1.05e-01 +41 1 1 Pu-240 nu-fission 0.00e+00 0.00e+00 +42 1 1 Pu-241 nu-fission 1.00e+00 2.64e-01 +43 1 1 Pu-242 nu-fission 0.00e+00 0.00e+00 +44 1 1 Am-241 nu-fission 0.00e+00 0.00e+00 +45 1 1 Am-242m nu-fission 0.00e+00 0.00e+00 +46 1 1 Am-243 nu-fission 0.00e+00 0.00e+00 +47 1 1 Cm-242 nu-fission 0.00e+00 0.00e+00 +48 1 1 Cm-243 nu-fission 0.00e+00 0.00e+00 +49 1 1 Cm-244 nu-fission 0.00e+00 0.00e+00 +50 1 1 Cm-245 nu-fission 0.00e+00 0.00e+00 +51 1 1 Mo-95 nu-fission 0.00e+00 0.00e+00 +52 1 1 Tc-99 nu-fission 0.00e+00 0.00e+00 +53 1 1 Ru-101 nu-fission 0.00e+00 0.00e+00 +54 1 1 Ru-103 nu-fission 0.00e+00 0.00e+00 +55 1 1 Ag-109 nu-fission 0.00e+00 0.00e+00 +56 1 1 Xe-135 nu-fission 0.00e+00 0.00e+00 +57 1 1 Cs-133 nu-fission 0.00e+00 0.00e+00 +58 1 1 Nd-143 nu-fission 0.00e+00 0.00e+00 +59 1 1 Nd-145 nu-fission 0.00e+00 0.00e+00 +60 1 1 Sm-147 nu-fission 0.00e+00 0.00e+00 +61 1 1 Sm-149 nu-fission 0.00e+00 0.00e+00 +62 1 1 Sm-150 nu-fission 0.00e+00 0.00e+00 +63 1 1 Sm-151 nu-fission 0.00e+00 0.00e+00 +64 1 1 Sm-152 nu-fission 0.00e+00 0.00e+00 +65 1 1 Eu-153 nu-fission 0.00e+00 0.00e+00 +66 1 1 Gd-155 nu-fission 0.00e+00 0.00e+00 +67 1 1 O-16 nu-fission 0.00e+00 0.00e+00 +0 1 2 U-234 nu-fission 0.00e+00 0.00e+00 +1 1 2 U-235 nu-fission 0.00e+00 0.00e+00 +2 1 2 U-236 nu-fission 0.00e+00 0.00e+00 +3 1 2 U-238 nu-fission 0.00e+00 0.00e+00 +4 1 2 Np-237 nu-fission 0.00e+00 0.00e+00 +5 1 2 Pu-238 nu-fission 0.00e+00 0.00e+00 +6 1 2 Pu-239 nu-fission 0.00e+00 0.00e+00 +7 1 2 Pu-240 nu-fission 0.00e+00 0.00e+00 +8 1 2 Pu-241 nu-fission 0.00e+00 0.00e+00 +9 1 2 Pu-242 nu-fission 0.00e+00 0.00e+00 +10 1 2 Am-241 nu-fission 0.00e+00 0.00e+00 +11 1 2 Am-242m nu-fission 0.00e+00 0.00e+00 +12 1 2 Am-243 nu-fission 0.00e+00 0.00e+00 +13 1 2 Cm-242 nu-fission 0.00e+00 0.00e+00 +14 1 2 Cm-243 nu-fission 0.00e+00 0.00e+00 +15 1 2 Cm-244 nu-fission 0.00e+00 0.00e+00 +16 1 2 Cm-245 nu-fission 0.00e+00 0.00e+00 +17 1 2 Mo-95 nu-fission 0.00e+00 0.00e+00 +18 1 2 Tc-99 nu-fission 0.00e+00 0.00e+00 +19 1 2 Ru-101 nu-fission 0.00e+00 0.00e+00 +20 1 2 Ru-103 nu-fission 0.00e+00 0.00e+00 +21 1 2 Ag-109 nu-fission 0.00e+00 0.00e+00 +22 1 2 Xe-135 nu-fission 0.00e+00 0.00e+00 +23 1 2 Cs-133 nu-fission 0.00e+00 0.00e+00 +24 1 2 Nd-143 nu-fission 0.00e+00 0.00e+00 +25 1 2 Nd-145 nu-fission 0.00e+00 0.00e+00 +26 1 2 Sm-147 nu-fission 0.00e+00 0.00e+00 +27 1 2 Sm-149 nu-fission 0.00e+00 0.00e+00 +28 1 2 Sm-150 nu-fission 0.00e+00 0.00e+00 +29 1 2 Sm-151 nu-fission 0.00e+00 0.00e+00 +30 1 2 Sm-152 nu-fission 0.00e+00 0.00e+00 +31 1 2 Eu-153 nu-fission 0.00e+00 0.00e+00 +32 1 2 Gd-155 nu-fission 0.00e+00 0.00e+00 +33 1 2 O-16 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +5 2 1 Zr-90 ((total - scatter-1) / flux) 1.05e-01 8.92e-03 +6 2 1 Zr-91 ((total - scatter-1) / flux) 3.62e-02 3.74e-03 +7 2 1 Zr-92 ((total - scatter-1) / flux) 4.24e-02 3.03e-03 +8 2 1 Zr-94 ((total - scatter-1) / flux) 4.61e-02 6.25e-03 +9 2 1 Zr-96 ((total - scatter-1) / flux) 7.79e-03 1.54e-03 +0 2 2 Zr-90 ((total - scatter-1) / flux) 1.22e-01 3.49e-02 +1 2 2 Zr-91 ((total - scatter-1) / flux) 6.18e-02 2.43e-02 +2 2 2 Zr-92 ((total - scatter-1) / flux) 4.16e-02 1.63e-02 +3 2 2 Zr-94 ((total - scatter-1) / flux) 6.08e-02 2.15e-02 +4 2 2 Zr-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +5 2 1 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 +6 2 1 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 +7 2 1 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 +8 2 1 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 +9 2 1 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 +0 2 2 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 +1 2 2 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 +2 2 2 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 +3 2 2 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 +4 2 2 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +15 2 1 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 1.05e-01 8.92e-03 +16 2 1 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 3.62e-02 3.74e-03 +17 2 1 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 4.24e-02 3.03e-03 +18 2 1 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 4.61e-02 6.25e-03 +19 2 1 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 7.79e-03 1.54e-03 +10 2 1 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 2 1 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +12 2 1 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +13 2 1 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +14 2 1 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 2 2 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 2 2 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 2 2 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +8 2 2 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +9 2 2 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 2 2 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 1.22e-01 3.49e-02 +1 2 2 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 6.18e-02 2.43e-02 +2 2 2 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 4.16e-02 1.63e-02 +3 2 2 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 6.08e-02 2.15e-02 +4 2 2 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +5 2 1 Zr-90 nu-fission 0.00e+00 0.00e+00 +6 2 1 Zr-91 nu-fission 0.00e+00 0.00e+00 +7 2 1 Zr-92 nu-fission 0.00e+00 0.00e+00 +8 2 1 Zr-94 nu-fission 0.00e+00 0.00e+00 +9 2 1 Zr-96 nu-fission 0.00e+00 0.00e+00 +0 2 2 Zr-90 nu-fission 0.00e+00 0.00e+00 +1 2 2 Zr-91 nu-fission 0.00e+00 0.00e+00 +2 2 2 Zr-92 nu-fission 0.00e+00 0.00e+00 +3 2 2 Zr-94 nu-fission 0.00e+00 0.00e+00 +4 2 2 Zr-96 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +4 3 1 H-1 ((total - scatter-1) / flux) 2.07e-01 2.30e-02 +5 3 1 O-16 ((total - scatter-1) / flux) 7.93e-02 5.20e-03 +6 3 1 B-10 ((total - scatter-1) / flux) 5.21e-04 2.44e-04 +7 3 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 3 2 H-1 ((total - scatter-1) / flux) 1.28e+00 2.51e-01 +1 3 2 O-16 ((total - scatter-1) / flux) 8.54e-02 1.40e-02 +2 3 2 B-10 ((total - scatter-1) / flux) 4.92e-02 8.23e-03 +3 3 2 B-11 ((total - scatter-1) / flux) 1.95e-04 1.53e-03 material group in nuclide score mean std. dev. +4 3 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +5 3 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +6 3 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +7 3 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +0 3 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +1 3 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +2 3 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +3 3 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +12 3 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.81e-01 2.21e-02 +13 3 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 7.86e-02 5.04e-03 +14 3 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 3 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +8 3 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 2.57e-02 1.58e-03 +9 3 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 5.21e-04 1.31e-04 +10 3 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 3 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +4 3 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 3 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 3 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 3 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 3 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.27e+00 2.51e-01 +1 3 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 8.54e-02 1.40e-02 +2 3 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +3 3 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 1.95e-04 1.53e-03 material group out nuclide score mean std. dev. +4 3 1 H-1 nu-fission 0.00e+00 0.00e+00 +5 3 1 O-16 nu-fission 0.00e+00 0.00e+00 +6 3 1 B-10 nu-fission 0.00e+00 0.00e+00 +7 3 1 B-11 nu-fission 0.00e+00 0.00e+00 +0 3 2 H-1 nu-fission 0.00e+00 0.00e+00 +1 3 2 O-16 nu-fission 0.00e+00 0.00e+00 +2 3 2 B-10 nu-fission 0.00e+00 0.00e+00 +3 3 2 B-11 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +4 4 1 H-1 ((total - scatter-1) / flux) 1.75e-01 5.37e-02 +5 4 1 O-16 ((total - scatter-1) / flux) 6.65e-02 1.01e-02 +6 4 1 B-10 ((total - scatter-1) / flux) 5.70e-04 3.52e-04 +7 4 1 B-11 ((total - scatter-1) / flux) 8.88e-05 3.46e-04 +0 4 2 H-1 ((total - scatter-1) / flux) 1.14e+00 3.65e-01 +1 4 2 O-16 ((total - scatter-1) / flux) 8.51e-02 2.81e-02 +2 4 2 B-10 ((total - scatter-1) / flux) 2.59e-02 7.28e-03 +3 4 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +4 4 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +5 4 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +6 4 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +7 4 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +0 4 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +1 4 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +2 4 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +3 4 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +12 4 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.51e-01 5.15e-02 +13 4 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 6.65e-02 1.01e-02 +14 4 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 4 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 8.88e-05 3.46e-04 +8 4 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 2.37e-02 3.08e-03 +9 4 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +10 4 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 4 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +4 4 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 4 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 4 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 4 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 4 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.13e+00 3.62e-01 +1 4 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 8.51e-02 2.81e-02 +2 4 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +3 4 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +4 4 1 H-1 nu-fission 0.00e+00 0.00e+00 +5 4 1 O-16 nu-fission 0.00e+00 0.00e+00 +6 4 1 B-10 nu-fission 0.00e+00 0.00e+00 +7 4 1 B-11 nu-fission 0.00e+00 0.00e+00 +0 4 2 H-1 nu-fission 0.00e+00 0.00e+00 +1 4 2 O-16 nu-fission 0.00e+00 0.00e+00 +2 4 2 B-10 nu-fission 0.00e+00 0.00e+00 +3 4 2 B-11 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +27 5 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +28 5 1 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +29 5 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +30 5 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +31 5 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +32 5 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +33 5 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +34 5 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +35 5 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +36 5 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +37 5 1 Mo-92 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +38 5 1 Mo-94 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +39 5 1 Mo-95 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +40 5 1 Mo-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +41 5 1 Mo-97 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +42 5 1 Mo-98 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +43 5 1 Mo-100 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +44 5 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +45 5 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +46 5 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +47 5 1 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +48 5 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +49 5 1 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +50 5 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +51 5 1 C-Nat ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +52 5 1 Cu-63 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +53 5 1 Cu-65 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 5 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +1 5 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +2 5 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +3 5 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +4 5 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +5 5 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +6 5 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +7 5 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +8 5 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +9 5 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +10 5 2 Mo-92 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +11 5 2 Mo-94 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +12 5 2 Mo-95 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +13 5 2 Mo-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +14 5 2 Mo-97 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +15 5 2 Mo-98 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +16 5 2 Mo-100 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +17 5 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +18 5 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +19 5 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +20 5 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +21 5 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +22 5 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +23 5 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +24 5 2 C-Nat ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +25 5 2 Cu-63 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +26 5 2 Cu-65 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +27 5 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +28 5 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +29 5 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +30 5 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +31 5 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +32 5 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +33 5 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +34 5 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +35 5 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +36 5 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +37 5 1 Mo-92 (nu-fission / flux) 0.00e+00 0.00e+00 +38 5 1 Mo-94 (nu-fission / flux) 0.00e+00 0.00e+00 +39 5 1 Mo-95 (nu-fission / flux) 0.00e+00 0.00e+00 +40 5 1 Mo-96 (nu-fission / flux) 0.00e+00 0.00e+00 +41 5 1 Mo-97 (nu-fission / flux) 0.00e+00 0.00e+00 +42 5 1 Mo-98 (nu-fission / flux) 0.00e+00 0.00e+00 +43 5 1 Mo-100 (nu-fission / flux) 0.00e+00 0.00e+00 +44 5 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +45 5 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +46 5 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +47 5 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +48 5 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +49 5 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +50 5 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 +51 5 1 C-Nat (nu-fission / flux) 0.00e+00 0.00e+00 +52 5 1 Cu-63 (nu-fission / flux) 0.00e+00 0.00e+00 +53 5 1 Cu-65 (nu-fission / flux) 0.00e+00 0.00e+00 +0 5 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +1 5 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +2 5 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +3 5 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +4 5 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +5 5 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +6 5 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +7 5 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +8 5 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +9 5 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +10 5 2 Mo-92 (nu-fission / flux) 0.00e+00 0.00e+00 +11 5 2 Mo-94 (nu-fission / flux) 0.00e+00 0.00e+00 +12 5 2 Mo-95 (nu-fission / flux) 0.00e+00 0.00e+00 +13 5 2 Mo-96 (nu-fission / flux) 0.00e+00 0.00e+00 +14 5 2 Mo-97 (nu-fission / flux) 0.00e+00 0.00e+00 +15 5 2 Mo-98 (nu-fission / flux) 0.00e+00 0.00e+00 +16 5 2 Mo-100 (nu-fission / flux) 0.00e+00 0.00e+00 +17 5 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +18 5 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +19 5 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +20 5 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +21 5 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +22 5 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +23 5 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 +24 5 2 C-Nat (nu-fission / flux) 0.00e+00 0.00e+00 +25 5 2 Cu-63 (nu-fission / flux) 0.00e+00 0.00e+00 +26 5 2 Cu-65 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +81 5 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +82 5 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +83 5 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +84 5 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +85 5 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +86 5 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +87 5 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +88 5 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +89 5 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +90 5 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +91 5 1 1 Mo-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +92 5 1 1 Mo-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +93 5 1 1 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +94 5 1 1 Mo-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +95 5 1 1 Mo-97 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +96 5 1 1 Mo-98 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +97 5 1 1 Mo-100 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +98 5 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +99 5 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +100 5 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +101 5 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +102 5 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +103 5 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +104 5 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +105 5 1 1 C-Nat ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +106 5 1 1 Cu-63 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +107 5 1 1 Cu-65 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +54 5 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +55 5 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +56 5 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +57 5 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +58 5 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +59 5 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +60 5 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +61 5 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +62 5 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +63 5 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +64 5 1 2 Mo-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +65 5 1 2 Mo-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +66 5 1 2 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +67 5 1 2 Mo-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +68 5 1 2 Mo-97 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +69 5 1 2 Mo-98 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +70 5 1 2 Mo-100 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +71 5 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +72 5 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +73 5 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +74 5 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +75 5 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +76 5 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +77 5 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +78 5 1 2 C-Nat ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +79 5 1 2 Cu-63 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +80 5 1 2 Cu-65 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +27 5 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +28 5 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +29 5 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +30 5 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +31 5 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +32 5 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +33 5 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +34 5 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +35 5 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +36 5 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +37 5 2 1 Mo-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +38 5 2 1 Mo-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +39 5 2 1 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +40 5 2 1 Mo-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +41 5 2 1 Mo-97 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +42 5 2 1 Mo-98 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +43 5 2 1 Mo-100 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +44 5 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +45 5 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +46 5 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +47 5 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +48 5 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +49 5 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +50 5 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +51 5 2 1 C-Nat ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +52 5 2 1 Cu-63 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +53 5 2 1 Cu-65 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 5 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 5 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 5 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +3 5 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +4 5 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 5 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 5 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 5 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +8 5 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +9 5 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +10 5 2 2 Mo-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 5 2 2 Mo-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +12 5 2 2 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +13 5 2 2 Mo-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +14 5 2 2 Mo-97 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 5 2 2 Mo-98 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +16 5 2 2 Mo-100 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +17 5 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +18 5 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +19 5 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +20 5 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +21 5 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +22 5 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +23 5 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +24 5 2 2 C-Nat ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +25 5 2 2 Cu-63 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +26 5 2 2 Cu-65 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +27 5 1 Fe-54 nu-fission 0.00e+00 0.00e+00 +28 5 1 Fe-56 nu-fission 0.00e+00 0.00e+00 +29 5 1 Fe-57 nu-fission 0.00e+00 0.00e+00 +30 5 1 Fe-58 nu-fission 0.00e+00 0.00e+00 +31 5 1 Ni-58 nu-fission 0.00e+00 0.00e+00 +32 5 1 Ni-60 nu-fission 0.00e+00 0.00e+00 +33 5 1 Ni-61 nu-fission 0.00e+00 0.00e+00 +34 5 1 Ni-62 nu-fission 0.00e+00 0.00e+00 +35 5 1 Ni-64 nu-fission 0.00e+00 0.00e+00 +36 5 1 Mn-55 nu-fission 0.00e+00 0.00e+00 +37 5 1 Mo-92 nu-fission 0.00e+00 0.00e+00 +38 5 1 Mo-94 nu-fission 0.00e+00 0.00e+00 +39 5 1 Mo-95 nu-fission 0.00e+00 0.00e+00 +40 5 1 Mo-96 nu-fission 0.00e+00 0.00e+00 +41 5 1 Mo-97 nu-fission 0.00e+00 0.00e+00 +42 5 1 Mo-98 nu-fission 0.00e+00 0.00e+00 +43 5 1 Mo-100 nu-fission 0.00e+00 0.00e+00 +44 5 1 Si-28 nu-fission 0.00e+00 0.00e+00 +45 5 1 Si-29 nu-fission 0.00e+00 0.00e+00 +46 5 1 Si-30 nu-fission 0.00e+00 0.00e+00 +47 5 1 Cr-50 nu-fission 0.00e+00 0.00e+00 +48 5 1 Cr-52 nu-fission 0.00e+00 0.00e+00 +49 5 1 Cr-53 nu-fission 0.00e+00 0.00e+00 +50 5 1 Cr-54 nu-fission 0.00e+00 0.00e+00 +51 5 1 C-Nat nu-fission 0.00e+00 0.00e+00 +52 5 1 Cu-63 nu-fission 0.00e+00 0.00e+00 +53 5 1 Cu-65 nu-fission 0.00e+00 0.00e+00 +0 5 2 Fe-54 nu-fission 0.00e+00 0.00e+00 +1 5 2 Fe-56 nu-fission 0.00e+00 0.00e+00 +2 5 2 Fe-57 nu-fission 0.00e+00 0.00e+00 +3 5 2 Fe-58 nu-fission 0.00e+00 0.00e+00 +4 5 2 Ni-58 nu-fission 0.00e+00 0.00e+00 +5 5 2 Ni-60 nu-fission 0.00e+00 0.00e+00 +6 5 2 Ni-61 nu-fission 0.00e+00 0.00e+00 +7 5 2 Ni-62 nu-fission 0.00e+00 0.00e+00 +8 5 2 Ni-64 nu-fission 0.00e+00 0.00e+00 +9 5 2 Mn-55 nu-fission 0.00e+00 0.00e+00 +10 5 2 Mo-92 nu-fission 0.00e+00 0.00e+00 +11 5 2 Mo-94 nu-fission 0.00e+00 0.00e+00 +12 5 2 Mo-95 nu-fission 0.00e+00 0.00e+00 +13 5 2 Mo-96 nu-fission 0.00e+00 0.00e+00 +14 5 2 Mo-97 nu-fission 0.00e+00 0.00e+00 +15 5 2 Mo-98 nu-fission 0.00e+00 0.00e+00 +16 5 2 Mo-100 nu-fission 0.00e+00 0.00e+00 +17 5 2 Si-28 nu-fission 0.00e+00 0.00e+00 +18 5 2 Si-29 nu-fission 0.00e+00 0.00e+00 +19 5 2 Si-30 nu-fission 0.00e+00 0.00e+00 +20 5 2 Cr-50 nu-fission 0.00e+00 0.00e+00 +21 5 2 Cr-52 nu-fission 0.00e+00 0.00e+00 +22 5 2 Cr-53 nu-fission 0.00e+00 0.00e+00 +23 5 2 Cr-54 nu-fission 0.00e+00 0.00e+00 +24 5 2 C-Nat nu-fission 0.00e+00 0.00e+00 +25 5 2 Cu-63 nu-fission 0.00e+00 0.00e+00 +26 5 2 Cu-65 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +21 6 1 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +22 6 1 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +23 6 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +24 6 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +25 6 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +26 6 1 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +27 6 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +28 6 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +29 6 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +30 6 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +31 6 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +32 6 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +33 6 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +34 6 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +35 6 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +36 6 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +37 6 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +38 6 1 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +39 6 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +40 6 1 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +41 6 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 6 2 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +1 6 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +2 6 2 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +3 6 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +4 6 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +5 6 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +6 6 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +7 6 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +8 6 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +9 6 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +10 6 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +11 6 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +12 6 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +13 6 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +14 6 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +15 6 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +16 6 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +17 6 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +18 6 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +19 6 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +20 6 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +21 6 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +22 6 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +23 6 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +24 6 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +25 6 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +26 6 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +27 6 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +28 6 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +29 6 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +30 6 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +31 6 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +32 6 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +33 6 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +34 6 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +35 6 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +36 6 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +37 6 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +38 6 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +39 6 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +40 6 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +41 6 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 +0 6 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +1 6 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +2 6 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +3 6 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +4 6 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +5 6 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +6 6 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +7 6 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +8 6 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +9 6 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +10 6 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +11 6 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +12 6 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +13 6 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +14 6 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +15 6 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +16 6 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +17 6 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +18 6 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +19 6 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +20 6 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +63 6 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +64 6 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +65 6 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +66 6 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +67 6 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +68 6 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +69 6 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +70 6 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +71 6 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +72 6 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +73 6 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +74 6 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +75 6 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +76 6 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +77 6 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +78 6 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +79 6 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +80 6 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +81 6 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +82 6 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +83 6 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +42 6 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +43 6 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +44 6 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +45 6 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +46 6 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +47 6 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +48 6 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +49 6 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +50 6 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +51 6 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +52 6 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +53 6 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +54 6 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +55 6 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +56 6 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +57 6 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +58 6 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +59 6 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +60 6 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +61 6 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +62 6 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +21 6 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +22 6 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +23 6 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +24 6 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +25 6 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +26 6 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +27 6 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +28 6 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +29 6 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +30 6 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +31 6 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +32 6 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +33 6 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +34 6 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +35 6 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +36 6 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +37 6 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +38 6 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +39 6 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +40 6 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +41 6 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 6 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 6 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 6 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +3 6 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +4 6 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 6 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 6 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 6 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +8 6 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +9 6 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +10 6 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 6 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +12 6 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +13 6 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +14 6 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 6 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +16 6 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +17 6 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +18 6 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +19 6 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +20 6 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +21 6 1 H-1 nu-fission 0.00e+00 0.00e+00 +22 6 1 O-16 nu-fission 0.00e+00 0.00e+00 +23 6 1 B-10 nu-fission 0.00e+00 0.00e+00 +24 6 1 B-11 nu-fission 0.00e+00 0.00e+00 +25 6 1 Fe-54 nu-fission 0.00e+00 0.00e+00 +26 6 1 Fe-56 nu-fission 0.00e+00 0.00e+00 +27 6 1 Fe-57 nu-fission 0.00e+00 0.00e+00 +28 6 1 Fe-58 nu-fission 0.00e+00 0.00e+00 +29 6 1 Ni-58 nu-fission 0.00e+00 0.00e+00 +30 6 1 Ni-60 nu-fission 0.00e+00 0.00e+00 +31 6 1 Ni-61 nu-fission 0.00e+00 0.00e+00 +32 6 1 Ni-62 nu-fission 0.00e+00 0.00e+00 +33 6 1 Ni-64 nu-fission 0.00e+00 0.00e+00 +34 6 1 Mn-55 nu-fission 0.00e+00 0.00e+00 +35 6 1 Si-28 nu-fission 0.00e+00 0.00e+00 +36 6 1 Si-29 nu-fission 0.00e+00 0.00e+00 +37 6 1 Si-30 nu-fission 0.00e+00 0.00e+00 +38 6 1 Cr-50 nu-fission 0.00e+00 0.00e+00 +39 6 1 Cr-52 nu-fission 0.00e+00 0.00e+00 +40 6 1 Cr-53 nu-fission 0.00e+00 0.00e+00 +41 6 1 Cr-54 nu-fission 0.00e+00 0.00e+00 +0 6 2 H-1 nu-fission 0.00e+00 0.00e+00 +1 6 2 O-16 nu-fission 0.00e+00 0.00e+00 +2 6 2 B-10 nu-fission 0.00e+00 0.00e+00 +3 6 2 B-11 nu-fission 0.00e+00 0.00e+00 +4 6 2 Fe-54 nu-fission 0.00e+00 0.00e+00 +5 6 2 Fe-56 nu-fission 0.00e+00 0.00e+00 +6 6 2 Fe-57 nu-fission 0.00e+00 0.00e+00 +7 6 2 Fe-58 nu-fission 0.00e+00 0.00e+00 +8 6 2 Ni-58 nu-fission 0.00e+00 0.00e+00 +9 6 2 Ni-60 nu-fission 0.00e+00 0.00e+00 +10 6 2 Ni-61 nu-fission 0.00e+00 0.00e+00 +11 6 2 Ni-62 nu-fission 0.00e+00 0.00e+00 +12 6 2 Ni-64 nu-fission 0.00e+00 0.00e+00 +13 6 2 Mn-55 nu-fission 0.00e+00 0.00e+00 +14 6 2 Si-28 nu-fission 0.00e+00 0.00e+00 +15 6 2 Si-29 nu-fission 0.00e+00 0.00e+00 +16 6 2 Si-30 nu-fission 0.00e+00 0.00e+00 +17 6 2 Cr-50 nu-fission 0.00e+00 0.00e+00 +18 6 2 Cr-52 nu-fission 0.00e+00 0.00e+00 +19 6 2 Cr-53 nu-fission 0.00e+00 0.00e+00 +20 6 2 Cr-54 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +21 7 1 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +22 7 1 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +23 7 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +24 7 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +25 7 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +26 7 1 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +27 7 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +28 7 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +29 7 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +30 7 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +31 7 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +32 7 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +33 7 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +34 7 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +35 7 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +36 7 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +37 7 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +38 7 1 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +39 7 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +40 7 1 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +41 7 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 7 2 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +1 7 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +2 7 2 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +3 7 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +4 7 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +5 7 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +6 7 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +7 7 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +8 7 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +9 7 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +10 7 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +11 7 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +12 7 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +13 7 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +14 7 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +15 7 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +16 7 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +17 7 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +18 7 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +19 7 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +20 7 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +21 7 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +22 7 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +23 7 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +24 7 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +25 7 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +26 7 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +27 7 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +28 7 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +29 7 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +30 7 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +31 7 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +32 7 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +33 7 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +34 7 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +35 7 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +36 7 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +37 7 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +38 7 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +39 7 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +40 7 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +41 7 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 +0 7 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +1 7 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +2 7 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +3 7 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +4 7 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +5 7 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +6 7 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +7 7 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +8 7 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +9 7 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +10 7 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +11 7 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +12 7 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +13 7 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +14 7 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +15 7 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +16 7 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +17 7 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +18 7 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +19 7 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +20 7 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +63 7 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +64 7 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +65 7 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +66 7 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +67 7 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +68 7 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +69 7 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +70 7 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +71 7 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +72 7 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +73 7 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +74 7 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +75 7 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +76 7 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +77 7 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +78 7 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +79 7 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +80 7 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +81 7 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +82 7 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +83 7 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +42 7 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +43 7 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +44 7 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +45 7 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +46 7 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +47 7 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +48 7 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +49 7 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +50 7 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +51 7 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +52 7 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +53 7 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +54 7 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +55 7 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +56 7 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +57 7 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +58 7 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +59 7 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +60 7 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +61 7 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +62 7 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +21 7 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +22 7 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +23 7 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +24 7 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +25 7 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +26 7 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +27 7 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +28 7 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +29 7 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +30 7 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +31 7 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +32 7 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +33 7 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +34 7 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +35 7 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +36 7 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +37 7 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +38 7 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +39 7 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +40 7 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +41 7 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 7 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 7 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 7 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +3 7 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +4 7 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 7 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 7 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 7 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +8 7 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +9 7 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +10 7 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 7 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +12 7 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +13 7 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +14 7 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 7 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +16 7 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +17 7 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +18 7 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +19 7 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +20 7 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +21 7 1 H-1 nu-fission 0.00e+00 0.00e+00 +22 7 1 O-16 nu-fission 0.00e+00 0.00e+00 +23 7 1 B-10 nu-fission 0.00e+00 0.00e+00 +24 7 1 B-11 nu-fission 0.00e+00 0.00e+00 +25 7 1 Fe-54 nu-fission 0.00e+00 0.00e+00 +26 7 1 Fe-56 nu-fission 0.00e+00 0.00e+00 +27 7 1 Fe-57 nu-fission 0.00e+00 0.00e+00 +28 7 1 Fe-58 nu-fission 0.00e+00 0.00e+00 +29 7 1 Ni-58 nu-fission 0.00e+00 0.00e+00 +30 7 1 Ni-60 nu-fission 0.00e+00 0.00e+00 +31 7 1 Ni-61 nu-fission 0.00e+00 0.00e+00 +32 7 1 Ni-62 nu-fission 0.00e+00 0.00e+00 +33 7 1 Ni-64 nu-fission 0.00e+00 0.00e+00 +34 7 1 Mn-55 nu-fission 0.00e+00 0.00e+00 +35 7 1 Si-28 nu-fission 0.00e+00 0.00e+00 +36 7 1 Si-29 nu-fission 0.00e+00 0.00e+00 +37 7 1 Si-30 nu-fission 0.00e+00 0.00e+00 +38 7 1 Cr-50 nu-fission 0.00e+00 0.00e+00 +39 7 1 Cr-52 nu-fission 0.00e+00 0.00e+00 +40 7 1 Cr-53 nu-fission 0.00e+00 0.00e+00 +41 7 1 Cr-54 nu-fission 0.00e+00 0.00e+00 +0 7 2 H-1 nu-fission 0.00e+00 0.00e+00 +1 7 2 O-16 nu-fission 0.00e+00 0.00e+00 +2 7 2 B-10 nu-fission 0.00e+00 0.00e+00 +3 7 2 B-11 nu-fission 0.00e+00 0.00e+00 +4 7 2 Fe-54 nu-fission 0.00e+00 0.00e+00 +5 7 2 Fe-56 nu-fission 0.00e+00 0.00e+00 +6 7 2 Fe-57 nu-fission 0.00e+00 0.00e+00 +7 7 2 Fe-58 nu-fission 0.00e+00 0.00e+00 +8 7 2 Ni-58 nu-fission 0.00e+00 0.00e+00 +9 7 2 Ni-60 nu-fission 0.00e+00 0.00e+00 +10 7 2 Ni-61 nu-fission 0.00e+00 0.00e+00 +11 7 2 Ni-62 nu-fission 0.00e+00 0.00e+00 +12 7 2 Ni-64 nu-fission 0.00e+00 0.00e+00 +13 7 2 Mn-55 nu-fission 0.00e+00 0.00e+00 +14 7 2 Si-28 nu-fission 0.00e+00 0.00e+00 +15 7 2 Si-29 nu-fission 0.00e+00 0.00e+00 +16 7 2 Si-30 nu-fission 0.00e+00 0.00e+00 +17 7 2 Cr-50 nu-fission 0.00e+00 0.00e+00 +18 7 2 Cr-52 nu-fission 0.00e+00 0.00e+00 +19 7 2 Cr-53 nu-fission 0.00e+00 0.00e+00 +20 7 2 Cr-54 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +21 8 1 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +22 8 1 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +23 8 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +24 8 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +25 8 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +26 8 1 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +27 8 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +28 8 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +29 8 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +30 8 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +31 8 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +32 8 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +33 8 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +34 8 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +35 8 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +36 8 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +37 8 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +38 8 1 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +39 8 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +40 8 1 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +41 8 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 8 2 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +1 8 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +2 8 2 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +3 8 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +4 8 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +5 8 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +6 8 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +7 8 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +8 8 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +9 8 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +10 8 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +11 8 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +12 8 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +13 8 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +14 8 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +15 8 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +16 8 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +17 8 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +18 8 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +19 8 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +20 8 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +21 8 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +22 8 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +23 8 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +24 8 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +25 8 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +26 8 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +27 8 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +28 8 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +29 8 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +30 8 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +31 8 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +32 8 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +33 8 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +34 8 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +35 8 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +36 8 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +37 8 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +38 8 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +39 8 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +40 8 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +41 8 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 +0 8 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +1 8 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +2 8 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +3 8 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +4 8 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +5 8 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +6 8 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +7 8 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +8 8 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +9 8 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +10 8 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +11 8 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +12 8 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +13 8 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +14 8 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +15 8 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +16 8 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +17 8 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +18 8 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +19 8 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +20 8 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +63 8 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +64 8 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +65 8 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +66 8 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +67 8 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +68 8 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +69 8 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +70 8 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +71 8 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +72 8 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +73 8 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +74 8 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +75 8 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +76 8 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +77 8 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +78 8 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +79 8 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +80 8 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +81 8 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +82 8 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +83 8 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +42 8 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +43 8 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +44 8 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +45 8 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +46 8 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +47 8 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +48 8 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +49 8 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +50 8 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +51 8 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +52 8 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +53 8 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +54 8 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +55 8 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +56 8 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +57 8 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +58 8 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +59 8 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +60 8 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +61 8 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +62 8 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +21 8 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +22 8 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +23 8 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +24 8 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +25 8 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +26 8 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +27 8 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +28 8 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +29 8 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +30 8 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +31 8 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +32 8 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +33 8 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +34 8 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +35 8 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +36 8 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +37 8 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +38 8 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +39 8 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +40 8 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +41 8 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 8 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 8 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 8 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +3 8 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +4 8 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 8 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 8 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 8 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +8 8 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +9 8 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +10 8 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 8 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +12 8 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +13 8 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +14 8 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 8 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +16 8 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +17 8 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +18 8 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +19 8 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +20 8 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +21 8 1 H-1 nu-fission 0.00e+00 0.00e+00 +22 8 1 O-16 nu-fission 0.00e+00 0.00e+00 +23 8 1 B-10 nu-fission 0.00e+00 0.00e+00 +24 8 1 B-11 nu-fission 0.00e+00 0.00e+00 +25 8 1 Fe-54 nu-fission 0.00e+00 0.00e+00 +26 8 1 Fe-56 nu-fission 0.00e+00 0.00e+00 +27 8 1 Fe-57 nu-fission 0.00e+00 0.00e+00 +28 8 1 Fe-58 nu-fission 0.00e+00 0.00e+00 +29 8 1 Ni-58 nu-fission 0.00e+00 0.00e+00 +30 8 1 Ni-60 nu-fission 0.00e+00 0.00e+00 +31 8 1 Ni-61 nu-fission 0.00e+00 0.00e+00 +32 8 1 Ni-62 nu-fission 0.00e+00 0.00e+00 +33 8 1 Ni-64 nu-fission 0.00e+00 0.00e+00 +34 8 1 Mn-55 nu-fission 0.00e+00 0.00e+00 +35 8 1 Si-28 nu-fission 0.00e+00 0.00e+00 +36 8 1 Si-29 nu-fission 0.00e+00 0.00e+00 +37 8 1 Si-30 nu-fission 0.00e+00 0.00e+00 +38 8 1 Cr-50 nu-fission 0.00e+00 0.00e+00 +39 8 1 Cr-52 nu-fission 0.00e+00 0.00e+00 +40 8 1 Cr-53 nu-fission 0.00e+00 0.00e+00 +41 8 1 Cr-54 nu-fission 0.00e+00 0.00e+00 +0 8 2 H-1 nu-fission 0.00e+00 0.00e+00 +1 8 2 O-16 nu-fission 0.00e+00 0.00e+00 +2 8 2 B-10 nu-fission 0.00e+00 0.00e+00 +3 8 2 B-11 nu-fission 0.00e+00 0.00e+00 +4 8 2 Fe-54 nu-fission 0.00e+00 0.00e+00 +5 8 2 Fe-56 nu-fission 0.00e+00 0.00e+00 +6 8 2 Fe-57 nu-fission 0.00e+00 0.00e+00 +7 8 2 Fe-58 nu-fission 0.00e+00 0.00e+00 +8 8 2 Ni-58 nu-fission 0.00e+00 0.00e+00 +9 8 2 Ni-60 nu-fission 0.00e+00 0.00e+00 +10 8 2 Ni-61 nu-fission 0.00e+00 0.00e+00 +11 8 2 Ni-62 nu-fission 0.00e+00 0.00e+00 +12 8 2 Ni-64 nu-fission 0.00e+00 0.00e+00 +13 8 2 Mn-55 nu-fission 0.00e+00 0.00e+00 +14 8 2 Si-28 nu-fission 0.00e+00 0.00e+00 +15 8 2 Si-29 nu-fission 0.00e+00 0.00e+00 +16 8 2 Si-30 nu-fission 0.00e+00 0.00e+00 +17 8 2 Cr-50 nu-fission 0.00e+00 0.00e+00 +18 8 2 Cr-52 nu-fission 0.00e+00 0.00e+00 +19 8 2 Cr-53 nu-fission 0.00e+00 0.00e+00 +20 8 2 Cr-54 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +21 9 1 H-1 ((total - scatter-1) / flux) 1.51e-01 4.81e-01 +22 9 1 O-16 ((total - scatter-1) / flux) 1.16e-01 1.14e-01 +23 9 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +24 9 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +25 9 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +26 9 1 Fe-56 ((total - scatter-1) / flux) 1.86e-01 2.00e-01 +27 9 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +28 9 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +29 9 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +30 9 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +31 9 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +32 9 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +33 9 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +34 9 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +35 9 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +36 9 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +37 9 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +38 9 1 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +39 9 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +40 9 1 Cr-53 ((total - scatter-1) / flux) 1.47e-01 1.40e-01 +41 9 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 9 2 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +1 9 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +2 9 2 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +3 9 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +4 9 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +5 9 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +6 9 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +7 9 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +8 9 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +9 9 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +10 9 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +11 9 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +12 9 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +13 9 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +14 9 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +15 9 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +16 9 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +17 9 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +18 9 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +19 9 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +20 9 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +21 9 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +22 9 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +23 9 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +24 9 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +25 9 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +26 9 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +27 9 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +28 9 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +29 9 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +30 9 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +31 9 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +32 9 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +33 9 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +34 9 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +35 9 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +36 9 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +37 9 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +38 9 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +39 9 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +40 9 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +41 9 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 +0 9 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +1 9 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +2 9 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +3 9 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +4 9 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +5 9 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +6 9 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +7 9 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +8 9 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +9 9 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +10 9 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +11 9 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +12 9 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +13 9 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +14 9 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +15 9 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +16 9 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +17 9 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +18 9 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +19 9 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +20 9 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +63 9 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.51e-01 4.81e-01 +64 9 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 1.16e-01 1.14e-01 +65 9 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +66 9 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +67 9 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +68 9 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 1.86e-01 2.00e-01 +69 9 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +70 9 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +71 9 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +72 9 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +73 9 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +74 9 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +75 9 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +76 9 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +77 9 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +78 9 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +79 9 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +80 9 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +81 9 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +82 9 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 1.47e-01 1.40e-01 +83 9 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +42 9 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +43 9 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +44 9 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +45 9 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +46 9 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +47 9 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +48 9 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +49 9 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +50 9 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +51 9 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +52 9 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +53 9 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +54 9 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +55 9 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +56 9 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +57 9 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +58 9 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +59 9 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +60 9 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +61 9 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +62 9 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +21 9 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +22 9 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +23 9 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +24 9 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +25 9 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +26 9 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +27 9 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +28 9 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +29 9 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +30 9 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +31 9 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +32 9 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +33 9 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +34 9 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +35 9 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +36 9 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +37 9 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +38 9 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +39 9 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +40 9 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +41 9 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 9 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 9 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 9 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +3 9 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +4 9 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 9 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 9 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 9 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +8 9 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +9 9 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +10 9 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 9 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +12 9 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +13 9 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +14 9 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 9 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +16 9 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +17 9 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +18 9 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +19 9 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +20 9 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +21 9 1 H-1 nu-fission 0.00e+00 0.00e+00 +22 9 1 O-16 nu-fission 0.00e+00 0.00e+00 +23 9 1 B-10 nu-fission 0.00e+00 0.00e+00 +24 9 1 B-11 nu-fission 0.00e+00 0.00e+00 +25 9 1 Fe-54 nu-fission 0.00e+00 0.00e+00 +26 9 1 Fe-56 nu-fission 0.00e+00 0.00e+00 +27 9 1 Fe-57 nu-fission 0.00e+00 0.00e+00 +28 9 1 Fe-58 nu-fission 0.00e+00 0.00e+00 +29 9 1 Ni-58 nu-fission 0.00e+00 0.00e+00 +30 9 1 Ni-60 nu-fission 0.00e+00 0.00e+00 +31 9 1 Ni-61 nu-fission 0.00e+00 0.00e+00 +32 9 1 Ni-62 nu-fission 0.00e+00 0.00e+00 +33 9 1 Ni-64 nu-fission 0.00e+00 0.00e+00 +34 9 1 Mn-55 nu-fission 0.00e+00 0.00e+00 +35 9 1 Si-28 nu-fission 0.00e+00 0.00e+00 +36 9 1 Si-29 nu-fission 0.00e+00 0.00e+00 +37 9 1 Si-30 nu-fission 0.00e+00 0.00e+00 +38 9 1 Cr-50 nu-fission 0.00e+00 0.00e+00 +39 9 1 Cr-52 nu-fission 0.00e+00 0.00e+00 +40 9 1 Cr-53 nu-fission 0.00e+00 0.00e+00 +41 9 1 Cr-54 nu-fission 0.00e+00 0.00e+00 +0 9 2 H-1 nu-fission 0.00e+00 0.00e+00 +1 9 2 O-16 nu-fission 0.00e+00 0.00e+00 +2 9 2 B-10 nu-fission 0.00e+00 0.00e+00 +3 9 2 B-11 nu-fission 0.00e+00 0.00e+00 +4 9 2 Fe-54 nu-fission 0.00e+00 0.00e+00 +5 9 2 Fe-56 nu-fission 0.00e+00 0.00e+00 +6 9 2 Fe-57 nu-fission 0.00e+00 0.00e+00 +7 9 2 Fe-58 nu-fission 0.00e+00 0.00e+00 +8 9 2 Ni-58 nu-fission 0.00e+00 0.00e+00 +9 9 2 Ni-60 nu-fission 0.00e+00 0.00e+00 +10 9 2 Ni-61 nu-fission 0.00e+00 0.00e+00 +11 9 2 Ni-62 nu-fission 0.00e+00 0.00e+00 +12 9 2 Ni-64 nu-fission 0.00e+00 0.00e+00 +13 9 2 Mn-55 nu-fission 0.00e+00 0.00e+00 +14 9 2 Si-28 nu-fission 0.00e+00 0.00e+00 +15 9 2 Si-29 nu-fission 0.00e+00 0.00e+00 +16 9 2 Si-30 nu-fission 0.00e+00 0.00e+00 +17 9 2 Cr-50 nu-fission 0.00e+00 0.00e+00 +18 9 2 Cr-52 nu-fission 0.00e+00 0.00e+00 +19 9 2 Cr-53 nu-fission 0.00e+00 0.00e+00 +20 9 2 Cr-54 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +21 10 1 H-1 ((total - scatter-1) / flux) 1.24e-01 5.41e-01 +22 10 1 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +23 10 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +24 10 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +25 10 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +26 10 1 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +27 10 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +28 10 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +29 10 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +30 10 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +31 10 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +32 10 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +33 10 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +34 10 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +35 10 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +36 10 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +37 10 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +38 10 1 Cr-50 ((total - scatter-1) / flux) 1.12e-01 1.38e-01 +39 10 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +40 10 1 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +41 10 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 10 2 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +1 10 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +2 10 2 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +3 10 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +4 10 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +5 10 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +6 10 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +7 10 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +8 10 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +9 10 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +10 10 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +11 10 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +12 10 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +13 10 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +14 10 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +15 10 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +16 10 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +17 10 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +18 10 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +19 10 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +20 10 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +21 10 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +22 10 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +23 10 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +24 10 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +25 10 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +26 10 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +27 10 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +28 10 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +29 10 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +30 10 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +31 10 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +32 10 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +33 10 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +34 10 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +35 10 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +36 10 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +37 10 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +38 10 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +39 10 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +40 10 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +41 10 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 +0 10 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +1 10 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +2 10 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +3 10 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +4 10 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 +5 10 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 +6 10 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 +7 10 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 +8 10 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 +9 10 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 +10 10 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 +11 10 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 +12 10 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 +13 10 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 +14 10 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 +15 10 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 +16 10 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 +17 10 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 +18 10 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 +19 10 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 +20 10 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +63 10 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.24e-01 5.41e-01 +64 10 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +65 10 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +66 10 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +67 10 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +68 10 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +69 10 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +70 10 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +71 10 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +72 10 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +73 10 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +74 10 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +75 10 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +76 10 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +77 10 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +78 10 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +79 10 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +80 10 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 1.12e-01 1.38e-01 +81 10 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +82 10 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +83 10 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +42 10 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +43 10 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +44 10 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +45 10 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +46 10 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +47 10 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +48 10 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +49 10 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +50 10 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +51 10 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +52 10 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +53 10 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +54 10 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +55 10 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +56 10 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +57 10 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +58 10 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +59 10 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +60 10 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +61 10 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +62 10 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +21 10 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +22 10 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +23 10 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +24 10 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +25 10 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +26 10 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +27 10 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +28 10 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +29 10 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +30 10 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +31 10 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +32 10 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +33 10 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +34 10 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +35 10 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +36 10 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +37 10 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +38 10 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +39 10 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +40 10 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +41 10 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 10 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +1 10 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 10 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +3 10 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +4 10 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 10 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 10 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 10 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +8 10 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +9 10 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +10 10 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 10 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +12 10 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +13 10 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +14 10 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 10 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +16 10 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +17 10 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +18 10 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +19 10 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +20 10 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +21 10 1 H-1 nu-fission 0.00e+00 0.00e+00 +22 10 1 O-16 nu-fission 0.00e+00 0.00e+00 +23 10 1 B-10 nu-fission 0.00e+00 0.00e+00 +24 10 1 B-11 nu-fission 0.00e+00 0.00e+00 +25 10 1 Fe-54 nu-fission 0.00e+00 0.00e+00 +26 10 1 Fe-56 nu-fission 0.00e+00 0.00e+00 +27 10 1 Fe-57 nu-fission 0.00e+00 0.00e+00 +28 10 1 Fe-58 nu-fission 0.00e+00 0.00e+00 +29 10 1 Ni-58 nu-fission 0.00e+00 0.00e+00 +30 10 1 Ni-60 nu-fission 0.00e+00 0.00e+00 +31 10 1 Ni-61 nu-fission 0.00e+00 0.00e+00 +32 10 1 Ni-62 nu-fission 0.00e+00 0.00e+00 +33 10 1 Ni-64 nu-fission 0.00e+00 0.00e+00 +34 10 1 Mn-55 nu-fission 0.00e+00 0.00e+00 +35 10 1 Si-28 nu-fission 0.00e+00 0.00e+00 +36 10 1 Si-29 nu-fission 0.00e+00 0.00e+00 +37 10 1 Si-30 nu-fission 0.00e+00 0.00e+00 +38 10 1 Cr-50 nu-fission 0.00e+00 0.00e+00 +39 10 1 Cr-52 nu-fission 0.00e+00 0.00e+00 +40 10 1 Cr-53 nu-fission 0.00e+00 0.00e+00 +41 10 1 Cr-54 nu-fission 0.00e+00 0.00e+00 +0 10 2 H-1 nu-fission 0.00e+00 0.00e+00 +1 10 2 O-16 nu-fission 0.00e+00 0.00e+00 +2 10 2 B-10 nu-fission 0.00e+00 0.00e+00 +3 10 2 B-11 nu-fission 0.00e+00 0.00e+00 +4 10 2 Fe-54 nu-fission 0.00e+00 0.00e+00 +5 10 2 Fe-56 nu-fission 0.00e+00 0.00e+00 +6 10 2 Fe-57 nu-fission 0.00e+00 0.00e+00 +7 10 2 Fe-58 nu-fission 0.00e+00 0.00e+00 +8 10 2 Ni-58 nu-fission 0.00e+00 0.00e+00 +9 10 2 Ni-60 nu-fission 0.00e+00 0.00e+00 +10 10 2 Ni-61 nu-fission 0.00e+00 0.00e+00 +11 10 2 Ni-62 nu-fission 0.00e+00 0.00e+00 +12 10 2 Ni-64 nu-fission 0.00e+00 0.00e+00 +13 10 2 Mn-55 nu-fission 0.00e+00 0.00e+00 +14 10 2 Si-28 nu-fission 0.00e+00 0.00e+00 +15 10 2 Si-29 nu-fission 0.00e+00 0.00e+00 +16 10 2 Si-30 nu-fission 0.00e+00 0.00e+00 +17 10 2 Cr-50 nu-fission 0.00e+00 0.00e+00 +18 10 2 Cr-52 nu-fission 0.00e+00 0.00e+00 +19 10 2 Cr-53 nu-fission 0.00e+00 0.00e+00 +20 10 2 Cr-54 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +9 11 1 H-1 ((total - scatter-1) / flux) 1.31e-01 4.76e-01 +10 11 1 O-16 ((total - scatter-1) / flux) 2.87e-02 4.30e-02 +11 11 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +12 11 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +13 11 1 Zr-90 ((total - scatter-1) / flux) 2.20e-02 4.00e-02 +14 11 1 Zr-91 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +15 11 1 Zr-92 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +16 11 1 Zr-94 ((total - scatter-1) / flux) 4.19e-03 8.73e-02 +17 11 1 Zr-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +0 11 2 H-1 ((total - scatter-1) / flux) 6.87e-01 1.24e+00 +1 11 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +2 11 2 B-10 ((total - scatter-1) / flux) 4.29e-02 6.07e-02 +3 11 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +4 11 2 Zr-90 ((total - scatter-1) / flux) 3.96e-02 1.05e-01 +5 11 2 Zr-91 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +6 11 2 Zr-92 ((total - scatter-1) / flux) 8.42e-02 1.03e-01 +7 11 2 Zr-94 ((total - scatter-1) / flux) 9.20e-02 1.26e-01 +8 11 2 Zr-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +9 11 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +10 11 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +11 11 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +12 11 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +13 11 1 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 +14 11 1 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 +15 11 1 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 +16 11 1 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 +17 11 1 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 +0 11 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +1 11 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +2 11 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +3 11 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +4 11 2 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 +5 11 2 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 +6 11 2 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 +7 11 2 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 +8 11 2 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +27 11 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 9.96e-02 4.43e-01 +28 11 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 2.87e-02 4.30e-02 +29 11 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +30 11 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +31 11 1 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 2.20e-02 4.00e-02 +32 11 1 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +33 11 1 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +34 11 1 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 4.19e-03 8.73e-02 +35 11 1 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +18 11 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 3.19e-02 4.51e-02 +19 11 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +20 11 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +21 11 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +22 11 1 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +23 11 1 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +24 11 1 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +25 11 1 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +26 11 1 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +9 11 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +10 11 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 11 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +12 11 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +13 11 2 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +14 11 2 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 11 2 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +16 11 2 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +17 11 2 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 11 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 6.87e-01 1.24e+00 +1 11 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +2 11 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +3 11 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +4 11 2 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 3.96e-02 1.05e-01 +5 11 2 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +6 11 2 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 8.42e-02 1.03e-01 +7 11 2 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 9.20e-02 1.26e-01 +8 11 2 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +9 11 1 H-1 nu-fission 0.00e+00 0.00e+00 +10 11 1 O-16 nu-fission 0.00e+00 0.00e+00 +11 11 1 B-10 nu-fission 0.00e+00 0.00e+00 +12 11 1 B-11 nu-fission 0.00e+00 0.00e+00 +13 11 1 Zr-90 nu-fission 0.00e+00 0.00e+00 +14 11 1 Zr-91 nu-fission 0.00e+00 0.00e+00 +15 11 1 Zr-92 nu-fission 0.00e+00 0.00e+00 +16 11 1 Zr-94 nu-fission 0.00e+00 0.00e+00 +17 11 1 Zr-96 nu-fission 0.00e+00 0.00e+00 +0 11 2 H-1 nu-fission 0.00e+00 0.00e+00 +1 11 2 O-16 nu-fission 0.00e+00 0.00e+00 +2 11 2 B-10 nu-fission 0.00e+00 0.00e+00 +3 11 2 B-11 nu-fission 0.00e+00 0.00e+00 +4 11 2 Zr-90 nu-fission 0.00e+00 0.00e+00 +5 11 2 Zr-91 nu-fission 0.00e+00 0.00e+00 +6 11 2 Zr-92 nu-fission 0.00e+00 0.00e+00 +7 11 2 Zr-94 nu-fission 0.00e+00 0.00e+00 +8 11 2 Zr-96 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +9 12 1 H-1 ((total - scatter-1) / flux) 9.89e-02 1.79e-01 +10 12 1 O-16 ((total - scatter-1) / flux) 1.33e-02 2.04e-02 +11 12 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +12 12 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +13 12 1 Zr-90 ((total - scatter-1) / flux) 9.00e-02 7.55e-02 +14 12 1 Zr-91 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +15 12 1 Zr-92 ((total - scatter-1) / flux) 3.50e-03 1.70e-02 +16 12 1 Zr-94 ((total - scatter-1) / flux) 4.85e-03 1.63e-02 +17 12 1 Zr-96 ((total - scatter-1) / flux) 2.73e-03 1.75e-02 +0 12 2 H-1 ((total - scatter-1) / flux) 1.26e+00 1.98e+00 +1 12 2 O-16 ((total - scatter-1) / flux) 7.92e-02 1.05e-01 +2 12 2 B-10 ((total - scatter-1) / flux) 1.69e-02 2.39e-02 +3 12 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +4 12 2 Zr-90 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +5 12 2 Zr-91 ((total - scatter-1) / flux) 3.32e-02 4.07e-02 +6 12 2 Zr-92 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +7 12 2 Zr-94 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 +8 12 2 Zr-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. +9 12 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +10 12 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +11 12 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +12 12 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +13 12 1 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 +14 12 1 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 +15 12 1 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 +16 12 1 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 +17 12 1 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 +0 12 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 +1 12 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 +2 12 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 +3 12 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 +4 12 2 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 +5 12 2 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 +6 12 2 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 +7 12 2 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 +8 12 2 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. +27 12 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 7.17e-02 1.68e-01 +28 12 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 1.33e-02 2.04e-02 +29 12 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +30 12 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +31 12 1 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 9.00e-02 7.55e-02 +32 12 1 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +33 12 1 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 3.50e-03 1.70e-02 +34 12 1 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 4.85e-03 1.63e-02 +35 12 1 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 2.73e-03 1.75e-02 +18 12 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 2.72e-02 2.96e-02 +19 12 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +20 12 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +21 12 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +22 12 1 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +23 12 1 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +24 12 1 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +25 12 1 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +26 12 1 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +9 12 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +10 12 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +11 12 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +12 12 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +13 12 2 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +14 12 2 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +15 12 2 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +16 12 2 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +17 12 2 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +0 12 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.24e+00 1.96e+00 +1 12 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 7.92e-02 1.05e-01 +2 12 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +3 12 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +4 12 2 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +5 12 2 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 3.32e-02 4.07e-02 +6 12 2 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +7 12 2 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 +8 12 2 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. +9 12 1 H-1 nu-fission 0.00e+00 0.00e+00 +10 12 1 O-16 nu-fission 0.00e+00 0.00e+00 +11 12 1 B-10 nu-fission 0.00e+00 0.00e+00 +12 12 1 B-11 nu-fission 0.00e+00 0.00e+00 +13 12 1 Zr-90 nu-fission 0.00e+00 0.00e+00 +14 12 1 Zr-91 nu-fission 0.00e+00 0.00e+00 +15 12 1 Zr-92 nu-fission 0.00e+00 0.00e+00 +16 12 1 Zr-94 nu-fission 0.00e+00 0.00e+00 +17 12 1 Zr-96 nu-fission 0.00e+00 0.00e+00 +0 12 2 H-1 nu-fission 0.00e+00 0.00e+00 +1 12 2 O-16 nu-fission 0.00e+00 0.00e+00 +2 12 2 B-10 nu-fission 0.00e+00 0.00e+00 +3 12 2 B-11 nu-fission 0.00e+00 0.00e+00 +4 12 2 Zr-90 nu-fission 0.00e+00 0.00e+00 +5 12 2 Zr-91 nu-fission 0.00e+00 0.00e+00 +6 12 2 Zr-92 nu-fission 0.00e+00 0.00e+00 +7 12 2 Zr-94 nu-fission 0.00e+00 0.00e+00 +8 12 2 Zr-96 nu-fission 0.00e+00 0.00e+00 \ No newline at end of file From 203d5a3fe46fdd8586948fb927cdd03f7a8bcabc Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 May 2016 13:42:15 -0400 Subject: [PATCH 160/259] Updated MGXS Notebooks with KappaFissionXS --- .../pythonapi/examples/mgxs-part-i.ipynb | 11 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 679 +++++++++--------- .../pythonapi/examples/mgxs-part-iii.ipynb | 176 ++--- 3 files changed, 457 insertions(+), 409 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 610e82ec1..a97a0c02e 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -376,6 +376,7 @@ "* `CaptureXS`\n", "* `FissionXS`\n", "* `NuFissionXS`\n", + "* `KappaFissionXS`\n", "* `ScatterXS`\n", "* `NuScatterXS`\n", "* `ScatterMatrixXS`\n", @@ -1162,21 +1163,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.1" + "pygments_lexer": "ipython2", + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index fd8d09052..7b313da74 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -34,16 +34,16 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/romano/miniconda3/envs/default/lib/python3.5/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:884: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n", + " warnings.warn(self.msg_depr % (key, alt_key))\n", + "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", "\n", " warnings.warn(_use_error_msg)\n", - "/home/romano/miniconda3/envs/default/lib/python3.5/importlib/_bootstrap.py:222: QAWarning: pyne.rxname is not yet QA compliant.\n", - " return f(*args, **kwds)\n", - "/home/romano/miniconda3/envs/default/lib/python3.5/importlib/_bootstrap.py:222: QAWarning: pyne.ace is not yet QA compliant.\n", - " return f(*args, **kwds)\n" + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:9: QAWarning: pyne.rxname is not yet QA compliant.\n", + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:9: QAWarning: pyne.ace is not yet QA compliant.\n" ] } ], @@ -443,10 +443,11 @@ " 888\n", "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.org/en/latest/license.html\n", + " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", - " Date/Time: 2016-05-05 15:00:51\n", + " Git SHA1: 7b20f8ad4aa9e6f02f8b1d51e002f9f56ba7aa15\n", + " Date/Time: 2016-05-09 13:34:05\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -522,7 +523,7 @@ " 48/1 1.21610 1.22612 +/- 0.00251\n", " 49/1 1.22199 1.22602 +/- 0.00245\n", " 50/1 1.20860 1.22558 +/- 0.00243\n", - " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10056\n", + " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10050\n", " The estimated number of batches is 73\n", " Creating state point statepoint.050.h5...\n", " 51/1 1.21850 1.22541 +/- 0.00237\n", @@ -548,7 +549,7 @@ " 71/1 1.19720 1.22444 +/- 0.00195\n", " 72/1 1.23770 1.22465 +/- 0.00193\n", " 73/1 1.23894 1.22488 +/- 0.00191\n", - " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10056\n", + " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10050\n", " The estimated number of batches is 74\n", " 74/1 1.22437 1.22487 +/- 0.00188\n", " Triggers satisfied for batch 74\n", @@ -561,20 +562,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.8600E-01 seconds\n", - " Reading cross sections = 1.1000E-01 seconds\n", - " Total time in simulation = 2.3697E+02 seconds\n", - " Time in transport only = 2.3690E+02 seconds\n", - " Time in inactive batches = 1.5640E+01 seconds\n", - " Time in active batches = 2.2133E+02 seconds\n", - " Time synchronizing fission bank = 3.0000E-02 seconds\n", - " Sampling source sites = 1.9000E-02 seconds\n", - " SEND/RECV source sites = 1.1000E-02 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.0000E-02 seconds\n", - " Total time elapsed = 2.3743E+02 seconds\n", - " Calculation Rate (inactive) = 6393.86 neutrons/second\n", - " Calculation Rate (active) = 1807.26 neutrons/second\n", + " Total time for initialization = 3.8900E-01 seconds\n", + " Reading cross sections = 8.3000E-02 seconds\n", + " Total time in simulation = 2.2066E+02 seconds\n", + " Time in transport only = 2.2061E+02 seconds\n", + " Time in inactive batches = 1.5872E+01 seconds\n", + " Time in active batches = 2.0478E+02 seconds\n", + " Time synchronizing fission bank = 1.9000E-02 seconds\n", + " Sampling source sites = 1.2000E-02 seconds\n", + " SEND/RECV source sites = 6.0000E-03 seconds\n", + " Time accumulating tallies = 3.0000E-03 seconds\n", + " Total time for finalization = 1.1000E-02 seconds\n", + " Total time elapsed = 2.2111E+02 seconds\n", + " Calculation Rate (inactive) = 6300.40 neutrons/second\n", + " Calculation Rate (active) = 1953.28 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -785,6 +786,7 @@ " group in\n", " group out\n", " nuclide\n", + " score\n", " mean\n", " std. dev.\n", " \n", @@ -796,6 +798,7 @@ " 1\n", " 1\n", " H-1\n", + " ((nu-scatter-0 - scatter-1) / flux)\n", " 0.234115\n", " 0.003568\n", " \n", @@ -805,6 +808,7 @@ " 1\n", " 1\n", " O-16\n", + " ((nu-scatter-0 - scatter-1) / flux)\n", " 1.563707\n", " 0.005953\n", " \n", @@ -814,6 +818,7 @@ " 1\n", " 2\n", " H-1\n", + " ((nu-scatter-0 - scatter-1) / flux)\n", " 1.594129\n", " 0.002369\n", " \n", @@ -823,6 +828,7 @@ " 1\n", " 2\n", " O-16\n", + " ((nu-scatter-0 - scatter-1) / flux)\n", " 0.285761\n", " 0.001676\n", " \n", @@ -832,6 +838,7 @@ " 1\n", " 3\n", " H-1\n", + " ((nu-scatter-0 - scatter-1) / flux)\n", " 0.011089\n", " 0.000248\n", " \n", @@ -841,6 +848,7 @@ " 1\n", " 3\n", " O-16\n", + " ((nu-scatter-0 - scatter-1) / flux)\n", " 0.000000\n", " 0.000000\n", " \n", @@ -850,6 +858,7 @@ " 1\n", " 4\n", " H-1\n", + " ((nu-scatter-0 - scatter-1) / flux)\n", " 0.000000\n", " 0.000000\n", " \n", @@ -859,6 +868,7 @@ " 1\n", " 4\n", " O-16\n", + " ((nu-scatter-0 - scatter-1) / flux)\n", " 0.000000\n", " 0.000000\n", " \n", @@ -868,6 +878,7 @@ " 1\n", " 5\n", " H-1\n", + " ((nu-scatter-0 - scatter-1) / flux)\n", " 0.000000\n", " 0.000000\n", " \n", @@ -877,6 +888,7 @@ " 1\n", " 5\n", " O-16\n", + " ((nu-scatter-0 - scatter-1) / flux)\n", " 0.000000\n", " 0.000000\n", " \n", @@ -885,17 +897,29 @@ "
" ], "text/plain": [ - " cell group in group out nuclide mean std. dev.\n", - "126 10002 1 1 H-1 0.234115 0.003568\n", - "127 10002 1 1 O-16 1.563707 0.005953\n", - "124 10002 1 2 H-1 1.594129 0.002369\n", - "125 10002 1 2 O-16 0.285761 0.001676\n", - "122 10002 1 3 H-1 0.011089 0.000248\n", - "123 10002 1 3 O-16 0.000000 0.000000\n", - "120 10002 1 4 H-1 0.000000 0.000000\n", - "121 10002 1 4 O-16 0.000000 0.000000\n", - "118 10002 1 5 H-1 0.000000 0.000000\n", - "119 10002 1 5 O-16 0.000000 0.000000" + " cell group in group out nuclide score \\\n", + "126 10002 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) \n", + "127 10002 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) \n", + "124 10002 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) \n", + "125 10002 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) \n", + "122 10002 1 3 H-1 ((nu-scatter-0 - scatter-1) / flux) \n", + "123 10002 1 3 O-16 ((nu-scatter-0 - scatter-1) / flux) \n", + "120 10002 1 4 H-1 ((nu-scatter-0 - scatter-1) / flux) \n", + "121 10002 1 4 O-16 ((nu-scatter-0 - scatter-1) / flux) \n", + "118 10002 1 5 H-1 ((nu-scatter-0 - scatter-1) / flux) \n", + "119 10002 1 5 O-16 ((nu-scatter-0 - scatter-1) / flux) \n", + "\n", + " mean std. dev. \n", + "126 0.234115 0.003568 \n", + "127 1.563707 0.005953 \n", + "124 1.594129 0.002369 \n", + "125 0.285761 0.001676 \n", + "122 0.011089 0.000248 \n", + "123 0.000000 0.000000 \n", + "120 0.000000 0.000000 \n", + "121 0.000000 0.000000 \n", + "118 0.000000 0.000000 \n", + "119 0.000000 0.000000 " ] }, "execution_count": 19, @@ -995,6 +1019,7 @@ " cell\n", " group in\n", " nuclide\n", + " score\n", " mean\n", " std. dev.\n", " \n", @@ -1005,6 +1030,7 @@ " 10000\n", " 1\n", " U-235\n", + " ((total - scatter-1) / flux)\n", " 20.611692\n", " 0.104237\n", " \n", @@ -1013,6 +1039,7 @@ " 10000\n", " 1\n", " U-238\n", + " ((total - scatter-1) / flux)\n", " 9.585358\n", " 0.013808\n", " \n", @@ -1021,6 +1048,7 @@ " 10000\n", " 1\n", " O-16\n", + " ((total - scatter-1) / flux)\n", " 3.164190\n", " 0.005049\n", " \n", @@ -1029,6 +1057,7 @@ " 10000\n", " 2\n", " U-235\n", + " ((total - scatter-1) / flux)\n", " 485.413426\n", " 0.996410\n", " \n", @@ -1037,6 +1066,7 @@ " 10000\n", " 2\n", " U-238\n", + " ((total - scatter-1) / flux)\n", " 11.190386\n", " 0.028731\n", " \n", @@ -1045,6 +1075,7 @@ " 10000\n", " 2\n", " O-16\n", + " ((total - scatter-1) / flux)\n", " 3.794859\n", " 0.011139\n", " \n", @@ -1053,13 +1084,13 @@ "
" ], "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "3 10000 1 U-235 20.611692 0.104237\n", - "4 10000 1 U-238 9.585358 0.013808\n", - "5 10000 1 O-16 3.164190 0.005049\n", - "0 10000 2 U-235 485.413426 0.996410\n", - "1 10000 2 U-238 11.190386 0.028731\n", - "2 10000 2 O-16 3.794859 0.011139" + " cell group in nuclide score mean std. dev.\n", + "3 10000 1 U-235 ((total - scatter-1) / flux) 2.06e+01 1.04e-01\n", + "4 10000 1 U-238 ((total - scatter-1) / flux) 9.59e+00 1.38e-02\n", + "5 10000 1 O-16 ((total - scatter-1) / flux) 3.16e+00 5.05e-03\n", + "0 10000 2 U-235 ((total - scatter-1) / flux) 4.85e+02 9.96e-01\n", + "1 10000 2 U-238 ((total - scatter-1) / flux) 1.12e+01 2.87e-02\n", + "2 10000 2 O-16 ((total - scatter-1) / flux) 3.79e+00 1.11e-02" ] }, "execution_count": 22, @@ -1166,81 +1197,81 @@ "[ NORMAL ] Iteration 0:\tk_eff = 0.574672\tres = 0.000E+00\n", "[ NORMAL ] Iteration 1:\tk_eff = 0.679815\tres = 4.253E-01\n", "[ NORMAL ] Iteration 2:\tk_eff = 0.660826\tres = 1.830E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.658941\tres = 2.793E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.852E-03\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.658940\tres = 2.793E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.853E-03\n", "[ NORMAL ] Iteration 5:\tk_eff = 0.625810\tres = 2.417E-02\n", "[ NORMAL ] Iteration 6:\tk_eff = 0.606678\tres = 2.675E-02\n", "[ NORMAL ] Iteration 7:\tk_eff = 0.587485\tres = 3.057E-02\n", "[ NORMAL ] Iteration 8:\tk_eff = 0.569029\tres = 3.164E-02\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.551708\tres = 3.142E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.551707\tres = 3.142E-02\n", "[ NORMAL ] Iteration 10:\tk_eff = 0.536035\tres = 3.044E-02\n", "[ NORMAL ] Iteration 11:\tk_eff = 0.522275\tres = 2.841E-02\n", "[ NORMAL ] Iteration 12:\tk_eff = 0.510610\tres = 2.567E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.501107\tres = 2.233E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", "[ NORMAL ] Iteration 14:\tk_eff = 0.493832\tres = 1.861E-02\n", "[ NORMAL ] Iteration 15:\tk_eff = 0.488781\tres = 1.452E-02\n", "[ NORMAL ] Iteration 16:\tk_eff = 0.485924\tres = 1.023E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.485212\tres = 5.845E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.466E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.489906\tres = 2.802E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.495106\tres = 6.853E-03\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485211\tres = 5.846E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.467E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.489905\tres = 2.802E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495105\tres = 6.853E-03\n", "[ NORMAL ] Iteration 21:\tk_eff = 0.502056\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.510631\tres = 1.404E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.510630\tres = 1.404E-02\n", "[ NORMAL ] Iteration 23:\tk_eff = 0.520696\tres = 1.708E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.532121\tres = 1.971E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532120\tres = 1.971E-02\n", "[ NORMAL ] Iteration 25:\tk_eff = 0.544768\tres = 2.194E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.558506\tres = 2.377E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558505\tres = 2.377E-02\n", "[ NORMAL ] Iteration 27:\tk_eff = 0.573200\tres = 2.522E-02\n", "[ NORMAL ] Iteration 28:\tk_eff = 0.588723\tres = 2.631E-02\n", "[ NORMAL ] Iteration 29:\tk_eff = 0.604951\tres = 2.708E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.621766\tres = 2.757E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.639054\tres = 2.779E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.781E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.621765\tres = 2.756E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639053\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.780E-02\n", "[ NORMAL ] Iteration 33:\tk_eff = 0.674632\tres = 2.763E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.692731\tres = 2.729E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.692730\tres = 2.729E-02\n", "[ NORMAL ] Iteration 35:\tk_eff = 0.710919\tres = 2.683E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.729119\tres = 2.626E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729118\tres = 2.626E-02\n", "[ NORMAL ] Iteration 37:\tk_eff = 0.747258\tres = 2.560E-02\n", "[ NORMAL ] Iteration 38:\tk_eff = 0.765273\tres = 2.488E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.783105\tres = 2.411E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783104\tres = 2.411E-02\n", "[ NORMAL ] Iteration 40:\tk_eff = 0.800701\tres = 2.330E-02\n", "[ NORMAL ] Iteration 41:\tk_eff = 0.818017\tres = 2.247E-02\n", "[ NORMAL ] Iteration 42:\tk_eff = 0.835012\tres = 2.163E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.851652\tres = 2.078E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.851651\tres = 2.078E-02\n", "[ NORMAL ] Iteration 44:\tk_eff = 0.867906\tres = 1.993E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883751\tres = 1.909E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883750\tres = 1.909E-02\n", "[ NORMAL ] Iteration 46:\tk_eff = 0.899164\tres = 1.826E-02\n", "[ NORMAL ] Iteration 47:\tk_eff = 0.914131\tres = 1.744E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.664E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.665E-02\n", "[ NORMAL ] Iteration 49:\tk_eff = 0.942676\tres = 1.587E-02\n", "[ NORMAL ] Iteration 50:\tk_eff = 0.956239\tres = 1.512E-02\n", "[ NORMAL ] Iteration 51:\tk_eff = 0.969323\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.981928\tres = 1.368E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.981927\tres = 1.368E-02\n", "[ NORMAL ] Iteration 53:\tk_eff = 0.994054\tres = 1.300E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.005706\tres = 1.235E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.016887\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.005705\tres = 1.235E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.016886\tres = 1.172E-02\n", "[ NORMAL ] Iteration 56:\tk_eff = 1.027604\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037867\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.047683\tres = 9.987E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.057063\tres = 9.458E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037866\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.047682\tres = 9.987E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057062\tres = 9.458E-03\n", "[ NORMAL ] Iteration 60:\tk_eff = 1.066016\tres = 8.953E-03\n", "[ NORMAL ] Iteration 61:\tk_eff = 1.074556\tres = 8.471E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.082694\tres = 8.011E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082693\tres = 8.011E-03\n", "[ NORMAL ] Iteration 63:\tk_eff = 1.090442\tres = 7.573E-03\n", "[ NORMAL ] Iteration 64:\tk_eff = 1.097813\tres = 7.156E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.104821\tres = 6.760E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104820\tres = 6.760E-03\n", "[ NORMAL ] Iteration 66:\tk_eff = 1.111477\tres = 6.383E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.117796\tres = 6.025E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.123790\tres = 5.684E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.129472\tres = 5.362E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.134854\tres = 5.056E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139951\tres = 4.765E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.144773\tres = 4.491E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.117795\tres = 6.025E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.685E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129470\tres = 5.362E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.134853\tres = 5.056E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139950\tres = 4.766E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.144772\tres = 4.491E-03\n", "[ NORMAL ] Iteration 73:\tk_eff = 1.149333\tres = 4.230E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.153644\tres = 3.983E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153643\tres = 3.984E-03\n", "[ NORMAL ] Iteration 75:\tk_eff = 1.157716\tres = 3.751E-03\n", "[ NORMAL ] Iteration 76:\tk_eff = 1.161561\tres = 3.530E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.322E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.321E-03\n", "[ NORMAL ] Iteration 78:\tk_eff = 1.168613\tres = 3.124E-03\n", "[ NORMAL ] Iteration 79:\tk_eff = 1.171841\tres = 2.938E-03\n", "[ NORMAL ] Iteration 80:\tk_eff = 1.174883\tres = 2.762E-03\n", @@ -1250,82 +1281,82 @@ "[ NORMAL ] Iteration 84:\tk_eff = 1.185378\tres = 2.152E-03\n", "[ NORMAL ] Iteration 85:\tk_eff = 1.187627\tres = 2.021E-03\n", "[ NORMAL ] Iteration 86:\tk_eff = 1.189741\tres = 1.897E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.191729\tres = 1.780E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.193596\tres = 1.670E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.195350\tres = 1.566E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.196997\tres = 1.470E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.198542\tres = 1.378E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.291E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191728\tres = 1.780E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.193595\tres = 1.670E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195349\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.196996\tres = 1.469E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.198543\tres = 1.378E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.292E-03\n", "[ NORMAL ] Iteration 93:\tk_eff = 1.201355\tres = 1.211E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.135E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.203830\tres = 1.063E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.959E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.320E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.206990\tres = 8.733E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.176E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.208778\tres = 7.643E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.209588\tres = 7.163E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.699E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.211055\tres = 6.262E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.211719\tres = 5.863E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.212340\tres = 5.480E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.212921\tres = 5.126E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.213464\tres = 4.791E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.213972\tres = 4.476E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.214447\tres = 4.190E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.214891\tres = 3.909E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.215306\tres = 3.656E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.215693\tres = 3.414E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.216056\tres = 3.186E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.983E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.777E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.217005\tres = 2.600E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.217280\tres = 2.425E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.217538\tres = 2.261E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.217777\tres = 2.116E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.218001\tres = 1.970E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.218210\tres = 1.836E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.218405\tres = 1.717E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.604E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.497E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.387E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.219063\tres = 1.301E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.213E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.126E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.219449\tres = 1.058E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.819E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.124E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.522E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.946E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.219935\tres = 7.396E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.887E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.220086\tres = 6.461E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.220155\tres = 5.971E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.220218\tres = 5.596E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.220276\tres = 5.177E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.220332\tres = 4.809E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.220383\tres = 4.555E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.220431\tres = 4.197E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.220475\tres = 3.922E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.220516\tres = 3.642E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.220556\tres = 3.368E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.220592\tres = 3.194E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.220625\tres = 2.959E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.220657\tres = 2.763E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.220686\tres = 2.555E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.220712\tres = 2.384E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.220737\tres = 2.193E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.220761\tres = 2.076E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.220783\tres = 1.910E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.220803\tres = 1.796E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.220822\tres = 1.660E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.220840\tres = 1.568E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.465E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.346E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.233E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.178E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.083E-05\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.012E-05\n" + "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.134E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203829\tres = 1.063E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.956E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.324E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.206989\tres = 8.730E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.173E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208777\tres = 7.650E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209587\tres = 7.159E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.698E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211054\tres = 6.266E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211718\tres = 5.861E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212339\tres = 5.481E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212920\tres = 5.125E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213463\tres = 4.792E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.213971\tres = 4.479E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214446\tres = 4.186E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214890\tres = 3.912E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215305\tres = 3.655E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215692\tres = 3.414E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216055\tres = 3.189E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.979E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.782E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.217004\tres = 2.597E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217279\tres = 2.425E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217536\tres = 2.263E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217776\tres = 2.113E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.218000\tres = 1.971E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218209\tres = 1.840E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218404\tres = 1.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.601E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.494E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.393E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219062\tres = 1.299E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.212E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.130E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219448\tres = 1.054E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.822E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.156E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.534E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.954E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.219936\tres = 7.413E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.908E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220087\tres = 6.437E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220156\tres = 5.997E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220219\tres = 5.587E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220278\tres = 5.205E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220333\tres = 4.848E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220385\tres = 4.516E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220433\tres = 4.206E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220477\tres = 3.917E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220518\tres = 3.648E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220557\tres = 3.397E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220593\tres = 3.163E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220627\tres = 2.945E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220658\tres = 2.742E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220687\tres = 2.552E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220714\tres = 2.376E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220739\tres = 2.212E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220762\tres = 2.059E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220784\tres = 1.916E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220804\tres = 1.783E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220823\tres = 1.660E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220841\tres = 1.545E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.338E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.245E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.158E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.077E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.002E-05\n" ] } ], @@ -1435,14 +1466,14 @@ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", "[ NORMAL ] Iteration 0:\tk_eff = 0.495816\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.557478\tres = 5.042E-01\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.557477\tres = 5.042E-01\n", "[ NORMAL ] Iteration 2:\tk_eff = 0.518301\tres = 1.244E-01\n", "[ NORMAL ] Iteration 3:\tk_eff = 0.509212\tres = 7.027E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.496490\tres = 1.754E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.496489\tres = 1.754E-02\n", "[ NORMAL ] Iteration 5:\tk_eff = 0.488581\tres = 2.498E-02\n", "[ NORMAL ] Iteration 6:\tk_eff = 0.482897\tres = 1.593E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.479776\tres = 1.163E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.465E-03\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.479775\tres = 1.163E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.464E-03\n", "[ NORMAL ] Iteration 9:\tk_eff = 0.479872\tres = 1.960E-03\n", "[ NORMAL ] Iteration 10:\tk_eff = 0.482685\tres = 2.166E-03\n", "[ NORMAL ] Iteration 11:\tk_eff = 0.487085\tres = 5.861E-03\n", @@ -1451,34 +1482,34 @@ "[ NORMAL ] Iteration 14:\tk_eff = 0.508155\tres = 1.435E-02\n", "[ NORMAL ] Iteration 15:\tk_eff = 0.517314\tres = 1.637E-02\n", "[ NORMAL ] Iteration 16:\tk_eff = 0.527327\tres = 1.802E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.538082\tres = 1.936E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.538081\tres = 1.936E-02\n", "[ NORMAL ] Iteration 18:\tk_eff = 0.549475\tres = 2.039E-02\n", "[ NORMAL ] Iteration 19:\tk_eff = 0.561413\tres = 2.117E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.573811\tres = 2.173E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.573810\tres = 2.173E-02\n", "[ NORMAL ] Iteration 21:\tk_eff = 0.586589\tres = 2.208E-02\n", "[ NORMAL ] Iteration 22:\tk_eff = 0.599678\tres = 2.227E-02\n", "[ NORMAL ] Iteration 23:\tk_eff = 0.613012\tres = 2.231E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.223E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.224E-02\n", "[ NORMAL ] Iteration 25:\tk_eff = 0.640186\tres = 2.206E-02\n", "[ NORMAL ] Iteration 26:\tk_eff = 0.653925\tres = 2.179E-02\n", "[ NORMAL ] Iteration 27:\tk_eff = 0.667706\tres = 2.146E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.681490\tres = 2.107E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.695241\tres = 2.064E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.708928\tres = 2.018E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.722523\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.736001\tres = 1.918E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.681489\tres = 2.107E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.695240\tres = 2.064E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.708927\tres = 2.018E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.722522\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.736000\tres = 1.918E-02\n", "[ NORMAL ] Iteration 33:\tk_eff = 0.749339\tres = 1.865E-02\n", "[ NORMAL ] Iteration 34:\tk_eff = 0.762519\tres = 1.812E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.775523\tres = 1.759E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.788336\tres = 1.705E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800945\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.775522\tres = 1.759E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.788335\tres = 1.705E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800944\tres = 1.652E-02\n", "[ NORMAL ] Iteration 38:\tk_eff = 0.813338\tres = 1.599E-02\n", "[ NORMAL ] Iteration 39:\tk_eff = 0.825507\tres = 1.547E-02\n", "[ NORMAL ] Iteration 40:\tk_eff = 0.837444\tres = 1.496E-02\n", "[ NORMAL ] Iteration 41:\tk_eff = 0.849142\tres = 1.446E-02\n", "[ NORMAL ] Iteration 42:\tk_eff = 0.860595\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871800\tres = 1.349E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.882754\tres = 1.302E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871801\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.882755\tres = 1.302E-02\n", "[ NORMAL ] Iteration 45:\tk_eff = 0.893455\tres = 1.256E-02\n", "[ NORMAL ] Iteration 46:\tk_eff = 0.903901\tres = 1.212E-02\n", "[ NORMAL ] Iteration 47:\tk_eff = 0.914091\tres = 1.169E-02\n", @@ -1486,30 +1517,30 @@ "[ NORMAL ] Iteration 49:\tk_eff = 0.933708\tres = 1.087E-02\n", "[ NORMAL ] Iteration 50:\tk_eff = 0.943137\tres = 1.048E-02\n", "[ NORMAL ] Iteration 51:\tk_eff = 0.952314\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.961244\tres = 9.731E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.377E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.978368\tres = 9.033E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.986569\tres = 8.702E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961243\tres = 9.731E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.376E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.978367\tres = 9.033E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.986568\tres = 8.702E-03\n", "[ NORMAL ] Iteration 56:\tk_eff = 0.994534\tres = 8.382E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.002268\tres = 8.074E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.002267\tres = 8.074E-03\n", "[ NORMAL ] Iteration 58:\tk_eff = 1.009773\tres = 7.776E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.488E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.489E-03\n", "[ NORMAL ] Iteration 60:\tk_eff = 1.024118\tres = 7.212E-03\n", "[ NORMAL ] Iteration 61:\tk_eff = 1.030966\tres = 6.944E-03\n", "[ NORMAL ] Iteration 62:\tk_eff = 1.037603\tres = 6.687E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.044035\tres = 6.438E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.044036\tres = 6.438E-03\n", "[ NORMAL ] Iteration 64:\tk_eff = 1.050267\tres = 6.199E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.969E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.968E-03\n", "[ NORMAL ] Iteration 66:\tk_eff = 1.062145\tres = 5.746E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.531E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.532E-03\n", "[ NORMAL ] Iteration 68:\tk_eff = 1.073276\tres = 5.326E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.126E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.083697\tres = 4.936E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.127E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083698\tres = 4.935E-03\n", "[ NORMAL ] Iteration 71:\tk_eff = 1.088654\tres = 4.751E-03\n", "[ NORMAL ] Iteration 72:\tk_eff = 1.093447\tres = 4.573E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.403E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.402E-03\n", "[ NORMAL ] Iteration 74:\tk_eff = 1.102560\tres = 4.238E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.080E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.079E-03\n", "[ NORMAL ] Iteration 76:\tk_eff = 1.111072\tres = 3.926E-03\n", "[ NORMAL ] Iteration 77:\tk_eff = 1.115114\tres = 3.779E-03\n", "[ NORMAL ] Iteration 78:\tk_eff = 1.119018\tres = 3.638E-03\n", @@ -1519,152 +1550,152 @@ "[ NORMAL ] Iteration 82:\tk_eff = 1.133344\tres = 3.122E-03\n", "[ NORMAL ] Iteration 83:\tk_eff = 1.136622\tres = 3.005E-03\n", "[ NORMAL ] Iteration 84:\tk_eff = 1.139786\tres = 2.892E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142839\tres = 2.783E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142840\tres = 2.784E-03\n", "[ NORMAL ] Iteration 86:\tk_eff = 1.145786\tres = 2.679E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.148629\tres = 2.579E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148630\tres = 2.579E-03\n", "[ NORMAL ] Iteration 88:\tk_eff = 1.151373\tres = 2.482E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.154019\tres = 2.388E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.156572\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.154020\tres = 2.388E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156573\tres = 2.299E-03\n", "[ NORMAL ] Iteration 91:\tk_eff = 1.159035\tres = 2.212E-03\n", "[ NORMAL ] Iteration 92:\tk_eff = 1.161410\tres = 2.129E-03\n", "[ NORMAL ] Iteration 93:\tk_eff = 1.163700\tres = 2.049E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165908\tres = 1.972E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165909\tres = 1.972E-03\n", "[ NORMAL ] Iteration 95:\tk_eff = 1.168038\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.170090\tres = 1.826E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.757E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.692E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.170091\tres = 1.826E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.758E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.691E-03\n", "[ NORMAL ] Iteration 99:\tk_eff = 1.175816\tres = 1.628E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.567E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.179296\tres = 1.507E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.450E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.566E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179297\tres = 1.507E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.451E-03\n", "[ NORMAL ] Iteration 103:\tk_eff = 1.182529\tres = 1.396E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.184057\tres = 1.343E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.184058\tres = 1.343E-03\n", "[ NORMAL ] Iteration 105:\tk_eff = 1.185530\tres = 1.293E-03\n", "[ NORMAL ] Iteration 106:\tk_eff = 1.186949\tres = 1.244E-03\n", "[ NORMAL ] Iteration 107:\tk_eff = 1.188316\tres = 1.197E-03\n", "[ NORMAL ] Iteration 108:\tk_eff = 1.189633\tres = 1.152E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.109E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.108E-03\n", "[ NORMAL ] Iteration 110:\tk_eff = 1.192124\tres = 1.066E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.193300\tres = 1.026E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.872E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.195526\tres = 9.503E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.141E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.792E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.468E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.141E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.840E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.538E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.202120\tres = 7.257E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.979E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.203705\tres = 6.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.204453\tres = 6.466E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.218E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.979E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.206535\tres = 5.760E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.534E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.326E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.208392\tres = 5.126E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.937E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.209516\tres = 4.744E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.559E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.393E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.211050\tres = 4.224E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.211524\tres = 4.061E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.914E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.763E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.624E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.480E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.344E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.214014\tres = 3.223E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.214376\tres = 3.098E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.214724\tres = 2.986E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.870E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.215382\tres = 2.763E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.215692\tres = 2.648E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215991\tres = 2.554E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.216278\tres = 2.460E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.216555\tres = 2.363E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.277E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.217077\tres = 2.191E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.217324\tres = 2.101E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.217561\tres = 2.024E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.217789\tres = 1.949E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.218008\tres = 1.871E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.218219\tres = 1.802E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.732E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.218618\tres = 1.669E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.218806\tres = 1.602E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218987\tres = 1.543E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219161\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.219328\tres = 1.428E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.375E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.322E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.193301\tres = 1.026E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.874E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195527\tres = 9.501E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.142E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.797E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.464E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.144E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.836E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.540E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202119\tres = 7.255E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203704\tres = 6.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204452\tres = 6.462E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.217E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.982E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206534\tres = 5.755E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.537E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.327E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208391\tres = 5.126E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.931E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.209517\tres = 4.744E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.565E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.391E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.211051\tres = 4.225E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211525\tres = 4.065E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.910E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.762E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.619E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.482E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.350E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.214015\tres = 3.222E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214377\tres = 3.100E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214725\tres = 2.982E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215383\tres = 2.760E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215693\tres = 2.655E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215992\tres = 2.554E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216280\tres = 2.457E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216556\tres = 2.364E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.274E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.217078\tres = 2.187E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217325\tres = 2.104E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.217562\tres = 2.024E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217790\tres = 1.947E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.218009\tres = 1.873E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218220\tres = 1.802E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.733E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218619\tres = 1.667E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218807\tres = 1.604E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218988\tres = 1.543E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219162\tres = 1.484E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219329\tres = 1.428E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.373E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.321E-04\n", "[ NORMAL ] Iteration 165:\tk_eff = 1.219794\tres = 1.271E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219937\tres = 1.223E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.220075\tres = 1.174E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.220207\tres = 1.131E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.220335\tres = 1.085E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.220458\tres = 1.044E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.220576\tres = 1.008E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.220689\tres = 9.680E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.220799\tres = 9.304E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220904\tres = 8.975E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.643E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.326E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.985E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.662E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.371E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.101E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.221538\tres = 6.821E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.577E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.307E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.069E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.831E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.641E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.382E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.206E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.222077\tres = 4.967E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.811E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.222188\tres = 4.618E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.456E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.293E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.222339\tres = 4.122E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.982E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.788E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.663E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.522E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.381E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.222593\tres = 3.264E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.222629\tres = 3.117E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.222665\tres = 2.985E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.222699\tres = 2.901E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.222732\tres = 2.770E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.222763\tres = 2.679E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.222793\tres = 2.560E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222823\tres = 2.487E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222851\tres = 2.412E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222878\tres = 2.298E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222904\tres = 2.194E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222929\tres = 2.131E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222953\tres = 2.030E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222976\tres = 1.963E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222998\tres = 1.889E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.812E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.764E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.223060\tres = 1.691E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.223079\tres = 1.629E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.571E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.223115\tres = 1.508E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.429E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.394E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.223165\tres = 1.330E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.223180\tres = 1.299E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.241E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.167E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.151E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.073E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.051E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.000E-05\n" + "[ NORMAL ] Iteration 166:\tk_eff = 1.219938\tres = 1.222E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.220076\tres = 1.176E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220208\tres = 1.131E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220336\tres = 1.088E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220459\tres = 1.046E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220577\tres = 1.006E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220691\tres = 9.681E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220800\tres = 9.312E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220905\tres = 8.957E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.615E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.287E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.971E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.667E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.374E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.093E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221537\tres = 6.823E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.562E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.312E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.071E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.840E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.617E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.402E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.196E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.222078\tres = 4.998E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.807E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222189\tres = 4.624E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.447E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.277E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222340\tres = 4.114E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.957E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.806E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.661E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.521E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.386E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222594\tres = 3.257E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222630\tres = 3.133E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222666\tres = 3.013E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222700\tres = 2.898E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222733\tres = 2.787E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222764\tres = 2.681E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222795\tres = 2.578E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222824\tres = 2.480E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222852\tres = 2.385E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222879\tres = 2.294E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222905\tres = 2.206E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222930\tres = 2.122E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222954\tres = 2.041E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222977\tres = 1.963E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222999\tres = 1.888E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.816E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.747E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.223061\tres = 1.680E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.223080\tres = 1.616E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.554E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223116\tres = 1.495E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.382E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223164\tres = 1.330E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223179\tres = 1.279E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.230E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.183E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.138E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.094E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.052E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.012E-05\n" ] } ], @@ -1780,9 +1811,9 @@ }, { "data": { - "image/png": "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\nRK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1863,9 +1894,9 @@ "outputs": [ { "data": { - "image/png": "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\nfn35+EIOpHUAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1896,21 +1927,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.1" + "pygments_lexer": "ipython2", + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index c39f21dfa..21aae7e40 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -32,7 +32,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/romano/miniconda3/envs/default/lib/python3.5/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", @@ -459,7 +459,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDUtMDlUMTM6Mzk6MTEtMDQ6MDCdrTk4AAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA1LTA5VDEzOjM5OjExLTA0OjAw7PCBhAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -543,6 +543,7 @@ "* `CaptureXS` (`\"capture\"`)\n", "* `FissionXS` (`\"fission\"`)\n", "* `NuFissionXS` (`\"nu-fission\"`)\n", + "* `KappaFissionXS` (`\"kappa-fission\"`)\n", "* `ScatterXS` (`\"scatter\"`)\n", "* `NuScatterXS` (`\"nu-scatter\"`)\n", "* `ScatterMatrixXS` (`\"scatter matrix\"`)\n", @@ -722,10 +723,11 @@ " 888\n", "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.org/en/latest/license.html\n", + " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", - " Date/Time: 2016-05-05 15:06:49\n", + " Git SHA1: 7b20f8ad4aa9e6f02f8b1d51e002f9f56ba7aa15\n", + " Date/Time: 2016-05-09 13:39:11\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -811,20 +813,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.1500E-01 seconds\n", - " Reading cross sections = 1.1800E-01 seconds\n", - " Total time in simulation = 5.3686E+01 seconds\n", - " Time in transport only = 5.3657E+01 seconds\n", - " Time in inactive batches = 4.3970E+00 seconds\n", - " Time in active batches = 4.9289E+01 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", + " Total time for initialization = 5.0300E-01 seconds\n", + " Reading cross sections = 1.0400E-01 seconds\n", + " Total time in simulation = 4.8096E+01 seconds\n", + " Time in transport only = 4.8074E+01 seconds\n", + " Time in inactive batches = 4.1080E+00 seconds\n", + " Time in active batches = 4.3988E+01 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 5.4118E+01 seconds\n", - " Calculation Rate (inactive) = 5685.70 neutrons/second\n", - " Calculation Rate (active) = 2028.85 neutrons/second\n", + " Total time elapsed = 4.8613E+01 seconds\n", + " Calculation Rate (inactive) = 6085.69 neutrons/second\n", + " Calculation Rate (active) = 2273.35 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -950,8 +952,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/romano/openmc/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n", - " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" + "/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n" ] }, { @@ -965,6 +966,7 @@ " cell\n", " group in\n", " nuclide\n", + " score\n", " mean\n", " std. dev.\n", " \n", @@ -975,6 +977,7 @@ " 10000\n", " 1\n", " U-235\n", + " (nu-fission / flux)\n", " 8.055246e-03\n", " 2.857567e-05\n", " \n", @@ -983,6 +986,7 @@ " 10000\n", " 1\n", " U-238\n", + " (nu-fission / flux)\n", " 7.339215e-03\n", " 4.349466e-05\n", " \n", @@ -991,6 +995,7 @@ " 10000\n", " 1\n", " O-16\n", + " (nu-fission / flux)\n", " 0.000000e+00\n", " 0.000000e+00\n", " \n", @@ -999,6 +1004,7 @@ " 10000\n", " 2\n", " U-235\n", + " (nu-fission / flux)\n", " 3.615565e-01\n", " 2.050486e-03\n", " \n", @@ -1007,6 +1013,7 @@ " 10000\n", " 2\n", " U-238\n", + " (nu-fission / flux)\n", " 6.742638e-07\n", " 3.795256e-09\n", " \n", @@ -1015,6 +1022,7 @@ " 10000\n", " 2\n", " O-16\n", + " (nu-fission / flux)\n", " 0.000000e+00\n", " 0.000000e+00\n", " \n", @@ -1023,13 +1031,13 @@ "
" ], "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "3 10000 1 U-235 8.055246e-03 2.857567e-05\n", - "4 10000 1 U-238 7.339215e-03 4.349466e-05\n", - "5 10000 1 O-16 0.000000e+00 0.000000e+00\n", - "0 10000 2 U-235 3.615565e-01 2.050486e-03\n", - "1 10000 2 U-238 6.742638e-07 3.795256e-09\n", - "2 10000 2 O-16 0.000000e+00 0.000000e+00" + " cell group in nuclide score mean std. dev.\n", + "3 10000 1 U-235 (nu-fission / flux) 8.06e-03 2.86e-05\n", + "4 10000 1 U-238 (nu-fission / flux) 7.34e-03 4.35e-05\n", + "5 10000 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00\n", + "0 10000 2 U-235 (nu-fission / flux) 3.62e-01 2.05e-03\n", + "1 10000 2 U-238 (nu-fission / flux) 6.74e-07 3.80e-09\n", + "2 10000 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00" ] }, "execution_count": 30, @@ -1178,6 +1186,7 @@ " cell\n", " group in\n", " nuclide\n", + " score\n", " mean\n", " std. dev.\n", " \n", @@ -1188,6 +1197,7 @@ " 10000\n", " 1\n", " U-235\n", + " (nu-fission / flux)\n", " 0.074860\n", " 0.000303\n", " \n", @@ -1196,6 +1206,7 @@ " 10000\n", " 1\n", " U-238\n", + " (nu-fission / flux)\n", " 0.005952\n", " 0.000035\n", " \n", @@ -1204,6 +1215,7 @@ " 10000\n", " 1\n", " O-16\n", + " (nu-fission / flux)\n", " 0.000000\n", " 0.000000\n", " \n", @@ -1212,10 +1224,10 @@ "
" ], "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "0 10000 1 U-235 0.074860 0.000303\n", - "1 10000 1 U-238 0.005952 0.000035\n", - "2 10000 1 O-16 0.000000 0.000000" + " cell group in nuclide score mean std. dev.\n", + "0 10000 1 U-235 (nu-fission / flux) 7.49e-02 3.03e-04\n", + "1 10000 1 U-238 (nu-fission / flux) 5.95e-03 3.52e-05\n", + "2 10000 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00" ] }, "execution_count": 36, @@ -1299,12 +1311,12 @@ "[ NORMAL ] Computing the eigenvalue...\n", "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761745\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.761746\tres = 6.349E-02\n", "[ NORMAL ] Iteration 3:\tk_eff = 0.732367\tres = 5.029E-02\n", "[ NORMAL ] Iteration 4:\tk_eff = 0.711075\tres = 3.869E-02\n", "[ NORMAL ] Iteration 5:\tk_eff = 0.696557\tres = 2.912E-02\n", "[ NORMAL ] Iteration 6:\tk_eff = 0.687673\tres = 2.044E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.683469\tres = 1.277E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683470\tres = 1.277E-02\n", "[ NORMAL ] Iteration 8:\tk_eff = 0.683129\tres = 6.141E-03\n", "[ NORMAL ] Iteration 9:\tk_eff = 0.685949\tres = 7.889E-04\n", "[ NORMAL ] Iteration 10:\tk_eff = 0.691329\tres = 4.181E-03\n", @@ -1317,11 +1329,11 @@ "[ NORMAL ] Iteration 17:\tk_eff = 0.765800\tres = 1.655E-02\n", "[ NORMAL ] Iteration 18:\tk_eff = 0.778371\tres = 1.660E-02\n", "[ NORMAL ] Iteration 19:\tk_eff = 0.790897\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803272\tres = 1.611E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.815414\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803273\tres = 1.611E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815415\tres = 1.566E-02\n", "[ NORMAL ] Iteration 22:\tk_eff = 0.827256\tres = 1.513E-02\n", "[ NORMAL ] Iteration 23:\tk_eff = 0.838747\tres = 1.453E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.849846\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849847\tres = 1.390E-02\n", "[ NORMAL ] Iteration 25:\tk_eff = 0.860527\tres = 1.324E-02\n", "[ NORMAL ] Iteration 26:\tk_eff = 0.870770\tres = 1.258E-02\n", "[ NORMAL ] Iteration 27:\tk_eff = 0.880562\tres = 1.191E-02\n", @@ -1343,8 +1355,8 @@ "[ NORMAL ] Iteration 43:\tk_eff = 0.981021\tres = 4.104E-03\n", "[ NORMAL ] Iteration 44:\tk_eff = 0.984493\tres = 3.814E-03\n", "[ NORMAL ] Iteration 45:\tk_eff = 0.987729\tres = 3.543E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990741\tres = 3.290E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.993545\tres = 3.053E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990742\tres = 3.290E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993546\tres = 3.053E-03\n", "[ NORMAL ] Iteration 48:\tk_eff = 0.996153\tres = 2.833E-03\n", "[ NORMAL ] Iteration 49:\tk_eff = 0.998577\tres = 2.627E-03\n", "[ NORMAL ] Iteration 50:\tk_eff = 1.000829\tres = 2.436E-03\n", @@ -1358,63 +1370,63 @@ "[ NORMAL ] Iteration 58:\tk_eff = 1.013868\tres = 1.314E-03\n", "[ NORMAL ] Iteration 59:\tk_eff = 1.015006\tres = 1.215E-03\n", "[ NORMAL ] Iteration 60:\tk_eff = 1.016059\tres = 1.124E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.038E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.039E-03\n", "[ NORMAL ] Iteration 62:\tk_eff = 1.017933\tres = 9.596E-04\n", "[ NORMAL ] Iteration 63:\tk_eff = 1.018766\tres = 8.865E-04\n", "[ NORMAL ] Iteration 64:\tk_eff = 1.019535\tres = 8.188E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.561E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.562E-04\n", "[ NORMAL ] Iteration 66:\tk_eff = 1.020903\tres = 6.981E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.444E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.445E-04\n", "[ NORMAL ] Iteration 68:\tk_eff = 1.022069\tres = 5.948E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.488E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.489E-04\n", "[ NORMAL ] Iteration 70:\tk_eff = 1.023063\tres = 5.064E-04\n", "[ NORMAL ] Iteration 71:\tk_eff = 1.023503\tres = 4.671E-04\n", "[ NORMAL ] Iteration 72:\tk_eff = 1.023909\tres = 4.308E-04\n", "[ NORMAL ] Iteration 73:\tk_eff = 1.024284\tres = 3.973E-04\n", "[ NORMAL ] Iteration 74:\tk_eff = 1.024629\tres = 3.663E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.024947\tres = 3.377E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024948\tres = 3.377E-04\n", "[ NORMAL ] Iteration 76:\tk_eff = 1.025241\tres = 3.113E-04\n", "[ NORMAL ] Iteration 77:\tk_eff = 1.025512\tres = 2.869E-04\n", "[ NORMAL ] Iteration 78:\tk_eff = 1.025761\tres = 2.644E-04\n", "[ NORMAL ] Iteration 79:\tk_eff = 1.025991\tres = 2.436E-04\n", "[ NORMAL ] Iteration 80:\tk_eff = 1.026203\tres = 2.244E-04\n", "[ NORMAL ] Iteration 81:\tk_eff = 1.026398\tres = 2.067E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.026577\tres = 1.904E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.753E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026578\tres = 1.904E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.754E-04\n", "[ NORMAL ] Iteration 84:\tk_eff = 1.026895\tres = 1.615E-04\n", "[ NORMAL ] Iteration 85:\tk_eff = 1.027036\tres = 1.487E-04\n", "[ NORMAL ] Iteration 86:\tk_eff = 1.027165\tres = 1.369E-04\n", "[ NORMAL ] Iteration 87:\tk_eff = 1.027284\tres = 1.260E-04\n", "[ NORMAL ] Iteration 88:\tk_eff = 1.027393\tres = 1.160E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.027493\tres = 1.067E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027586\tres = 9.824E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027671\tres = 9.043E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027750\tres = 8.318E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027822\tres = 7.654E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.041E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.481E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.028006\tres = 5.960E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.480E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028105\tres = 5.043E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028149\tres = 4.634E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028189\tres = 4.266E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028226\tres = 3.920E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028260\tres = 3.604E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028291\tres = 3.316E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028320\tres = 3.047E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.800E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.576E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028393\tres = 2.367E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.176E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 2.003E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.836E-05\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027494\tres = 1.068E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027587\tres = 9.825E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027672\tres = 9.041E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027751\tres = 8.319E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027823\tres = 7.654E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.042E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.478E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.028007\tres = 5.959E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.481E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028106\tres = 5.041E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028150\tres = 4.636E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028190\tres = 4.263E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028227\tres = 3.920E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028261\tres = 3.604E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028292\tres = 3.314E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028321\tres = 3.047E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.801E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.575E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028394\tres = 2.367E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.175E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 1.999E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.838E-05\n", "[ NORMAL ] Iteration 111:\tk_eff = 1.028466\tres = 1.689E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.553E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.427E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.309E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.202E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.107E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.015E-05\n" + "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.552E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.426E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.310E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.204E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.106E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.017E-05\n" ] } ], @@ -1556,7 +1568,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 43, @@ -1565,9 +1577,9 @@ }, { "data": { - "image/png": "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\nAElFTkSuQmCC\n", + "image/png": "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\nfHTc1tr58WfQa96JP1u/NcN5cd/L4s/xL5/Rv3hAT+D6cDWAztRFRHJFRV1EJEdU1EVEckRFXUQk\nR1TURURyREVdRCRHVNRFRHJERV1EJEdKMvhojM0uunzkcw+F63hiUTwIh1fiQQh7984waOgrcciB\n5z4Rxjz3oxFhzMruOxddfsw18cAiOy4MYeQv4+22NfF6/MF4H1uGQ3WrnR7GVJNhQoISGzzu8UaX\n7c2r4f1taXxc1uwQ7/MNGSbk6Lowbmv/LfFkNDW3bQ5j7Ka4P7ufsTqM2fHUd+IVZdiuDRvi1bBj\nvJ9rbo7bOqhqXhjz2rg3iy7vRzdmhmtJ6ExdRCRHVNRFRHJERV1EJEdU1EVEckRFXUQkR1TURURy\nREVdRCRHVNRFRHKkRYOPzGwRsBbYCmxx91FZ7jdw+pKiy79/wsXxSvrFA1Gqp8QDAy6b9O0wZuKB\nk8OY517M8Pw4Mp5tpS/FByHYyLgd3xi3wznxrC7+vbitDaPjprp0jY/VMn4axmTYqlbT3NxeuKbx\nmaAeqDk6XsFJ8b6qGZJhVqOX471lb8Q5UPONDHk9N27LH4zbsqPitro9sSVez8p4H+7aK8N2BZMR\nAXBi3NZUj2d06rfm5aLL+1ZnL9WtMaL0KHdf2QrrESk3ym2pOLr8IiKSIy0t6g7cb2Zzzezc1uiQ\nSJlQbktFaunll8PdfYmZ7QbcZ2bPufus1uiYSIkpt6UitehM3d2XpL9XANOA971tZma1ZuZ1Py1p\nTySLwnwzs9rmrEO5LeUoS243u6ib2U5m1q3ub+BjwPz6ce5e6+5W99Pc9kSyKsw3d69t6v2V21Ku\nsuR2Sy6/9AammVndem529z+3YH0i5UK5LRWr2UXd3RcCw1qxLyJlQbktlczc2/dSoJk5zxb/wP7W\nHvGMI8ftelcYs4aaMGYDXcKYudcdHsace/7VYcyUp84PY7rss6ro8vVbdw3XYVPDELY9HF8teOyO\nD4YxY558Koz58rB4YNE+vBLGXPLqD8MY+nWmVJdCzMyZ13hu/3zYWeE6DvVHwpjNdApjDtjyfBjT\n9TvxgKCHrxgexnTweD2jhz8dxjz2ZJxvWzyuDR/6VjzT0NrL4/PZf1bvH8Z0IJ716REODWPOf+q3\nRZeP3QlmDqzKlNv6nLqISI6oqIuI5IiKuohIjqioi4jkiIq6iEiOqKiLiOSIirqISI6oqIuI5Ehr\n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\njRmGBmRpq3P0mAf6Z1hPpwz96VwVb9eeWfqc5WGU5XhtznDcKZY3sP/+HZg5M8NqKNXgI5E2VNrB\nRyJtJ0tut3tRf18HzLxUD8LmUp/bRyX2uVAl9l99bntt3V9dUxcRyREVdRGRHCmHop7l227Kjfrc\nPiqxz4Uqsf/qc9tr0/6W/Jq6iIi0nnI4UxcRkVaioi4ikiMlLepmdqyZPW9mL5rZhFL2JSszW2Rm\nT5vZPDOLv9W/BMxsipmtMLP5Bbf1MLP7zOyF9PcupexjoUb6W2tmS9L9PM/MPlHKPjaF8rptVFpe\nQ2lyu2RF3cyqgeuA44BBwHgzG1Sq/jTRUe4+3N0zTI1SElOBY+vdNgF4wN0HAg+k/5eLqby/vwA/\nTffzcHe/p5371CzK6zY1lcrKayhBbpfyTH008KK7L3T3TcCtwLgS9ic33H0WsKrezeOAG9K/bwDi\nefzaSSP9rVTK6zZSaXkNpcntUhb1PYDXCv5fnN5W7hy438zmmtm5pe5ME/R296Xp38uA3qXsTEZf\nM7On0pewZfWyugjldfuqxLyGNsxtvVHadIe7+3CSl9fnm9mHS92hpvLkc6zl/lnWXwD9Sb7ebSnw\n49J2J/eU1+2nTXO7lEV9CWz39Yd7preVNXdfkv5eAUwjebldCZabWR+A9PeKEvenKHdf7u5b3X0b\n8CsqZz8rr9tXReU1tH1ul7KozwEGmtm+ZtYJOB2YUcL+hMxsJzPrVvc38DFgfvF7lY0ZwJnp32cC\n00vYl1DdAzV1EpWzn5XX7aui8hraPrdL8n3qAO6+xcy+CtwLVANT3H1BqfqTUW9gmplBsu9udvc/\nl7ZL72dmtwBHAr3MbDEwEZgM3GZmZwOvAKeVrofba6S/R5rZcJKX04uA80rWwSZQXredSstrKE1u\n62sCRERyRG+UiojkiIq6iEiOqKiLiOSIirqISI6oqIuI5IiKuohIjqioi4jkiIq6iEiO/C/zDkyC\nZclMUgAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1575,6 +1587,10 @@ } ], "source": [ + "# Ignore zero fission rates in guide tubes with Matplotlib color scheme\n", + "openmc_fission_rates[openmc_fission_rates == 0] = np.nan\n", + "openmoc_fission_rates[openmoc_fission_rates == 0] = np.nan\n", + "\n", "# Plot OpenMC's fission rates in the left subplot\n", "fig = plt.subplot(121)\n", "plt.imshow(openmc_fission_rates, interpolation='none', cmap='jet')\n", @@ -1589,21 +1605,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.1" + "pygments_lexer": "ipython2", + "version": "2.7.6" } }, "nbformat": 4, From 502482dcf630ee6e290c15b8535e6e850a351c88 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 May 2016 18:24:25 -0400 Subject: [PATCH 161/259] Type checking now ensures that Legendre moments do not exceed 10 --- openmc/mgxs/library.py | 2 +- openmc/mgxs/mgxs.py | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index ad0bfd77a..f2a5c7569 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -59,7 +59,7 @@ class Library(object): correction : {'P0', None} Apply the P0 correction to scattering matrices if set to 'P0' legendre_order : int - The highest legendre moments in the scattering matrices (default is 0) + The highest legendre moment in the scattering matrices (default is 0) energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation tally_trigger : openmc.Trigger diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 051dd3cf1..1479f7241 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1948,6 +1948,7 @@ class ScatterMatrixXS(MGXS): def legendre_order(self, legendre_order): cv.check_type('legendre_order', legendre_order, Integral) cv.check_greater_than('legendre_order', legendre_order, 0, equality=True) + cv.check_less_than('legendre_order', legendre_order, 10, equality=True) if self.correction == 'P0' and legendre_order > 0: msg = 'The P0 correction will be ignored since the scattering ' \ @@ -2112,7 +2113,8 @@ class ScatterMatrixXS(MGXS): if moment != 'all': cv.check_type('moment', moment, Integral) cv.check_greater_than('moment', moment, 0, equality=True) - cv.check_less_than('moment', moment, 10, equality=True) + cv.check_less_than( + 'moment', moment, self.legendre_order, equality=True) scores = [self.xs_tally.scores[moment]] else: scores = [] @@ -2230,7 +2232,8 @@ class ScatterMatrixXS(MGXS): if moment != 'all': cv.check_type('moment', moment, Integral) cv.check_greater_than('moment', moment, 0, equality=True) - cv.check_less_than('moment', moment, 10, equality=True) + cv.check_less_than( + 'moment', moment, self.legendre_order, equality=True) df = df[df['score'] == str(self.xs_tally.scores[moment])] return df From bbb5690a003f33cc0e21ea22299a081be67bc0c0 Mon Sep 17 00:00:00 2001 From: jingang Date: Mon, 9 May 2016 19:27:29 -0400 Subject: [PATCH 162/259] fix errors of setting material density using 'sum' --- docs/source/usersguide/input.rst | 8 ++++---- openmc/material.py | 26 ++++++++++++++++---------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 2158e1d8c..37b441ef2 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1215,11 +1215,11 @@ Each ``material`` element can have the following attributes or sub-elements: An element with attributes/sub-elements called ``value`` and ``units``. The ``value`` attribute is the numeric value of the density while the ``units`` can be "g/cm3", "kg/m3", "atom/b-cm", "atom/cm3", or "sum". The "sum" unit - indicates that values appearing in ``ao`` attributes for ```` and - ```` sub-elements are to be interpreted as nuclide/element - densities in atom/b-cm, and the total density of the material is taken as + indicates that values appearing in ``ao`` or ``wo`` attributes for ```` and + ```` sub-elements are to be interpreted as absolute nuclide/element + densities in atom/b-cm or g/cm3, and the total density of the material is taken as the sum of all nuclides/elements. The "sum" option cannot be used in - conjunction with weight percents. The "macro" unit is used with + conjunction with atom or weight percents. The "macro" unit is used with a ``macroscopic`` quantity to indicate that the density is already included in the library and thus not needed here. However, if a value is provided for the ``value``, then this is treated as a number density multiplier on diff --git a/openmc/material.py b/openmc/material.py index ff690aa9a..c74f8f1cd 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -245,19 +245,25 @@ class Material(object): """ - cv.check_type('the density for Material ID="{0}"'.format(self._id), - density, Real) cv.check_value('density units', units, DENSITY_UNITS) - - if density is None and units is not 'sum': - msg = 'Unable to set the density for Material ID="{0}" ' \ - 'because a density must be set when not using ' \ - 'sum unit'.format(self._id) - raise ValueError(msg) - - self._density = density self._density_units = units + if units is 'sum': + if density is not None: + msg = 'Density "{0}" for Material ID="{1}" is ignored ' \ + 'because the unit is "sum"'.format(density, self._id) + warnings.warn(msg) + else: + if density is None: + msg = 'Unable to set the density for Material ID="{0}" ' \ + 'because a density must be set when not using ' \ + '"sum" unit'.format(self._id) + raise ValueError(msg) + + cv.check_type('the density for Material ID="{0}"'.format(self._id), + density, Real) + self._density = density + @distrib_otf_file.setter def distrib_otf_file(self, filename): # TODO: remove this when distributed materials are merged From 95406d52fcc0541dc039b1a99db3b4d6056ff1c8 Mon Sep 17 00:00:00 2001 From: liangjg Date: Mon, 9 May 2016 22:34:18 -0400 Subject: [PATCH 163/259] update description according to comments --- docs/source/usersguide/input.rst | 9 ++++----- openmc/material.py | 8 ++++---- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 37b441ef2..775407d70 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1215,11 +1215,10 @@ Each ``material`` element can have the following attributes or sub-elements: An element with attributes/sub-elements called ``value`` and ``units``. The ``value`` attribute is the numeric value of the density while the ``units`` can be "g/cm3", "kg/m3", "atom/b-cm", "atom/cm3", or "sum". The "sum" unit - indicates that values appearing in ``ao`` or ``wo`` attributes for ```` and - ```` sub-elements are to be interpreted as absolute nuclide/element - densities in atom/b-cm or g/cm3, and the total density of the material is taken as - the sum of all nuclides/elements. The "sum" option cannot be used in - conjunction with atom or weight percents. The "macro" unit is used with + indicates that values appearing in ``ao`` or ``wo`` attributes for ```` + and ```` sub-elements are to be interpreted as absolute nuclide/element + densities in atom/b-cm or g/cm3, and the total density of the material is + taken as the sum of all nuclides/elements. The "macro" unit is used with a ``macroscopic`` quantity to indicate that the density is already included in the library and thus not needed here. However, if a value is provided for the ``value``, then this is treated as a number density multiplier on diff --git a/openmc/material.py b/openmc/material.py index c74f8f1cd..e9a74f1e7 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -251,16 +251,16 @@ class Material(object): if units is 'sum': if density is not None: msg = 'Density "{0}" for Material ID="{1}" is ignored ' \ - 'because the unit is "sum"'.format(density, self._id) + 'because the unit is "sum"'.format(density, self.id) warnings.warn(msg) else: if density is None: msg = 'Unable to set the density for Material ID="{0}" ' \ - 'because a density must be set when not using ' \ - '"sum" unit'.format(self._id) + 'because a density value must be given when not using ' \ + '"sum" unit'.format(self.id) raise ValueError(msg) - cv.check_type('the density for Material ID="{0}"'.format(self._id), + cv.check_type('the density for Material ID="{0}"'.format(self.id), density, Real) self._density = density From 4201cb98722e5be3a0b6b74abca639ecedac7745 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 May 2016 23:02:31 -0400 Subject: [PATCH 164/259] Fixed issue with lattice cell indexing for p-value calculation in Pandas DF notebook --- .../examples/pandas-dataframes.ipynb | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 0f93999e2..b88cf9949 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -370,7 +370,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA1LTA5VDEyOjUy\nOjAyLTA0OjAwrSzLCgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNS0wOVQxMjo1MjowMi0wNDow\nMNxxc7YAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA1LTA5VDIzOjAx\nOjE4LTA0OjAw/mF/xQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNS0wOVQyMzowMToxOC0wNDow\nMI88x3kAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -554,8 +554,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 7b20f8ad4aa9e6f02f8b1d51e002f9f56ba7aa15\n", - " Date/Time: 2016-05-09 12:52:02\n", + " Git SHA1: ae588276014a905ecc6e0967bf08288ecec5b550\n", + " Date/Time: 2016-05-09 23:01:18\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -619,20 +619,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.1000E-01 seconds\n", - " Reading cross sections = 9.7000E-02 seconds\n", - " Total time in simulation = 9.8510E+00 seconds\n", - " Time in transport only = 9.8370E+00 seconds\n", - " Time in inactive batches = 1.3970E+00 seconds\n", - " Time in active batches = 8.4540E+00 seconds\n", + " Total time for initialization = 3.9000E-01 seconds\n", + " Reading cross sections = 8.6000E-02 seconds\n", + " Total time in simulation = 1.0830E+01 seconds\n", + " Time in transport only = 1.0818E+01 seconds\n", + " Time in inactive batches = 1.3590E+00 seconds\n", + " Time in active batches = 9.4710E+00 seconds\n", " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.0275E+01 seconds\n", - " Calculation Rate (inactive) = 8947.75 neutrons/second\n", - " Calculation Rate (active) = 4435.77 neutrons/second\n", + " Total time elapsed = 1.1234E+01 seconds\n", + " Calculation Rate (inactive) = 9197.94 neutrons/second\n", + " Calculation Rate (active) = 3959.46 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1097,7 +1097,7 @@ "data": { "image/png": "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\nSWry/wHxFqsYpaO7aQAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1120,7 +1120,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 26, @@ -1131,7 +1131,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2042,15 +2042,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 6.038663783e-42\n" + "Mann-Whitney Test p-value: 0.303583331507\n" ] } ], "source": [ - "# Extract tally data from pins in the pins divided along y=-x diagonal\n", + "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", - "lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n", - "upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n", + "lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]\n", + "upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]\n", "lower = lower[lower['score'] == 'absorption']\n", "upper = upper[upper['score'] == 'absorption']\n", "\n", @@ -2080,15 +2080,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.303583331507\n" + "Mann-Whitney Test p-value: 6.038663783e-42\n" ] } ], "source": [ - "# Extract tally data from pins in the pins divided along y=x diagonal \n", + "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", - "lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]\n", - "upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]\n", + "lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n", + "upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n", "lower = lower[lower['score'] == 'absorption']\n", "upper = upper[upper['score'] == 'absorption']\n", "\n", @@ -2126,7 +2126,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 36, @@ -2137,7 +2137,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2164,7 +2164,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 37, @@ -2175,7 +2175,7 @@ "data": { "image/png": "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\n9OnTh2bNmtGmTRsuu+wyioqKSt/PzLjvvvvYdddd2W677fjDH/7A3Llz6dOnD02bNmXo0KEbrZ8J\nSggi0mBcccUVXHHFFaxatYq5c+dy8sknA/Dmm28CsGLFClavXk2fPn0YOXIkI0eO5LXXXuOrr75i\n9erVXHbZZQB89tlnXHLJJTz++OMsXryYlStXlna8s97YsWMZMmQIK1as4LTTTiMej3PXXXexfPly\npkyZwqRJk7jvvvs22ubll1/mo48+4t133+WOO+7gvPPO4/HHH+ebb75hxowZjBo1KqPlo4QgIvXe\n4MGDadasWelwySWXlLteTk4Oc+bMYfny5eTn57P//vtv8T0ff/xxrr76ajp37kx+fj5/+ctfGD16\nNCUlJTz11FMce+yx9OvXj9zcXG6++ebNemnr06cPgwcPJhaL0bhxY/bee2/2339/EokEHTt25MIL\nL+SNN97YaJvrrruOJk2a0K1bN7p3786RRx5J586dadq0KYMGDWLatGnVL6wKKCGISL337LPPsmLF\nitJh01/e640YMYJZs2bRpUsX9tlnH55//vktvueiRYvo0KFD6XSHDh0oKSlhyZIlLFq0iPbt25cu\n22abbWjRosVG25ddDjBr1iyOOeYYWrduTZMmTbjxxhtZvnz5Ruu0atWqdLxx48abTa9evbqCUqg+\nJQQRaTB22203Ro0axdKlS7n++usZMmQIa9asKbcP5rZt2zJ//vzS6W+++YZEIkGrVq1o06YNCxYs\nKF22bt06vv/++4223/Q9L774Yrp06cLs2bNZtWoVf/7zn+tcHxNKCCLSYDz22GMsW7aMWCxGs2bN\nAIjFYuy4447EYjG++uqr0nVPPfVU7rrrLr7++mtWr17NjTfeyNChQ0kkEgwZMoRx48YxefJkioqK\nKCgoqPTL/aeffqJJkybk5+fzxRdfVNjvc1Qa7g23IlIt9fG5kPHjx3P11Vezdu1aOnTowOjRo2nc\nuDEAw4YNo2/fvhQXFzN+/HjOPfdcFi1aRP/+/fn555854ogjuOeee4DgYbd77rmHU045hTVr1nDl\nlVfSsmVL8vLytrjvO++8kwsuuIA77riDnj17MnToUF599dVaOe50qQtNybiqPmimB9PqHnWhWbHV\nq1fTrFkzZs+eTadOnSKLQ11oiohEYNy4caxdu5Y1a9ZwzTXX0KNHDzp27Bh1WNWiKiOpEZluxkCk\n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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, From 3079b5f6df0eb7c5c1b86b11be67b35b3ff518fd Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 10 May 2016 04:45:02 -0400 Subject: [PATCH 165/259] Simplification of mgxs_library - not done yet --- openmc/mgxs_library.py | 703 +++++++++++------------------------------ 1 file changed, 191 insertions(+), 512 deletions(-) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index bae23b0bc..ba9ba75b0 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -99,6 +99,12 @@ class XSdata(object): Unique identifier for the xsdata object alias : str Separate unique identifier for the xsdata object + zaid : int + 1000*(atomic number) + mass number. As an example, the zaid of U-235 + would be 92235. + awr : float + Atomic-weight-ratio of an isotope. That is, the ratio of the mass + of the isotope to the mass of a single neutron. kT : float Temperature (in units of MeV). energy_groups : openmc.mgxs.EnergyGroups @@ -198,7 +204,7 @@ class XSdata(object): """ - def __init__(self, name, energy_groups, representation="isotropic"): + def __init__(self, name, energy_groups, representation='isotropic'): # Initialize class attributes self._name = name self._energy_groups = energy_groups @@ -319,15 +325,7 @@ class XSdata(object): @energy_groups.setter def energy_groups(self, energy_groups): # Check validity of energy_groups - check_type("energy_groups", energy_groups, openmc.mgxs.EnergyGroups) - - # Check that there are one or more groups - ng = energy_groups.num_groups - if ((ng is None) or (ng < 1)): - - msg = 'energy_groups object incorrectly initialized.' - raise ValueError(msg) - + check_type('energy_groups', energy_groups, openmc.mgxs.EnergyGroups) self._energy_groups = energy_groups @representation.setter @@ -347,48 +345,48 @@ class XSdata(object): @zaid.setter def zaid(self, zaid): # Check type and value - check_type("zaid", zaid, Integral) - check_greater_than("zaid", zaid, 0, equality=False) + check_type('zaid', zaid, Integral) + check_greater_than('zaid', zaid, 0, equality=False) self._zaid = zaid @awr.setter def awr(self, awr): # Check validity of type and that the awr value is > 0 - check_type("awr", awr, Real) - check_greater_than("awr", awr, 0.0, equality=False) + check_type('awr', awr, Real) + check_greater_than('awr', awr, 0.0, equality=False) self._awr = awr @kT.setter def kT(self, kT): # Check validity of type and that the kT value is >= 0 - check_type("kT", kT, Real) - check_greater_than("kT", kT, 0.0, equality=True) + check_type('kT', kT, Real) + check_greater_than('kT', kT, 0.0, equality=True) self._kT = kT @scatt_type.setter def scatt_type(self, scatt_type): # check to see it is of a valid type and value - check_value("scatt_type", scatt_type, ['legendre', 'histogram', + check_value('scatt_type', scatt_type, ['legendre', 'histogram', 'tabular']) self._scatt_type = scatt_type @order.setter def order(self, order): # Check type and value - check_type("order", order, Integral) - check_greater_than("order", order, 0, equality=True) + check_type('order', order, Integral) + check_greater_than('order', order, 0, equality=True) self._order = order @tabular_legendre.setter def tabular_legendre(self, tabular_legendre): # Check to make sure this is a dict and it has our keys with the # right values. - check_type("tabular_legendre", tabular_legendre, dict) + check_type('tabular_legendre', tabular_legendre, dict) if 'enable' in tabular_legendre: enable = tabular_legendre['enable'] check_type('enable', enable, bool) else: - msg = "enable must be provided in tabular_legendre" + msg = 'enable must be provided in tabular_legendre' raise ValueError(msg) if 'num_points' in tabular_legendre: num_points = tabular_legendre['num_points'] @@ -404,14 +402,14 @@ class XSdata(object): @num_polar.setter def num_polar(self, num_polar): # Make sure we have positive ints - check_value("num_polar", num_polar, Integral) - check_greater_than("num_polar", num_polar, 0) + check_value('num_polar', num_polar, Integral) + check_greater_than('num_polar', num_polar, 0) self._num_polar = num_polar @num_azimuthal.setter def num_azimuthal(self, num_azimuthal): - check_value("num_azimuthal", num_azimuthal, Integral) - check_greater_than("num_azimuthal", num_azimuthal, 0) + check_value('num_azimuthal', num_azimuthal, Integral) + check_greater_than('num_azimuthal', num_azimuthal, 0) self._num_azimuthal = num_azimuthal @total.setter @@ -422,7 +420,7 @@ class XSdata(object): shape = (self._num_polar, self._num_azimuthal, self._energy_groups.num_groups) # check we have a numpy list - check_type("total", total, np.ndarray, expected_iter_type=Real) + check_type('total', total, np.ndarray, expected_iter_type=Real) if total.shape == shape: self._total = np.copy(total) else: @@ -438,7 +436,7 @@ class XSdata(object): shape = (self._num_polar, self._num_azimuthal, self._energy_groups.num_groups) # check we have a numpy list - check_type("absorption", absorption, np.ndarray, + check_type('absorption', absorption, np.ndarray, expected_iter_type=Real) if absorption.shape == shape: self._absorption = np.copy(absorption) @@ -455,7 +453,7 @@ class XSdata(object): shape = (self._num_polar, self._num_azimuthal, self._energy_groups.num_groups) # check we have a numpy list - check_type("fission", fission, np.ndarray, expected_iter_type=Real) + check_type('fission', fission, np.ndarray, expected_iter_type=Real) if fission.shape == shape: self._fission = np.copy(fission) if np.sum(self._fission) > 0.0: @@ -473,7 +471,7 @@ class XSdata(object): shape = (self._num_polar, self._num_azimuthal, self._energy_groups.num_groups) # check we have a numpy list - check_type("k_fission", k_fission, np.ndarray, + check_type('k_fission', k_fission, np.ndarray, expected_iter_type=Real) if k_fission.shape == shape: self._k_fission = np.copy(k_fission) @@ -497,7 +495,7 @@ class XSdata(object): shape = (self._num_polar, self._num_azimuthal, self._energy_groups.num_groups) # check we have a numpy list - check_type("chi", chi, np.ndarray, expected_iter_type=Real) + check_type('chi', chi, np.ndarray, expected_iter_type=Real) if chi.shape == shape: self._chi = np.copy(chi) else: @@ -519,7 +517,7 @@ class XSdata(object): self._energy_groups.num_groups) max_depth = 5 # check we have a numpy list - check_iterable_type("scatter", scatter, expected_type=Real, + check_iterable_type('scatter', scatter, expected_type=Real, max_depth=max_depth) if scatter.shape == shape: self._scatter = np.copy(scatter) @@ -540,7 +538,7 @@ class XSdata(object): self._energy_groups.num_groups) max_depth = 4 # check we have a numpy list - check_iterable_type("multiplicity", multiplicity, expected_type=Real, + check_iterable_type('multiplicity', multiplicity, expected_type=Real, max_depth=max_depth) if multiplicity.shape == shape: self._multiplicity = np.copy(multiplicity) @@ -582,7 +580,7 @@ class XSdata(object): else: shape = shape_mat if nu_fission.shape != shape: - msg = "Invalid Shape of Nu_fission!" + msg = 'Invalid Shape of Nu_fission!' raise ValueError(msg) else: # Get shape of nu_fission to determine if we need chi or not @@ -591,523 +589,204 @@ class XSdata(object): elif nu_fission.shape == shape_mat: self._use_chi = False else: - msg = "Invalid Shape of Nu_fission!" + msg = 'Invalid Shape of Nu_fission!' raise ValueError(msg) # check we have a numpy list - check_type("nu_fission", nu_fission, np.ndarray, + check_type('nu_fission', nu_fission, np.ndarray, expected_iter_type=Real) self._nu_fission = np.copy(nu_fission) if np.sum(self._nu_fission) > 0.0: self._fissionable = True - def set_total(self, total, **kwargs): - if (isinstance(total, openmc.mgxs.TotalXS) or - isinstance(total, openmc.mgxs.TransportXS)): - # Make sure passed MGXS object contains correct group structure - if self.energy_groups != total.energy_groups: - msg = 'Group structure of provided data does not match' \ - ' group structure of XSdata object' - raise ValueError(msg) - # Get openmc.mgxs.get_xs() arguments from kwargs - # nuclides, xs_type, and value will have sane defaults but can be - # overridden by kwards - if 'nuclides' in kwargs: - nuclides = kwargs['nuclides'] - else: - nuclides = 'sum' - if 'xs_type' in kwargs: - xs_type = kwargs['xs_type'] - else: - xs_type = 'macro' - if 'value' in kwargs: - value = kwargs['value'] - else: - value = 'mean' - # subdomains is required from the kwargs as this is specific to - # this XSdata object. - if 'subdomains' in kwargs: - subdomains = kwargs['subdomains'] - else: - msg = "Argument 'subdomains' is required" - raise ValueError(msg) + def set_total(self, total, subdomain, nuclide='sum', xs_type='macro'): + if not isinstance(total, (openmc.mgxs.TotalXS, + openmc.mgxs.TransportXS)): + msg = 'Method must be passed an openmc.mgxs.TotalXS or ' \ + 'openmc.mgxs.TransportXS object' + raise TypeError(msg) - if self._representation is 'isotropic': - self._total = total.get_xs(subdomains=subdomains, - nuclides=nuclides, xs_type=xs_type, - value=value) - elif self._representation is 'angle': - # Not yet implemented as MGXS do not yet support this - pass + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != total.energy_groups: + msg = 'Group structure of provided data does not match' \ + ' group structure of XSdata object' + raise ValueError(msg) - else: - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups,) - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) - # check we have a numpy list - check_type("total", total, np.ndarray, expected_iter_type=Real) - if total.shape == shape: - self._total = np.copy(total) - else: - msg = 'Shape of provided total "{0}" does not match shape ' \ - 'required, "{1}"'.format(total.shape, shape) - raise ValueError(msg) + if self._representation is 'isotropic': + self._total = total.get_xs(subdomain=subdomains, nuclides=nuclide, + xs_type=xs_type) + elif self._representation is 'angle': + msg = 'Angular-Dependent MGXS have not yet been implemented' + raise ValueError(msg) - def set_absorption(self, absorption, **kwargs): - if isinstance(absorption, openmc.mgxs.AbsorptionXS): - # Make sure passed MGXS object contains correct group structure - if self.energy_groups != absorption.energy_groups: - msg = 'Group structure of provided AbsorptionXS does not ' \ - ' match group structure of XSdata object' - raise ValueError(msg) - # Get openmc.mgxs.get_xs() arguments from kwargs - # nuclides, xs_type, and value will have sane defaults but can be - # overridden by kwards - if 'nuclides' in kwargs: - nuclides = kwargs['nuclides'] - else: - nuclides = 'sum' - if 'xs_type' in kwargs: - xs_type = kwargs['xs_type'] - else: - xs_type = 'macro' - if 'value' in kwargs: - value = kwargs['value'] - else: - value = 'mean' - # subdomains is required from the kwargs as this is specific to - # this XSdata object. - if 'subdomains' in kwargs: - subdomains = kwargs['subdomains'] - else: - msg = "Argument 'subdomains' is required" - raise ValueError(msg) + def set_absorption(self, absorption, subdomain, nuclide='sum', + xs_type='macro'): + if not isinstance(absorption, openmc.mgxs.AbsorptionXS): + msg = 'Method must be passed an openmc.mgxs.AbsorptionXS' + raise TypeError(msg) - if self._representation is 'isotropic': - self._absorption = absorption.get_xs(subdomains=subdomains, - nuclides=nuclides, - xs_type=xs_type, - value=value) - elif self._representation is 'angle': - # Not yet implemented as MGXS do not yet support this - pass + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != absorption.energy_groups: + msg = 'Group structure of provided data does not match' \ + ' group structure of XSdata object' + raise ValueError(msg) - else: - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups,) - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) - # check we have a numpy list - check_type("absorption", absorption, np.ndarray, expected_iter_type=Real) - if absorption.shape == shape: - self._absorption = np.copy(absorption) - else: - msg = 'Shape of provided absorption "{0}" does not match shape ' \ - 'required, "{1}"'.format(absorption.shape, shape) - raise ValueError(msg) + if self._representation is 'isotropic': + self._absorption = absorption.get_xs(subdomains=subdomain, + nuclides=nuclide, + xs_type=xs_type) + elif self._representation is 'angle': + msg = 'Angular-Dependent MGXS have not yet been implemented' + raise ValueError(msg) - def set_fission(self, fission, **kwargs): - if isinstance(fission, openmc.mgxs.FissionXS): - # Make sure passed MGXS object contains correct group structure - if self.energy_groups != fission.energy_groups: - msg = 'Group structure of provided FissionXS does not match ' \ - 'group structure of XSdata object' - raise ValueError(msg) - # Get openmc.mgxs.get_xs() arguments from kwargs - # nuclides, xs_type, and value will have sane defaults but can be - # overridden by kwards - if 'nuclides' in kwargs: - nuclides = kwargs['nuclides'] - else: - nuclides = 'sum' - if 'xs_type' in kwargs: - xs_type = kwargs['xs_type'] - else: - xs_type = 'macro' - if 'value' in kwargs: - value = kwargs['value'] - else: - value = 'mean' - # subdomains is required from the kwargs as this is specific to - # this XSdata object. - if 'subdomains' in kwargs: - subdomains = kwargs['subdomains'] - else: - msg = "Argument 'subdomains' is required" - raise ValueError(msg) + def set_fission(self, fission, subdomain, nuclide='sum', xs_type='macro'): + if not isinstance(fission, openmc.mgxs.FissionXS): + msg = 'Method must be passed an openmc.mgxs.FissionXS' + raise TypeError(msg) - if self._representation is 'isotropic': - self._fission = fission.get_xs(subdomains=subdomains, - nuclides=nuclides, - xs_type=xs_type, - value=value) - elif self._representation is 'angle': - # Not yet implemented as MGXS do not yet support this - pass + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != fission.energy_groups: + msg = 'Group structure of provided data does not match' \ + ' group structure of XSdata object' + raise ValueError(msg) - else: - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups,) - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) - # check we have a numpy list - check_type("fission", fission, np.ndarray, expected_iter_type=Real) - if fission.shape == shape: - self._fission = np.copy(fission) - if np.sum(self._fission) > 0.0: - self._fissionable = True - else: - msg = 'Shape of provided fission "{0}" does not match shape ' \ - 'required, "{1}"'.format(fission.shape, shape) - raise ValueError(msg) + if self._representation is 'isotropic': + self._fission = fission.get_xs(subdomains=subdomain, + nuclides=nuclide, + xs_type=xs_type) + elif self._representation is 'angle': + msg = 'Angular-Dependent MGXS have not yet been implemented' + raise ValueError(msg) - def set_nu_fission(self, nu_fission, **kwargs): + def set_nu_fission(self, nu_fission, subdomain, nuclide='sum', + xs_type='macro'): # The NuFissionXS class does not have the capability to produce # a fission matrix and therefore if this path is pursued, we know # chi must be used. - if isinstance(nu_fission, openmc.mgxs.NuFissionXS): - # Make sure passed MGXS object contains correct group structure - if self.energy_groups != nu_fission.energy_groups: - msg = 'Group structure of provided NuFissionXS does not match'\ - ' group structure of XSdata object' - raise ValueError(msg) - # Get openmc.mgxs.get_xs() arguments from kwargs - # nuclides, xs_type, and value will have sane defaults but can be - # overridden by kwards - if 'nuclides' in kwargs: - nuclides = kwargs['nuclides'] - else: - nuclides = 'sum' - if 'xs_type' in kwargs: - xs_type = kwargs['xs_type'] - else: - xs_type = 'macro' - if 'value' in kwargs: - value = kwargs['value'] - else: - value = 'mean' - # subdomains is required from the kwargs as this is specific to - # this XSdata object. - if 'subdomains' in kwargs: - subdomains = kwargs['subdomains'] - else: - msg = "Argument 'subdomains' is required" - raise ValueError(msg) + if not isinstance(nu_fission, openmc.mgxs.NuFissionXS): + msg = 'Method must be passed an openmc.mgxs.NuFissionXS' + raise TypeError(msg) - if self._representation is 'isotropic': - self._nu_fission = nu_fission.get_xs(subdomains=subdomains, - nuclides=nuclides, - xs_type=xs_type, - value=value) - elif self._representation is 'angle': - # Not yet implemented as MGXS do not yet support this - pass + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != nu_fission.energy_groups: + msg = 'Group structure of provided data does not match' \ + ' group structure of XSdata object' + raise ValueError(msg) - self._use_chi = True + if self._representation is 'isotropic': + self._nu_fission = nu_fission.get_xs(subdomains=subdomain, + nuclides=nuclide, + xs_type=xs_type) + elif self._representation is 'angle': + msg = 'Angular-Dependent MGXS have not yet been implemented' + raise ValueError(msg) - else: - # nu_fission can be given as a vector or a matrix - # Vector is used when chi also exists. - # Matrix is used when chi does not exist. - # We have to check that the correct form is given, but only if - # chi already has been set. If not, we just check that this is OK - # and set the use_chi flag accordingly + self._use_chi = True - # First lets set our dimensions here since they get used repeatedly - # throughout this code. - if self._representation is 'isotropic': - shape_vec = (self._energy_groups.num_groups,) - shape_mat = (self._energy_groups.num_groups, - self._energy_groups.num_groups) - elif self._representation is 'angle': - shape_vec = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) - shape_mat = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups, - self._energy_groups.num_groups) - - # Begin by checking the case when chi has already been given and - # thus the rules for filling in nu_fission are set. - if self._use_chi is not None: - if self._use_chi: - shape = shape_vec - else: - shape = shape_mat - if nu_fission.shape != shape: - msg = "Invalid Shape of Nu_fission!" - raise ValueError(msg) - else: - # Get shape of nu_fission to determine if we need chi or not - if nu_fission.shape == shape_vec: - self._use_chi = True - elif nu_fission.shape == shape_mat: - self._use_chi = False - else: - msg = "Invalid Shape of Nu_fission!" - raise ValueError(msg) - - # check we have a numpy list - check_type("nu_fission", nu_fission, np.ndarray, - expected_iter_type=Real) - self._nu_fission = np.copy(nu_fission) if np.sum(self._nu_fission) > 0.0: self._fissionable = True - def set_k_fission(self, k_fission, **kwargs): - if isinstance(k_fission, openmc.mgxs.KappaFissionXS): - # Make sure passed MGXS object contains correct group structure - if self.energy_groups != k_fission.energy_groups: - msg = 'Group structure of provided KappaFissionXS does not ' \ - 'match group structure of XSdata object' - raise ValueError(msg) - # Get openmc.mgxs.get_xs() arguments from kwargs - # nuclides, xs_type, and value will have sane defaults but can be - # overridden by kwards - if 'nuclides' in kwargs: - nuclides = kwargs['nuclides'] - else: - nuclides = 'sum' - if 'xs_type' in kwargs: - xs_type = kwargs['xs_type'] - else: - xs_type = 'macro' - if 'value' in kwargs: - value = kwargs['value'] - else: - value = 'mean' - # subdomains is required from the kwargs as this is specific to - # this XSdata object. - if 'subdomains' in kwargs: - subdomains = kwargs['subdomains'] - else: - msg = "Argument 'subdomains' is required" - raise ValueError(msg) + def set_k_fission(self, k_fission, subdomain, nuclide='sum', + xs_type='macro'): + if not isinstance(k_fission, openmc.mgxs.KappaFissionXS): + msg = 'Method must be passed an openmc.mgxs.KappaFissionXS' + raise TypeError(msg) - if self._representation is 'isotropic': - self._k_fission = k_fission.get_xs(subdomains=subdomains, - nuclides=nuclides, - xs_type=xs_type, - value=value) - elif self._representation is 'angle': - # Not yet implemented as MGXS do not yet support this - pass + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != k_fission.energy_groups: + msg = 'Group structure of provided data does not match' \ + ' group structure of XSdata object' + raise ValueError(msg) - else: - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups,) - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) - # check we have a numpy list - check_type("k_fission", k_fission, np.ndarray, - expected_iter_type=Real) - if k_fission.shape == shape: - self._k_fission = np.copy(k_fission) - if np.sum(self._k_fission) > 0.0: - self._fissionable = True - else: - msg = 'Shape of provided k_fission "{0}" does not match ' \ - 'shape required, "{1}"'.format(k_fission.shape, shape) - raise ValueError(msg) + if self._representation is 'isotropic': + self._k_fission = k_fission.get_xs(subdomains=subdomain, + nuclides=nuclide, + xs_type=xs_type) + elif self._representation is 'angle': + msg = 'Angular-Dependent MGXS have not yet been implemented' + raise ValueError(msg) - def set_chi(self, chi, **kwargs): + def set_chi(self, chi, subdomain, nuclide='sum', xs_type='macro'): if self._use_chi is not None: if not self._use_chi: - msg = 'Providing chi when nu_fission already provided as matrix!' + msg = 'Providing chi when nu_fission already provided as a ' \ + 'matrix!' raise ValueError(msg) - if isinstance(chi, openmc.mgxs.Chi): - # Make sure passed MGXS object contains correct group structure - if self.energy_groups != chi.energy_groups: - msg = 'Group structure of provided Chi does not ' \ - 'match group structure of XSdata object' - raise ValueError(msg) - # Get openmc.mgxs.get_xs() arguments from kwargs - # nuclides, xs_type, and value will have sane defaults but can be - # overridden by kwards - if 'nuclides' in kwargs: - nuclides = kwargs['nuclides'] - else: - nuclides = 'sum' - if 'xs_type' in kwargs: - xs_type = kwargs['xs_type'] - else: - xs_type = 'macro' - if 'value' in kwargs: - value = kwargs['value'] - else: - value = 'mean' - # subdomains is required from the kwargs as this is specific to - # this XSdata object. - if 'subdomains' in kwargs: - subdomains = kwargs['subdomains'] - else: - msg = "Argument 'subdomains' is required" - raise ValueError(msg) + if not isinstance(chi, openmc.mgxs.Chi): + msg = 'Method must be passed an openmc.mgxs.Chi' + raise TypeError(msg) - if self._representation is 'isotropic': - self._chi = chi.get_xs(subdomains=subdomains, - nuclides=nuclides, - xs_type=xs_type, - value=value) - elif self._representation is 'angle': - # Not yet implemented as MGXS do not yet support this - pass + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != chi.energy_groups: + msg = 'Group structure of provided data does not match' \ + ' group structure of XSdata object' + raise ValueError(msg) - else: - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups,) - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) - # check we have a numpy list - check_type("chi", chi, np.ndarray, expected_iter_type=Real) - if chi.shape == shape: - self._chi = np.copy(chi) - else: - msg = 'Shape of provided chi "{0}" does not match shape ' \ - 'required, "{1}"'.format(chi.shape, shape) - raise ValueError(msg) - if self._use_chi is not None: - self._use_chi = True + if self._representation is 'isotropic': + self._chi = chi.get_xs(subdomains=subdomain, + nuclides=nuclide, + xs_type=xs_type) + elif self._representation is 'angle': + msg = 'Angular-Dependent MGXS have not yet been implemented' + raise ValueError(msg) - def set_scatter(self, scatter, **kwargs): - if isinstance(scatter, openmc.mgxs.ScatterMatrixXS): - # Make sure passed MGXS object contains correct group structure - if self.energy_groups != scatter.energy_groups: - msg = 'Group structure of provided ScatterMatrixXS does not ' \ - 'match group structure of XSdata object' - raise ValueError(msg) - # Get openmc.mgxs.get_xs() arguments from kwargs - # nuclides, xs_type, and value will have sane defaults but can be - # overridden by kwards - if 'nuclides' in kwargs: - nuclides = kwargs['nuclides'] - else: - nuclides = 'sum' - if 'xs_type' in kwargs: - xs_type = kwargs['xs_type'] - else: - xs_type = 'macro' - if 'value' in kwargs: - value = kwargs['value'] - else: - value = 'mean' - # subdomains is required from the kwargs as this is specific to - # this XSdata object. - if 'subdomains' in kwargs: - subdomains = kwargs['subdomains'] - else: - msg = "Argument 'subdomains' is required" - raise ValueError(msg) + if self._use_chi is not None: + self._use_chi = True - if self._representation is 'isotropic': - self._scatter = scatter.get_xs(subdomains=subdomains, - nuclides=nuclides, - xs_type=xs_type, - value=value) - elif self._representation is 'angle': - # Not yet implemented as MGXS do not yet support this - pass + def set_scatter(self, scatter, subdomain, nuclide='sum', xs_type='macro'): + if not isinstance(scatter, openmc.mgxs.ScatterMatrixXS): + msg = 'Method must be passed an openmc.mgxs.ScatterMatrixXS' + raise TypeError(msg) - else: - if self._representation is 'isotropic': - shape = (self.num_orders, self._energy_groups.num_groups, - self._energy_groups.num_groups) - max_depth = 3 - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, self.num_orders, - self._energy_groups.num_groups, - self._energy_groups.num_groups) - max_depth = 5 - # check we have a numpy list - check_iterable_type("scatter", scatter, expected_type=Real, - max_depth=max_depth) - if scatter.shape == shape: - self._scatter = np.copy(scatter) - else: - msg = 'Shape of provided scatter "{0}" does not match shape ' \ - 'required, "{1}"'.format(scatter.shape, shape) - raise ValueError(msg) + # Make sure passed MGXS object contains correct group structure + if self.energy_groups != scatter.energy_groups: + msg = 'Group structure of provided data does not match' \ + ' group structure of XSdata object' + raise ValueError(msg) - def set_multiplicity(self, multiplicity, scatter=None, **kwargs): - if isinstance(multiplicity, openmc.mgxs.NuScatterMatrixXS): - if not isinstance(scatter, openmc.mgxs.ScatterMatrixXS): - msg = "Argument 'scatter' must be provided." - raise ValueError(msg) - # Make sure passed MGXS objects contain correct group structure - if self.energy_groups != multiplicity.energy_groups: - msg = 'Group structure of provided NuScatterMatrixXS does not ' \ - 'match group structure of XSdata object' - raise ValueError(msg) - if self.energy_groups != scatter.energy_groups: - msg = 'Group structure of provided ScatterMatrixXS does not ' \ - 'match group structure of XSdata object' - raise ValueError(msg) - # Get openmc.mgxs.get_xs() arguments from kwargs - # nuclides, xs_type, and value will have sane defaults but can be - # overridden by kwards - if 'nuclides' in kwargs: - nuclides = kwargs['nuclides'] - else: - nuclides = 'sum' - if 'xs_type' in kwargs: - xs_type = kwargs['xs_type'] - else: - xs_type = 'macro' - if 'value' in kwargs: - value = kwargs['value'] - else: - value = 'mean' - # subdomains is required from the kwargs as this is specific to - # this XSdata object. - if 'subdomains' in kwargs: - subdomains = kwargs['subdomains'] - else: - msg = "Argument 'subdomains' is required" - raise ValueError(msg) + if self._representation is 'isotropic': + self._scatter = scatter.get_xs(subdomains=subdomain, + nuclides=nuclide, + xs_type=xs_type) + elif self._representation is 'angle': + msg = 'Angular-Dependent MGXS have not yet been implemented' + raise ValueError(msg) - if self._representation is 'isotropic': - nuscatt = multiplicity.get_xs(subdomains=subdomains, - nuclides=nuclides, - xs_type=xs_type, - value=value) - scatt = scatter.get_xs(subdomains=subdomains, - nuclides=nuclides, - xs_type=xs_type, - value=value) - self._multiplicity = np.divide(nuscatt, scatt) - elif self._representation is 'angle': - # Not yet implemented as MGXS do not yet support this - pass + def set_multiplicity(self, multiplicity, scatter, subdomain, + nuclide='sum', xs_type='macro'): + if not isinstance(multiplicity, openmc.mgxs.ScatterMatrixXS): + msg = 'Method must be passed an openmc.mgxs.ScatterMatrixXS' + raise TypeError(msg) + if not isinstance(scatter, openmc.mgxs.ScatterMatrixXS): + msg = 'Method must be passed an openmc.mgxs.ScatterMatrixXS' + raise TypeError(msg) - else: - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups, - self._energy_groups.num_groups) - max_depth = 2 - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups, - self._energy_groups.num_groups) - max_depth = 4 - # check we have a numpy list - check_iterable_type("multiplicity", multiplicity, expected_type=Real, - max_depth=max_depth) - if multiplicity.shape == shape: - self._multiplicity = np.copy(multiplicity) - else: - msg = 'Shape of provided multiplicity "{0}" does not match shape' \ - ' required, "{1}"'.format(multiplicity.shape, shape) - raise ValueError(msg) + # Make sure passed MGXS objects contain correct group structure + if self.energy_groups != multiplicity.energy_groups: + msg = 'Group structure of "multiplicity" does not match' \ + ' group structure of XSdata object' + raise ValueError(msg) + if self.energy_groups != scatter.energy_groups: + msg = 'Group structure of "scatter" does not match' \ + ' group structure of XSdata object' + raise ValueError(msg) + + if self._representation is 'isotropic': + nuscatt = multiplicity.get_xs(subdomains=subdomain, + nuclides=nuclide, + xs_type=xs_type) + scatt = scatter.get_xs(subdomains=subdomain, + nuclides=nuclide, + xs_type=xs_type) + self._multiplicity = np.divide(nuscatt, scatt) + elif self._representation is 'angle': + msg = 'Angular-Dependent MGXS have not yet been implemented' + raise ValueError(msg) def _get_xsdata_xml(self): - element = ET.Element("xsdata") - element.set("name", self._name) + element = ET.Element('xsdata') + element.set('name', self._name) if self._alias is not None: subelement = ET.SubElement(element, 'alias') @@ -1213,7 +892,7 @@ class MGXSLibrary(object): self._xsdatas = [] self._energy_groups = energy_groups self._inverse_velocities = None - self._cross_sections_file = ET.Element("cross_sections") + self._cross_sections_file = ET.Element('cross_sections') @property def inverse_velocities(self): @@ -1232,7 +911,7 @@ class MGXSLibrary(object): @energy_groups.setter def energy_groups(self, energy_groups): - check_type("energy groups", energy_groups, openmc.mgxs.EnergyGroups) + check_type('energy groups', energy_groups, openmc.mgxs.EnergyGroups) self._energy_groups = energy_groups def add_xsdata(self, xsdata): @@ -1295,19 +974,19 @@ class MGXSLibrary(object): def _create_groups_subelement(self): if self._energy_groups is not None: - element = ET.SubElement(self._cross_sections_file, "groups") + element = ET.SubElement(self._cross_sections_file, 'groups') element.text = str(self._energy_groups.num_groups) def _create_group_structure_subelement(self): if self._energy_groups is not None: element = ET.SubElement(self._cross_sections_file, - "group_structure") + 'group_structure') element.text = ' '.join(map(str, self._energy_groups.group_edges)) def _create_inverse_velocities_subelement(self): if self._inverse_velocities is not None: element = ET.SubElement(self._cross_sections_file, - "inverse_velocities") + 'inverse_velocities') element.text = ' '.join(map(str, self._inverse_velocities)) def _create_xsdata_subelements(self): @@ -1341,4 +1020,4 @@ class MGXSLibrary(object): # Write the XML Tree to the xsdatas.xml file tree = ET.ElementTree(self._cross_sections_file) tree.write(filename, xml_declaration=True, - encoding='utf-8', method="xml") + encoding='utf-8', method='xml') From 33c52030a2a9d80afc2d6da0c3ccc4ed53d022c4 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 10 May 2016 05:32:04 -0400 Subject: [PATCH 166/259] Resolution of @paulromano comments --- src/mgxs_header.F90 | 194 ++++++++++++++-------------- src/scattdata_header.F90 | 269 ++++++++++++++++++++------------------- src/tally.F90 | 12 +- 3 files changed, 242 insertions(+), 233 deletions(-) diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 725aacffa..88c1b23e2 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -201,7 +201,7 @@ module mgxs_header ! the xsdata object node itself. !=============================================================================== - subroutine mgxs_init_file(this,node_xsdata,i_listing) + subroutine mgxs_init_file(this, node_xsdata, i_listing) class(Mgxs), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml integer, intent(in) :: i_listing ! Index in listings array @@ -236,7 +236,7 @@ module mgxs_header else if (temp_str == 'tabular') then this % scatt_type = ANGLE_TABULAR else - call fatal_error("Invalid Scatt Type Option!") + call fatal_error("Invalid scatt_type option!") end if else this % scatt_type = ANGLE_LEGENDRE @@ -259,8 +259,8 @@ module mgxs_header end subroutine mgxs_init_file - subroutine mgxsiso_init_file(this,node_xsdata,groups,get_kfiss,get_fiss, & - max_order,i_listing) + subroutine mgxsiso_init_file(this, node_xsdata, groups, get_kfiss, get_fiss, & + max_order, i_listing) class(MgxsIso), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml integer, intent(in) :: groups ! Number of Energy groups @@ -282,7 +282,7 @@ module mgxs_header integer :: legendre_mu_points, imu ! Call generic data gathering routine (will populate the metadata) - call mgxs_init_file(this,node_xsdata,i_listing) + call mgxs_init_file(this, node_xsdata, i_listing) ! Load the more specific data allocate(this % nu_fission(groups)) @@ -292,7 +292,7 @@ module mgxs_header ! Chi was provided, that means they are giving chi and nu-fission ! vectors ! Get chi - allocate(temp_arr(1 * groups)) + allocate(temp_arr(groups)) call get_node_array(node_xsdata, "chi", temp_arr) do gin = 1, groups do gout = 1, groups @@ -329,7 +329,7 @@ module mgxs_header end do ! Now pull out information needed for chi - this % chi = temp_2d + this % chi(:, :) = temp_2d ! Normalize chi so its CDF goes to 1 do gin = 1, groups this % chi(:, gin) = this % chi(:, gin) / sum(this % chi(:, gin)) @@ -375,14 +375,14 @@ module mgxs_header if (arr_len == groups * groups) then allocate(temp_arr(arr_len)) call get_node_array(node_xsdata, "multiplicity", temp_arr) - temp_mult = reshape(temp_arr, (/groups, groups/)) + temp_mult(:, :) = reshape(temp_arr, (/groups, groups/)) deallocate(temp_arr) else call fatal_error("Multiplicity length not same as number of groups& & squared!") end if else - temp_mult = ONE + temp_mult(:, :) = ONE end if ! Get scattering treatment information @@ -426,7 +426,7 @@ module mgxs_header if (check_for_node(node_xsdata, "order")) then call get_node_value(node_xsdata, "order", order) else - call fatal_error("Order Must Be Provided!") + call fatal_error("Order must be provided!") end if ! Before retrieving the data, store the dimensionality of the data in @@ -546,11 +546,11 @@ module mgxs_header if (check_for_node(node_xsdata, "total")) then call get_node_array(node_xsdata, "total", this % total) else - this % total = this % absorption + this % scatter % scattxs + this % total(:) = this % absorption(:) + this % scatter % scattxs(:) end if ! Deallocate temporaries for the next material - deallocate(input_scatt,scatt_coeffs,temp_mult) + deallocate(input_scatt, scatt_coeffs, temp_mult) ! Finally, check sigT to ensure it is not 0 since it is ! often divided by in the tally routines @@ -561,8 +561,8 @@ module mgxs_header end subroutine mgxsiso_init_file - subroutine mgxsang_init_file(this,node_xsdata,groups,get_kfiss,get_fiss, & - max_order,i_listing) + subroutine mgxsang_init_file(this, node_xsdata, groups, get_kfiss, get_fiss, & + max_order, i_listing) class(MgxsAngle), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml integer, intent(in) :: groups ! Number of Energy groups @@ -584,18 +584,18 @@ module mgxs_header integer :: legendre_mu_points, imu, ipol, iazi ! Call generic data gathering routine (will populate the metadata) - call mgxs_init_file(this,node_xsdata,i_listing) + call mgxs_init_file(this, node_xsdata, i_listing) if (check_for_node(node_xsdata, "num_polar")) then call get_node_value(node_xsdata, "num_polar", this % n_pol) else - call fatal_error("num_polar Must Be Provided!") + call fatal_error("num_polar must be provided!") end if if (check_for_node(node_xsdata, "num_azimuthal")) then call get_node_value(node_xsdata, "num_azimuthal", this % n_azi) else - call fatal_error("num_azimuthal Must Be Provided!") + call fatal_error("num_azimuthal must be provided!") end if ! Load angle data, if present (else equally spaced) @@ -663,8 +663,8 @@ module mgxs_header if (check_for_node(node_xsdata, "nu_fission")) then allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "nu_fission", temp_arr) - this % nu_fission = reshape(temp_arr,(/groups, this % n_azi, & - this % n_pol/)) + this % nu_fission(:, :, :) = reshape(temp_arr, (/groups, & + this % n_azi, this % n_pol/)) deallocate(temp_arr) else call fatal_error("If fissionable, must provide nu_fission!") @@ -677,8 +677,8 @@ module mgxs_header allocate(temp_arr(groups * groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "nu_fission", temp_arr) allocate(temp_4d(groups, groups, this % n_azi,this % n_pol)) - temp_4d = reshape(temp_arr, (/groups, groups, this % n_azi, & - this % n_pol/)) + temp_4d(:, :, :, :) = reshape(temp_arr, (/groups, groups, & + this % n_azi, this % n_pol/)) deallocate(temp_arr) else call fatal_error("If fissionable, must provide nu_fission!") @@ -716,8 +716,8 @@ module mgxs_header allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "fission", temp_arr) allocate(this % fission(groups, this % n_azi, this % n_pol)) - this % fission = reshape(temp_arr, (/groups, this % n_azi, & - this % n_pol/)) + this % fission(:, :, :) = reshape(temp_arr, (/groups, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else call fatal_error("Fission data missing, required due to fission& @@ -729,8 +729,8 @@ module mgxs_header allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "kappa_fission", temp_arr) allocate(this % k_fission(groups, this % n_azi, this % n_pol)) - this % k_fission = reshape(temp_arr, (/groups, this % n_azi, & - this % n_pol/)) + this % k_fission(:, :, :) = reshape(temp_arr, (/groups, & + this % n_azi, this % n_pol/)) deallocate(temp_arr) else call fatal_error("kappa_fission data missing, required due to & @@ -738,16 +738,16 @@ module mgxs_header end if end if else - this % nu_fission = ZERO - this % chi = ZERO + this % nu_fission(:, :, :) = ZERO + this % chi(:, :, :, :) = ZERO end if if (check_for_node(node_xsdata, "absorption")) then allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "absorption", temp_arr) allocate(this % absorption(groups, this % n_azi, this % n_pol)) - this % absorption = reshape(temp_arr, (/groups, this % n_azi, & - this % n_pol/)) + this % absorption(:, :, :) = reshape(temp_arr, (/groups, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else call fatal_error("Must provide absorption!") @@ -760,15 +760,15 @@ module mgxs_header if (arr_len == groups * groups * this % n_azi * this % n_pol) then allocate(temp_arr(arr_len)) call get_node_array(node_xsdata, "multiplicity", temp_arr) - temp_mult = reshape(temp_arr, (/groups, groups, this % n_azi, & - this % n_pol/)) + temp_mult(:, :, :, :) = reshape(temp_arr, (/groups, groups, & + this % n_azi, this % n_pol/)) deallocate(temp_arr) else call fatal_error("Multiplicity length not same as number of groups& & squared!") end if else - temp_mult = ONE + temp_mult(:, :, :, :) = ONE end if ! Get scattering treatment information @@ -812,7 +812,7 @@ module mgxs_header if (check_for_node(node_xsdata, "order")) then call get_node_value(node_xsdata, "order", order) else - call fatal_error("Order Must Be Provided!") + call fatal_error("Order must be provided!") end if ! Before retrieving the data, store the dimensionality of the data in @@ -836,8 +836,8 @@ module mgxs_header allocate(temp_arr(groups * groups * order_dim * this % n_azi * & this % n_pol)) call get_node_array(node_xsdata, "scatter", temp_arr) - input_scatt = reshape(temp_arr, (/groups, groups, order_dim, & - this % n_azi, this % n_pol/)) + input_scatt(:, :, :, :, :) = reshape(temp_arr, (/groups, groups, & + order_dim, this % n_azi, this % n_pol/)) deallocate(temp_arr) ! Compare the number of orders given with the maximum order of the @@ -951,8 +951,8 @@ module mgxs_header if (check_for_node(node_xsdata, "total")) then allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "total", temp_arr) - this % total = reshape(temp_arr, (/groups, this % n_azi, & - this % n_pol/)) + this % total(:, :, :) = reshape(temp_arr, (/groups, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else do ipol = 1, this % n_pol @@ -1251,7 +1251,7 @@ module mgxs_header if (present(gout)) then xs = this % chi(gout, gin, iazi, ipol) else - ! Not sure youd want a 1 or a 0, but here you go! + ! Not sure you would want a 1 or a 0, but here you go! xs = sum(this % chi(:, gin, iazi, ipol)) end if case('scatter') @@ -1316,7 +1316,7 @@ module mgxs_header ! objects !=============================================================================== - subroutine mgxs_combine(this,mat,scatt_type,i_listing) + subroutine mgxs_combine(this, mat, scatt_type, i_listing) class(Mgxs), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material integer, intent(in) :: scatt_type ! How is data presented @@ -1340,7 +1340,7 @@ module mgxs_header end subroutine mgxs_combine - subroutine mgxsiso_combine(this,mat,nuclides,groups,max_order,scatt_type, & + subroutine mgxsiso_combine(this, mat, nuclides, groups, max_order, scatt_type, & i_listing) class(MgxsIso), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material @@ -1373,9 +1373,9 @@ module mgxs_header do i = 2, mat % n_nuclides select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsIso) - if (order /= size(nuc % scatter % dist(1) % data,dim=1)) & - call fatal_error("All Histogram Scattering Entries Must Be& - & Same Length!") + if (order /= size(nuc % scatter % dist(1) % data, dim=1)) & + call fatal_error("All histogram scattering entries must be& + & same length!") end select end do ! Ok, got our order, store the dimensionality @@ -1390,8 +1390,8 @@ module mgxs_header select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsIso) if (order /= size(nuc % scatter % dist(1) % data, dim=1)) & - call fatal_error("All Tabular Scattering Entries Must Be& - & Same Length!") + call fatal_error("All tabular scattering entries must be& + & same length!") end select end do ! Ok, got our order, store the dimensionality @@ -1406,7 +1406,7 @@ module mgxs_header do i = 1, mat % n_nuclides select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsIso) - if (size(nuc % scatter % dist(1) % data,dim=1) > mat_max_order) & + if (size(nuc % scatter % dist(1) % data, dim=1) > mat_max_order) & mat_max_order = size(nuc % scatter % dist(1) % data, dim=1) end select end do @@ -1423,25 +1423,25 @@ module mgxs_header ! Allocate and initialize data needed for macro_xs(i_mat) object allocate(this % total(groups)) - this % total = ZERO + this % total(:) = ZERO allocate(this % absorption(groups)) - this % absorption = ZERO + this % absorption(:) = ZERO allocate(this % fission(groups)) - this % fission = ZERO + this % fission(:) = ZERO allocate(this % k_fission(groups)) - this % k_fission = ZERO + this % k_fission(:) = ZERO allocate(this % nu_fission(groups)) - this % nu_fission = ZERO + this % nu_fission(:) = ZERO allocate(this % chi(groups,groups)) - this % chi = ZERO + this % chi(:, :) = ZERO allocate(temp_mult(groups,groups)) - temp_mult = ZERO + temp_mult(:, :) = ZERO allocate(mult_num(groups,groups)) - mult_num = ZERO + mult_num(:, :) = ZERO allocate(mult_denom(groups,groups)) - mult_denom = ZERO + mult_denom(:, :) = ZERO allocate(scatt_coeffs(order_dim,groups,groups)) - scatt_coeffs = ZERO + scatt_coeffs(:, :, :) = ZERO ! Add contribution from each nuclide in material do i = 1, mat % n_nuclides @@ -1452,19 +1452,19 @@ module mgxs_header select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsIso) ! Add contributions to total, absorption, and fission data (if necessary) - this % total = this % total + atom_density * nuc % total - this % absorption = this % absorption + & - atom_density * nuc % absorption + this % total(:) = this % total(:) + atom_density * nuc % total(:) + this % absorption(:) = this % absorption(:) + & + atom_density * nuc % absorption(:) if (nuc % fissionable) then - this % chi = this % chi + atom_density * nuc % chi - this % nu_fission = this % nu_fission + atom_density * & - nuc % nu_fission + this % chi(:, :) = this % chi(:, :) + atom_density * nuc % chi(:, :) + this % nu_fission(:) = this % nu_fission(:)+ atom_density * & + nuc % nu_fission(:) if (allocated(nuc % fission)) then - this % fission = this % fission + atom_density * nuc % fission + this % fission(:) = this % fission(:) + atom_density * nuc % fission(:) end if if (allocated(nuc % k_fission)) then - this % k_fission = this % k_fission + atom_density * & - nuc % k_fission + this % k_fission(:) = this % k_fission(:) + atom_density * & + nuc % k_fission(:) end if end if @@ -1498,7 +1498,7 @@ module mgxs_header nuc % scatter % get_matrix(min(nuc_order_dim, order_dim)) type is (MgxsAngle) - call fatal_error("Invalid Passing of MgxsAngle to MgxsIso Object") + call fatal_error("Invalid passing of MgxsAngle to MgxsIso object") end select end do @@ -1531,7 +1531,7 @@ module mgxs_header end subroutine mgxsiso_combine - subroutine mgxsang_combine(this,mat,nuclides,groups,max_order,scatt_type,& + subroutine mgxsang_combine(this, mat, nuclides, groups, max_order, scatt_type, & i_listing) class(MgxsAngle), intent(inout) :: this ! The Mgxs to initialize type(Material), pointer, intent(in) :: mat ! base material @@ -1551,7 +1551,7 @@ module mgxs_header real(8), allocatable :: mult_denom(:, :, :, :), scatt_coeffs(:, :, :, :, :) ! Set the meta-data - call mgxs_combine(this,mat,scatt_type,i_listing) + call mgxs_combine(this, mat, scatt_type, i_listing) ! Get the number of each polar and azi angles and make sure all the ! NuclideAngle types have the same number of these angles @@ -1564,12 +1564,12 @@ module mgxs_header n_pol = nuc % n_pol n_azi = nuc % n_azi allocate(this % polar(n_pol)) - this % polar = nuc % polar + this % polar(:) = nuc % polar(:) allocate(this % azimuthal(n_azi)) - this % azimuthal = nuc % azimuthal + this % azimuthal(:) = nuc % azimuthal(:) else if ((n_pol /= nuc % n_pol) .or. (n_azi /= nuc % n_azi)) then - call fatal_error("All Angular Data Must Be Same Length!") + call fatal_error("All angular data must be same length!") end if end if end select @@ -1589,8 +1589,8 @@ module mgxs_header select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsAngle) if (order /= size(nuc % scatter(1,1) % obj % dist(1) % data, dim=1)) & - call fatal_error("All Histogram Scattering Entries Must Be& - & Same Length!") + call fatal_error("All histogram scattering entries must be& + & same length!") end select end do ! Ok, got our order, store the dimensionality @@ -1609,9 +1609,9 @@ module mgxs_header do i = 2, mat % n_nuclides select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsAngle) - if (order /= size(nuc % scatter(1, 1) % obj % dist(1) % data,dim=1)) & - call fatal_error("All Tabular Scattering Entries Must Be& - & Same Length!") + if (order /= size(nuc % scatter(1, 1) % obj % dist(1) % data, dim=1)) & + call fatal_error("All tabular scattering entries must be& + & same length!") end select end do ! Ok, got our order, store the dimensionality @@ -1653,25 +1653,25 @@ module mgxs_header ! Allocate and initialize data within macro_xs(i_mat) object allocate(this % total(groups, n_azi, n_pol)) - this % total = ZERO + this % total(:, :, :) = ZERO allocate(this % absorption(groups, n_azi, n_pol)) - this % absorption = ZERO + this % absorption(:, :, :) = ZERO allocate(this % fission(groups, n_azi, n_pol)) - this % fission = ZERO + this % fission(:, :, :) = ZERO allocate(this % k_fission(groups, n_azi, n_pol)) - this % k_fission = ZERO + this % k_fission(:, :, :) = ZERO allocate(this % nu_fission(groups, n_azi, n_pol)) - this % nu_fission = ZERO + this % nu_fission(:, :, :) = ZERO allocate(this % chi(groups, groups, n_azi, n_pol)) - this % chi = ZERO + this % chi(:, :, :, :) = ZERO allocate(temp_mult(groups, groups, n_azi, n_pol)) - temp_mult = ZERO + temp_mult(:, :, :, :) = ZERO allocate(mult_num(groups, groups, n_azi, n_pol)) - mult_num = ZERO + mult_num(:, :, :, :) = ZERO allocate(mult_denom(groups, groups, n_azi, n_pol)) - mult_denom = ZERO + mult_denom(:, :, :, :) = ZERO allocate(scatt_coeffs(order_dim, groups, groups, n_azi, n_pol)) - scatt_coeffs = ZERO + scatt_coeffs(:, :, :, :, :) = ZERO ! Add contribution from each nuclide in material do i = 1, mat % n_nuclides @@ -1681,22 +1681,24 @@ module mgxs_header ! Perform our operations which depend upon the type select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (MgxsIso) - call fatal_error("Invalid Passing of MgxsIso to MgxsAngle Object") + call fatal_error("Invalid passing of MgxsIso to MgxsAngle object") type is (MgxsAngle) ! Add contributions to total, absorption, and fission data (if necessary) - this % total = this % total + atom_density * nuc % total - this % absorption = this % absorption + & - atom_density * nuc % absorption + this % total(:, :, :) = this % total(:, :, :) + & + atom_density * nuc % total(:, :, :) + this % absorption(:, :, :) = this % absorption(:, :, :) + & + atom_density * nuc % absorption(:, :, :) if (nuc % fissionable) then this % chi = this % chi + atom_density * nuc % chi - this % nu_fission = this % nu_fission + atom_density * & - nuc % nu_fission + this % nu_fission(:, :, :) = this % nu_fission(:, :, :) + & + atom_density * nuc % nu_fission(:, :, :) if (allocated(nuc % fission)) then - this % fission = this % fission + atom_density * nuc % fission + this % fission(:, :, :) = this % fission(:, :, :) + & + atom_density * nuc % fission(:, :, :) end if if (allocated(nuc % k_fission)) then - this % k_fission = this % k_fission + atom_density * & - nuc % k_fission + this % k_fission(:, :, :) = this % k_fission(:, :, :) + & + atom_density * nuc % k_fission(:, :, :) end if end if @@ -1730,7 +1732,7 @@ module mgxs_header end do ! Get the complete scattering matrix - nuc_order_dim = size(nuc % scatter(1,1) % obj % dist(1) % data,dim=1) + nuc_order_dim = size(nuc % scatter(1, 1) % obj % dist(1) % data, dim=1) do ipol = 1, n_pol do iazi = 1, n_azi scatt_coeffs(1:min(nuc_order_dim, order_dim), :, :, iazi, ipol) = & diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index f36fe6043..12c11e2e4 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -14,7 +14,7 @@ module scattdata_header !=============================================================================== type :: Jagged2D - real(8), allocatable :: data(:,:) + real(8), allocatable :: data(:, :) end type Jagged2D type :: Jagged1D @@ -27,12 +27,15 @@ module scattdata_header !=============================================================================== type, abstract :: ScattData - ! normalized p0 matrix on its own for sampling energy + ! The data attribute of the energy, mult, and dist arrays + ! are not necessarily 1-indexed as they instead will be allocated + ! from a minimum outgoing group to an outgoing minimum group. + ! Normalized p0 matrix on its own for sampling energy type(Jagged1D), allocatable :: energy(:) ! (Gin % data(Gout)) - ! nu-scatter multiplication (i.e. nu-scatt/scatt) + ! Nu-scatter multiplication (i.e. nu-scatt/scatt) type(Jagged1D), allocatable :: mult(:) ! (Gin % data(Gout)) ! Angular distribution - type(Jagged2D), allocatable :: dist(:) ! (Gin % data(Order/Nmu x Gout) + type(Jagged2D), allocatable :: dist(:) ! (Gin % data(Order/Nmu, Gout) integer, allocatable :: gmin(:) ! Minimum outgoing group integer, allocatable :: gmax(:) ! Maximum outgoing group real(8), allocatable :: scattxs(:) ! Isotropic Sigma_{s,g_{in}} @@ -47,9 +50,9 @@ module scattdata_header abstract interface subroutine scattdata_init_(this, mult, coeffs) import ScattData - class(ScattData), intent(inout) :: this ! Scattering Object to work with - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + class(ScattData), intent(inout) :: this ! Object to work with + real(8), intent(in) :: mult(:, :) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:, :, :) ! Coefficients to use end subroutine scattdata_init_ pure function scattdata_calc_f_(this, gin, gout, mu) result(f) @@ -120,10 +123,10 @@ contains !=============================================================================== subroutine scattdata_init(this, order, energy, mult) - class(ScattData), intent(inout) :: this ! Object to work on - integer, intent(in) :: order ! Data Order - real(8), intent(inout) :: energy(:,:) ! Energy Transfer Matrix - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + class(ScattData), intent(inout) :: this ! Object to work on + integer, intent(in) :: order ! Data Order + real(8), intent(inout) :: energy(:, :) ! Energy Transfer Matrix + real(8), intent(in) :: mult(:, :) ! Scatter Prod'n Matrix integer :: groups, gmin, gmax, gin real(8) :: norm @@ -139,15 +142,15 @@ contains ! Also set energy values when doing it do gin = 1, groups ! Make sure energy is normalized (i.e., CDF is 1) - norm = sum(energy(:,gin)) - if (norm /= ZERO) energy(:,gin) = energy(:,gin) / norm + norm = sum(energy(:, gin)) + if (norm /= ZERO) energy(:, gin) = energy(:, gin) / norm ! Find gmin by checking the P0 moment do gmin = 1, groups - if (energy(gmin,gin) > ZERO) exit + if (energy(gmin, gin) > ZERO) exit end do ! Find gmax by checking the P0 moment do gmax = groups, 1, -1 - if (energy(gmax,gin) > ZERO) exit + if (energy(gmax, gin) > ZERO) exit end do ! Treat the case of all zeros if (gmin > gmax) then @@ -156,10 +159,10 @@ contains ! By not changing energy(gin) here we are leaving it as zero end if allocate(this % energy(gin) % data(gmin:gmax)) - this % energy(gin) % data(gmin:gmax) = energy(gmin:gmax,gin) + this % energy(gin) % data(gmin:gmax) = energy(gmin:gmax, gin) allocate(this % mult(gin) % data(gmin:gmax)) - this % mult(gin) % data(gmin:gmax) = mult(gmin:gmax,gin) - allocate(this % dist(gin) % data(order,gmin:gmax)) + this % mult(gin) % data(gmin:gmax) = mult(gmin:gmax, gin) + allocate(this % dist(gin) % data(order, gmin:gmax)) this % dist(gin) % data = ZERO this % gmin(gin) = gmin this % gmax(gin) = gmax @@ -167,38 +170,38 @@ contains end subroutine scattdata_init subroutine scattdatalegendre_init(this, mult, coeffs) - class(ScattDataLegendre), intent(inout) :: this ! Object to work on - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + class(ScattDataLegendre), intent(inout) :: this ! Object to work on + real(8), intent(in) :: mult(:, :) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:, :, :) ! Coefficients to use real(8) :: dmu, mu, f, norm integer :: imu, Nmu, gout, gin, groups, order - real(8), allocatable :: energy(:,:) - real(8), allocatable :: matrix(:,:,:) + real(8), allocatable :: energy(:, :) + real(8), allocatable :: matrix(:, :, :) - groups = size(coeffs,dim=3) - order = size(coeffs,dim=1) + groups = size(coeffs, dim=3) + order = size(coeffs, dim=1) ! make a copy of coeffs that we can use to extract data and normalize - allocate(matrix(order,groups,groups)) - matrix = coeffs + allocate(matrix(order, groups, groups)) + matrix (:, :, :)= coeffs ! Get scattxs value allocate(this % scattxs(groups)) ! Get this by summing the un-normalized P0 coefficient in matrix ! over all outgoing groups - this % scattxs = sum(matrix(1,:,:),dim=1) + this % scattxs(:) = sum(matrix(1, :, :), dim=1) - allocate(energy(groups,groups)) - energy = ZERO + allocate(energy(groups, groups)) + energy(:, :) = ZERO ! Build energy transfer probability matrix from data in matrix ! while also normalizing matrix itself (making CDF of f(mu=1)=1) do gin = 1, groups do gout = 1, groups - norm = matrix(1,gout,gin) - energy(gout,gin) = norm + norm = matrix(1, gout, gin) + energy(gout, gin) = norm if (norm /= ZERO) then - matrix(:,gout,gin) = matrix(:,gout,gin) / norm + matrix(:, gout, gin) = matrix(:, gout, gin) / norm end if end do end do @@ -209,16 +212,16 @@ contains ! Set dist values from matrix and initialize max_val do gin = 1, groups do gout = this % gmin(gin), this % gmax(gin) - this % dist(gin) % data(:,gout) = matrix(:,gout,gin) + this % dist(gin) % data(:, gout) = matrix(:, gout, gin) end do allocate(this % max_val(gin) % data(this % gmin(gin):this % gmax(gin))) - this % max_val(gin) % data = ZERO + this % max_val(gin) % data(:) = ZERO end do ! Step through the polynomial with fixed number of points to identify ! the maximal value. Nmu = 1001 - dmu = TWO / real(Nmu - 1,8) + dmu = TWO / real(Nmu - 1, 8) do gin = 1, groups do gout = this % gmin(gin), this % gmax(gin) do imu = 1, Nmu @@ -228,7 +231,7 @@ contains else if (imu == Nmu) then mu = ONE else - mu = -ONE + real(imu - 1,8) * dmu + mu = -ONE + real(imu - 1, 8) * dmu end if ! Calculate probability f = this % calc_f(gin,gout,mu) @@ -245,37 +248,37 @@ contains subroutine scattdatahistogram_init(this, mult, coeffs) class(ScattDataHistogram), intent(inout) :: this ! Object to work on - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + real(8), intent(in) :: mult(:, :) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:, :, :) ! Coefficients to use integer :: imu, gin, gout, groups, order real(8) :: norm - real(8), allocatable :: energy(:,:) - real(8), allocatable :: matrix(:,:,:) + real(8), allocatable :: energy(:, :) + real(8), allocatable :: matrix(:, :, :) - groups = size(coeffs,dim=3) - order = size(coeffs,dim=1) + groups = size(coeffs, dim=3) + order = size(coeffs, dim=1) ! make a copy of coeffs that we can use to extract data and normalize - allocate(matrix(order,groups,groups)) - matrix = coeffs + allocate(matrix(order, groups, groups)) + matrix(:, :, :) = coeffs ! Get scattxs value allocate(this % scattxs(groups)) ! Get this by summing the un-normalized P0 coefficient in matrix ! over all outgoing groups - this % scattxs = sum(sum(matrix(:,:,:),dim=1),dim=1) + this % scattxs(:) = sum(sum(matrix(:, :, :), dim=1), dim=1) - allocate(energy(groups,groups)) - energy = ZERO + allocate(energy(groups, groups)) + energy(:, :) = ZERO ! Build energy transfer probability matrix from data in matrix ! while also normalizing matrix itself (making CDF of f(mu=1)=1) do gin = 1, groups do gout = 1, groups - norm = sum(matrix(:,gout,gin)) - energy(gout,gin) = norm + norm = sum(matrix(:, gout, gin)) + energy(gout, gin) = norm if (norm /= ZERO) then - matrix(:,gout,gin) = matrix(:,gout,gin) / norm + matrix(:, gout, gin) = matrix(:, gout, gin) / norm end if end do end do @@ -283,10 +286,10 @@ contains call scattdata_init(this, order, energy, mult) allocate(this % mu(order)) - this % dmu = TWO / real(order,8) + this % dmu = TWO / real(order, 8) this % mu(1) = -ONE do imu = 2, order - this % mu(imu) = -ONE + real(imu - 1,8) * this % dmu + this % mu(imu) = -ONE + real(imu - 1, 8) * this % dmu end do ! Integrate this histogram so we can avoid rejection sampling while @@ -297,21 +300,23 @@ contains this % gmin(gin):this % gmax(gin))) do gout = this % gmin(gin), this % gmax(gin) ! Store the histogram - this % fmu(gin) % data(:,gout) = matrix(:,gout,gin) + this % fmu(gin) % data(:, gout) = matrix(:, gout, gin) ! Integrate the histogram - this % dist(gin) % data(1,gout) = this % dmu * matrix(1,gout,gin) + this % dist(gin) % data(1, gout) = & + this % dmu * matrix(1, gout, gin) do imu = 2, order - this % dist(gin) % data(imu,gout) = this % dmu * matrix(imu,gout,gin) + & - this % dist(gin) % data(imu - 1,gout) + this % dist(gin) % data(imu, gout) = & + this % dmu * matrix(imu, gout, gin) + & + this % dist(gin) % data(imu - 1, gout) end do ! Now make sure integral norms to zero - norm = this % dist(gin) % data(order,gout) + norm = this % dist(gin) % data(order, gout) if (norm > ZERO) then - this % fmu(gin) % data(:,gout) = & - this % fmu(gin) % data(:,gout) / norm - this % dist(gin) % data(:,gout) = & - this % dist(gin) % data(:,gout) / norm + this % fmu(gin) % data(:, gout) = & + this % fmu(gin) % data(:, gout) / norm + this % dist(gin) % data(:, gout) = & + this % dist(gin) % data(:, gout) / norm end if end do end do @@ -320,27 +325,27 @@ contains subroutine scattdatatabular_init(this, mult, coeffs) class(ScattDataTabular), intent(inout) :: this ! Object to work on - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + real(8), intent(in) :: mult(:, :) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:, :, :) ! Coefficients to use integer :: imu, gin, gout, groups, order real(8) :: norm - real(8), allocatable :: energy(:,:) - real(8), allocatable :: matrix(:,:,:) + real(8), allocatable :: energy(:, :) + real(8), allocatable :: matrix(:, :, :) - groups = size(coeffs,dim=3) - order = size(coeffs,dim=1) + groups = size(coeffs, dim=3) + order = size(coeffs, dim=1) ! make a copy of coeffs that we can use to extract data and normalize - allocate(matrix(order,groups,groups)) - matrix = coeffs + allocate(matrix(order, groups, groups)) + matrix(:, :, :) = coeffs ! Build the angular distribution mu values allocate(this % mu(order)) - this % dmu = TWO / real(order - 1,8) + this % dmu = TWO / real(order - 1, 8) this % mu(1) = -ONE do imu = 2, order - 1 - this % mu(imu) = -ONE + real(imu - 1,8) * this % dmu + this % mu(imu) = -ONE + real(imu - 1, 8) * this % dmu end do this % mu(order) = ONE @@ -353,24 +358,24 @@ contains norm = ZERO do gout = 1, groups do imu = 2, order - norm = norm + HALF * this % dmu * (matrix(imu - 1,gout,gin) + & - matrix(imu,gout,gin)) + norm = norm + HALF * this % dmu * (matrix(imu - 1, gout, gin) + & + matrix(imu, gout, gin)) end do end do this % scattxs(gin) = norm end do - allocate(energy(groups,groups)) - energy = ZERO + allocate(energy(groups, groups)) + energy(:, :) = ZERO ! Build energy transfer probability matrix from data in matrix do gin = 1, groups do gout = 1, groups norm = ZERO do imu = 2, order norm = norm + HALF * this % dmu * & - (matrix(imu - 1,gout,gin) + matrix(imu,gout,gin)) + (matrix(imu - 1, gout, gin) + matrix(imu, gout, gin)) end do - energy(gout,gin) = norm + energy(gout, gin) = norm end do end do call scattdata_init(this, order, energy, mult) @@ -383,12 +388,12 @@ contains do gout = this % gmin(gin), this % gmax(gin) ! Coeffs contain f(mu), put in f(mu) as that is where the ! PDF lives - this % fmu(gin) % data(:,gout) = matrix(:,gout,gin) + this % fmu(gin) % data(:, gout) = matrix(:, gout, gin) ! Force positivity do imu = 1, order - if (this % fmu(gin) % data(imu,gout) < ZERO) then - this % fmu(gin) % data(imu,gout) = ZERO + if (this % fmu(gin) % data(imu, gout) < ZERO) then + this % fmu(gin) % data(imu, gout) = ZERO end if end do @@ -397,27 +402,27 @@ contains norm = ZERO do imu = 2, order norm = norm + HALF * this % dmu * & - (this % fmu(gin) % data(imu - 1,gout) + & - this % fmu(gin) % data(imu,gout)) + (this % fmu(gin) % data(imu - 1, gout) + & + this % fmu(gin) % data(imu, gout)) end do if (norm > ZERO) then - this % fmu(gin) % data(:,gout) = & - this % fmu(gin) % data(:,gout) / norm + this % fmu(gin) % data(:, gout) = & + this % fmu(gin) % data(:, gout) / norm end if ! Now create CDF from fmu with trapezoidal rule - this % dist(gin) % data(1,gout) = ZERO + this % dist(gin) % data(1, gout) = ZERO do imu = 2, order - this % dist(gin) % data(imu,gout) = & - this % dist(gin) % data(imu - 1,gout) + & - HALF * this % dmu * (this % fmu(gin) % data(imu - 1,gout) + & - this % fmu(gin) % data(imu,gout)) + this % dist(gin) % data(imu, gout) = & + this % dist(gin) % data(imu - 1, gout) + & + HALF * this % dmu * (this % fmu(gin) % data(imu - 1, gout) + & + this % fmu(gin) % data(imu, gout)) end do ! Ensure we normalize to 1 still - norm = this % dist(gin) % data(order,gout) + norm = this % dist(gin) % data(order, gout) if (norm > ZERO) then - this % dist(gin) % data(:,gout) = & - this % dist(gin) % data(:,gout) / norm + this % dist(gin) % data(:, gout) = & + this % dist(gin) % data(:, gout) / norm end if end do end do @@ -438,7 +443,7 @@ contains if (gout < this % gmin(gin) .or. gout > this % gmax(gin)) then f = ZERO else - f = evaluate_legendre(this % dist(gin) % data(:,gout),mu) + f = evaluate_legendre(this % dist(gin) % data(:, gout), mu) end if end function scattdatalegendre_calc_f @@ -457,12 +462,12 @@ contains else ! Find mu bin if (mu == ONE) then - imu = size(this % fmu(gin) % data,dim=1) + imu = size(this % fmu(gin) % data, dim=1) else - imu = floor((mu + ONE)/ this % dmu + ONE) + imu = floor((mu + ONE) / this % dmu + ONE) end if - f = this % fmu(gin) % data(imu,gout) + f = this % fmu(gin) % data(imu, gout) end if end function scattdatahistogram_calc_f @@ -482,15 +487,15 @@ contains else ! Find mu bin if (mu == ONE) then - imu = size(this % fmu(gin) % data,dim=1) - 1 + imu = size(this % fmu(gin) % data, dim=1) - 1 else - imu = floor((mu + ONE)/ this % dmu + ONE) + imu = floor((mu + ONE) / this % dmu + ONE) end if ! Now interpolate to find f(mu) r = (mu - this % mu(imu)) / (this % mu(imu + 1) - this % mu(imu)) - f = (ONE - r) * this % fmu(gin) % data(imu,gout) + & - r * this % fmu(gin) % data(imu + 1,gout) + f = (ONE - r) * this % fmu(gin) % data(imu, gout) + & + r * this % fmu(gin) % data(imu + 1, gout) end if end function scattdatatabular_calc_f @@ -529,7 +534,7 @@ contains samples = 0 do mu = TWO * prn() - ONE - f = this % calc_f(gin,gout,mu) + f = this % calc_f(gin, gout, mu) if (f > ZERO) then u = prn() * M if (u <= f) then @@ -567,11 +572,11 @@ contains end do xi = prn() - if (xi < this % dist(gin) % data(1,gout)) then + if (xi < this % dist(gin) % data(1, gout)) then imu = 1 else - imu = binary_search(this % dist(gin) % data(:,gout), & - size(this % dist(gin) % data(:,gout)), xi) + imu = binary_search(this % dist(gin) % data(:, gout), & + size(this % dist(gin) % data(:, gout)), xi) end if ! Randomly select a mu in this bin. @@ -604,12 +609,12 @@ contains end do ! determine outgoing cosine bin - NP = size(this % dist(gin) % data(:,gout)) + NP = size(this % dist(gin) % data(:, gout)) xi = prn() - c_k = this % dist(gin) % data(1,gout) + c_k = this % dist(gin) % data(1, gout) do k = 1, NP - 1 - c_k1 = this % dist(gin) % data(k + 1,gout) + c_k1 = this % dist(gin) % data(k + 1, gout) if (xi < c_k1) exit c_k = c_k1 end do @@ -617,18 +622,19 @@ contains ! check to make sure k is <= NP - 1 k = min(k, NP - 1) - p0 = this % fmu(gin) % data(k,gout) + p0 = this % fmu(gin) % data(k, gout) mu0 = this % mu(k) ! Linear-linear interpolation to find mu value w/in bin. - p1 = this % fmu(gin) % data(k + 1,gout) + p1 = this % fmu(gin) % data(k + 1, gout) mu1 = this % mu(k + 1) - frac = (p1 - p0)/(mu1 - mu0) + frac = (p1 - p0) / (mu1 - mu0) if (frac == ZERO) then - mu = mu0 + (xi - c_k)/p0 + mu = mu0 + (xi - c_k) / p0 else - mu = mu0 + (sqrt(max(ZERO, p0 * p0 + TWO * frac * (xi - c_k))) - p0) / frac + mu = mu0 + & + (sqrt(max(ZERO, p0 * p0 + TWO * frac * (xi - c_k))) - p0) / frac end if if (mu <= -ONE) then @@ -649,23 +655,24 @@ contains pure function scattdata_get_matrix(this, req_order) result(matrix) class(ScattData), intent(in) :: this ! Scattering Object to work with integer, intent(in) :: req_order ! Requested order of matrix - real(8), allocatable :: matrix(:,:,:) ! Resultant matrix just built + real(8), allocatable :: matrix(:, :, :) ! Resultant matrix just built integer :: order, groups, gin, gout groups = size(this % energy) - order = min(req_order,size(this % dist(1) % data(:,1))) + ! Set gin and gout for getting the order + order = min(req_order, size(this % dist(1) % data, dim=1)) - allocate(matrix(order,groups,groups)) + allocate(matrix(order, groups, groups)) ! Initialize to 0; this way the zero entries in the dense matrix dont ! need to be explicitly set, requiring a significant increase in the ! lines of code. - matrix = ZERO + matrix(:, :, :) = ZERO do gin = 1, groups do gout = this % gmin(gin), this % gmax(gin) - matrix(:,gout,gin) = this % scattxs(gin) * & + matrix(:, gout, gin) = this % scattxs(gin) * & this % energy(gin) % data(gout) * & - this % dist(gin) % data(1:order,gout) + this % dist(gin) % data(1:order, gout) end do end do end function scattdata_get_matrix @@ -673,23 +680,23 @@ contains pure function scattdatahistogram_get_matrix(this, req_order) result(matrix) class(ScattDataHistogram), intent(in) :: this ! Scattering Object to work with integer, intent(in) :: req_order ! Requested order of matrix - real(8), allocatable :: matrix(:,:,:) ! Resultant matrix just built + real(8), allocatable :: matrix(:, :, :) ! Resultant matrix just built integer :: order, groups, gin, gout groups = size(this % energy) - order = min(req_order,size(this % dist(1) % data(:,1))) + order = min(req_order, size(this % dist(1) % data, dim=1)) - allocate(matrix(order,groups,groups)) + allocate(matrix(order, groups, groups)) ! Initialize to 0; this way the zero entries in the dense matrix dont ! need to be explicitly set, requiring a significant increase in the ! lines of code. - matrix = ZERO + matrix(:, :, :) = ZERO do gin = 1, groups do gout = this % gmin(gin), this % gmax(gin) - matrix(:,gout,gin) = this % scattxs(gin) * & + matrix(:, gout, gin) = this % scattxs(gin) * & this % energy(gin) % data(gout) * & - this % fmu(gin) % data(1:order,gout) + this % fmu(gin) % data(1:order, gout) end do end do end function scattdatahistogram_get_matrix @@ -697,23 +704,23 @@ contains pure function scattdatatabular_get_matrix(this, req_order) result(matrix) class(ScattDataTabular), intent(in) :: this ! Scattering Object to work with integer, intent(in) :: req_order ! Requested order of matrix - real(8), allocatable :: matrix(:,:,:) ! Resultant matrix just built + real(8), allocatable :: matrix(:, :, :) ! Resultant matrix just built integer :: order, groups, gin, gout groups = size(this % energy) - order = min(req_order,size(this % dist(1) % data(:,1))) + order = min(req_order, size(this % dist(1) % data, dim=1)) - allocate(matrix(order,groups,groups)) + allocate(matrix(order, groups, groups)) ! Initialize to 0; this way the zero entries in the dense matrix dont ! need to be explicitly set, requiring a significant increase in the ! lines of code. - matrix = ZERO + matrix(:, :, :) = ZERO do gin = 1, groups do gout = this % gmin(gin), this % gmax(gin) - matrix(:,gout,gin) = this % scattxs(gin) * & + matrix(:, gout, gin) = this % scattxs(gin) * & this % energy(gin) % data(gout) * & - this % fmu(gin) % data(1:order,gout) + this % fmu(gin) % data(1:order, gout) end do end do end function scattdatatabular_get_matrix diff --git a/src/tally.F90 b/src/tally.F90 index 86e108c3d..c4eaf30c8 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -961,9 +961,9 @@ contains if (i_nuclide > 0) then score = score * atom_density * & nucxs % get_xs('scatter*f_mu/mult', p % last_g, p % g, & - UVW=p_uvw,MU=p % mu) / & + UVW=p_uvw, MU=p % mu) / & matxs % get_xs('scatter*f_mu/mult', p % last_g, p % g, & - UVW=p_uvw,MU=p % mu) + UVW=p_uvw, MU=p % mu) end if else @@ -1080,11 +1080,11 @@ contains end if if (i_nuclide > 0) then score = score * atom_density * & - nucxs % get_xs('fission', p_g, UVW=p_uvw) / & + nucxs % get_xs('fission', p_g, UVW=p_uvw) / & matxs % get_xs('absorption', p_g, UVW=p_uvw) else score = score * & - matxs % get_xs('fission', p_g, UVW=p_uvw) / & + matxs % get_xs('fission', p_g, UVW=p_uvw) / & matxs % get_xs('absorption', p_g, UVW=p_uvw) end if else @@ -1170,11 +1170,11 @@ contains if (i_nuclide > 0) then score = score * atom_density * & nucxs % get_xs('kappa_fission', p_g, UVW=p_uvw) / & - matxs % get_xs('absorption', p_g, UVW=p_uvw) + matxs % get_xs('absorption', p_g, UVW=p_uvw) else score = score * & matxs % get_xs('kappa_fission', p_g, UVW=p_uvw) / & - matxs % get_xs('absorption', p_g, UVW=p_uvw) + matxs % get_xs('absorption', p_g, UVW=p_uvw) end if else if (i_nuclide > 0) then From 8e4422ae1fb24355b4298bdf57e5a92ff5094b65 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 10 May 2016 10:36:43 -0500 Subject: [PATCH 167/259] Add HexLattice.show_indices staticmethod and clarify universes description --- openmc/lattice.py | 125 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 118 insertions(+), 7 deletions(-) diff --git a/openmc/lattice.py b/openmc/lattice.py index f78ec8e90..af6c14a6a 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -30,8 +30,8 @@ class Lattice(object): Unique identifier for the lattice name : str Name of the lattice - pitch : float - Pitch of the lattice in cm + pitch : Iterable of float + Pitch of the lattice in each direction in cm outer : openmc.Universe A universe to fill all space outside the lattice universes : Iterable of Iterable of openmc.Universe @@ -259,8 +259,9 @@ class RectLattice(Lattice): lower_left : Iterable of float The coordinates of the lower-left corner of the lattice. If the lattice is two-dimensional, only the x- and y-coordinates are specified. - pitch : float - Pitch of the lattice in cm + pitch : Iterable of float + Pitch of the lattice in the x, y, and (if applicable) z directions in + cm. outer : openmc.Universe A universe to fill all space outside the lattice universes : Iterable of Iterable of openmc.Universe @@ -512,13 +513,19 @@ class HexLattice(Lattice): center : Iterable of float Coordinates of the center of the lattice. If the lattice does not have axial sections then only the x- and y-coordinates are specified - pitch : float - Pitch of the lattice in cm + pitch : Iterable of float + Pitch of the lattice in cm. The first item in the iterable specifies the + pitch in the radial direction and, if the lattice is 3D, the second item + in the iterable specifies the pitch in the axial direction. outer : openmc.Universe A universe to fill all space outside the lattice universes : Iterable of Iterable of openmc.Universe A two- or three-dimensional list/array of universes filling each element - of the lattice + of the lattice. Each sub-list corresponds to one ring of universes and + should be ordered from outermost ring to innermost ring. The universes + within each sub-list are ordered from the "top" and proceed in a + clockwise fashion. The :meth:`HexLattice.show_indices` method can be + used to help figure out indices for this property. """ @@ -882,3 +889,107 @@ class HexLattice(Lattice): # Join the rows together and return the string. universe_ids = '\n'.join(rows) return universe_ids + + @staticmethod + def show_indices(num_rings): + """Return a diagram of the hexagonal lattice layout with indices. + + This method can be used to show the proper indices to be used when + setting the :attr:`HexLattice.universes` property. For example, running + this method with num_rings=3 will return the following diagram:: + + (0, 0) + (0,11) (0, 1) + (0,10) (1, 0) (0, 2) + (1, 5) (1, 1) + (0, 9) (2, 0) (0, 3) + (1, 4) (1, 2) + (0, 8) (1, 3) (0, 4) + (0, 7) (0, 5) + (0, 6) + + Parameters + ---------- + num_rings : int + Number of rings in the hexagonal lattice + + Returns + ------- + str + Diagram of the hexagonal lattice showing indices + + """ + + # Find the largest string and count the number of digits so we can + # properly pad the output string later + largest_index = 6*(num_rings - 1) + n_digits_index = len(str(largest_index)) + n_digits_ring = len(str(num_rings - 1)) + str_form = '({{:{}}},{{:{}}})'.format(n_digits_ring, n_digits_index) + pad = ' '*(n_digits_index + n_digits_ring + 3) + + # Initialize the list for each row. + rows = [[] for i in range(1 + 4 * (num_rings-1))] + middle = 2 * (num_rings - 1) + + # Start with the degenerate first ring. + rows[middle] = [str_form.format(num_rings - 1, 0)] + + # Add universes one ring at a time. + for r in range(1, num_rings): + # r_prime increments down while r increments up. + r_prime = num_rings - 1 - r + theta = 0 + y = middle + 2*r + + for i in range(r): + # Climb down the top-right. + rows[y].append(str_form.format(r_prime, theta)) + y -= 1 + theta += 1 + + for i in range(r): + # Climb down the right. + rows[y].append(str_form.format(r_prime, theta)) + y -= 2 + theta += 1 + + for i in range(r): + # Climb down the bottom-right. + rows[y].append(str_form.format(r_prime, theta)) + y -= 1 + theta += 1 + + for i in range(r): + # Climb up the bottom-left. + rows[y].insert(0, str_form.format(r_prime, theta)) + y += 1 + theta += 1 + + for i in range(r): + # Climb up the left. + rows[y].insert(0, str_form.format(r_prime, theta)) + y += 2 + theta += 1 + + for i in range(r): + # Climb up the top-left. + rows[y].insert(0, str_form.format(r_prime, theta)) + y += 1 + theta += 1 + + # Flip the rows and join each row into a single string. + rows = [pad.join(x) for x in rows[::-1]] + + # Pad the beginning of the rows so they line up properly. + for y in range(num_rings - 1): + rows[y] = (num_rings - 1 - y)*pad + rows[y] + rows[-1 - y] = (num_rings - 1 - y)*pad + rows[-1 - y] + + for y in range(num_rings % 2, num_rings, 2): + rows[middle + y] = pad + rows[middle + y] + if y != 0: + rows[middle - y] = pad + rows[middle - y] + + # Join the rows together and return the string. + return '\n'.join(rows) From 17c96c497c33fd19309d4ec1f7dee52d7bd83b3a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 10 May 2016 10:37:07 -0500 Subject: [PATCH 168/259] Add xyz default for openmc.stats.Point constructor --- openmc/stats/multivariate.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/stats/multivariate.py b/openmc/stats/multivariate.py index 4ce34a071..e4eadd7aa 100644 --- a/openmc/stats/multivariate.py +++ b/openmc/stats/multivariate.py @@ -328,8 +328,8 @@ class Point(Spatial): Parameters ---------- - xyz : Iterable of float - Cartesian coordinates of location + xyz : Iterable of float, optional + Cartesian coordinates of location. Defaults to (0., 0., 0.). Attributes ---------- @@ -338,7 +338,7 @@ class Point(Spatial): """ - def __init__(self, xyz): + def __init__(self, xyz=(0., 0., 0.)): super(Point, self).__init__() self.xyz = xyz From 8ff23e9f9808a0efbf990be4bb2355dd111f2220 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 10 May 2016 10:37:40 -0500 Subject: [PATCH 169/259] Clarify documentation regarding cell rotation --- docs/source/usersguide/input.rst | 14 ++++++++++++++ openmc/cell.py | 21 +++++++++++++++++---- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 775407d70..8493ac480 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1033,6 +1033,20 @@ Each ```` element can have the following attributes or sub-elements: + The rotation applied is an intrinsic rotation whose Tait-Bryan angles are + given as those specified about the x, y, and z axes respectively. That is to + say, if the angles are :math:`(\phi, \theta, \psi)`, then the rotation + matrix applied is :math:`R_z(\psi) R_y(\theta) R_x(\phi)` or + + .. math:: + + \left [ \begin{array}{ccc} \cos\theta \cos\psi & -\cos\theta \sin\psi + + \sin\phi \sin\theta \cos\psi & \sin\phi \sin\psi + \cos\phi \sin\theta + \cos\psi \\ \cos\theta \sin\psi & \cos\phi \cos\psi + \sin\phi \sin\theta + \sin\psi & -\sin\phi \cos\psi + \cos\phi \sin\theta \sin\psi \\ + -\sin\theta & \sin\phi \cos\theta & \cos\phi \cos\theta \end{array} + \right ] + *Default*: None :translation: diff --git a/openmc/cell.py b/openmc/cell.py index 37828d8fc..806f3f32f 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -23,7 +23,7 @@ def reset_auto_cell_id(): class Cell(object): - """A region of space defined as the intersection of half-space created by + r"""A region of space defined as the intersection of half-space created by quadric surfaces. Parameters @@ -48,11 +48,24 @@ class Cell(object): Indicates what the region of space is filled with region : openmc.Region Region of space that is assigned to the cell. - rotation : numpy.ndarray + rotation : Iterable of float If the cell is filled with a universe, this array specifies the angles in degrees about the x, y, and z axes that the filled universe should be - rotated. - translation : numpy.ndarray + rotated. The rotation applied is an intrinsic rotation with specified + Tait-Bryan angles. That is to say, if the angles are :math:`(\phi, + \theta, \psi)`, then the rotation matrix applied is :math:`R_z(\psi) + R_y(\theta) R_x(\phi)` or + + .. math:: + + \left [ \begin{array}{ccc} \cos\theta \cos\psi & -\cos\theta \sin\psi + + \sin\phi \sin\theta \cos\psi & \sin\phi \sin\psi + \cos\phi + \sin\theta \cos\psi \\ \cos\theta \sin\psi & \cos\phi \cos\psi + + \sin\phi \sin\theta \sin\psi & -\sin\phi \cos\psi + \cos\phi + \sin\theta \sin\psi \\ -\sin\theta & \sin\phi \cos\theta & \cos\phi + \cos\theta \end{array} \right ] + + translation : Iterable of float If the cell is filled with a universe, this array specifies a vector that is used to translate (shift) the universe. offsets : ndarray From 962d592d2e262206dcde01207100e14cf26a91b0 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 10 May 2016 11:21:48 -0500 Subject: [PATCH 170/259] Restrict the Cell.rotation property to cells filled with a Universe --- openmc/cell.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openmc/cell.py b/openmc/cell.py index 806f3f32f..8ddae6371 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -243,6 +243,10 @@ class Cell(object): @rotation.setter def rotation(self, rotation): + if not isinstance(self.fill, openmc.Universe): + raise RuntimeError('Cell rotation can only be applied if the cell ' + 'is filled with a Universe') + cv.check_type('cell rotation', rotation, Iterable, Real) cv.check_length('cell rotation', rotation, 3) self._rotation = rotation From 10f498177e5528001b9e4b8a3c93b4ad0c5533d3 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 10 May 2016 11:55:38 -0500 Subject: [PATCH 171/259] Allow rotation to be set without fill assigned when reading summary file --- openmc/summary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/summary.py b/openmc/summary.py index 34c51bc51..c9aa08f15 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -267,7 +267,7 @@ class Summary(object): rotation = \ self._f['geometry/cells'][key]['rotation'][...] rotation = np.asarray(rotation, dtype=np.int) - cell.rotation = rotation + cell._rotation = rotation # Store Cell fill information for after Universe/Lattice creation self._cell_fills[index] = (fill_type, fill) From 03828594fbceaa4f00edc144d5d4bb39608033d8 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 10 May 2016 21:04:00 -0400 Subject: [PATCH 172/259] Reverted to dropping scores from MGXS Pandas DF --- .../pythonapi/examples/mgxs-part-i.ipynb | 35 +- .../pythonapi/examples/mgxs-part-iii.ipynb | 78 +- openmc/mgxs/mgxs.py | 15 +- .../results_true.dat | 98 +- .../results_true.dat | 10 +- .../results_true.dat | 242 +- .../results_true.dat | 3942 ++++++++--------- 7 files changed, 2212 insertions(+), 2208 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index a97a0c02e..e4c976718 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -508,10 +508,11 @@ " 888\n", "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.org/en/latest/license.html\n", + " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: df280b60eb1c6d7b7f842e05ede734a4883a0fc8\n", - " Date/Time: 2016-05-05 13:43:54\n", + " Git SHA1: 502482dcf630ee6e290c15b8535e6e850a351c88\n", + " Date/Time: 2016-05-10 20:52:19\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -596,20 +597,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7300E-01 seconds\n", - " Reading cross sections = 1.7600E-01 seconds\n", - " Total time in simulation = 2.1188E+01 seconds\n", - " Time in transport only = 2.1173E+01 seconds\n", - " Time in inactive batches = 2.6880E+00 seconds\n", - " Time in active batches = 1.8500E+01 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 5.3200E-01 seconds\n", + " Reading cross sections = 1.3300E-01 seconds\n", + " Total time in simulation = 2.3438E+01 seconds\n", + " Time in transport only = 2.3419E+01 seconds\n", + " Time in inactive batches = 2.9490E+00 seconds\n", + " Time in active batches = 2.0489E+01 seconds\n", + " Time synchronizing fission bank = 6.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.1776E+01 seconds\n", - " Calculation Rate (inactive) = 9300.60 neutrons/second\n", - " Calculation Rate (active) = 5405.41 neutrons/second\n", + " Total time elapsed = 2.3985E+01 seconds\n", + " Calculation Rate (inactive) = 8477.45 neutrons/second\n", + " Calculation Rate (active) = 4880.67 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1120,7 +1121,7 @@ " 6.250000e-07\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", - " 1.0\n", + " 1\n", " 0.007763\n", " \n", " \n", @@ -1130,7 +1131,7 @@ " 2.000000e+01\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", - " 1.0\n", + " 1\n", " 0.003739\n", " \n", " \n", @@ -1177,7 +1178,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.6" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 21aae7e40..b807ab4a9 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -32,7 +32,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", + "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", @@ -459,7 +459,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDUtMDlUMTM6Mzk6MTEtMDQ6MDCdrTk4AAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA1LTA5VDEzOjM5OjExLTA0OjAw7PCBhAAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -725,8 +725,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 7b20f8ad4aa9e6f02f8b1d51e002f9f56ba7aa15\n", - " Date/Time: 2016-05-09 13:39:11\n", + " Git SHA1: 502482dcf630ee6e290c15b8535e6e850a351c88\n", + " Date/Time: 2016-05-10 20:53:35\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -813,20 +813,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.0300E-01 seconds\n", - " Reading cross sections = 1.0400E-01 seconds\n", - " Total time in simulation = 4.8096E+01 seconds\n", - " Time in transport only = 4.8074E+01 seconds\n", - " Time in inactive batches = 4.1080E+00 seconds\n", - " Time in active batches = 4.3988E+01 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for initialization = 5.8400E-01 seconds\n", + " Reading cross sections = 1.4100E-01 seconds\n", + " Total time in simulation = 7.7003E+01 seconds\n", + " Time in transport only = 7.6958E+01 seconds\n", + " Time in inactive batches = 6.4820E+00 seconds\n", + " Time in active batches = 7.0521E+01 seconds\n", + " Time synchronizing fission bank = 8.0000E-03 seconds\n", + " Sampling source sites = 6.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 6.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 4.8613E+01 seconds\n", - " Calculation Rate (inactive) = 6085.69 neutrons/second\n", - " Calculation Rate (active) = 2273.35 neutrons/second\n", + " Total time elapsed = 7.7616E+01 seconds\n", + " Calculation Rate (inactive) = 3856.83 neutrons/second\n", + " Calculation Rate (active) = 1418.02 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -952,7 +952,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n" + "/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n", + " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" ] }, { @@ -966,7 +967,6 @@ " cell\n", " group in\n", " nuclide\n", - " score\n", " mean\n", " std. dev.\n", " \n", @@ -977,7 +977,6 @@ " 10000\n", " 1\n", " U-235\n", - " (nu-fission / flux)\n", " 8.055246e-03\n", " 2.857567e-05\n", " \n", @@ -986,7 +985,6 @@ " 10000\n", " 1\n", " U-238\n", - " (nu-fission / flux)\n", " 7.339215e-03\n", " 4.349466e-05\n", " \n", @@ -995,7 +993,6 @@ " 10000\n", " 1\n", " O-16\n", - " (nu-fission / flux)\n", " 0.000000e+00\n", " 0.000000e+00\n", " \n", @@ -1004,7 +1001,6 @@ " 10000\n", " 2\n", " U-235\n", - " (nu-fission / flux)\n", " 3.615565e-01\n", " 2.050486e-03\n", " \n", @@ -1013,7 +1009,6 @@ " 10000\n", " 2\n", " U-238\n", - " (nu-fission / flux)\n", " 6.742638e-07\n", " 3.795256e-09\n", " \n", @@ -1022,7 +1017,6 @@ " 10000\n", " 2\n", " O-16\n", - " (nu-fission / flux)\n", " 0.000000e+00\n", " 0.000000e+00\n", " \n", @@ -1031,13 +1025,13 @@ "
" ], "text/plain": [ - " cell group in nuclide score mean std. dev.\n", - "3 10000 1 U-235 (nu-fission / flux) 8.06e-03 2.86e-05\n", - "4 10000 1 U-238 (nu-fission / flux) 7.34e-03 4.35e-05\n", - "5 10000 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00\n", - "0 10000 2 U-235 (nu-fission / flux) 3.62e-01 2.05e-03\n", - "1 10000 2 U-238 (nu-fission / flux) 6.74e-07 3.80e-09\n", - "2 10000 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00" + " cell group in nuclide mean std. dev.\n", + "3 10000 1 U-235 8.055246e-03 2.857567e-05\n", + "4 10000 1 U-238 7.339215e-03 4.349466e-05\n", + "5 10000 1 O-16 0.000000e+00 0.000000e+00\n", + "0 10000 2 U-235 3.615565e-01 2.050486e-03\n", + "1 10000 2 U-238 6.742638e-07 3.795256e-09\n", + "2 10000 2 O-16 0.000000e+00 0.000000e+00" ] }, "execution_count": 30, @@ -1186,7 +1180,6 @@ " cell\n", " group in\n", " nuclide\n", - " score\n", " mean\n", " std. dev.\n", " \n", @@ -1197,7 +1190,6 @@ " 10000\n", " 1\n", " U-235\n", - " (nu-fission / flux)\n", " 0.074860\n", " 0.000303\n", " \n", @@ -1206,7 +1198,6 @@ " 10000\n", " 1\n", " U-238\n", - " (nu-fission / flux)\n", " 0.005952\n", " 0.000035\n", " \n", @@ -1215,7 +1206,6 @@ " 10000\n", " 1\n", " O-16\n", - " (nu-fission / flux)\n", " 0.000000\n", " 0.000000\n", " \n", @@ -1224,10 +1214,10 @@ "
" ], "text/plain": [ - " cell group in nuclide score mean std. dev.\n", - "0 10000 1 U-235 (nu-fission / flux) 7.49e-02 3.03e-04\n", - "1 10000 1 U-238 (nu-fission / flux) 5.95e-03 3.52e-05\n", - "2 10000 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00" + " cell group in nuclide mean std. dev.\n", + "0 10000 1 U-235 0.074860 0.000303\n", + "1 10000 1 U-238 0.005952 0.000035\n", + "2 10000 1 O-16 0.000000 0.000000" ] }, "execution_count": 36, @@ -1568,7 +1558,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 43, @@ -1577,9 +1567,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAADHCAYAAADmiMMCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHxdJREFUeJzt3Xu8VHW9//HXZ29uKmwUUARviKAGBAgImhqaVlomamrS\nsbQ07WRpDz0VpUc21S/JrLxk2akIy9vxRuDJMi/9IFMRMVTwkoqoIBcR5abcP+ePtbZn2O49n7Wv\nM7N6Px+P/dh7z/rM+n7XWp/5zJo1852vuTsiIpIPVaXugIiItB4VdRGRHFFRFxHJERV1EZEcUVEX\nEckRFXURkRxRUS8jZna9mf1nC+7/HTP7dWv2SaQtmNkRZvZ8C+6/t5mtM7Pq1uxXHpR1UTezs8zs\naTN7x8yWmdkvzGzndmp7kZltMrNe9W7/h5m5mfUruG20md1jZm+b2Soze8zMvtDIes8ys61pQtb9\n/AzA3b/s7t9rbp/d/Qfufk5z79+Yen1ekx6Tk5tw/6lm9v3W7lelqKA8/pCZPWhma81stZndbWaD\n6t2vxsyuMrNX03x4Kf1/u/UXxLuZrS/I9bcB3P1v7n5Ac7fL3V91967uvrW562hMvT6/bmbXmlnH\njPc90swWt3afmqJsi7qZXQz8EPgG0B04BNgHuM/MOrVTN14Gxhf06YPAjvX6eSjwIDATGAD0BP4d\nOLbIeh9JE7Lu56ut3vPW94i7dwV2Bn4G3GxmPUvcp7JXYXn8F2A60BfYF3gS+LuZ9U9jOgEPAINJ\n8rsGOBRYCYwu0v6wglxvlyezVjAszfcPAycD55a4P9m5e9n9kCTLOuC0erd3Bd4Avpj+XwvcAfw3\nsBZ4guRg1MX3Be5M7/MycEHBslrgNuB36X0XAKMKli8CLgXmFNx2JXAJ4EC/9LaHgOuasG1nAQ81\nsmwq8P30717A/wBvA6uAvwFV6bJvAUvSfj8PHF2wTTcWrO+EdLveBv4/8IF62/cfwFPA6nQfdsnS\nZ5KC4MDogttuB5al65oFDE5vPxfYDGxKj+ndGY7NaOBxYA2wHPhJqXPyXyCP/wb8vIFt+BPwu/Tv\nc9Lj0bUJ+8CBAQ3cfiSwuOD/xnK6wVwA+qXr7lCwj2aQPFZeBL6UdR9FfU7v+/OC/78APJuuayFw\nXnr7TsC7wLb0uK9L+1UFTABeAt5M19cjvU8X4Mb09reBOUDvFuVdqRO/kZ16LLCl7oDVW3YDcEvB\nwdoMnAJ0JClSL6d/VwFzgcuATkD/9AB8vOC+G4BPANXA5cCj9R4Mx6QJ9oE0ZjHJWZanSbUjsBU4\nqgnbdhbZivrlwPXptnQEjgAMOAB4DehbkNz7FWzTjenf+wPrgY+m9/9mmuydCrbvsTTpeqRJ+uWo\nz+l+OD9NwO4FMV8EugGdgauAeQ1tV/p/dGweAT6X/t0VOKTUOfmvmsckBWxp+vetwA1N3AdhUQ9y\nusFc4P1FfRbwc5IiOZzkCfAjWfZRsT4DBwJLgbMKln8S2I/k8TgWeAcYUX+7CuIvBB4F9iR5fPyy\n4NifB9ydHoNqYCRQ05K8K9fLL72Ale6+pYFlS9Pldea6+x3uvhn4CclBPQQ4GNjV3b/r7pvcfSHw\nK+D0gvs+5O73eHJd7vfAsAba+z3weZLi+CzJ2USdXUgedEubuH2HpNff634OaSBmM9AH2MfdN3ty\nDdJJHnydgUFm1tHdF7n7Sw3c/zPAH939vnTfXAnsAHyoIOYad3/d3VeRJNbwqM8kD44rgU+5++q6\nhe4+xd3XuvtGkgfRMDPr3si6omOzGRhgZr3cfZ27P1qkX+WsUvK4B43ncWE/ezYSE3miINevaWB5\nsZwOc8HM9gIOA77l7hvcfR7wa5LtrZNlH9Xv83qSfXWnu0+tW+Duf3T3lzwxk+Sy1RFF1vVl4BJ3\nX1zw+DjFzDqk29eT5Elkq7vPdfc1Qd+KKteivhLolW50fX3S5XVeq/vD3beRnIX0JTkT6VtYPIHv\nAL0L7rus4O93gC4NtPl74LMkZ6u/q7fsLZKXWn0ybledR91954KfhorWj0jOrP9iZgvNbEK6jS8C\nXydJjBVmdquZ9W3g/n2BV+r+SffNa8AeBTH1t79r1GeSJ7IZJGf+AJhZtZlNTt80W0NydgjbF61C\n0bE5m+SVxnNmNsfMji/Sr3KWhzwu7OebjcRERhTk+gX1FwY5nSUX+gKr3H1twW2vUDzXG9pH2/WZ\n5PHwGeBz9d5QPs7MHk0/FPE2ySuAxnIdkmM4reD4PUvyRNab5LjcC9yavil7RdY3ZRtTrkX9EWAj\nyRsU7zGzrsBxJG/W1NmrYHkVyUuc10keJC/XK57d3P0TTemIu79C8lL4E8Bd9Za9k/b1001ZZ8Z2\n17r7xe7en+Ta+EVmdnS67GZ3P5z/ewn9wwZW8Xq6HAAzM5J9taSB2Kb0ax3JG8FjzezI9ObPAuNI\nXuZ3J3lpDMnLU9I+Fip6bNz9BXcfD+yWbtsdZrZTS/pdIpWSx+vTvp7awF1PK+jn/cDH2+JYNJbT\nGXPhdaCHmXUruG1vWp7r7u63kby3VQtgZp1J3t+4kuTa987APTSe65Acw+PqHcMu7r4kfRU+yd0H\nkbyKPp7tX2E0WVkW9fRl/STgWjM71sw6ps+Ut5Gcwfy+IHykmZ2cPut+neRB9CjJ9eK1ZvYtM9sh\nPZscYmYHN6NLZ5Ncn1vfwLJvAmeZ2TfqPg1iZsPM7NZmtPMeMzvezAakxXg1yTP7NjM7wMw+kibX\nBv7vjZn6bgM+aWZHp8/8F5Psm4db0i+A9HLNf5G8+QPJtfSNJGdyOwI/qHeX5STXgusUPTZmdoaZ\n7Zqesb6d3qehbSxrFZbHE4AzzewCM+tmZrtY8jHUQ9NtIO3va8CdZnagmVWZWU9Lxkc06UmmULGc\nzpIL7v4aSV5fbmZdzGxouq03NrdP9UwGxqeXeTqRXCp6A9hiZscBHyuIXQ70rHfp8Xrg/5nZPuk2\n7Wpm49K/jzKzD1ryefs1JJdjWpTrZVnUAdz9CpKXmVeSbOxskoQ6Or0uVWc6yUukt4DPASenz35b\nSZ71hpOcoawkuc7W2HXeYn15yd0fb2TZw8BH0p+FZlZX8O5pajv1DCQ5M1pHchb1c3f/K0lCTSbZ\nnmUkZzDfbqBfzwNnANemsZ8iuQ6+qYX9qnMVcJSZDSd5Of8KyZnRMyTFqNBvSK6Xvm1mf8hwbI4F\nFpjZOuBq4HR3f7eV+t2uKiiPHwI+TvKqYinJ8TwIONzdX0hjNpK8GnsOuC/dnsdILj3Mbmp/ChTL\n6ay5MJ7kFeLrwDRgorvf34I+vcfdnyb52PLF6SWeC0iemN8ieZU6oyD2OeAWklrwdnoZ6eo05i9m\ntpbk8TEmvcvuJJ98WkNyWWYm2z/ZN5m5V+4kGWZWS/IGwxml7otIcymPpTWV/Ew9TeiKoj63j0rs\nc6FK7L/63Pbaur8lP1M3M3d3iyMbvG8tJTjDaUmfS0V9bn9Z+19OZ+qVuM8rrc9t3d+KLuqloj63\nj0rsc6FK7L/63Pbaur8lv/wiIiKtp0Vn6mZ2LMk7u9XAr919cob7VO47s1IRWuMsSLkt5SjT5bzm\nFvX0c5X/JBl2vJjki2jGu/szwf2cecU/hnnC0Pgj3jMePj2M+dJhDY1I3t7dxIMVr/avhzGfuebu\nMIZ+8b4+e9zPii7v4avCdfzo6olxX/6c4bjfOykM6fDGRWHMlj41cVufydCfm26LYzi9xUW9RbnN\nq0UifhM3fkhtHDMh3leDT2jwk4vbeXH1fmHMxld2idsaGre14JlR8XoGZVjPU/F6uvSLHyP71SyM\n25qeYSjA5Ax5Ozt+HCXflda4sWM7MXNm70y53ZLLL6OBF919YfrZ51tJRhWKVDrltlSslhT1PSj4\nvgqSM5o9GokVqSTKbalYbf5GqZnVWjKTiOuao7SHwnxry88EK7elvWXJ7WLfUhZZQsGXEJF8AdH7\nvkDH3WtJvwynrlMtaFMk1ApvlCq3pSy19TX1OcBAM9vXkmmuTqfgOxBEKphyWypWs8/U3X2LmX2V\n5LuAq4Ep7r6g1XomUiLKbalkLbn8grvfQ8u/jVCk7Ci3pVK1+9cEmJlzUvHPqR9+133herJcNn34\nu0eHMTMnxp9FXV90QqDEvv5yGHPgS4vCmK01xZ9nh+w2J1zHxf7jMGaZ7x7GXHpPvB7+GIewJcMl\n7q9kyMMRL2Ro7IBWGXzUHMk19WJjBOJ8ZPjhYcjuT8SfsT7I5oUxv/UvhDF3bj+/R4PWbjc3RcNO\n9OlhzB8s/tRot+0mN2rYp7efA6RBZ9nUMOYf24rN7phYPmLfMIYnH4pjtpsv5f3Gjt2HmTO/2ObX\n1EVEpMyoqIuI5IiKuohIjqioi4jkiIq6iEiOqKiLiOSIirqISI6oqIuI5EhJBh/tuu2VojF97X3f\nnfQ++/PPMGabx89Zt71wZhhjA7eGMTdxShhz6tvTwphOOwdtzYq3yQfEY2+sb7xNvqA6jOk7+MUw\nZkd/N4x5ec9BYcyEJfHkH5OrvlfawUdjigys25hhJRm+tX3bcRlyYEmGHDgpzoEnOSCMGfp4nAM2\nKm6LufF2zRu5fxgznOfitv6QYR/2ifdh9Z+LD6RM2spQY7sUXzz2IJh5fZUGH4mI/KtRURcRyREV\ndRGRHFFRFxHJERV1EZEcUVEXEckRFXURkRxp0cxHzXUVFxRdfvoB8XSQ05/7WBhzIn8KY14dcFEY\ns/eA+PPa//bNDJ9FrYlDNh1XvK1ZHz4sXMcxr/89jJlbHW/TyPhj4SwdHE8S4JPjc4cXluwVxnzF\nros7VGoTGl+0+wnx5BZLZg+M2xgdfzZ63Q7xPu86NM6BzY/F4wdWjIonydhtftzW8pHdw5gtdAxj\nfHTc1tr58WfQa96JP1u/NcN5cd/L4s/xL5/Rv3hAT+D6cDWAztRFRHJFRV1EJEdU1EVEckRFXUQk\nR1TURURyREVdRCRHVNRFRHJERV1EJEdKMvhojM0uunzkcw+F63hiUTwIh1fiQQh7984waOgrcciB\n5z4Rxjz3oxFhzMruOxddfsw18cAiOy4MYeQv4+22NfF6/MF4H1uGQ3WrnR7GVJNhQoISGzzu8UaX\n7c2r4f1taXxc1uwQ7/MNGSbk6Lowbmv/LfFkNDW3bQ5j7Ka4P7ufsTqM2fHUd+IVZdiuDRvi1bBj\nvJ9rbo7bOqhqXhjz2rg3iy7vRzdmhmtJ6ExdRCRHVNRFRHJERV1EJEdU1EVEckRFXUQkR1TURURy\nREVdRCRHVNRFRHKkRYOPzGwRsBbYCmxx91FZ7jdw+pKiy79/wsXxSvrFA1Gqp8QDAy6b9O0wZuKB\nk8OY517M8Pw4Mp5tpS/FByHYyLgd3xi3wznxrC7+vbitDaPjprp0jY/VMn4axmTYqlbT3NxeuKbx\nmaAeqDk6XsFJ8b6qGZJhVqOX471lb8Q5UPONDHk9N27LH4zbsqPitro9sSVez8p4H+7aK8N2BZMR\nAXBi3NZUj2d06rfm5aLL+1ZnL9WtMaL0KHdf2QrrESk3ym2pOLr8IiKSIy0t6g7cb2Zzzezc1uiQ\nSJlQbktFaunll8PdfYmZ7QbcZ2bPufus1uiYSIkpt6UitehM3d2XpL9XANOA971tZma1ZuZ1Py1p\nTySLwnwzs9rmrEO5LeUoS243u6ib2U5m1q3ub+BjwPz6ce5e6+5W99Pc9kSyKsw3d69t6v2V21Ku\nsuR2Sy6/9AammVndem529z+3YH0i5UK5LRWr2UXd3RcCw1qxLyJlQbktlczc2/dSoJk5zxb/wP7W\nHvGMI8ftelcYs4aaMGYDXcKYudcdHsace/7VYcyUp84PY7rss6ro8vVbdw3XYVPDELY9HF8teOyO\nD4YxY558Koz58rB4YNE+vBLGXPLqD8MY+nWmVJdCzMyZ13hu/3zYWeE6DvVHwpjNdApjDtjyfBjT\n9TvxgKCHrxgexnTweD2jhz8dxjz2ZJxvWzyuDR/6VjzT0NrL4/PZf1bvH8Z0IJ716REODWPOf+q3\nRZeP3QlmDqzKlNv6nLqISI6oqIuI5IiKuohIjqioi4jkiIq6iEiOqKiLiOSIirqISI6oqIuI5Ehr\n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\njRmGBmRpq3P0mAf6Z1hPpwz96VwVb9eeWfqc5WGU5XhtznDcKZY3sP/+HZg5M8NqKNXgI5E2VNrB\nRyJtJ0tut3tRf18HzLxUD8LmUp/bRyX2uVAl9l99bntt3V9dUxcRyREVdRGRHCmHop7l227Kjfrc\nPiqxz4Uqsf/qc9tr0/6W/Jq6iIi0nnI4UxcRkVaioi4ikiMlLepmdqyZPW9mL5rZhFL2JSszW2Rm\nT5vZPDOLv9W/BMxsipmtMLP5Bbf1MLP7zOyF9PcupexjoUb6W2tmS9L9PM/MPlHKPjaF8rptVFpe\nQ2lyu2RF3cyqgeuA44BBwHgzG1Sq/jTRUe4+3N0zTI1SElOBY+vdNgF4wN0HAg+k/5eLqby/vwA/\nTffzcHe/p5371CzK6zY1lcrKayhBbpfyTH008KK7L3T3TcCtwLgS9ic33H0WsKrezeOAG9K/bwDi\nefzaSSP9rVTK6zZSaXkNpcntUhb1PYDXCv5fnN5W7hy438zmmtm5pe5ME/R296Xp38uA3qXsTEZf\nM7On0pewZfWyugjldfuqxLyGNsxtvVHadIe7+3CSl9fnm9mHS92hpvLkc6zl/lnWXwD9Sb7ebSnw\n49J2J/eU1+2nTXO7lEV9CWz39Yd7preVNXdfkv5eAUwjebldCZabWR+A9PeKEvenKHdf7u5b3X0b\n8CsqZz8rr9tXReU1tH1ul7KozwEGmtm+ZtYJOB2YUcL+hMxsJzPrVvc38DFgfvF7lY0ZwJnp32cC\n00vYl1DdAzV1EpWzn5XX7aui8hraPrdL8n3qAO6+xcy+CtwLVANT3H1BqfqTUW9gmplBsu9udvc/\nl7ZL72dmtwBHAr3MbDEwEZgM3GZmZwOvAKeVrofba6S/R5rZcJKX04uA80rWwSZQXredSstrKE1u\n62sCRERyRG+UiojkiIq6iEiOqKiLiOSIirqISI6oqIuI5IiKuohIjqioi4jkiIq6iEiO/C/zDkyC\nZclMUgAAAABJRU5ErkJggg==\n", + "image/png": "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\n2ajR7Q6wgAAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1619,7 +1609,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.6" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 1479f7241..dc3d0d127 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1418,6 +1418,9 @@ class MGXS(object): else: df = self.xs_tally.get_pandas_dataframe(summary=summary) + # Remove the score column since it is homogeneous and redundant + df = df.drop('score', axis=1) + # Override energy groups bounds with indices all_groups = np.arange(self.num_groups, 0, -1, dtype=np.int) all_groups = np.repeat(all_groups, self.num_nuclides) @@ -2228,13 +2231,23 @@ class ScatterMatrixXS(MGXS): df = super(ScatterMatrixXS, self).get_pandas_dataframe( groups, nuclides, xs_type, summary) + # Add a moment column to dataframe + moments = np.array(['P{}'.format(i) for i in range(self.legendre_order+1)]) + moments = np.tile(moments, df.shape[0] / moments.size) + df['moment'] = moments + + # Place the moment column before the mean column + mean_index = df.columns.get_loc('mean') + columns = df.columns.tolist() + df = df[columns[:mean_index] + ['moment'] + columns[mean_index:]] + # Select rows corresponding to requested scattering moment if moment != 'all': cv.check_type('moment', moment, Integral) cv.check_greater_than('moment', moment, 0, equality=True) cv.check_less_than( 'moment', moment, self.legendre_order, equality=True) - df = df[df['score'] == str(self.xs_tally.scores[moment])] + df = df.iloc[moment:self.legendre_order:] return df diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 7e8a49673..2afa47d6f 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,49 +1,49 @@ - material group in nuclide score mean std. dev. -0 1 1 total ((total - scatter-1) / flux) 4.12e-01 2.36e-02 material group in nuclide score mean std. dev. -0 1 1 total (nu-fission / flux) 7.64e-02 3.69e-03 material group in group out nuclide score mean std. dev. -0 1 1 1 total ((nu-scatter-0 - scatter-1) / flux) 3.46e-01 2.15e-02 material group out nuclide score mean std. dev. -0 1 1 total nu-fission 1.00e+00 5.53e-02 material group in nuclide score mean std. dev. -0 2 1 total ((total - scatter-1) / flux) 2.41e-01 8.41e-03 material group in nuclide score mean std. dev. -0 2 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 2 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.41e-01 8.41e-03 material group out nuclide score mean std. dev. -0 2 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 3 1 total ((total - scatter-1) / flux) 4.00e-01 3.47e-02 material group in nuclide score mean std. dev. -0 3 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 3 1 1 total ((nu-scatter-0 - scatter-1) / flux) 3.93e-01 3.36e-02 material group out nuclide score mean std. dev. -0 3 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 4 1 total ((total - scatter-1) / flux) 3.77e-01 7.29e-02 material group in nuclide score mean std. dev. -0 4 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 4 1 1 total ((nu-scatter-0 - scatter-1) / flux) 3.71e-01 7.12e-02 material group out nuclide score mean std. dev. -0 4 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 5 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 5 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 5 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -0 5 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 6 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 6 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 6 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -0 6 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 7 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 7 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 7 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -0 7 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 8 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 8 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 8 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -0 8 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 9 1 total ((total - scatter-1) / flux) 6.01e-01 7.49e-01 material group in nuclide score mean std. dev. -0 9 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 9 1 1 total ((nu-scatter-0 - scatter-1) / flux) 6.01e-01 7.49e-01 material group out nuclide score mean std. dev. -0 9 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 10 1 total ((total - scatter-1) / flux) 2.36e-01 6.14e-01 material group in nuclide score mean std. dev. -0 10 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 10 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.36e-01 6.14e-01 material group out nuclide score mean std. dev. -0 10 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 11 1 total ((total - scatter-1) / flux) 5.10e-01 7.42e-01 material group in nuclide score mean std. dev. -0 11 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 11 1 1 total ((nu-scatter-0 - scatter-1) / flux) 4.92e-01 7.16e-01 material group out nuclide score mean std. dev. -0 11 1 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -0 12 1 total ((total - scatter-1) / flux) 7.38e-01 8.26e-01 material group in nuclide score mean std. dev. -0 12 1 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -0 12 1 1 total ((nu-scatter-0 - scatter-1) / flux) 7.23e-01 8.08e-01 material group out nuclide score mean std. dev. -0 12 1 total nu-fission 0.00e+00 0.00e+00 \ No newline at end of file + material group in nuclide mean std. dev. +0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. +0 1 1 total 0.076425 0.003691 material group in group out nuclide moment mean std. dev. moment +0 1 1 1 total P0 0.345643 0.021487 P0 material group out nuclide mean std. dev. +0 1 1 total 1 0.055333 material group in nuclide mean std. dev. +0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. +0 2 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 2 1 1 total P0 0.241262 0.00841 P0 material group out nuclide mean std. dev. +0 2 1 total 0 0 material group in nuclide mean std. dev. +0 3 1 total 0.400028 0.034667 material group in nuclide mean std. dev. +0 3 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 3 1 1 total P0 0.393462 0.033646 P0 material group out nuclide mean std. dev. +0 3 1 total 0 0 material group in nuclide mean std. dev. +0 4 1 total 0.377402 0.072937 material group in nuclide mean std. dev. +0 4 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 4 1 1 total P0 0.371473 0.071226 P0 material group out nuclide mean std. dev. +0 4 1 total 0 0 material group in nuclide mean std. dev. +0 5 1 total 0 0 material group in nuclide mean std. dev. +0 5 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 5 1 1 total P0 0 0 P0 material group out nuclide mean std. dev. +0 5 1 total 0 0 material group in nuclide mean std. dev. +0 6 1 total 0 0 material group in nuclide mean std. dev. +0 6 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 6 1 1 total P0 0 0 P0 material group out nuclide mean std. dev. +0 6 1 total 0 0 material group in nuclide mean std. dev. +0 7 1 total 0 0 material group in nuclide mean std. dev. +0 7 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 7 1 1 total P0 0 0 P0 material group out nuclide mean std. dev. +0 7 1 total 0 0 material group in nuclide mean std. dev. +0 8 1 total 0 0 material group in nuclide mean std. dev. +0 8 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 8 1 1 total P0 0 0 P0 material group out nuclide mean std. dev. +0 8 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0.600536 0.748875 material group in nuclide mean std. dev. +0 9 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 9 1 1 total P0 0.600536 0.748875 P0 material group out nuclide mean std. dev. +0 9 1 total 0 0 material group in nuclide mean std. dev. +0 10 1 total 0.235515 0.613974 material group in nuclide mean std. dev. +0 10 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 10 1 1 total P0 0.235515 0.613974 P0 material group out nuclide mean std. dev. +0 10 1 total 0 0 material group in nuclide mean std. dev. +0 11 1 total 0.510145 0.741941 material group in nuclide mean std. dev. +0 11 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 11 1 1 total P0 0.491857 0.715554 P0 material group out nuclide mean std. dev. +0 11 1 total 0 0 material group in nuclide mean std. dev. +0 12 1 total 0.73836 0.825631 material group in nuclide mean std. dev. +0 12 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 12 1 1 total P0 0.723265 0.808231 P0 material group out nuclide mean std. dev. +0 12 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index a23417d92..4daa6cd97 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ - avg(distribcell) group in nuclide score mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total ((total - scatter-1) / flux) 7.19e-01 5.21e-01 avg(distribcell) group in nuclide score mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total (nu-fission / flux) 0.00e+00 0.00e+00 avg(distribcell) group in group out nuclide score mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total ((nu-scatter-0 - scatter-1) / flux) 6.95e-01 5.11e-01 avg(distribcell) group out nuclide score mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total nu-fission 0.00e+00 0.00e+00 \ No newline at end of file + avg(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.718919 0.520644 avg(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 0 avg(distribcell) group in group out nuclide moment mean std. dev. moment +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 0.695166 0.510606 P0 avg(distribcell) group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index c279653e5..a4b08dd4a 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,121 +1,121 @@ - material group in nuclide score mean std. dev. -1 1 1 total ((total - scatter-1) / flux) 3.73e-01 2.43e-02 -0 1 2 total ((total - scatter-1) / flux) 8.62e-01 3.23e-02 material group in nuclide score mean std. dev. -1 1 1 total (nu-fission / flux) 2.18e-02 1.18e-03 -0 1 2 total (nu-fission / flux) 7.14e-01 4.06e-02 material group in group out nuclide score mean std. dev. -3 1 1 1 total ((nu-scatter-0 - scatter-1) / flux) 3.37e-01 2.30e-02 -2 1 1 2 total ((nu-scatter-0 - scatter-1) / flux) 1.56e-03 5.10e-04 -1 1 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 1 2 2 total ((nu-scatter-0 - scatter-1) / flux) 4.22e-01 2.16e-02 material group out nuclide score mean std. dev. -1 1 1 total nu-fission 1.00e+00 5.53e-02 -0 1 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 2 1 total ((total - scatter-1) / flux) 2.37e-01 8.18e-03 -0 2 2 total ((total - scatter-1) / flux) 2.86e-01 4.88e-02 material group in nuclide score mean std. dev. -1 2 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 2 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 2 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.37e-01 8.18e-03 -2 2 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 2 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 2 2 2 total ((nu-scatter-0 - scatter-1) / flux) 2.86e-01 4.88e-02 material group out nuclide score mean std. dev. -1 2 1 total nu-fission 0.00e+00 0.00e+00 -0 2 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 3 1 total ((total - scatter-1) / flux) 2.87e-01 2.74e-02 -0 3 2 total ((total - scatter-1) / flux) 1.42e+00 2.65e-01 material group in nuclide score mean std. dev. -1 3 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 3 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 3 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.60e-01 2.61e-02 -2 3 1 2 total ((nu-scatter-0 - scatter-1) / flux) 2.62e-02 1.66e-03 -1 3 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 3 2 2 total ((nu-scatter-0 - scatter-1) / flux) 1.36e+00 2.59e-01 material group out nuclide score mean std. dev. -1 3 1 total nu-fission 0.00e+00 0.00e+00 -0 3 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 4 1 total ((total - scatter-1) / flux) 2.42e-01 6.10e-02 -0 4 2 total ((total - scatter-1) / flux) 1.25e+00 3.88e-01 material group in nuclide score mean std. dev. -1 4 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 4 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 4 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.18e-01 5.86e-02 -2 4 1 2 total ((nu-scatter-0 - scatter-1) / flux) 2.37e-02 3.08e-03 -1 4 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 4 2 2 total ((nu-scatter-0 - scatter-1) / flux) 1.22e+00 3.81e-01 material group out nuclide score mean std. dev. -1 4 1 total nu-fission 0.00e+00 0.00e+00 -0 4 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 5 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 5 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 5 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 5 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 5 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 5 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 5 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 5 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -1 5 1 total nu-fission 0.00e+00 0.00e+00 -0 5 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 6 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 6 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 6 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 6 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 6 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 6 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 6 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 6 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -1 6 1 total nu-fission 0.00e+00 0.00e+00 -0 6 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 7 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 7 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 7 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 7 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 7 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 7 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 7 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 7 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -1 7 1 total nu-fission 0.00e+00 0.00e+00 -0 7 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 8 1 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 8 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 8 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 8 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 8 1 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 8 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 8 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 8 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -1 8 1 total nu-fission 0.00e+00 0.00e+00 -0 8 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 9 1 total ((total - scatter-1) / flux) 6.01e-01 7.49e-01 -0 9 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 9 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 9 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 9 1 1 total ((nu-scatter-0 - scatter-1) / flux) 6.01e-01 7.49e-01 -2 9 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 9 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 9 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -1 9 1 total nu-fission 0.00e+00 0.00e+00 -0 9 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 10 1 total ((total - scatter-1) / flux) 2.36e-01 6.14e-01 -0 10 2 total ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 10 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 10 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 10 1 1 total ((nu-scatter-0 - scatter-1) / flux) 2.36e-01 6.14e-01 -2 10 1 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 10 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 10 2 2 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -1 10 1 total nu-fission 0.00e+00 0.00e+00 -0 10 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 11 1 total ((total - scatter-1) / flux) 1.86e-01 6.32e-01 -0 11 2 total ((total - scatter-1) / flux) 9.46e-01 1.59e+00 material group in nuclide score mean std. dev. -1 11 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 11 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 11 1 1 total ((nu-scatter-0 - scatter-1) / flux) 1.54e-01 5.98e-01 -2 11 1 2 total ((nu-scatter-0 - scatter-1) / flux) 3.19e-02 4.51e-02 -1 11 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 11 2 2 total ((nu-scatter-0 - scatter-1) / flux) 9.03e-01 1.53e+00 material group out nuclide score mean std. dev. -1 11 1 total nu-fission 0.00e+00 0.00e+00 -0 11 2 total nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -1 12 1 total ((total - scatter-1) / flux) 2.13e-01 2.71e-01 -0 12 2 total ((total - scatter-1) / flux) 1.39e+00 2.14e+00 material group in nuclide score mean std. dev. -1 12 1 total (nu-fission / flux) 0.00e+00 0.00e+00 -0 12 2 total (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -3 12 1 1 total ((nu-scatter-0 - scatter-1) / flux) 1.86e-01 2.58e-01 -2 12 1 2 total ((nu-scatter-0 - scatter-1) / flux) 2.72e-02 2.96e-02 -1 12 2 1 total ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 12 2 2 total ((nu-scatter-0 - scatter-1) / flux) 1.36e+00 2.09e+00 material group out nuclide score mean std. dev. -1 12 1 total nu-fission 0.00e+00 0.00e+00 -0 12 2 total nu-fission 0.00e+00 0.00e+00 \ No newline at end of file + material group in nuclide mean std. dev. +1 1 1 total 0.372745 0.024269 +0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. +1 1 1 total 0.021789 0.001182 +0 1 2 total 0.714077 0.040552 material group in group out nuclide moment mean std. dev. moment +3 1 1 1 total P0 0.337397 0.023039 P0 +2 1 1 2 total P0 0.001559 0.000510 P0 +1 1 2 1 total P0 0.000000 0.000000 P0 +0 1 2 2 total P0 0.422051 0.021617 P0 material group out nuclide mean std. dev. +1 1 1 total 1 0.055333 +0 1 2 total 0 0.000000 material group in nuclide mean std. dev. +1 2 1 total 0.237254 0.008184 +0 2 2 total 0.285930 0.048796 material group in nuclide mean std. dev. +1 2 1 total 0 0 +0 2 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 2 1 1 total P0 0.237254 0.008184 P0 +2 2 1 2 total P0 0.000000 0.000000 P0 +1 2 2 1 total P0 0.000000 0.000000 P0 +0 2 2 2 total P0 0.285930 0.048796 P0 material group out nuclide mean std. dev. +1 2 1 total 0 0 +0 2 2 total 0 0 material group in nuclide mean std. dev. +1 3 1 total 0.286906 0.027401 +0 3 2 total 1.418151 0.265308 material group in nuclide mean std. dev. +1 3 1 total 0 0 +0 3 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 3 1 1 total P0 0.259937 0.026115 P0 +2 3 1 2 total P0 0.026187 0.001665 P0 +1 3 2 1 total P0 0.000000 0.000000 P0 +0 3 2 2 total P0 1.359521 0.258505 P0 material group out nuclide mean std. dev. +1 3 1 total 0 0 +0 3 2 total 0 0 material group in nuclide mean std. dev. +1 4 1 total 0.242447 0.061031 +0 4 2 total 1.253959 0.388363 material group in nuclide mean std. dev. +1 4 1 total 0 0 +0 4 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 4 1 1 total P0 0.217930 0.058565 P0 +2 4 1 2 total P0 0.023662 0.003083 P0 +1 4 2 1 total P0 0.000000 0.000000 P0 +0 4 2 2 total P0 1.215074 0.381025 P0 material group out nuclide mean std. dev. +1 4 1 total 0 0 +0 4 2 total 0 0 material group in nuclide mean std. dev. +1 5 1 total 0 0 +0 5 2 total 0 0 material group in nuclide mean std. dev. +1 5 1 total 0 0 +0 5 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 5 1 1 total P0 0 0 P0 +2 5 1 2 total P0 0 0 P0 +1 5 2 1 total P0 0 0 P0 +0 5 2 2 total P0 0 0 P0 material group out nuclide mean std. dev. +1 5 1 total 0 0 +0 5 2 total 0 0 material group in nuclide mean std. dev. +1 6 1 total 0 0 +0 6 2 total 0 0 material group in nuclide mean std. dev. +1 6 1 total 0 0 +0 6 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 6 1 1 total P0 0 0 P0 +2 6 1 2 total P0 0 0 P0 +1 6 2 1 total P0 0 0 P0 +0 6 2 2 total P0 0 0 P0 material group out nuclide mean std. dev. +1 6 1 total 0 0 +0 6 2 total 0 0 material group in nuclide mean std. dev. +1 7 1 total 0 0 +0 7 2 total 0 0 material group in nuclide mean std. dev. +1 7 1 total 0 0 +0 7 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 7 1 1 total P0 0 0 P0 +2 7 1 2 total P0 0 0 P0 +1 7 2 1 total P0 0 0 P0 +0 7 2 2 total P0 0 0 P0 material group out nuclide mean std. dev. +1 7 1 total 0 0 +0 7 2 total 0 0 material group in nuclide mean std. dev. +1 8 1 total 0 0 +0 8 2 total 0 0 material group in nuclide mean std. dev. +1 8 1 total 0 0 +0 8 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 8 1 1 total P0 0 0 P0 +2 8 1 2 total P0 0 0 P0 +1 8 2 1 total P0 0 0 P0 +0 8 2 2 total P0 0 0 P0 material group out nuclide mean std. dev. +1 8 1 total 0 0 +0 8 2 total 0 0 material group in nuclide mean std. dev. +1 9 1 total 0.600536 0.748875 +0 9 2 total 0.000000 0.000000 material group in nuclide mean std. dev. +1 9 1 total 0 0 +0 9 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 9 1 1 total P0 0.600536 0.748875 P0 +2 9 1 2 total P0 0.000000 0.000000 P0 +1 9 2 1 total P0 0.000000 0.000000 P0 +0 9 2 2 total P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +1 9 1 total 0 0 +0 9 2 total 0 0 material group in nuclide mean std. dev. +1 10 1 total 0.235515 0.613974 +0 10 2 total 0.000000 0.000000 material group in nuclide mean std. dev. +1 10 1 total 0 0 +0 10 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 10 1 1 total P0 0.235515 0.613974 P0 +2 10 1 2 total P0 0.000000 0.000000 P0 +1 10 2 1 total P0 0.000000 0.000000 P0 +0 10 2 2 total P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +1 10 1 total 0 0 +0 10 2 total 0 0 material group in nuclide mean std. dev. +1 11 1 total 0.186324 0.632129 +0 11 2 total 0.945986 1.591133 material group in nuclide mean std. dev. +1 11 1 total 0 0 +0 11 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 11 1 1 total P0 0.154449 0.597686 P0 +2 11 1 2 total P0 0.031875 0.045078 P0 +1 11 2 1 total P0 0.000000 0.000000 P0 +0 11 2 2 total P0 0.903085 1.532144 P0 material group out nuclide mean std. dev. +1 11 1 total 0 0 +0 11 2 total 0 0 material group in nuclide mean std. dev. +1 12 1 total 0.213292 0.271444 +0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. +1 12 1 total 0 0 +0 12 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +3 12 1 1 total P0 0.186052 0.257633 P0 +2 12 1 2 total P0 0.027240 0.029555 P0 +1 12 2 1 total P0 0.000000 0.000000 P0 +0 12 2 2 total P0 1.357118 2.089846 P0 material group out nuclide mean std. dev. +1 12 1 total 0 0 +0 12 2 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 99582fa7d..aac5ff1ef 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1,1971 +1,1971 @@ - material group in nuclide score mean std. dev. -34 1 1 U-234 ((total - scatter-1) / flux) 1.73e-04 1.73e-04 -35 1 1 U-235 ((total - scatter-1) / flux) 1.07e-02 1.89e-03 -36 1 1 U-236 ((total - scatter-1) / flux) 2.39e-03 1.06e-03 -37 1 1 U-238 ((total - scatter-1) / flux) 2.14e-01 1.33e-02 -38 1 1 Np-237 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -39 1 1 Pu-238 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -40 1 1 Pu-239 ((total - scatter-1) / flux) 2.91e-03 6.39e-04 -41 1 1 Pu-240 ((total - scatter-1) / flux) 4.43e-03 8.06e-04 -42 1 1 Pu-241 ((total - scatter-1) / flux) 6.90e-04 3.87e-04 -43 1 1 Pu-242 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -44 1 1 Am-241 ((total - scatter-1) / flux) 1.73e-04 1.73e-04 -45 1 1 Am-242m ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -46 1 1 Am-243 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -47 1 1 Cm-242 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -48 1 1 Cm-243 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -49 1 1 Cm-244 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -50 1 1 Cm-245 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -51 1 1 Mo-95 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -52 1 1 Tc-99 ((total - scatter-1) / flux) 1.73e-04 1.73e-04 -53 1 1 Ru-101 ((total - scatter-1) / flux) 2.38e-04 2.54e-04 -54 1 1 Ru-103 ((total - scatter-1) / flux) 2.26e-06 2.43e-04 -55 1 1 Ag-109 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -56 1 1 Xe-135 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -57 1 1 Cs-133 ((total - scatter-1) / flux) 3.47e-04 2.13e-04 -58 1 1 Nd-143 ((total - scatter-1) / flux) 4.47e-04 2.92e-04 -59 1 1 Nd-145 ((total - scatter-1) / flux) 5.64e-04 2.94e-04 -60 1 1 Sm-147 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -61 1 1 Sm-149 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -62 1 1 Sm-150 ((total - scatter-1) / flux) 4.72e-04 2.39e-04 -63 1 1 Sm-151 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -64 1 1 Sm-152 ((total - scatter-1) / flux) 4.92e-04 3.52e-04 -65 1 1 Eu-153 ((total - scatter-1) / flux) 1.73e-04 1.73e-04 -66 1 1 Gd-155 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -67 1 1 O-16 ((total - scatter-1) / flux) 1.35e-01 9.80e-03 -0 1 2 U-234 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -1 1 2 U-235 ((total - scatter-1) / flux) 2.00e-01 7.78e-03 -2 1 2 U-236 ((total - scatter-1) / flux) 1.50e-03 2.04e-03 -3 1 2 U-238 ((total - scatter-1) / flux) 2.55e-01 2.97e-02 -4 1 2 Np-237 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -5 1 2 Pu-238 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -6 1 2 Pu-239 ((total - scatter-1) / flux) 1.60e-01 1.14e-02 -7 1 2 Pu-240 ((total - scatter-1) / flux) 7.92e-03 3.71e-03 -8 1 2 Pu-241 ((total - scatter-1) / flux) 1.78e-02 3.73e-03 -9 1 2 Pu-242 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -10 1 2 Am-241 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -11 1 2 Am-242m ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -12 1 2 Am-243 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -13 1 2 Cm-242 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -14 1 2 Cm-243 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -15 1 2 Cm-244 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -16 1 2 Cm-245 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -17 1 2 Mo-95 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -18 1 2 Tc-99 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -19 1 2 Ru-101 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -20 1 2 Ru-103 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -21 1 2 Ag-109 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -22 1 2 Xe-135 ((total - scatter-1) / flux) 1.39e-02 3.98e-03 -23 1 2 Cs-133 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -24 1 2 Nd-143 ((total - scatter-1) / flux) 3.96e-03 2.43e-03 -25 1 2 Nd-145 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -26 1 2 Sm-147 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -27 1 2 Sm-149 ((total - scatter-1) / flux) 1.98e-03 1.98e-03 -28 1 2 Sm-150 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -29 1 2 Sm-151 ((total - scatter-1) / flux) 1.98e-03 1.98e-03 -30 1 2 Sm-152 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -31 1 2 Eu-153 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -32 1 2 Gd-155 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -33 1 2 O-16 ((total - scatter-1) / flux) 1.97e-01 1.47e-02 material group in nuclide score mean std. dev. -34 1 1 U-234 (nu-fission / flux) 7.27e-06 4.42e-07 -35 1 1 U-235 (nu-fission / flux) 9.59e-03 5.94e-04 -36 1 1 U-236 (nu-fission / flux) 7.57e-05 7.52e-06 -37 1 1 U-238 (nu-fission / flux) 7.18e-03 6.51e-04 -38 1 1 Np-237 (nu-fission / flux) 1.32e-05 8.04e-07 -39 1 1 Pu-238 (nu-fission / flux) 7.75e-06 3.99e-07 -40 1 1 Pu-239 (nu-fission / flux) 3.81e-03 3.64e-04 -41 1 1 Pu-240 (nu-fission / flux) 6.94e-05 4.73e-06 -42 1 1 Pu-241 (nu-fission / flux) 1.03e-03 9.08e-05 -43 1 1 Pu-242 (nu-fission / flux) 6.00e-06 3.82e-07 -44 1 1 Am-241 (nu-fission / flux) 1.15e-06 8.27e-08 -45 1 1 Am-242m (nu-fission / flux) 1.10e-06 6.16e-08 -46 1 1 Am-243 (nu-fission / flux) 8.32e-07 5.84e-08 -47 1 1 Cm-242 (nu-fission / flux) 5.09e-07 5.26e-08 -48 1 1 Cm-243 (nu-fission / flux) 2.25e-07 1.46e-08 -49 1 1 Cm-244 (nu-fission / flux) 2.99e-07 2.75e-08 -50 1 1 Cm-245 (nu-fission / flux) 3.06e-07 3.06e-08 -51 1 1 Mo-95 (nu-fission / flux) 0.00e+00 0.00e+00 -52 1 1 Tc-99 (nu-fission / flux) 0.00e+00 0.00e+00 -53 1 1 Ru-101 (nu-fission / flux) 0.00e+00 0.00e+00 -54 1 1 Ru-103 (nu-fission / flux) 0.00e+00 0.00e+00 -55 1 1 Ag-109 (nu-fission / flux) 0.00e+00 0.00e+00 -56 1 1 Xe-135 (nu-fission / flux) 0.00e+00 0.00e+00 -57 1 1 Cs-133 (nu-fission / flux) 0.00e+00 0.00e+00 -58 1 1 Nd-143 (nu-fission / flux) 0.00e+00 0.00e+00 -59 1 1 Nd-145 (nu-fission / flux) 0.00e+00 0.00e+00 -60 1 1 Sm-147 (nu-fission / flux) 0.00e+00 0.00e+00 -61 1 1 Sm-149 (nu-fission / flux) 0.00e+00 0.00e+00 -62 1 1 Sm-150 (nu-fission / flux) 0.00e+00 0.00e+00 -63 1 1 Sm-151 (nu-fission / flux) 0.00e+00 0.00e+00 -64 1 1 Sm-152 (nu-fission / flux) 0.00e+00 0.00e+00 -65 1 1 Eu-153 (nu-fission / flux) 0.00e+00 0.00e+00 -66 1 1 Gd-155 (nu-fission / flux) 0.00e+00 0.00e+00 -67 1 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -0 1 2 U-234 (nu-fission / flux) 4.41e-07 2.83e-08 -1 1 2 U-235 (nu-fission / flux) 3.77e-01 2.45e-02 -2 1 2 U-236 (nu-fission / flux) 6.10e-06 3.73e-07 -3 1 2 U-238 (nu-fission / flux) 5.35e-07 3.31e-08 -4 1 2 Np-237 (nu-fission / flux) 2.70e-07 2.10e-08 -5 1 2 Pu-238 (nu-fission / flux) 3.46e-05 2.64e-06 -6 1 2 Pu-239 (nu-fission / flux) 2.89e-01 1.38e-02 -7 1 2 Pu-240 (nu-fission / flux) 4.53e-06 2.54e-07 -8 1 2 Pu-241 (nu-fission / flux) 4.81e-02 2.78e-03 -9 1 2 Pu-242 (nu-fission / flux) 8.72e-08 5.46e-09 -10 1 2 Am-241 (nu-fission / flux) 4.61e-06 2.16e-07 -11 1 2 Am-242m (nu-fission / flux) 1.43e-04 8.44e-06 -12 1 2 Am-243 (nu-fission / flux) 7.88e-08 4.73e-09 -13 1 2 Cm-242 (nu-fission / flux) 9.73e-07 6.14e-08 -14 1 2 Cm-243 (nu-fission / flux) 1.83e-06 1.07e-07 -15 1 2 Cm-244 (nu-fission / flux) 1.58e-07 9.94e-09 -16 1 2 Cm-245 (nu-fission / flux) 1.21e-05 8.81e-07 -17 1 2 Mo-95 (nu-fission / flux) 0.00e+00 0.00e+00 -18 1 2 Tc-99 (nu-fission / flux) 0.00e+00 0.00e+00 -19 1 2 Ru-101 (nu-fission / flux) 0.00e+00 0.00e+00 -20 1 2 Ru-103 (nu-fission / flux) 0.00e+00 0.00e+00 -21 1 2 Ag-109 (nu-fission / flux) 0.00e+00 0.00e+00 -22 1 2 Xe-135 (nu-fission / flux) 0.00e+00 0.00e+00 -23 1 2 Cs-133 (nu-fission / flux) 0.00e+00 0.00e+00 -24 1 2 Nd-143 (nu-fission / flux) 0.00e+00 0.00e+00 -25 1 2 Nd-145 (nu-fission / flux) 0.00e+00 0.00e+00 -26 1 2 Sm-147 (nu-fission / flux) 0.00e+00 0.00e+00 -27 1 2 Sm-149 (nu-fission / flux) 0.00e+00 0.00e+00 -28 1 2 Sm-150 (nu-fission / flux) 0.00e+00 0.00e+00 -29 1 2 Sm-151 (nu-fission / flux) 0.00e+00 0.00e+00 -30 1 2 Sm-152 (nu-fission / flux) 0.00e+00 0.00e+00 -31 1 2 Eu-153 (nu-fission / flux) 0.00e+00 0.00e+00 -32 1 2 Gd-155 (nu-fission / flux) 0.00e+00 0.00e+00 -33 1 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -102 1 1 1 U-234 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -103 1 1 1 U-235 ((nu-scatter-0 - scatter-1) / flux) 3.23e-03 1.14e-03 -104 1 1 1 U-236 ((nu-scatter-0 - scatter-1) / flux) 1.70e-03 9.23e-04 -105 1 1 1 U-238 ((nu-scatter-0 - scatter-1) / flux) 1.95e-01 1.33e-02 -106 1 1 1 Np-237 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -107 1 1 1 Pu-238 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -108 1 1 1 Pu-239 ((nu-scatter-0 - scatter-1) / flux) 1.01e-03 4.77e-04 -109 1 1 1 Pu-240 ((nu-scatter-0 - scatter-1) / flux) 1.31e-03 2.95e-04 -110 1 1 1 Pu-241 ((nu-scatter-0 - scatter-1) / flux) 3.44e-04 2.44e-04 -111 1 1 1 Pu-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -112 1 1 1 Am-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -113 1 1 1 Am-242m ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -114 1 1 1 Am-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -115 1 1 1 Cm-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -116 1 1 1 Cm-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -117 1 1 1 Cm-244 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -118 1 1 1 Cm-245 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -119 1 1 1 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -120 1 1 1 Tc-99 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -121 1 1 1 Ru-101 ((nu-scatter-0 - scatter-1) / flux) 2.38e-04 2.54e-04 -122 1 1 1 Ru-103 ((nu-scatter-0 - scatter-1) / flux) 2.26e-06 2.43e-04 -123 1 1 1 Ag-109 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -124 1 1 1 Xe-135 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -125 1 1 1 Cs-133 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -126 1 1 1 Nd-143 ((nu-scatter-0 - scatter-1) / flux) 4.47e-04 2.92e-04 -127 1 1 1 Nd-145 ((nu-scatter-0 - scatter-1) / flux) 5.64e-04 2.94e-04 -128 1 1 1 Sm-147 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -129 1 1 1 Sm-149 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -130 1 1 1 Sm-150 ((nu-scatter-0 - scatter-1) / flux) 2.99e-04 2.38e-04 -131 1 1 1 Sm-151 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -132 1 1 1 Sm-152 ((nu-scatter-0 - scatter-1) / flux) 4.92e-04 3.52e-04 -133 1 1 1 Eu-153 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -134 1 1 1 Gd-155 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -135 1 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 1.33e-01 9.82e-03 -68 1 1 2 U-234 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -69 1 1 2 U-235 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -70 1 1 2 U-236 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -71 1 1 2 U-238 ((nu-scatter-0 - scatter-1) / flux) 1.73e-04 1.73e-04 -72 1 1 2 Np-237 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -73 1 1 2 Pu-238 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -74 1 1 2 Pu-239 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -75 1 1 2 Pu-240 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -76 1 1 2 Pu-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -77 1 1 2 Pu-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -78 1 1 2 Am-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -79 1 1 2 Am-242m ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -80 1 1 2 Am-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -81 1 1 2 Cm-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -82 1 1 2 Cm-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -83 1 1 2 Cm-244 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -84 1 1 2 Cm-245 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -85 1 1 2 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -86 1 1 2 Tc-99 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -87 1 1 2 Ru-101 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -88 1 1 2 Ru-103 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -89 1 1 2 Ag-109 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -90 1 1 2 Xe-135 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -91 1 1 2 Cs-133 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -92 1 1 2 Nd-143 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -93 1 1 2 Nd-145 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -94 1 1 2 Sm-147 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -95 1 1 2 Sm-149 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -96 1 1 2 Sm-150 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -97 1 1 2 Sm-151 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -98 1 1 2 Sm-152 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -99 1 1 2 Eu-153 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -100 1 1 2 Gd-155 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -101 1 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 1.39e-03 4.46e-04 -34 1 2 1 U-234 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -35 1 2 1 U-235 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -36 1 2 1 U-236 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -37 1 2 1 U-238 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -38 1 2 1 Np-237 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -39 1 2 1 Pu-238 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -40 1 2 1 Pu-239 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -41 1 2 1 Pu-240 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -42 1 2 1 Pu-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -43 1 2 1 Pu-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -44 1 2 1 Am-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -45 1 2 1 Am-242m ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -46 1 2 1 Am-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -47 1 2 1 Cm-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -48 1 2 1 Cm-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -49 1 2 1 Cm-244 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -50 1 2 1 Cm-245 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -51 1 2 1 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -52 1 2 1 Tc-99 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -53 1 2 1 Ru-101 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -54 1 2 1 Ru-103 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -55 1 2 1 Ag-109 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -56 1 2 1 Xe-135 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -57 1 2 1 Cs-133 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -58 1 2 1 Nd-143 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -59 1 2 1 Nd-145 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -60 1 2 1 Sm-147 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -61 1 2 1 Sm-149 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -62 1 2 1 Sm-150 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -63 1 2 1 Sm-151 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -64 1 2 1 Sm-152 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -65 1 2 1 Eu-153 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -66 1 2 1 Gd-155 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -67 1 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 1 2 2 U-234 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 1 2 2 U-235 ((nu-scatter-0 - scatter-1) / flux) 3.89e-03 3.96e-03 -2 1 2 2 U-236 ((nu-scatter-0 - scatter-1) / flux) 1.50e-03 2.04e-03 -3 1 2 2 U-238 ((nu-scatter-0 - scatter-1) / flux) 2.20e-01 2.60e-02 -4 1 2 2 Np-237 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 1 2 2 Pu-238 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 1 2 2 Pu-239 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 1 2 2 Pu-240 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -8 1 2 2 Pu-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -9 1 2 2 Pu-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -10 1 2 2 Am-241 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 1 2 2 Am-242m ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -12 1 2 2 Am-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -13 1 2 2 Cm-242 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -14 1 2 2 Cm-243 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 1 2 2 Cm-244 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -16 1 2 2 Cm-245 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -17 1 2 2 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -18 1 2 2 Tc-99 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -19 1 2 2 Ru-101 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -20 1 2 2 Ru-103 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -21 1 2 2 Ag-109 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -22 1 2 2 Xe-135 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -23 1 2 2 Cs-133 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -24 1 2 2 Nd-143 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -25 1 2 2 Nd-145 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -26 1 2 2 Sm-147 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -27 1 2 2 Sm-149 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -28 1 2 2 Sm-150 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -29 1 2 2 Sm-151 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -30 1 2 2 Sm-152 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -31 1 2 2 Eu-153 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -32 1 2 2 Gd-155 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -33 1 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 1.97e-01 1.47e-02 material group out nuclide score mean std. dev. -34 1 1 U-234 nu-fission 0.00e+00 0.00e+00 -35 1 1 U-235 nu-fission 1.00e+00 6.64e-02 -36 1 1 U-236 nu-fission 0.00e+00 0.00e+00 -37 1 1 U-238 nu-fission 1.00e+00 9.31e-02 -38 1 1 Np-237 nu-fission 0.00e+00 0.00e+00 -39 1 1 Pu-238 nu-fission 0.00e+00 0.00e+00 -40 1 1 Pu-239 nu-fission 1.00e+00 1.05e-01 -41 1 1 Pu-240 nu-fission 0.00e+00 0.00e+00 -42 1 1 Pu-241 nu-fission 1.00e+00 2.64e-01 -43 1 1 Pu-242 nu-fission 0.00e+00 0.00e+00 -44 1 1 Am-241 nu-fission 0.00e+00 0.00e+00 -45 1 1 Am-242m nu-fission 0.00e+00 0.00e+00 -46 1 1 Am-243 nu-fission 0.00e+00 0.00e+00 -47 1 1 Cm-242 nu-fission 0.00e+00 0.00e+00 -48 1 1 Cm-243 nu-fission 0.00e+00 0.00e+00 -49 1 1 Cm-244 nu-fission 0.00e+00 0.00e+00 -50 1 1 Cm-245 nu-fission 0.00e+00 0.00e+00 -51 1 1 Mo-95 nu-fission 0.00e+00 0.00e+00 -52 1 1 Tc-99 nu-fission 0.00e+00 0.00e+00 -53 1 1 Ru-101 nu-fission 0.00e+00 0.00e+00 -54 1 1 Ru-103 nu-fission 0.00e+00 0.00e+00 -55 1 1 Ag-109 nu-fission 0.00e+00 0.00e+00 -56 1 1 Xe-135 nu-fission 0.00e+00 0.00e+00 -57 1 1 Cs-133 nu-fission 0.00e+00 0.00e+00 -58 1 1 Nd-143 nu-fission 0.00e+00 0.00e+00 -59 1 1 Nd-145 nu-fission 0.00e+00 0.00e+00 -60 1 1 Sm-147 nu-fission 0.00e+00 0.00e+00 -61 1 1 Sm-149 nu-fission 0.00e+00 0.00e+00 -62 1 1 Sm-150 nu-fission 0.00e+00 0.00e+00 -63 1 1 Sm-151 nu-fission 0.00e+00 0.00e+00 -64 1 1 Sm-152 nu-fission 0.00e+00 0.00e+00 -65 1 1 Eu-153 nu-fission 0.00e+00 0.00e+00 -66 1 1 Gd-155 nu-fission 0.00e+00 0.00e+00 -67 1 1 O-16 nu-fission 0.00e+00 0.00e+00 -0 1 2 U-234 nu-fission 0.00e+00 0.00e+00 -1 1 2 U-235 nu-fission 0.00e+00 0.00e+00 -2 1 2 U-236 nu-fission 0.00e+00 0.00e+00 -3 1 2 U-238 nu-fission 0.00e+00 0.00e+00 -4 1 2 Np-237 nu-fission 0.00e+00 0.00e+00 -5 1 2 Pu-238 nu-fission 0.00e+00 0.00e+00 -6 1 2 Pu-239 nu-fission 0.00e+00 0.00e+00 -7 1 2 Pu-240 nu-fission 0.00e+00 0.00e+00 -8 1 2 Pu-241 nu-fission 0.00e+00 0.00e+00 -9 1 2 Pu-242 nu-fission 0.00e+00 0.00e+00 -10 1 2 Am-241 nu-fission 0.00e+00 0.00e+00 -11 1 2 Am-242m nu-fission 0.00e+00 0.00e+00 -12 1 2 Am-243 nu-fission 0.00e+00 0.00e+00 -13 1 2 Cm-242 nu-fission 0.00e+00 0.00e+00 -14 1 2 Cm-243 nu-fission 0.00e+00 0.00e+00 -15 1 2 Cm-244 nu-fission 0.00e+00 0.00e+00 -16 1 2 Cm-245 nu-fission 0.00e+00 0.00e+00 -17 1 2 Mo-95 nu-fission 0.00e+00 0.00e+00 -18 1 2 Tc-99 nu-fission 0.00e+00 0.00e+00 -19 1 2 Ru-101 nu-fission 0.00e+00 0.00e+00 -20 1 2 Ru-103 nu-fission 0.00e+00 0.00e+00 -21 1 2 Ag-109 nu-fission 0.00e+00 0.00e+00 -22 1 2 Xe-135 nu-fission 0.00e+00 0.00e+00 -23 1 2 Cs-133 nu-fission 0.00e+00 0.00e+00 -24 1 2 Nd-143 nu-fission 0.00e+00 0.00e+00 -25 1 2 Nd-145 nu-fission 0.00e+00 0.00e+00 -26 1 2 Sm-147 nu-fission 0.00e+00 0.00e+00 -27 1 2 Sm-149 nu-fission 0.00e+00 0.00e+00 -28 1 2 Sm-150 nu-fission 0.00e+00 0.00e+00 -29 1 2 Sm-151 nu-fission 0.00e+00 0.00e+00 -30 1 2 Sm-152 nu-fission 0.00e+00 0.00e+00 -31 1 2 Eu-153 nu-fission 0.00e+00 0.00e+00 -32 1 2 Gd-155 nu-fission 0.00e+00 0.00e+00 -33 1 2 O-16 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -5 2 1 Zr-90 ((total - scatter-1) / flux) 1.05e-01 8.92e-03 -6 2 1 Zr-91 ((total - scatter-1) / flux) 3.62e-02 3.74e-03 -7 2 1 Zr-92 ((total - scatter-1) / flux) 4.24e-02 3.03e-03 -8 2 1 Zr-94 ((total - scatter-1) / flux) 4.61e-02 6.25e-03 -9 2 1 Zr-96 ((total - scatter-1) / flux) 7.79e-03 1.54e-03 -0 2 2 Zr-90 ((total - scatter-1) / flux) 1.22e-01 3.49e-02 -1 2 2 Zr-91 ((total - scatter-1) / flux) 6.18e-02 2.43e-02 -2 2 2 Zr-92 ((total - scatter-1) / flux) 4.16e-02 1.63e-02 -3 2 2 Zr-94 ((total - scatter-1) / flux) 6.08e-02 2.15e-02 -4 2 2 Zr-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -5 2 1 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 -6 2 1 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 -7 2 1 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 -8 2 1 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 -9 2 1 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 -0 2 2 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 -1 2 2 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 -2 2 2 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 -3 2 2 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 -4 2 2 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -15 2 1 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 1.05e-01 8.92e-03 -16 2 1 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 3.62e-02 3.74e-03 -17 2 1 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 4.24e-02 3.03e-03 -18 2 1 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 4.61e-02 6.25e-03 -19 2 1 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 7.79e-03 1.54e-03 -10 2 1 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 2 1 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -12 2 1 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -13 2 1 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -14 2 1 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 2 2 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 2 2 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 2 2 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -8 2 2 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -9 2 2 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 2 2 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 1.22e-01 3.49e-02 -1 2 2 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 6.18e-02 2.43e-02 -2 2 2 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 4.16e-02 1.63e-02 -3 2 2 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 6.08e-02 2.15e-02 -4 2 2 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -5 2 1 Zr-90 nu-fission 0.00e+00 0.00e+00 -6 2 1 Zr-91 nu-fission 0.00e+00 0.00e+00 -7 2 1 Zr-92 nu-fission 0.00e+00 0.00e+00 -8 2 1 Zr-94 nu-fission 0.00e+00 0.00e+00 -9 2 1 Zr-96 nu-fission 0.00e+00 0.00e+00 -0 2 2 Zr-90 nu-fission 0.00e+00 0.00e+00 -1 2 2 Zr-91 nu-fission 0.00e+00 0.00e+00 -2 2 2 Zr-92 nu-fission 0.00e+00 0.00e+00 -3 2 2 Zr-94 nu-fission 0.00e+00 0.00e+00 -4 2 2 Zr-96 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -4 3 1 H-1 ((total - scatter-1) / flux) 2.07e-01 2.30e-02 -5 3 1 O-16 ((total - scatter-1) / flux) 7.93e-02 5.20e-03 -6 3 1 B-10 ((total - scatter-1) / flux) 5.21e-04 2.44e-04 -7 3 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 3 2 H-1 ((total - scatter-1) / flux) 1.28e+00 2.51e-01 -1 3 2 O-16 ((total - scatter-1) / flux) 8.54e-02 1.40e-02 -2 3 2 B-10 ((total - scatter-1) / flux) 4.92e-02 8.23e-03 -3 3 2 B-11 ((total - scatter-1) / flux) 1.95e-04 1.53e-03 material group in nuclide score mean std. dev. -4 3 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -5 3 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -6 3 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -7 3 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -0 3 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -1 3 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -2 3 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -3 3 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -12 3 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.81e-01 2.21e-02 -13 3 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 7.86e-02 5.04e-03 -14 3 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 3 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -8 3 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 2.57e-02 1.58e-03 -9 3 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 5.21e-04 1.31e-04 -10 3 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 3 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -4 3 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 3 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 3 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 3 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 3 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.27e+00 2.51e-01 -1 3 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 8.54e-02 1.40e-02 -2 3 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -3 3 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 1.95e-04 1.53e-03 material group out nuclide score mean std. dev. -4 3 1 H-1 nu-fission 0.00e+00 0.00e+00 -5 3 1 O-16 nu-fission 0.00e+00 0.00e+00 -6 3 1 B-10 nu-fission 0.00e+00 0.00e+00 -7 3 1 B-11 nu-fission 0.00e+00 0.00e+00 -0 3 2 H-1 nu-fission 0.00e+00 0.00e+00 -1 3 2 O-16 nu-fission 0.00e+00 0.00e+00 -2 3 2 B-10 nu-fission 0.00e+00 0.00e+00 -3 3 2 B-11 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -4 4 1 H-1 ((total - scatter-1) / flux) 1.75e-01 5.37e-02 -5 4 1 O-16 ((total - scatter-1) / flux) 6.65e-02 1.01e-02 -6 4 1 B-10 ((total - scatter-1) / flux) 5.70e-04 3.52e-04 -7 4 1 B-11 ((total - scatter-1) / flux) 8.88e-05 3.46e-04 -0 4 2 H-1 ((total - scatter-1) / flux) 1.14e+00 3.65e-01 -1 4 2 O-16 ((total - scatter-1) / flux) 8.51e-02 2.81e-02 -2 4 2 B-10 ((total - scatter-1) / flux) 2.59e-02 7.28e-03 -3 4 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -4 4 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -5 4 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -6 4 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -7 4 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -0 4 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -1 4 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -2 4 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -3 4 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -12 4 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.51e-01 5.15e-02 -13 4 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 6.65e-02 1.01e-02 -14 4 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 4 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 8.88e-05 3.46e-04 -8 4 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 2.37e-02 3.08e-03 -9 4 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -10 4 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 4 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -4 4 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 4 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 4 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 4 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 4 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.13e+00 3.62e-01 -1 4 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 8.51e-02 2.81e-02 -2 4 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -3 4 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -4 4 1 H-1 nu-fission 0.00e+00 0.00e+00 -5 4 1 O-16 nu-fission 0.00e+00 0.00e+00 -6 4 1 B-10 nu-fission 0.00e+00 0.00e+00 -7 4 1 B-11 nu-fission 0.00e+00 0.00e+00 -0 4 2 H-1 nu-fission 0.00e+00 0.00e+00 -1 4 2 O-16 nu-fission 0.00e+00 0.00e+00 -2 4 2 B-10 nu-fission 0.00e+00 0.00e+00 -3 4 2 B-11 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -27 5 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -28 5 1 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -29 5 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -30 5 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -31 5 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -32 5 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -33 5 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -34 5 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -35 5 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -36 5 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -37 5 1 Mo-92 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -38 5 1 Mo-94 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -39 5 1 Mo-95 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -40 5 1 Mo-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -41 5 1 Mo-97 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -42 5 1 Mo-98 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -43 5 1 Mo-100 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -44 5 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -45 5 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -46 5 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -47 5 1 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -48 5 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -49 5 1 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -50 5 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -51 5 1 C-Nat ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -52 5 1 Cu-63 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -53 5 1 Cu-65 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 5 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -1 5 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -2 5 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -3 5 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -4 5 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -5 5 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -6 5 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -7 5 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -8 5 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -9 5 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -10 5 2 Mo-92 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -11 5 2 Mo-94 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -12 5 2 Mo-95 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -13 5 2 Mo-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -14 5 2 Mo-97 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -15 5 2 Mo-98 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -16 5 2 Mo-100 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -17 5 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -18 5 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -19 5 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -20 5 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -21 5 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -22 5 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -23 5 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -24 5 2 C-Nat ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -25 5 2 Cu-63 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -26 5 2 Cu-65 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -27 5 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -28 5 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -29 5 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -30 5 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -31 5 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -32 5 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -33 5 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -34 5 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -35 5 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -36 5 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -37 5 1 Mo-92 (nu-fission / flux) 0.00e+00 0.00e+00 -38 5 1 Mo-94 (nu-fission / flux) 0.00e+00 0.00e+00 -39 5 1 Mo-95 (nu-fission / flux) 0.00e+00 0.00e+00 -40 5 1 Mo-96 (nu-fission / flux) 0.00e+00 0.00e+00 -41 5 1 Mo-97 (nu-fission / flux) 0.00e+00 0.00e+00 -42 5 1 Mo-98 (nu-fission / flux) 0.00e+00 0.00e+00 -43 5 1 Mo-100 (nu-fission / flux) 0.00e+00 0.00e+00 -44 5 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -45 5 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -46 5 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -47 5 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -48 5 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -49 5 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -50 5 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 -51 5 1 C-Nat (nu-fission / flux) 0.00e+00 0.00e+00 -52 5 1 Cu-63 (nu-fission / flux) 0.00e+00 0.00e+00 -53 5 1 Cu-65 (nu-fission / flux) 0.00e+00 0.00e+00 -0 5 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -1 5 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -2 5 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -3 5 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -4 5 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -5 5 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -6 5 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -7 5 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -8 5 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -9 5 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -10 5 2 Mo-92 (nu-fission / flux) 0.00e+00 0.00e+00 -11 5 2 Mo-94 (nu-fission / flux) 0.00e+00 0.00e+00 -12 5 2 Mo-95 (nu-fission / flux) 0.00e+00 0.00e+00 -13 5 2 Mo-96 (nu-fission / flux) 0.00e+00 0.00e+00 -14 5 2 Mo-97 (nu-fission / flux) 0.00e+00 0.00e+00 -15 5 2 Mo-98 (nu-fission / flux) 0.00e+00 0.00e+00 -16 5 2 Mo-100 (nu-fission / flux) 0.00e+00 0.00e+00 -17 5 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -18 5 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -19 5 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -20 5 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -21 5 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -22 5 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -23 5 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 -24 5 2 C-Nat (nu-fission / flux) 0.00e+00 0.00e+00 -25 5 2 Cu-63 (nu-fission / flux) 0.00e+00 0.00e+00 -26 5 2 Cu-65 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -81 5 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -82 5 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -83 5 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -84 5 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -85 5 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -86 5 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -87 5 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -88 5 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -89 5 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -90 5 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -91 5 1 1 Mo-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -92 5 1 1 Mo-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -93 5 1 1 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -94 5 1 1 Mo-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -95 5 1 1 Mo-97 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -96 5 1 1 Mo-98 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -97 5 1 1 Mo-100 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -98 5 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -99 5 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -100 5 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -101 5 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -102 5 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -103 5 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -104 5 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -105 5 1 1 C-Nat ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -106 5 1 1 Cu-63 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -107 5 1 1 Cu-65 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -54 5 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -55 5 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -56 5 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -57 5 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -58 5 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -59 5 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -60 5 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -61 5 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -62 5 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -63 5 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -64 5 1 2 Mo-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -65 5 1 2 Mo-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -66 5 1 2 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -67 5 1 2 Mo-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -68 5 1 2 Mo-97 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -69 5 1 2 Mo-98 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -70 5 1 2 Mo-100 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -71 5 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -72 5 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -73 5 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -74 5 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -75 5 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -76 5 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -77 5 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -78 5 1 2 C-Nat ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -79 5 1 2 Cu-63 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -80 5 1 2 Cu-65 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -27 5 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -28 5 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -29 5 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -30 5 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -31 5 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -32 5 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -33 5 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -34 5 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -35 5 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -36 5 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -37 5 2 1 Mo-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -38 5 2 1 Mo-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -39 5 2 1 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -40 5 2 1 Mo-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -41 5 2 1 Mo-97 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -42 5 2 1 Mo-98 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -43 5 2 1 Mo-100 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -44 5 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -45 5 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -46 5 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -47 5 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -48 5 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -49 5 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -50 5 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -51 5 2 1 C-Nat ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -52 5 2 1 Cu-63 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -53 5 2 1 Cu-65 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 5 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 5 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 5 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -3 5 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -4 5 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 5 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 5 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 5 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -8 5 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -9 5 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -10 5 2 2 Mo-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 5 2 2 Mo-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -12 5 2 2 Mo-95 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -13 5 2 2 Mo-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -14 5 2 2 Mo-97 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 5 2 2 Mo-98 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -16 5 2 2 Mo-100 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -17 5 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -18 5 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -19 5 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -20 5 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -21 5 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -22 5 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -23 5 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -24 5 2 2 C-Nat ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -25 5 2 2 Cu-63 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -26 5 2 2 Cu-65 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -27 5 1 Fe-54 nu-fission 0.00e+00 0.00e+00 -28 5 1 Fe-56 nu-fission 0.00e+00 0.00e+00 -29 5 1 Fe-57 nu-fission 0.00e+00 0.00e+00 -30 5 1 Fe-58 nu-fission 0.00e+00 0.00e+00 -31 5 1 Ni-58 nu-fission 0.00e+00 0.00e+00 -32 5 1 Ni-60 nu-fission 0.00e+00 0.00e+00 -33 5 1 Ni-61 nu-fission 0.00e+00 0.00e+00 -34 5 1 Ni-62 nu-fission 0.00e+00 0.00e+00 -35 5 1 Ni-64 nu-fission 0.00e+00 0.00e+00 -36 5 1 Mn-55 nu-fission 0.00e+00 0.00e+00 -37 5 1 Mo-92 nu-fission 0.00e+00 0.00e+00 -38 5 1 Mo-94 nu-fission 0.00e+00 0.00e+00 -39 5 1 Mo-95 nu-fission 0.00e+00 0.00e+00 -40 5 1 Mo-96 nu-fission 0.00e+00 0.00e+00 -41 5 1 Mo-97 nu-fission 0.00e+00 0.00e+00 -42 5 1 Mo-98 nu-fission 0.00e+00 0.00e+00 -43 5 1 Mo-100 nu-fission 0.00e+00 0.00e+00 -44 5 1 Si-28 nu-fission 0.00e+00 0.00e+00 -45 5 1 Si-29 nu-fission 0.00e+00 0.00e+00 -46 5 1 Si-30 nu-fission 0.00e+00 0.00e+00 -47 5 1 Cr-50 nu-fission 0.00e+00 0.00e+00 -48 5 1 Cr-52 nu-fission 0.00e+00 0.00e+00 -49 5 1 Cr-53 nu-fission 0.00e+00 0.00e+00 -50 5 1 Cr-54 nu-fission 0.00e+00 0.00e+00 -51 5 1 C-Nat nu-fission 0.00e+00 0.00e+00 -52 5 1 Cu-63 nu-fission 0.00e+00 0.00e+00 -53 5 1 Cu-65 nu-fission 0.00e+00 0.00e+00 -0 5 2 Fe-54 nu-fission 0.00e+00 0.00e+00 -1 5 2 Fe-56 nu-fission 0.00e+00 0.00e+00 -2 5 2 Fe-57 nu-fission 0.00e+00 0.00e+00 -3 5 2 Fe-58 nu-fission 0.00e+00 0.00e+00 -4 5 2 Ni-58 nu-fission 0.00e+00 0.00e+00 -5 5 2 Ni-60 nu-fission 0.00e+00 0.00e+00 -6 5 2 Ni-61 nu-fission 0.00e+00 0.00e+00 -7 5 2 Ni-62 nu-fission 0.00e+00 0.00e+00 -8 5 2 Ni-64 nu-fission 0.00e+00 0.00e+00 -9 5 2 Mn-55 nu-fission 0.00e+00 0.00e+00 -10 5 2 Mo-92 nu-fission 0.00e+00 0.00e+00 -11 5 2 Mo-94 nu-fission 0.00e+00 0.00e+00 -12 5 2 Mo-95 nu-fission 0.00e+00 0.00e+00 -13 5 2 Mo-96 nu-fission 0.00e+00 0.00e+00 -14 5 2 Mo-97 nu-fission 0.00e+00 0.00e+00 -15 5 2 Mo-98 nu-fission 0.00e+00 0.00e+00 -16 5 2 Mo-100 nu-fission 0.00e+00 0.00e+00 -17 5 2 Si-28 nu-fission 0.00e+00 0.00e+00 -18 5 2 Si-29 nu-fission 0.00e+00 0.00e+00 -19 5 2 Si-30 nu-fission 0.00e+00 0.00e+00 -20 5 2 Cr-50 nu-fission 0.00e+00 0.00e+00 -21 5 2 Cr-52 nu-fission 0.00e+00 0.00e+00 -22 5 2 Cr-53 nu-fission 0.00e+00 0.00e+00 -23 5 2 Cr-54 nu-fission 0.00e+00 0.00e+00 -24 5 2 C-Nat nu-fission 0.00e+00 0.00e+00 -25 5 2 Cu-63 nu-fission 0.00e+00 0.00e+00 -26 5 2 Cu-65 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -21 6 1 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -22 6 1 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -23 6 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -24 6 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -25 6 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -26 6 1 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -27 6 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -28 6 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -29 6 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -30 6 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -31 6 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -32 6 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -33 6 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -34 6 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -35 6 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -36 6 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -37 6 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -38 6 1 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -39 6 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -40 6 1 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -41 6 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 6 2 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -1 6 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -2 6 2 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -3 6 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -4 6 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -5 6 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -6 6 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -7 6 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -8 6 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -9 6 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -10 6 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -11 6 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -12 6 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -13 6 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -14 6 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -15 6 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -16 6 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -17 6 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -18 6 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -19 6 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -20 6 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -21 6 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -22 6 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -23 6 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -24 6 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -25 6 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -26 6 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -27 6 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -28 6 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -29 6 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -30 6 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -31 6 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -32 6 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -33 6 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -34 6 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -35 6 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -36 6 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -37 6 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -38 6 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -39 6 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -40 6 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -41 6 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 -0 6 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -1 6 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -2 6 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -3 6 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -4 6 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -5 6 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -6 6 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -7 6 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -8 6 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -9 6 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -10 6 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -11 6 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -12 6 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -13 6 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -14 6 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -15 6 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -16 6 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -17 6 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -18 6 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -19 6 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -20 6 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -63 6 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -64 6 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -65 6 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -66 6 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -67 6 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -68 6 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -69 6 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -70 6 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -71 6 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -72 6 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -73 6 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -74 6 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -75 6 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -76 6 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -77 6 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -78 6 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -79 6 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -80 6 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -81 6 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -82 6 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -83 6 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -42 6 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -43 6 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -44 6 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -45 6 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -46 6 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -47 6 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -48 6 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -49 6 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -50 6 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -51 6 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -52 6 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -53 6 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -54 6 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -55 6 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -56 6 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -57 6 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -58 6 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -59 6 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -60 6 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -61 6 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -62 6 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -21 6 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -22 6 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -23 6 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -24 6 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -25 6 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -26 6 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -27 6 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -28 6 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -29 6 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -30 6 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -31 6 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -32 6 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -33 6 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -34 6 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -35 6 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -36 6 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -37 6 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -38 6 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -39 6 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -40 6 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -41 6 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 6 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 6 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 6 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -3 6 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -4 6 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 6 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 6 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 6 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -8 6 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -9 6 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -10 6 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 6 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -12 6 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -13 6 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -14 6 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 6 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -16 6 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -17 6 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -18 6 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -19 6 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -20 6 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -21 6 1 H-1 nu-fission 0.00e+00 0.00e+00 -22 6 1 O-16 nu-fission 0.00e+00 0.00e+00 -23 6 1 B-10 nu-fission 0.00e+00 0.00e+00 -24 6 1 B-11 nu-fission 0.00e+00 0.00e+00 -25 6 1 Fe-54 nu-fission 0.00e+00 0.00e+00 -26 6 1 Fe-56 nu-fission 0.00e+00 0.00e+00 -27 6 1 Fe-57 nu-fission 0.00e+00 0.00e+00 -28 6 1 Fe-58 nu-fission 0.00e+00 0.00e+00 -29 6 1 Ni-58 nu-fission 0.00e+00 0.00e+00 -30 6 1 Ni-60 nu-fission 0.00e+00 0.00e+00 -31 6 1 Ni-61 nu-fission 0.00e+00 0.00e+00 -32 6 1 Ni-62 nu-fission 0.00e+00 0.00e+00 -33 6 1 Ni-64 nu-fission 0.00e+00 0.00e+00 -34 6 1 Mn-55 nu-fission 0.00e+00 0.00e+00 -35 6 1 Si-28 nu-fission 0.00e+00 0.00e+00 -36 6 1 Si-29 nu-fission 0.00e+00 0.00e+00 -37 6 1 Si-30 nu-fission 0.00e+00 0.00e+00 -38 6 1 Cr-50 nu-fission 0.00e+00 0.00e+00 -39 6 1 Cr-52 nu-fission 0.00e+00 0.00e+00 -40 6 1 Cr-53 nu-fission 0.00e+00 0.00e+00 -41 6 1 Cr-54 nu-fission 0.00e+00 0.00e+00 -0 6 2 H-1 nu-fission 0.00e+00 0.00e+00 -1 6 2 O-16 nu-fission 0.00e+00 0.00e+00 -2 6 2 B-10 nu-fission 0.00e+00 0.00e+00 -3 6 2 B-11 nu-fission 0.00e+00 0.00e+00 -4 6 2 Fe-54 nu-fission 0.00e+00 0.00e+00 -5 6 2 Fe-56 nu-fission 0.00e+00 0.00e+00 -6 6 2 Fe-57 nu-fission 0.00e+00 0.00e+00 -7 6 2 Fe-58 nu-fission 0.00e+00 0.00e+00 -8 6 2 Ni-58 nu-fission 0.00e+00 0.00e+00 -9 6 2 Ni-60 nu-fission 0.00e+00 0.00e+00 -10 6 2 Ni-61 nu-fission 0.00e+00 0.00e+00 -11 6 2 Ni-62 nu-fission 0.00e+00 0.00e+00 -12 6 2 Ni-64 nu-fission 0.00e+00 0.00e+00 -13 6 2 Mn-55 nu-fission 0.00e+00 0.00e+00 -14 6 2 Si-28 nu-fission 0.00e+00 0.00e+00 -15 6 2 Si-29 nu-fission 0.00e+00 0.00e+00 -16 6 2 Si-30 nu-fission 0.00e+00 0.00e+00 -17 6 2 Cr-50 nu-fission 0.00e+00 0.00e+00 -18 6 2 Cr-52 nu-fission 0.00e+00 0.00e+00 -19 6 2 Cr-53 nu-fission 0.00e+00 0.00e+00 -20 6 2 Cr-54 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -21 7 1 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -22 7 1 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -23 7 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -24 7 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -25 7 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -26 7 1 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -27 7 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -28 7 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -29 7 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -30 7 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -31 7 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -32 7 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -33 7 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -34 7 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -35 7 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -36 7 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -37 7 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -38 7 1 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -39 7 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -40 7 1 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -41 7 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 7 2 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -1 7 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -2 7 2 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -3 7 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -4 7 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -5 7 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -6 7 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -7 7 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -8 7 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -9 7 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -10 7 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -11 7 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -12 7 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -13 7 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -14 7 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -15 7 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -16 7 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -17 7 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -18 7 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -19 7 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -20 7 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -21 7 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -22 7 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -23 7 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -24 7 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -25 7 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -26 7 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -27 7 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -28 7 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -29 7 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -30 7 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -31 7 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -32 7 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -33 7 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -34 7 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -35 7 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -36 7 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -37 7 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -38 7 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -39 7 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -40 7 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -41 7 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 -0 7 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -1 7 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -2 7 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -3 7 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -4 7 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -5 7 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -6 7 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -7 7 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -8 7 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -9 7 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -10 7 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -11 7 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -12 7 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -13 7 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -14 7 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -15 7 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -16 7 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -17 7 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -18 7 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -19 7 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -20 7 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -63 7 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -64 7 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -65 7 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -66 7 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -67 7 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -68 7 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -69 7 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -70 7 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -71 7 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -72 7 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -73 7 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -74 7 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -75 7 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -76 7 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -77 7 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -78 7 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -79 7 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -80 7 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -81 7 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -82 7 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -83 7 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -42 7 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -43 7 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -44 7 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -45 7 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -46 7 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -47 7 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -48 7 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -49 7 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -50 7 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -51 7 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -52 7 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -53 7 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -54 7 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -55 7 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -56 7 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -57 7 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -58 7 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -59 7 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -60 7 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -61 7 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -62 7 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -21 7 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -22 7 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -23 7 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -24 7 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -25 7 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -26 7 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -27 7 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -28 7 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -29 7 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -30 7 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -31 7 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -32 7 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -33 7 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -34 7 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -35 7 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -36 7 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -37 7 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -38 7 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -39 7 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -40 7 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -41 7 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 7 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 7 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 7 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -3 7 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -4 7 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 7 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 7 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 7 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -8 7 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -9 7 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -10 7 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 7 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -12 7 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -13 7 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -14 7 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 7 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -16 7 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -17 7 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -18 7 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -19 7 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -20 7 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -21 7 1 H-1 nu-fission 0.00e+00 0.00e+00 -22 7 1 O-16 nu-fission 0.00e+00 0.00e+00 -23 7 1 B-10 nu-fission 0.00e+00 0.00e+00 -24 7 1 B-11 nu-fission 0.00e+00 0.00e+00 -25 7 1 Fe-54 nu-fission 0.00e+00 0.00e+00 -26 7 1 Fe-56 nu-fission 0.00e+00 0.00e+00 -27 7 1 Fe-57 nu-fission 0.00e+00 0.00e+00 -28 7 1 Fe-58 nu-fission 0.00e+00 0.00e+00 -29 7 1 Ni-58 nu-fission 0.00e+00 0.00e+00 -30 7 1 Ni-60 nu-fission 0.00e+00 0.00e+00 -31 7 1 Ni-61 nu-fission 0.00e+00 0.00e+00 -32 7 1 Ni-62 nu-fission 0.00e+00 0.00e+00 -33 7 1 Ni-64 nu-fission 0.00e+00 0.00e+00 -34 7 1 Mn-55 nu-fission 0.00e+00 0.00e+00 -35 7 1 Si-28 nu-fission 0.00e+00 0.00e+00 -36 7 1 Si-29 nu-fission 0.00e+00 0.00e+00 -37 7 1 Si-30 nu-fission 0.00e+00 0.00e+00 -38 7 1 Cr-50 nu-fission 0.00e+00 0.00e+00 -39 7 1 Cr-52 nu-fission 0.00e+00 0.00e+00 -40 7 1 Cr-53 nu-fission 0.00e+00 0.00e+00 -41 7 1 Cr-54 nu-fission 0.00e+00 0.00e+00 -0 7 2 H-1 nu-fission 0.00e+00 0.00e+00 -1 7 2 O-16 nu-fission 0.00e+00 0.00e+00 -2 7 2 B-10 nu-fission 0.00e+00 0.00e+00 -3 7 2 B-11 nu-fission 0.00e+00 0.00e+00 -4 7 2 Fe-54 nu-fission 0.00e+00 0.00e+00 -5 7 2 Fe-56 nu-fission 0.00e+00 0.00e+00 -6 7 2 Fe-57 nu-fission 0.00e+00 0.00e+00 -7 7 2 Fe-58 nu-fission 0.00e+00 0.00e+00 -8 7 2 Ni-58 nu-fission 0.00e+00 0.00e+00 -9 7 2 Ni-60 nu-fission 0.00e+00 0.00e+00 -10 7 2 Ni-61 nu-fission 0.00e+00 0.00e+00 -11 7 2 Ni-62 nu-fission 0.00e+00 0.00e+00 -12 7 2 Ni-64 nu-fission 0.00e+00 0.00e+00 -13 7 2 Mn-55 nu-fission 0.00e+00 0.00e+00 -14 7 2 Si-28 nu-fission 0.00e+00 0.00e+00 -15 7 2 Si-29 nu-fission 0.00e+00 0.00e+00 -16 7 2 Si-30 nu-fission 0.00e+00 0.00e+00 -17 7 2 Cr-50 nu-fission 0.00e+00 0.00e+00 -18 7 2 Cr-52 nu-fission 0.00e+00 0.00e+00 -19 7 2 Cr-53 nu-fission 0.00e+00 0.00e+00 -20 7 2 Cr-54 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -21 8 1 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -22 8 1 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -23 8 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -24 8 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -25 8 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -26 8 1 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -27 8 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -28 8 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -29 8 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -30 8 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -31 8 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -32 8 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -33 8 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -34 8 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -35 8 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -36 8 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -37 8 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -38 8 1 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -39 8 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -40 8 1 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -41 8 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 8 2 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -1 8 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -2 8 2 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -3 8 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -4 8 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -5 8 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -6 8 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -7 8 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -8 8 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -9 8 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -10 8 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -11 8 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -12 8 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -13 8 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -14 8 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -15 8 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -16 8 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -17 8 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -18 8 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -19 8 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -20 8 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -21 8 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -22 8 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -23 8 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -24 8 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -25 8 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -26 8 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -27 8 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -28 8 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -29 8 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -30 8 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -31 8 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -32 8 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -33 8 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -34 8 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -35 8 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -36 8 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -37 8 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -38 8 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -39 8 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -40 8 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -41 8 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 -0 8 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -1 8 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -2 8 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -3 8 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -4 8 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -5 8 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -6 8 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -7 8 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -8 8 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -9 8 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -10 8 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -11 8 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -12 8 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -13 8 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -14 8 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -15 8 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -16 8 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -17 8 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -18 8 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -19 8 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -20 8 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -63 8 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -64 8 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -65 8 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -66 8 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -67 8 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -68 8 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -69 8 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -70 8 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -71 8 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -72 8 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -73 8 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -74 8 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -75 8 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -76 8 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -77 8 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -78 8 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -79 8 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -80 8 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -81 8 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -82 8 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -83 8 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -42 8 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -43 8 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -44 8 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -45 8 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -46 8 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -47 8 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -48 8 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -49 8 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -50 8 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -51 8 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -52 8 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -53 8 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -54 8 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -55 8 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -56 8 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -57 8 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -58 8 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -59 8 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -60 8 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -61 8 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -62 8 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -21 8 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -22 8 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -23 8 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -24 8 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -25 8 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -26 8 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -27 8 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -28 8 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -29 8 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -30 8 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -31 8 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -32 8 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -33 8 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -34 8 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -35 8 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -36 8 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -37 8 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -38 8 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -39 8 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -40 8 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -41 8 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 8 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 8 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 8 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -3 8 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -4 8 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 8 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 8 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 8 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -8 8 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -9 8 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -10 8 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 8 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -12 8 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -13 8 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -14 8 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 8 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -16 8 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -17 8 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -18 8 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -19 8 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -20 8 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -21 8 1 H-1 nu-fission 0.00e+00 0.00e+00 -22 8 1 O-16 nu-fission 0.00e+00 0.00e+00 -23 8 1 B-10 nu-fission 0.00e+00 0.00e+00 -24 8 1 B-11 nu-fission 0.00e+00 0.00e+00 -25 8 1 Fe-54 nu-fission 0.00e+00 0.00e+00 -26 8 1 Fe-56 nu-fission 0.00e+00 0.00e+00 -27 8 1 Fe-57 nu-fission 0.00e+00 0.00e+00 -28 8 1 Fe-58 nu-fission 0.00e+00 0.00e+00 -29 8 1 Ni-58 nu-fission 0.00e+00 0.00e+00 -30 8 1 Ni-60 nu-fission 0.00e+00 0.00e+00 -31 8 1 Ni-61 nu-fission 0.00e+00 0.00e+00 -32 8 1 Ni-62 nu-fission 0.00e+00 0.00e+00 -33 8 1 Ni-64 nu-fission 0.00e+00 0.00e+00 -34 8 1 Mn-55 nu-fission 0.00e+00 0.00e+00 -35 8 1 Si-28 nu-fission 0.00e+00 0.00e+00 -36 8 1 Si-29 nu-fission 0.00e+00 0.00e+00 -37 8 1 Si-30 nu-fission 0.00e+00 0.00e+00 -38 8 1 Cr-50 nu-fission 0.00e+00 0.00e+00 -39 8 1 Cr-52 nu-fission 0.00e+00 0.00e+00 -40 8 1 Cr-53 nu-fission 0.00e+00 0.00e+00 -41 8 1 Cr-54 nu-fission 0.00e+00 0.00e+00 -0 8 2 H-1 nu-fission 0.00e+00 0.00e+00 -1 8 2 O-16 nu-fission 0.00e+00 0.00e+00 -2 8 2 B-10 nu-fission 0.00e+00 0.00e+00 -3 8 2 B-11 nu-fission 0.00e+00 0.00e+00 -4 8 2 Fe-54 nu-fission 0.00e+00 0.00e+00 -5 8 2 Fe-56 nu-fission 0.00e+00 0.00e+00 -6 8 2 Fe-57 nu-fission 0.00e+00 0.00e+00 -7 8 2 Fe-58 nu-fission 0.00e+00 0.00e+00 -8 8 2 Ni-58 nu-fission 0.00e+00 0.00e+00 -9 8 2 Ni-60 nu-fission 0.00e+00 0.00e+00 -10 8 2 Ni-61 nu-fission 0.00e+00 0.00e+00 -11 8 2 Ni-62 nu-fission 0.00e+00 0.00e+00 -12 8 2 Ni-64 nu-fission 0.00e+00 0.00e+00 -13 8 2 Mn-55 nu-fission 0.00e+00 0.00e+00 -14 8 2 Si-28 nu-fission 0.00e+00 0.00e+00 -15 8 2 Si-29 nu-fission 0.00e+00 0.00e+00 -16 8 2 Si-30 nu-fission 0.00e+00 0.00e+00 -17 8 2 Cr-50 nu-fission 0.00e+00 0.00e+00 -18 8 2 Cr-52 nu-fission 0.00e+00 0.00e+00 -19 8 2 Cr-53 nu-fission 0.00e+00 0.00e+00 -20 8 2 Cr-54 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -21 9 1 H-1 ((total - scatter-1) / flux) 1.51e-01 4.81e-01 -22 9 1 O-16 ((total - scatter-1) / flux) 1.16e-01 1.14e-01 -23 9 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -24 9 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -25 9 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -26 9 1 Fe-56 ((total - scatter-1) / flux) 1.86e-01 2.00e-01 -27 9 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -28 9 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -29 9 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -30 9 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -31 9 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -32 9 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -33 9 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -34 9 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -35 9 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -36 9 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -37 9 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -38 9 1 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -39 9 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -40 9 1 Cr-53 ((total - scatter-1) / flux) 1.47e-01 1.40e-01 -41 9 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 9 2 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -1 9 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -2 9 2 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -3 9 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -4 9 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -5 9 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -6 9 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -7 9 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -8 9 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -9 9 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -10 9 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -11 9 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -12 9 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -13 9 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -14 9 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -15 9 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -16 9 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -17 9 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -18 9 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -19 9 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -20 9 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -21 9 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -22 9 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -23 9 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -24 9 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -25 9 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -26 9 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -27 9 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -28 9 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -29 9 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -30 9 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -31 9 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -32 9 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -33 9 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -34 9 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -35 9 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -36 9 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -37 9 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -38 9 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -39 9 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -40 9 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -41 9 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 -0 9 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -1 9 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -2 9 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -3 9 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -4 9 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -5 9 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -6 9 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -7 9 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -8 9 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -9 9 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -10 9 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -11 9 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -12 9 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -13 9 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -14 9 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -15 9 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -16 9 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -17 9 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -18 9 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -19 9 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -20 9 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -63 9 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.51e-01 4.81e-01 -64 9 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 1.16e-01 1.14e-01 -65 9 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -66 9 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -67 9 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -68 9 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 1.86e-01 2.00e-01 -69 9 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -70 9 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -71 9 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -72 9 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -73 9 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -74 9 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -75 9 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -76 9 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -77 9 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -78 9 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -79 9 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -80 9 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -81 9 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -82 9 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 1.47e-01 1.40e-01 -83 9 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -42 9 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -43 9 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -44 9 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -45 9 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -46 9 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -47 9 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -48 9 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -49 9 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -50 9 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -51 9 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -52 9 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -53 9 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -54 9 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -55 9 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -56 9 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -57 9 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -58 9 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -59 9 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -60 9 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -61 9 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -62 9 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -21 9 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -22 9 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -23 9 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -24 9 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -25 9 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -26 9 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -27 9 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -28 9 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -29 9 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -30 9 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -31 9 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -32 9 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -33 9 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -34 9 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -35 9 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -36 9 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -37 9 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -38 9 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -39 9 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -40 9 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -41 9 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 9 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 9 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 9 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -3 9 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -4 9 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 9 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 9 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 9 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -8 9 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -9 9 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -10 9 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 9 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -12 9 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -13 9 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -14 9 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 9 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -16 9 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -17 9 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -18 9 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -19 9 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -20 9 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -21 9 1 H-1 nu-fission 0.00e+00 0.00e+00 -22 9 1 O-16 nu-fission 0.00e+00 0.00e+00 -23 9 1 B-10 nu-fission 0.00e+00 0.00e+00 -24 9 1 B-11 nu-fission 0.00e+00 0.00e+00 -25 9 1 Fe-54 nu-fission 0.00e+00 0.00e+00 -26 9 1 Fe-56 nu-fission 0.00e+00 0.00e+00 -27 9 1 Fe-57 nu-fission 0.00e+00 0.00e+00 -28 9 1 Fe-58 nu-fission 0.00e+00 0.00e+00 -29 9 1 Ni-58 nu-fission 0.00e+00 0.00e+00 -30 9 1 Ni-60 nu-fission 0.00e+00 0.00e+00 -31 9 1 Ni-61 nu-fission 0.00e+00 0.00e+00 -32 9 1 Ni-62 nu-fission 0.00e+00 0.00e+00 -33 9 1 Ni-64 nu-fission 0.00e+00 0.00e+00 -34 9 1 Mn-55 nu-fission 0.00e+00 0.00e+00 -35 9 1 Si-28 nu-fission 0.00e+00 0.00e+00 -36 9 1 Si-29 nu-fission 0.00e+00 0.00e+00 -37 9 1 Si-30 nu-fission 0.00e+00 0.00e+00 -38 9 1 Cr-50 nu-fission 0.00e+00 0.00e+00 -39 9 1 Cr-52 nu-fission 0.00e+00 0.00e+00 -40 9 1 Cr-53 nu-fission 0.00e+00 0.00e+00 -41 9 1 Cr-54 nu-fission 0.00e+00 0.00e+00 -0 9 2 H-1 nu-fission 0.00e+00 0.00e+00 -1 9 2 O-16 nu-fission 0.00e+00 0.00e+00 -2 9 2 B-10 nu-fission 0.00e+00 0.00e+00 -3 9 2 B-11 nu-fission 0.00e+00 0.00e+00 -4 9 2 Fe-54 nu-fission 0.00e+00 0.00e+00 -5 9 2 Fe-56 nu-fission 0.00e+00 0.00e+00 -6 9 2 Fe-57 nu-fission 0.00e+00 0.00e+00 -7 9 2 Fe-58 nu-fission 0.00e+00 0.00e+00 -8 9 2 Ni-58 nu-fission 0.00e+00 0.00e+00 -9 9 2 Ni-60 nu-fission 0.00e+00 0.00e+00 -10 9 2 Ni-61 nu-fission 0.00e+00 0.00e+00 -11 9 2 Ni-62 nu-fission 0.00e+00 0.00e+00 -12 9 2 Ni-64 nu-fission 0.00e+00 0.00e+00 -13 9 2 Mn-55 nu-fission 0.00e+00 0.00e+00 -14 9 2 Si-28 nu-fission 0.00e+00 0.00e+00 -15 9 2 Si-29 nu-fission 0.00e+00 0.00e+00 -16 9 2 Si-30 nu-fission 0.00e+00 0.00e+00 -17 9 2 Cr-50 nu-fission 0.00e+00 0.00e+00 -18 9 2 Cr-52 nu-fission 0.00e+00 0.00e+00 -19 9 2 Cr-53 nu-fission 0.00e+00 0.00e+00 -20 9 2 Cr-54 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -21 10 1 H-1 ((total - scatter-1) / flux) 1.24e-01 5.41e-01 -22 10 1 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -23 10 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -24 10 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -25 10 1 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -26 10 1 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -27 10 1 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -28 10 1 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -29 10 1 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -30 10 1 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -31 10 1 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -32 10 1 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -33 10 1 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -34 10 1 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -35 10 1 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -36 10 1 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -37 10 1 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -38 10 1 Cr-50 ((total - scatter-1) / flux) 1.12e-01 1.38e-01 -39 10 1 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -40 10 1 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -41 10 1 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 10 2 H-1 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -1 10 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -2 10 2 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -3 10 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -4 10 2 Fe-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -5 10 2 Fe-56 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -6 10 2 Fe-57 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -7 10 2 Fe-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -8 10 2 Ni-58 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -9 10 2 Ni-60 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -10 10 2 Ni-61 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -11 10 2 Ni-62 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -12 10 2 Ni-64 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -13 10 2 Mn-55 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -14 10 2 Si-28 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -15 10 2 Si-29 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -16 10 2 Si-30 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -17 10 2 Cr-50 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -18 10 2 Cr-52 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -19 10 2 Cr-53 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -20 10 2 Cr-54 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -21 10 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -22 10 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -23 10 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -24 10 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -25 10 1 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -26 10 1 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -27 10 1 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -28 10 1 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -29 10 1 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -30 10 1 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -31 10 1 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -32 10 1 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -33 10 1 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -34 10 1 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -35 10 1 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -36 10 1 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -37 10 1 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -38 10 1 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -39 10 1 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -40 10 1 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -41 10 1 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 -0 10 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -1 10 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -2 10 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -3 10 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -4 10 2 Fe-54 (nu-fission / flux) 0.00e+00 0.00e+00 -5 10 2 Fe-56 (nu-fission / flux) 0.00e+00 0.00e+00 -6 10 2 Fe-57 (nu-fission / flux) 0.00e+00 0.00e+00 -7 10 2 Fe-58 (nu-fission / flux) 0.00e+00 0.00e+00 -8 10 2 Ni-58 (nu-fission / flux) 0.00e+00 0.00e+00 -9 10 2 Ni-60 (nu-fission / flux) 0.00e+00 0.00e+00 -10 10 2 Ni-61 (nu-fission / flux) 0.00e+00 0.00e+00 -11 10 2 Ni-62 (nu-fission / flux) 0.00e+00 0.00e+00 -12 10 2 Ni-64 (nu-fission / flux) 0.00e+00 0.00e+00 -13 10 2 Mn-55 (nu-fission / flux) 0.00e+00 0.00e+00 -14 10 2 Si-28 (nu-fission / flux) 0.00e+00 0.00e+00 -15 10 2 Si-29 (nu-fission / flux) 0.00e+00 0.00e+00 -16 10 2 Si-30 (nu-fission / flux) 0.00e+00 0.00e+00 -17 10 2 Cr-50 (nu-fission / flux) 0.00e+00 0.00e+00 -18 10 2 Cr-52 (nu-fission / flux) 0.00e+00 0.00e+00 -19 10 2 Cr-53 (nu-fission / flux) 0.00e+00 0.00e+00 -20 10 2 Cr-54 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -63 10 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.24e-01 5.41e-01 -64 10 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -65 10 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -66 10 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -67 10 1 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -68 10 1 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -69 10 1 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -70 10 1 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -71 10 1 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -72 10 1 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -73 10 1 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -74 10 1 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -75 10 1 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -76 10 1 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -77 10 1 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -78 10 1 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -79 10 1 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -80 10 1 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 1.12e-01 1.38e-01 -81 10 1 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -82 10 1 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -83 10 1 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -42 10 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -43 10 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -44 10 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -45 10 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -46 10 1 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -47 10 1 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -48 10 1 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -49 10 1 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -50 10 1 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -51 10 1 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -52 10 1 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -53 10 1 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -54 10 1 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -55 10 1 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -56 10 1 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -57 10 1 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -58 10 1 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -59 10 1 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -60 10 1 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -61 10 1 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -62 10 1 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -21 10 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -22 10 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -23 10 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -24 10 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -25 10 2 1 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -26 10 2 1 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -27 10 2 1 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -28 10 2 1 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -29 10 2 1 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -30 10 2 1 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -31 10 2 1 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -32 10 2 1 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -33 10 2 1 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -34 10 2 1 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -35 10 2 1 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -36 10 2 1 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -37 10 2 1 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -38 10 2 1 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -39 10 2 1 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -40 10 2 1 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -41 10 2 1 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 10 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -1 10 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 10 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -3 10 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -4 10 2 2 Fe-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 10 2 2 Fe-56 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 10 2 2 Fe-57 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 10 2 2 Fe-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -8 10 2 2 Ni-58 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -9 10 2 2 Ni-60 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -10 10 2 2 Ni-61 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 10 2 2 Ni-62 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -12 10 2 2 Ni-64 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -13 10 2 2 Mn-55 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -14 10 2 2 Si-28 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 10 2 2 Si-29 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -16 10 2 2 Si-30 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -17 10 2 2 Cr-50 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -18 10 2 2 Cr-52 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -19 10 2 2 Cr-53 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -20 10 2 2 Cr-54 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -21 10 1 H-1 nu-fission 0.00e+00 0.00e+00 -22 10 1 O-16 nu-fission 0.00e+00 0.00e+00 -23 10 1 B-10 nu-fission 0.00e+00 0.00e+00 -24 10 1 B-11 nu-fission 0.00e+00 0.00e+00 -25 10 1 Fe-54 nu-fission 0.00e+00 0.00e+00 -26 10 1 Fe-56 nu-fission 0.00e+00 0.00e+00 -27 10 1 Fe-57 nu-fission 0.00e+00 0.00e+00 -28 10 1 Fe-58 nu-fission 0.00e+00 0.00e+00 -29 10 1 Ni-58 nu-fission 0.00e+00 0.00e+00 -30 10 1 Ni-60 nu-fission 0.00e+00 0.00e+00 -31 10 1 Ni-61 nu-fission 0.00e+00 0.00e+00 -32 10 1 Ni-62 nu-fission 0.00e+00 0.00e+00 -33 10 1 Ni-64 nu-fission 0.00e+00 0.00e+00 -34 10 1 Mn-55 nu-fission 0.00e+00 0.00e+00 -35 10 1 Si-28 nu-fission 0.00e+00 0.00e+00 -36 10 1 Si-29 nu-fission 0.00e+00 0.00e+00 -37 10 1 Si-30 nu-fission 0.00e+00 0.00e+00 -38 10 1 Cr-50 nu-fission 0.00e+00 0.00e+00 -39 10 1 Cr-52 nu-fission 0.00e+00 0.00e+00 -40 10 1 Cr-53 nu-fission 0.00e+00 0.00e+00 -41 10 1 Cr-54 nu-fission 0.00e+00 0.00e+00 -0 10 2 H-1 nu-fission 0.00e+00 0.00e+00 -1 10 2 O-16 nu-fission 0.00e+00 0.00e+00 -2 10 2 B-10 nu-fission 0.00e+00 0.00e+00 -3 10 2 B-11 nu-fission 0.00e+00 0.00e+00 -4 10 2 Fe-54 nu-fission 0.00e+00 0.00e+00 -5 10 2 Fe-56 nu-fission 0.00e+00 0.00e+00 -6 10 2 Fe-57 nu-fission 0.00e+00 0.00e+00 -7 10 2 Fe-58 nu-fission 0.00e+00 0.00e+00 -8 10 2 Ni-58 nu-fission 0.00e+00 0.00e+00 -9 10 2 Ni-60 nu-fission 0.00e+00 0.00e+00 -10 10 2 Ni-61 nu-fission 0.00e+00 0.00e+00 -11 10 2 Ni-62 nu-fission 0.00e+00 0.00e+00 -12 10 2 Ni-64 nu-fission 0.00e+00 0.00e+00 -13 10 2 Mn-55 nu-fission 0.00e+00 0.00e+00 -14 10 2 Si-28 nu-fission 0.00e+00 0.00e+00 -15 10 2 Si-29 nu-fission 0.00e+00 0.00e+00 -16 10 2 Si-30 nu-fission 0.00e+00 0.00e+00 -17 10 2 Cr-50 nu-fission 0.00e+00 0.00e+00 -18 10 2 Cr-52 nu-fission 0.00e+00 0.00e+00 -19 10 2 Cr-53 nu-fission 0.00e+00 0.00e+00 -20 10 2 Cr-54 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -9 11 1 H-1 ((total - scatter-1) / flux) 1.31e-01 4.76e-01 -10 11 1 O-16 ((total - scatter-1) / flux) 2.87e-02 4.30e-02 -11 11 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -12 11 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -13 11 1 Zr-90 ((total - scatter-1) / flux) 2.20e-02 4.00e-02 -14 11 1 Zr-91 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -15 11 1 Zr-92 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -16 11 1 Zr-94 ((total - scatter-1) / flux) 4.19e-03 8.73e-02 -17 11 1 Zr-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -0 11 2 H-1 ((total - scatter-1) / flux) 6.87e-01 1.24e+00 -1 11 2 O-16 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -2 11 2 B-10 ((total - scatter-1) / flux) 4.29e-02 6.07e-02 -3 11 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -4 11 2 Zr-90 ((total - scatter-1) / flux) 3.96e-02 1.05e-01 -5 11 2 Zr-91 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -6 11 2 Zr-92 ((total - scatter-1) / flux) 8.42e-02 1.03e-01 -7 11 2 Zr-94 ((total - scatter-1) / flux) 9.20e-02 1.26e-01 -8 11 2 Zr-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -9 11 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -10 11 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -11 11 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -12 11 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -13 11 1 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 -14 11 1 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 -15 11 1 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 -16 11 1 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 -17 11 1 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 -0 11 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -1 11 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -2 11 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -3 11 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -4 11 2 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 -5 11 2 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 -6 11 2 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 -7 11 2 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 -8 11 2 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -27 11 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 9.96e-02 4.43e-01 -28 11 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 2.87e-02 4.30e-02 -29 11 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -30 11 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -31 11 1 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 2.20e-02 4.00e-02 -32 11 1 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -33 11 1 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -34 11 1 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 4.19e-03 8.73e-02 -35 11 1 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -18 11 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 3.19e-02 4.51e-02 -19 11 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -20 11 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -21 11 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -22 11 1 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -23 11 1 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -24 11 1 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -25 11 1 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -26 11 1 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -9 11 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -10 11 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 11 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -12 11 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -13 11 2 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -14 11 2 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 11 2 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -16 11 2 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -17 11 2 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 11 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 6.87e-01 1.24e+00 -1 11 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -2 11 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -3 11 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -4 11 2 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 3.96e-02 1.05e-01 -5 11 2 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -6 11 2 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 8.42e-02 1.03e-01 -7 11 2 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 9.20e-02 1.26e-01 -8 11 2 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -9 11 1 H-1 nu-fission 0.00e+00 0.00e+00 -10 11 1 O-16 nu-fission 0.00e+00 0.00e+00 -11 11 1 B-10 nu-fission 0.00e+00 0.00e+00 -12 11 1 B-11 nu-fission 0.00e+00 0.00e+00 -13 11 1 Zr-90 nu-fission 0.00e+00 0.00e+00 -14 11 1 Zr-91 nu-fission 0.00e+00 0.00e+00 -15 11 1 Zr-92 nu-fission 0.00e+00 0.00e+00 -16 11 1 Zr-94 nu-fission 0.00e+00 0.00e+00 -17 11 1 Zr-96 nu-fission 0.00e+00 0.00e+00 -0 11 2 H-1 nu-fission 0.00e+00 0.00e+00 -1 11 2 O-16 nu-fission 0.00e+00 0.00e+00 -2 11 2 B-10 nu-fission 0.00e+00 0.00e+00 -3 11 2 B-11 nu-fission 0.00e+00 0.00e+00 -4 11 2 Zr-90 nu-fission 0.00e+00 0.00e+00 -5 11 2 Zr-91 nu-fission 0.00e+00 0.00e+00 -6 11 2 Zr-92 nu-fission 0.00e+00 0.00e+00 -7 11 2 Zr-94 nu-fission 0.00e+00 0.00e+00 -8 11 2 Zr-96 nu-fission 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -9 12 1 H-1 ((total - scatter-1) / flux) 9.89e-02 1.79e-01 -10 12 1 O-16 ((total - scatter-1) / flux) 1.33e-02 2.04e-02 -11 12 1 B-10 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -12 12 1 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -13 12 1 Zr-90 ((total - scatter-1) / flux) 9.00e-02 7.55e-02 -14 12 1 Zr-91 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -15 12 1 Zr-92 ((total - scatter-1) / flux) 3.50e-03 1.70e-02 -16 12 1 Zr-94 ((total - scatter-1) / flux) 4.85e-03 1.63e-02 -17 12 1 Zr-96 ((total - scatter-1) / flux) 2.73e-03 1.75e-02 -0 12 2 H-1 ((total - scatter-1) / flux) 1.26e+00 1.98e+00 -1 12 2 O-16 ((total - scatter-1) / flux) 7.92e-02 1.05e-01 -2 12 2 B-10 ((total - scatter-1) / flux) 1.69e-02 2.39e-02 -3 12 2 B-11 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -4 12 2 Zr-90 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -5 12 2 Zr-91 ((total - scatter-1) / flux) 3.32e-02 4.07e-02 -6 12 2 Zr-92 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -7 12 2 Zr-94 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 -8 12 2 Zr-96 ((total - scatter-1) / flux) 0.00e+00 0.00e+00 material group in nuclide score mean std. dev. -9 12 1 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -10 12 1 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -11 12 1 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -12 12 1 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -13 12 1 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 -14 12 1 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 -15 12 1 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 -16 12 1 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 -17 12 1 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 -0 12 2 H-1 (nu-fission / flux) 0.00e+00 0.00e+00 -1 12 2 O-16 (nu-fission / flux) 0.00e+00 0.00e+00 -2 12 2 B-10 (nu-fission / flux) 0.00e+00 0.00e+00 -3 12 2 B-11 (nu-fission / flux) 0.00e+00 0.00e+00 -4 12 2 Zr-90 (nu-fission / flux) 0.00e+00 0.00e+00 -5 12 2 Zr-91 (nu-fission / flux) 0.00e+00 0.00e+00 -6 12 2 Zr-92 (nu-fission / flux) 0.00e+00 0.00e+00 -7 12 2 Zr-94 (nu-fission / flux) 0.00e+00 0.00e+00 -8 12 2 Zr-96 (nu-fission / flux) 0.00e+00 0.00e+00 material group in group out nuclide score mean std. dev. -27 12 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 7.17e-02 1.68e-01 -28 12 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 1.33e-02 2.04e-02 -29 12 1 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -30 12 1 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -31 12 1 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 9.00e-02 7.55e-02 -32 12 1 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -33 12 1 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 3.50e-03 1.70e-02 -34 12 1 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 4.85e-03 1.63e-02 -35 12 1 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 2.73e-03 1.75e-02 -18 12 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 2.72e-02 2.96e-02 -19 12 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -20 12 1 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -21 12 1 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -22 12 1 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -23 12 1 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -24 12 1 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -25 12 1 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -26 12 1 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -9 12 2 1 H-1 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -10 12 2 1 O-16 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -11 12 2 1 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -12 12 2 1 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -13 12 2 1 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -14 12 2 1 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -15 12 2 1 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -16 12 2 1 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -17 12 2 1 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -0 12 2 2 H-1 ((nu-scatter-0 - scatter-1) / flux) 1.24e+00 1.96e+00 -1 12 2 2 O-16 ((nu-scatter-0 - scatter-1) / flux) 7.92e-02 1.05e-01 -2 12 2 2 B-10 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -3 12 2 2 B-11 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -4 12 2 2 Zr-90 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -5 12 2 2 Zr-91 ((nu-scatter-0 - scatter-1) / flux) 3.32e-02 4.07e-02 -6 12 2 2 Zr-92 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -7 12 2 2 Zr-94 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 -8 12 2 2 Zr-96 ((nu-scatter-0 - scatter-1) / flux) 0.00e+00 0.00e+00 material group out nuclide score mean std. dev. -9 12 1 H-1 nu-fission 0.00e+00 0.00e+00 -10 12 1 O-16 nu-fission 0.00e+00 0.00e+00 -11 12 1 B-10 nu-fission 0.00e+00 0.00e+00 -12 12 1 B-11 nu-fission 0.00e+00 0.00e+00 -13 12 1 Zr-90 nu-fission 0.00e+00 0.00e+00 -14 12 1 Zr-91 nu-fission 0.00e+00 0.00e+00 -15 12 1 Zr-92 nu-fission 0.00e+00 0.00e+00 -16 12 1 Zr-94 nu-fission 0.00e+00 0.00e+00 -17 12 1 Zr-96 nu-fission 0.00e+00 0.00e+00 -0 12 2 H-1 nu-fission 0.00e+00 0.00e+00 -1 12 2 O-16 nu-fission 0.00e+00 0.00e+00 -2 12 2 B-10 nu-fission 0.00e+00 0.00e+00 -3 12 2 B-11 nu-fission 0.00e+00 0.00e+00 -4 12 2 Zr-90 nu-fission 0.00e+00 0.00e+00 -5 12 2 Zr-91 nu-fission 0.00e+00 0.00e+00 -6 12 2 Zr-92 nu-fission 0.00e+00 0.00e+00 -7 12 2 Zr-94 nu-fission 0.00e+00 0.00e+00 -8 12 2 Zr-96 nu-fission 0.00e+00 0.00e+00 \ No newline at end of file + material group in nuclide mean std. dev. +34 1 1 U-234 0.000173 0.000173 +35 1 1 U-235 0.010677 0.001889 +36 1 1 U-236 0.002390 0.001055 +37 1 1 U-238 0.213680 0.013272 +38 1 1 Np-237 0.000000 0.000000 +39 1 1 Pu-238 0.000000 0.000000 +40 1 1 Pu-239 0.002911 0.000639 +41 1 1 Pu-240 0.004426 0.000806 +42 1 1 Pu-241 0.000690 0.000387 +43 1 1 Pu-242 0.000000 0.000000 +44 1 1 Am-241 0.000173 0.000173 +45 1 1 Am-242m 0.000000 0.000000 +46 1 1 Am-243 0.000000 0.000000 +47 1 1 Cm-242 0.000000 0.000000 +48 1 1 Cm-243 0.000000 0.000000 +49 1 1 Cm-244 0.000000 0.000000 +50 1 1 Cm-245 0.000000 0.000000 +51 1 1 Mo-95 0.000000 0.000000 +52 1 1 Tc-99 0.000173 0.000173 +53 1 1 Ru-101 0.000238 0.000254 +54 1 1 Ru-103 0.000002 0.000243 +55 1 1 Ag-109 0.000000 0.000000 +56 1 1 Xe-135 0.000000 0.000000 +57 1 1 Cs-133 0.000347 0.000213 +58 1 1 Nd-143 0.000447 0.000292 +59 1 1 Nd-145 0.000564 0.000294 +60 1 1 Sm-147 0.000000 0.000000 +61 1 1 Sm-149 0.000000 0.000000 +62 1 1 Sm-150 0.000472 0.000239 +63 1 1 Sm-151 0.000000 0.000000 +64 1 1 Sm-152 0.000492 0.000352 +65 1 1 Eu-153 0.000173 0.000173 +66 1 1 Gd-155 0.000000 0.000000 +67 1 1 O-16 0.134715 0.009801 +0 1 2 U-234 0.000000 0.000000 +1 1 2 U-235 0.199907 0.007776 +2 1 2 U-236 0.001501 0.002037 +3 1 2 U-238 0.255355 0.029743 +4 1 2 Np-237 0.000000 0.000000 +5 1 2 Pu-238 0.000000 0.000000 +6 1 2 Pu-239 0.160378 0.011366 +7 1 2 Pu-240 0.007920 0.003710 +8 1 2 Pu-241 0.017820 0.003733 +9 1 2 Pu-242 0.000000 0.000000 +10 1 2 Am-241 0.000000 0.000000 +11 1 2 Am-242m 0.000000 0.000000 +12 1 2 Am-243 0.000000 0.000000 +13 1 2 Cm-242 0.000000 0.000000 +14 1 2 Cm-243 0.000000 0.000000 +15 1 2 Cm-244 0.000000 0.000000 +16 1 2 Cm-245 0.000000 0.000000 +17 1 2 Mo-95 0.000000 0.000000 +18 1 2 Tc-99 0.000000 0.000000 +19 1 2 Ru-101 0.000000 0.000000 +20 1 2 Ru-103 0.000000 0.000000 +21 1 2 Ag-109 0.000000 0.000000 +22 1 2 Xe-135 0.013860 0.003976 +23 1 2 Cs-133 0.000000 0.000000 +24 1 2 Nd-143 0.003960 0.002427 +25 1 2 Nd-145 0.000000 0.000000 +26 1 2 Sm-147 0.000000 0.000000 +27 1 2 Sm-149 0.001980 0.001981 +28 1 2 Sm-150 0.000000 0.000000 +29 1 2 Sm-151 0.001980 0.001981 +30 1 2 Sm-152 0.000000 0.000000 +31 1 2 Eu-153 0.000000 0.000000 +32 1 2 Gd-155 0.000000 0.000000 +33 1 2 O-16 0.196946 0.014729 material group in nuclide mean std. dev. +34 1 1 U-234 7.274440e-06 4.419477e-07 +35 1 1 U-235 9.587803e-03 5.936922e-04 +36 1 1 U-236 7.566099e-05 7.523935e-06 +37 1 1 U-238 7.178367e-03 6.505680e-04 +38 1 1 Np-237 1.315682e-05 8.036501e-07 +39 1 1 Pu-238 7.746151e-06 3.992835e-07 +40 1 1 Pu-239 3.805294e-03 3.637600e-04 +41 1 1 Pu-240 6.941319e-05 4.729737e-06 +42 1 1 Pu-241 1.033844e-03 9.083913e-05 +43 1 1 Pu-242 5.995332e-06 3.821721e-07 +44 1 1 Am-241 1.148585e-06 8.271648e-08 +45 1 1 Am-242m 1.100215e-06 6.159956e-08 +46 1 1 Am-243 8.323826e-07 5.841792e-08 +47 1 1 Cm-242 5.088970e-07 5.258007e-08 +48 1 1 Cm-243 2.245435e-07 1.459025e-08 +49 1 1 Cm-244 2.993206e-07 2.746129e-08 +50 1 1 Cm-245 3.063611e-07 3.057751e-08 +51 1 1 Mo-95 0.000000e+00 0.000000e+00 +52 1 1 Tc-99 0.000000e+00 0.000000e+00 +53 1 1 Ru-101 0.000000e+00 0.000000e+00 +54 1 1 Ru-103 0.000000e+00 0.000000e+00 +55 1 1 Ag-109 0.000000e+00 0.000000e+00 +56 1 1 Xe-135 0.000000e+00 0.000000e+00 +57 1 1 Cs-133 0.000000e+00 0.000000e+00 +58 1 1 Nd-143 0.000000e+00 0.000000e+00 +59 1 1 Nd-145 0.000000e+00 0.000000e+00 +60 1 1 Sm-147 0.000000e+00 0.000000e+00 +61 1 1 Sm-149 0.000000e+00 0.000000e+00 +62 1 1 Sm-150 0.000000e+00 0.000000e+00 +63 1 1 Sm-151 0.000000e+00 0.000000e+00 +64 1 1 Sm-152 0.000000e+00 0.000000e+00 +65 1 1 Eu-153 0.000000e+00 0.000000e+00 +66 1 1 Gd-155 0.000000e+00 0.000000e+00 +67 1 1 O-16 0.000000e+00 0.000000e+00 +0 1 2 U-234 4.408576e-07 2.828309e-08 +1 1 2 U-235 3.768094e-01 2.445671e-02 +2 1 2 U-236 6.097538e-06 3.733038e-07 +3 1 2 U-238 5.353074e-07 3.310544e-08 +4 1 2 Np-237 2.702971e-07 2.098939e-08 +5 1 2 Pu-238 3.463109e-05 2.638394e-06 +6 1 2 Pu-239 2.889643e-01 1.376004e-02 +7 1 2 Pu-240 4.533642e-06 2.544289e-07 +8 1 2 Pu-241 4.809366e-02 2.778345e-03 +9 1 2 Pu-242 8.715325e-08 5.460893e-09 +10 1 2 Am-241 4.611736e-06 2.155039e-07 +11 1 2 Am-242m 1.428047e-04 8.436437e-06 +12 1 2 Am-243 7.883895e-08 4.734503e-09 +13 1 2 Cm-242 9.731025e-07 6.143750e-08 +14 1 2 Cm-243 1.825830e-06 1.074849e-07 +15 1 2 Cm-244 1.581823e-07 9.938064e-09 +16 1 2 Cm-245 1.213386e-05 8.812019e-07 +17 1 2 Mo-95 0.000000e+00 0.000000e+00 +18 1 2 Tc-99 0.000000e+00 0.000000e+00 +19 1 2 Ru-101 0.000000e+00 0.000000e+00 +20 1 2 Ru-103 0.000000e+00 0.000000e+00 +21 1 2 Ag-109 0.000000e+00 0.000000e+00 +22 1 2 Xe-135 0.000000e+00 0.000000e+00 +23 1 2 Cs-133 0.000000e+00 0.000000e+00 +24 1 2 Nd-143 0.000000e+00 0.000000e+00 +25 1 2 Nd-145 0.000000e+00 0.000000e+00 +26 1 2 Sm-147 0.000000e+00 0.000000e+00 +27 1 2 Sm-149 0.000000e+00 0.000000e+00 +28 1 2 Sm-150 0.000000e+00 0.000000e+00 +29 1 2 Sm-151 0.000000e+00 0.000000e+00 +30 1 2 Sm-152 0.000000e+00 0.000000e+00 +31 1 2 Eu-153 0.000000e+00 0.000000e+00 +32 1 2 Gd-155 0.000000e+00 0.000000e+00 +33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide moment mean std. dev. moment +102 1 1 1 U-234 P0 0.000000 0.000000 P0 +103 1 1 1 U-235 P0 0.003226 0.001139 P0 +104 1 1 1 U-236 P0 0.001697 0.000923 P0 +105 1 1 1 U-238 P0 0.194620 0.013297 P0 +106 1 1 1 Np-237 P0 0.000000 0.000000 P0 +107 1 1 1 Pu-238 P0 0.000000 0.000000 P0 +108 1 1 1 Pu-239 P0 0.001005 0.000477 P0 +109 1 1 1 Pu-240 P0 0.001307 0.000295 P0 +110 1 1 1 Pu-241 P0 0.000344 0.000244 P0 +111 1 1 1 Pu-242 P0 0.000000 0.000000 P0 +112 1 1 1 Am-241 P0 0.000000 0.000000 P0 +113 1 1 1 Am-242m P0 0.000000 0.000000 P0 +114 1 1 1 Am-243 P0 0.000000 0.000000 P0 +115 1 1 1 Cm-242 P0 0.000000 0.000000 P0 +116 1 1 1 Cm-243 P0 0.000000 0.000000 P0 +117 1 1 1 Cm-244 P0 0.000000 0.000000 P0 +118 1 1 1 Cm-245 P0 0.000000 0.000000 P0 +119 1 1 1 Mo-95 P0 0.000000 0.000000 P0 +120 1 1 1 Tc-99 P0 0.000000 0.000000 P0 +121 1 1 1 Ru-101 P0 0.000238 0.000254 P0 +122 1 1 1 Ru-103 P0 0.000002 0.000243 P0 +123 1 1 1 Ag-109 P0 0.000000 0.000000 P0 +124 1 1 1 Xe-135 P0 0.000000 0.000000 P0 +125 1 1 1 Cs-133 P0 0.000000 0.000000 P0 +126 1 1 1 Nd-143 P0 0.000447 0.000292 P0 +127 1 1 1 Nd-145 P0 0.000564 0.000294 P0 +128 1 1 1 Sm-147 P0 0.000000 0.000000 P0 +129 1 1 1 Sm-149 P0 0.000000 0.000000 P0 +130 1 1 1 Sm-150 P0 0.000299 0.000238 P0 +131 1 1 1 Sm-151 P0 0.000000 0.000000 P0 +132 1 1 1 Sm-152 P0 0.000492 0.000352 P0 +133 1 1 1 Eu-153 P0 0.000000 0.000000 P0 +134 1 1 1 Gd-155 P0 0.000000 0.000000 P0 +135 1 1 1 O-16 P0 0.133156 0.009821 P0 +68 1 1 2 U-234 P0 0.000000 0.000000 P0 +69 1 1 2 U-235 P0 0.000000 0.000000 P0 +70 1 1 2 U-236 P0 0.000000 0.000000 P0 +71 1 1 2 U-238 P0 0.000173 0.000173 P0 +72 1 1 2 Np-237 P0 0.000000 0.000000 P0 +73 1 1 2 Pu-238 P0 0.000000 0.000000 P0 +74 1 1 2 Pu-239 P0 0.000000 0.000000 P0 +75 1 1 2 Pu-240 P0 0.000000 0.000000 P0 +76 1 1 2 Pu-241 P0 0.000000 0.000000 P0 +77 1 1 2 Pu-242 P0 0.000000 0.000000 P0 +78 1 1 2 Am-241 P0 0.000000 0.000000 P0 +79 1 1 2 Am-242m P0 0.000000 0.000000 P0 +80 1 1 2 Am-243 P0 0.000000 0.000000 P0 +81 1 1 2 Cm-242 P0 0.000000 0.000000 P0 +82 1 1 2 Cm-243 P0 0.000000 0.000000 P0 +83 1 1 2 Cm-244 P0 0.000000 0.000000 P0 +84 1 1 2 Cm-245 P0 0.000000 0.000000 P0 +85 1 1 2 Mo-95 P0 0.000000 0.000000 P0 +86 1 1 2 Tc-99 P0 0.000000 0.000000 P0 +87 1 1 2 Ru-101 P0 0.000000 0.000000 P0 +88 1 1 2 Ru-103 P0 0.000000 0.000000 P0 +89 1 1 2 Ag-109 P0 0.000000 0.000000 P0 +90 1 1 2 Xe-135 P0 0.000000 0.000000 P0 +91 1 1 2 Cs-133 P0 0.000000 0.000000 P0 +92 1 1 2 Nd-143 P0 0.000000 0.000000 P0 +93 1 1 2 Nd-145 P0 0.000000 0.000000 P0 +94 1 1 2 Sm-147 P0 0.000000 0.000000 P0 +95 1 1 2 Sm-149 P0 0.000000 0.000000 P0 +96 1 1 2 Sm-150 P0 0.000000 0.000000 P0 +97 1 1 2 Sm-151 P0 0.000000 0.000000 P0 +98 1 1 2 Sm-152 P0 0.000000 0.000000 P0 +99 1 1 2 Eu-153 P0 0.000000 0.000000 P0 +100 1 1 2 Gd-155 P0 0.000000 0.000000 P0 +101 1 1 2 O-16 P0 0.001386 0.000446 P0 +34 1 2 1 U-234 P0 0.000000 0.000000 P0 +35 1 2 1 U-235 P0 0.000000 0.000000 P0 +36 1 2 1 U-236 P0 0.000000 0.000000 P0 +37 1 2 1 U-238 P0 0.000000 0.000000 P0 +38 1 2 1 Np-237 P0 0.000000 0.000000 P0 +39 1 2 1 Pu-238 P0 0.000000 0.000000 P0 +40 1 2 1 Pu-239 P0 0.000000 0.000000 P0 +41 1 2 1 Pu-240 P0 0.000000 0.000000 P0 +42 1 2 1 Pu-241 P0 0.000000 0.000000 P0 +43 1 2 1 Pu-242 P0 0.000000 0.000000 P0 +44 1 2 1 Am-241 P0 0.000000 0.000000 P0 +45 1 2 1 Am-242m P0 0.000000 0.000000 P0 +46 1 2 1 Am-243 P0 0.000000 0.000000 P0 +47 1 2 1 Cm-242 P0 0.000000 0.000000 P0 +48 1 2 1 Cm-243 P0 0.000000 0.000000 P0 +49 1 2 1 Cm-244 P0 0.000000 0.000000 P0 +50 1 2 1 Cm-245 P0 0.000000 0.000000 P0 +51 1 2 1 Mo-95 P0 0.000000 0.000000 P0 +52 1 2 1 Tc-99 P0 0.000000 0.000000 P0 +53 1 2 1 Ru-101 P0 0.000000 0.000000 P0 +54 1 2 1 Ru-103 P0 0.000000 0.000000 P0 +55 1 2 1 Ag-109 P0 0.000000 0.000000 P0 +56 1 2 1 Xe-135 P0 0.000000 0.000000 P0 +57 1 2 1 Cs-133 P0 0.000000 0.000000 P0 +58 1 2 1 Nd-143 P0 0.000000 0.000000 P0 +59 1 2 1 Nd-145 P0 0.000000 0.000000 P0 +60 1 2 1 Sm-147 P0 0.000000 0.000000 P0 +61 1 2 1 Sm-149 P0 0.000000 0.000000 P0 +62 1 2 1 Sm-150 P0 0.000000 0.000000 P0 +63 1 2 1 Sm-151 P0 0.000000 0.000000 P0 +64 1 2 1 Sm-152 P0 0.000000 0.000000 P0 +65 1 2 1 Eu-153 P0 0.000000 0.000000 P0 +66 1 2 1 Gd-155 P0 0.000000 0.000000 P0 +67 1 2 1 O-16 P0 0.000000 0.000000 P0 +0 1 2 2 U-234 P0 0.000000 0.000000 P0 +1 1 2 2 U-235 P0 0.003889 0.003962 P0 +2 1 2 2 U-236 P0 0.001501 0.002037 P0 +3 1 2 2 U-238 P0 0.219715 0.025984 P0 +4 1 2 2 Np-237 P0 0.000000 0.000000 P0 +5 1 2 2 Pu-238 P0 0.000000 0.000000 P0 +6 1 2 2 Pu-239 P0 0.000000 0.000000 P0 +7 1 2 2 Pu-240 P0 0.000000 0.000000 P0 +8 1 2 2 Pu-241 P0 0.000000 0.000000 P0 +9 1 2 2 Pu-242 P0 0.000000 0.000000 P0 +10 1 2 2 Am-241 P0 0.000000 0.000000 P0 +11 1 2 2 Am-242m P0 0.000000 0.000000 P0 +12 1 2 2 Am-243 P0 0.000000 0.000000 P0 +13 1 2 2 Cm-242 P0 0.000000 0.000000 P0 +14 1 2 2 Cm-243 P0 0.000000 0.000000 P0 +15 1 2 2 Cm-244 P0 0.000000 0.000000 P0 +16 1 2 2 Cm-245 P0 0.000000 0.000000 P0 +17 1 2 2 Mo-95 P0 0.000000 0.000000 P0 +18 1 2 2 Tc-99 P0 0.000000 0.000000 P0 +19 1 2 2 Ru-101 P0 0.000000 0.000000 P0 +20 1 2 2 Ru-103 P0 0.000000 0.000000 P0 +21 1 2 2 Ag-109 P0 0.000000 0.000000 P0 +22 1 2 2 Xe-135 P0 0.000000 0.000000 P0 +23 1 2 2 Cs-133 P0 0.000000 0.000000 P0 +24 1 2 2 Nd-143 P0 0.000000 0.000000 P0 +25 1 2 2 Nd-145 P0 0.000000 0.000000 P0 +26 1 2 2 Sm-147 P0 0.000000 0.000000 P0 +27 1 2 2 Sm-149 P0 0.000000 0.000000 P0 +28 1 2 2 Sm-150 P0 0.000000 0.000000 P0 +29 1 2 2 Sm-151 P0 0.000000 0.000000 P0 +30 1 2 2 Sm-152 P0 0.000000 0.000000 P0 +31 1 2 2 Eu-153 P0 0.000000 0.000000 P0 +32 1 2 2 Gd-155 P0 0.000000 0.000000 P0 +33 1 2 2 O-16 P0 0.196946 0.014729 P0 material group out nuclide mean std. dev. +34 1 1 U-234 0 0.000000 +35 1 1 U-235 1 0.066362 +36 1 1 U-236 0 0.000000 +37 1 1 U-238 1 0.093082 +38 1 1 Np-237 0 0.000000 +39 1 1 Pu-238 0 0.000000 +40 1 1 Pu-239 1 0.104567 +41 1 1 Pu-240 0 0.000000 +42 1 1 Pu-241 1 0.263696 +43 1 1 Pu-242 0 0.000000 +44 1 1 Am-241 0 0.000000 +45 1 1 Am-242m 0 0.000000 +46 1 1 Am-243 0 0.000000 +47 1 1 Cm-242 0 0.000000 +48 1 1 Cm-243 0 0.000000 +49 1 1 Cm-244 0 0.000000 +50 1 1 Cm-245 0 0.000000 +51 1 1 Mo-95 0 0.000000 +52 1 1 Tc-99 0 0.000000 +53 1 1 Ru-101 0 0.000000 +54 1 1 Ru-103 0 0.000000 +55 1 1 Ag-109 0 0.000000 +56 1 1 Xe-135 0 0.000000 +57 1 1 Cs-133 0 0.000000 +58 1 1 Nd-143 0 0.000000 +59 1 1 Nd-145 0 0.000000 +60 1 1 Sm-147 0 0.000000 +61 1 1 Sm-149 0 0.000000 +62 1 1 Sm-150 0 0.000000 +63 1 1 Sm-151 0 0.000000 +64 1 1 Sm-152 0 0.000000 +65 1 1 Eu-153 0 0.000000 +66 1 1 Gd-155 0 0.000000 +67 1 1 O-16 0 0.000000 +0 1 2 U-234 0 0.000000 +1 1 2 U-235 0 0.000000 +2 1 2 U-236 0 0.000000 +3 1 2 U-238 0 0.000000 +4 1 2 Np-237 0 0.000000 +5 1 2 Pu-238 0 0.000000 +6 1 2 Pu-239 0 0.000000 +7 1 2 Pu-240 0 0.000000 +8 1 2 Pu-241 0 0.000000 +9 1 2 Pu-242 0 0.000000 +10 1 2 Am-241 0 0.000000 +11 1 2 Am-242m 0 0.000000 +12 1 2 Am-243 0 0.000000 +13 1 2 Cm-242 0 0.000000 +14 1 2 Cm-243 0 0.000000 +15 1 2 Cm-244 0 0.000000 +16 1 2 Cm-245 0 0.000000 +17 1 2 Mo-95 0 0.000000 +18 1 2 Tc-99 0 0.000000 +19 1 2 Ru-101 0 0.000000 +20 1 2 Ru-103 0 0.000000 +21 1 2 Ag-109 0 0.000000 +22 1 2 Xe-135 0 0.000000 +23 1 2 Cs-133 0 0.000000 +24 1 2 Nd-143 0 0.000000 +25 1 2 Nd-145 0 0.000000 +26 1 2 Sm-147 0 0.000000 +27 1 2 Sm-149 0 0.000000 +28 1 2 Sm-150 0 0.000000 +29 1 2 Sm-151 0 0.000000 +30 1 2 Sm-152 0 0.000000 +31 1 2 Eu-153 0 0.000000 +32 1 2 Gd-155 0 0.000000 +33 1 2 O-16 0 0.000000 material group in nuclide mean std. dev. +5 2 1 Zr-90 0.104734 0.008915 +6 2 1 Zr-91 0.036155 0.003735 +7 2 1 Zr-92 0.042422 0.003029 +8 2 1 Zr-94 0.046148 0.006251 +9 2 1 Zr-96 0.007794 0.001536 +0 2 2 Zr-90 0.121688 0.034934 +1 2 2 Zr-91 0.061792 0.024317 +2 2 2 Zr-92 0.041633 0.016323 +3 2 2 Zr-94 0.060818 0.021483 +4 2 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. +5 2 1 Zr-90 0 0 +6 2 1 Zr-91 0 0 +7 2 1 Zr-92 0 0 +8 2 1 Zr-94 0 0 +9 2 1 Zr-96 0 0 +0 2 2 Zr-90 0 0 +1 2 2 Zr-91 0 0 +2 2 2 Zr-92 0 0 +3 2 2 Zr-94 0 0 +4 2 2 Zr-96 0 0 material group in group out nuclide moment mean std. dev. moment +15 2 1 1 Zr-90 P0 0.104734 0.008915 P0 +16 2 1 1 Zr-91 P0 0.036155 0.003735 P0 +17 2 1 1 Zr-92 P0 0.042422 0.003029 P0 +18 2 1 1 Zr-94 P0 0.046148 0.006251 P0 +19 2 1 1 Zr-96 P0 0.007794 0.001536 P0 +10 2 1 2 Zr-90 P0 0.000000 0.000000 P0 +11 2 1 2 Zr-91 P0 0.000000 0.000000 P0 +12 2 1 2 Zr-92 P0 0.000000 0.000000 P0 +13 2 1 2 Zr-94 P0 0.000000 0.000000 P0 +14 2 1 2 Zr-96 P0 0.000000 0.000000 P0 +5 2 2 1 Zr-90 P0 0.000000 0.000000 P0 +6 2 2 1 Zr-91 P0 0.000000 0.000000 P0 +7 2 2 1 Zr-92 P0 0.000000 0.000000 P0 +8 2 2 1 Zr-94 P0 0.000000 0.000000 P0 +9 2 2 1 Zr-96 P0 0.000000 0.000000 P0 +0 2 2 2 Zr-90 P0 0.121688 0.034934 P0 +1 2 2 2 Zr-91 P0 0.061792 0.024317 P0 +2 2 2 2 Zr-92 P0 0.041633 0.016323 P0 +3 2 2 2 Zr-94 P0 0.060818 0.021483 P0 +4 2 2 2 Zr-96 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +5 2 1 Zr-90 0 0 +6 2 1 Zr-91 0 0 +7 2 1 Zr-92 0 0 +8 2 1 Zr-94 0 0 +9 2 1 Zr-96 0 0 +0 2 2 Zr-90 0 0 +1 2 2 Zr-91 0 0 +2 2 2 Zr-92 0 0 +3 2 2 Zr-94 0 0 +4 2 2 Zr-96 0 0 material group in nuclide mean std. dev. +4 3 1 H-1 0.207103 0.023028 +5 3 1 O-16 0.079282 0.005197 +6 3 1 B-10 0.000521 0.000244 +7 3 1 B-11 0.000000 0.000000 +0 3 2 H-1 1.283344 0.250946 +1 3 2 O-16 0.085363 0.014001 +2 3 2 B-10 0.049249 0.008232 +3 3 2 B-11 0.000195 0.001527 material group in nuclide mean std. dev. +4 3 1 H-1 0 0 +5 3 1 O-16 0 0 +6 3 1 B-10 0 0 +7 3 1 B-11 0 0 +0 3 2 H-1 0 0 +1 3 2 O-16 0 0 +2 3 2 B-10 0 0 +3 3 2 B-11 0 0 material group in group out nuclide moment mean std. dev. moment +12 3 1 1 H-1 P0 0.181306 0.022102 P0 +13 3 1 1 O-16 P0 0.078631 0.005044 P0 +14 3 1 1 B-10 P0 0.000000 0.000000 P0 +15 3 1 1 B-11 P0 0.000000 0.000000 P0 +8 3 1 2 H-1 P0 0.025666 0.001582 P0 +9 3 1 2 O-16 P0 0.000521 0.000131 P0 +10 3 1 2 B-10 P0 0.000000 0.000000 P0 +11 3 1 2 B-11 P0 0.000000 0.000000 P0 +4 3 2 1 H-1 P0 0.000000 0.000000 P0 +5 3 2 1 O-16 P0 0.000000 0.000000 P0 +6 3 2 1 B-10 P0 0.000000 0.000000 P0 +7 3 2 1 B-11 P0 0.000000 0.000000 P0 +0 3 2 2 H-1 P0 1.273963 0.250623 P0 +1 3 2 2 O-16 P0 0.085363 0.014001 P0 +2 3 2 2 B-10 P0 0.000000 0.000000 P0 +3 3 2 2 B-11 P0 0.000195 0.001527 P0 material group out nuclide mean std. dev. +4 3 1 H-1 0 0 +5 3 1 O-16 0 0 +6 3 1 B-10 0 0 +7 3 1 B-11 0 0 +0 3 2 H-1 0 0 +1 3 2 O-16 0 0 +2 3 2 B-10 0 0 +3 3 2 B-11 0 0 material group in nuclide mean std. dev. +4 4 1 H-1 0.175242 0.053715 +5 4 1 O-16 0.066545 0.010083 +6 4 1 B-10 0.000570 0.000352 +7 4 1 B-11 0.000089 0.000346 +0 4 2 H-1 1.142895 0.365140 +1 4 2 O-16 0.085141 0.028073 +2 4 2 B-10 0.025923 0.007276 +3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. +4 4 1 H-1 0 0 +5 4 1 O-16 0 0 +6 4 1 B-10 0 0 +7 4 1 B-11 0 0 +0 4 2 H-1 0 0 +1 4 2 O-16 0 0 +2 4 2 B-10 0 0 +3 4 2 B-11 0 0 material group in group out nuclide moment mean std. dev. moment +12 4 1 1 H-1 P0 0.151295 0.051491 P0 +13 4 1 1 O-16 P0 0.066545 0.010083 P0 +14 4 1 1 B-10 P0 0.000000 0.000000 P0 +15 4 1 1 B-11 P0 0.000089 0.000346 P0 +8 4 1 2 H-1 P0 0.023662 0.003083 P0 +9 4 1 2 O-16 P0 0.000000 0.000000 P0 +10 4 1 2 B-10 P0 0.000000 0.000000 P0 +11 4 1 2 B-11 P0 0.000000 0.000000 P0 +4 4 2 1 H-1 P0 0.000000 0.000000 P0 +5 4 2 1 O-16 P0 0.000000 0.000000 P0 +6 4 2 1 B-10 P0 0.000000 0.000000 P0 +7 4 2 1 B-11 P0 0.000000 0.000000 P0 +0 4 2 2 H-1 P0 1.129933 0.361681 P0 +1 4 2 2 O-16 P0 0.085141 0.028073 P0 +2 4 2 2 B-10 P0 0.000000 0.000000 P0 +3 4 2 2 B-11 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +4 4 1 H-1 0 0 +5 4 1 O-16 0 0 +6 4 1 B-10 0 0 +7 4 1 B-11 0 0 +0 4 2 H-1 0 0 +1 4 2 O-16 0 0 +2 4 2 B-10 0 0 +3 4 2 B-11 0 0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0 0 +28 5 1 Fe-56 0 0 +29 5 1 Fe-57 0 0 +30 5 1 Fe-58 0 0 +31 5 1 Ni-58 0 0 +32 5 1 Ni-60 0 0 +33 5 1 Ni-61 0 0 +34 5 1 Ni-62 0 0 +35 5 1 Ni-64 0 0 +36 5 1 Mn-55 0 0 +37 5 1 Mo-92 0 0 +38 5 1 Mo-94 0 0 +39 5 1 Mo-95 0 0 +40 5 1 Mo-96 0 0 +41 5 1 Mo-97 0 0 +42 5 1 Mo-98 0 0 +43 5 1 Mo-100 0 0 +44 5 1 Si-28 0 0 +45 5 1 Si-29 0 0 +46 5 1 Si-30 0 0 +47 5 1 Cr-50 0 0 +48 5 1 Cr-52 0 0 +49 5 1 Cr-53 0 0 +50 5 1 Cr-54 0 0 +51 5 1 C-Nat 0 0 +52 5 1 Cu-63 0 0 +53 5 1 Cu-65 0 0 +0 5 2 Fe-54 0 0 +1 5 2 Fe-56 0 0 +2 5 2 Fe-57 0 0 +3 5 2 Fe-58 0 0 +4 5 2 Ni-58 0 0 +5 5 2 Ni-60 0 0 +6 5 2 Ni-61 0 0 +7 5 2 Ni-62 0 0 +8 5 2 Ni-64 0 0 +9 5 2 Mn-55 0 0 +10 5 2 Mo-92 0 0 +11 5 2 Mo-94 0 0 +12 5 2 Mo-95 0 0 +13 5 2 Mo-96 0 0 +14 5 2 Mo-97 0 0 +15 5 2 Mo-98 0 0 +16 5 2 Mo-100 0 0 +17 5 2 Si-28 0 0 +18 5 2 Si-29 0 0 +19 5 2 Si-30 0 0 +20 5 2 Cr-50 0 0 +21 5 2 Cr-52 0 0 +22 5 2 Cr-53 0 0 +23 5 2 Cr-54 0 0 +24 5 2 C-Nat 0 0 +25 5 2 Cu-63 0 0 +26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0 0 +28 5 1 Fe-56 0 0 +29 5 1 Fe-57 0 0 +30 5 1 Fe-58 0 0 +31 5 1 Ni-58 0 0 +32 5 1 Ni-60 0 0 +33 5 1 Ni-61 0 0 +34 5 1 Ni-62 0 0 +35 5 1 Ni-64 0 0 +36 5 1 Mn-55 0 0 +37 5 1 Mo-92 0 0 +38 5 1 Mo-94 0 0 +39 5 1 Mo-95 0 0 +40 5 1 Mo-96 0 0 +41 5 1 Mo-97 0 0 +42 5 1 Mo-98 0 0 +43 5 1 Mo-100 0 0 +44 5 1 Si-28 0 0 +45 5 1 Si-29 0 0 +46 5 1 Si-30 0 0 +47 5 1 Cr-50 0 0 +48 5 1 Cr-52 0 0 +49 5 1 Cr-53 0 0 +50 5 1 Cr-54 0 0 +51 5 1 C-Nat 0 0 +52 5 1 Cu-63 0 0 +53 5 1 Cu-65 0 0 +0 5 2 Fe-54 0 0 +1 5 2 Fe-56 0 0 +2 5 2 Fe-57 0 0 +3 5 2 Fe-58 0 0 +4 5 2 Ni-58 0 0 +5 5 2 Ni-60 0 0 +6 5 2 Ni-61 0 0 +7 5 2 Ni-62 0 0 +8 5 2 Ni-64 0 0 +9 5 2 Mn-55 0 0 +10 5 2 Mo-92 0 0 +11 5 2 Mo-94 0 0 +12 5 2 Mo-95 0 0 +13 5 2 Mo-96 0 0 +14 5 2 Mo-97 0 0 +15 5 2 Mo-98 0 0 +16 5 2 Mo-100 0 0 +17 5 2 Si-28 0 0 +18 5 2 Si-29 0 0 +19 5 2 Si-30 0 0 +20 5 2 Cr-50 0 0 +21 5 2 Cr-52 0 0 +22 5 2 Cr-53 0 0 +23 5 2 Cr-54 0 0 +24 5 2 C-Nat 0 0 +25 5 2 Cu-63 0 0 +26 5 2 Cu-65 0 0 material group in group out nuclide moment mean std. dev. moment +81 5 1 1 Fe-54 P0 0 0 P0 +82 5 1 1 Fe-56 P0 0 0 P0 +83 5 1 1 Fe-57 P0 0 0 P0 +84 5 1 1 Fe-58 P0 0 0 P0 +85 5 1 1 Ni-58 P0 0 0 P0 +86 5 1 1 Ni-60 P0 0 0 P0 +87 5 1 1 Ni-61 P0 0 0 P0 +88 5 1 1 Ni-62 P0 0 0 P0 +89 5 1 1 Ni-64 P0 0 0 P0 +90 5 1 1 Mn-55 P0 0 0 P0 +91 5 1 1 Mo-92 P0 0 0 P0 +92 5 1 1 Mo-94 P0 0 0 P0 +93 5 1 1 Mo-95 P0 0 0 P0 +94 5 1 1 Mo-96 P0 0 0 P0 +95 5 1 1 Mo-97 P0 0 0 P0 +96 5 1 1 Mo-98 P0 0 0 P0 +97 5 1 1 Mo-100 P0 0 0 P0 +98 5 1 1 Si-28 P0 0 0 P0 +99 5 1 1 Si-29 P0 0 0 P0 +100 5 1 1 Si-30 P0 0 0 P0 +101 5 1 1 Cr-50 P0 0 0 P0 +102 5 1 1 Cr-52 P0 0 0 P0 +103 5 1 1 Cr-53 P0 0 0 P0 +104 5 1 1 Cr-54 P0 0 0 P0 +105 5 1 1 C-Nat P0 0 0 P0 +106 5 1 1 Cu-63 P0 0 0 P0 +107 5 1 1 Cu-65 P0 0 0 P0 +54 5 1 2 Fe-54 P0 0 0 P0 +55 5 1 2 Fe-56 P0 0 0 P0 +56 5 1 2 Fe-57 P0 0 0 P0 +57 5 1 2 Fe-58 P0 0 0 P0 +58 5 1 2 Ni-58 P0 0 0 P0 +59 5 1 2 Ni-60 P0 0 0 P0 +60 5 1 2 Ni-61 P0 0 0 P0 +61 5 1 2 Ni-62 P0 0 0 P0 +62 5 1 2 Ni-64 P0 0 0 P0 +63 5 1 2 Mn-55 P0 0 0 P0 +64 5 1 2 Mo-92 P0 0 0 P0 +65 5 1 2 Mo-94 P0 0 0 P0 +66 5 1 2 Mo-95 P0 0 0 P0 +67 5 1 2 Mo-96 P0 0 0 P0 +68 5 1 2 Mo-97 P0 0 0 P0 +69 5 1 2 Mo-98 P0 0 0 P0 +70 5 1 2 Mo-100 P0 0 0 P0 +71 5 1 2 Si-28 P0 0 0 P0 +72 5 1 2 Si-29 P0 0 0 P0 +73 5 1 2 Si-30 P0 0 0 P0 +74 5 1 2 Cr-50 P0 0 0 P0 +75 5 1 2 Cr-52 P0 0 0 P0 +76 5 1 2 Cr-53 P0 0 0 P0 +77 5 1 2 Cr-54 P0 0 0 P0 +78 5 1 2 C-Nat P0 0 0 P0 +79 5 1 2 Cu-63 P0 0 0 P0 +80 5 1 2 Cu-65 P0 0 0 P0 +27 5 2 1 Fe-54 P0 0 0 P0 +28 5 2 1 Fe-56 P0 0 0 P0 +29 5 2 1 Fe-57 P0 0 0 P0 +30 5 2 1 Fe-58 P0 0 0 P0 +31 5 2 1 Ni-58 P0 0 0 P0 +32 5 2 1 Ni-60 P0 0 0 P0 +33 5 2 1 Ni-61 P0 0 0 P0 +34 5 2 1 Ni-62 P0 0 0 P0 +35 5 2 1 Ni-64 P0 0 0 P0 +36 5 2 1 Mn-55 P0 0 0 P0 +37 5 2 1 Mo-92 P0 0 0 P0 +38 5 2 1 Mo-94 P0 0 0 P0 +39 5 2 1 Mo-95 P0 0 0 P0 +40 5 2 1 Mo-96 P0 0 0 P0 +41 5 2 1 Mo-97 P0 0 0 P0 +42 5 2 1 Mo-98 P0 0 0 P0 +43 5 2 1 Mo-100 P0 0 0 P0 +44 5 2 1 Si-28 P0 0 0 P0 +45 5 2 1 Si-29 P0 0 0 P0 +46 5 2 1 Si-30 P0 0 0 P0 +47 5 2 1 Cr-50 P0 0 0 P0 +48 5 2 1 Cr-52 P0 0 0 P0 +49 5 2 1 Cr-53 P0 0 0 P0 +50 5 2 1 Cr-54 P0 0 0 P0 +51 5 2 1 C-Nat P0 0 0 P0 +52 5 2 1 Cu-63 P0 0 0 P0 +53 5 2 1 Cu-65 P0 0 0 P0 +0 5 2 2 Fe-54 P0 0 0 P0 +1 5 2 2 Fe-56 P0 0 0 P0 +2 5 2 2 Fe-57 P0 0 0 P0 +3 5 2 2 Fe-58 P0 0 0 P0 +4 5 2 2 Ni-58 P0 0 0 P0 +5 5 2 2 Ni-60 P0 0 0 P0 +6 5 2 2 Ni-61 P0 0 0 P0 +7 5 2 2 Ni-62 P0 0 0 P0 +8 5 2 2 Ni-64 P0 0 0 P0 +9 5 2 2 Mn-55 P0 0 0 P0 +10 5 2 2 Mo-92 P0 0 0 P0 +11 5 2 2 Mo-94 P0 0 0 P0 +12 5 2 2 Mo-95 P0 0 0 P0 +13 5 2 2 Mo-96 P0 0 0 P0 +14 5 2 2 Mo-97 P0 0 0 P0 +15 5 2 2 Mo-98 P0 0 0 P0 +16 5 2 2 Mo-100 P0 0 0 P0 +17 5 2 2 Si-28 P0 0 0 P0 +18 5 2 2 Si-29 P0 0 0 P0 +19 5 2 2 Si-30 P0 0 0 P0 +20 5 2 2 Cr-50 P0 0 0 P0 +21 5 2 2 Cr-52 P0 0 0 P0 +22 5 2 2 Cr-53 P0 0 0 P0 +23 5 2 2 Cr-54 P0 0 0 P0 +24 5 2 2 C-Nat P0 0 0 P0 +25 5 2 2 Cu-63 P0 0 0 P0 +26 5 2 2 Cu-65 P0 0 0 P0 material group out nuclide mean std. dev. +27 5 1 Fe-54 0 0 +28 5 1 Fe-56 0 0 +29 5 1 Fe-57 0 0 +30 5 1 Fe-58 0 0 +31 5 1 Ni-58 0 0 +32 5 1 Ni-60 0 0 +33 5 1 Ni-61 0 0 +34 5 1 Ni-62 0 0 +35 5 1 Ni-64 0 0 +36 5 1 Mn-55 0 0 +37 5 1 Mo-92 0 0 +38 5 1 Mo-94 0 0 +39 5 1 Mo-95 0 0 +40 5 1 Mo-96 0 0 +41 5 1 Mo-97 0 0 +42 5 1 Mo-98 0 0 +43 5 1 Mo-100 0 0 +44 5 1 Si-28 0 0 +45 5 1 Si-29 0 0 +46 5 1 Si-30 0 0 +47 5 1 Cr-50 0 0 +48 5 1 Cr-52 0 0 +49 5 1 Cr-53 0 0 +50 5 1 Cr-54 0 0 +51 5 1 C-Nat 0 0 +52 5 1 Cu-63 0 0 +53 5 1 Cu-65 0 0 +0 5 2 Fe-54 0 0 +1 5 2 Fe-56 0 0 +2 5 2 Fe-57 0 0 +3 5 2 Fe-58 0 0 +4 5 2 Ni-58 0 0 +5 5 2 Ni-60 0 0 +6 5 2 Ni-61 0 0 +7 5 2 Ni-62 0 0 +8 5 2 Ni-64 0 0 +9 5 2 Mn-55 0 0 +10 5 2 Mo-92 0 0 +11 5 2 Mo-94 0 0 +12 5 2 Mo-95 0 0 +13 5 2 Mo-96 0 0 +14 5 2 Mo-97 0 0 +15 5 2 Mo-98 0 0 +16 5 2 Mo-100 0 0 +17 5 2 Si-28 0 0 +18 5 2 Si-29 0 0 +19 5 2 Si-30 0 0 +20 5 2 Cr-50 0 0 +21 5 2 Cr-52 0 0 +22 5 2 Cr-53 0 0 +23 5 2 Cr-54 0 0 +24 5 2 C-Nat 0 0 +25 5 2 Cu-63 0 0 +26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. +21 6 1 H-1 0 0 +22 6 1 O-16 0 0 +23 6 1 B-10 0 0 +24 6 1 B-11 0 0 +25 6 1 Fe-54 0 0 +26 6 1 Fe-56 0 0 +27 6 1 Fe-57 0 0 +28 6 1 Fe-58 0 0 +29 6 1 Ni-58 0 0 +30 6 1 Ni-60 0 0 +31 6 1 Ni-61 0 0 +32 6 1 Ni-62 0 0 +33 6 1 Ni-64 0 0 +34 6 1 Mn-55 0 0 +35 6 1 Si-28 0 0 +36 6 1 Si-29 0 0 +37 6 1 Si-30 0 0 +38 6 1 Cr-50 0 0 +39 6 1 Cr-52 0 0 +40 6 1 Cr-53 0 0 +41 6 1 Cr-54 0 0 +0 6 2 H-1 0 0 +1 6 2 O-16 0 0 +2 6 2 B-10 0 0 +3 6 2 B-11 0 0 +4 6 2 Fe-54 0 0 +5 6 2 Fe-56 0 0 +6 6 2 Fe-57 0 0 +7 6 2 Fe-58 0 0 +8 6 2 Ni-58 0 0 +9 6 2 Ni-60 0 0 +10 6 2 Ni-61 0 0 +11 6 2 Ni-62 0 0 +12 6 2 Ni-64 0 0 +13 6 2 Mn-55 0 0 +14 6 2 Si-28 0 0 +15 6 2 Si-29 0 0 +16 6 2 Si-30 0 0 +17 6 2 Cr-50 0 0 +18 6 2 Cr-52 0 0 +19 6 2 Cr-53 0 0 +20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 6 1 H-1 0 0 +22 6 1 O-16 0 0 +23 6 1 B-10 0 0 +24 6 1 B-11 0 0 +25 6 1 Fe-54 0 0 +26 6 1 Fe-56 0 0 +27 6 1 Fe-57 0 0 +28 6 1 Fe-58 0 0 +29 6 1 Ni-58 0 0 +30 6 1 Ni-60 0 0 +31 6 1 Ni-61 0 0 +32 6 1 Ni-62 0 0 +33 6 1 Ni-64 0 0 +34 6 1 Mn-55 0 0 +35 6 1 Si-28 0 0 +36 6 1 Si-29 0 0 +37 6 1 Si-30 0 0 +38 6 1 Cr-50 0 0 +39 6 1 Cr-52 0 0 +40 6 1 Cr-53 0 0 +41 6 1 Cr-54 0 0 +0 6 2 H-1 0 0 +1 6 2 O-16 0 0 +2 6 2 B-10 0 0 +3 6 2 B-11 0 0 +4 6 2 Fe-54 0 0 +5 6 2 Fe-56 0 0 +6 6 2 Fe-57 0 0 +7 6 2 Fe-58 0 0 +8 6 2 Ni-58 0 0 +9 6 2 Ni-60 0 0 +10 6 2 Ni-61 0 0 +11 6 2 Ni-62 0 0 +12 6 2 Ni-64 0 0 +13 6 2 Mn-55 0 0 +14 6 2 Si-28 0 0 +15 6 2 Si-29 0 0 +16 6 2 Si-30 0 0 +17 6 2 Cr-50 0 0 +18 6 2 Cr-52 0 0 +19 6 2 Cr-53 0 0 +20 6 2 Cr-54 0 0 material group in group out nuclide moment mean std. dev. moment +63 6 1 1 H-1 P0 0 0 P0 +64 6 1 1 O-16 P0 0 0 P0 +65 6 1 1 B-10 P0 0 0 P0 +66 6 1 1 B-11 P0 0 0 P0 +67 6 1 1 Fe-54 P0 0 0 P0 +68 6 1 1 Fe-56 P0 0 0 P0 +69 6 1 1 Fe-57 P0 0 0 P0 +70 6 1 1 Fe-58 P0 0 0 P0 +71 6 1 1 Ni-58 P0 0 0 P0 +72 6 1 1 Ni-60 P0 0 0 P0 +73 6 1 1 Ni-61 P0 0 0 P0 +74 6 1 1 Ni-62 P0 0 0 P0 +75 6 1 1 Ni-64 P0 0 0 P0 +76 6 1 1 Mn-55 P0 0 0 P0 +77 6 1 1 Si-28 P0 0 0 P0 +78 6 1 1 Si-29 P0 0 0 P0 +79 6 1 1 Si-30 P0 0 0 P0 +80 6 1 1 Cr-50 P0 0 0 P0 +81 6 1 1 Cr-52 P0 0 0 P0 +82 6 1 1 Cr-53 P0 0 0 P0 +83 6 1 1 Cr-54 P0 0 0 P0 +42 6 1 2 H-1 P0 0 0 P0 +43 6 1 2 O-16 P0 0 0 P0 +44 6 1 2 B-10 P0 0 0 P0 +45 6 1 2 B-11 P0 0 0 P0 +46 6 1 2 Fe-54 P0 0 0 P0 +47 6 1 2 Fe-56 P0 0 0 P0 +48 6 1 2 Fe-57 P0 0 0 P0 +49 6 1 2 Fe-58 P0 0 0 P0 +50 6 1 2 Ni-58 P0 0 0 P0 +51 6 1 2 Ni-60 P0 0 0 P0 +52 6 1 2 Ni-61 P0 0 0 P0 +53 6 1 2 Ni-62 P0 0 0 P0 +54 6 1 2 Ni-64 P0 0 0 P0 +55 6 1 2 Mn-55 P0 0 0 P0 +56 6 1 2 Si-28 P0 0 0 P0 +57 6 1 2 Si-29 P0 0 0 P0 +58 6 1 2 Si-30 P0 0 0 P0 +59 6 1 2 Cr-50 P0 0 0 P0 +60 6 1 2 Cr-52 P0 0 0 P0 +61 6 1 2 Cr-53 P0 0 0 P0 +62 6 1 2 Cr-54 P0 0 0 P0 +21 6 2 1 H-1 P0 0 0 P0 +22 6 2 1 O-16 P0 0 0 P0 +23 6 2 1 B-10 P0 0 0 P0 +24 6 2 1 B-11 P0 0 0 P0 +25 6 2 1 Fe-54 P0 0 0 P0 +26 6 2 1 Fe-56 P0 0 0 P0 +27 6 2 1 Fe-57 P0 0 0 P0 +28 6 2 1 Fe-58 P0 0 0 P0 +29 6 2 1 Ni-58 P0 0 0 P0 +30 6 2 1 Ni-60 P0 0 0 P0 +31 6 2 1 Ni-61 P0 0 0 P0 +32 6 2 1 Ni-62 P0 0 0 P0 +33 6 2 1 Ni-64 P0 0 0 P0 +34 6 2 1 Mn-55 P0 0 0 P0 +35 6 2 1 Si-28 P0 0 0 P0 +36 6 2 1 Si-29 P0 0 0 P0 +37 6 2 1 Si-30 P0 0 0 P0 +38 6 2 1 Cr-50 P0 0 0 P0 +39 6 2 1 Cr-52 P0 0 0 P0 +40 6 2 1 Cr-53 P0 0 0 P0 +41 6 2 1 Cr-54 P0 0 0 P0 +0 6 2 2 H-1 P0 0 0 P0 +1 6 2 2 O-16 P0 0 0 P0 +2 6 2 2 B-10 P0 0 0 P0 +3 6 2 2 B-11 P0 0 0 P0 +4 6 2 2 Fe-54 P0 0 0 P0 +5 6 2 2 Fe-56 P0 0 0 P0 +6 6 2 2 Fe-57 P0 0 0 P0 +7 6 2 2 Fe-58 P0 0 0 P0 +8 6 2 2 Ni-58 P0 0 0 P0 +9 6 2 2 Ni-60 P0 0 0 P0 +10 6 2 2 Ni-61 P0 0 0 P0 +11 6 2 2 Ni-62 P0 0 0 P0 +12 6 2 2 Ni-64 P0 0 0 P0 +13 6 2 2 Mn-55 P0 0 0 P0 +14 6 2 2 Si-28 P0 0 0 P0 +15 6 2 2 Si-29 P0 0 0 P0 +16 6 2 2 Si-30 P0 0 0 P0 +17 6 2 2 Cr-50 P0 0 0 P0 +18 6 2 2 Cr-52 P0 0 0 P0 +19 6 2 2 Cr-53 P0 0 0 P0 +20 6 2 2 Cr-54 P0 0 0 P0 material group out nuclide mean std. dev. +21 6 1 H-1 0 0 +22 6 1 O-16 0 0 +23 6 1 B-10 0 0 +24 6 1 B-11 0 0 +25 6 1 Fe-54 0 0 +26 6 1 Fe-56 0 0 +27 6 1 Fe-57 0 0 +28 6 1 Fe-58 0 0 +29 6 1 Ni-58 0 0 +30 6 1 Ni-60 0 0 +31 6 1 Ni-61 0 0 +32 6 1 Ni-62 0 0 +33 6 1 Ni-64 0 0 +34 6 1 Mn-55 0 0 +35 6 1 Si-28 0 0 +36 6 1 Si-29 0 0 +37 6 1 Si-30 0 0 +38 6 1 Cr-50 0 0 +39 6 1 Cr-52 0 0 +40 6 1 Cr-53 0 0 +41 6 1 Cr-54 0 0 +0 6 2 H-1 0 0 +1 6 2 O-16 0 0 +2 6 2 B-10 0 0 +3 6 2 B-11 0 0 +4 6 2 Fe-54 0 0 +5 6 2 Fe-56 0 0 +6 6 2 Fe-57 0 0 +7 6 2 Fe-58 0 0 +8 6 2 Ni-58 0 0 +9 6 2 Ni-60 0 0 +10 6 2 Ni-61 0 0 +11 6 2 Ni-62 0 0 +12 6 2 Ni-64 0 0 +13 6 2 Mn-55 0 0 +14 6 2 Si-28 0 0 +15 6 2 Si-29 0 0 +16 6 2 Si-30 0 0 +17 6 2 Cr-50 0 0 +18 6 2 Cr-52 0 0 +19 6 2 Cr-53 0 0 +20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 7 1 H-1 0 0 +22 7 1 O-16 0 0 +23 7 1 B-10 0 0 +24 7 1 B-11 0 0 +25 7 1 Fe-54 0 0 +26 7 1 Fe-56 0 0 +27 7 1 Fe-57 0 0 +28 7 1 Fe-58 0 0 +29 7 1 Ni-58 0 0 +30 7 1 Ni-60 0 0 +31 7 1 Ni-61 0 0 +32 7 1 Ni-62 0 0 +33 7 1 Ni-64 0 0 +34 7 1 Mn-55 0 0 +35 7 1 Si-28 0 0 +36 7 1 Si-29 0 0 +37 7 1 Si-30 0 0 +38 7 1 Cr-50 0 0 +39 7 1 Cr-52 0 0 +40 7 1 Cr-53 0 0 +41 7 1 Cr-54 0 0 +0 7 2 H-1 0 0 +1 7 2 O-16 0 0 +2 7 2 B-10 0 0 +3 7 2 B-11 0 0 +4 7 2 Fe-54 0 0 +5 7 2 Fe-56 0 0 +6 7 2 Fe-57 0 0 +7 7 2 Fe-58 0 0 +8 7 2 Ni-58 0 0 +9 7 2 Ni-60 0 0 +10 7 2 Ni-61 0 0 +11 7 2 Ni-62 0 0 +12 7 2 Ni-64 0 0 +13 7 2 Mn-55 0 0 +14 7 2 Si-28 0 0 +15 7 2 Si-29 0 0 +16 7 2 Si-30 0 0 +17 7 2 Cr-50 0 0 +18 7 2 Cr-52 0 0 +19 7 2 Cr-53 0 0 +20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 7 1 H-1 0 0 +22 7 1 O-16 0 0 +23 7 1 B-10 0 0 +24 7 1 B-11 0 0 +25 7 1 Fe-54 0 0 +26 7 1 Fe-56 0 0 +27 7 1 Fe-57 0 0 +28 7 1 Fe-58 0 0 +29 7 1 Ni-58 0 0 +30 7 1 Ni-60 0 0 +31 7 1 Ni-61 0 0 +32 7 1 Ni-62 0 0 +33 7 1 Ni-64 0 0 +34 7 1 Mn-55 0 0 +35 7 1 Si-28 0 0 +36 7 1 Si-29 0 0 +37 7 1 Si-30 0 0 +38 7 1 Cr-50 0 0 +39 7 1 Cr-52 0 0 +40 7 1 Cr-53 0 0 +41 7 1 Cr-54 0 0 +0 7 2 H-1 0 0 +1 7 2 O-16 0 0 +2 7 2 B-10 0 0 +3 7 2 B-11 0 0 +4 7 2 Fe-54 0 0 +5 7 2 Fe-56 0 0 +6 7 2 Fe-57 0 0 +7 7 2 Fe-58 0 0 +8 7 2 Ni-58 0 0 +9 7 2 Ni-60 0 0 +10 7 2 Ni-61 0 0 +11 7 2 Ni-62 0 0 +12 7 2 Ni-64 0 0 +13 7 2 Mn-55 0 0 +14 7 2 Si-28 0 0 +15 7 2 Si-29 0 0 +16 7 2 Si-30 0 0 +17 7 2 Cr-50 0 0 +18 7 2 Cr-52 0 0 +19 7 2 Cr-53 0 0 +20 7 2 Cr-54 0 0 material group in group out nuclide moment mean std. dev. moment +63 7 1 1 H-1 P0 0 0 P0 +64 7 1 1 O-16 P0 0 0 P0 +65 7 1 1 B-10 P0 0 0 P0 +66 7 1 1 B-11 P0 0 0 P0 +67 7 1 1 Fe-54 P0 0 0 P0 +68 7 1 1 Fe-56 P0 0 0 P0 +69 7 1 1 Fe-57 P0 0 0 P0 +70 7 1 1 Fe-58 P0 0 0 P0 +71 7 1 1 Ni-58 P0 0 0 P0 +72 7 1 1 Ni-60 P0 0 0 P0 +73 7 1 1 Ni-61 P0 0 0 P0 +74 7 1 1 Ni-62 P0 0 0 P0 +75 7 1 1 Ni-64 P0 0 0 P0 +76 7 1 1 Mn-55 P0 0 0 P0 +77 7 1 1 Si-28 P0 0 0 P0 +78 7 1 1 Si-29 P0 0 0 P0 +79 7 1 1 Si-30 P0 0 0 P0 +80 7 1 1 Cr-50 P0 0 0 P0 +81 7 1 1 Cr-52 P0 0 0 P0 +82 7 1 1 Cr-53 P0 0 0 P0 +83 7 1 1 Cr-54 P0 0 0 P0 +42 7 1 2 H-1 P0 0 0 P0 +43 7 1 2 O-16 P0 0 0 P0 +44 7 1 2 B-10 P0 0 0 P0 +45 7 1 2 B-11 P0 0 0 P0 +46 7 1 2 Fe-54 P0 0 0 P0 +47 7 1 2 Fe-56 P0 0 0 P0 +48 7 1 2 Fe-57 P0 0 0 P0 +49 7 1 2 Fe-58 P0 0 0 P0 +50 7 1 2 Ni-58 P0 0 0 P0 +51 7 1 2 Ni-60 P0 0 0 P0 +52 7 1 2 Ni-61 P0 0 0 P0 +53 7 1 2 Ni-62 P0 0 0 P0 +54 7 1 2 Ni-64 P0 0 0 P0 +55 7 1 2 Mn-55 P0 0 0 P0 +56 7 1 2 Si-28 P0 0 0 P0 +57 7 1 2 Si-29 P0 0 0 P0 +58 7 1 2 Si-30 P0 0 0 P0 +59 7 1 2 Cr-50 P0 0 0 P0 +60 7 1 2 Cr-52 P0 0 0 P0 +61 7 1 2 Cr-53 P0 0 0 P0 +62 7 1 2 Cr-54 P0 0 0 P0 +21 7 2 1 H-1 P0 0 0 P0 +22 7 2 1 O-16 P0 0 0 P0 +23 7 2 1 B-10 P0 0 0 P0 +24 7 2 1 B-11 P0 0 0 P0 +25 7 2 1 Fe-54 P0 0 0 P0 +26 7 2 1 Fe-56 P0 0 0 P0 +27 7 2 1 Fe-57 P0 0 0 P0 +28 7 2 1 Fe-58 P0 0 0 P0 +29 7 2 1 Ni-58 P0 0 0 P0 +30 7 2 1 Ni-60 P0 0 0 P0 +31 7 2 1 Ni-61 P0 0 0 P0 +32 7 2 1 Ni-62 P0 0 0 P0 +33 7 2 1 Ni-64 P0 0 0 P0 +34 7 2 1 Mn-55 P0 0 0 P0 +35 7 2 1 Si-28 P0 0 0 P0 +36 7 2 1 Si-29 P0 0 0 P0 +37 7 2 1 Si-30 P0 0 0 P0 +38 7 2 1 Cr-50 P0 0 0 P0 +39 7 2 1 Cr-52 P0 0 0 P0 +40 7 2 1 Cr-53 P0 0 0 P0 +41 7 2 1 Cr-54 P0 0 0 P0 +0 7 2 2 H-1 P0 0 0 P0 +1 7 2 2 O-16 P0 0 0 P0 +2 7 2 2 B-10 P0 0 0 P0 +3 7 2 2 B-11 P0 0 0 P0 +4 7 2 2 Fe-54 P0 0 0 P0 +5 7 2 2 Fe-56 P0 0 0 P0 +6 7 2 2 Fe-57 P0 0 0 P0 +7 7 2 2 Fe-58 P0 0 0 P0 +8 7 2 2 Ni-58 P0 0 0 P0 +9 7 2 2 Ni-60 P0 0 0 P0 +10 7 2 2 Ni-61 P0 0 0 P0 +11 7 2 2 Ni-62 P0 0 0 P0 +12 7 2 2 Ni-64 P0 0 0 P0 +13 7 2 2 Mn-55 P0 0 0 P0 +14 7 2 2 Si-28 P0 0 0 P0 +15 7 2 2 Si-29 P0 0 0 P0 +16 7 2 2 Si-30 P0 0 0 P0 +17 7 2 2 Cr-50 P0 0 0 P0 +18 7 2 2 Cr-52 P0 0 0 P0 +19 7 2 2 Cr-53 P0 0 0 P0 +20 7 2 2 Cr-54 P0 0 0 P0 material group out nuclide mean std. dev. +21 7 1 H-1 0 0 +22 7 1 O-16 0 0 +23 7 1 B-10 0 0 +24 7 1 B-11 0 0 +25 7 1 Fe-54 0 0 +26 7 1 Fe-56 0 0 +27 7 1 Fe-57 0 0 +28 7 1 Fe-58 0 0 +29 7 1 Ni-58 0 0 +30 7 1 Ni-60 0 0 +31 7 1 Ni-61 0 0 +32 7 1 Ni-62 0 0 +33 7 1 Ni-64 0 0 +34 7 1 Mn-55 0 0 +35 7 1 Si-28 0 0 +36 7 1 Si-29 0 0 +37 7 1 Si-30 0 0 +38 7 1 Cr-50 0 0 +39 7 1 Cr-52 0 0 +40 7 1 Cr-53 0 0 +41 7 1 Cr-54 0 0 +0 7 2 H-1 0 0 +1 7 2 O-16 0 0 +2 7 2 B-10 0 0 +3 7 2 B-11 0 0 +4 7 2 Fe-54 0 0 +5 7 2 Fe-56 0 0 +6 7 2 Fe-57 0 0 +7 7 2 Fe-58 0 0 +8 7 2 Ni-58 0 0 +9 7 2 Ni-60 0 0 +10 7 2 Ni-61 0 0 +11 7 2 Ni-62 0 0 +12 7 2 Ni-64 0 0 +13 7 2 Mn-55 0 0 +14 7 2 Si-28 0 0 +15 7 2 Si-29 0 0 +16 7 2 Si-30 0 0 +17 7 2 Cr-50 0 0 +18 7 2 Cr-52 0 0 +19 7 2 Cr-53 0 0 +20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 8 1 H-1 0 0 +22 8 1 O-16 0 0 +23 8 1 B-10 0 0 +24 8 1 B-11 0 0 +25 8 1 Fe-54 0 0 +26 8 1 Fe-56 0 0 +27 8 1 Fe-57 0 0 +28 8 1 Fe-58 0 0 +29 8 1 Ni-58 0 0 +30 8 1 Ni-60 0 0 +31 8 1 Ni-61 0 0 +32 8 1 Ni-62 0 0 +33 8 1 Ni-64 0 0 +34 8 1 Mn-55 0 0 +35 8 1 Si-28 0 0 +36 8 1 Si-29 0 0 +37 8 1 Si-30 0 0 +38 8 1 Cr-50 0 0 +39 8 1 Cr-52 0 0 +40 8 1 Cr-53 0 0 +41 8 1 Cr-54 0 0 +0 8 2 H-1 0 0 +1 8 2 O-16 0 0 +2 8 2 B-10 0 0 +3 8 2 B-11 0 0 +4 8 2 Fe-54 0 0 +5 8 2 Fe-56 0 0 +6 8 2 Fe-57 0 0 +7 8 2 Fe-58 0 0 +8 8 2 Ni-58 0 0 +9 8 2 Ni-60 0 0 +10 8 2 Ni-61 0 0 +11 8 2 Ni-62 0 0 +12 8 2 Ni-64 0 0 +13 8 2 Mn-55 0 0 +14 8 2 Si-28 0 0 +15 8 2 Si-29 0 0 +16 8 2 Si-30 0 0 +17 8 2 Cr-50 0 0 +18 8 2 Cr-52 0 0 +19 8 2 Cr-53 0 0 +20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 8 1 H-1 0 0 +22 8 1 O-16 0 0 +23 8 1 B-10 0 0 +24 8 1 B-11 0 0 +25 8 1 Fe-54 0 0 +26 8 1 Fe-56 0 0 +27 8 1 Fe-57 0 0 +28 8 1 Fe-58 0 0 +29 8 1 Ni-58 0 0 +30 8 1 Ni-60 0 0 +31 8 1 Ni-61 0 0 +32 8 1 Ni-62 0 0 +33 8 1 Ni-64 0 0 +34 8 1 Mn-55 0 0 +35 8 1 Si-28 0 0 +36 8 1 Si-29 0 0 +37 8 1 Si-30 0 0 +38 8 1 Cr-50 0 0 +39 8 1 Cr-52 0 0 +40 8 1 Cr-53 0 0 +41 8 1 Cr-54 0 0 +0 8 2 H-1 0 0 +1 8 2 O-16 0 0 +2 8 2 B-10 0 0 +3 8 2 B-11 0 0 +4 8 2 Fe-54 0 0 +5 8 2 Fe-56 0 0 +6 8 2 Fe-57 0 0 +7 8 2 Fe-58 0 0 +8 8 2 Ni-58 0 0 +9 8 2 Ni-60 0 0 +10 8 2 Ni-61 0 0 +11 8 2 Ni-62 0 0 +12 8 2 Ni-64 0 0 +13 8 2 Mn-55 0 0 +14 8 2 Si-28 0 0 +15 8 2 Si-29 0 0 +16 8 2 Si-30 0 0 +17 8 2 Cr-50 0 0 +18 8 2 Cr-52 0 0 +19 8 2 Cr-53 0 0 +20 8 2 Cr-54 0 0 material group in group out nuclide moment mean std. dev. moment +63 8 1 1 H-1 P0 0 0 P0 +64 8 1 1 O-16 P0 0 0 P0 +65 8 1 1 B-10 P0 0 0 P0 +66 8 1 1 B-11 P0 0 0 P0 +67 8 1 1 Fe-54 P0 0 0 P0 +68 8 1 1 Fe-56 P0 0 0 P0 +69 8 1 1 Fe-57 P0 0 0 P0 +70 8 1 1 Fe-58 P0 0 0 P0 +71 8 1 1 Ni-58 P0 0 0 P0 +72 8 1 1 Ni-60 P0 0 0 P0 +73 8 1 1 Ni-61 P0 0 0 P0 +74 8 1 1 Ni-62 P0 0 0 P0 +75 8 1 1 Ni-64 P0 0 0 P0 +76 8 1 1 Mn-55 P0 0 0 P0 +77 8 1 1 Si-28 P0 0 0 P0 +78 8 1 1 Si-29 P0 0 0 P0 +79 8 1 1 Si-30 P0 0 0 P0 +80 8 1 1 Cr-50 P0 0 0 P0 +81 8 1 1 Cr-52 P0 0 0 P0 +82 8 1 1 Cr-53 P0 0 0 P0 +83 8 1 1 Cr-54 P0 0 0 P0 +42 8 1 2 H-1 P0 0 0 P0 +43 8 1 2 O-16 P0 0 0 P0 +44 8 1 2 B-10 P0 0 0 P0 +45 8 1 2 B-11 P0 0 0 P0 +46 8 1 2 Fe-54 P0 0 0 P0 +47 8 1 2 Fe-56 P0 0 0 P0 +48 8 1 2 Fe-57 P0 0 0 P0 +49 8 1 2 Fe-58 P0 0 0 P0 +50 8 1 2 Ni-58 P0 0 0 P0 +51 8 1 2 Ni-60 P0 0 0 P0 +52 8 1 2 Ni-61 P0 0 0 P0 +53 8 1 2 Ni-62 P0 0 0 P0 +54 8 1 2 Ni-64 P0 0 0 P0 +55 8 1 2 Mn-55 P0 0 0 P0 +56 8 1 2 Si-28 P0 0 0 P0 +57 8 1 2 Si-29 P0 0 0 P0 +58 8 1 2 Si-30 P0 0 0 P0 +59 8 1 2 Cr-50 P0 0 0 P0 +60 8 1 2 Cr-52 P0 0 0 P0 +61 8 1 2 Cr-53 P0 0 0 P0 +62 8 1 2 Cr-54 P0 0 0 P0 +21 8 2 1 H-1 P0 0 0 P0 +22 8 2 1 O-16 P0 0 0 P0 +23 8 2 1 B-10 P0 0 0 P0 +24 8 2 1 B-11 P0 0 0 P0 +25 8 2 1 Fe-54 P0 0 0 P0 +26 8 2 1 Fe-56 P0 0 0 P0 +27 8 2 1 Fe-57 P0 0 0 P0 +28 8 2 1 Fe-58 P0 0 0 P0 +29 8 2 1 Ni-58 P0 0 0 P0 +30 8 2 1 Ni-60 P0 0 0 P0 +31 8 2 1 Ni-61 P0 0 0 P0 +32 8 2 1 Ni-62 P0 0 0 P0 +33 8 2 1 Ni-64 P0 0 0 P0 +34 8 2 1 Mn-55 P0 0 0 P0 +35 8 2 1 Si-28 P0 0 0 P0 +36 8 2 1 Si-29 P0 0 0 P0 +37 8 2 1 Si-30 P0 0 0 P0 +38 8 2 1 Cr-50 P0 0 0 P0 +39 8 2 1 Cr-52 P0 0 0 P0 +40 8 2 1 Cr-53 P0 0 0 P0 +41 8 2 1 Cr-54 P0 0 0 P0 +0 8 2 2 H-1 P0 0 0 P0 +1 8 2 2 O-16 P0 0 0 P0 +2 8 2 2 B-10 P0 0 0 P0 +3 8 2 2 B-11 P0 0 0 P0 +4 8 2 2 Fe-54 P0 0 0 P0 +5 8 2 2 Fe-56 P0 0 0 P0 +6 8 2 2 Fe-57 P0 0 0 P0 +7 8 2 2 Fe-58 P0 0 0 P0 +8 8 2 2 Ni-58 P0 0 0 P0 +9 8 2 2 Ni-60 P0 0 0 P0 +10 8 2 2 Ni-61 P0 0 0 P0 +11 8 2 2 Ni-62 P0 0 0 P0 +12 8 2 2 Ni-64 P0 0 0 P0 +13 8 2 2 Mn-55 P0 0 0 P0 +14 8 2 2 Si-28 P0 0 0 P0 +15 8 2 2 Si-29 P0 0 0 P0 +16 8 2 2 Si-30 P0 0 0 P0 +17 8 2 2 Cr-50 P0 0 0 P0 +18 8 2 2 Cr-52 P0 0 0 P0 +19 8 2 2 Cr-53 P0 0 0 P0 +20 8 2 2 Cr-54 P0 0 0 P0 material group out nuclide mean std. dev. +21 8 1 H-1 0 0 +22 8 1 O-16 0 0 +23 8 1 B-10 0 0 +24 8 1 B-11 0 0 +25 8 1 Fe-54 0 0 +26 8 1 Fe-56 0 0 +27 8 1 Fe-57 0 0 +28 8 1 Fe-58 0 0 +29 8 1 Ni-58 0 0 +30 8 1 Ni-60 0 0 +31 8 1 Ni-61 0 0 +32 8 1 Ni-62 0 0 +33 8 1 Ni-64 0 0 +34 8 1 Mn-55 0 0 +35 8 1 Si-28 0 0 +36 8 1 Si-29 0 0 +37 8 1 Si-30 0 0 +38 8 1 Cr-50 0 0 +39 8 1 Cr-52 0 0 +40 8 1 Cr-53 0 0 +41 8 1 Cr-54 0 0 +0 8 2 H-1 0 0 +1 8 2 O-16 0 0 +2 8 2 B-10 0 0 +3 8 2 B-11 0 0 +4 8 2 Fe-54 0 0 +5 8 2 Fe-56 0 0 +6 8 2 Fe-57 0 0 +7 8 2 Fe-58 0 0 +8 8 2 Ni-58 0 0 +9 8 2 Ni-60 0 0 +10 8 2 Ni-61 0 0 +11 8 2 Ni-62 0 0 +12 8 2 Ni-64 0 0 +13 8 2 Mn-55 0 0 +14 8 2 Si-28 0 0 +15 8 2 Si-29 0 0 +16 8 2 Si-30 0 0 +17 8 2 Cr-50 0 0 +18 8 2 Cr-52 0 0 +19 8 2 Cr-53 0 0 +20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 9 1 H-1 0.150655 0.480993 +22 9 1 O-16 0.116221 0.114089 +23 9 1 B-10 0.000000 0.000000 +24 9 1 B-11 0.000000 0.000000 +25 9 1 Fe-54 0.000000 0.000000 +26 9 1 Fe-56 0.186217 0.199795 +27 9 1 Fe-57 0.000000 0.000000 +28 9 1 Fe-58 0.000000 0.000000 +29 9 1 Ni-58 0.000000 0.000000 +30 9 1 Ni-60 0.000000 0.000000 +31 9 1 Ni-61 0.000000 0.000000 +32 9 1 Ni-62 0.000000 0.000000 +33 9 1 Ni-64 0.000000 0.000000 +34 9 1 Mn-55 0.000000 0.000000 +35 9 1 Si-28 0.000000 0.000000 +36 9 1 Si-29 0.000000 0.000000 +37 9 1 Si-30 0.000000 0.000000 +38 9 1 Cr-50 0.000000 0.000000 +39 9 1 Cr-52 0.000000 0.000000 +40 9 1 Cr-53 0.147443 0.139574 +41 9 1 Cr-54 0.000000 0.000000 +0 9 2 H-1 0.000000 0.000000 +1 9 2 O-16 0.000000 0.000000 +2 9 2 B-10 0.000000 0.000000 +3 9 2 B-11 0.000000 0.000000 +4 9 2 Fe-54 0.000000 0.000000 +5 9 2 Fe-56 0.000000 0.000000 +6 9 2 Fe-57 0.000000 0.000000 +7 9 2 Fe-58 0.000000 0.000000 +8 9 2 Ni-58 0.000000 0.000000 +9 9 2 Ni-60 0.000000 0.000000 +10 9 2 Ni-61 0.000000 0.000000 +11 9 2 Ni-62 0.000000 0.000000 +12 9 2 Ni-64 0.000000 0.000000 +13 9 2 Mn-55 0.000000 0.000000 +14 9 2 Si-28 0.000000 0.000000 +15 9 2 Si-29 0.000000 0.000000 +16 9 2 Si-30 0.000000 0.000000 +17 9 2 Cr-50 0.000000 0.000000 +18 9 2 Cr-52 0.000000 0.000000 +19 9 2 Cr-53 0.000000 0.000000 +20 9 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. +21 9 1 H-1 0 0 +22 9 1 O-16 0 0 +23 9 1 B-10 0 0 +24 9 1 B-11 0 0 +25 9 1 Fe-54 0 0 +26 9 1 Fe-56 0 0 +27 9 1 Fe-57 0 0 +28 9 1 Fe-58 0 0 +29 9 1 Ni-58 0 0 +30 9 1 Ni-60 0 0 +31 9 1 Ni-61 0 0 +32 9 1 Ni-62 0 0 +33 9 1 Ni-64 0 0 +34 9 1 Mn-55 0 0 +35 9 1 Si-28 0 0 +36 9 1 Si-29 0 0 +37 9 1 Si-30 0 0 +38 9 1 Cr-50 0 0 +39 9 1 Cr-52 0 0 +40 9 1 Cr-53 0 0 +41 9 1 Cr-54 0 0 +0 9 2 H-1 0 0 +1 9 2 O-16 0 0 +2 9 2 B-10 0 0 +3 9 2 B-11 0 0 +4 9 2 Fe-54 0 0 +5 9 2 Fe-56 0 0 +6 9 2 Fe-57 0 0 +7 9 2 Fe-58 0 0 +8 9 2 Ni-58 0 0 +9 9 2 Ni-60 0 0 +10 9 2 Ni-61 0 0 +11 9 2 Ni-62 0 0 +12 9 2 Ni-64 0 0 +13 9 2 Mn-55 0 0 +14 9 2 Si-28 0 0 +15 9 2 Si-29 0 0 +16 9 2 Si-30 0 0 +17 9 2 Cr-50 0 0 +18 9 2 Cr-52 0 0 +19 9 2 Cr-53 0 0 +20 9 2 Cr-54 0 0 material group in group out nuclide moment mean std. dev. moment +63 9 1 1 H-1 P0 0.150655 0.480993 P0 +64 9 1 1 O-16 P0 0.116221 0.114089 P0 +65 9 1 1 B-10 P0 0.000000 0.000000 P0 +66 9 1 1 B-11 P0 0.000000 0.000000 P0 +67 9 1 1 Fe-54 P0 0.000000 0.000000 P0 +68 9 1 1 Fe-56 P0 0.186217 0.199795 P0 +69 9 1 1 Fe-57 P0 0.000000 0.000000 P0 +70 9 1 1 Fe-58 P0 0.000000 0.000000 P0 +71 9 1 1 Ni-58 P0 0.000000 0.000000 P0 +72 9 1 1 Ni-60 P0 0.000000 0.000000 P0 +73 9 1 1 Ni-61 P0 0.000000 0.000000 P0 +74 9 1 1 Ni-62 P0 0.000000 0.000000 P0 +75 9 1 1 Ni-64 P0 0.000000 0.000000 P0 +76 9 1 1 Mn-55 P0 0.000000 0.000000 P0 +77 9 1 1 Si-28 P0 0.000000 0.000000 P0 +78 9 1 1 Si-29 P0 0.000000 0.000000 P0 +79 9 1 1 Si-30 P0 0.000000 0.000000 P0 +80 9 1 1 Cr-50 P0 0.000000 0.000000 P0 +81 9 1 1 Cr-52 P0 0.000000 0.000000 P0 +82 9 1 1 Cr-53 P0 0.147443 0.139574 P0 +83 9 1 1 Cr-54 P0 0.000000 0.000000 P0 +42 9 1 2 H-1 P0 0.000000 0.000000 P0 +43 9 1 2 O-16 P0 0.000000 0.000000 P0 +44 9 1 2 B-10 P0 0.000000 0.000000 P0 +45 9 1 2 B-11 P0 0.000000 0.000000 P0 +46 9 1 2 Fe-54 P0 0.000000 0.000000 P0 +47 9 1 2 Fe-56 P0 0.000000 0.000000 P0 +48 9 1 2 Fe-57 P0 0.000000 0.000000 P0 +49 9 1 2 Fe-58 P0 0.000000 0.000000 P0 +50 9 1 2 Ni-58 P0 0.000000 0.000000 P0 +51 9 1 2 Ni-60 P0 0.000000 0.000000 P0 +52 9 1 2 Ni-61 P0 0.000000 0.000000 P0 +53 9 1 2 Ni-62 P0 0.000000 0.000000 P0 +54 9 1 2 Ni-64 P0 0.000000 0.000000 P0 +55 9 1 2 Mn-55 P0 0.000000 0.000000 P0 +56 9 1 2 Si-28 P0 0.000000 0.000000 P0 +57 9 1 2 Si-29 P0 0.000000 0.000000 P0 +58 9 1 2 Si-30 P0 0.000000 0.000000 P0 +59 9 1 2 Cr-50 P0 0.000000 0.000000 P0 +60 9 1 2 Cr-52 P0 0.000000 0.000000 P0 +61 9 1 2 Cr-53 P0 0.000000 0.000000 P0 +62 9 1 2 Cr-54 P0 0.000000 0.000000 P0 +21 9 2 1 H-1 P0 0.000000 0.000000 P0 +22 9 2 1 O-16 P0 0.000000 0.000000 P0 +23 9 2 1 B-10 P0 0.000000 0.000000 P0 +24 9 2 1 B-11 P0 0.000000 0.000000 P0 +25 9 2 1 Fe-54 P0 0.000000 0.000000 P0 +26 9 2 1 Fe-56 P0 0.000000 0.000000 P0 +27 9 2 1 Fe-57 P0 0.000000 0.000000 P0 +28 9 2 1 Fe-58 P0 0.000000 0.000000 P0 +29 9 2 1 Ni-58 P0 0.000000 0.000000 P0 +30 9 2 1 Ni-60 P0 0.000000 0.000000 P0 +31 9 2 1 Ni-61 P0 0.000000 0.000000 P0 +32 9 2 1 Ni-62 P0 0.000000 0.000000 P0 +33 9 2 1 Ni-64 P0 0.000000 0.000000 P0 +34 9 2 1 Mn-55 P0 0.000000 0.000000 P0 +35 9 2 1 Si-28 P0 0.000000 0.000000 P0 +36 9 2 1 Si-29 P0 0.000000 0.000000 P0 +37 9 2 1 Si-30 P0 0.000000 0.000000 P0 +38 9 2 1 Cr-50 P0 0.000000 0.000000 P0 +39 9 2 1 Cr-52 P0 0.000000 0.000000 P0 +40 9 2 1 Cr-53 P0 0.000000 0.000000 P0 +41 9 2 1 Cr-54 P0 0.000000 0.000000 P0 +0 9 2 2 H-1 P0 0.000000 0.000000 P0 +1 9 2 2 O-16 P0 0.000000 0.000000 P0 +2 9 2 2 B-10 P0 0.000000 0.000000 P0 +3 9 2 2 B-11 P0 0.000000 0.000000 P0 +4 9 2 2 Fe-54 P0 0.000000 0.000000 P0 +5 9 2 2 Fe-56 P0 0.000000 0.000000 P0 +6 9 2 2 Fe-57 P0 0.000000 0.000000 P0 +7 9 2 2 Fe-58 P0 0.000000 0.000000 P0 +8 9 2 2 Ni-58 P0 0.000000 0.000000 P0 +9 9 2 2 Ni-60 P0 0.000000 0.000000 P0 +10 9 2 2 Ni-61 P0 0.000000 0.000000 P0 +11 9 2 2 Ni-62 P0 0.000000 0.000000 P0 +12 9 2 2 Ni-64 P0 0.000000 0.000000 P0 +13 9 2 2 Mn-55 P0 0.000000 0.000000 P0 +14 9 2 2 Si-28 P0 0.000000 0.000000 P0 +15 9 2 2 Si-29 P0 0.000000 0.000000 P0 +16 9 2 2 Si-30 P0 0.000000 0.000000 P0 +17 9 2 2 Cr-50 P0 0.000000 0.000000 P0 +18 9 2 2 Cr-52 P0 0.000000 0.000000 P0 +19 9 2 2 Cr-53 P0 0.000000 0.000000 P0 +20 9 2 2 Cr-54 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +21 9 1 H-1 0 0 +22 9 1 O-16 0 0 +23 9 1 B-10 0 0 +24 9 1 B-11 0 0 +25 9 1 Fe-54 0 0 +26 9 1 Fe-56 0 0 +27 9 1 Fe-57 0 0 +28 9 1 Fe-58 0 0 +29 9 1 Ni-58 0 0 +30 9 1 Ni-60 0 0 +31 9 1 Ni-61 0 0 +32 9 1 Ni-62 0 0 +33 9 1 Ni-64 0 0 +34 9 1 Mn-55 0 0 +35 9 1 Si-28 0 0 +36 9 1 Si-29 0 0 +37 9 1 Si-30 0 0 +38 9 1 Cr-50 0 0 +39 9 1 Cr-52 0 0 +40 9 1 Cr-53 0 0 +41 9 1 Cr-54 0 0 +0 9 2 H-1 0 0 +1 9 2 O-16 0 0 +2 9 2 B-10 0 0 +3 9 2 B-11 0 0 +4 9 2 Fe-54 0 0 +5 9 2 Fe-56 0 0 +6 9 2 Fe-57 0 0 +7 9 2 Fe-58 0 0 +8 9 2 Ni-58 0 0 +9 9 2 Ni-60 0 0 +10 9 2 Ni-61 0 0 +11 9 2 Ni-62 0 0 +12 9 2 Ni-64 0 0 +13 9 2 Mn-55 0 0 +14 9 2 Si-28 0 0 +15 9 2 Si-29 0 0 +16 9 2 Si-30 0 0 +17 9 2 Cr-50 0 0 +18 9 2 Cr-52 0 0 +19 9 2 Cr-53 0 0 +20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 10 1 H-1 0.123944 0.541390 +22 10 1 O-16 0.000000 0.000000 +23 10 1 B-10 0.000000 0.000000 +24 10 1 B-11 0.000000 0.000000 +25 10 1 Fe-54 0.000000 0.000000 +26 10 1 Fe-56 0.000000 0.000000 +27 10 1 Fe-57 0.000000 0.000000 +28 10 1 Fe-58 0.000000 0.000000 +29 10 1 Ni-58 0.000000 0.000000 +30 10 1 Ni-60 0.000000 0.000000 +31 10 1 Ni-61 0.000000 0.000000 +32 10 1 Ni-62 0.000000 0.000000 +33 10 1 Ni-64 0.000000 0.000000 +34 10 1 Mn-55 0.000000 0.000000 +35 10 1 Si-28 0.000000 0.000000 +36 10 1 Si-29 0.000000 0.000000 +37 10 1 Si-30 0.000000 0.000000 +38 10 1 Cr-50 0.111571 0.138458 +39 10 1 Cr-52 0.000000 0.000000 +40 10 1 Cr-53 0.000000 0.000000 +41 10 1 Cr-54 0.000000 0.000000 +0 10 2 H-1 0.000000 0.000000 +1 10 2 O-16 0.000000 0.000000 +2 10 2 B-10 0.000000 0.000000 +3 10 2 B-11 0.000000 0.000000 +4 10 2 Fe-54 0.000000 0.000000 +5 10 2 Fe-56 0.000000 0.000000 +6 10 2 Fe-57 0.000000 0.000000 +7 10 2 Fe-58 0.000000 0.000000 +8 10 2 Ni-58 0.000000 0.000000 +9 10 2 Ni-60 0.000000 0.000000 +10 10 2 Ni-61 0.000000 0.000000 +11 10 2 Ni-62 0.000000 0.000000 +12 10 2 Ni-64 0.000000 0.000000 +13 10 2 Mn-55 0.000000 0.000000 +14 10 2 Si-28 0.000000 0.000000 +15 10 2 Si-29 0.000000 0.000000 +16 10 2 Si-30 0.000000 0.000000 +17 10 2 Cr-50 0.000000 0.000000 +18 10 2 Cr-52 0.000000 0.000000 +19 10 2 Cr-53 0.000000 0.000000 +20 10 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. +21 10 1 H-1 0 0 +22 10 1 O-16 0 0 +23 10 1 B-10 0 0 +24 10 1 B-11 0 0 +25 10 1 Fe-54 0 0 +26 10 1 Fe-56 0 0 +27 10 1 Fe-57 0 0 +28 10 1 Fe-58 0 0 +29 10 1 Ni-58 0 0 +30 10 1 Ni-60 0 0 +31 10 1 Ni-61 0 0 +32 10 1 Ni-62 0 0 +33 10 1 Ni-64 0 0 +34 10 1 Mn-55 0 0 +35 10 1 Si-28 0 0 +36 10 1 Si-29 0 0 +37 10 1 Si-30 0 0 +38 10 1 Cr-50 0 0 +39 10 1 Cr-52 0 0 +40 10 1 Cr-53 0 0 +41 10 1 Cr-54 0 0 +0 10 2 H-1 0 0 +1 10 2 O-16 0 0 +2 10 2 B-10 0 0 +3 10 2 B-11 0 0 +4 10 2 Fe-54 0 0 +5 10 2 Fe-56 0 0 +6 10 2 Fe-57 0 0 +7 10 2 Fe-58 0 0 +8 10 2 Ni-58 0 0 +9 10 2 Ni-60 0 0 +10 10 2 Ni-61 0 0 +11 10 2 Ni-62 0 0 +12 10 2 Ni-64 0 0 +13 10 2 Mn-55 0 0 +14 10 2 Si-28 0 0 +15 10 2 Si-29 0 0 +16 10 2 Si-30 0 0 +17 10 2 Cr-50 0 0 +18 10 2 Cr-52 0 0 +19 10 2 Cr-53 0 0 +20 10 2 Cr-54 0 0 material group in group out nuclide moment mean std. dev. moment +63 10 1 1 H-1 P0 0.123944 0.541390 P0 +64 10 1 1 O-16 P0 0.000000 0.000000 P0 +65 10 1 1 B-10 P0 0.000000 0.000000 P0 +66 10 1 1 B-11 P0 0.000000 0.000000 P0 +67 10 1 1 Fe-54 P0 0.000000 0.000000 P0 +68 10 1 1 Fe-56 P0 0.000000 0.000000 P0 +69 10 1 1 Fe-57 P0 0.000000 0.000000 P0 +70 10 1 1 Fe-58 P0 0.000000 0.000000 P0 +71 10 1 1 Ni-58 P0 0.000000 0.000000 P0 +72 10 1 1 Ni-60 P0 0.000000 0.000000 P0 +73 10 1 1 Ni-61 P0 0.000000 0.000000 P0 +74 10 1 1 Ni-62 P0 0.000000 0.000000 P0 +75 10 1 1 Ni-64 P0 0.000000 0.000000 P0 +76 10 1 1 Mn-55 P0 0.000000 0.000000 P0 +77 10 1 1 Si-28 P0 0.000000 0.000000 P0 +78 10 1 1 Si-29 P0 0.000000 0.000000 P0 +79 10 1 1 Si-30 P0 0.000000 0.000000 P0 +80 10 1 1 Cr-50 P0 0.111571 0.138458 P0 +81 10 1 1 Cr-52 P0 0.000000 0.000000 P0 +82 10 1 1 Cr-53 P0 0.000000 0.000000 P0 +83 10 1 1 Cr-54 P0 0.000000 0.000000 P0 +42 10 1 2 H-1 P0 0.000000 0.000000 P0 +43 10 1 2 O-16 P0 0.000000 0.000000 P0 +44 10 1 2 B-10 P0 0.000000 0.000000 P0 +45 10 1 2 B-11 P0 0.000000 0.000000 P0 +46 10 1 2 Fe-54 P0 0.000000 0.000000 P0 +47 10 1 2 Fe-56 P0 0.000000 0.000000 P0 +48 10 1 2 Fe-57 P0 0.000000 0.000000 P0 +49 10 1 2 Fe-58 P0 0.000000 0.000000 P0 +50 10 1 2 Ni-58 P0 0.000000 0.000000 P0 +51 10 1 2 Ni-60 P0 0.000000 0.000000 P0 +52 10 1 2 Ni-61 P0 0.000000 0.000000 P0 +53 10 1 2 Ni-62 P0 0.000000 0.000000 P0 +54 10 1 2 Ni-64 P0 0.000000 0.000000 P0 +55 10 1 2 Mn-55 P0 0.000000 0.000000 P0 +56 10 1 2 Si-28 P0 0.000000 0.000000 P0 +57 10 1 2 Si-29 P0 0.000000 0.000000 P0 +58 10 1 2 Si-30 P0 0.000000 0.000000 P0 +59 10 1 2 Cr-50 P0 0.000000 0.000000 P0 +60 10 1 2 Cr-52 P0 0.000000 0.000000 P0 +61 10 1 2 Cr-53 P0 0.000000 0.000000 P0 +62 10 1 2 Cr-54 P0 0.000000 0.000000 P0 +21 10 2 1 H-1 P0 0.000000 0.000000 P0 +22 10 2 1 O-16 P0 0.000000 0.000000 P0 +23 10 2 1 B-10 P0 0.000000 0.000000 P0 +24 10 2 1 B-11 P0 0.000000 0.000000 P0 +25 10 2 1 Fe-54 P0 0.000000 0.000000 P0 +26 10 2 1 Fe-56 P0 0.000000 0.000000 P0 +27 10 2 1 Fe-57 P0 0.000000 0.000000 P0 +28 10 2 1 Fe-58 P0 0.000000 0.000000 P0 +29 10 2 1 Ni-58 P0 0.000000 0.000000 P0 +30 10 2 1 Ni-60 P0 0.000000 0.000000 P0 +31 10 2 1 Ni-61 P0 0.000000 0.000000 P0 +32 10 2 1 Ni-62 P0 0.000000 0.000000 P0 +33 10 2 1 Ni-64 P0 0.000000 0.000000 P0 +34 10 2 1 Mn-55 P0 0.000000 0.000000 P0 +35 10 2 1 Si-28 P0 0.000000 0.000000 P0 +36 10 2 1 Si-29 P0 0.000000 0.000000 P0 +37 10 2 1 Si-30 P0 0.000000 0.000000 P0 +38 10 2 1 Cr-50 P0 0.000000 0.000000 P0 +39 10 2 1 Cr-52 P0 0.000000 0.000000 P0 +40 10 2 1 Cr-53 P0 0.000000 0.000000 P0 +41 10 2 1 Cr-54 P0 0.000000 0.000000 P0 +0 10 2 2 H-1 P0 0.000000 0.000000 P0 +1 10 2 2 O-16 P0 0.000000 0.000000 P0 +2 10 2 2 B-10 P0 0.000000 0.000000 P0 +3 10 2 2 B-11 P0 0.000000 0.000000 P0 +4 10 2 2 Fe-54 P0 0.000000 0.000000 P0 +5 10 2 2 Fe-56 P0 0.000000 0.000000 P0 +6 10 2 2 Fe-57 P0 0.000000 0.000000 P0 +7 10 2 2 Fe-58 P0 0.000000 0.000000 P0 +8 10 2 2 Ni-58 P0 0.000000 0.000000 P0 +9 10 2 2 Ni-60 P0 0.000000 0.000000 P0 +10 10 2 2 Ni-61 P0 0.000000 0.000000 P0 +11 10 2 2 Ni-62 P0 0.000000 0.000000 P0 +12 10 2 2 Ni-64 P0 0.000000 0.000000 P0 +13 10 2 2 Mn-55 P0 0.000000 0.000000 P0 +14 10 2 2 Si-28 P0 0.000000 0.000000 P0 +15 10 2 2 Si-29 P0 0.000000 0.000000 P0 +16 10 2 2 Si-30 P0 0.000000 0.000000 P0 +17 10 2 2 Cr-50 P0 0.000000 0.000000 P0 +18 10 2 2 Cr-52 P0 0.000000 0.000000 P0 +19 10 2 2 Cr-53 P0 0.000000 0.000000 P0 +20 10 2 2 Cr-54 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +21 10 1 H-1 0 0 +22 10 1 O-16 0 0 +23 10 1 B-10 0 0 +24 10 1 B-11 0 0 +25 10 1 Fe-54 0 0 +26 10 1 Fe-56 0 0 +27 10 1 Fe-57 0 0 +28 10 1 Fe-58 0 0 +29 10 1 Ni-58 0 0 +30 10 1 Ni-60 0 0 +31 10 1 Ni-61 0 0 +32 10 1 Ni-62 0 0 +33 10 1 Ni-64 0 0 +34 10 1 Mn-55 0 0 +35 10 1 Si-28 0 0 +36 10 1 Si-29 0 0 +37 10 1 Si-30 0 0 +38 10 1 Cr-50 0 0 +39 10 1 Cr-52 0 0 +40 10 1 Cr-53 0 0 +41 10 1 Cr-54 0 0 +0 10 2 H-1 0 0 +1 10 2 O-16 0 0 +2 10 2 B-10 0 0 +3 10 2 B-11 0 0 +4 10 2 Fe-54 0 0 +5 10 2 Fe-56 0 0 +6 10 2 Fe-57 0 0 +7 10 2 Fe-58 0 0 +8 10 2 Ni-58 0 0 +9 10 2 Ni-60 0 0 +10 10 2 Ni-61 0 0 +11 10 2 Ni-62 0 0 +12 10 2 Ni-64 0 0 +13 10 2 Mn-55 0 0 +14 10 2 Si-28 0 0 +15 10 2 Si-29 0 0 +16 10 2 Si-30 0 0 +17 10 2 Cr-50 0 0 +18 10 2 Cr-52 0 0 +19 10 2 Cr-53 0 0 +20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. +9 11 1 H-1 0.131470 0.476035 +10 11 1 O-16 0.028684 0.043000 +11 11 1 B-10 0.000000 0.000000 +12 11 1 B-11 0.000000 0.000000 +13 11 1 Zr-90 0.021980 0.039963 +14 11 1 Zr-91 0.000000 0.000000 +15 11 1 Zr-92 0.000000 0.000000 +16 11 1 Zr-94 0.004191 0.087344 +17 11 1 Zr-96 0.000000 0.000000 +0 11 2 H-1 0.687243 1.239217 +1 11 2 O-16 0.000000 0.000000 +2 11 2 B-10 0.042902 0.060672 +3 11 2 B-11 0.000000 0.000000 +4 11 2 Zr-90 0.039576 0.105193 +5 11 2 Zr-91 0.000000 0.000000 +6 11 2 Zr-92 0.084226 0.103161 +7 11 2 Zr-94 0.092039 0.125985 +8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. +9 11 1 H-1 0 0 +10 11 1 O-16 0 0 +11 11 1 B-10 0 0 +12 11 1 B-11 0 0 +13 11 1 Zr-90 0 0 +14 11 1 Zr-91 0 0 +15 11 1 Zr-92 0 0 +16 11 1 Zr-94 0 0 +17 11 1 Zr-96 0 0 +0 11 2 H-1 0 0 +1 11 2 O-16 0 0 +2 11 2 B-10 0 0 +3 11 2 B-11 0 0 +4 11 2 Zr-90 0 0 +5 11 2 Zr-91 0 0 +6 11 2 Zr-92 0 0 +7 11 2 Zr-94 0 0 +8 11 2 Zr-96 0 0 material group in group out nuclide moment mean std. dev. moment +27 11 1 1 H-1 P0 0.099594 0.442578 P0 +28 11 1 1 O-16 P0 0.028684 0.043000 P0 +29 11 1 1 B-10 P0 0.000000 0.000000 P0 +30 11 1 1 B-11 P0 0.000000 0.000000 P0 +31 11 1 1 Zr-90 P0 0.021980 0.039963 P0 +32 11 1 1 Zr-91 P0 0.000000 0.000000 P0 +33 11 1 1 Zr-92 P0 0.000000 0.000000 P0 +34 11 1 1 Zr-94 P0 0.004191 0.087344 P0 +35 11 1 1 Zr-96 P0 0.000000 0.000000 P0 +18 11 1 2 H-1 P0 0.031875 0.045078 P0 +19 11 1 2 O-16 P0 0.000000 0.000000 P0 +20 11 1 2 B-10 P0 0.000000 0.000000 P0 +21 11 1 2 B-11 P0 0.000000 0.000000 P0 +22 11 1 2 Zr-90 P0 0.000000 0.000000 P0 +23 11 1 2 Zr-91 P0 0.000000 0.000000 P0 +24 11 1 2 Zr-92 P0 0.000000 0.000000 P0 +25 11 1 2 Zr-94 P0 0.000000 0.000000 P0 +26 11 1 2 Zr-96 P0 0.000000 0.000000 P0 +9 11 2 1 H-1 P0 0.000000 0.000000 P0 +10 11 2 1 O-16 P0 0.000000 0.000000 P0 +11 11 2 1 B-10 P0 0.000000 0.000000 P0 +12 11 2 1 B-11 P0 0.000000 0.000000 P0 +13 11 2 1 Zr-90 P0 0.000000 0.000000 P0 +14 11 2 1 Zr-91 P0 0.000000 0.000000 P0 +15 11 2 1 Zr-92 P0 0.000000 0.000000 P0 +16 11 2 1 Zr-94 P0 0.000000 0.000000 P0 +17 11 2 1 Zr-96 P0 0.000000 0.000000 P0 +0 11 2 2 H-1 P0 0.687243 1.239217 P0 +1 11 2 2 O-16 P0 0.000000 0.000000 P0 +2 11 2 2 B-10 P0 0.000000 0.000000 P0 +3 11 2 2 B-11 P0 0.000000 0.000000 P0 +4 11 2 2 Zr-90 P0 0.039576 0.105193 P0 +5 11 2 2 Zr-91 P0 0.000000 0.000000 P0 +6 11 2 2 Zr-92 P0 0.084226 0.103161 P0 +7 11 2 2 Zr-94 P0 0.092039 0.125985 P0 +8 11 2 2 Zr-96 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +9 11 1 H-1 0 0 +10 11 1 O-16 0 0 +11 11 1 B-10 0 0 +12 11 1 B-11 0 0 +13 11 1 Zr-90 0 0 +14 11 1 Zr-91 0 0 +15 11 1 Zr-92 0 0 +16 11 1 Zr-94 0 0 +17 11 1 Zr-96 0 0 +0 11 2 H-1 0 0 +1 11 2 O-16 0 0 +2 11 2 B-10 0 0 +3 11 2 B-11 0 0 +4 11 2 Zr-90 0 0 +5 11 2 Zr-91 0 0 +6 11 2 Zr-92 0 0 +7 11 2 Zr-94 0 0 +8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. +9 12 1 H-1 0.098944 0.178543 +10 12 1 O-16 0.013270 0.020403 +11 12 1 B-10 0.000000 0.000000 +12 12 1 B-11 0.000000 0.000000 +13 12 1 Zr-90 0.089997 0.075538 +14 12 1 Zr-91 0.000000 0.000000 +15 12 1 Zr-92 0.003501 0.017031 +16 12 1 Zr-94 0.004850 0.016327 +17 12 1 Zr-96 0.002730 0.017476 +0 12 2 H-1 1.261686 1.980336 +1 12 2 O-16 0.079159 0.104796 +2 12 2 B-10 0.016928 0.023940 +3 12 2 B-11 0.000000 0.000000 +4 12 2 Zr-90 0.000000 0.000000 +5 12 2 Zr-91 0.033201 0.040665 +6 12 2 Zr-92 0.000000 0.000000 +7 12 2 Zr-94 0.000000 0.000000 +8 12 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. +9 12 1 H-1 0 0 +10 12 1 O-16 0 0 +11 12 1 B-10 0 0 +12 12 1 B-11 0 0 +13 12 1 Zr-90 0 0 +14 12 1 Zr-91 0 0 +15 12 1 Zr-92 0 0 +16 12 1 Zr-94 0 0 +17 12 1 Zr-96 0 0 +0 12 2 H-1 0 0 +1 12 2 O-16 0 0 +2 12 2 B-10 0 0 +3 12 2 B-11 0 0 +4 12 2 Zr-90 0 0 +5 12 2 Zr-91 0 0 +6 12 2 Zr-92 0 0 +7 12 2 Zr-94 0 0 +8 12 2 Zr-96 0 0 material group in group out nuclide moment mean std. dev. moment +27 12 1 1 H-1 P0 0.071704 0.167588 P0 +28 12 1 1 O-16 P0 0.013270 0.020403 P0 +29 12 1 1 B-10 P0 0.000000 0.000000 P0 +30 12 1 1 B-11 P0 0.000000 0.000000 P0 +31 12 1 1 Zr-90 P0 0.089997 0.075538 P0 +32 12 1 1 Zr-91 P0 0.000000 0.000000 P0 +33 12 1 1 Zr-92 P0 0.003501 0.017031 P0 +34 12 1 1 Zr-94 P0 0.004850 0.016327 P0 +35 12 1 1 Zr-96 P0 0.002730 0.017476 P0 +18 12 1 2 H-1 P0 0.027240 0.029555 P0 +19 12 1 2 O-16 P0 0.000000 0.000000 P0 +20 12 1 2 B-10 P0 0.000000 0.000000 P0 +21 12 1 2 B-11 P0 0.000000 0.000000 P0 +22 12 1 2 Zr-90 P0 0.000000 0.000000 P0 +23 12 1 2 Zr-91 P0 0.000000 0.000000 P0 +24 12 1 2 Zr-92 P0 0.000000 0.000000 P0 +25 12 1 2 Zr-94 P0 0.000000 0.000000 P0 +26 12 1 2 Zr-96 P0 0.000000 0.000000 P0 +9 12 2 1 H-1 P0 0.000000 0.000000 P0 +10 12 2 1 O-16 P0 0.000000 0.000000 P0 +11 12 2 1 B-10 P0 0.000000 0.000000 P0 +12 12 2 1 B-11 P0 0.000000 0.000000 P0 +13 12 2 1 Zr-90 P0 0.000000 0.000000 P0 +14 12 2 1 Zr-91 P0 0.000000 0.000000 P0 +15 12 2 1 Zr-92 P0 0.000000 0.000000 P0 +16 12 2 1 Zr-94 P0 0.000000 0.000000 P0 +17 12 2 1 Zr-96 P0 0.000000 0.000000 P0 +0 12 2 2 H-1 P0 1.244758 1.956675 P0 +1 12 2 2 O-16 P0 0.079159 0.104796 P0 +2 12 2 2 B-10 P0 0.000000 0.000000 P0 +3 12 2 2 B-11 P0 0.000000 0.000000 P0 +4 12 2 2 Zr-90 P0 0.000000 0.000000 P0 +5 12 2 2 Zr-91 P0 0.033201 0.040665 P0 +6 12 2 2 Zr-92 P0 0.000000 0.000000 P0 +7 12 2 2 Zr-94 P0 0.000000 0.000000 P0 +8 12 2 2 Zr-96 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +9 12 1 H-1 0 0 +10 12 1 O-16 0 0 +11 12 1 B-10 0 0 +12 12 1 B-11 0 0 +13 12 1 Zr-90 0 0 +14 12 1 Zr-91 0 0 +15 12 1 Zr-92 0 0 +16 12 1 Zr-94 0 0 +17 12 1 Zr-96 0 0 +0 12 2 H-1 0 0 +1 12 2 O-16 0 0 +2 12 2 B-10 0 0 +3 12 2 B-11 0 0 +4 12 2 Zr-90 0 0 +5 12 2 Zr-91 0 0 +6 12 2 Zr-92 0 0 +7 12 2 Zr-94 0 0 +8 12 2 Zr-96 0 0 \ No newline at end of file From a6fd59a6227cdf2ae29c0e71778d457e335b0bcf Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 10 May 2016 22:00:39 -0400 Subject: [PATCH 173/259] Updated MGXS tests --- .../results_true.dat | 62 +- .../results_true.dat | 4 +- .../results_true.dat | 140 +- .../results_true.dat | 2520 ++++++++--------- 4 files changed, 1363 insertions(+), 1363 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 2afa47d6f..5f1d886b0 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -2,48 +2,48 @@ 0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. 0 1 1 total 0.076425 0.003691 material group in group out nuclide moment mean std. dev. moment 0 1 1 1 total P0 0.345643 0.021487 P0 material group out nuclide mean std. dev. -0 1 1 total 1 0.055333 material group in nuclide mean std. dev. +0 1 1 total 1.0 0.055333 material group in nuclide mean std. dev. 0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. -0 2 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 2 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 0 2 1 1 total P0 0.241262 0.00841 P0 material group out nuclide mean std. dev. -0 2 1 total 0 0 material group in nuclide mean std. dev. +0 2 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 3 1 total 0.400028 0.034667 material group in nuclide mean std. dev. -0 3 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 3 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 0 3 1 1 total P0 0.393462 0.033646 P0 material group out nuclide mean std. dev. -0 3 1 total 0 0 material group in nuclide mean std. dev. +0 3 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 4 1 total 0.377402 0.072937 material group in nuclide mean std. dev. -0 4 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 4 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 0 4 1 1 total P0 0.371473 0.071226 P0 material group out nuclide mean std. dev. -0 4 1 total 0 0 material group in nuclide mean std. dev. -0 5 1 total 0 0 material group in nuclide mean std. dev. -0 5 1 total 0 0 material group in group out nuclide moment mean std. dev. moment -0 5 1 1 total P0 0 0 P0 material group out nuclide mean std. dev. -0 5 1 total 0 0 material group in nuclide mean std. dev. -0 6 1 total 0 0 material group in nuclide mean std. dev. -0 6 1 total 0 0 material group in group out nuclide moment mean std. dev. moment -0 6 1 1 total P0 0 0 P0 material group out nuclide mean std. dev. -0 6 1 total 0 0 material group in nuclide mean std. dev. -0 7 1 total 0 0 material group in nuclide mean std. dev. -0 7 1 total 0 0 material group in group out nuclide moment mean std. dev. moment -0 7 1 1 total P0 0 0 P0 material group out nuclide mean std. dev. -0 7 1 total 0 0 material group in nuclide mean std. dev. -0 8 1 total 0 0 material group in nuclide mean std. dev. -0 8 1 total 0 0 material group in group out nuclide moment mean std. dev. moment -0 8 1 1 total P0 0 0 P0 material group out nuclide mean std. dev. -0 8 1 total 0 0 material group in nuclide mean std. dev. +0 4 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +0 5 1 1 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +0 6 1 1 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +0 7 1 1 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +0 8 1 1 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 9 1 total 0.600536 0.748875 material group in nuclide mean std. dev. -0 9 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 9 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 0 9 1 1 total P0 0.600536 0.748875 P0 material group out nuclide mean std. dev. -0 9 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10 1 total 0.235515 0.613974 material group in nuclide mean std. dev. -0 10 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 10 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 0 10 1 1 total P0 0.235515 0.613974 P0 material group out nuclide mean std. dev. -0 10 1 total 0 0 material group in nuclide mean std. dev. +0 10 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 11 1 total 0.510145 0.741941 material group in nuclide mean std. dev. -0 11 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 11 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 0 11 1 1 total P0 0.491857 0.715554 P0 material group out nuclide mean std. dev. -0 11 1 total 0 0 material group in nuclide mean std. dev. +0 11 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 12 1 total 0.73836 0.825631 material group in nuclide mean std. dev. -0 12 1 total 0 0 material group in group out nuclide moment mean std. dev. moment +0 12 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 0 12 1 1 total P0 0.723265 0.808231 P0 material group out nuclide mean std. dev. -0 12 1 total 0 0 \ No newline at end of file +0 12 1 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 4daa6cd97..014eabfa5 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ avg(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.718919 0.520644 avg(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 0 avg(distribcell) group in group out nuclide moment mean std. dev. moment +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 avg(distribcell) group in group out nuclide moment mean std. dev. moment 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 0.695166 0.510606 P0 avg(distribcell) group out nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index a4b08dd4a..4e6d88208 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -7,115 +7,115 @@ 2 1 1 2 total P0 0.001559 0.000510 P0 1 1 2 1 total P0 0.000000 0.000000 P0 0 1 2 2 total P0 0.422051 0.021617 P0 material group out nuclide mean std. dev. -1 1 1 total 1 0.055333 -0 1 2 total 0 0.000000 material group in nuclide mean std. dev. +1 1 1 total 1.0 0.055333 +0 1 2 total 0.0 0.000000 material group in nuclide mean std. dev. 1 2 1 total 0.237254 0.008184 0 2 2 total 0.285930 0.048796 material group in nuclide mean std. dev. -1 2 1 total 0 0 -0 2 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +1 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 3 2 1 1 total P0 0.237254 0.008184 P0 2 2 1 2 total P0 0.000000 0.000000 P0 1 2 2 1 total P0 0.000000 0.000000 P0 0 2 2 2 total P0 0.285930 0.048796 P0 material group out nuclide mean std. dev. -1 2 1 total 0 0 -0 2 2 total 0 0 material group in nuclide mean std. dev. +1 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 3 1 total 0.286906 0.027401 0 3 2 total 1.418151 0.265308 material group in nuclide mean std. dev. -1 3 1 total 0 0 -0 3 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +1 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 3 3 1 1 total P0 0.259937 0.026115 P0 2 3 1 2 total P0 0.026187 0.001665 P0 1 3 2 1 total P0 0.000000 0.000000 P0 0 3 2 2 total P0 1.359521 0.258505 P0 material group out nuclide mean std. dev. -1 3 1 total 0 0 -0 3 2 total 0 0 material group in nuclide mean std. dev. +1 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 4 1 total 0.242447 0.061031 0 4 2 total 1.253959 0.388363 material group in nuclide mean std. dev. -1 4 1 total 0 0 -0 4 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +1 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 3 4 1 1 total P0 0.217930 0.058565 P0 2 4 1 2 total P0 0.023662 0.003083 P0 1 4 2 1 total P0 0.000000 0.000000 P0 0 4 2 2 total P0 1.215074 0.381025 P0 material group out nuclide mean std. dev. -1 4 1 total 0 0 -0 4 2 total 0 0 material group in nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in group out nuclide moment mean std. dev. moment -3 5 1 1 total P0 0 0 P0 -2 5 1 2 total P0 0 0 P0 -1 5 2 1 total P0 0 0 P0 -0 5 2 2 total P0 0 0 P0 material group out nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in group out nuclide moment mean std. dev. moment -3 6 1 1 total P0 0 0 P0 -2 6 1 2 total P0 0 0 P0 -1 6 2 1 total P0 0 0 P0 -0 6 2 2 total P0 0 0 P0 material group out nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in group out nuclide moment mean std. dev. moment -3 7 1 1 total P0 0 0 P0 -2 7 1 2 total P0 0 0 P0 -1 7 2 1 total P0 0 0 P0 -0 7 2 2 total P0 0 0 P0 material group out nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in group out nuclide moment mean std. dev. moment -3 8 1 1 total P0 0 0 P0 -2 8 1 2 total P0 0 0 P0 -1 8 2 1 total P0 0 0 P0 -0 8 2 2 total P0 0 0 P0 material group out nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in nuclide mean std. dev. +1 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +3 5 1 1 total P0 0.0 0.0 P0 +2 5 1 2 total P0 0.0 0.0 P0 +1 5 2 1 total P0 0.0 0.0 P0 +0 5 2 2 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +3 6 1 1 total P0 0.0 0.0 P0 +2 6 1 2 total P0 0.0 0.0 P0 +1 6 2 1 total P0 0.0 0.0 P0 +0 6 2 2 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +3 7 1 1 total P0 0.0 0.0 P0 +2 7 1 2 total P0 0.0 0.0 P0 +1 7 2 1 total P0 0.0 0.0 P0 +0 7 2 2 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +3 8 1 1 total P0 0.0 0.0 P0 +2 8 1 2 total P0 0.0 0.0 P0 +1 8 2 1 total P0 0.0 0.0 P0 +0 8 2 2 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 9 1 total 0.600536 0.748875 0 9 2 total 0.000000 0.000000 material group in nuclide mean std. dev. -1 9 1 total 0 0 -0 9 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +1 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 3 9 1 1 total P0 0.600536 0.748875 P0 2 9 1 2 total P0 0.000000 0.000000 P0 1 9 2 1 total P0 0.000000 0.000000 P0 0 9 2 2 total P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. -1 9 1 total 0 0 -0 9 2 total 0 0 material group in nuclide mean std. dev. +1 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10 1 total 0.235515 0.613974 0 10 2 total 0.000000 0.000000 material group in nuclide mean std. dev. -1 10 1 total 0 0 -0 10 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +1 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 3 10 1 1 total P0 0.235515 0.613974 P0 2 10 1 2 total P0 0.000000 0.000000 P0 1 10 2 1 total P0 0.000000 0.000000 P0 0 10 2 2 total P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. -1 10 1 total 0 0 -0 10 2 total 0 0 material group in nuclide mean std. dev. +1 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 11 1 total 0.186324 0.632129 0 11 2 total 0.945986 1.591133 material group in nuclide mean std. dev. -1 11 1 total 0 0 -0 11 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +1 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 3 11 1 1 total P0 0.154449 0.597686 P0 2 11 1 2 total P0 0.031875 0.045078 P0 1 11 2 1 total P0 0.000000 0.000000 P0 0 11 2 2 total P0 0.903085 1.532144 P0 material group out nuclide mean std. dev. -1 11 1 total 0 0 -0 11 2 total 0 0 material group in nuclide mean std. dev. +1 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 12 1 total 0.213292 0.271444 0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. -1 12 1 total 0 0 -0 12 2 total 0 0 material group in group out nuclide moment mean std. dev. moment +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 3 12 1 1 total P0 0.186052 0.257633 P0 2 12 1 2 total P0 0.027240 0.029555 P0 1 12 2 1 total P0 0.000000 0.000000 P0 0 12 2 2 total P0 1.357118 2.089846 P0 material group out nuclide mean std. dev. -1 12 1 total 0 0 -0 12 2 total 0 0 \ No newline at end of file +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index aac5ff1ef..ff34c9fff 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -271,74 +271,74 @@ 31 1 2 2 Eu-153 P0 0.000000 0.000000 P0 32 1 2 2 Gd-155 P0 0.000000 0.000000 P0 33 1 2 2 O-16 P0 0.196946 0.014729 P0 material group out nuclide mean std. dev. -34 1 1 U-234 0 0.000000 -35 1 1 U-235 1 0.066362 -36 1 1 U-236 0 0.000000 -37 1 1 U-238 1 0.093082 -38 1 1 Np-237 0 0.000000 -39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.104567 -41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.263696 -43 1 1 Pu-242 0 0.000000 -44 1 1 Am-241 0 0.000000 -45 1 1 Am-242m 0 0.000000 -46 1 1 Am-243 0 0.000000 -47 1 1 Cm-242 0 0.000000 -48 1 1 Cm-243 0 0.000000 -49 1 1 Cm-244 0 0.000000 -50 1 1 Cm-245 0 0.000000 -51 1 1 Mo-95 0 0.000000 -52 1 1 Tc-99 0 0.000000 -53 1 1 Ru-101 0 0.000000 -54 1 1 Ru-103 0 0.000000 -55 1 1 Ag-109 0 0.000000 -56 1 1 Xe-135 0 0.000000 -57 1 1 Cs-133 0 0.000000 -58 1 1 Nd-143 0 0.000000 -59 1 1 Nd-145 0 0.000000 -60 1 1 Sm-147 0 0.000000 -61 1 1 Sm-149 0 0.000000 -62 1 1 Sm-150 0 0.000000 -63 1 1 Sm-151 0 0.000000 -64 1 1 Sm-152 0 0.000000 -65 1 1 Eu-153 0 0.000000 -66 1 1 Gd-155 0 0.000000 -67 1 1 O-16 0 0.000000 -0 1 2 U-234 0 0.000000 -1 1 2 U-235 0 0.000000 -2 1 2 U-236 0 0.000000 -3 1 2 U-238 0 0.000000 -4 1 2 Np-237 0 0.000000 -5 1 2 Pu-238 0 0.000000 -6 1 2 Pu-239 0 0.000000 -7 1 2 Pu-240 0 0.000000 -8 1 2 Pu-241 0 0.000000 -9 1 2 Pu-242 0 0.000000 -10 1 2 Am-241 0 0.000000 -11 1 2 Am-242m 0 0.000000 -12 1 2 Am-243 0 0.000000 -13 1 2 Cm-242 0 0.000000 -14 1 2 Cm-243 0 0.000000 -15 1 2 Cm-244 0 0.000000 -16 1 2 Cm-245 0 0.000000 -17 1 2 Mo-95 0 0.000000 -18 1 2 Tc-99 0 0.000000 -19 1 2 Ru-101 0 0.000000 -20 1 2 Ru-103 0 0.000000 -21 1 2 Ag-109 0 0.000000 -22 1 2 Xe-135 0 0.000000 -23 1 2 Cs-133 0 0.000000 -24 1 2 Nd-143 0 0.000000 -25 1 2 Nd-145 0 0.000000 -26 1 2 Sm-147 0 0.000000 -27 1 2 Sm-149 0 0.000000 -28 1 2 Sm-150 0 0.000000 -29 1 2 Sm-151 0 0.000000 -30 1 2 Sm-152 0 0.000000 -31 1 2 Eu-153 0 0.000000 -32 1 2 Gd-155 0 0.000000 -33 1 2 O-16 0 0.000000 material group in nuclide mean std. dev. +34 1 1 U-234 0.0 0.000000 +35 1 1 U-235 1.0 0.066362 +36 1 1 U-236 0.0 0.000000 +37 1 1 U-238 1.0 0.093082 +38 1 1 Np-237 0.0 0.000000 +39 1 1 Pu-238 0.0 0.000000 +40 1 1 Pu-239 1.0 0.104567 +41 1 1 Pu-240 0.0 0.000000 +42 1 1 Pu-241 1.0 0.263696 +43 1 1 Pu-242 0.0 0.000000 +44 1 1 Am-241 0.0 0.000000 +45 1 1 Am-242m 0.0 0.000000 +46 1 1 Am-243 0.0 0.000000 +47 1 1 Cm-242 0.0 0.000000 +48 1 1 Cm-243 0.0 0.000000 +49 1 1 Cm-244 0.0 0.000000 +50 1 1 Cm-245 0.0 0.000000 +51 1 1 Mo-95 0.0 0.000000 +52 1 1 Tc-99 0.0 0.000000 +53 1 1 Ru-101 0.0 0.000000 +54 1 1 Ru-103 0.0 0.000000 +55 1 1 Ag-109 0.0 0.000000 +56 1 1 Xe-135 0.0 0.000000 +57 1 1 Cs-133 0.0 0.000000 +58 1 1 Nd-143 0.0 0.000000 +59 1 1 Nd-145 0.0 0.000000 +60 1 1 Sm-147 0.0 0.000000 +61 1 1 Sm-149 0.0 0.000000 +62 1 1 Sm-150 0.0 0.000000 +63 1 1 Sm-151 0.0 0.000000 +64 1 1 Sm-152 0.0 0.000000 +65 1 1 Eu-153 0.0 0.000000 +66 1 1 Gd-155 0.0 0.000000 +67 1 1 O-16 0.0 0.000000 +0 1 2 U-234 0.0 0.000000 +1 1 2 U-235 0.0 0.000000 +2 1 2 U-236 0.0 0.000000 +3 1 2 U-238 0.0 0.000000 +4 1 2 Np-237 0.0 0.000000 +5 1 2 Pu-238 0.0 0.000000 +6 1 2 Pu-239 0.0 0.000000 +7 1 2 Pu-240 0.0 0.000000 +8 1 2 Pu-241 0.0 0.000000 +9 1 2 Pu-242 0.0 0.000000 +10 1 2 Am-241 0.0 0.000000 +11 1 2 Am-242m 0.0 0.000000 +12 1 2 Am-243 0.0 0.000000 +13 1 2 Cm-242 0.0 0.000000 +14 1 2 Cm-243 0.0 0.000000 +15 1 2 Cm-244 0.0 0.000000 +16 1 2 Cm-245 0.0 0.000000 +17 1 2 Mo-95 0.0 0.000000 +18 1 2 Tc-99 0.0 0.000000 +19 1 2 Ru-101 0.0 0.000000 +20 1 2 Ru-103 0.0 0.000000 +21 1 2 Ag-109 0.0 0.000000 +22 1 2 Xe-135 0.0 0.000000 +23 1 2 Cs-133 0.0 0.000000 +24 1 2 Nd-143 0.0 0.000000 +25 1 2 Nd-145 0.0 0.000000 +26 1 2 Sm-147 0.0 0.000000 +27 1 2 Sm-149 0.0 0.000000 +28 1 2 Sm-150 0.0 0.000000 +29 1 2 Sm-151 0.0 0.000000 +30 1 2 Sm-152 0.0 0.000000 +31 1 2 Eu-153 0.0 0.000000 +32 1 2 Gd-155 0.0 0.000000 +33 1 2 O-16 0.0 0.000000 material group in nuclide mean std. dev. 5 2 1 Zr-90 0.104734 0.008915 6 2 1 Zr-91 0.036155 0.003735 7 2 1 Zr-92 0.042422 0.003029 @@ -349,16 +349,16 @@ 2 2 2 Zr-92 0.041633 0.016323 3 2 2 Zr-94 0.060818 0.021483 4 2 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0 0 -6 2 1 Zr-91 0 0 -7 2 1 Zr-92 0 0 -8 2 1 Zr-94 0 0 -9 2 1 Zr-96 0 0 -0 2 2 Zr-90 0 0 -1 2 2 Zr-91 0 0 -2 2 2 Zr-92 0 0 -3 2 2 Zr-94 0 0 -4 2 2 Zr-96 0 0 material group in group out nuclide moment mean std. dev. moment +5 2 1 Zr-90 0.0 0.0 +6 2 1 Zr-91 0.0 0.0 +7 2 1 Zr-92 0.0 0.0 +8 2 1 Zr-94 0.0 0.0 +9 2 1 Zr-96 0.0 0.0 +0 2 2 Zr-90 0.0 0.0 +1 2 2 Zr-91 0.0 0.0 +2 2 2 Zr-92 0.0 0.0 +3 2 2 Zr-94 0.0 0.0 +4 2 2 Zr-96 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 15 2 1 1 Zr-90 P0 0.104734 0.008915 P0 16 2 1 1 Zr-91 P0 0.036155 0.003735 P0 17 2 1 1 Zr-92 P0 0.042422 0.003029 P0 @@ -379,16 +379,16 @@ 2 2 2 2 Zr-92 P0 0.041633 0.016323 P0 3 2 2 2 Zr-94 P0 0.060818 0.021483 P0 4 2 2 2 Zr-96 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. -5 2 1 Zr-90 0 0 -6 2 1 Zr-91 0 0 -7 2 1 Zr-92 0 0 -8 2 1 Zr-94 0 0 -9 2 1 Zr-96 0 0 -0 2 2 Zr-90 0 0 -1 2 2 Zr-91 0 0 -2 2 2 Zr-92 0 0 -3 2 2 Zr-94 0 0 -4 2 2 Zr-96 0 0 material group in nuclide mean std. dev. +5 2 1 Zr-90 0.0 0.0 +6 2 1 Zr-91 0.0 0.0 +7 2 1 Zr-92 0.0 0.0 +8 2 1 Zr-94 0.0 0.0 +9 2 1 Zr-96 0.0 0.0 +0 2 2 Zr-90 0.0 0.0 +1 2 2 Zr-91 0.0 0.0 +2 2 2 Zr-92 0.0 0.0 +3 2 2 Zr-94 0.0 0.0 +4 2 2 Zr-96 0.0 0.0 material group in nuclide mean std. dev. 4 3 1 H-1 0.207103 0.023028 5 3 1 O-16 0.079282 0.005197 6 3 1 B-10 0.000521 0.000244 @@ -397,14 +397,14 @@ 1 3 2 O-16 0.085363 0.014001 2 3 2 B-10 0.049249 0.008232 3 3 2 B-11 0.000195 0.001527 material group in nuclide mean std. dev. -4 3 1 H-1 0 0 -5 3 1 O-16 0 0 -6 3 1 B-10 0 0 -7 3 1 B-11 0 0 -0 3 2 H-1 0 0 -1 3 2 O-16 0 0 -2 3 2 B-10 0 0 -3 3 2 B-11 0 0 material group in group out nuclide moment mean std. dev. moment +4 3 1 H-1 0.0 0.0 +5 3 1 O-16 0.0 0.0 +6 3 1 B-10 0.0 0.0 +7 3 1 B-11 0.0 0.0 +0 3 2 H-1 0.0 0.0 +1 3 2 O-16 0.0 0.0 +2 3 2 B-10 0.0 0.0 +3 3 2 B-11 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 12 3 1 1 H-1 P0 0.181306 0.022102 P0 13 3 1 1 O-16 P0 0.078631 0.005044 P0 14 3 1 1 B-10 P0 0.000000 0.000000 P0 @@ -421,14 +421,14 @@ 1 3 2 2 O-16 P0 0.085363 0.014001 P0 2 3 2 2 B-10 P0 0.000000 0.000000 P0 3 3 2 2 B-11 P0 0.000195 0.001527 P0 material group out nuclide mean std. dev. -4 3 1 H-1 0 0 -5 3 1 O-16 0 0 -6 3 1 B-10 0 0 -7 3 1 B-11 0 0 -0 3 2 H-1 0 0 -1 3 2 O-16 0 0 -2 3 2 B-10 0 0 -3 3 2 B-11 0 0 material group in nuclide mean std. dev. +4 3 1 H-1 0.0 0.0 +5 3 1 O-16 0.0 0.0 +6 3 1 B-10 0.0 0.0 +7 3 1 B-11 0.0 0.0 +0 3 2 H-1 0.0 0.0 +1 3 2 O-16 0.0 0.0 +2 3 2 B-10 0.0 0.0 +3 3 2 B-11 0.0 0.0 material group in nuclide mean std. dev. 4 4 1 H-1 0.175242 0.053715 5 4 1 O-16 0.066545 0.010083 6 4 1 B-10 0.000570 0.000352 @@ -437,14 +437,14 @@ 1 4 2 O-16 0.085141 0.028073 2 4 2 B-10 0.025923 0.007276 3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. -4 4 1 H-1 0 0 -5 4 1 O-16 0 0 -6 4 1 B-10 0 0 -7 4 1 B-11 0 0 -0 4 2 H-1 0 0 -1 4 2 O-16 0 0 -2 4 2 B-10 0 0 -3 4 2 B-11 0 0 material group in group out nuclide moment mean std. dev. moment +4 4 1 H-1 0.0 0.0 +5 4 1 O-16 0.0 0.0 +6 4 1 B-10 0.0 0.0 +7 4 1 B-11 0.0 0.0 +0 4 2 H-1 0.0 0.0 +1 4 2 O-16 0.0 0.0 +2 4 2 B-10 0.0 0.0 +3 4 2 B-11 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 12 4 1 1 H-1 P0 0.151295 0.051491 P0 13 4 1 1 O-16 P0 0.066545 0.010083 P0 14 4 1 1 B-10 P0 0.000000 0.000000 P0 @@ -461,914 +461,914 @@ 1 4 2 2 O-16 P0 0.085141 0.028073 P0 2 4 2 2 B-10 P0 0.000000 0.000000 P0 3 4 2 2 B-11 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. -4 4 1 H-1 0 0 -5 4 1 O-16 0 0 -6 4 1 B-10 0 0 -7 4 1 B-11 0 0 -0 4 2 H-1 0 0 -1 4 2 O-16 0 0 -2 4 2 B-10 0 0 -3 4 2 B-11 0 0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in group out nuclide moment mean std. dev. moment -81 5 1 1 Fe-54 P0 0 0 P0 -82 5 1 1 Fe-56 P0 0 0 P0 -83 5 1 1 Fe-57 P0 0 0 P0 -84 5 1 1 Fe-58 P0 0 0 P0 -85 5 1 1 Ni-58 P0 0 0 P0 -86 5 1 1 Ni-60 P0 0 0 P0 -87 5 1 1 Ni-61 P0 0 0 P0 -88 5 1 1 Ni-62 P0 0 0 P0 -89 5 1 1 Ni-64 P0 0 0 P0 -90 5 1 1 Mn-55 P0 0 0 P0 -91 5 1 1 Mo-92 P0 0 0 P0 -92 5 1 1 Mo-94 P0 0 0 P0 -93 5 1 1 Mo-95 P0 0 0 P0 -94 5 1 1 Mo-96 P0 0 0 P0 -95 5 1 1 Mo-97 P0 0 0 P0 -96 5 1 1 Mo-98 P0 0 0 P0 -97 5 1 1 Mo-100 P0 0 0 P0 -98 5 1 1 Si-28 P0 0 0 P0 -99 5 1 1 Si-29 P0 0 0 P0 -100 5 1 1 Si-30 P0 0 0 P0 -101 5 1 1 Cr-50 P0 0 0 P0 -102 5 1 1 Cr-52 P0 0 0 P0 -103 5 1 1 Cr-53 P0 0 0 P0 -104 5 1 1 Cr-54 P0 0 0 P0 -105 5 1 1 C-Nat P0 0 0 P0 -106 5 1 1 Cu-63 P0 0 0 P0 -107 5 1 1 Cu-65 P0 0 0 P0 -54 5 1 2 Fe-54 P0 0 0 P0 -55 5 1 2 Fe-56 P0 0 0 P0 -56 5 1 2 Fe-57 P0 0 0 P0 -57 5 1 2 Fe-58 P0 0 0 P0 -58 5 1 2 Ni-58 P0 0 0 P0 -59 5 1 2 Ni-60 P0 0 0 P0 -60 5 1 2 Ni-61 P0 0 0 P0 -61 5 1 2 Ni-62 P0 0 0 P0 -62 5 1 2 Ni-64 P0 0 0 P0 -63 5 1 2 Mn-55 P0 0 0 P0 -64 5 1 2 Mo-92 P0 0 0 P0 -65 5 1 2 Mo-94 P0 0 0 P0 -66 5 1 2 Mo-95 P0 0 0 P0 -67 5 1 2 Mo-96 P0 0 0 P0 -68 5 1 2 Mo-97 P0 0 0 P0 -69 5 1 2 Mo-98 P0 0 0 P0 -70 5 1 2 Mo-100 P0 0 0 P0 -71 5 1 2 Si-28 P0 0 0 P0 -72 5 1 2 Si-29 P0 0 0 P0 -73 5 1 2 Si-30 P0 0 0 P0 -74 5 1 2 Cr-50 P0 0 0 P0 -75 5 1 2 Cr-52 P0 0 0 P0 -76 5 1 2 Cr-53 P0 0 0 P0 -77 5 1 2 Cr-54 P0 0 0 P0 -78 5 1 2 C-Nat P0 0 0 P0 -79 5 1 2 Cu-63 P0 0 0 P0 -80 5 1 2 Cu-65 P0 0 0 P0 -27 5 2 1 Fe-54 P0 0 0 P0 -28 5 2 1 Fe-56 P0 0 0 P0 -29 5 2 1 Fe-57 P0 0 0 P0 -30 5 2 1 Fe-58 P0 0 0 P0 -31 5 2 1 Ni-58 P0 0 0 P0 -32 5 2 1 Ni-60 P0 0 0 P0 -33 5 2 1 Ni-61 P0 0 0 P0 -34 5 2 1 Ni-62 P0 0 0 P0 -35 5 2 1 Ni-64 P0 0 0 P0 -36 5 2 1 Mn-55 P0 0 0 P0 -37 5 2 1 Mo-92 P0 0 0 P0 -38 5 2 1 Mo-94 P0 0 0 P0 -39 5 2 1 Mo-95 P0 0 0 P0 -40 5 2 1 Mo-96 P0 0 0 P0 -41 5 2 1 Mo-97 P0 0 0 P0 -42 5 2 1 Mo-98 P0 0 0 P0 -43 5 2 1 Mo-100 P0 0 0 P0 -44 5 2 1 Si-28 P0 0 0 P0 -45 5 2 1 Si-29 P0 0 0 P0 -46 5 2 1 Si-30 P0 0 0 P0 -47 5 2 1 Cr-50 P0 0 0 P0 -48 5 2 1 Cr-52 P0 0 0 P0 -49 5 2 1 Cr-53 P0 0 0 P0 -50 5 2 1 Cr-54 P0 0 0 P0 -51 5 2 1 C-Nat P0 0 0 P0 -52 5 2 1 Cu-63 P0 0 0 P0 -53 5 2 1 Cu-65 P0 0 0 P0 -0 5 2 2 Fe-54 P0 0 0 P0 -1 5 2 2 Fe-56 P0 0 0 P0 -2 5 2 2 Fe-57 P0 0 0 P0 -3 5 2 2 Fe-58 P0 0 0 P0 -4 5 2 2 Ni-58 P0 0 0 P0 -5 5 2 2 Ni-60 P0 0 0 P0 -6 5 2 2 Ni-61 P0 0 0 P0 -7 5 2 2 Ni-62 P0 0 0 P0 -8 5 2 2 Ni-64 P0 0 0 P0 -9 5 2 2 Mn-55 P0 0 0 P0 -10 5 2 2 Mo-92 P0 0 0 P0 -11 5 2 2 Mo-94 P0 0 0 P0 -12 5 2 2 Mo-95 P0 0 0 P0 -13 5 2 2 Mo-96 P0 0 0 P0 -14 5 2 2 Mo-97 P0 0 0 P0 -15 5 2 2 Mo-98 P0 0 0 P0 -16 5 2 2 Mo-100 P0 0 0 P0 -17 5 2 2 Si-28 P0 0 0 P0 -18 5 2 2 Si-29 P0 0 0 P0 -19 5 2 2 Si-30 P0 0 0 P0 -20 5 2 2 Cr-50 P0 0 0 P0 -21 5 2 2 Cr-52 P0 0 0 P0 -22 5 2 2 Cr-53 P0 0 0 P0 -23 5 2 2 Cr-54 P0 0 0 P0 -24 5 2 2 C-Nat P0 0 0 P0 -25 5 2 2 Cu-63 P0 0 0 P0 -26 5 2 2 Cu-65 P0 0 0 P0 material group out nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in group out nuclide moment mean std. dev. moment -63 6 1 1 H-1 P0 0 0 P0 -64 6 1 1 O-16 P0 0 0 P0 -65 6 1 1 B-10 P0 0 0 P0 -66 6 1 1 B-11 P0 0 0 P0 -67 6 1 1 Fe-54 P0 0 0 P0 -68 6 1 1 Fe-56 P0 0 0 P0 -69 6 1 1 Fe-57 P0 0 0 P0 -70 6 1 1 Fe-58 P0 0 0 P0 -71 6 1 1 Ni-58 P0 0 0 P0 -72 6 1 1 Ni-60 P0 0 0 P0 -73 6 1 1 Ni-61 P0 0 0 P0 -74 6 1 1 Ni-62 P0 0 0 P0 -75 6 1 1 Ni-64 P0 0 0 P0 -76 6 1 1 Mn-55 P0 0 0 P0 -77 6 1 1 Si-28 P0 0 0 P0 -78 6 1 1 Si-29 P0 0 0 P0 -79 6 1 1 Si-30 P0 0 0 P0 -80 6 1 1 Cr-50 P0 0 0 P0 -81 6 1 1 Cr-52 P0 0 0 P0 -82 6 1 1 Cr-53 P0 0 0 P0 -83 6 1 1 Cr-54 P0 0 0 P0 -42 6 1 2 H-1 P0 0 0 P0 -43 6 1 2 O-16 P0 0 0 P0 -44 6 1 2 B-10 P0 0 0 P0 -45 6 1 2 B-11 P0 0 0 P0 -46 6 1 2 Fe-54 P0 0 0 P0 -47 6 1 2 Fe-56 P0 0 0 P0 -48 6 1 2 Fe-57 P0 0 0 P0 -49 6 1 2 Fe-58 P0 0 0 P0 -50 6 1 2 Ni-58 P0 0 0 P0 -51 6 1 2 Ni-60 P0 0 0 P0 -52 6 1 2 Ni-61 P0 0 0 P0 -53 6 1 2 Ni-62 P0 0 0 P0 -54 6 1 2 Ni-64 P0 0 0 P0 -55 6 1 2 Mn-55 P0 0 0 P0 -56 6 1 2 Si-28 P0 0 0 P0 -57 6 1 2 Si-29 P0 0 0 P0 -58 6 1 2 Si-30 P0 0 0 P0 -59 6 1 2 Cr-50 P0 0 0 P0 -60 6 1 2 Cr-52 P0 0 0 P0 -61 6 1 2 Cr-53 P0 0 0 P0 -62 6 1 2 Cr-54 P0 0 0 P0 -21 6 2 1 H-1 P0 0 0 P0 -22 6 2 1 O-16 P0 0 0 P0 -23 6 2 1 B-10 P0 0 0 P0 -24 6 2 1 B-11 P0 0 0 P0 -25 6 2 1 Fe-54 P0 0 0 P0 -26 6 2 1 Fe-56 P0 0 0 P0 -27 6 2 1 Fe-57 P0 0 0 P0 -28 6 2 1 Fe-58 P0 0 0 P0 -29 6 2 1 Ni-58 P0 0 0 P0 -30 6 2 1 Ni-60 P0 0 0 P0 -31 6 2 1 Ni-61 P0 0 0 P0 -32 6 2 1 Ni-62 P0 0 0 P0 -33 6 2 1 Ni-64 P0 0 0 P0 -34 6 2 1 Mn-55 P0 0 0 P0 -35 6 2 1 Si-28 P0 0 0 P0 -36 6 2 1 Si-29 P0 0 0 P0 -37 6 2 1 Si-30 P0 0 0 P0 -38 6 2 1 Cr-50 P0 0 0 P0 -39 6 2 1 Cr-52 P0 0 0 P0 -40 6 2 1 Cr-53 P0 0 0 P0 -41 6 2 1 Cr-54 P0 0 0 P0 -0 6 2 2 H-1 P0 0 0 P0 -1 6 2 2 O-16 P0 0 0 P0 -2 6 2 2 B-10 P0 0 0 P0 -3 6 2 2 B-11 P0 0 0 P0 -4 6 2 2 Fe-54 P0 0 0 P0 -5 6 2 2 Fe-56 P0 0 0 P0 -6 6 2 2 Fe-57 P0 0 0 P0 -7 6 2 2 Fe-58 P0 0 0 P0 -8 6 2 2 Ni-58 P0 0 0 P0 -9 6 2 2 Ni-60 P0 0 0 P0 -10 6 2 2 Ni-61 P0 0 0 P0 -11 6 2 2 Ni-62 P0 0 0 P0 -12 6 2 2 Ni-64 P0 0 0 P0 -13 6 2 2 Mn-55 P0 0 0 P0 -14 6 2 2 Si-28 P0 0 0 P0 -15 6 2 2 Si-29 P0 0 0 P0 -16 6 2 2 Si-30 P0 0 0 P0 -17 6 2 2 Cr-50 P0 0 0 P0 -18 6 2 2 Cr-52 P0 0 0 P0 -19 6 2 2 Cr-53 P0 0 0 P0 -20 6 2 2 Cr-54 P0 0 0 P0 material group out nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in group out nuclide moment mean std. dev. moment -63 7 1 1 H-1 P0 0 0 P0 -64 7 1 1 O-16 P0 0 0 P0 -65 7 1 1 B-10 P0 0 0 P0 -66 7 1 1 B-11 P0 0 0 P0 -67 7 1 1 Fe-54 P0 0 0 P0 -68 7 1 1 Fe-56 P0 0 0 P0 -69 7 1 1 Fe-57 P0 0 0 P0 -70 7 1 1 Fe-58 P0 0 0 P0 -71 7 1 1 Ni-58 P0 0 0 P0 -72 7 1 1 Ni-60 P0 0 0 P0 -73 7 1 1 Ni-61 P0 0 0 P0 -74 7 1 1 Ni-62 P0 0 0 P0 -75 7 1 1 Ni-64 P0 0 0 P0 -76 7 1 1 Mn-55 P0 0 0 P0 -77 7 1 1 Si-28 P0 0 0 P0 -78 7 1 1 Si-29 P0 0 0 P0 -79 7 1 1 Si-30 P0 0 0 P0 -80 7 1 1 Cr-50 P0 0 0 P0 -81 7 1 1 Cr-52 P0 0 0 P0 -82 7 1 1 Cr-53 P0 0 0 P0 -83 7 1 1 Cr-54 P0 0 0 P0 -42 7 1 2 H-1 P0 0 0 P0 -43 7 1 2 O-16 P0 0 0 P0 -44 7 1 2 B-10 P0 0 0 P0 -45 7 1 2 B-11 P0 0 0 P0 -46 7 1 2 Fe-54 P0 0 0 P0 -47 7 1 2 Fe-56 P0 0 0 P0 -48 7 1 2 Fe-57 P0 0 0 P0 -49 7 1 2 Fe-58 P0 0 0 P0 -50 7 1 2 Ni-58 P0 0 0 P0 -51 7 1 2 Ni-60 P0 0 0 P0 -52 7 1 2 Ni-61 P0 0 0 P0 -53 7 1 2 Ni-62 P0 0 0 P0 -54 7 1 2 Ni-64 P0 0 0 P0 -55 7 1 2 Mn-55 P0 0 0 P0 -56 7 1 2 Si-28 P0 0 0 P0 -57 7 1 2 Si-29 P0 0 0 P0 -58 7 1 2 Si-30 P0 0 0 P0 -59 7 1 2 Cr-50 P0 0 0 P0 -60 7 1 2 Cr-52 P0 0 0 P0 -61 7 1 2 Cr-53 P0 0 0 P0 -62 7 1 2 Cr-54 P0 0 0 P0 -21 7 2 1 H-1 P0 0 0 P0 -22 7 2 1 O-16 P0 0 0 P0 -23 7 2 1 B-10 P0 0 0 P0 -24 7 2 1 B-11 P0 0 0 P0 -25 7 2 1 Fe-54 P0 0 0 P0 -26 7 2 1 Fe-56 P0 0 0 P0 -27 7 2 1 Fe-57 P0 0 0 P0 -28 7 2 1 Fe-58 P0 0 0 P0 -29 7 2 1 Ni-58 P0 0 0 P0 -30 7 2 1 Ni-60 P0 0 0 P0 -31 7 2 1 Ni-61 P0 0 0 P0 -32 7 2 1 Ni-62 P0 0 0 P0 -33 7 2 1 Ni-64 P0 0 0 P0 -34 7 2 1 Mn-55 P0 0 0 P0 -35 7 2 1 Si-28 P0 0 0 P0 -36 7 2 1 Si-29 P0 0 0 P0 -37 7 2 1 Si-30 P0 0 0 P0 -38 7 2 1 Cr-50 P0 0 0 P0 -39 7 2 1 Cr-52 P0 0 0 P0 -40 7 2 1 Cr-53 P0 0 0 P0 -41 7 2 1 Cr-54 P0 0 0 P0 -0 7 2 2 H-1 P0 0 0 P0 -1 7 2 2 O-16 P0 0 0 P0 -2 7 2 2 B-10 P0 0 0 P0 -3 7 2 2 B-11 P0 0 0 P0 -4 7 2 2 Fe-54 P0 0 0 P0 -5 7 2 2 Fe-56 P0 0 0 P0 -6 7 2 2 Fe-57 P0 0 0 P0 -7 7 2 2 Fe-58 P0 0 0 P0 -8 7 2 2 Ni-58 P0 0 0 P0 -9 7 2 2 Ni-60 P0 0 0 P0 -10 7 2 2 Ni-61 P0 0 0 P0 -11 7 2 2 Ni-62 P0 0 0 P0 -12 7 2 2 Ni-64 P0 0 0 P0 -13 7 2 2 Mn-55 P0 0 0 P0 -14 7 2 2 Si-28 P0 0 0 P0 -15 7 2 2 Si-29 P0 0 0 P0 -16 7 2 2 Si-30 P0 0 0 P0 -17 7 2 2 Cr-50 P0 0 0 P0 -18 7 2 2 Cr-52 P0 0 0 P0 -19 7 2 2 Cr-53 P0 0 0 P0 -20 7 2 2 Cr-54 P0 0 0 P0 material group out nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in group out nuclide moment mean std. dev. moment -63 8 1 1 H-1 P0 0 0 P0 -64 8 1 1 O-16 P0 0 0 P0 -65 8 1 1 B-10 P0 0 0 P0 -66 8 1 1 B-11 P0 0 0 P0 -67 8 1 1 Fe-54 P0 0 0 P0 -68 8 1 1 Fe-56 P0 0 0 P0 -69 8 1 1 Fe-57 P0 0 0 P0 -70 8 1 1 Fe-58 P0 0 0 P0 -71 8 1 1 Ni-58 P0 0 0 P0 -72 8 1 1 Ni-60 P0 0 0 P0 -73 8 1 1 Ni-61 P0 0 0 P0 -74 8 1 1 Ni-62 P0 0 0 P0 -75 8 1 1 Ni-64 P0 0 0 P0 -76 8 1 1 Mn-55 P0 0 0 P0 -77 8 1 1 Si-28 P0 0 0 P0 -78 8 1 1 Si-29 P0 0 0 P0 -79 8 1 1 Si-30 P0 0 0 P0 -80 8 1 1 Cr-50 P0 0 0 P0 -81 8 1 1 Cr-52 P0 0 0 P0 -82 8 1 1 Cr-53 P0 0 0 P0 -83 8 1 1 Cr-54 P0 0 0 P0 -42 8 1 2 H-1 P0 0 0 P0 -43 8 1 2 O-16 P0 0 0 P0 -44 8 1 2 B-10 P0 0 0 P0 -45 8 1 2 B-11 P0 0 0 P0 -46 8 1 2 Fe-54 P0 0 0 P0 -47 8 1 2 Fe-56 P0 0 0 P0 -48 8 1 2 Fe-57 P0 0 0 P0 -49 8 1 2 Fe-58 P0 0 0 P0 -50 8 1 2 Ni-58 P0 0 0 P0 -51 8 1 2 Ni-60 P0 0 0 P0 -52 8 1 2 Ni-61 P0 0 0 P0 -53 8 1 2 Ni-62 P0 0 0 P0 -54 8 1 2 Ni-64 P0 0 0 P0 -55 8 1 2 Mn-55 P0 0 0 P0 -56 8 1 2 Si-28 P0 0 0 P0 -57 8 1 2 Si-29 P0 0 0 P0 -58 8 1 2 Si-30 P0 0 0 P0 -59 8 1 2 Cr-50 P0 0 0 P0 -60 8 1 2 Cr-52 P0 0 0 P0 -61 8 1 2 Cr-53 P0 0 0 P0 -62 8 1 2 Cr-54 P0 0 0 P0 -21 8 2 1 H-1 P0 0 0 P0 -22 8 2 1 O-16 P0 0 0 P0 -23 8 2 1 B-10 P0 0 0 P0 -24 8 2 1 B-11 P0 0 0 P0 -25 8 2 1 Fe-54 P0 0 0 P0 -26 8 2 1 Fe-56 P0 0 0 P0 -27 8 2 1 Fe-57 P0 0 0 P0 -28 8 2 1 Fe-58 P0 0 0 P0 -29 8 2 1 Ni-58 P0 0 0 P0 -30 8 2 1 Ni-60 P0 0 0 P0 -31 8 2 1 Ni-61 P0 0 0 P0 -32 8 2 1 Ni-62 P0 0 0 P0 -33 8 2 1 Ni-64 P0 0 0 P0 -34 8 2 1 Mn-55 P0 0 0 P0 -35 8 2 1 Si-28 P0 0 0 P0 -36 8 2 1 Si-29 P0 0 0 P0 -37 8 2 1 Si-30 P0 0 0 P0 -38 8 2 1 Cr-50 P0 0 0 P0 -39 8 2 1 Cr-52 P0 0 0 P0 -40 8 2 1 Cr-53 P0 0 0 P0 -41 8 2 1 Cr-54 P0 0 0 P0 -0 8 2 2 H-1 P0 0 0 P0 -1 8 2 2 O-16 P0 0 0 P0 -2 8 2 2 B-10 P0 0 0 P0 -3 8 2 2 B-11 P0 0 0 P0 -4 8 2 2 Fe-54 P0 0 0 P0 -5 8 2 2 Fe-56 P0 0 0 P0 -6 8 2 2 Fe-57 P0 0 0 P0 -7 8 2 2 Fe-58 P0 0 0 P0 -8 8 2 2 Ni-58 P0 0 0 P0 -9 8 2 2 Ni-60 P0 0 0 P0 -10 8 2 2 Ni-61 P0 0 0 P0 -11 8 2 2 Ni-62 P0 0 0 P0 -12 8 2 2 Ni-64 P0 0 0 P0 -13 8 2 2 Mn-55 P0 0 0 P0 -14 8 2 2 Si-28 P0 0 0 P0 -15 8 2 2 Si-29 P0 0 0 P0 -16 8 2 2 Si-30 P0 0 0 P0 -17 8 2 2 Cr-50 P0 0 0 P0 -18 8 2 2 Cr-52 P0 0 0 P0 -19 8 2 2 Cr-53 P0 0 0 P0 -20 8 2 2 Cr-54 P0 0 0 P0 material group out nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. +4 4 1 H-1 0.0 0.0 +5 4 1 O-16 0.0 0.0 +6 4 1 B-10 0.0 0.0 +7 4 1 B-11 0.0 0.0 +0 4 2 H-1 0.0 0.0 +1 4 2 O-16 0.0 0.0 +2 4 2 B-10 0.0 0.0 +3 4 2 B-11 0.0 0.0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0.0 0.0 +28 5 1 Fe-56 0.0 0.0 +29 5 1 Fe-57 0.0 0.0 +30 5 1 Fe-58 0.0 0.0 +31 5 1 Ni-58 0.0 0.0 +32 5 1 Ni-60 0.0 0.0 +33 5 1 Ni-61 0.0 0.0 +34 5 1 Ni-62 0.0 0.0 +35 5 1 Ni-64 0.0 0.0 +36 5 1 Mn-55 0.0 0.0 +37 5 1 Mo-92 0.0 0.0 +38 5 1 Mo-94 0.0 0.0 +39 5 1 Mo-95 0.0 0.0 +40 5 1 Mo-96 0.0 0.0 +41 5 1 Mo-97 0.0 0.0 +42 5 1 Mo-98 0.0 0.0 +43 5 1 Mo-100 0.0 0.0 +44 5 1 Si-28 0.0 0.0 +45 5 1 Si-29 0.0 0.0 +46 5 1 Si-30 0.0 0.0 +47 5 1 Cr-50 0.0 0.0 +48 5 1 Cr-52 0.0 0.0 +49 5 1 Cr-53 0.0 0.0 +50 5 1 Cr-54 0.0 0.0 +51 5 1 C-Nat 0.0 0.0 +52 5 1 Cu-63 0.0 0.0 +53 5 1 Cu-65 0.0 0.0 +0 5 2 Fe-54 0.0 0.0 +1 5 2 Fe-56 0.0 0.0 +2 5 2 Fe-57 0.0 0.0 +3 5 2 Fe-58 0.0 0.0 +4 5 2 Ni-58 0.0 0.0 +5 5 2 Ni-60 0.0 0.0 +6 5 2 Ni-61 0.0 0.0 +7 5 2 Ni-62 0.0 0.0 +8 5 2 Ni-64 0.0 0.0 +9 5 2 Mn-55 0.0 0.0 +10 5 2 Mo-92 0.0 0.0 +11 5 2 Mo-94 0.0 0.0 +12 5 2 Mo-95 0.0 0.0 +13 5 2 Mo-96 0.0 0.0 +14 5 2 Mo-97 0.0 0.0 +15 5 2 Mo-98 0.0 0.0 +16 5 2 Mo-100 0.0 0.0 +17 5 2 Si-28 0.0 0.0 +18 5 2 Si-29 0.0 0.0 +19 5 2 Si-30 0.0 0.0 +20 5 2 Cr-50 0.0 0.0 +21 5 2 Cr-52 0.0 0.0 +22 5 2 Cr-53 0.0 0.0 +23 5 2 Cr-54 0.0 0.0 +24 5 2 C-Nat 0.0 0.0 +25 5 2 Cu-63 0.0 0.0 +26 5 2 Cu-65 0.0 0.0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0.0 0.0 +28 5 1 Fe-56 0.0 0.0 +29 5 1 Fe-57 0.0 0.0 +30 5 1 Fe-58 0.0 0.0 +31 5 1 Ni-58 0.0 0.0 +32 5 1 Ni-60 0.0 0.0 +33 5 1 Ni-61 0.0 0.0 +34 5 1 Ni-62 0.0 0.0 +35 5 1 Ni-64 0.0 0.0 +36 5 1 Mn-55 0.0 0.0 +37 5 1 Mo-92 0.0 0.0 +38 5 1 Mo-94 0.0 0.0 +39 5 1 Mo-95 0.0 0.0 +40 5 1 Mo-96 0.0 0.0 +41 5 1 Mo-97 0.0 0.0 +42 5 1 Mo-98 0.0 0.0 +43 5 1 Mo-100 0.0 0.0 +44 5 1 Si-28 0.0 0.0 +45 5 1 Si-29 0.0 0.0 +46 5 1 Si-30 0.0 0.0 +47 5 1 Cr-50 0.0 0.0 +48 5 1 Cr-52 0.0 0.0 +49 5 1 Cr-53 0.0 0.0 +50 5 1 Cr-54 0.0 0.0 +51 5 1 C-Nat 0.0 0.0 +52 5 1 Cu-63 0.0 0.0 +53 5 1 Cu-65 0.0 0.0 +0 5 2 Fe-54 0.0 0.0 +1 5 2 Fe-56 0.0 0.0 +2 5 2 Fe-57 0.0 0.0 +3 5 2 Fe-58 0.0 0.0 +4 5 2 Ni-58 0.0 0.0 +5 5 2 Ni-60 0.0 0.0 +6 5 2 Ni-61 0.0 0.0 +7 5 2 Ni-62 0.0 0.0 +8 5 2 Ni-64 0.0 0.0 +9 5 2 Mn-55 0.0 0.0 +10 5 2 Mo-92 0.0 0.0 +11 5 2 Mo-94 0.0 0.0 +12 5 2 Mo-95 0.0 0.0 +13 5 2 Mo-96 0.0 0.0 +14 5 2 Mo-97 0.0 0.0 +15 5 2 Mo-98 0.0 0.0 +16 5 2 Mo-100 0.0 0.0 +17 5 2 Si-28 0.0 0.0 +18 5 2 Si-29 0.0 0.0 +19 5 2 Si-30 0.0 0.0 +20 5 2 Cr-50 0.0 0.0 +21 5 2 Cr-52 0.0 0.0 +22 5 2 Cr-53 0.0 0.0 +23 5 2 Cr-54 0.0 0.0 +24 5 2 C-Nat 0.0 0.0 +25 5 2 Cu-63 0.0 0.0 +26 5 2 Cu-65 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +81 5 1 1 Fe-54 P0 0.0 0.0 P0 +82 5 1 1 Fe-56 P0 0.0 0.0 P0 +83 5 1 1 Fe-57 P0 0.0 0.0 P0 +84 5 1 1 Fe-58 P0 0.0 0.0 P0 +85 5 1 1 Ni-58 P0 0.0 0.0 P0 +86 5 1 1 Ni-60 P0 0.0 0.0 P0 +87 5 1 1 Ni-61 P0 0.0 0.0 P0 +88 5 1 1 Ni-62 P0 0.0 0.0 P0 +89 5 1 1 Ni-64 P0 0.0 0.0 P0 +90 5 1 1 Mn-55 P0 0.0 0.0 P0 +91 5 1 1 Mo-92 P0 0.0 0.0 P0 +92 5 1 1 Mo-94 P0 0.0 0.0 P0 +93 5 1 1 Mo-95 P0 0.0 0.0 P0 +94 5 1 1 Mo-96 P0 0.0 0.0 P0 +95 5 1 1 Mo-97 P0 0.0 0.0 P0 +96 5 1 1 Mo-98 P0 0.0 0.0 P0 +97 5 1 1 Mo-100 P0 0.0 0.0 P0 +98 5 1 1 Si-28 P0 0.0 0.0 P0 +99 5 1 1 Si-29 P0 0.0 0.0 P0 +100 5 1 1 Si-30 P0 0.0 0.0 P0 +101 5 1 1 Cr-50 P0 0.0 0.0 P0 +102 5 1 1 Cr-52 P0 0.0 0.0 P0 +103 5 1 1 Cr-53 P0 0.0 0.0 P0 +104 5 1 1 Cr-54 P0 0.0 0.0 P0 +105 5 1 1 C-Nat P0 0.0 0.0 P0 +106 5 1 1 Cu-63 P0 0.0 0.0 P0 +107 5 1 1 Cu-65 P0 0.0 0.0 P0 +54 5 1 2 Fe-54 P0 0.0 0.0 P0 +55 5 1 2 Fe-56 P0 0.0 0.0 P0 +56 5 1 2 Fe-57 P0 0.0 0.0 P0 +57 5 1 2 Fe-58 P0 0.0 0.0 P0 +58 5 1 2 Ni-58 P0 0.0 0.0 P0 +59 5 1 2 Ni-60 P0 0.0 0.0 P0 +60 5 1 2 Ni-61 P0 0.0 0.0 P0 +61 5 1 2 Ni-62 P0 0.0 0.0 P0 +62 5 1 2 Ni-64 P0 0.0 0.0 P0 +63 5 1 2 Mn-55 P0 0.0 0.0 P0 +64 5 1 2 Mo-92 P0 0.0 0.0 P0 +65 5 1 2 Mo-94 P0 0.0 0.0 P0 +66 5 1 2 Mo-95 P0 0.0 0.0 P0 +67 5 1 2 Mo-96 P0 0.0 0.0 P0 +68 5 1 2 Mo-97 P0 0.0 0.0 P0 +69 5 1 2 Mo-98 P0 0.0 0.0 P0 +70 5 1 2 Mo-100 P0 0.0 0.0 P0 +71 5 1 2 Si-28 P0 0.0 0.0 P0 +72 5 1 2 Si-29 P0 0.0 0.0 P0 +73 5 1 2 Si-30 P0 0.0 0.0 P0 +74 5 1 2 Cr-50 P0 0.0 0.0 P0 +75 5 1 2 Cr-52 P0 0.0 0.0 P0 +76 5 1 2 Cr-53 P0 0.0 0.0 P0 +77 5 1 2 Cr-54 P0 0.0 0.0 P0 +78 5 1 2 C-Nat P0 0.0 0.0 P0 +79 5 1 2 Cu-63 P0 0.0 0.0 P0 +80 5 1 2 Cu-65 P0 0.0 0.0 P0 +27 5 2 1 Fe-54 P0 0.0 0.0 P0 +28 5 2 1 Fe-56 P0 0.0 0.0 P0 +29 5 2 1 Fe-57 P0 0.0 0.0 P0 +30 5 2 1 Fe-58 P0 0.0 0.0 P0 +31 5 2 1 Ni-58 P0 0.0 0.0 P0 +32 5 2 1 Ni-60 P0 0.0 0.0 P0 +33 5 2 1 Ni-61 P0 0.0 0.0 P0 +34 5 2 1 Ni-62 P0 0.0 0.0 P0 +35 5 2 1 Ni-64 P0 0.0 0.0 P0 +36 5 2 1 Mn-55 P0 0.0 0.0 P0 +37 5 2 1 Mo-92 P0 0.0 0.0 P0 +38 5 2 1 Mo-94 P0 0.0 0.0 P0 +39 5 2 1 Mo-95 P0 0.0 0.0 P0 +40 5 2 1 Mo-96 P0 0.0 0.0 P0 +41 5 2 1 Mo-97 P0 0.0 0.0 P0 +42 5 2 1 Mo-98 P0 0.0 0.0 P0 +43 5 2 1 Mo-100 P0 0.0 0.0 P0 +44 5 2 1 Si-28 P0 0.0 0.0 P0 +45 5 2 1 Si-29 P0 0.0 0.0 P0 +46 5 2 1 Si-30 P0 0.0 0.0 P0 +47 5 2 1 Cr-50 P0 0.0 0.0 P0 +48 5 2 1 Cr-52 P0 0.0 0.0 P0 +49 5 2 1 Cr-53 P0 0.0 0.0 P0 +50 5 2 1 Cr-54 P0 0.0 0.0 P0 +51 5 2 1 C-Nat P0 0.0 0.0 P0 +52 5 2 1 Cu-63 P0 0.0 0.0 P0 +53 5 2 1 Cu-65 P0 0.0 0.0 P0 +0 5 2 2 Fe-54 P0 0.0 0.0 P0 +1 5 2 2 Fe-56 P0 0.0 0.0 P0 +2 5 2 2 Fe-57 P0 0.0 0.0 P0 +3 5 2 2 Fe-58 P0 0.0 0.0 P0 +4 5 2 2 Ni-58 P0 0.0 0.0 P0 +5 5 2 2 Ni-60 P0 0.0 0.0 P0 +6 5 2 2 Ni-61 P0 0.0 0.0 P0 +7 5 2 2 Ni-62 P0 0.0 0.0 P0 +8 5 2 2 Ni-64 P0 0.0 0.0 P0 +9 5 2 2 Mn-55 P0 0.0 0.0 P0 +10 5 2 2 Mo-92 P0 0.0 0.0 P0 +11 5 2 2 Mo-94 P0 0.0 0.0 P0 +12 5 2 2 Mo-95 P0 0.0 0.0 P0 +13 5 2 2 Mo-96 P0 0.0 0.0 P0 +14 5 2 2 Mo-97 P0 0.0 0.0 P0 +15 5 2 2 Mo-98 P0 0.0 0.0 P0 +16 5 2 2 Mo-100 P0 0.0 0.0 P0 +17 5 2 2 Si-28 P0 0.0 0.0 P0 +18 5 2 2 Si-29 P0 0.0 0.0 P0 +19 5 2 2 Si-30 P0 0.0 0.0 P0 +20 5 2 2 Cr-50 P0 0.0 0.0 P0 +21 5 2 2 Cr-52 P0 0.0 0.0 P0 +22 5 2 2 Cr-53 P0 0.0 0.0 P0 +23 5 2 2 Cr-54 P0 0.0 0.0 P0 +24 5 2 2 C-Nat P0 0.0 0.0 P0 +25 5 2 2 Cu-63 P0 0.0 0.0 P0 +26 5 2 2 Cu-65 P0 0.0 0.0 P0 material group out nuclide mean std. dev. +27 5 1 Fe-54 0.0 0.0 +28 5 1 Fe-56 0.0 0.0 +29 5 1 Fe-57 0.0 0.0 +30 5 1 Fe-58 0.0 0.0 +31 5 1 Ni-58 0.0 0.0 +32 5 1 Ni-60 0.0 0.0 +33 5 1 Ni-61 0.0 0.0 +34 5 1 Ni-62 0.0 0.0 +35 5 1 Ni-64 0.0 0.0 +36 5 1 Mn-55 0.0 0.0 +37 5 1 Mo-92 0.0 0.0 +38 5 1 Mo-94 0.0 0.0 +39 5 1 Mo-95 0.0 0.0 +40 5 1 Mo-96 0.0 0.0 +41 5 1 Mo-97 0.0 0.0 +42 5 1 Mo-98 0.0 0.0 +43 5 1 Mo-100 0.0 0.0 +44 5 1 Si-28 0.0 0.0 +45 5 1 Si-29 0.0 0.0 +46 5 1 Si-30 0.0 0.0 +47 5 1 Cr-50 0.0 0.0 +48 5 1 Cr-52 0.0 0.0 +49 5 1 Cr-53 0.0 0.0 +50 5 1 Cr-54 0.0 0.0 +51 5 1 C-Nat 0.0 0.0 +52 5 1 Cu-63 0.0 0.0 +53 5 1 Cu-65 0.0 0.0 +0 5 2 Fe-54 0.0 0.0 +1 5 2 Fe-56 0.0 0.0 +2 5 2 Fe-57 0.0 0.0 +3 5 2 Fe-58 0.0 0.0 +4 5 2 Ni-58 0.0 0.0 +5 5 2 Ni-60 0.0 0.0 +6 5 2 Ni-61 0.0 0.0 +7 5 2 Ni-62 0.0 0.0 +8 5 2 Ni-64 0.0 0.0 +9 5 2 Mn-55 0.0 0.0 +10 5 2 Mo-92 0.0 0.0 +11 5 2 Mo-94 0.0 0.0 +12 5 2 Mo-95 0.0 0.0 +13 5 2 Mo-96 0.0 0.0 +14 5 2 Mo-97 0.0 0.0 +15 5 2 Mo-98 0.0 0.0 +16 5 2 Mo-100 0.0 0.0 +17 5 2 Si-28 0.0 0.0 +18 5 2 Si-29 0.0 0.0 +19 5 2 Si-30 0.0 0.0 +20 5 2 Cr-50 0.0 0.0 +21 5 2 Cr-52 0.0 0.0 +22 5 2 Cr-53 0.0 0.0 +23 5 2 Cr-54 0.0 0.0 +24 5 2 C-Nat 0.0 0.0 +25 5 2 Cu-63 0.0 0.0 +26 5 2 Cu-65 0.0 0.0 material group in nuclide mean std. dev. +21 6 1 H-1 0.0 0.0 +22 6 1 O-16 0.0 0.0 +23 6 1 B-10 0.0 0.0 +24 6 1 B-11 0.0 0.0 +25 6 1 Fe-54 0.0 0.0 +26 6 1 Fe-56 0.0 0.0 +27 6 1 Fe-57 0.0 0.0 +28 6 1 Fe-58 0.0 0.0 +29 6 1 Ni-58 0.0 0.0 +30 6 1 Ni-60 0.0 0.0 +31 6 1 Ni-61 0.0 0.0 +32 6 1 Ni-62 0.0 0.0 +33 6 1 Ni-64 0.0 0.0 +34 6 1 Mn-55 0.0 0.0 +35 6 1 Si-28 0.0 0.0 +36 6 1 Si-29 0.0 0.0 +37 6 1 Si-30 0.0 0.0 +38 6 1 Cr-50 0.0 0.0 +39 6 1 Cr-52 0.0 0.0 +40 6 1 Cr-53 0.0 0.0 +41 6 1 Cr-54 0.0 0.0 +0 6 2 H-1 0.0 0.0 +1 6 2 O-16 0.0 0.0 +2 6 2 B-10 0.0 0.0 +3 6 2 B-11 0.0 0.0 +4 6 2 Fe-54 0.0 0.0 +5 6 2 Fe-56 0.0 0.0 +6 6 2 Fe-57 0.0 0.0 +7 6 2 Fe-58 0.0 0.0 +8 6 2 Ni-58 0.0 0.0 +9 6 2 Ni-60 0.0 0.0 +10 6 2 Ni-61 0.0 0.0 +11 6 2 Ni-62 0.0 0.0 +12 6 2 Ni-64 0.0 0.0 +13 6 2 Mn-55 0.0 0.0 +14 6 2 Si-28 0.0 0.0 +15 6 2 Si-29 0.0 0.0 +16 6 2 Si-30 0.0 0.0 +17 6 2 Cr-50 0.0 0.0 +18 6 2 Cr-52 0.0 0.0 +19 6 2 Cr-53 0.0 0.0 +20 6 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 6 1 H-1 0.0 0.0 +22 6 1 O-16 0.0 0.0 +23 6 1 B-10 0.0 0.0 +24 6 1 B-11 0.0 0.0 +25 6 1 Fe-54 0.0 0.0 +26 6 1 Fe-56 0.0 0.0 +27 6 1 Fe-57 0.0 0.0 +28 6 1 Fe-58 0.0 0.0 +29 6 1 Ni-58 0.0 0.0 +30 6 1 Ni-60 0.0 0.0 +31 6 1 Ni-61 0.0 0.0 +32 6 1 Ni-62 0.0 0.0 +33 6 1 Ni-64 0.0 0.0 +34 6 1 Mn-55 0.0 0.0 +35 6 1 Si-28 0.0 0.0 +36 6 1 Si-29 0.0 0.0 +37 6 1 Si-30 0.0 0.0 +38 6 1 Cr-50 0.0 0.0 +39 6 1 Cr-52 0.0 0.0 +40 6 1 Cr-53 0.0 0.0 +41 6 1 Cr-54 0.0 0.0 +0 6 2 H-1 0.0 0.0 +1 6 2 O-16 0.0 0.0 +2 6 2 B-10 0.0 0.0 +3 6 2 B-11 0.0 0.0 +4 6 2 Fe-54 0.0 0.0 +5 6 2 Fe-56 0.0 0.0 +6 6 2 Fe-57 0.0 0.0 +7 6 2 Fe-58 0.0 0.0 +8 6 2 Ni-58 0.0 0.0 +9 6 2 Ni-60 0.0 0.0 +10 6 2 Ni-61 0.0 0.0 +11 6 2 Ni-62 0.0 0.0 +12 6 2 Ni-64 0.0 0.0 +13 6 2 Mn-55 0.0 0.0 +14 6 2 Si-28 0.0 0.0 +15 6 2 Si-29 0.0 0.0 +16 6 2 Si-30 0.0 0.0 +17 6 2 Cr-50 0.0 0.0 +18 6 2 Cr-52 0.0 0.0 +19 6 2 Cr-53 0.0 0.0 +20 6 2 Cr-54 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +63 6 1 1 H-1 P0 0.0 0.0 P0 +64 6 1 1 O-16 P0 0.0 0.0 P0 +65 6 1 1 B-10 P0 0.0 0.0 P0 +66 6 1 1 B-11 P0 0.0 0.0 P0 +67 6 1 1 Fe-54 P0 0.0 0.0 P0 +68 6 1 1 Fe-56 P0 0.0 0.0 P0 +69 6 1 1 Fe-57 P0 0.0 0.0 P0 +70 6 1 1 Fe-58 P0 0.0 0.0 P0 +71 6 1 1 Ni-58 P0 0.0 0.0 P0 +72 6 1 1 Ni-60 P0 0.0 0.0 P0 +73 6 1 1 Ni-61 P0 0.0 0.0 P0 +74 6 1 1 Ni-62 P0 0.0 0.0 P0 +75 6 1 1 Ni-64 P0 0.0 0.0 P0 +76 6 1 1 Mn-55 P0 0.0 0.0 P0 +77 6 1 1 Si-28 P0 0.0 0.0 P0 +78 6 1 1 Si-29 P0 0.0 0.0 P0 +79 6 1 1 Si-30 P0 0.0 0.0 P0 +80 6 1 1 Cr-50 P0 0.0 0.0 P0 +81 6 1 1 Cr-52 P0 0.0 0.0 P0 +82 6 1 1 Cr-53 P0 0.0 0.0 P0 +83 6 1 1 Cr-54 P0 0.0 0.0 P0 +42 6 1 2 H-1 P0 0.0 0.0 P0 +43 6 1 2 O-16 P0 0.0 0.0 P0 +44 6 1 2 B-10 P0 0.0 0.0 P0 +45 6 1 2 B-11 P0 0.0 0.0 P0 +46 6 1 2 Fe-54 P0 0.0 0.0 P0 +47 6 1 2 Fe-56 P0 0.0 0.0 P0 +48 6 1 2 Fe-57 P0 0.0 0.0 P0 +49 6 1 2 Fe-58 P0 0.0 0.0 P0 +50 6 1 2 Ni-58 P0 0.0 0.0 P0 +51 6 1 2 Ni-60 P0 0.0 0.0 P0 +52 6 1 2 Ni-61 P0 0.0 0.0 P0 +53 6 1 2 Ni-62 P0 0.0 0.0 P0 +54 6 1 2 Ni-64 P0 0.0 0.0 P0 +55 6 1 2 Mn-55 P0 0.0 0.0 P0 +56 6 1 2 Si-28 P0 0.0 0.0 P0 +57 6 1 2 Si-29 P0 0.0 0.0 P0 +58 6 1 2 Si-30 P0 0.0 0.0 P0 +59 6 1 2 Cr-50 P0 0.0 0.0 P0 +60 6 1 2 Cr-52 P0 0.0 0.0 P0 +61 6 1 2 Cr-53 P0 0.0 0.0 P0 +62 6 1 2 Cr-54 P0 0.0 0.0 P0 +21 6 2 1 H-1 P0 0.0 0.0 P0 +22 6 2 1 O-16 P0 0.0 0.0 P0 +23 6 2 1 B-10 P0 0.0 0.0 P0 +24 6 2 1 B-11 P0 0.0 0.0 P0 +25 6 2 1 Fe-54 P0 0.0 0.0 P0 +26 6 2 1 Fe-56 P0 0.0 0.0 P0 +27 6 2 1 Fe-57 P0 0.0 0.0 P0 +28 6 2 1 Fe-58 P0 0.0 0.0 P0 +29 6 2 1 Ni-58 P0 0.0 0.0 P0 +30 6 2 1 Ni-60 P0 0.0 0.0 P0 +31 6 2 1 Ni-61 P0 0.0 0.0 P0 +32 6 2 1 Ni-62 P0 0.0 0.0 P0 +33 6 2 1 Ni-64 P0 0.0 0.0 P0 +34 6 2 1 Mn-55 P0 0.0 0.0 P0 +35 6 2 1 Si-28 P0 0.0 0.0 P0 +36 6 2 1 Si-29 P0 0.0 0.0 P0 +37 6 2 1 Si-30 P0 0.0 0.0 P0 +38 6 2 1 Cr-50 P0 0.0 0.0 P0 +39 6 2 1 Cr-52 P0 0.0 0.0 P0 +40 6 2 1 Cr-53 P0 0.0 0.0 P0 +41 6 2 1 Cr-54 P0 0.0 0.0 P0 +0 6 2 2 H-1 P0 0.0 0.0 P0 +1 6 2 2 O-16 P0 0.0 0.0 P0 +2 6 2 2 B-10 P0 0.0 0.0 P0 +3 6 2 2 B-11 P0 0.0 0.0 P0 +4 6 2 2 Fe-54 P0 0.0 0.0 P0 +5 6 2 2 Fe-56 P0 0.0 0.0 P0 +6 6 2 2 Fe-57 P0 0.0 0.0 P0 +7 6 2 2 Fe-58 P0 0.0 0.0 P0 +8 6 2 2 Ni-58 P0 0.0 0.0 P0 +9 6 2 2 Ni-60 P0 0.0 0.0 P0 +10 6 2 2 Ni-61 P0 0.0 0.0 P0 +11 6 2 2 Ni-62 P0 0.0 0.0 P0 +12 6 2 2 Ni-64 P0 0.0 0.0 P0 +13 6 2 2 Mn-55 P0 0.0 0.0 P0 +14 6 2 2 Si-28 P0 0.0 0.0 P0 +15 6 2 2 Si-29 P0 0.0 0.0 P0 +16 6 2 2 Si-30 P0 0.0 0.0 P0 +17 6 2 2 Cr-50 P0 0.0 0.0 P0 +18 6 2 2 Cr-52 P0 0.0 0.0 P0 +19 6 2 2 Cr-53 P0 0.0 0.0 P0 +20 6 2 2 Cr-54 P0 0.0 0.0 P0 material group out nuclide mean std. dev. +21 6 1 H-1 0.0 0.0 +22 6 1 O-16 0.0 0.0 +23 6 1 B-10 0.0 0.0 +24 6 1 B-11 0.0 0.0 +25 6 1 Fe-54 0.0 0.0 +26 6 1 Fe-56 0.0 0.0 +27 6 1 Fe-57 0.0 0.0 +28 6 1 Fe-58 0.0 0.0 +29 6 1 Ni-58 0.0 0.0 +30 6 1 Ni-60 0.0 0.0 +31 6 1 Ni-61 0.0 0.0 +32 6 1 Ni-62 0.0 0.0 +33 6 1 Ni-64 0.0 0.0 +34 6 1 Mn-55 0.0 0.0 +35 6 1 Si-28 0.0 0.0 +36 6 1 Si-29 0.0 0.0 +37 6 1 Si-30 0.0 0.0 +38 6 1 Cr-50 0.0 0.0 +39 6 1 Cr-52 0.0 0.0 +40 6 1 Cr-53 0.0 0.0 +41 6 1 Cr-54 0.0 0.0 +0 6 2 H-1 0.0 0.0 +1 6 2 O-16 0.0 0.0 +2 6 2 B-10 0.0 0.0 +3 6 2 B-11 0.0 0.0 +4 6 2 Fe-54 0.0 0.0 +5 6 2 Fe-56 0.0 0.0 +6 6 2 Fe-57 0.0 0.0 +7 6 2 Fe-58 0.0 0.0 +8 6 2 Ni-58 0.0 0.0 +9 6 2 Ni-60 0.0 0.0 +10 6 2 Ni-61 0.0 0.0 +11 6 2 Ni-62 0.0 0.0 +12 6 2 Ni-64 0.0 0.0 +13 6 2 Mn-55 0.0 0.0 +14 6 2 Si-28 0.0 0.0 +15 6 2 Si-29 0.0 0.0 +16 6 2 Si-30 0.0 0.0 +17 6 2 Cr-50 0.0 0.0 +18 6 2 Cr-52 0.0 0.0 +19 6 2 Cr-53 0.0 0.0 +20 6 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 7 1 H-1 0.0 0.0 +22 7 1 O-16 0.0 0.0 +23 7 1 B-10 0.0 0.0 +24 7 1 B-11 0.0 0.0 +25 7 1 Fe-54 0.0 0.0 +26 7 1 Fe-56 0.0 0.0 +27 7 1 Fe-57 0.0 0.0 +28 7 1 Fe-58 0.0 0.0 +29 7 1 Ni-58 0.0 0.0 +30 7 1 Ni-60 0.0 0.0 +31 7 1 Ni-61 0.0 0.0 +32 7 1 Ni-62 0.0 0.0 +33 7 1 Ni-64 0.0 0.0 +34 7 1 Mn-55 0.0 0.0 +35 7 1 Si-28 0.0 0.0 +36 7 1 Si-29 0.0 0.0 +37 7 1 Si-30 0.0 0.0 +38 7 1 Cr-50 0.0 0.0 +39 7 1 Cr-52 0.0 0.0 +40 7 1 Cr-53 0.0 0.0 +41 7 1 Cr-54 0.0 0.0 +0 7 2 H-1 0.0 0.0 +1 7 2 O-16 0.0 0.0 +2 7 2 B-10 0.0 0.0 +3 7 2 B-11 0.0 0.0 +4 7 2 Fe-54 0.0 0.0 +5 7 2 Fe-56 0.0 0.0 +6 7 2 Fe-57 0.0 0.0 +7 7 2 Fe-58 0.0 0.0 +8 7 2 Ni-58 0.0 0.0 +9 7 2 Ni-60 0.0 0.0 +10 7 2 Ni-61 0.0 0.0 +11 7 2 Ni-62 0.0 0.0 +12 7 2 Ni-64 0.0 0.0 +13 7 2 Mn-55 0.0 0.0 +14 7 2 Si-28 0.0 0.0 +15 7 2 Si-29 0.0 0.0 +16 7 2 Si-30 0.0 0.0 +17 7 2 Cr-50 0.0 0.0 +18 7 2 Cr-52 0.0 0.0 +19 7 2 Cr-53 0.0 0.0 +20 7 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 7 1 H-1 0.0 0.0 +22 7 1 O-16 0.0 0.0 +23 7 1 B-10 0.0 0.0 +24 7 1 B-11 0.0 0.0 +25 7 1 Fe-54 0.0 0.0 +26 7 1 Fe-56 0.0 0.0 +27 7 1 Fe-57 0.0 0.0 +28 7 1 Fe-58 0.0 0.0 +29 7 1 Ni-58 0.0 0.0 +30 7 1 Ni-60 0.0 0.0 +31 7 1 Ni-61 0.0 0.0 +32 7 1 Ni-62 0.0 0.0 +33 7 1 Ni-64 0.0 0.0 +34 7 1 Mn-55 0.0 0.0 +35 7 1 Si-28 0.0 0.0 +36 7 1 Si-29 0.0 0.0 +37 7 1 Si-30 0.0 0.0 +38 7 1 Cr-50 0.0 0.0 +39 7 1 Cr-52 0.0 0.0 +40 7 1 Cr-53 0.0 0.0 +41 7 1 Cr-54 0.0 0.0 +0 7 2 H-1 0.0 0.0 +1 7 2 O-16 0.0 0.0 +2 7 2 B-10 0.0 0.0 +3 7 2 B-11 0.0 0.0 +4 7 2 Fe-54 0.0 0.0 +5 7 2 Fe-56 0.0 0.0 +6 7 2 Fe-57 0.0 0.0 +7 7 2 Fe-58 0.0 0.0 +8 7 2 Ni-58 0.0 0.0 +9 7 2 Ni-60 0.0 0.0 +10 7 2 Ni-61 0.0 0.0 +11 7 2 Ni-62 0.0 0.0 +12 7 2 Ni-64 0.0 0.0 +13 7 2 Mn-55 0.0 0.0 +14 7 2 Si-28 0.0 0.0 +15 7 2 Si-29 0.0 0.0 +16 7 2 Si-30 0.0 0.0 +17 7 2 Cr-50 0.0 0.0 +18 7 2 Cr-52 0.0 0.0 +19 7 2 Cr-53 0.0 0.0 +20 7 2 Cr-54 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +63 7 1 1 H-1 P0 0.0 0.0 P0 +64 7 1 1 O-16 P0 0.0 0.0 P0 +65 7 1 1 B-10 P0 0.0 0.0 P0 +66 7 1 1 B-11 P0 0.0 0.0 P0 +67 7 1 1 Fe-54 P0 0.0 0.0 P0 +68 7 1 1 Fe-56 P0 0.0 0.0 P0 +69 7 1 1 Fe-57 P0 0.0 0.0 P0 +70 7 1 1 Fe-58 P0 0.0 0.0 P0 +71 7 1 1 Ni-58 P0 0.0 0.0 P0 +72 7 1 1 Ni-60 P0 0.0 0.0 P0 +73 7 1 1 Ni-61 P0 0.0 0.0 P0 +74 7 1 1 Ni-62 P0 0.0 0.0 P0 +75 7 1 1 Ni-64 P0 0.0 0.0 P0 +76 7 1 1 Mn-55 P0 0.0 0.0 P0 +77 7 1 1 Si-28 P0 0.0 0.0 P0 +78 7 1 1 Si-29 P0 0.0 0.0 P0 +79 7 1 1 Si-30 P0 0.0 0.0 P0 +80 7 1 1 Cr-50 P0 0.0 0.0 P0 +81 7 1 1 Cr-52 P0 0.0 0.0 P0 +82 7 1 1 Cr-53 P0 0.0 0.0 P0 +83 7 1 1 Cr-54 P0 0.0 0.0 P0 +42 7 1 2 H-1 P0 0.0 0.0 P0 +43 7 1 2 O-16 P0 0.0 0.0 P0 +44 7 1 2 B-10 P0 0.0 0.0 P0 +45 7 1 2 B-11 P0 0.0 0.0 P0 +46 7 1 2 Fe-54 P0 0.0 0.0 P0 +47 7 1 2 Fe-56 P0 0.0 0.0 P0 +48 7 1 2 Fe-57 P0 0.0 0.0 P0 +49 7 1 2 Fe-58 P0 0.0 0.0 P0 +50 7 1 2 Ni-58 P0 0.0 0.0 P0 +51 7 1 2 Ni-60 P0 0.0 0.0 P0 +52 7 1 2 Ni-61 P0 0.0 0.0 P0 +53 7 1 2 Ni-62 P0 0.0 0.0 P0 +54 7 1 2 Ni-64 P0 0.0 0.0 P0 +55 7 1 2 Mn-55 P0 0.0 0.0 P0 +56 7 1 2 Si-28 P0 0.0 0.0 P0 +57 7 1 2 Si-29 P0 0.0 0.0 P0 +58 7 1 2 Si-30 P0 0.0 0.0 P0 +59 7 1 2 Cr-50 P0 0.0 0.0 P0 +60 7 1 2 Cr-52 P0 0.0 0.0 P0 +61 7 1 2 Cr-53 P0 0.0 0.0 P0 +62 7 1 2 Cr-54 P0 0.0 0.0 P0 +21 7 2 1 H-1 P0 0.0 0.0 P0 +22 7 2 1 O-16 P0 0.0 0.0 P0 +23 7 2 1 B-10 P0 0.0 0.0 P0 +24 7 2 1 B-11 P0 0.0 0.0 P0 +25 7 2 1 Fe-54 P0 0.0 0.0 P0 +26 7 2 1 Fe-56 P0 0.0 0.0 P0 +27 7 2 1 Fe-57 P0 0.0 0.0 P0 +28 7 2 1 Fe-58 P0 0.0 0.0 P0 +29 7 2 1 Ni-58 P0 0.0 0.0 P0 +30 7 2 1 Ni-60 P0 0.0 0.0 P0 +31 7 2 1 Ni-61 P0 0.0 0.0 P0 +32 7 2 1 Ni-62 P0 0.0 0.0 P0 +33 7 2 1 Ni-64 P0 0.0 0.0 P0 +34 7 2 1 Mn-55 P0 0.0 0.0 P0 +35 7 2 1 Si-28 P0 0.0 0.0 P0 +36 7 2 1 Si-29 P0 0.0 0.0 P0 +37 7 2 1 Si-30 P0 0.0 0.0 P0 +38 7 2 1 Cr-50 P0 0.0 0.0 P0 +39 7 2 1 Cr-52 P0 0.0 0.0 P0 +40 7 2 1 Cr-53 P0 0.0 0.0 P0 +41 7 2 1 Cr-54 P0 0.0 0.0 P0 +0 7 2 2 H-1 P0 0.0 0.0 P0 +1 7 2 2 O-16 P0 0.0 0.0 P0 +2 7 2 2 B-10 P0 0.0 0.0 P0 +3 7 2 2 B-11 P0 0.0 0.0 P0 +4 7 2 2 Fe-54 P0 0.0 0.0 P0 +5 7 2 2 Fe-56 P0 0.0 0.0 P0 +6 7 2 2 Fe-57 P0 0.0 0.0 P0 +7 7 2 2 Fe-58 P0 0.0 0.0 P0 +8 7 2 2 Ni-58 P0 0.0 0.0 P0 +9 7 2 2 Ni-60 P0 0.0 0.0 P0 +10 7 2 2 Ni-61 P0 0.0 0.0 P0 +11 7 2 2 Ni-62 P0 0.0 0.0 P0 +12 7 2 2 Ni-64 P0 0.0 0.0 P0 +13 7 2 2 Mn-55 P0 0.0 0.0 P0 +14 7 2 2 Si-28 P0 0.0 0.0 P0 +15 7 2 2 Si-29 P0 0.0 0.0 P0 +16 7 2 2 Si-30 P0 0.0 0.0 P0 +17 7 2 2 Cr-50 P0 0.0 0.0 P0 +18 7 2 2 Cr-52 P0 0.0 0.0 P0 +19 7 2 2 Cr-53 P0 0.0 0.0 P0 +20 7 2 2 Cr-54 P0 0.0 0.0 P0 material group out nuclide mean std. dev. +21 7 1 H-1 0.0 0.0 +22 7 1 O-16 0.0 0.0 +23 7 1 B-10 0.0 0.0 +24 7 1 B-11 0.0 0.0 +25 7 1 Fe-54 0.0 0.0 +26 7 1 Fe-56 0.0 0.0 +27 7 1 Fe-57 0.0 0.0 +28 7 1 Fe-58 0.0 0.0 +29 7 1 Ni-58 0.0 0.0 +30 7 1 Ni-60 0.0 0.0 +31 7 1 Ni-61 0.0 0.0 +32 7 1 Ni-62 0.0 0.0 +33 7 1 Ni-64 0.0 0.0 +34 7 1 Mn-55 0.0 0.0 +35 7 1 Si-28 0.0 0.0 +36 7 1 Si-29 0.0 0.0 +37 7 1 Si-30 0.0 0.0 +38 7 1 Cr-50 0.0 0.0 +39 7 1 Cr-52 0.0 0.0 +40 7 1 Cr-53 0.0 0.0 +41 7 1 Cr-54 0.0 0.0 +0 7 2 H-1 0.0 0.0 +1 7 2 O-16 0.0 0.0 +2 7 2 B-10 0.0 0.0 +3 7 2 B-11 0.0 0.0 +4 7 2 Fe-54 0.0 0.0 +5 7 2 Fe-56 0.0 0.0 +6 7 2 Fe-57 0.0 0.0 +7 7 2 Fe-58 0.0 0.0 +8 7 2 Ni-58 0.0 0.0 +9 7 2 Ni-60 0.0 0.0 +10 7 2 Ni-61 0.0 0.0 +11 7 2 Ni-62 0.0 0.0 +12 7 2 Ni-64 0.0 0.0 +13 7 2 Mn-55 0.0 0.0 +14 7 2 Si-28 0.0 0.0 +15 7 2 Si-29 0.0 0.0 +16 7 2 Si-30 0.0 0.0 +17 7 2 Cr-50 0.0 0.0 +18 7 2 Cr-52 0.0 0.0 +19 7 2 Cr-53 0.0 0.0 +20 7 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 8 1 H-1 0.0 0.0 +22 8 1 O-16 0.0 0.0 +23 8 1 B-10 0.0 0.0 +24 8 1 B-11 0.0 0.0 +25 8 1 Fe-54 0.0 0.0 +26 8 1 Fe-56 0.0 0.0 +27 8 1 Fe-57 0.0 0.0 +28 8 1 Fe-58 0.0 0.0 +29 8 1 Ni-58 0.0 0.0 +30 8 1 Ni-60 0.0 0.0 +31 8 1 Ni-61 0.0 0.0 +32 8 1 Ni-62 0.0 0.0 +33 8 1 Ni-64 0.0 0.0 +34 8 1 Mn-55 0.0 0.0 +35 8 1 Si-28 0.0 0.0 +36 8 1 Si-29 0.0 0.0 +37 8 1 Si-30 0.0 0.0 +38 8 1 Cr-50 0.0 0.0 +39 8 1 Cr-52 0.0 0.0 +40 8 1 Cr-53 0.0 0.0 +41 8 1 Cr-54 0.0 0.0 +0 8 2 H-1 0.0 0.0 +1 8 2 O-16 0.0 0.0 +2 8 2 B-10 0.0 0.0 +3 8 2 B-11 0.0 0.0 +4 8 2 Fe-54 0.0 0.0 +5 8 2 Fe-56 0.0 0.0 +6 8 2 Fe-57 0.0 0.0 +7 8 2 Fe-58 0.0 0.0 +8 8 2 Ni-58 0.0 0.0 +9 8 2 Ni-60 0.0 0.0 +10 8 2 Ni-61 0.0 0.0 +11 8 2 Ni-62 0.0 0.0 +12 8 2 Ni-64 0.0 0.0 +13 8 2 Mn-55 0.0 0.0 +14 8 2 Si-28 0.0 0.0 +15 8 2 Si-29 0.0 0.0 +16 8 2 Si-30 0.0 0.0 +17 8 2 Cr-50 0.0 0.0 +18 8 2 Cr-52 0.0 0.0 +19 8 2 Cr-53 0.0 0.0 +20 8 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 8 1 H-1 0.0 0.0 +22 8 1 O-16 0.0 0.0 +23 8 1 B-10 0.0 0.0 +24 8 1 B-11 0.0 0.0 +25 8 1 Fe-54 0.0 0.0 +26 8 1 Fe-56 0.0 0.0 +27 8 1 Fe-57 0.0 0.0 +28 8 1 Fe-58 0.0 0.0 +29 8 1 Ni-58 0.0 0.0 +30 8 1 Ni-60 0.0 0.0 +31 8 1 Ni-61 0.0 0.0 +32 8 1 Ni-62 0.0 0.0 +33 8 1 Ni-64 0.0 0.0 +34 8 1 Mn-55 0.0 0.0 +35 8 1 Si-28 0.0 0.0 +36 8 1 Si-29 0.0 0.0 +37 8 1 Si-30 0.0 0.0 +38 8 1 Cr-50 0.0 0.0 +39 8 1 Cr-52 0.0 0.0 +40 8 1 Cr-53 0.0 0.0 +41 8 1 Cr-54 0.0 0.0 +0 8 2 H-1 0.0 0.0 +1 8 2 O-16 0.0 0.0 +2 8 2 B-10 0.0 0.0 +3 8 2 B-11 0.0 0.0 +4 8 2 Fe-54 0.0 0.0 +5 8 2 Fe-56 0.0 0.0 +6 8 2 Fe-57 0.0 0.0 +7 8 2 Fe-58 0.0 0.0 +8 8 2 Ni-58 0.0 0.0 +9 8 2 Ni-60 0.0 0.0 +10 8 2 Ni-61 0.0 0.0 +11 8 2 Ni-62 0.0 0.0 +12 8 2 Ni-64 0.0 0.0 +13 8 2 Mn-55 0.0 0.0 +14 8 2 Si-28 0.0 0.0 +15 8 2 Si-29 0.0 0.0 +16 8 2 Si-30 0.0 0.0 +17 8 2 Cr-50 0.0 0.0 +18 8 2 Cr-52 0.0 0.0 +19 8 2 Cr-53 0.0 0.0 +20 8 2 Cr-54 0.0 0.0 material group in group out nuclide moment mean std. dev. moment +63 8 1 1 H-1 P0 0.0 0.0 P0 +64 8 1 1 O-16 P0 0.0 0.0 P0 +65 8 1 1 B-10 P0 0.0 0.0 P0 +66 8 1 1 B-11 P0 0.0 0.0 P0 +67 8 1 1 Fe-54 P0 0.0 0.0 P0 +68 8 1 1 Fe-56 P0 0.0 0.0 P0 +69 8 1 1 Fe-57 P0 0.0 0.0 P0 +70 8 1 1 Fe-58 P0 0.0 0.0 P0 +71 8 1 1 Ni-58 P0 0.0 0.0 P0 +72 8 1 1 Ni-60 P0 0.0 0.0 P0 +73 8 1 1 Ni-61 P0 0.0 0.0 P0 +74 8 1 1 Ni-62 P0 0.0 0.0 P0 +75 8 1 1 Ni-64 P0 0.0 0.0 P0 +76 8 1 1 Mn-55 P0 0.0 0.0 P0 +77 8 1 1 Si-28 P0 0.0 0.0 P0 +78 8 1 1 Si-29 P0 0.0 0.0 P0 +79 8 1 1 Si-30 P0 0.0 0.0 P0 +80 8 1 1 Cr-50 P0 0.0 0.0 P0 +81 8 1 1 Cr-52 P0 0.0 0.0 P0 +82 8 1 1 Cr-53 P0 0.0 0.0 P0 +83 8 1 1 Cr-54 P0 0.0 0.0 P0 +42 8 1 2 H-1 P0 0.0 0.0 P0 +43 8 1 2 O-16 P0 0.0 0.0 P0 +44 8 1 2 B-10 P0 0.0 0.0 P0 +45 8 1 2 B-11 P0 0.0 0.0 P0 +46 8 1 2 Fe-54 P0 0.0 0.0 P0 +47 8 1 2 Fe-56 P0 0.0 0.0 P0 +48 8 1 2 Fe-57 P0 0.0 0.0 P0 +49 8 1 2 Fe-58 P0 0.0 0.0 P0 +50 8 1 2 Ni-58 P0 0.0 0.0 P0 +51 8 1 2 Ni-60 P0 0.0 0.0 P0 +52 8 1 2 Ni-61 P0 0.0 0.0 P0 +53 8 1 2 Ni-62 P0 0.0 0.0 P0 +54 8 1 2 Ni-64 P0 0.0 0.0 P0 +55 8 1 2 Mn-55 P0 0.0 0.0 P0 +56 8 1 2 Si-28 P0 0.0 0.0 P0 +57 8 1 2 Si-29 P0 0.0 0.0 P0 +58 8 1 2 Si-30 P0 0.0 0.0 P0 +59 8 1 2 Cr-50 P0 0.0 0.0 P0 +60 8 1 2 Cr-52 P0 0.0 0.0 P0 +61 8 1 2 Cr-53 P0 0.0 0.0 P0 +62 8 1 2 Cr-54 P0 0.0 0.0 P0 +21 8 2 1 H-1 P0 0.0 0.0 P0 +22 8 2 1 O-16 P0 0.0 0.0 P0 +23 8 2 1 B-10 P0 0.0 0.0 P0 +24 8 2 1 B-11 P0 0.0 0.0 P0 +25 8 2 1 Fe-54 P0 0.0 0.0 P0 +26 8 2 1 Fe-56 P0 0.0 0.0 P0 +27 8 2 1 Fe-57 P0 0.0 0.0 P0 +28 8 2 1 Fe-58 P0 0.0 0.0 P0 +29 8 2 1 Ni-58 P0 0.0 0.0 P0 +30 8 2 1 Ni-60 P0 0.0 0.0 P0 +31 8 2 1 Ni-61 P0 0.0 0.0 P0 +32 8 2 1 Ni-62 P0 0.0 0.0 P0 +33 8 2 1 Ni-64 P0 0.0 0.0 P0 +34 8 2 1 Mn-55 P0 0.0 0.0 P0 +35 8 2 1 Si-28 P0 0.0 0.0 P0 +36 8 2 1 Si-29 P0 0.0 0.0 P0 +37 8 2 1 Si-30 P0 0.0 0.0 P0 +38 8 2 1 Cr-50 P0 0.0 0.0 P0 +39 8 2 1 Cr-52 P0 0.0 0.0 P0 +40 8 2 1 Cr-53 P0 0.0 0.0 P0 +41 8 2 1 Cr-54 P0 0.0 0.0 P0 +0 8 2 2 H-1 P0 0.0 0.0 P0 +1 8 2 2 O-16 P0 0.0 0.0 P0 +2 8 2 2 B-10 P0 0.0 0.0 P0 +3 8 2 2 B-11 P0 0.0 0.0 P0 +4 8 2 2 Fe-54 P0 0.0 0.0 P0 +5 8 2 2 Fe-56 P0 0.0 0.0 P0 +6 8 2 2 Fe-57 P0 0.0 0.0 P0 +7 8 2 2 Fe-58 P0 0.0 0.0 P0 +8 8 2 2 Ni-58 P0 0.0 0.0 P0 +9 8 2 2 Ni-60 P0 0.0 0.0 P0 +10 8 2 2 Ni-61 P0 0.0 0.0 P0 +11 8 2 2 Ni-62 P0 0.0 0.0 P0 +12 8 2 2 Ni-64 P0 0.0 0.0 P0 +13 8 2 2 Mn-55 P0 0.0 0.0 P0 +14 8 2 2 Si-28 P0 0.0 0.0 P0 +15 8 2 2 Si-29 P0 0.0 0.0 P0 +16 8 2 2 Si-30 P0 0.0 0.0 P0 +17 8 2 2 Cr-50 P0 0.0 0.0 P0 +18 8 2 2 Cr-52 P0 0.0 0.0 P0 +19 8 2 2 Cr-53 P0 0.0 0.0 P0 +20 8 2 2 Cr-54 P0 0.0 0.0 P0 material group out nuclide mean std. dev. +21 8 1 H-1 0.0 0.0 +22 8 1 O-16 0.0 0.0 +23 8 1 B-10 0.0 0.0 +24 8 1 B-11 0.0 0.0 +25 8 1 Fe-54 0.0 0.0 +26 8 1 Fe-56 0.0 0.0 +27 8 1 Fe-57 0.0 0.0 +28 8 1 Fe-58 0.0 0.0 +29 8 1 Ni-58 0.0 0.0 +30 8 1 Ni-60 0.0 0.0 +31 8 1 Ni-61 0.0 0.0 +32 8 1 Ni-62 0.0 0.0 +33 8 1 Ni-64 0.0 0.0 +34 8 1 Mn-55 0.0 0.0 +35 8 1 Si-28 0.0 0.0 +36 8 1 Si-29 0.0 0.0 +37 8 1 Si-30 0.0 0.0 +38 8 1 Cr-50 0.0 0.0 +39 8 1 Cr-52 0.0 0.0 +40 8 1 Cr-53 0.0 0.0 +41 8 1 Cr-54 0.0 0.0 +0 8 2 H-1 0.0 0.0 +1 8 2 O-16 0.0 0.0 +2 8 2 B-10 0.0 0.0 +3 8 2 B-11 0.0 0.0 +4 8 2 Fe-54 0.0 0.0 +5 8 2 Fe-56 0.0 0.0 +6 8 2 Fe-57 0.0 0.0 +7 8 2 Fe-58 0.0 0.0 +8 8 2 Ni-58 0.0 0.0 +9 8 2 Ni-60 0.0 0.0 +10 8 2 Ni-61 0.0 0.0 +11 8 2 Ni-62 0.0 0.0 +12 8 2 Ni-64 0.0 0.0 +13 8 2 Mn-55 0.0 0.0 +14 8 2 Si-28 0.0 0.0 +15 8 2 Si-29 0.0 0.0 +16 8 2 Si-30 0.0 0.0 +17 8 2 Cr-50 0.0 0.0 +18 8 2 Cr-52 0.0 0.0 +19 8 2 Cr-53 0.0 0.0 +20 8 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. 21 9 1 H-1 0.150655 0.480993 22 9 1 O-16 0.116221 0.114089 23 9 1 B-10 0.000000 0.000000 @@ -1411,48 +1411,48 @@ 18 9 2 Cr-52 0.000000 0.000000 19 9 2 Cr-53 0.000000 0.000000 20 9 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 9 1 H-1 0 0 -22 9 1 O-16 0 0 -23 9 1 B-10 0 0 -24 9 1 B-11 0 0 -25 9 1 Fe-54 0 0 -26 9 1 Fe-56 0 0 -27 9 1 Fe-57 0 0 -28 9 1 Fe-58 0 0 -29 9 1 Ni-58 0 0 -30 9 1 Ni-60 0 0 -31 9 1 Ni-61 0 0 -32 9 1 Ni-62 0 0 -33 9 1 Ni-64 0 0 -34 9 1 Mn-55 0 0 -35 9 1 Si-28 0 0 -36 9 1 Si-29 0 0 -37 9 1 Si-30 0 0 -38 9 1 Cr-50 0 0 -39 9 1 Cr-52 0 0 -40 9 1 Cr-53 0 0 -41 9 1 Cr-54 0 0 -0 9 2 H-1 0 0 -1 9 2 O-16 0 0 -2 9 2 B-10 0 0 -3 9 2 B-11 0 0 -4 9 2 Fe-54 0 0 -5 9 2 Fe-56 0 0 -6 9 2 Fe-57 0 0 -7 9 2 Fe-58 0 0 -8 9 2 Ni-58 0 0 -9 9 2 Ni-60 0 0 -10 9 2 Ni-61 0 0 -11 9 2 Ni-62 0 0 -12 9 2 Ni-64 0 0 -13 9 2 Mn-55 0 0 -14 9 2 Si-28 0 0 -15 9 2 Si-29 0 0 -16 9 2 Si-30 0 0 -17 9 2 Cr-50 0 0 -18 9 2 Cr-52 0 0 -19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in group out nuclide moment mean std. dev. moment +21 9 1 H-1 0.0 0.0 +22 9 1 O-16 0.0 0.0 +23 9 1 B-10 0.0 0.0 +24 9 1 B-11 0.0 0.0 +25 9 1 Fe-54 0.0 0.0 +26 9 1 Fe-56 0.0 0.0 +27 9 1 Fe-57 0.0 0.0 +28 9 1 Fe-58 0.0 0.0 +29 9 1 Ni-58 0.0 0.0 +30 9 1 Ni-60 0.0 0.0 +31 9 1 Ni-61 0.0 0.0 +32 9 1 Ni-62 0.0 0.0 +33 9 1 Ni-64 0.0 0.0 +34 9 1 Mn-55 0.0 0.0 +35 9 1 Si-28 0.0 0.0 +36 9 1 Si-29 0.0 0.0 +37 9 1 Si-30 0.0 0.0 +38 9 1 Cr-50 0.0 0.0 +39 9 1 Cr-52 0.0 0.0 +40 9 1 Cr-53 0.0 0.0 +41 9 1 Cr-54 0.0 0.0 +0 9 2 H-1 0.0 0.0 +1 9 2 O-16 0.0 0.0 +2 9 2 B-10 0.0 0.0 +3 9 2 B-11 0.0 0.0 +4 9 2 Fe-54 0.0 0.0 +5 9 2 Fe-56 0.0 0.0 +6 9 2 Fe-57 0.0 0.0 +7 9 2 Fe-58 0.0 0.0 +8 9 2 Ni-58 0.0 0.0 +9 9 2 Ni-60 0.0 0.0 +10 9 2 Ni-61 0.0 0.0 +11 9 2 Ni-62 0.0 0.0 +12 9 2 Ni-64 0.0 0.0 +13 9 2 Mn-55 0.0 0.0 +14 9 2 Si-28 0.0 0.0 +15 9 2 Si-29 0.0 0.0 +16 9 2 Si-30 0.0 0.0 +17 9 2 Cr-50 0.0 0.0 +18 9 2 Cr-52 0.0 0.0 +19 9 2 Cr-53 0.0 0.0 +20 9 2 Cr-54 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 63 9 1 1 H-1 P0 0.150655 0.480993 P0 64 9 1 1 O-16 P0 0.116221 0.114089 P0 65 9 1 1 B-10 P0 0.000000 0.000000 P0 @@ -1537,48 +1537,48 @@ 18 9 2 2 Cr-52 P0 0.000000 0.000000 P0 19 9 2 2 Cr-53 P0 0.000000 0.000000 P0 20 9 2 2 Cr-54 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. -21 9 1 H-1 0 0 -22 9 1 O-16 0 0 -23 9 1 B-10 0 0 -24 9 1 B-11 0 0 -25 9 1 Fe-54 0 0 -26 9 1 Fe-56 0 0 -27 9 1 Fe-57 0 0 -28 9 1 Fe-58 0 0 -29 9 1 Ni-58 0 0 -30 9 1 Ni-60 0 0 -31 9 1 Ni-61 0 0 -32 9 1 Ni-62 0 0 -33 9 1 Ni-64 0 0 -34 9 1 Mn-55 0 0 -35 9 1 Si-28 0 0 -36 9 1 Si-29 0 0 -37 9 1 Si-30 0 0 -38 9 1 Cr-50 0 0 -39 9 1 Cr-52 0 0 -40 9 1 Cr-53 0 0 -41 9 1 Cr-54 0 0 -0 9 2 H-1 0 0 -1 9 2 O-16 0 0 -2 9 2 B-10 0 0 -3 9 2 B-11 0 0 -4 9 2 Fe-54 0 0 -5 9 2 Fe-56 0 0 -6 9 2 Fe-57 0 0 -7 9 2 Fe-58 0 0 -8 9 2 Ni-58 0 0 -9 9 2 Ni-60 0 0 -10 9 2 Ni-61 0 0 -11 9 2 Ni-62 0 0 -12 9 2 Ni-64 0 0 -13 9 2 Mn-55 0 0 -14 9 2 Si-28 0 0 -15 9 2 Si-29 0 0 -16 9 2 Si-30 0 0 -17 9 2 Cr-50 0 0 -18 9 2 Cr-52 0 0 -19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 9 1 H-1 0.0 0.0 +22 9 1 O-16 0.0 0.0 +23 9 1 B-10 0.0 0.0 +24 9 1 B-11 0.0 0.0 +25 9 1 Fe-54 0.0 0.0 +26 9 1 Fe-56 0.0 0.0 +27 9 1 Fe-57 0.0 0.0 +28 9 1 Fe-58 0.0 0.0 +29 9 1 Ni-58 0.0 0.0 +30 9 1 Ni-60 0.0 0.0 +31 9 1 Ni-61 0.0 0.0 +32 9 1 Ni-62 0.0 0.0 +33 9 1 Ni-64 0.0 0.0 +34 9 1 Mn-55 0.0 0.0 +35 9 1 Si-28 0.0 0.0 +36 9 1 Si-29 0.0 0.0 +37 9 1 Si-30 0.0 0.0 +38 9 1 Cr-50 0.0 0.0 +39 9 1 Cr-52 0.0 0.0 +40 9 1 Cr-53 0.0 0.0 +41 9 1 Cr-54 0.0 0.0 +0 9 2 H-1 0.0 0.0 +1 9 2 O-16 0.0 0.0 +2 9 2 B-10 0.0 0.0 +3 9 2 B-11 0.0 0.0 +4 9 2 Fe-54 0.0 0.0 +5 9 2 Fe-56 0.0 0.0 +6 9 2 Fe-57 0.0 0.0 +7 9 2 Fe-58 0.0 0.0 +8 9 2 Ni-58 0.0 0.0 +9 9 2 Ni-60 0.0 0.0 +10 9 2 Ni-61 0.0 0.0 +11 9 2 Ni-62 0.0 0.0 +12 9 2 Ni-64 0.0 0.0 +13 9 2 Mn-55 0.0 0.0 +14 9 2 Si-28 0.0 0.0 +15 9 2 Si-29 0.0 0.0 +16 9 2 Si-30 0.0 0.0 +17 9 2 Cr-50 0.0 0.0 +18 9 2 Cr-52 0.0 0.0 +19 9 2 Cr-53 0.0 0.0 +20 9 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. 21 10 1 H-1 0.123944 0.541390 22 10 1 O-16 0.000000 0.000000 23 10 1 B-10 0.000000 0.000000 @@ -1621,48 +1621,48 @@ 18 10 2 Cr-52 0.000000 0.000000 19 10 2 Cr-53 0.000000 0.000000 20 10 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 10 1 H-1 0 0 -22 10 1 O-16 0 0 -23 10 1 B-10 0 0 -24 10 1 B-11 0 0 -25 10 1 Fe-54 0 0 -26 10 1 Fe-56 0 0 -27 10 1 Fe-57 0 0 -28 10 1 Fe-58 0 0 -29 10 1 Ni-58 0 0 -30 10 1 Ni-60 0 0 -31 10 1 Ni-61 0 0 -32 10 1 Ni-62 0 0 -33 10 1 Ni-64 0 0 -34 10 1 Mn-55 0 0 -35 10 1 Si-28 0 0 -36 10 1 Si-29 0 0 -37 10 1 Si-30 0 0 -38 10 1 Cr-50 0 0 -39 10 1 Cr-52 0 0 -40 10 1 Cr-53 0 0 -41 10 1 Cr-54 0 0 -0 10 2 H-1 0 0 -1 10 2 O-16 0 0 -2 10 2 B-10 0 0 -3 10 2 B-11 0 0 -4 10 2 Fe-54 0 0 -5 10 2 Fe-56 0 0 -6 10 2 Fe-57 0 0 -7 10 2 Fe-58 0 0 -8 10 2 Ni-58 0 0 -9 10 2 Ni-60 0 0 -10 10 2 Ni-61 0 0 -11 10 2 Ni-62 0 0 -12 10 2 Ni-64 0 0 -13 10 2 Mn-55 0 0 -14 10 2 Si-28 0 0 -15 10 2 Si-29 0 0 -16 10 2 Si-30 0 0 -17 10 2 Cr-50 0 0 -18 10 2 Cr-52 0 0 -19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in group out nuclide moment mean std. dev. moment +21 10 1 H-1 0.0 0.0 +22 10 1 O-16 0.0 0.0 +23 10 1 B-10 0.0 0.0 +24 10 1 B-11 0.0 0.0 +25 10 1 Fe-54 0.0 0.0 +26 10 1 Fe-56 0.0 0.0 +27 10 1 Fe-57 0.0 0.0 +28 10 1 Fe-58 0.0 0.0 +29 10 1 Ni-58 0.0 0.0 +30 10 1 Ni-60 0.0 0.0 +31 10 1 Ni-61 0.0 0.0 +32 10 1 Ni-62 0.0 0.0 +33 10 1 Ni-64 0.0 0.0 +34 10 1 Mn-55 0.0 0.0 +35 10 1 Si-28 0.0 0.0 +36 10 1 Si-29 0.0 0.0 +37 10 1 Si-30 0.0 0.0 +38 10 1 Cr-50 0.0 0.0 +39 10 1 Cr-52 0.0 0.0 +40 10 1 Cr-53 0.0 0.0 +41 10 1 Cr-54 0.0 0.0 +0 10 2 H-1 0.0 0.0 +1 10 2 O-16 0.0 0.0 +2 10 2 B-10 0.0 0.0 +3 10 2 B-11 0.0 0.0 +4 10 2 Fe-54 0.0 0.0 +5 10 2 Fe-56 0.0 0.0 +6 10 2 Fe-57 0.0 0.0 +7 10 2 Fe-58 0.0 0.0 +8 10 2 Ni-58 0.0 0.0 +9 10 2 Ni-60 0.0 0.0 +10 10 2 Ni-61 0.0 0.0 +11 10 2 Ni-62 0.0 0.0 +12 10 2 Ni-64 0.0 0.0 +13 10 2 Mn-55 0.0 0.0 +14 10 2 Si-28 0.0 0.0 +15 10 2 Si-29 0.0 0.0 +16 10 2 Si-30 0.0 0.0 +17 10 2 Cr-50 0.0 0.0 +18 10 2 Cr-52 0.0 0.0 +19 10 2 Cr-53 0.0 0.0 +20 10 2 Cr-54 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 63 10 1 1 H-1 P0 0.123944 0.541390 P0 64 10 1 1 O-16 P0 0.000000 0.000000 P0 65 10 1 1 B-10 P0 0.000000 0.000000 P0 @@ -1747,48 +1747,48 @@ 18 10 2 2 Cr-52 P0 0.000000 0.000000 P0 19 10 2 2 Cr-53 P0 0.000000 0.000000 P0 20 10 2 2 Cr-54 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. -21 10 1 H-1 0 0 -22 10 1 O-16 0 0 -23 10 1 B-10 0 0 -24 10 1 B-11 0 0 -25 10 1 Fe-54 0 0 -26 10 1 Fe-56 0 0 -27 10 1 Fe-57 0 0 -28 10 1 Fe-58 0 0 -29 10 1 Ni-58 0 0 -30 10 1 Ni-60 0 0 -31 10 1 Ni-61 0 0 -32 10 1 Ni-62 0 0 -33 10 1 Ni-64 0 0 -34 10 1 Mn-55 0 0 -35 10 1 Si-28 0 0 -36 10 1 Si-29 0 0 -37 10 1 Si-30 0 0 -38 10 1 Cr-50 0 0 -39 10 1 Cr-52 0 0 -40 10 1 Cr-53 0 0 -41 10 1 Cr-54 0 0 -0 10 2 H-1 0 0 -1 10 2 O-16 0 0 -2 10 2 B-10 0 0 -3 10 2 B-11 0 0 -4 10 2 Fe-54 0 0 -5 10 2 Fe-56 0 0 -6 10 2 Fe-57 0 0 -7 10 2 Fe-58 0 0 -8 10 2 Ni-58 0 0 -9 10 2 Ni-60 0 0 -10 10 2 Ni-61 0 0 -11 10 2 Ni-62 0 0 -12 10 2 Ni-64 0 0 -13 10 2 Mn-55 0 0 -14 10 2 Si-28 0 0 -15 10 2 Si-29 0 0 -16 10 2 Si-30 0 0 -17 10 2 Cr-50 0 0 -18 10 2 Cr-52 0 0 -19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 10 1 H-1 0.0 0.0 +22 10 1 O-16 0.0 0.0 +23 10 1 B-10 0.0 0.0 +24 10 1 B-11 0.0 0.0 +25 10 1 Fe-54 0.0 0.0 +26 10 1 Fe-56 0.0 0.0 +27 10 1 Fe-57 0.0 0.0 +28 10 1 Fe-58 0.0 0.0 +29 10 1 Ni-58 0.0 0.0 +30 10 1 Ni-60 0.0 0.0 +31 10 1 Ni-61 0.0 0.0 +32 10 1 Ni-62 0.0 0.0 +33 10 1 Ni-64 0.0 0.0 +34 10 1 Mn-55 0.0 0.0 +35 10 1 Si-28 0.0 0.0 +36 10 1 Si-29 0.0 0.0 +37 10 1 Si-30 0.0 0.0 +38 10 1 Cr-50 0.0 0.0 +39 10 1 Cr-52 0.0 0.0 +40 10 1 Cr-53 0.0 0.0 +41 10 1 Cr-54 0.0 0.0 +0 10 2 H-1 0.0 0.0 +1 10 2 O-16 0.0 0.0 +2 10 2 B-10 0.0 0.0 +3 10 2 B-11 0.0 0.0 +4 10 2 Fe-54 0.0 0.0 +5 10 2 Fe-56 0.0 0.0 +6 10 2 Fe-57 0.0 0.0 +7 10 2 Fe-58 0.0 0.0 +8 10 2 Ni-58 0.0 0.0 +9 10 2 Ni-60 0.0 0.0 +10 10 2 Ni-61 0.0 0.0 +11 10 2 Ni-62 0.0 0.0 +12 10 2 Ni-64 0.0 0.0 +13 10 2 Mn-55 0.0 0.0 +14 10 2 Si-28 0.0 0.0 +15 10 2 Si-29 0.0 0.0 +16 10 2 Si-30 0.0 0.0 +17 10 2 Cr-50 0.0 0.0 +18 10 2 Cr-52 0.0 0.0 +19 10 2 Cr-53 0.0 0.0 +20 10 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. 9 11 1 H-1 0.131470 0.476035 10 11 1 O-16 0.028684 0.043000 11 11 1 B-10 0.000000 0.000000 @@ -1807,24 +1807,24 @@ 6 11 2 Zr-92 0.084226 0.103161 7 11 2 Zr-94 0.092039 0.125985 8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 11 1 H-1 0 0 -10 11 1 O-16 0 0 -11 11 1 B-10 0 0 -12 11 1 B-11 0 0 -13 11 1 Zr-90 0 0 -14 11 1 Zr-91 0 0 -15 11 1 Zr-92 0 0 -16 11 1 Zr-94 0 0 -17 11 1 Zr-96 0 0 -0 11 2 H-1 0 0 -1 11 2 O-16 0 0 -2 11 2 B-10 0 0 -3 11 2 B-11 0 0 -4 11 2 Zr-90 0 0 -5 11 2 Zr-91 0 0 -6 11 2 Zr-92 0 0 -7 11 2 Zr-94 0 0 -8 11 2 Zr-96 0 0 material group in group out nuclide moment mean std. dev. moment +9 11 1 H-1 0.0 0.0 +10 11 1 O-16 0.0 0.0 +11 11 1 B-10 0.0 0.0 +12 11 1 B-11 0.0 0.0 +13 11 1 Zr-90 0.0 0.0 +14 11 1 Zr-91 0.0 0.0 +15 11 1 Zr-92 0.0 0.0 +16 11 1 Zr-94 0.0 0.0 +17 11 1 Zr-96 0.0 0.0 +0 11 2 H-1 0.0 0.0 +1 11 2 O-16 0.0 0.0 +2 11 2 B-10 0.0 0.0 +3 11 2 B-11 0.0 0.0 +4 11 2 Zr-90 0.0 0.0 +5 11 2 Zr-91 0.0 0.0 +6 11 2 Zr-92 0.0 0.0 +7 11 2 Zr-94 0.0 0.0 +8 11 2 Zr-96 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 27 11 1 1 H-1 P0 0.099594 0.442578 P0 28 11 1 1 O-16 P0 0.028684 0.043000 P0 29 11 1 1 B-10 P0 0.000000 0.000000 P0 @@ -1861,24 +1861,24 @@ 6 11 2 2 Zr-92 P0 0.084226 0.103161 P0 7 11 2 2 Zr-94 P0 0.092039 0.125985 P0 8 11 2 2 Zr-96 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. -9 11 1 H-1 0 0 -10 11 1 O-16 0 0 -11 11 1 B-10 0 0 -12 11 1 B-11 0 0 -13 11 1 Zr-90 0 0 -14 11 1 Zr-91 0 0 -15 11 1 Zr-92 0 0 -16 11 1 Zr-94 0 0 -17 11 1 Zr-96 0 0 -0 11 2 H-1 0 0 -1 11 2 O-16 0 0 -2 11 2 B-10 0 0 -3 11 2 B-11 0 0 -4 11 2 Zr-90 0 0 -5 11 2 Zr-91 0 0 -6 11 2 Zr-92 0 0 -7 11 2 Zr-94 0 0 -8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. +9 11 1 H-1 0.0 0.0 +10 11 1 O-16 0.0 0.0 +11 11 1 B-10 0.0 0.0 +12 11 1 B-11 0.0 0.0 +13 11 1 Zr-90 0.0 0.0 +14 11 1 Zr-91 0.0 0.0 +15 11 1 Zr-92 0.0 0.0 +16 11 1 Zr-94 0.0 0.0 +17 11 1 Zr-96 0.0 0.0 +0 11 2 H-1 0.0 0.0 +1 11 2 O-16 0.0 0.0 +2 11 2 B-10 0.0 0.0 +3 11 2 B-11 0.0 0.0 +4 11 2 Zr-90 0.0 0.0 +5 11 2 Zr-91 0.0 0.0 +6 11 2 Zr-92 0.0 0.0 +7 11 2 Zr-94 0.0 0.0 +8 11 2 Zr-96 0.0 0.0 material group in nuclide mean std. dev. 9 12 1 H-1 0.098944 0.178543 10 12 1 O-16 0.013270 0.020403 11 12 1 B-10 0.000000 0.000000 @@ -1897,24 +1897,24 @@ 6 12 2 Zr-92 0.000000 0.000000 7 12 2 Zr-94 0.000000 0.000000 8 12 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 12 1 H-1 0 0 -10 12 1 O-16 0 0 -11 12 1 B-10 0 0 -12 12 1 B-11 0 0 -13 12 1 Zr-90 0 0 -14 12 1 Zr-91 0 0 -15 12 1 Zr-92 0 0 -16 12 1 Zr-94 0 0 -17 12 1 Zr-96 0 0 -0 12 2 H-1 0 0 -1 12 2 O-16 0 0 -2 12 2 B-10 0 0 -3 12 2 B-11 0 0 -4 12 2 Zr-90 0 0 -5 12 2 Zr-91 0 0 -6 12 2 Zr-92 0 0 -7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 material group in group out nuclide moment mean std. dev. moment +9 12 1 H-1 0.0 0.0 +10 12 1 O-16 0.0 0.0 +11 12 1 B-10 0.0 0.0 +12 12 1 B-11 0.0 0.0 +13 12 1 Zr-90 0.0 0.0 +14 12 1 Zr-91 0.0 0.0 +15 12 1 Zr-92 0.0 0.0 +16 12 1 Zr-94 0.0 0.0 +17 12 1 Zr-96 0.0 0.0 +0 12 2 H-1 0.0 0.0 +1 12 2 O-16 0.0 0.0 +2 12 2 B-10 0.0 0.0 +3 12 2 B-11 0.0 0.0 +4 12 2 Zr-90 0.0 0.0 +5 12 2 Zr-91 0.0 0.0 +6 12 2 Zr-92 0.0 0.0 +7 12 2 Zr-94 0.0 0.0 +8 12 2 Zr-96 0.0 0.0 material group in group out nuclide moment mean std. dev. moment 27 12 1 1 H-1 P0 0.071704 0.167588 P0 28 12 1 1 O-16 P0 0.013270 0.020403 P0 29 12 1 1 B-10 P0 0.000000 0.000000 P0 @@ -1951,21 +1951,21 @@ 6 12 2 2 Zr-92 P0 0.000000 0.000000 P0 7 12 2 2 Zr-94 P0 0.000000 0.000000 P0 8 12 2 2 Zr-96 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. -9 12 1 H-1 0 0 -10 12 1 O-16 0 0 -11 12 1 B-10 0 0 -12 12 1 B-11 0 0 -13 12 1 Zr-90 0 0 -14 12 1 Zr-91 0 0 -15 12 1 Zr-92 0 0 -16 12 1 Zr-94 0 0 -17 12 1 Zr-96 0 0 -0 12 2 H-1 0 0 -1 12 2 O-16 0 0 -2 12 2 B-10 0 0 -3 12 2 B-11 0 0 -4 12 2 Zr-90 0 0 -5 12 2 Zr-91 0 0 -6 12 2 Zr-92 0 0 -7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 \ No newline at end of file +9 12 1 H-1 0.0 0.0 +10 12 1 O-16 0.0 0.0 +11 12 1 B-10 0.0 0.0 +12 12 1 B-11 0.0 0.0 +13 12 1 Zr-90 0.0 0.0 +14 12 1 Zr-91 0.0 0.0 +15 12 1 Zr-92 0.0 0.0 +16 12 1 Zr-94 0.0 0.0 +17 12 1 Zr-96 0.0 0.0 +0 12 2 H-1 0.0 0.0 +1 12 2 O-16 0.0 0.0 +2 12 2 B-10 0.0 0.0 +3 12 2 B-11 0.0 0.0 +4 12 2 Zr-90 0.0 0.0 +5 12 2 Zr-91 0.0 0.0 +6 12 2 Zr-92 0.0 0.0 +7 12 2 Zr-94 0.0 0.0 +8 12 2 Zr-96 0.0 0.0 \ No newline at end of file From 32eb58774df061c2198814ab99be6db7058288f6 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 10 May 2016 22:08:10 -0500 Subject: [PATCH 174/259] Add make_hexagon_region() function --- docs/source/pythonapi/index.rst | 10 ++++++++ openmc/surface.py | 45 ++++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 1631976e6..89d1b0508 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -122,6 +122,16 @@ Many of the above classes are derived from several abstract classes: openmc.Region openmc.Lattice +One function is also available to create a hexagonal region defined by the +intersection of six surface half-spaces. + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myfunction.rst + + openmc.make_hexagon_region + Constructing Tallies -------------------- diff --git a/openmc/surface.py b/openmc/surface.py index 37e7c2ffd..84028c1af 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -2,11 +2,12 @@ from abc import ABCMeta from numbers import Real, Integral from xml.etree import ElementTree as ET import sys +from math import sqrt import numpy as np from openmc.checkvalue import check_type, check_value, check_greater_than -from openmc.region import Region +from openmc.region import Region, Intersection if sys.version_info[0] >= 3: basestring = str @@ -1503,3 +1504,45 @@ class Halfspace(Region): def __str__(self): return '-' + str(self.surface.id) if self.side == '-' \ else str(self.surface.id) + + +def make_hexagon_region(edge_length=1., orientation='y'): + """Create a hexagon region from six surface planes. + + Parameters + ---------- + edge_length : float + Length of a side of the hexagon in cm + orientation : {'x', 'y'} + An 'x' orientation means that two sides of the hexagon are parallel to + the x-axis and a 'y' orientation means that two sides of the hexagon are + parallel to the y-axis. + + Returns + ------- + openmc.Region + The inside of a hexagonal prism + + """ + + l = edge_length + + if orientation == 'x': + right = XPlane(x0=sqrt(3.)/2.*l) + left = XPlane(x0=-sqrt(3.)/2.*l) + c = sqrt(3.)/3. + ur = Plane(A=c, B=1., D=l) # y = -x/sqrt(3) + a + ul = Plane(A=-c, B=1., D=l) # y = x/sqrt(3) + a + lr = Plane(A=-c, B=1., D=-l) # y = x/sqrt(3) - a + ll = Plane(A=c, B=1., D=-l) # y = -x/sqrt(3) - a + return Intersection(-right, +left, -ur, -ul, +lr, +ll) + + elif orientation == 'y': + top = YPlane(y0=sqrt(3.)/2.*l) + bottom = YPlane(y0=-sqrt(3.)/2.*l) + c = sqrt(3.) + ur = Plane(A=c, B=1., D=c*l) # y = -sqrt(3)*(x - a) + lr = Plane(A=-c, B=1., D=-c*l) # y = sqrt(3)*(x + a) + ll = Plane(A=c, B=1., D=-c*l) # y = -sqrt(3)*(x + a) + ul = Plane(A=-c, B=1., D=c*l) # y = sqrt(3)*(x + a) + return Intersection(-top, +bottom, -ur, +lr, +ll, -ul) From 0cabfec5e7279d6a449b1a71da063d710ce200ef Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 11 May 2016 09:46:58 -0500 Subject: [PATCH 175/259] A little error checking on Element.name --- openmc/element.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openmc/element.py b/openmc/element.py index 39564add4..66371aba9 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -1,7 +1,7 @@ import sys import openmc -from openmc.checkvalue import check_type +from openmc.checkvalue import check_type, check_length from openmc.data import natural_abundance if sys.version_info[0] >= 3: @@ -99,7 +99,8 @@ class Element(object): @name.setter def name(self, name): - check_type('name', name, basestring) + check_type('element name', name, basestring) + check_length('element name', name, 1, 2) self._name = name @scattering.setter From 42ef7ccfac5febf1d62e44bd8074dc15222c0974 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 23 Mar 2016 15:47:51 -0500 Subject: [PATCH 176/259] Add periodic boundary conditions --- docs/source/usersguide/input.rst | 2 +- src/geometry.F90 | 62 ++++++++++++++++++++++++ src/initialize.F90 | 14 ++++++ src/input_xml.F90 | 72 +++++++++++++++++++++++++++- src/relaxng/geometry.rnc | 5 +- src/relaxng/geometry.rng | 12 +++++ src/surface_header.F90 | 1 + tests/test_periodic/geometry.xml | 12 +++++ tests/test_periodic/materials.xml | 13 +++++ tests/test_periodic/results_true.dat | 2 + tests/test_periodic/settings.xml | 13 +++++ tests/test_periodic/tallies.xml | 14 ++++++ tests/test_periodic/test_periodic.py | 11 +++++ tests/testing_harness.py | 3 +- 14 files changed, 231 insertions(+), 5 deletions(-) create mode 100644 tests/test_periodic/geometry.xml create mode 100644 tests/test_periodic/materials.xml create mode 100644 tests/test_periodic/results_true.dat create mode 100644 tests/test_periodic/settings.xml create mode 100644 tests/test_periodic/tallies.xml create mode 100644 tests/test_periodic/test_periodic.py diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 775407d70..ea51723b7 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -898,7 +898,7 @@ Each ```` element can have the following attributes or sub-elements: :boundary: The boundary condition for the surface. This can be "transmission", - "vacuum", or "reflective". + "vacuum", "reflective", or "periodic". *Default*: "transmission" diff --git a/src/geometry.F90 b/src/geometry.F90 index 8a38f982b..9f7781738 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -475,6 +475,68 @@ contains &// trim(to_str(surf%id))) end if return + elseif (surf % bc == BC_PERIODIC .and. run_mode /= MODE_PLOTTING) then + ! ======================================================================= + ! PERIODIC BOUNDARY + + ! Do not handle periodic boundary conditions on lower universes + if (p % n_coord /= 1) then + call handle_lost_particle(p, "Cannot period particle " & + // trim(to_str(p % id)) // " off surface in a lower universe.") + return + end if + + ! Score surface currents since reflection causes the direction of the + ! particle to change -- artificially move the particle slightly back in + ! case the surface crossing in coincident with a mesh boundary + + if (active_current_tallies % size() > 0) then + p % coord(1) % xyz = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw + call score_surface_current(p) + p % coord(1) % xyz = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw + end if + + select type (surf) + type is (SurfaceXPlane) + select type (opposite => surfaces(surf % opposite) % obj) + type is (SurfaceXPlane) + p % coord(1) % xyz(1) = opposite % x0 + end select + + type is (SurfaceYPlane) + select type (opposite => surfaces(surf % opposite) % obj) + type is (SurfaceYPlane) + p % coord(1) % xyz(2) = opposite % y0 + end select + + type is (SurfaceZPlane) + select type (opposite => surfaces(surf % opposite) % obj) + type is (SurfaceZPlane) + p % coord(1) % xyz(3) = opposite % z0 + end select + end select + + ! Reassign particle's surface + p % surface = sign(surfaces(surf % opposite) % obj % id, p % surface) + + ! Figure out what cell particle is in now + p % n_coord = 1 + call find_cell(p, found) + if (.not. found) then + call handle_lost_particle(p, "Couldn't find particle after hitting & + &periodic boundary on surface " // trim(to_str(surf%id)) // ".") + return + end if + + ! Set previous coordinate going slightly past surface crossing + p % last_xyz = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw + + ! Diagnostic message + if (verbosity >= 10 .or. trace) then + call write_message(" Hit periodic boundary on surface " & + // trim(to_str(surf%id))) + end if + return end if ! ========================================================================== diff --git a/src/initialize.F90 b/src/initialize.F90 index 09bedb138..74cab87c4 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -580,6 +580,20 @@ contains class(Lattice), pointer :: lat => null() type(TallyObject), pointer :: t => null() + ! Adjust opposite surfaces for periodic boundaries + do i = 1, size(surfaces) + associate (surf => surfaces(i) % obj) + if (surf % bc == BC_PERIODIC) then + if (surface_dict % has_key(surf % opposite)) then + surf % opposite = surface_dict % get_key(surf % opposite) + else + call fatal_error("Could not find opposite surface " // & + trim(to_str(surf % opposite)) // ".") + end if + end if + end associate + end do + do i = 1, n_cells ! ======================================================================= ! ADJUST REGION SPECIFICATION FOR EACH CELL diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 90c703d27..9e49e3c34 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1109,6 +1109,8 @@ contains integer :: universe_num integer :: n_cells_in_univ integer :: coeffs_reqd + integer :: i_xmin, i_xmax, i_ymin, i_ymax, i_zmin, i_zmax + real(8) :: xmin, xmax, ymin, ymax, zmin, zmax integer, allocatable :: temp_int_array(:) real(8) :: phi, theta, psi real(8), allocatable :: coeffs(:) @@ -1387,6 +1389,13 @@ contains call fatal_error("No surfaces found in geometry.xml!") end if + xmin = INFINITY + xmax = -INFINITY + ymin = INFINITY + ymax = -INFINITY + zmin = INFINITY + zmax = -INFINITY + ! Allocate cells array allocate(surfaces(n_surfaces)) @@ -1478,10 +1487,28 @@ contains select type(s) type is (SurfaceXPlane) s%x0 = coeffs(1) + + ! Determine outer surfaces + xmin = min(xmin, s % x0) + xmax = max(xmax, s % x0) + if (xmin == s % x0) i_xmin = i + if (xmax == s % x0) i_xmax = i type is (SurfaceYPlane) s%y0 = coeffs(1) + + ! Determine outer surfaces + ymin = min(ymin, s % y0) + ymax = max(ymax, s % y0) + if (ymin == s % y0) i_ymin = i + if (ymax == s % y0) i_ymax = i type is (SurfaceZPlane) s%z0 = coeffs(1) + + ! Determine outer surfaces + zmin = min(zmin, s % z0) + zmax = max(zmax, s % z0) + if (zmin == s % z0) i_zmin = i + if (zmax == s % z0) i_zmax = i type is (SurfacePlane) s%A = coeffs(1) s%B = coeffs(2) @@ -1548,11 +1575,13 @@ contains case ('reflective', 'reflect', 'reflecting') s%bc = BC_REFLECT boundary_exists = .true. + case ('periodic') + s%bc = BC_PERIODIC + boundary_exists = .true. case default call fatal_error("Unknown boundary condition '" // trim(word) // & &"' specified on surface " // trim(to_str(s%id))) end select - ! Add surface to dictionary call surface_dict % add_key(s%id, i) end do @@ -1563,6 +1592,47 @@ contains call fatal_error("No boundary conditions were applied to any surfaces!") end if + ! Determine opposite side for periodic boundaries + do i = 1, size(surfaces) + if (surfaces(i) % obj % bc == BC_PERIODIC) then + select type (surf => surfaces(i) % obj) + type is (SurfaceXPlane) + if (i == i_xmin) then + surf % opposite = i_xmax + elseif (i == i_xmax) then + surf % opposite = i_xmin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if + + type is (SurfaceYPlane) + if (i == i_ymin) then + surf % opposite = i_ymax + elseif (i == i_ymax) then + surf % opposite = i_ymin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if + + type is (SurfaceZPlane) + if (i == i_zmin) then + surf % opposite = i_zmax + elseif (i == i_zmax) then + surf % opposite = i_zmin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if + + class default + call fatal_error("Periodic boundary condition applied to & + &non-planar surface.") + end select + end if + end do + ! ========================================================================== ! READ LATTICES FROM GEOMETRY.XML diff --git a/src/relaxng/geometry.rnc b/src/relaxng/geometry.rnc index 8d25789f5..6cb6f7c15 100644 --- a/src/relaxng/geometry.rnc +++ b/src/relaxng/geometry.rnc @@ -21,8 +21,9 @@ element geometry { (element type { xsd:string { maxLength = "15" } } | attribute type { xsd:string { maxLength = "15" } }) & (element coeffs { list { xsd:double+ } } | attribute coeffs { list { xsd:double+ } }) & - (element boundary { ( "transmit" | "reflective" | "vacuum" ) } | - attribute boundary { ( "transmit" | "reflective" | "vacuum" ) })? + (element boundary { ( "transmit" | "reflective" | "vacuum" | "periodic" ) } | + attribute boundary { ( "transmit" | "reflective" | "vacuum" | "periodic" ) })? & + (element opposite { xsd:int } | attribute opposite { xsd:int })? }* & element lattice { diff --git a/src/relaxng/geometry.rng b/src/relaxng/geometry.rng index d40401b28..3ff0f67c6 100644 --- a/src/relaxng/geometry.rng +++ b/src/relaxng/geometry.rng @@ -173,6 +173,7 @@ transmit reflective vacuum + periodic @@ -180,10 +181,21 @@ transmit reflective vacuum + periodic + + + + + + + + + + diff --git a/src/surface_header.F90 b/src/surface_header.F90 index 468655217..0b5d3c86b 100644 --- a/src/surface_header.F90 +++ b/src/surface_header.F90 @@ -15,6 +15,7 @@ module surface_header neighbor_pos(:), & ! List of cells on positive side neighbor_neg(:) ! List of cells on negative side integer :: bc ! Boundary condition + integer :: opposite ! Opposite surface for periodic boundary character(len=104) :: name = "" ! User-defined name contains procedure :: sense diff --git a/tests/test_periodic/geometry.xml b/tests/test_periodic/geometry.xml new file mode 100644 index 000000000..6ecfec197 --- /dev/null +++ b/tests/test_periodic/geometry.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/tests/test_periodic/materials.xml b/tests/test_periodic/materials.xml new file mode 100644 index 000000000..a7bf4faf4 --- /dev/null +++ b/tests/test_periodic/materials.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/tests/test_periodic/results_true.dat b/tests/test_periodic/results_true.dat new file mode 100644 index 000000000..f65dbafd1 --- /dev/null +++ b/tests/test_periodic/results_true.dat @@ -0,0 +1,2 @@ +k-combined: +1.542742E+00 4.410461E-02 diff --git a/tests/test_periodic/settings.xml b/tests/test_periodic/settings.xml new file mode 100644 index 000000000..af09407ae --- /dev/null +++ b/tests/test_periodic/settings.xml @@ -0,0 +1,13 @@ + + + + 1000 + 4 + 0 + + + + -5. -5. -5. 5. 5. 5. + + + diff --git a/tests/test_periodic/tallies.xml b/tests/test_periodic/tallies.xml new file mode 100644 index 000000000..595d7c0dd --- /dev/null +++ b/tests/test_periodic/tallies.xml @@ -0,0 +1,14 @@ + + + + regular + -200. -1e50 + 200. 1e50 + 50 1 + + + collision + + fission + + diff --git a/tests/test_periodic/test_periodic.py b/tests/test_periodic/test_periodic.py new file mode 100644 index 000000000..b584632f0 --- /dev/null +++ b/tests/test_periodic/test_periodic.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python + +import os +import sys +sys.path.insert(0, os.pardir) +from testing_harness import TestHarness + + +if __name__ == '__main__': + harness = TestHarness('statepoint.4.h5') + harness.main() diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 78e5553e8..e65976885 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -133,9 +133,10 @@ class TestHarness(object): def _cleanup(self): """Delete statepoints, tally, and test files.""" - output = glob.glob(os.path.join(os.getcwd(), 'statepoint.*.*')) + output = glob.glob(os.path.join(os.getcwd(), 'statepoint.*.h5')) output.append(os.path.join(os.getcwd(), 'tallies.out')) output.append(os.path.join(os.getcwd(), 'results_test.dat')) + output.append(os.path.join(os.getcwd(), 'summary.h5')) for f in output: if os.path.exists(f): os.remove(f) From f184f2a9e9b34d043d05de26748e82f6f57b9255 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 11 May 2016 14:27:33 -0400 Subject: [PATCH 177/259] Added warning messages to Library for the correction and legendre_order properties --- openmc/mgxs/library.py | 14 ++++++++++++++ openmc/mgxs/mgxs.py | 6 +++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index f2a5c7569..ea856d735 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -297,12 +297,26 @@ class Library(object): @correction.setter def correction(self, correction): cv.check_value('correction', correction, ('P0', None)) + + if correction == 'P0' and self.legendre_order > 0: + msg = 'The P0 correction will be ignored since the scattering ' \ + 'order {} is greater than zero'.format(self.legendre_order) + warnings.warn(msg) + self._correction = correction @legendre_order.setter def legendre_order(self, legendre_order): cv.check_type('legendre_order', legendre_order, Integral) cv.check_greater_than('legendre_order', legendre_order, 0, equality=True) + cv.check_less_than('legendre_order', legendre_order, 10, equality=True) + + if self.correction == 'P0' and legendre_order > 0: + msg = 'The P0 correction will be ignored since the scattering ' \ + 'order {} is greater than zero'.format(self.legendre_order) + warnings.warn(msg, RuntimeWarning) + self.correction = None + self._legendre_order = legendre_order @tally_trigger.setter diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index dc3d0d127..830b6d766 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -2034,11 +2034,15 @@ class ScatterMatrixXS(MGXS): subdomains='all', nuclides='all', moment='all', xs_type='macro', order_groups='increasing', row_column='inout', value='mean', **kwargs): - """Returns an array of multi-group cross sections. + r"""Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested scattering matrix data data for one or more energy groups and subdomains. + 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. + Parameters ---------- in_groups : Iterable of Integral or 'all' From 44ba08f70a2478dc3c933a6a1d0a93cef9c88f06 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 11 May 2016 14:29:11 -0400 Subject: [PATCH 178/259] Removed reference to OpenCG in Pandas DF getter for ScatterMatrixXS --- openmc/mgxs/mgxs.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index eed0627bf..cc192855b 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -2190,7 +2190,7 @@ class ScatterMatrixXS(MGXS): return xs def get_pandas_dataframe(self, groups='all', nuclides='all', moment='all', - xs_type='macro', summary=None): + xs_type='macro', distribcell_paths=True): """Build a Pandas DataFrame for the MGXS data. This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but @@ -2214,12 +2214,11 @@ class ScatterMatrixXS(MGXS): xs_type: {'macro', 'micro'} Return macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - summary : None or openmc.Summary - An optional Summary object to be used to construct columns for - distribcell tally filters (default is None). The geometric - information in the Summary object is embedded into a multi-index - column with a geometric "path" to each distribcell intance. - NOTE: This option requires the OpenCG Python package. + distribcell_paths : bool, optional + Construct columns for distribcell tally filters (default is True). + The geometric information in the Summary object is embedded into a + Multi-index column with a geometric "path" to each distribcell + instance. Returns ------- @@ -2235,7 +2234,7 @@ class ScatterMatrixXS(MGXS): """ df = super(ScatterMatrixXS, self).get_pandas_dataframe( - groups, nuclides, xs_type, summary) + groups, nuclides, xs_type, distribcell_paths) # Add a moment column to dataframe moments = np.array(['P{}'.format(i) for i in range(self.legendre_order+1)]) From 98a02d5d5048308eb608c1513d2f4bd6ee40ede8 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 11 May 2016 21:19:30 -0400 Subject: [PATCH 179/259] Simplifications as per comments from @wbinventor and @paulromano. Next is updating notebook --- openmc/mgxs/library.py | 372 ++++++++++------------- openmc/mgxs_library.py | 671 ++++++++++++++++++++++++++++------------- 2 files changed, 620 insertions(+), 423 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index dfa55b3a5..991a98f62 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -15,14 +15,9 @@ import openmc.checkvalue as cv if sys.version_info[0] >= 3: basestring = str -# The following represent the most accurate MGXS generation strategy -# for use in the MG mode of OpenMC. -OPENMC_MG_MGXS_TYPES = ['transport', 'absorption', 'nu-fission', 'chi', - 'scatter matrix', 'nu-scatter matrix'] - class Library(object): - """A multi-group cross section library for some energy group structure. + '''A multi-group cross section library for some energy group structure. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -84,7 +79,7 @@ class Library(object): Whether or not the Library's tallies use SciPy's LIL sparse matrix format for compressed data storage - """ + ''' def __init__(self, openmc_geometry, by_nuclide=False, mgxs_types=None, name=''): @@ -252,7 +247,8 @@ class Library(object): @domain_type.setter def domain_type(self, domain_type): - cv.check_value('domain type', domain_type, tuple(openmc.mgxs.DOMAIN_TYPES)) + cv.check_value('domain type', domain_type, + tuple(openmc.mgxs.DOMAIN_TYPES)) self._domain_type = domain_type @domains.setter @@ -304,7 +300,7 @@ class Library(object): @sparse.setter def sparse(self, sparse): - """Convert tally data from NumPy arrays to SciPy list of lists (LIL) + '''Convert tally data from NumPy arrays to SciPy list of lists (LIL) sparse matrices, and vice versa. This property may be used to reduce the amount of data in memory during @@ -312,7 +308,7 @@ class Library(object): matrices internally within the Tally object. All tally data access properties and methods will return data as a dense NumPy array. - """ + ''' cv.check_type('sparse', sparse, bool) @@ -325,14 +321,14 @@ class Library(object): self._sparse = sparse def build_library(self): - """Initialize MGXS objects in each domain and for each reaction type + '''Initialize MGXS objects in each domain and for each reaction type in the library. This routine will populate the all_mgxs instance attribute dictionary with MGXS subclass objects keyed by each domain ID (e.g., Material IDs) and cross section type (e.g., 'nu-fission', 'total', etc.). - """ + ''' # Initialize MGXS for each domain and mgxs type and store in dictionary for domain in self.domains: @@ -355,7 +351,7 @@ class Library(object): self.all_mgxs[domain.id][mgxs_type] = mgxs def add_to_tallies_file(self, tallies_file, merge=True): - """Add all tallies from all MGXS objects to a tallies file. + '''Add all tallies from all MGXS objects to a tallies file. NOTE: This assumes that :meth:`Library.build_library` has been called @@ -363,12 +359,12 @@ class Library(object): ---------- tallies_file : openmc.Tallies A Tallies collection to add each MGXS' tallies to generate a - "tallies.xml" input file for OpenMC + 'tallies.xml' input file for OpenMC merge : bool Indicate whether tallies should be merged when possible. Defaults to True. - """ + ''' cv.check_type('tallies_file', tallies_file, openmc.Tallies) @@ -380,7 +376,7 @@ class Library(object): tallies_file.append(tally, merge=merge) def load_from_statepoint(self, statepoint): - """Extracts tallies in an OpenMC StatePoint with the data needed to + '''Extracts tallies in an OpenMC StatePoint with the data needed to compute multi-group cross sections. This method is needed to compute cross section data from tallies @@ -399,7 +395,7 @@ class Library(object): When this method is called with a statepoint that has not been linked with a summary object. - """ + ''' cv.check_type('statepoint', statepoint, openmc.StatePoint) @@ -423,7 +419,7 @@ class Library(object): mgxs.sparse = self.sparse def get_mgxs(self, domain, mgxs_type): - """Return the MGXS object for some domain and reaction rate type. + '''Return the MGXS object for some domain and reaction rate type. This routine searches the library for an MGXS object for the spatial domain and reaction rate type requested by the user. @@ -448,7 +444,7 @@ class Library(object): If no MGXS object can be found for the requested domain or multi-group cross section type - """ + ''' if self.domain_type == 'material': cv.check_type('domain', domain, (openmc.Material, Integral)) @@ -464,7 +460,7 @@ class Library(object): if domain_id == domain.id: break else: - msg = 'Unable to find MGXS for {0} "{1}" in ' \ + msg = 'Unable to find MGXS for "{0}" "{1}" in ' \ 'library'.format(self.domain_type, domain_id) raise ValueError(msg) else: @@ -478,7 +474,7 @@ class Library(object): return self.all_mgxs[domain_id][mgxs_type] def get_condensed_library(self, coarse_groups): - """Construct an energy-condensed version of this library. + '''Construct an energy-condensed version of this library. This routine condenses each of the multi-group cross sections in the library to a coarse energy group structure. NOTE: This routine must @@ -505,7 +501,7 @@ class Library(object): -------- MGXS.get_condensed_xs(coarse_groups) - """ + ''' if self.sp_filename is None: msg = 'Unable to get a condensed coarse group cross section ' \ @@ -534,7 +530,7 @@ class Library(object): return condensed_library def get_subdomain_avg_library(self): - """Construct a subdomain-averaged version of this library. + '''Construct a subdomain-averaged version of this library. This routine averages each multi-group cross section across distribcell instances. The method performs spatial homogenization to compute the @@ -557,7 +553,7 @@ class Library(object): -------- MGXS.get_subdomain_avg_xs(subdomains) - """ + ''' if self.sp_filename is None: msg = 'Unable to get a subdomain-averaged cross section ' \ @@ -585,7 +581,7 @@ class Library(object): def build_hdf5_store(self, filename='mgxs.h5', directory='mgxs', subdomains='all', nuclides='all', xs_type='macro', row_column='inout'): - """Export the multi-group cross section library to an HDF5 binary file. + '''Export the multi-group cross section library to an HDF5 binary file. This method constructs an HDF5 file which stores the library's multi-group cross section data. The data is stored in a hierarchy of @@ -628,7 +624,7 @@ class Library(object): -------- MGXS.build_hdf5_store(filename, directory, xs_type) - """ + ''' if self.sp_filename is None: msg = 'Unable to export multi-group cross section library ' \ @@ -648,7 +644,7 @@ class Library(object): full_filename = os.path.join(directory, filename) full_filename = full_filename.replace(' ', '-') f = h5py.File(full_filename, 'w') - f.attrs["# groups"] = self.num_groups + f.attrs['# groups'] = self.num_groups f.close() # Export MGXS for each domain and mgxs type to an HDF5 file @@ -663,7 +659,7 @@ class Library(object): nuclides=nuclides, row_column=row_column) def dump_to_file(self, filename='mgxs', directory='mgxs'): - """Store this Library object in a pickle binary file. + '''Store this Library object in a pickle binary file. Parameters ---------- @@ -676,7 +672,7 @@ class Library(object): -------- Library.load_from_file(filename, directory) - """ + ''' cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) @@ -693,7 +689,7 @@ class Library(object): @staticmethod def load_from_file(filename='mgxs', directory='mgxs'): - """Load a Library object from a pickle binary file. + '''Load a Library object from a pickle binary file. Parameters ---------- @@ -711,7 +707,7 @@ class Library(object): -------- Library.dump_to_file(mgxs_lib, filename, directory) - """ + ''' cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) @@ -729,7 +725,7 @@ class Library(object): def write_mg_library(self, xs_type='macro', domain_names=None, xs_ids=None, filename='mg_cross_sections', directory='./', return_names=True): - """Creates a cross-section data library file for the Multi-Group + '''Creates a cross-section data library file for the Multi-Group mode of OpenMC. Parameters @@ -740,11 +736,11 @@ class Library(object): nuclide this will be set to 'macro' regardless. domain_names : Iterable of str List of names to apply to the xsdata entries in the - resultant mgxs data file. Defaults to "set1", "set2", ... + resultant mgxs data file. Defaults to 'set1', 'set2', ... xs_ids : str or Iterable of str - Cross section set identifier (i.e., "71c") for all + Cross section set identifier (i.e., '71c') for all data sets (if only str) or for each individual one - (if iterable of str). Defaults to '1g' + (if iterable of str). Defaults to '1m'. filename : str Filename for the pickle file. Defaults to 'mg_cross_sections'. directory : str @@ -772,7 +768,11 @@ class Library(object): -------- Library.dump_to_file(mgxs_lib, filename, directory) - """ + ''' + + # Check to ensure the Library contains the correct + # multi-group cross section types + self.check_library_for_openmc_mgxs() # Check the provided parameters cv.check_value('xs_type', xs_type, ['macro', 'micro']) @@ -786,14 +786,18 @@ class Library(object): else: cv.check_iterable_type('xs_ids', xs_ids, basestring) else: - xs_ids = ['1g' for i in range(len(self.domains))] + xs_ids = ['1m' for i in range(len(self.domains))] cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) + # Make sure statepoint has been loaded + if self._sp_filename is None: + msg = 'A StatePoint must be loaded before calling ' \ + 'the write_mg_library() function' + raise ValueError(msg) + # Construct the collection of the nuclides to report - if self.by_nuclide: - nuclides = self.all_mgxs[1][self.mgxs_types[-1]].get_all_nuclides() - else: + if not self.by_nuclide: xs_type = 'macro' # Make directory if it does not exist and build our filename @@ -813,213 +817,98 @@ class Library(object): xsdatas = [] mat_names = {} - for i in range(len(self.domains)): + for i, domain in enumerate(self.domains): - id = self.domains[i].id - if not self.by_nuclide: + mat_names[domain.id] = {} + if self.by_nuclide: + nuclides = list(domain.get_all_nuclides().keys()) + else: + nuclides = ['total'] + for nuclide in nuclides: # Build & add metadata to XSdata object - # (Use i here because k in nuclides will add chars to this) if domain_names is None: name = 'set' + str(i + 1) else: name = domain_names[i] + if nuclide is not 'total': + name += '_' + nuclide name += '.' + xs_ids[i] + + # Store the name + mat_names[domain.id][nuclide] = name + xsdata = openmc.XSdata(name, self.energy_groups) xsdata.order = order + if nuclide is not 'total': + xsdata.zaid = self._nuclides[nuclide][0] + xsdata.awr = self._nuclides[nuclide][1] - mat_names[id] = name - + nuclide = [nuclide] # Now get xs data itself if 'transport' in self.mgxs_types: - if self.correction == 'P0': - xsdata.set_total(self.all_mgxs[id]['transport'], - xs_type=xs_type, subdomains=(id,)) - else: - msg = "The use of a transport cross section " + \ - "requires the correction attribute to be" + \ - "set to 'P0' to produce valid cross " + \ - "section libraries" - raise ValueError(msg) + mymgxs = self.get_mgxs(domain, 'transport') + xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, + nuclide=nuclide) elif 'total' in self.mgxs_types: - xsdata.set_total(self.all_mgxs[id]['total'], - xs_type=xs_type, subdomains=(id,)) + mymgxs = self.get_mgxs(domain, 'total') + xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, + nuclide=nuclide) if 'absorption' in self.mgxs_types: - xsdata.set_absorption(self.all_mgxs[id]['absorption'], - xs_type=xs_type, - subdomains=(id,)) + mymgxs = self.get_mgxs(domain, 'absorption') + xsdata.set_absorption_mgxs(mymgxs, xs_type=xs_type, + nuclide=nuclide) if 'fission' in self.mgxs_types: - xsdata.set_fission(self.all_mgxs[id]['fission'], - xs_type=xs_type, subdomains=(id,)) + mymgxs = self.get_mgxs(domain, 'fission') + xsdata.set_fission_mgxs(mymgxs, xs_type=xs_type, + nuclide=nuclide) if 'kappa-fission' in self.mgxs_types: - xsdata.set_k_fission(self.all_mgxs[id]['kappa-fission'], - xs_type=xs_type, subdomains=(id,)) + mymgxs = self.get_mgxs(domain, 'kappa-fission') + xsdata.set_kappa_fission_mgxs(mymgxs, xs_type=xs_type, + nuclide=nuclide) if 'chi' in self.mgxs_types: - xsdata.set_chi(self.all_mgxs[id]['chi'], - xs_type=xs_type, subdomains=(id,)) + mymgxs = self.get_mgxs(domain, 'chi') + xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, + nuclide=nuclide) if 'nu-fission' in self.mgxs_types: - xsdata.set_nu_fission(self.all_mgxs[id]['nu-fission'], - xs_type=xs_type, - subdomains=(id,)) + mymgxs = self.get_mgxs(domain, 'nu-fission') + xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, + nuclide=nuclide) # multiplicity requires scatter and nu-scatter if ((('scatter matrix' in self.mgxs_types) and ('nu-scatter matrix' in self.mgxs_types))): - xsdata.set_multiplicity( - self.all_mgxs[id]['nu-scatter matrix'], - self.all_mgxs[id]['scatter matrix'], - xs_type=xs_type, subdomains=(id,)) - xsdata.multiplicity = np.nan_to_num(xsdata.multiplicity) + scatt_mgxs = self.get_mgxs(domain, + 'scatter matrix') + nuscatt_mgxs = self.get_mgxs(domain, + 'nu-scatter matrix') + xsdata.set_multiplicity_mgxs(nuscatt_mgxs, scatt_mgxs, + xs_type=xs_type, + nuclide=nuclide) using_multiplicity = True else: using_multiplicity = False if using_multiplicity: - xsdata.set_scatter(self.all_mgxs[id]['nu-scatter matrix'], - xs_type=xs_type, - subdomains=(id,)) + nuscatt_mgxs = self.get_mgxs(domain, + 'nu-scatter matrix') + xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, + nuclide=nuclide) else: if 'nu-scatter matrix' in self.mgxs_types: - xsdata.set_scatter( - self.all_mgxs[id]['nu-scatter matrix'], - xs_type=xs_type, subdomains=(id,)) + nuscatt_mgxs = self.get_mgxs(domain, + 'nu-scatter matrix') + xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, + nuclide=nuclide) + # Since we are not using multiplicity, then # scattering multiplication (nu-scatter) must be # accounted for approximately by using an adjusted # absorption cross section. - # We can not do this with a transport x/s so check - # for that. if 'total' in self.mgxs_types: xsdata.absorption = \ np.subtract(xsdata.total, np.sum(xsdata.scatter[0, :, :], axis=1)) - else: - msg = "Absorption cross section must be " + \ - "provided if using a transport cross" + \ - " section and while not providing a " + \ - "scattering matrix" - raise ValueError(msg) - else: - msg = "No nu-scatter matrix data was provided. " + \ - "This means neutron balance cannot be " + \ - "achieved since (n,xn) multiplication is " + \ - "ignored." - warn(msg) - xsdata.set_scatter(self.all_mgxs[id]['scatter matrix'], - xs_type=xs_type, - subdomains=(id,)) - xsdatas.append(xsdata) - else: - mat_names[id] = {} - for nuclide in nuclides: - # Build & add metadata to XSdata object - if domain_names is None: - name = 'set' + str(i + 1) - else: - name = domain_names[i] - name += '_' + nuclide - name += '.' + xs_ids[i] - - mat_names[id][nuclide] = name - - xsdata = openmc.XSdata(name, self.energy_groups) - xsdata.order = order - xsdata.zaid = self._nuclides[nuclide][0] - xsdata.awr = self._nuclides[nuclide][1] - - # Now get xs data itself - if 'transport' in self.mgxs_types: - if self.correction == 'P0': - xsdata.set_total(self.all_mgxs[id]['transport'], - xs_type=xs_type, subdomains=(id,), - nuclides=[nuclide]) - else: - msg = "The use of a transport cross section " + \ - "requires the correction attribute to be" + \ - "set to 'P0' to produce valid cross " + \ - "section libraries" - raise ValueError(msg) - elif 'total' in self.mgxs_types: - xsdata.set_total(self.all_mgxs[id]['total'], - xs_type=xs_type, subdomains=(id,), - nuclides=[nuclide]) - if 'absorption' in self.mgxs_types: - xsdata.set_absorption(self.all_mgxs[id]['absorption'], - xs_type=xs_type, - subdomains=(id,), - nuclides=[nuclide]) - if 'fission' in self.mgxs_types: - xsdata.set_fission(self.all_mgxs[id]['fission'], - xs_type=xs_type, - subdomains=(id,), - nuclides=[nuclide]) - if 'kappa-fission' in self.mgxs_types: - xsdata.set_k_fission( - self.all_mgxs[id]['kappa-fission'], - xs_type=xs_type, subdomains=(id,), - nuclides=[nuclide]) - if 'chi' in self.mgxs_types: - xsdata.set_chi(self.all_mgxs[id]['chi'], - xs_type=xs_type, subdomains=(id,), - nuclides=[nuclide]) - if 'nu-fission' in self.mgxs_types: - xsdata.set_nu_fission(self.all_mgxs[id]['nu-fission'], - xs_type=xs_type, - subdomains=(id,), - nuclides=[nuclide]) - # multiplicity requires scatter and nu-scatter - if ((('scatter matrix' in self.mgxs_types) and - ('nu-scatter matrix' in self.mgxs_types))): - xsdata.set_multiplicity( - self.all_mgxs[id]['nu-scatter matrix'], - self.all_mgxs[id]['scatter matrix'], - xs_type=xs_type, subdomains=(id,), - nuclides=[nuclide]) - xsdata.multiplicity = \ - np.nan_to_num(xsdata.multiplicity) - using_multiplicity = True - else: - using_multiplicity = False - - if using_multiplicity: - xsdata.set_scatter( - self.all_mgxs[id]['nu-scatter matrix'], - xs_type=xs_type, subdomains=(id,), - nuclides=[nuclide]) - else: - if 'nu-scatter matrix' in self.mgxs_types: - xsdata.set_scatter( - self.all_mgxs[id]['nu-scatter matrix'], - xs_type=xs_type, subdomains=(id,), - nuclides=[nuclide]) - # Since we are not using multiplicity, then - # scattering multiplication (nu-scatter) must be - # accounted for approximately by using an adjusted - # absorption cross section. - if 'total' in self.mgxs_types: - xsdata.absorption = \ - np.subtract(xsdata.total, - np.sum(xsdata.scatter[0, :, :], - axis=1)) - else: - msg = "Absorption cross section must be " + \ - "provided if using a transport cross" + \ - " section and while not providing a " + \ - "scattering matrix" - raise ValueError(msg) - else: - msg = "No nu-scatter matrix data was provided. " +\ - "This means neutron balance cannot be " + \ - "achieved since (n,xn) multiplication is " +\ - "ignored." - warn(msg) - xsdata.set_scatter( - self.all_mgxs[id]['scatter matrix'], - xs_type=xs_type, - subdomains=(id,), - nuclides=[nuclide]) - - xsdatas.append(xsdata) # Add XSdatas to file mgxs_file.add_xsdatas(xsdatas) @@ -1029,3 +918,68 @@ class Library(object): if return_names: return mat_names + + def check_library_for_openmc_mgxs(self): + """This routine will check the MGXS Types within the provided + Library to ensure the data types provided can be used to create + a MGXS Library for OpenMC's Multi-Group mode via the + `Library.write_mg_library` method. + The rules to check include: + - Fission is not required as a fixed source problem could be + the target. + - Absorption is required. + - A nu-scatter matrix is required. + - Having both nu-scatter (of any order) and scatter + (at least isotropic) matrices is preferred + - If only nu-scatter, need total (not transport), to + be used in adjusting absorption + (i.e., reduced_abs = tot - nuscatt) + - Either total or transport should be present. + - Both can be available if one wants, but we should + use whatever corresponds to Library.correction (if P0: transport) + + Raises + ------ + ValueError + When the Library object is initialized with insufficient types of + cross sections for the Library. + + See also + -------- + Library.write_mg_library(...) + + """ + + error_flag = False + # Ensure absorption is present + if 'absorption' not in self.mgxs_types: + error_flag = True + msg = 'Absorption MGXS type is required but not provided.' + warn(msg) + # Ensure nu-scattering matrix is required + if 'nu-scatter matrix' not in self.mgxs_types: + error_flag = True + msg = 'Nu-Scatter Matrix MGXS type is required but not provided.' + warn(msg) + else: + # Ok, now see the status of scatter + if 'scatter matrix' not in self.mgxs_types: + # We dont have both nu-scatter and scatter, therefore + # we need total, and not transport. + if 'total' not in self.mgxs_types: + error_flag = True + msg = 'Total MGXS type is required if a ' \ + 'scattering matrix is not provided.' + warn(msg) + # Total or transport can be present, but if using + # self.correction=="P0", then we should use transport. + if (((self.correction is "P0") and + ('transport' not in self.mgxs_types))): + error_flag = True + msg = 'Transport MGXS type is required since a "P0" correction ' \ + 'is applied, but a Transport MGXS is not provided.' + warn(msg) + + if error_flag: + msg = "Invalid MGXS configuration encountered." + raise ValueError(msg) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index ba9ba75b0..f9353f9cc 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -122,12 +122,23 @@ class XSdata(object): Legendre polynomial form). Dict contains two keys: 'enable' and 'num_points'. 'enable' is a boolean and 'num_points' is the number of points to use, if 'enable' is True. + representation : {'isotropic', 'angle'} + Method used in generating the MGXS (isotropic or angle-dependent flux + weighting). num_azimuthal : int Number of equal width angular bins that the azimuthal angular domain is subdivided into. This only applies when ``representation`` is "angle". num_polar : int Number of equal width angular bins that the polar angular domain is subdivided into. This only applies when ``representation`` is "angle". + vector_shape : iterable of int + Dimensionality of vector multi-group cross sections (e.g., the total + cross section). The return result depends on the value of + ``representation``. + matrix_shape : iterable of int + Dimensionality of matrix multi-group cross sections (e.g., the + scattering matrix cross section). The return result depends on the + value of ``representation``. total : numpy.ndarray Group-wise total cross section ordered by increasing group index (i.e., fast to thermal). If ``representation`` is "isotropic", then the length @@ -173,7 +184,7 @@ class XSdata(object): azimuthal angles times the number of polar angles, with the inner-dimension being groups, intermediate-dimension being azimuthal angles and outer-dimension being the polar angles. - k_fission : numpy.ndarray + kappa_fission : numpy.ndarray Group-wise kappa-fission cross section ordered by increasing group index (i.e., fast to thermal). If ``representation`` is "isotropic", then the length of this list should equal the number of groups in the @@ -225,7 +236,7 @@ class XSdata(object): self._multiplicity = None self._fission = None self._nu_fission = None - self._k_fission = None + self._kappa_fission = None self._chi = None self._use_chi = None @@ -302,8 +313,8 @@ class XSdata(object): return self._nu_fission @property - def k_fission(self): - return self._k_fission + def kappa_fission(self): + return self._kappa_fission @property def chi(self): @@ -317,6 +328,24 @@ class XSdata(object): else: return self._order + @property + def vector_shape(self): + if self.representation is 'isotropic': + return (self.energy_groups.num_groups,) + elif self.representation is 'angle': + return (self.num_polar, self.num_azimuthal, + self.energy_groups.num_groups) + + @property + def matrix_shape(self): + if self.representation is 'isotropic': + return (self.energy_groups.num_groups, + self.energy_groups.num_groups) + elif self.representation is 'angle': + return (self.num_polar, self.num_azimuthal, + self.energy_groups.num_groups, + self.energy_groups.num_groups) + @name.setter def name(self, name): check_type('name for XSdata', name, basestring) @@ -326,6 +355,11 @@ class XSdata(object): def energy_groups(self, energy_groups): # Check validity of energy_groups check_type('energy_groups', energy_groups, openmc.mgxs.EnergyGroups) + + if energy_group.group_edges is None: + msg = 'Unable to assign an EnergyGroups object ' + \ + 'with uninitialized group edges' + raise ValueError(msg) self._energy_groups = energy_groups @representation.setter @@ -414,141 +448,196 @@ class XSdata(object): @total.setter def total(self, total): - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups,) - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) + """This method sets the total cross section by performing a + deep-copy of the provided ndarray. + + Parameters + ---------- + total: ndarray + Array of group-wise cross sections to apply + + Raises + ------ + ValueError + When invalid parameters are passed. + """ + # check we have a numpy list check_type('total', total, np.ndarray, expected_iter_type=Real) - if total.shape == shape: - self._total = np.copy(total) - else: - msg = 'Shape of provided total "{0}" does not match shape ' \ - 'required, "{1}"'.format(total.shape, shape) - raise ValueError(msg) + # Check the dimensions of the data + check_value('total shape', total.shape, self.vector_shape) + + self._total = np.copy(total) @absorption.setter def absorption(self, absorption): - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups,) - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) + """This method sets the absorption cross section by performing a + deep-copy of the provided ndarray. + + Parameters + ---------- + absorption: ndarray + Array of group-wise cross sections to apply + + Raises + ------ + ValueError + When invalid parameters are passed. + """ # check we have a numpy list check_type('absorption', absorption, np.ndarray, expected_iter_type=Real) - if absorption.shape == shape: - self._absorption = np.copy(absorption) - else: - msg = 'Shape of provided absorption "{0}" does not match shape ' \ - 'required, "{1}"'.format(absorption.shape, shape) - raise ValueError(msg) + # Check the dimensions of the data + check_value('absorption shape', absorption.shape, self.vector_shape) + + self._absorption = np.copy(absorption) @fission.setter def fission(self, fission): - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups,) - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) - # check we have a numpy list - check_type('fission', fission, np.ndarray, expected_iter_type=Real) - if fission.shape == shape: - self._fission = np.copy(fission) - if np.sum(self._fission) > 0.0: - self._fissionable = True - else: - msg = 'Shape of provided fission "{0}" does not match shape ' \ - 'required, "{1}"'.format(fission.shape, shape) - raise ValueError(msg) + """This method sets the fission cross section by performing a + deep-copy of the provided ndarray. - @k_fission.setter - def k_fission(self, k_fission): - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups,) - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) + Parameters + ---------- + fission: ndarray + Array of group-wise cross sections to apply + + Raises + ------ + ValueError + When invalid parameters are passed. + """ # check we have a numpy list - check_type('k_fission', k_fission, np.ndarray, + check_type('fission', fission, np.ndarray, expected_iter_type=Real) - if k_fission.shape == shape: - self._k_fission = np.copy(k_fission) - if np.sum(self._k_fission) > 0.0: - self._fissionable = True - else: - msg = 'Shape of provided k_fission "{0}" does not match ' \ - 'shape required, "{1}"'.format(k_fission.shape, shape) - raise ValueError(msg) + # Check the dimensions of the data + check_value('fission shape', fission.shape, self.vector_shape) + + self._fission = np.copy(fission) + + if np.sum(self._fission) > 0.0: + self._fissionable = True + + @kappa_fission.setter + def kappa_fission(self, kappa_fission): + """This method sets the kappa_fission cross section by performing a + deep-copy of the provided ndarray. + + Parameters + ---------- + kappa_fission: ndarray + Array of group-wise cross sections to apply + + Raises + ------ + ValueError + When invalid parameters are passed. + """ + # check we have a numpy list + check_type('kappa_fission', fission, np.ndarray, + expected_iter_type=Real) + # Check the dimensions of the data + check_value('kappa fission shape', kappa_fission.shape, + self.vector_shape) + + self._kappa_fission = np.copy(fission) + + if np.sum(self._kappa_fission) > 0.0: + self._fissionable = True @chi.setter def chi(self, chi): + """This method sets the chi cross section by performing a + deep-copy of the provided ndarray. + + Parameters + ---------- + chi: ndarray + Array of group-wise cross sections to apply + + Raises + ------ + ValueError + When invalid parameters are passed. + """ if self._use_chi is not None: if not self._use_chi: - msg = 'Providing chi when nu_fission already provided as matrix!' + msg = 'Providing chi when nu_fission already provided as a' \ + 'matrix' raise ValueError(msg) - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups,) - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) # check we have a numpy list check_type('chi', chi, np.ndarray, expected_iter_type=Real) - if chi.shape == shape: - self._chi = np.copy(chi) - else: - msg = 'Shape of provided chi "{0}" does not match shape ' \ - 'required, "{1}"'.format(chi.shape, shape) - raise ValueError(msg) + # Check the dimensions of the data + check_value('chi shape', chi.shape, self.vector_shape) + + self._chi = np.copy(chi) + if self._use_chi is not None: self._use_chi = True @scatter.setter def scatter(self, scatter): - if self._representation is 'isotropic': - shape = (self.num_orders, self._energy_groups.num_groups, - self._energy_groups.num_groups) - max_depth = 3 - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, self.num_orders, - self._energy_groups.num_groups, - self._energy_groups.num_groups) - max_depth = 5 + """This method sets the scattering matrix cross sections + by performing a deep-copy of the provided ndarray. + + Parameters + ---------- + scatter : ndarrays + Array of group-wise cross sections to apply + + Raises + ------ + ValueError + When invalid parameters are passed. + """ # check we have a numpy list - check_iterable_type('scatter', scatter, expected_type=Real, - max_depth=max_depth) - if scatter.shape == shape: - self._scatter = np.copy(scatter) - else: - msg = 'Shape of provided scatter "{0}" does not match shape ' \ - 'required, "{1}"'.format(scatter.shape, shape) - raise ValueError(msg) + check_type('scatter', scatter, np.ndarray, expected_iter_type=Real, + max_depth=len(scatter.shape)) + # Check the dimensions of the data + check_value('scatter shape', scatter.shape, self.matrix_shape) + + self._scatter = np.copy(scatter) @multiplicity.setter def multiplicity(self, multiplicity): - if self._representation is 'isotropic': - shape = (self._energy_groups.num_groups, - self._energy_groups.num_groups) - max_depth = 2 - elif self._representation is 'angle': - shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups, - self._energy_groups.num_groups) - max_depth = 4 + """This method sets the scattering multiplicity matrix cross sections + by performing a deep-copy of the provided ndarray. + + Parameters + ---------- + multiplicity : ndarrays + Array of group-wise cross sections to apply + + Raises + ------ + ValueError + When invalid parameters are passed. + """ # check we have a numpy list - check_iterable_type('multiplicity', multiplicity, expected_type=Real, - max_depth=max_depth) - if multiplicity.shape == shape: - self._multiplicity = np.copy(multiplicity) - else: - msg = 'Shape of provided multiplicity "{0}" does not match shape' \ - ' required, "{1}"'.format(multiplicity.shape, shape) - raise ValueError(msg) + check_type('multiplicity', multiplicity, np.ndarray, + expected_iter_type=Real, max_depth=len(multiplicity.shape)) + # Check the dimensions of the data + check_value('multiplicity shape', multiplicity.shape, + self.matrix_shape) + + self._multiplicity = np.copy(multiplicity) @nu_fission.setter def nu_fission(self, nu_fission): + """This method sets the nu_fission cross section by performing a + deep-copy of the provided ndarray. + + Parameters + ---------- + nu_fission: ndarray + Array of group-wise cross sections to apply + + Raises + ------ + ValueError + When invalid parameters are passed. + """ # The NuFissionXS class does not have the capability to produce # a fission matrix and therefore if this path is pursued, we know # chi must be used. @@ -559,47 +648,54 @@ class XSdata(object): # chi already has been set. If not, we just check that this is OK # and set the use_chi flag accordingly - # First lets set our dimensions here since they get used repeatedly - # throughout this code. - if self._representation is 'isotropic': - shape_vec = (self._energy_groups.num_groups,) - shape_mat = (self._energy_groups.num_groups, - self._energy_groups.num_groups) - elif self._representation is 'angle': - shape_vec = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups) - shape_mat = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_groups, - self._energy_groups.num_groups) - - # Begin by checking the case when chi has already been given and - # thus the rules for filling in nu_fission are set. - if self._use_chi is not None: - if self._use_chi: - shape = shape_vec - else: - shape = shape_mat - if nu_fission.shape != shape: - msg = 'Invalid Shape of Nu_fission!' - raise ValueError(msg) - else: - # Get shape of nu_fission to determine if we need chi or not - if nu_fission.shape == shape_vec: - self._use_chi = True - elif nu_fission.shape == shape_mat: - self._use_chi = False - else: - msg = 'Invalid Shape of Nu_fission!' - raise ValueError(msg) - - # check we have a numpy list + # First, check we have a numpy list check_type('nu_fission', nu_fission, np.ndarray, - expected_iter_type=Real) + expected_iter_type=Real, max_depth=len(nu_fission.shape)) + + if self._use_chi is not None: + # Check the dimensions of the data + if self._use_chi: + check_value('nu_fission shape', nu_fission.shape, + self.vector_shape) + else: + check_value('nu_fission shape', nu_fission.shape, + self.matrix_shape) + else: + # Make sure the dimensions are at least right + check_value('nu_fission shape', nu_fission.shape, + (self.vector_shape, self.matrix_shape)) + # Then find out which one we have so we can set use_chi + if nu_fission.shape == self.vector_shape: + self._use_chi = True + else: + self._use_chi = False + self._nu_fission = np.copy(nu_fission) if np.sum(self._nu_fission) > 0.0: self._fissionable = True - def set_total(self, total, subdomain, nuclide='sum', xs_type='macro'): + def set_total_mgxs(self, total, nuclide='total', xs_type='macro'): + """This method allows for an openmc.mgxs.TotalXS or + openmc.mgxs.TransportXS to be used to set the total cross section + for this XSdata object. + + Parameters + ---------- + total: {openmc.mgxs.TotalXS, openmc.mgxs.TransportXS} + MGXS Object containing the total or transport cross section + for the domain of interest. + nuclide : str + Individual nuclide (or 'total' if obtaining material-wise data) + to gather data for. Defaults to 'total'. + xs_type: {'macro', 'micro'} + Provide the macro or micro cross section in units of cm^-1 or + barns. Defaults to 'macro'. + + Raises + ------ + ValueError + When invalid parameters are passed. + """ if not isinstance(total, (openmc.mgxs.TotalXS, openmc.mgxs.TransportXS)): msg = 'Method must be passed an openmc.mgxs.TotalXS or ' \ @@ -607,59 +703,119 @@ class XSdata(object): raise TypeError(msg) # Make sure passed MGXS object contains correct group structure - if self.energy_groups != total.energy_groups: - msg = 'Group structure of provided data does not match' \ - ' group structure of XSdata object' - raise ValueError(msg) + check_value('energy_groups', total.energy_groups, [self.energy_groups]) + + # Make sure passed MGXS object has correct domain type + check_value('domain_type', total.domain_type, + ['universe', 'cell', 'material']) if self._representation is 'isotropic': - self._total = total.get_xs(subdomain=subdomains, nuclides=nuclide, - xs_type=xs_type) + self._total = total.get_xs(nuclides=nuclide, xs_type=xs_type) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_absorption(self, absorption, subdomain, nuclide='sum', - xs_type='macro'): + def set_absorption_mgxs(self, absorption, nuclide='total', xs_type='macro'): + """This method allows for an openmc.mgxs.AbsorptionXS + to be used to set the absorption cross section for this XSdata object. + + Parameters + ---------- + absorption: openmc.mgxs.AbsorptionXS + MGXS Object containing the absorption cross section + for the domain of interest. + nuclide : str + Individual nuclide (or 'total' if obtaining material-wise data) + to gather data for. Defaults to 'total'. + xs_type: {'macro', 'micro'} + Provide the macro or micro cross section in units of cm^-1 or + barns. Defaults to 'macro'. + + Raises + ------ + ValueError + When invalid parameters are passed. + """ if not isinstance(absorption, openmc.mgxs.AbsorptionXS): msg = 'Method must be passed an openmc.mgxs.AbsorptionXS' raise TypeError(msg) # Make sure passed MGXS object contains correct group structure - if self.energy_groups != absorption.energy_groups: - msg = 'Group structure of provided data does not match' \ - ' group structure of XSdata object' - raise ValueError(msg) + check_value('energy_groups', absorption.energy_groups, + [self.energy_groups]) + + # Make sure passed MGXS object has correct domain type + check_value('domain_type', absorption.domain_type, + ['universe', 'cell', 'material']) if self._representation is 'isotropic': - self._absorption = absorption.get_xs(subdomains=subdomain, - nuclides=nuclide, + self._absorption = absorption.get_xs(nuclides=nuclide, xs_type=xs_type) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_fission(self, fission, subdomain, nuclide='sum', xs_type='macro'): + def set_fission_mgxs(self, fission, nuclide='total', xs_type='macro'): + """This method allows for an openmc.mgxs.FissionXS + to be used to set the fission cross section for this XSdata object. + + Parameters + ---------- + fission: openmc.mgxs.FissionXS + MGXS Object containing the fission cross section + for the domain of interest. + nuclide : str + Individual nuclide (or 'total' if obtaining material-wise data) + to gather data for. Defaults to 'total'. + xs_type: {'macro', 'micro'} + Provide the macro or micro cross section in units of cm^-1 or + barns. Defaults to 'macro'. + + Raises + ------ + ValueError + When invalid parameters are passed. + """ if not isinstance(fission, openmc.mgxs.FissionXS): msg = 'Method must be passed an openmc.mgxs.FissionXS' raise TypeError(msg) # Make sure passed MGXS object contains correct group structure - if self.energy_groups != fission.energy_groups: - msg = 'Group structure of provided data does not match' \ - ' group structure of XSdata object' - raise ValueError(msg) + check_value('energy_groups', fission.energy_groups, + [self.energy_groups]) + + # Make sure passed MGXS object has correct domain type + check_value('domain_type', fission.domain_type, + ['universe', 'cell', 'material']) if self._representation is 'isotropic': - self._fission = fission.get_xs(subdomains=subdomain, - nuclides=nuclide, + self._fission = fission.get_xs(nuclides=nuclide, xs_type=xs_type) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_nu_fission(self, nu_fission, subdomain, nuclide='sum', - xs_type='macro'): + def set_nu_fission_mgxs(self, nu_fission, nuclide='total', xs_type='macro'): + """This method allows for an openmc.mgxs.NuFissionXS + to be used to set the nu-fission cross section for this XSdata object. + + Parameters + ---------- + nu_fission: openmc.mgxs.NuFissionXS + MGXS Object containing the nu-fission cross section + for the domain of interest. + nuclide : str + Individual nuclide (or 'total' if obtaining material-wise data) + to gather data for. Defaults to 'total'. + xs_type: {'macro', 'micro'} + Provide the macro or micro cross section in units of cm^-1 or + barns. Defaults to 'macro'. + + Raises + ------ + ValueError + When invalid parameters are passed. + """ # The NuFissionXS class does not have the capability to produce # a fission matrix and therefore if this path is pursued, we know # chi must be used. @@ -668,14 +824,15 @@ class XSdata(object): raise TypeError(msg) # Make sure passed MGXS object contains correct group structure - if self.energy_groups != nu_fission.energy_groups: - msg = 'Group structure of provided data does not match' \ - ' group structure of XSdata object' - raise ValueError(msg) + check_value('energy_groups', nu_fission.energy_groups, + [self.energy_groups]) + + # Make sure passed MGXS object has correct domain type + check_value('domain_type', nu_fission.domain_type, + ['universe', 'cell', 'material']) if self._representation is 'isotropic': - self._nu_fission = nu_fission.get_xs(subdomains=subdomain, - nuclides=nuclide, + self._nu_fission = nu_fission.get_xs(nuclides=nuclide, xs_type=xs_type) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' @@ -686,27 +843,68 @@ class XSdata(object): if np.sum(self._nu_fission) > 0.0: self._fissionable = True - def set_k_fission(self, k_fission, subdomain, nuclide='sum', - xs_type='macro'): + def set_kappa_fission_mgxs(self, k_fission, nuclide='total', + xs_type='macro'): + """This method allows for an openmc.mgxs.KappaFissionXS + to be used to set the kappa-fission cross section for this XSdata + object. + + Parameters + ---------- + kappa_fission: openmc.mgxs.KappaFissionXS + MGXS Object containing the kappa-fission cross section + for the domain of interest. + nuclide : str + Individual nuclide (or 'total' if obtaining material-wise data) + to gather data for. Defaults to 'total'. + xs_type: {'macro', 'micro'} + Provide the macro or micro cross section in units of cm^-1 or + barns. Defaults to 'macro'. + + Raises + ------ + ValueError + When invalid parameters are passed. + """ if not isinstance(k_fission, openmc.mgxs.KappaFissionXS): msg = 'Method must be passed an openmc.mgxs.KappaFissionXS' raise TypeError(msg) # Make sure passed MGXS object contains correct group structure - if self.energy_groups != k_fission.energy_groups: - msg = 'Group structure of provided data does not match' \ - ' group structure of XSdata object' - raise ValueError(msg) + check_value('energy_groups', k_fission.energy_groups, + [self.energy_groups]) + + # Make sure passed MGXS object has correct domain type + check_value('domain_type', k_fission.domain_type, + ['universe', 'cell', 'material']) if self._representation is 'isotropic': - self._k_fission = k_fission.get_xs(subdomains=subdomain, - nuclides=nuclide, - xs_type=xs_type) + self._kappa_fission = k_fission.get_xs(nuclides=nuclide, + xs_type=xs_type) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_chi(self, chi, subdomain, nuclide='sum', xs_type='macro'): + def set_chi_mgxs(self, chi, nuclide='total', xs_type='macro'): + """This method allows for an openmc.mgxs.Chi + to be used to set chi for this XSdata object. + + Parameters + ---------- + chi: openmc.mgxs.Chi + MGXS Object containing chi for the domain of interest. + nuclide : str + Individual nuclide (or 'total' if obtaining material-wise data) + to gather data for. Defaults to 'total'. + xs_type: {'macro', 'micro'} + Provide the macro or micro cross section in units of cm^-1 or + barns. Defaults to 'macro'. + + Raises + ------ + ValueError + When invalid parameters are passed. + """ if self._use_chi is not None: if not self._use_chi: msg = 'Providing chi when nu_fission already provided as a ' \ @@ -718,14 +916,14 @@ class XSdata(object): raise TypeError(msg) # Make sure passed MGXS object contains correct group structure - if self.energy_groups != chi.energy_groups: - msg = 'Group structure of provided data does not match' \ - ' group structure of XSdata object' - raise ValueError(msg) + check_value('energy_groups', chi.energy_groups, [self.energy_groups]) + + # Make sure passed MGXS object has correct domain type + check_value('domain_type', chi.domain_type, + ['universe', 'cell', 'material']) if self._representation is 'isotropic': - self._chi = chi.get_xs(subdomains=subdomain, - nuclides=nuclide, + self._chi = chi.get_xs(nuclides=nuclide, xs_type=xs_type) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' @@ -734,55 +932,102 @@ class XSdata(object): if self._use_chi is not None: self._use_chi = True - def set_scatter(self, scatter, subdomain, nuclide='sum', xs_type='macro'): + def set_scatter_mgxs(self, scatter, nuclide='total', xs_type='macro'): + """This method allows for an openmc.mgxs.ScatterMatrixXS + to be used to set the scatter matrix cross section for this XSdata + object. + + Parameters + ---------- + scatter: openmc.mgxs.ScatterMatrixXS + MGXS Object containing the scatter matrix cross section + for the domain of interest. + nuclide : str + Individual nuclide (or 'total' if obtaining material-wise data) + to gather data for. Defaults to 'total'. + xs_type: {'macro', 'micro'} + Provide the macro or micro cross section in units of cm^-1 or + barns. Defaults to 'macro'. + + Raises + ------ + ValueError + When invalid parameters are passed. + """ if not isinstance(scatter, openmc.mgxs.ScatterMatrixXS): msg = 'Method must be passed an openmc.mgxs.ScatterMatrixXS' raise TypeError(msg) # Make sure passed MGXS object contains correct group structure - if self.energy_groups != scatter.energy_groups: - msg = 'Group structure of provided data does not match' \ - ' group structure of XSdata object' - raise ValueError(msg) + check_value('energy_groups', scatter.energy_groups, + [self.energy_groups]) + + # Make sure passed MGXS object has correct domain type + check_value('domain_type', scatter.domain_type, + ['universe', 'cell', 'material']) if self._representation is 'isotropic': - self._scatter = scatter.get_xs(subdomains=subdomain, - nuclides=nuclide, + self._scatter = scatter.get_xs(nuclides=nuclide, xs_type=xs_type) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_multiplicity(self, multiplicity, scatter, subdomain, - nuclide='sum', xs_type='macro'): - if not isinstance(multiplicity, openmc.mgxs.ScatterMatrixXS): + def set_multiplicity_mgxs(self, nuscatter, scatter, nuclide='total', + xs_type='macro'): + """This method allows for an openmc.mgxs.NuScatterMatrixXS and + openmc.mgxs.ScatterMatrixXS to be used to set the scattering + multiplicity for this XSdata object. + + Parameters + ---------- + nuscatter: openmc.mgxs.NuScatterMatrixXS + MGXS Object containing the nu-scattering matrix cross section + for the domain of interest. + scatter: openmc.mgxs.ScatterMatrixXS + MGXS Object containing the scattering matrix cross section + for the domain of interest. + nuclide : str + Individual nuclide (or 'total' if obtaining material-wise data) + to gather data for. Defaults to 'total'. + xs_type: {'macro', 'micro'} + Provide the macro or micro cross section in units of cm^-1 or + barns. Defaults to 'macro'. + + Raises + ------ + ValueError + When invalid parameters are passed. + """ + if not isinstance(nuscatter, openmc.mgxs.NuScatterMatrixXS): msg = 'Method must be passed an openmc.mgxs.ScatterMatrixXS' raise TypeError(msg) if not isinstance(scatter, openmc.mgxs.ScatterMatrixXS): msg = 'Method must be passed an openmc.mgxs.ScatterMatrixXS' raise TypeError(msg) - # Make sure passed MGXS objects contain correct group structure - if self.energy_groups != multiplicity.energy_groups: - msg = 'Group structure of "multiplicity" does not match' \ - ' group structure of XSdata object' - raise ValueError(msg) - if self.energy_groups != scatter.energy_groups: - msg = 'Group structure of "scatter" does not match' \ - ' group structure of XSdata object' - raise ValueError(msg) + # Make sure passed MGXS object contains correct group structure + check_value('energy_groups', nuscatter.energy_groups, + [self.energy_groups]) + check_value('energy_groups', scatter.energy_groups, + [self.energy_groups]) + + # Make sure passed MGXS object has correct domain type + check_value('domain_type', nuscatter.domain_type, + ['universe', 'cell', 'material']) + check_value('domain_type', scatter.domain_type, + ['universe', 'cell', 'material']) if self._representation is 'isotropic': - nuscatt = multiplicity.get_xs(subdomains=subdomain, - nuclides=nuclide, - xs_type=xs_type) - scatt = scatter.get_xs(subdomains=subdomain, - nuclides=nuclide, + nuscatt = nuscatter.get_xs(nuclides=nuclide, + xs_type=xs_type) + scatt = scatter.get_xs(nuclides=nuclide, xs_type=xs_type) self._multiplicity = np.divide(nuscatt, scatt) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) + self._multiplicity = np.nan_to_num(self._multiplicity) def _get_xsdata_xml(self): element = ET.Element('xsdata') @@ -858,9 +1103,9 @@ class XSdata(object): subelement = ET.SubElement(element, 'fission') subelement.text = ndarray_to_string(self._fission) - if self._k_fission is not None: + if self._kappa_fission is not None: subelement = ET.SubElement(element, 'k_fission') - subelement.text = ndarray_to_string(self._k_fission) + subelement.text = ndarray_to_string(self._kappa_fission) if self._nu_fission is not None: subelement = ET.SubElement(element, 'nu_fission') @@ -947,10 +1192,8 @@ class MGXSLibrary(object): """ - if not isinstance(xsdatas, Iterable): - msg = 'Unable to create OpenMC xsdatas.xml file from "{0}" which' \ - ' is not iterable'.format(xsdatas) - raise ValueError(msg) + # Check we have an iterable of XSdatas + check_iterable_type('xsdatas', xsdatas, XSdata) for xsdata in xsdatas: self.add_xsdata(xsdata) From 5e910498b39b12ab9fe7ae5ef4a14a80a28940d7 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 11 May 2016 21:39:56 -0500 Subject: [PATCH 180/259] Check for non-matching periodic boundary conditions --- src/geometry.F90 | 4 ++-- src/input_xml.F90 | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/geometry.F90 b/src/geometry.F90 index 9f7781738..62c5036a9 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -432,7 +432,7 @@ contains ! Score surface currents since reflection causes the direction of the ! particle to change -- artificially move the particle slightly back in - ! case the surface crossing in coincident with a mesh boundary + ! case the surface crossing is coincident with a mesh boundary if (active_current_tallies % size() > 0) then p % coord(1) % xyz = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw @@ -488,7 +488,7 @@ contains ! Score surface currents since reflection causes the direction of the ! particle to change -- artificially move the particle slightly back in - ! case the surface crossing in coincident with a mesh boundary + ! case the surface crossing is coincident with a mesh boundary if (active_current_tallies % size() > 0) then p % coord(1) % xyz = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 9e49e3c34..242d3459a 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1630,6 +1630,14 @@ contains call fatal_error("Periodic boundary condition applied to & &non-planar surface.") end select + + ! Make sure opposite surface is also periodic + associate (surf => surfaces(i) % obj) + if (surfaces(surf % opposite) % obj % bc /= BC_PERIODIC) then + call fatal_error("Could not find matching surface for periodic & + &boundary on surface " // trim(to_str(surf % id)) // ".") + end if + end associate end if end do From 6bbf83a9b6010bcabc8467d16d1c9013164b431e Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 12 May 2016 05:16:21 -0400 Subject: [PATCH 181/259] Revised docstrings and added some check_type commands instead of isinstance --- openmc/mgxs/library.py | 78 ++++++++-------- openmc/mgxs_library.py | 203 +++++++++++++++++++---------------------- 2 files changed, 134 insertions(+), 147 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 991a98f62..82b761673 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -17,7 +17,7 @@ if sys.version_info[0] >= 3: class Library(object): - '''A multi-group cross section library for some energy group structure. + """A multi-group cross section library for some energy group structure. This class can be used for both OpenMC input generation and tally data post-processing to compute spatially-homogenized and energy-integrated @@ -79,7 +79,7 @@ class Library(object): Whether or not the Library's tallies use SciPy's LIL sparse matrix format for compressed data storage - ''' + """ def __init__(self, openmc_geometry, by_nuclide=False, mgxs_types=None, name=''): @@ -300,7 +300,7 @@ class Library(object): @sparse.setter def sparse(self, sparse): - '''Convert tally data from NumPy arrays to SciPy list of lists (LIL) + """Convert tally data from NumPy arrays to SciPy list of lists (LIL) sparse matrices, and vice versa. This property may be used to reduce the amount of data in memory during @@ -308,7 +308,7 @@ class Library(object): matrices internally within the Tally object. All tally data access properties and methods will return data as a dense NumPy array. - ''' + """ cv.check_type('sparse', sparse, bool) @@ -321,14 +321,14 @@ class Library(object): self._sparse = sparse def build_library(self): - '''Initialize MGXS objects in each domain and for each reaction type + """Initialize MGXS objects in each domain and for each reaction type in the library. This routine will populate the all_mgxs instance attribute dictionary with MGXS subclass objects keyed by each domain ID (e.g., Material IDs) and cross section type (e.g., 'nu-fission', 'total', etc.). - ''' + """ # Initialize MGXS for each domain and mgxs type and store in dictionary for domain in self.domains: @@ -351,7 +351,7 @@ class Library(object): self.all_mgxs[domain.id][mgxs_type] = mgxs def add_to_tallies_file(self, tallies_file, merge=True): - '''Add all tallies from all MGXS objects to a tallies file. + """Add all tallies from all MGXS objects to a tallies file. NOTE: This assumes that :meth:`Library.build_library` has been called @@ -364,7 +364,7 @@ class Library(object): Indicate whether tallies should be merged when possible. Defaults to True. - ''' + """ cv.check_type('tallies_file', tallies_file, openmc.Tallies) @@ -376,7 +376,7 @@ class Library(object): tallies_file.append(tally, merge=merge) def load_from_statepoint(self, statepoint): - '''Extracts tallies in an OpenMC StatePoint with the data needed to + """Extracts tallies in an OpenMC StatePoint with the data needed to compute multi-group cross sections. This method is needed to compute cross section data from tallies @@ -395,7 +395,7 @@ class Library(object): When this method is called with a statepoint that has not been linked with a summary object. - ''' + """ cv.check_type('statepoint', statepoint, openmc.StatePoint) @@ -419,7 +419,7 @@ class Library(object): mgxs.sparse = self.sparse def get_mgxs(self, domain, mgxs_type): - '''Return the MGXS object for some domain and reaction rate type. + """Return the MGXS object for some domain and reaction rate type. This routine searches the library for an MGXS object for the spatial domain and reaction rate type requested by the user. @@ -444,7 +444,7 @@ class Library(object): If no MGXS object can be found for the requested domain or multi-group cross section type - ''' + """ if self.domain_type == 'material': cv.check_type('domain', domain, (openmc.Material, Integral)) @@ -474,7 +474,7 @@ class Library(object): return self.all_mgxs[domain_id][mgxs_type] def get_condensed_library(self, coarse_groups): - '''Construct an energy-condensed version of this library. + """Construct an energy-condensed version of this library. This routine condenses each of the multi-group cross sections in the library to a coarse energy group structure. NOTE: This routine must @@ -501,7 +501,7 @@ class Library(object): -------- MGXS.get_condensed_xs(coarse_groups) - ''' + """ if self.sp_filename is None: msg = 'Unable to get a condensed coarse group cross section ' \ @@ -530,7 +530,7 @@ class Library(object): return condensed_library def get_subdomain_avg_library(self): - '''Construct a subdomain-averaged version of this library. + """Construct a subdomain-averaged version of this library. This routine averages each multi-group cross section across distribcell instances. The method performs spatial homogenization to compute the @@ -553,7 +553,7 @@ class Library(object): -------- MGXS.get_subdomain_avg_xs(subdomains) - ''' + """ if self.sp_filename is None: msg = 'Unable to get a subdomain-averaged cross section ' \ @@ -581,7 +581,7 @@ class Library(object): def build_hdf5_store(self, filename='mgxs.h5', directory='mgxs', subdomains='all', nuclides='all', xs_type='macro', row_column='inout'): - '''Export the multi-group cross section library to an HDF5 binary file. + """Export the multi-group cross section library to an HDF5 binary file. This method constructs an HDF5 file which stores the library's multi-group cross section data. The data is stored in a hierarchy of @@ -624,7 +624,7 @@ class Library(object): -------- MGXS.build_hdf5_store(filename, directory, xs_type) - ''' + """ if self.sp_filename is None: msg = 'Unable to export multi-group cross section library ' \ @@ -659,7 +659,7 @@ class Library(object): nuclides=nuclides, row_column=row_column) def dump_to_file(self, filename='mgxs', directory='mgxs'): - '''Store this Library object in a pickle binary file. + """Store this Library object in a pickle binary file. Parameters ---------- @@ -672,7 +672,7 @@ class Library(object): -------- Library.load_from_file(filename, directory) - ''' + """ cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) @@ -689,7 +689,7 @@ class Library(object): @staticmethod def load_from_file(filename='mgxs', directory='mgxs'): - '''Load a Library object from a pickle binary file. + """Load a Library object from a pickle binary file. Parameters ---------- @@ -707,7 +707,7 @@ class Library(object): -------- Library.dump_to_file(mgxs_lib, filename, directory) - ''' + """ cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) @@ -725,7 +725,7 @@ class Library(object): def write_mg_library(self, xs_type='macro', domain_names=None, xs_ids=None, filename='mg_cross_sections', directory='./', return_names=True): - '''Creates a cross-section data library file for the Multi-Group + """Creates a cross-section data library file for the Multi-Group mode of OpenMC. Parameters @@ -768,7 +768,7 @@ class Library(object): -------- Library.dump_to_file(mgxs_lib, filename, directory) - ''' + """ # Check to ensure the Library contains the correct # multi-group cross section types @@ -904,10 +904,11 @@ class Library(object): # accounted for approximately by using an adjusted # absorption cross section. if 'total' in self.mgxs_types: - xsdata.absorption = \ + xsdata._absorption = \ np.subtract(xsdata.total, np.sum(xsdata.scatter[0, :, :], axis=1)) + xsdatas.append(xsdata) # Add XSdatas to file @@ -925,24 +926,20 @@ class Library(object): a MGXS Library for OpenMC's Multi-Group mode via the `Library.write_mg_library` method. The rules to check include: - - Fission is not required as a fixed source problem could be - the target. - - Absorption is required. + - Either total or transport should be present. + - Both can be available if one wants, but we should + use whatever corresponds to Library.correction (if P0: transport) + - Absorption and total (or transport) are required. + - A nu-fission cross section and chi values are not required as a + fixed source problem could be the target. + - Fission and kappa-fission are not required as they are only + needed to support tallies the user may wish to request. - A nu-scatter matrix is required. - Having both nu-scatter (of any order) and scatter (at least isotropic) matrices is preferred - If only nu-scatter, need total (not transport), to be used in adjusting absorption (i.e., reduced_abs = tot - nuscatt) - - Either total or transport should be present. - - Both can be available if one wants, but we should - use whatever corresponds to Library.correction (if P0: transport) - - Raises - ------ - ValueError - When the Library object is initialized with insufficient types of - cross sections for the Library. See also -------- @@ -979,7 +976,12 @@ class Library(object): msg = 'Transport MGXS type is required since a "P0" correction ' \ 'is applied, but a Transport MGXS is not provided.' warn(msg) + elif (((self.correction is None) and + ('total' not in self.mgxs_types))): + error_flag = True + msg = 'Total MGXS type is required, but not provided.' + warn(msg) if error_flag: - msg = "Invalid MGXS configuration encountered." + msg = 'Invalid MGXS configuration encountered.' raise ValueError(msg) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index f9353f9cc..29d0bfdd7 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -449,17 +449,18 @@ class XSdata(object): @total.setter def total(self, total): """This method sets the total cross section by performing a - deep-copy of the provided ndarray. + deep-copy of the provided ndarray. If the angular + representation is "isotropic" the shape of the input array + must be the number of energy groups. If the angular + representation is "angle" then the shape of the input + array must be the number of polar angles, number azimuthal + angles and energy groups. Parameters ---------- total: ndarray Array of group-wise cross sections to apply - Raises - ------ - ValueError - When invalid parameters are passed. """ # check we have a numpy list @@ -472,18 +473,20 @@ class XSdata(object): @absorption.setter def absorption(self, absorption): """This method sets the absorption cross section by performing a - deep-copy of the provided ndarray. + deep-copy of the provided ndarray. If the angular + representation is "isotropic" the shape of the input array + must be the number of energy groups. If the angular + representation is "angle" then the shape of the input + array must be the number of polar angles, number azimuthal + angles and energy groups. Parameters ---------- absorption: ndarray Array of group-wise cross sections to apply - Raises - ------ - ValueError - When invalid parameters are passed. """ + # check we have a numpy list check_type('absorption', absorption, np.ndarray, expected_iter_type=Real) @@ -495,18 +498,20 @@ class XSdata(object): @fission.setter def fission(self, fission): """This method sets the fission cross section by performing a - deep-copy of the provided ndarray. + deep-copy of the provided ndarray. If the angular + representation is "isotropic" the shape of the input array + must be the number of energy groups. If the angular + representation is "angle" then the shape of the input + array must be the number of polar angles, number azimuthal + angles and energy groups. Parameters ---------- fission: ndarray Array of group-wise cross sections to apply - Raises - ------ - ValueError - When invalid parameters are passed. """ + # check we have a numpy list check_type('fission', fission, np.ndarray, expected_iter_type=Real) @@ -521,18 +526,20 @@ class XSdata(object): @kappa_fission.setter def kappa_fission(self, kappa_fission): """This method sets the kappa_fission cross section by performing a - deep-copy of the provided ndarray. + deep-copy of the provided ndarray. If the angular + representation is "isotropic" the shape of the input array + must be the number of energy groups. If the angular + representation is "angle" then the shape of the input + array must be the number of polar angles, number azimuthal + angles and energy groups. Parameters ---------- kappa_fission: ndarray Array of group-wise cross sections to apply - Raises - ------ - ValueError - When invalid parameters are passed. """ + # check we have a numpy list check_type('kappa_fission', fission, np.ndarray, expected_iter_type=Real) @@ -548,18 +555,20 @@ class XSdata(object): @chi.setter def chi(self, chi): """This method sets the chi cross section by performing a - deep-copy of the provided ndarray. + deep-copy of the provided ndarray. If the angular + representation is "isotropic" the shape of the input array + must be the number of energy groups. If the angular + representation is "angle" then the shape of the input + array must be the number of polar angles, number azimuthal + angles and energy groups. Parameters ---------- chi: ndarray - Array of group-wise cross sections to apply + Array of group-wise chi values to apply - Raises - ------ - ValueError - When invalid parameters are passed. """ + if self._use_chi is not None: if not self._use_chi: msg = 'Providing chi when nu_fission already provided as a' \ @@ -580,40 +589,50 @@ class XSdata(object): def scatter(self, scatter): """This method sets the scattering matrix cross sections by performing a deep-copy of the provided ndarray. + If the angular representation is "isotropic" the shape of + the input array must be the number of scattering orders, the + number of energy groups, and the number of energy groups. If + the angular representation is "angle" then the shape of the input + array must be the number of polar angles, number azimuthal + angles, number of scattering orders, energy groups, and energy groups. Parameters ---------- scatter : ndarrays - Array of group-wise cross sections to apply + Array of cross sections to apply - Raises - ------ - ValueError - When invalid parameters are passed. """ + # check we have a numpy list check_type('scatter', scatter, np.ndarray, expected_iter_type=Real, max_depth=len(scatter.shape)) # Check the dimensions of the data - check_value('scatter shape', scatter.shape, self.matrix_shape) + check_value('scatter shape', scatter.shape, self.pn_matrix_shape) self._scatter = np.copy(scatter) @multiplicity.setter def multiplicity(self, multiplicity): """This method sets the scattering multiplicity matrix cross sections - by performing a deep-copy of the provided ndarray. + by performing a deep-copy of the provided ndarray. Multiplicity, + in OpenMC parlance, is a factor used to account for the production + of neutrons introduced by scattering multiplication reactions, i.e., + (n,xn) events. In this sense, the multiplication matrix is simply + defined as the ratio of the nu-scatter and scatter matrices. + If the angular representation is "isotropic" the shape of + the input array must be the number of energy groups and the number + of energy groups. If the angular representation is "angle" then the + shape of the input array must be the number of polar angles, + number azimuthal angles, number of scattering orders, energy groups, + and energy groups. Parameters ---------- multiplicity : ndarrays - Array of group-wise cross sections to apply + Array of scattering multiplications to apply - Raises - ------ - ValueError - When invalid parameters are passed. """ + # check we have a numpy list check_type('multiplicity', multiplicity, np.ndarray, expected_iter_type=Real, max_depth=len(multiplicity.shape)) @@ -626,18 +645,20 @@ class XSdata(object): @nu_fission.setter def nu_fission(self, nu_fission): """This method sets the nu_fission cross section by performing a - deep-copy of the provided ndarray. + deep-copy of the provided ndarray. If the angular + representation is "isotropic" the shape of the input array + must be the number of energy groups. If the angular + representation is "angle" then the shape of the input + array must be the number of polar angles, number azimuthal + angles and energy groups. Parameters ---------- nu_fission: ndarray Array of group-wise cross sections to apply - Raises - ------ - ValueError - When invalid parameters are passed. """ + # The NuFissionXS class does not have the capability to produce # a fission matrix and therefore if this path is pursued, we know # chi must be used. @@ -691,16 +712,10 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - Raises - ------ - ValueError - When invalid parameters are passed. """ - if not isinstance(total, (openmc.mgxs.TotalXS, - openmc.mgxs.TransportXS)): - msg = 'Method must be passed an openmc.mgxs.TotalXS or ' \ - 'openmc.mgxs.TransportXS object' - raise TypeError(msg) + + check_type('total', total, (openmc.mgxs.TotalXS, + openmc.mgxs.TransportXS)) # Make sure passed MGXS object contains correct group structure check_value('energy_groups', total.energy_groups, [self.energy_groups]) @@ -715,7 +730,8 @@ class XSdata(object): msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_absorption_mgxs(self, absorption, nuclide='total', xs_type='macro'): + def set_absorption_mgxs(self, absorption, nuclide='total', + xs_type='macro'): """This method allows for an openmc.mgxs.AbsorptionXS to be used to set the absorption cross section for this XSdata object. @@ -731,14 +747,9 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - Raises - ------ - ValueError - When invalid parameters are passed. """ - if not isinstance(absorption, openmc.mgxs.AbsorptionXS): - msg = 'Method must be passed an openmc.mgxs.AbsorptionXS' - raise TypeError(msg) + + check_type('absorption', absorption, openmc.mgxs.AbsorptionXS) # Make sure passed MGXS object contains correct group structure check_value('energy_groups', absorption.energy_groups, @@ -771,14 +782,9 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - Raises - ------ - ValueError - When invalid parameters are passed. """ - if not isinstance(fission, openmc.mgxs.FissionXS): - msg = 'Method must be passed an openmc.mgxs.FissionXS' - raise TypeError(msg) + + check_type('fission', fission, openmc.mgxs.FissionXS) # Make sure passed MGXS object contains correct group structure check_value('energy_groups', fission.energy_groups, @@ -795,7 +801,8 @@ class XSdata(object): msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_nu_fission_mgxs(self, nu_fission, nuclide='total', xs_type='macro'): + def set_nu_fission_mgxs(self, nu_fission, nuclide='total', + xs_type='macro'): """This method allows for an openmc.mgxs.NuFissionXS to be used to set the nu-fission cross section for this XSdata object. @@ -811,17 +818,12 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - Raises - ------ - ValueError - When invalid parameters are passed. """ + # The NuFissionXS class does not have the capability to produce # a fission matrix and therefore if this path is pursued, we know # chi must be used. - if not isinstance(nu_fission, openmc.mgxs.NuFissionXS): - msg = 'Method must be passed an openmc.mgxs.NuFissionXS' - raise TypeError(msg) + check_type('nu_fission', nu_fission, openmc.mgxs.NuFissionXS) # Make sure passed MGXS object contains correct group structure check_value('energy_groups', nu_fission.energy_groups, @@ -861,14 +863,9 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - Raises - ------ - ValueError - When invalid parameters are passed. """ - if not isinstance(k_fission, openmc.mgxs.KappaFissionXS): - msg = 'Method must be passed an openmc.mgxs.KappaFissionXS' - raise TypeError(msg) + + check_type('k_fission', k_fission, openmc.mgxs.KappaFissionXS) # Make sure passed MGXS object contains correct group structure check_value('energy_groups', k_fission.energy_groups, @@ -900,20 +897,15 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - Raises - ------ - ValueError - When invalid parameters are passed. """ + if self._use_chi is not None: if not self._use_chi: msg = 'Providing chi when nu_fission already provided as a ' \ 'matrix!' raise ValueError(msg) - if not isinstance(chi, openmc.mgxs.Chi): - msg = 'Method must be passed an openmc.mgxs.Chi' - raise TypeError(msg) + check_type('chi', chi, openmc.mgxs.Chi) # Make sure passed MGXS object contains correct group structure check_value('energy_groups', chi.energy_groups, [self.energy_groups]) @@ -949,14 +941,9 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - Raises - ------ - ValueError - When invalid parameters are passed. """ - if not isinstance(scatter, openmc.mgxs.ScatterMatrixXS): - msg = 'Method must be passed an openmc.mgxs.ScatterMatrixXS' - raise TypeError(msg) + + check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) # Make sure passed MGXS object contains correct group structure check_value('energy_groups', scatter.energy_groups, @@ -967,8 +954,9 @@ class XSdata(object): ['universe', 'cell', 'material']) if self._representation is 'isotropic': - self._scatter = scatter.get_xs(nuclides=nuclide, - xs_type=xs_type) + self._scatter = np.array([scatter.get_xs(nuclides=nuclide, + xs_type=xs_type)]) + elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -977,7 +965,11 @@ class XSdata(object): xs_type='macro'): """This method allows for an openmc.mgxs.NuScatterMatrixXS and openmc.mgxs.ScatterMatrixXS to be used to set the scattering - multiplicity for this XSdata object. + multiplicity for this XSdata object. Multiplicity, + in OpenMC parlance, is a factor used to account for the production + of neutrons introduced by scattering multiplication reactions, i.e., + (n,xn) events. In this sense, the multiplication matrix is simply + defined as the ratio of the nu-scatter and scatter matrices. Parameters ---------- @@ -994,17 +986,10 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - Raises - ------ - ValueError - When invalid parameters are passed. """ - if not isinstance(nuscatter, openmc.mgxs.NuScatterMatrixXS): - msg = 'Method must be passed an openmc.mgxs.ScatterMatrixXS' - raise TypeError(msg) - if not isinstance(scatter, openmc.mgxs.ScatterMatrixXS): - msg = 'Method must be passed an openmc.mgxs.ScatterMatrixXS' - raise TypeError(msg) + + check_type('nuscatter', nuscatter, openmc.mgxs.NuScatterMatrixXS) + check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) # Make sure passed MGXS object contains correct group structure check_value('energy_groups', nuscatter.energy_groups, From 17f4927e8b010a8b59606d0050767de0306ad640 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 12 May 2016 16:32:40 -0400 Subject: [PATCH 182/259] Added new NuTransportXS class --- openmc/mgxs/mgxs.py | 72 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index cc192855b..3194df2bc 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -22,6 +22,7 @@ if sys.version_info[0] >= 3: # Supported cross section types MGXS_TYPES = ['total', 'transport', + 'nu-transport', 'absorption', 'capture', 'fission', @@ -333,7 +334,7 @@ class MGXS(object): Parameters ---------- - mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization @@ -362,6 +363,8 @@ class MGXS(object): mgxs = TotalXS(domain, domain_type, energy_groups) elif mgxs_type == 'transport': mgxs = TransportXS(domain, domain_type, energy_groups) + elif mgxs_type == 'nu-transport': + mgxs = NuTransportXS(domain, domain_type, energy_groups) elif mgxs_type == 'absorption': mgxs = AbsorptionXS(domain, domain_type, energy_groups) elif mgxs_type == 'capture': @@ -1526,13 +1529,29 @@ class TotalXS(MGXS): class TransportXS(MGXS): - """A transport-corrected total multi-group cross section.""" + """A transport-corrected total multi-group cross section. + + Attributes + ---------- + use_nu : bool + Whether or not to account for scattering multiplicity in the + correction. If False, a "scatter-1" score is used (default); + if True, a "nu-scatter-1" score is used. This should be + set to False if using a ScatterMatrixXS and True if using + a NuScatterMatrixXS to preserve neutron balance. + + """ def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): super(TransportXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'transport' + self._use_nu = False + + @property + def use_nu(self): + return self._use_nu @property def tallies(self): @@ -1548,9 +1567,14 @@ class TransportXS(MGXS): if self._tallies is None: # Create a list of scores for each Tally to be created - scores = ['flux', 'total', 'scatter-1'] + scores = ['flux', 'total'] + if self.use_nu: + scores.append('nu-scatter-1') + else: + scores.append('scatter-1') + estimator = 'analog' - keys = scores + keys = ['flux', 'total', 'scatter-1'] # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges @@ -1574,6 +1598,46 @@ class TransportXS(MGXS): return self._rxn_rate_tally +class NuTransportXS(TransportXS): + """A transport-corrected total multi-group cross section which + accounts for neutron multiplicity in scattering reactions.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(NuTransportXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'nu-transport' + + @property + def tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs three analog tallies to compute the 'flux', + 'total' and 'nu-scatter-1' reaction rates in the spatial domain and + energy groups of interest. + + """ + + # Instantiate tallies if they do not exist + if self._tallies is None: + + # Create a list of scores for each Tally to be created + scores = ['flux', 'total', 'nu-scatter-1'] + keys = ['flux', 'total', 'scatter-1'] + estimator = 'analog' + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + energyout_filter = openmc.Filter('energyout', group_edges) + filters = [[energy_filter], [energy_filter], [energyout_filter]] + + # Initialize the Tallies + self._create_tallies(scores, filters, keys, estimator) + + return self._tallies + + class AbsorptionXS(MGXS): """An absorption multi-group cross section.""" From 9e843de1bd7bc00ce3c5edd11bc5523761c8e385 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 12 May 2016 20:13:27 -0400 Subject: [PATCH 183/259] Partial refactor of MGXS subclasses --- openmc/mgxs/mgxs.py | 445 ++++++++++---------------------------------- 1 file changed, 95 insertions(+), 350 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 3194df2bc..89f12d5ed 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -215,10 +215,50 @@ class MGXS(object): @property def tallies(self): + """Construct the OpenMC tallies needed to compute the cross section.""" + + # Instantiate tallies if they do not exist + if self._tallies is None: + + # Initialize a collection of Tallies + self._tallies = OrderedDict() + + # Create a domain Filter object + domain_filter = openmc.Filter(self.domain_type, self.domain.id) + + # Create each Tally needed to compute the multi group cross section + for score, key, filters in zip(self.scores, self.keys, self.filters): + self.tallies[key] = openmc.Tally(name=self.name) + self.tallies[key].scores = [score] + self.tallies[key].estimator = self.estimator + self.tallies[key].filters = [domain_filter] + + # If a tally trigger was specified, add it to each tally + if self.tally_trigger: + trigger_clone = copy.deepcopy(self.tally_trigger) + trigger_clone.scores = [score] + self.tallies[key].triggers.append(trigger_clone) + + # Add non-domain specific Filters (e.g., 'energy') to the Tally + for add_filter in filters: + self.tallies[key].filters.append(add_filter) + + # If this is a by-nuclide cross-section, add nuclides to Tally + if self.by_nuclide and score != 'flux': + all_nuclides = self.get_all_nuclides() + for nuclide in all_nuclides: + self.tallies[key].nuclides.append(nuclide) + else: + self.tallies[key].nuclides.append('total') + return self._tallies @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 @@ -263,6 +303,24 @@ class MGXS(object): def derived(self): return self._derived + @property + def scores(self): + return ['flux', self.rxn_type] + + @property + def filters(self): + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + return [[energy_filter] * len(self.scores)] + + @property + def tally_keys(self): + return self.scores + + @property + def estimator(self): + return 'tracklength' + @name.setter def name(self, name): cv.check_type('name', name, basestring) @@ -504,63 +562,6 @@ class MGXS(object): return densities - def _create_tallies(self, scores, all_filters, keys, estimator): - """Instantiates tallies needed to compute the multi-group cross section. - - This is a helper method for MGXS subclasses to create tallies - for input file generation. The tallies are stored in the tallies dict. - This method is called by each subclass' tallies property getter - which define the parameters given to this parent class method. - - Parameters - ---------- - scores : Iterable of str - Scores for each tally - all_filters : Iterable of tuple of openmc.Filter - Tuples of non-spatial domain filters for each tally - keys : Iterable of str - Key string used to store each tally in the tallies dictionary - estimator : {'analog', 'tracklength'} - Type of estimator to use for each tally - - """ - - cv.check_iterable_type('scores', scores, basestring) - cv.check_length('scores', scores, len(keys)) - cv.check_iterable_type('filters', all_filters, openmc.Filter, 1, 2) - cv.check_type('keys', keys, Iterable, basestring) - cv.check_value('estimator', estimator, ['analog', 'tracklength']) - - self._tallies = OrderedDict() - - # Create a domain Filter object - domain_filter = openmc.Filter(self.domain_type, self.domain.id) - - # Create each Tally needed to compute the multi group cross section - for score, key, filters in zip(scores, keys, all_filters): - self.tallies[key] = openmc.Tally(name=self.name) - self.tallies[key].scores = [score] - self.tallies[key].estimator = estimator - self.tallies[key].filters = [domain_filter] - - # If a tally trigger was specified, add it to each tally - if self.tally_trigger: - trigger_clone = copy.deepcopy(self.tally_trigger) - trigger_clone.scores = [score] - self.tallies[key].triggers.append(trigger_clone) - - # Add all non-domain specific Filters (e.g., 'energy') to the Tally - for add_filter in filters: - self.tallies[key].filters.append(add_filter) - - # If this is a by-nuclide cross-section, add all nuclides to Tally - if self.by_nuclide and score != 'flux': - all_nuclides = self.get_all_nuclides() - for nuclide in all_nuclides: - self.tallies[key].nuclides.append(nuclide) - else: - self.tallies[key].nuclides.append('total') - def _compute_xs(self): """Performs generic cleanup after a subclass' uses tally arithmetic to compute a multi-group cross section as a derived tally. @@ -1492,100 +1493,30 @@ class TotalXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'total' - @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. - - This method constructs two tracklength tallies to compute the 'flux' - and 'total' reaction rates in the spatial domain and energy groups - of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['flux', 'total'] - estimator = 'tracklength' - keys = scores - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - filters = [[energy_filter], [energy_filter]] - - # Initialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None : - self._rxn_rate_tally = self.tallies['total'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally - class TransportXS(MGXS): - """A transport-corrected total multi-group cross section. - - Attributes - ---------- - use_nu : bool - Whether or not to account for scattering multiplicity in the - correction. If False, a "scatter-1" score is used (default); - if True, a "nu-scatter-1" score is used. This should be - set to False if using a ScatterMatrixXS and True if using - a NuScatterMatrixXS to preserve neutron balance. - - """ + """A transport-corrected total multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): super(TransportXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'transport' - self._use_nu = False @property - def use_nu(self): - return self._use_nu + def scores(self): + return ['flux', 'total', 'scatter-1'] @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. + def filters(self): + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + energyout_filter = openmc.Filter('energyout', group_edges) + return [[energy_filter], [energy_filter], [energyout_filter]] - This method constructs three analog tallies to compute the 'flux', - 'total' and 'scatter-1' reaction rates in the spatial domain and - energy groups of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['flux', 'total'] - if self.use_nu: - scores.append('nu-scatter-1') - else: - scores.append('scatter-1') - - estimator = 'analog' - keys = ['flux', 'total', 'scatter-1'] - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - energyout_filter = openmc.Filter('energyout', group_edges) - filters = [[energy_filter], [energy_filter], [energyout_filter]] - - # Initialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies + @property + def estimator(self): + return 'analog' @property def rxn_rate_tally(self): @@ -1609,33 +1540,12 @@ class NuTransportXS(TransportXS): self._rxn_type = 'nu-transport' @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. + def scores(self): + return ['flux', 'total', 'nu-scatter-1'] - This method constructs three analog tallies to compute the 'flux', - 'total' and 'nu-scatter-1' reaction rates in the spatial domain and - energy groups of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['flux', 'total', 'nu-scatter-1'] - keys = ['flux', 'total', 'scatter-1'] - estimator = 'analog' - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - energyout_filter = openmc.Filter('energyout', group_edges) - filters = [[energy_filter], [energy_filter], [energyout_filter]] - - # Initialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies + @property + def keys(self): + return ['flux', 'total', 'scatter-1'] class AbsorptionXS(MGXS): @@ -1647,41 +1557,6 @@ class AbsorptionXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'absorption' - @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. - - This method constructs two tracklength tallies to compute the 'flux' - and 'absorption' reaction rates in the spatial domain and energy - groups of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['flux', 'absorption'] - estimator = 'tracklength' - keys = scores - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - filters = [[energy_filter], [energy_filter]] - - # Initialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['absorption'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally - class CaptureXS(MGXS): """A capture multi-group cross section. @@ -1700,32 +1575,8 @@ class CaptureXS(MGXS): self._rxn_type = 'capture' @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. - - This method constructs two tracklength tallies to compute the 'flux' - and 'capture' reaction rates in the spatial domain and energy - groups of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['flux', 'absorption', 'fission'] - estimator = 'tracklength' - keys = scores - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - filters = [[energy_filter], [energy_filter], [energy_filter]] - - # Initialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies + def scores(self): + return ['flux', 'absorption', 'fission'] @property def rxn_rate_tally(self): @@ -1735,80 +1586,36 @@ class CaptureXS(MGXS): self._rxn_rate_tally.sparse = self.sparse return self._rxn_rate_tally -class FissionXSBase(MGXS): - """A fission production multi-group cross section base class - for NuFission and KappaFission - """ - # This is an abstract class which cannot be instantiated - __metaclass__ = abc.ABCMeta - - def __init__(self, rxn_type, domain=None, domain_type=None, - groups=None, by_nuclide=False, name=''): - super(FissionXSBase, self).__init__(domain, domain_type, - groups, by_nuclide, name) - self._rxn_type = rxn_type - - @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. - - This method constructs two tracklength tallies to compute the 'flux' - and 'rxn_type' reaction rates in the spatial domain and energy - groups of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['flux', self._rxn_type] - estimator = 'tracklength' - keys = scores - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - filters = [[energy_filter], [energy_filter]] - - # Initialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies - - @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 - - -class FissionXS(FissionXSBase): +class FissionXS(MGXS): """A fission multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(FissionXS, self).__init__('fission', domain, domain_type, + super(FissionXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + self._rxn_type = 'fission' -class NuFissionXS(FissionXSBase): +class NuFissionXS(MGXS): """A fission production multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(NuFissionXS, self).__init__('nu-fission', domain, domain_type, + super(NuFissionXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + self._rxn_type = 'nu-fission' -class KappaFissionXS(FissionXSBase): + +class KappaFissionXS(MGXS): """A recoverable fission energy production rate multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(KappaFissionXS, self).__init__('kappa-fission', domain, domain_type, + super(KappaFissionXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + self._rxn_type = 'kappa-fission' + class ScatterXS(MGXS): """A scatter multi-group cross section.""" @@ -1819,41 +1626,6 @@ class ScatterXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'scatter' - @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. - - This method constructs two tracklength tallies to compute the 'flux' - and 'scatter' reaction rates in the spatial domain and energy - groups of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['flux', 'scatter'] - estimator = 'tracklength' - keys = scores - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - filters = [[energy_filter], [energy_filter]] - - # Intialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['scatter'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally - class NuScatterXS(MGXS): """A nu-scatter multi-group cross section.""" @@ -1864,41 +1636,6 @@ class NuScatterXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'nu-scatter' - @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. - - This method constructs two analog tallies to compute the 'flux' - and 'nu-scatter' reaction rates in the spatial domain and energy - groups of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['flux', 'nu-scatter'] - estimator = 'analog' - keys = scores - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - filters = [[energy_filter], [energy_filter]] - - # Initialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['nu-scatter'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally - class ScatterMatrixXS(MGXS): """A scattering matrix multi-group cross section for one or more Legendre @@ -1935,6 +1672,14 @@ class ScatterMatrixXS(MGXS): def legendre_order(self): return self._legendre_order + @property + def scores(self): + return ['flux', 'total', 'nu-scatter-1'] + + @property + def keys(self): + return ['flux', 'total', 'scatter-1'] + @property def tallies(self): """Construct the OpenMC tallies needed to compute this cross section. From 19feb55e6d5e8350398627f39fb55ee8e2e63011 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 12 May 2016 21:08:55 -0400 Subject: [PATCH 184/259] Major refactoring of MGXS subclasses to eliminate tallies properties --- .../pythonapi/examples/mgxs-part-i.ipynb | 75 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 903 +++++++++--------- .../pythonapi/examples/mgxs-part-iii.ipynb | 280 +++--- openmc/mgxs/mgxs.py | 176 ++-- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- .../inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 4 +- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- 13 files changed, 704 insertions(+), 750 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index e4c976718..2f2a80177 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -372,6 +372,7 @@ "\n", "* `TotalXS`\n", "* `TransportXS`\n", + "* `NuTransportXS`\n", "* `AbsorptionXS`\n", "* `CaptureXS`\n", "* `FissionXS`\n", @@ -409,7 +410,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -418,25 +419,27 @@ "data": { "text/plain": [ "OrderedDict([('flux', Tally\n", - " \tID =\t10000\n", - " \tName =\t\n", - " \tFilters =\t\n", - " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", - " \tNuclides =\ttotal \n", - " \tScores =\t['flux']\n", - " \tEstimator =\ttracklength), ('absorption', Tally\n", - " \tID =\t10001\n", - " \tName =\t\n", - " \tFilters =\t\n", - " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", - " \tNuclides =\ttotal \n", - " \tScores =\t['absorption']\n", - " \tEstimator =\ttracklength)])" + "\tID =\t10012\n", + "\tName =\t\n", + "\tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'flux']\n", + "\tEstimator =\ttracklength\n", + "), ('absorption', Tally\n", + "\tID =\t10013\n", + "\tName =\t\n", + "\tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'absorption']\n", + "\tEstimator =\ttracklength\n", + ")])" ] }, - "execution_count": 13, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -510,8 +513,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 502482dcf630ee6e290c15b8535e6e850a351c88\n", - " Date/Time: 2016-05-10 20:52:19\n", + " Git SHA1: ae588276014a905ecc6e0967bf08288ecec5b550\n", + " Date/Time: 2016-05-12 20:41:27\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -597,20 +600,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.3200E-01 seconds\n", - " Reading cross sections = 1.3300E-01 seconds\n", - " Total time in simulation = 2.3438E+01 seconds\n", - " Time in transport only = 2.3419E+01 seconds\n", - " Time in inactive batches = 2.9490E+00 seconds\n", - " Time in active batches = 2.0489E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for initialization = 4.7500E-01 seconds\n", + " Reading cross sections = 9.7000E-02 seconds\n", + " Total time in simulation = 1.8074E+01 seconds\n", + " Time in transport only = 1.8055E+01 seconds\n", + " Time in inactive batches = 2.1180E+00 seconds\n", + " Time in active batches = 1.5956E+01 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 4.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.3985E+01 seconds\n", - " Calculation Rate (inactive) = 8477.45 neutrons/second\n", - " Calculation Rate (active) = 4880.67 neutrons/second\n", + " Total time elapsed = 1.8559E+01 seconds\n", + " Calculation Rate (inactive) = 11803.6 neutrons/second\n", + " Calculation Rate (active) = 6267.23 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1121,7 +1124,7 @@ " 6.250000e-07\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", - " 1\n", + " 1.0\n", " 0.007763\n", " \n", " \n", @@ -1131,7 +1134,7 @@ " 2.000000e+01\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", - " 1\n", + " 1.0\n", " 0.003739\n", " \n", " \n", @@ -1178,7 +1181,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 7b313da74..ca07519e5 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -445,8 +445,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 7b20f8ad4aa9e6f02f8b1d51e002f9f56ba7aa15\n", - " Date/Time: 2016-05-09 13:34:05\n", + " Git SHA1: ae588276014a905ecc6e0967bf08288ecec5b550\n", + " Date/Time: 2016-05-12 21:00:03\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -523,7 +523,7 @@ " 48/1 1.21610 1.22612 +/- 0.00251\n", " 49/1 1.22199 1.22602 +/- 0.00245\n", " 50/1 1.20860 1.22558 +/- 0.00243\n", - " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10050\n", + " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10051\n", " The estimated number of batches is 73\n", " Creating state point statepoint.050.h5...\n", " 51/1 1.21850 1.22541 +/- 0.00237\n", @@ -549,7 +549,7 @@ " 71/1 1.19720 1.22444 +/- 0.00195\n", " 72/1 1.23770 1.22465 +/- 0.00193\n", " 73/1 1.23894 1.22488 +/- 0.00191\n", - " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10050\n", + " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10051\n", " The estimated number of batches is 74\n", " 74/1 1.22437 1.22487 +/- 0.00188\n", " Triggers satisfied for batch 74\n", @@ -562,20 +562,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.8900E-01 seconds\n", - " Reading cross sections = 8.3000E-02 seconds\n", - " Total time in simulation = 2.2066E+02 seconds\n", - " Time in transport only = 2.2061E+02 seconds\n", - " Time in inactive batches = 1.5872E+01 seconds\n", - " Time in active batches = 2.0478E+02 seconds\n", - " Time synchronizing fission bank = 1.9000E-02 seconds\n", - " Sampling source sites = 1.2000E-02 seconds\n", - " SEND/RECV source sites = 6.0000E-03 seconds\n", - " Time accumulating tallies = 3.0000E-03 seconds\n", - " Total time for finalization = 1.1000E-02 seconds\n", - " Total time elapsed = 2.2111E+02 seconds\n", - " Calculation Rate (inactive) = 6300.40 neutrons/second\n", - " Calculation Rate (active) = 1953.28 neutrons/second\n", + " Total time for initialization = 4.1000E-01 seconds\n", + " Reading cross sections = 8.6000E-02 seconds\n", + " Total time in simulation = 2.2903E+02 seconds\n", + " Time in transport only = 2.2897E+02 seconds\n", + " Time in inactive batches = 1.4619E+01 seconds\n", + " Time in active batches = 2.1441E+02 seconds\n", + " Time synchronizing fission bank = 2.5000E-02 seconds\n", + " Sampling source sites = 1.6000E-02 seconds\n", + " SEND/RECV source sites = 8.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 1.2000E-02 seconds\n", + " Total time elapsed = 2.2951E+02 seconds\n", + " Calculation Rate (inactive) = 6840.41 neutrons/second\n", + " Calculation Rate (active) = 1865.57 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -786,9 +786,10 @@ " group in\n", " group out\n", " nuclide\n", - " score\n", + " moment\n", " mean\n", " std. dev.\n", + " moment\n", " \n", " \n", " \n", @@ -798,9 +799,10 @@ " 1\n", " 1\n", " H-1\n", - " ((nu-scatter-0 - scatter-1) / flux)\n", + " P0\n", " 0.234115\n", " 0.003568\n", + " P0\n", " \n", " \n", " 127\n", @@ -808,9 +810,10 @@ " 1\n", " 1\n", " O-16\n", - " ((nu-scatter-0 - scatter-1) / flux)\n", + " P0\n", " 1.563707\n", " 0.005953\n", + " P0\n", " \n", " \n", " 124\n", @@ -818,9 +821,10 @@ " 1\n", " 2\n", " H-1\n", - " ((nu-scatter-0 - scatter-1) / flux)\n", + " P0\n", " 1.594129\n", " 0.002369\n", + " P0\n", " \n", " \n", " 125\n", @@ -828,9 +832,10 @@ " 1\n", " 2\n", " O-16\n", - " ((nu-scatter-0 - scatter-1) / flux)\n", + " P0\n", " 0.285761\n", " 0.001676\n", + " P0\n", " \n", " \n", " 122\n", @@ -838,9 +843,10 @@ " 1\n", " 3\n", " H-1\n", - " ((nu-scatter-0 - scatter-1) / flux)\n", + " P0\n", " 0.011089\n", " 0.000248\n", + " P0\n", " \n", " \n", " 123\n", @@ -848,9 +854,10 @@ " 1\n", " 3\n", " O-16\n", - " ((nu-scatter-0 - scatter-1) / flux)\n", + " P0\n", " 0.000000\n", " 0.000000\n", + " P0\n", " \n", " \n", " 120\n", @@ -858,9 +865,10 @@ " 1\n", " 4\n", " H-1\n", - " ((nu-scatter-0 - scatter-1) / flux)\n", + " P0\n", " 0.000000\n", " 0.000000\n", + " P0\n", " \n", " \n", " 121\n", @@ -868,9 +876,10 @@ " 1\n", " 4\n", " O-16\n", - " ((nu-scatter-0 - scatter-1) / flux)\n", + " P0\n", " 0.000000\n", " 0.000000\n", + " P0\n", " \n", " \n", " 118\n", @@ -878,9 +887,10 @@ " 1\n", " 5\n", " H-1\n", - " ((nu-scatter-0 - scatter-1) / flux)\n", + " P0\n", " 0.000000\n", " 0.000000\n", + " P0\n", " \n", " \n", " 119\n", @@ -888,38 +898,27 @@ " 1\n", " 5\n", " O-16\n", - " ((nu-scatter-0 - scatter-1) / flux)\n", + " P0\n", " 0.000000\n", " 0.000000\n", + " P0\n", " \n", " \n", "\n", "
" ], "text/plain": [ - " cell group in group out nuclide score \\\n", - "126 10002 1 1 H-1 ((nu-scatter-0 - scatter-1) / flux) \n", - "127 10002 1 1 O-16 ((nu-scatter-0 - scatter-1) / flux) \n", - "124 10002 1 2 H-1 ((nu-scatter-0 - scatter-1) / flux) \n", - "125 10002 1 2 O-16 ((nu-scatter-0 - scatter-1) / flux) \n", - "122 10002 1 3 H-1 ((nu-scatter-0 - scatter-1) / flux) \n", - "123 10002 1 3 O-16 ((nu-scatter-0 - scatter-1) / flux) \n", - "120 10002 1 4 H-1 ((nu-scatter-0 - scatter-1) / flux) \n", - "121 10002 1 4 O-16 ((nu-scatter-0 - scatter-1) / flux) \n", - "118 10002 1 5 H-1 ((nu-scatter-0 - scatter-1) / flux) \n", - "119 10002 1 5 O-16 ((nu-scatter-0 - scatter-1) / flux) \n", - "\n", - " mean std. dev. \n", - "126 0.234115 0.003568 \n", - "127 1.563707 0.005953 \n", - "124 1.594129 0.002369 \n", - "125 0.285761 0.001676 \n", - "122 0.011089 0.000248 \n", - "123 0.000000 0.000000 \n", - "120 0.000000 0.000000 \n", - "121 0.000000 0.000000 \n", - "118 0.000000 0.000000 \n", - "119 0.000000 0.000000 " + " cell group in group out nuclide moment mean std. dev. moment\n", + "126 10002 1 1 H-1 P0 0.234115 0.003568 P0\n", + "127 10002 1 1 O-16 P0 1.563707 0.005953 P0\n", + "124 10002 1 2 H-1 P0 1.594129 0.002369 P0\n", + "125 10002 1 2 O-16 P0 0.285761 0.001676 P0\n", + "122 10002 1 3 H-1 P0 0.011089 0.000248 P0\n", + "123 10002 1 3 O-16 P0 0.000000 0.000000 P0\n", + "120 10002 1 4 H-1 P0 0.000000 0.000000 P0\n", + "121 10002 1 4 O-16 P0 0.000000 0.000000 P0\n", + "118 10002 1 5 H-1 P0 0.000000 0.000000 P0\n", + "119 10002 1 5 O-16 P0 0.000000 0.000000 P0" ] }, "execution_count": 19, @@ -1019,7 +1018,6 @@ " cell\n", " group in\n", " nuclide\n", - " score\n", " mean\n", " std. dev.\n", " \n", @@ -1030,7 +1028,6 @@ " 10000\n", " 1\n", " U-235\n", - " ((total - scatter-1) / flux)\n", " 20.611692\n", " 0.104237\n", " \n", @@ -1039,7 +1036,6 @@ " 10000\n", " 1\n", " U-238\n", - " ((total - scatter-1) / flux)\n", " 9.585358\n", " 0.013808\n", " \n", @@ -1048,7 +1044,6 @@ " 10000\n", " 1\n", " O-16\n", - " ((total - scatter-1) / flux)\n", " 3.164190\n", " 0.005049\n", " \n", @@ -1057,7 +1052,6 @@ " 10000\n", " 2\n", " U-235\n", - " ((total - scatter-1) / flux)\n", " 485.413426\n", " 0.996410\n", " \n", @@ -1066,7 +1060,6 @@ " 10000\n", " 2\n", " U-238\n", - " ((total - scatter-1) / flux)\n", " 11.190386\n", " 0.028731\n", " \n", @@ -1075,7 +1068,6 @@ " 10000\n", " 2\n", " O-16\n", - " ((total - scatter-1) / flux)\n", " 3.794859\n", " 0.011139\n", " \n", @@ -1084,13 +1076,13 @@ "
" ], "text/plain": [ - " cell group in nuclide score mean std. dev.\n", - "3 10000 1 U-235 ((total - scatter-1) / flux) 2.06e+01 1.04e-01\n", - "4 10000 1 U-238 ((total - scatter-1) / flux) 9.59e+00 1.38e-02\n", - "5 10000 1 O-16 ((total - scatter-1) / flux) 3.16e+00 5.05e-03\n", - "0 10000 2 U-235 ((total - scatter-1) / flux) 4.85e+02 9.96e-01\n", - "1 10000 2 U-238 ((total - scatter-1) / flux) 1.12e+01 2.87e-02\n", - "2 10000 2 O-16 ((total - scatter-1) / flux) 3.79e+00 1.11e-02" + " cell group in nuclide mean std. dev.\n", + "3 10000 1 U-235 20.611692 0.104237\n", + "4 10000 1 U-238 9.585358 0.013808\n", + "5 10000 1 O-16 3.164190 0.005049\n", + "0 10000 2 U-235 485.413426 0.996410\n", + "1 10000 2 U-238 11.190386 0.028731\n", + "2 10000 2 O-16 3.794859 0.011139" ] }, "execution_count": 22, @@ -1202,161 +1194,161 @@ "[ NORMAL ] Iteration 5:\tk_eff = 0.625810\tres = 2.417E-02\n", "[ NORMAL ] Iteration 6:\tk_eff = 0.606678\tres = 2.675E-02\n", "[ NORMAL ] Iteration 7:\tk_eff = 0.587485\tres = 3.057E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.569029\tres = 3.164E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.569028\tres = 3.164E-02\n", "[ NORMAL ] Iteration 9:\tk_eff = 0.551707\tres = 3.142E-02\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.536035\tres = 3.044E-02\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.522275\tres = 2.841E-02\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.510610\tres = 2.567E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.493832\tres = 1.861E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.488781\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.485924\tres = 1.023E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.485211\tres = 5.846E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.467E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.489905\tres = 2.802E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.495105\tres = 6.853E-03\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.502056\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.510630\tres = 1.404E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.520696\tres = 1.708E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.532120\tres = 1.971E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.544768\tres = 2.194E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.558505\tres = 2.377E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.573200\tres = 2.522E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.588723\tres = 2.631E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.604951\tres = 2.708E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.621765\tres = 2.756E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.639053\tres = 2.779E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.780E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.674632\tres = 2.763E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.692730\tres = 2.729E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.710919\tres = 2.683E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.729118\tres = 2.626E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.747258\tres = 2.560E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.765273\tres = 2.488E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.783104\tres = 2.411E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.800701\tres = 2.330E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.818017\tres = 2.247E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.835012\tres = 2.163E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.851651\tres = 2.078E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.867906\tres = 1.993E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883750\tres = 1.909E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.899164\tres = 1.826E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914131\tres = 1.744E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.665E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.942676\tres = 1.587E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.956239\tres = 1.512E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.969323\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.981927\tres = 1.368E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.994054\tres = 1.300E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.005705\tres = 1.235E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.016886\tres = 1.172E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.027604\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037866\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.047682\tres = 9.987E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.057062\tres = 9.458E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.066016\tres = 8.953E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.074556\tres = 8.471E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.082693\tres = 8.011E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.090442\tres = 7.573E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.097813\tres = 7.156E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.104820\tres = 6.760E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.111477\tres = 6.383E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.117795\tres = 6.025E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.685E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.129470\tres = 5.362E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.134853\tres = 5.056E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139950\tres = 4.766E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.144772\tres = 4.491E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.149333\tres = 4.230E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.153643\tres = 3.984E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.157716\tres = 3.751E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.161561\tres = 3.530E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.321E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.168613\tres = 3.124E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.171841\tres = 2.938E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.174883\tres = 2.762E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.177749\tres = 2.596E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.180447\tres = 2.439E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.182988\tres = 2.291E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.185378\tres = 2.152E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.187627\tres = 2.021E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.189741\tres = 1.897E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.191728\tres = 1.780E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.193595\tres = 1.670E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.195349\tres = 1.567E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.196996\tres = 1.469E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.198543\tres = 1.378E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.292E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.201355\tres = 1.211E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.134E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.203829\tres = 1.063E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.956E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.324E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.206989\tres = 8.730E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.173E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.208777\tres = 7.650E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.209587\tres = 7.159E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.698E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.211054\tres = 6.266E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.211718\tres = 5.861E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.212339\tres = 5.481E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.212920\tres = 5.125E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.213463\tres = 4.792E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.213971\tres = 4.479E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.214446\tres = 4.186E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.214890\tres = 3.912E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.215305\tres = 3.655E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.215692\tres = 3.414E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.216055\tres = 3.189E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.979E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.782E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.217004\tres = 2.597E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.217279\tres = 2.425E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.217536\tres = 2.263E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.217776\tres = 2.113E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.218000\tres = 1.971E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.218209\tres = 1.840E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.218404\tres = 1.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.601E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.494E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.393E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.219062\tres = 1.299E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.212E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.130E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.219448\tres = 1.054E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.822E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.156E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.534E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.954E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.219936\tres = 7.413E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.908E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.220087\tres = 6.437E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.220156\tres = 5.997E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.220219\tres = 5.587E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.220278\tres = 5.205E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.220333\tres = 4.848E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.220385\tres = 4.516E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.220433\tres = 4.206E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.220477\tres = 3.917E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.220518\tres = 3.648E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.220557\tres = 3.397E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.220593\tres = 3.163E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.220627\tres = 2.945E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.220658\tres = 2.742E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.220687\tres = 2.552E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.220714\tres = 2.376E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.220739\tres = 2.212E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.220762\tres = 2.059E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.220784\tres = 1.916E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.220804\tres = 1.783E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.220823\tres = 1.660E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.220841\tres = 1.545E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.437E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.338E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.245E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.158E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.077E-05\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.002E-05\n" + "[ NORMAL ] Iteration 10:\tk_eff = 0.536034\tres = 3.044E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.522274\tres = 2.841E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.510609\tres = 2.567E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501105\tres = 2.234E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.493831\tres = 1.861E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.488780\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.485922\tres = 1.023E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485209\tres = 5.846E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.486569\tres = 1.467E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.489903\tres = 2.801E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495102\tres = 6.853E-03\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.502053\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.510627\tres = 1.404E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.520692\tres = 1.708E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532116\tres = 1.971E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.544763\tres = 2.194E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558500\tres = 2.377E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.573195\tres = 2.522E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.588717\tres = 2.631E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.604945\tres = 2.708E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.621759\tres = 2.756E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639046\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656701\tres = 2.780E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.674624\tres = 2.763E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.692722\tres = 2.729E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.710909\tres = 2.683E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729109\tres = 2.626E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.747248\tres = 2.560E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.765262\tres = 2.488E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783093\tres = 2.411E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.800689\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.818004\tres = 2.247E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.834999\tres = 2.163E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.851638\tres = 2.078E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.867891\tres = 1.993E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883735\tres = 1.909E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.899148\tres = 1.826E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914114\tres = 1.744E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928621\tres = 1.664E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.942659\tres = 1.587E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.956221\tres = 1.512E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.969305\tres = 1.439E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.981909\tres = 1.368E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.994034\tres = 1.300E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.005685\tres = 1.235E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.016866\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.027583\tres = 1.112E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037845\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.047661\tres = 9.986E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057040\tres = 9.458E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.065993\tres = 8.952E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.074533\tres = 8.470E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082670\tres = 8.011E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.090418\tres = 7.573E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.097789\tres = 7.156E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104796\tres = 6.760E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.111452\tres = 6.383E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.117770\tres = 6.025E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123764\tres = 5.685E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129445\tres = 5.362E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.134828\tres = 5.056E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139924\tres = 4.766E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.144746\tres = 4.491E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.149306\tres = 4.230E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153617\tres = 3.984E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.157689\tres = 3.750E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.161534\tres = 3.530E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165163\tres = 3.321E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.168586\tres = 3.124E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.171813\tres = 2.938E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.174855\tres = 2.762E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.177721\tres = 2.596E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.180419\tres = 2.439E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.182960\tres = 2.291E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.185350\tres = 2.152E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.187598\tres = 2.021E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.189712\tres = 1.897E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191699\tres = 1.780E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.193567\tres = 1.670E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195320\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.196967\tres = 1.469E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.198513\tres = 1.378E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.199964\tres = 1.292E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.201326\tres = 1.211E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.202602\tres = 1.134E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203800\tres = 1.063E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.204922\tres = 9.955E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.205974\tres = 9.323E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.206959\tres = 8.730E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207883\tres = 8.173E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208747\tres = 7.649E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209557\tres = 7.159E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210315\tres = 6.698E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211024\tres = 6.266E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211688\tres = 5.861E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212309\tres = 5.481E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212890\tres = 5.125E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213433\tres = 4.791E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.213941\tres = 4.479E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214416\tres = 4.186E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214860\tres = 3.912E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215275\tres = 3.655E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215662\tres = 3.414E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216024\tres = 3.189E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216362\tres = 2.979E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216678\tres = 2.781E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.216973\tres = 2.597E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217249\tres = 2.425E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217506\tres = 2.263E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217746\tres = 2.112E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.217970\tres = 1.971E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218179\tres = 1.840E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218374\tres = 1.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218556\tres = 1.601E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218726\tres = 1.494E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218884\tres = 1.393E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219032\tres = 1.299E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219170\tres = 1.212E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219298\tres = 1.130E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219418\tres = 1.053E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219529\tres = 9.821E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219633\tres = 9.155E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219730\tres = 8.534E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219821\tres = 7.954E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.219905\tres = 7.412E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.219984\tres = 6.907E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220057\tres = 6.436E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220125\tres = 5.997E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220188\tres = 5.587E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220248\tres = 5.205E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220303\tres = 4.848E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220354\tres = 4.516E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220402\tres = 4.206E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220446\tres = 3.917E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220488\tres = 3.648E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220526\tres = 3.397E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220562\tres = 3.163E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220596\tres = 2.945E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220627\tres = 2.742E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220656\tres = 2.552E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220683\tres = 2.376E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220708\tres = 2.212E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220732\tres = 2.059E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220753\tres = 1.916E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220774\tres = 1.783E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220792\tres = 1.660E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220810\tres = 1.545E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220826\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220841\tres = 1.337E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220856\tres = 1.244E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220869\tres = 1.158E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220881\tres = 1.077E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220892\tres = 1.002E-05\n" ] } ], @@ -1389,8 +1381,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.220923\n", - "bias [pcm]: -255.0\n" + "openmoc keff = 1.220892\n", + "bias [pcm]: -258.1\n" ] } ], @@ -1467,235 +1459,235 @@ "[ NORMAL ] Computing the eigenvalue...\n", "[ NORMAL ] Iteration 0:\tk_eff = 0.495816\tres = 0.000E+00\n", "[ NORMAL ] Iteration 1:\tk_eff = 0.557477\tres = 5.042E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.518301\tres = 1.244E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.509212\tres = 7.027E-02\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.518300\tres = 1.244E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.509211\tres = 7.027E-02\n", "[ NORMAL ] Iteration 4:\tk_eff = 0.496489\tres = 1.754E-02\n", "[ NORMAL ] Iteration 5:\tk_eff = 0.488581\tres = 2.498E-02\n", "[ NORMAL ] Iteration 6:\tk_eff = 0.482897\tres = 1.593E-02\n", "[ NORMAL ] Iteration 7:\tk_eff = 0.479775\tres = 1.163E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.464E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.479872\tres = 1.960E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.482685\tres = 2.166E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.487085\tres = 5.861E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.492901\tres = 9.116E-03\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.499973\tres = 1.194E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.508155\tres = 1.435E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.517314\tres = 1.637E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.527327\tres = 1.802E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.538081\tres = 1.936E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.549475\tres = 2.039E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.561413\tres = 2.117E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.573810\tres = 2.173E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.586589\tres = 2.208E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.599678\tres = 2.227E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.613012\tres = 2.231E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.224E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.640186\tres = 2.206E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.653925\tres = 2.179E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.667706\tres = 2.146E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.681489\tres = 2.107E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.695240\tres = 2.064E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.708927\tres = 2.018E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.722522\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.736000\tres = 1.918E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.749339\tres = 1.865E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.762519\tres = 1.812E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.775522\tres = 1.759E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.788335\tres = 1.705E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800944\tres = 1.652E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.813338\tres = 1.599E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.825507\tres = 1.547E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.837444\tres = 1.496E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.849142\tres = 1.446E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.860595\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871801\tres = 1.349E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.882755\tres = 1.302E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.893455\tres = 1.256E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.903901\tres = 1.212E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914091\tres = 1.169E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.924027\tres = 1.127E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.933708\tres = 1.087E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.943137\tres = 1.048E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.952314\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.961243\tres = 9.731E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.376E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.978367\tres = 9.033E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.986568\tres = 8.702E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 0.994534\tres = 8.382E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.002267\tres = 8.074E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.009773\tres = 7.776E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.489E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.024118\tres = 7.212E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.030966\tres = 6.944E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.037603\tres = 6.687E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.044036\tres = 6.438E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.050267\tres = 6.199E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.968E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.062145\tres = 5.746E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.532E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.073276\tres = 5.326E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.127E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.083698\tres = 4.935E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.088654\tres = 4.751E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.093447\tres = 4.573E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.402E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.102560\tres = 4.238E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.079E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.111072\tres = 3.926E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.115114\tres = 3.779E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.119018\tres = 3.638E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.122790\tres = 3.501E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.126432\tres = 3.370E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.129949\tres = 3.244E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.133344\tres = 3.122E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.136622\tres = 3.005E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.139786\tres = 2.892E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142840\tres = 2.784E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.145786\tres = 2.679E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.148630\tres = 2.579E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.151373\tres = 2.482E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.154020\tres = 2.388E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.156573\tres = 2.299E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.159035\tres = 2.212E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.161410\tres = 2.129E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.163700\tres = 2.049E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165909\tres = 1.972E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.168038\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.170091\tres = 1.826E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.758E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.691E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.175816\tres = 1.628E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.566E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.179297\tres = 1.507E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.451E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.182529\tres = 1.396E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.184058\tres = 1.343E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.185530\tres = 1.293E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.186949\tres = 1.244E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.188316\tres = 1.197E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.189633\tres = 1.152E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.108E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.192124\tres = 1.066E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.193301\tres = 1.026E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.874E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.195527\tres = 9.501E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.142E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.797E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.464E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.144E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.836E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.540E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.202119\tres = 7.255E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.980E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.203704\tres = 6.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.204452\tres = 6.462E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.217E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.982E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.206534\tres = 5.755E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.537E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.327E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.208391\tres = 5.126E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.931E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.209517\tres = 4.744E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.565E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.391E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.211051\tres = 4.225E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.211525\tres = 4.065E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.910E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.762E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.619E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.482E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.350E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.214015\tres = 3.222E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.214377\tres = 3.100E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.214725\tres = 2.982E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.869E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.215383\tres = 2.760E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.215693\tres = 2.655E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215992\tres = 2.554E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.216280\tres = 2.457E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.216556\tres = 2.364E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.274E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.217078\tres = 2.187E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.217325\tres = 2.104E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.217562\tres = 2.024E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.217790\tres = 1.947E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.218009\tres = 1.873E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.218220\tres = 1.802E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.733E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.218619\tres = 1.667E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.218807\tres = 1.604E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218988\tres = 1.543E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219162\tres = 1.484E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.219329\tres = 1.428E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.373E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.321E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.219794\tres = 1.271E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219938\tres = 1.222E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.220076\tres = 1.176E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.220208\tres = 1.131E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.220336\tres = 1.088E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.220459\tres = 1.046E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.220577\tres = 1.006E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.220691\tres = 9.681E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.220800\tres = 9.312E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220905\tres = 8.957E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.615E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.287E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.971E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.667E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.374E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.093E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.221537\tres = 6.823E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.562E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.312E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.071E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.840E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.617E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.402E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.196E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.222078\tres = 4.998E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.807E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.222189\tres = 4.624E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.447E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.277E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.222340\tres = 4.114E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.957E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.806E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.661E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.521E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.386E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.222594\tres = 3.257E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.222630\tres = 3.133E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.222666\tres = 3.013E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.222700\tres = 2.898E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.222733\tres = 2.787E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.222764\tres = 2.681E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.222795\tres = 2.578E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222824\tres = 2.480E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222852\tres = 2.385E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222879\tres = 2.294E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222905\tres = 2.206E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222930\tres = 2.122E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222954\tres = 2.041E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222977\tres = 1.963E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222999\tres = 1.888E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.816E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.747E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.223061\tres = 1.680E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.223080\tres = 1.616E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.554E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.223116\tres = 1.495E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.437E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.382E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.223164\tres = 1.330E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.223179\tres = 1.279E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.230E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.183E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.138E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.094E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.052E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.012E-05\n" + "[ NORMAL ] Iteration 8:\tk_eff = 0.478834\tres = 6.465E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.479871\tres = 1.960E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.482684\tres = 2.166E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.487084\tres = 5.861E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.492900\tres = 9.116E-03\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.499971\tres = 1.194E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.508153\tres = 1.435E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.517312\tres = 1.637E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.527324\tres = 1.802E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.538079\tres = 1.935E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.549472\tres = 2.039E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.561410\tres = 2.117E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.573807\tres = 2.173E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.586585\tres = 2.208E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.599674\tres = 2.227E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.613007\tres = 2.231E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.626528\tres = 2.223E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.640181\tres = 2.206E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.653920\tres = 2.179E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.667700\tres = 2.146E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.681483\tres = 2.107E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.695234\tres = 2.064E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.708921\tres = 2.018E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.722515\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.735993\tres = 1.918E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.749331\tres = 1.865E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.762510\tres = 1.812E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.775514\tres = 1.759E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.788326\tres = 1.705E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800934\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.813328\tres = 1.599E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.825497\tres = 1.547E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.837433\tres = 1.496E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.849131\tres = 1.446E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.860584\tres = 1.397E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871789\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.882742\tres = 1.302E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.893442\tres = 1.256E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.903888\tres = 1.212E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914078\tres = 1.169E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.924013\tres = 1.127E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.933694\tres = 1.087E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.943122\tres = 1.048E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.952299\tres = 1.010E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961228\tres = 9.731E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969911\tres = 9.376E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.978351\tres = 9.033E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.986552\tres = 8.702E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 0.994517\tres = 8.382E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.002250\tres = 8.074E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.009756\tres = 7.776E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.017037\tres = 7.488E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.024100\tres = 7.211E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.030948\tres = 6.944E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.037585\tres = 6.687E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.044017\tres = 6.438E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.050248\tres = 6.199E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056282\tres = 5.968E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.062125\tres = 5.746E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067782\tres = 5.532E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.073256\tres = 5.325E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078553\tres = 5.127E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083677\tres = 4.935E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.088633\tres = 4.751E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.093425\tres = 4.573E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.098059\tres = 4.402E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.102538\tres = 4.238E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106867\tres = 4.079E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.111050\tres = 3.926E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.115091\tres = 3.779E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.118996\tres = 3.638E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.122767\tres = 3.501E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.126408\tres = 3.370E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.129925\tres = 3.244E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.133320\tres = 3.122E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.136598\tres = 3.005E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.139762\tres = 2.892E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142815\tres = 2.784E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.145762\tres = 2.679E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148605\tres = 2.578E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.151348\tres = 2.482E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.153995\tres = 2.388E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156548\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.159010\tres = 2.212E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.161384\tres = 2.129E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.163674\tres = 2.049E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165883\tres = 1.972E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.168012\tres = 1.898E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.170064\tres = 1.826E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.172043\tres = 1.757E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173951\tres = 1.691E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.175790\tres = 1.628E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.177562\tres = 1.566E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179270\tres = 1.507E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.180916\tres = 1.450E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.182502\tres = 1.396E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.184030\tres = 1.343E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.185503\tres = 1.292E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.186922\tres = 1.244E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.188289\tres = 1.197E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.189605\tres = 1.152E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.190874\tres = 1.108E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.192096\tres = 1.066E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.193273\tres = 1.026E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194407\tres = 9.873E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195498\tres = 9.500E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196550\tres = 9.141E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197563\tres = 8.796E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198538\tres = 8.464E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199477\tres = 8.144E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200381\tres = 7.836E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201252\tres = 7.539E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202091\tres = 7.254E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202898\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203675\tres = 6.715E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204423\tres = 6.461E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.205144\tres = 6.217E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205837\tres = 5.981E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206505\tres = 5.755E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207148\tres = 5.537E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207766\tres = 5.327E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208362\tres = 5.125E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208935\tres = 4.931E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.209487\tres = 4.744E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.210018\tres = 4.564E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210529\tres = 4.391E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.211021\tres = 4.225E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211495\tres = 4.064E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211950\tres = 3.910E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212389\tres = 3.762E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212811\tres = 3.619E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213217\tres = 3.482E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213608\tres = 3.349E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.213984\tres = 3.222E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214346\tres = 3.100E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214695\tres = 2.982E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.215030\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215353\tres = 2.760E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215663\tres = 2.655E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215962\tres = 2.554E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216249\tres = 2.457E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216526\tres = 2.364E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216792\tres = 2.274E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.217048\tres = 2.187E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217294\tres = 2.104E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.217531\tres = 2.024E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217759\tres = 1.947E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.217979\tres = 1.873E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218190\tres = 1.802E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.218393\tres = 1.733E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218588\tres = 1.667E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218776\tres = 1.604E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218957\tres = 1.543E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219131\tres = 1.484E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219298\tres = 1.427E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219459\tres = 1.373E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.219614\tres = 1.321E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.219763\tres = 1.270E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.219907\tres = 1.222E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.220045\tres = 1.176E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220177\tres = 1.131E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220305\tres = 1.088E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220428\tres = 1.046E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220546\tres = 1.006E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220660\tres = 9.680E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220769\tres = 9.311E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220874\tres = 8.956E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.220975\tres = 8.614E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.221073\tres = 8.286E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221166\tres = 7.970E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221256\tres = 7.666E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221343\tres = 7.373E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221426\tres = 7.092E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221506\tres = 6.822E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221583\tres = 6.562E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221658\tres = 6.311E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221729\tres = 6.070E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221797\tres = 5.839E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221863\tres = 5.616E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221927\tres = 5.402E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.221988\tres = 5.196E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.222047\tres = 4.997E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222103\tres = 4.807E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222158\tres = 4.623E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222210\tres = 4.447E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222260\tres = 4.277E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222308\tres = 4.114E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222355\tres = 3.957E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222400\tres = 3.805E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222443\tres = 3.660E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222484\tres = 3.520E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222524\tres = 3.386E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222562\tres = 3.257E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222599\tres = 3.132E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222635\tres = 3.013E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222669\tres = 2.898E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222701\tres = 2.787E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222733\tres = 2.680E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222763\tres = 2.578E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222792\tres = 2.480E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222820\tres = 2.385E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222847\tres = 2.294E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222873\tres = 2.206E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222898\tres = 2.122E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222922\tres = 2.041E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222945\tres = 1.963E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222968\tres = 1.888E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.222989\tres = 1.816E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.223009\tres = 1.746E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.223029\tres = 1.680E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.223048\tres = 1.615E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.223067\tres = 1.554E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223084\tres = 1.494E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223101\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223117\tres = 1.382E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223133\tres = 1.329E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223148\tres = 1.279E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223162\tres = 1.230E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223176\tres = 1.183E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223190\tres = 1.137E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223203\tres = 1.094E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223215\tres = 1.052E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223227\tres = 1.012E-05\n" ] } ], @@ -1721,8 +1713,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.223258\n", - "bias [pcm]: -21.5\n" + "openmoc keff = 1.223227\n", + "bias [pcm]: -24.7\n" ] } ], @@ -1813,7 +1805,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1896,7 +1888,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1923,6 +1915,15 @@ "# Show the plot on screen\n", "plt.show()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index b807ab4a9..842c334a2 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -32,7 +32,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", @@ -459,7 +459,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDUtMTJUMjE6MDQ6MzMtMDQ6MDDlS7KzAAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA1LTEyVDIxOjA0OjMzLTA0OjAwlBYKDwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -539,6 +539,7 @@ "\n", "* `TotalXS` (`\"total\"`)\n", "* `TransportXS` (`\"transport\"`)\n", + "* `NuTransportXS` (`\"nu-transport\"`)\n", "* `AbsorptionXS` (`\"absorption\"`)\n", "* `CaptureXS` (`\"capture\"`)\n", "* `FissionXS` (`\"fission\"`)\n", @@ -725,8 +726,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 502482dcf630ee6e290c15b8535e6e850a351c88\n", - " Date/Time: 2016-05-10 20:53:35\n", + " Git SHA1: ae588276014a905ecc6e0967bf08288ecec5b550\n", + " Date/Time: 2016-05-12 21:04:33\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -813,20 +814,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.8400E-01 seconds\n", - " Reading cross sections = 1.4100E-01 seconds\n", - " Total time in simulation = 7.7003E+01 seconds\n", - " Time in transport only = 7.6958E+01 seconds\n", - " Time in inactive batches = 6.4820E+00 seconds\n", - " Time in active batches = 7.0521E+01 seconds\n", - " Time synchronizing fission bank = 8.0000E-03 seconds\n", - " Sampling source sites = 6.0000E-03 seconds\n", + " Total time for initialization = 4.5500E-01 seconds\n", + " Reading cross sections = 1.1200E-01 seconds\n", + " Total time in simulation = 5.6386E+01 seconds\n", + " Time in transport only = 5.6351E+01 seconds\n", + " Time in inactive batches = 4.3700E+00 seconds\n", + " Time in active batches = 5.2016E+01 seconds\n", + " Time synchronizing fission bank = 5.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 6.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 7.7616E+01 seconds\n", - " Calculation Rate (inactive) = 3856.83 neutrons/second\n", - " Calculation Rate (active) = 1418.02 neutrons/second\n", + " Total time elapsed = 5.6857E+01 seconds\n", + " Calculation Rate (inactive) = 5720.82 neutrons/second\n", + " Calculation Rate (active) = 1922.49 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -952,8 +953,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n", - " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" + "/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n" ] }, { @@ -1301,122 +1301,122 @@ "[ NORMAL ] Computing the eigenvalue...\n", "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761746\tres = 6.349E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.732367\tres = 5.029E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.711075\tres = 3.869E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.696557\tres = 2.912E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.687673\tres = 2.044E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.683470\tres = 1.277E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.683129\tres = 6.141E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.685949\tres = 7.889E-04\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.691329\tres = 4.181E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.698755\tres = 7.875E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.707786\tres = 1.077E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.718050\tres = 1.295E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.729230\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.741058\tres = 1.559E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.753310\tres = 1.624E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.765800\tres = 1.655E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.778371\tres = 1.660E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.790897\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803273\tres = 1.611E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.815415\tres = 1.566E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.827256\tres = 1.513E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.838747\tres = 1.453E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.849847\tres = 1.390E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.860527\tres = 1.324E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.870770\tres = 1.258E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.880562\tres = 1.191E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.889897\tres = 1.125E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.898776\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.907202\tres = 9.986E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.915181\tres = 9.382E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.922724\tres = 8.803E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.929843\tres = 8.249E-03\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.936550\tres = 7.721E-03\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.942861\tres = 7.220E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.948791\tres = 6.744E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.954357\tres = 6.295E-03\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.959575\tres = 5.871E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.964461\tres = 5.472E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.969033\tres = 5.097E-03\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.973306\tres = 4.744E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.977297\tres = 4.414E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.981021\tres = 4.104E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.984493\tres = 3.814E-03\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.987729\tres = 3.543E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990742\tres = 3.290E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.993546\tres = 3.053E-03\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.996153\tres = 2.833E-03\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.998577\tres = 2.627E-03\n", - "[ NORMAL ] Iteration 50:\tk_eff = 1.000829\tres = 2.436E-03\n", - "[ NORMAL ] Iteration 51:\tk_eff = 1.002920\tres = 2.257E-03\n", - "[ NORMAL ] Iteration 52:\tk_eff = 1.004860\tres = 2.091E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 1.006661\tres = 1.937E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.008330\tres = 1.793E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.009877\tres = 1.660E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.011311\tres = 1.536E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.012639\tres = 1.421E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.013868\tres = 1.314E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.015006\tres = 1.215E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.016059\tres = 1.124E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.039E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.017933\tres = 9.596E-04\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.018766\tres = 8.865E-04\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.019535\tres = 8.188E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.562E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.020903\tres = 6.981E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.445E-04\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.022069\tres = 5.948E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.489E-04\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.023063\tres = 5.064E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.023503\tres = 4.671E-04\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.023909\tres = 4.308E-04\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.024284\tres = 3.973E-04\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.024629\tres = 3.663E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.024948\tres = 3.377E-04\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.025241\tres = 3.113E-04\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.025512\tres = 2.869E-04\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.025761\tres = 2.644E-04\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.025991\tres = 2.436E-04\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.026203\tres = 2.244E-04\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.026398\tres = 2.067E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.026578\tres = 1.904E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.754E-04\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.026895\tres = 1.615E-04\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.027036\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.027165\tres = 1.369E-04\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.027284\tres = 1.260E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.027393\tres = 1.160E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.027494\tres = 1.068E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027587\tres = 9.825E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027672\tres = 9.041E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027751\tres = 8.319E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027823\tres = 7.654E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.042E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.478E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.028007\tres = 5.959E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.481E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028106\tres = 5.041E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028150\tres = 4.636E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028190\tres = 4.263E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028227\tres = 3.920E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028261\tres = 3.604E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028292\tres = 3.314E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028321\tres = 3.047E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.801E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.575E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028394\tres = 2.367E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.175E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 1.999E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.838E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.028466\tres = 1.689E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.552E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.426E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.310E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.204E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.106E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.017E-05\n" + "[ NORMAL ] Iteration 2:\tk_eff = 0.761745\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.732366\tres = 5.029E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.711073\tres = 3.869E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.696554\tres = 2.912E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.687670\tres = 2.044E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683465\tres = 1.277E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.683124\tres = 6.142E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.685943\tres = 7.897E-04\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.691322\tres = 4.180E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698747\tres = 7.873E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.707777\tres = 1.076E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.718040\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.729218\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.741045\tres = 1.559E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.753296\tres = 1.624E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765785\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.778355\tres = 1.659E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.790879\tres = 1.643E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803254\tres = 1.610E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815394\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.827235\tres = 1.513E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.838724\tres = 1.453E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849823\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860503\tres = 1.324E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.870744\tres = 1.258E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.880535\tres = 1.191E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889870\tres = 1.125E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898748\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.907172\tres = 9.985E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915151\tres = 9.382E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922693\tres = 8.802E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929811\tres = 8.248E-03\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.936517\tres = 7.720E-03\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.942827\tres = 7.219E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948757\tres = 6.744E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954322\tres = 6.295E-03\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.959539\tres = 5.871E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964425\tres = 5.472E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.968996\tres = 5.096E-03\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.973268\tres = 4.744E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977259\tres = 4.413E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.980982\tres = 4.104E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984454\tres = 3.814E-03\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.987689\tres = 3.543E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990702\tres = 3.289E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993505\tres = 3.053E-03\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.996112\tres = 2.832E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.998536\tres = 2.627E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.000787\tres = 2.435E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.002878\tres = 2.257E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.004818\tres = 2.091E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.006618\tres = 1.937E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.008287\tres = 1.793E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.009834\tres = 1.660E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.011268\tres = 1.536E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.012595\tres = 1.421E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.013824\tres = 1.314E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.014962\tres = 1.215E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.016015\tres = 1.123E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.016988\tres = 1.038E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.017889\tres = 9.595E-04\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.018721\tres = 8.864E-04\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.019490\tres = 8.187E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020201\tres = 7.560E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020858\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021464\tres = 6.444E-04\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.022024\tres = 5.947E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022541\tres = 5.488E-04\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.023017\tres = 5.063E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023458\tres = 4.670E-04\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.023863\tres = 4.308E-04\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.024238\tres = 3.972E-04\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.024583\tres = 3.663E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024902\tres = 3.376E-04\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.025195\tres = 3.112E-04\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.025466\tres = 2.868E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.025715\tres = 2.643E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.025945\tres = 2.435E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.026157\tres = 2.244E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.026352\tres = 2.067E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026531\tres = 1.904E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026697\tres = 1.753E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.026849\tres = 1.614E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.026989\tres = 1.487E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027118\tres = 1.369E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.027237\tres = 1.260E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027347\tres = 1.160E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027447\tres = 1.067E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027540\tres = 9.823E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027625\tres = 9.039E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027704\tres = 8.317E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027776\tres = 7.652E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027843\tres = 7.040E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027904\tres = 6.476E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.027960\tres = 5.957E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028012\tres = 5.479E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028059\tres = 5.039E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028103\tres = 4.635E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028143\tres = 4.262E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028180\tres = 3.919E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028214\tres = 3.603E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028245\tres = 3.313E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028274\tres = 3.046E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028300\tres = 2.800E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028324\tres = 2.574E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028347\tres = 2.366E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028367\tres = 2.175E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028386\tres = 1.999E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028403\tres = 1.837E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028419\tres = 1.688E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028434\tres = 1.551E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028447\tres = 1.426E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028460\tres = 1.310E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028471\tres = 1.204E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028481\tres = 1.106E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028491\tres = 1.016E-05\n" ] } ], @@ -1449,8 +1449,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.028263\n", - "openmoc keff = 1.028538\n", - "bias [pcm]: 27.5\n" + "openmoc keff = 1.028491\n", + "bias [pcm]: 22.8\n" ] } ], @@ -1558,7 +1558,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 43, @@ -1567,9 +1567,9 @@ }, { "data": { - "image/png": "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\n2ajR7Q6wgAAAAABJRU5ErkJggg==\n", + "image/png": "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\nfHTc1tr58WfQa96JP1u/NcN5cd/L4s/xL5/Rv3hAT+D6cDWAztRFRHJFRV1EJEdU1EVEckRFXUQk\nR1TURURyREVdRCRHVNRFRHJERV1EJEdKMvhojM0uunzkcw+F63hiUTwIh1fiQQh7984waOgrcciB\n5z4Rxjz3oxFhzMruOxddfsw18cAiOy4MYeQv4+22NfF6/MF4H1uGQ3WrnR7GVJNhQoISGzzu8UaX\n7c2r4f1taXxc1uwQ7/MNGSbk6Lowbmv/LfFkNDW3bQ5j7Ka4P7ufsTqM2fHUd+IVZdiuDRvi1bBj\nvJ9rbo7bOqhqXhjz2rg3iy7vRzdmhmtJ6ExdRCRHVNRFRHJERV1EJEdU1EVEckRFXUQkR1TURURy\nREVdRCRHVNRFRHKkRYOPzGwRsBbYCmxx91FZ7jdw+pKiy79/wsXxSvrFA1Gqp8QDAy6b9O0wZuKB\nk8OY517M8Pw4Mp5tpS/FByHYyLgd3xi3wznxrC7+vbitDaPjprp0jY/VMn4axmTYqlbT3NxeuKbx\nmaAeqDk6XsFJ8b6qGZJhVqOX471lb8Q5UPONDHk9N27LH4zbsqPitro9sSVez8p4H+7aK8N2BZMR\nAXBi3NZUj2d06rfm5aLL+1ZnL9WtMaL0KHdf2QrrESk3ym2pOLr8IiKSIy0t6g7cb2Zzzezc1uiQ\nSJlQbktFaunll8PdfYmZ7QbcZ2bPufus1uiYSIkpt6UitehM3d2XpL9XANOA971tZma1ZuZ1Py1p\nTySLwnwzs9rmrEO5LeUoS243u6ib2U5m1q3ub+BjwPz6ce5e6+5W99Pc9kSyKsw3d69t6v2V21Ku\nsuR2Sy6/9AammVndem529z+3YH0i5UK5LRWr2UXd3RcCw1qxLyJlQbktlczc2/dSoJk5zxb/wP7W\nHvGMI8ftelcYs4aaMGYDXcKYudcdHsace/7VYcyUp84PY7rss6ro8vVbdw3XYVPDELY9HF8teOyO\nD4YxY558Koz58rB4YNE+vBLGXPLqD8MY+nWmVJdCzMyZ13hu/3zYWeE6DvVHwpjNdApjDtjyfBjT\n9TvxgKCHrxgexnTweD2jhz8dxjz2ZJxvWzyuDR/6VjzT0NrL4/PZf1bvH8Z0IJ716REODWPOf+q3\nRZeP3QlmDqzKlNv6nLqISI6oqIuI5IiKuohIjqioi4jkiIq6iEiOqKiLiOSIirqISI6oqIuI5Ehr\n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\njRmGBmRpq3P0mAf6Z1hPpwz96VwVb9eeWfqc5WGU5XhtznDcKZY3sP/+HZg5M8NqKNXgI5E2VNrB\nRyJtJ0tut3tRf18HzLxUD8LmUp/bRyX2uVAl9l99bntt3V9dUxcRyREVdRGRHCmHop7l227Kjfrc\nPiqxz4Uqsf/qc9tr0/6W/Jq6iIi0nnI4UxcRkVaioi4ikiMlLepmdqyZPW9mL5rZhFL2JSszW2Rm\nT5vZPDOLv9W/BMxsipmtMLP5Bbf1MLP7zOyF9PcupexjoUb6W2tmS9L9PM/MPlHKPjaF8rptVFpe\nQ2lyu2RF3cyqgeuA44BBwHgzG1Sq/jTRUe4+3N0zTI1SElOBY+vdNgF4wN0HAg+k/5eLqby/vwA/\nTffzcHe/p5371CzK6zY1lcrKayhBbpfyTH008KK7L3T3TcCtwLgS9ic33H0WsKrezeOAG9K/bwDi\nefzaSSP9rVTK6zZSaXkNpcntUhb1PYDXCv5fnN5W7hy438zmmtm5pe5ME/R296Xp38uA3qXsTEZf\nM7On0pewZfWyugjldfuqxLyGNsxtvVHadIe7+3CSl9fnm9mHS92hpvLkc6zl/lnWXwD9Sb7ebSnw\n49J2J/eU1+2nTXO7lEV9CWz39Yd7preVNXdfkv5eAUwjebldCZabWR+A9PeKEvenKHdf7u5b3X0b\n8CsqZz8rr9tXReU1tH1ul7KozwEGmtm+ZtYJOB2YUcL+hMxsJzPrVvc38DFgfvF7lY0ZwJnp32cC\n00vYl1DdAzV1EpWzn5XX7aui8hraPrdL8n3qAO6+xcy+CtwLVANT3H1BqfqTUW9gmplBsu9udvc/\nl7ZL72dmtwBHAr3MbDEwEZgM3GZmZwOvAKeVrofba6S/R5rZcJKX04uA80rWwSZQXredSstrKE1u\n62sCRERyRG+UiojkiIq6iEiOqKiLiOSIirqISI6oqIuI5IiKuohIjqioi4jkiIq6iEiO/C/zDkyC\nZclMUgAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1609,7 +1609,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 89f12d5ed..5b49005ec 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -227,29 +227,30 @@ class MGXS(object): domain_filter = openmc.Filter(self.domain_type, self.domain.id) # Create each Tally needed to compute the multi group cross section - for score, key, filters in zip(self.scores, self.keys, self.filters): - self.tallies[key] = openmc.Tally(name=self.name) - self.tallies[key].scores = [score] - self.tallies[key].estimator = self.estimator - self.tallies[key].filters = [domain_filter] + tally_metadata = zip(self.scores, self.tally_keys, self.filters) + for score, key, filters 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].filters = [domain_filter] # If a tally trigger was specified, add it to each tally if self.tally_trigger: trigger_clone = copy.deepcopy(self.tally_trigger) trigger_clone.scores = [score] - self.tallies[key].triggers.append(trigger_clone) + self._tallies[key].triggers.append(trigger_clone) # Add non-domain specific Filters (e.g., 'energy') to the Tally for add_filter in filters: - self.tallies[key].filters.append(add_filter) + self._tallies[key].filters.append(add_filter) # If this is a by-nuclide cross-section, add nuclides to Tally if self.by_nuclide and score != 'flux': all_nuclides = self.get_all_nuclides() for nuclide in all_nuclides: - self.tallies[key].nuclides.append(nuclide) + self._tallies[key].nuclides.append(nuclide) else: - self.tallies[key].nuclides.append('total') + self._tallies[key].nuclides.append('total') return self._tallies @@ -311,7 +312,7 @@ class MGXS(object): def filters(self): group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) - return [[energy_filter] * len(self.scores)] + return [[energy_filter]] * len(self.scores) @property def tally_keys(self): @@ -1544,7 +1545,7 @@ class NuTransportXS(TransportXS): return ['flux', 'total', 'nu-scatter-1'] @property - def keys(self): + def tally_keys(self): return ['flux', 'total', 'scatter-1'] @@ -1674,50 +1675,38 @@ class ScatterMatrixXS(MGXS): @property def scores(self): - return ['flux', 'total', 'nu-scatter-1'] + scores = ['flux'] + + for moment in range(self.legendre_order+1): + scores.append('scatter-{}'.format(moment)) + + if self.correction == 'P0' and self.legendre_order == 0: + scores.append('scatter-1') + + return scores @property - def keys(self): - return ['flux', 'total', 'scatter-1'] + def filters(self): + group_edges = self.energy_groups.group_edges + energy = openmc.Filter('energy', group_edges) + energyout = openmc.Filter('energyout', group_edges) + filters = [[energy]] + + for moment in range(self.legendre_order+1): + filters.append([energy, energyout]) + + if self.correction == 'P0' and self.legendre_order == 0: + filters.append([energyout]) + + return filters @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. + def tally_keys(self): + return ['flux', 'scatter-0', 'scatter-1'] - This method constructs three analog tallies to compute the 'flux' - and Legendre scattering moment reaction rates in the spatial domain and - energy groups of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - group_edges = self.energy_groups.group_edges - energy = openmc.Filter('energy', group_edges) - energyout = openmc.Filter('energyout', group_edges) - - # Create lists of scores, filters for each Tally to be created - scores = ['flux'] - filters = [[energy]] - - # Create separate tallies for each moment - for moment in range(self.legendre_order+1): - scores.append('scatter-{}'.format(moment)) - filters.append([energy, energyout]) - - # Append to the lists for the P0 approximation if needed - if self.correction == 'P0' and self.legendre_order == 0: - scores.append('scatter-1') - filters.append([energyout]) - - estimator = 'analog' - keys = scores - - # Initialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies + @property + def estimator(self): + return 'analog' @property def rxn_rate_tally(self): @@ -1727,7 +1716,7 @@ class ScatterMatrixXS(MGXS): # If using P0 correction subtract scatter-1 from the diagonal if self.correction == 'P0' and self.legendre_order == 0: scatter_p1 = self.tallies['scatter-1'] - scatter_p1 = scatter_p1.get_slice(scores=['scatter-1']) + scatter_p1 = scatter_p1.get_slice(scores=[self.scores[-1]]) energy_filter = self.tallies['scatter-0'].find_filter('energy') energy_filter = copy.deepcopy(energy_filter) scatter_p1 = scatter_p1.diagonalize_filter(energy_filter) @@ -1737,8 +1726,7 @@ class ScatterMatrixXS(MGXS): else: rxn_rate_tally = self.tallies['scatter-0'] for moment in range(1, self.legendre_order+1): - scatter_key = 'scatter-{}'.format(moment) - scatter_pn = self.tallies[scatter_key] + scatter_pn = self.tallies['scatter-{}'.format(moment)] rxn_rate_tally = rxn_rate_tally.merge(scatter_pn) self._rxn_rate_tally = rxn_rate_tally @@ -2188,45 +2176,16 @@ class NuScatterMatrixXS(ScatterMatrixXS): self._rxn_type = 'nu-scatter matrix' @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. + def scores(self): + scores = ['flux'] - This method constructs three analog tallies to compute the 'flux', - 'nu-scatter' and 'scatter-P1' reaction rates in the spatial domain and - energy groups of interest. + for moment in range(self.legendre_order+1): + scores.append('nu-scatter-{}'.format(moment)) - """ + if self.correction == 'P0' and self.legendre_order == 0: + scores.append('nu-scatter-1') - # Instantiate tallies if they do not exist - if self._tallies is None: - - group_edges = self.energy_groups.group_edges - energy = openmc.Filter('energy', group_edges) - energyout = openmc.Filter('energyout', group_edges) - - # Create lists of scores, filters for each Tally to be created - scores = ['flux'] - filters = [[energy]] - keys = ['flux'] - - # Create separate tallies for each moment - for moment in range(self.legendre_order+1): - scores.append('nu-scatter-{}'.format(moment)) - filters.append([energy, energyout]) - keys.append('scatter-{}'.format(moment)) - - # Append to the lists for the P0 approximation if needed - if self.correction == 'P0' and self.legendre_order == 0: - scores.append('scatter-1') - filters.append([energyout]) - keys.append('scatter-1') - - estimator = 'analog' - - # Intialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies + return scores class Chi(MGXS): @@ -2238,33 +2197,24 @@ class Chi(MGXS): self._rxn_type = 'chi' @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. + def scores(self): + return ['nu-fission', 'nu-fission'] - This method constructs two analog tallies to compute 'nu-fission' - reaction rates with 'energy' and 'energyout' filters in the spatial - domain and energy groups of interest. + @property + def filters(self): + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energyout = openmc.Filter('energyout', group_edges) + energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) + return [[energyin], [energyout]] - """ + @property + def tally_keys(self): + return ['nu-fission-in', 'nu-fission-out'] - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['nu-fission', 'nu-fission'] - estimator = 'analog' - keys = ['nu-fission-in', 'nu-fission-out'] - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energyout = openmc.Filter('energyout', group_edges) - energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) - filters = [[energyin], [energyout]] - - # Intialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies + @property + def estimator(self): + return 'analog' @property def rxn_rate_tally(self): diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index 708ec114e..064981fa9 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -e3834da92fc6ae57ce109621e3f692a186a03820b61332fa9ed898bc07fb8a63484ace095713d5b88196b1d2f1430d2e7b27a505944c7c3027f6365801f58146 \ No newline at end of file +ee40a2b826dea8323249c7261502f8339c78a5dc236e019842cc5244c048d5978fe66e036b86d46b262260556fbd62b19cbb2f0d70325b92b8c40275e75afe4f \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 5f1d886b0..89e4dbb3e 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,7 +1,7 @@ material group in nuclide mean std. dev. 0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. 0 1 1 total 0.076425 0.003691 material group in group out nuclide moment mean std. dev. moment -0 1 1 1 total P0 0.345643 0.021487 P0 material group out nuclide mean std. dev. +0 1 1 1 total P0 0.345503 0.021465 P0 material group out nuclide mean std. dev. 0 1 1 total 1.0 0.055333 material group in nuclide mean std. dev. 0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. 0 2 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 4ab730274..5ffea7f8f 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -aadb1e94492741c091bff4b5e17634ee327c718fc9fd1f27aa22fe8406fb70f732750dfdceb30eb40b5e4f406061bea6bd5235ba613c3c81009f5857a9051728 \ No newline at end of file +c46381a2d86bd849ca20dc64022ffcf836ba0f236f392bba6335c42559df61d14d09a616bc3a9590d954a5bf099610eb071982296b75b10d1c168cc3e343d383 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index 708ec114e..064981fa9 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -e3834da92fc6ae57ce109621e3f692a186a03820b61332fa9ed898bc07fb8a63484ace095713d5b88196b1d2f1430d2e7b27a505944c7c3027f6365801f58146 \ No newline at end of file +ee40a2b826dea8323249c7261502f8339c78a5dc236e019842cc5244c048d5978fe66e036b86d46b262260556fbd62b19cbb2f0d70325b92b8c40275e75afe4f \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index e19b9ffa5..93aceba7d 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -5,9 +5,9 @@ domain=1 type=nu-fission [ 0.02178897 0.71407658] [ 0.00118187 0.04055185] domain=1 type=nu-scatter matrix -[[ 0.3373971 0.00155945] +[[ 0.33724504 0.00155945] [ 0. 0.42205129]] -[[ 0.02303884 0.00051015] +[[ 0.02301463 0.00051015] [ 0. 0.02161702]] domain=1 type=chi [ 1. 0.] diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index 708ec114e..064981fa9 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -e3834da92fc6ae57ce109621e3f692a186a03820b61332fa9ed898bc07fb8a63484ace095713d5b88196b1d2f1430d2e7b27a505944c7c3027f6365801f58146 \ No newline at end of file +ee40a2b826dea8323249c7261502f8339c78a5dc236e019842cc5244c048d5978fe66e036b86d46b262260556fbd62b19cbb2f0d70325b92b8c40275e75afe4f \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 4e6d88208..0ad8e04aa 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -3,7 +3,7 @@ 0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. 1 1 1 total 0.021789 0.001182 0 1 2 total 0.714077 0.040552 material group in group out nuclide moment mean std. dev. moment -3 1 1 1 total P0 0.337397 0.023039 P0 +3 1 1 1 total P0 0.337245 0.023015 P0 2 1 1 2 total P0 0.001559 0.000510 P0 1 1 2 1 total P0 0.000000 0.000000 P0 0 1 2 2 total P0 0.422051 0.021617 P0 material group out nuclide mean std. dev. diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 5b7a83037..d2c11978a 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -f1c203fb7f0b141ee608d7bb9223aa5f7ab84966b6a80525879df730d19179f6c6a1a4bc7038d84e6b366b360f43a1ca17a0af8d02f96eb23e53b93a2445380e \ No newline at end of file +f4abbd7867b0f0d2d9d93ed089c95904541f970522e1ef3a843373b60094ef4571a64a7b5f68efe9e51fd49754bc9e20a3bcc85c0bde3a8224608f8b97c01b85 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index ff34c9fff..9cef6fdd8 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -138,7 +138,7 @@ 102 1 1 1 U-234 P0 0.000000 0.000000 P0 103 1 1 1 U-235 P0 0.003226 0.001139 P0 104 1 1 1 U-236 P0 0.001697 0.000923 P0 -105 1 1 1 U-238 P0 0.194620 0.013297 P0 +105 1 1 1 U-238 P0 0.194468 0.013279 P0 106 1 1 1 Np-237 P0 0.000000 0.000000 P0 107 1 1 1 Pu-238 P0 0.000000 0.000000 P0 108 1 1 1 Pu-239 P0 0.001005 0.000477 P0 From e9fc744ba597a28d72dcbe204f60167e85eaa3c8 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 12 May 2016 21:34:03 -0400 Subject: [PATCH 185/259] Updated example notebook and changed default value of return_names in write_mg_library to False and updated the docstring accordingly. --- .../pythonapi/examples/mgxs-part-iv.ipynb | 1423 ++++++++++++----- openmc/mgxs/library.py | 4 +- 2 files changed, 997 insertions(+), 430 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index bc85af5c2..823d67ae1 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -6,10 +6,10 @@ "source": [ "This Notebook illustrates the use of the openmc.mgxs.Library class specifically for application in OpenMC's multi-group mode. This example notebook follows the same process as was done in MGXS Part III, but instead uses OpenMC as the multi-group solver. This Notebook illustrates the following features:\n", "\n", - " Calculation of multi-group cross sections for a fuel assembly\n", - " Automated creation, manipulation and storage of MGXS with openmc.mgxs.Library\n", - " Validation of multi-group cross sections with OpenMC\n", - " Steady-state pin-by-pin fission rates comparison between Continuous-Energy mode and Multi-Group OpenMC.\n", + " - Calculation of multi-group cross sections for a fuel assembly\n", + " - Automated creation, manipulation and storage of MGXS with openmc.mgxs.Library\n", + " - Validation of multi-group cross sections with OpenMC\n", + " - Steady-state pin-by-pin fission rates comparison between Continuous-Energy mode and Multi-Group OpenMC.\n", "\n", "Note: This Notebook illustrates the use of Pandas DataFrames to containerize multi-group cross section data. We recommend using Pandas >v0.15.0 or later since OpenMC's Python API leverages the multi-indexing feature included in the most recent releases of Pandas.\n" ] @@ -170,22 +170,22 @@ "outputs": [], "source": [ "# Create a Universe to encapsulate a fuel pin\n", - "fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin')\n", + "fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin', universe_id=10)\n", "\n", "# Create fuel Cell\n", - "fuel_cell = openmc.Cell(name='1.6% Fuel')\n", + "fuel_cell = openmc.Cell(name='1.6% Fuel', cell_id=1)\n", "fuel_cell.fill = fuel\n", "fuel_cell.region = -fuel_outer_radius\n", "fuel_pin_universe.add_cell(fuel_cell)\n", "\n", "# Create a clad Cell\n", - "clad_cell = openmc.Cell(name='1.6% Clad')\n", + "clad_cell = openmc.Cell(name='1.6% Clad', cell_id=2)\n", "clad_cell.fill = zircaloy\n", "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", "fuel_pin_universe.add_cell(clad_cell)\n", "\n", "# Create a moderator Cell\n", - "moderator_cell = openmc.Cell(name='1.6% Moderator')\n", + "moderator_cell = openmc.Cell(name='1.6% Moderator', cell_id=3)\n", "moderator_cell.fill = water\n", "moderator_cell.region = +clad_outer_radius\n", "fuel_pin_universe.add_cell(moderator_cell)" @@ -207,22 +207,22 @@ "outputs": [], "source": [ "# Create a Universe to encapsulate a control rod guide tube\n", - "guide_tube_universe = openmc.Universe(name='Guide Tube')\n", + "guide_tube_universe = openmc.Universe(name='Guide Tube', universe_id=20)\n", "\n", "# Create guide tube Cell\n", - "guide_tube_cell = openmc.Cell(name='Guide Tube Water')\n", + "guide_tube_cell = openmc.Cell(name='Guide Tube Water', cell_id=4)\n", "guide_tube_cell.fill = water\n", "guide_tube_cell.region = -fuel_outer_radius\n", "guide_tube_universe.add_cell(guide_tube_cell)\n", "\n", "# Create a clad Cell\n", - "clad_cell = openmc.Cell(name='Guide Clad')\n", + "clad_cell = openmc.Cell(name='Guide Clad', cell_id=5)\n", "clad_cell.fill = zircaloy\n", "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", "guide_tube_universe.add_cell(clad_cell)\n", "\n", "# Create a moderator Cell\n", - "moderator_cell = openmc.Cell(name='Guide Tube Moderator')\n", + "moderator_cell = openmc.Cell(name='Guide Tube Moderator', cell_id=6)\n", "moderator_cell.fill = water\n", "moderator_cell.region = +clad_outer_radius\n", "guide_tube_universe.add_cell(moderator_cell)" @@ -239,12 +239,12 @@ "cell_type": "code", "execution_count": 8, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "# Create fuel assembly Lattice\n", - "assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n", + "assembly = openmc.RectLattice(name='1.6% Fuel Assembly', lattice_id=100)\n", "assembly.dimension = (17, 17)\n", "assembly.pitch = (1.26, 1.26)\n", "assembly.lower_left = [-1.26 * 17. / 2.0] * 2" @@ -298,7 +298,7 @@ "outputs": [], "source": [ "# Create root Cell\n", - "root_cell = openmc.Cell(name='root cell')\n", + "root_cell = openmc.Cell(name='root cell', cell_id=0)\n", "root_cell.fill = assembly\n", "\n", "# Add boundary planes\n", @@ -347,7 +347,7 @@ "outputs": [], "source": [ "# OpenMC simulation parameters\n", - "batches = 200\n", + "batches = 500\n", "inactive = 10\n", "particles = 5000\n", "\n", @@ -434,7 +434,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -554,7 +554,7 @@ "cell_type": "code", "execution_count": 20, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -566,12 +566,31 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Lastly, we use the `Library` to construct the tallies needed to compute all of the requested multi-group cross sections in each domain and nuclide." + "Now that the `Library` has been setup, lets make sure it contains the types of cross sections which meet the needs of OpenMC's multi-group solver. Note that this step is done automatically when writing the Multi-Group Library file later in the process (as part of the `mgxs_lib.write_mg_library()`), but it is a good practice to also run this before spending all the time running OpenMC to generate the cross sections." ] }, { "cell_type": "code", "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Check the library - if no errors are raised, then the library is satisfactory.\n", + "mgxs_lib.check_library_for_openmc_mgxs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lastly, we use the `Library` to construct the tallies needed to compute all of the requested multi-group cross sections in each domain and nuclide." + ] + }, + { + "cell_type": "code", + "execution_count": 22, "metadata": { "collapsed": true }, @@ -592,7 +611,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": { "collapsed": true }, @@ -612,7 +631,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": { "collapsed": true }, @@ -640,7 +659,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "metadata": { "collapsed": true }, @@ -652,7 +671,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -677,8 +696,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 179e9ab147e505563d118ed58096b3d225160ffa\n", - " Date/Time: 2016-05-07 14:22:04\n", + " Git SHA1: c779ca42c41a062a6a813e03f2add2d182ca9190\n", + " Date/Time: 2016-05-12 21:15:02\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -906,7 +925,307 @@ " 198/1 1.01366 1.02596 +/- 0.00130\n", " 199/1 1.04471 1.02605 +/- 0.00130\n", " 200/1 1.02416 1.02604 +/- 0.00129\n", - " Creating state point statepoint.200.h5...\n", + " 201/1 1.01172 1.02597 +/- 0.00129\n", + " 202/1 1.01683 1.02592 +/- 0.00128\n", + " 203/1 1.01341 1.02586 +/- 0.00128\n", + " 204/1 1.01507 1.02580 +/- 0.00127\n", + " 205/1 1.02540 1.02580 +/- 0.00127\n", + " 206/1 1.00310 1.02568 +/- 0.00127\n", + " 207/1 1.02822 1.02570 +/- 0.00126\n", + " 208/1 1.01023 1.02562 +/- 0.00126\n", + " 209/1 1.04603 1.02572 +/- 0.00125\n", + " 210/1 1.00775 1.02563 +/- 0.00125\n", + " 211/1 1.01706 1.02559 +/- 0.00125\n", + " 212/1 0.99434 1.02543 +/- 0.00125\n", + " 213/1 1.03346 1.02547 +/- 0.00124\n", + " 214/1 1.05322 1.02561 +/- 0.00124\n", + " 215/1 1.03057 1.02563 +/- 0.00124\n", + " 216/1 1.00976 1.02556 +/- 0.00123\n", + " 217/1 1.02760 1.02557 +/- 0.00123\n", + " 218/1 1.01259 1.02550 +/- 0.00122\n", + " 219/1 1.02829 1.02552 +/- 0.00122\n", + " 220/1 1.02228 1.02550 +/- 0.00121\n", + " 221/1 1.06679 1.02570 +/- 0.00122\n", + " 222/1 1.03417 1.02574 +/- 0.00122\n", + " 223/1 1.04239 1.02582 +/- 0.00121\n", + " 224/1 1.02062 1.02579 +/- 0.00121\n", + " 225/1 1.00331 1.02569 +/- 0.00121\n", + " 226/1 1.00131 1.02557 +/- 0.00121\n", + " 227/1 1.01768 1.02554 +/- 0.00120\n", + " 228/1 1.00813 1.02546 +/- 0.00120\n", + " 229/1 1.05320 1.02558 +/- 0.00120\n", + " 230/1 1.03472 1.02563 +/- 0.00120\n", + " 231/1 1.01426 1.02557 +/- 0.00119\n", + " 232/1 1.00782 1.02549 +/- 0.00119\n", + " 233/1 1.02813 1.02551 +/- 0.00118\n", + " 234/1 1.01184 1.02545 +/- 0.00118\n", + " 235/1 1.02156 1.02543 +/- 0.00118\n", + " 236/1 0.99029 1.02527 +/- 0.00118\n", + " 237/1 1.04196 1.02535 +/- 0.00118\n", + " 238/1 1.01594 1.02531 +/- 0.00117\n", + " 239/1 1.02732 1.02531 +/- 0.00117\n", + " 240/1 0.98987 1.02516 +/- 0.00117\n", + " 241/1 1.03388 1.02520 +/- 0.00117\n", + " 242/1 1.01319 1.02515 +/- 0.00116\n", + " 243/1 1.02870 1.02516 +/- 0.00116\n", + " 244/1 1.01943 1.02514 +/- 0.00115\n", + " 245/1 1.04463 1.02522 +/- 0.00115\n", + " 246/1 1.03551 1.02526 +/- 0.00115\n", + " 247/1 1.00436 1.02517 +/- 0.00115\n", + " 248/1 1.03326 1.02521 +/- 0.00114\n", + " 249/1 1.05769 1.02534 +/- 0.00115\n", + " 250/1 1.01372 1.02530 +/- 0.00114\n", + " 251/1 1.02971 1.02531 +/- 0.00114\n", + " 252/1 1.01166 1.02526 +/- 0.00113\n", + " 253/1 1.03992 1.02532 +/- 0.00113\n", + " 254/1 1.01507 1.02528 +/- 0.00113\n", + " 255/1 1.03222 1.02530 +/- 0.00112\n", + " 256/1 1.03096 1.02533 +/- 0.00112\n", + " 257/1 1.01153 1.02527 +/- 0.00112\n", + " 258/1 1.03668 1.02532 +/- 0.00111\n", + " 259/1 1.03070 1.02534 +/- 0.00111\n", + " 260/1 1.01189 1.02529 +/- 0.00111\n", + " 261/1 1.00082 1.02519 +/- 0.00111\n", + " 262/1 1.03653 1.02523 +/- 0.00110\n", + " 263/1 1.02908 1.02525 +/- 0.00110\n", + " 264/1 1.00072 1.02515 +/- 0.00110\n", + " 265/1 1.00832 1.02509 +/- 0.00109\n", + " 266/1 1.04385 1.02516 +/- 0.00109\n", + " 267/1 1.00117 1.02507 +/- 0.00109\n", + " 268/1 1.02682 1.02507 +/- 0.00109\n", + " 269/1 1.03202 1.02510 +/- 0.00108\n", + " 270/1 1.01275 1.02505 +/- 0.00108\n", + " 271/1 1.02633 1.02506 +/- 0.00108\n", + " 272/1 1.04811 1.02514 +/- 0.00108\n", + " 273/1 1.02851 1.02516 +/- 0.00107\n", + " 274/1 1.01270 1.02511 +/- 0.00107\n", + " 275/1 1.06222 1.02525 +/- 0.00107\n", + " 276/1 1.02778 1.02526 +/- 0.00107\n", + " 277/1 1.02601 1.02526 +/- 0.00107\n", + " 278/1 1.02356 1.02526 +/- 0.00106\n", + " 279/1 1.00792 1.02519 +/- 0.00106\n", + " 280/1 1.02331 1.02518 +/- 0.00106\n", + " 281/1 1.00985 1.02513 +/- 0.00105\n", + " 282/1 1.02035 1.02511 +/- 0.00105\n", + " 283/1 0.98181 1.02495 +/- 0.00106\n", + " 284/1 1.01829 1.02493 +/- 0.00106\n", + " 285/1 1.02929 1.02494 +/- 0.00105\n", + " 286/1 1.03524 1.02498 +/- 0.00105\n", + " 287/1 1.01212 1.02493 +/- 0.00105\n", + " 288/1 1.03584 1.02497 +/- 0.00104\n", + " 289/1 1.02961 1.02499 +/- 0.00104\n", + " 290/1 0.99692 1.02489 +/- 0.00104\n", + " 291/1 1.03966 1.02494 +/- 0.00104\n", + " 292/1 1.00965 1.02489 +/- 0.00104\n", + " 293/1 1.02601 1.02489 +/- 0.00103\n", + " 294/1 1.03224 1.02492 +/- 0.00103\n", + " 295/1 1.01596 1.02489 +/- 0.00103\n", + " 296/1 1.06964 1.02504 +/- 0.00103\n", + " 297/1 1.03982 1.02509 +/- 0.00103\n", + " 298/1 0.99758 1.02500 +/- 0.00103\n", + " 299/1 1.01479 1.02496 +/- 0.00103\n", + " 300/1 1.04517 1.02503 +/- 0.00103\n", + " 301/1 0.99128 1.02492 +/- 0.00103\n", + " 302/1 1.01493 1.02488 +/- 0.00103\n", + " 303/1 1.00623 1.02482 +/- 0.00103\n", + " 304/1 1.02560 1.02482 +/- 0.00102\n", + " 305/1 1.00806 1.02477 +/- 0.00102\n", + " 306/1 1.03524 1.02480 +/- 0.00102\n", + " 307/1 0.99244 1.02469 +/- 0.00102\n", + " 308/1 0.98013 1.02454 +/- 0.00103\n", + " 309/1 1.00853 1.02449 +/- 0.00103\n", + " 310/1 1.00116 1.02441 +/- 0.00103\n", + " 311/1 1.01730 1.02439 +/- 0.00102\n", + " 312/1 1.01198 1.02435 +/- 0.00102\n", + " 313/1 1.02405 1.02435 +/- 0.00102\n", + " 314/1 1.01734 1.02432 +/- 0.00101\n", + " 315/1 1.02320 1.02432 +/- 0.00101\n", + " 316/1 1.03438 1.02435 +/- 0.00101\n", + " 317/1 1.00106 1.02428 +/- 0.00101\n", + " 318/1 1.03114 1.02430 +/- 0.00100\n", + " 319/1 1.04955 1.02438 +/- 0.00100\n", + " 320/1 1.03259 1.02441 +/- 0.00100\n", + " 321/1 1.00687 1.02435 +/- 0.00100\n", + " 322/1 1.05753 1.02446 +/- 0.00100\n", + " 323/1 1.03676 1.02450 +/- 0.00100\n", + " 324/1 0.99796 1.02441 +/- 0.00100\n", + " 325/1 1.03783 1.02445 +/- 0.00100\n", + " 326/1 1.02315 1.02445 +/- 0.00099\n", + " 327/1 1.04205 1.02451 +/- 0.00099\n", + " 328/1 1.01971 1.02449 +/- 0.00099\n", + " 329/1 1.02394 1.02449 +/- 0.00099\n", + " 330/1 1.03318 1.02452 +/- 0.00098\n", + " 331/1 1.01503 1.02449 +/- 0.00098\n", + " 332/1 1.07143 1.02463 +/- 0.00099\n", + " 333/1 1.00991 1.02459 +/- 0.00099\n", + " 334/1 1.03115 1.02461 +/- 0.00098\n", + " 335/1 1.04400 1.02467 +/- 0.00098\n", + " 336/1 1.03516 1.02470 +/- 0.00098\n", + " 337/1 1.02025 1.02468 +/- 0.00098\n", + " 338/1 1.03269 1.02471 +/- 0.00098\n", + " 339/1 1.03745 1.02475 +/- 0.00097\n", + " 340/1 1.03685 1.02478 +/- 0.00097\n", + " 341/1 1.01831 1.02476 +/- 0.00097\n", + " 342/1 1.01425 1.02473 +/- 0.00097\n", + " 343/1 1.02990 1.02475 +/- 0.00096\n", + " 344/1 1.02958 1.02476 +/- 0.00096\n", + " 345/1 1.03133 1.02478 +/- 0.00096\n", + " 346/1 1.02441 1.02478 +/- 0.00095\n", + " 347/1 1.07010 1.02492 +/- 0.00096\n", + " 348/1 1.02327 1.02491 +/- 0.00096\n", + " 349/1 1.03123 1.02493 +/- 0.00096\n", + " 350/1 1.03158 1.02495 +/- 0.00095\n", + " 351/1 1.03473 1.02498 +/- 0.00095\n", + " 352/1 1.04000 1.02502 +/- 0.00095\n", + " 353/1 1.01651 1.02500 +/- 0.00095\n", + " 354/1 1.03647 1.02503 +/- 0.00094\n", + " 355/1 1.04650 1.02509 +/- 0.00094\n", + " 356/1 1.04703 1.02516 +/- 0.00094\n", + " 357/1 1.00260 1.02509 +/- 0.00094\n", + " 358/1 1.00075 1.02502 +/- 0.00094\n", + " 359/1 1.04874 1.02509 +/- 0.00094\n", + " 360/1 1.03211 1.02511 +/- 0.00094\n", + " 361/1 1.02136 1.02510 +/- 0.00094\n", + " 362/1 1.00803 1.02505 +/- 0.00094\n", + " 363/1 1.00319 1.02499 +/- 0.00094\n", + " 364/1 1.01443 1.02496 +/- 0.00093\n", + " 365/1 1.02685 1.02496 +/- 0.00093\n", + " 366/1 1.02373 1.02496 +/- 0.00093\n", + " 367/1 1.02026 1.02495 +/- 0.00093\n", + " 368/1 1.01579 1.02492 +/- 0.00092\n", + " 369/1 1.08004 1.02508 +/- 0.00093\n", + " 370/1 1.01715 1.02505 +/- 0.00093\n", + " 371/1 0.98578 1.02494 +/- 0.00093\n", + " 372/1 1.03033 1.02496 +/- 0.00093\n", + " 373/1 1.03269 1.02498 +/- 0.00093\n", + " 374/1 1.04050 1.02502 +/- 0.00093\n", + " 375/1 1.00760 1.02498 +/- 0.00093\n", + " 376/1 1.04492 1.02503 +/- 0.00093\n", + " 377/1 1.04983 1.02510 +/- 0.00093\n", + " 378/1 1.06022 1.02519 +/- 0.00093\n", + " 379/1 1.02516 1.02519 +/- 0.00093\n", + " 380/1 1.01740 1.02517 +/- 0.00092\n", + " 381/1 1.02520 1.02517 +/- 0.00092\n", + " 382/1 1.02820 1.02518 +/- 0.00092\n", + " 383/1 1.00697 1.02513 +/- 0.00092\n", + " 384/1 1.03497 1.02516 +/- 0.00092\n", + " 385/1 0.98404 1.02505 +/- 0.00092\n", + " 386/1 1.05206 1.02512 +/- 0.00092\n", + " 387/1 1.01502 1.02509 +/- 0.00092\n", + " 388/1 1.02196 1.02508 +/- 0.00092\n", + " 389/1 1.02856 1.02509 +/- 0.00091\n", + " 390/1 1.01376 1.02506 +/- 0.00091\n", + " 391/1 1.01696 1.02504 +/- 0.00091\n", + " 392/1 1.03283 1.02506 +/- 0.00091\n", + " 393/1 1.00787 1.02502 +/- 0.00091\n", + " 394/1 1.02184 1.02501 +/- 0.00090\n", + " 395/1 1.03170 1.02503 +/- 0.00090\n", + " 396/1 1.04406 1.02508 +/- 0.00090\n", + " 397/1 1.03939 1.02511 +/- 0.00090\n", + " 398/1 1.00329 1.02506 +/- 0.00090\n", + " 399/1 1.04518 1.02511 +/- 0.00090\n", + " 400/1 1.03435 1.02513 +/- 0.00090\n", + " 401/1 1.00525 1.02508 +/- 0.00089\n", + " 402/1 1.03112 1.02510 +/- 0.00089\n", + " 403/1 1.00188 1.02504 +/- 0.00089\n", + " 404/1 1.01241 1.02501 +/- 0.00089\n", + " 405/1 1.01796 1.02499 +/- 0.00089\n", + " 406/1 1.02686 1.02499 +/- 0.00089\n", + " 407/1 1.01003 1.02496 +/- 0.00088\n", + " 408/1 1.02359 1.02495 +/- 0.00088\n", + " 409/1 1.01258 1.02492 +/- 0.00088\n", + " 410/1 1.04361 1.02497 +/- 0.00088\n", + " 411/1 1.00885 1.02493 +/- 0.00088\n", + " 412/1 1.00999 1.02489 +/- 0.00088\n", + " 413/1 0.97832 1.02477 +/- 0.00088\n", + " 414/1 1.04183 1.02482 +/- 0.00088\n", + " 415/1 1.02279 1.02481 +/- 0.00088\n", + " 416/1 1.04197 1.02485 +/- 0.00088\n", + " 417/1 1.04617 1.02491 +/- 0.00088\n", + " 418/1 1.01311 1.02488 +/- 0.00088\n", + " 419/1 1.03904 1.02491 +/- 0.00087\n", + " 420/1 1.00458 1.02486 +/- 0.00087\n", + " 421/1 0.98580 1.02477 +/- 0.00088\n", + " 422/1 1.01850 1.02475 +/- 0.00087\n", + " 423/1 1.03739 1.02478 +/- 0.00087\n", + " 424/1 1.02716 1.02479 +/- 0.00087\n", + " 425/1 1.00711 1.02475 +/- 0.00087\n", + " 426/1 1.01008 1.02471 +/- 0.00087\n", + " 427/1 1.03332 1.02473 +/- 0.00087\n", + " 428/1 1.00501 1.02468 +/- 0.00087\n", + " 429/1 1.04549 1.02473 +/- 0.00086\n", + " 430/1 1.00582 1.02469 +/- 0.00086\n", + " 431/1 1.00586 1.02464 +/- 0.00086\n", + " 432/1 1.00082 1.02459 +/- 0.00086\n", + " 433/1 1.00835 1.02455 +/- 0.00086\n", + " 434/1 1.03965 1.02458 +/- 0.00086\n", + " 435/1 1.02385 1.02458 +/- 0.00086\n", + " 436/1 1.01440 1.02456 +/- 0.00086\n", + " 437/1 1.03127 1.02458 +/- 0.00085\n", + " 438/1 1.02961 1.02459 +/- 0.00085\n", + " 439/1 0.99584 1.02452 +/- 0.00085\n", + " 440/1 1.04964 1.02458 +/- 0.00085\n", + " 441/1 0.99792 1.02452 +/- 0.00085\n", + " 442/1 1.04971 1.02457 +/- 0.00085\n", + " 443/1 1.01504 1.02455 +/- 0.00085\n", + " 444/1 1.04359 1.02460 +/- 0.00085\n", + " 445/1 1.01148 1.02457 +/- 0.00085\n", + " 446/1 1.01203 1.02454 +/- 0.00085\n", + " 447/1 1.02353 1.02454 +/- 0.00085\n", + " 448/1 1.06299 1.02462 +/- 0.00085\n", + " 449/1 1.00017 1.02457 +/- 0.00085\n", + " 450/1 1.01193 1.02454 +/- 0.00085\n", + " 451/1 1.00179 1.02449 +/- 0.00085\n", + " 452/1 1.02425 1.02449 +/- 0.00085\n", + " 453/1 1.03629 1.02451 +/- 0.00084\n", + " 454/1 1.01955 1.02450 +/- 0.00084\n", + " 455/1 1.00870 1.02447 +/- 0.00084\n", + " 456/1 1.04230 1.02451 +/- 0.00084\n", + " 457/1 1.05081 1.02457 +/- 0.00084\n", + " 458/1 1.00271 1.02452 +/- 0.00084\n", + " 459/1 1.01010 1.02448 +/- 0.00084\n", + " 460/1 1.04656 1.02453 +/- 0.00084\n", + " 461/1 1.00790 1.02450 +/- 0.00084\n", + " 462/1 1.02214 1.02449 +/- 0.00084\n", + " 463/1 1.04401 1.02453 +/- 0.00083\n", + " 464/1 1.02863 1.02454 +/- 0.00083\n", + " 465/1 0.99971 1.02449 +/- 0.00083\n", + " 466/1 1.00344 1.02444 +/- 0.00083\n", + " 467/1 1.02810 1.02445 +/- 0.00083\n", + " 468/1 1.02091 1.02444 +/- 0.00083\n", + " 469/1 1.00545 1.02440 +/- 0.00083\n", + " 470/1 1.01590 1.02438 +/- 0.00083\n", + " 471/1 1.04465 1.02443 +/- 0.00083\n", + " 472/1 1.02028 1.02442 +/- 0.00082\n", + " 473/1 1.01951 1.02441 +/- 0.00082\n", + " 474/1 1.03280 1.02443 +/- 0.00082\n", + " 475/1 1.04722 1.02447 +/- 0.00082\n", + " 476/1 1.03587 1.02450 +/- 0.00082\n", + " 477/1 1.02234 1.02449 +/- 0.00082\n", + " 478/1 1.07848 1.02461 +/- 0.00082\n", + " 479/1 1.04759 1.02466 +/- 0.00082\n", + " 480/1 1.07189 1.02476 +/- 0.00083\n", + " 481/1 1.05811 1.02483 +/- 0.00083\n", + " 482/1 1.04554 1.02487 +/- 0.00083\n", + " 483/1 1.01956 1.02486 +/- 0.00083\n", + " 484/1 1.01055 1.02483 +/- 0.00083\n", + " 485/1 1.00845 1.02480 +/- 0.00082\n", + " 486/1 1.04607 1.02484 +/- 0.00082\n", + " 487/1 1.05955 1.02492 +/- 0.00083\n", + " 488/1 1.02245 1.02491 +/- 0.00082\n", + " 489/1 0.98206 1.02482 +/- 0.00083\n", + " 490/1 1.03786 1.02485 +/- 0.00083\n", + " 491/1 1.02973 1.02486 +/- 0.00082\n", + " 492/1 1.02890 1.02487 +/- 0.00082\n", + " 493/1 1.02086 1.02486 +/- 0.00082\n", + " 494/1 1.01194 1.02483 +/- 0.00082\n", + " 495/1 1.01902 1.02482 +/- 0.00082\n", + " 496/1 1.01783 1.02481 +/- 0.00082\n", + " 497/1 1.02129 1.02480 +/- 0.00081\n", + " 498/1 1.02407 1.02480 +/- 0.00081\n", + " 499/1 1.02873 1.02480 +/- 0.00081\n", + " 500/1 1.00998 1.02477 +/- 0.00081\n", + " Creating state point statepoint.500.h5...\n", "\n", " ===========================================================================\n", " ======================> SIMULATION FINISHED <======================\n", @@ -915,27 +1234,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4810E+00 seconds\n", - " Reading cross sections = 1.1600E+00 seconds\n", - " Total time in simulation = 9.8823E+01 seconds\n", - " Time in transport only = 9.8622E+01 seconds\n", - " Time in inactive batches = 2.1290E+00 seconds\n", - " Time in active batches = 9.6694E+01 seconds\n", - " Time synchronizing fission bank = 1.4000E-02 seconds\n", - " Sampling source sites = 1.1000E-02 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 1.5880E+00 seconds\n", + " Reading cross sections = 1.2650E+00 seconds\n", + " Total time in simulation = 2.6051E+02 seconds\n", + " Time in transport only = 2.6013E+02 seconds\n", + " Time in inactive batches = 2.0990E+00 seconds\n", + " Time in active batches = 2.5841E+02 seconds\n", + " Time synchronizing fission bank = 6.5000E-02 seconds\n", + " Sampling source sites = 4.4000E-02 seconds\n", + " SEND/RECV source sites = 2.1000E-02 seconds\n", " Time accumulating tallies = 2.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.0031E+02 seconds\n", - " Calculation Rate (inactive) = 23485.2 neutrons/second\n", - " Calculation Rate (active) = 9824.81 neutrons/second\n", + " Total time elapsed = 2.6211E+02 seconds\n", + " Calculation Rate (inactive) = 23820.9 neutrons/second\n", + " Calculation Rate (active) = 9480.98 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02505 +/- 0.00122\n", - " k-effective (Track-length) = 1.02604 +/- 0.00129\n", - " k-effective (Absorption) = 1.02501 +/- 0.00111\n", - " Combined k-effective = 1.02544 +/- 0.00091\n", + " k-effective (Collision) = 1.02480 +/- 0.00073\n", + " k-effective (Track-length) = 1.02477 +/- 0.00081\n", + " k-effective (Absorption) = 1.02552 +/- 0.00068\n", + " Combined k-effective = 1.02519 +/- 0.00055\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -946,7 +1265,7 @@ "0" ] }, - "execution_count": 25, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -965,14 +1284,14 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "# Move the StatePoint File\n", - "ce_spfile = './ce.h5'\n", + "ce_spfile = './ce_statepoint.h5'\n", "os.rename('statepoint.' + str(batches) + '.h5', ce_spfile)\n", "# Move the Summary file\n", "ce_sumfile = './ce_summary.h5'\n", @@ -985,44 +1304,26 @@ "source": [ "# Tally Data Processing\n", "\n", - "Our simulation ran successfully and created statepoint and summary output files. We begin our analysis by instantiating a `StatePoint` object." - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Load the statepoint file\n", - "sp = openmc.StatePoint(ce_spfile)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next we will save the value of keff from the continuous-energy calculation for later comparison" + "Our simulation ran successfully and created statepoint and summary output files. Let's begin by loading the StatePoint file, but not automatically linking the summary file." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ - "ce_keff = sp.k_combined" + "# Load the statepoint file, but not the summary file, as it is a different filename than expected.\n", + "sp = openmc.StatePoint(ce_spfile, autolink=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "In addition to the statepoint file, our simulation also created a summary file which encapsulates information about the materials and geometry. This is necessary for the `openmc.mgxs` module to properly process the tally data. We first create a `Summary` object and link it with the statepoint." + "In addition to the statepoint file, our simulation also created a summary file which encapsulates information about the materials and geometry. This is necessary for the `openmc.mgxs` module to properly process the tally data. We first create a `Summary` object and link it with the statepoint. Normally this would not need to be performed, but since we have renamed our summary file to avoid conflicts with the Multi-Group calculation's summary file, we will load this in explicitly." ] }, { @@ -1037,32 +1338,6 @@ "sp.link_with_summary(su)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next we will extract our fission distribution results from the statepoint for later comparison." - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Get the OpenMC fission rate mesh tally data\n", - "mesh_tally = sp.get_tally(name='mesh tally')\n", - "openmc_fission_rates = mesh_tally.get_values(scores=['fission'])\n", - "\n", - "# Reshape array to 2D for plotting\n", - "openmc_fission_rates.shape = (17,17)\n", - "\n", - "# Normalize to the average pin power\n", - "openmc_fission_rates /= np.mean(openmc_fission_rates)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -1072,7 +1347,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -1105,7 +1380,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -1114,53 +1389,38 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/nelsonag/git/openmc/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n", " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", - "/home/nelsonag/git/openmc/openmc/tallies.py:1997: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1989: RuntimeWarning: invalid value encountered in true_divide\n", " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n", - "/home/nelsonag/git/openmc/openmc/tallies.py:1998: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1990: RuntimeWarning: invalid value encountered in true_divide\n", " new_tally._mean = data['self']['mean'] / data['other']['mean']\n" ] - }, - { - "data": { - "text/plain": [ - "{10000: 'fuel.2g',\n", - " 10001: 'fuel_clad.2g',\n", - " 10002: 'fuel_mod.2g',\n", - " 10003: 'gt_inmod.2g',\n", - " 10004: 'gt_clad.2g',\n", - " 10005: 'gt_outmod.2g'}" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ "mgxs_lib.write_mg_library(filename='mgxs', xs_type='macro',\n", " domain_names=['fuel', 'fuel_clad', 'fuel_mod',\n", " 'gt_inmod', 'gt_clad', 'gt_outmod'],\n", - " xs_ids='2g')" + " xs_ids='2m')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Now we will need to recreate similar xml files from above, beginning with materials.xml" + "Now we will need to recreate similar xml files from above, beginning with materials.xml. Similar to how continuous-energy cross section libraries are named, the `openmc.Macroscopic` quantities below can either have their `xs_id` included (i.e., `'.2m'`), or this can be left off but the `default_xs` parameter of the materials file be used instead to be set to the `'xs_id'` of interest (which is `'.2m'` in this case as defined in the previous cell)." ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [], "source": [ - "# Instantiate our Macroscopic Data\n", + "# Instantiate our Macroscopic Data using mat_names for the name\n", "fuel_macro = openmc.Macroscopic('fuel')\n", "fuel_clad_macro = openmc.Macroscopic('fuel_clad')\n", "fuel_mod_macro = openmc.Macroscopic('fuel_mod')\n", @@ -1171,39 +1431,39 @@ "# Now define the materials\n", "\n", "# 1.6 enriched fuel UO2\n", - "fuel = openmc.Material(name='1.6% Fuel UO2')\n", + "fuel = openmc.Material(name='1.6% Fuel UO2', material_id=1)\n", "fuel.set_density('macro', 1.0)\n", "fuel.add_macroscopic(fuel_macro)\n", "\n", "# 1.6 enriched fuel cladding\n", - "fuel_clad = openmc.Material(name='1.6% Fuel Clad')\n", + "fuel_clad = openmc.Material(name='1.6% Fuel Clad', material_id=2)\n", "fuel_clad.set_density('macro', 1.0)\n", "fuel_clad.add_macroscopic(fuel_clad_macro)\n", "\n", "# 1.6 enriched fuel moderator\n", - "fuel_mod = openmc.Material(name='1.6% Fuel Water')\n", + "fuel_mod = openmc.Material(name='1.6% Fuel Water', material_id=3)\n", "fuel_mod.set_density('macro', 1.0)\n", "fuel_mod.add_macroscopic(fuel_mod_macro)\n", "\n", "# Guide Tube Inner Moderator\n", - "gt_inmod = openmc.Material(name='GT Inner Water')\n", + "gt_inmod = openmc.Material(name='GT Inner Water', material_id=4)\n", "gt_inmod.set_density('macro', 1.0)\n", "gt_inmod.add_macroscopic(gt_inmod_macro)\n", "\n", "# Guide Tube Cladding\n", - "gt_clad = openmc.Material(name='GT Clad')\n", + "gt_clad = openmc.Material(name='GT Clad', material_id=5)\n", "gt_clad.set_density('macro', 1.0)\n", "gt_clad.add_macroscopic(gt_clad_macro)\n", "\n", "# Guide Tube Outer Moderator\n", - "gt_outmod = openmc.Material(name='GT Outer Water')\n", + "gt_outmod = openmc.Material(name='GT Outer Water', material_id=6)\n", "gt_outmod.set_density('macro', 1.0)\n", "gt_outmod.add_macroscopic(gt_outmod_macro)\n", "\n", "# Finally, instantiate our Materials object\n", "materials_file = openmc.Materials((fuel, fuel_clad, fuel_mod,\n", " gt_inmod, gt_clad, gt_outmod))\n", - "materials_file.default_xs = '2g'\n", + "materials_file.default_xs = '2m'\n", "\n", "# Export to \"materials.xml\"\n", "materials_file.export_to_xml()\n" @@ -1213,61 +1473,62 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For our geometry files we will simply repeat what as done for continuous-energy mode, except change the cell fill (i.e., the material) to use our newly defined materials." + "\n", + "For our geometry files we will do the same as before but now we will be pointing at our newly created materials instead." ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Create a Universe to encapsulate a fuel pin\n", - "fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin')\n", + "fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin', universe_id=10)\n", "\n", "# Create fuel Cell\n", - "fuel_cell = openmc.Cell(name='1.6% Fuel')\n", + "fuel_cell = openmc.Cell(name='1.6% Fuel', cell_id=1)\n", "fuel_cell.fill = fuel\n", "fuel_cell.region = -fuel_outer_radius\n", "fuel_pin_universe.add_cell(fuel_cell)\n", "\n", "# Create a clad Cell\n", - "clad_cell = openmc.Cell(name='1.6% Clad')\n", + "clad_cell = openmc.Cell(name='1.6% Clad', cell_id=2)\n", "clad_cell.fill = fuel_clad\n", "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", "fuel_pin_universe.add_cell(clad_cell)\n", "\n", "# Create a moderator Cell\n", - "moderator_cell = openmc.Cell(name='1.6% Moderator')\n", + "moderator_cell = openmc.Cell(name='1.6% Moderator', cell_id=3)\n", "moderator_cell.fill = fuel_mod\n", "moderator_cell.region = +clad_outer_radius\n", "fuel_pin_universe.add_cell(moderator_cell)\n", "\n", "# Create a Universe to encapsulate a control rod guide tube\n", - "guide_tube_universe = openmc.Universe(name='Guide Tube')\n", + "guide_tube_universe = openmc.Universe(name='Guide Tube', universe_id=20)\n", "\n", "# Create guide tube Cell\n", - "guide_tube_cell = openmc.Cell(name='Guide Tube Water')\n", + "guide_tube_cell = openmc.Cell(name='Guide Tube Water', cell_id=4)\n", "guide_tube_cell.fill = gt_inmod\n", "guide_tube_cell.region = -fuel_outer_radius\n", "guide_tube_universe.add_cell(guide_tube_cell)\n", "\n", "# Create a clad Cell\n", - "clad_cell = openmc.Cell(name='Guide Clad')\n", + "clad_cell = openmc.Cell(name='Guide Clad', cell_id=5)\n", "clad_cell.fill = gt_clad\n", "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", "guide_tube_universe.add_cell(clad_cell)\n", "\n", "# Create a moderator Cell\n", - "moderator_cell = openmc.Cell(name='Guide Tube Moderator')\n", + "moderator_cell = openmc.Cell(name='Guide Tube Moderator', cell_id=6)\n", "moderator_cell.fill = gt_outmod\n", "moderator_cell.region = +clad_outer_radius\n", "guide_tube_universe.add_cell(moderator_cell)\n", "\n", "# Create fuel assembly Lattice\n", - "assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n", + "assembly = openmc.RectLattice(name='1.6% Fuel Assembly', lattice_id=100)\n", "assembly.dimension = (17, 17)\n", "assembly.pitch = (1.26, 1.26)\n", "assembly.lower_left = [-1.26 * 17. / 2.0] * 2\n", @@ -1289,7 +1550,7 @@ "assembly.universes = universes\n", "\n", "# Create root Cell\n", - "root_cell = openmc.Cell(name='root cell')\n", + "root_cell = openmc.Cell(name='root cell', cell_id=0)\n", "root_cell.fill = assembly\n", "\n", "# Add boundary planes\n", @@ -1316,7 +1577,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "metadata": { "collapsed": true }, @@ -1334,50 +1595,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Finally, lets tell OpenMC we want to tally fissions over a mesh for comparison. " + "Finally, since we want similar tally data in the end, we will leave our pre-existing `tallies.xml` file for this calculation.\n", + "\n", + "At this point, the problem is set up and we can run the multi-group calculation." ] }, { "cell_type": "code", - "execution_count": 36, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Instantiate a tally Mesh\n", - "mesh = openmc.Mesh(mesh_id=1)\n", - "mesh.type = 'regular'\n", - "mesh.dimension = [17, 17]\n", - "mesh.lower_left = [-10.71, -10.71]\n", - "mesh.upper_right = [+10.71, +10.71]\n", - "\n", - "# Instantiate tally Filter\n", - "mesh_filter = openmc.Filter()\n", - "mesh_filter.mesh = mesh\n", - "\n", - "# Instantiate the Tally\n", - "tally = openmc.Tally(name='mesh tally')\n", - "tally.filters = [mesh_filter]\n", - "tally.scores = ['fission']\n", - "\n", - "# Add tally to collection\n", - "tallies_file.append(tally)\n", - "\n", - "# Export all tallies to a \"tallies.xml\" file\n", - "tallies_file.export_to_xml()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Before we run the calculation we will close the StatePoint file (as we are about to over-write it), and then we can run the multi-group calculation." - ] - }, - { - "cell_type": "code", - "execution_count": 37, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -1402,8 +1627,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 179e9ab147e505563d118ed58096b3d225160ffa\n", - " Date/Time: 2016-05-07 14:23:45\n", + " Git SHA1: c779ca42c41a062a6a813e03f2add2d182ca9190\n", + " Date/Time: 2016-05-12 21:19:25\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1417,12 +1642,12 @@ " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", " Loading Cross Section Data...\n", - " Loading fuel.2g Data...\n", - " Loading fuel_clad.2g Data...\n", - " Loading fuel_mod.2g Data...\n", - " Loading gt_inmod.2g Data...\n", - " Loading gt_clad.2g Data...\n", - " Loading gt_outmod.2g Data...\n", + " Loading fuel.2m Data...\n", + " Loading fuel_clad.2m Data...\n", + " Loading fuel_mod.2m Data...\n", + " Loading gt_inmod.2m Data...\n", + " Loading gt_clad.2m Data...\n", + " Loading gt_outmod.2m Data...\n", " Initializing source particles...\n", "\n", " ===========================================================================\n", @@ -1431,207 +1656,507 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.01863 \n", - " 2/1 1.02630 \n", - " 3/1 1.03077 \n", - " 4/1 0.99715 \n", - " 5/1 1.02328 \n", - " 6/1 1.02283 \n", - " 7/1 1.00540 \n", - " 8/1 1.02232 \n", - " 9/1 0.99782 \n", - " 10/1 1.00838 \n", - " 11/1 1.01803 \n", - " 12/1 1.02530 1.02167 +/- 0.00363\n", - " 13/1 1.00514 1.01616 +/- 0.00589\n", - " 14/1 0.98994 1.00960 +/- 0.00777\n", - " 15/1 1.01028 1.00974 +/- 0.00602\n", - " 16/1 1.04607 1.01580 +/- 0.00780\n", - " 17/1 1.03300 1.01825 +/- 0.00703\n", - " 18/1 1.03149 1.01991 +/- 0.00631\n", - " 19/1 0.98692 1.01624 +/- 0.00667\n", - " 20/1 1.05205 1.01982 +/- 0.00695\n", - " 21/1 1.01572 1.01945 +/- 0.00630\n", - " 22/1 1.02517 1.01993 +/- 0.00577\n", - " 23/1 1.00274 1.01861 +/- 0.00547\n", - " 24/1 1.04739 1.02066 +/- 0.00547\n", - " 25/1 1.01883 1.02054 +/- 0.00509\n", - " 26/1 1.02021 1.02052 +/- 0.00476\n", - " 27/1 1.04696 1.02207 +/- 0.00474\n", - " 28/1 1.02751 1.02238 +/- 0.00448\n", - " 29/1 1.09537 1.02622 +/- 0.00572\n", - " 30/1 1.03685 1.02675 +/- 0.00545\n", - " 31/1 0.99812 1.02539 +/- 0.00536\n", - " 32/1 1.02526 1.02538 +/- 0.00511\n", - " 33/1 1.05466 1.02665 +/- 0.00505\n", - " 34/1 1.04816 1.02755 +/- 0.00491\n", - " 35/1 1.00148 1.02651 +/- 0.00483\n", - " 36/1 1.02315 1.02638 +/- 0.00464\n", - " 37/1 1.05771 1.02754 +/- 0.00461\n", - " 38/1 1.01675 1.02715 +/- 0.00446\n", - " 39/1 1.03707 1.02749 +/- 0.00432\n", - " 40/1 1.01903 1.02721 +/- 0.00418\n", - " 41/1 1.00332 1.02644 +/- 0.00412\n", - " 42/1 1.02533 1.02641 +/- 0.00399\n", - " 43/1 0.98531 1.02516 +/- 0.00406\n", - " 44/1 1.00406 1.02454 +/- 0.00399\n", - " 45/1 1.01057 1.02414 +/- 0.00389\n", - " 46/1 1.02755 1.02424 +/- 0.00378\n", - " 47/1 1.02783 1.02433 +/- 0.00368\n", - " 48/1 1.00003 1.02369 +/- 0.00364\n", - " 49/1 1.00442 1.02320 +/- 0.00358\n", - " 50/1 1.03215 1.02342 +/- 0.00350\n", - " 51/1 1.01672 1.02326 +/- 0.00341\n", - " 52/1 1.03702 1.02359 +/- 0.00335\n", - " 53/1 1.02063 1.02352 +/- 0.00327\n", - " 54/1 1.04596 1.02403 +/- 0.00323\n", - " 55/1 1.01926 1.02392 +/- 0.00316\n", - " 56/1 1.03058 1.02407 +/- 0.00310\n", - " 57/1 1.06126 1.02486 +/- 0.00313\n", - " 58/1 1.06411 1.02568 +/- 0.00317\n", - " 59/1 1.03278 1.02582 +/- 0.00311\n", - " 60/1 1.04472 1.02620 +/- 0.00307\n", - " 61/1 1.00186 1.02572 +/- 0.00305\n", - " 62/1 1.01133 1.02545 +/- 0.00300\n", - " 63/1 1.03713 1.02567 +/- 0.00295\n", - " 64/1 1.01363 1.02544 +/- 0.00291\n", - " 65/1 0.98126 1.02464 +/- 0.00296\n", - " 66/1 1.01500 1.02447 +/- 0.00292\n", - " 67/1 1.02437 1.02447 +/- 0.00286\n", - " 68/1 1.05057 1.02492 +/- 0.00285\n", - " 69/1 1.04903 1.02533 +/- 0.00283\n", - " 70/1 1.02199 1.02527 +/- 0.00278\n", - " 71/1 1.00536 1.02494 +/- 0.00276\n", - " 72/1 1.01658 1.02481 +/- 0.00272\n", - " 73/1 1.00866 1.02455 +/- 0.00268\n", - " 74/1 1.01800 1.02445 +/- 0.00264\n", - " 75/1 0.99176 1.02395 +/- 0.00265\n", - " 76/1 1.03336 1.02409 +/- 0.00262\n", - " 77/1 1.02699 1.02413 +/- 0.00258\n", - " 78/1 1.01596 1.02401 +/- 0.00254\n", - " 79/1 1.02292 1.02400 +/- 0.00250\n", - " 80/1 1.04804 1.02434 +/- 0.00249\n", - " 81/1 0.99494 1.02393 +/- 0.00249\n", - " 82/1 1.02646 1.02396 +/- 0.00246\n", - " 83/1 1.01223 1.02380 +/- 0.00243\n", - " 84/1 1.02572 1.02383 +/- 0.00239\n", - " 85/1 1.02709 1.02387 +/- 0.00236\n", - " 86/1 1.00315 1.02360 +/- 0.00235\n", - " 87/1 1.01809 1.02353 +/- 0.00232\n", - " 88/1 1.01566 1.02342 +/- 0.00229\n", - " 89/1 1.01093 1.02327 +/- 0.00227\n", - " 90/1 1.02812 1.02333 +/- 0.00224\n", - " 91/1 1.02288 1.02332 +/- 0.00221\n", - " 92/1 1.04070 1.02353 +/- 0.00219\n", - " 93/1 1.03697 1.02370 +/- 0.00217\n", - " 94/1 1.03486 1.02383 +/- 0.00215\n", - " 95/1 1.06359 1.02430 +/- 0.00218\n", - " 96/1 1.04811 1.02457 +/- 0.00217\n", - " 97/1 1.01303 1.02444 +/- 0.00215\n", - " 98/1 1.01243 1.02430 +/- 0.00213\n", - " 99/1 1.03238 1.02439 +/- 0.00211\n", - " 100/1 1.02054 1.02435 +/- 0.00208\n", - " 101/1 1.00402 1.02413 +/- 0.00207\n", - " 102/1 1.03800 1.02428 +/- 0.00206\n", - " 103/1 1.02541 1.02429 +/- 0.00203\n", - " 104/1 1.06867 1.02476 +/- 0.00207\n", - " 105/1 1.03192 1.02484 +/- 0.00205\n", - " 106/1 1.00100 1.02459 +/- 0.00204\n", - " 107/1 1.01098 1.02445 +/- 0.00202\n", - " 108/1 1.02930 1.02450 +/- 0.00200\n", - " 109/1 1.02173 1.02447 +/- 0.00198\n", - " 110/1 1.01411 1.02437 +/- 0.00197\n", - " 111/1 1.03920 1.02452 +/- 0.00195\n", - " 112/1 1.01984 1.02447 +/- 0.00193\n", - " 113/1 1.03912 1.02461 +/- 0.00192\n", - " 114/1 1.04124 1.02477 +/- 0.00191\n", - " 115/1 1.04802 1.02499 +/- 0.00190\n", - " 116/1 1.04129 1.02515 +/- 0.00189\n", - " 117/1 1.03072 1.02520 +/- 0.00187\n", - " 118/1 1.05167 1.02544 +/- 0.00187\n", - " 119/1 0.99954 1.02521 +/- 0.00187\n", - " 120/1 1.00093 1.02499 +/- 0.00187\n", - " 121/1 1.04929 1.02520 +/- 0.00186\n", - " 122/1 1.04556 1.02539 +/- 0.00185\n", - " 123/1 1.03298 1.02545 +/- 0.00184\n", - " 124/1 1.01603 1.02537 +/- 0.00182\n", - " 125/1 1.03522 1.02546 +/- 0.00181\n", - " 126/1 1.05644 1.02572 +/- 0.00181\n", - " 127/1 1.03754 1.02582 +/- 0.00180\n", - " 128/1 1.01524 1.02573 +/- 0.00179\n", - " 129/1 1.01263 1.02562 +/- 0.00178\n", - " 130/1 0.99835 1.02540 +/- 0.00178\n", - " 131/1 1.01268 1.02529 +/- 0.00177\n", - " 132/1 1.03975 1.02541 +/- 0.00175\n", - " 133/1 1.00702 1.02526 +/- 0.00175\n", - " 134/1 1.02335 1.02525 +/- 0.00173\n", - " 135/1 1.04378 1.02539 +/- 0.00173\n", - " 136/1 1.04610 1.02556 +/- 0.00172\n", - " 137/1 1.02284 1.02554 +/- 0.00171\n", - " 138/1 1.05720 1.02578 +/- 0.00171\n", - " 139/1 1.00965 1.02566 +/- 0.00170\n", - " 140/1 1.03719 1.02575 +/- 0.00169\n", - " 141/1 1.02413 1.02574 +/- 0.00168\n", - " 142/1 1.03125 1.02578 +/- 0.00167\n", - " 143/1 1.03641 1.02586 +/- 0.00166\n", - " 144/1 1.02137 1.02582 +/- 0.00164\n", - " 145/1 1.01522 1.02575 +/- 0.00163\n", - " 146/1 1.05163 1.02594 +/- 0.00163\n", - " 147/1 1.03612 1.02601 +/- 0.00162\n", - " 148/1 1.03346 1.02606 +/- 0.00161\n", - " 149/1 1.02306 1.02604 +/- 0.00160\n", - " 150/1 1.01764 1.02598 +/- 0.00159\n", - " 151/1 1.01787 1.02592 +/- 0.00158\n", - " 152/1 1.03263 1.02597 +/- 0.00157\n", - " 153/1 1.01877 1.02592 +/- 0.00156\n", - " 154/1 1.02870 1.02594 +/- 0.00155\n", - " 155/1 1.03071 1.02597 +/- 0.00154\n", - " 156/1 1.04229 1.02609 +/- 0.00153\n", - " 157/1 1.03973 1.02618 +/- 0.00152\n", - " 158/1 1.02180 1.02615 +/- 0.00151\n", - " 159/1 1.01067 1.02604 +/- 0.00151\n", - " 160/1 1.02888 1.02606 +/- 0.00150\n", - " 161/1 1.01711 1.02600 +/- 0.00149\n", - " 162/1 1.01087 1.02590 +/- 0.00148\n", - " 163/1 1.01886 1.02586 +/- 0.00147\n", - " 164/1 1.02210 1.02583 +/- 0.00146\n", - " 165/1 1.04020 1.02593 +/- 0.00146\n", - " 166/1 1.03658 1.02600 +/- 0.00145\n", - " 167/1 1.03222 1.02603 +/- 0.00144\n", - " 168/1 1.03247 1.02608 +/- 0.00143\n", - " 169/1 0.99739 1.02590 +/- 0.00143\n", - " 170/1 1.02464 1.02589 +/- 0.00142\n", - " 171/1 1.04623 1.02601 +/- 0.00142\n", - " 172/1 1.04328 1.02612 +/- 0.00142\n", - " 173/1 1.00812 1.02601 +/- 0.00141\n", - " 174/1 1.01224 1.02593 +/- 0.00141\n", - " 175/1 1.00882 1.02582 +/- 0.00140\n", - " 176/1 1.01286 1.02574 +/- 0.00140\n", - " 177/1 1.02048 1.02571 +/- 0.00139\n", - " 178/1 1.04269 1.02581 +/- 0.00138\n", - " 179/1 1.05862 1.02601 +/- 0.00139\n", - " 180/1 1.02924 1.02603 +/- 0.00138\n", - " 181/1 1.01491 1.02596 +/- 0.00137\n", - " 182/1 1.04255 1.02606 +/- 0.00137\n", - " 183/1 0.99191 1.02586 +/- 0.00137\n", - " 184/1 1.00392 1.02573 +/- 0.00137\n", - " 185/1 1.02982 1.02576 +/- 0.00137\n", - " 186/1 1.02682 1.02576 +/- 0.00136\n", - " 187/1 1.01484 1.02570 +/- 0.00135\n", - " 188/1 1.02825 1.02572 +/- 0.00134\n", - " 189/1 0.98954 1.02551 +/- 0.00135\n", - " 190/1 1.00522 1.02540 +/- 0.00135\n", - " 191/1 1.03762 1.02547 +/- 0.00134\n", - " 192/1 1.02091 1.02544 +/- 0.00134\n", - " 193/1 1.04549 1.02555 +/- 0.00133\n", - " 194/1 1.05531 1.02572 +/- 0.00134\n", - " 195/1 1.01479 1.02566 +/- 0.00133\n", - " 196/1 1.01337 1.02559 +/- 0.00132\n", - " 197/1 0.99187 1.02541 +/- 0.00133\n", - " 198/1 1.01280 1.02534 +/- 0.00132\n", - " 199/1 1.00049 1.02521 +/- 0.00132\n", - " 200/1 1.01879 1.02518 +/- 0.00132\n", - " Creating state point statepoint.200.h5...\n", + " 1/1 1.01702 \n", + " 2/1 0.99463 \n", + " 3/1 1.02321 \n", + " 4/1 0.98628 \n", + " 5/1 1.03122 \n", + " 6/1 1.00774 \n", + " 7/1 1.05616 \n", + " 8/1 1.03051 \n", + " 9/1 1.02321 \n", + " 10/1 1.04380 \n", + " 11/1 1.05837 \n", + " 12/1 1.01514 1.03676 +/- 0.02161\n", + " 13/1 1.06720 1.04690 +/- 0.01608\n", + " 14/1 1.01696 1.03942 +/- 0.01361\n", + " 15/1 1.03549 1.03863 +/- 0.01057\n", + " 16/1 1.01599 1.03486 +/- 0.00942\n", + " 17/1 1.03070 1.03427 +/- 0.00799\n", + " 18/1 1.03778 1.03470 +/- 0.00693\n", + " 19/1 1.03042 1.03423 +/- 0.00613\n", + " 20/1 1.01047 1.03185 +/- 0.00598\n", + " 21/1 1.03251 1.03191 +/- 0.00541\n", + " 22/1 1.02047 1.03096 +/- 0.00503\n", + " 23/1 1.01729 1.02991 +/- 0.00474\n", + " 24/1 1.02948 1.02988 +/- 0.00439\n", + " 25/1 1.01963 1.02919 +/- 0.00414\n", + " 26/1 1.00626 1.02776 +/- 0.00413\n", + " 27/1 1.04531 1.02879 +/- 0.00402\n", + " 28/1 0.99936 1.02716 +/- 0.00412\n", + " 29/1 1.04497 1.02809 +/- 0.00401\n", + " 30/1 1.02429 1.02790 +/- 0.00381\n", + " 31/1 1.05112 1.02901 +/- 0.00379\n", + " 32/1 1.01843 1.02853 +/- 0.00365\n", + " 33/1 1.04478 1.02924 +/- 0.00355\n", + " 34/1 1.01719 1.02873 +/- 0.00344\n", + " 35/1 0.99873 1.02753 +/- 0.00351\n", + " 36/1 1.00054 1.02649 +/- 0.00353\n", + " 37/1 1.03986 1.02699 +/- 0.00343\n", + " 38/1 1.02243 1.02683 +/- 0.00331\n", + " 39/1 1.02744 1.02685 +/- 0.00319\n", + " 40/1 1.01174 1.02634 +/- 0.00313\n", + " 41/1 1.04973 1.02710 +/- 0.00312\n", + " 42/1 0.99564 1.02612 +/- 0.00317\n", + " 43/1 1.03022 1.02624 +/- 0.00308\n", + " 44/1 1.03526 1.02650 +/- 0.00300\n", + " 45/1 1.02143 1.02636 +/- 0.00292\n", + " 46/1 1.03264 1.02653 +/- 0.00284\n", + " 47/1 1.03868 1.02686 +/- 0.00278\n", + " 48/1 1.02385 1.02678 +/- 0.00271\n", + " 49/1 1.03897 1.02710 +/- 0.00266\n", + " 50/1 1.01267 1.02674 +/- 0.00261\n", + " 51/1 0.99683 1.02601 +/- 0.00265\n", + " 52/1 1.04189 1.02638 +/- 0.00261\n", + " 53/1 1.02871 1.02644 +/- 0.00255\n", + " 54/1 1.02564 1.02642 +/- 0.00250\n", + " 55/1 1.02955 1.02649 +/- 0.00244\n", + " 56/1 1.02390 1.02643 +/- 0.00239\n", + " 57/1 1.03342 1.02658 +/- 0.00234\n", + " 58/1 1.01430 1.02633 +/- 0.00231\n", + " 59/1 0.99242 1.02563 +/- 0.00236\n", + " 60/1 1.00442 1.02521 +/- 0.00235\n", + " 61/1 1.03870 1.02547 +/- 0.00232\n", + " 62/1 1.02146 1.02540 +/- 0.00228\n", + " 63/1 1.04782 1.02582 +/- 0.00227\n", + " 64/1 1.02872 1.02587 +/- 0.00223\n", + " 65/1 1.02420 1.02584 +/- 0.00219\n", + " 66/1 1.01974 1.02573 +/- 0.00215\n", + " 67/1 1.00774 1.02542 +/- 0.00214\n", + " 68/1 1.01323 1.02521 +/- 0.00211\n", + " 69/1 1.01468 1.02503 +/- 0.00208\n", + " 70/1 1.02869 1.02509 +/- 0.00205\n", + " 71/1 1.02284 1.02505 +/- 0.00202\n", + " 72/1 1.04815 1.02543 +/- 0.00202\n", + " 73/1 1.01119 1.02520 +/- 0.00200\n", + " 74/1 1.03314 1.02533 +/- 0.00197\n", + " 75/1 1.02333 1.02529 +/- 0.00194\n", + " 76/1 1.04030 1.02552 +/- 0.00193\n", + " 77/1 1.02537 1.02552 +/- 0.00190\n", + " 78/1 1.02875 1.02557 +/- 0.00187\n", + " 79/1 1.03588 1.02572 +/- 0.00185\n", + " 80/1 1.05250 1.02610 +/- 0.00186\n", + " 81/1 1.00477 1.02580 +/- 0.00186\n", + " 82/1 1.03903 1.02598 +/- 0.00184\n", + " 83/1 1.02378 1.02595 +/- 0.00182\n", + " 84/1 1.01107 1.02575 +/- 0.00180\n", + " 85/1 1.01550 1.02561 +/- 0.00178\n", + " 86/1 1.00540 1.02535 +/- 0.00178\n", + " 87/1 1.03056 1.02542 +/- 0.00176\n", + " 88/1 1.01742 1.02531 +/- 0.00174\n", + " 89/1 0.99730 1.02496 +/- 0.00175\n", + " 90/1 1.03569 1.02509 +/- 0.00174\n", + " 91/1 1.04514 1.02534 +/- 0.00173\n", + " 92/1 1.02757 1.02537 +/- 0.00171\n", + " 93/1 1.00610 1.02514 +/- 0.00171\n", + " 94/1 1.03576 1.02526 +/- 0.00169\n", + " 95/1 1.03732 1.02540 +/- 0.00168\n", + " 96/1 1.04784 1.02567 +/- 0.00168\n", + " 97/1 1.06507 1.02612 +/- 0.00172\n", + " 98/1 1.03673 1.02624 +/- 0.00170\n", + " 99/1 1.01270 1.02609 +/- 0.00169\n", + " 100/1 1.01980 1.02602 +/- 0.00167\n", + " 101/1 1.01357 1.02588 +/- 0.00166\n", + " 102/1 1.03125 1.02594 +/- 0.00164\n", + " 103/1 1.01527 1.02582 +/- 0.00163\n", + " 104/1 1.02403 1.02580 +/- 0.00161\n", + " 105/1 1.03435 1.02589 +/- 0.00160\n", + " 106/1 1.04113 1.02605 +/- 0.00159\n", + " 107/1 1.03291 1.02612 +/- 0.00157\n", + " 108/1 1.02478 1.02611 +/- 0.00156\n", + " 109/1 1.05814 1.02643 +/- 0.00158\n", + " 110/1 1.02647 1.02643 +/- 0.00156\n", + " 111/1 0.98951 1.02607 +/- 0.00159\n", + " 112/1 1.00739 1.02589 +/- 0.00158\n", + " 113/1 1.04165 1.02604 +/- 0.00157\n", + " 114/1 1.00047 1.02579 +/- 0.00158\n", + " 115/1 1.02550 1.02579 +/- 0.00156\n", + " 116/1 1.02408 1.02577 +/- 0.00155\n", + " 117/1 1.03110 1.02582 +/- 0.00153\n", + " 118/1 1.02874 1.02585 +/- 0.00152\n", + " 119/1 1.02348 1.02583 +/- 0.00151\n", + " 120/1 1.01969 1.02577 +/- 0.00149\n", + " 121/1 1.02312 1.02575 +/- 0.00148\n", + " 122/1 1.03261 1.02581 +/- 0.00147\n", + " 123/1 0.98394 1.02544 +/- 0.00150\n", + " 124/1 1.03771 1.02555 +/- 0.00149\n", + " 125/1 1.01857 1.02549 +/- 0.00148\n", + " 126/1 1.00066 1.02527 +/- 0.00148\n", + " 127/1 1.02372 1.02526 +/- 0.00147\n", + " 128/1 1.03307 1.02533 +/- 0.00146\n", + " 129/1 1.00889 1.02519 +/- 0.00145\n", + " 130/1 1.02053 1.02515 +/- 0.00144\n", + " 131/1 1.00943 1.02502 +/- 0.00144\n", + " 132/1 1.07225 1.02541 +/- 0.00148\n", + " 133/1 1.04068 1.02553 +/- 0.00147\n", + " 134/1 1.03509 1.02561 +/- 0.00146\n", + " 135/1 1.01250 1.02550 +/- 0.00145\n", + " 136/1 1.02179 1.02547 +/- 0.00144\n", + " 137/1 1.05685 1.02572 +/- 0.00145\n", + " 138/1 1.04217 1.02585 +/- 0.00144\n", + " 139/1 1.02793 1.02586 +/- 0.00143\n", + " 140/1 1.01207 1.02576 +/- 0.00143\n", + " 141/1 1.03445 1.02582 +/- 0.00142\n", + " 142/1 1.03579 1.02590 +/- 0.00141\n", + " 143/1 1.00786 1.02576 +/- 0.00140\n", + " 144/1 0.99089 1.02550 +/- 0.00142\n", + " 145/1 1.02617 1.02551 +/- 0.00141\n", + " 146/1 1.01691 1.02545 +/- 0.00140\n", + " 147/1 1.00692 1.02531 +/- 0.00139\n", + " 148/1 0.97702 1.02496 +/- 0.00143\n", + " 149/1 1.04002 1.02507 +/- 0.00142\n", + " 150/1 1.01262 1.02498 +/- 0.00141\n", + " 151/1 1.03613 1.02506 +/- 0.00141\n", + " 152/1 1.02920 1.02509 +/- 0.00140\n", + " 153/1 1.02199 1.02507 +/- 0.00139\n", + " 154/1 1.03421 1.02513 +/- 0.00138\n", + " 155/1 1.05882 1.02536 +/- 0.00139\n", + " 156/1 1.02649 1.02537 +/- 0.00138\n", + " 157/1 1.01933 1.02533 +/- 0.00137\n", + " 158/1 1.04269 1.02545 +/- 0.00137\n", + " 159/1 0.99604 1.02525 +/- 0.00137\n", + " 160/1 1.04748 1.02540 +/- 0.00137\n", + " 161/1 1.00501 1.02526 +/- 0.00137\n", + " 162/1 1.00550 1.02513 +/- 0.00137\n", + " 163/1 1.00115 1.02498 +/- 0.00137\n", + " 164/1 1.02283 1.02496 +/- 0.00136\n", + " 165/1 1.01964 1.02493 +/- 0.00135\n", + " 166/1 1.02287 1.02491 +/- 0.00134\n", + " 167/1 1.05498 1.02511 +/- 0.00134\n", + " 168/1 1.05267 1.02528 +/- 0.00135\n", + " 169/1 1.00474 1.02515 +/- 0.00135\n", + " 170/1 1.03469 1.02521 +/- 0.00134\n", + " 171/1 1.02499 1.02521 +/- 0.00133\n", + " 172/1 1.03961 1.02530 +/- 0.00132\n", + " 173/1 1.01240 1.02522 +/- 0.00132\n", + " 174/1 1.00762 1.02511 +/- 0.00132\n", + " 175/1 1.00200 1.02497 +/- 0.00131\n", + " 176/1 1.01449 1.02491 +/- 0.00131\n", + " 177/1 1.01111 1.02483 +/- 0.00130\n", + " 178/1 1.01208 1.02475 +/- 0.00130\n", + " 179/1 1.03304 1.02480 +/- 0.00129\n", + " 180/1 1.04504 1.02492 +/- 0.00129\n", + " 181/1 1.03476 1.02498 +/- 0.00128\n", + " 182/1 1.02124 1.02495 +/- 0.00128\n", + " 183/1 0.98855 1.02474 +/- 0.00128\n", + " 184/1 1.04689 1.02487 +/- 0.00128\n", + " 185/1 1.00618 1.02476 +/- 0.00128\n", + " 186/1 1.02012 1.02474 +/- 0.00127\n", + " 187/1 1.00162 1.02461 +/- 0.00127\n", + " 188/1 1.03269 1.02465 +/- 0.00127\n", + " 189/1 1.04772 1.02478 +/- 0.00127\n", + " 190/1 1.01132 1.02471 +/- 0.00126\n", + " 191/1 1.02669 1.02472 +/- 0.00125\n", + " 192/1 1.01154 1.02464 +/- 0.00125\n", + " 193/1 1.05795 1.02483 +/- 0.00126\n", + " 194/1 1.01615 1.02478 +/- 0.00125\n", + " 195/1 1.03828 1.02485 +/- 0.00125\n", + " 196/1 1.00695 1.02476 +/- 0.00124\n", + " 197/1 1.04126 1.02484 +/- 0.00124\n", + " 198/1 1.02834 1.02486 +/- 0.00123\n", + " 199/1 1.01000 1.02478 +/- 0.00123\n", + " 200/1 0.99294 1.02462 +/- 0.00123\n", + " 201/1 1.00248 1.02450 +/- 0.00123\n", + " 202/1 1.03461 1.02455 +/- 0.00123\n", + " 203/1 1.06289 1.02475 +/- 0.00124\n", + " 204/1 1.03010 1.02478 +/- 0.00123\n", + " 205/1 1.04636 1.02489 +/- 0.00123\n", + " 206/1 1.05434 1.02504 +/- 0.00123\n", + " 207/1 1.03993 1.02512 +/- 0.00123\n", + " 208/1 1.02672 1.02512 +/- 0.00122\n", + " 209/1 1.04958 1.02525 +/- 0.00122\n", + " 210/1 0.99194 1.02508 +/- 0.00123\n", + " 211/1 1.01570 1.02503 +/- 0.00122\n", + " 212/1 1.04079 1.02511 +/- 0.00122\n", + " 213/1 1.02961 1.02513 +/- 0.00121\n", + " 214/1 1.03797 1.02520 +/- 0.00121\n", + " 215/1 1.03714 1.02526 +/- 0.00120\n", + " 216/1 1.03299 1.02529 +/- 0.00120\n", + " 217/1 1.00461 1.02519 +/- 0.00120\n", + " 218/1 1.02386 1.02519 +/- 0.00119\n", + " 219/1 1.01955 1.02516 +/- 0.00119\n", + " 220/1 1.04372 1.02525 +/- 0.00118\n", + " 221/1 1.01694 1.02521 +/- 0.00118\n", + " 222/1 0.99642 1.02507 +/- 0.00118\n", + " 223/1 1.00999 1.02500 +/- 0.00118\n", + " 224/1 1.02703 1.02501 +/- 0.00117\n", + " 225/1 1.00236 1.02491 +/- 0.00117\n", + " 226/1 1.02825 1.02492 +/- 0.00117\n", + " 227/1 1.04535 1.02502 +/- 0.00116\n", + " 228/1 1.01779 1.02498 +/- 0.00116\n", + " 229/1 1.01058 1.02492 +/- 0.00116\n", + " 230/1 1.00391 1.02482 +/- 0.00115\n", + " 231/1 1.05990 1.02498 +/- 0.00116\n", + " 232/1 1.01885 1.02495 +/- 0.00116\n", + " 233/1 1.03204 1.02498 +/- 0.00115\n", + " 234/1 0.99396 1.02485 +/- 0.00115\n", + " 235/1 1.01828 1.02482 +/- 0.00115\n", + " 236/1 1.08225 1.02507 +/- 0.00117\n", + " 237/1 1.00335 1.02498 +/- 0.00117\n", + " 238/1 1.03097 1.02500 +/- 0.00117\n", + " 239/1 1.01738 1.02497 +/- 0.00116\n", + " 240/1 1.02261 1.02496 +/- 0.00116\n", + " 241/1 1.02814 1.02497 +/- 0.00115\n", + " 242/1 1.01158 1.02491 +/- 0.00115\n", + " 243/1 1.03507 1.02496 +/- 0.00114\n", + " 244/1 1.01914 1.02493 +/- 0.00114\n", + " 245/1 1.04555 1.02502 +/- 0.00114\n", + " 246/1 1.02459 1.02502 +/- 0.00113\n", + " 247/1 1.05827 1.02516 +/- 0.00114\n", + " 248/1 1.02549 1.02516 +/- 0.00113\n", + " 249/1 1.03354 1.02520 +/- 0.00113\n", + " 250/1 1.04186 1.02526 +/- 0.00113\n", + " 251/1 1.00466 1.02518 +/- 0.00112\n", + " 252/1 0.99065 1.02504 +/- 0.00113\n", + " 253/1 1.03065 1.02506 +/- 0.00112\n", + " 254/1 1.02167 1.02505 +/- 0.00112\n", + " 255/1 1.01700 1.02501 +/- 0.00112\n", + " 256/1 1.03619 1.02506 +/- 0.00111\n", + " 257/1 1.01833 1.02503 +/- 0.00111\n", + " 258/1 1.02211 1.02502 +/- 0.00110\n", + " 259/1 1.04348 1.02509 +/- 0.00110\n", + " 260/1 1.03444 1.02513 +/- 0.00110\n", + " 261/1 1.05597 1.02525 +/- 0.00110\n", + " 262/1 1.02085 1.02524 +/- 0.00110\n", + " 263/1 1.00552 1.02516 +/- 0.00109\n", + " 264/1 1.03976 1.02522 +/- 0.00109\n", + " 265/1 1.02810 1.02523 +/- 0.00109\n", + " 266/1 1.00911 1.02516 +/- 0.00108\n", + " 267/1 1.01963 1.02514 +/- 0.00108\n", + " 268/1 1.03732 1.02519 +/- 0.00108\n", + " 269/1 1.02422 1.02519 +/- 0.00107\n", + " 270/1 1.01546 1.02515 +/- 0.00107\n", + " 271/1 1.05488 1.02526 +/- 0.00107\n", + " 272/1 1.01709 1.02523 +/- 0.00107\n", + " 273/1 1.05629 1.02535 +/- 0.00107\n", + " 274/1 1.03864 1.02540 +/- 0.00107\n", + " 275/1 1.01472 1.02536 +/- 0.00106\n", + " 276/1 1.03425 1.02539 +/- 0.00106\n", + " 277/1 1.00663 1.02532 +/- 0.00106\n", + " 278/1 1.03326 1.02535 +/- 0.00106\n", + " 279/1 1.02571 1.02535 +/- 0.00105\n", + " 280/1 1.00525 1.02528 +/- 0.00105\n", + " 281/1 1.00451 1.02520 +/- 0.00105\n", + " 282/1 1.04016 1.02526 +/- 0.00105\n", + " 283/1 0.98343 1.02510 +/- 0.00105\n", + " 284/1 1.04843 1.02519 +/- 0.00105\n", + " 285/1 1.01807 1.02516 +/- 0.00105\n", + " 286/1 1.02393 1.02516 +/- 0.00105\n", + " 287/1 1.01851 1.02514 +/- 0.00104\n", + " 288/1 1.03976 1.02519 +/- 0.00104\n", + " 289/1 1.03153 1.02521 +/- 0.00104\n", + " 290/1 1.00416 1.02514 +/- 0.00104\n", + " 291/1 1.01426 1.02510 +/- 0.00103\n", + " 292/1 1.02583 1.02510 +/- 0.00103\n", + " 293/1 1.01680 1.02507 +/- 0.00103\n", + " 294/1 1.04578 1.02514 +/- 0.00103\n", + " 295/1 1.03162 1.02517 +/- 0.00102\n", + " 296/1 1.01682 1.02514 +/- 0.00102\n", + " 297/1 1.00488 1.02507 +/- 0.00102\n", + " 298/1 1.03057 1.02508 +/- 0.00101\n", + " 299/1 1.01126 1.02504 +/- 0.00101\n", + " 300/1 1.03528 1.02507 +/- 0.00101\n", + " 301/1 1.05548 1.02518 +/- 0.00101\n", + " 302/1 1.02994 1.02519 +/- 0.00101\n", + " 303/1 1.03010 1.02521 +/- 0.00100\n", + " 304/1 1.04031 1.02526 +/- 0.00100\n", + " 305/1 1.05866 1.02537 +/- 0.00101\n", + " 306/1 1.03602 1.02541 +/- 0.00100\n", + " 307/1 1.01362 1.02537 +/- 0.00100\n", + " 308/1 1.01318 1.02533 +/- 0.00100\n", + " 309/1 1.04262 1.02539 +/- 0.00100\n", + " 310/1 1.01626 1.02536 +/- 0.00099\n", + " 311/1 1.00285 1.02528 +/- 0.00099\n", + " 312/1 0.98155 1.02514 +/- 0.00100\n", + " 313/1 1.05649 1.02524 +/- 0.00100\n", + " 314/1 1.00960 1.02519 +/- 0.00100\n", + " 315/1 1.05350 1.02528 +/- 0.00100\n", + " 316/1 1.03842 1.02533 +/- 0.00100\n", + " 317/1 1.01394 1.02529 +/- 0.00100\n", + " 318/1 1.01830 1.02527 +/- 0.00099\n", + " 319/1 1.02050 1.02525 +/- 0.00099\n", + " 320/1 1.03402 1.02528 +/- 0.00099\n", + " 321/1 1.04547 1.02534 +/- 0.00099\n", + " 322/1 1.02579 1.02534 +/- 0.00098\n", + " 323/1 1.01922 1.02533 +/- 0.00098\n", + " 324/1 1.01050 1.02528 +/- 0.00098\n", + " 325/1 1.01426 1.02524 +/- 0.00098\n", + " 326/1 1.03283 1.02527 +/- 0.00097\n", + " 327/1 1.03859 1.02531 +/- 0.00097\n", + " 328/1 1.01536 1.02528 +/- 0.00097\n", + " 329/1 1.03149 1.02530 +/- 0.00097\n", + " 330/1 1.04328 1.02535 +/- 0.00096\n", + " 331/1 1.01949 1.02534 +/- 0.00096\n", + " 332/1 1.02319 1.02533 +/- 0.00096\n", + " 333/1 1.01704 1.02530 +/- 0.00096\n", + " 334/1 1.02691 1.02531 +/- 0.00095\n", + " 335/1 1.03188 1.02533 +/- 0.00095\n", + " 336/1 1.03107 1.02535 +/- 0.00095\n", + " 337/1 1.02410 1.02534 +/- 0.00094\n", + " 338/1 0.99917 1.02526 +/- 0.00094\n", + " 339/1 1.03593 1.02529 +/- 0.00094\n", + " 340/1 1.02286 1.02529 +/- 0.00094\n", + " 341/1 1.04154 1.02534 +/- 0.00094\n", + " 342/1 1.01664 1.02531 +/- 0.00094\n", + " 343/1 1.01041 1.02527 +/- 0.00093\n", + " 344/1 1.02033 1.02525 +/- 0.00093\n", + " 345/1 1.03137 1.02527 +/- 0.00093\n", + " 346/1 1.02162 1.02526 +/- 0.00093\n", + " 347/1 1.00835 1.02521 +/- 0.00092\n", + " 348/1 1.01168 1.02517 +/- 0.00092\n", + " 349/1 1.01168 1.02513 +/- 0.00092\n", + " 350/1 1.03509 1.02516 +/- 0.00092\n", + " 351/1 1.01883 1.02514 +/- 0.00092\n", + " 352/1 1.04314 1.02519 +/- 0.00091\n", + " 353/1 0.99067 1.02509 +/- 0.00092\n", + " 354/1 1.03100 1.02511 +/- 0.00091\n", + " 355/1 1.01664 1.02508 +/- 0.00091\n", + " 356/1 1.02193 1.02507 +/- 0.00091\n", + " 357/1 1.03213 1.02509 +/- 0.00091\n", + " 358/1 1.00555 1.02504 +/- 0.00091\n", + " 359/1 1.04849 1.02511 +/- 0.00091\n", + " 360/1 1.02174 1.02510 +/- 0.00090\n", + " 361/1 1.05064 1.02517 +/- 0.00090\n", + " 362/1 1.05274 1.02525 +/- 0.00091\n", + " 363/1 1.00932 1.02520 +/- 0.00090\n", + " 364/1 1.03400 1.02523 +/- 0.00090\n", + " 365/1 1.00149 1.02516 +/- 0.00090\n", + " 366/1 1.01631 1.02514 +/- 0.00090\n", + " 367/1 1.03928 1.02517 +/- 0.00090\n", + " 368/1 1.01318 1.02514 +/- 0.00090\n", + " 369/1 1.04610 1.02520 +/- 0.00090\n", + " 370/1 1.04338 1.02525 +/- 0.00089\n", + " 371/1 1.01638 1.02523 +/- 0.00089\n", + " 372/1 1.04056 1.02527 +/- 0.00089\n", + " 373/1 1.00090 1.02520 +/- 0.00089\n", + " 374/1 1.01261 1.02517 +/- 0.00089\n", + " 375/1 1.03919 1.02520 +/- 0.00089\n", + " 376/1 0.99900 1.02513 +/- 0.00089\n", + " 377/1 1.00168 1.02507 +/- 0.00089\n", + " 378/1 0.99476 1.02499 +/- 0.00089\n", + " 379/1 1.04960 1.02505 +/- 0.00089\n", + " 380/1 0.99797 1.02498 +/- 0.00089\n", + " 381/1 1.04956 1.02505 +/- 0.00089\n", + " 382/1 1.02803 1.02505 +/- 0.00089\n", + " 383/1 0.99388 1.02497 +/- 0.00089\n", + " 384/1 1.00767 1.02492 +/- 0.00089\n", + " 385/1 1.00856 1.02488 +/- 0.00089\n", + " 386/1 1.02997 1.02489 +/- 0.00088\n", + " 387/1 0.97841 1.02477 +/- 0.00089\n", + " 388/1 0.99712 1.02470 +/- 0.00089\n", + " 389/1 0.99072 1.02461 +/- 0.00089\n", + " 390/1 1.02439 1.02461 +/- 0.00089\n", + " 391/1 1.02769 1.02462 +/- 0.00089\n", + " 392/1 1.02205 1.02461 +/- 0.00089\n", + " 393/1 1.03702 1.02464 +/- 0.00088\n", + " 394/1 1.00274 1.02458 +/- 0.00088\n", + " 395/1 1.00131 1.02452 +/- 0.00088\n", + " 396/1 1.00130 1.02446 +/- 0.00088\n", + " 397/1 1.00472 1.02441 +/- 0.00088\n", + " 398/1 1.00724 1.02437 +/- 0.00088\n", + " 399/1 1.03061 1.02438 +/- 0.00088\n", + " 400/1 0.99651 1.02431 +/- 0.00088\n", + " 401/1 0.99290 1.02423 +/- 0.00088\n", + " 402/1 1.02166 1.02423 +/- 0.00088\n", + " 403/1 1.01691 1.02421 +/- 0.00088\n", + " 404/1 1.00492 1.02416 +/- 0.00088\n", + " 405/1 1.00663 1.02411 +/- 0.00088\n", + " 406/1 1.01865 1.02410 +/- 0.00087\n", + " 407/1 1.02717 1.02411 +/- 0.00087\n", + " 408/1 1.01793 1.02409 +/- 0.00087\n", + " 409/1 1.02606 1.02410 +/- 0.00087\n", + " 410/1 1.03809 1.02413 +/- 0.00087\n", + " 411/1 1.03780 1.02417 +/- 0.00086\n", + " 412/1 1.02782 1.02418 +/- 0.00086\n", + " 413/1 1.03077 1.02419 +/- 0.00086\n", + " 414/1 1.00651 1.02415 +/- 0.00086\n", + " 415/1 1.05594 1.02423 +/- 0.00086\n", + " 416/1 0.99558 1.02416 +/- 0.00086\n", + " 417/1 1.00689 1.02411 +/- 0.00086\n", + " 418/1 1.02932 1.02413 +/- 0.00086\n", + " 419/1 1.03552 1.02415 +/- 0.00086\n", + " 420/1 1.03735 1.02419 +/- 0.00085\n", + " 421/1 1.02402 1.02419 +/- 0.00085\n", + " 422/1 1.04227 1.02423 +/- 0.00085\n", + " 423/1 1.03087 1.02425 +/- 0.00085\n", + " 424/1 1.04363 1.02429 +/- 0.00085\n", + " 425/1 1.02676 1.02430 +/- 0.00085\n", + " 426/1 1.03739 1.02433 +/- 0.00085\n", + " 427/1 1.02977 1.02434 +/- 0.00084\n", + " 428/1 1.02547 1.02435 +/- 0.00084\n", + " 429/1 1.03552 1.02437 +/- 0.00084\n", + " 430/1 1.04282 1.02442 +/- 0.00084\n", + " 431/1 1.03171 1.02443 +/- 0.00084\n", + " 432/1 1.01030 1.02440 +/- 0.00084\n", + " 433/1 1.04168 1.02444 +/- 0.00084\n", + " 434/1 0.98994 1.02436 +/- 0.00084\n", + " 435/1 0.98166 1.02426 +/- 0.00084\n", + " 436/1 1.00178 1.02421 +/- 0.00084\n", + " 437/1 1.03801 1.02424 +/- 0.00084\n", + " 438/1 1.02099 1.02423 +/- 0.00084\n", + " 439/1 1.01305 1.02421 +/- 0.00084\n", + " 440/1 1.02286 1.02420 +/- 0.00083\n", + " 441/1 1.03697 1.02423 +/- 0.00083\n", + " 442/1 0.99050 1.02415 +/- 0.00083\n", + " 443/1 1.02238 1.02415 +/- 0.00083\n", + " 444/1 1.05188 1.02421 +/- 0.00083\n", + " 445/1 1.03150 1.02423 +/- 0.00083\n", + " 446/1 1.01071 1.02420 +/- 0.00083\n", + " 447/1 1.03713 1.02423 +/- 0.00083\n", + " 448/1 1.03631 1.02426 +/- 0.00083\n", + " 449/1 1.02968 1.02427 +/- 0.00083\n", + " 450/1 1.03031 1.02428 +/- 0.00082\n", + " 451/1 1.02161 1.02428 +/- 0.00082\n", + " 452/1 0.99036 1.02420 +/- 0.00082\n", + " 453/1 1.02581 1.02420 +/- 0.00082\n", + " 454/1 1.03140 1.02422 +/- 0.00082\n", + " 455/1 1.01962 1.02421 +/- 0.00082\n", + " 456/1 1.00680 1.02417 +/- 0.00082\n", + " 457/1 1.00178 1.02412 +/- 0.00082\n", + " 458/1 1.02306 1.02412 +/- 0.00082\n", + " 459/1 1.02653 1.02412 +/- 0.00081\n", + " 460/1 1.02934 1.02413 +/- 0.00081\n", + " 461/1 1.00872 1.02410 +/- 0.00081\n", + " 462/1 1.00012 1.02405 +/- 0.00081\n", + " 463/1 0.99057 1.02397 +/- 0.00081\n", + " 464/1 1.02353 1.02397 +/- 0.00081\n", + " 465/1 1.01402 1.02395 +/- 0.00081\n", + " 466/1 1.01651 1.02393 +/- 0.00081\n", + " 467/1 1.01024 1.02390 +/- 0.00081\n", + " 468/1 1.02504 1.02391 +/- 0.00080\n", + " 469/1 1.00891 1.02387 +/- 0.00080\n", + " 470/1 1.04038 1.02391 +/- 0.00080\n", + " 471/1 1.04346 1.02395 +/- 0.00080\n", + " 472/1 1.02634 1.02396 +/- 0.00080\n", + " 473/1 1.01207 1.02393 +/- 0.00080\n", + " 474/1 1.00787 1.02390 +/- 0.00080\n", + " 475/1 1.03591 1.02392 +/- 0.00080\n", + " 476/1 1.04257 1.02396 +/- 0.00080\n", + " 477/1 1.00536 1.02392 +/- 0.00079\n", + " 478/1 1.07545 1.02403 +/- 0.00080\n", + " 479/1 1.02306 1.02403 +/- 0.00080\n", + " 480/1 1.02733 1.02404 +/- 0.00080\n", + " 481/1 1.00990 1.02401 +/- 0.00080\n", + " 482/1 0.99031 1.02394 +/- 0.00080\n", + " 483/1 0.98006 1.02384 +/- 0.00080\n", + " 484/1 1.05635 1.02391 +/- 0.00080\n", + " 485/1 1.02410 1.02391 +/- 0.00080\n", + " 486/1 1.01227 1.02389 +/- 0.00080\n", + " 487/1 1.00614 1.02385 +/- 0.00080\n", + " 488/1 1.01837 1.02384 +/- 0.00080\n", + " 489/1 1.02565 1.02384 +/- 0.00080\n", + " 490/1 1.00530 1.02381 +/- 0.00079\n", + " 491/1 1.01958 1.02380 +/- 0.00079\n", + " 492/1 1.04490 1.02384 +/- 0.00079\n", + " 493/1 1.02567 1.02384 +/- 0.00079\n", + " 494/1 1.03865 1.02387 +/- 0.00079\n", + " 495/1 1.03990 1.02391 +/- 0.00079\n", + " 496/1 0.98352 1.02382 +/- 0.00079\n", + " 497/1 1.00909 1.02379 +/- 0.00079\n", + " 498/1 1.03661 1.02382 +/- 0.00079\n", + " 499/1 1.04423 1.02386 +/- 0.00079\n", + " 500/1 1.06406 1.02394 +/- 0.00079\n", + " Creating state point statepoint.500.h5...\n", "\n", " ===========================================================================\n", " ======================> SIMULATION FINISHED <======================\n", @@ -1640,27 +2165,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 6.3000E-02 seconds\n", + " Total time for initialization = 5.3000E-02 seconds\n", " Reading cross sections = 5.0000E-03 seconds\n", - " Total time in simulation = 7.3280E+01 seconds\n", - " Time in transport only = 7.3104E+01 seconds\n", - " Time in inactive batches = 1.1200E+00 seconds\n", - " Time in active batches = 7.2160E+01 seconds\n", - " Time synchronizing fission bank = 2.5000E-02 seconds\n", - " Sampling source sites = 1.8000E-02 seconds\n", - " SEND/RECV source sites = 7.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time in simulation = 1.8631E+02 seconds\n", + " Time in transport only = 1.8590E+02 seconds\n", + " Time in inactive batches = 1.1710E+00 seconds\n", + " Time in active batches = 1.8514E+02 seconds\n", + " Time synchronizing fission bank = 7.3000E-02 seconds\n", + " Sampling source sites = 5.1000E-02 seconds\n", + " SEND/RECV source sites = 2.2000E-02 seconds\n", + " Time accumulating tallies = 4.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 7.3353E+01 seconds\n", - " Calculation Rate (inactive) = 44642.9 neutrons/second\n", - " Calculation Rate (active) = 13165.2 neutrons/second\n", + " Total time elapsed = 1.8637E+02 seconds\n", + " Calculation Rate (inactive) = 42698.5 neutrons/second\n", + " Calculation Rate (active) = 13233.2 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02597 +/- 0.00117\n", - " k-effective (Track-length) = 1.02518 +/- 0.00132\n", - " k-effective (Absorption) = 1.02581 +/- 0.00070\n", - " Combined k-effective = 1.02562 +/- 0.00068\n", + " k-effective (Collision) = 1.02403 +/- 0.00071\n", + " k-effective (Track-length) = 1.02394 +/- 0.00079\n", + " k-effective (Absorption) = 1.02539 +/- 0.00044\n", + " Combined k-effective = 1.02518 +/- 0.00042\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -1671,15 +2196,12 @@ "0" ] }, - "execution_count": 37, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# Close the StatePoint File\n", - "sp._f.close()\n", - "\n", "# Run the Multi-Group OpenMC Simulation\n", "openmc.run()" ] @@ -1691,12 +2213,13 @@ "# Results Comparison\n", "Now we can compare the multi-group and continuous-energy results.\n", "\n", - "We will begin by loading the multi-group statepoint file we just finished writing and extracting the calculated keff." + "We will begin by loading the multi-group statepoint file we just finished writing and extracting the calculated keff.\n", + "Since we did not rename the summary file, we do not need to load it separately this time." ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 36, "metadata": { "collapsed": false }, @@ -1704,11 +2227,27 @@ "source": [ "# Load the last statepoint file and keff value\n", "mgsp = openmc.StatePoint('statepoint.' + str(batches) + '.h5')\n", - "mgsu = openmc.Summary('summary.h5')\n", - "mgsp.link_with_summary(mgsu)\n", "mg_keff = mgsp.k_combined" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we can load the continuous-energy eigenvalue for comparison." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "ce_keff = sp.k_combined" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -1718,7 +2257,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -1727,9 +2266,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Continuous-Energy keff = 1.025440\n", - "Multi-Group keff = 1.025621\n", - "bias [pcm]: -18.1\n" + "Continuous-Energy keff = 1.025194\n", + "Multi-Group keff = 1.025183\n", + "bias [pcm]: 1.1\n" ] } ], @@ -1745,7 +2284,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We see quite good agreement with only an 18pcm difference between the two." + "We see quite good agreement with only an 1 pcm difference between the two. While these results are quite favorable, due to the high degree of approximations inherent in practical application of multi-group theory, one should not expect results of such fidelity always for multi-group Monte Carlo calculations." ] }, { @@ -1764,16 +2303,9 @@ "First, we extract volume-integrated fission rates from the Multi-Group calculation's mesh fission rate tally for each pin cell in the fuel assembly." ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can do the same for the Multi-Group results." - ] - }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 39, "metadata": { "collapsed": false }, @@ -1790,6 +2322,32 @@ "mgopenmc_fission_rates /= np.mean(mgopenmc_fission_rates)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can do the same for the Multi-Group results." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Get the OpenMC fission rate mesh tally data\n", + "mesh_tally = sp.get_tally(name='mesh tally')\n", + "openmc_fission_rates = mesh_tally.get_values(scores=['fission'])\n", + "\n", + "# Reshape array to 2D for plotting\n", + "openmc_fission_rates.shape = (17,17)\n", + "\n", + "# Normalize to the average pin power\n", + "openmc_fission_rates /= np.mean(openmc_fission_rates)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -1807,7 +2365,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 41, @@ -1816,9 +2374,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1845,6 +2403,15 @@ "source": [ "We also see very good agreement between the fission rate distributions." ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 82b761673..334a0fa9c 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -724,7 +724,7 @@ class Library(object): def write_mg_library(self, xs_type='macro', domain_names=None, xs_ids=None, filename='mg_cross_sections', directory='./', - return_names=True): + return_names=False): """Creates a cross-section data library file for the Multi-Group mode of OpenMC. @@ -749,7 +749,7 @@ class Library(object): return_names : bool Flag to indicate if the user would like the names of the materials generated by this function returned with completion. - Defaults to True. + Defaults to False, indicating that no names will be returned. Returns ------- From 7ed772d6c3b59e633fbb9201f100a27d8008c15d Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 13 May 2016 10:08:54 -0400 Subject: [PATCH 186/259] Now using scatter-PN scores in ScatterMatrixXS for tallying efficiency --- .../pythonapi/examples/mgxs-part-i.ipynb | 40 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 78 +- .../pythonapi/examples/mgxs-part-iii.ipynb | 36 +- openmc/mgxs/mgxs.py | 192 +- .../results_true.dat | 48 +- .../results_true.dat | 4 +- .../results_true.dat | 120 +- .../results_true.dat | 1600 ++++++++--------- 8 files changed, 1075 insertions(+), 1043 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 2f2a80177..2d44d95cd 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -410,7 +410,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -419,27 +419,27 @@ "data": { "text/plain": [ "OrderedDict([('flux', Tally\n", - "\tID =\t10012\n", + "\tID =\t10000\n", "\tName =\t\n", "\tFilters =\t\n", " \t\tcell\t[1]\n", " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", "\tNuclides =\ttotal \n", - "\tScores =\t[u'flux']\n", + "\tScores =\t['flux']\n", "\tEstimator =\ttracklength\n", "), ('absorption', Tally\n", - "\tID =\t10013\n", + "\tID =\t10001\n", "\tName =\t\n", "\tFilters =\t\n", " \t\tcell\t[1]\n", " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", "\tNuclides =\ttotal \n", - "\tScores =\t[u'absorption']\n", + "\tScores =\t['absorption']\n", "\tEstimator =\ttracklength\n", ")])" ] }, - "execution_count": 26, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -513,8 +513,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ae588276014a905ecc6e0967bf08288ecec5b550\n", - " Date/Time: 2016-05-12 20:41:27\n", + " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", + " Date/Time: 2016-05-13 09:02:04\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -600,20 +600,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.7500E-01 seconds\n", - " Reading cross sections = 9.7000E-02 seconds\n", - " Total time in simulation = 1.8074E+01 seconds\n", - " Time in transport only = 1.8055E+01 seconds\n", - " Time in inactive batches = 2.1180E+00 seconds\n", - " Time in active batches = 1.5956E+01 seconds\n", + " Total time for initialization = 4.2500E-01 seconds\n", + " Reading cross sections = 8.5000E-02 seconds\n", + " Total time in simulation = 1.6642E+01 seconds\n", + " Time in transport only = 1.6628E+01 seconds\n", + " Time in inactive batches = 1.9160E+00 seconds\n", + " Time in active batches = 1.4726E+01 seconds\n", " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.8559E+01 seconds\n", - " Calculation Rate (inactive) = 11803.6 neutrons/second\n", - " Calculation Rate (active) = 6267.23 neutrons/second\n", + " Total time elapsed = 1.7076E+01 seconds\n", + " Calculation Rate (inactive) = 13048.0 neutrons/second\n", + " Calculation Rate (active) = 6790.71 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index ca07519e5..d57f2a1f3 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -445,8 +445,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ae588276014a905ecc6e0967bf08288ecec5b550\n", - " Date/Time: 2016-05-12 21:00:03\n", + " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", + " Date/Time: 2016-05-13 10:04:37\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -562,20 +562,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.1000E-01 seconds\n", - " Reading cross sections = 8.6000E-02 seconds\n", - " Total time in simulation = 2.2903E+02 seconds\n", - " Time in transport only = 2.2897E+02 seconds\n", - " Time in inactive batches = 1.4619E+01 seconds\n", - " Time in active batches = 2.1441E+02 seconds\n", - " Time synchronizing fission bank = 2.5000E-02 seconds\n", - " Sampling source sites = 1.6000E-02 seconds\n", - " SEND/RECV source sites = 8.0000E-03 seconds\n", + " Total time for initialization = 4.9300E-01 seconds\n", + " Reading cross sections = 1.0800E-01 seconds\n", + " Total time in simulation = 2.2830E+02 seconds\n", + " Time in transport only = 2.2826E+02 seconds\n", + " Time in inactive batches = 1.5534E+01 seconds\n", + " Time in active batches = 2.1277E+02 seconds\n", + " Time synchronizing fission bank = 1.8000E-02 seconds\n", + " Sampling source sites = 1.3000E-02 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 1.2000E-02 seconds\n", - " Total time elapsed = 2.2951E+02 seconds\n", - " Calculation Rate (inactive) = 6840.41 neutrons/second\n", - " Calculation Rate (active) = 1865.57 neutrons/second\n", + " Total time for finalization = 1.1000E-02 seconds\n", + " Total time elapsed = 2.2887E+02 seconds\n", + " Calculation Rate (inactive) = 6437.49 neutrons/second\n", + " Calculation Rate (active) = 1879.96 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -786,10 +786,8 @@ " group in\n", " group out\n", " nuclide\n", - " moment\n", " mean\n", " std. dev.\n", - " moment\n", " \n", " \n", " \n", @@ -799,10 +797,8 @@ " 1\n", " 1\n", " H-1\n", - " P0\n", " 0.234115\n", " 0.003568\n", - " P0\n", " \n", " \n", " 127\n", @@ -810,10 +806,8 @@ " 1\n", " 1\n", " O-16\n", - " P0\n", " 1.563707\n", " 0.005953\n", - " P0\n", " \n", " \n", " 124\n", @@ -821,10 +815,8 @@ " 1\n", " 2\n", " H-1\n", - " P0\n", " 1.594129\n", " 0.002369\n", - " P0\n", " \n", " \n", " 125\n", @@ -832,10 +824,8 @@ " 1\n", " 2\n", " O-16\n", - " P0\n", " 0.285761\n", " 0.001676\n", - " P0\n", " \n", " \n", " 122\n", @@ -843,10 +833,8 @@ " 1\n", " 3\n", " H-1\n", - " P0\n", " 0.011089\n", " 0.000248\n", - " P0\n", " \n", " \n", " 123\n", @@ -854,10 +842,8 @@ " 1\n", " 3\n", " O-16\n", - " P0\n", " 0.000000\n", " 0.000000\n", - " P0\n", " \n", " \n", " 120\n", @@ -865,10 +851,8 @@ " 1\n", " 4\n", " H-1\n", - " P0\n", " 0.000000\n", " 0.000000\n", - " P0\n", " \n", " \n", " 121\n", @@ -876,10 +860,8 @@ " 1\n", " 4\n", " O-16\n", - " P0\n", " 0.000000\n", " 0.000000\n", - " P0\n", " \n", " \n", " 118\n", @@ -887,10 +869,8 @@ " 1\n", " 5\n", " H-1\n", - " P0\n", " 0.000000\n", " 0.000000\n", - " P0\n", " \n", " \n", " 119\n", @@ -898,27 +878,25 @@ " 1\n", " 5\n", " O-16\n", - " P0\n", " 0.000000\n", " 0.000000\n", - " P0\n", " \n", " \n", "\n", "
" ], "text/plain": [ - " cell group in group out nuclide moment mean std. dev. moment\n", - "126 10002 1 1 H-1 P0 0.234115 0.003568 P0\n", - "127 10002 1 1 O-16 P0 1.563707 0.005953 P0\n", - "124 10002 1 2 H-1 P0 1.594129 0.002369 P0\n", - "125 10002 1 2 O-16 P0 0.285761 0.001676 P0\n", - "122 10002 1 3 H-1 P0 0.011089 0.000248 P0\n", - "123 10002 1 3 O-16 P0 0.000000 0.000000 P0\n", - "120 10002 1 4 H-1 P0 0.000000 0.000000 P0\n", - "121 10002 1 4 O-16 P0 0.000000 0.000000 P0\n", - "118 10002 1 5 H-1 P0 0.000000 0.000000 P0\n", - "119 10002 1 5 O-16 P0 0.000000 0.000000 P0" + " cell group in group out nuclide mean std. dev.\n", + "126 10002 1 1 H-1 0.234115 0.003568\n", + "127 10002 1 1 O-16 1.563707 0.005953\n", + "124 10002 1 2 H-1 1.594129 0.002369\n", + "125 10002 1 2 O-16 0.285761 0.001676\n", + "122 10002 1 3 H-1 0.011089 0.000248\n", + "123 10002 1 3 O-16 0.000000 0.000000\n", + "120 10002 1 4 H-1 0.000000 0.000000\n", + "121 10002 1 4 O-16 0.000000 0.000000\n", + "118 10002 1 5 H-1 0.000000 0.000000\n", + "119 10002 1 5 O-16 0.000000 0.000000" ] }, "execution_count": 19, @@ -1805,7 +1783,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1888,7 +1866,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 842c334a2..15bf06b24 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -459,7 +459,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDUtMTJUMjE6MDQ6MzMtMDQ6MDDlS7KzAAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA1LTEyVDIxOjA0OjMzLTA0OjAwlBYKDwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDUtMTNUMDk6MDQ6MjEtMDQ6MDCreyVVAAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA1LTEzVDA5OjA0OjIxLTA0OjAw2iad6QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -726,8 +726,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ae588276014a905ecc6e0967bf08288ecec5b550\n", - " Date/Time: 2016-05-12 21:04:33\n", + " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", + " Date/Time: 2016-05-13 09:04:22\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -814,20 +814,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.5500E-01 seconds\n", - " Reading cross sections = 1.1200E-01 seconds\n", - " Total time in simulation = 5.6386E+01 seconds\n", - " Time in transport only = 5.6351E+01 seconds\n", - " Time in inactive batches = 4.3700E+00 seconds\n", - " Time in active batches = 5.2016E+01 seconds\n", + " Total time for initialization = 5.4100E-01 seconds\n", + " Reading cross sections = 1.0500E-01 seconds\n", + " Total time in simulation = 5.1887E+01 seconds\n", + " Time in transport only = 5.1864E+01 seconds\n", + " Time in inactive batches = 3.9000E+00 seconds\n", + " Time in active batches = 4.7987E+01 seconds\n", " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Sampling source sites = 1.0000E-03 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 5.6857E+01 seconds\n", - " Calculation Rate (inactive) = 5720.82 neutrons/second\n", - " Calculation Rate (active) = 1922.49 neutrons/second\n", + " Total time elapsed = 5.2448E+01 seconds\n", + " Calculation Rate (inactive) = 6410.26 neutrons/second\n", + " Calculation Rate (active) = 2083.90 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1101,7 +1101,7 @@ "cell_type": "code", "execution_count": 32, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -1558,7 +1558,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 43, @@ -1569,7 +1569,7 @@ "data": { "image/png": "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\nfHTc1tr58WfQa96JP1u/NcN5cd/L4s/xL5/Rv3hAT+D6cDWAztRFRHJFRV1EJEdU1EVEckRFXUQk\nR1TURURyREVdRCRHVNRFRHJERV1EJEdKMvhojM0uunzkcw+F63hiUTwIh1fiQQh7984waOgrcciB\n5z4Rxjz3oxFhzMruOxddfsw18cAiOy4MYeQv4+22NfF6/MF4H1uGQ3WrnR7GVJNhQoISGzzu8UaX\n7c2r4f1taXxc1uwQ7/MNGSbk6Lowbmv/LfFkNDW3bQ5j7Ka4P7ufsTqM2fHUd+IVZdiuDRvi1bBj\nvJ9rbo7bOqhqXhjz2rg3iy7vRzdmhmtJ6ExdRCRHVNRFRHJERV1EJEdU1EVEckRFXUQkR1TURURy\nREVdRCRHVNRFRHKkRYOPzGwRsBbYCmxx91FZ7jdw+pKiy79/wsXxSvrFA1Gqp8QDAy6b9O0wZuKB\nk8OY517M8Pw4Mp5tpS/FByHYyLgd3xi3wznxrC7+vbitDaPjprp0jY/VMn4axmTYqlbT3NxeuKbx\nmaAeqDk6XsFJ8b6qGZJhVqOX471lb8Q5UPONDHk9N27LH4zbsqPitro9sSVez8p4H+7aK8N2BZMR\nAXBi3NZUj2d06rfm5aLL+1ZnL9WtMaL0KHdf2QrrESk3ym2pOLr8IiKSIy0t6g7cb2Zzzezc1uiQ\nSJlQbktFaunll8PdfYmZ7QbcZ2bPufus1uiYSIkpt6UitehM3d2XpL9XANOA971tZma1ZuZ1Py1p\nTySLwnwzs9rmrEO5LeUoS243u6ib2U5m1q3ub+BjwPz6ce5e6+5W99Pc9kSyKsw3d69t6v2V21Ku\nsuR2Sy6/9AammVndem529z+3YH0i5UK5LRWr2UXd3RcCw1qxLyJlQbktlczc2/dSoJk5zxb/wP7W\nHvGMI8ftelcYs4aaMGYDXcKYudcdHsace/7VYcyUp84PY7rss6ro8vVbdw3XYVPDELY9HF8teOyO\nD4YxY558Koz58rB4YNE+vBLGXPLqD8MY+nWmVJdCzMyZ13hu/3zYWeE6DvVHwpjNdApjDtjyfBjT\n9TvxgKCHrxgexnTweD2jhz8dxjz2ZJxvWzyuDR/6VjzT0NrL4/PZf1bvH8Z0IJ716REODWPOf+q3\nRZeP3QlmDqzKlNv6nLqISI6oqIuI5IiKuohIjqioi4jkiIq6iEiOqKiLiOSIirqISI6oqIuI5Ehr\n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\njRmGBmRpq3P0mAf6Z1hPpwz96VwVb9eeWfqc5WGU5XhtznDcKZY3sP/+HZg5M8NqKNXgI5E2VNrB\nRyJtJ0tut3tRf18HzLxUD8LmUp/bRyX2uVAl9l99bntt3V9dUxcRyREVdRGRHCmHop7l227Kjfrc\nPiqxz4Uqsf/qc9tr0/6W/Jq6iIi0nnI4UxcRkVaioi4ikiMlLepmdqyZPW9mL5rZhFL2JSszW2Rm\nT5vZPDOLv9W/BMxsipmtMLP5Bbf1MLP7zOyF9PcupexjoUb6W2tmS9L9PM/MPlHKPjaF8rptVFpe\nQ2lyu2RF3cyqgeuA44BBwHgzG1Sq/jTRUe4+3N0zTI1SElOBY+vdNgF4wN0HAg+k/5eLqby/vwA/\nTffzcHe/p5371CzK6zY1lcrKayhBbpfyTH008KK7L3T3TcCtwLgS9ic33H0WsKrezeOAG9K/bwDi\nefzaSSP9rVTK6zZSaXkNpcntUhb1PYDXCv5fnN5W7hy438zmmtm5pe5ME/R296Xp38uA3qXsTEZf\nM7On0pewZfWyugjldfuqxLyGNsxtvVHadIe7+3CSl9fnm9mHS92hpvLkc6zl/lnWXwD9Sb7ebSnw\n49J2J/eU1+2nTXO7lEV9CWz39Yd7preVNXdfkv5eAUwjebldCZabWR+A9PeKEvenKHdf7u5b3X0b\n8CsqZz8rr9tXReU1tH1ul7KozwEGmtm+ZtYJOB2YUcL+hMxsJzPrVvc38DFgfvF7lY0ZwJnp32cC\n00vYl1DdAzV1EpWzn5XX7aui8hraPrdL8n3qAO6+xcy+CtwLVANT3H1BqfqTUW9gmplBsu9udvc/\nl7ZL72dmtwBHAr3MbDEwEZgM3GZmZwOvAKeVrofba6S/R5rZcJKX04uA80rWwSZQXredSstrKE1u\n62sCRERyRG+UiojkiIq6iEiOqKiLiOSIirqISI6oqIuI5IiKuohIjqioi4jkiIq6iEiO/C/zDkyC\nZclMUgAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 5b49005ec..eff0bde0a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -90,6 +90,15 @@ class MGXS(object): 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 : {'tracklength', '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 rxn_rate_tally : openmc.Tally @@ -115,8 +124,12 @@ class MGXS(object): 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 """ @@ -138,7 +151,9 @@ class MGXS(object): self._rxn_rate_tally = None self._xs_tally = None self._sparse = False + self._loaded_sp = False self._derived = False + self._hdf5_key = None self.name = name self.by_nuclide = by_nuclide @@ -213,6 +228,24 @@ class MGXS(object): def num_groups(self): return self.energy_groups.num_groups + @property + def scores(self): + return ['flux', self.rxn_type] + + @property + def filters(self): + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + return [[energy_filter]] * len(self.scores) + + @property + def tally_keys(self): + return self.scores + + @property + def estimator(self): + return 'tracklength' + @property def tallies(self): """Construct the OpenMC tallies needed to compute the cross section.""" @@ -300,27 +333,20 @@ class MGXS(object): else: return 'sum' + @property + def loaded_sp(self): + return self._loaded_sp + @property def derived(self): return self._derived @property - def scores(self): - return ['flux', self.rxn_type] - - @property - def filters(self): - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - return [[energy_filter]] * len(self.scores) - - @property - def tally_keys(self): - return self.scores - - @property - def estimator(self): - return 'tracklength' + def hdf5_key(self): + if self._hdf5_key is not None: + return self._hdf5_key + else: + return self._rxn_type @name.setter def name(self, name): @@ -644,9 +670,11 @@ class MGXS(object): filter_bins = [] # Clear any tallies previously loaded from a statepoint - self._tallies = None - self._xs_tally = None - self._rxn_rate_tally = None + if self.loaded_sp: + self._tallies = None + self._xs_tally = None + self._rxn_rate_tally = None + self._loaded_sp = False # Find, slice and store Tallies from StatePoint # The tally slicing is needed if tally merging was used @@ -659,6 +687,8 @@ class MGXS(object): sp_tally.sparse = self.sparse self.tallies[tally_type] = sp_tally + self._loaded_sp = True + def get_xs(self, groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', value='mean', **kwargs): @@ -1253,8 +1283,8 @@ class MGXS(object): else: subdomain_group = domain_group - # Create a separate HDF5 group for the rxn type - rxn_group = subdomain_group.require_group(self.rxn_type) + # Create a separate HDF5 group for this cross section + rxn_group = subdomain_group.require_group(self.hdf5_key) # Create a separate HDF5 group for each nuclide for j, nuclide in enumerate(nuclides): @@ -1655,9 +1685,10 @@ class ScatterMatrixXS(MGXS): groups=None, by_nuclide=False, name=''): super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'scatter matrix' + self._rxn_type = 'scatter' self._correction = 'P0' self._legendre_order = 0 + self._hdf5_key = 'scatter matrix' def __deepcopy__(self, memo): clone = super(ScatterMatrixXS, self).__deepcopy__(memo) @@ -1677,11 +1708,11 @@ class ScatterMatrixXS(MGXS): def scores(self): scores = ['flux'] - for moment in range(self.legendre_order+1): - scores.append('scatter-{}'.format(moment)) - if self.correction == 'P0' and self.legendre_order == 0: - scores.append('scatter-1') + scores += ['{}-0'.format(self.rxn_type), + '{}-1'.format(self.rxn_type)] + else: + scores += ['{}-P{}'.format(self.rxn_type, self.legendre_order)] return scores @@ -1690,20 +1721,14 @@ class ScatterMatrixXS(MGXS): group_edges = self.energy_groups.group_edges energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - filters = [[energy]] - - for moment in range(self.legendre_order+1): - filters.append([energy, energyout]) if self.correction == 'P0' and self.legendre_order == 0: - filters.append([energyout]) + filters = [[energy], [energy, energyout], [energyout]] + else: + filters = [[energy], [energy, energyout]] return filters - @property - def tally_keys(self): - return ['flux', 'scatter-0', 'scatter-1'] - @property def estimator(self): return 'analog' @@ -1715,21 +1740,17 @@ class ScatterMatrixXS(MGXS): # If using P0 correction subtract scatter-1 from the diagonal if self.correction == 'P0' and self.legendre_order == 0: - scatter_p1 = self.tallies['scatter-1'] - scatter_p1 = scatter_p1.get_slice(scores=[self.scores[-1]]) - energy_filter = self.tallies['scatter-0'].find_filter('energy') + scatter_p0 = self.tallies['{}-0'.format(self.rxn_type)] + scatter_p1 = self.tallies['{}-1'.format(self.rxn_type)] + energy_filter = scatter_p0.find_filter('energy') energy_filter = copy.deepcopy(energy_filter) scatter_p1 = scatter_p1.diagonalize_filter(energy_filter) - self._rxn_rate_tally = self.tallies['scatter-0'] - scatter_p1 + self._rxn_rate_tally = scatter_p0 - scatter_p1 - # Merge all scattering moments into a single reaction rate Tally + # Extract scattering moment reaction rate Tally else: - rxn_rate_tally = self.tallies['scatter-0'] - for moment in range(1, self.legendre_order+1): - scatter_pn = self.tallies['scatter-{}'.format(moment)] - rxn_rate_tally = rxn_rate_tally.merge(scatter_pn) - - self._rxn_rate_tally = rxn_rate_tally + tally_key = '{}-P{}'.format(self.rxn_type, self.legendre_order) + self._rxn_rate_tally = self.tallies[tally_key] self._rxn_rate_tally.sparse = self.sparse @@ -1760,6 +1781,44 @@ class ScatterMatrixXS(MGXS): self._legendre_order = legendre_order + def load_from_statepoint(self, statepoint): + """Extracts tallies in an OpenMC StatePoint with the data needed to + compute multi-group cross sections. + + 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. + + Parameters + ---------- + statepoint : openmc.StatePoint + An OpenMC StatePoint object with tally data + + Raises + ------ + ValueError + When this method is called with a statepoint that has not been + linked with a summary object. + + """ + + # Clear any tallies previously loaded from a statepoint + if self.loaded_sp: + self._tallies = None + self._xs_tally = None + self._rxn_rate_tally = None + self._loaded_sp = False + + # Expand scores to match the format in the statepoint + # e.g., "scatter-P2" -> "scatter-0", "scatter-1", "scatter-2" + if 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)] + + super(ScatterMatrixXS, self).load_from_statepoint(statepoint) + def get_slice(self, nuclides=[], in_groups=[], out_groups=[], legendre_order='same'): """Build a sliced ScatterMatrix for the specified nuclides and @@ -1808,8 +1867,12 @@ class ScatterMatrixXS(MGXS): self.legendre_order, equality=True) slice_xs.legendre_order = legendre_order - for moment in range(legendre_order+1, self.legendre_order+1): - del slice_xs.tallies['scatter-{}'.format(moment)] + # Slice the scattering tally + tally_key = '{}-P{}'.format(self.rxn_type, self.legendre_order) + expand_scores = \ + [self.rxn_type + '-{}'.format(i) for i in range(self.legendre_order+1)] + slice_xs.tallies[tally_key] = \ + slice_xs.tallies[tally_key].get_slice(scores=expand_scores) # Slice outgoing energy groups if needed if len(out_groups) != 0: @@ -2034,14 +2097,16 @@ class ScatterMatrixXS(MGXS): groups, nuclides, xs_type, distribcell_paths) # Add a moment column to dataframe - moments = np.array(['P{}'.format(i) for i in range(self.legendre_order+1)]) - moments = np.tile(moments, df.shape[0] / moments.size) - df['moment'] = moments + if self.legendre_order > 0: + # Insert a column corresponding to the Legendre moments + moments = ['P{}'.format(i) for i in range(self.legendre_order+1)] + moments = np.tile(moments, df.shape[0] / len(moments)) + df['moment'] = moments - # Place the moment column before the mean column - mean_index = df.columns.get_loc('mean') - columns = df.columns.tolist() - df = df[columns[:mean_index] + ['moment'] + columns[mean_index:]] + # Place the moment column before the mean column + mean_index = df.columns.get_loc('mean') + columns = df.columns.tolist() + df = df[columns[:mean_index] + ['moment'] + columns[mean_index:-2]] # Select rows corresponding to requested scattering moment if moment != 'all': @@ -2049,7 +2114,7 @@ class ScatterMatrixXS(MGXS): cv.check_greater_than('moment', moment, 0, equality=True) cv.check_less_than( 'moment', moment, self.legendre_order, equality=True) - df = df.iloc[moment:self.legendre_order:] + df = df[df['moment'] == 'P{}'.format(moment)] return df @@ -2173,19 +2238,8 @@ class NuScatterMatrixXS(ScatterMatrixXS): groups=None, by_nuclide=False, name=''): super(NuScatterMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'nu-scatter matrix' - - @property - def scores(self): - scores = ['flux'] - - for moment in range(self.legendre_order+1): - scores.append('nu-scatter-{}'.format(moment)) - - if self.correction == 'P0' and self.legendre_order == 0: - scores.append('nu-scatter-1') - - return scores + self._rxn_type = 'nu-scatter' + self._hdf5_key = 'nu-scatter matrix' class Chi(MGXS): diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 89e4dbb3e..8296aca11 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,49 +1,49 @@ material group in nuclide mean std. dev. 0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. -0 1 1 total 0.076425 0.003691 material group in group out nuclide moment mean std. dev. moment -0 1 1 1 total P0 0.345503 0.021465 P0 material group out nuclide mean std. dev. +0 1 1 total 0.076425 0.003691 material group in group out nuclide mean std. dev. +0 1 1 1 total 0.345503 0.021465 material group out nuclide mean std. dev. 0 1 1 total 1.0 0.055333 material group in nuclide mean std. dev. 0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. -0 2 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 2 1 1 total P0 0.241262 0.00841 P0 material group out nuclide mean std. dev. +0 2 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 2 1 1 total 0.241262 0.00841 material group out nuclide mean std. dev. 0 2 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 3 1 total 0.400028 0.034667 material group in nuclide mean std. dev. -0 3 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 3 1 1 total P0 0.393462 0.033646 P0 material group out nuclide mean std. dev. +0 3 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 3 1 1 total 0.393462 0.033646 material group out nuclide mean std. dev. 0 3 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 4 1 total 0.377402 0.072937 material group in nuclide mean std. dev. -0 4 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 4 1 1 total P0 0.371473 0.071226 P0 material group out nuclide mean std. dev. +0 4 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 4 1 1 total 0.371473 0.071226 material group out nuclide mean std. dev. 0 4 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 5 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 5 1 1 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 5 1 1 total 0.0 0.0 material group out nuclide mean std. dev. 0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 6 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 6 1 1 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 6 1 1 total 0.0 0.0 material group out nuclide mean std. dev. 0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 7 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 7 1 1 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 7 1 1 total 0.0 0.0 material group out nuclide mean std. dev. 0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 8 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 8 1 1 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 8 1 1 total 0.0 0.0 material group out nuclide mean std. dev. 0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 9 1 total 0.600536 0.748875 material group in nuclide mean std. dev. -0 9 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 9 1 1 total P0 0.600536 0.748875 P0 material group out nuclide mean std. dev. +0 9 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 9 1 1 total 0.600536 0.748875 material group out nuclide mean std. dev. 0 9 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10 1 total 0.235515 0.613974 material group in nuclide mean std. dev. -0 10 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 10 1 1 total P0 0.235515 0.613974 P0 material group out nuclide mean std. dev. +0 10 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 10 1 1 total 0.235515 0.613974 material group out nuclide mean std. dev. 0 10 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 11 1 total 0.510145 0.741941 material group in nuclide mean std. dev. -0 11 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 11 1 1 total P0 0.491857 0.715554 P0 material group out nuclide mean std. dev. +0 11 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 11 1 1 total 0.491857 0.715554 material group out nuclide mean std. dev. 0 11 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 12 1 total 0.73836 0.825631 material group in nuclide mean std. dev. -0 12 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -0 12 1 1 total P0 0.723265 0.808231 P0 material group out nuclide mean std. dev. +0 12 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 12 1 1 total 0.723265 0.808231 material group out nuclide mean std. dev. 0 12 1 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 014eabfa5..0d5c7c7b4 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ avg(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.718919 0.520644 avg(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.0 0.0 avg(distribcell) group in group out nuclide moment mean std. dev. moment -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 0.695166 0.510606 P0 avg(distribcell) group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 avg(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.695166 0.510606 avg(distribcell) group out nuclide mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 0ad8e04aa..7361c60be 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -2,120 +2,120 @@ 1 1 1 total 0.372745 0.024269 0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. 1 1 1 total 0.021789 0.001182 -0 1 2 total 0.714077 0.040552 material group in group out nuclide moment mean std. dev. moment -3 1 1 1 total P0 0.337245 0.023015 P0 -2 1 1 2 total P0 0.001559 0.000510 P0 -1 1 2 1 total P0 0.000000 0.000000 P0 -0 1 2 2 total P0 0.422051 0.021617 P0 material group out nuclide mean std. dev. +0 1 2 total 0.714077 0.040552 material group in group out nuclide mean std. dev. +3 1 1 1 total 0.337245 0.023015 +2 1 1 2 total 0.001559 0.000510 +1 1 2 1 total 0.000000 0.000000 +0 1 2 2 total 0.422051 0.021617 material group out nuclide mean std. dev. 1 1 1 total 1.0 0.055333 0 1 2 total 0.0 0.000000 material group in nuclide mean std. dev. 1 2 1 total 0.237254 0.008184 0 2 2 total 0.285930 0.048796 material group in nuclide mean std. dev. 1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 2 1 1 total P0 0.237254 0.008184 P0 -2 2 1 2 total P0 0.000000 0.000000 P0 -1 2 2 1 total P0 0.000000 0.000000 P0 -0 2 2 2 total P0 0.285930 0.048796 P0 material group out nuclide mean std. dev. +0 2 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 2 1 1 total 0.237254 0.008184 +2 2 1 2 total 0.000000 0.000000 +1 2 2 1 total 0.000000 0.000000 +0 2 2 2 total 0.285930 0.048796 material group out nuclide mean std. dev. 1 2 1 total 0.0 0.0 0 2 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 3 1 total 0.286906 0.027401 0 3 2 total 1.418151 0.265308 material group in nuclide mean std. dev. 1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 3 1 1 total P0 0.259937 0.026115 P0 -2 3 1 2 total P0 0.026187 0.001665 P0 -1 3 2 1 total P0 0.000000 0.000000 P0 -0 3 2 2 total P0 1.359521 0.258505 P0 material group out nuclide mean std. dev. +0 3 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 3 1 1 total 0.259937 0.026115 +2 3 1 2 total 0.026187 0.001665 +1 3 2 1 total 0.000000 0.000000 +0 3 2 2 total 1.359521 0.258505 material group out nuclide mean std. dev. 1 3 1 total 0.0 0.0 0 3 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 4 1 total 0.242447 0.061031 0 4 2 total 1.253959 0.388363 material group in nuclide mean std. dev. 1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 4 1 1 total P0 0.217930 0.058565 P0 -2 4 1 2 total P0 0.023662 0.003083 P0 -1 4 2 1 total P0 0.000000 0.000000 P0 -0 4 2 2 total P0 1.215074 0.381025 P0 material group out nuclide mean std. dev. +0 4 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 4 1 1 total 0.217930 0.058565 +2 4 1 2 total 0.023662 0.003083 +1 4 2 1 total 0.000000 0.000000 +0 4 2 2 total 1.215074 0.381025 material group out nuclide mean std. dev. 1 4 1 total 0.0 0.0 0 4 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 5 1 total 0.0 0.0 0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 5 1 1 total P0 0.0 0.0 P0 -2 5 1 2 total P0 0.0 0.0 P0 -1 5 2 1 total P0 0.0 0.0 P0 -0 5 2 2 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 5 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 5 1 1 total 0.0 0.0 +2 5 1 2 total 0.0 0.0 +1 5 2 1 total 0.0 0.0 +0 5 2 2 total 0.0 0.0 material group out nuclide mean std. dev. 1 5 1 total 0.0 0.0 0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 6 1 total 0.0 0.0 0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 6 1 1 total P0 0.0 0.0 P0 -2 6 1 2 total P0 0.0 0.0 P0 -1 6 2 1 total P0 0.0 0.0 P0 -0 6 2 2 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 6 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 6 1 1 total 0.0 0.0 +2 6 1 2 total 0.0 0.0 +1 6 2 1 total 0.0 0.0 +0 6 2 2 total 0.0 0.0 material group out nuclide mean std. dev. 1 6 1 total 0.0 0.0 0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 7 1 total 0.0 0.0 0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 7 1 1 total P0 0.0 0.0 P0 -2 7 1 2 total P0 0.0 0.0 P0 -1 7 2 1 total P0 0.0 0.0 P0 -0 7 2 2 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 7 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 7 1 1 total 0.0 0.0 +2 7 1 2 total 0.0 0.0 +1 7 2 1 total 0.0 0.0 +0 7 2 2 total 0.0 0.0 material group out nuclide mean std. dev. 1 7 1 total 0.0 0.0 0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 8 1 total 0.0 0.0 0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 8 1 1 total P0 0.0 0.0 P0 -2 8 1 2 total P0 0.0 0.0 P0 -1 8 2 1 total P0 0.0 0.0 P0 -0 8 2 2 total P0 0.0 0.0 P0 material group out nuclide mean std. dev. +0 8 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 8 1 1 total 0.0 0.0 +2 8 1 2 total 0.0 0.0 +1 8 2 1 total 0.0 0.0 +0 8 2 2 total 0.0 0.0 material group out nuclide mean std. dev. 1 8 1 total 0.0 0.0 0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 9 1 total 0.600536 0.748875 0 9 2 total 0.000000 0.000000 material group in nuclide mean std. dev. 1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 9 1 1 total P0 0.600536 0.748875 P0 -2 9 1 2 total P0 0.000000 0.000000 P0 -1 9 2 1 total P0 0.000000 0.000000 P0 -0 9 2 2 total P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +0 9 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 9 1 1 total 0.600536 0.748875 +2 9 1 2 total 0.000000 0.000000 +1 9 2 1 total 0.000000 0.000000 +0 9 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. 1 9 1 total 0.0 0.0 0 9 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10 1 total 0.235515 0.613974 0 10 2 total 0.000000 0.000000 material group in nuclide mean std. dev. 1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 10 1 1 total P0 0.235515 0.613974 P0 -2 10 1 2 total P0 0.000000 0.000000 P0 -1 10 2 1 total P0 0.000000 0.000000 P0 -0 10 2 2 total P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +0 10 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 10 1 1 total 0.235515 0.613974 +2 10 1 2 total 0.000000 0.000000 +1 10 2 1 total 0.000000 0.000000 +0 10 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. 1 10 1 total 0.0 0.0 0 10 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 11 1 total 0.186324 0.632129 0 11 2 total 0.945986 1.591133 material group in nuclide mean std. dev. 1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 11 1 1 total P0 0.154449 0.597686 P0 -2 11 1 2 total P0 0.031875 0.045078 P0 -1 11 2 1 total P0 0.000000 0.000000 P0 -0 11 2 2 total P0 0.903085 1.532144 P0 material group out nuclide mean std. dev. +0 11 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 11 1 1 total 0.154449 0.597686 +2 11 1 2 total 0.031875 0.045078 +1 11 2 1 total 0.000000 0.000000 +0 11 2 2 total 0.903085 1.532144 material group out nuclide mean std. dev. 1 11 1 total 0.0 0.0 0 11 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 12 1 total 0.213292 0.271444 0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. 1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -3 12 1 1 total P0 0.186052 0.257633 P0 -2 12 1 2 total P0 0.027240 0.029555 P0 -1 12 2 1 total P0 0.000000 0.000000 P0 -0 12 2 2 total P0 1.357118 2.089846 P0 material group out nuclide mean std. dev. +0 12 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 12 1 1 total 0.186052 0.257633 +2 12 1 2 total 0.027240 0.029555 +1 12 2 1 total 0.000000 0.000000 +0 12 2 2 total 1.357118 2.089846 material group out nuclide mean std. dev. 1 12 1 total 0.0 0.0 0 12 2 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 9cef6fdd8..b0d62ebd0 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -134,143 +134,143 @@ 30 1 2 Sm-152 0.000000e+00 0.000000e+00 31 1 2 Eu-153 0.000000e+00 0.000000e+00 32 1 2 Gd-155 0.000000e+00 0.000000e+00 -33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide moment mean std. dev. moment -102 1 1 1 U-234 P0 0.000000 0.000000 P0 -103 1 1 1 U-235 P0 0.003226 0.001139 P0 -104 1 1 1 U-236 P0 0.001697 0.000923 P0 -105 1 1 1 U-238 P0 0.194468 0.013279 P0 -106 1 1 1 Np-237 P0 0.000000 0.000000 P0 -107 1 1 1 Pu-238 P0 0.000000 0.000000 P0 -108 1 1 1 Pu-239 P0 0.001005 0.000477 P0 -109 1 1 1 Pu-240 P0 0.001307 0.000295 P0 -110 1 1 1 Pu-241 P0 0.000344 0.000244 P0 -111 1 1 1 Pu-242 P0 0.000000 0.000000 P0 -112 1 1 1 Am-241 P0 0.000000 0.000000 P0 -113 1 1 1 Am-242m P0 0.000000 0.000000 P0 -114 1 1 1 Am-243 P0 0.000000 0.000000 P0 -115 1 1 1 Cm-242 P0 0.000000 0.000000 P0 -116 1 1 1 Cm-243 P0 0.000000 0.000000 P0 -117 1 1 1 Cm-244 P0 0.000000 0.000000 P0 -118 1 1 1 Cm-245 P0 0.000000 0.000000 P0 -119 1 1 1 Mo-95 P0 0.000000 0.000000 P0 -120 1 1 1 Tc-99 P0 0.000000 0.000000 P0 -121 1 1 1 Ru-101 P0 0.000238 0.000254 P0 -122 1 1 1 Ru-103 P0 0.000002 0.000243 P0 -123 1 1 1 Ag-109 P0 0.000000 0.000000 P0 -124 1 1 1 Xe-135 P0 0.000000 0.000000 P0 -125 1 1 1 Cs-133 P0 0.000000 0.000000 P0 -126 1 1 1 Nd-143 P0 0.000447 0.000292 P0 -127 1 1 1 Nd-145 P0 0.000564 0.000294 P0 -128 1 1 1 Sm-147 P0 0.000000 0.000000 P0 -129 1 1 1 Sm-149 P0 0.000000 0.000000 P0 -130 1 1 1 Sm-150 P0 0.000299 0.000238 P0 -131 1 1 1 Sm-151 P0 0.000000 0.000000 P0 -132 1 1 1 Sm-152 P0 0.000492 0.000352 P0 -133 1 1 1 Eu-153 P0 0.000000 0.000000 P0 -134 1 1 1 Gd-155 P0 0.000000 0.000000 P0 -135 1 1 1 O-16 P0 0.133156 0.009821 P0 -68 1 1 2 U-234 P0 0.000000 0.000000 P0 -69 1 1 2 U-235 P0 0.000000 0.000000 P0 -70 1 1 2 U-236 P0 0.000000 0.000000 P0 -71 1 1 2 U-238 P0 0.000173 0.000173 P0 -72 1 1 2 Np-237 P0 0.000000 0.000000 P0 -73 1 1 2 Pu-238 P0 0.000000 0.000000 P0 -74 1 1 2 Pu-239 P0 0.000000 0.000000 P0 -75 1 1 2 Pu-240 P0 0.000000 0.000000 P0 -76 1 1 2 Pu-241 P0 0.000000 0.000000 P0 -77 1 1 2 Pu-242 P0 0.000000 0.000000 P0 -78 1 1 2 Am-241 P0 0.000000 0.000000 P0 -79 1 1 2 Am-242m P0 0.000000 0.000000 P0 -80 1 1 2 Am-243 P0 0.000000 0.000000 P0 -81 1 1 2 Cm-242 P0 0.000000 0.000000 P0 -82 1 1 2 Cm-243 P0 0.000000 0.000000 P0 -83 1 1 2 Cm-244 P0 0.000000 0.000000 P0 -84 1 1 2 Cm-245 P0 0.000000 0.000000 P0 -85 1 1 2 Mo-95 P0 0.000000 0.000000 P0 -86 1 1 2 Tc-99 P0 0.000000 0.000000 P0 -87 1 1 2 Ru-101 P0 0.000000 0.000000 P0 -88 1 1 2 Ru-103 P0 0.000000 0.000000 P0 -89 1 1 2 Ag-109 P0 0.000000 0.000000 P0 -90 1 1 2 Xe-135 P0 0.000000 0.000000 P0 -91 1 1 2 Cs-133 P0 0.000000 0.000000 P0 -92 1 1 2 Nd-143 P0 0.000000 0.000000 P0 -93 1 1 2 Nd-145 P0 0.000000 0.000000 P0 -94 1 1 2 Sm-147 P0 0.000000 0.000000 P0 -95 1 1 2 Sm-149 P0 0.000000 0.000000 P0 -96 1 1 2 Sm-150 P0 0.000000 0.000000 P0 -97 1 1 2 Sm-151 P0 0.000000 0.000000 P0 -98 1 1 2 Sm-152 P0 0.000000 0.000000 P0 -99 1 1 2 Eu-153 P0 0.000000 0.000000 P0 -100 1 1 2 Gd-155 P0 0.000000 0.000000 P0 -101 1 1 2 O-16 P0 0.001386 0.000446 P0 -34 1 2 1 U-234 P0 0.000000 0.000000 P0 -35 1 2 1 U-235 P0 0.000000 0.000000 P0 -36 1 2 1 U-236 P0 0.000000 0.000000 P0 -37 1 2 1 U-238 P0 0.000000 0.000000 P0 -38 1 2 1 Np-237 P0 0.000000 0.000000 P0 -39 1 2 1 Pu-238 P0 0.000000 0.000000 P0 -40 1 2 1 Pu-239 P0 0.000000 0.000000 P0 -41 1 2 1 Pu-240 P0 0.000000 0.000000 P0 -42 1 2 1 Pu-241 P0 0.000000 0.000000 P0 -43 1 2 1 Pu-242 P0 0.000000 0.000000 P0 -44 1 2 1 Am-241 P0 0.000000 0.000000 P0 -45 1 2 1 Am-242m P0 0.000000 0.000000 P0 -46 1 2 1 Am-243 P0 0.000000 0.000000 P0 -47 1 2 1 Cm-242 P0 0.000000 0.000000 P0 -48 1 2 1 Cm-243 P0 0.000000 0.000000 P0 -49 1 2 1 Cm-244 P0 0.000000 0.000000 P0 -50 1 2 1 Cm-245 P0 0.000000 0.000000 P0 -51 1 2 1 Mo-95 P0 0.000000 0.000000 P0 -52 1 2 1 Tc-99 P0 0.000000 0.000000 P0 -53 1 2 1 Ru-101 P0 0.000000 0.000000 P0 -54 1 2 1 Ru-103 P0 0.000000 0.000000 P0 -55 1 2 1 Ag-109 P0 0.000000 0.000000 P0 -56 1 2 1 Xe-135 P0 0.000000 0.000000 P0 -57 1 2 1 Cs-133 P0 0.000000 0.000000 P0 -58 1 2 1 Nd-143 P0 0.000000 0.000000 P0 -59 1 2 1 Nd-145 P0 0.000000 0.000000 P0 -60 1 2 1 Sm-147 P0 0.000000 0.000000 P0 -61 1 2 1 Sm-149 P0 0.000000 0.000000 P0 -62 1 2 1 Sm-150 P0 0.000000 0.000000 P0 -63 1 2 1 Sm-151 P0 0.000000 0.000000 P0 -64 1 2 1 Sm-152 P0 0.000000 0.000000 P0 -65 1 2 1 Eu-153 P0 0.000000 0.000000 P0 -66 1 2 1 Gd-155 P0 0.000000 0.000000 P0 -67 1 2 1 O-16 P0 0.000000 0.000000 P0 -0 1 2 2 U-234 P0 0.000000 0.000000 P0 -1 1 2 2 U-235 P0 0.003889 0.003962 P0 -2 1 2 2 U-236 P0 0.001501 0.002037 P0 -3 1 2 2 U-238 P0 0.219715 0.025984 P0 -4 1 2 2 Np-237 P0 0.000000 0.000000 P0 -5 1 2 2 Pu-238 P0 0.000000 0.000000 P0 -6 1 2 2 Pu-239 P0 0.000000 0.000000 P0 -7 1 2 2 Pu-240 P0 0.000000 0.000000 P0 -8 1 2 2 Pu-241 P0 0.000000 0.000000 P0 -9 1 2 2 Pu-242 P0 0.000000 0.000000 P0 -10 1 2 2 Am-241 P0 0.000000 0.000000 P0 -11 1 2 2 Am-242m P0 0.000000 0.000000 P0 -12 1 2 2 Am-243 P0 0.000000 0.000000 P0 -13 1 2 2 Cm-242 P0 0.000000 0.000000 P0 -14 1 2 2 Cm-243 P0 0.000000 0.000000 P0 -15 1 2 2 Cm-244 P0 0.000000 0.000000 P0 -16 1 2 2 Cm-245 P0 0.000000 0.000000 P0 -17 1 2 2 Mo-95 P0 0.000000 0.000000 P0 -18 1 2 2 Tc-99 P0 0.000000 0.000000 P0 -19 1 2 2 Ru-101 P0 0.000000 0.000000 P0 -20 1 2 2 Ru-103 P0 0.000000 0.000000 P0 -21 1 2 2 Ag-109 P0 0.000000 0.000000 P0 -22 1 2 2 Xe-135 P0 0.000000 0.000000 P0 -23 1 2 2 Cs-133 P0 0.000000 0.000000 P0 -24 1 2 2 Nd-143 P0 0.000000 0.000000 P0 -25 1 2 2 Nd-145 P0 0.000000 0.000000 P0 -26 1 2 2 Sm-147 P0 0.000000 0.000000 P0 -27 1 2 2 Sm-149 P0 0.000000 0.000000 P0 -28 1 2 2 Sm-150 P0 0.000000 0.000000 P0 -29 1 2 2 Sm-151 P0 0.000000 0.000000 P0 -30 1 2 2 Sm-152 P0 0.000000 0.000000 P0 -31 1 2 2 Eu-153 P0 0.000000 0.000000 P0 -32 1 2 2 Gd-155 P0 0.000000 0.000000 P0 -33 1 2 2 O-16 P0 0.196946 0.014729 P0 material group out nuclide mean std. dev. +33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide mean std. dev. +102 1 1 1 U-234 0.000000 0.000000 +103 1 1 1 U-235 0.003226 0.001139 +104 1 1 1 U-236 0.001697 0.000923 +105 1 1 1 U-238 0.194468 0.013279 +106 1 1 1 Np-237 0.000000 0.000000 +107 1 1 1 Pu-238 0.000000 0.000000 +108 1 1 1 Pu-239 0.001005 0.000477 +109 1 1 1 Pu-240 0.001307 0.000295 +110 1 1 1 Pu-241 0.000344 0.000244 +111 1 1 1 Pu-242 0.000000 0.000000 +112 1 1 1 Am-241 0.000000 0.000000 +113 1 1 1 Am-242m 0.000000 0.000000 +114 1 1 1 Am-243 0.000000 0.000000 +115 1 1 1 Cm-242 0.000000 0.000000 +116 1 1 1 Cm-243 0.000000 0.000000 +117 1 1 1 Cm-244 0.000000 0.000000 +118 1 1 1 Cm-245 0.000000 0.000000 +119 1 1 1 Mo-95 0.000000 0.000000 +120 1 1 1 Tc-99 0.000000 0.000000 +121 1 1 1 Ru-101 0.000238 0.000254 +122 1 1 1 Ru-103 0.000002 0.000243 +123 1 1 1 Ag-109 0.000000 0.000000 +124 1 1 1 Xe-135 0.000000 0.000000 +125 1 1 1 Cs-133 0.000000 0.000000 +126 1 1 1 Nd-143 0.000447 0.000292 +127 1 1 1 Nd-145 0.000564 0.000294 +128 1 1 1 Sm-147 0.000000 0.000000 +129 1 1 1 Sm-149 0.000000 0.000000 +130 1 1 1 Sm-150 0.000299 0.000238 +131 1 1 1 Sm-151 0.000000 0.000000 +132 1 1 1 Sm-152 0.000492 0.000352 +133 1 1 1 Eu-153 0.000000 0.000000 +134 1 1 1 Gd-155 0.000000 0.000000 +135 1 1 1 O-16 0.133156 0.009821 +68 1 1 2 U-234 0.000000 0.000000 +69 1 1 2 U-235 0.000000 0.000000 +70 1 1 2 U-236 0.000000 0.000000 +71 1 1 2 U-238 0.000173 0.000173 +72 1 1 2 Np-237 0.000000 0.000000 +73 1 1 2 Pu-238 0.000000 0.000000 +74 1 1 2 Pu-239 0.000000 0.000000 +75 1 1 2 Pu-240 0.000000 0.000000 +76 1 1 2 Pu-241 0.000000 0.000000 +77 1 1 2 Pu-242 0.000000 0.000000 +78 1 1 2 Am-241 0.000000 0.000000 +79 1 1 2 Am-242m 0.000000 0.000000 +80 1 1 2 Am-243 0.000000 0.000000 +81 1 1 2 Cm-242 0.000000 0.000000 +82 1 1 2 Cm-243 0.000000 0.000000 +83 1 1 2 Cm-244 0.000000 0.000000 +84 1 1 2 Cm-245 0.000000 0.000000 +85 1 1 2 Mo-95 0.000000 0.000000 +86 1 1 2 Tc-99 0.000000 0.000000 +87 1 1 2 Ru-101 0.000000 0.000000 +88 1 1 2 Ru-103 0.000000 0.000000 +89 1 1 2 Ag-109 0.000000 0.000000 +90 1 1 2 Xe-135 0.000000 0.000000 +91 1 1 2 Cs-133 0.000000 0.000000 +92 1 1 2 Nd-143 0.000000 0.000000 +93 1 1 2 Nd-145 0.000000 0.000000 +94 1 1 2 Sm-147 0.000000 0.000000 +95 1 1 2 Sm-149 0.000000 0.000000 +96 1 1 2 Sm-150 0.000000 0.000000 +97 1 1 2 Sm-151 0.000000 0.000000 +98 1 1 2 Sm-152 0.000000 0.000000 +99 1 1 2 Eu-153 0.000000 0.000000 +100 1 1 2 Gd-155 0.000000 0.000000 +101 1 1 2 O-16 0.001386 0.000446 +34 1 2 1 U-234 0.000000 0.000000 +35 1 2 1 U-235 0.000000 0.000000 +36 1 2 1 U-236 0.000000 0.000000 +37 1 2 1 U-238 0.000000 0.000000 +38 1 2 1 Np-237 0.000000 0.000000 +39 1 2 1 Pu-238 0.000000 0.000000 +40 1 2 1 Pu-239 0.000000 0.000000 +41 1 2 1 Pu-240 0.000000 0.000000 +42 1 2 1 Pu-241 0.000000 0.000000 +43 1 2 1 Pu-242 0.000000 0.000000 +44 1 2 1 Am-241 0.000000 0.000000 +45 1 2 1 Am-242m 0.000000 0.000000 +46 1 2 1 Am-243 0.000000 0.000000 +47 1 2 1 Cm-242 0.000000 0.000000 +48 1 2 1 Cm-243 0.000000 0.000000 +49 1 2 1 Cm-244 0.000000 0.000000 +50 1 2 1 Cm-245 0.000000 0.000000 +51 1 2 1 Mo-95 0.000000 0.000000 +52 1 2 1 Tc-99 0.000000 0.000000 +53 1 2 1 Ru-101 0.000000 0.000000 +54 1 2 1 Ru-103 0.000000 0.000000 +55 1 2 1 Ag-109 0.000000 0.000000 +56 1 2 1 Xe-135 0.000000 0.000000 +57 1 2 1 Cs-133 0.000000 0.000000 +58 1 2 1 Nd-143 0.000000 0.000000 +59 1 2 1 Nd-145 0.000000 0.000000 +60 1 2 1 Sm-147 0.000000 0.000000 +61 1 2 1 Sm-149 0.000000 0.000000 +62 1 2 1 Sm-150 0.000000 0.000000 +63 1 2 1 Sm-151 0.000000 0.000000 +64 1 2 1 Sm-152 0.000000 0.000000 +65 1 2 1 Eu-153 0.000000 0.000000 +66 1 2 1 Gd-155 0.000000 0.000000 +67 1 2 1 O-16 0.000000 0.000000 +0 1 2 2 U-234 0.000000 0.000000 +1 1 2 2 U-235 0.003889 0.003962 +2 1 2 2 U-236 0.001501 0.002037 +3 1 2 2 U-238 0.219715 0.025984 +4 1 2 2 Np-237 0.000000 0.000000 +5 1 2 2 Pu-238 0.000000 0.000000 +6 1 2 2 Pu-239 0.000000 0.000000 +7 1 2 2 Pu-240 0.000000 0.000000 +8 1 2 2 Pu-241 0.000000 0.000000 +9 1 2 2 Pu-242 0.000000 0.000000 +10 1 2 2 Am-241 0.000000 0.000000 +11 1 2 2 Am-242m 0.000000 0.000000 +12 1 2 2 Am-243 0.000000 0.000000 +13 1 2 2 Cm-242 0.000000 0.000000 +14 1 2 2 Cm-243 0.000000 0.000000 +15 1 2 2 Cm-244 0.000000 0.000000 +16 1 2 2 Cm-245 0.000000 0.000000 +17 1 2 2 Mo-95 0.000000 0.000000 +18 1 2 2 Tc-99 0.000000 0.000000 +19 1 2 2 Ru-101 0.000000 0.000000 +20 1 2 2 Ru-103 0.000000 0.000000 +21 1 2 2 Ag-109 0.000000 0.000000 +22 1 2 2 Xe-135 0.000000 0.000000 +23 1 2 2 Cs-133 0.000000 0.000000 +24 1 2 2 Nd-143 0.000000 0.000000 +25 1 2 2 Nd-145 0.000000 0.000000 +26 1 2 2 Sm-147 0.000000 0.000000 +27 1 2 2 Sm-149 0.000000 0.000000 +28 1 2 2 Sm-150 0.000000 0.000000 +29 1 2 2 Sm-151 0.000000 0.000000 +30 1 2 2 Sm-152 0.000000 0.000000 +31 1 2 2 Eu-153 0.000000 0.000000 +32 1 2 2 Gd-155 0.000000 0.000000 +33 1 2 2 O-16 0.196946 0.014729 material group out nuclide mean std. dev. 34 1 1 U-234 0.0 0.000000 35 1 1 U-235 1.0 0.066362 36 1 1 U-236 0.0 0.000000 @@ -358,27 +358,27 @@ 1 2 2 Zr-91 0.0 0.0 2 2 2 Zr-92 0.0 0.0 3 2 2 Zr-94 0.0 0.0 -4 2 2 Zr-96 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -15 2 1 1 Zr-90 P0 0.104734 0.008915 P0 -16 2 1 1 Zr-91 P0 0.036155 0.003735 P0 -17 2 1 1 Zr-92 P0 0.042422 0.003029 P0 -18 2 1 1 Zr-94 P0 0.046148 0.006251 P0 -19 2 1 1 Zr-96 P0 0.007794 0.001536 P0 -10 2 1 2 Zr-90 P0 0.000000 0.000000 P0 -11 2 1 2 Zr-91 P0 0.000000 0.000000 P0 -12 2 1 2 Zr-92 P0 0.000000 0.000000 P0 -13 2 1 2 Zr-94 P0 0.000000 0.000000 P0 -14 2 1 2 Zr-96 P0 0.000000 0.000000 P0 -5 2 2 1 Zr-90 P0 0.000000 0.000000 P0 -6 2 2 1 Zr-91 P0 0.000000 0.000000 P0 -7 2 2 1 Zr-92 P0 0.000000 0.000000 P0 -8 2 2 1 Zr-94 P0 0.000000 0.000000 P0 -9 2 2 1 Zr-96 P0 0.000000 0.000000 P0 -0 2 2 2 Zr-90 P0 0.121688 0.034934 P0 -1 2 2 2 Zr-91 P0 0.061792 0.024317 P0 -2 2 2 2 Zr-92 P0 0.041633 0.016323 P0 -3 2 2 2 Zr-94 P0 0.060818 0.021483 P0 -4 2 2 2 Zr-96 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +4 2 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. +15 2 1 1 Zr-90 0.104734 0.008915 +16 2 1 1 Zr-91 0.036155 0.003735 +17 2 1 1 Zr-92 0.042422 0.003029 +18 2 1 1 Zr-94 0.046148 0.006251 +19 2 1 1 Zr-96 0.007794 0.001536 +10 2 1 2 Zr-90 0.000000 0.000000 +11 2 1 2 Zr-91 0.000000 0.000000 +12 2 1 2 Zr-92 0.000000 0.000000 +13 2 1 2 Zr-94 0.000000 0.000000 +14 2 1 2 Zr-96 0.000000 0.000000 +5 2 2 1 Zr-90 0.000000 0.000000 +6 2 2 1 Zr-91 0.000000 0.000000 +7 2 2 1 Zr-92 0.000000 0.000000 +8 2 2 1 Zr-94 0.000000 0.000000 +9 2 2 1 Zr-96 0.000000 0.000000 +0 2 2 2 Zr-90 0.121688 0.034934 +1 2 2 2 Zr-91 0.061792 0.024317 +2 2 2 2 Zr-92 0.041633 0.016323 +3 2 2 2 Zr-94 0.060818 0.021483 +4 2 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. 5 2 1 Zr-90 0.0 0.0 6 2 1 Zr-91 0.0 0.0 7 2 1 Zr-92 0.0 0.0 @@ -404,23 +404,23 @@ 0 3 2 H-1 0.0 0.0 1 3 2 O-16 0.0 0.0 2 3 2 B-10 0.0 0.0 -3 3 2 B-11 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -12 3 1 1 H-1 P0 0.181306 0.022102 P0 -13 3 1 1 O-16 P0 0.078631 0.005044 P0 -14 3 1 1 B-10 P0 0.000000 0.000000 P0 -15 3 1 1 B-11 P0 0.000000 0.000000 P0 -8 3 1 2 H-1 P0 0.025666 0.001582 P0 -9 3 1 2 O-16 P0 0.000521 0.000131 P0 -10 3 1 2 B-10 P0 0.000000 0.000000 P0 -11 3 1 2 B-11 P0 0.000000 0.000000 P0 -4 3 2 1 H-1 P0 0.000000 0.000000 P0 -5 3 2 1 O-16 P0 0.000000 0.000000 P0 -6 3 2 1 B-10 P0 0.000000 0.000000 P0 -7 3 2 1 B-11 P0 0.000000 0.000000 P0 -0 3 2 2 H-1 P0 1.273963 0.250623 P0 -1 3 2 2 O-16 P0 0.085363 0.014001 P0 -2 3 2 2 B-10 P0 0.000000 0.000000 P0 -3 3 2 2 B-11 P0 0.000195 0.001527 P0 material group out nuclide mean std. dev. +3 3 2 B-11 0.0 0.0 material group in group out nuclide mean std. dev. +12 3 1 1 H-1 0.181306 0.022102 +13 3 1 1 O-16 0.078631 0.005044 +14 3 1 1 B-10 0.000000 0.000000 +15 3 1 1 B-11 0.000000 0.000000 +8 3 1 2 H-1 0.025666 0.001582 +9 3 1 2 O-16 0.000521 0.000131 +10 3 1 2 B-10 0.000000 0.000000 +11 3 1 2 B-11 0.000000 0.000000 +4 3 2 1 H-1 0.000000 0.000000 +5 3 2 1 O-16 0.000000 0.000000 +6 3 2 1 B-10 0.000000 0.000000 +7 3 2 1 B-11 0.000000 0.000000 +0 3 2 2 H-1 1.273963 0.250623 +1 3 2 2 O-16 0.085363 0.014001 +2 3 2 2 B-10 0.000000 0.000000 +3 3 2 2 B-11 0.000195 0.001527 material group out nuclide mean std. dev. 4 3 1 H-1 0.0 0.0 5 3 1 O-16 0.0 0.0 6 3 1 B-10 0.0 0.0 @@ -444,23 +444,23 @@ 0 4 2 H-1 0.0 0.0 1 4 2 O-16 0.0 0.0 2 4 2 B-10 0.0 0.0 -3 4 2 B-11 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -12 4 1 1 H-1 P0 0.151295 0.051491 P0 -13 4 1 1 O-16 P0 0.066545 0.010083 P0 -14 4 1 1 B-10 P0 0.000000 0.000000 P0 -15 4 1 1 B-11 P0 0.000089 0.000346 P0 -8 4 1 2 H-1 P0 0.023662 0.003083 P0 -9 4 1 2 O-16 P0 0.000000 0.000000 P0 -10 4 1 2 B-10 P0 0.000000 0.000000 P0 -11 4 1 2 B-11 P0 0.000000 0.000000 P0 -4 4 2 1 H-1 P0 0.000000 0.000000 P0 -5 4 2 1 O-16 P0 0.000000 0.000000 P0 -6 4 2 1 B-10 P0 0.000000 0.000000 P0 -7 4 2 1 B-11 P0 0.000000 0.000000 P0 -0 4 2 2 H-1 P0 1.129933 0.361681 P0 -1 4 2 2 O-16 P0 0.085141 0.028073 P0 -2 4 2 2 B-10 P0 0.000000 0.000000 P0 -3 4 2 2 B-11 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +3 4 2 B-11 0.0 0.0 material group in group out nuclide mean std. dev. +12 4 1 1 H-1 0.151295 0.051491 +13 4 1 1 O-16 0.066545 0.010083 +14 4 1 1 B-10 0.000000 0.000000 +15 4 1 1 B-11 0.000089 0.000346 +8 4 1 2 H-1 0.023662 0.003083 +9 4 1 2 O-16 0.000000 0.000000 +10 4 1 2 B-10 0.000000 0.000000 +11 4 1 2 B-11 0.000000 0.000000 +4 4 2 1 H-1 0.000000 0.000000 +5 4 2 1 O-16 0.000000 0.000000 +6 4 2 1 B-10 0.000000 0.000000 +7 4 2 1 B-11 0.000000 0.000000 +0 4 2 2 H-1 1.129933 0.361681 +1 4 2 2 O-16 0.085141 0.028073 +2 4 2 2 B-10 0.000000 0.000000 +3 4 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. 4 4 1 H-1 0.0 0.0 5 4 1 O-16 0.0 0.0 6 4 1 B-10 0.0 0.0 @@ -576,115 +576,115 @@ 23 5 2 Cr-54 0.0 0.0 24 5 2 C-Nat 0.0 0.0 25 5 2 Cu-63 0.0 0.0 -26 5 2 Cu-65 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -81 5 1 1 Fe-54 P0 0.0 0.0 P0 -82 5 1 1 Fe-56 P0 0.0 0.0 P0 -83 5 1 1 Fe-57 P0 0.0 0.0 P0 -84 5 1 1 Fe-58 P0 0.0 0.0 P0 -85 5 1 1 Ni-58 P0 0.0 0.0 P0 -86 5 1 1 Ni-60 P0 0.0 0.0 P0 -87 5 1 1 Ni-61 P0 0.0 0.0 P0 -88 5 1 1 Ni-62 P0 0.0 0.0 P0 -89 5 1 1 Ni-64 P0 0.0 0.0 P0 -90 5 1 1 Mn-55 P0 0.0 0.0 P0 -91 5 1 1 Mo-92 P0 0.0 0.0 P0 -92 5 1 1 Mo-94 P0 0.0 0.0 P0 -93 5 1 1 Mo-95 P0 0.0 0.0 P0 -94 5 1 1 Mo-96 P0 0.0 0.0 P0 -95 5 1 1 Mo-97 P0 0.0 0.0 P0 -96 5 1 1 Mo-98 P0 0.0 0.0 P0 -97 5 1 1 Mo-100 P0 0.0 0.0 P0 -98 5 1 1 Si-28 P0 0.0 0.0 P0 -99 5 1 1 Si-29 P0 0.0 0.0 P0 -100 5 1 1 Si-30 P0 0.0 0.0 P0 -101 5 1 1 Cr-50 P0 0.0 0.0 P0 -102 5 1 1 Cr-52 P0 0.0 0.0 P0 -103 5 1 1 Cr-53 P0 0.0 0.0 P0 -104 5 1 1 Cr-54 P0 0.0 0.0 P0 -105 5 1 1 C-Nat P0 0.0 0.0 P0 -106 5 1 1 Cu-63 P0 0.0 0.0 P0 -107 5 1 1 Cu-65 P0 0.0 0.0 P0 -54 5 1 2 Fe-54 P0 0.0 0.0 P0 -55 5 1 2 Fe-56 P0 0.0 0.0 P0 -56 5 1 2 Fe-57 P0 0.0 0.0 P0 -57 5 1 2 Fe-58 P0 0.0 0.0 P0 -58 5 1 2 Ni-58 P0 0.0 0.0 P0 -59 5 1 2 Ni-60 P0 0.0 0.0 P0 -60 5 1 2 Ni-61 P0 0.0 0.0 P0 -61 5 1 2 Ni-62 P0 0.0 0.0 P0 -62 5 1 2 Ni-64 P0 0.0 0.0 P0 -63 5 1 2 Mn-55 P0 0.0 0.0 P0 -64 5 1 2 Mo-92 P0 0.0 0.0 P0 -65 5 1 2 Mo-94 P0 0.0 0.0 P0 -66 5 1 2 Mo-95 P0 0.0 0.0 P0 -67 5 1 2 Mo-96 P0 0.0 0.0 P0 -68 5 1 2 Mo-97 P0 0.0 0.0 P0 -69 5 1 2 Mo-98 P0 0.0 0.0 P0 -70 5 1 2 Mo-100 P0 0.0 0.0 P0 -71 5 1 2 Si-28 P0 0.0 0.0 P0 -72 5 1 2 Si-29 P0 0.0 0.0 P0 -73 5 1 2 Si-30 P0 0.0 0.0 P0 -74 5 1 2 Cr-50 P0 0.0 0.0 P0 -75 5 1 2 Cr-52 P0 0.0 0.0 P0 -76 5 1 2 Cr-53 P0 0.0 0.0 P0 -77 5 1 2 Cr-54 P0 0.0 0.0 P0 -78 5 1 2 C-Nat P0 0.0 0.0 P0 -79 5 1 2 Cu-63 P0 0.0 0.0 P0 -80 5 1 2 Cu-65 P0 0.0 0.0 P0 -27 5 2 1 Fe-54 P0 0.0 0.0 P0 -28 5 2 1 Fe-56 P0 0.0 0.0 P0 -29 5 2 1 Fe-57 P0 0.0 0.0 P0 -30 5 2 1 Fe-58 P0 0.0 0.0 P0 -31 5 2 1 Ni-58 P0 0.0 0.0 P0 -32 5 2 1 Ni-60 P0 0.0 0.0 P0 -33 5 2 1 Ni-61 P0 0.0 0.0 P0 -34 5 2 1 Ni-62 P0 0.0 0.0 P0 -35 5 2 1 Ni-64 P0 0.0 0.0 P0 -36 5 2 1 Mn-55 P0 0.0 0.0 P0 -37 5 2 1 Mo-92 P0 0.0 0.0 P0 -38 5 2 1 Mo-94 P0 0.0 0.0 P0 -39 5 2 1 Mo-95 P0 0.0 0.0 P0 -40 5 2 1 Mo-96 P0 0.0 0.0 P0 -41 5 2 1 Mo-97 P0 0.0 0.0 P0 -42 5 2 1 Mo-98 P0 0.0 0.0 P0 -43 5 2 1 Mo-100 P0 0.0 0.0 P0 -44 5 2 1 Si-28 P0 0.0 0.0 P0 -45 5 2 1 Si-29 P0 0.0 0.0 P0 -46 5 2 1 Si-30 P0 0.0 0.0 P0 -47 5 2 1 Cr-50 P0 0.0 0.0 P0 -48 5 2 1 Cr-52 P0 0.0 0.0 P0 -49 5 2 1 Cr-53 P0 0.0 0.0 P0 -50 5 2 1 Cr-54 P0 0.0 0.0 P0 -51 5 2 1 C-Nat P0 0.0 0.0 P0 -52 5 2 1 Cu-63 P0 0.0 0.0 P0 -53 5 2 1 Cu-65 P0 0.0 0.0 P0 -0 5 2 2 Fe-54 P0 0.0 0.0 P0 -1 5 2 2 Fe-56 P0 0.0 0.0 P0 -2 5 2 2 Fe-57 P0 0.0 0.0 P0 -3 5 2 2 Fe-58 P0 0.0 0.0 P0 -4 5 2 2 Ni-58 P0 0.0 0.0 P0 -5 5 2 2 Ni-60 P0 0.0 0.0 P0 -6 5 2 2 Ni-61 P0 0.0 0.0 P0 -7 5 2 2 Ni-62 P0 0.0 0.0 P0 -8 5 2 2 Ni-64 P0 0.0 0.0 P0 -9 5 2 2 Mn-55 P0 0.0 0.0 P0 -10 5 2 2 Mo-92 P0 0.0 0.0 P0 -11 5 2 2 Mo-94 P0 0.0 0.0 P0 -12 5 2 2 Mo-95 P0 0.0 0.0 P0 -13 5 2 2 Mo-96 P0 0.0 0.0 P0 -14 5 2 2 Mo-97 P0 0.0 0.0 P0 -15 5 2 2 Mo-98 P0 0.0 0.0 P0 -16 5 2 2 Mo-100 P0 0.0 0.0 P0 -17 5 2 2 Si-28 P0 0.0 0.0 P0 -18 5 2 2 Si-29 P0 0.0 0.0 P0 -19 5 2 2 Si-30 P0 0.0 0.0 P0 -20 5 2 2 Cr-50 P0 0.0 0.0 P0 -21 5 2 2 Cr-52 P0 0.0 0.0 P0 -22 5 2 2 Cr-53 P0 0.0 0.0 P0 -23 5 2 2 Cr-54 P0 0.0 0.0 P0 -24 5 2 2 C-Nat P0 0.0 0.0 P0 -25 5 2 2 Cu-63 P0 0.0 0.0 P0 -26 5 2 2 Cu-65 P0 0.0 0.0 P0 material group out nuclide mean std. dev. +26 5 2 Cu-65 0.0 0.0 material group in group out nuclide mean std. dev. +81 5 1 1 Fe-54 0.0 0.0 +82 5 1 1 Fe-56 0.0 0.0 +83 5 1 1 Fe-57 0.0 0.0 +84 5 1 1 Fe-58 0.0 0.0 +85 5 1 1 Ni-58 0.0 0.0 +86 5 1 1 Ni-60 0.0 0.0 +87 5 1 1 Ni-61 0.0 0.0 +88 5 1 1 Ni-62 0.0 0.0 +89 5 1 1 Ni-64 0.0 0.0 +90 5 1 1 Mn-55 0.0 0.0 +91 5 1 1 Mo-92 0.0 0.0 +92 5 1 1 Mo-94 0.0 0.0 +93 5 1 1 Mo-95 0.0 0.0 +94 5 1 1 Mo-96 0.0 0.0 +95 5 1 1 Mo-97 0.0 0.0 +96 5 1 1 Mo-98 0.0 0.0 +97 5 1 1 Mo-100 0.0 0.0 +98 5 1 1 Si-28 0.0 0.0 +99 5 1 1 Si-29 0.0 0.0 +100 5 1 1 Si-30 0.0 0.0 +101 5 1 1 Cr-50 0.0 0.0 +102 5 1 1 Cr-52 0.0 0.0 +103 5 1 1 Cr-53 0.0 0.0 +104 5 1 1 Cr-54 0.0 0.0 +105 5 1 1 C-Nat 0.0 0.0 +106 5 1 1 Cu-63 0.0 0.0 +107 5 1 1 Cu-65 0.0 0.0 +54 5 1 2 Fe-54 0.0 0.0 +55 5 1 2 Fe-56 0.0 0.0 +56 5 1 2 Fe-57 0.0 0.0 +57 5 1 2 Fe-58 0.0 0.0 +58 5 1 2 Ni-58 0.0 0.0 +59 5 1 2 Ni-60 0.0 0.0 +60 5 1 2 Ni-61 0.0 0.0 +61 5 1 2 Ni-62 0.0 0.0 +62 5 1 2 Ni-64 0.0 0.0 +63 5 1 2 Mn-55 0.0 0.0 +64 5 1 2 Mo-92 0.0 0.0 +65 5 1 2 Mo-94 0.0 0.0 +66 5 1 2 Mo-95 0.0 0.0 +67 5 1 2 Mo-96 0.0 0.0 +68 5 1 2 Mo-97 0.0 0.0 +69 5 1 2 Mo-98 0.0 0.0 +70 5 1 2 Mo-100 0.0 0.0 +71 5 1 2 Si-28 0.0 0.0 +72 5 1 2 Si-29 0.0 0.0 +73 5 1 2 Si-30 0.0 0.0 +74 5 1 2 Cr-50 0.0 0.0 +75 5 1 2 Cr-52 0.0 0.0 +76 5 1 2 Cr-53 0.0 0.0 +77 5 1 2 Cr-54 0.0 0.0 +78 5 1 2 C-Nat 0.0 0.0 +79 5 1 2 Cu-63 0.0 0.0 +80 5 1 2 Cu-65 0.0 0.0 +27 5 2 1 Fe-54 0.0 0.0 +28 5 2 1 Fe-56 0.0 0.0 +29 5 2 1 Fe-57 0.0 0.0 +30 5 2 1 Fe-58 0.0 0.0 +31 5 2 1 Ni-58 0.0 0.0 +32 5 2 1 Ni-60 0.0 0.0 +33 5 2 1 Ni-61 0.0 0.0 +34 5 2 1 Ni-62 0.0 0.0 +35 5 2 1 Ni-64 0.0 0.0 +36 5 2 1 Mn-55 0.0 0.0 +37 5 2 1 Mo-92 0.0 0.0 +38 5 2 1 Mo-94 0.0 0.0 +39 5 2 1 Mo-95 0.0 0.0 +40 5 2 1 Mo-96 0.0 0.0 +41 5 2 1 Mo-97 0.0 0.0 +42 5 2 1 Mo-98 0.0 0.0 +43 5 2 1 Mo-100 0.0 0.0 +44 5 2 1 Si-28 0.0 0.0 +45 5 2 1 Si-29 0.0 0.0 +46 5 2 1 Si-30 0.0 0.0 +47 5 2 1 Cr-50 0.0 0.0 +48 5 2 1 Cr-52 0.0 0.0 +49 5 2 1 Cr-53 0.0 0.0 +50 5 2 1 Cr-54 0.0 0.0 +51 5 2 1 C-Nat 0.0 0.0 +52 5 2 1 Cu-63 0.0 0.0 +53 5 2 1 Cu-65 0.0 0.0 +0 5 2 2 Fe-54 0.0 0.0 +1 5 2 2 Fe-56 0.0 0.0 +2 5 2 2 Fe-57 0.0 0.0 +3 5 2 2 Fe-58 0.0 0.0 +4 5 2 2 Ni-58 0.0 0.0 +5 5 2 2 Ni-60 0.0 0.0 +6 5 2 2 Ni-61 0.0 0.0 +7 5 2 2 Ni-62 0.0 0.0 +8 5 2 2 Ni-64 0.0 0.0 +9 5 2 2 Mn-55 0.0 0.0 +10 5 2 2 Mo-92 0.0 0.0 +11 5 2 2 Mo-94 0.0 0.0 +12 5 2 2 Mo-95 0.0 0.0 +13 5 2 2 Mo-96 0.0 0.0 +14 5 2 2 Mo-97 0.0 0.0 +15 5 2 2 Mo-98 0.0 0.0 +16 5 2 2 Mo-100 0.0 0.0 +17 5 2 2 Si-28 0.0 0.0 +18 5 2 2 Si-29 0.0 0.0 +19 5 2 2 Si-30 0.0 0.0 +20 5 2 2 Cr-50 0.0 0.0 +21 5 2 2 Cr-52 0.0 0.0 +22 5 2 2 Cr-53 0.0 0.0 +23 5 2 2 Cr-54 0.0 0.0 +24 5 2 2 C-Nat 0.0 0.0 +25 5 2 2 Cu-63 0.0 0.0 +26 5 2 2 Cu-65 0.0 0.0 material group out nuclide mean std. dev. 27 5 1 Fe-54 0.0 0.0 28 5 1 Fe-56 0.0 0.0 29 5 1 Fe-57 0.0 0.0 @@ -822,91 +822,91 @@ 17 6 2 Cr-50 0.0 0.0 18 6 2 Cr-52 0.0 0.0 19 6 2 Cr-53 0.0 0.0 -20 6 2 Cr-54 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -63 6 1 1 H-1 P0 0.0 0.0 P0 -64 6 1 1 O-16 P0 0.0 0.0 P0 -65 6 1 1 B-10 P0 0.0 0.0 P0 -66 6 1 1 B-11 P0 0.0 0.0 P0 -67 6 1 1 Fe-54 P0 0.0 0.0 P0 -68 6 1 1 Fe-56 P0 0.0 0.0 P0 -69 6 1 1 Fe-57 P0 0.0 0.0 P0 -70 6 1 1 Fe-58 P0 0.0 0.0 P0 -71 6 1 1 Ni-58 P0 0.0 0.0 P0 -72 6 1 1 Ni-60 P0 0.0 0.0 P0 -73 6 1 1 Ni-61 P0 0.0 0.0 P0 -74 6 1 1 Ni-62 P0 0.0 0.0 P0 -75 6 1 1 Ni-64 P0 0.0 0.0 P0 -76 6 1 1 Mn-55 P0 0.0 0.0 P0 -77 6 1 1 Si-28 P0 0.0 0.0 P0 -78 6 1 1 Si-29 P0 0.0 0.0 P0 -79 6 1 1 Si-30 P0 0.0 0.0 P0 -80 6 1 1 Cr-50 P0 0.0 0.0 P0 -81 6 1 1 Cr-52 P0 0.0 0.0 P0 -82 6 1 1 Cr-53 P0 0.0 0.0 P0 -83 6 1 1 Cr-54 P0 0.0 0.0 P0 -42 6 1 2 H-1 P0 0.0 0.0 P0 -43 6 1 2 O-16 P0 0.0 0.0 P0 -44 6 1 2 B-10 P0 0.0 0.0 P0 -45 6 1 2 B-11 P0 0.0 0.0 P0 -46 6 1 2 Fe-54 P0 0.0 0.0 P0 -47 6 1 2 Fe-56 P0 0.0 0.0 P0 -48 6 1 2 Fe-57 P0 0.0 0.0 P0 -49 6 1 2 Fe-58 P0 0.0 0.0 P0 -50 6 1 2 Ni-58 P0 0.0 0.0 P0 -51 6 1 2 Ni-60 P0 0.0 0.0 P0 -52 6 1 2 Ni-61 P0 0.0 0.0 P0 -53 6 1 2 Ni-62 P0 0.0 0.0 P0 -54 6 1 2 Ni-64 P0 0.0 0.0 P0 -55 6 1 2 Mn-55 P0 0.0 0.0 P0 -56 6 1 2 Si-28 P0 0.0 0.0 P0 -57 6 1 2 Si-29 P0 0.0 0.0 P0 -58 6 1 2 Si-30 P0 0.0 0.0 P0 -59 6 1 2 Cr-50 P0 0.0 0.0 P0 -60 6 1 2 Cr-52 P0 0.0 0.0 P0 -61 6 1 2 Cr-53 P0 0.0 0.0 P0 -62 6 1 2 Cr-54 P0 0.0 0.0 P0 -21 6 2 1 H-1 P0 0.0 0.0 P0 -22 6 2 1 O-16 P0 0.0 0.0 P0 -23 6 2 1 B-10 P0 0.0 0.0 P0 -24 6 2 1 B-11 P0 0.0 0.0 P0 -25 6 2 1 Fe-54 P0 0.0 0.0 P0 -26 6 2 1 Fe-56 P0 0.0 0.0 P0 -27 6 2 1 Fe-57 P0 0.0 0.0 P0 -28 6 2 1 Fe-58 P0 0.0 0.0 P0 -29 6 2 1 Ni-58 P0 0.0 0.0 P0 -30 6 2 1 Ni-60 P0 0.0 0.0 P0 -31 6 2 1 Ni-61 P0 0.0 0.0 P0 -32 6 2 1 Ni-62 P0 0.0 0.0 P0 -33 6 2 1 Ni-64 P0 0.0 0.0 P0 -34 6 2 1 Mn-55 P0 0.0 0.0 P0 -35 6 2 1 Si-28 P0 0.0 0.0 P0 -36 6 2 1 Si-29 P0 0.0 0.0 P0 -37 6 2 1 Si-30 P0 0.0 0.0 P0 -38 6 2 1 Cr-50 P0 0.0 0.0 P0 -39 6 2 1 Cr-52 P0 0.0 0.0 P0 -40 6 2 1 Cr-53 P0 0.0 0.0 P0 -41 6 2 1 Cr-54 P0 0.0 0.0 P0 -0 6 2 2 H-1 P0 0.0 0.0 P0 -1 6 2 2 O-16 P0 0.0 0.0 P0 -2 6 2 2 B-10 P0 0.0 0.0 P0 -3 6 2 2 B-11 P0 0.0 0.0 P0 -4 6 2 2 Fe-54 P0 0.0 0.0 P0 -5 6 2 2 Fe-56 P0 0.0 0.0 P0 -6 6 2 2 Fe-57 P0 0.0 0.0 P0 -7 6 2 2 Fe-58 P0 0.0 0.0 P0 -8 6 2 2 Ni-58 P0 0.0 0.0 P0 -9 6 2 2 Ni-60 P0 0.0 0.0 P0 -10 6 2 2 Ni-61 P0 0.0 0.0 P0 -11 6 2 2 Ni-62 P0 0.0 0.0 P0 -12 6 2 2 Ni-64 P0 0.0 0.0 P0 -13 6 2 2 Mn-55 P0 0.0 0.0 P0 -14 6 2 2 Si-28 P0 0.0 0.0 P0 -15 6 2 2 Si-29 P0 0.0 0.0 P0 -16 6 2 2 Si-30 P0 0.0 0.0 P0 -17 6 2 2 Cr-50 P0 0.0 0.0 P0 -18 6 2 2 Cr-52 P0 0.0 0.0 P0 -19 6 2 2 Cr-53 P0 0.0 0.0 P0 -20 6 2 2 Cr-54 P0 0.0 0.0 P0 material group out nuclide mean std. dev. +20 6 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 6 1 1 H-1 0.0 0.0 +64 6 1 1 O-16 0.0 0.0 +65 6 1 1 B-10 0.0 0.0 +66 6 1 1 B-11 0.0 0.0 +67 6 1 1 Fe-54 0.0 0.0 +68 6 1 1 Fe-56 0.0 0.0 +69 6 1 1 Fe-57 0.0 0.0 +70 6 1 1 Fe-58 0.0 0.0 +71 6 1 1 Ni-58 0.0 0.0 +72 6 1 1 Ni-60 0.0 0.0 +73 6 1 1 Ni-61 0.0 0.0 +74 6 1 1 Ni-62 0.0 0.0 +75 6 1 1 Ni-64 0.0 0.0 +76 6 1 1 Mn-55 0.0 0.0 +77 6 1 1 Si-28 0.0 0.0 +78 6 1 1 Si-29 0.0 0.0 +79 6 1 1 Si-30 0.0 0.0 +80 6 1 1 Cr-50 0.0 0.0 +81 6 1 1 Cr-52 0.0 0.0 +82 6 1 1 Cr-53 0.0 0.0 +83 6 1 1 Cr-54 0.0 0.0 +42 6 1 2 H-1 0.0 0.0 +43 6 1 2 O-16 0.0 0.0 +44 6 1 2 B-10 0.0 0.0 +45 6 1 2 B-11 0.0 0.0 +46 6 1 2 Fe-54 0.0 0.0 +47 6 1 2 Fe-56 0.0 0.0 +48 6 1 2 Fe-57 0.0 0.0 +49 6 1 2 Fe-58 0.0 0.0 +50 6 1 2 Ni-58 0.0 0.0 +51 6 1 2 Ni-60 0.0 0.0 +52 6 1 2 Ni-61 0.0 0.0 +53 6 1 2 Ni-62 0.0 0.0 +54 6 1 2 Ni-64 0.0 0.0 +55 6 1 2 Mn-55 0.0 0.0 +56 6 1 2 Si-28 0.0 0.0 +57 6 1 2 Si-29 0.0 0.0 +58 6 1 2 Si-30 0.0 0.0 +59 6 1 2 Cr-50 0.0 0.0 +60 6 1 2 Cr-52 0.0 0.0 +61 6 1 2 Cr-53 0.0 0.0 +62 6 1 2 Cr-54 0.0 0.0 +21 6 2 1 H-1 0.0 0.0 +22 6 2 1 O-16 0.0 0.0 +23 6 2 1 B-10 0.0 0.0 +24 6 2 1 B-11 0.0 0.0 +25 6 2 1 Fe-54 0.0 0.0 +26 6 2 1 Fe-56 0.0 0.0 +27 6 2 1 Fe-57 0.0 0.0 +28 6 2 1 Fe-58 0.0 0.0 +29 6 2 1 Ni-58 0.0 0.0 +30 6 2 1 Ni-60 0.0 0.0 +31 6 2 1 Ni-61 0.0 0.0 +32 6 2 1 Ni-62 0.0 0.0 +33 6 2 1 Ni-64 0.0 0.0 +34 6 2 1 Mn-55 0.0 0.0 +35 6 2 1 Si-28 0.0 0.0 +36 6 2 1 Si-29 0.0 0.0 +37 6 2 1 Si-30 0.0 0.0 +38 6 2 1 Cr-50 0.0 0.0 +39 6 2 1 Cr-52 0.0 0.0 +40 6 2 1 Cr-53 0.0 0.0 +41 6 2 1 Cr-54 0.0 0.0 +0 6 2 2 H-1 0.0 0.0 +1 6 2 2 O-16 0.0 0.0 +2 6 2 2 B-10 0.0 0.0 +3 6 2 2 B-11 0.0 0.0 +4 6 2 2 Fe-54 0.0 0.0 +5 6 2 2 Fe-56 0.0 0.0 +6 6 2 2 Fe-57 0.0 0.0 +7 6 2 2 Fe-58 0.0 0.0 +8 6 2 2 Ni-58 0.0 0.0 +9 6 2 2 Ni-60 0.0 0.0 +10 6 2 2 Ni-61 0.0 0.0 +11 6 2 2 Ni-62 0.0 0.0 +12 6 2 2 Ni-64 0.0 0.0 +13 6 2 2 Mn-55 0.0 0.0 +14 6 2 2 Si-28 0.0 0.0 +15 6 2 2 Si-29 0.0 0.0 +16 6 2 2 Si-30 0.0 0.0 +17 6 2 2 Cr-50 0.0 0.0 +18 6 2 2 Cr-52 0.0 0.0 +19 6 2 2 Cr-53 0.0 0.0 +20 6 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. 21 6 1 H-1 0.0 0.0 22 6 1 O-16 0.0 0.0 23 6 1 B-10 0.0 0.0 @@ -1032,91 +1032,91 @@ 17 7 2 Cr-50 0.0 0.0 18 7 2 Cr-52 0.0 0.0 19 7 2 Cr-53 0.0 0.0 -20 7 2 Cr-54 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -63 7 1 1 H-1 P0 0.0 0.0 P0 -64 7 1 1 O-16 P0 0.0 0.0 P0 -65 7 1 1 B-10 P0 0.0 0.0 P0 -66 7 1 1 B-11 P0 0.0 0.0 P0 -67 7 1 1 Fe-54 P0 0.0 0.0 P0 -68 7 1 1 Fe-56 P0 0.0 0.0 P0 -69 7 1 1 Fe-57 P0 0.0 0.0 P0 -70 7 1 1 Fe-58 P0 0.0 0.0 P0 -71 7 1 1 Ni-58 P0 0.0 0.0 P0 -72 7 1 1 Ni-60 P0 0.0 0.0 P0 -73 7 1 1 Ni-61 P0 0.0 0.0 P0 -74 7 1 1 Ni-62 P0 0.0 0.0 P0 -75 7 1 1 Ni-64 P0 0.0 0.0 P0 -76 7 1 1 Mn-55 P0 0.0 0.0 P0 -77 7 1 1 Si-28 P0 0.0 0.0 P0 -78 7 1 1 Si-29 P0 0.0 0.0 P0 -79 7 1 1 Si-30 P0 0.0 0.0 P0 -80 7 1 1 Cr-50 P0 0.0 0.0 P0 -81 7 1 1 Cr-52 P0 0.0 0.0 P0 -82 7 1 1 Cr-53 P0 0.0 0.0 P0 -83 7 1 1 Cr-54 P0 0.0 0.0 P0 -42 7 1 2 H-1 P0 0.0 0.0 P0 -43 7 1 2 O-16 P0 0.0 0.0 P0 -44 7 1 2 B-10 P0 0.0 0.0 P0 -45 7 1 2 B-11 P0 0.0 0.0 P0 -46 7 1 2 Fe-54 P0 0.0 0.0 P0 -47 7 1 2 Fe-56 P0 0.0 0.0 P0 -48 7 1 2 Fe-57 P0 0.0 0.0 P0 -49 7 1 2 Fe-58 P0 0.0 0.0 P0 -50 7 1 2 Ni-58 P0 0.0 0.0 P0 -51 7 1 2 Ni-60 P0 0.0 0.0 P0 -52 7 1 2 Ni-61 P0 0.0 0.0 P0 -53 7 1 2 Ni-62 P0 0.0 0.0 P0 -54 7 1 2 Ni-64 P0 0.0 0.0 P0 -55 7 1 2 Mn-55 P0 0.0 0.0 P0 -56 7 1 2 Si-28 P0 0.0 0.0 P0 -57 7 1 2 Si-29 P0 0.0 0.0 P0 -58 7 1 2 Si-30 P0 0.0 0.0 P0 -59 7 1 2 Cr-50 P0 0.0 0.0 P0 -60 7 1 2 Cr-52 P0 0.0 0.0 P0 -61 7 1 2 Cr-53 P0 0.0 0.0 P0 -62 7 1 2 Cr-54 P0 0.0 0.0 P0 -21 7 2 1 H-1 P0 0.0 0.0 P0 -22 7 2 1 O-16 P0 0.0 0.0 P0 -23 7 2 1 B-10 P0 0.0 0.0 P0 -24 7 2 1 B-11 P0 0.0 0.0 P0 -25 7 2 1 Fe-54 P0 0.0 0.0 P0 -26 7 2 1 Fe-56 P0 0.0 0.0 P0 -27 7 2 1 Fe-57 P0 0.0 0.0 P0 -28 7 2 1 Fe-58 P0 0.0 0.0 P0 -29 7 2 1 Ni-58 P0 0.0 0.0 P0 -30 7 2 1 Ni-60 P0 0.0 0.0 P0 -31 7 2 1 Ni-61 P0 0.0 0.0 P0 -32 7 2 1 Ni-62 P0 0.0 0.0 P0 -33 7 2 1 Ni-64 P0 0.0 0.0 P0 -34 7 2 1 Mn-55 P0 0.0 0.0 P0 -35 7 2 1 Si-28 P0 0.0 0.0 P0 -36 7 2 1 Si-29 P0 0.0 0.0 P0 -37 7 2 1 Si-30 P0 0.0 0.0 P0 -38 7 2 1 Cr-50 P0 0.0 0.0 P0 -39 7 2 1 Cr-52 P0 0.0 0.0 P0 -40 7 2 1 Cr-53 P0 0.0 0.0 P0 -41 7 2 1 Cr-54 P0 0.0 0.0 P0 -0 7 2 2 H-1 P0 0.0 0.0 P0 -1 7 2 2 O-16 P0 0.0 0.0 P0 -2 7 2 2 B-10 P0 0.0 0.0 P0 -3 7 2 2 B-11 P0 0.0 0.0 P0 -4 7 2 2 Fe-54 P0 0.0 0.0 P0 -5 7 2 2 Fe-56 P0 0.0 0.0 P0 -6 7 2 2 Fe-57 P0 0.0 0.0 P0 -7 7 2 2 Fe-58 P0 0.0 0.0 P0 -8 7 2 2 Ni-58 P0 0.0 0.0 P0 -9 7 2 2 Ni-60 P0 0.0 0.0 P0 -10 7 2 2 Ni-61 P0 0.0 0.0 P0 -11 7 2 2 Ni-62 P0 0.0 0.0 P0 -12 7 2 2 Ni-64 P0 0.0 0.0 P0 -13 7 2 2 Mn-55 P0 0.0 0.0 P0 -14 7 2 2 Si-28 P0 0.0 0.0 P0 -15 7 2 2 Si-29 P0 0.0 0.0 P0 -16 7 2 2 Si-30 P0 0.0 0.0 P0 -17 7 2 2 Cr-50 P0 0.0 0.0 P0 -18 7 2 2 Cr-52 P0 0.0 0.0 P0 -19 7 2 2 Cr-53 P0 0.0 0.0 P0 -20 7 2 2 Cr-54 P0 0.0 0.0 P0 material group out nuclide mean std. dev. +20 7 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 7 1 1 H-1 0.0 0.0 +64 7 1 1 O-16 0.0 0.0 +65 7 1 1 B-10 0.0 0.0 +66 7 1 1 B-11 0.0 0.0 +67 7 1 1 Fe-54 0.0 0.0 +68 7 1 1 Fe-56 0.0 0.0 +69 7 1 1 Fe-57 0.0 0.0 +70 7 1 1 Fe-58 0.0 0.0 +71 7 1 1 Ni-58 0.0 0.0 +72 7 1 1 Ni-60 0.0 0.0 +73 7 1 1 Ni-61 0.0 0.0 +74 7 1 1 Ni-62 0.0 0.0 +75 7 1 1 Ni-64 0.0 0.0 +76 7 1 1 Mn-55 0.0 0.0 +77 7 1 1 Si-28 0.0 0.0 +78 7 1 1 Si-29 0.0 0.0 +79 7 1 1 Si-30 0.0 0.0 +80 7 1 1 Cr-50 0.0 0.0 +81 7 1 1 Cr-52 0.0 0.0 +82 7 1 1 Cr-53 0.0 0.0 +83 7 1 1 Cr-54 0.0 0.0 +42 7 1 2 H-1 0.0 0.0 +43 7 1 2 O-16 0.0 0.0 +44 7 1 2 B-10 0.0 0.0 +45 7 1 2 B-11 0.0 0.0 +46 7 1 2 Fe-54 0.0 0.0 +47 7 1 2 Fe-56 0.0 0.0 +48 7 1 2 Fe-57 0.0 0.0 +49 7 1 2 Fe-58 0.0 0.0 +50 7 1 2 Ni-58 0.0 0.0 +51 7 1 2 Ni-60 0.0 0.0 +52 7 1 2 Ni-61 0.0 0.0 +53 7 1 2 Ni-62 0.0 0.0 +54 7 1 2 Ni-64 0.0 0.0 +55 7 1 2 Mn-55 0.0 0.0 +56 7 1 2 Si-28 0.0 0.0 +57 7 1 2 Si-29 0.0 0.0 +58 7 1 2 Si-30 0.0 0.0 +59 7 1 2 Cr-50 0.0 0.0 +60 7 1 2 Cr-52 0.0 0.0 +61 7 1 2 Cr-53 0.0 0.0 +62 7 1 2 Cr-54 0.0 0.0 +21 7 2 1 H-1 0.0 0.0 +22 7 2 1 O-16 0.0 0.0 +23 7 2 1 B-10 0.0 0.0 +24 7 2 1 B-11 0.0 0.0 +25 7 2 1 Fe-54 0.0 0.0 +26 7 2 1 Fe-56 0.0 0.0 +27 7 2 1 Fe-57 0.0 0.0 +28 7 2 1 Fe-58 0.0 0.0 +29 7 2 1 Ni-58 0.0 0.0 +30 7 2 1 Ni-60 0.0 0.0 +31 7 2 1 Ni-61 0.0 0.0 +32 7 2 1 Ni-62 0.0 0.0 +33 7 2 1 Ni-64 0.0 0.0 +34 7 2 1 Mn-55 0.0 0.0 +35 7 2 1 Si-28 0.0 0.0 +36 7 2 1 Si-29 0.0 0.0 +37 7 2 1 Si-30 0.0 0.0 +38 7 2 1 Cr-50 0.0 0.0 +39 7 2 1 Cr-52 0.0 0.0 +40 7 2 1 Cr-53 0.0 0.0 +41 7 2 1 Cr-54 0.0 0.0 +0 7 2 2 H-1 0.0 0.0 +1 7 2 2 O-16 0.0 0.0 +2 7 2 2 B-10 0.0 0.0 +3 7 2 2 B-11 0.0 0.0 +4 7 2 2 Fe-54 0.0 0.0 +5 7 2 2 Fe-56 0.0 0.0 +6 7 2 2 Fe-57 0.0 0.0 +7 7 2 2 Fe-58 0.0 0.0 +8 7 2 2 Ni-58 0.0 0.0 +9 7 2 2 Ni-60 0.0 0.0 +10 7 2 2 Ni-61 0.0 0.0 +11 7 2 2 Ni-62 0.0 0.0 +12 7 2 2 Ni-64 0.0 0.0 +13 7 2 2 Mn-55 0.0 0.0 +14 7 2 2 Si-28 0.0 0.0 +15 7 2 2 Si-29 0.0 0.0 +16 7 2 2 Si-30 0.0 0.0 +17 7 2 2 Cr-50 0.0 0.0 +18 7 2 2 Cr-52 0.0 0.0 +19 7 2 2 Cr-53 0.0 0.0 +20 7 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. 21 7 1 H-1 0.0 0.0 22 7 1 O-16 0.0 0.0 23 7 1 B-10 0.0 0.0 @@ -1242,91 +1242,91 @@ 17 8 2 Cr-50 0.0 0.0 18 8 2 Cr-52 0.0 0.0 19 8 2 Cr-53 0.0 0.0 -20 8 2 Cr-54 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -63 8 1 1 H-1 P0 0.0 0.0 P0 -64 8 1 1 O-16 P0 0.0 0.0 P0 -65 8 1 1 B-10 P0 0.0 0.0 P0 -66 8 1 1 B-11 P0 0.0 0.0 P0 -67 8 1 1 Fe-54 P0 0.0 0.0 P0 -68 8 1 1 Fe-56 P0 0.0 0.0 P0 -69 8 1 1 Fe-57 P0 0.0 0.0 P0 -70 8 1 1 Fe-58 P0 0.0 0.0 P0 -71 8 1 1 Ni-58 P0 0.0 0.0 P0 -72 8 1 1 Ni-60 P0 0.0 0.0 P0 -73 8 1 1 Ni-61 P0 0.0 0.0 P0 -74 8 1 1 Ni-62 P0 0.0 0.0 P0 -75 8 1 1 Ni-64 P0 0.0 0.0 P0 -76 8 1 1 Mn-55 P0 0.0 0.0 P0 -77 8 1 1 Si-28 P0 0.0 0.0 P0 -78 8 1 1 Si-29 P0 0.0 0.0 P0 -79 8 1 1 Si-30 P0 0.0 0.0 P0 -80 8 1 1 Cr-50 P0 0.0 0.0 P0 -81 8 1 1 Cr-52 P0 0.0 0.0 P0 -82 8 1 1 Cr-53 P0 0.0 0.0 P0 -83 8 1 1 Cr-54 P0 0.0 0.0 P0 -42 8 1 2 H-1 P0 0.0 0.0 P0 -43 8 1 2 O-16 P0 0.0 0.0 P0 -44 8 1 2 B-10 P0 0.0 0.0 P0 -45 8 1 2 B-11 P0 0.0 0.0 P0 -46 8 1 2 Fe-54 P0 0.0 0.0 P0 -47 8 1 2 Fe-56 P0 0.0 0.0 P0 -48 8 1 2 Fe-57 P0 0.0 0.0 P0 -49 8 1 2 Fe-58 P0 0.0 0.0 P0 -50 8 1 2 Ni-58 P0 0.0 0.0 P0 -51 8 1 2 Ni-60 P0 0.0 0.0 P0 -52 8 1 2 Ni-61 P0 0.0 0.0 P0 -53 8 1 2 Ni-62 P0 0.0 0.0 P0 -54 8 1 2 Ni-64 P0 0.0 0.0 P0 -55 8 1 2 Mn-55 P0 0.0 0.0 P0 -56 8 1 2 Si-28 P0 0.0 0.0 P0 -57 8 1 2 Si-29 P0 0.0 0.0 P0 -58 8 1 2 Si-30 P0 0.0 0.0 P0 -59 8 1 2 Cr-50 P0 0.0 0.0 P0 -60 8 1 2 Cr-52 P0 0.0 0.0 P0 -61 8 1 2 Cr-53 P0 0.0 0.0 P0 -62 8 1 2 Cr-54 P0 0.0 0.0 P0 -21 8 2 1 H-1 P0 0.0 0.0 P0 -22 8 2 1 O-16 P0 0.0 0.0 P0 -23 8 2 1 B-10 P0 0.0 0.0 P0 -24 8 2 1 B-11 P0 0.0 0.0 P0 -25 8 2 1 Fe-54 P0 0.0 0.0 P0 -26 8 2 1 Fe-56 P0 0.0 0.0 P0 -27 8 2 1 Fe-57 P0 0.0 0.0 P0 -28 8 2 1 Fe-58 P0 0.0 0.0 P0 -29 8 2 1 Ni-58 P0 0.0 0.0 P0 -30 8 2 1 Ni-60 P0 0.0 0.0 P0 -31 8 2 1 Ni-61 P0 0.0 0.0 P0 -32 8 2 1 Ni-62 P0 0.0 0.0 P0 -33 8 2 1 Ni-64 P0 0.0 0.0 P0 -34 8 2 1 Mn-55 P0 0.0 0.0 P0 -35 8 2 1 Si-28 P0 0.0 0.0 P0 -36 8 2 1 Si-29 P0 0.0 0.0 P0 -37 8 2 1 Si-30 P0 0.0 0.0 P0 -38 8 2 1 Cr-50 P0 0.0 0.0 P0 -39 8 2 1 Cr-52 P0 0.0 0.0 P0 -40 8 2 1 Cr-53 P0 0.0 0.0 P0 -41 8 2 1 Cr-54 P0 0.0 0.0 P0 -0 8 2 2 H-1 P0 0.0 0.0 P0 -1 8 2 2 O-16 P0 0.0 0.0 P0 -2 8 2 2 B-10 P0 0.0 0.0 P0 -3 8 2 2 B-11 P0 0.0 0.0 P0 -4 8 2 2 Fe-54 P0 0.0 0.0 P0 -5 8 2 2 Fe-56 P0 0.0 0.0 P0 -6 8 2 2 Fe-57 P0 0.0 0.0 P0 -7 8 2 2 Fe-58 P0 0.0 0.0 P0 -8 8 2 2 Ni-58 P0 0.0 0.0 P0 -9 8 2 2 Ni-60 P0 0.0 0.0 P0 -10 8 2 2 Ni-61 P0 0.0 0.0 P0 -11 8 2 2 Ni-62 P0 0.0 0.0 P0 -12 8 2 2 Ni-64 P0 0.0 0.0 P0 -13 8 2 2 Mn-55 P0 0.0 0.0 P0 -14 8 2 2 Si-28 P0 0.0 0.0 P0 -15 8 2 2 Si-29 P0 0.0 0.0 P0 -16 8 2 2 Si-30 P0 0.0 0.0 P0 -17 8 2 2 Cr-50 P0 0.0 0.0 P0 -18 8 2 2 Cr-52 P0 0.0 0.0 P0 -19 8 2 2 Cr-53 P0 0.0 0.0 P0 -20 8 2 2 Cr-54 P0 0.0 0.0 P0 material group out nuclide mean std. dev. +20 8 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 8 1 1 H-1 0.0 0.0 +64 8 1 1 O-16 0.0 0.0 +65 8 1 1 B-10 0.0 0.0 +66 8 1 1 B-11 0.0 0.0 +67 8 1 1 Fe-54 0.0 0.0 +68 8 1 1 Fe-56 0.0 0.0 +69 8 1 1 Fe-57 0.0 0.0 +70 8 1 1 Fe-58 0.0 0.0 +71 8 1 1 Ni-58 0.0 0.0 +72 8 1 1 Ni-60 0.0 0.0 +73 8 1 1 Ni-61 0.0 0.0 +74 8 1 1 Ni-62 0.0 0.0 +75 8 1 1 Ni-64 0.0 0.0 +76 8 1 1 Mn-55 0.0 0.0 +77 8 1 1 Si-28 0.0 0.0 +78 8 1 1 Si-29 0.0 0.0 +79 8 1 1 Si-30 0.0 0.0 +80 8 1 1 Cr-50 0.0 0.0 +81 8 1 1 Cr-52 0.0 0.0 +82 8 1 1 Cr-53 0.0 0.0 +83 8 1 1 Cr-54 0.0 0.0 +42 8 1 2 H-1 0.0 0.0 +43 8 1 2 O-16 0.0 0.0 +44 8 1 2 B-10 0.0 0.0 +45 8 1 2 B-11 0.0 0.0 +46 8 1 2 Fe-54 0.0 0.0 +47 8 1 2 Fe-56 0.0 0.0 +48 8 1 2 Fe-57 0.0 0.0 +49 8 1 2 Fe-58 0.0 0.0 +50 8 1 2 Ni-58 0.0 0.0 +51 8 1 2 Ni-60 0.0 0.0 +52 8 1 2 Ni-61 0.0 0.0 +53 8 1 2 Ni-62 0.0 0.0 +54 8 1 2 Ni-64 0.0 0.0 +55 8 1 2 Mn-55 0.0 0.0 +56 8 1 2 Si-28 0.0 0.0 +57 8 1 2 Si-29 0.0 0.0 +58 8 1 2 Si-30 0.0 0.0 +59 8 1 2 Cr-50 0.0 0.0 +60 8 1 2 Cr-52 0.0 0.0 +61 8 1 2 Cr-53 0.0 0.0 +62 8 1 2 Cr-54 0.0 0.0 +21 8 2 1 H-1 0.0 0.0 +22 8 2 1 O-16 0.0 0.0 +23 8 2 1 B-10 0.0 0.0 +24 8 2 1 B-11 0.0 0.0 +25 8 2 1 Fe-54 0.0 0.0 +26 8 2 1 Fe-56 0.0 0.0 +27 8 2 1 Fe-57 0.0 0.0 +28 8 2 1 Fe-58 0.0 0.0 +29 8 2 1 Ni-58 0.0 0.0 +30 8 2 1 Ni-60 0.0 0.0 +31 8 2 1 Ni-61 0.0 0.0 +32 8 2 1 Ni-62 0.0 0.0 +33 8 2 1 Ni-64 0.0 0.0 +34 8 2 1 Mn-55 0.0 0.0 +35 8 2 1 Si-28 0.0 0.0 +36 8 2 1 Si-29 0.0 0.0 +37 8 2 1 Si-30 0.0 0.0 +38 8 2 1 Cr-50 0.0 0.0 +39 8 2 1 Cr-52 0.0 0.0 +40 8 2 1 Cr-53 0.0 0.0 +41 8 2 1 Cr-54 0.0 0.0 +0 8 2 2 H-1 0.0 0.0 +1 8 2 2 O-16 0.0 0.0 +2 8 2 2 B-10 0.0 0.0 +3 8 2 2 B-11 0.0 0.0 +4 8 2 2 Fe-54 0.0 0.0 +5 8 2 2 Fe-56 0.0 0.0 +6 8 2 2 Fe-57 0.0 0.0 +7 8 2 2 Fe-58 0.0 0.0 +8 8 2 2 Ni-58 0.0 0.0 +9 8 2 2 Ni-60 0.0 0.0 +10 8 2 2 Ni-61 0.0 0.0 +11 8 2 2 Ni-62 0.0 0.0 +12 8 2 2 Ni-64 0.0 0.0 +13 8 2 2 Mn-55 0.0 0.0 +14 8 2 2 Si-28 0.0 0.0 +15 8 2 2 Si-29 0.0 0.0 +16 8 2 2 Si-30 0.0 0.0 +17 8 2 2 Cr-50 0.0 0.0 +18 8 2 2 Cr-52 0.0 0.0 +19 8 2 2 Cr-53 0.0 0.0 +20 8 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. 21 8 1 H-1 0.0 0.0 22 8 1 O-16 0.0 0.0 23 8 1 B-10 0.0 0.0 @@ -1452,91 +1452,91 @@ 17 9 2 Cr-50 0.0 0.0 18 9 2 Cr-52 0.0 0.0 19 9 2 Cr-53 0.0 0.0 -20 9 2 Cr-54 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -63 9 1 1 H-1 P0 0.150655 0.480993 P0 -64 9 1 1 O-16 P0 0.116221 0.114089 P0 -65 9 1 1 B-10 P0 0.000000 0.000000 P0 -66 9 1 1 B-11 P0 0.000000 0.000000 P0 -67 9 1 1 Fe-54 P0 0.000000 0.000000 P0 -68 9 1 1 Fe-56 P0 0.186217 0.199795 P0 -69 9 1 1 Fe-57 P0 0.000000 0.000000 P0 -70 9 1 1 Fe-58 P0 0.000000 0.000000 P0 -71 9 1 1 Ni-58 P0 0.000000 0.000000 P0 -72 9 1 1 Ni-60 P0 0.000000 0.000000 P0 -73 9 1 1 Ni-61 P0 0.000000 0.000000 P0 -74 9 1 1 Ni-62 P0 0.000000 0.000000 P0 -75 9 1 1 Ni-64 P0 0.000000 0.000000 P0 -76 9 1 1 Mn-55 P0 0.000000 0.000000 P0 -77 9 1 1 Si-28 P0 0.000000 0.000000 P0 -78 9 1 1 Si-29 P0 0.000000 0.000000 P0 -79 9 1 1 Si-30 P0 0.000000 0.000000 P0 -80 9 1 1 Cr-50 P0 0.000000 0.000000 P0 -81 9 1 1 Cr-52 P0 0.000000 0.000000 P0 -82 9 1 1 Cr-53 P0 0.147443 0.139574 P0 -83 9 1 1 Cr-54 P0 0.000000 0.000000 P0 -42 9 1 2 H-1 P0 0.000000 0.000000 P0 -43 9 1 2 O-16 P0 0.000000 0.000000 P0 -44 9 1 2 B-10 P0 0.000000 0.000000 P0 -45 9 1 2 B-11 P0 0.000000 0.000000 P0 -46 9 1 2 Fe-54 P0 0.000000 0.000000 P0 -47 9 1 2 Fe-56 P0 0.000000 0.000000 P0 -48 9 1 2 Fe-57 P0 0.000000 0.000000 P0 -49 9 1 2 Fe-58 P0 0.000000 0.000000 P0 -50 9 1 2 Ni-58 P0 0.000000 0.000000 P0 -51 9 1 2 Ni-60 P0 0.000000 0.000000 P0 -52 9 1 2 Ni-61 P0 0.000000 0.000000 P0 -53 9 1 2 Ni-62 P0 0.000000 0.000000 P0 -54 9 1 2 Ni-64 P0 0.000000 0.000000 P0 -55 9 1 2 Mn-55 P0 0.000000 0.000000 P0 -56 9 1 2 Si-28 P0 0.000000 0.000000 P0 -57 9 1 2 Si-29 P0 0.000000 0.000000 P0 -58 9 1 2 Si-30 P0 0.000000 0.000000 P0 -59 9 1 2 Cr-50 P0 0.000000 0.000000 P0 -60 9 1 2 Cr-52 P0 0.000000 0.000000 P0 -61 9 1 2 Cr-53 P0 0.000000 0.000000 P0 -62 9 1 2 Cr-54 P0 0.000000 0.000000 P0 -21 9 2 1 H-1 P0 0.000000 0.000000 P0 -22 9 2 1 O-16 P0 0.000000 0.000000 P0 -23 9 2 1 B-10 P0 0.000000 0.000000 P0 -24 9 2 1 B-11 P0 0.000000 0.000000 P0 -25 9 2 1 Fe-54 P0 0.000000 0.000000 P0 -26 9 2 1 Fe-56 P0 0.000000 0.000000 P0 -27 9 2 1 Fe-57 P0 0.000000 0.000000 P0 -28 9 2 1 Fe-58 P0 0.000000 0.000000 P0 -29 9 2 1 Ni-58 P0 0.000000 0.000000 P0 -30 9 2 1 Ni-60 P0 0.000000 0.000000 P0 -31 9 2 1 Ni-61 P0 0.000000 0.000000 P0 -32 9 2 1 Ni-62 P0 0.000000 0.000000 P0 -33 9 2 1 Ni-64 P0 0.000000 0.000000 P0 -34 9 2 1 Mn-55 P0 0.000000 0.000000 P0 -35 9 2 1 Si-28 P0 0.000000 0.000000 P0 -36 9 2 1 Si-29 P0 0.000000 0.000000 P0 -37 9 2 1 Si-30 P0 0.000000 0.000000 P0 -38 9 2 1 Cr-50 P0 0.000000 0.000000 P0 -39 9 2 1 Cr-52 P0 0.000000 0.000000 P0 -40 9 2 1 Cr-53 P0 0.000000 0.000000 P0 -41 9 2 1 Cr-54 P0 0.000000 0.000000 P0 -0 9 2 2 H-1 P0 0.000000 0.000000 P0 -1 9 2 2 O-16 P0 0.000000 0.000000 P0 -2 9 2 2 B-10 P0 0.000000 0.000000 P0 -3 9 2 2 B-11 P0 0.000000 0.000000 P0 -4 9 2 2 Fe-54 P0 0.000000 0.000000 P0 -5 9 2 2 Fe-56 P0 0.000000 0.000000 P0 -6 9 2 2 Fe-57 P0 0.000000 0.000000 P0 -7 9 2 2 Fe-58 P0 0.000000 0.000000 P0 -8 9 2 2 Ni-58 P0 0.000000 0.000000 P0 -9 9 2 2 Ni-60 P0 0.000000 0.000000 P0 -10 9 2 2 Ni-61 P0 0.000000 0.000000 P0 -11 9 2 2 Ni-62 P0 0.000000 0.000000 P0 -12 9 2 2 Ni-64 P0 0.000000 0.000000 P0 -13 9 2 2 Mn-55 P0 0.000000 0.000000 P0 -14 9 2 2 Si-28 P0 0.000000 0.000000 P0 -15 9 2 2 Si-29 P0 0.000000 0.000000 P0 -16 9 2 2 Si-30 P0 0.000000 0.000000 P0 -17 9 2 2 Cr-50 P0 0.000000 0.000000 P0 -18 9 2 2 Cr-52 P0 0.000000 0.000000 P0 -19 9 2 2 Cr-53 P0 0.000000 0.000000 P0 -20 9 2 2 Cr-54 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +20 9 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 9 1 1 H-1 0.150655 0.480993 +64 9 1 1 O-16 0.116221 0.114089 +65 9 1 1 B-10 0.000000 0.000000 +66 9 1 1 B-11 0.000000 0.000000 +67 9 1 1 Fe-54 0.000000 0.000000 +68 9 1 1 Fe-56 0.186217 0.199795 +69 9 1 1 Fe-57 0.000000 0.000000 +70 9 1 1 Fe-58 0.000000 0.000000 +71 9 1 1 Ni-58 0.000000 0.000000 +72 9 1 1 Ni-60 0.000000 0.000000 +73 9 1 1 Ni-61 0.000000 0.000000 +74 9 1 1 Ni-62 0.000000 0.000000 +75 9 1 1 Ni-64 0.000000 0.000000 +76 9 1 1 Mn-55 0.000000 0.000000 +77 9 1 1 Si-28 0.000000 0.000000 +78 9 1 1 Si-29 0.000000 0.000000 +79 9 1 1 Si-30 0.000000 0.000000 +80 9 1 1 Cr-50 0.000000 0.000000 +81 9 1 1 Cr-52 0.000000 0.000000 +82 9 1 1 Cr-53 0.147443 0.139574 +83 9 1 1 Cr-54 0.000000 0.000000 +42 9 1 2 H-1 0.000000 0.000000 +43 9 1 2 O-16 0.000000 0.000000 +44 9 1 2 B-10 0.000000 0.000000 +45 9 1 2 B-11 0.000000 0.000000 +46 9 1 2 Fe-54 0.000000 0.000000 +47 9 1 2 Fe-56 0.000000 0.000000 +48 9 1 2 Fe-57 0.000000 0.000000 +49 9 1 2 Fe-58 0.000000 0.000000 +50 9 1 2 Ni-58 0.000000 0.000000 +51 9 1 2 Ni-60 0.000000 0.000000 +52 9 1 2 Ni-61 0.000000 0.000000 +53 9 1 2 Ni-62 0.000000 0.000000 +54 9 1 2 Ni-64 0.000000 0.000000 +55 9 1 2 Mn-55 0.000000 0.000000 +56 9 1 2 Si-28 0.000000 0.000000 +57 9 1 2 Si-29 0.000000 0.000000 +58 9 1 2 Si-30 0.000000 0.000000 +59 9 1 2 Cr-50 0.000000 0.000000 +60 9 1 2 Cr-52 0.000000 0.000000 +61 9 1 2 Cr-53 0.000000 0.000000 +62 9 1 2 Cr-54 0.000000 0.000000 +21 9 2 1 H-1 0.000000 0.000000 +22 9 2 1 O-16 0.000000 0.000000 +23 9 2 1 B-10 0.000000 0.000000 +24 9 2 1 B-11 0.000000 0.000000 +25 9 2 1 Fe-54 0.000000 0.000000 +26 9 2 1 Fe-56 0.000000 0.000000 +27 9 2 1 Fe-57 0.000000 0.000000 +28 9 2 1 Fe-58 0.000000 0.000000 +29 9 2 1 Ni-58 0.000000 0.000000 +30 9 2 1 Ni-60 0.000000 0.000000 +31 9 2 1 Ni-61 0.000000 0.000000 +32 9 2 1 Ni-62 0.000000 0.000000 +33 9 2 1 Ni-64 0.000000 0.000000 +34 9 2 1 Mn-55 0.000000 0.000000 +35 9 2 1 Si-28 0.000000 0.000000 +36 9 2 1 Si-29 0.000000 0.000000 +37 9 2 1 Si-30 0.000000 0.000000 +38 9 2 1 Cr-50 0.000000 0.000000 +39 9 2 1 Cr-52 0.000000 0.000000 +40 9 2 1 Cr-53 0.000000 0.000000 +41 9 2 1 Cr-54 0.000000 0.000000 +0 9 2 2 H-1 0.000000 0.000000 +1 9 2 2 O-16 0.000000 0.000000 +2 9 2 2 B-10 0.000000 0.000000 +3 9 2 2 B-11 0.000000 0.000000 +4 9 2 2 Fe-54 0.000000 0.000000 +5 9 2 2 Fe-56 0.000000 0.000000 +6 9 2 2 Fe-57 0.000000 0.000000 +7 9 2 2 Fe-58 0.000000 0.000000 +8 9 2 2 Ni-58 0.000000 0.000000 +9 9 2 2 Ni-60 0.000000 0.000000 +10 9 2 2 Ni-61 0.000000 0.000000 +11 9 2 2 Ni-62 0.000000 0.000000 +12 9 2 2 Ni-64 0.000000 0.000000 +13 9 2 2 Mn-55 0.000000 0.000000 +14 9 2 2 Si-28 0.000000 0.000000 +15 9 2 2 Si-29 0.000000 0.000000 +16 9 2 2 Si-30 0.000000 0.000000 +17 9 2 2 Cr-50 0.000000 0.000000 +18 9 2 2 Cr-52 0.000000 0.000000 +19 9 2 2 Cr-53 0.000000 0.000000 +20 9 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. 21 9 1 H-1 0.0 0.0 22 9 1 O-16 0.0 0.0 23 9 1 B-10 0.0 0.0 @@ -1662,91 +1662,91 @@ 17 10 2 Cr-50 0.0 0.0 18 10 2 Cr-52 0.0 0.0 19 10 2 Cr-53 0.0 0.0 -20 10 2 Cr-54 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -63 10 1 1 H-1 P0 0.123944 0.541390 P0 -64 10 1 1 O-16 P0 0.000000 0.000000 P0 -65 10 1 1 B-10 P0 0.000000 0.000000 P0 -66 10 1 1 B-11 P0 0.000000 0.000000 P0 -67 10 1 1 Fe-54 P0 0.000000 0.000000 P0 -68 10 1 1 Fe-56 P0 0.000000 0.000000 P0 -69 10 1 1 Fe-57 P0 0.000000 0.000000 P0 -70 10 1 1 Fe-58 P0 0.000000 0.000000 P0 -71 10 1 1 Ni-58 P0 0.000000 0.000000 P0 -72 10 1 1 Ni-60 P0 0.000000 0.000000 P0 -73 10 1 1 Ni-61 P0 0.000000 0.000000 P0 -74 10 1 1 Ni-62 P0 0.000000 0.000000 P0 -75 10 1 1 Ni-64 P0 0.000000 0.000000 P0 -76 10 1 1 Mn-55 P0 0.000000 0.000000 P0 -77 10 1 1 Si-28 P0 0.000000 0.000000 P0 -78 10 1 1 Si-29 P0 0.000000 0.000000 P0 -79 10 1 1 Si-30 P0 0.000000 0.000000 P0 -80 10 1 1 Cr-50 P0 0.111571 0.138458 P0 -81 10 1 1 Cr-52 P0 0.000000 0.000000 P0 -82 10 1 1 Cr-53 P0 0.000000 0.000000 P0 -83 10 1 1 Cr-54 P0 0.000000 0.000000 P0 -42 10 1 2 H-1 P0 0.000000 0.000000 P0 -43 10 1 2 O-16 P0 0.000000 0.000000 P0 -44 10 1 2 B-10 P0 0.000000 0.000000 P0 -45 10 1 2 B-11 P0 0.000000 0.000000 P0 -46 10 1 2 Fe-54 P0 0.000000 0.000000 P0 -47 10 1 2 Fe-56 P0 0.000000 0.000000 P0 -48 10 1 2 Fe-57 P0 0.000000 0.000000 P0 -49 10 1 2 Fe-58 P0 0.000000 0.000000 P0 -50 10 1 2 Ni-58 P0 0.000000 0.000000 P0 -51 10 1 2 Ni-60 P0 0.000000 0.000000 P0 -52 10 1 2 Ni-61 P0 0.000000 0.000000 P0 -53 10 1 2 Ni-62 P0 0.000000 0.000000 P0 -54 10 1 2 Ni-64 P0 0.000000 0.000000 P0 -55 10 1 2 Mn-55 P0 0.000000 0.000000 P0 -56 10 1 2 Si-28 P0 0.000000 0.000000 P0 -57 10 1 2 Si-29 P0 0.000000 0.000000 P0 -58 10 1 2 Si-30 P0 0.000000 0.000000 P0 -59 10 1 2 Cr-50 P0 0.000000 0.000000 P0 -60 10 1 2 Cr-52 P0 0.000000 0.000000 P0 -61 10 1 2 Cr-53 P0 0.000000 0.000000 P0 -62 10 1 2 Cr-54 P0 0.000000 0.000000 P0 -21 10 2 1 H-1 P0 0.000000 0.000000 P0 -22 10 2 1 O-16 P0 0.000000 0.000000 P0 -23 10 2 1 B-10 P0 0.000000 0.000000 P0 -24 10 2 1 B-11 P0 0.000000 0.000000 P0 -25 10 2 1 Fe-54 P0 0.000000 0.000000 P0 -26 10 2 1 Fe-56 P0 0.000000 0.000000 P0 -27 10 2 1 Fe-57 P0 0.000000 0.000000 P0 -28 10 2 1 Fe-58 P0 0.000000 0.000000 P0 -29 10 2 1 Ni-58 P0 0.000000 0.000000 P0 -30 10 2 1 Ni-60 P0 0.000000 0.000000 P0 -31 10 2 1 Ni-61 P0 0.000000 0.000000 P0 -32 10 2 1 Ni-62 P0 0.000000 0.000000 P0 -33 10 2 1 Ni-64 P0 0.000000 0.000000 P0 -34 10 2 1 Mn-55 P0 0.000000 0.000000 P0 -35 10 2 1 Si-28 P0 0.000000 0.000000 P0 -36 10 2 1 Si-29 P0 0.000000 0.000000 P0 -37 10 2 1 Si-30 P0 0.000000 0.000000 P0 -38 10 2 1 Cr-50 P0 0.000000 0.000000 P0 -39 10 2 1 Cr-52 P0 0.000000 0.000000 P0 -40 10 2 1 Cr-53 P0 0.000000 0.000000 P0 -41 10 2 1 Cr-54 P0 0.000000 0.000000 P0 -0 10 2 2 H-1 P0 0.000000 0.000000 P0 -1 10 2 2 O-16 P0 0.000000 0.000000 P0 -2 10 2 2 B-10 P0 0.000000 0.000000 P0 -3 10 2 2 B-11 P0 0.000000 0.000000 P0 -4 10 2 2 Fe-54 P0 0.000000 0.000000 P0 -5 10 2 2 Fe-56 P0 0.000000 0.000000 P0 -6 10 2 2 Fe-57 P0 0.000000 0.000000 P0 -7 10 2 2 Fe-58 P0 0.000000 0.000000 P0 -8 10 2 2 Ni-58 P0 0.000000 0.000000 P0 -9 10 2 2 Ni-60 P0 0.000000 0.000000 P0 -10 10 2 2 Ni-61 P0 0.000000 0.000000 P0 -11 10 2 2 Ni-62 P0 0.000000 0.000000 P0 -12 10 2 2 Ni-64 P0 0.000000 0.000000 P0 -13 10 2 2 Mn-55 P0 0.000000 0.000000 P0 -14 10 2 2 Si-28 P0 0.000000 0.000000 P0 -15 10 2 2 Si-29 P0 0.000000 0.000000 P0 -16 10 2 2 Si-30 P0 0.000000 0.000000 P0 -17 10 2 2 Cr-50 P0 0.000000 0.000000 P0 -18 10 2 2 Cr-52 P0 0.000000 0.000000 P0 -19 10 2 2 Cr-53 P0 0.000000 0.000000 P0 -20 10 2 2 Cr-54 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +20 10 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 10 1 1 H-1 0.123944 0.541390 +64 10 1 1 O-16 0.000000 0.000000 +65 10 1 1 B-10 0.000000 0.000000 +66 10 1 1 B-11 0.000000 0.000000 +67 10 1 1 Fe-54 0.000000 0.000000 +68 10 1 1 Fe-56 0.000000 0.000000 +69 10 1 1 Fe-57 0.000000 0.000000 +70 10 1 1 Fe-58 0.000000 0.000000 +71 10 1 1 Ni-58 0.000000 0.000000 +72 10 1 1 Ni-60 0.000000 0.000000 +73 10 1 1 Ni-61 0.000000 0.000000 +74 10 1 1 Ni-62 0.000000 0.000000 +75 10 1 1 Ni-64 0.000000 0.000000 +76 10 1 1 Mn-55 0.000000 0.000000 +77 10 1 1 Si-28 0.000000 0.000000 +78 10 1 1 Si-29 0.000000 0.000000 +79 10 1 1 Si-30 0.000000 0.000000 +80 10 1 1 Cr-50 0.111571 0.138458 +81 10 1 1 Cr-52 0.000000 0.000000 +82 10 1 1 Cr-53 0.000000 0.000000 +83 10 1 1 Cr-54 0.000000 0.000000 +42 10 1 2 H-1 0.000000 0.000000 +43 10 1 2 O-16 0.000000 0.000000 +44 10 1 2 B-10 0.000000 0.000000 +45 10 1 2 B-11 0.000000 0.000000 +46 10 1 2 Fe-54 0.000000 0.000000 +47 10 1 2 Fe-56 0.000000 0.000000 +48 10 1 2 Fe-57 0.000000 0.000000 +49 10 1 2 Fe-58 0.000000 0.000000 +50 10 1 2 Ni-58 0.000000 0.000000 +51 10 1 2 Ni-60 0.000000 0.000000 +52 10 1 2 Ni-61 0.000000 0.000000 +53 10 1 2 Ni-62 0.000000 0.000000 +54 10 1 2 Ni-64 0.000000 0.000000 +55 10 1 2 Mn-55 0.000000 0.000000 +56 10 1 2 Si-28 0.000000 0.000000 +57 10 1 2 Si-29 0.000000 0.000000 +58 10 1 2 Si-30 0.000000 0.000000 +59 10 1 2 Cr-50 0.000000 0.000000 +60 10 1 2 Cr-52 0.000000 0.000000 +61 10 1 2 Cr-53 0.000000 0.000000 +62 10 1 2 Cr-54 0.000000 0.000000 +21 10 2 1 H-1 0.000000 0.000000 +22 10 2 1 O-16 0.000000 0.000000 +23 10 2 1 B-10 0.000000 0.000000 +24 10 2 1 B-11 0.000000 0.000000 +25 10 2 1 Fe-54 0.000000 0.000000 +26 10 2 1 Fe-56 0.000000 0.000000 +27 10 2 1 Fe-57 0.000000 0.000000 +28 10 2 1 Fe-58 0.000000 0.000000 +29 10 2 1 Ni-58 0.000000 0.000000 +30 10 2 1 Ni-60 0.000000 0.000000 +31 10 2 1 Ni-61 0.000000 0.000000 +32 10 2 1 Ni-62 0.000000 0.000000 +33 10 2 1 Ni-64 0.000000 0.000000 +34 10 2 1 Mn-55 0.000000 0.000000 +35 10 2 1 Si-28 0.000000 0.000000 +36 10 2 1 Si-29 0.000000 0.000000 +37 10 2 1 Si-30 0.000000 0.000000 +38 10 2 1 Cr-50 0.000000 0.000000 +39 10 2 1 Cr-52 0.000000 0.000000 +40 10 2 1 Cr-53 0.000000 0.000000 +41 10 2 1 Cr-54 0.000000 0.000000 +0 10 2 2 H-1 0.000000 0.000000 +1 10 2 2 O-16 0.000000 0.000000 +2 10 2 2 B-10 0.000000 0.000000 +3 10 2 2 B-11 0.000000 0.000000 +4 10 2 2 Fe-54 0.000000 0.000000 +5 10 2 2 Fe-56 0.000000 0.000000 +6 10 2 2 Fe-57 0.000000 0.000000 +7 10 2 2 Fe-58 0.000000 0.000000 +8 10 2 2 Ni-58 0.000000 0.000000 +9 10 2 2 Ni-60 0.000000 0.000000 +10 10 2 2 Ni-61 0.000000 0.000000 +11 10 2 2 Ni-62 0.000000 0.000000 +12 10 2 2 Ni-64 0.000000 0.000000 +13 10 2 2 Mn-55 0.000000 0.000000 +14 10 2 2 Si-28 0.000000 0.000000 +15 10 2 2 Si-29 0.000000 0.000000 +16 10 2 2 Si-30 0.000000 0.000000 +17 10 2 2 Cr-50 0.000000 0.000000 +18 10 2 2 Cr-52 0.000000 0.000000 +19 10 2 2 Cr-53 0.000000 0.000000 +20 10 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. 21 10 1 H-1 0.0 0.0 22 10 1 O-16 0.0 0.0 23 10 1 B-10 0.0 0.0 @@ -1824,43 +1824,43 @@ 5 11 2 Zr-91 0.0 0.0 6 11 2 Zr-92 0.0 0.0 7 11 2 Zr-94 0.0 0.0 -8 11 2 Zr-96 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -27 11 1 1 H-1 P0 0.099594 0.442578 P0 -28 11 1 1 O-16 P0 0.028684 0.043000 P0 -29 11 1 1 B-10 P0 0.000000 0.000000 P0 -30 11 1 1 B-11 P0 0.000000 0.000000 P0 -31 11 1 1 Zr-90 P0 0.021980 0.039963 P0 -32 11 1 1 Zr-91 P0 0.000000 0.000000 P0 -33 11 1 1 Zr-92 P0 0.000000 0.000000 P0 -34 11 1 1 Zr-94 P0 0.004191 0.087344 P0 -35 11 1 1 Zr-96 P0 0.000000 0.000000 P0 -18 11 1 2 H-1 P0 0.031875 0.045078 P0 -19 11 1 2 O-16 P0 0.000000 0.000000 P0 -20 11 1 2 B-10 P0 0.000000 0.000000 P0 -21 11 1 2 B-11 P0 0.000000 0.000000 P0 -22 11 1 2 Zr-90 P0 0.000000 0.000000 P0 -23 11 1 2 Zr-91 P0 0.000000 0.000000 P0 -24 11 1 2 Zr-92 P0 0.000000 0.000000 P0 -25 11 1 2 Zr-94 P0 0.000000 0.000000 P0 -26 11 1 2 Zr-96 P0 0.000000 0.000000 P0 -9 11 2 1 H-1 P0 0.000000 0.000000 P0 -10 11 2 1 O-16 P0 0.000000 0.000000 P0 -11 11 2 1 B-10 P0 0.000000 0.000000 P0 -12 11 2 1 B-11 P0 0.000000 0.000000 P0 -13 11 2 1 Zr-90 P0 0.000000 0.000000 P0 -14 11 2 1 Zr-91 P0 0.000000 0.000000 P0 -15 11 2 1 Zr-92 P0 0.000000 0.000000 P0 -16 11 2 1 Zr-94 P0 0.000000 0.000000 P0 -17 11 2 1 Zr-96 P0 0.000000 0.000000 P0 -0 11 2 2 H-1 P0 0.687243 1.239217 P0 -1 11 2 2 O-16 P0 0.000000 0.000000 P0 -2 11 2 2 B-10 P0 0.000000 0.000000 P0 -3 11 2 2 B-11 P0 0.000000 0.000000 P0 -4 11 2 2 Zr-90 P0 0.039576 0.105193 P0 -5 11 2 2 Zr-91 P0 0.000000 0.000000 P0 -6 11 2 2 Zr-92 P0 0.084226 0.103161 P0 -7 11 2 2 Zr-94 P0 0.092039 0.125985 P0 -8 11 2 2 Zr-96 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +8 11 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. +27 11 1 1 H-1 0.099594 0.442578 +28 11 1 1 O-16 0.028684 0.043000 +29 11 1 1 B-10 0.000000 0.000000 +30 11 1 1 B-11 0.000000 0.000000 +31 11 1 1 Zr-90 0.021980 0.039963 +32 11 1 1 Zr-91 0.000000 0.000000 +33 11 1 1 Zr-92 0.000000 0.000000 +34 11 1 1 Zr-94 0.004191 0.087344 +35 11 1 1 Zr-96 0.000000 0.000000 +18 11 1 2 H-1 0.031875 0.045078 +19 11 1 2 O-16 0.000000 0.000000 +20 11 1 2 B-10 0.000000 0.000000 +21 11 1 2 B-11 0.000000 0.000000 +22 11 1 2 Zr-90 0.000000 0.000000 +23 11 1 2 Zr-91 0.000000 0.000000 +24 11 1 2 Zr-92 0.000000 0.000000 +25 11 1 2 Zr-94 0.000000 0.000000 +26 11 1 2 Zr-96 0.000000 0.000000 +9 11 2 1 H-1 0.000000 0.000000 +10 11 2 1 O-16 0.000000 0.000000 +11 11 2 1 B-10 0.000000 0.000000 +12 11 2 1 B-11 0.000000 0.000000 +13 11 2 1 Zr-90 0.000000 0.000000 +14 11 2 1 Zr-91 0.000000 0.000000 +15 11 2 1 Zr-92 0.000000 0.000000 +16 11 2 1 Zr-94 0.000000 0.000000 +17 11 2 1 Zr-96 0.000000 0.000000 +0 11 2 2 H-1 0.687243 1.239217 +1 11 2 2 O-16 0.000000 0.000000 +2 11 2 2 B-10 0.000000 0.000000 +3 11 2 2 B-11 0.000000 0.000000 +4 11 2 2 Zr-90 0.039576 0.105193 +5 11 2 2 Zr-91 0.000000 0.000000 +6 11 2 2 Zr-92 0.084226 0.103161 +7 11 2 2 Zr-94 0.092039 0.125985 +8 11 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. 9 11 1 H-1 0.0 0.0 10 11 1 O-16 0.0 0.0 11 11 1 B-10 0.0 0.0 @@ -1914,43 +1914,43 @@ 5 12 2 Zr-91 0.0 0.0 6 12 2 Zr-92 0.0 0.0 7 12 2 Zr-94 0.0 0.0 -8 12 2 Zr-96 0.0 0.0 material group in group out nuclide moment mean std. dev. moment -27 12 1 1 H-1 P0 0.071704 0.167588 P0 -28 12 1 1 O-16 P0 0.013270 0.020403 P0 -29 12 1 1 B-10 P0 0.000000 0.000000 P0 -30 12 1 1 B-11 P0 0.000000 0.000000 P0 -31 12 1 1 Zr-90 P0 0.089997 0.075538 P0 -32 12 1 1 Zr-91 P0 0.000000 0.000000 P0 -33 12 1 1 Zr-92 P0 0.003501 0.017031 P0 -34 12 1 1 Zr-94 P0 0.004850 0.016327 P0 -35 12 1 1 Zr-96 P0 0.002730 0.017476 P0 -18 12 1 2 H-1 P0 0.027240 0.029555 P0 -19 12 1 2 O-16 P0 0.000000 0.000000 P0 -20 12 1 2 B-10 P0 0.000000 0.000000 P0 -21 12 1 2 B-11 P0 0.000000 0.000000 P0 -22 12 1 2 Zr-90 P0 0.000000 0.000000 P0 -23 12 1 2 Zr-91 P0 0.000000 0.000000 P0 -24 12 1 2 Zr-92 P0 0.000000 0.000000 P0 -25 12 1 2 Zr-94 P0 0.000000 0.000000 P0 -26 12 1 2 Zr-96 P0 0.000000 0.000000 P0 -9 12 2 1 H-1 P0 0.000000 0.000000 P0 -10 12 2 1 O-16 P0 0.000000 0.000000 P0 -11 12 2 1 B-10 P0 0.000000 0.000000 P0 -12 12 2 1 B-11 P0 0.000000 0.000000 P0 -13 12 2 1 Zr-90 P0 0.000000 0.000000 P0 -14 12 2 1 Zr-91 P0 0.000000 0.000000 P0 -15 12 2 1 Zr-92 P0 0.000000 0.000000 P0 -16 12 2 1 Zr-94 P0 0.000000 0.000000 P0 -17 12 2 1 Zr-96 P0 0.000000 0.000000 P0 -0 12 2 2 H-1 P0 1.244758 1.956675 P0 -1 12 2 2 O-16 P0 0.079159 0.104796 P0 -2 12 2 2 B-10 P0 0.000000 0.000000 P0 -3 12 2 2 B-11 P0 0.000000 0.000000 P0 -4 12 2 2 Zr-90 P0 0.000000 0.000000 P0 -5 12 2 2 Zr-91 P0 0.033201 0.040665 P0 -6 12 2 2 Zr-92 P0 0.000000 0.000000 P0 -7 12 2 2 Zr-94 P0 0.000000 0.000000 P0 -8 12 2 2 Zr-96 P0 0.000000 0.000000 P0 material group out nuclide mean std. dev. +8 12 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. +27 12 1 1 H-1 0.071704 0.167588 +28 12 1 1 O-16 0.013270 0.020403 +29 12 1 1 B-10 0.000000 0.000000 +30 12 1 1 B-11 0.000000 0.000000 +31 12 1 1 Zr-90 0.089997 0.075538 +32 12 1 1 Zr-91 0.000000 0.000000 +33 12 1 1 Zr-92 0.003501 0.017031 +34 12 1 1 Zr-94 0.004850 0.016327 +35 12 1 1 Zr-96 0.002730 0.017476 +18 12 1 2 H-1 0.027240 0.029555 +19 12 1 2 O-16 0.000000 0.000000 +20 12 1 2 B-10 0.000000 0.000000 +21 12 1 2 B-11 0.000000 0.000000 +22 12 1 2 Zr-90 0.000000 0.000000 +23 12 1 2 Zr-91 0.000000 0.000000 +24 12 1 2 Zr-92 0.000000 0.000000 +25 12 1 2 Zr-94 0.000000 0.000000 +26 12 1 2 Zr-96 0.000000 0.000000 +9 12 2 1 H-1 0.000000 0.000000 +10 12 2 1 O-16 0.000000 0.000000 +11 12 2 1 B-10 0.000000 0.000000 +12 12 2 1 B-11 0.000000 0.000000 +13 12 2 1 Zr-90 0.000000 0.000000 +14 12 2 1 Zr-91 0.000000 0.000000 +15 12 2 1 Zr-92 0.000000 0.000000 +16 12 2 1 Zr-94 0.000000 0.000000 +17 12 2 1 Zr-96 0.000000 0.000000 +0 12 2 2 H-1 1.244758 1.956675 +1 12 2 2 O-16 0.079159 0.104796 +2 12 2 2 B-10 0.000000 0.000000 +3 12 2 2 B-11 0.000000 0.000000 +4 12 2 2 Zr-90 0.000000 0.000000 +5 12 2 2 Zr-91 0.033201 0.040665 +6 12 2 2 Zr-92 0.000000 0.000000 +7 12 2 2 Zr-94 0.000000 0.000000 +8 12 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. 9 12 1 H-1 0.0 0.0 10 12 1 O-16 0.0 0.0 11 12 1 B-10 0.0 0.0 From 47ef320ad517612376e181ec6a6bc42ca0db98ce Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 13 May 2016 10:20:16 -0400 Subject: [PATCH 187/259] Made MGXS.domain set MGXS.domain_type to reduce burden on user --- .../pythonapi/examples/mgxs-part-i.ipynb | 34 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 37 +- .../pythonapi/examples/mgxs-part-iii.ipynb | 506 ++++-------------- openmc/mgxs/mgxs.py | 9 + 4 files changed, 135 insertions(+), 451 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 2d44d95cd..ea75bec72 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -396,9 +396,9 @@ "outputs": [], "source": [ "# Instantiate a few different sections\n", - "total = mgxs.TotalXS(domain=cell, domain_type='cell', groups=groups)\n", - "absorption = mgxs.AbsorptionXS(domain=cell, domain_type='cell', groups=groups)\n", - "scattering = mgxs.ScatterXS(domain=cell, domain_type='cell', groups=groups)" + "total = mgxs.TotalXS(domain=cell, groups=groups)\n", + "absorption = mgxs.AbsorptionXS(domain=cell, groups=groups)\n", + "scattering = mgxs.ScatterXS(domain=cell, groups=groups)" ] }, { @@ -514,7 +514,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", - " Date/Time: 2016-05-13 09:02:04\n", + " Date/Time: 2016-05-13 10:19:16\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -600,20 +600,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.2500E-01 seconds\n", - " Reading cross sections = 8.5000E-02 seconds\n", - " Total time in simulation = 1.6642E+01 seconds\n", - " Time in transport only = 1.6628E+01 seconds\n", - " Time in inactive batches = 1.9160E+00 seconds\n", - " Time in active batches = 1.4726E+01 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for initialization = 4.2300E-01 seconds\n", + " Reading cross sections = 9.3000E-02 seconds\n", + " Total time in simulation = 1.6549E+01 seconds\n", + " Time in transport only = 1.6535E+01 seconds\n", + " Time in inactive batches = 2.3650E+00 seconds\n", + " Time in active batches = 1.4184E+01 seconds\n", + " Time synchronizing fission bank = 5.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.7076E+01 seconds\n", - " Calculation Rate (inactive) = 13048.0 neutrons/second\n", - " Calculation Rate (active) = 6790.71 neutrons/second\n", + " Total time elapsed = 1.6981E+01 seconds\n", + " Calculation Rate (inactive) = 10570.8 neutrons/second\n", + " Calculation Rate (active) = 7050.20 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index d57f2a1f3..b882e949c 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -396,9 +396,8 @@ "for cell in openmc_cells:\n", " for rxn_type in xs_library[cell.id]:\n", "\n", - " # Set the cross sections domain type to the cell\n", + " # Set the cross sections domain to the cell\n", " xs_library[cell.id][rxn_type].domain = cell\n", - " xs_library[cell.id][rxn_type].domain_type = 'cell'\n", " \n", " # Tally cross sections by nuclide\n", " xs_library[cell.id][rxn_type].by_nuclide = True\n", @@ -446,7 +445,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", - " Date/Time: 2016-05-13 10:04:37\n", + " Date/Time: 2016-05-13 10:13:48\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -562,20 +561,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.9300E-01 seconds\n", - " Reading cross sections = 1.0800E-01 seconds\n", - " Total time in simulation = 2.2830E+02 seconds\n", - " Time in transport only = 2.2826E+02 seconds\n", - " Time in inactive batches = 1.5534E+01 seconds\n", - " Time in active batches = 2.1277E+02 seconds\n", - " Time synchronizing fission bank = 1.8000E-02 seconds\n", - " Sampling source sites = 1.3000E-02 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 1.1000E-02 seconds\n", - " Total time elapsed = 2.2887E+02 seconds\n", - " Calculation Rate (inactive) = 6437.49 neutrons/second\n", - " Calculation Rate (active) = 1879.96 neutrons/second\n", + " Total time for initialization = 5.7400E-01 seconds\n", + " Reading cross sections = 1.2600E-01 seconds\n", + " Total time in simulation = 2.6256E+02 seconds\n", + " Time in transport only = 2.6250E+02 seconds\n", + " Time in inactive batches = 2.2890E+01 seconds\n", + " Time in active batches = 2.3967E+02 seconds\n", + " Time synchronizing fission bank = 3.4000E-02 seconds\n", + " Sampling source sites = 2.1000E-02 seconds\n", + " SEND/RECV source sites = 1.3000E-02 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for finalization = 1.3000E-02 seconds\n", + " Total time elapsed = 2.6320E+02 seconds\n", + " Calculation Rate (inactive) = 4368.72 neutrons/second\n", + " Calculation Rate (active) = 1668.93 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1783,7 +1782,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1866,7 +1865,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 15bf06b24..152a68aff 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -23,24 +23,11 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 71, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", - "because the backend has already been chosen;\n", - "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", - "or matplotlib.backends is imported for the first time.\n", - "\n", - " warnings.warn(_use_error_msg)\n" - ] - } - ], + "outputs": [], "source": [ "import math\n", "import pickle\n", @@ -68,7 +55,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 72, "metadata": { "collapsed": false }, @@ -92,7 +79,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 73, "metadata": { "collapsed": true }, @@ -127,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 74, "metadata": { "collapsed": true }, @@ -150,7 +137,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 75, "metadata": { "collapsed": true }, @@ -178,7 +165,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 76, "metadata": { "collapsed": true }, @@ -215,7 +202,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 77, "metadata": { "collapsed": true }, @@ -252,7 +239,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 78, "metadata": { "collapsed": true }, @@ -274,7 +261,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 79, "metadata": { "collapsed": true }, @@ -306,7 +293,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 80, "metadata": { "collapsed": true }, @@ -333,7 +320,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 81, "metadata": { "collapsed": true }, @@ -346,7 +333,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 82, "metadata": { "collapsed": true }, @@ -365,7 +352,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 83, "metadata": { "collapsed": false }, @@ -401,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 57, "metadata": { "collapsed": true }, @@ -429,7 +416,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 58, "metadata": { "collapsed": false }, @@ -440,7 +427,7 @@ "0" ] }, - "execution_count": 15, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" } @@ -452,19 +439,19 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDUtMTNUMDk6MDQ6MjEtMDQ6MDCreyVVAAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA1LTEzVDA5OjA0OjIxLTA0OjAw2iad6QAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDUtMTNUMTA6MTI6MjAtMDQ6MDDbBmr4AAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA1LTEzVDEwOjEyOjIwLTA0OjAwqlvSRAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, - "execution_count": 16, + "execution_count": 59, "metadata": {}, "output_type": "execute_result" } @@ -500,7 +487,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 60, "metadata": { "collapsed": false }, @@ -520,7 +507,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 61, "metadata": { "collapsed": false }, @@ -558,7 +545,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 62, "metadata": { "collapsed": false }, @@ -579,14 +566,14 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 63, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Specify a \"cell\" domain type for the cross section tally filters\n", - "mgxs_lib.domain_type = \"cell\"\n", + "mgxs_lib.domain_type = 'cell'\n", "\n", "# Specify the cell domains over which to compute multi-group cross sections\n", "mgxs_lib.domains = geometry.get_all_material_cells()" @@ -601,7 +588,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 64, "metadata": { "collapsed": true }, @@ -620,7 +607,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 65, "metadata": { "collapsed": true }, @@ -641,7 +628,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 66, "metadata": { "collapsed": true }, @@ -661,7 +648,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 67, "metadata": { "collapsed": false }, @@ -689,7 +676,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 68, "metadata": { "collapsed": true }, @@ -701,7 +688,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 69, "metadata": { "collapsed": false }, @@ -727,7 +714,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", - " Date/Time: 2016-05-13 09:04:22\n", + " Date/Time: 2016-05-13 10:12:20\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -814,20 +801,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.4100E-01 seconds\n", - " Reading cross sections = 1.0500E-01 seconds\n", - " Total time in simulation = 5.1887E+01 seconds\n", - " Time in transport only = 5.1864E+01 seconds\n", - " Time in inactive batches = 3.9000E+00 seconds\n", - " Time in active batches = 4.7987E+01 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", + " Total time for initialization = 5.0700E-01 seconds\n", + " Reading cross sections = 1.0600E-01 seconds\n", + " Total time in simulation = 6.4501E+01 seconds\n", + " Time in transport only = 6.4461E+01 seconds\n", + " Time in inactive batches = 5.2590E+00 seconds\n", + " Time in active batches = 5.9242E+01 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Time accumulating tallies = 3.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 5.2448E+01 seconds\n", - " Calculation Rate (inactive) = 6410.26 neutrons/second\n", - " Calculation Rate (active) = 2083.90 neutrons/second\n", + " Total time elapsed = 6.5026E+01 seconds\n", + " Calculation Rate (inactive) = 4753.76 neutrons/second\n", + " Calculation Rate (active) = 1687.99 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -845,7 +832,7 @@ "0" ] }, - "execution_count": 26, + "execution_count": 69, "metadata": {}, "output_type": "execute_result" } @@ -871,11 +858,32 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 70, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "ename": "KeyError", + "evalue": "'Unable to open object (Component not found)'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Load the last statepoint file\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0msp\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopenmc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mStatePoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'statepoint.50.h5'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/statepoint.pyc\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, filename, autolink)\u001b[0m\n\u001b[0;32m 135\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath_summary\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 136\u001b[0m \u001b[0msu\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopenmc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSummary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath_summary\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 137\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlink_with_summary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msu\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 138\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 139\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/statepoint.pyc\u001b[0m in \u001b[0;36mlink_with_summary\u001b[1;34m(self, summary)\u001b[0m\n\u001b[0;32m 639\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 640\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 641\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mtally_id\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtally\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtallies\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 642\u001b[0m \u001b[0msummary_tally\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msummary\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtallies\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mtally_id\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 643\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msummary_tally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/statepoint.pyc\u001b[0m in \u001b[0;36mtallies\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 376\u001b[0m \u001b[1;31m# Read the Tally size specifications\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 377\u001b[0m \u001b[0mn_realizations\u001b[0m \u001b[1;33m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 378\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_f\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'{0}{1}/n_realizations'\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbase\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtally_key\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 379\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 380\u001b[0m \u001b[1;31m# Create Tally object and assign basic properties\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/lib/python2.7/dist-packages/h5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper (/home/wboyd/Downloads/h5py-2.5.0/h5py/_objects.c:2453)\u001b[1;34m()\u001b[0m\n\u001b[0;32m 52\u001b[0m \u001b[0mlock\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mneeded\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mit\u001b[0m \u001b[0macquires\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mlock\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mnotifies\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mfirst\u001b[0m \u001b[0mthread\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 53\u001b[0m \u001b[0mto\u001b[0m \u001b[0mrelease\u001b[0m \u001b[0mit\u001b[0m \u001b[0mwhen\u001b[0m \u001b[0mit\u001b[0m\u001b[0;31m'\u001b[0m\u001b[0ms\u001b[0m \u001b[0mdone\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mThis\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mall\u001b[0m \u001b[0mmade\u001b[0m \u001b[0mpossible\u001b[0m \u001b[0mby\u001b[0m \u001b[0mthe\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 54\u001b[1;33m \u001b[0mwonderful\u001b[0m \u001b[0mGIL\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 55\u001b[0m \"\"\"\n\u001b[0;32m 56\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mpythread\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPyThread_type_lock\u001b[0m \u001b[0m_real_lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/lib/python2.7/dist-packages/h5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper (/home/wboyd/Downloads/h5py-2.5.0/h5py/_objects.c:2410)\u001b[1;34m()\u001b[0m\n\u001b[0;32m 53\u001b[0m \u001b[0mto\u001b[0m \u001b[0mrelease\u001b[0m \u001b[0mit\u001b[0m \u001b[0mwhen\u001b[0m \u001b[0mit\u001b[0m\u001b[0;31m'\u001b[0m\u001b[0ms\u001b[0m \u001b[0mdone\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mThis\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mall\u001b[0m \u001b[0mmade\u001b[0m \u001b[0mpossible\u001b[0m \u001b[0mby\u001b[0m \u001b[0mthe\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 54\u001b[0m \u001b[0mwonderful\u001b[0m \u001b[0mGIL\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 55\u001b[1;33m \"\"\"\n\u001b[0m\u001b[0;32m 56\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mpythread\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPyThread_type_lock\u001b[0m \u001b[0m_real_lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 57\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mlong\u001b[0m \u001b[0m_owner\u001b[0m \u001b[1;31m# ID of thread owning the lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/h5py-2.5.0-py2.7-linux-x86_64.egg/h5py/_hl/group.pyc\u001b[0m in \u001b[0;36m__getitem__\u001b[1;34m(self, name)\u001b[0m\n\u001b[0;32m 162\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Invalid HDF5 object reference\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 163\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 164\u001b[1;33m \u001b[0moid\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mh5o\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mid\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_e\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlapl\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_lapl\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 165\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 166\u001b[0m \u001b[0motype\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mh5i\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_type\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moid\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/lib/python2.7/dist-packages/h5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper (/home/wboyd/Downloads/h5py-2.5.0/h5py/_objects.c:2453)\u001b[1;34m()\u001b[0m\n\u001b[0;32m 52\u001b[0m \u001b[0mlock\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mneeded\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mit\u001b[0m \u001b[0macquires\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mlock\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mnotifies\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mfirst\u001b[0m \u001b[0mthread\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 53\u001b[0m \u001b[0mto\u001b[0m \u001b[0mrelease\u001b[0m \u001b[0mit\u001b[0m \u001b[0mwhen\u001b[0m \u001b[0mit\u001b[0m\u001b[0;31m'\u001b[0m\u001b[0ms\u001b[0m \u001b[0mdone\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mThis\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mall\u001b[0m \u001b[0mmade\u001b[0m \u001b[0mpossible\u001b[0m \u001b[0mby\u001b[0m \u001b[0mthe\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 54\u001b[1;33m \u001b[0mwonderful\u001b[0m \u001b[0mGIL\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 55\u001b[0m \"\"\"\n\u001b[0;32m 56\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mpythread\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPyThread_type_lock\u001b[0m \u001b[0m_real_lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/lib/python2.7/dist-packages/h5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper (/home/wboyd/Downloads/h5py-2.5.0/h5py/_objects.c:2410)\u001b[1;34m()\u001b[0m\n\u001b[0;32m 53\u001b[0m \u001b[0mto\u001b[0m \u001b[0mrelease\u001b[0m \u001b[0mit\u001b[0m \u001b[0mwhen\u001b[0m \u001b[0mit\u001b[0m\u001b[0;31m'\u001b[0m\u001b[0ms\u001b[0m \u001b[0mdone\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mThis\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mall\u001b[0m \u001b[0mmade\u001b[0m \u001b[0mpossible\u001b[0m \u001b[0mby\u001b[0m \u001b[0mthe\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 54\u001b[0m \u001b[0mwonderful\u001b[0m \u001b[0mGIL\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 55\u001b[1;33m \"\"\"\n\u001b[0m\u001b[0;32m 56\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mpythread\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPyThread_type_lock\u001b[0m \u001b[0m_real_lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 57\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mlong\u001b[0m \u001b[0m_owner\u001b[0m \u001b[1;31m# ID of thread owning the lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/lib/python2.7/dist-packages/h5py/h5o.pyx\u001b[0m in \u001b[0;36mh5py.h5o.open (/home/wboyd/Downloads/h5py-2.5.0/h5py/h5o.c:3363)\u001b[1;34m()\u001b[0m\n\u001b[0;32m 188\u001b[0m char* dst_name, PropID copypl=None, PropID lcpl=None):\n\u001b[0;32m 189\u001b[0m \"\"\"(ObjectID src_loc, STRING src_name, GroupID dst_loc, STRING dst_name,\n\u001b[1;32m--> 190\u001b[1;33m PropID copypl=None, PropID lcpl=None)\n\u001b[0m\u001b[0;32m 191\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 192\u001b[0m \u001b[0mCopy\u001b[0m \u001b[0ma\u001b[0m \u001b[0mgroup\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdataset\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mnamed\u001b[0m \u001b[0mdatatype\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mone\u001b[0m \u001b[0mlocation\u001b[0m \u001b[0mto\u001b[0m \u001b[0manother\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mThe\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mKeyError\u001b[0m: 'Unable to open object (Component not found)'" + ] + } + ], "source": [ "# Load the last statepoint file\n", "sp = openmc.StatePoint('statepoint.50.h5')" @@ -890,7 +898,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "collapsed": false }, @@ -925,7 +933,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "collapsed": false }, @@ -944,101 +952,11 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellgroup innuclidemeanstd. dev.
3100001U-2358.055246e-032.857567e-05
4100001U-2387.339215e-034.349466e-05
5100001O-160.000000e+000.000000e+00
0100002U-2353.615565e-012.050486e-03
1100002U-2386.742638e-073.795256e-09
2100002O-160.000000e+000.000000e+00
\n", - "
" - ], - "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "3 10000 1 U-235 8.055246e-03 2.857567e-05\n", - "4 10000 1 U-238 7.339215e-03 4.349466e-05\n", - "5 10000 1 O-16 0.000000e+00 0.000000e+00\n", - "0 10000 2 U-235 3.615565e-01 2.050486e-03\n", - "1 10000 2 U-238 6.742638e-07 3.795256e-09\n", - "2 10000 2 O-16 0.000000e+00 0.000000e+00" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df = fuel_mgxs.get_pandas_dataframe()\n", "df" @@ -1053,39 +971,11 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Multi-Group XS\n", - "\tReaction Type =\tnu-fission\n", - "\tDomain Type =\tcell\n", - "\tDomain ID =\t10000\n", - "\tNuclide =\tU-235\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t8.06e-03 +/- 3.55e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t3.62e-01 +/- 5.67e-01%\n", - "\n", - "\tNuclide =\tU-238\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t7.34e-03 +/- 5.93e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t6.74e-07 +/- 5.63e-01%\n", - "\n", - "\tNuclide =\tO-16\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t0.00e+00 +/- nan%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t0.00e+00 +/- nan%\n", - "\n", - "\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "fuel_mgxs.print_xs()" ] @@ -1099,7 +989,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1118,7 +1008,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "collapsed": true }, @@ -1130,7 +1020,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "collapsed": true }, @@ -1149,7 +1039,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": true }, @@ -1164,67 +1054,11 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellgroup innuclidemeanstd. dev.
0100001U-2350.0748600.000303
1100001U-2380.0059520.000035
2100001O-160.0000000.000000
\n", - "
" - ], - "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "0 10000 1 U-235 0.074860 0.000303\n", - "1 10000 1 U-238 0.005952 0.000035\n", - "2 10000 1 O-16 0.000000 0.000000" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Retrieve the NuFissionXS object for the fuel cell from the 1-group library\n", "coarse_fuel_mgxs = coarse_mgxs_lib.get_mgxs(fuel_cell, 'nu-fission')\n", @@ -1249,7 +1083,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1268,7 +1102,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1287,139 +1121,12 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ NORMAL ] Importing ray tracing data from file...\n", - "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761745\tres = 6.349E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.732366\tres = 5.029E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.711073\tres = 3.869E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.696554\tres = 2.912E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.687670\tres = 2.044E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.683465\tres = 1.277E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.683124\tres = 6.142E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.685943\tres = 7.897E-04\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.691322\tres = 4.180E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.698747\tres = 7.873E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.707777\tres = 1.076E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.718040\tres = 1.295E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.729218\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.741045\tres = 1.559E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.753296\tres = 1.624E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.765785\tres = 1.655E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.778355\tres = 1.659E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.790879\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803254\tres = 1.610E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.815394\tres = 1.566E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.827235\tres = 1.513E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.838724\tres = 1.453E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.849823\tres = 1.390E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.860503\tres = 1.324E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.870744\tres = 1.258E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.880535\tres = 1.191E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.889870\tres = 1.125E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.898748\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.907172\tres = 9.985E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.915151\tres = 9.382E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.922693\tres = 8.802E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.929811\tres = 8.248E-03\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.936517\tres = 7.720E-03\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.942827\tres = 7.219E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.948757\tres = 6.744E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.954322\tres = 6.295E-03\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.959539\tres = 5.871E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.964425\tres = 5.472E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.968996\tres = 5.096E-03\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.973268\tres = 4.744E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.977259\tres = 4.413E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.980982\tres = 4.104E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.984454\tres = 3.814E-03\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.987689\tres = 3.543E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990702\tres = 3.289E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.993505\tres = 3.053E-03\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.996112\tres = 2.832E-03\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.998536\tres = 2.627E-03\n", - "[ NORMAL ] Iteration 50:\tk_eff = 1.000787\tres = 2.435E-03\n", - "[ NORMAL ] Iteration 51:\tk_eff = 1.002878\tres = 2.257E-03\n", - "[ NORMAL ] Iteration 52:\tk_eff = 1.004818\tres = 2.091E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 1.006618\tres = 1.937E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.008287\tres = 1.793E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.009834\tres = 1.660E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.011268\tres = 1.536E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.012595\tres = 1.421E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.013824\tres = 1.314E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.014962\tres = 1.215E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.016015\tres = 1.123E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.016988\tres = 1.038E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.017889\tres = 9.595E-04\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.018721\tres = 8.864E-04\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.019490\tres = 8.187E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.020201\tres = 7.560E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.020858\tres = 6.980E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021464\tres = 6.444E-04\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.022024\tres = 5.947E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022541\tres = 5.488E-04\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.023017\tres = 5.063E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.023458\tres = 4.670E-04\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.023863\tres = 4.308E-04\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.024238\tres = 3.972E-04\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.024583\tres = 3.663E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.024902\tres = 3.376E-04\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.025195\tres = 3.112E-04\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.025466\tres = 2.868E-04\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.025715\tres = 2.643E-04\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.025945\tres = 2.435E-04\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.026157\tres = 2.244E-04\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.026352\tres = 2.067E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.026531\tres = 1.904E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.026697\tres = 1.753E-04\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.026849\tres = 1.614E-04\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.026989\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.027118\tres = 1.369E-04\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.027237\tres = 1.260E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.027347\tres = 1.160E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.027447\tres = 1.067E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027540\tres = 9.823E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027625\tres = 9.039E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027704\tres = 8.317E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027776\tres = 7.652E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027843\tres = 7.040E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027904\tres = 6.476E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.027960\tres = 5.957E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.028012\tres = 5.479E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028059\tres = 5.039E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028103\tres = 4.635E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028143\tres = 4.262E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028180\tres = 3.919E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028214\tres = 3.603E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028245\tres = 3.313E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028274\tres = 3.046E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.028300\tres = 2.800E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028324\tres = 2.574E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028347\tres = 2.366E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028367\tres = 2.175E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028386\tres = 1.999E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.028403\tres = 1.837E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.028419\tres = 1.688E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028434\tres = 1.551E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.028447\tres = 1.426E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028460\tres = 1.310E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028471\tres = 1.204E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028481\tres = 1.106E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028491\tres = 1.016E-05\n" - ] - } - ], + "outputs": [], "source": [ "# Generate tracks for OpenMOC\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=32, azim_spacing=0.1)\n", @@ -1439,21 +1146,11 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "openmc keff = 1.028263\n", - "openmoc keff = 1.028491\n", - "bias [pcm]: 22.8\n" - ] - } - ], + "outputs": [], "source": [ "# Print report of keff and bias with OpenMC\n", "openmoc_keff = solver.getKeff()\n", @@ -1492,7 +1189,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1518,7 +1215,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1550,32 +1247,11 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAADHCAYAAADmiMMCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHxdJREFUeJzt3Xu8VHW9//HXZ29uKmwUUARviKAGBAgImhqaVlomamrS\nsbQ07WRpDz0VpUc21S/JrLxk2akIy9vxRuDJMi/9IFMRMVTwkoqoIBcR5abcP+ePtbZn2O49n7Wv\nM7N6Px+P/dh7z/rM+n7XWp/5zJo1852vuTsiIpIPVaXugIiItB4VdRGRHFFRFxHJERV1EZEcUVEX\nEckRFXURkRxRUS8jZna9mf1nC+7/HTP7dWv2SaQtmNkRZvZ8C+6/t5mtM7Pq1uxXHpR1UTezs8zs\naTN7x8yWmdkvzGzndmp7kZltMrNe9W7/h5m5mfUruG20md1jZm+b2Soze8zMvtDIes8ys61pQtb9\n/AzA3b/s7t9rbp/d/Qfufk5z79+Yen1ekx6Tk5tw/6lm9v3W7lelqKA8/pCZPWhma81stZndbWaD\n6t2vxsyuMrNX03x4Kf1/u/UXxLuZrS/I9bcB3P1v7n5Ac7fL3V91967uvrW562hMvT6/bmbXmlnH\njPc90swWt3afmqJsi7qZXQz8EPgG0B04BNgHuM/MOrVTN14Gxhf06YPAjvX6eSjwIDATGAD0BP4d\nOLbIeh9JE7Lu56ut3vPW94i7dwV2Bn4G3GxmPUvcp7JXYXn8F2A60BfYF3gS+LuZ9U9jOgEPAINJ\n8rsGOBRYCYwu0v6wglxvlyezVjAszfcPAycD55a4P9m5e9n9kCTLOuC0erd3Bd4Avpj+XwvcAfw3\nsBZ4guRg1MX3Be5M7/MycEHBslrgNuB36X0XAKMKli8CLgXmFNx2JXAJ4EC/9LaHgOuasG1nAQ81\nsmwq8P30717A/wBvA6uAvwFV6bJvAUvSfj8PHF2wTTcWrO+EdLveBv4/8IF62/cfwFPA6nQfdsnS\nZ5KC4MDogttuB5al65oFDE5vPxfYDGxKj+ndGY7NaOBxYA2wHPhJqXPyXyCP/wb8vIFt+BPwu/Tv\nc9Lj0bUJ+8CBAQ3cfiSwuOD/xnK6wVwA+qXr7lCwj2aQPFZeBL6UdR9FfU7v+/OC/78APJuuayFw\nXnr7TsC7wLb0uK9L+1UFTABeAt5M19cjvU8X4Mb09reBOUDvFuVdqRO/kZ16LLCl7oDVW3YDcEvB\nwdoMnAJ0JClSL6d/VwFzgcuATkD/9AB8vOC+G4BPANXA5cCj9R4Mx6QJ9oE0ZjHJWZanSbUjsBU4\nqgnbdhbZivrlwPXptnQEjgAMOAB4DehbkNz7FWzTjenf+wPrgY+m9/9mmuydCrbvsTTpeqRJ+uWo\nz+l+OD9NwO4FMV8EugGdgauAeQ1tV/p/dGweAT6X/t0VOKTUOfmvmsckBWxp+vetwA1N3AdhUQ9y\nusFc4P1FfRbwc5IiOZzkCfAjWfZRsT4DBwJLgbMKln8S2I/k8TgWeAcYUX+7CuIvBB4F9iR5fPyy\n4NifB9ydHoNqYCRQ05K8K9fLL72Ale6+pYFlS9Pldea6+x3uvhn4CclBPQQ4GNjV3b/r7pvcfSHw\nK+D0gvs+5O73eHJd7vfAsAba+z3weZLi+CzJ2USdXUgedEubuH2HpNff634OaSBmM9AH2MfdN3ty\nDdJJHnydgUFm1tHdF7n7Sw3c/zPAH939vnTfXAnsAHyoIOYad3/d3VeRJNbwqM8kD44rgU+5++q6\nhe4+xd3XuvtGkgfRMDPr3si6omOzGRhgZr3cfZ27P1qkX+WsUvK4B43ncWE/ezYSE3miINevaWB5\nsZwOc8HM9gIOA77l7hvcfR7wa5LtrZNlH9Xv83qSfXWnu0+tW+Duf3T3lzwxk+Sy1RFF1vVl4BJ3\nX1zw+DjFzDqk29eT5Elkq7vPdfc1Qd+KKteivhLolW50fX3S5XVeq/vD3beRnIX0JTkT6VtYPIHv\nAL0L7rus4O93gC4NtPl74LMkZ6u/q7fsLZKXWn0ybledR91954KfhorWj0jOrP9iZgvNbEK6jS8C\nXydJjBVmdquZ9W3g/n2BV+r+SffNa8AeBTH1t79r1GeSJ7IZJGf+AJhZtZlNTt80W0NydgjbF61C\n0bE5m+SVxnNmNsfMji/Sr3KWhzwu7OebjcRERhTk+gX1FwY5nSUX+gKr3H1twW2vUDzXG9pH2/WZ\n5PHwGeBz9d5QPs7MHk0/FPE2ySuAxnIdkmM4reD4PUvyRNab5LjcC9yavil7RdY3ZRtTrkX9EWAj\nyRsU7zGzrsBxJG/W1NmrYHkVyUuc10keJC/XK57d3P0TTemIu79C8lL4E8Bd9Za9k/b1001ZZ8Z2\n17r7xe7en+Ta+EVmdnS67GZ3P5z/ewn9wwZW8Xq6HAAzM5J9taSB2Kb0ax3JG8FjzezI9ObPAuNI\nXuZ3J3lpDMnLU9I+Fip6bNz9BXcfD+yWbtsdZrZTS/pdIpWSx+vTvp7awF1PK+jn/cDH2+JYNJbT\nGXPhdaCHmXUruG1vWp7r7u63kby3VQtgZp1J3t+4kuTa987APTSe65Acw+PqHcMu7r4kfRU+yd0H\nkbyKPp7tX2E0WVkW9fRl/STgWjM71sw6ps+Ut5Gcwfy+IHykmZ2cPut+neRB9CjJ9eK1ZvYtM9sh\nPZscYmYHN6NLZ5Ncn1vfwLJvAmeZ2TfqPg1iZsPM7NZmtPMeMzvezAakxXg1yTP7NjM7wMw+kibX\nBv7vjZn6bgM+aWZHp8/8F5Psm4db0i+A9HLNf5G8+QPJtfSNJGdyOwI/qHeX5STXgusUPTZmdoaZ\n7Zqesb6d3qehbSxrFZbHE4AzzewCM+tmZrtY8jHUQ9NtIO3va8CdZnagmVWZWU9Lxkc06UmmULGc\nzpIL7v4aSV5fbmZdzGxouq03NrdP9UwGxqeXeTqRXCp6A9hiZscBHyuIXQ70rHfp8Xrg/5nZPuk2\n7Wpm49K/jzKzD1ryefs1JJdjWpTrZVnUAdz9CpKXmVeSbOxskoQ6Or0uVWc6yUukt4DPASenz35b\nSZ71hpOcoawkuc7W2HXeYn15yd0fb2TZw8BH0p+FZlZX8O5pajv1DCQ5M1pHchb1c3f/K0lCTSbZ\nnmUkZzDfbqBfzwNnANemsZ8iuQ6+qYX9qnMVcJSZDSd5Of8KyZnRMyTFqNBvSK6Xvm1mf8hwbI4F\nFpjZOuBq4HR3f7eV+t2uKiiPHwI+TvKqYinJ8TwIONzdX0hjNpK8GnsOuC/dnsdILj3Mbmp/ChTL\n6ay5MJ7kFeLrwDRgorvf34I+vcfdnyb52PLF6SWeC0iemN8ieZU6oyD2OeAWklrwdnoZ6eo05i9m\ntpbk8TEmvcvuJJ98WkNyWWYm2z/ZN5m5V+4kGWZWS/IGwxml7otIcymPpTWV/Ew9TeiKoj63j0rs\nc6FK7L/63Pbaur8lP1M3M3d3iyMbvG8tJTjDaUmfS0V9bn9Z+19OZ+qVuM8rrc9t3d+KLuqloj63\nj0rsc6FK7L/63Pbaur8lv/wiIiKtp0Vn6mZ2LMk7u9XAr919cob7VO47s1IRWuMsSLkt5SjT5bzm\nFvX0c5X/JBl2vJjki2jGu/szwf2cecU/hnnC0Pgj3jMePj2M+dJhDY1I3t7dxIMVr/avhzGfuebu\nMIZ+8b4+e9zPii7v4avCdfzo6olxX/6c4bjfOykM6fDGRWHMlj41cVufydCfm26LYzi9xUW9RbnN\nq0UifhM3fkhtHDMh3leDT2jwk4vbeXH1fmHMxld2idsaGre14JlR8XoGZVjPU/F6uvSLHyP71SyM\n25qeYSjA5Ax5Ozt+HCXflda4sWM7MXNm70y53ZLLL6OBF919YfrZ51tJRhWKVDrltlSslhT1PSj4\nvgqSM5o9GokVqSTKbalYbf5GqZnVWjKTiOuao7SHwnxry88EK7elvWXJ7WLfUhZZQsGXEJF8AdH7\nvkDH3WtJvwynrlMtaFMk1ApvlCq3pSy19TX1OcBAM9vXkmmuTqfgOxBEKphyWypWs8/U3X2LmX2V\n5LuAq4Ep7r6g1XomUiLKbalkLbn8grvfQ8u/jVCk7Ci3pVK1+9cEmJlzUvHPqR9+133herJcNn34\nu0eHMTMnxp9FXV90QqDEvv5yGHPgS4vCmK01xZ9nh+w2J1zHxf7jMGaZ7x7GXHpPvB7+GIewJcMl\n7q9kyMMRL2Ro7IBWGXzUHMk19WJjBOJ8ZPjhYcjuT8SfsT7I5oUxv/UvhDF3bj+/R4PWbjc3RcNO\n9OlhzB8s/tRot+0mN2rYp7efA6RBZ9nUMOYf24rN7phYPmLfMIYnH4pjtpsv5f3Gjt2HmTO/2ObX\n1EVEpMyoqIuI5IiKuohIjqioi4jkiIq6iEiOqKiLiOSIirqISI6oqIuI5EhJBh/tuu2VojF97X3f\nnfQ++/PPMGabx89Zt71wZhhjA7eGMTdxShhz6tvTwphOOwdtzYq3yQfEY2+sb7xNvqA6jOk7+MUw\nZkd/N4x5ec9BYcyEJfHkH5OrvlfawUdjigys25hhJRm+tX3bcRlyYEmGHDgpzoEnOSCMGfp4nAM2\nKm6LufF2zRu5fxgznOfitv6QYR/2ifdh9Z+LD6RM2spQY7sUXzz2IJh5fZUGH4mI/KtRURcRyREV\ndRGRHFFRFxHJERV1EZEcUVEXEckRFXURkRxp0cxHzXUVFxRdfvoB8XSQ05/7WBhzIn8KY14dcFEY\ns/eA+PPa//bNDJ9FrYlDNh1XvK1ZHz4sXMcxr/89jJlbHW/TyPhj4SwdHE8S4JPjc4cXluwVxnzF\nros7VGoTGl+0+wnx5BZLZg+M2xgdfzZ63Q7xPu86NM6BzY/F4wdWjIonydhtftzW8pHdw5gtdAxj\nfHTc1tr58WfQa96JP1u/NcN5cd/L4s/xL5/Rv3hAT+D6cDWAztRFRHJFRV1EJEdU1EVEckRFXUQk\nR1TURURyREVdRCRHVNRFRHJERV1EJEdKMvhojM0uunzkcw+F63hiUTwIh1fiQQh7984waOgrcciB\n5z4Rxjz3oxFhzMruOxddfsw18cAiOy4MYeQv4+22NfF6/MF4H1uGQ3WrnR7GVJNhQoISGzzu8UaX\n7c2r4f1taXxc1uwQ7/MNGSbk6Lowbmv/LfFkNDW3bQ5j7Ka4P7ufsTqM2fHUd+IVZdiuDRvi1bBj\nvJ9rbo7bOqhqXhjz2rg3iy7vRzdmhmtJ6ExdRCRHVNRFRHJERV1EJEdU1EVEckRFXUQkR1TURURy\nREVdRCRHVNRFRHKkRYOPzGwRsBbYCmxx91FZ7jdw+pKiy79/wsXxSvrFA1Gqp8QDAy6b9O0wZuKB\nk8OY517M8Pw4Mp5tpS/FByHYyLgd3xi3wznxrC7+vbitDaPjprp0jY/VMn4axmTYqlbT3NxeuKbx\nmaAeqDk6XsFJ8b6qGZJhVqOX471lb8Q5UPONDHk9N27LH4zbsqPitro9sSVez8p4H+7aK8N2BZMR\nAXBi3NZUj2d06rfm5aLL+1ZnL9WtMaL0KHdf2QrrESk3ym2pOLr8IiKSIy0t6g7cb2Zzzezc1uiQ\nSJlQbktFaunll8PdfYmZ7QbcZ2bPufus1uiYSIkpt6UitehM3d2XpL9XANOA971tZma1ZuZ1Py1p\nTySLwnwzs9rmrEO5LeUoS243u6ib2U5m1q3ub+BjwPz6ce5e6+5W99Pc9kSyKsw3d69t6v2V21Ku\nsuR2Sy6/9AammVndem529z+3YH0i5UK5LRWr2UXd3RcCw1qxLyJlQbktlczc2/dSoJk5zxb/wP7W\nHvGMI8ftelcYs4aaMGYDXcKYudcdHsace/7VYcyUp84PY7rss6ro8vVbdw3XYVPDELY9HF8teOyO\nD4YxY558Koz58rB4YNE+vBLGXPLqD8MY+nWmVJdCzMyZ13hu/3zYWeE6DvVHwpjNdApjDtjyfBjT\n9TvxgKCHrxgexnTweD2jhz8dxjz2ZJxvWzyuDR/6VjzT0NrL4/PZf1bvH8Z0IJ716REODWPOf+q3\nRZeP3QlmDqzKlNv6nLqISI6oqIuI5IiKuohIjqioi4jkiIq6iEiOqKiLiOSIirqISI6oqIuI5Ehr\n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\njRmGBmRpq3P0mAf6Z1hPpwz96VwVb9eeWfqc5WGU5XhtznDcKZY3sP/+HZg5M8NqKNXgI5E2VNrB\nRyJtJ0tut3tRf18HzLxUD8LmUp/bRyX2uVAl9l99bntt3V9dUxcRyREVdRGRHCmHop7l227Kjfrc\nPiqxz4Uqsf/qc9tr0/6W/Jq6iIi0nnI4UxcRkVaioi4ikiMlLepmdqyZPW9mL5rZhFL2JSszW2Rm\nT5vZPDOLv9W/BMxsipmtMLP5Bbf1MLP7zOyF9PcupexjoUb6W2tmS9L9PM/MPlHKPjaF8rptVFpe\nQ2lyu2RF3cyqgeuA44BBwHgzG1Sq/jTRUe4+3N0zTI1SElOBY+vdNgF4wN0HAg+k/5eLqby/vwA/\nTffzcHe/p5371CzK6zY1lcrKayhBbpfyTH008KK7L3T3TcCtwLgS9ic33H0WsKrezeOAG9K/bwDi\nefzaSSP9rVTK6zZSaXkNpcntUhb1PYDXCv5fnN5W7hy438zmmtm5pe5ME/R296Xp38uA3qXsTEZf\nM7On0pewZfWyugjldfuqxLyGNsxtvVHadIe7+3CSl9fnm9mHS92hpvLkc6zl/lnWXwD9Sb7ebSnw\n49J2J/eU1+2nTXO7lEV9CWz39Yd7preVNXdfkv5eAUwjebldCZabWR+A9PeKEvenKHdf7u5b3X0b\n8CsqZz8rr9tXReU1tH1ul7KozwEGmtm+ZtYJOB2YUcL+hMxsJzPrVvc38DFgfvF7lY0ZwJnp32cC\n00vYl1DdAzV1EpWzn5XX7aui8hraPrdL8n3qAO6+xcy+CtwLVANT3H1BqfqTUW9gmplBsu9udvc/\nl7ZL72dmtwBHAr3MbDEwEZgM3GZmZwOvAKeVrofba6S/R5rZcJKX04uA80rWwSZQXredSstrKE1u\n62sCRERyRG+UiojkiIq6iEiOqKiLiOSIirqISI6oqIuI5IiKuohIjqioi4jkiIq6iEiO/C/zDkyC\nZclMUgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Ignore zero fission rates in guide tubes with Matplotlib color scheme\n", "openmc_fission_rates[openmc_fission_rates == 0] = np.nan\n", diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index eff0bde0a..182691283 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -368,6 +368,15 @@ class MGXS(object): cv.check_type('domain', domain, tuple(_DOMAINS)) self._domain = domain + # Assign a domain type + if self.domain_type is None: + if isinstance(domain, openmc.Material): + self._domain_type = 'material' + elif isinstance(domain, openmc.Cell): + self._domain_type = 'cell' + elif isinstance(domain, openmc.Universe): + self._domain_type = 'universe' + @domain_type.setter def domain_type(self, domain_type): cv.check_value('domain type', domain_type, tuple(DOMAIN_TYPES)) From c31d6232267dd5811c88e2feb05e3806b83bdd11 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 13 May 2016 08:44:21 -0500 Subject: [PATCH 188/259] Ability to read from attributes on HDF5 groups/datasets --- src/hdf5_interface.F90 | 918 ++++++++++++++++++++++++++++----------- src/initialize.F90 | 4 +- src/particle_restart.F90 | 30 +- src/source.F90 | 2 +- src/state_point.F90 | 72 +-- 5 files changed, 712 insertions(+), 314 deletions(-) diff --git a/src/hdf5_interface.F90 b/src/hdf5_interface.F90 index 01e50d983..ce934baa4 100644 --- a/src/hdf5_interface.F90 +++ b/src/hdf5_interface.F90 @@ -64,14 +64,28 @@ module hdf5_interface module procedure read_tally_result_2D end interface read_dataset + interface read_attribute + module procedure read_attribute_double + module procedure read_attribute_double_1D + module procedure read_attribute_double_2D + module procedure read_attribute_integer + module procedure read_attribute_integer_1D + module procedure read_attribute_integer_2D + module procedure read_attribute_string + end interface read_attribute + public :: write_dataset public :: read_dataset + public :: read_attribute public :: file_create public :: file_open public :: file_close public :: create_group public :: open_group public :: close_group + public :: open_dataset + public :: close_dataset + public :: get_shape public :: write_attribute_string contains @@ -243,6 +257,44 @@ contains end if end subroutine close_group +!=============================================================================== +! OPEN_DATASET opens an existing HDF5 dataset +!=============================================================================== + + function open_dataset(group_id, name) result(dataset_id) + integer(HID_T), intent(in) :: group_id + character(*), intent(in) :: name ! name of dataset + integer(HID_T) :: dataset_id + + logical :: exists ! does the dataset exist + integer :: hdf5_err ! HDF5 error code + + ! Check if group exists + call h5ltpath_valid_f(group_id, trim(name), .true., exists, hdf5_err) + + ! open group if it exists + if (exists) then + call h5dopen_f(group_id, trim(name), dataset_id, hdf5_err) + else + call fatal_error("The dataset '" // trim(name) // "' does not exist.") + end if + end function open_dataset + +!=============================================================================== +! CLOSE_GROUP closes HDF5 temp_group +!=============================================================================== + + subroutine close_dataset(dataset_id) + integer(HID_T), intent(inout) :: dataset_id + + integer :: hdf5_err ! HDF5 error code + + call h5dclose_f(dataset_id, hdf5_err) + if (hdf5_err < 0) then + call fatal_error("Unable to close HDF5 dataset.") + end if + end subroutine close_dataset + !=============================================================================== ! WRITE_DOUBLE writes double precision scalar data !=============================================================================== @@ -293,19 +345,27 @@ contains ! READ_DOUBLE reads double precision scalar data !=============================================================================== - subroutine read_double(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name for data - real(8), intent(inout), target :: buffer ! read data to here - logical, intent(in), optional :: indep ! independent I/O + subroutine read_double(buffer, obj_id, name, indep) + real(8), target, intent(inout) :: buffer + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O - integer :: hdf5_err - integer :: data_xfer_mode + integer :: hdf5_err + integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle - type(c_ptr) :: f_ptr + integer(HID_T) :: dset_id + type(c_ptr) :: f_ptr + + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) + else + dset_id = obj_id + end if ! Set up collective vs. independent I/O data_xfer_mode = H5FD_MPIO_COLLECTIVE_F @@ -313,21 +373,20 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) + call h5dread_f(dset_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) end if - call h5dclose_f(dset, hdf5_err) + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_double !=============================================================================== @@ -396,35 +455,46 @@ contains ! READ_DOUBLE_1D reads double precision 1-D array data !=============================================================================== - subroutine read_double_1D(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name of data - real(8), intent(inout), target :: buffer(:) ! data to write - logical, intent(in), optional :: indep ! independent I/O + subroutine read_double_1D(buffer, obj_id, name, indep) + real(8), target, intent(inout) :: buffer(:) + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O + integer :: hdf5_err + integer(HID_T) :: dset_id integer(HSIZE_T) :: dims(1) - dims(:) = shape(buffer) - if (present(indep)) then - call read_double_1D_explicit(group_id, dims, name, buffer, indep) + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) else - call read_double_1D_explicit(group_id, dims, name, buffer) + dset_id = obj_id end if + + dims(:) = shape(buffer) + + if (present(indep)) then + call read_double_1D_explicit(dset_id, dims, buffer, indep) + else + call read_double_1D_explicit(dset_id, dims, buffer) + end if + + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_double_1D - subroutine read_double_1D_explicit(group_id, dims, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - integer(HSIZE_T), intent(in) :: dims(1) - character(*), intent(in) :: name ! name of data - real(8), intent(inout), target :: buffer(dims(1)) ! data to write - logical, intent(in), optional :: indep ! independent I/O + subroutine read_double_1D_explicit(dset_id, dims, buffer, indep) + integer(HID_T), intent(in) :: dset_id + integer(HSIZE_T), intent(in) :: dims(1) + real(8), target, intent(inout) :: buffer(dims(1)) + logical, optional, intent(in) :: indep ! independent I/O integer :: hdf5_err integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle type(c_ptr) :: f_ptr ! Set up collective vs. independent I/O @@ -433,21 +503,18 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) + call h5dread_f(dset_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) end if - - call h5dclose_f(dset, hdf5_err) end subroutine read_double_1D_explicit !=============================================================================== @@ -516,35 +583,46 @@ contains ! READ_DOUBLE_2D reads double precision 2-D array data !=============================================================================== - subroutine read_double_2D(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name of data - real(8), intent(inout), target :: buffer(:,:) ! data to write - logical, intent(in), optional :: indep ! independent I/O + subroutine read_double_2D(buffer, obj_id, name, indep) + real(8), target, intent(inout) :: buffer(:,:) + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O + integer :: hdf5_err + integer(HID_T) :: dset_id integer(HSIZE_T) :: dims(2) - dims(:) = shape(buffer) - if (present(indep)) then - call read_double_2D_explicit(group_id, dims, name, buffer, indep) + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) else - call read_double_2D_explicit(group_id, dims, name, buffer) + dset_id = obj_id end if + + dims(:) = shape(buffer) + + if (present(indep)) then + call read_double_2D_explicit(dset_id, dims, buffer, indep) + else + call read_double_2D_explicit(dset_id, dims, buffer) + end if + + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_double_2D - subroutine read_double_2D_explicit(group_id, dims, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - integer(HSIZE_T), intent(in) :: dims(2) - character(*), intent(in) :: name ! name of data - real(8), intent(inout), target :: buffer(dims(1),dims(2)) - logical, intent(in), optional :: indep ! independent I/O + subroutine read_double_2D_explicit(dset_id, dims, buffer, indep) + integer(HID_T), intent(in) :: dset_id + integer(HSIZE_T), intent(in) :: dims(2) + real(8), target, intent(inout) :: buffer(dims(1),dims(2)) + logical, optional, intent(in) :: indep ! independent I/O integer :: hdf5_err integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle type(c_ptr) :: f_ptr ! Set up collective vs. independent I/O @@ -553,21 +631,18 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) + call h5dread_f(dset_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) end if - - call h5dclose_f(dset, hdf5_err) end subroutine read_double_2D_explicit !=============================================================================== @@ -636,35 +711,46 @@ contains ! READ_DOUBLE_3D reads double precision 3-D array data !=============================================================================== - subroutine read_double_3D(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name of data - real(8), intent(inout), target :: buffer(:,:,:) ! data to write - logical, intent(in), optional :: indep ! independent I/O + subroutine read_double_3D(buffer, obj_id, name, indep) + real(8), target, intent(inout) :: buffer(:,:,:) + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O + integer :: hdf5_err + integer(HID_T) :: dset_id integer(HSIZE_T) :: dims(3) - dims(:) = shape(buffer) - if (present(indep)) then - call read_double_3D_explicit(group_id, dims, name, buffer, indep) + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) else - call read_double_3D_explicit(group_id, dims, name, buffer) + dset_id = obj_id end if + + dims(:) = shape(buffer) + + if (present(indep)) then + call read_double_3D_explicit(dset_id, dims, buffer, indep) + else + call read_double_3D_explicit(dset_id, dims, buffer) + end if + + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_double_3D - subroutine read_double_3D_explicit(group_id, dims, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - integer(HSIZE_T), intent(in) :: dims(3) - character(*), intent(in) :: name ! name of data - real(8), intent(inout), target :: buffer(dims(1),dims(2),dims(3)) - logical, intent(in), optional :: indep ! independent I/O + subroutine read_double_3D_explicit(dset_id, dims, buffer, indep) + integer(HID_T), intent(in) :: dset_id + integer(HSIZE_T), intent(in) :: dims(3) + real(8), target, intent(inout) :: buffer(dims(1),dims(2),dims(3)) + logical, optional, intent(in) :: indep ! independent I/O integer :: hdf5_err integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle type(c_ptr) :: f_ptr ! Set up collective vs. independent I/O @@ -673,21 +759,18 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) + call h5dread_f(dset_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) end if - - call h5dclose_f(dset, hdf5_err) end subroutine read_double_3D_explicit !=============================================================================== @@ -756,35 +839,46 @@ contains ! READ_DOUBLE_4D reads double precision 4-D array data !=============================================================================== - subroutine read_double_4D(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name of data - real(8), intent(inout), target :: buffer(:,:,:,:) ! data to write - logical, intent(in), optional :: indep ! independent I/O + subroutine read_double_4D(buffer, obj_id, name, indep) + real(8), target, intent(inout) :: buffer(:,:,:,:) + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O + integer :: hdf5_err + integer(HID_T) :: dset_id integer(HSIZE_T) :: dims(4) - dims(:) = shape(buffer) - if (present(indep)) then - call read_double_4D_explicit(group_id, dims, name, buffer, indep) + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) else - call read_double_4D_explicit(group_id, dims, name, buffer) + dset_id = obj_id end if + + dims(:) = shape(buffer) + + if (present(indep)) then + call read_double_4D_explicit(dset_id, dims, buffer, indep) + else + call read_double_4D_explicit(dset_id, dims, buffer) + end if + + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_double_4D - subroutine read_double_4D_explicit(group_id, dims, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - integer(HSIZE_T), intent(in) :: dims(4) - character(*), intent(in) :: name ! name of data - real(8), intent(inout), target :: buffer(dims(1),dims(2),dims(3),dims(4)) - logical, intent(in), optional :: indep ! independent I/O + subroutine read_double_4D_explicit(dset_id, dims, buffer, indep) + integer(HID_T), intent(in) :: dset_id + integer(HSIZE_T), intent(in) :: dims(4) + real(8), target, intent(inout) :: buffer(dims(1),dims(2),dims(3),dims(4)) + logical, optional, intent(in) :: indep ! independent I/O integer :: hdf5_err integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle type(c_ptr) :: f_ptr ! Set up collective vs. independent I/O @@ -793,21 +887,18 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) + call h5dread_f(dset_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) end if - - call h5dclose_f(dset, hdf5_err) end subroutine read_double_4D_explicit !=============================================================================== @@ -860,19 +951,27 @@ contains ! READ_INTEGER reads integer precision scalar data !=============================================================================== - subroutine read_integer(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name for data - integer, intent(inout), target :: buffer ! read data to here - logical, intent(in), optional :: indep ! independent I/O + subroutine read_integer(buffer, obj_id, name, indep) + integer, target, intent(inout) :: buffer + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O - integer :: hdf5_err - integer :: data_xfer_mode + integer :: hdf5_err + integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle - type(c_ptr) :: f_ptr + integer(HID_T) :: dset_id + type(c_ptr) :: f_ptr + + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) + else + dset_id = obj_id + end if ! Set up collective vs. independent I/O data_xfer_mode = H5FD_MPIO_COLLECTIVE_F @@ -880,21 +979,20 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) + call h5dread_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) end if - call h5dclose_f(dset, hdf5_err) + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_integer !=============================================================================== @@ -963,35 +1061,46 @@ contains ! READ_INTEGER_1D reads integer precision 1-D array data !=============================================================================== - subroutine read_integer_1D(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name of data - integer, intent(inout), target :: buffer(:) ! data to write - logical, intent(in), optional :: indep ! independent I/O + subroutine read_integer_1D(buffer, obj_id, name, indep) + integer, target, intent(inout) :: buffer(:) + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O + integer :: hdf5_err + integer(HID_T) :: dset_id integer(HSIZE_T) :: dims(1) - dims(:) = shape(buffer) - if (present(indep)) then - call read_integer_1D_explicit(group_id, dims, name, buffer, indep) + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) else - call read_integer_1D_explicit(group_id, dims, name, buffer) + dset_id = obj_id end if + + dims(:) = shape(buffer) + + if (present(indep)) then + call read_integer_1D_explicit(dset_id, dims, buffer, indep) + else + call read_integer_1D_explicit(dset_id, dims, buffer) + end if + + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_integer_1D - subroutine read_integer_1D_explicit(group_id, dims, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - integer(HSIZE_T), intent(in) :: dims(1) - character(*), intent(in) :: name ! name of data - integer, intent(inout), target :: buffer(dims(1)) ! data to write - logical, intent(in), optional :: indep ! independent I/O + subroutine read_integer_1D_explicit(dset_id, dims, buffer, indep) + integer(HID_T), intent(in) :: dset_id + integer(HSIZE_T), intent(in) :: dims(1) + integer, target, intent(inout) :: buffer(dims(1)) + logical, optional, intent(in) :: indep ! independent I/O integer :: hdf5_err integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle type(c_ptr) :: f_ptr ! Set up collective vs. independent I/O @@ -1000,21 +1109,18 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) + call h5dread_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) end if - - call h5dclose_f(dset, hdf5_err) end subroutine read_integer_1D_explicit !=============================================================================== @@ -1083,35 +1189,46 @@ contains ! READ_INTEGER_2D reads integer precision 2-D array data !=============================================================================== - subroutine read_integer_2D(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name of data - integer, intent(inout), target :: buffer(:,:) ! data to write - logical, intent(in), optional :: indep ! independent I/O + subroutine read_integer_2D(buffer, obj_id, name, indep) + integer, target, intent(inout) :: buffer(:,:) + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O + integer :: hdf5_err + integer(HID_T) :: dset_id integer(HSIZE_T) :: dims(2) - dims(:) = shape(buffer) - if (present(indep)) then - call read_integer_2D_explicit(group_id, dims, name, buffer, indep) + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) else - call read_integer_2D_explicit(group_id, dims, name, buffer) + dset_id = obj_id end if + + dims(:) = shape(buffer) + + if (present(indep)) then + call read_integer_2D_explicit(dset_id, dims, buffer, indep) + else + call read_integer_2D_explicit(dset_id, dims, buffer) + end if + + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_integer_2D - subroutine read_integer_2D_explicit(group_id, dims, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - integer(HSIZE_T), intent(in) :: dims(2) - character(*), intent(in) :: name ! name of data - integer, intent(inout), target :: buffer(dims(1),dims(2)) - logical, intent(in), optional :: indep ! independent I/O + subroutine read_integer_2D_explicit(dset_id, dims, buffer, indep) + integer(HID_T), intent(in) :: dset_id + integer(HSIZE_T), intent(in) :: dims(2) + integer, target, intent(inout) :: buffer(dims(1),dims(2)) + logical, optional, intent(in) :: indep ! independent I/O integer :: hdf5_err integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle type(c_ptr) :: f_ptr ! Set up collective vs. independent I/O @@ -1120,21 +1237,18 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) + call h5dread_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) end if - - call h5dclose_f(dset, hdf5_err) end subroutine read_integer_2D_explicit !=============================================================================== @@ -1203,35 +1317,46 @@ contains ! READ_INTEGER_3D reads integer precision 3-D array data !=============================================================================== - subroutine read_integer_3D(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name of data - integer, intent(inout), target :: buffer(:,:,:) ! data to write - logical, intent(in), optional :: indep ! independent I/O + subroutine read_integer_3D(buffer, obj_id, name, indep) + integer, target, intent(inout) :: buffer(:,:,:) + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O + integer :: hdf5_err + integer(HID_T) :: dset_id integer(HSIZE_T) :: dims(3) - dims(:) = shape(buffer) - if (present(indep)) then - call read_integer_3D_explicit(group_id, dims, name, buffer, indep) + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) else - call read_integer_3D_explicit(group_id, dims, name, buffer) + dset_id = obj_id end if + + dims(:) = shape(buffer) + + if (present(indep)) then + call read_integer_3D_explicit(dset_id, dims, buffer, indep) + else + call read_integer_3D_explicit(dset_id, dims, buffer) + end if + + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_integer_3D - subroutine read_integer_3D_explicit(group_id, dims, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - integer(HSIZE_T), intent(in) :: dims(3) - character(*), intent(in) :: name ! name of data - integer, intent(inout), target :: buffer(dims(1),dims(2),dims(3)) - logical, intent(in), optional :: indep ! independent I/O + subroutine read_integer_3D_explicit(dset_id, dims, buffer, indep) + integer(HID_T), intent(in) :: dset_id + integer(HSIZE_T), intent(in) :: dims(3) + integer, target, intent(inout) :: buffer(dims(1),dims(2),dims(3)) + logical, optional, intent(in) :: indep ! independent I/O integer :: hdf5_err integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle type(c_ptr) :: f_ptr ! Set up collective vs. independent I/O @@ -1240,21 +1365,18 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) + call h5dread_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) end if - - call h5dclose_f(dset, hdf5_err) end subroutine read_integer_3D_explicit !=============================================================================== @@ -1323,35 +1445,46 @@ contains ! READ_INTEGER_4D reads integer precision 4-D array data !=============================================================================== - subroutine read_integer_4D(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name of data - integer, intent(inout), target :: buffer(:,:,:,:) ! data to write - logical, intent(in), optional :: indep ! independent I/O + subroutine read_integer_4D(buffer, obj_id, name, indep) + integer, target, intent(inout) :: buffer(:,:,:,:) + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O + integer :: hdf5_err + integer(HID_T) :: dset_id integer(HSIZE_T) :: dims(4) - dims(:) = shape(buffer) - if (present(indep)) then - call read_integer_4D_explicit(group_id, dims, name, buffer, indep) + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) else - call read_integer_4D_explicit(group_id, dims, name, buffer) + dset_id = obj_id end if + + dims(:) = shape(buffer) + + if (present(indep)) then + call read_integer_4D_explicit(dset_id, dims, buffer, indep) + else + call read_integer_4D_explicit(dset_id, dims, buffer) + end if + + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_integer_4D - subroutine read_integer_4D_explicit(group_id, dims, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - integer(HSIZE_T), intent(in) :: dims(4) - character(*), intent(in) :: name ! name of data - integer, intent(inout), target :: buffer(dims(1),dims(2),dims(3),dims(4)) - logical, intent(in), optional :: indep ! independent I/O + subroutine read_integer_4D_explicit(dset_id, dims, buffer, indep) + integer(HID_T), intent(in) :: dset_id + integer(HSIZE_T), intent(in) :: dims(4) + integer, target, intent(inout) :: buffer(dims(1),dims(2),dims(3),dims(4)) + logical, optional, intent(in) :: indep ! independent I/O integer :: hdf5_err integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle type(c_ptr) :: f_ptr ! Set up collective vs. independent I/O @@ -1360,21 +1493,18 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) + call h5dread_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) end if - - call h5dclose_f(dset, hdf5_err) end subroutine read_integer_4D_explicit !=============================================================================== @@ -1427,19 +1557,27 @@ contains ! READ_LONG reads long integer scalar data !=============================================================================== - subroutine read_long(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name for data - integer(8), intent(inout), target :: buffer ! read data to here - logical, intent(in), optional :: indep ! independent I/O + subroutine read_long(buffer, obj_id, name, indep) + integer(8), target, intent(inout) :: buffer + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O - integer :: hdf5_err - integer :: data_xfer_mode + integer :: hdf5_err + integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle - type(c_ptr) :: f_ptr + integer(HID_T) :: dset_id + type(c_ptr) :: f_ptr + + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) + else + dset_id = obj_id + end if ! Set up collective vs. independent I/O data_xfer_mode = H5FD_MPIO_COLLECTIVE_F @@ -1447,21 +1585,20 @@ contains if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - call h5dopen_f(group_id, trim(name), dset, hdf5_err) f_ptr = c_loc(buffer) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, hdf5_integer8_t, f_ptr, hdf5_err, xfer_prp=plist) + call h5dread_f(dset_id, hdf5_integer8_t, f_ptr, hdf5_err, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, hdf5_integer8_t, f_ptr, hdf5_err) + call h5dread_f(dset_id, hdf5_integer8_t, f_ptr, hdf5_err) end if - call h5dclose_f(dset, hdf5_err) + if (present(name)) call h5dclose_f(dset_id, hdf5_err) end subroutine read_long !=============================================================================== @@ -1529,37 +1666,42 @@ contains ! READ_STRING reads string data !=============================================================================== - subroutine read_string(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name ! name for data - character(*), intent(inout), target :: buffer ! read data to here - logical, intent(in), optional :: indep ! independent I/O + subroutine read_string(buffer, obj_id, name, indep) + character(*), target, intent(inout) :: buffer + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O integer :: hdf5_err integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle - integer(HID_T) :: dspace ! data or file space handle + integer(HID_T) :: dset_id + integer(HID_T) :: space_id integer(HID_T) :: filetype integer(HID_T) :: memtype integer(SIZE_T) :: size integer(SIZE_T) :: n type(c_ptr) :: f_ptr + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) + else + dset_id = obj_id + end if + ! Set up collective vs. independent I/O data_xfer_mode = H5FD_MPIO_COLLECTIVE_F if (present(indep)) then if (indep) data_xfer_mode = H5FD_MPIO_INDEPENDENT_F end if - ! Get dataset and dataspace - call h5dopen_f(group_id, trim(name), dset, hdf5_err) - call h5dget_space_f(dset, dspace, hdf5_err) + ! Get dataspace + call h5dget_space_f(dset_id, space_id, hdf5_err) ! Make sure buffer is large enough - call h5dget_type_f(dset, filetype, hdf5_err) + call h5dget_type_f(dset_id, filetype, hdf5_err) call h5tget_size_f(filetype, size, hdf5_err) if (size > len(buffer) + 1) then call fatal_error("Character buffer is not long enough to & @@ -1574,20 +1716,21 @@ contains ! Get pointer to start of string f_ptr = c_loc(buffer(1:1)) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, memtype, f_ptr, hdf5_err, mem_space_id=dspace, & - xfer_prp=plist) + call h5dread_f(dset_id, memtype, f_ptr, hdf5_err, & + mem_space_id=space_id, xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, memtype, f_ptr, hdf5_err, mem_space_id=dspace) + call h5dread_f(dset_id, memtype, f_ptr, hdf5_err, mem_space_id=space_id) end if - call h5dclose_f(dset, hdf5_err) - call h5sclose_f(dspace, hdf5_err) + if (present(name)) call h5dclose_f(dset_id, hdf5_err) + + call h5sclose_f(space_id, hdf5_err) call h5tclose_f(filetype, hdf5_err) call h5tclose_f(memtype, hdf5_err) end subroutine read_string @@ -1674,36 +1817,45 @@ contains ! READ_STRING_1D reads string 1-D array data !=============================================================================== - subroutine read_string_1D(group_id, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - character(*), intent(in) :: name - character(*), intent(inout), target :: buffer(:) - logical, intent(in), optional :: indep ! independent I/O + subroutine read_string_1D(buffer, obj_id, name, indep) + character(*), target, intent(inout) :: buffer(:) + integer(HID_T), intent(in) :: obj_id + character(*), optional, intent(in) :: name + logical, optional, intent(in) :: indep ! independent I/O + integer :: hdf5_err + integer(HID_T) :: dset_id integer(HSIZE_T) :: dims(1) - dims(:) = shape(buffer) - if (present(indep)) then - call read_string_1D_explicit(group_id, dims, name, buffer, indep) + ! If 'name' argument is passed, obj_id is interpreted to be a group and + ! 'name' is the name of the dataset we should read from + if (present(name)) then + call h5dopen_f(obj_id, trim(name), dset_id, hdf5_err) else - call read_string_1D_explicit(group_id, dims, name, buffer) + dset_id = obj_id + end if + + dims(:) = shape(buffer) + + if (present(indep)) then + call read_string_1D_explicit(dset_id, dims, buffer, indep) + else + call read_string_1D_explicit(dset_id, dims, buffer) end if end subroutine read_string_1D - subroutine read_string_1D_explicit(group_id, dims, name, buffer, indep) - integer(HID_T), intent(in) :: group_id - integer(HSIZE_T), intent(in) :: dims(1) - character(*), intent(in) :: name - character(*), intent(inout), target :: buffer(dims(1)) - logical, intent(in), optional :: indep ! independent I/O + subroutine read_string_1D_explicit(dset_id, dims, buffer, indep) + integer(HID_T), intent(in) :: dset_id + integer(HSIZE_T), intent(in) :: dims(1) + character(*), target, intent(inout) :: buffer(dims(1)) + logical, optional, intent(in) :: indep ! independent I/O integer :: hdf5_err integer :: data_xfer_mode #ifdef PHDF5 integer(HID_T) :: plist ! property list #endif - integer(HID_T) :: dset ! data set handle - integer(HID_T) :: dspace ! data or file space handle + integer(HID_T) :: space_id integer(HID_T) :: filetype integer(HID_T) :: memtype integer(SIZE_T) :: size @@ -1717,11 +1869,10 @@ contains end if ! Get dataset and dataspace - call h5dopen_f(group_id, trim(name), dset, hdf5_err) - call h5dget_space_f(dset, dspace, hdf5_err) + call h5dget_space_f(dset_id, space_id, hdf5_err) ! Make sure buffer is large enough - call h5dget_type_f(dset, filetype, hdf5_err) + call h5dget_type_f(dset_id, filetype, hdf5_err) call h5tget_size_f(filetype, size, hdf5_err) if (size > len(buffer(1)) + 1) then call fatal_error("Character buffer is not long enough to & @@ -1736,20 +1887,19 @@ contains ! Get pointer to start of string f_ptr = c_loc(buffer(1)(1:1)) - if (using_mpio_device(group_id)) then + if (using_mpio_device(dset_id)) then #ifdef PHDF5 call h5pcreate_f(H5P_DATASET_XFER_F, plist, hdf5_err) call h5pset_dxpl_mpio_f(plist, data_xfer_mode, hdf5_err) - call h5dread_f(dset, memtype, f_ptr, hdf5_err, mem_space_id=dspace, & + call h5dread_f(dset_id, memtype, f_ptr, hdf5_err, mem_space_id=space_id, & xfer_prp=plist) call h5pclose_f(plist, hdf5_err) #endif else - call h5dread_f(dset, memtype, f_ptr, hdf5_err, mem_space_id=dspace) + call h5dread_f(dset_id, memtype, f_ptr, hdf5_err, mem_space_id=space_id) end if - call h5dclose_f(dset, hdf5_err) - call h5sclose_f(dspace, hdf5_err) + call h5sclose_f(space_id, hdf5_err) call h5tclose_f(filetype, hdf5_err) call h5tclose_f(memtype, hdf5_err) end subroutine read_string_1D_explicit @@ -1893,6 +2043,254 @@ contains call h5dclose_f(dset, hdf5_err) end subroutine read_tally_result_2D_explicit + subroutine read_attribute_double(buffer, obj_id, name) + real(8), intent(inout), target :: buffer + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name + + integer :: hdf5_err + integer(HID_T) :: attr_id + type(c_ptr) :: f_ptr + + call h5aopen_f(obj_id, trim(name), attr_id, hdf5_err) + f_ptr = c_loc(buffer) + call h5aread_f(attr_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) + call h5aclose_f(attr_id, hdf5_err) + end subroutine read_attribute_double + + subroutine read_attribute_double_1D(buffer, obj_id, name) + real(8), target, allocatable, intent(inout) :: buffer(:) + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name + + integer :: hdf5_err + integer(HID_T) :: space_id + integer(HID_T) :: attr_id + integer(HSIZE_T) :: dims(1) + integer(HSIZE_T) :: maxdims(1) + + call h5aopen_f(obj_id, trim(name), attr_id, hdf5_err) + + if (allocated(buffer)) then + dims(:) = shape(buffer) + else + call h5aget_space_f(attr_id, space_id, hdf5_err) + call h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdf5_err) + allocate(buffer(dims(1))) + call h5sclose_f(space_id, hdf5_err) + end if + + call read_attribute_double_1D_explicit(attr_id, dims, buffer) + call h5aclose_f(attr_id, hdf5_err) + end subroutine read_attribute_double_1D + + subroutine read_attribute_double_1D_explicit(attr_id, dims, buffer) + integer(HID_T), intent(in) :: attr_id + integer(HSIZE_T), intent(in) :: dims(1) + real(8), target, intent(inout) :: buffer(dims(1)) + + integer :: hdf5_err + type(c_ptr) :: f_ptr + + f_ptr = c_loc(buffer) + call h5aread_f(attr_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) + end subroutine read_attribute_double_1D_explicit + + subroutine read_attribute_double_2D(buffer, obj_id, name) + real(8), target, allocatable, intent(inout) :: buffer(:,:) + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name + + integer :: hdf5_err + integer(HID_T) :: space_id + integer(HID_T) :: attr_id + integer(HSIZE_T) :: dims(2) + integer(HSIZE_T) :: maxdims(2) + + call h5aopen_f(obj_id, trim(name), attr_id, hdf5_err) + + if (allocated(buffer)) then + dims(:) = shape(buffer) + else + call h5aget_space_f(attr_id, space_id, hdf5_err) + call h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdf5_err) + allocate(buffer(dims(1), dims(2))) + call h5sclose_f(space_id, hdf5_err) + end if + + call read_attribute_double_2D_explicit(attr_id, dims, buffer) + call h5aclose_f(attr_id, hdf5_err) + end subroutine read_attribute_double_2D + + subroutine read_attribute_double_2D_explicit(attr_id, dims, buffer) + integer(HID_T), intent(in) :: attr_id + integer(HSIZE_T), intent(in) :: dims(2) + real(8), target, intent(inout) :: buffer(dims(1),dims(2)) + + integer :: hdf5_err + type(c_ptr) :: f_ptr + + f_ptr = c_loc(buffer) + call h5aread_f(attr_id, H5T_NATIVE_DOUBLE, f_ptr, hdf5_err) + end subroutine read_attribute_double_2D_explicit + + subroutine read_attribute_integer(buffer, obj_id, name) + integer, intent(inout), target :: buffer + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name + + integer :: hdf5_err + integer(HID_T) :: attr_id + type(c_ptr) :: f_ptr + + call h5aopen_f(obj_id, trim(name), attr_id, hdf5_err) + f_ptr = c_loc(buffer) + call h5aread_f(attr_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) + call h5aclose_f(attr_id, hdf5_err) + end subroutine read_attribute_integer + + subroutine read_attribute_integer_1D(buffer, obj_id, name) + integer, target, allocatable, intent(inout) :: buffer(:) + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name + + integer :: hdf5_err + integer(HID_T) :: space_id + integer(HID_T) :: attr_id + integer(HSIZE_T) :: dims(1) + integer(HSIZE_T) :: maxdims(1) + + call h5aopen_f(obj_id, trim(name), attr_id, hdf5_err) + + if (allocated(buffer)) then + dims(:) = shape(buffer) + else + call h5aget_space_f(attr_id, space_id, hdf5_err) + call h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdf5_err) + allocate(buffer(dims(1))) + call h5sclose_f(space_id, hdf5_err) + end if + + call read_attribute_integer_1D_explicit(attr_id, dims, buffer) + call h5aclose_f(attr_id, hdf5_err) + end subroutine read_attribute_integer_1D + + subroutine read_attribute_integer_1D_explicit(attr_id, dims, buffer) + integer(HID_T), intent(in) :: attr_id + integer(HSIZE_T), intent(in) :: dims(1) + integer, target, intent(inout) :: buffer(dims(1)) + + integer :: hdf5_err + type(c_ptr) :: f_ptr + + f_ptr = c_loc(buffer) + call h5aread_f(attr_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) + end subroutine read_attribute_integer_1D_explicit + + subroutine read_attribute_integer_2D(buffer, obj_id, name) + integer, target, allocatable, intent(inout) :: buffer(:,:) + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name + + integer :: hdf5_err + integer(HID_T) :: space_id + integer(HID_T) :: attr_id + integer(HSIZE_T) :: dims(2) + integer(HSIZE_T) :: maxdims(2) + + call h5aopen_f(obj_id, trim(name), attr_id, hdf5_err) + + if (allocated(buffer)) then + dims(:) = shape(buffer) + else + call h5aget_space_f(attr_id, space_id, hdf5_err) + call h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdf5_err) + allocate(buffer(dims(1), dims(2))) + call h5sclose_f(space_id, hdf5_err) + end if + + call read_attribute_integer_2D_explicit(attr_id, dims, buffer) + call h5aclose_f(attr_id, hdf5_err) + end subroutine read_attribute_integer_2D + + subroutine read_attribute_integer_2D_explicit(attr_id, dims, buffer) + integer(HID_T), intent(in) :: attr_id + integer(HSIZE_T), intent(in) :: dims(2) + integer, target, intent(inout) :: buffer(dims(1),dims(2)) + + integer :: hdf5_err + type(c_ptr) :: f_ptr + + f_ptr = c_loc(buffer) + call h5aread_f(attr_id, H5T_NATIVE_INTEGER, f_ptr, hdf5_err) + end subroutine read_attribute_integer_2D_explicit + + subroutine read_attribute_string(buffer, obj_id, name) + character(*), intent(inout), target :: buffer ! read data to here + integer(HID_T), intent(in) :: obj_id + character(*), intent(in) :: name ! name for data + + integer :: hdf5_err + integer(HID_T) :: attr_id ! data set handle + integer(HID_T) :: filetype + integer(HID_T) :: memtype + integer(SIZE_T) :: i + integer(SIZE_T) :: size + character(kind=C_CHAR), allocatable, target :: temp_buffer(:) + type(c_ptr) :: f_ptr + + ! Get dataset and dataspace + call h5aopen_f(obj_id, trim(name), attr_id, hdf5_err) + + ! Make sure buffer is large enough + call h5aget_type_f(attr_id, filetype, hdf5_err) + call h5tget_size_f(filetype, size, hdf5_err) + allocate(temp_buffer(size)) + if (size > len(buffer)) then + call fatal_error("Character buffer is not long enough to & + &read HDF5 string.") + end if + + ! Get datatype in memory based on Fortran character + call h5tcopy_f(H5T_C_S1, memtype, hdf5_err) + call h5tset_size_f(memtype, size + 1, hdf5_err) + + ! Get pointer to start of string + f_ptr = c_loc(temp_buffer(1)) + + call h5aread_f(attr_id, memtype, f_ptr, hdf5_err) + buffer = '' + do i = 1, size + buffer(i:i) = temp_buffer(i) + end do + deallocate(temp_buffer) + + call h5aclose_f(attr_id, hdf5_err) + call h5tclose_f(filetype, hdf5_err) + call h5tclose_f(memtype, hdf5_err) + end subroutine read_attribute_string + + subroutine get_shape(obj_id, dims) + integer(HID_T), intent(in) :: obj_id + integer(HSIZE_T), intent(out) :: dims(:) + + integer :: hdf5_err + integer :: type + integer(HID_T) :: space_id + integer(HSIZE_T) :: maxdims(size(dims)) + + call h5iget_type_f(obj_id, type, hdf5_err) + if (type == H5I_DATASET_F) then + call h5dget_space_f(obj_id, space_id, hdf5_err) + call h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdf5_err) + call h5sclose_f(space_id, hdf5_err) + elseif (type == H5I_ATTR_F) then + call h5aget_space_f(obj_id, space_id, hdf5_err) + call h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdf5_err) + call h5sclose_f(space_id, hdf5_err) + end if + end subroutine get_shape + function using_mpio_device(obj_id) result(mpio) integer(HID_T), intent(in) :: obj_id logical :: mpio diff --git a/src/initialize.F90 b/src/initialize.F90 index 09bedb138..8c4eabbc1 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -375,7 +375,7 @@ contains ! Check what type of file this is file_id = file_open(argv(i), 'r', parallel=.true.) - call read_dataset(file_id, 'filetype', filetype) + call read_dataset(filetype, file_id, 'filetype') call file_close(file_id) ! Set path and flag for type of run @@ -401,7 +401,7 @@ contains ! Check file type is a source file file_id = file_open(argv(i), 'r', parallel=.true.) - call read_dataset(file_id, 'filetype', filetype) + call read_dataset(filetype, file_id, 'filetype') call file_close(file_id) if (filetype /= 'source') then call fatal_error("Second file after restart flag must be a & diff --git a/src/particle_restart.F90 b/src/particle_restart.F90 index 9d49a4f97..4040a471a 100644 --- a/src/particle_restart.F90 +++ b/src/particle_restart.F90 @@ -71,7 +71,7 @@ contains integer :: int_scalar integer(HID_T) :: file_id - character(MAX_WORD_LEN) :: mode + character(MAX_WORD_LEN) :: tempstr ! Write meessage call write_message("Loading particle restart file " & @@ -81,25 +81,25 @@ contains file_id = file_open(path_particle_restart, 'r') ! Read data from file - call read_dataset(file_id, 'filetype', int_scalar) - call read_dataset(file_id, 'revision', int_scalar) - call read_dataset(file_id, 'current_batch', current_batch) - call read_dataset(file_id, 'gen_per_batch', gen_per_batch) - call read_dataset(file_id, 'current_gen', current_gen) - call read_dataset(file_id, 'n_particles', n_particles) - call read_dataset(file_id, 'run_mode', mode) - select case (mode) + call read_dataset(tempstr, file_id, 'filetype') + call read_dataset(int_scalar, file_id, 'revision') + call read_dataset(current_batch, file_id, 'current_batch') + call read_dataset(gen_per_batch, file_id, 'gen_per_batch') + call read_dataset(current_gen, file_id, 'current_gen') + call read_dataset(n_particles, file_id, 'n_particles') + call read_dataset(tempstr, file_id, 'run_mode') + select case (tempstr) case ('k-eigenvalue') previous_run_mode = MODE_EIGENVALUE case ('fixed source') previous_run_mode = MODE_FIXEDSOURCE end select - call read_dataset(file_id, 'id', p%id) - call read_dataset(file_id, 'weight', p%wgt) - call read_dataset(file_id, 'energy', p%E) - call read_dataset(file_id, 'energy_group', p%g) - call read_dataset(file_id, 'xyz', p%coord(1)%xyz) - call read_dataset(file_id, 'uvw', p%coord(1)%uvw) + call read_dataset(p%id, file_id, 'id') + call read_dataset(p%wgt, file_id, 'weight') + call read_dataset(p%E, file_id, 'energy') + call read_dataset(p%g, file_id, 'energy_group') + call read_dataset(p%coord(1)%xyz, file_id, 'xyz') + call read_dataset(p%coord(1)%uvw, file_id, 'uvw') ! Set particle last attributes p%last_wgt = p%wgt diff --git a/src/source.F90 b/src/source.F90 index ad565c95c..194c8c6ad 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -53,7 +53,7 @@ contains file_id = file_open(path_source, 'r', parallel=.true.) ! Read the file type - call read_dataset(file_id, "filetype", filetype) + call read_dataset(filetype, file_id, "filetype") ! Check to make sure this is a source file if (filetype /= 'source') then diff --git a/src/state_point.F90 b/src/state_point.F90 index cbd6c017a..81abf0c1b 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -703,25 +703,25 @@ contains file_id = file_open(path_state_point, 'r', parallel=.true.) ! Read filetype - call read_dataset(file_id, "filetype", word) + call read_dataset(word, file_id, "filetype") if (word /= 'statepoint') then call fatal_error("OpenMC tried to restart from a non-statepoint file.") end if ! Read revision number for state point file and make sure it matches with ! current version - call read_dataset(file_id, "revision", int_array(1)) + call read_dataset(int_array(1), file_id, "revision") if (int_array(1) /= REVISION_STATEPOINT) then call fatal_error("State point version does not match current version & &in OpenMC.") end if ! Read and overwrite random number seed - call read_dataset(file_id, "seed", seed) + call read_dataset(seed, file_id, "seed") ! It is not impossible for a state point to be generated from a CE run but ! to be loaded in to an MG run (or vice versa), check to prevent that. - call read_dataset(file_id, "run_CE", sp_run_CE) + call read_dataset(sp_run_CE, file_id, "run_CE") if (sp_run_CE == 0 .and. run_CE) then call fatal_error("State point file is from multi-group run but & & current run is continous-energy!") @@ -731,24 +731,24 @@ contains end if ! Read and overwrite run information except number of batches - call read_dataset(file_id, "run_mode", word) + call read_dataset(word, file_id, "run_mode") select case(word) case ('fixed source') run_mode = MODE_FIXEDSOURCE case ('k-eigenvalue') run_mode = MODE_EIGENVALUE end select - call read_dataset(file_id, "n_particles", n_particles) - call read_dataset(file_id, "n_batches", int_array(1)) + call read_dataset(n_particles, file_id, "n_particles") + call read_dataset(int_array(1), file_id, "n_batches") ! Take maximum of statepoint n_batches and input n_batches n_batches = max(n_batches, int_array(1)) ! Read batch number to restart at - call read_dataset(file_id, "current_batch", restart_batch) + call read_dataset(restart_batch, file_id, "current_batch") ! Check for source in statepoint if needed - call read_dataset(file_id, "source_present", int_array(1)) + call read_dataset(int_array(1), file_id, "source_present") if (int_array(1) == 1) then source_present = .true. else @@ -762,37 +762,37 @@ contains ! Read information specific to eigenvalue run if (run_mode == MODE_EIGENVALUE) then - call read_dataset(file_id, "n_inactive", int_array(1)) - call read_dataset(file_id, "gen_per_batch", gen_per_batch) - call read_dataset(file_id, "k_generation", & - k_generation(1:restart_batch*gen_per_batch)) - call read_dataset(file_id, "entropy", & - entropy(1:restart_batch*gen_per_batch)) - call read_dataset(file_id, "k_col_abs", k_col_abs) - call read_dataset(file_id, "k_col_tra", k_col_tra) - call read_dataset(file_id, "k_abs_tra", k_abs_tra) - call read_dataset(file_id, "k_combined", real_array(1:2)) + call read_dataset(int_array(1), file_id, "n_inactive") + call read_dataset(gen_per_batch, file_id, "gen_per_batch") + call read_dataset(k_generation(1:restart_batch*gen_per_batch), & + file_id, "k_generation") + call read_dataset(entropy(1:restart_batch*gen_per_batch), & + file_id, "entropy") + call read_dataset(k_col_abs, file_id, "k_col_abs") + call read_dataset(k_col_tra, file_id, "k_col_tra") + call read_dataset(k_abs_tra, file_id, "k_abs_tra") + call read_dataset(real_array(1:2), file_id, "k_combined") ! Take maximum of statepoint n_inactive and input n_inactive n_inactive = max(n_inactive, int_array(1)) ! Read in to see if CMFD was on - call read_dataset(file_id, "cmfd_on", int_array(1)) + call read_dataset(int_array(1), file_id, "cmfd_on") ! Read in CMFD info if (int_array(1) == 1) then cmfd_group = open_group(file_id, "cmfd") - call read_dataset(cmfd_group, "indices", cmfd%indices) - call read_dataset(cmfd_group, "k_cmfd", cmfd%k_cmfd(1:restart_batch)) - call read_dataset(cmfd_group, "cmfd_src", cmfd%cmfd_src) - call read_dataset(cmfd_group, "cmfd_entropy", & - cmfd%entropy(1:restart_batch)) - call read_dataset(cmfd_group, "cmfd_balance", & - cmfd%balance(1:restart_batch)) - call read_dataset(cmfd_group, "cmfd_dominance", & - cmfd%dom(1:restart_batch)) - call read_dataset(cmfd_group, "cmfd_srccmp", & - cmfd%src_cmp(1:restart_batch)) + call read_dataset(cmfd%indices, cmfd_group, "indices") + call read_dataset(cmfd%k_cmfd(1:restart_batch), cmfd_group, "k_cmfd") + call read_dataset(cmfd%cmfd_src, cmfd_group, "cmfd_src") + call read_dataset(cmfd%entropy(1:restart_batch), cmfd_group, & + "cmfd_entropy") + call read_dataset(cmfd%balance(1:restart_batch), cmfd_group, & + "cmfd_balance") + call read_dataset(cmfd%dom(1:restart_batch), cmfd_group, & + "cmfd_dominance") + call read_dataset(cmfd%src_cmp(1:restart_batch), cmfd_group, & + "cmfd_srccmp") call close_group(cmfd_group) end if end if @@ -812,14 +812,14 @@ contains #endif ! Read number of realizations for global tallies - call read_dataset(file_id, "n_realizations", n_realizations, indep=.true.) + call read_dataset(n_realizations, file_id, "n_realizations", indep=.true.) ! Read global tally data call read_dataset(file_id, "global_tallies", global_tallies) ! Check if tally results are present tallies_group = open_group(file_id, "tallies") - call read_dataset(tallies_group, "tallies_present", int_array(1), & + call read_dataset(int_array(1), tallies_group, "tallies_present", & indep=.true.) ! Read in sum and sum squared @@ -832,8 +832,8 @@ contains tally_group = open_group(tallies_group, "tally " // & trim(to_str(tally % id))) call read_dataset(tally_group, "results", tally % results) - call read_dataset(tally_group, "n_realizations", & - tally % n_realizations) + call read_dataset(tally % n_realizations, tally_group, & + "n_realizations") call close_group(tally_group) end do TALLY_RESULTS end if @@ -859,7 +859,7 @@ contains file_id = file_open(path_source_point, 'r', parallel=.true.) ! Read file type - call read_dataset(file_id, "filetype", int_array(1)) + call read_dataset(int_array(1), file_id, "filetype") end if From 68d2e5b047d20964b866ce4fa555008f0ab3edb2 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 13 May 2016 13:18:18 -0400 Subject: [PATCH 189/259] Fixed hosed mgxs-part-iii notebook --- .../pythonapi/examples/mgxs-part-iii.ipynb | 509 ++++++++++++++---- 1 file changed, 417 insertions(+), 92 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 152a68aff..ece33e3f5 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -23,11 +23,24 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 1, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "because the backend has already been chosen;\n", + "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", + "or matplotlib.backends is imported for the first time.\n", + "\n", + " warnings.warn(_use_error_msg)\n" + ] + } + ], "source": [ "import math\n", "import pickle\n", @@ -55,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -79,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 3, "metadata": { "collapsed": true }, @@ -114,7 +127,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 4, "metadata": { "collapsed": true }, @@ -137,7 +150,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 5, "metadata": { "collapsed": true }, @@ -165,7 +178,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 6, "metadata": { "collapsed": true }, @@ -202,7 +215,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 7, "metadata": { "collapsed": true }, @@ -239,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 8, "metadata": { "collapsed": true }, @@ -261,7 +274,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 9, "metadata": { "collapsed": true }, @@ -293,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 10, "metadata": { "collapsed": true }, @@ -320,7 +333,7 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 11, "metadata": { "collapsed": true }, @@ -333,7 +346,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 12, "metadata": { "collapsed": true }, @@ -352,7 +365,7 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -388,7 +401,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 14, "metadata": { "collapsed": true }, @@ -416,7 +429,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -427,7 +440,7 @@ "0" ] }, - "execution_count": 58, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -439,19 +452,19 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDUtMTNUMTA6MTI6MjAtMDQ6MDDbBmr4AAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA1LTEzVDEwOjEyOjIwLTA0OjAwqlvSRAAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ "" ] }, - "execution_count": 59, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -487,7 +500,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -507,7 +520,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -545,7 +558,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -566,7 +579,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 20, "metadata": { "collapsed": true }, @@ -588,7 +601,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 21, "metadata": { "collapsed": true }, @@ -607,7 +620,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 22, "metadata": { "collapsed": true }, @@ -628,7 +641,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 23, "metadata": { "collapsed": true }, @@ -648,7 +661,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -676,7 +689,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 25, "metadata": { "collapsed": true }, @@ -688,7 +701,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -713,8 +726,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 19feb55e6d5e8350398627f39fb55ee8e2e63011\n", - " Date/Time: 2016-05-13 10:12:20\n", + " Git SHA1: 47ef320ad517612376e181ec6a6bc42ca0db98ce\n", + " Date/Time: 2016-05-13 13:14:08\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -801,20 +814,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.0700E-01 seconds\n", - " Reading cross sections = 1.0600E-01 seconds\n", - " Total time in simulation = 6.4501E+01 seconds\n", - " Time in transport only = 6.4461E+01 seconds\n", - " Time in inactive batches = 5.2590E+00 seconds\n", - " Time in active batches = 5.9242E+01 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", - " Time accumulating tallies = 3.0000E-03 seconds\n", + " Total time for initialization = 7.4900E-01 seconds\n", + " Reading cross sections = 2.6400E-01 seconds\n", + " Total time in simulation = 8.0114E+01 seconds\n", + " Time in transport only = 8.0033E+01 seconds\n", + " Time in inactive batches = 6.5120E+00 seconds\n", + " Time in active batches = 7.3602E+01 seconds\n", + " Time synchronizing fission bank = 3.2000E-02 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 2.8000E-02 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 6.5026E+01 seconds\n", - " Calculation Rate (inactive) = 4753.76 neutrons/second\n", - " Calculation Rate (active) = 1687.99 neutrons/second\n", + " Total time elapsed = 8.0892E+01 seconds\n", + " Calculation Rate (inactive) = 3839.07 neutrons/second\n", + " Calculation Rate (active) = 1358.66 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -832,7 +845,7 @@ "0" ] }, - "execution_count": 69, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -858,32 +871,11 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 27, "metadata": { "collapsed": false }, - "outputs": [ - { - "ename": "KeyError", - "evalue": "'Unable to open object (Component not found)'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Load the last statepoint file\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0msp\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopenmc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mStatePoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'statepoint.50.h5'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/statepoint.pyc\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, filename, autolink)\u001b[0m\n\u001b[0;32m 135\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath_summary\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 136\u001b[0m \u001b[0msu\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopenmc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSummary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath_summary\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 137\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlink_with_summary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msu\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 138\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 139\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/statepoint.pyc\u001b[0m in \u001b[0;36mlink_with_summary\u001b[1;34m(self, summary)\u001b[0m\n\u001b[0;32m 639\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 640\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 641\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mtally_id\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtally\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtallies\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 642\u001b[0m \u001b[0msummary_tally\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msummary\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtallies\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mtally_id\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 643\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msummary_tally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/statepoint.pyc\u001b[0m in \u001b[0;36mtallies\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 376\u001b[0m \u001b[1;31m# Read the Tally size specifications\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 377\u001b[0m \u001b[0mn_realizations\u001b[0m \u001b[1;33m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 378\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_f\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'{0}{1}/n_realizations'\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbase\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtally_key\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 379\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 380\u001b[0m \u001b[1;31m# Create Tally object and assign basic properties\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/usr/lib/python2.7/dist-packages/h5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper (/home/wboyd/Downloads/h5py-2.5.0/h5py/_objects.c:2453)\u001b[1;34m()\u001b[0m\n\u001b[0;32m 52\u001b[0m \u001b[0mlock\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mneeded\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mit\u001b[0m \u001b[0macquires\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mlock\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mnotifies\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mfirst\u001b[0m \u001b[0mthread\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 53\u001b[0m \u001b[0mto\u001b[0m \u001b[0mrelease\u001b[0m \u001b[0mit\u001b[0m \u001b[0mwhen\u001b[0m \u001b[0mit\u001b[0m\u001b[0;31m'\u001b[0m\u001b[0ms\u001b[0m \u001b[0mdone\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mThis\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mall\u001b[0m \u001b[0mmade\u001b[0m \u001b[0mpossible\u001b[0m \u001b[0mby\u001b[0m \u001b[0mthe\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 54\u001b[1;33m \u001b[0mwonderful\u001b[0m \u001b[0mGIL\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 55\u001b[0m \"\"\"\n\u001b[0;32m 56\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mpythread\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPyThread_type_lock\u001b[0m \u001b[0m_real_lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/usr/lib/python2.7/dist-packages/h5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper (/home/wboyd/Downloads/h5py-2.5.0/h5py/_objects.c:2410)\u001b[1;34m()\u001b[0m\n\u001b[0;32m 53\u001b[0m \u001b[0mto\u001b[0m \u001b[0mrelease\u001b[0m \u001b[0mit\u001b[0m \u001b[0mwhen\u001b[0m \u001b[0mit\u001b[0m\u001b[0;31m'\u001b[0m\u001b[0ms\u001b[0m \u001b[0mdone\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mThis\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mall\u001b[0m \u001b[0mmade\u001b[0m \u001b[0mpossible\u001b[0m \u001b[0mby\u001b[0m \u001b[0mthe\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 54\u001b[0m \u001b[0mwonderful\u001b[0m \u001b[0mGIL\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 55\u001b[1;33m \"\"\"\n\u001b[0m\u001b[0;32m 56\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mpythread\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPyThread_type_lock\u001b[0m \u001b[0m_real_lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 57\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mlong\u001b[0m \u001b[0m_owner\u001b[0m \u001b[1;31m# ID of thread owning the lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/h5py-2.5.0-py2.7-linux-x86_64.egg/h5py/_hl/group.pyc\u001b[0m in \u001b[0;36m__getitem__\u001b[1;34m(self, name)\u001b[0m\n\u001b[0;32m 162\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Invalid HDF5 object reference\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 163\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 164\u001b[1;33m \u001b[0moid\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mh5o\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mid\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_e\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlapl\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_lapl\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 165\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 166\u001b[0m \u001b[0motype\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mh5i\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_type\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moid\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/usr/lib/python2.7/dist-packages/h5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper (/home/wboyd/Downloads/h5py-2.5.0/h5py/_objects.c:2453)\u001b[1;34m()\u001b[0m\n\u001b[0;32m 52\u001b[0m \u001b[0mlock\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mneeded\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mit\u001b[0m \u001b[0macquires\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mlock\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mnotifies\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mfirst\u001b[0m \u001b[0mthread\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 53\u001b[0m \u001b[0mto\u001b[0m \u001b[0mrelease\u001b[0m \u001b[0mit\u001b[0m \u001b[0mwhen\u001b[0m \u001b[0mit\u001b[0m\u001b[0;31m'\u001b[0m\u001b[0ms\u001b[0m \u001b[0mdone\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mThis\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mall\u001b[0m \u001b[0mmade\u001b[0m \u001b[0mpossible\u001b[0m \u001b[0mby\u001b[0m \u001b[0mthe\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 54\u001b[1;33m \u001b[0mwonderful\u001b[0m \u001b[0mGIL\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 55\u001b[0m \"\"\"\n\u001b[0;32m 56\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mpythread\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPyThread_type_lock\u001b[0m \u001b[0m_real_lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/usr/lib/python2.7/dist-packages/h5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper (/home/wboyd/Downloads/h5py-2.5.0/h5py/_objects.c:2410)\u001b[1;34m()\u001b[0m\n\u001b[0;32m 53\u001b[0m \u001b[0mto\u001b[0m \u001b[0mrelease\u001b[0m \u001b[0mit\u001b[0m \u001b[0mwhen\u001b[0m \u001b[0mit\u001b[0m\u001b[0;31m'\u001b[0m\u001b[0ms\u001b[0m \u001b[0mdone\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mThis\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mall\u001b[0m \u001b[0mmade\u001b[0m \u001b[0mpossible\u001b[0m \u001b[0mby\u001b[0m \u001b[0mthe\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 54\u001b[0m \u001b[0mwonderful\u001b[0m \u001b[0mGIL\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 55\u001b[1;33m \"\"\"\n\u001b[0m\u001b[0;32m 56\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mpythread\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPyThread_type_lock\u001b[0m \u001b[0m_real_lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 57\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mlong\u001b[0m \u001b[0m_owner\u001b[0m \u001b[1;31m# ID of thread owning the lock\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/usr/lib/python2.7/dist-packages/h5py/h5o.pyx\u001b[0m in \u001b[0;36mh5py.h5o.open (/home/wboyd/Downloads/h5py-2.5.0/h5py/h5o.c:3363)\u001b[1;34m()\u001b[0m\n\u001b[0;32m 188\u001b[0m char* dst_name, PropID copypl=None, PropID lcpl=None):\n\u001b[0;32m 189\u001b[0m \"\"\"(ObjectID src_loc, STRING src_name, GroupID dst_loc, STRING dst_name,\n\u001b[1;32m--> 190\u001b[1;33m PropID copypl=None, PropID lcpl=None)\n\u001b[0m\u001b[0;32m 191\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 192\u001b[0m \u001b[0mCopy\u001b[0m \u001b[0ma\u001b[0m \u001b[0mgroup\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdataset\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mnamed\u001b[0m \u001b[0mdatatype\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mone\u001b[0m \u001b[0mlocation\u001b[0m \u001b[0mto\u001b[0m \u001b[0manother\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mThe\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mKeyError\u001b[0m: 'Unable to open object (Component not found)'" - ] - } - ], + "outputs": [], "source": [ "# Load the last statepoint file\n", "sp = openmc.StatePoint('statepoint.50.h5')" @@ -898,7 +890,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -933,7 +925,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -952,11 +944,102 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n", + " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cellgroup innuclidemeanstd. dev.
3100001U-2358.055246e-032.857567e-05
4100001U-2387.339215e-034.349466e-05
5100001O-160.000000e+000.000000e+00
0100002U-2353.615565e-012.050486e-03
1100002U-2386.742638e-073.795256e-09
2100002O-160.000000e+000.000000e+00
\n", + "
" + ], + "text/plain": [ + " cell group in nuclide mean std. dev.\n", + "3 10000 1 U-235 8.055246e-03 2.857567e-05\n", + "4 10000 1 U-238 7.339215e-03 4.349466e-05\n", + "5 10000 1 O-16 0.000000e+00 0.000000e+00\n", + "0 10000 2 U-235 3.615565e-01 2.050486e-03\n", + "1 10000 2 U-238 6.742638e-07 3.795256e-09\n", + "2 10000 2 O-16 0.000000e+00 0.000000e+00" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df = fuel_mgxs.get_pandas_dataframe()\n", "df" @@ -971,11 +1054,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\tnu-fission\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t10000\n", + "\tNuclide =\tU-235\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t8.06e-03 +/- 3.55e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t3.62e-01 +/- 5.67e-01%\n", + "\n", + "\tNuclide =\tU-238\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t7.34e-03 +/- 5.93e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t6.74e-07 +/- 5.63e-01%\n", + "\n", + "\tNuclide =\tO-16\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t0.00e+00 +/- nan%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t0.00e+00 +/- nan%\n", + "\n", + "\n", + "\n" + ] + } + ], "source": [ "fuel_mgxs.print_xs()" ] @@ -989,7 +1100,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -1008,7 +1119,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": { "collapsed": true }, @@ -1020,7 +1131,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { "collapsed": true }, @@ -1039,7 +1150,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { "collapsed": true }, @@ -1054,11 +1165,67 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cellgroup innuclidemeanstd. dev.
0100001U-2350.0748600.000303
1100001U-2380.0059520.000035
2100001O-160.0000000.000000
\n", + "
" + ], + "text/plain": [ + " cell group in nuclide mean std. dev.\n", + "0 10000 1 U-235 0.074860 0.000303\n", + "1 10000 1 U-238 0.005952 0.000035\n", + "2 10000 1 O-16 0.000000 0.000000" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Retrieve the NuFissionXS object for the fuel cell from the 1-group library\n", "coarse_fuel_mgxs = coarse_mgxs_lib.get_mgxs(fuel_cell, 'nu-fission')\n", @@ -1083,7 +1250,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": { "collapsed": false }, @@ -1102,7 +1269,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -1121,12 +1288,139 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": { "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ NORMAL ] Importing ray tracing data from file...\n", + "[ NORMAL ] Computing the eigenvalue...\n", + "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.761745\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.732366\tres = 5.029E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.711073\tres = 3.869E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.696554\tres = 2.912E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.687670\tres = 2.044E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683465\tres = 1.277E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.683124\tres = 6.142E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.685943\tres = 7.897E-04\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.691322\tres = 4.180E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698747\tres = 7.873E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.707777\tres = 1.076E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.718040\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.729218\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.741045\tres = 1.559E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.753296\tres = 1.624E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765785\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.778355\tres = 1.659E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.790879\tres = 1.643E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803254\tres = 1.610E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815394\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.827235\tres = 1.513E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.838724\tres = 1.453E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849823\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860503\tres = 1.324E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.870744\tres = 1.258E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.880535\tres = 1.191E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889870\tres = 1.125E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898748\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.907172\tres = 9.985E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915151\tres = 9.382E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922693\tres = 8.802E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929811\tres = 8.248E-03\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.936517\tres = 7.720E-03\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.942827\tres = 7.219E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948757\tres = 6.744E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954322\tres = 6.295E-03\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.959539\tres = 5.871E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964425\tres = 5.472E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.968996\tres = 5.096E-03\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.973268\tres = 4.744E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977259\tres = 4.413E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.980982\tres = 4.104E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984454\tres = 3.814E-03\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.987689\tres = 3.543E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990702\tres = 3.289E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993505\tres = 3.053E-03\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.996112\tres = 2.832E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.998536\tres = 2.627E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.000787\tres = 2.435E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.002878\tres = 2.257E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.004818\tres = 2.091E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.006618\tres = 1.937E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.008287\tres = 1.793E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.009834\tres = 1.660E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.011268\tres = 1.536E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.012595\tres = 1.421E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.013824\tres = 1.314E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.014962\tres = 1.215E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.016015\tres = 1.123E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.016988\tres = 1.038E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.017889\tres = 9.595E-04\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.018721\tres = 8.864E-04\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.019490\tres = 8.187E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020201\tres = 7.560E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020858\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021464\tres = 6.444E-04\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.022024\tres = 5.947E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022541\tres = 5.488E-04\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.023017\tres = 5.063E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023458\tres = 4.670E-04\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.023863\tres = 4.308E-04\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.024238\tres = 3.972E-04\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.024583\tres = 3.663E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024902\tres = 3.376E-04\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.025195\tres = 3.112E-04\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.025466\tres = 2.868E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.025715\tres = 2.643E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.025945\tres = 2.435E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.026157\tres = 2.244E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.026352\tres = 2.067E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026531\tres = 1.904E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026697\tres = 1.753E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.026849\tres = 1.614E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.026989\tres = 1.487E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027118\tres = 1.369E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.027237\tres = 1.260E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027347\tres = 1.160E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027447\tres = 1.067E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027540\tres = 9.823E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027625\tres = 9.039E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027704\tres = 8.317E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027776\tres = 7.652E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027843\tres = 7.040E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027904\tres = 6.476E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.027960\tres = 5.957E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028012\tres = 5.479E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028059\tres = 5.039E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028103\tres = 4.635E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028143\tres = 4.262E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028180\tres = 3.919E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028214\tres = 3.603E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028245\tres = 3.313E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028274\tres = 3.046E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028300\tres = 2.800E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028324\tres = 2.574E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028347\tres = 2.366E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028367\tres = 2.175E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028386\tres = 1.999E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028403\tres = 1.837E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028419\tres = 1.688E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028434\tres = 1.551E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028447\tres = 1.426E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028460\tres = 1.310E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028471\tres = 1.204E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028481\tres = 1.106E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028491\tres = 1.016E-05\n" + ] + } + ], "source": [ "# Generate tracks for OpenMOC\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=32, azim_spacing=0.1)\n", @@ -1146,11 +1440,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.028263\n", + "openmoc keff = 1.028491\n", + "bias [pcm]: 22.8\n" + ] + } + ], "source": [ "# Print report of keff and bias with OpenMC\n", "openmoc_keff = solver.getKeff()\n", @@ -1189,7 +1493,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "metadata": { "collapsed": false }, @@ -1215,7 +1519,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "metadata": { "collapsed": false }, @@ -1247,11 +1551,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n2ajR7Q6wgAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Ignore zero fission rates in guide tubes with Matplotlib color scheme\n", "openmc_fission_rates[openmc_fission_rates == 0] = np.nan\n", @@ -1285,7 +1610,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.6" + "version": "2.7.11" } }, "nbformat": 4, From 830277baf90278565c3168c89a1f596edd832339 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 13 May 2016 13:25:45 -0400 Subject: [PATCH 190/259] Replicated MGXS docstring to all subclasses for clarity in Jupyter Notebook --- openmc/mgxs/mgxs.py | 1034 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1023 insertions(+), 11 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 182691283..4c00f9fef 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1525,7 +1525,85 @@ class MGXS(object): class TotalXS(MGXS): - """A total multi-group cross section.""" + """A total multi-group cross section. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): @@ -1535,7 +1613,85 @@ class TotalXS(MGXS): class TransportXS(MGXS): - """A transport-corrected total multi-group cross section.""" + """A transport-corrected total multi-group cross section. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): @@ -1571,7 +1727,85 @@ class TransportXS(MGXS): class NuTransportXS(TransportXS): """A transport-corrected total multi-group cross section which - accounts for neutron multiplicity in scattering reactions.""" + accounts for neutron multiplicity in scattering reactions. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): @@ -1589,7 +1823,85 @@ class NuTransportXS(TransportXS): class AbsorptionXS(MGXS): - """An absorption multi-group cross section.""" + """An absorption multi-group cross section. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): @@ -1606,6 +1918,82 @@ class CaptureXS(MGXS): not only radiative capture, but all forms of neutron disappearance aside from fission (e.g., MT > 100). + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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, @@ -1628,7 +2016,85 @@ class CaptureXS(MGXS): class FissionXS(MGXS): - """A fission multi-group cross section.""" + """A fission multi-group cross section. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): @@ -1638,7 +2104,85 @@ class FissionXS(MGXS): class NuFissionXS(MGXS): - """A fission production multi-group cross section.""" + """A fission production multi-group cross section. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): @@ -1648,7 +2192,85 @@ class NuFissionXS(MGXS): class KappaFissionXS(MGXS): - """A recoverable fission energy production rate multi-group cross section.""" + """A recoverable fission energy production rate multi-group cross section. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): @@ -1658,7 +2280,85 @@ class KappaFissionXS(MGXS): class ScatterXS(MGXS): - """A scatter multi-group cross section.""" + """A scatter multi-group cross section. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): @@ -1668,7 +2368,85 @@ class ScatterXS(MGXS): class NuScatterXS(MGXS): - """A nu-scatter multi-group cross section.""" + """A nu-scatter multi-group cross section. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): @@ -1681,12 +2459,85 @@ class ScatterMatrixXS(MGXS): """A scattering matrix multi-group cross section for one or more Legendre moments. + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + Attributes ---------- correction : 'P0' or None Apply the P0 correction to scattering matrices if set to 'P0' legendre_order : int The highest legendre moment in the scattering matrix (default is 0) + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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 """ @@ -2241,7 +3092,90 @@ class ScatterMatrixXS(MGXS): class NuScatterMatrixXS(ScatterMatrixXS): - """A scattering production matrix multi-group cross section.""" + """A scattering production matrix multi-group cross section for one or + more Legendre moments. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + Attributes + ---------- + correction : 'P0' or None + Apply the P0 correction to scattering matrices if set to 'P0' + legendre_order : int + The highest legendre moment in the scattering matrix (default is 0) + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): @@ -2252,7 +3186,85 @@ class NuScatterMatrixXS(ScatterMatrixXS): class Chi(MGXS): - """The fission spectrum.""" + """The fission spectrum. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): From 9449ca6b891f4dede18790748ce5a0a1a4d5018c Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 13 May 2016 15:50:40 -0400 Subject: [PATCH 191/259] MGXS tests now use a 3rd order legendre scattering moments --- .../inputs_true.dat | 2 +- .../results_true.dat | 116 +- .../test_mgxs_library_condense.py | 1 + .../inputs_true.dat | 2 +- .../results_true.dat | 9 +- .../test_mgxs_library_distribcell.py | 1 + tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 168 +- .../test_mgxs_library_hdf5.py | 1 + .../inputs_true.dat | 2 +- .../results_true.dat | 350 +- .../test_mgxs_library_no_nuclides.py | 1 + .../inputs_true.dat | 2 +- .../results_true.dat | 5742 ++++++++++++----- .../test_mgxs_library_nuclides.py | 1 + 15 files changed, 4512 insertions(+), 1888 deletions(-) diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index 064981fa9..3643c9a2e 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -ee40a2b826dea8323249c7261502f8339c78a5dc236e019842cc5244c048d5978fe66e036b86d46b262260556fbd62b19cbb2f0d70325b92b8c40275e75afe4f \ No newline at end of file +104e7fb527770ac5d3fc636da7716e8fb05d55761253d30516c899f466e6b38ffd881611a3d0cdf65c6af058c32f6f6758c68782be7a170d21024bdae751862f \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 8296aca11..f176c3007 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,49 +1,85 @@ material group in nuclide mean std. dev. 0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. -0 1 1 total 0.076425 0.003691 material group in group out nuclide mean std. dev. -0 1 1 1 total 0.345503 0.021465 material group out nuclide mean std. dev. -0 1 1 total 1.0 0.055333 material group in nuclide mean std. dev. +0 1 1 total 0.076425 0.003691 material group in group out nuclide moment mean +0 1 1 1 total P0 0.384780 +1 1 1 1 total P1 0.039277 +2 1 1 1 total P2 0.017574 +3 1 1 1 total P3 0.012203 material group out nuclide mean std. dev. +0 1 1 total 1 0.055333 material group in nuclide mean std. dev. 0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. -0 2 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 2 1 1 total 0.241262 0.00841 material group out nuclide mean std. dev. -0 2 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 2 1 total 0 0 material group in group out nuclide moment mean +0 2 1 1 total P0 0.272369 +1 2 1 1 total P1 0.031107 +2 2 1 1 total P2 0.025999 +3 2 1 1 total P3 0.003219 material group out nuclide mean std. dev. +0 2 1 total 0 0 material group in nuclide mean std. dev. 0 3 1 total 0.400028 0.034667 material group in nuclide mean std. dev. -0 3 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 3 1 1 total 0.393462 0.033646 material group out nuclide mean std. dev. -0 3 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 3 1 total 0 0 material group in group out nuclide moment mean +0 3 1 1 total P0 0.794999 +1 3 1 1 total P1 0.401537 +2 3 1 1 total P2 0.143623 +3 3 1 1 total P3 0.001991 material group out nuclide mean std. dev. +0 3 1 total 0 0 material group in nuclide mean std. dev. 0 4 1 total 0.377402 0.072937 material group in nuclide mean std. dev. -0 4 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 4 1 1 total 0.371473 0.071226 material group out nuclide mean std. dev. -0 4 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 5 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 5 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 6 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 6 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 7 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 7 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 8 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 8 1 1 total 0.0 0.0 material group out nuclide mean std. dev. -0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 4 1 total 0 0 material group in group out nuclide moment mean +0 4 1 1 total P0 0.727311 +1 4 1 1 total P1 0.355839 +2 4 1 1 total P2 0.124483 +3 4 1 1 total P3 0.012168 material group out nuclide mean std. dev. +0 4 1 total 0 0 material group in nuclide mean std. dev. +0 5 1 total 0 0 material group in nuclide mean std. dev. +0 5 1 total 0 0 material group in group out nuclide moment mean +0 5 1 1 total P0 0 +1 5 1 1 total P1 0 +2 5 1 1 total P2 0 +3 5 1 1 total P3 0 material group out nuclide mean std. dev. +0 5 1 total 0 0 material group in nuclide mean std. dev. +0 6 1 total 0 0 material group in nuclide mean std. dev. +0 6 1 total 0 0 material group in group out nuclide moment mean +0 6 1 1 total P0 0 +1 6 1 1 total P1 0 +2 6 1 1 total P2 0 +3 6 1 1 total P3 0 material group out nuclide mean std. dev. +0 6 1 total 0 0 material group in nuclide mean std. dev. +0 7 1 total 0 0 material group in nuclide mean std. dev. +0 7 1 total 0 0 material group in group out nuclide moment mean +0 7 1 1 total P0 0 +1 7 1 1 total P1 0 +2 7 1 1 total P2 0 +3 7 1 1 total P3 0 material group out nuclide mean std. dev. +0 7 1 total 0 0 material group in nuclide mean std. dev. +0 8 1 total 0 0 material group in nuclide mean std. dev. +0 8 1 total 0 0 material group in group out nuclide moment mean +0 8 1 1 total P0 0 +1 8 1 1 total P1 0 +2 8 1 1 total P2 0 +3 8 1 1 total P3 0 material group out nuclide mean std. dev. +0 8 1 total 0 0 material group in nuclide mean std. dev. 0 9 1 total 0.600536 0.748875 material group in nuclide mean std. dev. -0 9 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 9 1 1 total 0.600536 0.748875 material group out nuclide mean std. dev. -0 9 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 9 1 total 0 0 material group in group out nuclide moment mean +0 9 1 1 total P0 0.720380 +1 9 1 1 total P1 0.119844 +2 9 1 1 total P2 0.038522 +3 9 1 1 total P3 0.056023 material group out nuclide mean std. dev. +0 9 1 total 0 0 material group in nuclide mean std. dev. 0 10 1 total 0.235515 0.613974 material group in nuclide mean std. dev. -0 10 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 10 1 1 total 0.235515 0.613974 material group out nuclide mean std. dev. -0 10 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 10 1 total 0 0 material group in group out nuclide moment mean +0 10 1 1 total P0 0.501009 +1 10 1 1 total P1 0.265494 +2 10 1 1 total P2 0.141979 +3 10 1 1 total P3 0.074258 material group out nuclide mean std. dev. +0 10 1 total 0 0 material group in nuclide mean std. dev. 0 11 1 total 0.510145 0.741941 material group in nuclide mean std. dev. -0 11 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 11 1 1 total 0.491857 0.715554 material group out nuclide mean std. dev. -0 11 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 11 1 total 0 0 material group in group out nuclide moment mean +0 11 1 1 total P0 0.804661 +1 11 1 1 total P1 0.312803 +2 11 1 1 total P2 0.168113 +3 11 1 1 total P3 0.003808 material group out nuclide mean std. dev. +0 11 1 total 0 0 material group in nuclide mean std. dev. 0 12 1 total 0.73836 0.825631 material group in nuclide mean std. dev. -0 12 1 total 0.0 0.0 material group in group out nuclide mean std. dev. -0 12 1 1 total 0.723265 0.808231 material group out nuclide mean std. dev. -0 12 1 total 0.0 0.0 \ No newline at end of file +0 12 1 total 0 0 material group in group out nuclide moment mean +0 12 1 1 total P0 0.943429 +1 12 1 1 total P1 0.220164 +2 12 1 1 total P2 0.052884 +3 12 1 1 total P3 0.039939 material group out nuclide mean std. dev. +0 12 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index 3ca98904f..561232b22 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -28,6 +28,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi'] self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' self.mgxs_lib.build_library() diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 5ffea7f8f..21927c800 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -c46381a2d86bd849ca20dc64022ffcf836ba0f236f392bba6335c42559df61d14d09a616bc3a9590d954a5bf099610eb071982296b75b10d1c168cc3e343d383 \ No newline at end of file +018bbbc2099f7b94180b391e46e42fc9a82498c60b3f8f7f4c91480ea373427932d287fe571d53b2397f329e71485e7155d7644f0f995bbcb458ba3e872ab043 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 0d5c7c7b4..318ec408a 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,8 @@ avg(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.718919 0.520644 avg(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.0 0.0 avg(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.695166 0.510606 avg(distribcell) group out nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 \ No newline at end of file +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 avg(distribcell) group in group out nuclide moment mean +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 avg(distribcell) group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index d488e8ec9..32f5ea1bd 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -29,6 +29,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi'] self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'distribcell' material_cells = self.mgxs_lib.openmc_geometry.get_all_material_cells() self.mgxs_lib.domains = [material_cells[-1]] diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index 064981fa9..3643c9a2e 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -ee40a2b826dea8323249c7261502f8339c78a5dc236e019842cc5244c048d5978fe66e036b86d46b262260556fbd62b19cbb2f0d70325b92b8c40275e75afe4f \ No newline at end of file +104e7fb527770ac5d3fc636da7716e8fb05d55761253d30516c899f466e6b38ffd881611a3d0cdf65c6af058c32f6f6758c68782be7a170d21024bdae751862f \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 93aceba7d..3cae57747 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -5,10 +5,16 @@ domain=1 type=nu-fission [ 0.02178897 0.71407658] [ 0.00118187 0.04055185] domain=1 type=nu-scatter matrix -[[ 0.33724504 0.00155945] - [ 0. 0.42205129]] -[[ 0.02301463 0.00051015] - [ 0. 0.02161702]] +[[[ 3.81546297e-01 4.43012537e-02 2.06462886e-02 1.36952959e-02] + [ 1.55945353e-03 -5.97269486e-04 -2.38789528e-04 1.75508083e-04]] + + [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [ 4.03915981e-01 -1.13103276e-02 -1.48065932e-02 -6.85505346e-03]]] +[[[ 0.02403322 0.00472203 0.00253903 0.00222437] + [ 0.00051015 0.00022485 0.00022157 0.00020939]] + + [[ 0. 0. 0. 0. ] + [ 0.01896646 0.00783919 0.00862908 0.00904704]]] domain=1 type=chi [ 1. 0.] [ 0.05533329 0. ] @@ -19,10 +25,16 @@ domain=2 type=nu-fission [ 0. 0.] [ 0. 0.] domain=2 type=nu-scatter matrix -[[ 0.23725441 0. ] - [ 0. 0.28593027]] -[[ 0.00818357 0. ] - [ 0. 0.04879593]] +[[[ 0.27311543 0.03586102 0.02970389 0.00224892] + [ 0. 0. 0. 0. ]] + + [[ 0. 0. 0. 0. ] + [ 0.26405068 -0.02187959 -0.01529469 0.01403395]]] +[[[ 0.00625287 0.00587756 0.00664018 0.00337568] + [ 0. 0. 0. 0. ]] + + [[ 0. 0. 0. 0. ] + [ 0.04539742 0.01221814 0.01027609 0.01431818]]] domain=2 type=chi [ 0. 0.] [ 0. 0.] @@ -33,10 +45,16 @@ domain=3 type=nu-fission [ 0. 0.] [ 0. 0.] domain=3 type=nu-scatter matrix -[[ 0.25993686 0.02618721] - [ 0. 1.35952132]] -[[ 0.02611466 0.00166461] - [ 0. 0.2585046 ]] +[[[ 0.64334557 0.38340871 0.15218526 0.00303724] + [ 0.02618721 0.00736219 -0.00273849 -0.00271989]] + + [[ 0. 0. 0. 0. ] + [ 1.92421362 0.4984312 0.09120485 0.01705441]]] +[[[ 0.02837604 0.01644677 0.00957372 0.00464802] + [ 0.00166461 0.00093414 0.00075617 0.00055807]] + + [[ 0. 0. 0. 0. ] + [ 0.28406198 0.06342067 0.01372628 0.01391602]]] domain=3 type=chi [ 0. 0.] [ 0. 0.] @@ -47,10 +65,16 @@ domain=4 type=nu-fission [ 0. 0.] [ 0. 0.] domain=4 type=nu-scatter matrix -[[ 0.2179296 0.023662 ] - [ 0. 1.21507398]] -[[ 0.0585649 0.00308328] - [ 0. 0.3810251 ]] +[[[ 0.54394096 0.32601136 0.13113269 0.01210477] + [ 0.023662 0.00752551 -0.00272975 -0.0031405 ]] + + [[ 0. 0. 0. 0. ] + [ 1.76464845 0.50069481 0.09902596 0.03297543]]] +[[[ 0.06542705 0.03860196 0.0174751 0.00607268] + [ 0.00308328 0.00130111 0.00084112 0.00057761]] + + [[ 0. 0. 0. 0. ] + [ 0.41620952 0.12217802 0.03871874 0.02510259]]] domain=4 type=chi [ 0. 0.] [ 0. 0.] @@ -61,10 +85,16 @@ domain=5 type=nu-fission [ 0. 0.] [ 0. 0.] domain=5 type=nu-scatter matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] + + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] + + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]] domain=5 type=chi [ 0. 0.] [ 0. 0.] @@ -75,10 +105,16 @@ domain=6 type=nu-fission [ 0. 0.] [ 0. 0.] domain=6 type=nu-scatter matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] + + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] + + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]] domain=6 type=chi [ 0. 0.] [ 0. 0.] @@ -89,10 +125,16 @@ domain=7 type=nu-fission [ 0. 0.] [ 0. 0.] domain=7 type=nu-scatter matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] + + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] + + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]] domain=7 type=chi [ 0. 0.] [ 0. 0.] @@ -103,10 +145,16 @@ domain=8 type=nu-fission [ 0. 0.] [ 0. 0.] domain=8 type=nu-scatter matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] + + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] + + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]] domain=8 type=chi [ 0. 0.] [ 0. 0.] @@ -117,10 +165,16 @@ domain=9 type=nu-fission [ 0. 0.] [ 0. 0.] domain=9 type=nu-scatter matrix -[[ 0.60053598 0. ] - [ 0. 0. ]] -[[ 0.74887543 0. ] - [ 0. 0. ]] +[[[ 0.72037987 0.11984389 0.03852204 0.05602285] + [ 0. 0. 0. 0. ]] + + [[ 0. 0. 0. 0. ] + [ 0. 0. 0. 0. ]]] +[[[ 0.77101455 0.18469083 0.06448453 0.05059534] + [ 0. 0. 0. 0. ]] + + [[ 0. 0. 0. 0. ] + [ 0. 0. 0. 0. ]]] domain=9 type=chi [ 0. 0.] [ 0. 0.] @@ -131,10 +185,16 @@ domain=10 type=nu-fission [ 0. 0.] [ 0. 0.] domain=10 type=nu-scatter matrix -[[ 0.23551495 0. ] - [ 0. 0. ]] -[[ 0.61397415 0. ] - [ 0. 0. ]] +[[[ 0.50100891 0.26549396 0.14197875 0.07425836] + [ 0. 0. 0. 0. ]] + + [[ 0. 0. 0. 0. ] + [ 0. 0. 0. 0. ]]] +[[[ 0.70853359 0.37546516 0.20078827 0.10501718] + [ 0. 0. 0. 0. ]] + + [[ 0. 0. 0. 0. ] + [ 0. 0. 0. 0. ]]] domain=10 type=chi [ 0. 0.] [ 0. 0.] @@ -145,10 +205,16 @@ domain=11 type=nu-fission [ 0. 0.] [ 0. 0.] domain=11 type=nu-scatter matrix -[[ 0.15444875 0.03187517] - [ 0. 0.90308451]] -[[ 0.59768579 0.0450783 ] - [ 0. 1.53214394]] +[[[ 0.47812753 0.32367878 0.14337507 0.05400336] + [ 0.03187517 0.00858456 -0.01246962 -0.01132019]] + + [[ 0. 0. 0. 0. ] + [ 1.20124973 0.28661101 0.21819147 -0.04851424]]] +[[[ 0.67617444 0.45775092 0.20276296 0.07637229] + [ 0.0450783 0.0121404 0.01763471 0.01600917]] + + [[ 0. 0. 0. 0. ] + [ 1.69882367 0.40532917 0.30856933 0.0686095 ]]] domain=11 type=chi [ 0. 0.] [ 0. 0.] @@ -159,10 +225,16 @@ domain=12 type=nu-fission [ 0. 0.] [ 0. 0.] domain=12 type=nu-scatter matrix -[[ 0.18605249 0.02723959] - [ 0. 1.35711799]] -[[ 0.25763254 0.02955488] - [ 0. 2.08984614]] +[[[ 0.40859392 0.22254143 0.0909719 0.03100368] + [ 0.02723959 -0.01008785 -0.00694631 0.00969231]] + + [[ 0. 0. 0. 0. ] + [ 1.57432766 0.22974802 0.01417839 0.03899727]]] +[[[ 0.27812309 0.14577636 0.06962553 0.03598053] + [ 0.02955488 0.01094529 0.00753673 0.01051613]] + + [[ 0. 0. 0. 0. ] + [ 2.22643553 0.32491277 0.02005128 0.05515046]]] domain=12 type=chi [ 0. 0.] [ 0. 0.] diff --git a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py index 91bb036e3..2d7ed2ef3 100644 --- a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py +++ b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py @@ -29,6 +29,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi'] self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' self.mgxs_lib.build_library() diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index 064981fa9..3643c9a2e 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -ee40a2b826dea8323249c7261502f8339c78a5dc236e019842cc5244c048d5978fe66e036b86d46b262260556fbd62b19cbb2f0d70325b92b8c40275e75afe4f \ No newline at end of file +104e7fb527770ac5d3fc636da7716e8fb05d55761253d30516c899f466e6b38ffd881611a3d0cdf65c6af058c32f6f6758c68782be7a170d21024bdae751862f \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 7361c60be..9d6e35871 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -2,120 +2,264 @@ 1 1 1 total 0.372745 0.024269 0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. 1 1 1 total 0.021789 0.001182 -0 1 2 total 0.714077 0.040552 material group in group out nuclide mean std. dev. -3 1 1 1 total 0.337245 0.023015 -2 1 1 2 total 0.001559 0.000510 -1 1 2 1 total 0.000000 0.000000 -0 1 2 2 total 0.422051 0.021617 material group out nuclide mean std. dev. -1 1 1 total 1.0 0.055333 -0 1 2 total 0.0 0.000000 material group in nuclide mean std. dev. +0 1 2 total 0.714077 0.040552 material group in group out nuclide moment mean +12 1 1 1 total P0 0.381546 +13 1 1 1 total P1 0.044301 +14 1 1 1 total P2 0.020646 +15 1 1 1 total P3 0.013695 +8 1 1 2 total P0 0.001559 +9 1 1 2 total P1 -0.000597 +10 1 1 2 total P2 -0.000239 +11 1 1 2 total P3 0.000176 +4 1 2 1 total P0 0.000000 +5 1 2 1 total P1 0.000000 +6 1 2 1 total P2 0.000000 +7 1 2 1 total P3 0.000000 +0 1 2 2 total P0 0.403916 +1 1 2 2 total P1 -0.011310 +2 1 2 2 total P2 -0.014807 +3 1 2 2 total P3 -0.006855 material group out nuclide mean std. dev. +1 1 1 total 1 0.055333 +0 1 2 total 0 0.000000 material group in nuclide mean std. dev. 1 2 1 total 0.237254 0.008184 0 2 2 total 0.285930 0.048796 material group in nuclide mean std. dev. -1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 2 1 1 total 0.237254 0.008184 -2 2 1 2 total 0.000000 0.000000 -1 2 2 1 total 0.000000 0.000000 -0 2 2 2 total 0.285930 0.048796 material group out nuclide mean std. dev. -1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 2 1 total 0 0 +0 2 2 total 0 0 material group in group out nuclide moment mean +12 2 1 1 total P0 0.273115 +13 2 1 1 total P1 0.035861 +14 2 1 1 total P2 0.029704 +15 2 1 1 total P3 0.002249 +8 2 1 2 total P0 0.000000 +9 2 1 2 total P1 0.000000 +10 2 1 2 total P2 0.000000 +11 2 1 2 total P3 0.000000 +4 2 2 1 total P0 0.000000 +5 2 2 1 total P1 0.000000 +6 2 2 1 total P2 0.000000 +7 2 2 1 total P3 0.000000 +0 2 2 2 total P0 0.264051 +1 2 2 2 total P1 -0.021880 +2 2 2 2 total P2 -0.015295 +3 2 2 2 total P3 0.014034 material group out nuclide mean std. dev. +1 2 1 total 0 0 +0 2 2 total 0 0 material group in nuclide mean std. dev. 1 3 1 total 0.286906 0.027401 0 3 2 total 1.418151 0.265308 material group in nuclide mean std. dev. -1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 3 1 1 total 0.259937 0.026115 -2 3 1 2 total 0.026187 0.001665 -1 3 2 1 total 0.000000 0.000000 -0 3 2 2 total 1.359521 0.258505 material group out nuclide mean std. dev. -1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 3 1 total 0 0 +0 3 2 total 0 0 material group in group out nuclide moment mean +12 3 1 1 total P0 0.643346 +13 3 1 1 total P1 0.383409 +14 3 1 1 total P2 0.152185 +15 3 1 1 total P3 0.003037 +8 3 1 2 total P0 0.026187 +9 3 1 2 total P1 0.007362 +10 3 1 2 total P2 -0.002738 +11 3 1 2 total P3 -0.002720 +4 3 2 1 total P0 0.000000 +5 3 2 1 total P1 0.000000 +6 3 2 1 total P2 0.000000 +7 3 2 1 total P3 0.000000 +0 3 2 2 total P0 1.924214 +1 3 2 2 total P1 0.498431 +2 3 2 2 total P2 0.091205 +3 3 2 2 total P3 0.017054 material group out nuclide mean std. dev. +1 3 1 total 0 0 +0 3 2 total 0 0 material group in nuclide mean std. dev. 1 4 1 total 0.242447 0.061031 0 4 2 total 1.253959 0.388363 material group in nuclide mean std. dev. -1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 4 1 1 total 0.217930 0.058565 -2 4 1 2 total 0.023662 0.003083 -1 4 2 1 total 0.000000 0.000000 -0 4 2 2 total 1.215074 0.381025 material group out nuclide mean std. dev. -1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 5 1 1 total 0.0 0.0 -2 5 1 2 total 0.0 0.0 -1 5 2 1 total 0.0 0.0 -0 5 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 6 1 1 total 0.0 0.0 -2 6 1 2 total 0.0 0.0 -1 6 2 1 total 0.0 0.0 -0 6 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 7 1 1 total 0.0 0.0 -2 7 1 2 total 0.0 0.0 -1 7 2 1 total 0.0 0.0 -0 7 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 8 1 1 total 0.0 0.0 -2 8 1 2 total 0.0 0.0 -1 8 2 1 total 0.0 0.0 -0 8 2 2 total 0.0 0.0 material group out nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 4 1 total 0 0 +0 4 2 total 0 0 material group in group out nuclide moment mean +12 4 1 1 total P0 0.543941 +13 4 1 1 total P1 0.326011 +14 4 1 1 total P2 0.131133 +15 4 1 1 total P3 0.012105 +8 4 1 2 total P0 0.023662 +9 4 1 2 total P1 0.007526 +10 4 1 2 total P2 -0.002730 +11 4 1 2 total P3 -0.003140 +4 4 2 1 total P0 0.000000 +5 4 2 1 total P1 0.000000 +6 4 2 1 total P2 0.000000 +7 4 2 1 total P3 0.000000 +0 4 2 2 total P0 1.764648 +1 4 2 2 total P1 0.500695 +2 4 2 2 total P2 0.099026 +3 4 2 2 total P3 0.032975 material group out nuclide mean std. dev. +1 4 1 total 0 0 +0 4 2 total 0 0 material group in nuclide mean std. dev. +1 5 1 total 0 0 +0 5 2 total 0 0 material group in nuclide mean std. dev. +1 5 1 total 0 0 +0 5 2 total 0 0 material group in group out nuclide moment mean +12 5 1 1 total P0 0 +13 5 1 1 total P1 0 +14 5 1 1 total P2 0 +15 5 1 1 total P3 0 +8 5 1 2 total P0 0 +9 5 1 2 total P1 0 +10 5 1 2 total P2 0 +11 5 1 2 total P3 0 +4 5 2 1 total P0 0 +5 5 2 1 total P1 0 +6 5 2 1 total P2 0 +7 5 2 1 total P3 0 +0 5 2 2 total P0 0 +1 5 2 2 total P1 0 +2 5 2 2 total P2 0 +3 5 2 2 total P3 0 material group out nuclide mean std. dev. +1 5 1 total 0 0 +0 5 2 total 0 0 material group in nuclide mean std. dev. +1 6 1 total 0 0 +0 6 2 total 0 0 material group in nuclide mean std. dev. +1 6 1 total 0 0 +0 6 2 total 0 0 material group in group out nuclide moment mean +12 6 1 1 total P0 0 +13 6 1 1 total P1 0 +14 6 1 1 total P2 0 +15 6 1 1 total P3 0 +8 6 1 2 total P0 0 +9 6 1 2 total P1 0 +10 6 1 2 total P2 0 +11 6 1 2 total P3 0 +4 6 2 1 total P0 0 +5 6 2 1 total P1 0 +6 6 2 1 total P2 0 +7 6 2 1 total P3 0 +0 6 2 2 total P0 0 +1 6 2 2 total P1 0 +2 6 2 2 total P2 0 +3 6 2 2 total P3 0 material group out nuclide mean std. dev. +1 6 1 total 0 0 +0 6 2 total 0 0 material group in nuclide mean std. dev. +1 7 1 total 0 0 +0 7 2 total 0 0 material group in nuclide mean std. dev. +1 7 1 total 0 0 +0 7 2 total 0 0 material group in group out nuclide moment mean +12 7 1 1 total P0 0 +13 7 1 1 total P1 0 +14 7 1 1 total P2 0 +15 7 1 1 total P3 0 +8 7 1 2 total P0 0 +9 7 1 2 total P1 0 +10 7 1 2 total P2 0 +11 7 1 2 total P3 0 +4 7 2 1 total P0 0 +5 7 2 1 total P1 0 +6 7 2 1 total P2 0 +7 7 2 1 total P3 0 +0 7 2 2 total P0 0 +1 7 2 2 total P1 0 +2 7 2 2 total P2 0 +3 7 2 2 total P3 0 material group out nuclide mean std. dev. +1 7 1 total 0 0 +0 7 2 total 0 0 material group in nuclide mean std. dev. +1 8 1 total 0 0 +0 8 2 total 0 0 material group in nuclide mean std. dev. +1 8 1 total 0 0 +0 8 2 total 0 0 material group in group out nuclide moment mean +12 8 1 1 total P0 0 +13 8 1 1 total P1 0 +14 8 1 1 total P2 0 +15 8 1 1 total P3 0 +8 8 1 2 total P0 0 +9 8 1 2 total P1 0 +10 8 1 2 total P2 0 +11 8 1 2 total P3 0 +4 8 2 1 total P0 0 +5 8 2 1 total P1 0 +6 8 2 1 total P2 0 +7 8 2 1 total P3 0 +0 8 2 2 total P0 0 +1 8 2 2 total P1 0 +2 8 2 2 total P2 0 +3 8 2 2 total P3 0 material group out nuclide mean std. dev. +1 8 1 total 0 0 +0 8 2 total 0 0 material group in nuclide mean std. dev. 1 9 1 total 0.600536 0.748875 0 9 2 total 0.000000 0.000000 material group in nuclide mean std. dev. -1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 9 1 1 total 0.600536 0.748875 -2 9 1 2 total 0.000000 0.000000 -1 9 2 1 total 0.000000 0.000000 -0 9 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. -1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 9 1 total 0 0 +0 9 2 total 0 0 material group in group out nuclide moment mean +12 9 1 1 total P0 0.720380 +13 9 1 1 total P1 0.119844 +14 9 1 1 total P2 0.038522 +15 9 1 1 total P3 0.056023 +8 9 1 2 total P0 0.000000 +9 9 1 2 total P1 0.000000 +10 9 1 2 total P2 0.000000 +11 9 1 2 total P3 0.000000 +4 9 2 1 total P0 0.000000 +5 9 2 1 total P1 0.000000 +6 9 2 1 total P2 0.000000 +7 9 2 1 total P3 0.000000 +0 9 2 2 total P0 0.000000 +1 9 2 2 total P1 0.000000 +2 9 2 2 total P2 0.000000 +3 9 2 2 total P3 0.000000 material group out nuclide mean std. dev. +1 9 1 total 0 0 +0 9 2 total 0 0 material group in nuclide mean std. dev. 1 10 1 total 0.235515 0.613974 0 10 2 total 0.000000 0.000000 material group in nuclide mean std. dev. -1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 10 1 1 total 0.235515 0.613974 -2 10 1 2 total 0.000000 0.000000 -1 10 2 1 total 0.000000 0.000000 -0 10 2 2 total 0.000000 0.000000 material group out nuclide mean std. dev. -1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 10 1 total 0 0 +0 10 2 total 0 0 material group in group out nuclide moment mean +12 10 1 1 total P0 0.501009 +13 10 1 1 total P1 0.265494 +14 10 1 1 total P2 0.141979 +15 10 1 1 total P3 0.074258 +8 10 1 2 total P0 0.000000 +9 10 1 2 total P1 0.000000 +10 10 1 2 total P2 0.000000 +11 10 1 2 total P3 0.000000 +4 10 2 1 total P0 0.000000 +5 10 2 1 total P1 0.000000 +6 10 2 1 total P2 0.000000 +7 10 2 1 total P3 0.000000 +0 10 2 2 total P0 0.000000 +1 10 2 2 total P1 0.000000 +2 10 2 2 total P2 0.000000 +3 10 2 2 total P3 0.000000 material group out nuclide mean std. dev. +1 10 1 total 0 0 +0 10 2 total 0 0 material group in nuclide mean std. dev. 1 11 1 total 0.186324 0.632129 0 11 2 total 0.945986 1.591133 material group in nuclide mean std. dev. -1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 11 1 1 total 0.154449 0.597686 -2 11 1 2 total 0.031875 0.045078 -1 11 2 1 total 0.000000 0.000000 -0 11 2 2 total 0.903085 1.532144 material group out nuclide mean std. dev. -1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 11 1 total 0 0 +0 11 2 total 0 0 material group in group out nuclide moment mean +12 11 1 1 total P0 0.478128 +13 11 1 1 total P1 0.323679 +14 11 1 1 total P2 0.143375 +15 11 1 1 total P3 0.054003 +8 11 1 2 total P0 0.031875 +9 11 1 2 total P1 0.008585 +10 11 1 2 total P2 -0.012470 +11 11 1 2 total P3 -0.011320 +4 11 2 1 total P0 0.000000 +5 11 2 1 total P1 0.000000 +6 11 2 1 total P2 0.000000 +7 11 2 1 total P3 0.000000 +0 11 2 2 total P0 1.201250 +1 11 2 2 total P1 0.286611 +2 11 2 2 total P2 0.218191 +3 11 2 2 total P3 -0.048514 material group out nuclide mean std. dev. +1 11 1 total 0 0 +0 11 2 total 0 0 material group in nuclide mean std. dev. 1 12 1 total 0.213292 0.271444 0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 material group in group out nuclide mean std. dev. -3 12 1 1 total 0.186052 0.257633 -2 12 1 2 total 0.027240 0.029555 -1 12 2 1 total 0.000000 0.000000 -0 12 2 2 total 1.357118 2.089846 material group out nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 \ No newline at end of file +1 12 1 total 0 0 +0 12 2 total 0 0 material group in group out nuclide moment mean +12 12 1 1 total P0 0.408594 +13 12 1 1 total P1 0.222541 +14 12 1 1 total P2 0.090972 +15 12 1 1 total P3 0.031004 +8 12 1 2 total P0 0.027240 +9 12 1 2 total P1 -0.010088 +10 12 1 2 total P2 -0.006946 +11 12 1 2 total P3 0.009692 +4 12 2 1 total P0 0.000000 +5 12 2 1 total P1 0.000000 +6 12 2 1 total P2 0.000000 +7 12 2 1 total P3 0.000000 +0 12 2 2 total P0 1.574328 +1 12 2 2 total P1 0.229748 +2 12 2 2 total P2 0.014178 +3 12 2 2 total P3 0.038997 material group out nuclide mean std. dev. +1 12 1 total 0 0 +0 12 2 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 15f90cb87..6ee8813d0 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -28,6 +28,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi'] self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' self.mgxs_lib.build_library() diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index d2c11978a..9e25fe96a 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -f4abbd7867b0f0d2d9d93ed089c95904541f970522e1ef3a843373b60094ef4571a64a7b5f68efe9e51fd49754bc9e20a3bcc85c0bde3a8224608f8b97c01b85 \ No newline at end of file +791a2bd647b8bae03aafc39e29ff1ce1ffc44063b0d757ccba4e1eda6eb73b8a275020f4f5774b17dede49fbf15549787279c8b2fc45caba0097155b32e56fa8 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index b0d62ebd0..20d2d8d5a 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -134,211 +134,619 @@ 30 1 2 Sm-152 0.000000e+00 0.000000e+00 31 1 2 Eu-153 0.000000e+00 0.000000e+00 32 1 2 Gd-155 0.000000e+00 0.000000e+00 -33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide mean std. dev. -102 1 1 1 U-234 0.000000 0.000000 -103 1 1 1 U-235 0.003226 0.001139 -104 1 1 1 U-236 0.001697 0.000923 -105 1 1 1 U-238 0.194468 0.013279 -106 1 1 1 Np-237 0.000000 0.000000 -107 1 1 1 Pu-238 0.000000 0.000000 -108 1 1 1 Pu-239 0.001005 0.000477 -109 1 1 1 Pu-240 0.001307 0.000295 -110 1 1 1 Pu-241 0.000344 0.000244 -111 1 1 1 Pu-242 0.000000 0.000000 -112 1 1 1 Am-241 0.000000 0.000000 -113 1 1 1 Am-242m 0.000000 0.000000 -114 1 1 1 Am-243 0.000000 0.000000 -115 1 1 1 Cm-242 0.000000 0.000000 -116 1 1 1 Cm-243 0.000000 0.000000 -117 1 1 1 Cm-244 0.000000 0.000000 -118 1 1 1 Cm-245 0.000000 0.000000 -119 1 1 1 Mo-95 0.000000 0.000000 -120 1 1 1 Tc-99 0.000000 0.000000 -121 1 1 1 Ru-101 0.000238 0.000254 -122 1 1 1 Ru-103 0.000002 0.000243 -123 1 1 1 Ag-109 0.000000 0.000000 -124 1 1 1 Xe-135 0.000000 0.000000 -125 1 1 1 Cs-133 0.000000 0.000000 -126 1 1 1 Nd-143 0.000447 0.000292 -127 1 1 1 Nd-145 0.000564 0.000294 -128 1 1 1 Sm-147 0.000000 0.000000 -129 1 1 1 Sm-149 0.000000 0.000000 -130 1 1 1 Sm-150 0.000299 0.000238 -131 1 1 1 Sm-151 0.000000 0.000000 -132 1 1 1 Sm-152 0.000492 0.000352 -133 1 1 1 Eu-153 0.000000 0.000000 -134 1 1 1 Gd-155 0.000000 0.000000 -135 1 1 1 O-16 0.133156 0.009821 -68 1 1 2 U-234 0.000000 0.000000 -69 1 1 2 U-235 0.000000 0.000000 -70 1 1 2 U-236 0.000000 0.000000 -71 1 1 2 U-238 0.000173 0.000173 -72 1 1 2 Np-237 0.000000 0.000000 -73 1 1 2 Pu-238 0.000000 0.000000 -74 1 1 2 Pu-239 0.000000 0.000000 -75 1 1 2 Pu-240 0.000000 0.000000 -76 1 1 2 Pu-241 0.000000 0.000000 -77 1 1 2 Pu-242 0.000000 0.000000 -78 1 1 2 Am-241 0.000000 0.000000 -79 1 1 2 Am-242m 0.000000 0.000000 -80 1 1 2 Am-243 0.000000 0.000000 -81 1 1 2 Cm-242 0.000000 0.000000 -82 1 1 2 Cm-243 0.000000 0.000000 -83 1 1 2 Cm-244 0.000000 0.000000 -84 1 1 2 Cm-245 0.000000 0.000000 -85 1 1 2 Mo-95 0.000000 0.000000 -86 1 1 2 Tc-99 0.000000 0.000000 -87 1 1 2 Ru-101 0.000000 0.000000 -88 1 1 2 Ru-103 0.000000 0.000000 -89 1 1 2 Ag-109 0.000000 0.000000 -90 1 1 2 Xe-135 0.000000 0.000000 -91 1 1 2 Cs-133 0.000000 0.000000 -92 1 1 2 Nd-143 0.000000 0.000000 -93 1 1 2 Nd-145 0.000000 0.000000 -94 1 1 2 Sm-147 0.000000 0.000000 -95 1 1 2 Sm-149 0.000000 0.000000 -96 1 1 2 Sm-150 0.000000 0.000000 -97 1 1 2 Sm-151 0.000000 0.000000 -98 1 1 2 Sm-152 0.000000 0.000000 -99 1 1 2 Eu-153 0.000000 0.000000 -100 1 1 2 Gd-155 0.000000 0.000000 -101 1 1 2 O-16 0.001386 0.000446 -34 1 2 1 U-234 0.000000 0.000000 -35 1 2 1 U-235 0.000000 0.000000 -36 1 2 1 U-236 0.000000 0.000000 -37 1 2 1 U-238 0.000000 0.000000 -38 1 2 1 Np-237 0.000000 0.000000 -39 1 2 1 Pu-238 0.000000 0.000000 -40 1 2 1 Pu-239 0.000000 0.000000 -41 1 2 1 Pu-240 0.000000 0.000000 -42 1 2 1 Pu-241 0.000000 0.000000 -43 1 2 1 Pu-242 0.000000 0.000000 -44 1 2 1 Am-241 0.000000 0.000000 -45 1 2 1 Am-242m 0.000000 0.000000 -46 1 2 1 Am-243 0.000000 0.000000 -47 1 2 1 Cm-242 0.000000 0.000000 -48 1 2 1 Cm-243 0.000000 0.000000 -49 1 2 1 Cm-244 0.000000 0.000000 -50 1 2 1 Cm-245 0.000000 0.000000 -51 1 2 1 Mo-95 0.000000 0.000000 -52 1 2 1 Tc-99 0.000000 0.000000 -53 1 2 1 Ru-101 0.000000 0.000000 -54 1 2 1 Ru-103 0.000000 0.000000 -55 1 2 1 Ag-109 0.000000 0.000000 -56 1 2 1 Xe-135 0.000000 0.000000 -57 1 2 1 Cs-133 0.000000 0.000000 -58 1 2 1 Nd-143 0.000000 0.000000 -59 1 2 1 Nd-145 0.000000 0.000000 -60 1 2 1 Sm-147 0.000000 0.000000 -61 1 2 1 Sm-149 0.000000 0.000000 -62 1 2 1 Sm-150 0.000000 0.000000 -63 1 2 1 Sm-151 0.000000 0.000000 -64 1 2 1 Sm-152 0.000000 0.000000 -65 1 2 1 Eu-153 0.000000 0.000000 -66 1 2 1 Gd-155 0.000000 0.000000 -67 1 2 1 O-16 0.000000 0.000000 -0 1 2 2 U-234 0.000000 0.000000 -1 1 2 2 U-235 0.003889 0.003962 -2 1 2 2 U-236 0.001501 0.002037 -3 1 2 2 U-238 0.219715 0.025984 -4 1 2 2 Np-237 0.000000 0.000000 -5 1 2 2 Pu-238 0.000000 0.000000 -6 1 2 2 Pu-239 0.000000 0.000000 -7 1 2 2 Pu-240 0.000000 0.000000 -8 1 2 2 Pu-241 0.000000 0.000000 -9 1 2 2 Pu-242 0.000000 0.000000 -10 1 2 2 Am-241 0.000000 0.000000 -11 1 2 2 Am-242m 0.000000 0.000000 -12 1 2 2 Am-243 0.000000 0.000000 -13 1 2 2 Cm-242 0.000000 0.000000 -14 1 2 2 Cm-243 0.000000 0.000000 -15 1 2 2 Cm-244 0.000000 0.000000 -16 1 2 2 Cm-245 0.000000 0.000000 -17 1 2 2 Mo-95 0.000000 0.000000 -18 1 2 2 Tc-99 0.000000 0.000000 -19 1 2 2 Ru-101 0.000000 0.000000 -20 1 2 2 Ru-103 0.000000 0.000000 -21 1 2 2 Ag-109 0.000000 0.000000 -22 1 2 2 Xe-135 0.000000 0.000000 -23 1 2 2 Cs-133 0.000000 0.000000 -24 1 2 2 Nd-143 0.000000 0.000000 -25 1 2 2 Nd-145 0.000000 0.000000 -26 1 2 2 Sm-147 0.000000 0.000000 -27 1 2 2 Sm-149 0.000000 0.000000 -28 1 2 2 Sm-150 0.000000 0.000000 -29 1 2 2 Sm-151 0.000000 0.000000 -30 1 2 2 Sm-152 0.000000 0.000000 -31 1 2 2 Eu-153 0.000000 0.000000 -32 1 2 2 Gd-155 0.000000 0.000000 -33 1 2 2 O-16 0.196946 0.014729 material group out nuclide mean std. dev. -34 1 1 U-234 0.0 0.000000 -35 1 1 U-235 1.0 0.066362 -36 1 1 U-236 0.0 0.000000 -37 1 1 U-238 1.0 0.093082 -38 1 1 Np-237 0.0 0.000000 -39 1 1 Pu-238 0.0 0.000000 -40 1 1 Pu-239 1.0 0.104567 -41 1 1 Pu-240 0.0 0.000000 -42 1 1 Pu-241 1.0 0.263696 -43 1 1 Pu-242 0.0 0.000000 -44 1 1 Am-241 0.0 0.000000 -45 1 1 Am-242m 0.0 0.000000 -46 1 1 Am-243 0.0 0.000000 -47 1 1 Cm-242 0.0 0.000000 -48 1 1 Cm-243 0.0 0.000000 -49 1 1 Cm-244 0.0 0.000000 -50 1 1 Cm-245 0.0 0.000000 -51 1 1 Mo-95 0.0 0.000000 -52 1 1 Tc-99 0.0 0.000000 -53 1 1 Ru-101 0.0 0.000000 -54 1 1 Ru-103 0.0 0.000000 -55 1 1 Ag-109 0.0 0.000000 -56 1 1 Xe-135 0.0 0.000000 -57 1 1 Cs-133 0.0 0.000000 -58 1 1 Nd-143 0.0 0.000000 -59 1 1 Nd-145 0.0 0.000000 -60 1 1 Sm-147 0.0 0.000000 -61 1 1 Sm-149 0.0 0.000000 -62 1 1 Sm-150 0.0 0.000000 -63 1 1 Sm-151 0.0 0.000000 -64 1 1 Sm-152 0.0 0.000000 -65 1 1 Eu-153 0.0 0.000000 -66 1 1 Gd-155 0.0 0.000000 -67 1 1 O-16 0.0 0.000000 -0 1 2 U-234 0.0 0.000000 -1 1 2 U-235 0.0 0.000000 -2 1 2 U-236 0.0 0.000000 -3 1 2 U-238 0.0 0.000000 -4 1 2 Np-237 0.0 0.000000 -5 1 2 Pu-238 0.0 0.000000 -6 1 2 Pu-239 0.0 0.000000 -7 1 2 Pu-240 0.0 0.000000 -8 1 2 Pu-241 0.0 0.000000 -9 1 2 Pu-242 0.0 0.000000 -10 1 2 Am-241 0.0 0.000000 -11 1 2 Am-242m 0.0 0.000000 -12 1 2 Am-243 0.0 0.000000 -13 1 2 Cm-242 0.0 0.000000 -14 1 2 Cm-243 0.0 0.000000 -15 1 2 Cm-244 0.0 0.000000 -16 1 2 Cm-245 0.0 0.000000 -17 1 2 Mo-95 0.0 0.000000 -18 1 2 Tc-99 0.0 0.000000 -19 1 2 Ru-101 0.0 0.000000 -20 1 2 Ru-103 0.0 0.000000 -21 1 2 Ag-109 0.0 0.000000 -22 1 2 Xe-135 0.0 0.000000 -23 1 2 Cs-133 0.0 0.000000 -24 1 2 Nd-143 0.0 0.000000 -25 1 2 Nd-145 0.0 0.000000 -26 1 2 Sm-147 0.0 0.000000 -27 1 2 Sm-149 0.0 0.000000 -28 1 2 Sm-150 0.0 0.000000 -29 1 2 Sm-151 0.0 0.000000 -30 1 2 Sm-152 0.0 0.000000 -31 1 2 Eu-153 0.0 0.000000 -32 1 2 Gd-155 0.0 0.000000 -33 1 2 O-16 0.0 0.000000 material group in nuclide mean std. dev. +33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide moment mean +408 1 1 1 U-234 P0 0.000000 +409 1 1 1 U-234 P1 0.000000 +410 1 1 1 U-234 P2 0.000000 +411 1 1 1 U-234 P3 0.000000 +412 1 1 1 U-235 P0 0.003812 +413 1 1 1 U-235 P1 0.000586 +414 1 1 1 U-235 P2 0.000071 +415 1 1 1 U-235 P3 0.000277 +416 1 1 1 U-236 P0 0.001733 +417 1 1 1 U-236 P1 0.000035 +418 1 1 1 U-236 P2 -0.000183 +419 1 1 1 U-236 P3 -0.000087 +420 1 1 1 U-238 P0 0.224908 +421 1 1 1 U-238 P1 0.030440 +422 1 1 1 U-238 P2 0.014265 +423 1 1 1 U-238 P3 0.007698 +424 1 1 1 Np-237 P0 0.000000 +425 1 1 1 Np-237 P1 0.000000 +426 1 1 1 Np-237 P2 0.000000 +427 1 1 1 Np-237 P3 0.000000 +428 1 1 1 Pu-238 P0 0.000000 +429 1 1 1 Pu-238 P1 0.000000 +430 1 1 1 Pu-238 P2 0.000000 +431 1 1 1 Pu-238 P3 0.000000 +432 1 1 1 Pu-239 P0 0.001040 +433 1 1 1 Pu-239 P1 0.000034 +434 1 1 1 Pu-239 P2 0.000090 +435 1 1 1 Pu-239 P3 0.000110 +436 1 1 1 Pu-240 P0 0.001040 +437 1 1 1 Pu-240 P1 -0.000268 +438 1 1 1 Pu-240 P2 -0.000137 +439 1 1 1 Pu-240 P3 0.000132 +440 1 1 1 Pu-241 P0 0.000173 +441 1 1 1 Pu-241 P1 -0.000170 +442 1 1 1 Pu-241 P2 0.000165 +443 1 1 1 Pu-241 P3 -0.000156 +444 1 1 1 Pu-242 P0 0.000000 +445 1 1 1 Pu-242 P1 0.000000 +446 1 1 1 Pu-242 P2 0.000000 +447 1 1 1 Pu-242 P3 0.000000 +448 1 1 1 Am-241 P0 0.000000 +449 1 1 1 Am-241 P1 0.000000 +450 1 1 1 Am-241 P2 0.000000 +451 1 1 1 Am-241 P3 0.000000 +452 1 1 1 Am-242m P0 0.000000 +453 1 1 1 Am-242m P1 0.000000 +454 1 1 1 Am-242m P2 0.000000 +455 1 1 1 Am-242m P3 0.000000 +456 1 1 1 Am-243 P0 0.000000 +457 1 1 1 Am-243 P1 0.000000 +458 1 1 1 Am-243 P2 0.000000 +459 1 1 1 Am-243 P3 0.000000 +460 1 1 1 Cm-242 P0 0.000000 +461 1 1 1 Cm-242 P1 0.000000 +462 1 1 1 Cm-242 P2 0.000000 +463 1 1 1 Cm-242 P3 0.000000 +464 1 1 1 Cm-243 P0 0.000000 +465 1 1 1 Cm-243 P1 0.000000 +466 1 1 1 Cm-243 P2 0.000000 +467 1 1 1 Cm-243 P3 0.000000 +468 1 1 1 Cm-244 P0 0.000000 +469 1 1 1 Cm-244 P1 0.000000 +470 1 1 1 Cm-244 P2 0.000000 +471 1 1 1 Cm-244 P3 0.000000 +472 1 1 1 Cm-245 P0 0.000000 +473 1 1 1 Cm-245 P1 0.000000 +474 1 1 1 Cm-245 P2 0.000000 +475 1 1 1 Cm-245 P3 0.000000 +476 1 1 1 Mo-95 P0 0.000000 +477 1 1 1 Mo-95 P1 0.000000 +478 1 1 1 Mo-95 P2 0.000000 +479 1 1 1 Mo-95 P3 0.000000 +480 1 1 1 Tc-99 P0 0.000000 +481 1 1 1 Tc-99 P1 0.000000 +482 1 1 1 Tc-99 P2 0.000000 +483 1 1 1 Tc-99 P3 0.000000 +484 1 1 1 Ru-101 P0 0.000347 +485 1 1 1 Ru-101 P1 0.000109 +486 1 1 1 Ru-101 P2 -0.000020 +487 1 1 1 Ru-101 P3 0.000023 +488 1 1 1 Ru-103 P0 0.000173 +489 1 1 1 Ru-103 P1 0.000171 +490 1 1 1 Ru-103 P2 0.000167 +491 1 1 1 Ru-103 P3 0.000160 +492 1 1 1 Ag-109 P0 0.000000 +493 1 1 1 Ag-109 P1 0.000000 +494 1 1 1 Ag-109 P2 0.000000 +495 1 1 1 Ag-109 P3 0.000000 +496 1 1 1 Xe-135 P0 0.000000 +497 1 1 1 Xe-135 P1 0.000000 +498 1 1 1 Xe-135 P2 0.000000 +499 1 1 1 Xe-135 P3 0.000000 +500 1 1 1 Cs-133 P0 0.000000 +501 1 1 1 Cs-133 P1 0.000000 +502 1 1 1 Cs-133 P2 0.000000 +503 1 1 1 Cs-133 P3 0.000000 +504 1 1 1 Nd-143 P0 0.000520 +505 1 1 1 Nd-143 P1 0.000073 +506 1 1 1 Nd-143 P2 0.000023 +507 1 1 1 Nd-143 P3 -0.000103 +508 1 1 1 Nd-145 P0 0.000520 +509 1 1 1 Nd-145 P1 -0.000044 +510 1 1 1 Nd-145 P2 0.000026 +511 1 1 1 Nd-145 P3 0.000126 +512 1 1 1 Sm-147 P0 0.000000 +513 1 1 1 Sm-147 P1 0.000000 +514 1 1 1 Sm-147 P2 0.000000 +515 1 1 1 Sm-147 P3 0.000000 +516 1 1 1 Sm-149 P0 0.000000 +517 1 1 1 Sm-149 P1 0.000000 +518 1 1 1 Sm-149 P2 0.000000 +519 1 1 1 Sm-149 P3 0.000000 +520 1 1 1 Sm-150 P0 0.000347 +521 1 1 1 Sm-150 P1 0.000048 +522 1 1 1 Sm-150 P2 -0.000090 +523 1 1 1 Sm-150 P3 -0.000019 +524 1 1 1 Sm-151 P0 0.000000 +525 1 1 1 Sm-151 P1 0.000000 +526 1 1 1 Sm-151 P2 0.000000 +527 1 1 1 Sm-151 P3 0.000000 +528 1 1 1 Sm-152 P0 0.000693 +529 1 1 1 Sm-152 P1 0.000201 +530 1 1 1 Sm-152 P2 -0.000044 +531 1 1 1 Sm-152 P3 0.000138 +532 1 1 1 Eu-153 P0 0.000000 +533 1 1 1 Eu-153 P1 0.000000 +534 1 1 1 Eu-153 P2 0.000000 +535 1 1 1 Eu-153 P3 0.000000 +536 1 1 1 Gd-155 P0 0.000000 +537 1 1 1 Gd-155 P1 0.000000 +538 1 1 1 Gd-155 P2 0.000000 +539 1 1 1 Gd-155 P3 0.000000 +540 1 1 1 O-16 P0 0.146242 +541 1 1 1 O-16 P1 0.013087 +542 1 1 1 O-16 P2 0.006314 +543 1 1 1 O-16 P3 0.005397 +272 1 1 2 U-234 P0 0.000000 +273 1 1 2 U-234 P1 0.000000 +274 1 1 2 U-234 P2 0.000000 +275 1 1 2 U-234 P3 0.000000 +276 1 1 2 U-235 P0 0.000000 +277 1 1 2 U-235 P1 0.000000 +278 1 1 2 U-235 P2 0.000000 +279 1 1 2 U-235 P3 0.000000 +280 1 1 2 U-236 P0 0.000000 +281 1 1 2 U-236 P1 0.000000 +282 1 1 2 U-236 P2 0.000000 +283 1 1 2 U-236 P3 0.000000 +284 1 1 2 U-238 P0 0.000173 +285 1 1 2 U-238 P1 -0.000038 +286 1 1 2 U-238 P2 -0.000074 +287 1 1 2 U-238 P3 0.000052 +288 1 1 2 Np-237 P0 0.000000 +289 1 1 2 Np-237 P1 0.000000 +290 1 1 2 Np-237 P2 0.000000 +291 1 1 2 Np-237 P3 0.000000 +292 1 1 2 Pu-238 P0 0.000000 +293 1 1 2 Pu-238 P1 0.000000 +294 1 1 2 Pu-238 P2 0.000000 +295 1 1 2 Pu-238 P3 0.000000 +296 1 1 2 Pu-239 P0 0.000000 +297 1 1 2 Pu-239 P1 0.000000 +298 1 1 2 Pu-239 P2 0.000000 +299 1 1 2 Pu-239 P3 0.000000 +300 1 1 2 Pu-240 P0 0.000000 +301 1 1 2 Pu-240 P1 0.000000 +302 1 1 2 Pu-240 P2 0.000000 +303 1 1 2 Pu-240 P3 0.000000 +304 1 1 2 Pu-241 P0 0.000000 +305 1 1 2 Pu-241 P1 0.000000 +306 1 1 2 Pu-241 P2 0.000000 +307 1 1 2 Pu-241 P3 0.000000 +308 1 1 2 Pu-242 P0 0.000000 +309 1 1 2 Pu-242 P1 0.000000 +310 1 1 2 Pu-242 P2 0.000000 +311 1 1 2 Pu-242 P3 0.000000 +312 1 1 2 Am-241 P0 0.000000 +313 1 1 2 Am-241 P1 0.000000 +314 1 1 2 Am-241 P2 0.000000 +315 1 1 2 Am-241 P3 0.000000 +316 1 1 2 Am-242m P0 0.000000 +317 1 1 2 Am-242m P1 0.000000 +318 1 1 2 Am-242m P2 0.000000 +319 1 1 2 Am-242m P3 0.000000 +320 1 1 2 Am-243 P0 0.000000 +321 1 1 2 Am-243 P1 0.000000 +322 1 1 2 Am-243 P2 0.000000 +323 1 1 2 Am-243 P3 0.000000 +324 1 1 2 Cm-242 P0 0.000000 +325 1 1 2 Cm-242 P1 0.000000 +326 1 1 2 Cm-242 P2 0.000000 +327 1 1 2 Cm-242 P3 0.000000 +328 1 1 2 Cm-243 P0 0.000000 +329 1 1 2 Cm-243 P1 0.000000 +330 1 1 2 Cm-243 P2 0.000000 +331 1 1 2 Cm-243 P3 0.000000 +332 1 1 2 Cm-244 P0 0.000000 +333 1 1 2 Cm-244 P1 0.000000 +334 1 1 2 Cm-244 P2 0.000000 +335 1 1 2 Cm-244 P3 0.000000 +336 1 1 2 Cm-245 P0 0.000000 +337 1 1 2 Cm-245 P1 0.000000 +338 1 1 2 Cm-245 P2 0.000000 +339 1 1 2 Cm-245 P3 0.000000 +340 1 1 2 Mo-95 P0 0.000000 +341 1 1 2 Mo-95 P1 0.000000 +342 1 1 2 Mo-95 P2 0.000000 +343 1 1 2 Mo-95 P3 0.000000 +344 1 1 2 Tc-99 P0 0.000000 +345 1 1 2 Tc-99 P1 0.000000 +346 1 1 2 Tc-99 P2 0.000000 +347 1 1 2 Tc-99 P3 0.000000 +348 1 1 2 Ru-101 P0 0.000000 +349 1 1 2 Ru-101 P1 0.000000 +350 1 1 2 Ru-101 P2 0.000000 +351 1 1 2 Ru-101 P3 0.000000 +352 1 1 2 Ru-103 P0 0.000000 +353 1 1 2 Ru-103 P1 0.000000 +354 1 1 2 Ru-103 P2 0.000000 +355 1 1 2 Ru-103 P3 0.000000 +356 1 1 2 Ag-109 P0 0.000000 +357 1 1 2 Ag-109 P1 0.000000 +358 1 1 2 Ag-109 P2 0.000000 +359 1 1 2 Ag-109 P3 0.000000 +360 1 1 2 Xe-135 P0 0.000000 +361 1 1 2 Xe-135 P1 0.000000 +362 1 1 2 Xe-135 P2 0.000000 +363 1 1 2 Xe-135 P3 0.000000 +364 1 1 2 Cs-133 P0 0.000000 +365 1 1 2 Cs-133 P1 0.000000 +366 1 1 2 Cs-133 P2 0.000000 +367 1 1 2 Cs-133 P3 0.000000 +368 1 1 2 Nd-143 P0 0.000000 +369 1 1 2 Nd-143 P1 0.000000 +370 1 1 2 Nd-143 P2 0.000000 +371 1 1 2 Nd-143 P3 0.000000 +372 1 1 2 Nd-145 P0 0.000000 +373 1 1 2 Nd-145 P1 0.000000 +374 1 1 2 Nd-145 P2 0.000000 +375 1 1 2 Nd-145 P3 0.000000 +376 1 1 2 Sm-147 P0 0.000000 +377 1 1 2 Sm-147 P1 0.000000 +378 1 1 2 Sm-147 P2 0.000000 +379 1 1 2 Sm-147 P3 0.000000 +380 1 1 2 Sm-149 P0 0.000000 +381 1 1 2 Sm-149 P1 0.000000 +382 1 1 2 Sm-149 P2 0.000000 +383 1 1 2 Sm-149 P3 0.000000 +384 1 1 2 Sm-150 P0 0.000000 +385 1 1 2 Sm-150 P1 0.000000 +386 1 1 2 Sm-150 P2 0.000000 +387 1 1 2 Sm-150 P3 0.000000 +388 1 1 2 Sm-151 P0 0.000000 +389 1 1 2 Sm-151 P1 0.000000 +390 1 1 2 Sm-151 P2 0.000000 +391 1 1 2 Sm-151 P3 0.000000 +392 1 1 2 Sm-152 P0 0.000000 +393 1 1 2 Sm-152 P1 0.000000 +394 1 1 2 Sm-152 P2 0.000000 +395 1 1 2 Sm-152 P3 0.000000 +396 1 1 2 Eu-153 P0 0.000000 +397 1 1 2 Eu-153 P1 0.000000 +398 1 1 2 Eu-153 P2 0.000000 +399 1 1 2 Eu-153 P3 0.000000 +400 1 1 2 Gd-155 P0 0.000000 +401 1 1 2 Gd-155 P1 0.000000 +402 1 1 2 Gd-155 P2 0.000000 +403 1 1 2 Gd-155 P3 0.000000 +404 1 1 2 O-16 P0 0.001386 +405 1 1 2 O-16 P1 -0.000559 +406 1 1 2 O-16 P2 -0.000165 +407 1 1 2 O-16 P3 0.000123 +136 1 2 1 U-234 P0 0.000000 +137 1 2 1 U-234 P1 0.000000 +138 1 2 1 U-234 P2 0.000000 +139 1 2 1 U-234 P3 0.000000 +140 1 2 1 U-235 P0 0.000000 +141 1 2 1 U-235 P1 0.000000 +142 1 2 1 U-235 P2 0.000000 +143 1 2 1 U-235 P3 0.000000 +144 1 2 1 U-236 P0 0.000000 +145 1 2 1 U-236 P1 0.000000 +146 1 2 1 U-236 P2 0.000000 +147 1 2 1 U-236 P3 0.000000 +148 1 2 1 U-238 P0 0.000000 +149 1 2 1 U-238 P1 0.000000 +150 1 2 1 U-238 P2 0.000000 +151 1 2 1 U-238 P3 0.000000 +152 1 2 1 Np-237 P0 0.000000 +153 1 2 1 Np-237 P1 0.000000 +154 1 2 1 Np-237 P2 0.000000 +155 1 2 1 Np-237 P3 0.000000 +156 1 2 1 Pu-238 P0 0.000000 +157 1 2 1 Pu-238 P1 0.000000 +158 1 2 1 Pu-238 P2 0.000000 +159 1 2 1 Pu-238 P3 0.000000 +160 1 2 1 Pu-239 P0 0.000000 +161 1 2 1 Pu-239 P1 0.000000 +162 1 2 1 Pu-239 P2 0.000000 +163 1 2 1 Pu-239 P3 0.000000 +164 1 2 1 Pu-240 P0 0.000000 +165 1 2 1 Pu-240 P1 0.000000 +166 1 2 1 Pu-240 P2 0.000000 +167 1 2 1 Pu-240 P3 0.000000 +168 1 2 1 Pu-241 P0 0.000000 +169 1 2 1 Pu-241 P1 0.000000 +170 1 2 1 Pu-241 P2 0.000000 +171 1 2 1 Pu-241 P3 0.000000 +172 1 2 1 Pu-242 P0 0.000000 +173 1 2 1 Pu-242 P1 0.000000 +174 1 2 1 Pu-242 P2 0.000000 +175 1 2 1 Pu-242 P3 0.000000 +176 1 2 1 Am-241 P0 0.000000 +177 1 2 1 Am-241 P1 0.000000 +178 1 2 1 Am-241 P2 0.000000 +179 1 2 1 Am-241 P3 0.000000 +180 1 2 1 Am-242m P0 0.000000 +181 1 2 1 Am-242m P1 0.000000 +182 1 2 1 Am-242m P2 0.000000 +183 1 2 1 Am-242m P3 0.000000 +184 1 2 1 Am-243 P0 0.000000 +185 1 2 1 Am-243 P1 0.000000 +186 1 2 1 Am-243 P2 0.000000 +187 1 2 1 Am-243 P3 0.000000 +188 1 2 1 Cm-242 P0 0.000000 +189 1 2 1 Cm-242 P1 0.000000 +190 1 2 1 Cm-242 P2 0.000000 +191 1 2 1 Cm-242 P3 0.000000 +192 1 2 1 Cm-243 P0 0.000000 +193 1 2 1 Cm-243 P1 0.000000 +194 1 2 1 Cm-243 P2 0.000000 +195 1 2 1 Cm-243 P3 0.000000 +196 1 2 1 Cm-244 P0 0.000000 +197 1 2 1 Cm-244 P1 0.000000 +198 1 2 1 Cm-244 P2 0.000000 +199 1 2 1 Cm-244 P3 0.000000 +200 1 2 1 Cm-245 P0 0.000000 +201 1 2 1 Cm-245 P1 0.000000 +202 1 2 1 Cm-245 P2 0.000000 +203 1 2 1 Cm-245 P3 0.000000 +204 1 2 1 Mo-95 P0 0.000000 +205 1 2 1 Mo-95 P1 0.000000 +206 1 2 1 Mo-95 P2 0.000000 +207 1 2 1 Mo-95 P3 0.000000 +208 1 2 1 Tc-99 P0 0.000000 +209 1 2 1 Tc-99 P1 0.000000 +210 1 2 1 Tc-99 P2 0.000000 +211 1 2 1 Tc-99 P3 0.000000 +212 1 2 1 Ru-101 P0 0.000000 +213 1 2 1 Ru-101 P1 0.000000 +214 1 2 1 Ru-101 P2 0.000000 +215 1 2 1 Ru-101 P3 0.000000 +216 1 2 1 Ru-103 P0 0.000000 +217 1 2 1 Ru-103 P1 0.000000 +218 1 2 1 Ru-103 P2 0.000000 +219 1 2 1 Ru-103 P3 0.000000 +220 1 2 1 Ag-109 P0 0.000000 +221 1 2 1 Ag-109 P1 0.000000 +222 1 2 1 Ag-109 P2 0.000000 +223 1 2 1 Ag-109 P3 0.000000 +224 1 2 1 Xe-135 P0 0.000000 +225 1 2 1 Xe-135 P1 0.000000 +226 1 2 1 Xe-135 P2 0.000000 +227 1 2 1 Xe-135 P3 0.000000 +228 1 2 1 Cs-133 P0 0.000000 +229 1 2 1 Cs-133 P1 0.000000 +230 1 2 1 Cs-133 P2 0.000000 +231 1 2 1 Cs-133 P3 0.000000 +232 1 2 1 Nd-143 P0 0.000000 +233 1 2 1 Nd-143 P1 0.000000 +234 1 2 1 Nd-143 P2 0.000000 +235 1 2 1 Nd-143 P3 0.000000 +236 1 2 1 Nd-145 P0 0.000000 +237 1 2 1 Nd-145 P1 0.000000 +238 1 2 1 Nd-145 P2 0.000000 +239 1 2 1 Nd-145 P3 0.000000 +240 1 2 1 Sm-147 P0 0.000000 +241 1 2 1 Sm-147 P1 0.000000 +242 1 2 1 Sm-147 P2 0.000000 +243 1 2 1 Sm-147 P3 0.000000 +244 1 2 1 Sm-149 P0 0.000000 +245 1 2 1 Sm-149 P1 0.000000 +246 1 2 1 Sm-149 P2 0.000000 +247 1 2 1 Sm-149 P3 0.000000 +248 1 2 1 Sm-150 P0 0.000000 +249 1 2 1 Sm-150 P1 0.000000 +250 1 2 1 Sm-150 P2 0.000000 +251 1 2 1 Sm-150 P3 0.000000 +252 1 2 1 Sm-151 P0 0.000000 +253 1 2 1 Sm-151 P1 0.000000 +254 1 2 1 Sm-151 P2 0.000000 +255 1 2 1 Sm-151 P3 0.000000 +256 1 2 1 Sm-152 P0 0.000000 +257 1 2 1 Sm-152 P1 0.000000 +258 1 2 1 Sm-152 P2 0.000000 +259 1 2 1 Sm-152 P3 0.000000 +260 1 2 1 Eu-153 P0 0.000000 +261 1 2 1 Eu-153 P1 0.000000 +262 1 2 1 Eu-153 P2 0.000000 +263 1 2 1 Eu-153 P3 0.000000 +264 1 2 1 Gd-155 P0 0.000000 +265 1 2 1 Gd-155 P1 0.000000 +266 1 2 1 Gd-155 P2 0.000000 +267 1 2 1 Gd-155 P3 0.000000 +268 1 2 1 O-16 P0 0.000000 +269 1 2 1 O-16 P1 0.000000 +270 1 2 1 O-16 P2 0.000000 +271 1 2 1 O-16 P3 0.000000 +0 1 2 2 U-234 P0 0.000000 +1 1 2 2 U-234 P1 0.000000 +2 1 2 2 U-234 P2 0.000000 +3 1 2 2 U-234 P3 0.000000 +4 1 2 2 U-235 P0 0.003960 +5 1 2 2 U-235 P1 0.000071 +6 1 2 2 U-235 P2 0.001232 +7 1 2 2 U-235 P3 0.000182 +8 1 2 2 U-236 P0 0.001980 +9 1 2 2 U-236 P1 0.000479 +10 1 2 2 U-236 P2 -0.000816 +11 1 2 2 U-236 P3 -0.000648 +12 1 2 2 U-238 P0 0.205918 +13 1 2 2 U-238 P1 -0.013364 +14 1 2 2 U-238 P2 -0.010941 +15 1 2 2 U-238 P3 0.000772 +16 1 2 2 Np-237 P0 0.000000 +17 1 2 2 Np-237 P1 0.000000 +18 1 2 2 Np-237 P2 0.000000 +19 1 2 2 Np-237 P3 0.000000 +20 1 2 2 Pu-238 P0 0.000000 +21 1 2 2 Pu-238 P1 0.000000 +22 1 2 2 Pu-238 P2 0.000000 +23 1 2 2 Pu-238 P3 0.000000 +24 1 2 2 Pu-239 P0 0.000000 +25 1 2 2 Pu-239 P1 0.000000 +26 1 2 2 Pu-239 P2 0.000000 +27 1 2 2 Pu-239 P3 0.000000 +28 1 2 2 Pu-240 P0 0.000000 +29 1 2 2 Pu-240 P1 0.000000 +30 1 2 2 Pu-240 P2 0.000000 +31 1 2 2 Pu-240 P3 0.000000 +32 1 2 2 Pu-241 P0 0.000000 +33 1 2 2 Pu-241 P1 0.000000 +34 1 2 2 Pu-241 P2 0.000000 +35 1 2 2 Pu-241 P3 0.000000 +36 1 2 2 Pu-242 P0 0.000000 +37 1 2 2 Pu-242 P1 0.000000 +38 1 2 2 Pu-242 P2 0.000000 +39 1 2 2 Pu-242 P3 0.000000 +40 1 2 2 Am-241 P0 0.000000 +41 1 2 2 Am-241 P1 0.000000 +42 1 2 2 Am-241 P2 0.000000 +43 1 2 2 Am-241 P3 0.000000 +44 1 2 2 Am-242m P0 0.000000 +45 1 2 2 Am-242m P1 0.000000 +46 1 2 2 Am-242m P2 0.000000 +47 1 2 2 Am-242m P3 0.000000 +48 1 2 2 Am-243 P0 0.000000 +49 1 2 2 Am-243 P1 0.000000 +50 1 2 2 Am-243 P2 0.000000 +51 1 2 2 Am-243 P3 0.000000 +52 1 2 2 Cm-242 P0 0.000000 +53 1 2 2 Cm-242 P1 0.000000 +54 1 2 2 Cm-242 P2 0.000000 +55 1 2 2 Cm-242 P3 0.000000 +56 1 2 2 Cm-243 P0 0.000000 +57 1 2 2 Cm-243 P1 0.000000 +58 1 2 2 Cm-243 P2 0.000000 +59 1 2 2 Cm-243 P3 0.000000 +60 1 2 2 Cm-244 P0 0.000000 +61 1 2 2 Cm-244 P1 0.000000 +62 1 2 2 Cm-244 P2 0.000000 +63 1 2 2 Cm-244 P3 0.000000 +64 1 2 2 Cm-245 P0 0.000000 +65 1 2 2 Cm-245 P1 0.000000 +66 1 2 2 Cm-245 P2 0.000000 +67 1 2 2 Cm-245 P3 0.000000 +68 1 2 2 Mo-95 P0 0.000000 +69 1 2 2 Mo-95 P1 0.000000 +70 1 2 2 Mo-95 P2 0.000000 +71 1 2 2 Mo-95 P3 0.000000 +72 1 2 2 Tc-99 P0 0.000000 +73 1 2 2 Tc-99 P1 0.000000 +74 1 2 2 Tc-99 P2 0.000000 +75 1 2 2 Tc-99 P3 0.000000 +76 1 2 2 Ru-101 P0 0.000000 +77 1 2 2 Ru-101 P1 0.000000 +78 1 2 2 Ru-101 P2 0.000000 +79 1 2 2 Ru-101 P3 0.000000 +80 1 2 2 Ru-103 P0 0.000000 +81 1 2 2 Ru-103 P1 0.000000 +82 1 2 2 Ru-103 P2 0.000000 +83 1 2 2 Ru-103 P3 0.000000 +84 1 2 2 Ag-109 P0 0.000000 +85 1 2 2 Ag-109 P1 0.000000 +86 1 2 2 Ag-109 P2 0.000000 +87 1 2 2 Ag-109 P3 0.000000 +88 1 2 2 Xe-135 P0 0.000000 +89 1 2 2 Xe-135 P1 0.000000 +90 1 2 2 Xe-135 P2 0.000000 +91 1 2 2 Xe-135 P3 0.000000 +92 1 2 2 Cs-133 P0 0.000000 +93 1 2 2 Cs-133 P1 0.000000 +94 1 2 2 Cs-133 P2 0.000000 +95 1 2 2 Cs-133 P3 0.000000 +96 1 2 2 Nd-143 P0 0.000000 +97 1 2 2 Nd-143 P1 0.000000 +98 1 2 2 Nd-143 P2 0.000000 +99 1 2 2 Nd-143 P3 0.000000 +100 1 2 2 Nd-145 P0 0.000000 +101 1 2 2 Nd-145 P1 0.000000 +102 1 2 2 Nd-145 P2 0.000000 +103 1 2 2 Nd-145 P3 0.000000 +104 1 2 2 Sm-147 P0 0.000000 +105 1 2 2 Sm-147 P1 0.000000 +106 1 2 2 Sm-147 P2 0.000000 +107 1 2 2 Sm-147 P3 0.000000 +108 1 2 2 Sm-149 P0 0.000000 +109 1 2 2 Sm-149 P1 0.000000 +110 1 2 2 Sm-149 P2 0.000000 +111 1 2 2 Sm-149 P3 0.000000 +112 1 2 2 Sm-150 P0 0.000000 +113 1 2 2 Sm-150 P1 0.000000 +114 1 2 2 Sm-150 P2 0.000000 +115 1 2 2 Sm-150 P3 0.000000 +116 1 2 2 Sm-151 P0 0.000000 +117 1 2 2 Sm-151 P1 0.000000 +118 1 2 2 Sm-151 P2 0.000000 +119 1 2 2 Sm-151 P3 0.000000 +120 1 2 2 Sm-152 P0 0.000000 +121 1 2 2 Sm-152 P1 0.000000 +122 1 2 2 Sm-152 P2 0.000000 +123 1 2 2 Sm-152 P3 0.000000 +124 1 2 2 Eu-153 P0 0.000000 +125 1 2 2 Eu-153 P1 0.000000 +126 1 2 2 Eu-153 P2 0.000000 +127 1 2 2 Eu-153 P3 0.000000 +128 1 2 2 Gd-155 P0 0.000000 +129 1 2 2 Gd-155 P1 0.000000 +130 1 2 2 Gd-155 P2 0.000000 +131 1 2 2 Gd-155 P3 0.000000 +132 1 2 2 O-16 P0 0.192058 +133 1 2 2 O-16 P1 0.001504 +134 1 2 2 O-16 P2 -0.004281 +135 1 2 2 O-16 P3 -0.007160 material group out nuclide mean std. dev. +34 1 1 U-234 0 0.000000 +35 1 1 U-235 1 0.066362 +36 1 1 U-236 0 0.000000 +37 1 1 U-238 1 0.093082 +38 1 1 Np-237 0 0.000000 +39 1 1 Pu-238 0 0.000000 +40 1 1 Pu-239 1 0.104567 +41 1 1 Pu-240 0 0.000000 +42 1 1 Pu-241 1 0.263696 +43 1 1 Pu-242 0 0.000000 +44 1 1 Am-241 0 0.000000 +45 1 1 Am-242m 0 0.000000 +46 1 1 Am-243 0 0.000000 +47 1 1 Cm-242 0 0.000000 +48 1 1 Cm-243 0 0.000000 +49 1 1 Cm-244 0 0.000000 +50 1 1 Cm-245 0 0.000000 +51 1 1 Mo-95 0 0.000000 +52 1 1 Tc-99 0 0.000000 +53 1 1 Ru-101 0 0.000000 +54 1 1 Ru-103 0 0.000000 +55 1 1 Ag-109 0 0.000000 +56 1 1 Xe-135 0 0.000000 +57 1 1 Cs-133 0 0.000000 +58 1 1 Nd-143 0 0.000000 +59 1 1 Nd-145 0 0.000000 +60 1 1 Sm-147 0 0.000000 +61 1 1 Sm-149 0 0.000000 +62 1 1 Sm-150 0 0.000000 +63 1 1 Sm-151 0 0.000000 +64 1 1 Sm-152 0 0.000000 +65 1 1 Eu-153 0 0.000000 +66 1 1 Gd-155 0 0.000000 +67 1 1 O-16 0 0.000000 +0 1 2 U-234 0 0.000000 +1 1 2 U-235 0 0.000000 +2 1 2 U-236 0 0.000000 +3 1 2 U-238 0 0.000000 +4 1 2 Np-237 0 0.000000 +5 1 2 Pu-238 0 0.000000 +6 1 2 Pu-239 0 0.000000 +7 1 2 Pu-240 0 0.000000 +8 1 2 Pu-241 0 0.000000 +9 1 2 Pu-242 0 0.000000 +10 1 2 Am-241 0 0.000000 +11 1 2 Am-242m 0 0.000000 +12 1 2 Am-243 0 0.000000 +13 1 2 Cm-242 0 0.000000 +14 1 2 Cm-243 0 0.000000 +15 1 2 Cm-244 0 0.000000 +16 1 2 Cm-245 0 0.000000 +17 1 2 Mo-95 0 0.000000 +18 1 2 Tc-99 0 0.000000 +19 1 2 Ru-101 0 0.000000 +20 1 2 Ru-103 0 0.000000 +21 1 2 Ag-109 0 0.000000 +22 1 2 Xe-135 0 0.000000 +23 1 2 Cs-133 0 0.000000 +24 1 2 Nd-143 0 0.000000 +25 1 2 Nd-145 0 0.000000 +26 1 2 Sm-147 0 0.000000 +27 1 2 Sm-149 0 0.000000 +28 1 2 Sm-150 0 0.000000 +29 1 2 Sm-151 0 0.000000 +30 1 2 Sm-152 0 0.000000 +31 1 2 Eu-153 0 0.000000 +32 1 2 Gd-155 0 0.000000 +33 1 2 O-16 0 0.000000 material group in nuclide mean std. dev. 5 2 1 Zr-90 0.104734 0.008915 6 2 1 Zr-91 0.036155 0.003735 7 2 1 Zr-92 0.042422 0.003029 @@ -349,46 +757,106 @@ 2 2 2 Zr-92 0.041633 0.016323 3 2 2 Zr-94 0.060818 0.021483 4 2 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0.0 0.0 -6 2 1 Zr-91 0.0 0.0 -7 2 1 Zr-92 0.0 0.0 -8 2 1 Zr-94 0.0 0.0 -9 2 1 Zr-96 0.0 0.0 -0 2 2 Zr-90 0.0 0.0 -1 2 2 Zr-91 0.0 0.0 -2 2 2 Zr-92 0.0 0.0 -3 2 2 Zr-94 0.0 0.0 -4 2 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. -15 2 1 1 Zr-90 0.104734 0.008915 -16 2 1 1 Zr-91 0.036155 0.003735 -17 2 1 1 Zr-92 0.042422 0.003029 -18 2 1 1 Zr-94 0.046148 0.006251 -19 2 1 1 Zr-96 0.007794 0.001536 -10 2 1 2 Zr-90 0.000000 0.000000 -11 2 1 2 Zr-91 0.000000 0.000000 -12 2 1 2 Zr-92 0.000000 0.000000 -13 2 1 2 Zr-94 0.000000 0.000000 -14 2 1 2 Zr-96 0.000000 0.000000 -5 2 2 1 Zr-90 0.000000 0.000000 -6 2 2 1 Zr-91 0.000000 0.000000 -7 2 2 1 Zr-92 0.000000 0.000000 -8 2 2 1 Zr-94 0.000000 0.000000 -9 2 2 1 Zr-96 0.000000 0.000000 -0 2 2 2 Zr-90 0.121688 0.034934 -1 2 2 2 Zr-91 0.061792 0.024317 -2 2 2 2 Zr-92 0.041633 0.016323 -3 2 2 2 Zr-94 0.060818 0.021483 -4 2 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. -5 2 1 Zr-90 0.0 0.0 -6 2 1 Zr-91 0.0 0.0 -7 2 1 Zr-92 0.0 0.0 -8 2 1 Zr-94 0.0 0.0 -9 2 1 Zr-96 0.0 0.0 -0 2 2 Zr-90 0.0 0.0 -1 2 2 Zr-91 0.0 0.0 -2 2 2 Zr-92 0.0 0.0 -3 2 2 Zr-94 0.0 0.0 -4 2 2 Zr-96 0.0 0.0 material group in nuclide mean std. dev. +5 2 1 Zr-90 0 0 +6 2 1 Zr-91 0 0 +7 2 1 Zr-92 0 0 +8 2 1 Zr-94 0 0 +9 2 1 Zr-96 0 0 +0 2 2 Zr-90 0 0 +1 2 2 Zr-91 0 0 +2 2 2 Zr-92 0 0 +3 2 2 Zr-94 0 0 +4 2 2 Zr-96 0 0 material group in group out nuclide moment mean +60 2 1 1 Zr-90 P0 0.122030 +61 2 1 1 Zr-90 P1 0.017296 +62 2 1 1 Zr-90 P2 0.020437 +63 2 1 1 Zr-90 P3 -0.000350 +64 2 1 1 Zr-91 P0 0.037548 +65 2 1 1 Zr-91 P1 0.001393 +66 2 1 1 Zr-91 P2 -0.000553 +67 2 1 1 Zr-91 P3 0.001719 +68 2 1 1 Zr-92 P0 0.047829 +69 2 1 1 Zr-92 P1 0.005406 +70 2 1 1 Zr-92 P2 0.004793 +71 2 1 1 Zr-92 P3 0.001907 +72 2 1 1 Zr-94 P0 0.058110 +73 2 1 1 Zr-94 P1 0.011962 +74 2 1 1 Zr-94 P2 0.006220 +75 2 1 1 Zr-94 P3 -0.000627 +76 2 1 1 Zr-96 P0 0.007599 +77 2 1 1 Zr-96 P1 -0.000196 +78 2 1 1 Zr-96 P2 -0.001193 +79 2 1 1 Zr-96 P3 -0.000401 +40 2 1 2 Zr-90 P0 0.000000 +41 2 1 2 Zr-90 P1 0.000000 +42 2 1 2 Zr-90 P2 0.000000 +43 2 1 2 Zr-90 P3 0.000000 +44 2 1 2 Zr-91 P0 0.000000 +45 2 1 2 Zr-91 P1 0.000000 +46 2 1 2 Zr-91 P2 0.000000 +47 2 1 2 Zr-91 P3 0.000000 +48 2 1 2 Zr-92 P0 0.000000 +49 2 1 2 Zr-92 P1 0.000000 +50 2 1 2 Zr-92 P2 0.000000 +51 2 1 2 Zr-92 P3 0.000000 +52 2 1 2 Zr-94 P0 0.000000 +53 2 1 2 Zr-94 P1 0.000000 +54 2 1 2 Zr-94 P2 0.000000 +55 2 1 2 Zr-94 P3 0.000000 +56 2 1 2 Zr-96 P0 0.000000 +57 2 1 2 Zr-96 P1 0.000000 +58 2 1 2 Zr-96 P2 0.000000 +59 2 1 2 Zr-96 P3 0.000000 +20 2 2 1 Zr-90 P0 0.000000 +21 2 2 1 Zr-90 P1 0.000000 +22 2 2 1 Zr-90 P2 0.000000 +23 2 2 1 Zr-90 P3 0.000000 +24 2 2 1 Zr-91 P0 0.000000 +25 2 2 1 Zr-91 P1 0.000000 +26 2 2 1 Zr-91 P2 0.000000 +27 2 2 1 Zr-91 P3 0.000000 +28 2 2 1 Zr-92 P0 0.000000 +29 2 2 1 Zr-92 P1 0.000000 +30 2 2 1 Zr-92 P2 0.000000 +31 2 2 1 Zr-92 P3 0.000000 +32 2 2 1 Zr-94 P0 0.000000 +33 2 2 1 Zr-94 P1 0.000000 +34 2 2 1 Zr-94 P2 0.000000 +35 2 2 1 Zr-94 P3 0.000000 +36 2 2 1 Zr-96 P0 0.000000 +37 2 2 1 Zr-96 P1 0.000000 +38 2 2 1 Zr-96 P2 0.000000 +39 2 2 1 Zr-96 P3 0.000000 +0 2 2 2 Zr-90 P0 0.119570 +1 2 2 2 Zr-90 P1 -0.002117 +2 2 2 2 Zr-90 P2 -0.015144 +3 2 2 2 Zr-90 P3 0.000965 +4 2 2 2 Zr-91 P0 0.054803 +5 2 2 2 Zr-91 P1 -0.006989 +6 2 2 2 Zr-91 P2 -0.010542 +7 2 2 2 Zr-91 P3 -0.001260 +8 2 2 2 Zr-92 P0 0.034875 +9 2 2 2 Zr-92 P1 -0.006759 +10 2 2 2 Zr-92 P2 0.008972 +11 2 2 2 Zr-92 P3 0.009834 +12 2 2 2 Zr-94 P0 0.054803 +13 2 2 2 Zr-94 P1 -0.006015 +14 2 2 2 Zr-94 P2 0.001420 +15 2 2 2 Zr-94 P3 0.004494 +16 2 2 2 Zr-96 P0 0.000000 +17 2 2 2 Zr-96 P1 0.000000 +18 2 2 2 Zr-96 P2 0.000000 +19 2 2 2 Zr-96 P3 0.000000 material group out nuclide mean std. dev. +5 2 1 Zr-90 0 0 +6 2 1 Zr-91 0 0 +7 2 1 Zr-92 0 0 +8 2 1 Zr-94 0 0 +9 2 1 Zr-96 0 0 +0 2 2 Zr-90 0 0 +1 2 2 Zr-91 0 0 +2 2 2 Zr-92 0 0 +3 2 2 Zr-94 0 0 +4 2 2 Zr-96 0 0 material group in nuclide mean std. dev. 4 3 1 H-1 0.207103 0.023028 5 3 1 O-16 0.079282 0.005197 6 3 1 B-10 0.000521 0.000244 @@ -397,38 +865,86 @@ 1 3 2 O-16 0.085363 0.014001 2 3 2 B-10 0.049249 0.008232 3 3 2 B-11 0.000195 0.001527 material group in nuclide mean std. dev. -4 3 1 H-1 0.0 0.0 -5 3 1 O-16 0.0 0.0 -6 3 1 B-10 0.0 0.0 -7 3 1 B-11 0.0 0.0 -0 3 2 H-1 0.0 0.0 -1 3 2 O-16 0.0 0.0 -2 3 2 B-10 0.0 0.0 -3 3 2 B-11 0.0 0.0 material group in group out nuclide mean std. dev. -12 3 1 1 H-1 0.181306 0.022102 -13 3 1 1 O-16 0.078631 0.005044 -14 3 1 1 B-10 0.000000 0.000000 -15 3 1 1 B-11 0.000000 0.000000 -8 3 1 2 H-1 0.025666 0.001582 -9 3 1 2 O-16 0.000521 0.000131 -10 3 1 2 B-10 0.000000 0.000000 -11 3 1 2 B-11 0.000000 0.000000 -4 3 2 1 H-1 0.000000 0.000000 -5 3 2 1 O-16 0.000000 0.000000 -6 3 2 1 B-10 0.000000 0.000000 -7 3 2 1 B-11 0.000000 0.000000 -0 3 2 2 H-1 1.273963 0.250623 -1 3 2 2 O-16 0.085363 0.014001 -2 3 2 2 B-10 0.000000 0.000000 -3 3 2 2 B-11 0.000195 0.001527 material group out nuclide mean std. dev. -4 3 1 H-1 0.0 0.0 -5 3 1 O-16 0.0 0.0 -6 3 1 B-10 0.0 0.0 -7 3 1 B-11 0.0 0.0 -0 3 2 H-1 0.0 0.0 -1 3 2 O-16 0.0 0.0 -2 3 2 B-10 0.0 0.0 -3 3 2 B-11 0.0 0.0 material group in nuclide mean std. dev. +4 3 1 H-1 0 0 +5 3 1 O-16 0 0 +6 3 1 B-10 0 0 +7 3 1 B-11 0 0 +0 3 2 H-1 0 0 +1 3 2 O-16 0 0 +2 3 2 B-10 0 0 +3 3 2 B-11 0 0 material group in group out nuclide moment mean +48 3 1 1 H-1 P0 0.560615 +49 3 1 1 H-1 P1 0.379309 +50 3 1 1 H-1 P2 0.149073 +51 3 1 1 H-1 P3 0.005293 +52 3 1 1 O-16 P0 0.082731 +53 3 1 1 O-16 P1 0.004100 +54 3 1 1 O-16 P2 0.003113 +55 3 1 1 O-16 P3 -0.002256 +56 3 1 1 B-10 P0 0.000000 +57 3 1 1 B-10 P1 0.000000 +58 3 1 1 B-10 P2 0.000000 +59 3 1 1 B-10 P3 0.000000 +60 3 1 1 B-11 P0 0.000000 +61 3 1 1 B-11 P1 0.000000 +62 3 1 1 B-11 P2 0.000000 +63 3 1 1 B-11 P3 0.000000 +32 3 1 2 H-1 P0 0.025666 +33 3 1 2 H-1 P1 0.007631 +34 3 1 2 H-1 P2 -0.002692 +35 3 1 2 H-1 P3 -0.002928 +36 3 1 2 O-16 P0 0.000521 +37 3 1 2 O-16 P1 -0.000268 +38 3 1 2 O-16 P2 -0.000046 +39 3 1 2 O-16 P3 0.000208 +40 3 1 2 B-10 P0 0.000000 +41 3 1 2 B-10 P1 0.000000 +42 3 1 2 B-10 P2 0.000000 +43 3 1 2 B-10 P3 0.000000 +44 3 1 2 B-11 P0 0.000000 +45 3 1 2 B-11 P1 0.000000 +46 3 1 2 B-11 P2 0.000000 +47 3 1 2 B-11 P3 0.000000 +16 3 2 1 H-1 P0 0.000000 +17 3 2 1 H-1 P1 0.000000 +18 3 2 1 H-1 P2 0.000000 +19 3 2 1 H-1 P3 0.000000 +20 3 2 1 O-16 P0 0.000000 +21 3 2 1 O-16 P1 0.000000 +22 3 2 1 O-16 P2 0.000000 +23 3 2 1 O-16 P3 0.000000 +24 3 2 1 B-10 P0 0.000000 +25 3 2 1 B-10 P1 0.000000 +26 3 2 1 B-10 P2 0.000000 +27 3 2 1 B-10 P3 0.000000 +28 3 2 1 B-11 P0 0.000000 +29 3 2 1 B-11 P1 0.000000 +30 3 2 1 B-11 P2 0.000000 +31 3 2 1 B-11 P3 0.000000 +0 3 2 2 H-1 P0 1.840960 +1 3 2 2 H-1 P1 0.498320 +2 3 2 2 H-1 P2 0.083870 +3 3 2 2 H-1 P3 0.013597 +4 3 2 2 O-16 P0 0.082081 +5 3 2 2 O-16 P1 -0.000867 +6 3 2 2 O-16 P2 0.006697 +7 3 2 2 O-16 P3 0.003223 +8 3 2 2 B-10 P0 0.000000 +9 3 2 2 B-10 P1 0.000000 +10 3 2 2 B-10 P2 0.000000 +11 3 2 2 B-10 P3 0.000000 +12 3 2 2 B-11 P0 0.001173 +13 3 2 2 B-11 P1 0.000978 +14 3 2 2 B-11 P2 0.000637 +15 3 2 2 B-11 P3 0.000234 material group out nuclide mean std. dev. +4 3 1 H-1 0 0 +5 3 1 O-16 0 0 +6 3 1 B-10 0 0 +7 3 1 B-11 0 0 +0 3 2 H-1 0 0 +1 3 2 O-16 0 0 +2 3 2 B-10 0 0 +3 3 2 B-11 0 0 material group in nuclide mean std. dev. 4 4 1 H-1 0.175242 0.053715 5 4 1 O-16 0.066545 0.010083 6 4 1 B-10 0.000570 0.000352 @@ -437,938 +953,2066 @@ 1 4 2 O-16 0.085141 0.028073 2 4 2 B-10 0.025923 0.007276 3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. -4 4 1 H-1 0.0 0.0 -5 4 1 O-16 0.0 0.0 -6 4 1 B-10 0.0 0.0 -7 4 1 B-11 0.0 0.0 -0 4 2 H-1 0.0 0.0 -1 4 2 O-16 0.0 0.0 -2 4 2 B-10 0.0 0.0 -3 4 2 B-11 0.0 0.0 material group in group out nuclide mean std. dev. -12 4 1 1 H-1 0.151295 0.051491 -13 4 1 1 O-16 0.066545 0.010083 -14 4 1 1 B-10 0.000000 0.000000 -15 4 1 1 B-11 0.000089 0.000346 -8 4 1 2 H-1 0.023662 0.003083 -9 4 1 2 O-16 0.000000 0.000000 -10 4 1 2 B-10 0.000000 0.000000 -11 4 1 2 B-11 0.000000 0.000000 -4 4 2 1 H-1 0.000000 0.000000 -5 4 2 1 O-16 0.000000 0.000000 -6 4 2 1 B-10 0.000000 0.000000 -7 4 2 1 B-11 0.000000 0.000000 -0 4 2 2 H-1 1.129933 0.361681 -1 4 2 2 O-16 0.085141 0.028073 -2 4 2 2 B-10 0.000000 0.000000 -3 4 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. -4 4 1 H-1 0.0 0.0 -5 4 1 O-16 0.0 0.0 -6 4 1 B-10 0.0 0.0 -7 4 1 B-11 0.0 0.0 -0 4 2 H-1 0.0 0.0 -1 4 2 O-16 0.0 0.0 -2 4 2 B-10 0.0 0.0 -3 4 2 B-11 0.0 0.0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0.0 0.0 -28 5 1 Fe-56 0.0 0.0 -29 5 1 Fe-57 0.0 0.0 -30 5 1 Fe-58 0.0 0.0 -31 5 1 Ni-58 0.0 0.0 -32 5 1 Ni-60 0.0 0.0 -33 5 1 Ni-61 0.0 0.0 -34 5 1 Ni-62 0.0 0.0 -35 5 1 Ni-64 0.0 0.0 -36 5 1 Mn-55 0.0 0.0 -37 5 1 Mo-92 0.0 0.0 -38 5 1 Mo-94 0.0 0.0 -39 5 1 Mo-95 0.0 0.0 -40 5 1 Mo-96 0.0 0.0 -41 5 1 Mo-97 0.0 0.0 -42 5 1 Mo-98 0.0 0.0 -43 5 1 Mo-100 0.0 0.0 -44 5 1 Si-28 0.0 0.0 -45 5 1 Si-29 0.0 0.0 -46 5 1 Si-30 0.0 0.0 -47 5 1 Cr-50 0.0 0.0 -48 5 1 Cr-52 0.0 0.0 -49 5 1 Cr-53 0.0 0.0 -50 5 1 Cr-54 0.0 0.0 -51 5 1 C-Nat 0.0 0.0 -52 5 1 Cu-63 0.0 0.0 -53 5 1 Cu-65 0.0 0.0 -0 5 2 Fe-54 0.0 0.0 -1 5 2 Fe-56 0.0 0.0 -2 5 2 Fe-57 0.0 0.0 -3 5 2 Fe-58 0.0 0.0 -4 5 2 Ni-58 0.0 0.0 -5 5 2 Ni-60 0.0 0.0 -6 5 2 Ni-61 0.0 0.0 -7 5 2 Ni-62 0.0 0.0 -8 5 2 Ni-64 0.0 0.0 -9 5 2 Mn-55 0.0 0.0 -10 5 2 Mo-92 0.0 0.0 -11 5 2 Mo-94 0.0 0.0 -12 5 2 Mo-95 0.0 0.0 -13 5 2 Mo-96 0.0 0.0 -14 5 2 Mo-97 0.0 0.0 -15 5 2 Mo-98 0.0 0.0 -16 5 2 Mo-100 0.0 0.0 -17 5 2 Si-28 0.0 0.0 -18 5 2 Si-29 0.0 0.0 -19 5 2 Si-30 0.0 0.0 -20 5 2 Cr-50 0.0 0.0 -21 5 2 Cr-52 0.0 0.0 -22 5 2 Cr-53 0.0 0.0 -23 5 2 Cr-54 0.0 0.0 -24 5 2 C-Nat 0.0 0.0 -25 5 2 Cu-63 0.0 0.0 -26 5 2 Cu-65 0.0 0.0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0.0 0.0 -28 5 1 Fe-56 0.0 0.0 -29 5 1 Fe-57 0.0 0.0 -30 5 1 Fe-58 0.0 0.0 -31 5 1 Ni-58 0.0 0.0 -32 5 1 Ni-60 0.0 0.0 -33 5 1 Ni-61 0.0 0.0 -34 5 1 Ni-62 0.0 0.0 -35 5 1 Ni-64 0.0 0.0 -36 5 1 Mn-55 0.0 0.0 -37 5 1 Mo-92 0.0 0.0 -38 5 1 Mo-94 0.0 0.0 -39 5 1 Mo-95 0.0 0.0 -40 5 1 Mo-96 0.0 0.0 -41 5 1 Mo-97 0.0 0.0 -42 5 1 Mo-98 0.0 0.0 -43 5 1 Mo-100 0.0 0.0 -44 5 1 Si-28 0.0 0.0 -45 5 1 Si-29 0.0 0.0 -46 5 1 Si-30 0.0 0.0 -47 5 1 Cr-50 0.0 0.0 -48 5 1 Cr-52 0.0 0.0 -49 5 1 Cr-53 0.0 0.0 -50 5 1 Cr-54 0.0 0.0 -51 5 1 C-Nat 0.0 0.0 -52 5 1 Cu-63 0.0 0.0 -53 5 1 Cu-65 0.0 0.0 -0 5 2 Fe-54 0.0 0.0 -1 5 2 Fe-56 0.0 0.0 -2 5 2 Fe-57 0.0 0.0 -3 5 2 Fe-58 0.0 0.0 -4 5 2 Ni-58 0.0 0.0 -5 5 2 Ni-60 0.0 0.0 -6 5 2 Ni-61 0.0 0.0 -7 5 2 Ni-62 0.0 0.0 -8 5 2 Ni-64 0.0 0.0 -9 5 2 Mn-55 0.0 0.0 -10 5 2 Mo-92 0.0 0.0 -11 5 2 Mo-94 0.0 0.0 -12 5 2 Mo-95 0.0 0.0 -13 5 2 Mo-96 0.0 0.0 -14 5 2 Mo-97 0.0 0.0 -15 5 2 Mo-98 0.0 0.0 -16 5 2 Mo-100 0.0 0.0 -17 5 2 Si-28 0.0 0.0 -18 5 2 Si-29 0.0 0.0 -19 5 2 Si-30 0.0 0.0 -20 5 2 Cr-50 0.0 0.0 -21 5 2 Cr-52 0.0 0.0 -22 5 2 Cr-53 0.0 0.0 -23 5 2 Cr-54 0.0 0.0 -24 5 2 C-Nat 0.0 0.0 -25 5 2 Cu-63 0.0 0.0 -26 5 2 Cu-65 0.0 0.0 material group in group out nuclide mean std. dev. -81 5 1 1 Fe-54 0.0 0.0 -82 5 1 1 Fe-56 0.0 0.0 -83 5 1 1 Fe-57 0.0 0.0 -84 5 1 1 Fe-58 0.0 0.0 -85 5 1 1 Ni-58 0.0 0.0 -86 5 1 1 Ni-60 0.0 0.0 -87 5 1 1 Ni-61 0.0 0.0 -88 5 1 1 Ni-62 0.0 0.0 -89 5 1 1 Ni-64 0.0 0.0 -90 5 1 1 Mn-55 0.0 0.0 -91 5 1 1 Mo-92 0.0 0.0 -92 5 1 1 Mo-94 0.0 0.0 -93 5 1 1 Mo-95 0.0 0.0 -94 5 1 1 Mo-96 0.0 0.0 -95 5 1 1 Mo-97 0.0 0.0 -96 5 1 1 Mo-98 0.0 0.0 -97 5 1 1 Mo-100 0.0 0.0 -98 5 1 1 Si-28 0.0 0.0 -99 5 1 1 Si-29 0.0 0.0 -100 5 1 1 Si-30 0.0 0.0 -101 5 1 1 Cr-50 0.0 0.0 -102 5 1 1 Cr-52 0.0 0.0 -103 5 1 1 Cr-53 0.0 0.0 -104 5 1 1 Cr-54 0.0 0.0 -105 5 1 1 C-Nat 0.0 0.0 -106 5 1 1 Cu-63 0.0 0.0 -107 5 1 1 Cu-65 0.0 0.0 -54 5 1 2 Fe-54 0.0 0.0 -55 5 1 2 Fe-56 0.0 0.0 -56 5 1 2 Fe-57 0.0 0.0 -57 5 1 2 Fe-58 0.0 0.0 -58 5 1 2 Ni-58 0.0 0.0 -59 5 1 2 Ni-60 0.0 0.0 -60 5 1 2 Ni-61 0.0 0.0 -61 5 1 2 Ni-62 0.0 0.0 -62 5 1 2 Ni-64 0.0 0.0 -63 5 1 2 Mn-55 0.0 0.0 -64 5 1 2 Mo-92 0.0 0.0 -65 5 1 2 Mo-94 0.0 0.0 -66 5 1 2 Mo-95 0.0 0.0 -67 5 1 2 Mo-96 0.0 0.0 -68 5 1 2 Mo-97 0.0 0.0 -69 5 1 2 Mo-98 0.0 0.0 -70 5 1 2 Mo-100 0.0 0.0 -71 5 1 2 Si-28 0.0 0.0 -72 5 1 2 Si-29 0.0 0.0 -73 5 1 2 Si-30 0.0 0.0 -74 5 1 2 Cr-50 0.0 0.0 -75 5 1 2 Cr-52 0.0 0.0 -76 5 1 2 Cr-53 0.0 0.0 -77 5 1 2 Cr-54 0.0 0.0 -78 5 1 2 C-Nat 0.0 0.0 -79 5 1 2 Cu-63 0.0 0.0 -80 5 1 2 Cu-65 0.0 0.0 -27 5 2 1 Fe-54 0.0 0.0 -28 5 2 1 Fe-56 0.0 0.0 -29 5 2 1 Fe-57 0.0 0.0 -30 5 2 1 Fe-58 0.0 0.0 -31 5 2 1 Ni-58 0.0 0.0 -32 5 2 1 Ni-60 0.0 0.0 -33 5 2 1 Ni-61 0.0 0.0 -34 5 2 1 Ni-62 0.0 0.0 -35 5 2 1 Ni-64 0.0 0.0 -36 5 2 1 Mn-55 0.0 0.0 -37 5 2 1 Mo-92 0.0 0.0 -38 5 2 1 Mo-94 0.0 0.0 -39 5 2 1 Mo-95 0.0 0.0 -40 5 2 1 Mo-96 0.0 0.0 -41 5 2 1 Mo-97 0.0 0.0 -42 5 2 1 Mo-98 0.0 0.0 -43 5 2 1 Mo-100 0.0 0.0 -44 5 2 1 Si-28 0.0 0.0 -45 5 2 1 Si-29 0.0 0.0 -46 5 2 1 Si-30 0.0 0.0 -47 5 2 1 Cr-50 0.0 0.0 -48 5 2 1 Cr-52 0.0 0.0 -49 5 2 1 Cr-53 0.0 0.0 -50 5 2 1 Cr-54 0.0 0.0 -51 5 2 1 C-Nat 0.0 0.0 -52 5 2 1 Cu-63 0.0 0.0 -53 5 2 1 Cu-65 0.0 0.0 -0 5 2 2 Fe-54 0.0 0.0 -1 5 2 2 Fe-56 0.0 0.0 -2 5 2 2 Fe-57 0.0 0.0 -3 5 2 2 Fe-58 0.0 0.0 -4 5 2 2 Ni-58 0.0 0.0 -5 5 2 2 Ni-60 0.0 0.0 -6 5 2 2 Ni-61 0.0 0.0 -7 5 2 2 Ni-62 0.0 0.0 -8 5 2 2 Ni-64 0.0 0.0 -9 5 2 2 Mn-55 0.0 0.0 -10 5 2 2 Mo-92 0.0 0.0 -11 5 2 2 Mo-94 0.0 0.0 -12 5 2 2 Mo-95 0.0 0.0 -13 5 2 2 Mo-96 0.0 0.0 -14 5 2 2 Mo-97 0.0 0.0 -15 5 2 2 Mo-98 0.0 0.0 -16 5 2 2 Mo-100 0.0 0.0 -17 5 2 2 Si-28 0.0 0.0 -18 5 2 2 Si-29 0.0 0.0 -19 5 2 2 Si-30 0.0 0.0 -20 5 2 2 Cr-50 0.0 0.0 -21 5 2 2 Cr-52 0.0 0.0 -22 5 2 2 Cr-53 0.0 0.0 -23 5 2 2 Cr-54 0.0 0.0 -24 5 2 2 C-Nat 0.0 0.0 -25 5 2 2 Cu-63 0.0 0.0 -26 5 2 2 Cu-65 0.0 0.0 material group out nuclide mean std. dev. -27 5 1 Fe-54 0.0 0.0 -28 5 1 Fe-56 0.0 0.0 -29 5 1 Fe-57 0.0 0.0 -30 5 1 Fe-58 0.0 0.0 -31 5 1 Ni-58 0.0 0.0 -32 5 1 Ni-60 0.0 0.0 -33 5 1 Ni-61 0.0 0.0 -34 5 1 Ni-62 0.0 0.0 -35 5 1 Ni-64 0.0 0.0 -36 5 1 Mn-55 0.0 0.0 -37 5 1 Mo-92 0.0 0.0 -38 5 1 Mo-94 0.0 0.0 -39 5 1 Mo-95 0.0 0.0 -40 5 1 Mo-96 0.0 0.0 -41 5 1 Mo-97 0.0 0.0 -42 5 1 Mo-98 0.0 0.0 -43 5 1 Mo-100 0.0 0.0 -44 5 1 Si-28 0.0 0.0 -45 5 1 Si-29 0.0 0.0 -46 5 1 Si-30 0.0 0.0 -47 5 1 Cr-50 0.0 0.0 -48 5 1 Cr-52 0.0 0.0 -49 5 1 Cr-53 0.0 0.0 -50 5 1 Cr-54 0.0 0.0 -51 5 1 C-Nat 0.0 0.0 -52 5 1 Cu-63 0.0 0.0 -53 5 1 Cu-65 0.0 0.0 -0 5 2 Fe-54 0.0 0.0 -1 5 2 Fe-56 0.0 0.0 -2 5 2 Fe-57 0.0 0.0 -3 5 2 Fe-58 0.0 0.0 -4 5 2 Ni-58 0.0 0.0 -5 5 2 Ni-60 0.0 0.0 -6 5 2 Ni-61 0.0 0.0 -7 5 2 Ni-62 0.0 0.0 -8 5 2 Ni-64 0.0 0.0 -9 5 2 Mn-55 0.0 0.0 -10 5 2 Mo-92 0.0 0.0 -11 5 2 Mo-94 0.0 0.0 -12 5 2 Mo-95 0.0 0.0 -13 5 2 Mo-96 0.0 0.0 -14 5 2 Mo-97 0.0 0.0 -15 5 2 Mo-98 0.0 0.0 -16 5 2 Mo-100 0.0 0.0 -17 5 2 Si-28 0.0 0.0 -18 5 2 Si-29 0.0 0.0 -19 5 2 Si-30 0.0 0.0 -20 5 2 Cr-50 0.0 0.0 -21 5 2 Cr-52 0.0 0.0 -22 5 2 Cr-53 0.0 0.0 -23 5 2 Cr-54 0.0 0.0 -24 5 2 C-Nat 0.0 0.0 -25 5 2 Cu-63 0.0 0.0 -26 5 2 Cu-65 0.0 0.0 material group in nuclide mean std. dev. -21 6 1 H-1 0.0 0.0 -22 6 1 O-16 0.0 0.0 -23 6 1 B-10 0.0 0.0 -24 6 1 B-11 0.0 0.0 -25 6 1 Fe-54 0.0 0.0 -26 6 1 Fe-56 0.0 0.0 -27 6 1 Fe-57 0.0 0.0 -28 6 1 Fe-58 0.0 0.0 -29 6 1 Ni-58 0.0 0.0 -30 6 1 Ni-60 0.0 0.0 -31 6 1 Ni-61 0.0 0.0 -32 6 1 Ni-62 0.0 0.0 -33 6 1 Ni-64 0.0 0.0 -34 6 1 Mn-55 0.0 0.0 -35 6 1 Si-28 0.0 0.0 -36 6 1 Si-29 0.0 0.0 -37 6 1 Si-30 0.0 0.0 -38 6 1 Cr-50 0.0 0.0 -39 6 1 Cr-52 0.0 0.0 -40 6 1 Cr-53 0.0 0.0 -41 6 1 Cr-54 0.0 0.0 -0 6 2 H-1 0.0 0.0 -1 6 2 O-16 0.0 0.0 -2 6 2 B-10 0.0 0.0 -3 6 2 B-11 0.0 0.0 -4 6 2 Fe-54 0.0 0.0 -5 6 2 Fe-56 0.0 0.0 -6 6 2 Fe-57 0.0 0.0 -7 6 2 Fe-58 0.0 0.0 -8 6 2 Ni-58 0.0 0.0 -9 6 2 Ni-60 0.0 0.0 -10 6 2 Ni-61 0.0 0.0 -11 6 2 Ni-62 0.0 0.0 -12 6 2 Ni-64 0.0 0.0 -13 6 2 Mn-55 0.0 0.0 -14 6 2 Si-28 0.0 0.0 -15 6 2 Si-29 0.0 0.0 -16 6 2 Si-30 0.0 0.0 -17 6 2 Cr-50 0.0 0.0 -18 6 2 Cr-52 0.0 0.0 -19 6 2 Cr-53 0.0 0.0 -20 6 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 6 1 H-1 0.0 0.0 -22 6 1 O-16 0.0 0.0 -23 6 1 B-10 0.0 0.0 -24 6 1 B-11 0.0 0.0 -25 6 1 Fe-54 0.0 0.0 -26 6 1 Fe-56 0.0 0.0 -27 6 1 Fe-57 0.0 0.0 -28 6 1 Fe-58 0.0 0.0 -29 6 1 Ni-58 0.0 0.0 -30 6 1 Ni-60 0.0 0.0 -31 6 1 Ni-61 0.0 0.0 -32 6 1 Ni-62 0.0 0.0 -33 6 1 Ni-64 0.0 0.0 -34 6 1 Mn-55 0.0 0.0 -35 6 1 Si-28 0.0 0.0 -36 6 1 Si-29 0.0 0.0 -37 6 1 Si-30 0.0 0.0 -38 6 1 Cr-50 0.0 0.0 -39 6 1 Cr-52 0.0 0.0 -40 6 1 Cr-53 0.0 0.0 -41 6 1 Cr-54 0.0 0.0 -0 6 2 H-1 0.0 0.0 -1 6 2 O-16 0.0 0.0 -2 6 2 B-10 0.0 0.0 -3 6 2 B-11 0.0 0.0 -4 6 2 Fe-54 0.0 0.0 -5 6 2 Fe-56 0.0 0.0 -6 6 2 Fe-57 0.0 0.0 -7 6 2 Fe-58 0.0 0.0 -8 6 2 Ni-58 0.0 0.0 -9 6 2 Ni-60 0.0 0.0 -10 6 2 Ni-61 0.0 0.0 -11 6 2 Ni-62 0.0 0.0 -12 6 2 Ni-64 0.0 0.0 -13 6 2 Mn-55 0.0 0.0 -14 6 2 Si-28 0.0 0.0 -15 6 2 Si-29 0.0 0.0 -16 6 2 Si-30 0.0 0.0 -17 6 2 Cr-50 0.0 0.0 -18 6 2 Cr-52 0.0 0.0 -19 6 2 Cr-53 0.0 0.0 -20 6 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. -63 6 1 1 H-1 0.0 0.0 -64 6 1 1 O-16 0.0 0.0 -65 6 1 1 B-10 0.0 0.0 -66 6 1 1 B-11 0.0 0.0 -67 6 1 1 Fe-54 0.0 0.0 -68 6 1 1 Fe-56 0.0 0.0 -69 6 1 1 Fe-57 0.0 0.0 -70 6 1 1 Fe-58 0.0 0.0 -71 6 1 1 Ni-58 0.0 0.0 -72 6 1 1 Ni-60 0.0 0.0 -73 6 1 1 Ni-61 0.0 0.0 -74 6 1 1 Ni-62 0.0 0.0 -75 6 1 1 Ni-64 0.0 0.0 -76 6 1 1 Mn-55 0.0 0.0 -77 6 1 1 Si-28 0.0 0.0 -78 6 1 1 Si-29 0.0 0.0 -79 6 1 1 Si-30 0.0 0.0 -80 6 1 1 Cr-50 0.0 0.0 -81 6 1 1 Cr-52 0.0 0.0 -82 6 1 1 Cr-53 0.0 0.0 -83 6 1 1 Cr-54 0.0 0.0 -42 6 1 2 H-1 0.0 0.0 -43 6 1 2 O-16 0.0 0.0 -44 6 1 2 B-10 0.0 0.0 -45 6 1 2 B-11 0.0 0.0 -46 6 1 2 Fe-54 0.0 0.0 -47 6 1 2 Fe-56 0.0 0.0 -48 6 1 2 Fe-57 0.0 0.0 -49 6 1 2 Fe-58 0.0 0.0 -50 6 1 2 Ni-58 0.0 0.0 -51 6 1 2 Ni-60 0.0 0.0 -52 6 1 2 Ni-61 0.0 0.0 -53 6 1 2 Ni-62 0.0 0.0 -54 6 1 2 Ni-64 0.0 0.0 -55 6 1 2 Mn-55 0.0 0.0 -56 6 1 2 Si-28 0.0 0.0 -57 6 1 2 Si-29 0.0 0.0 -58 6 1 2 Si-30 0.0 0.0 -59 6 1 2 Cr-50 0.0 0.0 -60 6 1 2 Cr-52 0.0 0.0 -61 6 1 2 Cr-53 0.0 0.0 -62 6 1 2 Cr-54 0.0 0.0 -21 6 2 1 H-1 0.0 0.0 -22 6 2 1 O-16 0.0 0.0 -23 6 2 1 B-10 0.0 0.0 -24 6 2 1 B-11 0.0 0.0 -25 6 2 1 Fe-54 0.0 0.0 -26 6 2 1 Fe-56 0.0 0.0 -27 6 2 1 Fe-57 0.0 0.0 -28 6 2 1 Fe-58 0.0 0.0 -29 6 2 1 Ni-58 0.0 0.0 -30 6 2 1 Ni-60 0.0 0.0 -31 6 2 1 Ni-61 0.0 0.0 -32 6 2 1 Ni-62 0.0 0.0 -33 6 2 1 Ni-64 0.0 0.0 -34 6 2 1 Mn-55 0.0 0.0 -35 6 2 1 Si-28 0.0 0.0 -36 6 2 1 Si-29 0.0 0.0 -37 6 2 1 Si-30 0.0 0.0 -38 6 2 1 Cr-50 0.0 0.0 -39 6 2 1 Cr-52 0.0 0.0 -40 6 2 1 Cr-53 0.0 0.0 -41 6 2 1 Cr-54 0.0 0.0 -0 6 2 2 H-1 0.0 0.0 -1 6 2 2 O-16 0.0 0.0 -2 6 2 2 B-10 0.0 0.0 -3 6 2 2 B-11 0.0 0.0 -4 6 2 2 Fe-54 0.0 0.0 -5 6 2 2 Fe-56 0.0 0.0 -6 6 2 2 Fe-57 0.0 0.0 -7 6 2 2 Fe-58 0.0 0.0 -8 6 2 2 Ni-58 0.0 0.0 -9 6 2 2 Ni-60 0.0 0.0 -10 6 2 2 Ni-61 0.0 0.0 -11 6 2 2 Ni-62 0.0 0.0 -12 6 2 2 Ni-64 0.0 0.0 -13 6 2 2 Mn-55 0.0 0.0 -14 6 2 2 Si-28 0.0 0.0 -15 6 2 2 Si-29 0.0 0.0 -16 6 2 2 Si-30 0.0 0.0 -17 6 2 2 Cr-50 0.0 0.0 -18 6 2 2 Cr-52 0.0 0.0 -19 6 2 2 Cr-53 0.0 0.0 -20 6 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. -21 6 1 H-1 0.0 0.0 -22 6 1 O-16 0.0 0.0 -23 6 1 B-10 0.0 0.0 -24 6 1 B-11 0.0 0.0 -25 6 1 Fe-54 0.0 0.0 -26 6 1 Fe-56 0.0 0.0 -27 6 1 Fe-57 0.0 0.0 -28 6 1 Fe-58 0.0 0.0 -29 6 1 Ni-58 0.0 0.0 -30 6 1 Ni-60 0.0 0.0 -31 6 1 Ni-61 0.0 0.0 -32 6 1 Ni-62 0.0 0.0 -33 6 1 Ni-64 0.0 0.0 -34 6 1 Mn-55 0.0 0.0 -35 6 1 Si-28 0.0 0.0 -36 6 1 Si-29 0.0 0.0 -37 6 1 Si-30 0.0 0.0 -38 6 1 Cr-50 0.0 0.0 -39 6 1 Cr-52 0.0 0.0 -40 6 1 Cr-53 0.0 0.0 -41 6 1 Cr-54 0.0 0.0 -0 6 2 H-1 0.0 0.0 -1 6 2 O-16 0.0 0.0 -2 6 2 B-10 0.0 0.0 -3 6 2 B-11 0.0 0.0 -4 6 2 Fe-54 0.0 0.0 -5 6 2 Fe-56 0.0 0.0 -6 6 2 Fe-57 0.0 0.0 -7 6 2 Fe-58 0.0 0.0 -8 6 2 Ni-58 0.0 0.0 -9 6 2 Ni-60 0.0 0.0 -10 6 2 Ni-61 0.0 0.0 -11 6 2 Ni-62 0.0 0.0 -12 6 2 Ni-64 0.0 0.0 -13 6 2 Mn-55 0.0 0.0 -14 6 2 Si-28 0.0 0.0 -15 6 2 Si-29 0.0 0.0 -16 6 2 Si-30 0.0 0.0 -17 6 2 Cr-50 0.0 0.0 -18 6 2 Cr-52 0.0 0.0 -19 6 2 Cr-53 0.0 0.0 -20 6 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 7 1 H-1 0.0 0.0 -22 7 1 O-16 0.0 0.0 -23 7 1 B-10 0.0 0.0 -24 7 1 B-11 0.0 0.0 -25 7 1 Fe-54 0.0 0.0 -26 7 1 Fe-56 0.0 0.0 -27 7 1 Fe-57 0.0 0.0 -28 7 1 Fe-58 0.0 0.0 -29 7 1 Ni-58 0.0 0.0 -30 7 1 Ni-60 0.0 0.0 -31 7 1 Ni-61 0.0 0.0 -32 7 1 Ni-62 0.0 0.0 -33 7 1 Ni-64 0.0 0.0 -34 7 1 Mn-55 0.0 0.0 -35 7 1 Si-28 0.0 0.0 -36 7 1 Si-29 0.0 0.0 -37 7 1 Si-30 0.0 0.0 -38 7 1 Cr-50 0.0 0.0 -39 7 1 Cr-52 0.0 0.0 -40 7 1 Cr-53 0.0 0.0 -41 7 1 Cr-54 0.0 0.0 -0 7 2 H-1 0.0 0.0 -1 7 2 O-16 0.0 0.0 -2 7 2 B-10 0.0 0.0 -3 7 2 B-11 0.0 0.0 -4 7 2 Fe-54 0.0 0.0 -5 7 2 Fe-56 0.0 0.0 -6 7 2 Fe-57 0.0 0.0 -7 7 2 Fe-58 0.0 0.0 -8 7 2 Ni-58 0.0 0.0 -9 7 2 Ni-60 0.0 0.0 -10 7 2 Ni-61 0.0 0.0 -11 7 2 Ni-62 0.0 0.0 -12 7 2 Ni-64 0.0 0.0 -13 7 2 Mn-55 0.0 0.0 -14 7 2 Si-28 0.0 0.0 -15 7 2 Si-29 0.0 0.0 -16 7 2 Si-30 0.0 0.0 -17 7 2 Cr-50 0.0 0.0 -18 7 2 Cr-52 0.0 0.0 -19 7 2 Cr-53 0.0 0.0 -20 7 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 7 1 H-1 0.0 0.0 -22 7 1 O-16 0.0 0.0 -23 7 1 B-10 0.0 0.0 -24 7 1 B-11 0.0 0.0 -25 7 1 Fe-54 0.0 0.0 -26 7 1 Fe-56 0.0 0.0 -27 7 1 Fe-57 0.0 0.0 -28 7 1 Fe-58 0.0 0.0 -29 7 1 Ni-58 0.0 0.0 -30 7 1 Ni-60 0.0 0.0 -31 7 1 Ni-61 0.0 0.0 -32 7 1 Ni-62 0.0 0.0 -33 7 1 Ni-64 0.0 0.0 -34 7 1 Mn-55 0.0 0.0 -35 7 1 Si-28 0.0 0.0 -36 7 1 Si-29 0.0 0.0 -37 7 1 Si-30 0.0 0.0 -38 7 1 Cr-50 0.0 0.0 -39 7 1 Cr-52 0.0 0.0 -40 7 1 Cr-53 0.0 0.0 -41 7 1 Cr-54 0.0 0.0 -0 7 2 H-1 0.0 0.0 -1 7 2 O-16 0.0 0.0 -2 7 2 B-10 0.0 0.0 -3 7 2 B-11 0.0 0.0 -4 7 2 Fe-54 0.0 0.0 -5 7 2 Fe-56 0.0 0.0 -6 7 2 Fe-57 0.0 0.0 -7 7 2 Fe-58 0.0 0.0 -8 7 2 Ni-58 0.0 0.0 -9 7 2 Ni-60 0.0 0.0 -10 7 2 Ni-61 0.0 0.0 -11 7 2 Ni-62 0.0 0.0 -12 7 2 Ni-64 0.0 0.0 -13 7 2 Mn-55 0.0 0.0 -14 7 2 Si-28 0.0 0.0 -15 7 2 Si-29 0.0 0.0 -16 7 2 Si-30 0.0 0.0 -17 7 2 Cr-50 0.0 0.0 -18 7 2 Cr-52 0.0 0.0 -19 7 2 Cr-53 0.0 0.0 -20 7 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. -63 7 1 1 H-1 0.0 0.0 -64 7 1 1 O-16 0.0 0.0 -65 7 1 1 B-10 0.0 0.0 -66 7 1 1 B-11 0.0 0.0 -67 7 1 1 Fe-54 0.0 0.0 -68 7 1 1 Fe-56 0.0 0.0 -69 7 1 1 Fe-57 0.0 0.0 -70 7 1 1 Fe-58 0.0 0.0 -71 7 1 1 Ni-58 0.0 0.0 -72 7 1 1 Ni-60 0.0 0.0 -73 7 1 1 Ni-61 0.0 0.0 -74 7 1 1 Ni-62 0.0 0.0 -75 7 1 1 Ni-64 0.0 0.0 -76 7 1 1 Mn-55 0.0 0.0 -77 7 1 1 Si-28 0.0 0.0 -78 7 1 1 Si-29 0.0 0.0 -79 7 1 1 Si-30 0.0 0.0 -80 7 1 1 Cr-50 0.0 0.0 -81 7 1 1 Cr-52 0.0 0.0 -82 7 1 1 Cr-53 0.0 0.0 -83 7 1 1 Cr-54 0.0 0.0 -42 7 1 2 H-1 0.0 0.0 -43 7 1 2 O-16 0.0 0.0 -44 7 1 2 B-10 0.0 0.0 -45 7 1 2 B-11 0.0 0.0 -46 7 1 2 Fe-54 0.0 0.0 -47 7 1 2 Fe-56 0.0 0.0 -48 7 1 2 Fe-57 0.0 0.0 -49 7 1 2 Fe-58 0.0 0.0 -50 7 1 2 Ni-58 0.0 0.0 -51 7 1 2 Ni-60 0.0 0.0 -52 7 1 2 Ni-61 0.0 0.0 -53 7 1 2 Ni-62 0.0 0.0 -54 7 1 2 Ni-64 0.0 0.0 -55 7 1 2 Mn-55 0.0 0.0 -56 7 1 2 Si-28 0.0 0.0 -57 7 1 2 Si-29 0.0 0.0 -58 7 1 2 Si-30 0.0 0.0 -59 7 1 2 Cr-50 0.0 0.0 -60 7 1 2 Cr-52 0.0 0.0 -61 7 1 2 Cr-53 0.0 0.0 -62 7 1 2 Cr-54 0.0 0.0 -21 7 2 1 H-1 0.0 0.0 -22 7 2 1 O-16 0.0 0.0 -23 7 2 1 B-10 0.0 0.0 -24 7 2 1 B-11 0.0 0.0 -25 7 2 1 Fe-54 0.0 0.0 -26 7 2 1 Fe-56 0.0 0.0 -27 7 2 1 Fe-57 0.0 0.0 -28 7 2 1 Fe-58 0.0 0.0 -29 7 2 1 Ni-58 0.0 0.0 -30 7 2 1 Ni-60 0.0 0.0 -31 7 2 1 Ni-61 0.0 0.0 -32 7 2 1 Ni-62 0.0 0.0 -33 7 2 1 Ni-64 0.0 0.0 -34 7 2 1 Mn-55 0.0 0.0 -35 7 2 1 Si-28 0.0 0.0 -36 7 2 1 Si-29 0.0 0.0 -37 7 2 1 Si-30 0.0 0.0 -38 7 2 1 Cr-50 0.0 0.0 -39 7 2 1 Cr-52 0.0 0.0 -40 7 2 1 Cr-53 0.0 0.0 -41 7 2 1 Cr-54 0.0 0.0 -0 7 2 2 H-1 0.0 0.0 -1 7 2 2 O-16 0.0 0.0 -2 7 2 2 B-10 0.0 0.0 -3 7 2 2 B-11 0.0 0.0 -4 7 2 2 Fe-54 0.0 0.0 -5 7 2 2 Fe-56 0.0 0.0 -6 7 2 2 Fe-57 0.0 0.0 -7 7 2 2 Fe-58 0.0 0.0 -8 7 2 2 Ni-58 0.0 0.0 -9 7 2 2 Ni-60 0.0 0.0 -10 7 2 2 Ni-61 0.0 0.0 -11 7 2 2 Ni-62 0.0 0.0 -12 7 2 2 Ni-64 0.0 0.0 -13 7 2 2 Mn-55 0.0 0.0 -14 7 2 2 Si-28 0.0 0.0 -15 7 2 2 Si-29 0.0 0.0 -16 7 2 2 Si-30 0.0 0.0 -17 7 2 2 Cr-50 0.0 0.0 -18 7 2 2 Cr-52 0.0 0.0 -19 7 2 2 Cr-53 0.0 0.0 -20 7 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. -21 7 1 H-1 0.0 0.0 -22 7 1 O-16 0.0 0.0 -23 7 1 B-10 0.0 0.0 -24 7 1 B-11 0.0 0.0 -25 7 1 Fe-54 0.0 0.0 -26 7 1 Fe-56 0.0 0.0 -27 7 1 Fe-57 0.0 0.0 -28 7 1 Fe-58 0.0 0.0 -29 7 1 Ni-58 0.0 0.0 -30 7 1 Ni-60 0.0 0.0 -31 7 1 Ni-61 0.0 0.0 -32 7 1 Ni-62 0.0 0.0 -33 7 1 Ni-64 0.0 0.0 -34 7 1 Mn-55 0.0 0.0 -35 7 1 Si-28 0.0 0.0 -36 7 1 Si-29 0.0 0.0 -37 7 1 Si-30 0.0 0.0 -38 7 1 Cr-50 0.0 0.0 -39 7 1 Cr-52 0.0 0.0 -40 7 1 Cr-53 0.0 0.0 -41 7 1 Cr-54 0.0 0.0 -0 7 2 H-1 0.0 0.0 -1 7 2 O-16 0.0 0.0 -2 7 2 B-10 0.0 0.0 -3 7 2 B-11 0.0 0.0 -4 7 2 Fe-54 0.0 0.0 -5 7 2 Fe-56 0.0 0.0 -6 7 2 Fe-57 0.0 0.0 -7 7 2 Fe-58 0.0 0.0 -8 7 2 Ni-58 0.0 0.0 -9 7 2 Ni-60 0.0 0.0 -10 7 2 Ni-61 0.0 0.0 -11 7 2 Ni-62 0.0 0.0 -12 7 2 Ni-64 0.0 0.0 -13 7 2 Mn-55 0.0 0.0 -14 7 2 Si-28 0.0 0.0 -15 7 2 Si-29 0.0 0.0 -16 7 2 Si-30 0.0 0.0 -17 7 2 Cr-50 0.0 0.0 -18 7 2 Cr-52 0.0 0.0 -19 7 2 Cr-53 0.0 0.0 -20 7 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 8 1 H-1 0.0 0.0 -22 8 1 O-16 0.0 0.0 -23 8 1 B-10 0.0 0.0 -24 8 1 B-11 0.0 0.0 -25 8 1 Fe-54 0.0 0.0 -26 8 1 Fe-56 0.0 0.0 -27 8 1 Fe-57 0.0 0.0 -28 8 1 Fe-58 0.0 0.0 -29 8 1 Ni-58 0.0 0.0 -30 8 1 Ni-60 0.0 0.0 -31 8 1 Ni-61 0.0 0.0 -32 8 1 Ni-62 0.0 0.0 -33 8 1 Ni-64 0.0 0.0 -34 8 1 Mn-55 0.0 0.0 -35 8 1 Si-28 0.0 0.0 -36 8 1 Si-29 0.0 0.0 -37 8 1 Si-30 0.0 0.0 -38 8 1 Cr-50 0.0 0.0 -39 8 1 Cr-52 0.0 0.0 -40 8 1 Cr-53 0.0 0.0 -41 8 1 Cr-54 0.0 0.0 -0 8 2 H-1 0.0 0.0 -1 8 2 O-16 0.0 0.0 -2 8 2 B-10 0.0 0.0 -3 8 2 B-11 0.0 0.0 -4 8 2 Fe-54 0.0 0.0 -5 8 2 Fe-56 0.0 0.0 -6 8 2 Fe-57 0.0 0.0 -7 8 2 Fe-58 0.0 0.0 -8 8 2 Ni-58 0.0 0.0 -9 8 2 Ni-60 0.0 0.0 -10 8 2 Ni-61 0.0 0.0 -11 8 2 Ni-62 0.0 0.0 -12 8 2 Ni-64 0.0 0.0 -13 8 2 Mn-55 0.0 0.0 -14 8 2 Si-28 0.0 0.0 -15 8 2 Si-29 0.0 0.0 -16 8 2 Si-30 0.0 0.0 -17 8 2 Cr-50 0.0 0.0 -18 8 2 Cr-52 0.0 0.0 -19 8 2 Cr-53 0.0 0.0 -20 8 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. -21 8 1 H-1 0.0 0.0 -22 8 1 O-16 0.0 0.0 -23 8 1 B-10 0.0 0.0 -24 8 1 B-11 0.0 0.0 -25 8 1 Fe-54 0.0 0.0 -26 8 1 Fe-56 0.0 0.0 -27 8 1 Fe-57 0.0 0.0 -28 8 1 Fe-58 0.0 0.0 -29 8 1 Ni-58 0.0 0.0 -30 8 1 Ni-60 0.0 0.0 -31 8 1 Ni-61 0.0 0.0 -32 8 1 Ni-62 0.0 0.0 -33 8 1 Ni-64 0.0 0.0 -34 8 1 Mn-55 0.0 0.0 -35 8 1 Si-28 0.0 0.0 -36 8 1 Si-29 0.0 0.0 -37 8 1 Si-30 0.0 0.0 -38 8 1 Cr-50 0.0 0.0 -39 8 1 Cr-52 0.0 0.0 -40 8 1 Cr-53 0.0 0.0 -41 8 1 Cr-54 0.0 0.0 -0 8 2 H-1 0.0 0.0 -1 8 2 O-16 0.0 0.0 -2 8 2 B-10 0.0 0.0 -3 8 2 B-11 0.0 0.0 -4 8 2 Fe-54 0.0 0.0 -5 8 2 Fe-56 0.0 0.0 -6 8 2 Fe-57 0.0 0.0 -7 8 2 Fe-58 0.0 0.0 -8 8 2 Ni-58 0.0 0.0 -9 8 2 Ni-60 0.0 0.0 -10 8 2 Ni-61 0.0 0.0 -11 8 2 Ni-62 0.0 0.0 -12 8 2 Ni-64 0.0 0.0 -13 8 2 Mn-55 0.0 0.0 -14 8 2 Si-28 0.0 0.0 -15 8 2 Si-29 0.0 0.0 -16 8 2 Si-30 0.0 0.0 -17 8 2 Cr-50 0.0 0.0 -18 8 2 Cr-52 0.0 0.0 -19 8 2 Cr-53 0.0 0.0 -20 8 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. -63 8 1 1 H-1 0.0 0.0 -64 8 1 1 O-16 0.0 0.0 -65 8 1 1 B-10 0.0 0.0 -66 8 1 1 B-11 0.0 0.0 -67 8 1 1 Fe-54 0.0 0.0 -68 8 1 1 Fe-56 0.0 0.0 -69 8 1 1 Fe-57 0.0 0.0 -70 8 1 1 Fe-58 0.0 0.0 -71 8 1 1 Ni-58 0.0 0.0 -72 8 1 1 Ni-60 0.0 0.0 -73 8 1 1 Ni-61 0.0 0.0 -74 8 1 1 Ni-62 0.0 0.0 -75 8 1 1 Ni-64 0.0 0.0 -76 8 1 1 Mn-55 0.0 0.0 -77 8 1 1 Si-28 0.0 0.0 -78 8 1 1 Si-29 0.0 0.0 -79 8 1 1 Si-30 0.0 0.0 -80 8 1 1 Cr-50 0.0 0.0 -81 8 1 1 Cr-52 0.0 0.0 -82 8 1 1 Cr-53 0.0 0.0 -83 8 1 1 Cr-54 0.0 0.0 -42 8 1 2 H-1 0.0 0.0 -43 8 1 2 O-16 0.0 0.0 -44 8 1 2 B-10 0.0 0.0 -45 8 1 2 B-11 0.0 0.0 -46 8 1 2 Fe-54 0.0 0.0 -47 8 1 2 Fe-56 0.0 0.0 -48 8 1 2 Fe-57 0.0 0.0 -49 8 1 2 Fe-58 0.0 0.0 -50 8 1 2 Ni-58 0.0 0.0 -51 8 1 2 Ni-60 0.0 0.0 -52 8 1 2 Ni-61 0.0 0.0 -53 8 1 2 Ni-62 0.0 0.0 -54 8 1 2 Ni-64 0.0 0.0 -55 8 1 2 Mn-55 0.0 0.0 -56 8 1 2 Si-28 0.0 0.0 -57 8 1 2 Si-29 0.0 0.0 -58 8 1 2 Si-30 0.0 0.0 -59 8 1 2 Cr-50 0.0 0.0 -60 8 1 2 Cr-52 0.0 0.0 -61 8 1 2 Cr-53 0.0 0.0 -62 8 1 2 Cr-54 0.0 0.0 -21 8 2 1 H-1 0.0 0.0 -22 8 2 1 O-16 0.0 0.0 -23 8 2 1 B-10 0.0 0.0 -24 8 2 1 B-11 0.0 0.0 -25 8 2 1 Fe-54 0.0 0.0 -26 8 2 1 Fe-56 0.0 0.0 -27 8 2 1 Fe-57 0.0 0.0 -28 8 2 1 Fe-58 0.0 0.0 -29 8 2 1 Ni-58 0.0 0.0 -30 8 2 1 Ni-60 0.0 0.0 -31 8 2 1 Ni-61 0.0 0.0 -32 8 2 1 Ni-62 0.0 0.0 -33 8 2 1 Ni-64 0.0 0.0 -34 8 2 1 Mn-55 0.0 0.0 -35 8 2 1 Si-28 0.0 0.0 -36 8 2 1 Si-29 0.0 0.0 -37 8 2 1 Si-30 0.0 0.0 -38 8 2 1 Cr-50 0.0 0.0 -39 8 2 1 Cr-52 0.0 0.0 -40 8 2 1 Cr-53 0.0 0.0 -41 8 2 1 Cr-54 0.0 0.0 -0 8 2 2 H-1 0.0 0.0 -1 8 2 2 O-16 0.0 0.0 -2 8 2 2 B-10 0.0 0.0 -3 8 2 2 B-11 0.0 0.0 -4 8 2 2 Fe-54 0.0 0.0 -5 8 2 2 Fe-56 0.0 0.0 -6 8 2 2 Fe-57 0.0 0.0 -7 8 2 2 Fe-58 0.0 0.0 -8 8 2 2 Ni-58 0.0 0.0 -9 8 2 2 Ni-60 0.0 0.0 -10 8 2 2 Ni-61 0.0 0.0 -11 8 2 2 Ni-62 0.0 0.0 -12 8 2 2 Ni-64 0.0 0.0 -13 8 2 2 Mn-55 0.0 0.0 -14 8 2 2 Si-28 0.0 0.0 -15 8 2 2 Si-29 0.0 0.0 -16 8 2 2 Si-30 0.0 0.0 -17 8 2 2 Cr-50 0.0 0.0 -18 8 2 2 Cr-52 0.0 0.0 -19 8 2 2 Cr-53 0.0 0.0 -20 8 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. -21 8 1 H-1 0.0 0.0 -22 8 1 O-16 0.0 0.0 -23 8 1 B-10 0.0 0.0 -24 8 1 B-11 0.0 0.0 -25 8 1 Fe-54 0.0 0.0 -26 8 1 Fe-56 0.0 0.0 -27 8 1 Fe-57 0.0 0.0 -28 8 1 Fe-58 0.0 0.0 -29 8 1 Ni-58 0.0 0.0 -30 8 1 Ni-60 0.0 0.0 -31 8 1 Ni-61 0.0 0.0 -32 8 1 Ni-62 0.0 0.0 -33 8 1 Ni-64 0.0 0.0 -34 8 1 Mn-55 0.0 0.0 -35 8 1 Si-28 0.0 0.0 -36 8 1 Si-29 0.0 0.0 -37 8 1 Si-30 0.0 0.0 -38 8 1 Cr-50 0.0 0.0 -39 8 1 Cr-52 0.0 0.0 -40 8 1 Cr-53 0.0 0.0 -41 8 1 Cr-54 0.0 0.0 -0 8 2 H-1 0.0 0.0 -1 8 2 O-16 0.0 0.0 -2 8 2 B-10 0.0 0.0 -3 8 2 B-11 0.0 0.0 -4 8 2 Fe-54 0.0 0.0 -5 8 2 Fe-56 0.0 0.0 -6 8 2 Fe-57 0.0 0.0 -7 8 2 Fe-58 0.0 0.0 -8 8 2 Ni-58 0.0 0.0 -9 8 2 Ni-60 0.0 0.0 -10 8 2 Ni-61 0.0 0.0 -11 8 2 Ni-62 0.0 0.0 -12 8 2 Ni-64 0.0 0.0 -13 8 2 Mn-55 0.0 0.0 -14 8 2 Si-28 0.0 0.0 -15 8 2 Si-29 0.0 0.0 -16 8 2 Si-30 0.0 0.0 -17 8 2 Cr-50 0.0 0.0 -18 8 2 Cr-52 0.0 0.0 -19 8 2 Cr-53 0.0 0.0 -20 8 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +4 4 1 H-1 0 0 +5 4 1 O-16 0 0 +6 4 1 B-10 0 0 +7 4 1 B-11 0 0 +0 4 2 H-1 0 0 +1 4 2 O-16 0 0 +2 4 2 B-10 0 0 +3 4 2 B-11 0 0 material group in group out nuclide moment mean +48 4 1 1 H-1 P0 0.468964 +49 4 1 1 H-1 P1 0.317668 +50 4 1 1 H-1 P2 0.127157 +51 4 1 1 H-1 P3 0.009844 +52 4 1 1 O-16 P0 0.074692 +53 4 1 1 O-16 P1 0.008147 +54 4 1 1 O-16 P2 0.003915 +55 4 1 1 O-16 P3 0.002322 +56 4 1 1 B-10 P0 0.000000 +57 4 1 1 B-10 P1 0.000000 +58 4 1 1 B-10 P2 0.000000 +59 4 1 1 B-10 P3 0.000000 +60 4 1 1 B-11 P0 0.000285 +61 4 1 1 B-11 P1 0.000196 +62 4 1 1 B-11 P2 0.000060 +63 4 1 1 B-11 P3 -0.000062 +32 4 1 2 H-1 P0 0.023662 +33 4 1 2 H-1 P1 0.007526 +34 4 1 2 H-1 P2 -0.002730 +35 4 1 2 H-1 P3 -0.003140 +36 4 1 2 O-16 P0 0.000000 +37 4 1 2 O-16 P1 0.000000 +38 4 1 2 O-16 P2 0.000000 +39 4 1 2 O-16 P3 0.000000 +40 4 1 2 B-10 P0 0.000000 +41 4 1 2 B-10 P1 0.000000 +42 4 1 2 B-10 P2 0.000000 +43 4 1 2 B-10 P3 0.000000 +44 4 1 2 B-11 P0 0.000000 +45 4 1 2 B-11 P1 0.000000 +46 4 1 2 B-11 P2 0.000000 +47 4 1 2 B-11 P3 0.000000 +16 4 2 1 H-1 P0 0.000000 +17 4 2 1 H-1 P1 0.000000 +18 4 2 1 H-1 P2 0.000000 +19 4 2 1 H-1 P3 0.000000 +20 4 2 1 O-16 P0 0.000000 +21 4 2 1 O-16 P1 0.000000 +22 4 2 1 O-16 P2 0.000000 +23 4 2 1 O-16 P3 0.000000 +24 4 2 1 B-10 P0 0.000000 +25 4 2 1 B-10 P1 0.000000 +26 4 2 1 B-10 P2 0.000000 +27 4 2 1 B-10 P3 0.000000 +28 4 2 1 B-11 P0 0.000000 +29 4 2 1 B-11 P1 0.000000 +30 4 2 1 B-11 P2 0.000000 +31 4 2 1 B-11 P3 0.000000 +0 4 2 2 H-1 P0 1.672065 +1 4 2 2 H-1 P1 0.493252 +2 4 2 2 H-1 P2 0.104511 +3 4 2 2 H-1 P3 0.039078 +4 4 2 2 O-16 P0 0.092584 +5 4 2 2 O-16 P1 0.007443 +6 4 2 2 O-16 P2 -0.005485 +7 4 2 2 O-16 P3 -0.006103 +8 4 2 2 B-10 P0 0.000000 +9 4 2 2 B-10 P1 0.000000 +10 4 2 2 B-10 P2 0.000000 +11 4 2 2 B-10 P3 0.000000 +12 4 2 2 B-11 P0 0.000000 +13 4 2 2 B-11 P1 0.000000 +14 4 2 2 B-11 P2 0.000000 +15 4 2 2 B-11 P3 0.000000 material group out nuclide mean std. dev. +4 4 1 H-1 0 0 +5 4 1 O-16 0 0 +6 4 1 B-10 0 0 +7 4 1 B-11 0 0 +0 4 2 H-1 0 0 +1 4 2 O-16 0 0 +2 4 2 B-10 0 0 +3 4 2 B-11 0 0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0 0 +28 5 1 Fe-56 0 0 +29 5 1 Fe-57 0 0 +30 5 1 Fe-58 0 0 +31 5 1 Ni-58 0 0 +32 5 1 Ni-60 0 0 +33 5 1 Ni-61 0 0 +34 5 1 Ni-62 0 0 +35 5 1 Ni-64 0 0 +36 5 1 Mn-55 0 0 +37 5 1 Mo-92 0 0 +38 5 1 Mo-94 0 0 +39 5 1 Mo-95 0 0 +40 5 1 Mo-96 0 0 +41 5 1 Mo-97 0 0 +42 5 1 Mo-98 0 0 +43 5 1 Mo-100 0 0 +44 5 1 Si-28 0 0 +45 5 1 Si-29 0 0 +46 5 1 Si-30 0 0 +47 5 1 Cr-50 0 0 +48 5 1 Cr-52 0 0 +49 5 1 Cr-53 0 0 +50 5 1 Cr-54 0 0 +51 5 1 C-Nat 0 0 +52 5 1 Cu-63 0 0 +53 5 1 Cu-65 0 0 +0 5 2 Fe-54 0 0 +1 5 2 Fe-56 0 0 +2 5 2 Fe-57 0 0 +3 5 2 Fe-58 0 0 +4 5 2 Ni-58 0 0 +5 5 2 Ni-60 0 0 +6 5 2 Ni-61 0 0 +7 5 2 Ni-62 0 0 +8 5 2 Ni-64 0 0 +9 5 2 Mn-55 0 0 +10 5 2 Mo-92 0 0 +11 5 2 Mo-94 0 0 +12 5 2 Mo-95 0 0 +13 5 2 Mo-96 0 0 +14 5 2 Mo-97 0 0 +15 5 2 Mo-98 0 0 +16 5 2 Mo-100 0 0 +17 5 2 Si-28 0 0 +18 5 2 Si-29 0 0 +19 5 2 Si-30 0 0 +20 5 2 Cr-50 0 0 +21 5 2 Cr-52 0 0 +22 5 2 Cr-53 0 0 +23 5 2 Cr-54 0 0 +24 5 2 C-Nat 0 0 +25 5 2 Cu-63 0 0 +26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0 0 +28 5 1 Fe-56 0 0 +29 5 1 Fe-57 0 0 +30 5 1 Fe-58 0 0 +31 5 1 Ni-58 0 0 +32 5 1 Ni-60 0 0 +33 5 1 Ni-61 0 0 +34 5 1 Ni-62 0 0 +35 5 1 Ni-64 0 0 +36 5 1 Mn-55 0 0 +37 5 1 Mo-92 0 0 +38 5 1 Mo-94 0 0 +39 5 1 Mo-95 0 0 +40 5 1 Mo-96 0 0 +41 5 1 Mo-97 0 0 +42 5 1 Mo-98 0 0 +43 5 1 Mo-100 0 0 +44 5 1 Si-28 0 0 +45 5 1 Si-29 0 0 +46 5 1 Si-30 0 0 +47 5 1 Cr-50 0 0 +48 5 1 Cr-52 0 0 +49 5 1 Cr-53 0 0 +50 5 1 Cr-54 0 0 +51 5 1 C-Nat 0 0 +52 5 1 Cu-63 0 0 +53 5 1 Cu-65 0 0 +0 5 2 Fe-54 0 0 +1 5 2 Fe-56 0 0 +2 5 2 Fe-57 0 0 +3 5 2 Fe-58 0 0 +4 5 2 Ni-58 0 0 +5 5 2 Ni-60 0 0 +6 5 2 Ni-61 0 0 +7 5 2 Ni-62 0 0 +8 5 2 Ni-64 0 0 +9 5 2 Mn-55 0 0 +10 5 2 Mo-92 0 0 +11 5 2 Mo-94 0 0 +12 5 2 Mo-95 0 0 +13 5 2 Mo-96 0 0 +14 5 2 Mo-97 0 0 +15 5 2 Mo-98 0 0 +16 5 2 Mo-100 0 0 +17 5 2 Si-28 0 0 +18 5 2 Si-29 0 0 +19 5 2 Si-30 0 0 +20 5 2 Cr-50 0 0 +21 5 2 Cr-52 0 0 +22 5 2 Cr-53 0 0 +23 5 2 Cr-54 0 0 +24 5 2 C-Nat 0 0 +25 5 2 Cu-63 0 0 +26 5 2 Cu-65 0 0 material group in group out nuclide moment mean +324 5 1 1 Fe-54 P0 0 +325 5 1 1 Fe-54 P1 0 +326 5 1 1 Fe-54 P2 0 +327 5 1 1 Fe-54 P3 0 +328 5 1 1 Fe-56 P0 0 +329 5 1 1 Fe-56 P1 0 +330 5 1 1 Fe-56 P2 0 +331 5 1 1 Fe-56 P3 0 +332 5 1 1 Fe-57 P0 0 +333 5 1 1 Fe-57 P1 0 +334 5 1 1 Fe-57 P2 0 +335 5 1 1 Fe-57 P3 0 +336 5 1 1 Fe-58 P0 0 +337 5 1 1 Fe-58 P1 0 +338 5 1 1 Fe-58 P2 0 +339 5 1 1 Fe-58 P3 0 +340 5 1 1 Ni-58 P0 0 +341 5 1 1 Ni-58 P1 0 +342 5 1 1 Ni-58 P2 0 +343 5 1 1 Ni-58 P3 0 +344 5 1 1 Ni-60 P0 0 +345 5 1 1 Ni-60 P1 0 +346 5 1 1 Ni-60 P2 0 +347 5 1 1 Ni-60 P3 0 +348 5 1 1 Ni-61 P0 0 +349 5 1 1 Ni-61 P1 0 +350 5 1 1 Ni-61 P2 0 +351 5 1 1 Ni-61 P3 0 +352 5 1 1 Ni-62 P0 0 +353 5 1 1 Ni-62 P1 0 +354 5 1 1 Ni-62 P2 0 +355 5 1 1 Ni-62 P3 0 +356 5 1 1 Ni-64 P0 0 +357 5 1 1 Ni-64 P1 0 +358 5 1 1 Ni-64 P2 0 +359 5 1 1 Ni-64 P3 0 +360 5 1 1 Mn-55 P0 0 +361 5 1 1 Mn-55 P1 0 +362 5 1 1 Mn-55 P2 0 +363 5 1 1 Mn-55 P3 0 +364 5 1 1 Mo-92 P0 0 +365 5 1 1 Mo-92 P1 0 +366 5 1 1 Mo-92 P2 0 +367 5 1 1 Mo-92 P3 0 +368 5 1 1 Mo-94 P0 0 +369 5 1 1 Mo-94 P1 0 +370 5 1 1 Mo-94 P2 0 +371 5 1 1 Mo-94 P3 0 +372 5 1 1 Mo-95 P0 0 +373 5 1 1 Mo-95 P1 0 +374 5 1 1 Mo-95 P2 0 +375 5 1 1 Mo-95 P3 0 +376 5 1 1 Mo-96 P0 0 +377 5 1 1 Mo-96 P1 0 +378 5 1 1 Mo-96 P2 0 +379 5 1 1 Mo-96 P3 0 +380 5 1 1 Mo-97 P0 0 +381 5 1 1 Mo-97 P1 0 +382 5 1 1 Mo-97 P2 0 +383 5 1 1 Mo-97 P3 0 +384 5 1 1 Mo-98 P0 0 +385 5 1 1 Mo-98 P1 0 +386 5 1 1 Mo-98 P2 0 +387 5 1 1 Mo-98 P3 0 +388 5 1 1 Mo-100 P0 0 +389 5 1 1 Mo-100 P1 0 +390 5 1 1 Mo-100 P2 0 +391 5 1 1 Mo-100 P3 0 +392 5 1 1 Si-28 P0 0 +393 5 1 1 Si-28 P1 0 +394 5 1 1 Si-28 P2 0 +395 5 1 1 Si-28 P3 0 +396 5 1 1 Si-29 P0 0 +397 5 1 1 Si-29 P1 0 +398 5 1 1 Si-29 P2 0 +399 5 1 1 Si-29 P3 0 +400 5 1 1 Si-30 P0 0 +401 5 1 1 Si-30 P1 0 +402 5 1 1 Si-30 P2 0 +403 5 1 1 Si-30 P3 0 +404 5 1 1 Cr-50 P0 0 +405 5 1 1 Cr-50 P1 0 +406 5 1 1 Cr-50 P2 0 +407 5 1 1 Cr-50 P3 0 +408 5 1 1 Cr-52 P0 0 +409 5 1 1 Cr-52 P1 0 +410 5 1 1 Cr-52 P2 0 +411 5 1 1 Cr-52 P3 0 +412 5 1 1 Cr-53 P0 0 +413 5 1 1 Cr-53 P1 0 +414 5 1 1 Cr-53 P2 0 +415 5 1 1 Cr-53 P3 0 +416 5 1 1 Cr-54 P0 0 +417 5 1 1 Cr-54 P1 0 +418 5 1 1 Cr-54 P2 0 +419 5 1 1 Cr-54 P3 0 +420 5 1 1 C-Nat P0 0 +421 5 1 1 C-Nat P1 0 +422 5 1 1 C-Nat P2 0 +423 5 1 1 C-Nat P3 0 +424 5 1 1 Cu-63 P0 0 +425 5 1 1 Cu-63 P1 0 +426 5 1 1 Cu-63 P2 0 +427 5 1 1 Cu-63 P3 0 +428 5 1 1 Cu-65 P0 0 +429 5 1 1 Cu-65 P1 0 +430 5 1 1 Cu-65 P2 0 +431 5 1 1 Cu-65 P3 0 +216 5 1 2 Fe-54 P0 0 +217 5 1 2 Fe-54 P1 0 +218 5 1 2 Fe-54 P2 0 +219 5 1 2 Fe-54 P3 0 +220 5 1 2 Fe-56 P0 0 +221 5 1 2 Fe-56 P1 0 +222 5 1 2 Fe-56 P2 0 +223 5 1 2 Fe-56 P3 0 +224 5 1 2 Fe-57 P0 0 +225 5 1 2 Fe-57 P1 0 +226 5 1 2 Fe-57 P2 0 +227 5 1 2 Fe-57 P3 0 +228 5 1 2 Fe-58 P0 0 +229 5 1 2 Fe-58 P1 0 +230 5 1 2 Fe-58 P2 0 +231 5 1 2 Fe-58 P3 0 +232 5 1 2 Ni-58 P0 0 +233 5 1 2 Ni-58 P1 0 +234 5 1 2 Ni-58 P2 0 +235 5 1 2 Ni-58 P3 0 +236 5 1 2 Ni-60 P0 0 +237 5 1 2 Ni-60 P1 0 +238 5 1 2 Ni-60 P2 0 +239 5 1 2 Ni-60 P3 0 +240 5 1 2 Ni-61 P0 0 +241 5 1 2 Ni-61 P1 0 +242 5 1 2 Ni-61 P2 0 +243 5 1 2 Ni-61 P3 0 +244 5 1 2 Ni-62 P0 0 +245 5 1 2 Ni-62 P1 0 +246 5 1 2 Ni-62 P2 0 +247 5 1 2 Ni-62 P3 0 +248 5 1 2 Ni-64 P0 0 +249 5 1 2 Ni-64 P1 0 +250 5 1 2 Ni-64 P2 0 +251 5 1 2 Ni-64 P3 0 +252 5 1 2 Mn-55 P0 0 +253 5 1 2 Mn-55 P1 0 +254 5 1 2 Mn-55 P2 0 +255 5 1 2 Mn-55 P3 0 +256 5 1 2 Mo-92 P0 0 +257 5 1 2 Mo-92 P1 0 +258 5 1 2 Mo-92 P2 0 +259 5 1 2 Mo-92 P3 0 +260 5 1 2 Mo-94 P0 0 +261 5 1 2 Mo-94 P1 0 +262 5 1 2 Mo-94 P2 0 +263 5 1 2 Mo-94 P3 0 +264 5 1 2 Mo-95 P0 0 +265 5 1 2 Mo-95 P1 0 +266 5 1 2 Mo-95 P2 0 +267 5 1 2 Mo-95 P3 0 +268 5 1 2 Mo-96 P0 0 +269 5 1 2 Mo-96 P1 0 +270 5 1 2 Mo-96 P2 0 +271 5 1 2 Mo-96 P3 0 +272 5 1 2 Mo-97 P0 0 +273 5 1 2 Mo-97 P1 0 +274 5 1 2 Mo-97 P2 0 +275 5 1 2 Mo-97 P3 0 +276 5 1 2 Mo-98 P0 0 +277 5 1 2 Mo-98 P1 0 +278 5 1 2 Mo-98 P2 0 +279 5 1 2 Mo-98 P3 0 +280 5 1 2 Mo-100 P0 0 +281 5 1 2 Mo-100 P1 0 +282 5 1 2 Mo-100 P2 0 +283 5 1 2 Mo-100 P3 0 +284 5 1 2 Si-28 P0 0 +285 5 1 2 Si-28 P1 0 +286 5 1 2 Si-28 P2 0 +287 5 1 2 Si-28 P3 0 +288 5 1 2 Si-29 P0 0 +289 5 1 2 Si-29 P1 0 +290 5 1 2 Si-29 P2 0 +291 5 1 2 Si-29 P3 0 +292 5 1 2 Si-30 P0 0 +293 5 1 2 Si-30 P1 0 +294 5 1 2 Si-30 P2 0 +295 5 1 2 Si-30 P3 0 +296 5 1 2 Cr-50 P0 0 +297 5 1 2 Cr-50 P1 0 +298 5 1 2 Cr-50 P2 0 +299 5 1 2 Cr-50 P3 0 +300 5 1 2 Cr-52 P0 0 +301 5 1 2 Cr-52 P1 0 +302 5 1 2 Cr-52 P2 0 +303 5 1 2 Cr-52 P3 0 +304 5 1 2 Cr-53 P0 0 +305 5 1 2 Cr-53 P1 0 +306 5 1 2 Cr-53 P2 0 +307 5 1 2 Cr-53 P3 0 +308 5 1 2 Cr-54 P0 0 +309 5 1 2 Cr-54 P1 0 +310 5 1 2 Cr-54 P2 0 +311 5 1 2 Cr-54 P3 0 +312 5 1 2 C-Nat P0 0 +313 5 1 2 C-Nat P1 0 +314 5 1 2 C-Nat P2 0 +315 5 1 2 C-Nat P3 0 +316 5 1 2 Cu-63 P0 0 +317 5 1 2 Cu-63 P1 0 +318 5 1 2 Cu-63 P2 0 +319 5 1 2 Cu-63 P3 0 +320 5 1 2 Cu-65 P0 0 +321 5 1 2 Cu-65 P1 0 +322 5 1 2 Cu-65 P2 0 +323 5 1 2 Cu-65 P3 0 +108 5 2 1 Fe-54 P0 0 +109 5 2 1 Fe-54 P1 0 +110 5 2 1 Fe-54 P2 0 +111 5 2 1 Fe-54 P3 0 +112 5 2 1 Fe-56 P0 0 +113 5 2 1 Fe-56 P1 0 +114 5 2 1 Fe-56 P2 0 +115 5 2 1 Fe-56 P3 0 +116 5 2 1 Fe-57 P0 0 +117 5 2 1 Fe-57 P1 0 +118 5 2 1 Fe-57 P2 0 +119 5 2 1 Fe-57 P3 0 +120 5 2 1 Fe-58 P0 0 +121 5 2 1 Fe-58 P1 0 +122 5 2 1 Fe-58 P2 0 +123 5 2 1 Fe-58 P3 0 +124 5 2 1 Ni-58 P0 0 +125 5 2 1 Ni-58 P1 0 +126 5 2 1 Ni-58 P2 0 +127 5 2 1 Ni-58 P3 0 +128 5 2 1 Ni-60 P0 0 +129 5 2 1 Ni-60 P1 0 +130 5 2 1 Ni-60 P2 0 +131 5 2 1 Ni-60 P3 0 +132 5 2 1 Ni-61 P0 0 +133 5 2 1 Ni-61 P1 0 +134 5 2 1 Ni-61 P2 0 +135 5 2 1 Ni-61 P3 0 +136 5 2 1 Ni-62 P0 0 +137 5 2 1 Ni-62 P1 0 +138 5 2 1 Ni-62 P2 0 +139 5 2 1 Ni-62 P3 0 +140 5 2 1 Ni-64 P0 0 +141 5 2 1 Ni-64 P1 0 +142 5 2 1 Ni-64 P2 0 +143 5 2 1 Ni-64 P3 0 +144 5 2 1 Mn-55 P0 0 +145 5 2 1 Mn-55 P1 0 +146 5 2 1 Mn-55 P2 0 +147 5 2 1 Mn-55 P3 0 +148 5 2 1 Mo-92 P0 0 +149 5 2 1 Mo-92 P1 0 +150 5 2 1 Mo-92 P2 0 +151 5 2 1 Mo-92 P3 0 +152 5 2 1 Mo-94 P0 0 +153 5 2 1 Mo-94 P1 0 +154 5 2 1 Mo-94 P2 0 +155 5 2 1 Mo-94 P3 0 +156 5 2 1 Mo-95 P0 0 +157 5 2 1 Mo-95 P1 0 +158 5 2 1 Mo-95 P2 0 +159 5 2 1 Mo-95 P3 0 +160 5 2 1 Mo-96 P0 0 +161 5 2 1 Mo-96 P1 0 +162 5 2 1 Mo-96 P2 0 +163 5 2 1 Mo-96 P3 0 +164 5 2 1 Mo-97 P0 0 +165 5 2 1 Mo-97 P1 0 +166 5 2 1 Mo-97 P2 0 +167 5 2 1 Mo-97 P3 0 +168 5 2 1 Mo-98 P0 0 +169 5 2 1 Mo-98 P1 0 +170 5 2 1 Mo-98 P2 0 +171 5 2 1 Mo-98 P3 0 +172 5 2 1 Mo-100 P0 0 +173 5 2 1 Mo-100 P1 0 +174 5 2 1 Mo-100 P2 0 +175 5 2 1 Mo-100 P3 0 +176 5 2 1 Si-28 P0 0 +177 5 2 1 Si-28 P1 0 +178 5 2 1 Si-28 P2 0 +179 5 2 1 Si-28 P3 0 +180 5 2 1 Si-29 P0 0 +181 5 2 1 Si-29 P1 0 +182 5 2 1 Si-29 P2 0 +183 5 2 1 Si-29 P3 0 +184 5 2 1 Si-30 P0 0 +185 5 2 1 Si-30 P1 0 +186 5 2 1 Si-30 P2 0 +187 5 2 1 Si-30 P3 0 +188 5 2 1 Cr-50 P0 0 +189 5 2 1 Cr-50 P1 0 +190 5 2 1 Cr-50 P2 0 +191 5 2 1 Cr-50 P3 0 +192 5 2 1 Cr-52 P0 0 +193 5 2 1 Cr-52 P1 0 +194 5 2 1 Cr-52 P2 0 +195 5 2 1 Cr-52 P3 0 +196 5 2 1 Cr-53 P0 0 +197 5 2 1 Cr-53 P1 0 +198 5 2 1 Cr-53 P2 0 +199 5 2 1 Cr-53 P3 0 +200 5 2 1 Cr-54 P0 0 +201 5 2 1 Cr-54 P1 0 +202 5 2 1 Cr-54 P2 0 +203 5 2 1 Cr-54 P3 0 +204 5 2 1 C-Nat P0 0 +205 5 2 1 C-Nat P1 0 +206 5 2 1 C-Nat P2 0 +207 5 2 1 C-Nat P3 0 +208 5 2 1 Cu-63 P0 0 +209 5 2 1 Cu-63 P1 0 +210 5 2 1 Cu-63 P2 0 +211 5 2 1 Cu-63 P3 0 +212 5 2 1 Cu-65 P0 0 +213 5 2 1 Cu-65 P1 0 +214 5 2 1 Cu-65 P2 0 +215 5 2 1 Cu-65 P3 0 +0 5 2 2 Fe-54 P0 0 +1 5 2 2 Fe-54 P1 0 +2 5 2 2 Fe-54 P2 0 +3 5 2 2 Fe-54 P3 0 +4 5 2 2 Fe-56 P0 0 +5 5 2 2 Fe-56 P1 0 +6 5 2 2 Fe-56 P2 0 +7 5 2 2 Fe-56 P3 0 +8 5 2 2 Fe-57 P0 0 +9 5 2 2 Fe-57 P1 0 +10 5 2 2 Fe-57 P2 0 +11 5 2 2 Fe-57 P3 0 +12 5 2 2 Fe-58 P0 0 +13 5 2 2 Fe-58 P1 0 +14 5 2 2 Fe-58 P2 0 +15 5 2 2 Fe-58 P3 0 +16 5 2 2 Ni-58 P0 0 +17 5 2 2 Ni-58 P1 0 +18 5 2 2 Ni-58 P2 0 +19 5 2 2 Ni-58 P3 0 +20 5 2 2 Ni-60 P0 0 +21 5 2 2 Ni-60 P1 0 +22 5 2 2 Ni-60 P2 0 +23 5 2 2 Ni-60 P3 0 +24 5 2 2 Ni-61 P0 0 +25 5 2 2 Ni-61 P1 0 +26 5 2 2 Ni-61 P2 0 +27 5 2 2 Ni-61 P3 0 +28 5 2 2 Ni-62 P0 0 +29 5 2 2 Ni-62 P1 0 +30 5 2 2 Ni-62 P2 0 +31 5 2 2 Ni-62 P3 0 +32 5 2 2 Ni-64 P0 0 +33 5 2 2 Ni-64 P1 0 +34 5 2 2 Ni-64 P2 0 +35 5 2 2 Ni-64 P3 0 +36 5 2 2 Mn-55 P0 0 +37 5 2 2 Mn-55 P1 0 +38 5 2 2 Mn-55 P2 0 +39 5 2 2 Mn-55 P3 0 +40 5 2 2 Mo-92 P0 0 +41 5 2 2 Mo-92 P1 0 +42 5 2 2 Mo-92 P2 0 +43 5 2 2 Mo-92 P3 0 +44 5 2 2 Mo-94 P0 0 +45 5 2 2 Mo-94 P1 0 +46 5 2 2 Mo-94 P2 0 +47 5 2 2 Mo-94 P3 0 +48 5 2 2 Mo-95 P0 0 +49 5 2 2 Mo-95 P1 0 +50 5 2 2 Mo-95 P2 0 +51 5 2 2 Mo-95 P3 0 +52 5 2 2 Mo-96 P0 0 +53 5 2 2 Mo-96 P1 0 +54 5 2 2 Mo-96 P2 0 +55 5 2 2 Mo-96 P3 0 +56 5 2 2 Mo-97 P0 0 +57 5 2 2 Mo-97 P1 0 +58 5 2 2 Mo-97 P2 0 +59 5 2 2 Mo-97 P3 0 +60 5 2 2 Mo-98 P0 0 +61 5 2 2 Mo-98 P1 0 +62 5 2 2 Mo-98 P2 0 +63 5 2 2 Mo-98 P3 0 +64 5 2 2 Mo-100 P0 0 +65 5 2 2 Mo-100 P1 0 +66 5 2 2 Mo-100 P2 0 +67 5 2 2 Mo-100 P3 0 +68 5 2 2 Si-28 P0 0 +69 5 2 2 Si-28 P1 0 +70 5 2 2 Si-28 P2 0 +71 5 2 2 Si-28 P3 0 +72 5 2 2 Si-29 P0 0 +73 5 2 2 Si-29 P1 0 +74 5 2 2 Si-29 P2 0 +75 5 2 2 Si-29 P3 0 +76 5 2 2 Si-30 P0 0 +77 5 2 2 Si-30 P1 0 +78 5 2 2 Si-30 P2 0 +79 5 2 2 Si-30 P3 0 +80 5 2 2 Cr-50 P0 0 +81 5 2 2 Cr-50 P1 0 +82 5 2 2 Cr-50 P2 0 +83 5 2 2 Cr-50 P3 0 +84 5 2 2 Cr-52 P0 0 +85 5 2 2 Cr-52 P1 0 +86 5 2 2 Cr-52 P2 0 +87 5 2 2 Cr-52 P3 0 +88 5 2 2 Cr-53 P0 0 +89 5 2 2 Cr-53 P1 0 +90 5 2 2 Cr-53 P2 0 +91 5 2 2 Cr-53 P3 0 +92 5 2 2 Cr-54 P0 0 +93 5 2 2 Cr-54 P1 0 +94 5 2 2 Cr-54 P2 0 +95 5 2 2 Cr-54 P3 0 +96 5 2 2 C-Nat P0 0 +97 5 2 2 C-Nat P1 0 +98 5 2 2 C-Nat P2 0 +99 5 2 2 C-Nat P3 0 +100 5 2 2 Cu-63 P0 0 +101 5 2 2 Cu-63 P1 0 +102 5 2 2 Cu-63 P2 0 +103 5 2 2 Cu-63 P3 0 +104 5 2 2 Cu-65 P0 0 +105 5 2 2 Cu-65 P1 0 +106 5 2 2 Cu-65 P2 0 +107 5 2 2 Cu-65 P3 0 material group out nuclide mean std. dev. +27 5 1 Fe-54 0 0 +28 5 1 Fe-56 0 0 +29 5 1 Fe-57 0 0 +30 5 1 Fe-58 0 0 +31 5 1 Ni-58 0 0 +32 5 1 Ni-60 0 0 +33 5 1 Ni-61 0 0 +34 5 1 Ni-62 0 0 +35 5 1 Ni-64 0 0 +36 5 1 Mn-55 0 0 +37 5 1 Mo-92 0 0 +38 5 1 Mo-94 0 0 +39 5 1 Mo-95 0 0 +40 5 1 Mo-96 0 0 +41 5 1 Mo-97 0 0 +42 5 1 Mo-98 0 0 +43 5 1 Mo-100 0 0 +44 5 1 Si-28 0 0 +45 5 1 Si-29 0 0 +46 5 1 Si-30 0 0 +47 5 1 Cr-50 0 0 +48 5 1 Cr-52 0 0 +49 5 1 Cr-53 0 0 +50 5 1 Cr-54 0 0 +51 5 1 C-Nat 0 0 +52 5 1 Cu-63 0 0 +53 5 1 Cu-65 0 0 +0 5 2 Fe-54 0 0 +1 5 2 Fe-56 0 0 +2 5 2 Fe-57 0 0 +3 5 2 Fe-58 0 0 +4 5 2 Ni-58 0 0 +5 5 2 Ni-60 0 0 +6 5 2 Ni-61 0 0 +7 5 2 Ni-62 0 0 +8 5 2 Ni-64 0 0 +9 5 2 Mn-55 0 0 +10 5 2 Mo-92 0 0 +11 5 2 Mo-94 0 0 +12 5 2 Mo-95 0 0 +13 5 2 Mo-96 0 0 +14 5 2 Mo-97 0 0 +15 5 2 Mo-98 0 0 +16 5 2 Mo-100 0 0 +17 5 2 Si-28 0 0 +18 5 2 Si-29 0 0 +19 5 2 Si-30 0 0 +20 5 2 Cr-50 0 0 +21 5 2 Cr-52 0 0 +22 5 2 Cr-53 0 0 +23 5 2 Cr-54 0 0 +24 5 2 C-Nat 0 0 +25 5 2 Cu-63 0 0 +26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. +21 6 1 H-1 0 0 +22 6 1 O-16 0 0 +23 6 1 B-10 0 0 +24 6 1 B-11 0 0 +25 6 1 Fe-54 0 0 +26 6 1 Fe-56 0 0 +27 6 1 Fe-57 0 0 +28 6 1 Fe-58 0 0 +29 6 1 Ni-58 0 0 +30 6 1 Ni-60 0 0 +31 6 1 Ni-61 0 0 +32 6 1 Ni-62 0 0 +33 6 1 Ni-64 0 0 +34 6 1 Mn-55 0 0 +35 6 1 Si-28 0 0 +36 6 1 Si-29 0 0 +37 6 1 Si-30 0 0 +38 6 1 Cr-50 0 0 +39 6 1 Cr-52 0 0 +40 6 1 Cr-53 0 0 +41 6 1 Cr-54 0 0 +0 6 2 H-1 0 0 +1 6 2 O-16 0 0 +2 6 2 B-10 0 0 +3 6 2 B-11 0 0 +4 6 2 Fe-54 0 0 +5 6 2 Fe-56 0 0 +6 6 2 Fe-57 0 0 +7 6 2 Fe-58 0 0 +8 6 2 Ni-58 0 0 +9 6 2 Ni-60 0 0 +10 6 2 Ni-61 0 0 +11 6 2 Ni-62 0 0 +12 6 2 Ni-64 0 0 +13 6 2 Mn-55 0 0 +14 6 2 Si-28 0 0 +15 6 2 Si-29 0 0 +16 6 2 Si-30 0 0 +17 6 2 Cr-50 0 0 +18 6 2 Cr-52 0 0 +19 6 2 Cr-53 0 0 +20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 6 1 H-1 0 0 +22 6 1 O-16 0 0 +23 6 1 B-10 0 0 +24 6 1 B-11 0 0 +25 6 1 Fe-54 0 0 +26 6 1 Fe-56 0 0 +27 6 1 Fe-57 0 0 +28 6 1 Fe-58 0 0 +29 6 1 Ni-58 0 0 +30 6 1 Ni-60 0 0 +31 6 1 Ni-61 0 0 +32 6 1 Ni-62 0 0 +33 6 1 Ni-64 0 0 +34 6 1 Mn-55 0 0 +35 6 1 Si-28 0 0 +36 6 1 Si-29 0 0 +37 6 1 Si-30 0 0 +38 6 1 Cr-50 0 0 +39 6 1 Cr-52 0 0 +40 6 1 Cr-53 0 0 +41 6 1 Cr-54 0 0 +0 6 2 H-1 0 0 +1 6 2 O-16 0 0 +2 6 2 B-10 0 0 +3 6 2 B-11 0 0 +4 6 2 Fe-54 0 0 +5 6 2 Fe-56 0 0 +6 6 2 Fe-57 0 0 +7 6 2 Fe-58 0 0 +8 6 2 Ni-58 0 0 +9 6 2 Ni-60 0 0 +10 6 2 Ni-61 0 0 +11 6 2 Ni-62 0 0 +12 6 2 Ni-64 0 0 +13 6 2 Mn-55 0 0 +14 6 2 Si-28 0 0 +15 6 2 Si-29 0 0 +16 6 2 Si-30 0 0 +17 6 2 Cr-50 0 0 +18 6 2 Cr-52 0 0 +19 6 2 Cr-53 0 0 +20 6 2 Cr-54 0 0 material group in group out nuclide moment mean +252 6 1 1 H-1 P0 0 +253 6 1 1 H-1 P1 0 +254 6 1 1 H-1 P2 0 +255 6 1 1 H-1 P3 0 +256 6 1 1 O-16 P0 0 +257 6 1 1 O-16 P1 0 +258 6 1 1 O-16 P2 0 +259 6 1 1 O-16 P3 0 +260 6 1 1 B-10 P0 0 +261 6 1 1 B-10 P1 0 +262 6 1 1 B-10 P2 0 +263 6 1 1 B-10 P3 0 +264 6 1 1 B-11 P0 0 +265 6 1 1 B-11 P1 0 +266 6 1 1 B-11 P2 0 +267 6 1 1 B-11 P3 0 +268 6 1 1 Fe-54 P0 0 +269 6 1 1 Fe-54 P1 0 +270 6 1 1 Fe-54 P2 0 +271 6 1 1 Fe-54 P3 0 +272 6 1 1 Fe-56 P0 0 +273 6 1 1 Fe-56 P1 0 +274 6 1 1 Fe-56 P2 0 +275 6 1 1 Fe-56 P3 0 +276 6 1 1 Fe-57 P0 0 +277 6 1 1 Fe-57 P1 0 +278 6 1 1 Fe-57 P2 0 +279 6 1 1 Fe-57 P3 0 +280 6 1 1 Fe-58 P0 0 +281 6 1 1 Fe-58 P1 0 +282 6 1 1 Fe-58 P2 0 +283 6 1 1 Fe-58 P3 0 +284 6 1 1 Ni-58 P0 0 +285 6 1 1 Ni-58 P1 0 +286 6 1 1 Ni-58 P2 0 +287 6 1 1 Ni-58 P3 0 +288 6 1 1 Ni-60 P0 0 +289 6 1 1 Ni-60 P1 0 +290 6 1 1 Ni-60 P2 0 +291 6 1 1 Ni-60 P3 0 +292 6 1 1 Ni-61 P0 0 +293 6 1 1 Ni-61 P1 0 +294 6 1 1 Ni-61 P2 0 +295 6 1 1 Ni-61 P3 0 +296 6 1 1 Ni-62 P0 0 +297 6 1 1 Ni-62 P1 0 +298 6 1 1 Ni-62 P2 0 +299 6 1 1 Ni-62 P3 0 +300 6 1 1 Ni-64 P0 0 +301 6 1 1 Ni-64 P1 0 +302 6 1 1 Ni-64 P2 0 +303 6 1 1 Ni-64 P3 0 +304 6 1 1 Mn-55 P0 0 +305 6 1 1 Mn-55 P1 0 +306 6 1 1 Mn-55 P2 0 +307 6 1 1 Mn-55 P3 0 +308 6 1 1 Si-28 P0 0 +309 6 1 1 Si-28 P1 0 +310 6 1 1 Si-28 P2 0 +311 6 1 1 Si-28 P3 0 +312 6 1 1 Si-29 P0 0 +313 6 1 1 Si-29 P1 0 +314 6 1 1 Si-29 P2 0 +315 6 1 1 Si-29 P3 0 +316 6 1 1 Si-30 P0 0 +317 6 1 1 Si-30 P1 0 +318 6 1 1 Si-30 P2 0 +319 6 1 1 Si-30 P3 0 +320 6 1 1 Cr-50 P0 0 +321 6 1 1 Cr-50 P1 0 +322 6 1 1 Cr-50 P2 0 +323 6 1 1 Cr-50 P3 0 +324 6 1 1 Cr-52 P0 0 +325 6 1 1 Cr-52 P1 0 +326 6 1 1 Cr-52 P2 0 +327 6 1 1 Cr-52 P3 0 +328 6 1 1 Cr-53 P0 0 +329 6 1 1 Cr-53 P1 0 +330 6 1 1 Cr-53 P2 0 +331 6 1 1 Cr-53 P3 0 +332 6 1 1 Cr-54 P0 0 +333 6 1 1 Cr-54 P1 0 +334 6 1 1 Cr-54 P2 0 +335 6 1 1 Cr-54 P3 0 +168 6 1 2 H-1 P0 0 +169 6 1 2 H-1 P1 0 +170 6 1 2 H-1 P2 0 +171 6 1 2 H-1 P3 0 +172 6 1 2 O-16 P0 0 +173 6 1 2 O-16 P1 0 +174 6 1 2 O-16 P2 0 +175 6 1 2 O-16 P3 0 +176 6 1 2 B-10 P0 0 +177 6 1 2 B-10 P1 0 +178 6 1 2 B-10 P2 0 +179 6 1 2 B-10 P3 0 +180 6 1 2 B-11 P0 0 +181 6 1 2 B-11 P1 0 +182 6 1 2 B-11 P2 0 +183 6 1 2 B-11 P3 0 +184 6 1 2 Fe-54 P0 0 +185 6 1 2 Fe-54 P1 0 +186 6 1 2 Fe-54 P2 0 +187 6 1 2 Fe-54 P3 0 +188 6 1 2 Fe-56 P0 0 +189 6 1 2 Fe-56 P1 0 +190 6 1 2 Fe-56 P2 0 +191 6 1 2 Fe-56 P3 0 +192 6 1 2 Fe-57 P0 0 +193 6 1 2 Fe-57 P1 0 +194 6 1 2 Fe-57 P2 0 +195 6 1 2 Fe-57 P3 0 +196 6 1 2 Fe-58 P0 0 +197 6 1 2 Fe-58 P1 0 +198 6 1 2 Fe-58 P2 0 +199 6 1 2 Fe-58 P3 0 +200 6 1 2 Ni-58 P0 0 +201 6 1 2 Ni-58 P1 0 +202 6 1 2 Ni-58 P2 0 +203 6 1 2 Ni-58 P3 0 +204 6 1 2 Ni-60 P0 0 +205 6 1 2 Ni-60 P1 0 +206 6 1 2 Ni-60 P2 0 +207 6 1 2 Ni-60 P3 0 +208 6 1 2 Ni-61 P0 0 +209 6 1 2 Ni-61 P1 0 +210 6 1 2 Ni-61 P2 0 +211 6 1 2 Ni-61 P3 0 +212 6 1 2 Ni-62 P0 0 +213 6 1 2 Ni-62 P1 0 +214 6 1 2 Ni-62 P2 0 +215 6 1 2 Ni-62 P3 0 +216 6 1 2 Ni-64 P0 0 +217 6 1 2 Ni-64 P1 0 +218 6 1 2 Ni-64 P2 0 +219 6 1 2 Ni-64 P3 0 +220 6 1 2 Mn-55 P0 0 +221 6 1 2 Mn-55 P1 0 +222 6 1 2 Mn-55 P2 0 +223 6 1 2 Mn-55 P3 0 +224 6 1 2 Si-28 P0 0 +225 6 1 2 Si-28 P1 0 +226 6 1 2 Si-28 P2 0 +227 6 1 2 Si-28 P3 0 +228 6 1 2 Si-29 P0 0 +229 6 1 2 Si-29 P1 0 +230 6 1 2 Si-29 P2 0 +231 6 1 2 Si-29 P3 0 +232 6 1 2 Si-30 P0 0 +233 6 1 2 Si-30 P1 0 +234 6 1 2 Si-30 P2 0 +235 6 1 2 Si-30 P3 0 +236 6 1 2 Cr-50 P0 0 +237 6 1 2 Cr-50 P1 0 +238 6 1 2 Cr-50 P2 0 +239 6 1 2 Cr-50 P3 0 +240 6 1 2 Cr-52 P0 0 +241 6 1 2 Cr-52 P1 0 +242 6 1 2 Cr-52 P2 0 +243 6 1 2 Cr-52 P3 0 +244 6 1 2 Cr-53 P0 0 +245 6 1 2 Cr-53 P1 0 +246 6 1 2 Cr-53 P2 0 +247 6 1 2 Cr-53 P3 0 +248 6 1 2 Cr-54 P0 0 +249 6 1 2 Cr-54 P1 0 +250 6 1 2 Cr-54 P2 0 +251 6 1 2 Cr-54 P3 0 +84 6 2 1 H-1 P0 0 +85 6 2 1 H-1 P1 0 +86 6 2 1 H-1 P2 0 +87 6 2 1 H-1 P3 0 +88 6 2 1 O-16 P0 0 +89 6 2 1 O-16 P1 0 +90 6 2 1 O-16 P2 0 +91 6 2 1 O-16 P3 0 +92 6 2 1 B-10 P0 0 +93 6 2 1 B-10 P1 0 +94 6 2 1 B-10 P2 0 +95 6 2 1 B-10 P3 0 +96 6 2 1 B-11 P0 0 +97 6 2 1 B-11 P1 0 +98 6 2 1 B-11 P2 0 +99 6 2 1 B-11 P3 0 +100 6 2 1 Fe-54 P0 0 +101 6 2 1 Fe-54 P1 0 +102 6 2 1 Fe-54 P2 0 +103 6 2 1 Fe-54 P3 0 +104 6 2 1 Fe-56 P0 0 +105 6 2 1 Fe-56 P1 0 +106 6 2 1 Fe-56 P2 0 +107 6 2 1 Fe-56 P3 0 +108 6 2 1 Fe-57 P0 0 +109 6 2 1 Fe-57 P1 0 +110 6 2 1 Fe-57 P2 0 +111 6 2 1 Fe-57 P3 0 +112 6 2 1 Fe-58 P0 0 +113 6 2 1 Fe-58 P1 0 +114 6 2 1 Fe-58 P2 0 +115 6 2 1 Fe-58 P3 0 +116 6 2 1 Ni-58 P0 0 +117 6 2 1 Ni-58 P1 0 +118 6 2 1 Ni-58 P2 0 +119 6 2 1 Ni-58 P3 0 +120 6 2 1 Ni-60 P0 0 +121 6 2 1 Ni-60 P1 0 +122 6 2 1 Ni-60 P2 0 +123 6 2 1 Ni-60 P3 0 +124 6 2 1 Ni-61 P0 0 +125 6 2 1 Ni-61 P1 0 +126 6 2 1 Ni-61 P2 0 +127 6 2 1 Ni-61 P3 0 +128 6 2 1 Ni-62 P0 0 +129 6 2 1 Ni-62 P1 0 +130 6 2 1 Ni-62 P2 0 +131 6 2 1 Ni-62 P3 0 +132 6 2 1 Ni-64 P0 0 +133 6 2 1 Ni-64 P1 0 +134 6 2 1 Ni-64 P2 0 +135 6 2 1 Ni-64 P3 0 +136 6 2 1 Mn-55 P0 0 +137 6 2 1 Mn-55 P1 0 +138 6 2 1 Mn-55 P2 0 +139 6 2 1 Mn-55 P3 0 +140 6 2 1 Si-28 P0 0 +141 6 2 1 Si-28 P1 0 +142 6 2 1 Si-28 P2 0 +143 6 2 1 Si-28 P3 0 +144 6 2 1 Si-29 P0 0 +145 6 2 1 Si-29 P1 0 +146 6 2 1 Si-29 P2 0 +147 6 2 1 Si-29 P3 0 +148 6 2 1 Si-30 P0 0 +149 6 2 1 Si-30 P1 0 +150 6 2 1 Si-30 P2 0 +151 6 2 1 Si-30 P3 0 +152 6 2 1 Cr-50 P0 0 +153 6 2 1 Cr-50 P1 0 +154 6 2 1 Cr-50 P2 0 +155 6 2 1 Cr-50 P3 0 +156 6 2 1 Cr-52 P0 0 +157 6 2 1 Cr-52 P1 0 +158 6 2 1 Cr-52 P2 0 +159 6 2 1 Cr-52 P3 0 +160 6 2 1 Cr-53 P0 0 +161 6 2 1 Cr-53 P1 0 +162 6 2 1 Cr-53 P2 0 +163 6 2 1 Cr-53 P3 0 +164 6 2 1 Cr-54 P0 0 +165 6 2 1 Cr-54 P1 0 +166 6 2 1 Cr-54 P2 0 +167 6 2 1 Cr-54 P3 0 +0 6 2 2 H-1 P0 0 +1 6 2 2 H-1 P1 0 +2 6 2 2 H-1 P2 0 +3 6 2 2 H-1 P3 0 +4 6 2 2 O-16 P0 0 +5 6 2 2 O-16 P1 0 +6 6 2 2 O-16 P2 0 +7 6 2 2 O-16 P3 0 +8 6 2 2 B-10 P0 0 +9 6 2 2 B-10 P1 0 +10 6 2 2 B-10 P2 0 +11 6 2 2 B-10 P3 0 +12 6 2 2 B-11 P0 0 +13 6 2 2 B-11 P1 0 +14 6 2 2 B-11 P2 0 +15 6 2 2 B-11 P3 0 +16 6 2 2 Fe-54 P0 0 +17 6 2 2 Fe-54 P1 0 +18 6 2 2 Fe-54 P2 0 +19 6 2 2 Fe-54 P3 0 +20 6 2 2 Fe-56 P0 0 +21 6 2 2 Fe-56 P1 0 +22 6 2 2 Fe-56 P2 0 +23 6 2 2 Fe-56 P3 0 +24 6 2 2 Fe-57 P0 0 +25 6 2 2 Fe-57 P1 0 +26 6 2 2 Fe-57 P2 0 +27 6 2 2 Fe-57 P3 0 +28 6 2 2 Fe-58 P0 0 +29 6 2 2 Fe-58 P1 0 +30 6 2 2 Fe-58 P2 0 +31 6 2 2 Fe-58 P3 0 +32 6 2 2 Ni-58 P0 0 +33 6 2 2 Ni-58 P1 0 +34 6 2 2 Ni-58 P2 0 +35 6 2 2 Ni-58 P3 0 +36 6 2 2 Ni-60 P0 0 +37 6 2 2 Ni-60 P1 0 +38 6 2 2 Ni-60 P2 0 +39 6 2 2 Ni-60 P3 0 +40 6 2 2 Ni-61 P0 0 +41 6 2 2 Ni-61 P1 0 +42 6 2 2 Ni-61 P2 0 +43 6 2 2 Ni-61 P3 0 +44 6 2 2 Ni-62 P0 0 +45 6 2 2 Ni-62 P1 0 +46 6 2 2 Ni-62 P2 0 +47 6 2 2 Ni-62 P3 0 +48 6 2 2 Ni-64 P0 0 +49 6 2 2 Ni-64 P1 0 +50 6 2 2 Ni-64 P2 0 +51 6 2 2 Ni-64 P3 0 +52 6 2 2 Mn-55 P0 0 +53 6 2 2 Mn-55 P1 0 +54 6 2 2 Mn-55 P2 0 +55 6 2 2 Mn-55 P3 0 +56 6 2 2 Si-28 P0 0 +57 6 2 2 Si-28 P1 0 +58 6 2 2 Si-28 P2 0 +59 6 2 2 Si-28 P3 0 +60 6 2 2 Si-29 P0 0 +61 6 2 2 Si-29 P1 0 +62 6 2 2 Si-29 P2 0 +63 6 2 2 Si-29 P3 0 +64 6 2 2 Si-30 P0 0 +65 6 2 2 Si-30 P1 0 +66 6 2 2 Si-30 P2 0 +67 6 2 2 Si-30 P3 0 +68 6 2 2 Cr-50 P0 0 +69 6 2 2 Cr-50 P1 0 +70 6 2 2 Cr-50 P2 0 +71 6 2 2 Cr-50 P3 0 +72 6 2 2 Cr-52 P0 0 +73 6 2 2 Cr-52 P1 0 +74 6 2 2 Cr-52 P2 0 +75 6 2 2 Cr-52 P3 0 +76 6 2 2 Cr-53 P0 0 +77 6 2 2 Cr-53 P1 0 +78 6 2 2 Cr-53 P2 0 +79 6 2 2 Cr-53 P3 0 +80 6 2 2 Cr-54 P0 0 +81 6 2 2 Cr-54 P1 0 +82 6 2 2 Cr-54 P2 0 +83 6 2 2 Cr-54 P3 0 material group out nuclide mean std. dev. +21 6 1 H-1 0 0 +22 6 1 O-16 0 0 +23 6 1 B-10 0 0 +24 6 1 B-11 0 0 +25 6 1 Fe-54 0 0 +26 6 1 Fe-56 0 0 +27 6 1 Fe-57 0 0 +28 6 1 Fe-58 0 0 +29 6 1 Ni-58 0 0 +30 6 1 Ni-60 0 0 +31 6 1 Ni-61 0 0 +32 6 1 Ni-62 0 0 +33 6 1 Ni-64 0 0 +34 6 1 Mn-55 0 0 +35 6 1 Si-28 0 0 +36 6 1 Si-29 0 0 +37 6 1 Si-30 0 0 +38 6 1 Cr-50 0 0 +39 6 1 Cr-52 0 0 +40 6 1 Cr-53 0 0 +41 6 1 Cr-54 0 0 +0 6 2 H-1 0 0 +1 6 2 O-16 0 0 +2 6 2 B-10 0 0 +3 6 2 B-11 0 0 +4 6 2 Fe-54 0 0 +5 6 2 Fe-56 0 0 +6 6 2 Fe-57 0 0 +7 6 2 Fe-58 0 0 +8 6 2 Ni-58 0 0 +9 6 2 Ni-60 0 0 +10 6 2 Ni-61 0 0 +11 6 2 Ni-62 0 0 +12 6 2 Ni-64 0 0 +13 6 2 Mn-55 0 0 +14 6 2 Si-28 0 0 +15 6 2 Si-29 0 0 +16 6 2 Si-30 0 0 +17 6 2 Cr-50 0 0 +18 6 2 Cr-52 0 0 +19 6 2 Cr-53 0 0 +20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 7 1 H-1 0 0 +22 7 1 O-16 0 0 +23 7 1 B-10 0 0 +24 7 1 B-11 0 0 +25 7 1 Fe-54 0 0 +26 7 1 Fe-56 0 0 +27 7 1 Fe-57 0 0 +28 7 1 Fe-58 0 0 +29 7 1 Ni-58 0 0 +30 7 1 Ni-60 0 0 +31 7 1 Ni-61 0 0 +32 7 1 Ni-62 0 0 +33 7 1 Ni-64 0 0 +34 7 1 Mn-55 0 0 +35 7 1 Si-28 0 0 +36 7 1 Si-29 0 0 +37 7 1 Si-30 0 0 +38 7 1 Cr-50 0 0 +39 7 1 Cr-52 0 0 +40 7 1 Cr-53 0 0 +41 7 1 Cr-54 0 0 +0 7 2 H-1 0 0 +1 7 2 O-16 0 0 +2 7 2 B-10 0 0 +3 7 2 B-11 0 0 +4 7 2 Fe-54 0 0 +5 7 2 Fe-56 0 0 +6 7 2 Fe-57 0 0 +7 7 2 Fe-58 0 0 +8 7 2 Ni-58 0 0 +9 7 2 Ni-60 0 0 +10 7 2 Ni-61 0 0 +11 7 2 Ni-62 0 0 +12 7 2 Ni-64 0 0 +13 7 2 Mn-55 0 0 +14 7 2 Si-28 0 0 +15 7 2 Si-29 0 0 +16 7 2 Si-30 0 0 +17 7 2 Cr-50 0 0 +18 7 2 Cr-52 0 0 +19 7 2 Cr-53 0 0 +20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 7 1 H-1 0 0 +22 7 1 O-16 0 0 +23 7 1 B-10 0 0 +24 7 1 B-11 0 0 +25 7 1 Fe-54 0 0 +26 7 1 Fe-56 0 0 +27 7 1 Fe-57 0 0 +28 7 1 Fe-58 0 0 +29 7 1 Ni-58 0 0 +30 7 1 Ni-60 0 0 +31 7 1 Ni-61 0 0 +32 7 1 Ni-62 0 0 +33 7 1 Ni-64 0 0 +34 7 1 Mn-55 0 0 +35 7 1 Si-28 0 0 +36 7 1 Si-29 0 0 +37 7 1 Si-30 0 0 +38 7 1 Cr-50 0 0 +39 7 1 Cr-52 0 0 +40 7 1 Cr-53 0 0 +41 7 1 Cr-54 0 0 +0 7 2 H-1 0 0 +1 7 2 O-16 0 0 +2 7 2 B-10 0 0 +3 7 2 B-11 0 0 +4 7 2 Fe-54 0 0 +5 7 2 Fe-56 0 0 +6 7 2 Fe-57 0 0 +7 7 2 Fe-58 0 0 +8 7 2 Ni-58 0 0 +9 7 2 Ni-60 0 0 +10 7 2 Ni-61 0 0 +11 7 2 Ni-62 0 0 +12 7 2 Ni-64 0 0 +13 7 2 Mn-55 0 0 +14 7 2 Si-28 0 0 +15 7 2 Si-29 0 0 +16 7 2 Si-30 0 0 +17 7 2 Cr-50 0 0 +18 7 2 Cr-52 0 0 +19 7 2 Cr-53 0 0 +20 7 2 Cr-54 0 0 material group in group out nuclide moment mean +252 7 1 1 H-1 P0 0 +253 7 1 1 H-1 P1 0 +254 7 1 1 H-1 P2 0 +255 7 1 1 H-1 P3 0 +256 7 1 1 O-16 P0 0 +257 7 1 1 O-16 P1 0 +258 7 1 1 O-16 P2 0 +259 7 1 1 O-16 P3 0 +260 7 1 1 B-10 P0 0 +261 7 1 1 B-10 P1 0 +262 7 1 1 B-10 P2 0 +263 7 1 1 B-10 P3 0 +264 7 1 1 B-11 P0 0 +265 7 1 1 B-11 P1 0 +266 7 1 1 B-11 P2 0 +267 7 1 1 B-11 P3 0 +268 7 1 1 Fe-54 P0 0 +269 7 1 1 Fe-54 P1 0 +270 7 1 1 Fe-54 P2 0 +271 7 1 1 Fe-54 P3 0 +272 7 1 1 Fe-56 P0 0 +273 7 1 1 Fe-56 P1 0 +274 7 1 1 Fe-56 P2 0 +275 7 1 1 Fe-56 P3 0 +276 7 1 1 Fe-57 P0 0 +277 7 1 1 Fe-57 P1 0 +278 7 1 1 Fe-57 P2 0 +279 7 1 1 Fe-57 P3 0 +280 7 1 1 Fe-58 P0 0 +281 7 1 1 Fe-58 P1 0 +282 7 1 1 Fe-58 P2 0 +283 7 1 1 Fe-58 P3 0 +284 7 1 1 Ni-58 P0 0 +285 7 1 1 Ni-58 P1 0 +286 7 1 1 Ni-58 P2 0 +287 7 1 1 Ni-58 P3 0 +288 7 1 1 Ni-60 P0 0 +289 7 1 1 Ni-60 P1 0 +290 7 1 1 Ni-60 P2 0 +291 7 1 1 Ni-60 P3 0 +292 7 1 1 Ni-61 P0 0 +293 7 1 1 Ni-61 P1 0 +294 7 1 1 Ni-61 P2 0 +295 7 1 1 Ni-61 P3 0 +296 7 1 1 Ni-62 P0 0 +297 7 1 1 Ni-62 P1 0 +298 7 1 1 Ni-62 P2 0 +299 7 1 1 Ni-62 P3 0 +300 7 1 1 Ni-64 P0 0 +301 7 1 1 Ni-64 P1 0 +302 7 1 1 Ni-64 P2 0 +303 7 1 1 Ni-64 P3 0 +304 7 1 1 Mn-55 P0 0 +305 7 1 1 Mn-55 P1 0 +306 7 1 1 Mn-55 P2 0 +307 7 1 1 Mn-55 P3 0 +308 7 1 1 Si-28 P0 0 +309 7 1 1 Si-28 P1 0 +310 7 1 1 Si-28 P2 0 +311 7 1 1 Si-28 P3 0 +312 7 1 1 Si-29 P0 0 +313 7 1 1 Si-29 P1 0 +314 7 1 1 Si-29 P2 0 +315 7 1 1 Si-29 P3 0 +316 7 1 1 Si-30 P0 0 +317 7 1 1 Si-30 P1 0 +318 7 1 1 Si-30 P2 0 +319 7 1 1 Si-30 P3 0 +320 7 1 1 Cr-50 P0 0 +321 7 1 1 Cr-50 P1 0 +322 7 1 1 Cr-50 P2 0 +323 7 1 1 Cr-50 P3 0 +324 7 1 1 Cr-52 P0 0 +325 7 1 1 Cr-52 P1 0 +326 7 1 1 Cr-52 P2 0 +327 7 1 1 Cr-52 P3 0 +328 7 1 1 Cr-53 P0 0 +329 7 1 1 Cr-53 P1 0 +330 7 1 1 Cr-53 P2 0 +331 7 1 1 Cr-53 P3 0 +332 7 1 1 Cr-54 P0 0 +333 7 1 1 Cr-54 P1 0 +334 7 1 1 Cr-54 P2 0 +335 7 1 1 Cr-54 P3 0 +168 7 1 2 H-1 P0 0 +169 7 1 2 H-1 P1 0 +170 7 1 2 H-1 P2 0 +171 7 1 2 H-1 P3 0 +172 7 1 2 O-16 P0 0 +173 7 1 2 O-16 P1 0 +174 7 1 2 O-16 P2 0 +175 7 1 2 O-16 P3 0 +176 7 1 2 B-10 P0 0 +177 7 1 2 B-10 P1 0 +178 7 1 2 B-10 P2 0 +179 7 1 2 B-10 P3 0 +180 7 1 2 B-11 P0 0 +181 7 1 2 B-11 P1 0 +182 7 1 2 B-11 P2 0 +183 7 1 2 B-11 P3 0 +184 7 1 2 Fe-54 P0 0 +185 7 1 2 Fe-54 P1 0 +186 7 1 2 Fe-54 P2 0 +187 7 1 2 Fe-54 P3 0 +188 7 1 2 Fe-56 P0 0 +189 7 1 2 Fe-56 P1 0 +190 7 1 2 Fe-56 P2 0 +191 7 1 2 Fe-56 P3 0 +192 7 1 2 Fe-57 P0 0 +193 7 1 2 Fe-57 P1 0 +194 7 1 2 Fe-57 P2 0 +195 7 1 2 Fe-57 P3 0 +196 7 1 2 Fe-58 P0 0 +197 7 1 2 Fe-58 P1 0 +198 7 1 2 Fe-58 P2 0 +199 7 1 2 Fe-58 P3 0 +200 7 1 2 Ni-58 P0 0 +201 7 1 2 Ni-58 P1 0 +202 7 1 2 Ni-58 P2 0 +203 7 1 2 Ni-58 P3 0 +204 7 1 2 Ni-60 P0 0 +205 7 1 2 Ni-60 P1 0 +206 7 1 2 Ni-60 P2 0 +207 7 1 2 Ni-60 P3 0 +208 7 1 2 Ni-61 P0 0 +209 7 1 2 Ni-61 P1 0 +210 7 1 2 Ni-61 P2 0 +211 7 1 2 Ni-61 P3 0 +212 7 1 2 Ni-62 P0 0 +213 7 1 2 Ni-62 P1 0 +214 7 1 2 Ni-62 P2 0 +215 7 1 2 Ni-62 P3 0 +216 7 1 2 Ni-64 P0 0 +217 7 1 2 Ni-64 P1 0 +218 7 1 2 Ni-64 P2 0 +219 7 1 2 Ni-64 P3 0 +220 7 1 2 Mn-55 P0 0 +221 7 1 2 Mn-55 P1 0 +222 7 1 2 Mn-55 P2 0 +223 7 1 2 Mn-55 P3 0 +224 7 1 2 Si-28 P0 0 +225 7 1 2 Si-28 P1 0 +226 7 1 2 Si-28 P2 0 +227 7 1 2 Si-28 P3 0 +228 7 1 2 Si-29 P0 0 +229 7 1 2 Si-29 P1 0 +230 7 1 2 Si-29 P2 0 +231 7 1 2 Si-29 P3 0 +232 7 1 2 Si-30 P0 0 +233 7 1 2 Si-30 P1 0 +234 7 1 2 Si-30 P2 0 +235 7 1 2 Si-30 P3 0 +236 7 1 2 Cr-50 P0 0 +237 7 1 2 Cr-50 P1 0 +238 7 1 2 Cr-50 P2 0 +239 7 1 2 Cr-50 P3 0 +240 7 1 2 Cr-52 P0 0 +241 7 1 2 Cr-52 P1 0 +242 7 1 2 Cr-52 P2 0 +243 7 1 2 Cr-52 P3 0 +244 7 1 2 Cr-53 P0 0 +245 7 1 2 Cr-53 P1 0 +246 7 1 2 Cr-53 P2 0 +247 7 1 2 Cr-53 P3 0 +248 7 1 2 Cr-54 P0 0 +249 7 1 2 Cr-54 P1 0 +250 7 1 2 Cr-54 P2 0 +251 7 1 2 Cr-54 P3 0 +84 7 2 1 H-1 P0 0 +85 7 2 1 H-1 P1 0 +86 7 2 1 H-1 P2 0 +87 7 2 1 H-1 P3 0 +88 7 2 1 O-16 P0 0 +89 7 2 1 O-16 P1 0 +90 7 2 1 O-16 P2 0 +91 7 2 1 O-16 P3 0 +92 7 2 1 B-10 P0 0 +93 7 2 1 B-10 P1 0 +94 7 2 1 B-10 P2 0 +95 7 2 1 B-10 P3 0 +96 7 2 1 B-11 P0 0 +97 7 2 1 B-11 P1 0 +98 7 2 1 B-11 P2 0 +99 7 2 1 B-11 P3 0 +100 7 2 1 Fe-54 P0 0 +101 7 2 1 Fe-54 P1 0 +102 7 2 1 Fe-54 P2 0 +103 7 2 1 Fe-54 P3 0 +104 7 2 1 Fe-56 P0 0 +105 7 2 1 Fe-56 P1 0 +106 7 2 1 Fe-56 P2 0 +107 7 2 1 Fe-56 P3 0 +108 7 2 1 Fe-57 P0 0 +109 7 2 1 Fe-57 P1 0 +110 7 2 1 Fe-57 P2 0 +111 7 2 1 Fe-57 P3 0 +112 7 2 1 Fe-58 P0 0 +113 7 2 1 Fe-58 P1 0 +114 7 2 1 Fe-58 P2 0 +115 7 2 1 Fe-58 P3 0 +116 7 2 1 Ni-58 P0 0 +117 7 2 1 Ni-58 P1 0 +118 7 2 1 Ni-58 P2 0 +119 7 2 1 Ni-58 P3 0 +120 7 2 1 Ni-60 P0 0 +121 7 2 1 Ni-60 P1 0 +122 7 2 1 Ni-60 P2 0 +123 7 2 1 Ni-60 P3 0 +124 7 2 1 Ni-61 P0 0 +125 7 2 1 Ni-61 P1 0 +126 7 2 1 Ni-61 P2 0 +127 7 2 1 Ni-61 P3 0 +128 7 2 1 Ni-62 P0 0 +129 7 2 1 Ni-62 P1 0 +130 7 2 1 Ni-62 P2 0 +131 7 2 1 Ni-62 P3 0 +132 7 2 1 Ni-64 P0 0 +133 7 2 1 Ni-64 P1 0 +134 7 2 1 Ni-64 P2 0 +135 7 2 1 Ni-64 P3 0 +136 7 2 1 Mn-55 P0 0 +137 7 2 1 Mn-55 P1 0 +138 7 2 1 Mn-55 P2 0 +139 7 2 1 Mn-55 P3 0 +140 7 2 1 Si-28 P0 0 +141 7 2 1 Si-28 P1 0 +142 7 2 1 Si-28 P2 0 +143 7 2 1 Si-28 P3 0 +144 7 2 1 Si-29 P0 0 +145 7 2 1 Si-29 P1 0 +146 7 2 1 Si-29 P2 0 +147 7 2 1 Si-29 P3 0 +148 7 2 1 Si-30 P0 0 +149 7 2 1 Si-30 P1 0 +150 7 2 1 Si-30 P2 0 +151 7 2 1 Si-30 P3 0 +152 7 2 1 Cr-50 P0 0 +153 7 2 1 Cr-50 P1 0 +154 7 2 1 Cr-50 P2 0 +155 7 2 1 Cr-50 P3 0 +156 7 2 1 Cr-52 P0 0 +157 7 2 1 Cr-52 P1 0 +158 7 2 1 Cr-52 P2 0 +159 7 2 1 Cr-52 P3 0 +160 7 2 1 Cr-53 P0 0 +161 7 2 1 Cr-53 P1 0 +162 7 2 1 Cr-53 P2 0 +163 7 2 1 Cr-53 P3 0 +164 7 2 1 Cr-54 P0 0 +165 7 2 1 Cr-54 P1 0 +166 7 2 1 Cr-54 P2 0 +167 7 2 1 Cr-54 P3 0 +0 7 2 2 H-1 P0 0 +1 7 2 2 H-1 P1 0 +2 7 2 2 H-1 P2 0 +3 7 2 2 H-1 P3 0 +4 7 2 2 O-16 P0 0 +5 7 2 2 O-16 P1 0 +6 7 2 2 O-16 P2 0 +7 7 2 2 O-16 P3 0 +8 7 2 2 B-10 P0 0 +9 7 2 2 B-10 P1 0 +10 7 2 2 B-10 P2 0 +11 7 2 2 B-10 P3 0 +12 7 2 2 B-11 P0 0 +13 7 2 2 B-11 P1 0 +14 7 2 2 B-11 P2 0 +15 7 2 2 B-11 P3 0 +16 7 2 2 Fe-54 P0 0 +17 7 2 2 Fe-54 P1 0 +18 7 2 2 Fe-54 P2 0 +19 7 2 2 Fe-54 P3 0 +20 7 2 2 Fe-56 P0 0 +21 7 2 2 Fe-56 P1 0 +22 7 2 2 Fe-56 P2 0 +23 7 2 2 Fe-56 P3 0 +24 7 2 2 Fe-57 P0 0 +25 7 2 2 Fe-57 P1 0 +26 7 2 2 Fe-57 P2 0 +27 7 2 2 Fe-57 P3 0 +28 7 2 2 Fe-58 P0 0 +29 7 2 2 Fe-58 P1 0 +30 7 2 2 Fe-58 P2 0 +31 7 2 2 Fe-58 P3 0 +32 7 2 2 Ni-58 P0 0 +33 7 2 2 Ni-58 P1 0 +34 7 2 2 Ni-58 P2 0 +35 7 2 2 Ni-58 P3 0 +36 7 2 2 Ni-60 P0 0 +37 7 2 2 Ni-60 P1 0 +38 7 2 2 Ni-60 P2 0 +39 7 2 2 Ni-60 P3 0 +40 7 2 2 Ni-61 P0 0 +41 7 2 2 Ni-61 P1 0 +42 7 2 2 Ni-61 P2 0 +43 7 2 2 Ni-61 P3 0 +44 7 2 2 Ni-62 P0 0 +45 7 2 2 Ni-62 P1 0 +46 7 2 2 Ni-62 P2 0 +47 7 2 2 Ni-62 P3 0 +48 7 2 2 Ni-64 P0 0 +49 7 2 2 Ni-64 P1 0 +50 7 2 2 Ni-64 P2 0 +51 7 2 2 Ni-64 P3 0 +52 7 2 2 Mn-55 P0 0 +53 7 2 2 Mn-55 P1 0 +54 7 2 2 Mn-55 P2 0 +55 7 2 2 Mn-55 P3 0 +56 7 2 2 Si-28 P0 0 +57 7 2 2 Si-28 P1 0 +58 7 2 2 Si-28 P2 0 +59 7 2 2 Si-28 P3 0 +60 7 2 2 Si-29 P0 0 +61 7 2 2 Si-29 P1 0 +62 7 2 2 Si-29 P2 0 +63 7 2 2 Si-29 P3 0 +64 7 2 2 Si-30 P0 0 +65 7 2 2 Si-30 P1 0 +66 7 2 2 Si-30 P2 0 +67 7 2 2 Si-30 P3 0 +68 7 2 2 Cr-50 P0 0 +69 7 2 2 Cr-50 P1 0 +70 7 2 2 Cr-50 P2 0 +71 7 2 2 Cr-50 P3 0 +72 7 2 2 Cr-52 P0 0 +73 7 2 2 Cr-52 P1 0 +74 7 2 2 Cr-52 P2 0 +75 7 2 2 Cr-52 P3 0 +76 7 2 2 Cr-53 P0 0 +77 7 2 2 Cr-53 P1 0 +78 7 2 2 Cr-53 P2 0 +79 7 2 2 Cr-53 P3 0 +80 7 2 2 Cr-54 P0 0 +81 7 2 2 Cr-54 P1 0 +82 7 2 2 Cr-54 P2 0 +83 7 2 2 Cr-54 P3 0 material group out nuclide mean std. dev. +21 7 1 H-1 0 0 +22 7 1 O-16 0 0 +23 7 1 B-10 0 0 +24 7 1 B-11 0 0 +25 7 1 Fe-54 0 0 +26 7 1 Fe-56 0 0 +27 7 1 Fe-57 0 0 +28 7 1 Fe-58 0 0 +29 7 1 Ni-58 0 0 +30 7 1 Ni-60 0 0 +31 7 1 Ni-61 0 0 +32 7 1 Ni-62 0 0 +33 7 1 Ni-64 0 0 +34 7 1 Mn-55 0 0 +35 7 1 Si-28 0 0 +36 7 1 Si-29 0 0 +37 7 1 Si-30 0 0 +38 7 1 Cr-50 0 0 +39 7 1 Cr-52 0 0 +40 7 1 Cr-53 0 0 +41 7 1 Cr-54 0 0 +0 7 2 H-1 0 0 +1 7 2 O-16 0 0 +2 7 2 B-10 0 0 +3 7 2 B-11 0 0 +4 7 2 Fe-54 0 0 +5 7 2 Fe-56 0 0 +6 7 2 Fe-57 0 0 +7 7 2 Fe-58 0 0 +8 7 2 Ni-58 0 0 +9 7 2 Ni-60 0 0 +10 7 2 Ni-61 0 0 +11 7 2 Ni-62 0 0 +12 7 2 Ni-64 0 0 +13 7 2 Mn-55 0 0 +14 7 2 Si-28 0 0 +15 7 2 Si-29 0 0 +16 7 2 Si-30 0 0 +17 7 2 Cr-50 0 0 +18 7 2 Cr-52 0 0 +19 7 2 Cr-53 0 0 +20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 8 1 H-1 0 0 +22 8 1 O-16 0 0 +23 8 1 B-10 0 0 +24 8 1 B-11 0 0 +25 8 1 Fe-54 0 0 +26 8 1 Fe-56 0 0 +27 8 1 Fe-57 0 0 +28 8 1 Fe-58 0 0 +29 8 1 Ni-58 0 0 +30 8 1 Ni-60 0 0 +31 8 1 Ni-61 0 0 +32 8 1 Ni-62 0 0 +33 8 1 Ni-64 0 0 +34 8 1 Mn-55 0 0 +35 8 1 Si-28 0 0 +36 8 1 Si-29 0 0 +37 8 1 Si-30 0 0 +38 8 1 Cr-50 0 0 +39 8 1 Cr-52 0 0 +40 8 1 Cr-53 0 0 +41 8 1 Cr-54 0 0 +0 8 2 H-1 0 0 +1 8 2 O-16 0 0 +2 8 2 B-10 0 0 +3 8 2 B-11 0 0 +4 8 2 Fe-54 0 0 +5 8 2 Fe-56 0 0 +6 8 2 Fe-57 0 0 +7 8 2 Fe-58 0 0 +8 8 2 Ni-58 0 0 +9 8 2 Ni-60 0 0 +10 8 2 Ni-61 0 0 +11 8 2 Ni-62 0 0 +12 8 2 Ni-64 0 0 +13 8 2 Mn-55 0 0 +14 8 2 Si-28 0 0 +15 8 2 Si-29 0 0 +16 8 2 Si-30 0 0 +17 8 2 Cr-50 0 0 +18 8 2 Cr-52 0 0 +19 8 2 Cr-53 0 0 +20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 8 1 H-1 0 0 +22 8 1 O-16 0 0 +23 8 1 B-10 0 0 +24 8 1 B-11 0 0 +25 8 1 Fe-54 0 0 +26 8 1 Fe-56 0 0 +27 8 1 Fe-57 0 0 +28 8 1 Fe-58 0 0 +29 8 1 Ni-58 0 0 +30 8 1 Ni-60 0 0 +31 8 1 Ni-61 0 0 +32 8 1 Ni-62 0 0 +33 8 1 Ni-64 0 0 +34 8 1 Mn-55 0 0 +35 8 1 Si-28 0 0 +36 8 1 Si-29 0 0 +37 8 1 Si-30 0 0 +38 8 1 Cr-50 0 0 +39 8 1 Cr-52 0 0 +40 8 1 Cr-53 0 0 +41 8 1 Cr-54 0 0 +0 8 2 H-1 0 0 +1 8 2 O-16 0 0 +2 8 2 B-10 0 0 +3 8 2 B-11 0 0 +4 8 2 Fe-54 0 0 +5 8 2 Fe-56 0 0 +6 8 2 Fe-57 0 0 +7 8 2 Fe-58 0 0 +8 8 2 Ni-58 0 0 +9 8 2 Ni-60 0 0 +10 8 2 Ni-61 0 0 +11 8 2 Ni-62 0 0 +12 8 2 Ni-64 0 0 +13 8 2 Mn-55 0 0 +14 8 2 Si-28 0 0 +15 8 2 Si-29 0 0 +16 8 2 Si-30 0 0 +17 8 2 Cr-50 0 0 +18 8 2 Cr-52 0 0 +19 8 2 Cr-53 0 0 +20 8 2 Cr-54 0 0 material group in group out nuclide moment mean +252 8 1 1 H-1 P0 0 +253 8 1 1 H-1 P1 0 +254 8 1 1 H-1 P2 0 +255 8 1 1 H-1 P3 0 +256 8 1 1 O-16 P0 0 +257 8 1 1 O-16 P1 0 +258 8 1 1 O-16 P2 0 +259 8 1 1 O-16 P3 0 +260 8 1 1 B-10 P0 0 +261 8 1 1 B-10 P1 0 +262 8 1 1 B-10 P2 0 +263 8 1 1 B-10 P3 0 +264 8 1 1 B-11 P0 0 +265 8 1 1 B-11 P1 0 +266 8 1 1 B-11 P2 0 +267 8 1 1 B-11 P3 0 +268 8 1 1 Fe-54 P0 0 +269 8 1 1 Fe-54 P1 0 +270 8 1 1 Fe-54 P2 0 +271 8 1 1 Fe-54 P3 0 +272 8 1 1 Fe-56 P0 0 +273 8 1 1 Fe-56 P1 0 +274 8 1 1 Fe-56 P2 0 +275 8 1 1 Fe-56 P3 0 +276 8 1 1 Fe-57 P0 0 +277 8 1 1 Fe-57 P1 0 +278 8 1 1 Fe-57 P2 0 +279 8 1 1 Fe-57 P3 0 +280 8 1 1 Fe-58 P0 0 +281 8 1 1 Fe-58 P1 0 +282 8 1 1 Fe-58 P2 0 +283 8 1 1 Fe-58 P3 0 +284 8 1 1 Ni-58 P0 0 +285 8 1 1 Ni-58 P1 0 +286 8 1 1 Ni-58 P2 0 +287 8 1 1 Ni-58 P3 0 +288 8 1 1 Ni-60 P0 0 +289 8 1 1 Ni-60 P1 0 +290 8 1 1 Ni-60 P2 0 +291 8 1 1 Ni-60 P3 0 +292 8 1 1 Ni-61 P0 0 +293 8 1 1 Ni-61 P1 0 +294 8 1 1 Ni-61 P2 0 +295 8 1 1 Ni-61 P3 0 +296 8 1 1 Ni-62 P0 0 +297 8 1 1 Ni-62 P1 0 +298 8 1 1 Ni-62 P2 0 +299 8 1 1 Ni-62 P3 0 +300 8 1 1 Ni-64 P0 0 +301 8 1 1 Ni-64 P1 0 +302 8 1 1 Ni-64 P2 0 +303 8 1 1 Ni-64 P3 0 +304 8 1 1 Mn-55 P0 0 +305 8 1 1 Mn-55 P1 0 +306 8 1 1 Mn-55 P2 0 +307 8 1 1 Mn-55 P3 0 +308 8 1 1 Si-28 P0 0 +309 8 1 1 Si-28 P1 0 +310 8 1 1 Si-28 P2 0 +311 8 1 1 Si-28 P3 0 +312 8 1 1 Si-29 P0 0 +313 8 1 1 Si-29 P1 0 +314 8 1 1 Si-29 P2 0 +315 8 1 1 Si-29 P3 0 +316 8 1 1 Si-30 P0 0 +317 8 1 1 Si-30 P1 0 +318 8 1 1 Si-30 P2 0 +319 8 1 1 Si-30 P3 0 +320 8 1 1 Cr-50 P0 0 +321 8 1 1 Cr-50 P1 0 +322 8 1 1 Cr-50 P2 0 +323 8 1 1 Cr-50 P3 0 +324 8 1 1 Cr-52 P0 0 +325 8 1 1 Cr-52 P1 0 +326 8 1 1 Cr-52 P2 0 +327 8 1 1 Cr-52 P3 0 +328 8 1 1 Cr-53 P0 0 +329 8 1 1 Cr-53 P1 0 +330 8 1 1 Cr-53 P2 0 +331 8 1 1 Cr-53 P3 0 +332 8 1 1 Cr-54 P0 0 +333 8 1 1 Cr-54 P1 0 +334 8 1 1 Cr-54 P2 0 +335 8 1 1 Cr-54 P3 0 +168 8 1 2 H-1 P0 0 +169 8 1 2 H-1 P1 0 +170 8 1 2 H-1 P2 0 +171 8 1 2 H-1 P3 0 +172 8 1 2 O-16 P0 0 +173 8 1 2 O-16 P1 0 +174 8 1 2 O-16 P2 0 +175 8 1 2 O-16 P3 0 +176 8 1 2 B-10 P0 0 +177 8 1 2 B-10 P1 0 +178 8 1 2 B-10 P2 0 +179 8 1 2 B-10 P3 0 +180 8 1 2 B-11 P0 0 +181 8 1 2 B-11 P1 0 +182 8 1 2 B-11 P2 0 +183 8 1 2 B-11 P3 0 +184 8 1 2 Fe-54 P0 0 +185 8 1 2 Fe-54 P1 0 +186 8 1 2 Fe-54 P2 0 +187 8 1 2 Fe-54 P3 0 +188 8 1 2 Fe-56 P0 0 +189 8 1 2 Fe-56 P1 0 +190 8 1 2 Fe-56 P2 0 +191 8 1 2 Fe-56 P3 0 +192 8 1 2 Fe-57 P0 0 +193 8 1 2 Fe-57 P1 0 +194 8 1 2 Fe-57 P2 0 +195 8 1 2 Fe-57 P3 0 +196 8 1 2 Fe-58 P0 0 +197 8 1 2 Fe-58 P1 0 +198 8 1 2 Fe-58 P2 0 +199 8 1 2 Fe-58 P3 0 +200 8 1 2 Ni-58 P0 0 +201 8 1 2 Ni-58 P1 0 +202 8 1 2 Ni-58 P2 0 +203 8 1 2 Ni-58 P3 0 +204 8 1 2 Ni-60 P0 0 +205 8 1 2 Ni-60 P1 0 +206 8 1 2 Ni-60 P2 0 +207 8 1 2 Ni-60 P3 0 +208 8 1 2 Ni-61 P0 0 +209 8 1 2 Ni-61 P1 0 +210 8 1 2 Ni-61 P2 0 +211 8 1 2 Ni-61 P3 0 +212 8 1 2 Ni-62 P0 0 +213 8 1 2 Ni-62 P1 0 +214 8 1 2 Ni-62 P2 0 +215 8 1 2 Ni-62 P3 0 +216 8 1 2 Ni-64 P0 0 +217 8 1 2 Ni-64 P1 0 +218 8 1 2 Ni-64 P2 0 +219 8 1 2 Ni-64 P3 0 +220 8 1 2 Mn-55 P0 0 +221 8 1 2 Mn-55 P1 0 +222 8 1 2 Mn-55 P2 0 +223 8 1 2 Mn-55 P3 0 +224 8 1 2 Si-28 P0 0 +225 8 1 2 Si-28 P1 0 +226 8 1 2 Si-28 P2 0 +227 8 1 2 Si-28 P3 0 +228 8 1 2 Si-29 P0 0 +229 8 1 2 Si-29 P1 0 +230 8 1 2 Si-29 P2 0 +231 8 1 2 Si-29 P3 0 +232 8 1 2 Si-30 P0 0 +233 8 1 2 Si-30 P1 0 +234 8 1 2 Si-30 P2 0 +235 8 1 2 Si-30 P3 0 +236 8 1 2 Cr-50 P0 0 +237 8 1 2 Cr-50 P1 0 +238 8 1 2 Cr-50 P2 0 +239 8 1 2 Cr-50 P3 0 +240 8 1 2 Cr-52 P0 0 +241 8 1 2 Cr-52 P1 0 +242 8 1 2 Cr-52 P2 0 +243 8 1 2 Cr-52 P3 0 +244 8 1 2 Cr-53 P0 0 +245 8 1 2 Cr-53 P1 0 +246 8 1 2 Cr-53 P2 0 +247 8 1 2 Cr-53 P3 0 +248 8 1 2 Cr-54 P0 0 +249 8 1 2 Cr-54 P1 0 +250 8 1 2 Cr-54 P2 0 +251 8 1 2 Cr-54 P3 0 +84 8 2 1 H-1 P0 0 +85 8 2 1 H-1 P1 0 +86 8 2 1 H-1 P2 0 +87 8 2 1 H-1 P3 0 +88 8 2 1 O-16 P0 0 +89 8 2 1 O-16 P1 0 +90 8 2 1 O-16 P2 0 +91 8 2 1 O-16 P3 0 +92 8 2 1 B-10 P0 0 +93 8 2 1 B-10 P1 0 +94 8 2 1 B-10 P2 0 +95 8 2 1 B-10 P3 0 +96 8 2 1 B-11 P0 0 +97 8 2 1 B-11 P1 0 +98 8 2 1 B-11 P2 0 +99 8 2 1 B-11 P3 0 +100 8 2 1 Fe-54 P0 0 +101 8 2 1 Fe-54 P1 0 +102 8 2 1 Fe-54 P2 0 +103 8 2 1 Fe-54 P3 0 +104 8 2 1 Fe-56 P0 0 +105 8 2 1 Fe-56 P1 0 +106 8 2 1 Fe-56 P2 0 +107 8 2 1 Fe-56 P3 0 +108 8 2 1 Fe-57 P0 0 +109 8 2 1 Fe-57 P1 0 +110 8 2 1 Fe-57 P2 0 +111 8 2 1 Fe-57 P3 0 +112 8 2 1 Fe-58 P0 0 +113 8 2 1 Fe-58 P1 0 +114 8 2 1 Fe-58 P2 0 +115 8 2 1 Fe-58 P3 0 +116 8 2 1 Ni-58 P0 0 +117 8 2 1 Ni-58 P1 0 +118 8 2 1 Ni-58 P2 0 +119 8 2 1 Ni-58 P3 0 +120 8 2 1 Ni-60 P0 0 +121 8 2 1 Ni-60 P1 0 +122 8 2 1 Ni-60 P2 0 +123 8 2 1 Ni-60 P3 0 +124 8 2 1 Ni-61 P0 0 +125 8 2 1 Ni-61 P1 0 +126 8 2 1 Ni-61 P2 0 +127 8 2 1 Ni-61 P3 0 +128 8 2 1 Ni-62 P0 0 +129 8 2 1 Ni-62 P1 0 +130 8 2 1 Ni-62 P2 0 +131 8 2 1 Ni-62 P3 0 +132 8 2 1 Ni-64 P0 0 +133 8 2 1 Ni-64 P1 0 +134 8 2 1 Ni-64 P2 0 +135 8 2 1 Ni-64 P3 0 +136 8 2 1 Mn-55 P0 0 +137 8 2 1 Mn-55 P1 0 +138 8 2 1 Mn-55 P2 0 +139 8 2 1 Mn-55 P3 0 +140 8 2 1 Si-28 P0 0 +141 8 2 1 Si-28 P1 0 +142 8 2 1 Si-28 P2 0 +143 8 2 1 Si-28 P3 0 +144 8 2 1 Si-29 P0 0 +145 8 2 1 Si-29 P1 0 +146 8 2 1 Si-29 P2 0 +147 8 2 1 Si-29 P3 0 +148 8 2 1 Si-30 P0 0 +149 8 2 1 Si-30 P1 0 +150 8 2 1 Si-30 P2 0 +151 8 2 1 Si-30 P3 0 +152 8 2 1 Cr-50 P0 0 +153 8 2 1 Cr-50 P1 0 +154 8 2 1 Cr-50 P2 0 +155 8 2 1 Cr-50 P3 0 +156 8 2 1 Cr-52 P0 0 +157 8 2 1 Cr-52 P1 0 +158 8 2 1 Cr-52 P2 0 +159 8 2 1 Cr-52 P3 0 +160 8 2 1 Cr-53 P0 0 +161 8 2 1 Cr-53 P1 0 +162 8 2 1 Cr-53 P2 0 +163 8 2 1 Cr-53 P3 0 +164 8 2 1 Cr-54 P0 0 +165 8 2 1 Cr-54 P1 0 +166 8 2 1 Cr-54 P2 0 +167 8 2 1 Cr-54 P3 0 +0 8 2 2 H-1 P0 0 +1 8 2 2 H-1 P1 0 +2 8 2 2 H-1 P2 0 +3 8 2 2 H-1 P3 0 +4 8 2 2 O-16 P0 0 +5 8 2 2 O-16 P1 0 +6 8 2 2 O-16 P2 0 +7 8 2 2 O-16 P3 0 +8 8 2 2 B-10 P0 0 +9 8 2 2 B-10 P1 0 +10 8 2 2 B-10 P2 0 +11 8 2 2 B-10 P3 0 +12 8 2 2 B-11 P0 0 +13 8 2 2 B-11 P1 0 +14 8 2 2 B-11 P2 0 +15 8 2 2 B-11 P3 0 +16 8 2 2 Fe-54 P0 0 +17 8 2 2 Fe-54 P1 0 +18 8 2 2 Fe-54 P2 0 +19 8 2 2 Fe-54 P3 0 +20 8 2 2 Fe-56 P0 0 +21 8 2 2 Fe-56 P1 0 +22 8 2 2 Fe-56 P2 0 +23 8 2 2 Fe-56 P3 0 +24 8 2 2 Fe-57 P0 0 +25 8 2 2 Fe-57 P1 0 +26 8 2 2 Fe-57 P2 0 +27 8 2 2 Fe-57 P3 0 +28 8 2 2 Fe-58 P0 0 +29 8 2 2 Fe-58 P1 0 +30 8 2 2 Fe-58 P2 0 +31 8 2 2 Fe-58 P3 0 +32 8 2 2 Ni-58 P0 0 +33 8 2 2 Ni-58 P1 0 +34 8 2 2 Ni-58 P2 0 +35 8 2 2 Ni-58 P3 0 +36 8 2 2 Ni-60 P0 0 +37 8 2 2 Ni-60 P1 0 +38 8 2 2 Ni-60 P2 0 +39 8 2 2 Ni-60 P3 0 +40 8 2 2 Ni-61 P0 0 +41 8 2 2 Ni-61 P1 0 +42 8 2 2 Ni-61 P2 0 +43 8 2 2 Ni-61 P3 0 +44 8 2 2 Ni-62 P0 0 +45 8 2 2 Ni-62 P1 0 +46 8 2 2 Ni-62 P2 0 +47 8 2 2 Ni-62 P3 0 +48 8 2 2 Ni-64 P0 0 +49 8 2 2 Ni-64 P1 0 +50 8 2 2 Ni-64 P2 0 +51 8 2 2 Ni-64 P3 0 +52 8 2 2 Mn-55 P0 0 +53 8 2 2 Mn-55 P1 0 +54 8 2 2 Mn-55 P2 0 +55 8 2 2 Mn-55 P3 0 +56 8 2 2 Si-28 P0 0 +57 8 2 2 Si-28 P1 0 +58 8 2 2 Si-28 P2 0 +59 8 2 2 Si-28 P3 0 +60 8 2 2 Si-29 P0 0 +61 8 2 2 Si-29 P1 0 +62 8 2 2 Si-29 P2 0 +63 8 2 2 Si-29 P3 0 +64 8 2 2 Si-30 P0 0 +65 8 2 2 Si-30 P1 0 +66 8 2 2 Si-30 P2 0 +67 8 2 2 Si-30 P3 0 +68 8 2 2 Cr-50 P0 0 +69 8 2 2 Cr-50 P1 0 +70 8 2 2 Cr-50 P2 0 +71 8 2 2 Cr-50 P3 0 +72 8 2 2 Cr-52 P0 0 +73 8 2 2 Cr-52 P1 0 +74 8 2 2 Cr-52 P2 0 +75 8 2 2 Cr-52 P3 0 +76 8 2 2 Cr-53 P0 0 +77 8 2 2 Cr-53 P1 0 +78 8 2 2 Cr-53 P2 0 +79 8 2 2 Cr-53 P3 0 +80 8 2 2 Cr-54 P0 0 +81 8 2 2 Cr-54 P1 0 +82 8 2 2 Cr-54 P2 0 +83 8 2 2 Cr-54 P3 0 material group out nuclide mean std. dev. +21 8 1 H-1 0 0 +22 8 1 O-16 0 0 +23 8 1 B-10 0 0 +24 8 1 B-11 0 0 +25 8 1 Fe-54 0 0 +26 8 1 Fe-56 0 0 +27 8 1 Fe-57 0 0 +28 8 1 Fe-58 0 0 +29 8 1 Ni-58 0 0 +30 8 1 Ni-60 0 0 +31 8 1 Ni-61 0 0 +32 8 1 Ni-62 0 0 +33 8 1 Ni-64 0 0 +34 8 1 Mn-55 0 0 +35 8 1 Si-28 0 0 +36 8 1 Si-29 0 0 +37 8 1 Si-30 0 0 +38 8 1 Cr-50 0 0 +39 8 1 Cr-52 0 0 +40 8 1 Cr-53 0 0 +41 8 1 Cr-54 0 0 +0 8 2 H-1 0 0 +1 8 2 O-16 0 0 +2 8 2 B-10 0 0 +3 8 2 B-11 0 0 +4 8 2 Fe-54 0 0 +5 8 2 Fe-56 0 0 +6 8 2 Fe-57 0 0 +7 8 2 Fe-58 0 0 +8 8 2 Ni-58 0 0 +9 8 2 Ni-60 0 0 +10 8 2 Ni-61 0 0 +11 8 2 Ni-62 0 0 +12 8 2 Ni-64 0 0 +13 8 2 Mn-55 0 0 +14 8 2 Si-28 0 0 +15 8 2 Si-29 0 0 +16 8 2 Si-30 0 0 +17 8 2 Cr-50 0 0 +18 8 2 Cr-52 0 0 +19 8 2 Cr-53 0 0 +20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. 21 9 1 H-1 0.150655 0.480993 22 9 1 O-16 0.116221 0.114089 23 9 1 B-10 0.000000 0.000000 @@ -1411,174 +3055,426 @@ 18 9 2 Cr-52 0.000000 0.000000 19 9 2 Cr-53 0.000000 0.000000 20 9 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 9 1 H-1 0.0 0.0 -22 9 1 O-16 0.0 0.0 -23 9 1 B-10 0.0 0.0 -24 9 1 B-11 0.0 0.0 -25 9 1 Fe-54 0.0 0.0 -26 9 1 Fe-56 0.0 0.0 -27 9 1 Fe-57 0.0 0.0 -28 9 1 Fe-58 0.0 0.0 -29 9 1 Ni-58 0.0 0.0 -30 9 1 Ni-60 0.0 0.0 -31 9 1 Ni-61 0.0 0.0 -32 9 1 Ni-62 0.0 0.0 -33 9 1 Ni-64 0.0 0.0 -34 9 1 Mn-55 0.0 0.0 -35 9 1 Si-28 0.0 0.0 -36 9 1 Si-29 0.0 0.0 -37 9 1 Si-30 0.0 0.0 -38 9 1 Cr-50 0.0 0.0 -39 9 1 Cr-52 0.0 0.0 -40 9 1 Cr-53 0.0 0.0 -41 9 1 Cr-54 0.0 0.0 -0 9 2 H-1 0.0 0.0 -1 9 2 O-16 0.0 0.0 -2 9 2 B-10 0.0 0.0 -3 9 2 B-11 0.0 0.0 -4 9 2 Fe-54 0.0 0.0 -5 9 2 Fe-56 0.0 0.0 -6 9 2 Fe-57 0.0 0.0 -7 9 2 Fe-58 0.0 0.0 -8 9 2 Ni-58 0.0 0.0 -9 9 2 Ni-60 0.0 0.0 -10 9 2 Ni-61 0.0 0.0 -11 9 2 Ni-62 0.0 0.0 -12 9 2 Ni-64 0.0 0.0 -13 9 2 Mn-55 0.0 0.0 -14 9 2 Si-28 0.0 0.0 -15 9 2 Si-29 0.0 0.0 -16 9 2 Si-30 0.0 0.0 -17 9 2 Cr-50 0.0 0.0 -18 9 2 Cr-52 0.0 0.0 -19 9 2 Cr-53 0.0 0.0 -20 9 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. -63 9 1 1 H-1 0.150655 0.480993 -64 9 1 1 O-16 0.116221 0.114089 -65 9 1 1 B-10 0.000000 0.000000 -66 9 1 1 B-11 0.000000 0.000000 -67 9 1 1 Fe-54 0.000000 0.000000 -68 9 1 1 Fe-56 0.186217 0.199795 -69 9 1 1 Fe-57 0.000000 0.000000 -70 9 1 1 Fe-58 0.000000 0.000000 -71 9 1 1 Ni-58 0.000000 0.000000 -72 9 1 1 Ni-60 0.000000 0.000000 -73 9 1 1 Ni-61 0.000000 0.000000 -74 9 1 1 Ni-62 0.000000 0.000000 -75 9 1 1 Ni-64 0.000000 0.000000 -76 9 1 1 Mn-55 0.000000 0.000000 -77 9 1 1 Si-28 0.000000 0.000000 -78 9 1 1 Si-29 0.000000 0.000000 -79 9 1 1 Si-30 0.000000 0.000000 -80 9 1 1 Cr-50 0.000000 0.000000 -81 9 1 1 Cr-52 0.000000 0.000000 -82 9 1 1 Cr-53 0.147443 0.139574 -83 9 1 1 Cr-54 0.000000 0.000000 -42 9 1 2 H-1 0.000000 0.000000 -43 9 1 2 O-16 0.000000 0.000000 -44 9 1 2 B-10 0.000000 0.000000 -45 9 1 2 B-11 0.000000 0.000000 -46 9 1 2 Fe-54 0.000000 0.000000 -47 9 1 2 Fe-56 0.000000 0.000000 -48 9 1 2 Fe-57 0.000000 0.000000 -49 9 1 2 Fe-58 0.000000 0.000000 -50 9 1 2 Ni-58 0.000000 0.000000 -51 9 1 2 Ni-60 0.000000 0.000000 -52 9 1 2 Ni-61 0.000000 0.000000 -53 9 1 2 Ni-62 0.000000 0.000000 -54 9 1 2 Ni-64 0.000000 0.000000 -55 9 1 2 Mn-55 0.000000 0.000000 -56 9 1 2 Si-28 0.000000 0.000000 -57 9 1 2 Si-29 0.000000 0.000000 -58 9 1 2 Si-30 0.000000 0.000000 -59 9 1 2 Cr-50 0.000000 0.000000 -60 9 1 2 Cr-52 0.000000 0.000000 -61 9 1 2 Cr-53 0.000000 0.000000 -62 9 1 2 Cr-54 0.000000 0.000000 -21 9 2 1 H-1 0.000000 0.000000 -22 9 2 1 O-16 0.000000 0.000000 -23 9 2 1 B-10 0.000000 0.000000 -24 9 2 1 B-11 0.000000 0.000000 -25 9 2 1 Fe-54 0.000000 0.000000 -26 9 2 1 Fe-56 0.000000 0.000000 -27 9 2 1 Fe-57 0.000000 0.000000 -28 9 2 1 Fe-58 0.000000 0.000000 -29 9 2 1 Ni-58 0.000000 0.000000 -30 9 2 1 Ni-60 0.000000 0.000000 -31 9 2 1 Ni-61 0.000000 0.000000 -32 9 2 1 Ni-62 0.000000 0.000000 -33 9 2 1 Ni-64 0.000000 0.000000 -34 9 2 1 Mn-55 0.000000 0.000000 -35 9 2 1 Si-28 0.000000 0.000000 -36 9 2 1 Si-29 0.000000 0.000000 -37 9 2 1 Si-30 0.000000 0.000000 -38 9 2 1 Cr-50 0.000000 0.000000 -39 9 2 1 Cr-52 0.000000 0.000000 -40 9 2 1 Cr-53 0.000000 0.000000 -41 9 2 1 Cr-54 0.000000 0.000000 -0 9 2 2 H-1 0.000000 0.000000 -1 9 2 2 O-16 0.000000 0.000000 -2 9 2 2 B-10 0.000000 0.000000 -3 9 2 2 B-11 0.000000 0.000000 -4 9 2 2 Fe-54 0.000000 0.000000 -5 9 2 2 Fe-56 0.000000 0.000000 -6 9 2 2 Fe-57 0.000000 0.000000 -7 9 2 2 Fe-58 0.000000 0.000000 -8 9 2 2 Ni-58 0.000000 0.000000 -9 9 2 2 Ni-60 0.000000 0.000000 -10 9 2 2 Ni-61 0.000000 0.000000 -11 9 2 2 Ni-62 0.000000 0.000000 -12 9 2 2 Ni-64 0.000000 0.000000 -13 9 2 2 Mn-55 0.000000 0.000000 -14 9 2 2 Si-28 0.000000 0.000000 -15 9 2 2 Si-29 0.000000 0.000000 -16 9 2 2 Si-30 0.000000 0.000000 -17 9 2 2 Cr-50 0.000000 0.000000 -18 9 2 2 Cr-52 0.000000 0.000000 -19 9 2 2 Cr-53 0.000000 0.000000 -20 9 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. -21 9 1 H-1 0.0 0.0 -22 9 1 O-16 0.0 0.0 -23 9 1 B-10 0.0 0.0 -24 9 1 B-11 0.0 0.0 -25 9 1 Fe-54 0.0 0.0 -26 9 1 Fe-56 0.0 0.0 -27 9 1 Fe-57 0.0 0.0 -28 9 1 Fe-58 0.0 0.0 -29 9 1 Ni-58 0.0 0.0 -30 9 1 Ni-60 0.0 0.0 -31 9 1 Ni-61 0.0 0.0 -32 9 1 Ni-62 0.0 0.0 -33 9 1 Ni-64 0.0 0.0 -34 9 1 Mn-55 0.0 0.0 -35 9 1 Si-28 0.0 0.0 -36 9 1 Si-29 0.0 0.0 -37 9 1 Si-30 0.0 0.0 -38 9 1 Cr-50 0.0 0.0 -39 9 1 Cr-52 0.0 0.0 -40 9 1 Cr-53 0.0 0.0 -41 9 1 Cr-54 0.0 0.0 -0 9 2 H-1 0.0 0.0 -1 9 2 O-16 0.0 0.0 -2 9 2 B-10 0.0 0.0 -3 9 2 B-11 0.0 0.0 -4 9 2 Fe-54 0.0 0.0 -5 9 2 Fe-56 0.0 0.0 -6 9 2 Fe-57 0.0 0.0 -7 9 2 Fe-58 0.0 0.0 -8 9 2 Ni-58 0.0 0.0 -9 9 2 Ni-60 0.0 0.0 -10 9 2 Ni-61 0.0 0.0 -11 9 2 Ni-62 0.0 0.0 -12 9 2 Ni-64 0.0 0.0 -13 9 2 Mn-55 0.0 0.0 -14 9 2 Si-28 0.0 0.0 -15 9 2 Si-29 0.0 0.0 -16 9 2 Si-30 0.0 0.0 -17 9 2 Cr-50 0.0 0.0 -18 9 2 Cr-52 0.0 0.0 -19 9 2 Cr-53 0.0 0.0 -20 9 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 9 1 H-1 0 0 +22 9 1 O-16 0 0 +23 9 1 B-10 0 0 +24 9 1 B-11 0 0 +25 9 1 Fe-54 0 0 +26 9 1 Fe-56 0 0 +27 9 1 Fe-57 0 0 +28 9 1 Fe-58 0 0 +29 9 1 Ni-58 0 0 +30 9 1 Ni-60 0 0 +31 9 1 Ni-61 0 0 +32 9 1 Ni-62 0 0 +33 9 1 Ni-64 0 0 +34 9 1 Mn-55 0 0 +35 9 1 Si-28 0 0 +36 9 1 Si-29 0 0 +37 9 1 Si-30 0 0 +38 9 1 Cr-50 0 0 +39 9 1 Cr-52 0 0 +40 9 1 Cr-53 0 0 +41 9 1 Cr-54 0 0 +0 9 2 H-1 0 0 +1 9 2 O-16 0 0 +2 9 2 B-10 0 0 +3 9 2 B-11 0 0 +4 9 2 Fe-54 0 0 +5 9 2 Fe-56 0 0 +6 9 2 Fe-57 0 0 +7 9 2 Fe-58 0 0 +8 9 2 Ni-58 0 0 +9 9 2 Ni-60 0 0 +10 9 2 Ni-61 0 0 +11 9 2 Ni-62 0 0 +12 9 2 Ni-64 0 0 +13 9 2 Mn-55 0 0 +14 9 2 Si-28 0 0 +15 9 2 Si-29 0 0 +16 9 2 Si-30 0 0 +17 9 2 Cr-50 0 0 +18 9 2 Cr-52 0 0 +19 9 2 Cr-53 0 0 +20 9 2 Cr-54 0 0 material group in group out nuclide moment mean +252 9 1 1 H-1 P0 0.400211 +253 9 1 1 H-1 P1 0.249556 +254 9 1 1 H-1 P2 0.082049 +255 9 1 1 H-1 P3 0.001559 +256 9 1 1 O-16 P0 0.080042 +257 9 1 1 O-16 P1 -0.036179 +258 9 1 1 O-16 P2 -0.015492 +259 9 1 1 O-16 P3 0.035790 +260 9 1 1 B-10 P0 0.000000 +261 9 1 1 B-10 P1 0.000000 +262 9 1 1 B-10 P2 0.000000 +263 9 1 1 B-10 P3 0.000000 +264 9 1 1 B-11 P0 0.000000 +265 9 1 1 B-11 P1 0.000000 +266 9 1 1 B-11 P2 0.000000 +267 9 1 1 B-11 P3 0.000000 +268 9 1 1 Fe-54 P0 0.000000 +269 9 1 1 Fe-54 P1 0.000000 +270 9 1 1 Fe-54 P2 0.000000 +271 9 1 1 Fe-54 P3 0.000000 +272 9 1 1 Fe-56 P0 0.160084 +273 9 1 1 Fe-56 P1 -0.026133 +274 9 1 1 Fe-56 P2 -0.073149 +275 9 1 1 Fe-56 P3 0.037054 +276 9 1 1 Fe-57 P0 0.000000 +277 9 1 1 Fe-57 P1 0.000000 +278 9 1 1 Fe-57 P2 0.000000 +279 9 1 1 Fe-57 P3 0.000000 +280 9 1 1 Fe-58 P0 0.000000 +281 9 1 1 Fe-58 P1 0.000000 +282 9 1 1 Fe-58 P2 0.000000 +283 9 1 1 Fe-58 P3 0.000000 +284 9 1 1 Ni-58 P0 0.000000 +285 9 1 1 Ni-58 P1 0.000000 +286 9 1 1 Ni-58 P2 0.000000 +287 9 1 1 Ni-58 P3 0.000000 +288 9 1 1 Ni-60 P0 0.000000 +289 9 1 1 Ni-60 P1 0.000000 +290 9 1 1 Ni-60 P2 0.000000 +291 9 1 1 Ni-60 P3 0.000000 +292 9 1 1 Ni-61 P0 0.000000 +293 9 1 1 Ni-61 P1 0.000000 +294 9 1 1 Ni-61 P2 0.000000 +295 9 1 1 Ni-61 P3 0.000000 +296 9 1 1 Ni-62 P0 0.000000 +297 9 1 1 Ni-62 P1 0.000000 +298 9 1 1 Ni-62 P2 0.000000 +299 9 1 1 Ni-62 P3 0.000000 +300 9 1 1 Ni-64 P0 0.000000 +301 9 1 1 Ni-64 P1 0.000000 +302 9 1 1 Ni-64 P2 0.000000 +303 9 1 1 Ni-64 P3 0.000000 +304 9 1 1 Mn-55 P0 0.000000 +305 9 1 1 Mn-55 P1 0.000000 +306 9 1 1 Mn-55 P2 0.000000 +307 9 1 1 Mn-55 P3 0.000000 +308 9 1 1 Si-28 P0 0.000000 +309 9 1 1 Si-28 P1 0.000000 +310 9 1 1 Si-28 P2 0.000000 +311 9 1 1 Si-28 P3 0.000000 +312 9 1 1 Si-29 P0 0.000000 +313 9 1 1 Si-29 P1 0.000000 +314 9 1 1 Si-29 P2 0.000000 +315 9 1 1 Si-29 P3 0.000000 +316 9 1 1 Si-30 P0 0.000000 +317 9 1 1 Si-30 P1 0.000000 +318 9 1 1 Si-30 P2 0.000000 +319 9 1 1 Si-30 P3 0.000000 +320 9 1 1 Cr-50 P0 0.000000 +321 9 1 1 Cr-50 P1 0.000000 +322 9 1 1 Cr-50 P2 0.000000 +323 9 1 1 Cr-50 P3 0.000000 +324 9 1 1 Cr-52 P0 0.000000 +325 9 1 1 Cr-52 P1 0.000000 +326 9 1 1 Cr-52 P2 0.000000 +327 9 1 1 Cr-52 P3 0.000000 +328 9 1 1 Cr-53 P0 0.080042 +329 9 1 1 Cr-53 P1 -0.067401 +330 9 1 1 Cr-53 P2 0.045113 +331 9 1 1 Cr-53 P3 -0.018380 +332 9 1 1 Cr-54 P0 0.000000 +333 9 1 1 Cr-54 P1 0.000000 +334 9 1 1 Cr-54 P2 0.000000 +335 9 1 1 Cr-54 P3 0.000000 +168 9 1 2 H-1 P0 0.000000 +169 9 1 2 H-1 P1 0.000000 +170 9 1 2 H-1 P2 0.000000 +171 9 1 2 H-1 P3 0.000000 +172 9 1 2 O-16 P0 0.000000 +173 9 1 2 O-16 P1 0.000000 +174 9 1 2 O-16 P2 0.000000 +175 9 1 2 O-16 P3 0.000000 +176 9 1 2 B-10 P0 0.000000 +177 9 1 2 B-10 P1 0.000000 +178 9 1 2 B-10 P2 0.000000 +179 9 1 2 B-10 P3 0.000000 +180 9 1 2 B-11 P0 0.000000 +181 9 1 2 B-11 P1 0.000000 +182 9 1 2 B-11 P2 0.000000 +183 9 1 2 B-11 P3 0.000000 +184 9 1 2 Fe-54 P0 0.000000 +185 9 1 2 Fe-54 P1 0.000000 +186 9 1 2 Fe-54 P2 0.000000 +187 9 1 2 Fe-54 P3 0.000000 +188 9 1 2 Fe-56 P0 0.000000 +189 9 1 2 Fe-56 P1 0.000000 +190 9 1 2 Fe-56 P2 0.000000 +191 9 1 2 Fe-56 P3 0.000000 +192 9 1 2 Fe-57 P0 0.000000 +193 9 1 2 Fe-57 P1 0.000000 +194 9 1 2 Fe-57 P2 0.000000 +195 9 1 2 Fe-57 P3 0.000000 +196 9 1 2 Fe-58 P0 0.000000 +197 9 1 2 Fe-58 P1 0.000000 +198 9 1 2 Fe-58 P2 0.000000 +199 9 1 2 Fe-58 P3 0.000000 +200 9 1 2 Ni-58 P0 0.000000 +201 9 1 2 Ni-58 P1 0.000000 +202 9 1 2 Ni-58 P2 0.000000 +203 9 1 2 Ni-58 P3 0.000000 +204 9 1 2 Ni-60 P0 0.000000 +205 9 1 2 Ni-60 P1 0.000000 +206 9 1 2 Ni-60 P2 0.000000 +207 9 1 2 Ni-60 P3 0.000000 +208 9 1 2 Ni-61 P0 0.000000 +209 9 1 2 Ni-61 P1 0.000000 +210 9 1 2 Ni-61 P2 0.000000 +211 9 1 2 Ni-61 P3 0.000000 +212 9 1 2 Ni-62 P0 0.000000 +213 9 1 2 Ni-62 P1 0.000000 +214 9 1 2 Ni-62 P2 0.000000 +215 9 1 2 Ni-62 P3 0.000000 +216 9 1 2 Ni-64 P0 0.000000 +217 9 1 2 Ni-64 P1 0.000000 +218 9 1 2 Ni-64 P2 0.000000 +219 9 1 2 Ni-64 P3 0.000000 +220 9 1 2 Mn-55 P0 0.000000 +221 9 1 2 Mn-55 P1 0.000000 +222 9 1 2 Mn-55 P2 0.000000 +223 9 1 2 Mn-55 P3 0.000000 +224 9 1 2 Si-28 P0 0.000000 +225 9 1 2 Si-28 P1 0.000000 +226 9 1 2 Si-28 P2 0.000000 +227 9 1 2 Si-28 P3 0.000000 +228 9 1 2 Si-29 P0 0.000000 +229 9 1 2 Si-29 P1 0.000000 +230 9 1 2 Si-29 P2 0.000000 +231 9 1 2 Si-29 P3 0.000000 +232 9 1 2 Si-30 P0 0.000000 +233 9 1 2 Si-30 P1 0.000000 +234 9 1 2 Si-30 P2 0.000000 +235 9 1 2 Si-30 P3 0.000000 +236 9 1 2 Cr-50 P0 0.000000 +237 9 1 2 Cr-50 P1 0.000000 +238 9 1 2 Cr-50 P2 0.000000 +239 9 1 2 Cr-50 P3 0.000000 +240 9 1 2 Cr-52 P0 0.000000 +241 9 1 2 Cr-52 P1 0.000000 +242 9 1 2 Cr-52 P2 0.000000 +243 9 1 2 Cr-52 P3 0.000000 +244 9 1 2 Cr-53 P0 0.000000 +245 9 1 2 Cr-53 P1 0.000000 +246 9 1 2 Cr-53 P2 0.000000 +247 9 1 2 Cr-53 P3 0.000000 +248 9 1 2 Cr-54 P0 0.000000 +249 9 1 2 Cr-54 P1 0.000000 +250 9 1 2 Cr-54 P2 0.000000 +251 9 1 2 Cr-54 P3 0.000000 +84 9 2 1 H-1 P0 0.000000 +85 9 2 1 H-1 P1 0.000000 +86 9 2 1 H-1 P2 0.000000 +87 9 2 1 H-1 P3 0.000000 +88 9 2 1 O-16 P0 0.000000 +89 9 2 1 O-16 P1 0.000000 +90 9 2 1 O-16 P2 0.000000 +91 9 2 1 O-16 P3 0.000000 +92 9 2 1 B-10 P0 0.000000 +93 9 2 1 B-10 P1 0.000000 +94 9 2 1 B-10 P2 0.000000 +95 9 2 1 B-10 P3 0.000000 +96 9 2 1 B-11 P0 0.000000 +97 9 2 1 B-11 P1 0.000000 +98 9 2 1 B-11 P2 0.000000 +99 9 2 1 B-11 P3 0.000000 +100 9 2 1 Fe-54 P0 0.000000 +101 9 2 1 Fe-54 P1 0.000000 +102 9 2 1 Fe-54 P2 0.000000 +103 9 2 1 Fe-54 P3 0.000000 +104 9 2 1 Fe-56 P0 0.000000 +105 9 2 1 Fe-56 P1 0.000000 +106 9 2 1 Fe-56 P2 0.000000 +107 9 2 1 Fe-56 P3 0.000000 +108 9 2 1 Fe-57 P0 0.000000 +109 9 2 1 Fe-57 P1 0.000000 +110 9 2 1 Fe-57 P2 0.000000 +111 9 2 1 Fe-57 P3 0.000000 +112 9 2 1 Fe-58 P0 0.000000 +113 9 2 1 Fe-58 P1 0.000000 +114 9 2 1 Fe-58 P2 0.000000 +115 9 2 1 Fe-58 P3 0.000000 +116 9 2 1 Ni-58 P0 0.000000 +117 9 2 1 Ni-58 P1 0.000000 +118 9 2 1 Ni-58 P2 0.000000 +119 9 2 1 Ni-58 P3 0.000000 +120 9 2 1 Ni-60 P0 0.000000 +121 9 2 1 Ni-60 P1 0.000000 +122 9 2 1 Ni-60 P2 0.000000 +123 9 2 1 Ni-60 P3 0.000000 +124 9 2 1 Ni-61 P0 0.000000 +125 9 2 1 Ni-61 P1 0.000000 +126 9 2 1 Ni-61 P2 0.000000 +127 9 2 1 Ni-61 P3 0.000000 +128 9 2 1 Ni-62 P0 0.000000 +129 9 2 1 Ni-62 P1 0.000000 +130 9 2 1 Ni-62 P2 0.000000 +131 9 2 1 Ni-62 P3 0.000000 +132 9 2 1 Ni-64 P0 0.000000 +133 9 2 1 Ni-64 P1 0.000000 +134 9 2 1 Ni-64 P2 0.000000 +135 9 2 1 Ni-64 P3 0.000000 +136 9 2 1 Mn-55 P0 0.000000 +137 9 2 1 Mn-55 P1 0.000000 +138 9 2 1 Mn-55 P2 0.000000 +139 9 2 1 Mn-55 P3 0.000000 +140 9 2 1 Si-28 P0 0.000000 +141 9 2 1 Si-28 P1 0.000000 +142 9 2 1 Si-28 P2 0.000000 +143 9 2 1 Si-28 P3 0.000000 +144 9 2 1 Si-29 P0 0.000000 +145 9 2 1 Si-29 P1 0.000000 +146 9 2 1 Si-29 P2 0.000000 +147 9 2 1 Si-29 P3 0.000000 +148 9 2 1 Si-30 P0 0.000000 +149 9 2 1 Si-30 P1 0.000000 +150 9 2 1 Si-30 P2 0.000000 +151 9 2 1 Si-30 P3 0.000000 +152 9 2 1 Cr-50 P0 0.000000 +153 9 2 1 Cr-50 P1 0.000000 +154 9 2 1 Cr-50 P2 0.000000 +155 9 2 1 Cr-50 P3 0.000000 +156 9 2 1 Cr-52 P0 0.000000 +157 9 2 1 Cr-52 P1 0.000000 +158 9 2 1 Cr-52 P2 0.000000 +159 9 2 1 Cr-52 P3 0.000000 +160 9 2 1 Cr-53 P0 0.000000 +161 9 2 1 Cr-53 P1 0.000000 +162 9 2 1 Cr-53 P2 0.000000 +163 9 2 1 Cr-53 P3 0.000000 +164 9 2 1 Cr-54 P0 0.000000 +165 9 2 1 Cr-54 P1 0.000000 +166 9 2 1 Cr-54 P2 0.000000 +167 9 2 1 Cr-54 P3 0.000000 +0 9 2 2 H-1 P0 0.000000 +1 9 2 2 H-1 P1 0.000000 +2 9 2 2 H-1 P2 0.000000 +3 9 2 2 H-1 P3 0.000000 +4 9 2 2 O-16 P0 0.000000 +5 9 2 2 O-16 P1 0.000000 +6 9 2 2 O-16 P2 0.000000 +7 9 2 2 O-16 P3 0.000000 +8 9 2 2 B-10 P0 0.000000 +9 9 2 2 B-10 P1 0.000000 +10 9 2 2 B-10 P2 0.000000 +11 9 2 2 B-10 P3 0.000000 +12 9 2 2 B-11 P0 0.000000 +13 9 2 2 B-11 P1 0.000000 +14 9 2 2 B-11 P2 0.000000 +15 9 2 2 B-11 P3 0.000000 +16 9 2 2 Fe-54 P0 0.000000 +17 9 2 2 Fe-54 P1 0.000000 +18 9 2 2 Fe-54 P2 0.000000 +19 9 2 2 Fe-54 P3 0.000000 +20 9 2 2 Fe-56 P0 0.000000 +21 9 2 2 Fe-56 P1 0.000000 +22 9 2 2 Fe-56 P2 0.000000 +23 9 2 2 Fe-56 P3 0.000000 +24 9 2 2 Fe-57 P0 0.000000 +25 9 2 2 Fe-57 P1 0.000000 +26 9 2 2 Fe-57 P2 0.000000 +27 9 2 2 Fe-57 P3 0.000000 +28 9 2 2 Fe-58 P0 0.000000 +29 9 2 2 Fe-58 P1 0.000000 +30 9 2 2 Fe-58 P2 0.000000 +31 9 2 2 Fe-58 P3 0.000000 +32 9 2 2 Ni-58 P0 0.000000 +33 9 2 2 Ni-58 P1 0.000000 +34 9 2 2 Ni-58 P2 0.000000 +35 9 2 2 Ni-58 P3 0.000000 +36 9 2 2 Ni-60 P0 0.000000 +37 9 2 2 Ni-60 P1 0.000000 +38 9 2 2 Ni-60 P2 0.000000 +39 9 2 2 Ni-60 P3 0.000000 +40 9 2 2 Ni-61 P0 0.000000 +41 9 2 2 Ni-61 P1 0.000000 +42 9 2 2 Ni-61 P2 0.000000 +43 9 2 2 Ni-61 P3 0.000000 +44 9 2 2 Ni-62 P0 0.000000 +45 9 2 2 Ni-62 P1 0.000000 +46 9 2 2 Ni-62 P2 0.000000 +47 9 2 2 Ni-62 P3 0.000000 +48 9 2 2 Ni-64 P0 0.000000 +49 9 2 2 Ni-64 P1 0.000000 +50 9 2 2 Ni-64 P2 0.000000 +51 9 2 2 Ni-64 P3 0.000000 +52 9 2 2 Mn-55 P0 0.000000 +53 9 2 2 Mn-55 P1 0.000000 +54 9 2 2 Mn-55 P2 0.000000 +55 9 2 2 Mn-55 P3 0.000000 +56 9 2 2 Si-28 P0 0.000000 +57 9 2 2 Si-28 P1 0.000000 +58 9 2 2 Si-28 P2 0.000000 +59 9 2 2 Si-28 P3 0.000000 +60 9 2 2 Si-29 P0 0.000000 +61 9 2 2 Si-29 P1 0.000000 +62 9 2 2 Si-29 P2 0.000000 +63 9 2 2 Si-29 P3 0.000000 +64 9 2 2 Si-30 P0 0.000000 +65 9 2 2 Si-30 P1 0.000000 +66 9 2 2 Si-30 P2 0.000000 +67 9 2 2 Si-30 P3 0.000000 +68 9 2 2 Cr-50 P0 0.000000 +69 9 2 2 Cr-50 P1 0.000000 +70 9 2 2 Cr-50 P2 0.000000 +71 9 2 2 Cr-50 P3 0.000000 +72 9 2 2 Cr-52 P0 0.000000 +73 9 2 2 Cr-52 P1 0.000000 +74 9 2 2 Cr-52 P2 0.000000 +75 9 2 2 Cr-52 P3 0.000000 +76 9 2 2 Cr-53 P0 0.000000 +77 9 2 2 Cr-53 P1 0.000000 +78 9 2 2 Cr-53 P2 0.000000 +79 9 2 2 Cr-53 P3 0.000000 +80 9 2 2 Cr-54 P0 0.000000 +81 9 2 2 Cr-54 P1 0.000000 +82 9 2 2 Cr-54 P2 0.000000 +83 9 2 2 Cr-54 P3 0.000000 material group out nuclide mean std. dev. +21 9 1 H-1 0 0 +22 9 1 O-16 0 0 +23 9 1 B-10 0 0 +24 9 1 B-11 0 0 +25 9 1 Fe-54 0 0 +26 9 1 Fe-56 0 0 +27 9 1 Fe-57 0 0 +28 9 1 Fe-58 0 0 +29 9 1 Ni-58 0 0 +30 9 1 Ni-60 0 0 +31 9 1 Ni-61 0 0 +32 9 1 Ni-62 0 0 +33 9 1 Ni-64 0 0 +34 9 1 Mn-55 0 0 +35 9 1 Si-28 0 0 +36 9 1 Si-29 0 0 +37 9 1 Si-30 0 0 +38 9 1 Cr-50 0 0 +39 9 1 Cr-52 0 0 +40 9 1 Cr-53 0 0 +41 9 1 Cr-54 0 0 +0 9 2 H-1 0 0 +1 9 2 O-16 0 0 +2 9 2 B-10 0 0 +3 9 2 B-11 0 0 +4 9 2 Fe-54 0 0 +5 9 2 Fe-56 0 0 +6 9 2 Fe-57 0 0 +7 9 2 Fe-58 0 0 +8 9 2 Ni-58 0 0 +9 9 2 Ni-60 0 0 +10 9 2 Ni-61 0 0 +11 9 2 Ni-62 0 0 +12 9 2 Ni-64 0 0 +13 9 2 Mn-55 0 0 +14 9 2 Si-28 0 0 +15 9 2 Si-29 0 0 +16 9 2 Si-30 0 0 +17 9 2 Cr-50 0 0 +18 9 2 Cr-52 0 0 +19 9 2 Cr-53 0 0 +20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. 21 10 1 H-1 0.123944 0.541390 22 10 1 O-16 0.000000 0.000000 23 10 1 B-10 0.000000 0.000000 @@ -1621,174 +3517,426 @@ 18 10 2 Cr-52 0.000000 0.000000 19 10 2 Cr-53 0.000000 0.000000 20 10 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 10 1 H-1 0.0 0.0 -22 10 1 O-16 0.0 0.0 -23 10 1 B-10 0.0 0.0 -24 10 1 B-11 0.0 0.0 -25 10 1 Fe-54 0.0 0.0 -26 10 1 Fe-56 0.0 0.0 -27 10 1 Fe-57 0.0 0.0 -28 10 1 Fe-58 0.0 0.0 -29 10 1 Ni-58 0.0 0.0 -30 10 1 Ni-60 0.0 0.0 -31 10 1 Ni-61 0.0 0.0 -32 10 1 Ni-62 0.0 0.0 -33 10 1 Ni-64 0.0 0.0 -34 10 1 Mn-55 0.0 0.0 -35 10 1 Si-28 0.0 0.0 -36 10 1 Si-29 0.0 0.0 -37 10 1 Si-30 0.0 0.0 -38 10 1 Cr-50 0.0 0.0 -39 10 1 Cr-52 0.0 0.0 -40 10 1 Cr-53 0.0 0.0 -41 10 1 Cr-54 0.0 0.0 -0 10 2 H-1 0.0 0.0 -1 10 2 O-16 0.0 0.0 -2 10 2 B-10 0.0 0.0 -3 10 2 B-11 0.0 0.0 -4 10 2 Fe-54 0.0 0.0 -5 10 2 Fe-56 0.0 0.0 -6 10 2 Fe-57 0.0 0.0 -7 10 2 Fe-58 0.0 0.0 -8 10 2 Ni-58 0.0 0.0 -9 10 2 Ni-60 0.0 0.0 -10 10 2 Ni-61 0.0 0.0 -11 10 2 Ni-62 0.0 0.0 -12 10 2 Ni-64 0.0 0.0 -13 10 2 Mn-55 0.0 0.0 -14 10 2 Si-28 0.0 0.0 -15 10 2 Si-29 0.0 0.0 -16 10 2 Si-30 0.0 0.0 -17 10 2 Cr-50 0.0 0.0 -18 10 2 Cr-52 0.0 0.0 -19 10 2 Cr-53 0.0 0.0 -20 10 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. -63 10 1 1 H-1 0.123944 0.541390 -64 10 1 1 O-16 0.000000 0.000000 -65 10 1 1 B-10 0.000000 0.000000 -66 10 1 1 B-11 0.000000 0.000000 -67 10 1 1 Fe-54 0.000000 0.000000 -68 10 1 1 Fe-56 0.000000 0.000000 -69 10 1 1 Fe-57 0.000000 0.000000 -70 10 1 1 Fe-58 0.000000 0.000000 -71 10 1 1 Ni-58 0.000000 0.000000 -72 10 1 1 Ni-60 0.000000 0.000000 -73 10 1 1 Ni-61 0.000000 0.000000 -74 10 1 1 Ni-62 0.000000 0.000000 -75 10 1 1 Ni-64 0.000000 0.000000 -76 10 1 1 Mn-55 0.000000 0.000000 -77 10 1 1 Si-28 0.000000 0.000000 -78 10 1 1 Si-29 0.000000 0.000000 -79 10 1 1 Si-30 0.000000 0.000000 -80 10 1 1 Cr-50 0.111571 0.138458 -81 10 1 1 Cr-52 0.000000 0.000000 -82 10 1 1 Cr-53 0.000000 0.000000 -83 10 1 1 Cr-54 0.000000 0.000000 -42 10 1 2 H-1 0.000000 0.000000 -43 10 1 2 O-16 0.000000 0.000000 -44 10 1 2 B-10 0.000000 0.000000 -45 10 1 2 B-11 0.000000 0.000000 -46 10 1 2 Fe-54 0.000000 0.000000 -47 10 1 2 Fe-56 0.000000 0.000000 -48 10 1 2 Fe-57 0.000000 0.000000 -49 10 1 2 Fe-58 0.000000 0.000000 -50 10 1 2 Ni-58 0.000000 0.000000 -51 10 1 2 Ni-60 0.000000 0.000000 -52 10 1 2 Ni-61 0.000000 0.000000 -53 10 1 2 Ni-62 0.000000 0.000000 -54 10 1 2 Ni-64 0.000000 0.000000 -55 10 1 2 Mn-55 0.000000 0.000000 -56 10 1 2 Si-28 0.000000 0.000000 -57 10 1 2 Si-29 0.000000 0.000000 -58 10 1 2 Si-30 0.000000 0.000000 -59 10 1 2 Cr-50 0.000000 0.000000 -60 10 1 2 Cr-52 0.000000 0.000000 -61 10 1 2 Cr-53 0.000000 0.000000 -62 10 1 2 Cr-54 0.000000 0.000000 -21 10 2 1 H-1 0.000000 0.000000 -22 10 2 1 O-16 0.000000 0.000000 -23 10 2 1 B-10 0.000000 0.000000 -24 10 2 1 B-11 0.000000 0.000000 -25 10 2 1 Fe-54 0.000000 0.000000 -26 10 2 1 Fe-56 0.000000 0.000000 -27 10 2 1 Fe-57 0.000000 0.000000 -28 10 2 1 Fe-58 0.000000 0.000000 -29 10 2 1 Ni-58 0.000000 0.000000 -30 10 2 1 Ni-60 0.000000 0.000000 -31 10 2 1 Ni-61 0.000000 0.000000 -32 10 2 1 Ni-62 0.000000 0.000000 -33 10 2 1 Ni-64 0.000000 0.000000 -34 10 2 1 Mn-55 0.000000 0.000000 -35 10 2 1 Si-28 0.000000 0.000000 -36 10 2 1 Si-29 0.000000 0.000000 -37 10 2 1 Si-30 0.000000 0.000000 -38 10 2 1 Cr-50 0.000000 0.000000 -39 10 2 1 Cr-52 0.000000 0.000000 -40 10 2 1 Cr-53 0.000000 0.000000 -41 10 2 1 Cr-54 0.000000 0.000000 -0 10 2 2 H-1 0.000000 0.000000 -1 10 2 2 O-16 0.000000 0.000000 -2 10 2 2 B-10 0.000000 0.000000 -3 10 2 2 B-11 0.000000 0.000000 -4 10 2 2 Fe-54 0.000000 0.000000 -5 10 2 2 Fe-56 0.000000 0.000000 -6 10 2 2 Fe-57 0.000000 0.000000 -7 10 2 2 Fe-58 0.000000 0.000000 -8 10 2 2 Ni-58 0.000000 0.000000 -9 10 2 2 Ni-60 0.000000 0.000000 -10 10 2 2 Ni-61 0.000000 0.000000 -11 10 2 2 Ni-62 0.000000 0.000000 -12 10 2 2 Ni-64 0.000000 0.000000 -13 10 2 2 Mn-55 0.000000 0.000000 -14 10 2 2 Si-28 0.000000 0.000000 -15 10 2 2 Si-29 0.000000 0.000000 -16 10 2 2 Si-30 0.000000 0.000000 -17 10 2 2 Cr-50 0.000000 0.000000 -18 10 2 2 Cr-52 0.000000 0.000000 -19 10 2 2 Cr-53 0.000000 0.000000 -20 10 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. -21 10 1 H-1 0.0 0.0 -22 10 1 O-16 0.0 0.0 -23 10 1 B-10 0.0 0.0 -24 10 1 B-11 0.0 0.0 -25 10 1 Fe-54 0.0 0.0 -26 10 1 Fe-56 0.0 0.0 -27 10 1 Fe-57 0.0 0.0 -28 10 1 Fe-58 0.0 0.0 -29 10 1 Ni-58 0.0 0.0 -30 10 1 Ni-60 0.0 0.0 -31 10 1 Ni-61 0.0 0.0 -32 10 1 Ni-62 0.0 0.0 -33 10 1 Ni-64 0.0 0.0 -34 10 1 Mn-55 0.0 0.0 -35 10 1 Si-28 0.0 0.0 -36 10 1 Si-29 0.0 0.0 -37 10 1 Si-30 0.0 0.0 -38 10 1 Cr-50 0.0 0.0 -39 10 1 Cr-52 0.0 0.0 -40 10 1 Cr-53 0.0 0.0 -41 10 1 Cr-54 0.0 0.0 -0 10 2 H-1 0.0 0.0 -1 10 2 O-16 0.0 0.0 -2 10 2 B-10 0.0 0.0 -3 10 2 B-11 0.0 0.0 -4 10 2 Fe-54 0.0 0.0 -5 10 2 Fe-56 0.0 0.0 -6 10 2 Fe-57 0.0 0.0 -7 10 2 Fe-58 0.0 0.0 -8 10 2 Ni-58 0.0 0.0 -9 10 2 Ni-60 0.0 0.0 -10 10 2 Ni-61 0.0 0.0 -11 10 2 Ni-62 0.0 0.0 -12 10 2 Ni-64 0.0 0.0 -13 10 2 Mn-55 0.0 0.0 -14 10 2 Si-28 0.0 0.0 -15 10 2 Si-29 0.0 0.0 -16 10 2 Si-30 0.0 0.0 -17 10 2 Cr-50 0.0 0.0 -18 10 2 Cr-52 0.0 0.0 -19 10 2 Cr-53 0.0 0.0 -20 10 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 10 1 H-1 0 0 +22 10 1 O-16 0 0 +23 10 1 B-10 0 0 +24 10 1 B-11 0 0 +25 10 1 Fe-54 0 0 +26 10 1 Fe-56 0 0 +27 10 1 Fe-57 0 0 +28 10 1 Fe-58 0 0 +29 10 1 Ni-58 0 0 +30 10 1 Ni-60 0 0 +31 10 1 Ni-61 0 0 +32 10 1 Ni-62 0 0 +33 10 1 Ni-64 0 0 +34 10 1 Mn-55 0 0 +35 10 1 Si-28 0 0 +36 10 1 Si-29 0 0 +37 10 1 Si-30 0 0 +38 10 1 Cr-50 0 0 +39 10 1 Cr-52 0 0 +40 10 1 Cr-53 0 0 +41 10 1 Cr-54 0 0 +0 10 2 H-1 0 0 +1 10 2 O-16 0 0 +2 10 2 B-10 0 0 +3 10 2 B-11 0 0 +4 10 2 Fe-54 0 0 +5 10 2 Fe-56 0 0 +6 10 2 Fe-57 0 0 +7 10 2 Fe-58 0 0 +8 10 2 Ni-58 0 0 +9 10 2 Ni-60 0 0 +10 10 2 Ni-61 0 0 +11 10 2 Ni-62 0 0 +12 10 2 Ni-64 0 0 +13 10 2 Mn-55 0 0 +14 10 2 Si-28 0 0 +15 10 2 Si-29 0 0 +16 10 2 Si-30 0 0 +17 10 2 Cr-50 0 0 +18 10 2 Cr-52 0 0 +19 10 2 Cr-53 0 0 +20 10 2 Cr-54 0 0 material group in group out nuclide moment mean +252 10 1 1 H-1 P0 0.429436 +253 10 1 1 H-1 P1 0.305492 +254 10 1 1 H-1 P2 0.144235 +255 10 1 1 H-1 P3 0.045491 +256 10 1 1 O-16 P0 0.000000 +257 10 1 1 O-16 P1 0.000000 +258 10 1 1 O-16 P2 0.000000 +259 10 1 1 O-16 P3 0.000000 +260 10 1 1 B-10 P0 0.000000 +261 10 1 1 B-10 P1 0.000000 +262 10 1 1 B-10 P2 0.000000 +263 10 1 1 B-10 P3 0.000000 +264 10 1 1 B-11 P0 0.000000 +265 10 1 1 B-11 P1 0.000000 +266 10 1 1 B-11 P2 0.000000 +267 10 1 1 B-11 P3 0.000000 +268 10 1 1 Fe-54 P0 0.000000 +269 10 1 1 Fe-54 P1 0.000000 +270 10 1 1 Fe-54 P2 0.000000 +271 10 1 1 Fe-54 P3 0.000000 +272 10 1 1 Fe-56 P0 0.000000 +273 10 1 1 Fe-56 P1 0.000000 +274 10 1 1 Fe-56 P2 0.000000 +275 10 1 1 Fe-56 P3 0.000000 +276 10 1 1 Fe-57 P0 0.000000 +277 10 1 1 Fe-57 P1 0.000000 +278 10 1 1 Fe-57 P2 0.000000 +279 10 1 1 Fe-57 P3 0.000000 +280 10 1 1 Fe-58 P0 0.000000 +281 10 1 1 Fe-58 P1 0.000000 +282 10 1 1 Fe-58 P2 0.000000 +283 10 1 1 Fe-58 P3 0.000000 +284 10 1 1 Ni-58 P0 0.000000 +285 10 1 1 Ni-58 P1 0.000000 +286 10 1 1 Ni-58 P2 0.000000 +287 10 1 1 Ni-58 P3 0.000000 +288 10 1 1 Ni-60 P0 0.000000 +289 10 1 1 Ni-60 P1 0.000000 +290 10 1 1 Ni-60 P2 0.000000 +291 10 1 1 Ni-60 P3 0.000000 +292 10 1 1 Ni-61 P0 0.000000 +293 10 1 1 Ni-61 P1 0.000000 +294 10 1 1 Ni-61 P2 0.000000 +295 10 1 1 Ni-61 P3 0.000000 +296 10 1 1 Ni-62 P0 0.000000 +297 10 1 1 Ni-62 P1 0.000000 +298 10 1 1 Ni-62 P2 0.000000 +299 10 1 1 Ni-62 P3 0.000000 +300 10 1 1 Ni-64 P0 0.000000 +301 10 1 1 Ni-64 P1 0.000000 +302 10 1 1 Ni-64 P2 0.000000 +303 10 1 1 Ni-64 P3 0.000000 +304 10 1 1 Mn-55 P0 0.000000 +305 10 1 1 Mn-55 P1 0.000000 +306 10 1 1 Mn-55 P2 0.000000 +307 10 1 1 Mn-55 P3 0.000000 +308 10 1 1 Si-28 P0 0.000000 +309 10 1 1 Si-28 P1 0.000000 +310 10 1 1 Si-28 P2 0.000000 +311 10 1 1 Si-28 P3 0.000000 +312 10 1 1 Si-29 P0 0.000000 +313 10 1 1 Si-29 P1 0.000000 +314 10 1 1 Si-29 P2 0.000000 +315 10 1 1 Si-29 P3 0.000000 +316 10 1 1 Si-30 P0 0.000000 +317 10 1 1 Si-30 P1 0.000000 +318 10 1 1 Si-30 P2 0.000000 +319 10 1 1 Si-30 P3 0.000000 +320 10 1 1 Cr-50 P0 0.071573 +321 10 1 1 Cr-50 P1 -0.039998 +322 10 1 1 Cr-50 P2 -0.002257 +323 10 1 1 Cr-50 P3 0.028768 +324 10 1 1 Cr-52 P0 0.000000 +325 10 1 1 Cr-52 P1 0.000000 +326 10 1 1 Cr-52 P2 0.000000 +327 10 1 1 Cr-52 P3 0.000000 +328 10 1 1 Cr-53 P0 0.000000 +329 10 1 1 Cr-53 P1 0.000000 +330 10 1 1 Cr-53 P2 0.000000 +331 10 1 1 Cr-53 P3 0.000000 +332 10 1 1 Cr-54 P0 0.000000 +333 10 1 1 Cr-54 P1 0.000000 +334 10 1 1 Cr-54 P2 0.000000 +335 10 1 1 Cr-54 P3 0.000000 +168 10 1 2 H-1 P0 0.000000 +169 10 1 2 H-1 P1 0.000000 +170 10 1 2 H-1 P2 0.000000 +171 10 1 2 H-1 P3 0.000000 +172 10 1 2 O-16 P0 0.000000 +173 10 1 2 O-16 P1 0.000000 +174 10 1 2 O-16 P2 0.000000 +175 10 1 2 O-16 P3 0.000000 +176 10 1 2 B-10 P0 0.000000 +177 10 1 2 B-10 P1 0.000000 +178 10 1 2 B-10 P2 0.000000 +179 10 1 2 B-10 P3 0.000000 +180 10 1 2 B-11 P0 0.000000 +181 10 1 2 B-11 P1 0.000000 +182 10 1 2 B-11 P2 0.000000 +183 10 1 2 B-11 P3 0.000000 +184 10 1 2 Fe-54 P0 0.000000 +185 10 1 2 Fe-54 P1 0.000000 +186 10 1 2 Fe-54 P2 0.000000 +187 10 1 2 Fe-54 P3 0.000000 +188 10 1 2 Fe-56 P0 0.000000 +189 10 1 2 Fe-56 P1 0.000000 +190 10 1 2 Fe-56 P2 0.000000 +191 10 1 2 Fe-56 P3 0.000000 +192 10 1 2 Fe-57 P0 0.000000 +193 10 1 2 Fe-57 P1 0.000000 +194 10 1 2 Fe-57 P2 0.000000 +195 10 1 2 Fe-57 P3 0.000000 +196 10 1 2 Fe-58 P0 0.000000 +197 10 1 2 Fe-58 P1 0.000000 +198 10 1 2 Fe-58 P2 0.000000 +199 10 1 2 Fe-58 P3 0.000000 +200 10 1 2 Ni-58 P0 0.000000 +201 10 1 2 Ni-58 P1 0.000000 +202 10 1 2 Ni-58 P2 0.000000 +203 10 1 2 Ni-58 P3 0.000000 +204 10 1 2 Ni-60 P0 0.000000 +205 10 1 2 Ni-60 P1 0.000000 +206 10 1 2 Ni-60 P2 0.000000 +207 10 1 2 Ni-60 P3 0.000000 +208 10 1 2 Ni-61 P0 0.000000 +209 10 1 2 Ni-61 P1 0.000000 +210 10 1 2 Ni-61 P2 0.000000 +211 10 1 2 Ni-61 P3 0.000000 +212 10 1 2 Ni-62 P0 0.000000 +213 10 1 2 Ni-62 P1 0.000000 +214 10 1 2 Ni-62 P2 0.000000 +215 10 1 2 Ni-62 P3 0.000000 +216 10 1 2 Ni-64 P0 0.000000 +217 10 1 2 Ni-64 P1 0.000000 +218 10 1 2 Ni-64 P2 0.000000 +219 10 1 2 Ni-64 P3 0.000000 +220 10 1 2 Mn-55 P0 0.000000 +221 10 1 2 Mn-55 P1 0.000000 +222 10 1 2 Mn-55 P2 0.000000 +223 10 1 2 Mn-55 P3 0.000000 +224 10 1 2 Si-28 P0 0.000000 +225 10 1 2 Si-28 P1 0.000000 +226 10 1 2 Si-28 P2 0.000000 +227 10 1 2 Si-28 P3 0.000000 +228 10 1 2 Si-29 P0 0.000000 +229 10 1 2 Si-29 P1 0.000000 +230 10 1 2 Si-29 P2 0.000000 +231 10 1 2 Si-29 P3 0.000000 +232 10 1 2 Si-30 P0 0.000000 +233 10 1 2 Si-30 P1 0.000000 +234 10 1 2 Si-30 P2 0.000000 +235 10 1 2 Si-30 P3 0.000000 +236 10 1 2 Cr-50 P0 0.000000 +237 10 1 2 Cr-50 P1 0.000000 +238 10 1 2 Cr-50 P2 0.000000 +239 10 1 2 Cr-50 P3 0.000000 +240 10 1 2 Cr-52 P0 0.000000 +241 10 1 2 Cr-52 P1 0.000000 +242 10 1 2 Cr-52 P2 0.000000 +243 10 1 2 Cr-52 P3 0.000000 +244 10 1 2 Cr-53 P0 0.000000 +245 10 1 2 Cr-53 P1 0.000000 +246 10 1 2 Cr-53 P2 0.000000 +247 10 1 2 Cr-53 P3 0.000000 +248 10 1 2 Cr-54 P0 0.000000 +249 10 1 2 Cr-54 P1 0.000000 +250 10 1 2 Cr-54 P2 0.000000 +251 10 1 2 Cr-54 P3 0.000000 +84 10 2 1 H-1 P0 0.000000 +85 10 2 1 H-1 P1 0.000000 +86 10 2 1 H-1 P2 0.000000 +87 10 2 1 H-1 P3 0.000000 +88 10 2 1 O-16 P0 0.000000 +89 10 2 1 O-16 P1 0.000000 +90 10 2 1 O-16 P2 0.000000 +91 10 2 1 O-16 P3 0.000000 +92 10 2 1 B-10 P0 0.000000 +93 10 2 1 B-10 P1 0.000000 +94 10 2 1 B-10 P2 0.000000 +95 10 2 1 B-10 P3 0.000000 +96 10 2 1 B-11 P0 0.000000 +97 10 2 1 B-11 P1 0.000000 +98 10 2 1 B-11 P2 0.000000 +99 10 2 1 B-11 P3 0.000000 +100 10 2 1 Fe-54 P0 0.000000 +101 10 2 1 Fe-54 P1 0.000000 +102 10 2 1 Fe-54 P2 0.000000 +103 10 2 1 Fe-54 P3 0.000000 +104 10 2 1 Fe-56 P0 0.000000 +105 10 2 1 Fe-56 P1 0.000000 +106 10 2 1 Fe-56 P2 0.000000 +107 10 2 1 Fe-56 P3 0.000000 +108 10 2 1 Fe-57 P0 0.000000 +109 10 2 1 Fe-57 P1 0.000000 +110 10 2 1 Fe-57 P2 0.000000 +111 10 2 1 Fe-57 P3 0.000000 +112 10 2 1 Fe-58 P0 0.000000 +113 10 2 1 Fe-58 P1 0.000000 +114 10 2 1 Fe-58 P2 0.000000 +115 10 2 1 Fe-58 P3 0.000000 +116 10 2 1 Ni-58 P0 0.000000 +117 10 2 1 Ni-58 P1 0.000000 +118 10 2 1 Ni-58 P2 0.000000 +119 10 2 1 Ni-58 P3 0.000000 +120 10 2 1 Ni-60 P0 0.000000 +121 10 2 1 Ni-60 P1 0.000000 +122 10 2 1 Ni-60 P2 0.000000 +123 10 2 1 Ni-60 P3 0.000000 +124 10 2 1 Ni-61 P0 0.000000 +125 10 2 1 Ni-61 P1 0.000000 +126 10 2 1 Ni-61 P2 0.000000 +127 10 2 1 Ni-61 P3 0.000000 +128 10 2 1 Ni-62 P0 0.000000 +129 10 2 1 Ni-62 P1 0.000000 +130 10 2 1 Ni-62 P2 0.000000 +131 10 2 1 Ni-62 P3 0.000000 +132 10 2 1 Ni-64 P0 0.000000 +133 10 2 1 Ni-64 P1 0.000000 +134 10 2 1 Ni-64 P2 0.000000 +135 10 2 1 Ni-64 P3 0.000000 +136 10 2 1 Mn-55 P0 0.000000 +137 10 2 1 Mn-55 P1 0.000000 +138 10 2 1 Mn-55 P2 0.000000 +139 10 2 1 Mn-55 P3 0.000000 +140 10 2 1 Si-28 P0 0.000000 +141 10 2 1 Si-28 P1 0.000000 +142 10 2 1 Si-28 P2 0.000000 +143 10 2 1 Si-28 P3 0.000000 +144 10 2 1 Si-29 P0 0.000000 +145 10 2 1 Si-29 P1 0.000000 +146 10 2 1 Si-29 P2 0.000000 +147 10 2 1 Si-29 P3 0.000000 +148 10 2 1 Si-30 P0 0.000000 +149 10 2 1 Si-30 P1 0.000000 +150 10 2 1 Si-30 P2 0.000000 +151 10 2 1 Si-30 P3 0.000000 +152 10 2 1 Cr-50 P0 0.000000 +153 10 2 1 Cr-50 P1 0.000000 +154 10 2 1 Cr-50 P2 0.000000 +155 10 2 1 Cr-50 P3 0.000000 +156 10 2 1 Cr-52 P0 0.000000 +157 10 2 1 Cr-52 P1 0.000000 +158 10 2 1 Cr-52 P2 0.000000 +159 10 2 1 Cr-52 P3 0.000000 +160 10 2 1 Cr-53 P0 0.000000 +161 10 2 1 Cr-53 P1 0.000000 +162 10 2 1 Cr-53 P2 0.000000 +163 10 2 1 Cr-53 P3 0.000000 +164 10 2 1 Cr-54 P0 0.000000 +165 10 2 1 Cr-54 P1 0.000000 +166 10 2 1 Cr-54 P2 0.000000 +167 10 2 1 Cr-54 P3 0.000000 +0 10 2 2 H-1 P0 0.000000 +1 10 2 2 H-1 P1 0.000000 +2 10 2 2 H-1 P2 0.000000 +3 10 2 2 H-1 P3 0.000000 +4 10 2 2 O-16 P0 0.000000 +5 10 2 2 O-16 P1 0.000000 +6 10 2 2 O-16 P2 0.000000 +7 10 2 2 O-16 P3 0.000000 +8 10 2 2 B-10 P0 0.000000 +9 10 2 2 B-10 P1 0.000000 +10 10 2 2 B-10 P2 0.000000 +11 10 2 2 B-10 P3 0.000000 +12 10 2 2 B-11 P0 0.000000 +13 10 2 2 B-11 P1 0.000000 +14 10 2 2 B-11 P2 0.000000 +15 10 2 2 B-11 P3 0.000000 +16 10 2 2 Fe-54 P0 0.000000 +17 10 2 2 Fe-54 P1 0.000000 +18 10 2 2 Fe-54 P2 0.000000 +19 10 2 2 Fe-54 P3 0.000000 +20 10 2 2 Fe-56 P0 0.000000 +21 10 2 2 Fe-56 P1 0.000000 +22 10 2 2 Fe-56 P2 0.000000 +23 10 2 2 Fe-56 P3 0.000000 +24 10 2 2 Fe-57 P0 0.000000 +25 10 2 2 Fe-57 P1 0.000000 +26 10 2 2 Fe-57 P2 0.000000 +27 10 2 2 Fe-57 P3 0.000000 +28 10 2 2 Fe-58 P0 0.000000 +29 10 2 2 Fe-58 P1 0.000000 +30 10 2 2 Fe-58 P2 0.000000 +31 10 2 2 Fe-58 P3 0.000000 +32 10 2 2 Ni-58 P0 0.000000 +33 10 2 2 Ni-58 P1 0.000000 +34 10 2 2 Ni-58 P2 0.000000 +35 10 2 2 Ni-58 P3 0.000000 +36 10 2 2 Ni-60 P0 0.000000 +37 10 2 2 Ni-60 P1 0.000000 +38 10 2 2 Ni-60 P2 0.000000 +39 10 2 2 Ni-60 P3 0.000000 +40 10 2 2 Ni-61 P0 0.000000 +41 10 2 2 Ni-61 P1 0.000000 +42 10 2 2 Ni-61 P2 0.000000 +43 10 2 2 Ni-61 P3 0.000000 +44 10 2 2 Ni-62 P0 0.000000 +45 10 2 2 Ni-62 P1 0.000000 +46 10 2 2 Ni-62 P2 0.000000 +47 10 2 2 Ni-62 P3 0.000000 +48 10 2 2 Ni-64 P0 0.000000 +49 10 2 2 Ni-64 P1 0.000000 +50 10 2 2 Ni-64 P2 0.000000 +51 10 2 2 Ni-64 P3 0.000000 +52 10 2 2 Mn-55 P0 0.000000 +53 10 2 2 Mn-55 P1 0.000000 +54 10 2 2 Mn-55 P2 0.000000 +55 10 2 2 Mn-55 P3 0.000000 +56 10 2 2 Si-28 P0 0.000000 +57 10 2 2 Si-28 P1 0.000000 +58 10 2 2 Si-28 P2 0.000000 +59 10 2 2 Si-28 P3 0.000000 +60 10 2 2 Si-29 P0 0.000000 +61 10 2 2 Si-29 P1 0.000000 +62 10 2 2 Si-29 P2 0.000000 +63 10 2 2 Si-29 P3 0.000000 +64 10 2 2 Si-30 P0 0.000000 +65 10 2 2 Si-30 P1 0.000000 +66 10 2 2 Si-30 P2 0.000000 +67 10 2 2 Si-30 P3 0.000000 +68 10 2 2 Cr-50 P0 0.000000 +69 10 2 2 Cr-50 P1 0.000000 +70 10 2 2 Cr-50 P2 0.000000 +71 10 2 2 Cr-50 P3 0.000000 +72 10 2 2 Cr-52 P0 0.000000 +73 10 2 2 Cr-52 P1 0.000000 +74 10 2 2 Cr-52 P2 0.000000 +75 10 2 2 Cr-52 P3 0.000000 +76 10 2 2 Cr-53 P0 0.000000 +77 10 2 2 Cr-53 P1 0.000000 +78 10 2 2 Cr-53 P2 0.000000 +79 10 2 2 Cr-53 P3 0.000000 +80 10 2 2 Cr-54 P0 0.000000 +81 10 2 2 Cr-54 P1 0.000000 +82 10 2 2 Cr-54 P2 0.000000 +83 10 2 2 Cr-54 P3 0.000000 material group out nuclide mean std. dev. +21 10 1 H-1 0 0 +22 10 1 O-16 0 0 +23 10 1 B-10 0 0 +24 10 1 B-11 0 0 +25 10 1 Fe-54 0 0 +26 10 1 Fe-56 0 0 +27 10 1 Fe-57 0 0 +28 10 1 Fe-58 0 0 +29 10 1 Ni-58 0 0 +30 10 1 Ni-60 0 0 +31 10 1 Ni-61 0 0 +32 10 1 Ni-62 0 0 +33 10 1 Ni-64 0 0 +34 10 1 Mn-55 0 0 +35 10 1 Si-28 0 0 +36 10 1 Si-29 0 0 +37 10 1 Si-30 0 0 +38 10 1 Cr-50 0 0 +39 10 1 Cr-52 0 0 +40 10 1 Cr-53 0 0 +41 10 1 Cr-54 0 0 +0 10 2 H-1 0 0 +1 10 2 O-16 0 0 +2 10 2 B-10 0 0 +3 10 2 B-11 0 0 +4 10 2 Fe-54 0 0 +5 10 2 Fe-56 0 0 +6 10 2 Fe-57 0 0 +7 10 2 Fe-58 0 0 +8 10 2 Ni-58 0 0 +9 10 2 Ni-60 0 0 +10 10 2 Ni-61 0 0 +11 10 2 Ni-62 0 0 +12 10 2 Ni-64 0 0 +13 10 2 Mn-55 0 0 +14 10 2 Si-28 0 0 +15 10 2 Si-29 0 0 +16 10 2 Si-30 0 0 +17 10 2 Cr-50 0 0 +18 10 2 Cr-52 0 0 +19 10 2 Cr-53 0 0 +20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. 9 11 1 H-1 0.131470 0.476035 10 11 1 O-16 0.028684 0.043000 11 11 1 B-10 0.000000 0.000000 @@ -1807,78 +3955,186 @@ 6 11 2 Zr-92 0.084226 0.103161 7 11 2 Zr-94 0.092039 0.125985 8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 11 1 H-1 0.0 0.0 -10 11 1 O-16 0.0 0.0 -11 11 1 B-10 0.0 0.0 -12 11 1 B-11 0.0 0.0 -13 11 1 Zr-90 0.0 0.0 -14 11 1 Zr-91 0.0 0.0 -15 11 1 Zr-92 0.0 0.0 -16 11 1 Zr-94 0.0 0.0 -17 11 1 Zr-96 0.0 0.0 -0 11 2 H-1 0.0 0.0 -1 11 2 O-16 0.0 0.0 -2 11 2 B-10 0.0 0.0 -3 11 2 B-11 0.0 0.0 -4 11 2 Zr-90 0.0 0.0 -5 11 2 Zr-91 0.0 0.0 -6 11 2 Zr-92 0.0 0.0 -7 11 2 Zr-94 0.0 0.0 -8 11 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. -27 11 1 1 H-1 0.099594 0.442578 -28 11 1 1 O-16 0.028684 0.043000 -29 11 1 1 B-10 0.000000 0.000000 -30 11 1 1 B-11 0.000000 0.000000 -31 11 1 1 Zr-90 0.021980 0.039963 -32 11 1 1 Zr-91 0.000000 0.000000 -33 11 1 1 Zr-92 0.000000 0.000000 -34 11 1 1 Zr-94 0.004191 0.087344 -35 11 1 1 Zr-96 0.000000 0.000000 -18 11 1 2 H-1 0.031875 0.045078 -19 11 1 2 O-16 0.000000 0.000000 -20 11 1 2 B-10 0.000000 0.000000 -21 11 1 2 B-11 0.000000 0.000000 -22 11 1 2 Zr-90 0.000000 0.000000 -23 11 1 2 Zr-91 0.000000 0.000000 -24 11 1 2 Zr-92 0.000000 0.000000 -25 11 1 2 Zr-94 0.000000 0.000000 -26 11 1 2 Zr-96 0.000000 0.000000 -9 11 2 1 H-1 0.000000 0.000000 -10 11 2 1 O-16 0.000000 0.000000 -11 11 2 1 B-10 0.000000 0.000000 -12 11 2 1 B-11 0.000000 0.000000 -13 11 2 1 Zr-90 0.000000 0.000000 -14 11 2 1 Zr-91 0.000000 0.000000 -15 11 2 1 Zr-92 0.000000 0.000000 -16 11 2 1 Zr-94 0.000000 0.000000 -17 11 2 1 Zr-96 0.000000 0.000000 -0 11 2 2 H-1 0.687243 1.239217 -1 11 2 2 O-16 0.000000 0.000000 -2 11 2 2 B-10 0.000000 0.000000 -3 11 2 2 B-11 0.000000 0.000000 -4 11 2 2 Zr-90 0.039576 0.105193 -5 11 2 2 Zr-91 0.000000 0.000000 -6 11 2 2 Zr-92 0.084226 0.103161 -7 11 2 2 Zr-94 0.092039 0.125985 -8 11 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. -9 11 1 H-1 0.0 0.0 -10 11 1 O-16 0.0 0.0 -11 11 1 B-10 0.0 0.0 -12 11 1 B-11 0.0 0.0 -13 11 1 Zr-90 0.0 0.0 -14 11 1 Zr-91 0.0 0.0 -15 11 1 Zr-92 0.0 0.0 -16 11 1 Zr-94 0.0 0.0 -17 11 1 Zr-96 0.0 0.0 -0 11 2 H-1 0.0 0.0 -1 11 2 O-16 0.0 0.0 -2 11 2 B-10 0.0 0.0 -3 11 2 B-11 0.0 0.0 -4 11 2 Zr-90 0.0 0.0 -5 11 2 Zr-91 0.0 0.0 -6 11 2 Zr-92 0.0 0.0 -7 11 2 Zr-94 0.0 0.0 -8 11 2 Zr-96 0.0 0.0 material group in nuclide mean std. dev. +9 11 1 H-1 0 0 +10 11 1 O-16 0 0 +11 11 1 B-10 0 0 +12 11 1 B-11 0 0 +13 11 1 Zr-90 0 0 +14 11 1 Zr-91 0 0 +15 11 1 Zr-92 0 0 +16 11 1 Zr-94 0 0 +17 11 1 Zr-96 0 0 +0 11 2 H-1 0 0 +1 11 2 O-16 0 0 +2 11 2 B-10 0 0 +3 11 2 B-11 0 0 +4 11 2 Zr-90 0 0 +5 11 2 Zr-91 0 0 +6 11 2 Zr-92 0 0 +7 11 2 Zr-94 0 0 +8 11 2 Zr-96 0 0 material group in group out nuclide moment mean +108 11 1 1 H-1 P0 0.350627 +109 11 1 1 H-1 P1 0.251032 +110 11 1 1 H-1 P2 0.118434 +111 11 1 1 H-1 P3 0.029897 +112 11 1 1 O-16 P0 0.031875 +113 11 1 1 O-16 P1 0.003191 +114 11 1 1 O-16 P2 -0.015458 +115 11 1 1 O-16 P3 -0.004707 +116 11 1 1 B-10 P0 0.000000 +117 11 1 1 B-10 P1 0.000000 +118 11 1 1 B-10 P2 0.000000 +119 11 1 1 B-10 P3 0.000000 +120 11 1 1 B-11 P0 0.000000 +121 11 1 1 B-11 P1 0.000000 +122 11 1 1 B-11 P2 0.000000 +123 11 1 1 B-11 P3 0.000000 +124 11 1 1 Zr-90 P0 0.031875 +125 11 1 1 Zr-90 P1 0.009895 +126 11 1 1 Zr-90 P2 -0.011330 +127 11 1 1 Zr-90 P3 -0.012459 +128 11 1 1 Zr-91 P0 0.000000 +129 11 1 1 Zr-91 P1 0.000000 +130 11 1 1 Zr-91 P2 0.000000 +131 11 1 1 Zr-91 P3 0.000000 +132 11 1 1 Zr-92 P0 0.000000 +133 11 1 1 Zr-92 P1 0.000000 +134 11 1 1 Zr-92 P2 0.000000 +135 11 1 1 Zr-92 P3 0.000000 +136 11 1 1 Zr-94 P0 0.063750 +137 11 1 1 Zr-94 P1 0.059559 +138 11 1 1 Zr-94 P2 0.051729 +139 11 1 1 Zr-94 P3 0.041273 +140 11 1 1 Zr-96 P0 0.000000 +141 11 1 1 Zr-96 P1 0.000000 +142 11 1 1 Zr-96 P2 0.000000 +143 11 1 1 Zr-96 P3 0.000000 +72 11 1 2 H-1 P0 0.031875 +73 11 1 2 H-1 P1 0.008585 +74 11 1 2 H-1 P2 -0.012470 +75 11 1 2 H-1 P3 -0.011320 +76 11 1 2 O-16 P0 0.000000 +77 11 1 2 O-16 P1 0.000000 +78 11 1 2 O-16 P2 0.000000 +79 11 1 2 O-16 P3 0.000000 +80 11 1 2 B-10 P0 0.000000 +81 11 1 2 B-10 P1 0.000000 +82 11 1 2 B-10 P2 0.000000 +83 11 1 2 B-10 P3 0.000000 +84 11 1 2 B-11 P0 0.000000 +85 11 1 2 B-11 P1 0.000000 +86 11 1 2 B-11 P2 0.000000 +87 11 1 2 B-11 P3 0.000000 +88 11 1 2 Zr-90 P0 0.000000 +89 11 1 2 Zr-90 P1 0.000000 +90 11 1 2 Zr-90 P2 0.000000 +91 11 1 2 Zr-90 P3 0.000000 +92 11 1 2 Zr-91 P0 0.000000 +93 11 1 2 Zr-91 P1 0.000000 +94 11 1 2 Zr-91 P2 0.000000 +95 11 1 2 Zr-91 P3 0.000000 +96 11 1 2 Zr-92 P0 0.000000 +97 11 1 2 Zr-92 P1 0.000000 +98 11 1 2 Zr-92 P2 0.000000 +99 11 1 2 Zr-92 P3 0.000000 +100 11 1 2 Zr-94 P0 0.000000 +101 11 1 2 Zr-94 P1 0.000000 +102 11 1 2 Zr-94 P2 0.000000 +103 11 1 2 Zr-94 P3 0.000000 +104 11 1 2 Zr-96 P0 0.000000 +105 11 1 2 Zr-96 P1 0.000000 +106 11 1 2 Zr-96 P2 0.000000 +107 11 1 2 Zr-96 P3 0.000000 +36 11 2 1 H-1 P0 0.000000 +37 11 2 1 H-1 P1 0.000000 +38 11 2 1 H-1 P2 0.000000 +39 11 2 1 H-1 P3 0.000000 +40 11 2 1 O-16 P0 0.000000 +41 11 2 1 O-16 P1 0.000000 +42 11 2 1 O-16 P2 0.000000 +43 11 2 1 O-16 P3 0.000000 +44 11 2 1 B-10 P0 0.000000 +45 11 2 1 B-10 P1 0.000000 +46 11 2 1 B-10 P2 0.000000 +47 11 2 1 B-10 P3 0.000000 +48 11 2 1 B-11 P0 0.000000 +49 11 2 1 B-11 P1 0.000000 +50 11 2 1 B-11 P2 0.000000 +51 11 2 1 B-11 P3 0.000000 +52 11 2 1 Zr-90 P0 0.000000 +53 11 2 1 Zr-90 P1 0.000000 +54 11 2 1 Zr-90 P2 0.000000 +55 11 2 1 Zr-90 P3 0.000000 +56 11 2 1 Zr-91 P0 0.000000 +57 11 2 1 Zr-91 P1 0.000000 +58 11 2 1 Zr-91 P2 0.000000 +59 11 2 1 Zr-91 P3 0.000000 +60 11 2 1 Zr-92 P0 0.000000 +61 11 2 1 Zr-92 P1 0.000000 +62 11 2 1 Zr-92 P2 0.000000 +63 11 2 1 Zr-92 P3 0.000000 +64 11 2 1 Zr-94 P0 0.000000 +65 11 2 1 Zr-94 P1 0.000000 +66 11 2 1 Zr-94 P2 0.000000 +67 11 2 1 Zr-94 P3 0.000000 +68 11 2 1 Zr-96 P0 0.000000 +69 11 2 1 Zr-96 P1 0.000000 +70 11 2 1 Zr-96 P2 0.000000 +71 11 2 1 Zr-96 P3 0.000000 +0 11 2 2 H-1 P0 0.986741 +1 11 2 2 H-1 P1 0.287943 +2 11 2 2 H-1 P2 0.156802 +3 11 2 2 H-1 P3 0.037565 +4 11 2 2 O-16 P0 0.000000 +5 11 2 2 O-16 P1 0.000000 +6 11 2 2 O-16 P2 0.000000 +7 11 2 2 O-16 P3 0.000000 +8 11 2 2 B-10 P0 0.000000 +9 11 2 2 B-10 P1 0.000000 +10 11 2 2 B-10 P2 0.000000 +11 11 2 2 B-10 P3 0.000000 +12 11 2 2 B-11 P0 0.000000 +13 11 2 2 B-11 P1 0.000000 +14 11 2 2 B-11 P2 0.000000 +15 11 2 2 B-11 P3 0.000000 +16 11 2 2 Zr-90 P0 0.085804 +17 11 2 2 Zr-90 P1 0.046227 +18 11 2 2 Zr-90 P2 -0.005520 +19 11 2 2 Zr-90 P3 -0.035731 +20 11 2 2 Zr-91 P0 0.000000 +21 11 2 2 Zr-91 P1 0.000000 +22 11 2 2 Zr-91 P2 0.000000 +23 11 2 2 Zr-91 P3 0.000000 +24 11 2 2 Zr-92 P0 0.042902 +25 11 2 2 Zr-92 P1 -0.041324 +26 11 2 2 Zr-92 P2 0.038256 +27 11 2 2 Zr-92 P3 -0.033866 +28 11 2 2 Zr-94 P0 0.085804 +29 11 2 2 Zr-94 P1 -0.006235 +30 11 2 2 Zr-94 P2 0.028653 +31 11 2 2 Zr-94 P3 -0.016482 +32 11 2 2 Zr-96 P0 0.000000 +33 11 2 2 Zr-96 P1 0.000000 +34 11 2 2 Zr-96 P2 0.000000 +35 11 2 2 Zr-96 P3 0.000000 material group out nuclide mean std. dev. +9 11 1 H-1 0 0 +10 11 1 O-16 0 0 +11 11 1 B-10 0 0 +12 11 1 B-11 0 0 +13 11 1 Zr-90 0 0 +14 11 1 Zr-91 0 0 +15 11 1 Zr-92 0 0 +16 11 1 Zr-94 0 0 +17 11 1 Zr-96 0 0 +0 11 2 H-1 0 0 +1 11 2 O-16 0 0 +2 11 2 B-10 0 0 +3 11 2 B-11 0 0 +4 11 2 Zr-90 0 0 +5 11 2 Zr-91 0 0 +6 11 2 Zr-92 0 0 +7 11 2 Zr-94 0 0 +8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. 9 12 1 H-1 0.098944 0.178543 10 12 1 O-16 0.013270 0.020403 11 12 1 B-10 0.000000 0.000000 @@ -1897,75 +4153,183 @@ 6 12 2 Zr-92 0.000000 0.000000 7 12 2 Zr-94 0.000000 0.000000 8 12 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 12 1 H-1 0.0 0.0 -10 12 1 O-16 0.0 0.0 -11 12 1 B-10 0.0 0.0 -12 12 1 B-11 0.0 0.0 -13 12 1 Zr-90 0.0 0.0 -14 12 1 Zr-91 0.0 0.0 -15 12 1 Zr-92 0.0 0.0 -16 12 1 Zr-94 0.0 0.0 -17 12 1 Zr-96 0.0 0.0 -0 12 2 H-1 0.0 0.0 -1 12 2 O-16 0.0 0.0 -2 12 2 B-10 0.0 0.0 -3 12 2 B-11 0.0 0.0 -4 12 2 Zr-90 0.0 0.0 -5 12 2 Zr-91 0.0 0.0 -6 12 2 Zr-92 0.0 0.0 -7 12 2 Zr-94 0.0 0.0 -8 12 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. -27 12 1 1 H-1 0.071704 0.167588 -28 12 1 1 O-16 0.013270 0.020403 -29 12 1 1 B-10 0.000000 0.000000 -30 12 1 1 B-11 0.000000 0.000000 -31 12 1 1 Zr-90 0.089997 0.075538 -32 12 1 1 Zr-91 0.000000 0.000000 -33 12 1 1 Zr-92 0.003501 0.017031 -34 12 1 1 Zr-94 0.004850 0.016327 -35 12 1 1 Zr-96 0.002730 0.017476 -18 12 1 2 H-1 0.027240 0.029555 -19 12 1 2 O-16 0.000000 0.000000 -20 12 1 2 B-10 0.000000 0.000000 -21 12 1 2 B-11 0.000000 0.000000 -22 12 1 2 Zr-90 0.000000 0.000000 -23 12 1 2 Zr-91 0.000000 0.000000 -24 12 1 2 Zr-92 0.000000 0.000000 -25 12 1 2 Zr-94 0.000000 0.000000 -26 12 1 2 Zr-96 0.000000 0.000000 -9 12 2 1 H-1 0.000000 0.000000 -10 12 2 1 O-16 0.000000 0.000000 -11 12 2 1 B-10 0.000000 0.000000 -12 12 2 1 B-11 0.000000 0.000000 -13 12 2 1 Zr-90 0.000000 0.000000 -14 12 2 1 Zr-91 0.000000 0.000000 -15 12 2 1 Zr-92 0.000000 0.000000 -16 12 2 1 Zr-94 0.000000 0.000000 -17 12 2 1 Zr-96 0.000000 0.000000 -0 12 2 2 H-1 1.244758 1.956675 -1 12 2 2 O-16 0.079159 0.104796 -2 12 2 2 B-10 0.000000 0.000000 -3 12 2 2 B-11 0.000000 0.000000 -4 12 2 2 Zr-90 0.000000 0.000000 -5 12 2 2 Zr-91 0.033201 0.040665 -6 12 2 2 Zr-92 0.000000 0.000000 -7 12 2 2 Zr-94 0.000000 0.000000 -8 12 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. -9 12 1 H-1 0.0 0.0 -10 12 1 O-16 0.0 0.0 -11 12 1 B-10 0.0 0.0 -12 12 1 B-11 0.0 0.0 -13 12 1 Zr-90 0.0 0.0 -14 12 1 Zr-91 0.0 0.0 -15 12 1 Zr-92 0.0 0.0 -16 12 1 Zr-94 0.0 0.0 -17 12 1 Zr-96 0.0 0.0 -0 12 2 H-1 0.0 0.0 -1 12 2 O-16 0.0 0.0 -2 12 2 B-10 0.0 0.0 -3 12 2 B-11 0.0 0.0 -4 12 2 Zr-90 0.0 0.0 -5 12 2 Zr-91 0.0 0.0 -6 12 2 Zr-92 0.0 0.0 -7 12 2 Zr-94 0.0 0.0 -8 12 2 Zr-96 0.0 0.0 \ No newline at end of file +9 12 1 H-1 0 0 +10 12 1 O-16 0 0 +11 12 1 B-10 0 0 +12 12 1 B-11 0 0 +13 12 1 Zr-90 0 0 +14 12 1 Zr-91 0 0 +15 12 1 Zr-92 0 0 +16 12 1 Zr-94 0 0 +17 12 1 Zr-96 0 0 +0 12 2 H-1 0 0 +1 12 2 O-16 0 0 +2 12 2 B-10 0 0 +3 12 2 B-11 0 0 +4 12 2 Zr-90 0 0 +5 12 2 Zr-91 0 0 +6 12 2 Zr-92 0 0 +7 12 2 Zr-94 0 0 +8 12 2 Zr-96 0 0 material group in group out nuclide moment mean +108 12 1 1 H-1 P0 0.245156 +109 12 1 1 H-1 P1 0.173452 +110 12 1 1 H-1 P2 0.092660 +111 12 1 1 H-1 P3 0.047419 +112 12 1 1 O-16 P0 0.027240 +113 12 1 1 O-16 P1 0.013970 +114 12 1 1 O-16 P2 0.000090 +115 12 1 1 O-16 P3 -0.004169 +116 12 1 1 B-10 P0 0.000000 +117 12 1 1 B-10 P1 0.000000 +118 12 1 1 B-10 P2 0.000000 +119 12 1 1 B-10 P3 0.000000 +120 12 1 1 B-11 P0 0.000000 +121 12 1 1 B-11 P1 0.000000 +122 12 1 1 B-11 P2 0.000000 +123 12 1 1 B-11 P3 0.000000 +124 12 1 1 Zr-90 P0 0.095339 +125 12 1 1 Zr-90 P1 0.005341 +126 12 1 1 Zr-90 P2 -0.014156 +127 12 1 1 Zr-90 P3 -0.008036 +128 12 1 1 Zr-91 P0 0.000000 +129 12 1 1 Zr-91 P1 0.000000 +130 12 1 1 Zr-91 P2 0.000000 +131 12 1 1 Zr-91 P3 0.000000 +132 12 1 1 Zr-92 P0 0.013620 +133 12 1 1 Zr-92 P1 0.010119 +134 12 1 1 Zr-92 P2 0.004467 +135 12 1 1 Zr-92 P3 -0.001214 +136 12 1 1 Zr-94 P0 0.013620 +137 12 1 1 Zr-94 P1 0.008770 +138 12 1 1 Zr-94 P2 0.001661 +139 12 1 1 Zr-94 P3 -0.004065 +140 12 1 1 Zr-96 P0 0.013620 +141 12 1 1 Zr-96 P1 0.010890 +142 12 1 1 Zr-96 P2 0.006250 +143 12 1 1 Zr-96 P3 0.001069 +72 12 1 2 H-1 P0 0.027240 +73 12 1 2 H-1 P1 -0.010088 +74 12 1 2 H-1 P2 -0.006946 +75 12 1 2 H-1 P3 0.009692 +76 12 1 2 O-16 P0 0.000000 +77 12 1 2 O-16 P1 0.000000 +78 12 1 2 O-16 P2 0.000000 +79 12 1 2 O-16 P3 0.000000 +80 12 1 2 B-10 P0 0.000000 +81 12 1 2 B-10 P1 0.000000 +82 12 1 2 B-10 P2 0.000000 +83 12 1 2 B-10 P3 0.000000 +84 12 1 2 B-11 P0 0.000000 +85 12 1 2 B-11 P1 0.000000 +86 12 1 2 B-11 P2 0.000000 +87 12 1 2 B-11 P3 0.000000 +88 12 1 2 Zr-90 P0 0.000000 +89 12 1 2 Zr-90 P1 0.000000 +90 12 1 2 Zr-90 P2 0.000000 +91 12 1 2 Zr-90 P3 0.000000 +92 12 1 2 Zr-91 P0 0.000000 +93 12 1 2 Zr-91 P1 0.000000 +94 12 1 2 Zr-91 P2 0.000000 +95 12 1 2 Zr-91 P3 0.000000 +96 12 1 2 Zr-92 P0 0.000000 +97 12 1 2 Zr-92 P1 0.000000 +98 12 1 2 Zr-92 P2 0.000000 +99 12 1 2 Zr-92 P3 0.000000 +100 12 1 2 Zr-94 P0 0.000000 +101 12 1 2 Zr-94 P1 0.000000 +102 12 1 2 Zr-94 P2 0.000000 +103 12 1 2 Zr-94 P3 0.000000 +104 12 1 2 Zr-96 P0 0.000000 +105 12 1 2 Zr-96 P1 0.000000 +106 12 1 2 Zr-96 P2 0.000000 +107 12 1 2 Zr-96 P3 0.000000 +36 12 2 1 H-1 P0 0.000000 +37 12 2 1 H-1 P1 0.000000 +38 12 2 1 H-1 P2 0.000000 +39 12 2 1 H-1 P3 0.000000 +40 12 2 1 O-16 P0 0.000000 +41 12 2 1 O-16 P1 0.000000 +42 12 2 1 O-16 P2 0.000000 +43 12 2 1 O-16 P3 0.000000 +44 12 2 1 B-10 P0 0.000000 +45 12 2 1 B-10 P1 0.000000 +46 12 2 1 B-10 P2 0.000000 +47 12 2 1 B-10 P3 0.000000 +48 12 2 1 B-11 P0 0.000000 +49 12 2 1 B-11 P1 0.000000 +50 12 2 1 B-11 P2 0.000000 +51 12 2 1 B-11 P3 0.000000 +52 12 2 1 Zr-90 P0 0.000000 +53 12 2 1 Zr-90 P1 0.000000 +54 12 2 1 Zr-90 P2 0.000000 +55 12 2 1 Zr-90 P3 0.000000 +56 12 2 1 Zr-91 P0 0.000000 +57 12 2 1 Zr-91 P1 0.000000 +58 12 2 1 Zr-91 P2 0.000000 +59 12 2 1 Zr-91 P3 0.000000 +60 12 2 1 Zr-92 P0 0.000000 +61 12 2 1 Zr-92 P1 0.000000 +62 12 2 1 Zr-92 P2 0.000000 +63 12 2 1 Zr-92 P3 0.000000 +64 12 2 1 Zr-94 P0 0.000000 +65 12 2 1 Zr-94 P1 0.000000 +66 12 2 1 Zr-94 P2 0.000000 +67 12 2 1 Zr-94 P3 0.000000 +68 12 2 1 Zr-96 P0 0.000000 +69 12 2 1 Zr-96 P1 0.000000 +70 12 2 1 Zr-96 P2 0.000000 +71 12 2 1 Zr-96 P3 0.000000 +0 12 2 2 H-1 P0 1.489686 +1 12 2 2 H-1 P1 0.257467 +2 12 2 2 H-1 P2 0.001678 +3 12 2 2 H-1 P3 0.044735 +4 12 2 2 O-16 P0 0.067713 +5 12 2 2 O-16 P1 -0.011446 +6 12 2 2 O-16 P2 -0.002500 +7 12 2 2 O-16 P3 0.007446 +8 12 2 2 B-10 P0 0.000000 +9 12 2 2 B-10 P1 0.000000 +10 12 2 2 B-10 P2 0.000000 +11 12 2 2 B-10 P3 0.000000 +12 12 2 2 B-11 P0 0.000000 +13 12 2 2 B-11 P1 0.000000 +14 12 2 2 B-11 P2 0.000000 +15 12 2 2 B-11 P3 0.000000 +16 12 2 2 Zr-90 P0 0.000000 +17 12 2 2 Zr-90 P1 0.000000 +18 12 2 2 Zr-90 P2 0.000000 +19 12 2 2 Zr-90 P3 0.000000 +20 12 2 2 Zr-91 P0 0.016928 +21 12 2 2 Zr-91 P1 -0.016273 +22 12 2 2 Zr-91 P2 0.015000 +23 12 2 2 Zr-91 P3 -0.013183 +24 12 2 2 Zr-92 P0 0.000000 +25 12 2 2 Zr-92 P1 0.000000 +26 12 2 2 Zr-92 P2 0.000000 +27 12 2 2 Zr-92 P3 0.000000 +28 12 2 2 Zr-94 P0 0.000000 +29 12 2 2 Zr-94 P1 0.000000 +30 12 2 2 Zr-94 P2 0.000000 +31 12 2 2 Zr-94 P3 0.000000 +32 12 2 2 Zr-96 P0 0.000000 +33 12 2 2 Zr-96 P1 0.000000 +34 12 2 2 Zr-96 P2 0.000000 +35 12 2 2 Zr-96 P3 0.000000 material group out nuclide mean std. dev. +9 12 1 H-1 0 0 +10 12 1 O-16 0 0 +11 12 1 B-10 0 0 +12 12 1 B-11 0 0 +13 12 1 Zr-90 0 0 +14 12 1 Zr-91 0 0 +15 12 1 Zr-92 0 0 +16 12 1 Zr-94 0 0 +17 12 1 Zr-96 0 0 +0 12 2 H-1 0 0 +1 12 2 O-16 0 0 +2 12 2 B-10 0 0 +3 12 2 B-11 0 0 +4 12 2 Zr-90 0 0 +5 12 2 Zr-91 0 0 +6 12 2 Zr-92 0 0 +7 12 2 Zr-94 0 0 +8 12 2 Zr-96 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index 113f2aa41..e0a7c199a 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -28,6 +28,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi'] self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' self.mgxs_lib.build_library() From 66b7979dfcad06293878ebf3398a553bb5ed5276 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 13 May 2016 17:27:03 -0400 Subject: [PATCH 192/259] Updated test results for MGXS --- openmc/mgxs/mgxs.py | 2 +- .../results_true.dat | 120 +- .../results_true.dat | 10 +- .../results_true.dat | 408 +- .../results_true.dat | 4336 +---------------- .../test_mgxs_library_nuclides.py | 2 +- 6 files changed, 272 insertions(+), 4606 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 182691283..c1255f609 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -2115,7 +2115,7 @@ class ScatterMatrixXS(MGXS): # Place the moment column before the mean column mean_index = df.columns.get_loc('mean') columns = df.columns.tolist() - df = df[columns[:mean_index] + ['moment'] + columns[mean_index:-2]] + df = df[columns[:mean_index] + ['moment'] + columns[mean_index:-1]] # Select rows corresponding to requested scattering moment if moment != 'all': diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index f176c3007..ffe6f2908 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,85 +1,85 @@ material group in nuclide mean std. dev. 0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. -0 1 1 total 0.076425 0.003691 material group in group out nuclide moment mean -0 1 1 1 total P0 0.384780 -1 1 1 1 total P1 0.039277 -2 1 1 1 total P2 0.017574 -3 1 1 1 total P3 0.012203 material group out nuclide mean std. dev. +0 1 1 total 0.076425 0.003691 material group in group out nuclide moment mean std. dev. +0 1 1 1 total P0 0.384780 0.022253 +1 1 1 1 total P1 0.039277 0.004308 +2 1 1 1 total P2 0.017574 0.002402 +3 1 1 1 total P3 0.012203 0.002164 material group out nuclide mean std. dev. 0 1 1 total 1 0.055333 material group in nuclide mean std. dev. 0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. -0 2 1 total 0 0 material group in group out nuclide moment mean -0 2 1 1 total P0 0.272369 -1 2 1 1 total P1 0.031107 -2 2 1 1 total P2 0.025999 -3 2 1 1 total P3 0.003219 material group out nuclide mean std. dev. +0 2 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 2 1 1 total P0 0.272369 0.006872 +1 2 1 1 total P1 0.031107 0.005483 +2 2 1 1 total P2 0.025999 0.006151 +3 2 1 1 total P3 0.003219 0.003312 material group out nuclide mean std. dev. 0 2 1 total 0 0 material group in nuclide mean std. dev. 0 3 1 total 0.400028 0.034667 material group in nuclide mean std. dev. -0 3 1 total 0 0 material group in group out nuclide moment mean -0 3 1 1 total P0 0.794999 -1 3 1 1 total P1 0.401537 -2 3 1 1 total P2 0.143623 -3 3 1 1 total P3 0.001991 material group out nuclide mean std. dev. +0 3 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 3 1 1 total P0 0.794999 0.036548 +1 3 1 1 total P1 0.401537 0.016175 +2 3 1 1 total P2 0.143623 0.008719 +3 3 1 1 total P3 0.001991 0.004433 material group out nuclide mean std. dev. 0 3 1 total 0 0 material group in nuclide mean std. dev. 0 4 1 total 0.377402 0.072937 material group in nuclide mean std. dev. -0 4 1 total 0 0 material group in group out nuclide moment mean -0 4 1 1 total P0 0.727311 -1 4 1 1 total P1 0.355839 -2 4 1 1 total P2 0.124483 -3 4 1 1 total P3 0.012168 material group out nuclide mean std. dev. +0 4 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 4 1 1 total P0 0.727311 0.080096 +1 4 1 1 total P1 0.355839 0.037901 +2 4 1 1 total P2 0.124483 0.015823 +3 4 1 1 total P3 0.012168 0.006224 material group out nuclide mean std. dev. 0 4 1 total 0 0 material group in nuclide mean std. dev. 0 5 1 total 0 0 material group in nuclide mean std. dev. -0 5 1 total 0 0 material group in group out nuclide moment mean -0 5 1 1 total P0 0 -1 5 1 1 total P1 0 -2 5 1 1 total P2 0 -3 5 1 1 total P3 0 material group out nuclide mean std. dev. +0 5 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 5 1 1 total P0 0 0 +1 5 1 1 total P1 0 0 +2 5 1 1 total P2 0 0 +3 5 1 1 total P3 0 0 material group out nuclide mean std. dev. 0 5 1 total 0 0 material group in nuclide mean std. dev. 0 6 1 total 0 0 material group in nuclide mean std. dev. -0 6 1 total 0 0 material group in group out nuclide moment mean -0 6 1 1 total P0 0 -1 6 1 1 total P1 0 -2 6 1 1 total P2 0 -3 6 1 1 total P3 0 material group out nuclide mean std. dev. +0 6 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 6 1 1 total P0 0 0 +1 6 1 1 total P1 0 0 +2 6 1 1 total P2 0 0 +3 6 1 1 total P3 0 0 material group out nuclide mean std. dev. 0 6 1 total 0 0 material group in nuclide mean std. dev. 0 7 1 total 0 0 material group in nuclide mean std. dev. -0 7 1 total 0 0 material group in group out nuclide moment mean -0 7 1 1 total P0 0 -1 7 1 1 total P1 0 -2 7 1 1 total P2 0 -3 7 1 1 total P3 0 material group out nuclide mean std. dev. +0 7 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 7 1 1 total P0 0 0 +1 7 1 1 total P1 0 0 +2 7 1 1 total P2 0 0 +3 7 1 1 total P3 0 0 material group out nuclide mean std. dev. 0 7 1 total 0 0 material group in nuclide mean std. dev. 0 8 1 total 0 0 material group in nuclide mean std. dev. -0 8 1 total 0 0 material group in group out nuclide moment mean -0 8 1 1 total P0 0 -1 8 1 1 total P1 0 -2 8 1 1 total P2 0 -3 8 1 1 total P3 0 material group out nuclide mean std. dev. +0 8 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 8 1 1 total P0 0 0 +1 8 1 1 total P1 0 0 +2 8 1 1 total P2 0 0 +3 8 1 1 total P3 0 0 material group out nuclide mean std. dev. 0 8 1 total 0 0 material group in nuclide mean std. dev. 0 9 1 total 0.600536 0.748875 material group in nuclide mean std. dev. -0 9 1 total 0 0 material group in group out nuclide moment mean -0 9 1 1 total P0 0.720380 -1 9 1 1 total P1 0.119844 -2 9 1 1 total P2 0.038522 -3 9 1 1 total P3 0.056023 material group out nuclide mean std. dev. +0 9 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 9 1 1 total P0 0.720380 0.771015 +1 9 1 1 total P1 0.119844 0.184691 +2 9 1 1 total P2 0.038522 0.064485 +3 9 1 1 total P3 0.056023 0.050595 material group out nuclide mean std. dev. 0 9 1 total 0 0 material group in nuclide mean std. dev. 0 10 1 total 0.235515 0.613974 material group in nuclide mean std. dev. -0 10 1 total 0 0 material group in group out nuclide moment mean -0 10 1 1 total P0 0.501009 -1 10 1 1 total P1 0.265494 -2 10 1 1 total P2 0.141979 -3 10 1 1 total P3 0.074258 material group out nuclide mean std. dev. +0 10 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 10 1 1 total P0 0.501009 0.708534 +1 10 1 1 total P1 0.265494 0.375465 +2 10 1 1 total P2 0.141979 0.200788 +3 10 1 1 total P3 0.074258 0.105017 material group out nuclide mean std. dev. 0 10 1 total 0 0 material group in nuclide mean std. dev. 0 11 1 total 0.510145 0.741941 material group in nuclide mean std. dev. -0 11 1 total 0 0 material group in group out nuclide moment mean -0 11 1 1 total P0 0.804661 -1 11 1 1 total P1 0.312803 -2 11 1 1 total P2 0.168113 -3 11 1 1 total P3 0.003808 material group out nuclide mean std. dev. +0 11 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 11 1 1 total P0 0.804661 0.817658 +1 11 1 1 total P1 0.312803 0.315315 +2 11 1 1 total P2 0.168113 0.172935 +3 11 1 1 total P3 0.003808 0.037911 material group out nuclide mean std. dev. 0 11 1 total 0 0 material group in nuclide mean std. dev. 0 12 1 total 0.73836 0.825631 material group in nuclide mean std. dev. -0 12 1 total 0 0 material group in group out nuclide moment mean -0 12 1 1 total P0 0.943429 -1 12 1 1 total P1 0.220164 -2 12 1 1 total P2 0.052884 -3 12 1 1 total P3 0.039939 material group out nuclide mean std. dev. +0 12 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 12 1 1 total P0 0.943429 0.856119 +1 12 1 1 total P1 0.220164 0.163180 +2 12 1 1 total P2 0.052884 0.042440 +3 12 1 1 total P3 0.039939 0.032867 material group out nuclide mean std. dev. 0 12 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 318ec408a..ba9eaa71e 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,8 +1,8 @@ avg(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.718919 0.520644 avg(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 0 avg(distribcell) group in group out nuclide moment mean -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P0 1.142547 -1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 -2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 avg(distribcell) group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 avg(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 1.142547 0.570131 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 avg(distribcell) group out nuclide mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 9d6e35871..5e55a4c74 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -2,264 +2,264 @@ 1 1 1 total 0.372745 0.024269 0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. 1 1 1 total 0.021789 0.001182 -0 1 2 total 0.714077 0.040552 material group in group out nuclide moment mean -12 1 1 1 total P0 0.381546 -13 1 1 1 total P1 0.044301 -14 1 1 1 total P2 0.020646 -15 1 1 1 total P3 0.013695 -8 1 1 2 total P0 0.001559 -9 1 1 2 total P1 -0.000597 -10 1 1 2 total P2 -0.000239 -11 1 1 2 total P3 0.000176 -4 1 2 1 total P0 0.000000 -5 1 2 1 total P1 0.000000 -6 1 2 1 total P2 0.000000 -7 1 2 1 total P3 0.000000 -0 1 2 2 total P0 0.403916 -1 1 2 2 total P1 -0.011310 -2 1 2 2 total P2 -0.014807 -3 1 2 2 total P3 -0.006855 material group out nuclide mean std. dev. +0 1 2 total 0.714077 0.040552 material group in group out nuclide moment mean std. dev. +12 1 1 1 total P0 0.381546 0.024033 +13 1 1 1 total P1 0.044301 0.004722 +14 1 1 1 total P2 0.020646 0.002539 +15 1 1 1 total P3 0.013695 0.002224 +8 1 1 2 total P0 0.001559 0.000510 +9 1 1 2 total P1 -0.000597 0.000225 +10 1 1 2 total P2 -0.000239 0.000222 +11 1 1 2 total P3 0.000176 0.000209 +4 1 2 1 total P0 0.000000 0.000000 +5 1 2 1 total P1 0.000000 0.000000 +6 1 2 1 total P2 0.000000 0.000000 +7 1 2 1 total P3 0.000000 0.000000 +0 1 2 2 total P0 0.403916 0.018966 +1 1 2 2 total P1 -0.011310 0.007839 +2 1 2 2 total P2 -0.014807 0.008629 +3 1 2 2 total P3 -0.006855 0.009047 material group out nuclide mean std. dev. 1 1 1 total 1 0.055333 0 1 2 total 0 0.000000 material group in nuclide mean std. dev. 1 2 1 total 0.237254 0.008184 0 2 2 total 0.285930 0.048796 material group in nuclide mean std. dev. 1 2 1 total 0 0 -0 2 2 total 0 0 material group in group out nuclide moment mean -12 2 1 1 total P0 0.273115 -13 2 1 1 total P1 0.035861 -14 2 1 1 total P2 0.029704 -15 2 1 1 total P3 0.002249 -8 2 1 2 total P0 0.000000 -9 2 1 2 total P1 0.000000 -10 2 1 2 total P2 0.000000 -11 2 1 2 total P3 0.000000 -4 2 2 1 total P0 0.000000 -5 2 2 1 total P1 0.000000 -6 2 2 1 total P2 0.000000 -7 2 2 1 total P3 0.000000 -0 2 2 2 total P0 0.264051 -1 2 2 2 total P1 -0.021880 -2 2 2 2 total P2 -0.015295 -3 2 2 2 total P3 0.014034 material group out nuclide mean std. dev. +0 2 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 2 1 1 total P0 0.273115 0.006253 +13 2 1 1 total P1 0.035861 0.005878 +14 2 1 1 total P2 0.029704 0.006640 +15 2 1 1 total P3 0.002249 0.003376 +8 2 1 2 total P0 0.000000 0.000000 +9 2 1 2 total P1 0.000000 0.000000 +10 2 1 2 total P2 0.000000 0.000000 +11 2 1 2 total P3 0.000000 0.000000 +4 2 2 1 total P0 0.000000 0.000000 +5 2 2 1 total P1 0.000000 0.000000 +6 2 2 1 total P2 0.000000 0.000000 +7 2 2 1 total P3 0.000000 0.000000 +0 2 2 2 total P0 0.264051 0.045397 +1 2 2 2 total P1 -0.021880 0.012218 +2 2 2 2 total P2 -0.015295 0.010276 +3 2 2 2 total P3 0.014034 0.014318 material group out nuclide mean std. dev. 1 2 1 total 0 0 0 2 2 total 0 0 material group in nuclide mean std. dev. 1 3 1 total 0.286906 0.027401 0 3 2 total 1.418151 0.265308 material group in nuclide mean std. dev. 1 3 1 total 0 0 -0 3 2 total 0 0 material group in group out nuclide moment mean -12 3 1 1 total P0 0.643346 -13 3 1 1 total P1 0.383409 -14 3 1 1 total P2 0.152185 -15 3 1 1 total P3 0.003037 -8 3 1 2 total P0 0.026187 -9 3 1 2 total P1 0.007362 -10 3 1 2 total P2 -0.002738 -11 3 1 2 total P3 -0.002720 -4 3 2 1 total P0 0.000000 -5 3 2 1 total P1 0.000000 -6 3 2 1 total P2 0.000000 -7 3 2 1 total P3 0.000000 -0 3 2 2 total P0 1.924214 -1 3 2 2 total P1 0.498431 -2 3 2 2 total P2 0.091205 -3 3 2 2 total P3 0.017054 material group out nuclide mean std. dev. +0 3 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 3 1 1 total P0 0.643346 0.028376 +13 3 1 1 total P1 0.383409 0.016447 +14 3 1 1 total P2 0.152185 0.009574 +15 3 1 1 total P3 0.003037 0.004648 +8 3 1 2 total P0 0.026187 0.001665 +9 3 1 2 total P1 0.007362 0.000934 +10 3 1 2 total P2 -0.002738 0.000756 +11 3 1 2 total P3 -0.002720 0.000558 +4 3 2 1 total P0 0.000000 0.000000 +5 3 2 1 total P1 0.000000 0.000000 +6 3 2 1 total P2 0.000000 0.000000 +7 3 2 1 total P3 0.000000 0.000000 +0 3 2 2 total P0 1.924214 0.284062 +1 3 2 2 total P1 0.498431 0.063421 +2 3 2 2 total P2 0.091205 0.013726 +3 3 2 2 total P3 0.017054 0.013916 material group out nuclide mean std. dev. 1 3 1 total 0 0 0 3 2 total 0 0 material group in nuclide mean std. dev. 1 4 1 total 0.242447 0.061031 0 4 2 total 1.253959 0.388363 material group in nuclide mean std. dev. 1 4 1 total 0 0 -0 4 2 total 0 0 material group in group out nuclide moment mean -12 4 1 1 total P0 0.543941 -13 4 1 1 total P1 0.326011 -14 4 1 1 total P2 0.131133 -15 4 1 1 total P3 0.012105 -8 4 1 2 total P0 0.023662 -9 4 1 2 total P1 0.007526 -10 4 1 2 total P2 -0.002730 -11 4 1 2 total P3 -0.003140 -4 4 2 1 total P0 0.000000 -5 4 2 1 total P1 0.000000 -6 4 2 1 total P2 0.000000 -7 4 2 1 total P3 0.000000 -0 4 2 2 total P0 1.764648 -1 4 2 2 total P1 0.500695 -2 4 2 2 total P2 0.099026 -3 4 2 2 total P3 0.032975 material group out nuclide mean std. dev. +0 4 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 4 1 1 total P0 0.543941 0.065427 +13 4 1 1 total P1 0.326011 0.038602 +14 4 1 1 total P2 0.131133 0.017475 +15 4 1 1 total P3 0.012105 0.006073 +8 4 1 2 total P0 0.023662 0.003083 +9 4 1 2 total P1 0.007526 0.001301 +10 4 1 2 total P2 -0.002730 0.000841 +11 4 1 2 total P3 -0.003140 0.000578 +4 4 2 1 total P0 0.000000 0.000000 +5 4 2 1 total P1 0.000000 0.000000 +6 4 2 1 total P2 0.000000 0.000000 +7 4 2 1 total P3 0.000000 0.000000 +0 4 2 2 total P0 1.764648 0.416210 +1 4 2 2 total P1 0.500695 0.122178 +2 4 2 2 total P2 0.099026 0.038719 +3 4 2 2 total P3 0.032975 0.025103 material group out nuclide mean std. dev. 1 4 1 total 0 0 0 4 2 total 0 0 material group in nuclide mean std. dev. 1 5 1 total 0 0 0 5 2 total 0 0 material group in nuclide mean std. dev. 1 5 1 total 0 0 -0 5 2 total 0 0 material group in group out nuclide moment mean -12 5 1 1 total P0 0 -13 5 1 1 total P1 0 -14 5 1 1 total P2 0 -15 5 1 1 total P3 0 -8 5 1 2 total P0 0 -9 5 1 2 total P1 0 -10 5 1 2 total P2 0 -11 5 1 2 total P3 0 -4 5 2 1 total P0 0 -5 5 2 1 total P1 0 -6 5 2 1 total P2 0 -7 5 2 1 total P3 0 -0 5 2 2 total P0 0 -1 5 2 2 total P1 0 -2 5 2 2 total P2 0 -3 5 2 2 total P3 0 material group out nuclide mean std. dev. +0 5 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 5 1 1 total P0 0 0 +13 5 1 1 total P1 0 0 +14 5 1 1 total P2 0 0 +15 5 1 1 total P3 0 0 +8 5 1 2 total P0 0 0 +9 5 1 2 total P1 0 0 +10 5 1 2 total P2 0 0 +11 5 1 2 total P3 0 0 +4 5 2 1 total P0 0 0 +5 5 2 1 total P1 0 0 +6 5 2 1 total P2 0 0 +7 5 2 1 total P3 0 0 +0 5 2 2 total P0 0 0 +1 5 2 2 total P1 0 0 +2 5 2 2 total P2 0 0 +3 5 2 2 total P3 0 0 material group out nuclide mean std. dev. 1 5 1 total 0 0 0 5 2 total 0 0 material group in nuclide mean std. dev. 1 6 1 total 0 0 0 6 2 total 0 0 material group in nuclide mean std. dev. 1 6 1 total 0 0 -0 6 2 total 0 0 material group in group out nuclide moment mean -12 6 1 1 total P0 0 -13 6 1 1 total P1 0 -14 6 1 1 total P2 0 -15 6 1 1 total P3 0 -8 6 1 2 total P0 0 -9 6 1 2 total P1 0 -10 6 1 2 total P2 0 -11 6 1 2 total P3 0 -4 6 2 1 total P0 0 -5 6 2 1 total P1 0 -6 6 2 1 total P2 0 -7 6 2 1 total P3 0 -0 6 2 2 total P0 0 -1 6 2 2 total P1 0 -2 6 2 2 total P2 0 -3 6 2 2 total P3 0 material group out nuclide mean std. dev. +0 6 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 6 1 1 total P0 0 0 +13 6 1 1 total P1 0 0 +14 6 1 1 total P2 0 0 +15 6 1 1 total P3 0 0 +8 6 1 2 total P0 0 0 +9 6 1 2 total P1 0 0 +10 6 1 2 total P2 0 0 +11 6 1 2 total P3 0 0 +4 6 2 1 total P0 0 0 +5 6 2 1 total P1 0 0 +6 6 2 1 total P2 0 0 +7 6 2 1 total P3 0 0 +0 6 2 2 total P0 0 0 +1 6 2 2 total P1 0 0 +2 6 2 2 total P2 0 0 +3 6 2 2 total P3 0 0 material group out nuclide mean std. dev. 1 6 1 total 0 0 0 6 2 total 0 0 material group in nuclide mean std. dev. 1 7 1 total 0 0 0 7 2 total 0 0 material group in nuclide mean std. dev. 1 7 1 total 0 0 -0 7 2 total 0 0 material group in group out nuclide moment mean -12 7 1 1 total P0 0 -13 7 1 1 total P1 0 -14 7 1 1 total P2 0 -15 7 1 1 total P3 0 -8 7 1 2 total P0 0 -9 7 1 2 total P1 0 -10 7 1 2 total P2 0 -11 7 1 2 total P3 0 -4 7 2 1 total P0 0 -5 7 2 1 total P1 0 -6 7 2 1 total P2 0 -7 7 2 1 total P3 0 -0 7 2 2 total P0 0 -1 7 2 2 total P1 0 -2 7 2 2 total P2 0 -3 7 2 2 total P3 0 material group out nuclide mean std. dev. +0 7 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 7 1 1 total P0 0 0 +13 7 1 1 total P1 0 0 +14 7 1 1 total P2 0 0 +15 7 1 1 total P3 0 0 +8 7 1 2 total P0 0 0 +9 7 1 2 total P1 0 0 +10 7 1 2 total P2 0 0 +11 7 1 2 total P3 0 0 +4 7 2 1 total P0 0 0 +5 7 2 1 total P1 0 0 +6 7 2 1 total P2 0 0 +7 7 2 1 total P3 0 0 +0 7 2 2 total P0 0 0 +1 7 2 2 total P1 0 0 +2 7 2 2 total P2 0 0 +3 7 2 2 total P3 0 0 material group out nuclide mean std. dev. 1 7 1 total 0 0 0 7 2 total 0 0 material group in nuclide mean std. dev. 1 8 1 total 0 0 0 8 2 total 0 0 material group in nuclide mean std. dev. 1 8 1 total 0 0 -0 8 2 total 0 0 material group in group out nuclide moment mean -12 8 1 1 total P0 0 -13 8 1 1 total P1 0 -14 8 1 1 total P2 0 -15 8 1 1 total P3 0 -8 8 1 2 total P0 0 -9 8 1 2 total P1 0 -10 8 1 2 total P2 0 -11 8 1 2 total P3 0 -4 8 2 1 total P0 0 -5 8 2 1 total P1 0 -6 8 2 1 total P2 0 -7 8 2 1 total P3 0 -0 8 2 2 total P0 0 -1 8 2 2 total P1 0 -2 8 2 2 total P2 0 -3 8 2 2 total P3 0 material group out nuclide mean std. dev. +0 8 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 8 1 1 total P0 0 0 +13 8 1 1 total P1 0 0 +14 8 1 1 total P2 0 0 +15 8 1 1 total P3 0 0 +8 8 1 2 total P0 0 0 +9 8 1 2 total P1 0 0 +10 8 1 2 total P2 0 0 +11 8 1 2 total P3 0 0 +4 8 2 1 total P0 0 0 +5 8 2 1 total P1 0 0 +6 8 2 1 total P2 0 0 +7 8 2 1 total P3 0 0 +0 8 2 2 total P0 0 0 +1 8 2 2 total P1 0 0 +2 8 2 2 total P2 0 0 +3 8 2 2 total P3 0 0 material group out nuclide mean std. dev. 1 8 1 total 0 0 0 8 2 total 0 0 material group in nuclide mean std. dev. 1 9 1 total 0.600536 0.748875 0 9 2 total 0.000000 0.000000 material group in nuclide mean std. dev. 1 9 1 total 0 0 -0 9 2 total 0 0 material group in group out nuclide moment mean -12 9 1 1 total P0 0.720380 -13 9 1 1 total P1 0.119844 -14 9 1 1 total P2 0.038522 -15 9 1 1 total P3 0.056023 -8 9 1 2 total P0 0.000000 -9 9 1 2 total P1 0.000000 -10 9 1 2 total P2 0.000000 -11 9 1 2 total P3 0.000000 -4 9 2 1 total P0 0.000000 -5 9 2 1 total P1 0.000000 -6 9 2 1 total P2 0.000000 -7 9 2 1 total P3 0.000000 -0 9 2 2 total P0 0.000000 -1 9 2 2 total P1 0.000000 -2 9 2 2 total P2 0.000000 -3 9 2 2 total P3 0.000000 material group out nuclide mean std. dev. +0 9 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 9 1 1 total P0 0.720380 0.771015 +13 9 1 1 total P1 0.119844 0.184691 +14 9 1 1 total P2 0.038522 0.064485 +15 9 1 1 total P3 0.056023 0.050595 +8 9 1 2 total P0 0.000000 0.000000 +9 9 1 2 total P1 0.000000 0.000000 +10 9 1 2 total P2 0.000000 0.000000 +11 9 1 2 total P3 0.000000 0.000000 +4 9 2 1 total P0 0.000000 0.000000 +5 9 2 1 total P1 0.000000 0.000000 +6 9 2 1 total P2 0.000000 0.000000 +7 9 2 1 total P3 0.000000 0.000000 +0 9 2 2 total P0 0.000000 0.000000 +1 9 2 2 total P1 0.000000 0.000000 +2 9 2 2 total P2 0.000000 0.000000 +3 9 2 2 total P3 0.000000 0.000000 material group out nuclide mean std. dev. 1 9 1 total 0 0 0 9 2 total 0 0 material group in nuclide mean std. dev. 1 10 1 total 0.235515 0.613974 0 10 2 total 0.000000 0.000000 material group in nuclide mean std. dev. 1 10 1 total 0 0 -0 10 2 total 0 0 material group in group out nuclide moment mean -12 10 1 1 total P0 0.501009 -13 10 1 1 total P1 0.265494 -14 10 1 1 total P2 0.141979 -15 10 1 1 total P3 0.074258 -8 10 1 2 total P0 0.000000 -9 10 1 2 total P1 0.000000 -10 10 1 2 total P2 0.000000 -11 10 1 2 total P3 0.000000 -4 10 2 1 total P0 0.000000 -5 10 2 1 total P1 0.000000 -6 10 2 1 total P2 0.000000 -7 10 2 1 total P3 0.000000 -0 10 2 2 total P0 0.000000 -1 10 2 2 total P1 0.000000 -2 10 2 2 total P2 0.000000 -3 10 2 2 total P3 0.000000 material group out nuclide mean std. dev. +0 10 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 10 1 1 total P0 0.501009 0.708534 +13 10 1 1 total P1 0.265494 0.375465 +14 10 1 1 total P2 0.141979 0.200788 +15 10 1 1 total P3 0.074258 0.105017 +8 10 1 2 total P0 0.000000 0.000000 +9 10 1 2 total P1 0.000000 0.000000 +10 10 1 2 total P2 0.000000 0.000000 +11 10 1 2 total P3 0.000000 0.000000 +4 10 2 1 total P0 0.000000 0.000000 +5 10 2 1 total P1 0.000000 0.000000 +6 10 2 1 total P2 0.000000 0.000000 +7 10 2 1 total P3 0.000000 0.000000 +0 10 2 2 total P0 0.000000 0.000000 +1 10 2 2 total P1 0.000000 0.000000 +2 10 2 2 total P2 0.000000 0.000000 +3 10 2 2 total P3 0.000000 0.000000 material group out nuclide mean std. dev. 1 10 1 total 0 0 0 10 2 total 0 0 material group in nuclide mean std. dev. 1 11 1 total 0.186324 0.632129 0 11 2 total 0.945986 1.591133 material group in nuclide mean std. dev. 1 11 1 total 0 0 -0 11 2 total 0 0 material group in group out nuclide moment mean -12 11 1 1 total P0 0.478128 -13 11 1 1 total P1 0.323679 -14 11 1 1 total P2 0.143375 -15 11 1 1 total P3 0.054003 -8 11 1 2 total P0 0.031875 -9 11 1 2 total P1 0.008585 -10 11 1 2 total P2 -0.012470 -11 11 1 2 total P3 -0.011320 -4 11 2 1 total P0 0.000000 -5 11 2 1 total P1 0.000000 -6 11 2 1 total P2 0.000000 -7 11 2 1 total P3 0.000000 -0 11 2 2 total P0 1.201250 -1 11 2 2 total P1 0.286611 -2 11 2 2 total P2 0.218191 -3 11 2 2 total P3 -0.048514 material group out nuclide mean std. dev. +0 11 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 11 1 1 total P0 0.478128 0.676174 +13 11 1 1 total P1 0.323679 0.457751 +14 11 1 1 total P2 0.143375 0.202763 +15 11 1 1 total P3 0.054003 0.076372 +8 11 1 2 total P0 0.031875 0.045078 +9 11 1 2 total P1 0.008585 0.012140 +10 11 1 2 total P2 -0.012470 0.017635 +11 11 1 2 total P3 -0.011320 0.016009 +4 11 2 1 total P0 0.000000 0.000000 +5 11 2 1 total P1 0.000000 0.000000 +6 11 2 1 total P2 0.000000 0.000000 +7 11 2 1 total P3 0.000000 0.000000 +0 11 2 2 total P0 1.201250 1.698824 +1 11 2 2 total P1 0.286611 0.405329 +2 11 2 2 total P2 0.218191 0.308569 +3 11 2 2 total P3 -0.048514 0.068609 material group out nuclide mean std. dev. 1 11 1 total 0 0 0 11 2 total 0 0 material group in nuclide mean std. dev. 1 12 1 total 0.213292 0.271444 0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. 1 12 1 total 0 0 -0 12 2 total 0 0 material group in group out nuclide moment mean -12 12 1 1 total P0 0.408594 -13 12 1 1 total P1 0.222541 -14 12 1 1 total P2 0.090972 -15 12 1 1 total P3 0.031004 -8 12 1 2 total P0 0.027240 -9 12 1 2 total P1 -0.010088 -10 12 1 2 total P2 -0.006946 -11 12 1 2 total P3 0.009692 -4 12 2 1 total P0 0.000000 -5 12 2 1 total P1 0.000000 -6 12 2 1 total P2 0.000000 -7 12 2 1 total P3 0.000000 -0 12 2 2 total P0 1.574328 -1 12 2 2 total P1 0.229748 -2 12 2 2 total P2 0.014178 -3 12 2 2 total P3 0.038997 material group out nuclide mean std. dev. +0 12 2 total 0 0 material group in group out nuclide moment mean std. dev. +12 12 1 1 total P0 0.408594 0.278123 +13 12 1 1 total P1 0.222541 0.145776 +14 12 1 1 total P2 0.090972 0.069626 +15 12 1 1 total P3 0.031004 0.035981 +8 12 1 2 total P0 0.027240 0.029555 +9 12 1 2 total P1 -0.010088 0.010945 +10 12 1 2 total P2 -0.006946 0.007537 +11 12 1 2 total P3 0.009692 0.010516 +4 12 2 1 total P0 0.000000 0.000000 +5 12 2 1 total P1 0.000000 0.000000 +6 12 2 1 total P2 0.000000 0.000000 +7 12 2 1 total P3 0.000000 0.000000 +0 12 2 2 total P0 1.574328 2.226436 +1 12 2 2 total P1 0.229748 0.324913 +2 12 2 2 total P2 0.014178 0.020051 +3 12 2 2 total P3 0.038997 0.055150 material group out nuclide mean std. dev. 1 12 1 total 0 0 0 12 2 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 20d2d8d5a..1fcfe4aef 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1,4335 +1 @@ - material group in nuclide mean std. dev. -34 1 1 U-234 0.000173 0.000173 -35 1 1 U-235 0.010677 0.001889 -36 1 1 U-236 0.002390 0.001055 -37 1 1 U-238 0.213680 0.013272 -38 1 1 Np-237 0.000000 0.000000 -39 1 1 Pu-238 0.000000 0.000000 -40 1 1 Pu-239 0.002911 0.000639 -41 1 1 Pu-240 0.004426 0.000806 -42 1 1 Pu-241 0.000690 0.000387 -43 1 1 Pu-242 0.000000 0.000000 -44 1 1 Am-241 0.000173 0.000173 -45 1 1 Am-242m 0.000000 0.000000 -46 1 1 Am-243 0.000000 0.000000 -47 1 1 Cm-242 0.000000 0.000000 -48 1 1 Cm-243 0.000000 0.000000 -49 1 1 Cm-244 0.000000 0.000000 -50 1 1 Cm-245 0.000000 0.000000 -51 1 1 Mo-95 0.000000 0.000000 -52 1 1 Tc-99 0.000173 0.000173 -53 1 1 Ru-101 0.000238 0.000254 -54 1 1 Ru-103 0.000002 0.000243 -55 1 1 Ag-109 0.000000 0.000000 -56 1 1 Xe-135 0.000000 0.000000 -57 1 1 Cs-133 0.000347 0.000213 -58 1 1 Nd-143 0.000447 0.000292 -59 1 1 Nd-145 0.000564 0.000294 -60 1 1 Sm-147 0.000000 0.000000 -61 1 1 Sm-149 0.000000 0.000000 -62 1 1 Sm-150 0.000472 0.000239 -63 1 1 Sm-151 0.000000 0.000000 -64 1 1 Sm-152 0.000492 0.000352 -65 1 1 Eu-153 0.000173 0.000173 -66 1 1 Gd-155 0.000000 0.000000 -67 1 1 O-16 0.134715 0.009801 -0 1 2 U-234 0.000000 0.000000 -1 1 2 U-235 0.199907 0.007776 -2 1 2 U-236 0.001501 0.002037 -3 1 2 U-238 0.255355 0.029743 -4 1 2 Np-237 0.000000 0.000000 -5 1 2 Pu-238 0.000000 0.000000 -6 1 2 Pu-239 0.160378 0.011366 -7 1 2 Pu-240 0.007920 0.003710 -8 1 2 Pu-241 0.017820 0.003733 -9 1 2 Pu-242 0.000000 0.000000 -10 1 2 Am-241 0.000000 0.000000 -11 1 2 Am-242m 0.000000 0.000000 -12 1 2 Am-243 0.000000 0.000000 -13 1 2 Cm-242 0.000000 0.000000 -14 1 2 Cm-243 0.000000 0.000000 -15 1 2 Cm-244 0.000000 0.000000 -16 1 2 Cm-245 0.000000 0.000000 -17 1 2 Mo-95 0.000000 0.000000 -18 1 2 Tc-99 0.000000 0.000000 -19 1 2 Ru-101 0.000000 0.000000 -20 1 2 Ru-103 0.000000 0.000000 -21 1 2 Ag-109 0.000000 0.000000 -22 1 2 Xe-135 0.013860 0.003976 -23 1 2 Cs-133 0.000000 0.000000 -24 1 2 Nd-143 0.003960 0.002427 -25 1 2 Nd-145 0.000000 0.000000 -26 1 2 Sm-147 0.000000 0.000000 -27 1 2 Sm-149 0.001980 0.001981 -28 1 2 Sm-150 0.000000 0.000000 -29 1 2 Sm-151 0.001980 0.001981 -30 1 2 Sm-152 0.000000 0.000000 -31 1 2 Eu-153 0.000000 0.000000 -32 1 2 Gd-155 0.000000 0.000000 -33 1 2 O-16 0.196946 0.014729 material group in nuclide mean std. dev. -34 1 1 U-234 7.274440e-06 4.419477e-07 -35 1 1 U-235 9.587803e-03 5.936922e-04 -36 1 1 U-236 7.566099e-05 7.523935e-06 -37 1 1 U-238 7.178367e-03 6.505680e-04 -38 1 1 Np-237 1.315682e-05 8.036501e-07 -39 1 1 Pu-238 7.746151e-06 3.992835e-07 -40 1 1 Pu-239 3.805294e-03 3.637600e-04 -41 1 1 Pu-240 6.941319e-05 4.729737e-06 -42 1 1 Pu-241 1.033844e-03 9.083913e-05 -43 1 1 Pu-242 5.995332e-06 3.821721e-07 -44 1 1 Am-241 1.148585e-06 8.271648e-08 -45 1 1 Am-242m 1.100215e-06 6.159956e-08 -46 1 1 Am-243 8.323826e-07 5.841792e-08 -47 1 1 Cm-242 5.088970e-07 5.258007e-08 -48 1 1 Cm-243 2.245435e-07 1.459025e-08 -49 1 1 Cm-244 2.993206e-07 2.746129e-08 -50 1 1 Cm-245 3.063611e-07 3.057751e-08 -51 1 1 Mo-95 0.000000e+00 0.000000e+00 -52 1 1 Tc-99 0.000000e+00 0.000000e+00 -53 1 1 Ru-101 0.000000e+00 0.000000e+00 -54 1 1 Ru-103 0.000000e+00 0.000000e+00 -55 1 1 Ag-109 0.000000e+00 0.000000e+00 -56 1 1 Xe-135 0.000000e+00 0.000000e+00 -57 1 1 Cs-133 0.000000e+00 0.000000e+00 -58 1 1 Nd-143 0.000000e+00 0.000000e+00 -59 1 1 Nd-145 0.000000e+00 0.000000e+00 -60 1 1 Sm-147 0.000000e+00 0.000000e+00 -61 1 1 Sm-149 0.000000e+00 0.000000e+00 -62 1 1 Sm-150 0.000000e+00 0.000000e+00 -63 1 1 Sm-151 0.000000e+00 0.000000e+00 -64 1 1 Sm-152 0.000000e+00 0.000000e+00 -65 1 1 Eu-153 0.000000e+00 0.000000e+00 -66 1 1 Gd-155 0.000000e+00 0.000000e+00 -67 1 1 O-16 0.000000e+00 0.000000e+00 -0 1 2 U-234 4.408576e-07 2.828309e-08 -1 1 2 U-235 3.768094e-01 2.445671e-02 -2 1 2 U-236 6.097538e-06 3.733038e-07 -3 1 2 U-238 5.353074e-07 3.310544e-08 -4 1 2 Np-237 2.702971e-07 2.098939e-08 -5 1 2 Pu-238 3.463109e-05 2.638394e-06 -6 1 2 Pu-239 2.889643e-01 1.376004e-02 -7 1 2 Pu-240 4.533642e-06 2.544289e-07 -8 1 2 Pu-241 4.809366e-02 2.778345e-03 -9 1 2 Pu-242 8.715325e-08 5.460893e-09 -10 1 2 Am-241 4.611736e-06 2.155039e-07 -11 1 2 Am-242m 1.428047e-04 8.436437e-06 -12 1 2 Am-243 7.883895e-08 4.734503e-09 -13 1 2 Cm-242 9.731025e-07 6.143750e-08 -14 1 2 Cm-243 1.825830e-06 1.074849e-07 -15 1 2 Cm-244 1.581823e-07 9.938064e-09 -16 1 2 Cm-245 1.213386e-05 8.812019e-07 -17 1 2 Mo-95 0.000000e+00 0.000000e+00 -18 1 2 Tc-99 0.000000e+00 0.000000e+00 -19 1 2 Ru-101 0.000000e+00 0.000000e+00 -20 1 2 Ru-103 0.000000e+00 0.000000e+00 -21 1 2 Ag-109 0.000000e+00 0.000000e+00 -22 1 2 Xe-135 0.000000e+00 0.000000e+00 -23 1 2 Cs-133 0.000000e+00 0.000000e+00 -24 1 2 Nd-143 0.000000e+00 0.000000e+00 -25 1 2 Nd-145 0.000000e+00 0.000000e+00 -26 1 2 Sm-147 0.000000e+00 0.000000e+00 -27 1 2 Sm-149 0.000000e+00 0.000000e+00 -28 1 2 Sm-150 0.000000e+00 0.000000e+00 -29 1 2 Sm-151 0.000000e+00 0.000000e+00 -30 1 2 Sm-152 0.000000e+00 0.000000e+00 -31 1 2 Eu-153 0.000000e+00 0.000000e+00 -32 1 2 Gd-155 0.000000e+00 0.000000e+00 -33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide moment mean -408 1 1 1 U-234 P0 0.000000 -409 1 1 1 U-234 P1 0.000000 -410 1 1 1 U-234 P2 0.000000 -411 1 1 1 U-234 P3 0.000000 -412 1 1 1 U-235 P0 0.003812 -413 1 1 1 U-235 P1 0.000586 -414 1 1 1 U-235 P2 0.000071 -415 1 1 1 U-235 P3 0.000277 -416 1 1 1 U-236 P0 0.001733 -417 1 1 1 U-236 P1 0.000035 -418 1 1 1 U-236 P2 -0.000183 -419 1 1 1 U-236 P3 -0.000087 -420 1 1 1 U-238 P0 0.224908 -421 1 1 1 U-238 P1 0.030440 -422 1 1 1 U-238 P2 0.014265 -423 1 1 1 U-238 P3 0.007698 -424 1 1 1 Np-237 P0 0.000000 -425 1 1 1 Np-237 P1 0.000000 -426 1 1 1 Np-237 P2 0.000000 -427 1 1 1 Np-237 P3 0.000000 -428 1 1 1 Pu-238 P0 0.000000 -429 1 1 1 Pu-238 P1 0.000000 -430 1 1 1 Pu-238 P2 0.000000 -431 1 1 1 Pu-238 P3 0.000000 -432 1 1 1 Pu-239 P0 0.001040 -433 1 1 1 Pu-239 P1 0.000034 -434 1 1 1 Pu-239 P2 0.000090 -435 1 1 1 Pu-239 P3 0.000110 -436 1 1 1 Pu-240 P0 0.001040 -437 1 1 1 Pu-240 P1 -0.000268 -438 1 1 1 Pu-240 P2 -0.000137 -439 1 1 1 Pu-240 P3 0.000132 -440 1 1 1 Pu-241 P0 0.000173 -441 1 1 1 Pu-241 P1 -0.000170 -442 1 1 1 Pu-241 P2 0.000165 -443 1 1 1 Pu-241 P3 -0.000156 -444 1 1 1 Pu-242 P0 0.000000 -445 1 1 1 Pu-242 P1 0.000000 -446 1 1 1 Pu-242 P2 0.000000 -447 1 1 1 Pu-242 P3 0.000000 -448 1 1 1 Am-241 P0 0.000000 -449 1 1 1 Am-241 P1 0.000000 -450 1 1 1 Am-241 P2 0.000000 -451 1 1 1 Am-241 P3 0.000000 -452 1 1 1 Am-242m P0 0.000000 -453 1 1 1 Am-242m P1 0.000000 -454 1 1 1 Am-242m P2 0.000000 -455 1 1 1 Am-242m P3 0.000000 -456 1 1 1 Am-243 P0 0.000000 -457 1 1 1 Am-243 P1 0.000000 -458 1 1 1 Am-243 P2 0.000000 -459 1 1 1 Am-243 P3 0.000000 -460 1 1 1 Cm-242 P0 0.000000 -461 1 1 1 Cm-242 P1 0.000000 -462 1 1 1 Cm-242 P2 0.000000 -463 1 1 1 Cm-242 P3 0.000000 -464 1 1 1 Cm-243 P0 0.000000 -465 1 1 1 Cm-243 P1 0.000000 -466 1 1 1 Cm-243 P2 0.000000 -467 1 1 1 Cm-243 P3 0.000000 -468 1 1 1 Cm-244 P0 0.000000 -469 1 1 1 Cm-244 P1 0.000000 -470 1 1 1 Cm-244 P2 0.000000 -471 1 1 1 Cm-244 P3 0.000000 -472 1 1 1 Cm-245 P0 0.000000 -473 1 1 1 Cm-245 P1 0.000000 -474 1 1 1 Cm-245 P2 0.000000 -475 1 1 1 Cm-245 P3 0.000000 -476 1 1 1 Mo-95 P0 0.000000 -477 1 1 1 Mo-95 P1 0.000000 -478 1 1 1 Mo-95 P2 0.000000 -479 1 1 1 Mo-95 P3 0.000000 -480 1 1 1 Tc-99 P0 0.000000 -481 1 1 1 Tc-99 P1 0.000000 -482 1 1 1 Tc-99 P2 0.000000 -483 1 1 1 Tc-99 P3 0.000000 -484 1 1 1 Ru-101 P0 0.000347 -485 1 1 1 Ru-101 P1 0.000109 -486 1 1 1 Ru-101 P2 -0.000020 -487 1 1 1 Ru-101 P3 0.000023 -488 1 1 1 Ru-103 P0 0.000173 -489 1 1 1 Ru-103 P1 0.000171 -490 1 1 1 Ru-103 P2 0.000167 -491 1 1 1 Ru-103 P3 0.000160 -492 1 1 1 Ag-109 P0 0.000000 -493 1 1 1 Ag-109 P1 0.000000 -494 1 1 1 Ag-109 P2 0.000000 -495 1 1 1 Ag-109 P3 0.000000 -496 1 1 1 Xe-135 P0 0.000000 -497 1 1 1 Xe-135 P1 0.000000 -498 1 1 1 Xe-135 P2 0.000000 -499 1 1 1 Xe-135 P3 0.000000 -500 1 1 1 Cs-133 P0 0.000000 -501 1 1 1 Cs-133 P1 0.000000 -502 1 1 1 Cs-133 P2 0.000000 -503 1 1 1 Cs-133 P3 0.000000 -504 1 1 1 Nd-143 P0 0.000520 -505 1 1 1 Nd-143 P1 0.000073 -506 1 1 1 Nd-143 P2 0.000023 -507 1 1 1 Nd-143 P3 -0.000103 -508 1 1 1 Nd-145 P0 0.000520 -509 1 1 1 Nd-145 P1 -0.000044 -510 1 1 1 Nd-145 P2 0.000026 -511 1 1 1 Nd-145 P3 0.000126 -512 1 1 1 Sm-147 P0 0.000000 -513 1 1 1 Sm-147 P1 0.000000 -514 1 1 1 Sm-147 P2 0.000000 -515 1 1 1 Sm-147 P3 0.000000 -516 1 1 1 Sm-149 P0 0.000000 -517 1 1 1 Sm-149 P1 0.000000 -518 1 1 1 Sm-149 P2 0.000000 -519 1 1 1 Sm-149 P3 0.000000 -520 1 1 1 Sm-150 P0 0.000347 -521 1 1 1 Sm-150 P1 0.000048 -522 1 1 1 Sm-150 P2 -0.000090 -523 1 1 1 Sm-150 P3 -0.000019 -524 1 1 1 Sm-151 P0 0.000000 -525 1 1 1 Sm-151 P1 0.000000 -526 1 1 1 Sm-151 P2 0.000000 -527 1 1 1 Sm-151 P3 0.000000 -528 1 1 1 Sm-152 P0 0.000693 -529 1 1 1 Sm-152 P1 0.000201 -530 1 1 1 Sm-152 P2 -0.000044 -531 1 1 1 Sm-152 P3 0.000138 -532 1 1 1 Eu-153 P0 0.000000 -533 1 1 1 Eu-153 P1 0.000000 -534 1 1 1 Eu-153 P2 0.000000 -535 1 1 1 Eu-153 P3 0.000000 -536 1 1 1 Gd-155 P0 0.000000 -537 1 1 1 Gd-155 P1 0.000000 -538 1 1 1 Gd-155 P2 0.000000 -539 1 1 1 Gd-155 P3 0.000000 -540 1 1 1 O-16 P0 0.146242 -541 1 1 1 O-16 P1 0.013087 -542 1 1 1 O-16 P2 0.006314 -543 1 1 1 O-16 P3 0.005397 -272 1 1 2 U-234 P0 0.000000 -273 1 1 2 U-234 P1 0.000000 -274 1 1 2 U-234 P2 0.000000 -275 1 1 2 U-234 P3 0.000000 -276 1 1 2 U-235 P0 0.000000 -277 1 1 2 U-235 P1 0.000000 -278 1 1 2 U-235 P2 0.000000 -279 1 1 2 U-235 P3 0.000000 -280 1 1 2 U-236 P0 0.000000 -281 1 1 2 U-236 P1 0.000000 -282 1 1 2 U-236 P2 0.000000 -283 1 1 2 U-236 P3 0.000000 -284 1 1 2 U-238 P0 0.000173 -285 1 1 2 U-238 P1 -0.000038 -286 1 1 2 U-238 P2 -0.000074 -287 1 1 2 U-238 P3 0.000052 -288 1 1 2 Np-237 P0 0.000000 -289 1 1 2 Np-237 P1 0.000000 -290 1 1 2 Np-237 P2 0.000000 -291 1 1 2 Np-237 P3 0.000000 -292 1 1 2 Pu-238 P0 0.000000 -293 1 1 2 Pu-238 P1 0.000000 -294 1 1 2 Pu-238 P2 0.000000 -295 1 1 2 Pu-238 P3 0.000000 -296 1 1 2 Pu-239 P0 0.000000 -297 1 1 2 Pu-239 P1 0.000000 -298 1 1 2 Pu-239 P2 0.000000 -299 1 1 2 Pu-239 P3 0.000000 -300 1 1 2 Pu-240 P0 0.000000 -301 1 1 2 Pu-240 P1 0.000000 -302 1 1 2 Pu-240 P2 0.000000 -303 1 1 2 Pu-240 P3 0.000000 -304 1 1 2 Pu-241 P0 0.000000 -305 1 1 2 Pu-241 P1 0.000000 -306 1 1 2 Pu-241 P2 0.000000 -307 1 1 2 Pu-241 P3 0.000000 -308 1 1 2 Pu-242 P0 0.000000 -309 1 1 2 Pu-242 P1 0.000000 -310 1 1 2 Pu-242 P2 0.000000 -311 1 1 2 Pu-242 P3 0.000000 -312 1 1 2 Am-241 P0 0.000000 -313 1 1 2 Am-241 P1 0.000000 -314 1 1 2 Am-241 P2 0.000000 -315 1 1 2 Am-241 P3 0.000000 -316 1 1 2 Am-242m P0 0.000000 -317 1 1 2 Am-242m P1 0.000000 -318 1 1 2 Am-242m P2 0.000000 -319 1 1 2 Am-242m P3 0.000000 -320 1 1 2 Am-243 P0 0.000000 -321 1 1 2 Am-243 P1 0.000000 -322 1 1 2 Am-243 P2 0.000000 -323 1 1 2 Am-243 P3 0.000000 -324 1 1 2 Cm-242 P0 0.000000 -325 1 1 2 Cm-242 P1 0.000000 -326 1 1 2 Cm-242 P2 0.000000 -327 1 1 2 Cm-242 P3 0.000000 -328 1 1 2 Cm-243 P0 0.000000 -329 1 1 2 Cm-243 P1 0.000000 -330 1 1 2 Cm-243 P2 0.000000 -331 1 1 2 Cm-243 P3 0.000000 -332 1 1 2 Cm-244 P0 0.000000 -333 1 1 2 Cm-244 P1 0.000000 -334 1 1 2 Cm-244 P2 0.000000 -335 1 1 2 Cm-244 P3 0.000000 -336 1 1 2 Cm-245 P0 0.000000 -337 1 1 2 Cm-245 P1 0.000000 -338 1 1 2 Cm-245 P2 0.000000 -339 1 1 2 Cm-245 P3 0.000000 -340 1 1 2 Mo-95 P0 0.000000 -341 1 1 2 Mo-95 P1 0.000000 -342 1 1 2 Mo-95 P2 0.000000 -343 1 1 2 Mo-95 P3 0.000000 -344 1 1 2 Tc-99 P0 0.000000 -345 1 1 2 Tc-99 P1 0.000000 -346 1 1 2 Tc-99 P2 0.000000 -347 1 1 2 Tc-99 P3 0.000000 -348 1 1 2 Ru-101 P0 0.000000 -349 1 1 2 Ru-101 P1 0.000000 -350 1 1 2 Ru-101 P2 0.000000 -351 1 1 2 Ru-101 P3 0.000000 -352 1 1 2 Ru-103 P0 0.000000 -353 1 1 2 Ru-103 P1 0.000000 -354 1 1 2 Ru-103 P2 0.000000 -355 1 1 2 Ru-103 P3 0.000000 -356 1 1 2 Ag-109 P0 0.000000 -357 1 1 2 Ag-109 P1 0.000000 -358 1 1 2 Ag-109 P2 0.000000 -359 1 1 2 Ag-109 P3 0.000000 -360 1 1 2 Xe-135 P0 0.000000 -361 1 1 2 Xe-135 P1 0.000000 -362 1 1 2 Xe-135 P2 0.000000 -363 1 1 2 Xe-135 P3 0.000000 -364 1 1 2 Cs-133 P0 0.000000 -365 1 1 2 Cs-133 P1 0.000000 -366 1 1 2 Cs-133 P2 0.000000 -367 1 1 2 Cs-133 P3 0.000000 -368 1 1 2 Nd-143 P0 0.000000 -369 1 1 2 Nd-143 P1 0.000000 -370 1 1 2 Nd-143 P2 0.000000 -371 1 1 2 Nd-143 P3 0.000000 -372 1 1 2 Nd-145 P0 0.000000 -373 1 1 2 Nd-145 P1 0.000000 -374 1 1 2 Nd-145 P2 0.000000 -375 1 1 2 Nd-145 P3 0.000000 -376 1 1 2 Sm-147 P0 0.000000 -377 1 1 2 Sm-147 P1 0.000000 -378 1 1 2 Sm-147 P2 0.000000 -379 1 1 2 Sm-147 P3 0.000000 -380 1 1 2 Sm-149 P0 0.000000 -381 1 1 2 Sm-149 P1 0.000000 -382 1 1 2 Sm-149 P2 0.000000 -383 1 1 2 Sm-149 P3 0.000000 -384 1 1 2 Sm-150 P0 0.000000 -385 1 1 2 Sm-150 P1 0.000000 -386 1 1 2 Sm-150 P2 0.000000 -387 1 1 2 Sm-150 P3 0.000000 -388 1 1 2 Sm-151 P0 0.000000 -389 1 1 2 Sm-151 P1 0.000000 -390 1 1 2 Sm-151 P2 0.000000 -391 1 1 2 Sm-151 P3 0.000000 -392 1 1 2 Sm-152 P0 0.000000 -393 1 1 2 Sm-152 P1 0.000000 -394 1 1 2 Sm-152 P2 0.000000 -395 1 1 2 Sm-152 P3 0.000000 -396 1 1 2 Eu-153 P0 0.000000 -397 1 1 2 Eu-153 P1 0.000000 -398 1 1 2 Eu-153 P2 0.000000 -399 1 1 2 Eu-153 P3 0.000000 -400 1 1 2 Gd-155 P0 0.000000 -401 1 1 2 Gd-155 P1 0.000000 -402 1 1 2 Gd-155 P2 0.000000 -403 1 1 2 Gd-155 P3 0.000000 -404 1 1 2 O-16 P0 0.001386 -405 1 1 2 O-16 P1 -0.000559 -406 1 1 2 O-16 P2 -0.000165 -407 1 1 2 O-16 P3 0.000123 -136 1 2 1 U-234 P0 0.000000 -137 1 2 1 U-234 P1 0.000000 -138 1 2 1 U-234 P2 0.000000 -139 1 2 1 U-234 P3 0.000000 -140 1 2 1 U-235 P0 0.000000 -141 1 2 1 U-235 P1 0.000000 -142 1 2 1 U-235 P2 0.000000 -143 1 2 1 U-235 P3 0.000000 -144 1 2 1 U-236 P0 0.000000 -145 1 2 1 U-236 P1 0.000000 -146 1 2 1 U-236 P2 0.000000 -147 1 2 1 U-236 P3 0.000000 -148 1 2 1 U-238 P0 0.000000 -149 1 2 1 U-238 P1 0.000000 -150 1 2 1 U-238 P2 0.000000 -151 1 2 1 U-238 P3 0.000000 -152 1 2 1 Np-237 P0 0.000000 -153 1 2 1 Np-237 P1 0.000000 -154 1 2 1 Np-237 P2 0.000000 -155 1 2 1 Np-237 P3 0.000000 -156 1 2 1 Pu-238 P0 0.000000 -157 1 2 1 Pu-238 P1 0.000000 -158 1 2 1 Pu-238 P2 0.000000 -159 1 2 1 Pu-238 P3 0.000000 -160 1 2 1 Pu-239 P0 0.000000 -161 1 2 1 Pu-239 P1 0.000000 -162 1 2 1 Pu-239 P2 0.000000 -163 1 2 1 Pu-239 P3 0.000000 -164 1 2 1 Pu-240 P0 0.000000 -165 1 2 1 Pu-240 P1 0.000000 -166 1 2 1 Pu-240 P2 0.000000 -167 1 2 1 Pu-240 P3 0.000000 -168 1 2 1 Pu-241 P0 0.000000 -169 1 2 1 Pu-241 P1 0.000000 -170 1 2 1 Pu-241 P2 0.000000 -171 1 2 1 Pu-241 P3 0.000000 -172 1 2 1 Pu-242 P0 0.000000 -173 1 2 1 Pu-242 P1 0.000000 -174 1 2 1 Pu-242 P2 0.000000 -175 1 2 1 Pu-242 P3 0.000000 -176 1 2 1 Am-241 P0 0.000000 -177 1 2 1 Am-241 P1 0.000000 -178 1 2 1 Am-241 P2 0.000000 -179 1 2 1 Am-241 P3 0.000000 -180 1 2 1 Am-242m P0 0.000000 -181 1 2 1 Am-242m P1 0.000000 -182 1 2 1 Am-242m P2 0.000000 -183 1 2 1 Am-242m P3 0.000000 -184 1 2 1 Am-243 P0 0.000000 -185 1 2 1 Am-243 P1 0.000000 -186 1 2 1 Am-243 P2 0.000000 -187 1 2 1 Am-243 P3 0.000000 -188 1 2 1 Cm-242 P0 0.000000 -189 1 2 1 Cm-242 P1 0.000000 -190 1 2 1 Cm-242 P2 0.000000 -191 1 2 1 Cm-242 P3 0.000000 -192 1 2 1 Cm-243 P0 0.000000 -193 1 2 1 Cm-243 P1 0.000000 -194 1 2 1 Cm-243 P2 0.000000 -195 1 2 1 Cm-243 P3 0.000000 -196 1 2 1 Cm-244 P0 0.000000 -197 1 2 1 Cm-244 P1 0.000000 -198 1 2 1 Cm-244 P2 0.000000 -199 1 2 1 Cm-244 P3 0.000000 -200 1 2 1 Cm-245 P0 0.000000 -201 1 2 1 Cm-245 P1 0.000000 -202 1 2 1 Cm-245 P2 0.000000 -203 1 2 1 Cm-245 P3 0.000000 -204 1 2 1 Mo-95 P0 0.000000 -205 1 2 1 Mo-95 P1 0.000000 -206 1 2 1 Mo-95 P2 0.000000 -207 1 2 1 Mo-95 P3 0.000000 -208 1 2 1 Tc-99 P0 0.000000 -209 1 2 1 Tc-99 P1 0.000000 -210 1 2 1 Tc-99 P2 0.000000 -211 1 2 1 Tc-99 P3 0.000000 -212 1 2 1 Ru-101 P0 0.000000 -213 1 2 1 Ru-101 P1 0.000000 -214 1 2 1 Ru-101 P2 0.000000 -215 1 2 1 Ru-101 P3 0.000000 -216 1 2 1 Ru-103 P0 0.000000 -217 1 2 1 Ru-103 P1 0.000000 -218 1 2 1 Ru-103 P2 0.000000 -219 1 2 1 Ru-103 P3 0.000000 -220 1 2 1 Ag-109 P0 0.000000 -221 1 2 1 Ag-109 P1 0.000000 -222 1 2 1 Ag-109 P2 0.000000 -223 1 2 1 Ag-109 P3 0.000000 -224 1 2 1 Xe-135 P0 0.000000 -225 1 2 1 Xe-135 P1 0.000000 -226 1 2 1 Xe-135 P2 0.000000 -227 1 2 1 Xe-135 P3 0.000000 -228 1 2 1 Cs-133 P0 0.000000 -229 1 2 1 Cs-133 P1 0.000000 -230 1 2 1 Cs-133 P2 0.000000 -231 1 2 1 Cs-133 P3 0.000000 -232 1 2 1 Nd-143 P0 0.000000 -233 1 2 1 Nd-143 P1 0.000000 -234 1 2 1 Nd-143 P2 0.000000 -235 1 2 1 Nd-143 P3 0.000000 -236 1 2 1 Nd-145 P0 0.000000 -237 1 2 1 Nd-145 P1 0.000000 -238 1 2 1 Nd-145 P2 0.000000 -239 1 2 1 Nd-145 P3 0.000000 -240 1 2 1 Sm-147 P0 0.000000 -241 1 2 1 Sm-147 P1 0.000000 -242 1 2 1 Sm-147 P2 0.000000 -243 1 2 1 Sm-147 P3 0.000000 -244 1 2 1 Sm-149 P0 0.000000 -245 1 2 1 Sm-149 P1 0.000000 -246 1 2 1 Sm-149 P2 0.000000 -247 1 2 1 Sm-149 P3 0.000000 -248 1 2 1 Sm-150 P0 0.000000 -249 1 2 1 Sm-150 P1 0.000000 -250 1 2 1 Sm-150 P2 0.000000 -251 1 2 1 Sm-150 P3 0.000000 -252 1 2 1 Sm-151 P0 0.000000 -253 1 2 1 Sm-151 P1 0.000000 -254 1 2 1 Sm-151 P2 0.000000 -255 1 2 1 Sm-151 P3 0.000000 -256 1 2 1 Sm-152 P0 0.000000 -257 1 2 1 Sm-152 P1 0.000000 -258 1 2 1 Sm-152 P2 0.000000 -259 1 2 1 Sm-152 P3 0.000000 -260 1 2 1 Eu-153 P0 0.000000 -261 1 2 1 Eu-153 P1 0.000000 -262 1 2 1 Eu-153 P2 0.000000 -263 1 2 1 Eu-153 P3 0.000000 -264 1 2 1 Gd-155 P0 0.000000 -265 1 2 1 Gd-155 P1 0.000000 -266 1 2 1 Gd-155 P2 0.000000 -267 1 2 1 Gd-155 P3 0.000000 -268 1 2 1 O-16 P0 0.000000 -269 1 2 1 O-16 P1 0.000000 -270 1 2 1 O-16 P2 0.000000 -271 1 2 1 O-16 P3 0.000000 -0 1 2 2 U-234 P0 0.000000 -1 1 2 2 U-234 P1 0.000000 -2 1 2 2 U-234 P2 0.000000 -3 1 2 2 U-234 P3 0.000000 -4 1 2 2 U-235 P0 0.003960 -5 1 2 2 U-235 P1 0.000071 -6 1 2 2 U-235 P2 0.001232 -7 1 2 2 U-235 P3 0.000182 -8 1 2 2 U-236 P0 0.001980 -9 1 2 2 U-236 P1 0.000479 -10 1 2 2 U-236 P2 -0.000816 -11 1 2 2 U-236 P3 -0.000648 -12 1 2 2 U-238 P0 0.205918 -13 1 2 2 U-238 P1 -0.013364 -14 1 2 2 U-238 P2 -0.010941 -15 1 2 2 U-238 P3 0.000772 -16 1 2 2 Np-237 P0 0.000000 -17 1 2 2 Np-237 P1 0.000000 -18 1 2 2 Np-237 P2 0.000000 -19 1 2 2 Np-237 P3 0.000000 -20 1 2 2 Pu-238 P0 0.000000 -21 1 2 2 Pu-238 P1 0.000000 -22 1 2 2 Pu-238 P2 0.000000 -23 1 2 2 Pu-238 P3 0.000000 -24 1 2 2 Pu-239 P0 0.000000 -25 1 2 2 Pu-239 P1 0.000000 -26 1 2 2 Pu-239 P2 0.000000 -27 1 2 2 Pu-239 P3 0.000000 -28 1 2 2 Pu-240 P0 0.000000 -29 1 2 2 Pu-240 P1 0.000000 -30 1 2 2 Pu-240 P2 0.000000 -31 1 2 2 Pu-240 P3 0.000000 -32 1 2 2 Pu-241 P0 0.000000 -33 1 2 2 Pu-241 P1 0.000000 -34 1 2 2 Pu-241 P2 0.000000 -35 1 2 2 Pu-241 P3 0.000000 -36 1 2 2 Pu-242 P0 0.000000 -37 1 2 2 Pu-242 P1 0.000000 -38 1 2 2 Pu-242 P2 0.000000 -39 1 2 2 Pu-242 P3 0.000000 -40 1 2 2 Am-241 P0 0.000000 -41 1 2 2 Am-241 P1 0.000000 -42 1 2 2 Am-241 P2 0.000000 -43 1 2 2 Am-241 P3 0.000000 -44 1 2 2 Am-242m P0 0.000000 -45 1 2 2 Am-242m P1 0.000000 -46 1 2 2 Am-242m P2 0.000000 -47 1 2 2 Am-242m P3 0.000000 -48 1 2 2 Am-243 P0 0.000000 -49 1 2 2 Am-243 P1 0.000000 -50 1 2 2 Am-243 P2 0.000000 -51 1 2 2 Am-243 P3 0.000000 -52 1 2 2 Cm-242 P0 0.000000 -53 1 2 2 Cm-242 P1 0.000000 -54 1 2 2 Cm-242 P2 0.000000 -55 1 2 2 Cm-242 P3 0.000000 -56 1 2 2 Cm-243 P0 0.000000 -57 1 2 2 Cm-243 P1 0.000000 -58 1 2 2 Cm-243 P2 0.000000 -59 1 2 2 Cm-243 P3 0.000000 -60 1 2 2 Cm-244 P0 0.000000 -61 1 2 2 Cm-244 P1 0.000000 -62 1 2 2 Cm-244 P2 0.000000 -63 1 2 2 Cm-244 P3 0.000000 -64 1 2 2 Cm-245 P0 0.000000 -65 1 2 2 Cm-245 P1 0.000000 -66 1 2 2 Cm-245 P2 0.000000 -67 1 2 2 Cm-245 P3 0.000000 -68 1 2 2 Mo-95 P0 0.000000 -69 1 2 2 Mo-95 P1 0.000000 -70 1 2 2 Mo-95 P2 0.000000 -71 1 2 2 Mo-95 P3 0.000000 -72 1 2 2 Tc-99 P0 0.000000 -73 1 2 2 Tc-99 P1 0.000000 -74 1 2 2 Tc-99 P2 0.000000 -75 1 2 2 Tc-99 P3 0.000000 -76 1 2 2 Ru-101 P0 0.000000 -77 1 2 2 Ru-101 P1 0.000000 -78 1 2 2 Ru-101 P2 0.000000 -79 1 2 2 Ru-101 P3 0.000000 -80 1 2 2 Ru-103 P0 0.000000 -81 1 2 2 Ru-103 P1 0.000000 -82 1 2 2 Ru-103 P2 0.000000 -83 1 2 2 Ru-103 P3 0.000000 -84 1 2 2 Ag-109 P0 0.000000 -85 1 2 2 Ag-109 P1 0.000000 -86 1 2 2 Ag-109 P2 0.000000 -87 1 2 2 Ag-109 P3 0.000000 -88 1 2 2 Xe-135 P0 0.000000 -89 1 2 2 Xe-135 P1 0.000000 -90 1 2 2 Xe-135 P2 0.000000 -91 1 2 2 Xe-135 P3 0.000000 -92 1 2 2 Cs-133 P0 0.000000 -93 1 2 2 Cs-133 P1 0.000000 -94 1 2 2 Cs-133 P2 0.000000 -95 1 2 2 Cs-133 P3 0.000000 -96 1 2 2 Nd-143 P0 0.000000 -97 1 2 2 Nd-143 P1 0.000000 -98 1 2 2 Nd-143 P2 0.000000 -99 1 2 2 Nd-143 P3 0.000000 -100 1 2 2 Nd-145 P0 0.000000 -101 1 2 2 Nd-145 P1 0.000000 -102 1 2 2 Nd-145 P2 0.000000 -103 1 2 2 Nd-145 P3 0.000000 -104 1 2 2 Sm-147 P0 0.000000 -105 1 2 2 Sm-147 P1 0.000000 -106 1 2 2 Sm-147 P2 0.000000 -107 1 2 2 Sm-147 P3 0.000000 -108 1 2 2 Sm-149 P0 0.000000 -109 1 2 2 Sm-149 P1 0.000000 -110 1 2 2 Sm-149 P2 0.000000 -111 1 2 2 Sm-149 P3 0.000000 -112 1 2 2 Sm-150 P0 0.000000 -113 1 2 2 Sm-150 P1 0.000000 -114 1 2 2 Sm-150 P2 0.000000 -115 1 2 2 Sm-150 P3 0.000000 -116 1 2 2 Sm-151 P0 0.000000 -117 1 2 2 Sm-151 P1 0.000000 -118 1 2 2 Sm-151 P2 0.000000 -119 1 2 2 Sm-151 P3 0.000000 -120 1 2 2 Sm-152 P0 0.000000 -121 1 2 2 Sm-152 P1 0.000000 -122 1 2 2 Sm-152 P2 0.000000 -123 1 2 2 Sm-152 P3 0.000000 -124 1 2 2 Eu-153 P0 0.000000 -125 1 2 2 Eu-153 P1 0.000000 -126 1 2 2 Eu-153 P2 0.000000 -127 1 2 2 Eu-153 P3 0.000000 -128 1 2 2 Gd-155 P0 0.000000 -129 1 2 2 Gd-155 P1 0.000000 -130 1 2 2 Gd-155 P2 0.000000 -131 1 2 2 Gd-155 P3 0.000000 -132 1 2 2 O-16 P0 0.192058 -133 1 2 2 O-16 P1 0.001504 -134 1 2 2 O-16 P2 -0.004281 -135 1 2 2 O-16 P3 -0.007160 material group out nuclide mean std. dev. -34 1 1 U-234 0 0.000000 -35 1 1 U-235 1 0.066362 -36 1 1 U-236 0 0.000000 -37 1 1 U-238 1 0.093082 -38 1 1 Np-237 0 0.000000 -39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.104567 -41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.263696 -43 1 1 Pu-242 0 0.000000 -44 1 1 Am-241 0 0.000000 -45 1 1 Am-242m 0 0.000000 -46 1 1 Am-243 0 0.000000 -47 1 1 Cm-242 0 0.000000 -48 1 1 Cm-243 0 0.000000 -49 1 1 Cm-244 0 0.000000 -50 1 1 Cm-245 0 0.000000 -51 1 1 Mo-95 0 0.000000 -52 1 1 Tc-99 0 0.000000 -53 1 1 Ru-101 0 0.000000 -54 1 1 Ru-103 0 0.000000 -55 1 1 Ag-109 0 0.000000 -56 1 1 Xe-135 0 0.000000 -57 1 1 Cs-133 0 0.000000 -58 1 1 Nd-143 0 0.000000 -59 1 1 Nd-145 0 0.000000 -60 1 1 Sm-147 0 0.000000 -61 1 1 Sm-149 0 0.000000 -62 1 1 Sm-150 0 0.000000 -63 1 1 Sm-151 0 0.000000 -64 1 1 Sm-152 0 0.000000 -65 1 1 Eu-153 0 0.000000 -66 1 1 Gd-155 0 0.000000 -67 1 1 O-16 0 0.000000 -0 1 2 U-234 0 0.000000 -1 1 2 U-235 0 0.000000 -2 1 2 U-236 0 0.000000 -3 1 2 U-238 0 0.000000 -4 1 2 Np-237 0 0.000000 -5 1 2 Pu-238 0 0.000000 -6 1 2 Pu-239 0 0.000000 -7 1 2 Pu-240 0 0.000000 -8 1 2 Pu-241 0 0.000000 -9 1 2 Pu-242 0 0.000000 -10 1 2 Am-241 0 0.000000 -11 1 2 Am-242m 0 0.000000 -12 1 2 Am-243 0 0.000000 -13 1 2 Cm-242 0 0.000000 -14 1 2 Cm-243 0 0.000000 -15 1 2 Cm-244 0 0.000000 -16 1 2 Cm-245 0 0.000000 -17 1 2 Mo-95 0 0.000000 -18 1 2 Tc-99 0 0.000000 -19 1 2 Ru-101 0 0.000000 -20 1 2 Ru-103 0 0.000000 -21 1 2 Ag-109 0 0.000000 -22 1 2 Xe-135 0 0.000000 -23 1 2 Cs-133 0 0.000000 -24 1 2 Nd-143 0 0.000000 -25 1 2 Nd-145 0 0.000000 -26 1 2 Sm-147 0 0.000000 -27 1 2 Sm-149 0 0.000000 -28 1 2 Sm-150 0 0.000000 -29 1 2 Sm-151 0 0.000000 -30 1 2 Sm-152 0 0.000000 -31 1 2 Eu-153 0 0.000000 -32 1 2 Gd-155 0 0.000000 -33 1 2 O-16 0 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0.104734 0.008915 -6 2 1 Zr-91 0.036155 0.003735 -7 2 1 Zr-92 0.042422 0.003029 -8 2 1 Zr-94 0.046148 0.006251 -9 2 1 Zr-96 0.007794 0.001536 -0 2 2 Zr-90 0.121688 0.034934 -1 2 2 Zr-91 0.061792 0.024317 -2 2 2 Zr-92 0.041633 0.016323 -3 2 2 Zr-94 0.060818 0.021483 -4 2 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0 0 -6 2 1 Zr-91 0 0 -7 2 1 Zr-92 0 0 -8 2 1 Zr-94 0 0 -9 2 1 Zr-96 0 0 -0 2 2 Zr-90 0 0 -1 2 2 Zr-91 0 0 -2 2 2 Zr-92 0 0 -3 2 2 Zr-94 0 0 -4 2 2 Zr-96 0 0 material group in group out nuclide moment mean -60 2 1 1 Zr-90 P0 0.122030 -61 2 1 1 Zr-90 P1 0.017296 -62 2 1 1 Zr-90 P2 0.020437 -63 2 1 1 Zr-90 P3 -0.000350 -64 2 1 1 Zr-91 P0 0.037548 -65 2 1 1 Zr-91 P1 0.001393 -66 2 1 1 Zr-91 P2 -0.000553 -67 2 1 1 Zr-91 P3 0.001719 -68 2 1 1 Zr-92 P0 0.047829 -69 2 1 1 Zr-92 P1 0.005406 -70 2 1 1 Zr-92 P2 0.004793 -71 2 1 1 Zr-92 P3 0.001907 -72 2 1 1 Zr-94 P0 0.058110 -73 2 1 1 Zr-94 P1 0.011962 -74 2 1 1 Zr-94 P2 0.006220 -75 2 1 1 Zr-94 P3 -0.000627 -76 2 1 1 Zr-96 P0 0.007599 -77 2 1 1 Zr-96 P1 -0.000196 -78 2 1 1 Zr-96 P2 -0.001193 -79 2 1 1 Zr-96 P3 -0.000401 -40 2 1 2 Zr-90 P0 0.000000 -41 2 1 2 Zr-90 P1 0.000000 -42 2 1 2 Zr-90 P2 0.000000 -43 2 1 2 Zr-90 P3 0.000000 -44 2 1 2 Zr-91 P0 0.000000 -45 2 1 2 Zr-91 P1 0.000000 -46 2 1 2 Zr-91 P2 0.000000 -47 2 1 2 Zr-91 P3 0.000000 -48 2 1 2 Zr-92 P0 0.000000 -49 2 1 2 Zr-92 P1 0.000000 -50 2 1 2 Zr-92 P2 0.000000 -51 2 1 2 Zr-92 P3 0.000000 -52 2 1 2 Zr-94 P0 0.000000 -53 2 1 2 Zr-94 P1 0.000000 -54 2 1 2 Zr-94 P2 0.000000 -55 2 1 2 Zr-94 P3 0.000000 -56 2 1 2 Zr-96 P0 0.000000 -57 2 1 2 Zr-96 P1 0.000000 -58 2 1 2 Zr-96 P2 0.000000 -59 2 1 2 Zr-96 P3 0.000000 -20 2 2 1 Zr-90 P0 0.000000 -21 2 2 1 Zr-90 P1 0.000000 -22 2 2 1 Zr-90 P2 0.000000 -23 2 2 1 Zr-90 P3 0.000000 -24 2 2 1 Zr-91 P0 0.000000 -25 2 2 1 Zr-91 P1 0.000000 -26 2 2 1 Zr-91 P2 0.000000 -27 2 2 1 Zr-91 P3 0.000000 -28 2 2 1 Zr-92 P0 0.000000 -29 2 2 1 Zr-92 P1 0.000000 -30 2 2 1 Zr-92 P2 0.000000 -31 2 2 1 Zr-92 P3 0.000000 -32 2 2 1 Zr-94 P0 0.000000 -33 2 2 1 Zr-94 P1 0.000000 -34 2 2 1 Zr-94 P2 0.000000 -35 2 2 1 Zr-94 P3 0.000000 -36 2 2 1 Zr-96 P0 0.000000 -37 2 2 1 Zr-96 P1 0.000000 -38 2 2 1 Zr-96 P2 0.000000 -39 2 2 1 Zr-96 P3 0.000000 -0 2 2 2 Zr-90 P0 0.119570 -1 2 2 2 Zr-90 P1 -0.002117 -2 2 2 2 Zr-90 P2 -0.015144 -3 2 2 2 Zr-90 P3 0.000965 -4 2 2 2 Zr-91 P0 0.054803 -5 2 2 2 Zr-91 P1 -0.006989 -6 2 2 2 Zr-91 P2 -0.010542 -7 2 2 2 Zr-91 P3 -0.001260 -8 2 2 2 Zr-92 P0 0.034875 -9 2 2 2 Zr-92 P1 -0.006759 -10 2 2 2 Zr-92 P2 0.008972 -11 2 2 2 Zr-92 P3 0.009834 -12 2 2 2 Zr-94 P0 0.054803 -13 2 2 2 Zr-94 P1 -0.006015 -14 2 2 2 Zr-94 P2 0.001420 -15 2 2 2 Zr-94 P3 0.004494 -16 2 2 2 Zr-96 P0 0.000000 -17 2 2 2 Zr-96 P1 0.000000 -18 2 2 2 Zr-96 P2 0.000000 -19 2 2 2 Zr-96 P3 0.000000 material group out nuclide mean std. dev. -5 2 1 Zr-90 0 0 -6 2 1 Zr-91 0 0 -7 2 1 Zr-92 0 0 -8 2 1 Zr-94 0 0 -9 2 1 Zr-96 0 0 -0 2 2 Zr-90 0 0 -1 2 2 Zr-91 0 0 -2 2 2 Zr-92 0 0 -3 2 2 Zr-94 0 0 -4 2 2 Zr-96 0 0 material group in nuclide mean std. dev. -4 3 1 H-1 0.207103 0.023028 -5 3 1 O-16 0.079282 0.005197 -6 3 1 B-10 0.000521 0.000244 -7 3 1 B-11 0.000000 0.000000 -0 3 2 H-1 1.283344 0.250946 -1 3 2 O-16 0.085363 0.014001 -2 3 2 B-10 0.049249 0.008232 -3 3 2 B-11 0.000195 0.001527 material group in nuclide mean std. dev. -4 3 1 H-1 0 0 -5 3 1 O-16 0 0 -6 3 1 B-10 0 0 -7 3 1 B-11 0 0 -0 3 2 H-1 0 0 -1 3 2 O-16 0 0 -2 3 2 B-10 0 0 -3 3 2 B-11 0 0 material group in group out nuclide moment mean -48 3 1 1 H-1 P0 0.560615 -49 3 1 1 H-1 P1 0.379309 -50 3 1 1 H-1 P2 0.149073 -51 3 1 1 H-1 P3 0.005293 -52 3 1 1 O-16 P0 0.082731 -53 3 1 1 O-16 P1 0.004100 -54 3 1 1 O-16 P2 0.003113 -55 3 1 1 O-16 P3 -0.002256 -56 3 1 1 B-10 P0 0.000000 -57 3 1 1 B-10 P1 0.000000 -58 3 1 1 B-10 P2 0.000000 -59 3 1 1 B-10 P3 0.000000 -60 3 1 1 B-11 P0 0.000000 -61 3 1 1 B-11 P1 0.000000 -62 3 1 1 B-11 P2 0.000000 -63 3 1 1 B-11 P3 0.000000 -32 3 1 2 H-1 P0 0.025666 -33 3 1 2 H-1 P1 0.007631 -34 3 1 2 H-1 P2 -0.002692 -35 3 1 2 H-1 P3 -0.002928 -36 3 1 2 O-16 P0 0.000521 -37 3 1 2 O-16 P1 -0.000268 -38 3 1 2 O-16 P2 -0.000046 -39 3 1 2 O-16 P3 0.000208 -40 3 1 2 B-10 P0 0.000000 -41 3 1 2 B-10 P1 0.000000 -42 3 1 2 B-10 P2 0.000000 -43 3 1 2 B-10 P3 0.000000 -44 3 1 2 B-11 P0 0.000000 -45 3 1 2 B-11 P1 0.000000 -46 3 1 2 B-11 P2 0.000000 -47 3 1 2 B-11 P3 0.000000 -16 3 2 1 H-1 P0 0.000000 -17 3 2 1 H-1 P1 0.000000 -18 3 2 1 H-1 P2 0.000000 -19 3 2 1 H-1 P3 0.000000 -20 3 2 1 O-16 P0 0.000000 -21 3 2 1 O-16 P1 0.000000 -22 3 2 1 O-16 P2 0.000000 -23 3 2 1 O-16 P3 0.000000 -24 3 2 1 B-10 P0 0.000000 -25 3 2 1 B-10 P1 0.000000 -26 3 2 1 B-10 P2 0.000000 -27 3 2 1 B-10 P3 0.000000 -28 3 2 1 B-11 P0 0.000000 -29 3 2 1 B-11 P1 0.000000 -30 3 2 1 B-11 P2 0.000000 -31 3 2 1 B-11 P3 0.000000 -0 3 2 2 H-1 P0 1.840960 -1 3 2 2 H-1 P1 0.498320 -2 3 2 2 H-1 P2 0.083870 -3 3 2 2 H-1 P3 0.013597 -4 3 2 2 O-16 P0 0.082081 -5 3 2 2 O-16 P1 -0.000867 -6 3 2 2 O-16 P2 0.006697 -7 3 2 2 O-16 P3 0.003223 -8 3 2 2 B-10 P0 0.000000 -9 3 2 2 B-10 P1 0.000000 -10 3 2 2 B-10 P2 0.000000 -11 3 2 2 B-10 P3 0.000000 -12 3 2 2 B-11 P0 0.001173 -13 3 2 2 B-11 P1 0.000978 -14 3 2 2 B-11 P2 0.000637 -15 3 2 2 B-11 P3 0.000234 material group out nuclide mean std. dev. -4 3 1 H-1 0 0 -5 3 1 O-16 0 0 -6 3 1 B-10 0 0 -7 3 1 B-11 0 0 -0 3 2 H-1 0 0 -1 3 2 O-16 0 0 -2 3 2 B-10 0 0 -3 3 2 B-11 0 0 material group in nuclide mean std. dev. -4 4 1 H-1 0.175242 0.053715 -5 4 1 O-16 0.066545 0.010083 -6 4 1 B-10 0.000570 0.000352 -7 4 1 B-11 0.000089 0.000346 -0 4 2 H-1 1.142895 0.365140 -1 4 2 O-16 0.085141 0.028073 -2 4 2 B-10 0.025923 0.007276 -3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. -4 4 1 H-1 0 0 -5 4 1 O-16 0 0 -6 4 1 B-10 0 0 -7 4 1 B-11 0 0 -0 4 2 H-1 0 0 -1 4 2 O-16 0 0 -2 4 2 B-10 0 0 -3 4 2 B-11 0 0 material group in group out nuclide moment mean -48 4 1 1 H-1 P0 0.468964 -49 4 1 1 H-1 P1 0.317668 -50 4 1 1 H-1 P2 0.127157 -51 4 1 1 H-1 P3 0.009844 -52 4 1 1 O-16 P0 0.074692 -53 4 1 1 O-16 P1 0.008147 -54 4 1 1 O-16 P2 0.003915 -55 4 1 1 O-16 P3 0.002322 -56 4 1 1 B-10 P0 0.000000 -57 4 1 1 B-10 P1 0.000000 -58 4 1 1 B-10 P2 0.000000 -59 4 1 1 B-10 P3 0.000000 -60 4 1 1 B-11 P0 0.000285 -61 4 1 1 B-11 P1 0.000196 -62 4 1 1 B-11 P2 0.000060 -63 4 1 1 B-11 P3 -0.000062 -32 4 1 2 H-1 P0 0.023662 -33 4 1 2 H-1 P1 0.007526 -34 4 1 2 H-1 P2 -0.002730 -35 4 1 2 H-1 P3 -0.003140 -36 4 1 2 O-16 P0 0.000000 -37 4 1 2 O-16 P1 0.000000 -38 4 1 2 O-16 P2 0.000000 -39 4 1 2 O-16 P3 0.000000 -40 4 1 2 B-10 P0 0.000000 -41 4 1 2 B-10 P1 0.000000 -42 4 1 2 B-10 P2 0.000000 -43 4 1 2 B-10 P3 0.000000 -44 4 1 2 B-11 P0 0.000000 -45 4 1 2 B-11 P1 0.000000 -46 4 1 2 B-11 P2 0.000000 -47 4 1 2 B-11 P3 0.000000 -16 4 2 1 H-1 P0 0.000000 -17 4 2 1 H-1 P1 0.000000 -18 4 2 1 H-1 P2 0.000000 -19 4 2 1 H-1 P3 0.000000 -20 4 2 1 O-16 P0 0.000000 -21 4 2 1 O-16 P1 0.000000 -22 4 2 1 O-16 P2 0.000000 -23 4 2 1 O-16 P3 0.000000 -24 4 2 1 B-10 P0 0.000000 -25 4 2 1 B-10 P1 0.000000 -26 4 2 1 B-10 P2 0.000000 -27 4 2 1 B-10 P3 0.000000 -28 4 2 1 B-11 P0 0.000000 -29 4 2 1 B-11 P1 0.000000 -30 4 2 1 B-11 P2 0.000000 -31 4 2 1 B-11 P3 0.000000 -0 4 2 2 H-1 P0 1.672065 -1 4 2 2 H-1 P1 0.493252 -2 4 2 2 H-1 P2 0.104511 -3 4 2 2 H-1 P3 0.039078 -4 4 2 2 O-16 P0 0.092584 -5 4 2 2 O-16 P1 0.007443 -6 4 2 2 O-16 P2 -0.005485 -7 4 2 2 O-16 P3 -0.006103 -8 4 2 2 B-10 P0 0.000000 -9 4 2 2 B-10 P1 0.000000 -10 4 2 2 B-10 P2 0.000000 -11 4 2 2 B-10 P3 0.000000 -12 4 2 2 B-11 P0 0.000000 -13 4 2 2 B-11 P1 0.000000 -14 4 2 2 B-11 P2 0.000000 -15 4 2 2 B-11 P3 0.000000 material group out nuclide mean std. dev. -4 4 1 H-1 0 0 -5 4 1 O-16 0 0 -6 4 1 B-10 0 0 -7 4 1 B-11 0 0 -0 4 2 H-1 0 0 -1 4 2 O-16 0 0 -2 4 2 B-10 0 0 -3 4 2 B-11 0 0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in group out nuclide moment mean -324 5 1 1 Fe-54 P0 0 -325 5 1 1 Fe-54 P1 0 -326 5 1 1 Fe-54 P2 0 -327 5 1 1 Fe-54 P3 0 -328 5 1 1 Fe-56 P0 0 -329 5 1 1 Fe-56 P1 0 -330 5 1 1 Fe-56 P2 0 -331 5 1 1 Fe-56 P3 0 -332 5 1 1 Fe-57 P0 0 -333 5 1 1 Fe-57 P1 0 -334 5 1 1 Fe-57 P2 0 -335 5 1 1 Fe-57 P3 0 -336 5 1 1 Fe-58 P0 0 -337 5 1 1 Fe-58 P1 0 -338 5 1 1 Fe-58 P2 0 -339 5 1 1 Fe-58 P3 0 -340 5 1 1 Ni-58 P0 0 -341 5 1 1 Ni-58 P1 0 -342 5 1 1 Ni-58 P2 0 -343 5 1 1 Ni-58 P3 0 -344 5 1 1 Ni-60 P0 0 -345 5 1 1 Ni-60 P1 0 -346 5 1 1 Ni-60 P2 0 -347 5 1 1 Ni-60 P3 0 -348 5 1 1 Ni-61 P0 0 -349 5 1 1 Ni-61 P1 0 -350 5 1 1 Ni-61 P2 0 -351 5 1 1 Ni-61 P3 0 -352 5 1 1 Ni-62 P0 0 -353 5 1 1 Ni-62 P1 0 -354 5 1 1 Ni-62 P2 0 -355 5 1 1 Ni-62 P3 0 -356 5 1 1 Ni-64 P0 0 -357 5 1 1 Ni-64 P1 0 -358 5 1 1 Ni-64 P2 0 -359 5 1 1 Ni-64 P3 0 -360 5 1 1 Mn-55 P0 0 -361 5 1 1 Mn-55 P1 0 -362 5 1 1 Mn-55 P2 0 -363 5 1 1 Mn-55 P3 0 -364 5 1 1 Mo-92 P0 0 -365 5 1 1 Mo-92 P1 0 -366 5 1 1 Mo-92 P2 0 -367 5 1 1 Mo-92 P3 0 -368 5 1 1 Mo-94 P0 0 -369 5 1 1 Mo-94 P1 0 -370 5 1 1 Mo-94 P2 0 -371 5 1 1 Mo-94 P3 0 -372 5 1 1 Mo-95 P0 0 -373 5 1 1 Mo-95 P1 0 -374 5 1 1 Mo-95 P2 0 -375 5 1 1 Mo-95 P3 0 -376 5 1 1 Mo-96 P0 0 -377 5 1 1 Mo-96 P1 0 -378 5 1 1 Mo-96 P2 0 -379 5 1 1 Mo-96 P3 0 -380 5 1 1 Mo-97 P0 0 -381 5 1 1 Mo-97 P1 0 -382 5 1 1 Mo-97 P2 0 -383 5 1 1 Mo-97 P3 0 -384 5 1 1 Mo-98 P0 0 -385 5 1 1 Mo-98 P1 0 -386 5 1 1 Mo-98 P2 0 -387 5 1 1 Mo-98 P3 0 -388 5 1 1 Mo-100 P0 0 -389 5 1 1 Mo-100 P1 0 -390 5 1 1 Mo-100 P2 0 -391 5 1 1 Mo-100 P3 0 -392 5 1 1 Si-28 P0 0 -393 5 1 1 Si-28 P1 0 -394 5 1 1 Si-28 P2 0 -395 5 1 1 Si-28 P3 0 -396 5 1 1 Si-29 P0 0 -397 5 1 1 Si-29 P1 0 -398 5 1 1 Si-29 P2 0 -399 5 1 1 Si-29 P3 0 -400 5 1 1 Si-30 P0 0 -401 5 1 1 Si-30 P1 0 -402 5 1 1 Si-30 P2 0 -403 5 1 1 Si-30 P3 0 -404 5 1 1 Cr-50 P0 0 -405 5 1 1 Cr-50 P1 0 -406 5 1 1 Cr-50 P2 0 -407 5 1 1 Cr-50 P3 0 -408 5 1 1 Cr-52 P0 0 -409 5 1 1 Cr-52 P1 0 -410 5 1 1 Cr-52 P2 0 -411 5 1 1 Cr-52 P3 0 -412 5 1 1 Cr-53 P0 0 -413 5 1 1 Cr-53 P1 0 -414 5 1 1 Cr-53 P2 0 -415 5 1 1 Cr-53 P3 0 -416 5 1 1 Cr-54 P0 0 -417 5 1 1 Cr-54 P1 0 -418 5 1 1 Cr-54 P2 0 -419 5 1 1 Cr-54 P3 0 -420 5 1 1 C-Nat P0 0 -421 5 1 1 C-Nat P1 0 -422 5 1 1 C-Nat P2 0 -423 5 1 1 C-Nat P3 0 -424 5 1 1 Cu-63 P0 0 -425 5 1 1 Cu-63 P1 0 -426 5 1 1 Cu-63 P2 0 -427 5 1 1 Cu-63 P3 0 -428 5 1 1 Cu-65 P0 0 -429 5 1 1 Cu-65 P1 0 -430 5 1 1 Cu-65 P2 0 -431 5 1 1 Cu-65 P3 0 -216 5 1 2 Fe-54 P0 0 -217 5 1 2 Fe-54 P1 0 -218 5 1 2 Fe-54 P2 0 -219 5 1 2 Fe-54 P3 0 -220 5 1 2 Fe-56 P0 0 -221 5 1 2 Fe-56 P1 0 -222 5 1 2 Fe-56 P2 0 -223 5 1 2 Fe-56 P3 0 -224 5 1 2 Fe-57 P0 0 -225 5 1 2 Fe-57 P1 0 -226 5 1 2 Fe-57 P2 0 -227 5 1 2 Fe-57 P3 0 -228 5 1 2 Fe-58 P0 0 -229 5 1 2 Fe-58 P1 0 -230 5 1 2 Fe-58 P2 0 -231 5 1 2 Fe-58 P3 0 -232 5 1 2 Ni-58 P0 0 -233 5 1 2 Ni-58 P1 0 -234 5 1 2 Ni-58 P2 0 -235 5 1 2 Ni-58 P3 0 -236 5 1 2 Ni-60 P0 0 -237 5 1 2 Ni-60 P1 0 -238 5 1 2 Ni-60 P2 0 -239 5 1 2 Ni-60 P3 0 -240 5 1 2 Ni-61 P0 0 -241 5 1 2 Ni-61 P1 0 -242 5 1 2 Ni-61 P2 0 -243 5 1 2 Ni-61 P3 0 -244 5 1 2 Ni-62 P0 0 -245 5 1 2 Ni-62 P1 0 -246 5 1 2 Ni-62 P2 0 -247 5 1 2 Ni-62 P3 0 -248 5 1 2 Ni-64 P0 0 -249 5 1 2 Ni-64 P1 0 -250 5 1 2 Ni-64 P2 0 -251 5 1 2 Ni-64 P3 0 -252 5 1 2 Mn-55 P0 0 -253 5 1 2 Mn-55 P1 0 -254 5 1 2 Mn-55 P2 0 -255 5 1 2 Mn-55 P3 0 -256 5 1 2 Mo-92 P0 0 -257 5 1 2 Mo-92 P1 0 -258 5 1 2 Mo-92 P2 0 -259 5 1 2 Mo-92 P3 0 -260 5 1 2 Mo-94 P0 0 -261 5 1 2 Mo-94 P1 0 -262 5 1 2 Mo-94 P2 0 -263 5 1 2 Mo-94 P3 0 -264 5 1 2 Mo-95 P0 0 -265 5 1 2 Mo-95 P1 0 -266 5 1 2 Mo-95 P2 0 -267 5 1 2 Mo-95 P3 0 -268 5 1 2 Mo-96 P0 0 -269 5 1 2 Mo-96 P1 0 -270 5 1 2 Mo-96 P2 0 -271 5 1 2 Mo-96 P3 0 -272 5 1 2 Mo-97 P0 0 -273 5 1 2 Mo-97 P1 0 -274 5 1 2 Mo-97 P2 0 -275 5 1 2 Mo-97 P3 0 -276 5 1 2 Mo-98 P0 0 -277 5 1 2 Mo-98 P1 0 -278 5 1 2 Mo-98 P2 0 -279 5 1 2 Mo-98 P3 0 -280 5 1 2 Mo-100 P0 0 -281 5 1 2 Mo-100 P1 0 -282 5 1 2 Mo-100 P2 0 -283 5 1 2 Mo-100 P3 0 -284 5 1 2 Si-28 P0 0 -285 5 1 2 Si-28 P1 0 -286 5 1 2 Si-28 P2 0 -287 5 1 2 Si-28 P3 0 -288 5 1 2 Si-29 P0 0 -289 5 1 2 Si-29 P1 0 -290 5 1 2 Si-29 P2 0 -291 5 1 2 Si-29 P3 0 -292 5 1 2 Si-30 P0 0 -293 5 1 2 Si-30 P1 0 -294 5 1 2 Si-30 P2 0 -295 5 1 2 Si-30 P3 0 -296 5 1 2 Cr-50 P0 0 -297 5 1 2 Cr-50 P1 0 -298 5 1 2 Cr-50 P2 0 -299 5 1 2 Cr-50 P3 0 -300 5 1 2 Cr-52 P0 0 -301 5 1 2 Cr-52 P1 0 -302 5 1 2 Cr-52 P2 0 -303 5 1 2 Cr-52 P3 0 -304 5 1 2 Cr-53 P0 0 -305 5 1 2 Cr-53 P1 0 -306 5 1 2 Cr-53 P2 0 -307 5 1 2 Cr-53 P3 0 -308 5 1 2 Cr-54 P0 0 -309 5 1 2 Cr-54 P1 0 -310 5 1 2 Cr-54 P2 0 -311 5 1 2 Cr-54 P3 0 -312 5 1 2 C-Nat P0 0 -313 5 1 2 C-Nat P1 0 -314 5 1 2 C-Nat P2 0 -315 5 1 2 C-Nat P3 0 -316 5 1 2 Cu-63 P0 0 -317 5 1 2 Cu-63 P1 0 -318 5 1 2 Cu-63 P2 0 -319 5 1 2 Cu-63 P3 0 -320 5 1 2 Cu-65 P0 0 -321 5 1 2 Cu-65 P1 0 -322 5 1 2 Cu-65 P2 0 -323 5 1 2 Cu-65 P3 0 -108 5 2 1 Fe-54 P0 0 -109 5 2 1 Fe-54 P1 0 -110 5 2 1 Fe-54 P2 0 -111 5 2 1 Fe-54 P3 0 -112 5 2 1 Fe-56 P0 0 -113 5 2 1 Fe-56 P1 0 -114 5 2 1 Fe-56 P2 0 -115 5 2 1 Fe-56 P3 0 -116 5 2 1 Fe-57 P0 0 -117 5 2 1 Fe-57 P1 0 -118 5 2 1 Fe-57 P2 0 -119 5 2 1 Fe-57 P3 0 -120 5 2 1 Fe-58 P0 0 -121 5 2 1 Fe-58 P1 0 -122 5 2 1 Fe-58 P2 0 -123 5 2 1 Fe-58 P3 0 -124 5 2 1 Ni-58 P0 0 -125 5 2 1 Ni-58 P1 0 -126 5 2 1 Ni-58 P2 0 -127 5 2 1 Ni-58 P3 0 -128 5 2 1 Ni-60 P0 0 -129 5 2 1 Ni-60 P1 0 -130 5 2 1 Ni-60 P2 0 -131 5 2 1 Ni-60 P3 0 -132 5 2 1 Ni-61 P0 0 -133 5 2 1 Ni-61 P1 0 -134 5 2 1 Ni-61 P2 0 -135 5 2 1 Ni-61 P3 0 -136 5 2 1 Ni-62 P0 0 -137 5 2 1 Ni-62 P1 0 -138 5 2 1 Ni-62 P2 0 -139 5 2 1 Ni-62 P3 0 -140 5 2 1 Ni-64 P0 0 -141 5 2 1 Ni-64 P1 0 -142 5 2 1 Ni-64 P2 0 -143 5 2 1 Ni-64 P3 0 -144 5 2 1 Mn-55 P0 0 -145 5 2 1 Mn-55 P1 0 -146 5 2 1 Mn-55 P2 0 -147 5 2 1 Mn-55 P3 0 -148 5 2 1 Mo-92 P0 0 -149 5 2 1 Mo-92 P1 0 -150 5 2 1 Mo-92 P2 0 -151 5 2 1 Mo-92 P3 0 -152 5 2 1 Mo-94 P0 0 -153 5 2 1 Mo-94 P1 0 -154 5 2 1 Mo-94 P2 0 -155 5 2 1 Mo-94 P3 0 -156 5 2 1 Mo-95 P0 0 -157 5 2 1 Mo-95 P1 0 -158 5 2 1 Mo-95 P2 0 -159 5 2 1 Mo-95 P3 0 -160 5 2 1 Mo-96 P0 0 -161 5 2 1 Mo-96 P1 0 -162 5 2 1 Mo-96 P2 0 -163 5 2 1 Mo-96 P3 0 -164 5 2 1 Mo-97 P0 0 -165 5 2 1 Mo-97 P1 0 -166 5 2 1 Mo-97 P2 0 -167 5 2 1 Mo-97 P3 0 -168 5 2 1 Mo-98 P0 0 -169 5 2 1 Mo-98 P1 0 -170 5 2 1 Mo-98 P2 0 -171 5 2 1 Mo-98 P3 0 -172 5 2 1 Mo-100 P0 0 -173 5 2 1 Mo-100 P1 0 -174 5 2 1 Mo-100 P2 0 -175 5 2 1 Mo-100 P3 0 -176 5 2 1 Si-28 P0 0 -177 5 2 1 Si-28 P1 0 -178 5 2 1 Si-28 P2 0 -179 5 2 1 Si-28 P3 0 -180 5 2 1 Si-29 P0 0 -181 5 2 1 Si-29 P1 0 -182 5 2 1 Si-29 P2 0 -183 5 2 1 Si-29 P3 0 -184 5 2 1 Si-30 P0 0 -185 5 2 1 Si-30 P1 0 -186 5 2 1 Si-30 P2 0 -187 5 2 1 Si-30 P3 0 -188 5 2 1 Cr-50 P0 0 -189 5 2 1 Cr-50 P1 0 -190 5 2 1 Cr-50 P2 0 -191 5 2 1 Cr-50 P3 0 -192 5 2 1 Cr-52 P0 0 -193 5 2 1 Cr-52 P1 0 -194 5 2 1 Cr-52 P2 0 -195 5 2 1 Cr-52 P3 0 -196 5 2 1 Cr-53 P0 0 -197 5 2 1 Cr-53 P1 0 -198 5 2 1 Cr-53 P2 0 -199 5 2 1 Cr-53 P3 0 -200 5 2 1 Cr-54 P0 0 -201 5 2 1 Cr-54 P1 0 -202 5 2 1 Cr-54 P2 0 -203 5 2 1 Cr-54 P3 0 -204 5 2 1 C-Nat P0 0 -205 5 2 1 C-Nat P1 0 -206 5 2 1 C-Nat P2 0 -207 5 2 1 C-Nat P3 0 -208 5 2 1 Cu-63 P0 0 -209 5 2 1 Cu-63 P1 0 -210 5 2 1 Cu-63 P2 0 -211 5 2 1 Cu-63 P3 0 -212 5 2 1 Cu-65 P0 0 -213 5 2 1 Cu-65 P1 0 -214 5 2 1 Cu-65 P2 0 -215 5 2 1 Cu-65 P3 0 -0 5 2 2 Fe-54 P0 0 -1 5 2 2 Fe-54 P1 0 -2 5 2 2 Fe-54 P2 0 -3 5 2 2 Fe-54 P3 0 -4 5 2 2 Fe-56 P0 0 -5 5 2 2 Fe-56 P1 0 -6 5 2 2 Fe-56 P2 0 -7 5 2 2 Fe-56 P3 0 -8 5 2 2 Fe-57 P0 0 -9 5 2 2 Fe-57 P1 0 -10 5 2 2 Fe-57 P2 0 -11 5 2 2 Fe-57 P3 0 -12 5 2 2 Fe-58 P0 0 -13 5 2 2 Fe-58 P1 0 -14 5 2 2 Fe-58 P2 0 -15 5 2 2 Fe-58 P3 0 -16 5 2 2 Ni-58 P0 0 -17 5 2 2 Ni-58 P1 0 -18 5 2 2 Ni-58 P2 0 -19 5 2 2 Ni-58 P3 0 -20 5 2 2 Ni-60 P0 0 -21 5 2 2 Ni-60 P1 0 -22 5 2 2 Ni-60 P2 0 -23 5 2 2 Ni-60 P3 0 -24 5 2 2 Ni-61 P0 0 -25 5 2 2 Ni-61 P1 0 -26 5 2 2 Ni-61 P2 0 -27 5 2 2 Ni-61 P3 0 -28 5 2 2 Ni-62 P0 0 -29 5 2 2 Ni-62 P1 0 -30 5 2 2 Ni-62 P2 0 -31 5 2 2 Ni-62 P3 0 -32 5 2 2 Ni-64 P0 0 -33 5 2 2 Ni-64 P1 0 -34 5 2 2 Ni-64 P2 0 -35 5 2 2 Ni-64 P3 0 -36 5 2 2 Mn-55 P0 0 -37 5 2 2 Mn-55 P1 0 -38 5 2 2 Mn-55 P2 0 -39 5 2 2 Mn-55 P3 0 -40 5 2 2 Mo-92 P0 0 -41 5 2 2 Mo-92 P1 0 -42 5 2 2 Mo-92 P2 0 -43 5 2 2 Mo-92 P3 0 -44 5 2 2 Mo-94 P0 0 -45 5 2 2 Mo-94 P1 0 -46 5 2 2 Mo-94 P2 0 -47 5 2 2 Mo-94 P3 0 -48 5 2 2 Mo-95 P0 0 -49 5 2 2 Mo-95 P1 0 -50 5 2 2 Mo-95 P2 0 -51 5 2 2 Mo-95 P3 0 -52 5 2 2 Mo-96 P0 0 -53 5 2 2 Mo-96 P1 0 -54 5 2 2 Mo-96 P2 0 -55 5 2 2 Mo-96 P3 0 -56 5 2 2 Mo-97 P0 0 -57 5 2 2 Mo-97 P1 0 -58 5 2 2 Mo-97 P2 0 -59 5 2 2 Mo-97 P3 0 -60 5 2 2 Mo-98 P0 0 -61 5 2 2 Mo-98 P1 0 -62 5 2 2 Mo-98 P2 0 -63 5 2 2 Mo-98 P3 0 -64 5 2 2 Mo-100 P0 0 -65 5 2 2 Mo-100 P1 0 -66 5 2 2 Mo-100 P2 0 -67 5 2 2 Mo-100 P3 0 -68 5 2 2 Si-28 P0 0 -69 5 2 2 Si-28 P1 0 -70 5 2 2 Si-28 P2 0 -71 5 2 2 Si-28 P3 0 -72 5 2 2 Si-29 P0 0 -73 5 2 2 Si-29 P1 0 -74 5 2 2 Si-29 P2 0 -75 5 2 2 Si-29 P3 0 -76 5 2 2 Si-30 P0 0 -77 5 2 2 Si-30 P1 0 -78 5 2 2 Si-30 P2 0 -79 5 2 2 Si-30 P3 0 -80 5 2 2 Cr-50 P0 0 -81 5 2 2 Cr-50 P1 0 -82 5 2 2 Cr-50 P2 0 -83 5 2 2 Cr-50 P3 0 -84 5 2 2 Cr-52 P0 0 -85 5 2 2 Cr-52 P1 0 -86 5 2 2 Cr-52 P2 0 -87 5 2 2 Cr-52 P3 0 -88 5 2 2 Cr-53 P0 0 -89 5 2 2 Cr-53 P1 0 -90 5 2 2 Cr-53 P2 0 -91 5 2 2 Cr-53 P3 0 -92 5 2 2 Cr-54 P0 0 -93 5 2 2 Cr-54 P1 0 -94 5 2 2 Cr-54 P2 0 -95 5 2 2 Cr-54 P3 0 -96 5 2 2 C-Nat P0 0 -97 5 2 2 C-Nat P1 0 -98 5 2 2 C-Nat P2 0 -99 5 2 2 C-Nat P3 0 -100 5 2 2 Cu-63 P0 0 -101 5 2 2 Cu-63 P1 0 -102 5 2 2 Cu-63 P2 0 -103 5 2 2 Cu-63 P3 0 -104 5 2 2 Cu-65 P0 0 -105 5 2 2 Cu-65 P1 0 -106 5 2 2 Cu-65 P2 0 -107 5 2 2 Cu-65 P3 0 material group out nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in group out nuclide moment mean -252 6 1 1 H-1 P0 0 -253 6 1 1 H-1 P1 0 -254 6 1 1 H-1 P2 0 -255 6 1 1 H-1 P3 0 -256 6 1 1 O-16 P0 0 -257 6 1 1 O-16 P1 0 -258 6 1 1 O-16 P2 0 -259 6 1 1 O-16 P3 0 -260 6 1 1 B-10 P0 0 -261 6 1 1 B-10 P1 0 -262 6 1 1 B-10 P2 0 -263 6 1 1 B-10 P3 0 -264 6 1 1 B-11 P0 0 -265 6 1 1 B-11 P1 0 -266 6 1 1 B-11 P2 0 -267 6 1 1 B-11 P3 0 -268 6 1 1 Fe-54 P0 0 -269 6 1 1 Fe-54 P1 0 -270 6 1 1 Fe-54 P2 0 -271 6 1 1 Fe-54 P3 0 -272 6 1 1 Fe-56 P0 0 -273 6 1 1 Fe-56 P1 0 -274 6 1 1 Fe-56 P2 0 -275 6 1 1 Fe-56 P3 0 -276 6 1 1 Fe-57 P0 0 -277 6 1 1 Fe-57 P1 0 -278 6 1 1 Fe-57 P2 0 -279 6 1 1 Fe-57 P3 0 -280 6 1 1 Fe-58 P0 0 -281 6 1 1 Fe-58 P1 0 -282 6 1 1 Fe-58 P2 0 -283 6 1 1 Fe-58 P3 0 -284 6 1 1 Ni-58 P0 0 -285 6 1 1 Ni-58 P1 0 -286 6 1 1 Ni-58 P2 0 -287 6 1 1 Ni-58 P3 0 -288 6 1 1 Ni-60 P0 0 -289 6 1 1 Ni-60 P1 0 -290 6 1 1 Ni-60 P2 0 -291 6 1 1 Ni-60 P3 0 -292 6 1 1 Ni-61 P0 0 -293 6 1 1 Ni-61 P1 0 -294 6 1 1 Ni-61 P2 0 -295 6 1 1 Ni-61 P3 0 -296 6 1 1 Ni-62 P0 0 -297 6 1 1 Ni-62 P1 0 -298 6 1 1 Ni-62 P2 0 -299 6 1 1 Ni-62 P3 0 -300 6 1 1 Ni-64 P0 0 -301 6 1 1 Ni-64 P1 0 -302 6 1 1 Ni-64 P2 0 -303 6 1 1 Ni-64 P3 0 -304 6 1 1 Mn-55 P0 0 -305 6 1 1 Mn-55 P1 0 -306 6 1 1 Mn-55 P2 0 -307 6 1 1 Mn-55 P3 0 -308 6 1 1 Si-28 P0 0 -309 6 1 1 Si-28 P1 0 -310 6 1 1 Si-28 P2 0 -311 6 1 1 Si-28 P3 0 -312 6 1 1 Si-29 P0 0 -313 6 1 1 Si-29 P1 0 -314 6 1 1 Si-29 P2 0 -315 6 1 1 Si-29 P3 0 -316 6 1 1 Si-30 P0 0 -317 6 1 1 Si-30 P1 0 -318 6 1 1 Si-30 P2 0 -319 6 1 1 Si-30 P3 0 -320 6 1 1 Cr-50 P0 0 -321 6 1 1 Cr-50 P1 0 -322 6 1 1 Cr-50 P2 0 -323 6 1 1 Cr-50 P3 0 -324 6 1 1 Cr-52 P0 0 -325 6 1 1 Cr-52 P1 0 -326 6 1 1 Cr-52 P2 0 -327 6 1 1 Cr-52 P3 0 -328 6 1 1 Cr-53 P0 0 -329 6 1 1 Cr-53 P1 0 -330 6 1 1 Cr-53 P2 0 -331 6 1 1 Cr-53 P3 0 -332 6 1 1 Cr-54 P0 0 -333 6 1 1 Cr-54 P1 0 -334 6 1 1 Cr-54 P2 0 -335 6 1 1 Cr-54 P3 0 -168 6 1 2 H-1 P0 0 -169 6 1 2 H-1 P1 0 -170 6 1 2 H-1 P2 0 -171 6 1 2 H-1 P3 0 -172 6 1 2 O-16 P0 0 -173 6 1 2 O-16 P1 0 -174 6 1 2 O-16 P2 0 -175 6 1 2 O-16 P3 0 -176 6 1 2 B-10 P0 0 -177 6 1 2 B-10 P1 0 -178 6 1 2 B-10 P2 0 -179 6 1 2 B-10 P3 0 -180 6 1 2 B-11 P0 0 -181 6 1 2 B-11 P1 0 -182 6 1 2 B-11 P2 0 -183 6 1 2 B-11 P3 0 -184 6 1 2 Fe-54 P0 0 -185 6 1 2 Fe-54 P1 0 -186 6 1 2 Fe-54 P2 0 -187 6 1 2 Fe-54 P3 0 -188 6 1 2 Fe-56 P0 0 -189 6 1 2 Fe-56 P1 0 -190 6 1 2 Fe-56 P2 0 -191 6 1 2 Fe-56 P3 0 -192 6 1 2 Fe-57 P0 0 -193 6 1 2 Fe-57 P1 0 -194 6 1 2 Fe-57 P2 0 -195 6 1 2 Fe-57 P3 0 -196 6 1 2 Fe-58 P0 0 -197 6 1 2 Fe-58 P1 0 -198 6 1 2 Fe-58 P2 0 -199 6 1 2 Fe-58 P3 0 -200 6 1 2 Ni-58 P0 0 -201 6 1 2 Ni-58 P1 0 -202 6 1 2 Ni-58 P2 0 -203 6 1 2 Ni-58 P3 0 -204 6 1 2 Ni-60 P0 0 -205 6 1 2 Ni-60 P1 0 -206 6 1 2 Ni-60 P2 0 -207 6 1 2 Ni-60 P3 0 -208 6 1 2 Ni-61 P0 0 -209 6 1 2 Ni-61 P1 0 -210 6 1 2 Ni-61 P2 0 -211 6 1 2 Ni-61 P3 0 -212 6 1 2 Ni-62 P0 0 -213 6 1 2 Ni-62 P1 0 -214 6 1 2 Ni-62 P2 0 -215 6 1 2 Ni-62 P3 0 -216 6 1 2 Ni-64 P0 0 -217 6 1 2 Ni-64 P1 0 -218 6 1 2 Ni-64 P2 0 -219 6 1 2 Ni-64 P3 0 -220 6 1 2 Mn-55 P0 0 -221 6 1 2 Mn-55 P1 0 -222 6 1 2 Mn-55 P2 0 -223 6 1 2 Mn-55 P3 0 -224 6 1 2 Si-28 P0 0 -225 6 1 2 Si-28 P1 0 -226 6 1 2 Si-28 P2 0 -227 6 1 2 Si-28 P3 0 -228 6 1 2 Si-29 P0 0 -229 6 1 2 Si-29 P1 0 -230 6 1 2 Si-29 P2 0 -231 6 1 2 Si-29 P3 0 -232 6 1 2 Si-30 P0 0 -233 6 1 2 Si-30 P1 0 -234 6 1 2 Si-30 P2 0 -235 6 1 2 Si-30 P3 0 -236 6 1 2 Cr-50 P0 0 -237 6 1 2 Cr-50 P1 0 -238 6 1 2 Cr-50 P2 0 -239 6 1 2 Cr-50 P3 0 -240 6 1 2 Cr-52 P0 0 -241 6 1 2 Cr-52 P1 0 -242 6 1 2 Cr-52 P2 0 -243 6 1 2 Cr-52 P3 0 -244 6 1 2 Cr-53 P0 0 -245 6 1 2 Cr-53 P1 0 -246 6 1 2 Cr-53 P2 0 -247 6 1 2 Cr-53 P3 0 -248 6 1 2 Cr-54 P0 0 -249 6 1 2 Cr-54 P1 0 -250 6 1 2 Cr-54 P2 0 -251 6 1 2 Cr-54 P3 0 -84 6 2 1 H-1 P0 0 -85 6 2 1 H-1 P1 0 -86 6 2 1 H-1 P2 0 -87 6 2 1 H-1 P3 0 -88 6 2 1 O-16 P0 0 -89 6 2 1 O-16 P1 0 -90 6 2 1 O-16 P2 0 -91 6 2 1 O-16 P3 0 -92 6 2 1 B-10 P0 0 -93 6 2 1 B-10 P1 0 -94 6 2 1 B-10 P2 0 -95 6 2 1 B-10 P3 0 -96 6 2 1 B-11 P0 0 -97 6 2 1 B-11 P1 0 -98 6 2 1 B-11 P2 0 -99 6 2 1 B-11 P3 0 -100 6 2 1 Fe-54 P0 0 -101 6 2 1 Fe-54 P1 0 -102 6 2 1 Fe-54 P2 0 -103 6 2 1 Fe-54 P3 0 -104 6 2 1 Fe-56 P0 0 -105 6 2 1 Fe-56 P1 0 -106 6 2 1 Fe-56 P2 0 -107 6 2 1 Fe-56 P3 0 -108 6 2 1 Fe-57 P0 0 -109 6 2 1 Fe-57 P1 0 -110 6 2 1 Fe-57 P2 0 -111 6 2 1 Fe-57 P3 0 -112 6 2 1 Fe-58 P0 0 -113 6 2 1 Fe-58 P1 0 -114 6 2 1 Fe-58 P2 0 -115 6 2 1 Fe-58 P3 0 -116 6 2 1 Ni-58 P0 0 -117 6 2 1 Ni-58 P1 0 -118 6 2 1 Ni-58 P2 0 -119 6 2 1 Ni-58 P3 0 -120 6 2 1 Ni-60 P0 0 -121 6 2 1 Ni-60 P1 0 -122 6 2 1 Ni-60 P2 0 -123 6 2 1 Ni-60 P3 0 -124 6 2 1 Ni-61 P0 0 -125 6 2 1 Ni-61 P1 0 -126 6 2 1 Ni-61 P2 0 -127 6 2 1 Ni-61 P3 0 -128 6 2 1 Ni-62 P0 0 -129 6 2 1 Ni-62 P1 0 -130 6 2 1 Ni-62 P2 0 -131 6 2 1 Ni-62 P3 0 -132 6 2 1 Ni-64 P0 0 -133 6 2 1 Ni-64 P1 0 -134 6 2 1 Ni-64 P2 0 -135 6 2 1 Ni-64 P3 0 -136 6 2 1 Mn-55 P0 0 -137 6 2 1 Mn-55 P1 0 -138 6 2 1 Mn-55 P2 0 -139 6 2 1 Mn-55 P3 0 -140 6 2 1 Si-28 P0 0 -141 6 2 1 Si-28 P1 0 -142 6 2 1 Si-28 P2 0 -143 6 2 1 Si-28 P3 0 -144 6 2 1 Si-29 P0 0 -145 6 2 1 Si-29 P1 0 -146 6 2 1 Si-29 P2 0 -147 6 2 1 Si-29 P3 0 -148 6 2 1 Si-30 P0 0 -149 6 2 1 Si-30 P1 0 -150 6 2 1 Si-30 P2 0 -151 6 2 1 Si-30 P3 0 -152 6 2 1 Cr-50 P0 0 -153 6 2 1 Cr-50 P1 0 -154 6 2 1 Cr-50 P2 0 -155 6 2 1 Cr-50 P3 0 -156 6 2 1 Cr-52 P0 0 -157 6 2 1 Cr-52 P1 0 -158 6 2 1 Cr-52 P2 0 -159 6 2 1 Cr-52 P3 0 -160 6 2 1 Cr-53 P0 0 -161 6 2 1 Cr-53 P1 0 -162 6 2 1 Cr-53 P2 0 -163 6 2 1 Cr-53 P3 0 -164 6 2 1 Cr-54 P0 0 -165 6 2 1 Cr-54 P1 0 -166 6 2 1 Cr-54 P2 0 -167 6 2 1 Cr-54 P3 0 -0 6 2 2 H-1 P0 0 -1 6 2 2 H-1 P1 0 -2 6 2 2 H-1 P2 0 -3 6 2 2 H-1 P3 0 -4 6 2 2 O-16 P0 0 -5 6 2 2 O-16 P1 0 -6 6 2 2 O-16 P2 0 -7 6 2 2 O-16 P3 0 -8 6 2 2 B-10 P0 0 -9 6 2 2 B-10 P1 0 -10 6 2 2 B-10 P2 0 -11 6 2 2 B-10 P3 0 -12 6 2 2 B-11 P0 0 -13 6 2 2 B-11 P1 0 -14 6 2 2 B-11 P2 0 -15 6 2 2 B-11 P3 0 -16 6 2 2 Fe-54 P0 0 -17 6 2 2 Fe-54 P1 0 -18 6 2 2 Fe-54 P2 0 -19 6 2 2 Fe-54 P3 0 -20 6 2 2 Fe-56 P0 0 -21 6 2 2 Fe-56 P1 0 -22 6 2 2 Fe-56 P2 0 -23 6 2 2 Fe-56 P3 0 -24 6 2 2 Fe-57 P0 0 -25 6 2 2 Fe-57 P1 0 -26 6 2 2 Fe-57 P2 0 -27 6 2 2 Fe-57 P3 0 -28 6 2 2 Fe-58 P0 0 -29 6 2 2 Fe-58 P1 0 -30 6 2 2 Fe-58 P2 0 -31 6 2 2 Fe-58 P3 0 -32 6 2 2 Ni-58 P0 0 -33 6 2 2 Ni-58 P1 0 -34 6 2 2 Ni-58 P2 0 -35 6 2 2 Ni-58 P3 0 -36 6 2 2 Ni-60 P0 0 -37 6 2 2 Ni-60 P1 0 -38 6 2 2 Ni-60 P2 0 -39 6 2 2 Ni-60 P3 0 -40 6 2 2 Ni-61 P0 0 -41 6 2 2 Ni-61 P1 0 -42 6 2 2 Ni-61 P2 0 -43 6 2 2 Ni-61 P3 0 -44 6 2 2 Ni-62 P0 0 -45 6 2 2 Ni-62 P1 0 -46 6 2 2 Ni-62 P2 0 -47 6 2 2 Ni-62 P3 0 -48 6 2 2 Ni-64 P0 0 -49 6 2 2 Ni-64 P1 0 -50 6 2 2 Ni-64 P2 0 -51 6 2 2 Ni-64 P3 0 -52 6 2 2 Mn-55 P0 0 -53 6 2 2 Mn-55 P1 0 -54 6 2 2 Mn-55 P2 0 -55 6 2 2 Mn-55 P3 0 -56 6 2 2 Si-28 P0 0 -57 6 2 2 Si-28 P1 0 -58 6 2 2 Si-28 P2 0 -59 6 2 2 Si-28 P3 0 -60 6 2 2 Si-29 P0 0 -61 6 2 2 Si-29 P1 0 -62 6 2 2 Si-29 P2 0 -63 6 2 2 Si-29 P3 0 -64 6 2 2 Si-30 P0 0 -65 6 2 2 Si-30 P1 0 -66 6 2 2 Si-30 P2 0 -67 6 2 2 Si-30 P3 0 -68 6 2 2 Cr-50 P0 0 -69 6 2 2 Cr-50 P1 0 -70 6 2 2 Cr-50 P2 0 -71 6 2 2 Cr-50 P3 0 -72 6 2 2 Cr-52 P0 0 -73 6 2 2 Cr-52 P1 0 -74 6 2 2 Cr-52 P2 0 -75 6 2 2 Cr-52 P3 0 -76 6 2 2 Cr-53 P0 0 -77 6 2 2 Cr-53 P1 0 -78 6 2 2 Cr-53 P2 0 -79 6 2 2 Cr-53 P3 0 -80 6 2 2 Cr-54 P0 0 -81 6 2 2 Cr-54 P1 0 -82 6 2 2 Cr-54 P2 0 -83 6 2 2 Cr-54 P3 0 material group out nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in group out nuclide moment mean -252 7 1 1 H-1 P0 0 -253 7 1 1 H-1 P1 0 -254 7 1 1 H-1 P2 0 -255 7 1 1 H-1 P3 0 -256 7 1 1 O-16 P0 0 -257 7 1 1 O-16 P1 0 -258 7 1 1 O-16 P2 0 -259 7 1 1 O-16 P3 0 -260 7 1 1 B-10 P0 0 -261 7 1 1 B-10 P1 0 -262 7 1 1 B-10 P2 0 -263 7 1 1 B-10 P3 0 -264 7 1 1 B-11 P0 0 -265 7 1 1 B-11 P1 0 -266 7 1 1 B-11 P2 0 -267 7 1 1 B-11 P3 0 -268 7 1 1 Fe-54 P0 0 -269 7 1 1 Fe-54 P1 0 -270 7 1 1 Fe-54 P2 0 -271 7 1 1 Fe-54 P3 0 -272 7 1 1 Fe-56 P0 0 -273 7 1 1 Fe-56 P1 0 -274 7 1 1 Fe-56 P2 0 -275 7 1 1 Fe-56 P3 0 -276 7 1 1 Fe-57 P0 0 -277 7 1 1 Fe-57 P1 0 -278 7 1 1 Fe-57 P2 0 -279 7 1 1 Fe-57 P3 0 -280 7 1 1 Fe-58 P0 0 -281 7 1 1 Fe-58 P1 0 -282 7 1 1 Fe-58 P2 0 -283 7 1 1 Fe-58 P3 0 -284 7 1 1 Ni-58 P0 0 -285 7 1 1 Ni-58 P1 0 -286 7 1 1 Ni-58 P2 0 -287 7 1 1 Ni-58 P3 0 -288 7 1 1 Ni-60 P0 0 -289 7 1 1 Ni-60 P1 0 -290 7 1 1 Ni-60 P2 0 -291 7 1 1 Ni-60 P3 0 -292 7 1 1 Ni-61 P0 0 -293 7 1 1 Ni-61 P1 0 -294 7 1 1 Ni-61 P2 0 -295 7 1 1 Ni-61 P3 0 -296 7 1 1 Ni-62 P0 0 -297 7 1 1 Ni-62 P1 0 -298 7 1 1 Ni-62 P2 0 -299 7 1 1 Ni-62 P3 0 -300 7 1 1 Ni-64 P0 0 -301 7 1 1 Ni-64 P1 0 -302 7 1 1 Ni-64 P2 0 -303 7 1 1 Ni-64 P3 0 -304 7 1 1 Mn-55 P0 0 -305 7 1 1 Mn-55 P1 0 -306 7 1 1 Mn-55 P2 0 -307 7 1 1 Mn-55 P3 0 -308 7 1 1 Si-28 P0 0 -309 7 1 1 Si-28 P1 0 -310 7 1 1 Si-28 P2 0 -311 7 1 1 Si-28 P3 0 -312 7 1 1 Si-29 P0 0 -313 7 1 1 Si-29 P1 0 -314 7 1 1 Si-29 P2 0 -315 7 1 1 Si-29 P3 0 -316 7 1 1 Si-30 P0 0 -317 7 1 1 Si-30 P1 0 -318 7 1 1 Si-30 P2 0 -319 7 1 1 Si-30 P3 0 -320 7 1 1 Cr-50 P0 0 -321 7 1 1 Cr-50 P1 0 -322 7 1 1 Cr-50 P2 0 -323 7 1 1 Cr-50 P3 0 -324 7 1 1 Cr-52 P0 0 -325 7 1 1 Cr-52 P1 0 -326 7 1 1 Cr-52 P2 0 -327 7 1 1 Cr-52 P3 0 -328 7 1 1 Cr-53 P0 0 -329 7 1 1 Cr-53 P1 0 -330 7 1 1 Cr-53 P2 0 -331 7 1 1 Cr-53 P3 0 -332 7 1 1 Cr-54 P0 0 -333 7 1 1 Cr-54 P1 0 -334 7 1 1 Cr-54 P2 0 -335 7 1 1 Cr-54 P3 0 -168 7 1 2 H-1 P0 0 -169 7 1 2 H-1 P1 0 -170 7 1 2 H-1 P2 0 -171 7 1 2 H-1 P3 0 -172 7 1 2 O-16 P0 0 -173 7 1 2 O-16 P1 0 -174 7 1 2 O-16 P2 0 -175 7 1 2 O-16 P3 0 -176 7 1 2 B-10 P0 0 -177 7 1 2 B-10 P1 0 -178 7 1 2 B-10 P2 0 -179 7 1 2 B-10 P3 0 -180 7 1 2 B-11 P0 0 -181 7 1 2 B-11 P1 0 -182 7 1 2 B-11 P2 0 -183 7 1 2 B-11 P3 0 -184 7 1 2 Fe-54 P0 0 -185 7 1 2 Fe-54 P1 0 -186 7 1 2 Fe-54 P2 0 -187 7 1 2 Fe-54 P3 0 -188 7 1 2 Fe-56 P0 0 -189 7 1 2 Fe-56 P1 0 -190 7 1 2 Fe-56 P2 0 -191 7 1 2 Fe-56 P3 0 -192 7 1 2 Fe-57 P0 0 -193 7 1 2 Fe-57 P1 0 -194 7 1 2 Fe-57 P2 0 -195 7 1 2 Fe-57 P3 0 -196 7 1 2 Fe-58 P0 0 -197 7 1 2 Fe-58 P1 0 -198 7 1 2 Fe-58 P2 0 -199 7 1 2 Fe-58 P3 0 -200 7 1 2 Ni-58 P0 0 -201 7 1 2 Ni-58 P1 0 -202 7 1 2 Ni-58 P2 0 -203 7 1 2 Ni-58 P3 0 -204 7 1 2 Ni-60 P0 0 -205 7 1 2 Ni-60 P1 0 -206 7 1 2 Ni-60 P2 0 -207 7 1 2 Ni-60 P3 0 -208 7 1 2 Ni-61 P0 0 -209 7 1 2 Ni-61 P1 0 -210 7 1 2 Ni-61 P2 0 -211 7 1 2 Ni-61 P3 0 -212 7 1 2 Ni-62 P0 0 -213 7 1 2 Ni-62 P1 0 -214 7 1 2 Ni-62 P2 0 -215 7 1 2 Ni-62 P3 0 -216 7 1 2 Ni-64 P0 0 -217 7 1 2 Ni-64 P1 0 -218 7 1 2 Ni-64 P2 0 -219 7 1 2 Ni-64 P3 0 -220 7 1 2 Mn-55 P0 0 -221 7 1 2 Mn-55 P1 0 -222 7 1 2 Mn-55 P2 0 -223 7 1 2 Mn-55 P3 0 -224 7 1 2 Si-28 P0 0 -225 7 1 2 Si-28 P1 0 -226 7 1 2 Si-28 P2 0 -227 7 1 2 Si-28 P3 0 -228 7 1 2 Si-29 P0 0 -229 7 1 2 Si-29 P1 0 -230 7 1 2 Si-29 P2 0 -231 7 1 2 Si-29 P3 0 -232 7 1 2 Si-30 P0 0 -233 7 1 2 Si-30 P1 0 -234 7 1 2 Si-30 P2 0 -235 7 1 2 Si-30 P3 0 -236 7 1 2 Cr-50 P0 0 -237 7 1 2 Cr-50 P1 0 -238 7 1 2 Cr-50 P2 0 -239 7 1 2 Cr-50 P3 0 -240 7 1 2 Cr-52 P0 0 -241 7 1 2 Cr-52 P1 0 -242 7 1 2 Cr-52 P2 0 -243 7 1 2 Cr-52 P3 0 -244 7 1 2 Cr-53 P0 0 -245 7 1 2 Cr-53 P1 0 -246 7 1 2 Cr-53 P2 0 -247 7 1 2 Cr-53 P3 0 -248 7 1 2 Cr-54 P0 0 -249 7 1 2 Cr-54 P1 0 -250 7 1 2 Cr-54 P2 0 -251 7 1 2 Cr-54 P3 0 -84 7 2 1 H-1 P0 0 -85 7 2 1 H-1 P1 0 -86 7 2 1 H-1 P2 0 -87 7 2 1 H-1 P3 0 -88 7 2 1 O-16 P0 0 -89 7 2 1 O-16 P1 0 -90 7 2 1 O-16 P2 0 -91 7 2 1 O-16 P3 0 -92 7 2 1 B-10 P0 0 -93 7 2 1 B-10 P1 0 -94 7 2 1 B-10 P2 0 -95 7 2 1 B-10 P3 0 -96 7 2 1 B-11 P0 0 -97 7 2 1 B-11 P1 0 -98 7 2 1 B-11 P2 0 -99 7 2 1 B-11 P3 0 -100 7 2 1 Fe-54 P0 0 -101 7 2 1 Fe-54 P1 0 -102 7 2 1 Fe-54 P2 0 -103 7 2 1 Fe-54 P3 0 -104 7 2 1 Fe-56 P0 0 -105 7 2 1 Fe-56 P1 0 -106 7 2 1 Fe-56 P2 0 -107 7 2 1 Fe-56 P3 0 -108 7 2 1 Fe-57 P0 0 -109 7 2 1 Fe-57 P1 0 -110 7 2 1 Fe-57 P2 0 -111 7 2 1 Fe-57 P3 0 -112 7 2 1 Fe-58 P0 0 -113 7 2 1 Fe-58 P1 0 -114 7 2 1 Fe-58 P2 0 -115 7 2 1 Fe-58 P3 0 -116 7 2 1 Ni-58 P0 0 -117 7 2 1 Ni-58 P1 0 -118 7 2 1 Ni-58 P2 0 -119 7 2 1 Ni-58 P3 0 -120 7 2 1 Ni-60 P0 0 -121 7 2 1 Ni-60 P1 0 -122 7 2 1 Ni-60 P2 0 -123 7 2 1 Ni-60 P3 0 -124 7 2 1 Ni-61 P0 0 -125 7 2 1 Ni-61 P1 0 -126 7 2 1 Ni-61 P2 0 -127 7 2 1 Ni-61 P3 0 -128 7 2 1 Ni-62 P0 0 -129 7 2 1 Ni-62 P1 0 -130 7 2 1 Ni-62 P2 0 -131 7 2 1 Ni-62 P3 0 -132 7 2 1 Ni-64 P0 0 -133 7 2 1 Ni-64 P1 0 -134 7 2 1 Ni-64 P2 0 -135 7 2 1 Ni-64 P3 0 -136 7 2 1 Mn-55 P0 0 -137 7 2 1 Mn-55 P1 0 -138 7 2 1 Mn-55 P2 0 -139 7 2 1 Mn-55 P3 0 -140 7 2 1 Si-28 P0 0 -141 7 2 1 Si-28 P1 0 -142 7 2 1 Si-28 P2 0 -143 7 2 1 Si-28 P3 0 -144 7 2 1 Si-29 P0 0 -145 7 2 1 Si-29 P1 0 -146 7 2 1 Si-29 P2 0 -147 7 2 1 Si-29 P3 0 -148 7 2 1 Si-30 P0 0 -149 7 2 1 Si-30 P1 0 -150 7 2 1 Si-30 P2 0 -151 7 2 1 Si-30 P3 0 -152 7 2 1 Cr-50 P0 0 -153 7 2 1 Cr-50 P1 0 -154 7 2 1 Cr-50 P2 0 -155 7 2 1 Cr-50 P3 0 -156 7 2 1 Cr-52 P0 0 -157 7 2 1 Cr-52 P1 0 -158 7 2 1 Cr-52 P2 0 -159 7 2 1 Cr-52 P3 0 -160 7 2 1 Cr-53 P0 0 -161 7 2 1 Cr-53 P1 0 -162 7 2 1 Cr-53 P2 0 -163 7 2 1 Cr-53 P3 0 -164 7 2 1 Cr-54 P0 0 -165 7 2 1 Cr-54 P1 0 -166 7 2 1 Cr-54 P2 0 -167 7 2 1 Cr-54 P3 0 -0 7 2 2 H-1 P0 0 -1 7 2 2 H-1 P1 0 -2 7 2 2 H-1 P2 0 -3 7 2 2 H-1 P3 0 -4 7 2 2 O-16 P0 0 -5 7 2 2 O-16 P1 0 -6 7 2 2 O-16 P2 0 -7 7 2 2 O-16 P3 0 -8 7 2 2 B-10 P0 0 -9 7 2 2 B-10 P1 0 -10 7 2 2 B-10 P2 0 -11 7 2 2 B-10 P3 0 -12 7 2 2 B-11 P0 0 -13 7 2 2 B-11 P1 0 -14 7 2 2 B-11 P2 0 -15 7 2 2 B-11 P3 0 -16 7 2 2 Fe-54 P0 0 -17 7 2 2 Fe-54 P1 0 -18 7 2 2 Fe-54 P2 0 -19 7 2 2 Fe-54 P3 0 -20 7 2 2 Fe-56 P0 0 -21 7 2 2 Fe-56 P1 0 -22 7 2 2 Fe-56 P2 0 -23 7 2 2 Fe-56 P3 0 -24 7 2 2 Fe-57 P0 0 -25 7 2 2 Fe-57 P1 0 -26 7 2 2 Fe-57 P2 0 -27 7 2 2 Fe-57 P3 0 -28 7 2 2 Fe-58 P0 0 -29 7 2 2 Fe-58 P1 0 -30 7 2 2 Fe-58 P2 0 -31 7 2 2 Fe-58 P3 0 -32 7 2 2 Ni-58 P0 0 -33 7 2 2 Ni-58 P1 0 -34 7 2 2 Ni-58 P2 0 -35 7 2 2 Ni-58 P3 0 -36 7 2 2 Ni-60 P0 0 -37 7 2 2 Ni-60 P1 0 -38 7 2 2 Ni-60 P2 0 -39 7 2 2 Ni-60 P3 0 -40 7 2 2 Ni-61 P0 0 -41 7 2 2 Ni-61 P1 0 -42 7 2 2 Ni-61 P2 0 -43 7 2 2 Ni-61 P3 0 -44 7 2 2 Ni-62 P0 0 -45 7 2 2 Ni-62 P1 0 -46 7 2 2 Ni-62 P2 0 -47 7 2 2 Ni-62 P3 0 -48 7 2 2 Ni-64 P0 0 -49 7 2 2 Ni-64 P1 0 -50 7 2 2 Ni-64 P2 0 -51 7 2 2 Ni-64 P3 0 -52 7 2 2 Mn-55 P0 0 -53 7 2 2 Mn-55 P1 0 -54 7 2 2 Mn-55 P2 0 -55 7 2 2 Mn-55 P3 0 -56 7 2 2 Si-28 P0 0 -57 7 2 2 Si-28 P1 0 -58 7 2 2 Si-28 P2 0 -59 7 2 2 Si-28 P3 0 -60 7 2 2 Si-29 P0 0 -61 7 2 2 Si-29 P1 0 -62 7 2 2 Si-29 P2 0 -63 7 2 2 Si-29 P3 0 -64 7 2 2 Si-30 P0 0 -65 7 2 2 Si-30 P1 0 -66 7 2 2 Si-30 P2 0 -67 7 2 2 Si-30 P3 0 -68 7 2 2 Cr-50 P0 0 -69 7 2 2 Cr-50 P1 0 -70 7 2 2 Cr-50 P2 0 -71 7 2 2 Cr-50 P3 0 -72 7 2 2 Cr-52 P0 0 -73 7 2 2 Cr-52 P1 0 -74 7 2 2 Cr-52 P2 0 -75 7 2 2 Cr-52 P3 0 -76 7 2 2 Cr-53 P0 0 -77 7 2 2 Cr-53 P1 0 -78 7 2 2 Cr-53 P2 0 -79 7 2 2 Cr-53 P3 0 -80 7 2 2 Cr-54 P0 0 -81 7 2 2 Cr-54 P1 0 -82 7 2 2 Cr-54 P2 0 -83 7 2 2 Cr-54 P3 0 material group out nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in group out nuclide moment mean -252 8 1 1 H-1 P0 0 -253 8 1 1 H-1 P1 0 -254 8 1 1 H-1 P2 0 -255 8 1 1 H-1 P3 0 -256 8 1 1 O-16 P0 0 -257 8 1 1 O-16 P1 0 -258 8 1 1 O-16 P2 0 -259 8 1 1 O-16 P3 0 -260 8 1 1 B-10 P0 0 -261 8 1 1 B-10 P1 0 -262 8 1 1 B-10 P2 0 -263 8 1 1 B-10 P3 0 -264 8 1 1 B-11 P0 0 -265 8 1 1 B-11 P1 0 -266 8 1 1 B-11 P2 0 -267 8 1 1 B-11 P3 0 -268 8 1 1 Fe-54 P0 0 -269 8 1 1 Fe-54 P1 0 -270 8 1 1 Fe-54 P2 0 -271 8 1 1 Fe-54 P3 0 -272 8 1 1 Fe-56 P0 0 -273 8 1 1 Fe-56 P1 0 -274 8 1 1 Fe-56 P2 0 -275 8 1 1 Fe-56 P3 0 -276 8 1 1 Fe-57 P0 0 -277 8 1 1 Fe-57 P1 0 -278 8 1 1 Fe-57 P2 0 -279 8 1 1 Fe-57 P3 0 -280 8 1 1 Fe-58 P0 0 -281 8 1 1 Fe-58 P1 0 -282 8 1 1 Fe-58 P2 0 -283 8 1 1 Fe-58 P3 0 -284 8 1 1 Ni-58 P0 0 -285 8 1 1 Ni-58 P1 0 -286 8 1 1 Ni-58 P2 0 -287 8 1 1 Ni-58 P3 0 -288 8 1 1 Ni-60 P0 0 -289 8 1 1 Ni-60 P1 0 -290 8 1 1 Ni-60 P2 0 -291 8 1 1 Ni-60 P3 0 -292 8 1 1 Ni-61 P0 0 -293 8 1 1 Ni-61 P1 0 -294 8 1 1 Ni-61 P2 0 -295 8 1 1 Ni-61 P3 0 -296 8 1 1 Ni-62 P0 0 -297 8 1 1 Ni-62 P1 0 -298 8 1 1 Ni-62 P2 0 -299 8 1 1 Ni-62 P3 0 -300 8 1 1 Ni-64 P0 0 -301 8 1 1 Ni-64 P1 0 -302 8 1 1 Ni-64 P2 0 -303 8 1 1 Ni-64 P3 0 -304 8 1 1 Mn-55 P0 0 -305 8 1 1 Mn-55 P1 0 -306 8 1 1 Mn-55 P2 0 -307 8 1 1 Mn-55 P3 0 -308 8 1 1 Si-28 P0 0 -309 8 1 1 Si-28 P1 0 -310 8 1 1 Si-28 P2 0 -311 8 1 1 Si-28 P3 0 -312 8 1 1 Si-29 P0 0 -313 8 1 1 Si-29 P1 0 -314 8 1 1 Si-29 P2 0 -315 8 1 1 Si-29 P3 0 -316 8 1 1 Si-30 P0 0 -317 8 1 1 Si-30 P1 0 -318 8 1 1 Si-30 P2 0 -319 8 1 1 Si-30 P3 0 -320 8 1 1 Cr-50 P0 0 -321 8 1 1 Cr-50 P1 0 -322 8 1 1 Cr-50 P2 0 -323 8 1 1 Cr-50 P3 0 -324 8 1 1 Cr-52 P0 0 -325 8 1 1 Cr-52 P1 0 -326 8 1 1 Cr-52 P2 0 -327 8 1 1 Cr-52 P3 0 -328 8 1 1 Cr-53 P0 0 -329 8 1 1 Cr-53 P1 0 -330 8 1 1 Cr-53 P2 0 -331 8 1 1 Cr-53 P3 0 -332 8 1 1 Cr-54 P0 0 -333 8 1 1 Cr-54 P1 0 -334 8 1 1 Cr-54 P2 0 -335 8 1 1 Cr-54 P3 0 -168 8 1 2 H-1 P0 0 -169 8 1 2 H-1 P1 0 -170 8 1 2 H-1 P2 0 -171 8 1 2 H-1 P3 0 -172 8 1 2 O-16 P0 0 -173 8 1 2 O-16 P1 0 -174 8 1 2 O-16 P2 0 -175 8 1 2 O-16 P3 0 -176 8 1 2 B-10 P0 0 -177 8 1 2 B-10 P1 0 -178 8 1 2 B-10 P2 0 -179 8 1 2 B-10 P3 0 -180 8 1 2 B-11 P0 0 -181 8 1 2 B-11 P1 0 -182 8 1 2 B-11 P2 0 -183 8 1 2 B-11 P3 0 -184 8 1 2 Fe-54 P0 0 -185 8 1 2 Fe-54 P1 0 -186 8 1 2 Fe-54 P2 0 -187 8 1 2 Fe-54 P3 0 -188 8 1 2 Fe-56 P0 0 -189 8 1 2 Fe-56 P1 0 -190 8 1 2 Fe-56 P2 0 -191 8 1 2 Fe-56 P3 0 -192 8 1 2 Fe-57 P0 0 -193 8 1 2 Fe-57 P1 0 -194 8 1 2 Fe-57 P2 0 -195 8 1 2 Fe-57 P3 0 -196 8 1 2 Fe-58 P0 0 -197 8 1 2 Fe-58 P1 0 -198 8 1 2 Fe-58 P2 0 -199 8 1 2 Fe-58 P3 0 -200 8 1 2 Ni-58 P0 0 -201 8 1 2 Ni-58 P1 0 -202 8 1 2 Ni-58 P2 0 -203 8 1 2 Ni-58 P3 0 -204 8 1 2 Ni-60 P0 0 -205 8 1 2 Ni-60 P1 0 -206 8 1 2 Ni-60 P2 0 -207 8 1 2 Ni-60 P3 0 -208 8 1 2 Ni-61 P0 0 -209 8 1 2 Ni-61 P1 0 -210 8 1 2 Ni-61 P2 0 -211 8 1 2 Ni-61 P3 0 -212 8 1 2 Ni-62 P0 0 -213 8 1 2 Ni-62 P1 0 -214 8 1 2 Ni-62 P2 0 -215 8 1 2 Ni-62 P3 0 -216 8 1 2 Ni-64 P0 0 -217 8 1 2 Ni-64 P1 0 -218 8 1 2 Ni-64 P2 0 -219 8 1 2 Ni-64 P3 0 -220 8 1 2 Mn-55 P0 0 -221 8 1 2 Mn-55 P1 0 -222 8 1 2 Mn-55 P2 0 -223 8 1 2 Mn-55 P3 0 -224 8 1 2 Si-28 P0 0 -225 8 1 2 Si-28 P1 0 -226 8 1 2 Si-28 P2 0 -227 8 1 2 Si-28 P3 0 -228 8 1 2 Si-29 P0 0 -229 8 1 2 Si-29 P1 0 -230 8 1 2 Si-29 P2 0 -231 8 1 2 Si-29 P3 0 -232 8 1 2 Si-30 P0 0 -233 8 1 2 Si-30 P1 0 -234 8 1 2 Si-30 P2 0 -235 8 1 2 Si-30 P3 0 -236 8 1 2 Cr-50 P0 0 -237 8 1 2 Cr-50 P1 0 -238 8 1 2 Cr-50 P2 0 -239 8 1 2 Cr-50 P3 0 -240 8 1 2 Cr-52 P0 0 -241 8 1 2 Cr-52 P1 0 -242 8 1 2 Cr-52 P2 0 -243 8 1 2 Cr-52 P3 0 -244 8 1 2 Cr-53 P0 0 -245 8 1 2 Cr-53 P1 0 -246 8 1 2 Cr-53 P2 0 -247 8 1 2 Cr-53 P3 0 -248 8 1 2 Cr-54 P0 0 -249 8 1 2 Cr-54 P1 0 -250 8 1 2 Cr-54 P2 0 -251 8 1 2 Cr-54 P3 0 -84 8 2 1 H-1 P0 0 -85 8 2 1 H-1 P1 0 -86 8 2 1 H-1 P2 0 -87 8 2 1 H-1 P3 0 -88 8 2 1 O-16 P0 0 -89 8 2 1 O-16 P1 0 -90 8 2 1 O-16 P2 0 -91 8 2 1 O-16 P3 0 -92 8 2 1 B-10 P0 0 -93 8 2 1 B-10 P1 0 -94 8 2 1 B-10 P2 0 -95 8 2 1 B-10 P3 0 -96 8 2 1 B-11 P0 0 -97 8 2 1 B-11 P1 0 -98 8 2 1 B-11 P2 0 -99 8 2 1 B-11 P3 0 -100 8 2 1 Fe-54 P0 0 -101 8 2 1 Fe-54 P1 0 -102 8 2 1 Fe-54 P2 0 -103 8 2 1 Fe-54 P3 0 -104 8 2 1 Fe-56 P0 0 -105 8 2 1 Fe-56 P1 0 -106 8 2 1 Fe-56 P2 0 -107 8 2 1 Fe-56 P3 0 -108 8 2 1 Fe-57 P0 0 -109 8 2 1 Fe-57 P1 0 -110 8 2 1 Fe-57 P2 0 -111 8 2 1 Fe-57 P3 0 -112 8 2 1 Fe-58 P0 0 -113 8 2 1 Fe-58 P1 0 -114 8 2 1 Fe-58 P2 0 -115 8 2 1 Fe-58 P3 0 -116 8 2 1 Ni-58 P0 0 -117 8 2 1 Ni-58 P1 0 -118 8 2 1 Ni-58 P2 0 -119 8 2 1 Ni-58 P3 0 -120 8 2 1 Ni-60 P0 0 -121 8 2 1 Ni-60 P1 0 -122 8 2 1 Ni-60 P2 0 -123 8 2 1 Ni-60 P3 0 -124 8 2 1 Ni-61 P0 0 -125 8 2 1 Ni-61 P1 0 -126 8 2 1 Ni-61 P2 0 -127 8 2 1 Ni-61 P3 0 -128 8 2 1 Ni-62 P0 0 -129 8 2 1 Ni-62 P1 0 -130 8 2 1 Ni-62 P2 0 -131 8 2 1 Ni-62 P3 0 -132 8 2 1 Ni-64 P0 0 -133 8 2 1 Ni-64 P1 0 -134 8 2 1 Ni-64 P2 0 -135 8 2 1 Ni-64 P3 0 -136 8 2 1 Mn-55 P0 0 -137 8 2 1 Mn-55 P1 0 -138 8 2 1 Mn-55 P2 0 -139 8 2 1 Mn-55 P3 0 -140 8 2 1 Si-28 P0 0 -141 8 2 1 Si-28 P1 0 -142 8 2 1 Si-28 P2 0 -143 8 2 1 Si-28 P3 0 -144 8 2 1 Si-29 P0 0 -145 8 2 1 Si-29 P1 0 -146 8 2 1 Si-29 P2 0 -147 8 2 1 Si-29 P3 0 -148 8 2 1 Si-30 P0 0 -149 8 2 1 Si-30 P1 0 -150 8 2 1 Si-30 P2 0 -151 8 2 1 Si-30 P3 0 -152 8 2 1 Cr-50 P0 0 -153 8 2 1 Cr-50 P1 0 -154 8 2 1 Cr-50 P2 0 -155 8 2 1 Cr-50 P3 0 -156 8 2 1 Cr-52 P0 0 -157 8 2 1 Cr-52 P1 0 -158 8 2 1 Cr-52 P2 0 -159 8 2 1 Cr-52 P3 0 -160 8 2 1 Cr-53 P0 0 -161 8 2 1 Cr-53 P1 0 -162 8 2 1 Cr-53 P2 0 -163 8 2 1 Cr-53 P3 0 -164 8 2 1 Cr-54 P0 0 -165 8 2 1 Cr-54 P1 0 -166 8 2 1 Cr-54 P2 0 -167 8 2 1 Cr-54 P3 0 -0 8 2 2 H-1 P0 0 -1 8 2 2 H-1 P1 0 -2 8 2 2 H-1 P2 0 -3 8 2 2 H-1 P3 0 -4 8 2 2 O-16 P0 0 -5 8 2 2 O-16 P1 0 -6 8 2 2 O-16 P2 0 -7 8 2 2 O-16 P3 0 -8 8 2 2 B-10 P0 0 -9 8 2 2 B-10 P1 0 -10 8 2 2 B-10 P2 0 -11 8 2 2 B-10 P3 0 -12 8 2 2 B-11 P0 0 -13 8 2 2 B-11 P1 0 -14 8 2 2 B-11 P2 0 -15 8 2 2 B-11 P3 0 -16 8 2 2 Fe-54 P0 0 -17 8 2 2 Fe-54 P1 0 -18 8 2 2 Fe-54 P2 0 -19 8 2 2 Fe-54 P3 0 -20 8 2 2 Fe-56 P0 0 -21 8 2 2 Fe-56 P1 0 -22 8 2 2 Fe-56 P2 0 -23 8 2 2 Fe-56 P3 0 -24 8 2 2 Fe-57 P0 0 -25 8 2 2 Fe-57 P1 0 -26 8 2 2 Fe-57 P2 0 -27 8 2 2 Fe-57 P3 0 -28 8 2 2 Fe-58 P0 0 -29 8 2 2 Fe-58 P1 0 -30 8 2 2 Fe-58 P2 0 -31 8 2 2 Fe-58 P3 0 -32 8 2 2 Ni-58 P0 0 -33 8 2 2 Ni-58 P1 0 -34 8 2 2 Ni-58 P2 0 -35 8 2 2 Ni-58 P3 0 -36 8 2 2 Ni-60 P0 0 -37 8 2 2 Ni-60 P1 0 -38 8 2 2 Ni-60 P2 0 -39 8 2 2 Ni-60 P3 0 -40 8 2 2 Ni-61 P0 0 -41 8 2 2 Ni-61 P1 0 -42 8 2 2 Ni-61 P2 0 -43 8 2 2 Ni-61 P3 0 -44 8 2 2 Ni-62 P0 0 -45 8 2 2 Ni-62 P1 0 -46 8 2 2 Ni-62 P2 0 -47 8 2 2 Ni-62 P3 0 -48 8 2 2 Ni-64 P0 0 -49 8 2 2 Ni-64 P1 0 -50 8 2 2 Ni-64 P2 0 -51 8 2 2 Ni-64 P3 0 -52 8 2 2 Mn-55 P0 0 -53 8 2 2 Mn-55 P1 0 -54 8 2 2 Mn-55 P2 0 -55 8 2 2 Mn-55 P3 0 -56 8 2 2 Si-28 P0 0 -57 8 2 2 Si-28 P1 0 -58 8 2 2 Si-28 P2 0 -59 8 2 2 Si-28 P3 0 -60 8 2 2 Si-29 P0 0 -61 8 2 2 Si-29 P1 0 -62 8 2 2 Si-29 P2 0 -63 8 2 2 Si-29 P3 0 -64 8 2 2 Si-30 P0 0 -65 8 2 2 Si-30 P1 0 -66 8 2 2 Si-30 P2 0 -67 8 2 2 Si-30 P3 0 -68 8 2 2 Cr-50 P0 0 -69 8 2 2 Cr-50 P1 0 -70 8 2 2 Cr-50 P2 0 -71 8 2 2 Cr-50 P3 0 -72 8 2 2 Cr-52 P0 0 -73 8 2 2 Cr-52 P1 0 -74 8 2 2 Cr-52 P2 0 -75 8 2 2 Cr-52 P3 0 -76 8 2 2 Cr-53 P0 0 -77 8 2 2 Cr-53 P1 0 -78 8 2 2 Cr-53 P2 0 -79 8 2 2 Cr-53 P3 0 -80 8 2 2 Cr-54 P0 0 -81 8 2 2 Cr-54 P1 0 -82 8 2 2 Cr-54 P2 0 -83 8 2 2 Cr-54 P3 0 material group out nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 9 1 H-1 0.150655 0.480993 -22 9 1 O-16 0.116221 0.114089 -23 9 1 B-10 0.000000 0.000000 -24 9 1 B-11 0.000000 0.000000 -25 9 1 Fe-54 0.000000 0.000000 -26 9 1 Fe-56 0.186217 0.199795 -27 9 1 Fe-57 0.000000 0.000000 -28 9 1 Fe-58 0.000000 0.000000 -29 9 1 Ni-58 0.000000 0.000000 -30 9 1 Ni-60 0.000000 0.000000 -31 9 1 Ni-61 0.000000 0.000000 -32 9 1 Ni-62 0.000000 0.000000 -33 9 1 Ni-64 0.000000 0.000000 -34 9 1 Mn-55 0.000000 0.000000 -35 9 1 Si-28 0.000000 0.000000 -36 9 1 Si-29 0.000000 0.000000 -37 9 1 Si-30 0.000000 0.000000 -38 9 1 Cr-50 0.000000 0.000000 -39 9 1 Cr-52 0.000000 0.000000 -40 9 1 Cr-53 0.147443 0.139574 -41 9 1 Cr-54 0.000000 0.000000 -0 9 2 H-1 0.000000 0.000000 -1 9 2 O-16 0.000000 0.000000 -2 9 2 B-10 0.000000 0.000000 -3 9 2 B-11 0.000000 0.000000 -4 9 2 Fe-54 0.000000 0.000000 -5 9 2 Fe-56 0.000000 0.000000 -6 9 2 Fe-57 0.000000 0.000000 -7 9 2 Fe-58 0.000000 0.000000 -8 9 2 Ni-58 0.000000 0.000000 -9 9 2 Ni-60 0.000000 0.000000 -10 9 2 Ni-61 0.000000 0.000000 -11 9 2 Ni-62 0.000000 0.000000 -12 9 2 Ni-64 0.000000 0.000000 -13 9 2 Mn-55 0.000000 0.000000 -14 9 2 Si-28 0.000000 0.000000 -15 9 2 Si-29 0.000000 0.000000 -16 9 2 Si-30 0.000000 0.000000 -17 9 2 Cr-50 0.000000 0.000000 -18 9 2 Cr-52 0.000000 0.000000 -19 9 2 Cr-53 0.000000 0.000000 -20 9 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 9 1 H-1 0 0 -22 9 1 O-16 0 0 -23 9 1 B-10 0 0 -24 9 1 B-11 0 0 -25 9 1 Fe-54 0 0 -26 9 1 Fe-56 0 0 -27 9 1 Fe-57 0 0 -28 9 1 Fe-58 0 0 -29 9 1 Ni-58 0 0 -30 9 1 Ni-60 0 0 -31 9 1 Ni-61 0 0 -32 9 1 Ni-62 0 0 -33 9 1 Ni-64 0 0 -34 9 1 Mn-55 0 0 -35 9 1 Si-28 0 0 -36 9 1 Si-29 0 0 -37 9 1 Si-30 0 0 -38 9 1 Cr-50 0 0 -39 9 1 Cr-52 0 0 -40 9 1 Cr-53 0 0 -41 9 1 Cr-54 0 0 -0 9 2 H-1 0 0 -1 9 2 O-16 0 0 -2 9 2 B-10 0 0 -3 9 2 B-11 0 0 -4 9 2 Fe-54 0 0 -5 9 2 Fe-56 0 0 -6 9 2 Fe-57 0 0 -7 9 2 Fe-58 0 0 -8 9 2 Ni-58 0 0 -9 9 2 Ni-60 0 0 -10 9 2 Ni-61 0 0 -11 9 2 Ni-62 0 0 -12 9 2 Ni-64 0 0 -13 9 2 Mn-55 0 0 -14 9 2 Si-28 0 0 -15 9 2 Si-29 0 0 -16 9 2 Si-30 0 0 -17 9 2 Cr-50 0 0 -18 9 2 Cr-52 0 0 -19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in group out nuclide moment mean -252 9 1 1 H-1 P0 0.400211 -253 9 1 1 H-1 P1 0.249556 -254 9 1 1 H-1 P2 0.082049 -255 9 1 1 H-1 P3 0.001559 -256 9 1 1 O-16 P0 0.080042 -257 9 1 1 O-16 P1 -0.036179 -258 9 1 1 O-16 P2 -0.015492 -259 9 1 1 O-16 P3 0.035790 -260 9 1 1 B-10 P0 0.000000 -261 9 1 1 B-10 P1 0.000000 -262 9 1 1 B-10 P2 0.000000 -263 9 1 1 B-10 P3 0.000000 -264 9 1 1 B-11 P0 0.000000 -265 9 1 1 B-11 P1 0.000000 -266 9 1 1 B-11 P2 0.000000 -267 9 1 1 B-11 P3 0.000000 -268 9 1 1 Fe-54 P0 0.000000 -269 9 1 1 Fe-54 P1 0.000000 -270 9 1 1 Fe-54 P2 0.000000 -271 9 1 1 Fe-54 P3 0.000000 -272 9 1 1 Fe-56 P0 0.160084 -273 9 1 1 Fe-56 P1 -0.026133 -274 9 1 1 Fe-56 P2 -0.073149 -275 9 1 1 Fe-56 P3 0.037054 -276 9 1 1 Fe-57 P0 0.000000 -277 9 1 1 Fe-57 P1 0.000000 -278 9 1 1 Fe-57 P2 0.000000 -279 9 1 1 Fe-57 P3 0.000000 -280 9 1 1 Fe-58 P0 0.000000 -281 9 1 1 Fe-58 P1 0.000000 -282 9 1 1 Fe-58 P2 0.000000 -283 9 1 1 Fe-58 P3 0.000000 -284 9 1 1 Ni-58 P0 0.000000 -285 9 1 1 Ni-58 P1 0.000000 -286 9 1 1 Ni-58 P2 0.000000 -287 9 1 1 Ni-58 P3 0.000000 -288 9 1 1 Ni-60 P0 0.000000 -289 9 1 1 Ni-60 P1 0.000000 -290 9 1 1 Ni-60 P2 0.000000 -291 9 1 1 Ni-60 P3 0.000000 -292 9 1 1 Ni-61 P0 0.000000 -293 9 1 1 Ni-61 P1 0.000000 -294 9 1 1 Ni-61 P2 0.000000 -295 9 1 1 Ni-61 P3 0.000000 -296 9 1 1 Ni-62 P0 0.000000 -297 9 1 1 Ni-62 P1 0.000000 -298 9 1 1 Ni-62 P2 0.000000 -299 9 1 1 Ni-62 P3 0.000000 -300 9 1 1 Ni-64 P0 0.000000 -301 9 1 1 Ni-64 P1 0.000000 -302 9 1 1 Ni-64 P2 0.000000 -303 9 1 1 Ni-64 P3 0.000000 -304 9 1 1 Mn-55 P0 0.000000 -305 9 1 1 Mn-55 P1 0.000000 -306 9 1 1 Mn-55 P2 0.000000 -307 9 1 1 Mn-55 P3 0.000000 -308 9 1 1 Si-28 P0 0.000000 -309 9 1 1 Si-28 P1 0.000000 -310 9 1 1 Si-28 P2 0.000000 -311 9 1 1 Si-28 P3 0.000000 -312 9 1 1 Si-29 P0 0.000000 -313 9 1 1 Si-29 P1 0.000000 -314 9 1 1 Si-29 P2 0.000000 -315 9 1 1 Si-29 P3 0.000000 -316 9 1 1 Si-30 P0 0.000000 -317 9 1 1 Si-30 P1 0.000000 -318 9 1 1 Si-30 P2 0.000000 -319 9 1 1 Si-30 P3 0.000000 -320 9 1 1 Cr-50 P0 0.000000 -321 9 1 1 Cr-50 P1 0.000000 -322 9 1 1 Cr-50 P2 0.000000 -323 9 1 1 Cr-50 P3 0.000000 -324 9 1 1 Cr-52 P0 0.000000 -325 9 1 1 Cr-52 P1 0.000000 -326 9 1 1 Cr-52 P2 0.000000 -327 9 1 1 Cr-52 P3 0.000000 -328 9 1 1 Cr-53 P0 0.080042 -329 9 1 1 Cr-53 P1 -0.067401 -330 9 1 1 Cr-53 P2 0.045113 -331 9 1 1 Cr-53 P3 -0.018380 -332 9 1 1 Cr-54 P0 0.000000 -333 9 1 1 Cr-54 P1 0.000000 -334 9 1 1 Cr-54 P2 0.000000 -335 9 1 1 Cr-54 P3 0.000000 -168 9 1 2 H-1 P0 0.000000 -169 9 1 2 H-1 P1 0.000000 -170 9 1 2 H-1 P2 0.000000 -171 9 1 2 H-1 P3 0.000000 -172 9 1 2 O-16 P0 0.000000 -173 9 1 2 O-16 P1 0.000000 -174 9 1 2 O-16 P2 0.000000 -175 9 1 2 O-16 P3 0.000000 -176 9 1 2 B-10 P0 0.000000 -177 9 1 2 B-10 P1 0.000000 -178 9 1 2 B-10 P2 0.000000 -179 9 1 2 B-10 P3 0.000000 -180 9 1 2 B-11 P0 0.000000 -181 9 1 2 B-11 P1 0.000000 -182 9 1 2 B-11 P2 0.000000 -183 9 1 2 B-11 P3 0.000000 -184 9 1 2 Fe-54 P0 0.000000 -185 9 1 2 Fe-54 P1 0.000000 -186 9 1 2 Fe-54 P2 0.000000 -187 9 1 2 Fe-54 P3 0.000000 -188 9 1 2 Fe-56 P0 0.000000 -189 9 1 2 Fe-56 P1 0.000000 -190 9 1 2 Fe-56 P2 0.000000 -191 9 1 2 Fe-56 P3 0.000000 -192 9 1 2 Fe-57 P0 0.000000 -193 9 1 2 Fe-57 P1 0.000000 -194 9 1 2 Fe-57 P2 0.000000 -195 9 1 2 Fe-57 P3 0.000000 -196 9 1 2 Fe-58 P0 0.000000 -197 9 1 2 Fe-58 P1 0.000000 -198 9 1 2 Fe-58 P2 0.000000 -199 9 1 2 Fe-58 P3 0.000000 -200 9 1 2 Ni-58 P0 0.000000 -201 9 1 2 Ni-58 P1 0.000000 -202 9 1 2 Ni-58 P2 0.000000 -203 9 1 2 Ni-58 P3 0.000000 -204 9 1 2 Ni-60 P0 0.000000 -205 9 1 2 Ni-60 P1 0.000000 -206 9 1 2 Ni-60 P2 0.000000 -207 9 1 2 Ni-60 P3 0.000000 -208 9 1 2 Ni-61 P0 0.000000 -209 9 1 2 Ni-61 P1 0.000000 -210 9 1 2 Ni-61 P2 0.000000 -211 9 1 2 Ni-61 P3 0.000000 -212 9 1 2 Ni-62 P0 0.000000 -213 9 1 2 Ni-62 P1 0.000000 -214 9 1 2 Ni-62 P2 0.000000 -215 9 1 2 Ni-62 P3 0.000000 -216 9 1 2 Ni-64 P0 0.000000 -217 9 1 2 Ni-64 P1 0.000000 -218 9 1 2 Ni-64 P2 0.000000 -219 9 1 2 Ni-64 P3 0.000000 -220 9 1 2 Mn-55 P0 0.000000 -221 9 1 2 Mn-55 P1 0.000000 -222 9 1 2 Mn-55 P2 0.000000 -223 9 1 2 Mn-55 P3 0.000000 -224 9 1 2 Si-28 P0 0.000000 -225 9 1 2 Si-28 P1 0.000000 -226 9 1 2 Si-28 P2 0.000000 -227 9 1 2 Si-28 P3 0.000000 -228 9 1 2 Si-29 P0 0.000000 -229 9 1 2 Si-29 P1 0.000000 -230 9 1 2 Si-29 P2 0.000000 -231 9 1 2 Si-29 P3 0.000000 -232 9 1 2 Si-30 P0 0.000000 -233 9 1 2 Si-30 P1 0.000000 -234 9 1 2 Si-30 P2 0.000000 -235 9 1 2 Si-30 P3 0.000000 -236 9 1 2 Cr-50 P0 0.000000 -237 9 1 2 Cr-50 P1 0.000000 -238 9 1 2 Cr-50 P2 0.000000 -239 9 1 2 Cr-50 P3 0.000000 -240 9 1 2 Cr-52 P0 0.000000 -241 9 1 2 Cr-52 P1 0.000000 -242 9 1 2 Cr-52 P2 0.000000 -243 9 1 2 Cr-52 P3 0.000000 -244 9 1 2 Cr-53 P0 0.000000 -245 9 1 2 Cr-53 P1 0.000000 -246 9 1 2 Cr-53 P2 0.000000 -247 9 1 2 Cr-53 P3 0.000000 -248 9 1 2 Cr-54 P0 0.000000 -249 9 1 2 Cr-54 P1 0.000000 -250 9 1 2 Cr-54 P2 0.000000 -251 9 1 2 Cr-54 P3 0.000000 -84 9 2 1 H-1 P0 0.000000 -85 9 2 1 H-1 P1 0.000000 -86 9 2 1 H-1 P2 0.000000 -87 9 2 1 H-1 P3 0.000000 -88 9 2 1 O-16 P0 0.000000 -89 9 2 1 O-16 P1 0.000000 -90 9 2 1 O-16 P2 0.000000 -91 9 2 1 O-16 P3 0.000000 -92 9 2 1 B-10 P0 0.000000 -93 9 2 1 B-10 P1 0.000000 -94 9 2 1 B-10 P2 0.000000 -95 9 2 1 B-10 P3 0.000000 -96 9 2 1 B-11 P0 0.000000 -97 9 2 1 B-11 P1 0.000000 -98 9 2 1 B-11 P2 0.000000 -99 9 2 1 B-11 P3 0.000000 -100 9 2 1 Fe-54 P0 0.000000 -101 9 2 1 Fe-54 P1 0.000000 -102 9 2 1 Fe-54 P2 0.000000 -103 9 2 1 Fe-54 P3 0.000000 -104 9 2 1 Fe-56 P0 0.000000 -105 9 2 1 Fe-56 P1 0.000000 -106 9 2 1 Fe-56 P2 0.000000 -107 9 2 1 Fe-56 P3 0.000000 -108 9 2 1 Fe-57 P0 0.000000 -109 9 2 1 Fe-57 P1 0.000000 -110 9 2 1 Fe-57 P2 0.000000 -111 9 2 1 Fe-57 P3 0.000000 -112 9 2 1 Fe-58 P0 0.000000 -113 9 2 1 Fe-58 P1 0.000000 -114 9 2 1 Fe-58 P2 0.000000 -115 9 2 1 Fe-58 P3 0.000000 -116 9 2 1 Ni-58 P0 0.000000 -117 9 2 1 Ni-58 P1 0.000000 -118 9 2 1 Ni-58 P2 0.000000 -119 9 2 1 Ni-58 P3 0.000000 -120 9 2 1 Ni-60 P0 0.000000 -121 9 2 1 Ni-60 P1 0.000000 -122 9 2 1 Ni-60 P2 0.000000 -123 9 2 1 Ni-60 P3 0.000000 -124 9 2 1 Ni-61 P0 0.000000 -125 9 2 1 Ni-61 P1 0.000000 -126 9 2 1 Ni-61 P2 0.000000 -127 9 2 1 Ni-61 P3 0.000000 -128 9 2 1 Ni-62 P0 0.000000 -129 9 2 1 Ni-62 P1 0.000000 -130 9 2 1 Ni-62 P2 0.000000 -131 9 2 1 Ni-62 P3 0.000000 -132 9 2 1 Ni-64 P0 0.000000 -133 9 2 1 Ni-64 P1 0.000000 -134 9 2 1 Ni-64 P2 0.000000 -135 9 2 1 Ni-64 P3 0.000000 -136 9 2 1 Mn-55 P0 0.000000 -137 9 2 1 Mn-55 P1 0.000000 -138 9 2 1 Mn-55 P2 0.000000 -139 9 2 1 Mn-55 P3 0.000000 -140 9 2 1 Si-28 P0 0.000000 -141 9 2 1 Si-28 P1 0.000000 -142 9 2 1 Si-28 P2 0.000000 -143 9 2 1 Si-28 P3 0.000000 -144 9 2 1 Si-29 P0 0.000000 -145 9 2 1 Si-29 P1 0.000000 -146 9 2 1 Si-29 P2 0.000000 -147 9 2 1 Si-29 P3 0.000000 -148 9 2 1 Si-30 P0 0.000000 -149 9 2 1 Si-30 P1 0.000000 -150 9 2 1 Si-30 P2 0.000000 -151 9 2 1 Si-30 P3 0.000000 -152 9 2 1 Cr-50 P0 0.000000 -153 9 2 1 Cr-50 P1 0.000000 -154 9 2 1 Cr-50 P2 0.000000 -155 9 2 1 Cr-50 P3 0.000000 -156 9 2 1 Cr-52 P0 0.000000 -157 9 2 1 Cr-52 P1 0.000000 -158 9 2 1 Cr-52 P2 0.000000 -159 9 2 1 Cr-52 P3 0.000000 -160 9 2 1 Cr-53 P0 0.000000 -161 9 2 1 Cr-53 P1 0.000000 -162 9 2 1 Cr-53 P2 0.000000 -163 9 2 1 Cr-53 P3 0.000000 -164 9 2 1 Cr-54 P0 0.000000 -165 9 2 1 Cr-54 P1 0.000000 -166 9 2 1 Cr-54 P2 0.000000 -167 9 2 1 Cr-54 P3 0.000000 -0 9 2 2 H-1 P0 0.000000 -1 9 2 2 H-1 P1 0.000000 -2 9 2 2 H-1 P2 0.000000 -3 9 2 2 H-1 P3 0.000000 -4 9 2 2 O-16 P0 0.000000 -5 9 2 2 O-16 P1 0.000000 -6 9 2 2 O-16 P2 0.000000 -7 9 2 2 O-16 P3 0.000000 -8 9 2 2 B-10 P0 0.000000 -9 9 2 2 B-10 P1 0.000000 -10 9 2 2 B-10 P2 0.000000 -11 9 2 2 B-10 P3 0.000000 -12 9 2 2 B-11 P0 0.000000 -13 9 2 2 B-11 P1 0.000000 -14 9 2 2 B-11 P2 0.000000 -15 9 2 2 B-11 P3 0.000000 -16 9 2 2 Fe-54 P0 0.000000 -17 9 2 2 Fe-54 P1 0.000000 -18 9 2 2 Fe-54 P2 0.000000 -19 9 2 2 Fe-54 P3 0.000000 -20 9 2 2 Fe-56 P0 0.000000 -21 9 2 2 Fe-56 P1 0.000000 -22 9 2 2 Fe-56 P2 0.000000 -23 9 2 2 Fe-56 P3 0.000000 -24 9 2 2 Fe-57 P0 0.000000 -25 9 2 2 Fe-57 P1 0.000000 -26 9 2 2 Fe-57 P2 0.000000 -27 9 2 2 Fe-57 P3 0.000000 -28 9 2 2 Fe-58 P0 0.000000 -29 9 2 2 Fe-58 P1 0.000000 -30 9 2 2 Fe-58 P2 0.000000 -31 9 2 2 Fe-58 P3 0.000000 -32 9 2 2 Ni-58 P0 0.000000 -33 9 2 2 Ni-58 P1 0.000000 -34 9 2 2 Ni-58 P2 0.000000 -35 9 2 2 Ni-58 P3 0.000000 -36 9 2 2 Ni-60 P0 0.000000 -37 9 2 2 Ni-60 P1 0.000000 -38 9 2 2 Ni-60 P2 0.000000 -39 9 2 2 Ni-60 P3 0.000000 -40 9 2 2 Ni-61 P0 0.000000 -41 9 2 2 Ni-61 P1 0.000000 -42 9 2 2 Ni-61 P2 0.000000 -43 9 2 2 Ni-61 P3 0.000000 -44 9 2 2 Ni-62 P0 0.000000 -45 9 2 2 Ni-62 P1 0.000000 -46 9 2 2 Ni-62 P2 0.000000 -47 9 2 2 Ni-62 P3 0.000000 -48 9 2 2 Ni-64 P0 0.000000 -49 9 2 2 Ni-64 P1 0.000000 -50 9 2 2 Ni-64 P2 0.000000 -51 9 2 2 Ni-64 P3 0.000000 -52 9 2 2 Mn-55 P0 0.000000 -53 9 2 2 Mn-55 P1 0.000000 -54 9 2 2 Mn-55 P2 0.000000 -55 9 2 2 Mn-55 P3 0.000000 -56 9 2 2 Si-28 P0 0.000000 -57 9 2 2 Si-28 P1 0.000000 -58 9 2 2 Si-28 P2 0.000000 -59 9 2 2 Si-28 P3 0.000000 -60 9 2 2 Si-29 P0 0.000000 -61 9 2 2 Si-29 P1 0.000000 -62 9 2 2 Si-29 P2 0.000000 -63 9 2 2 Si-29 P3 0.000000 -64 9 2 2 Si-30 P0 0.000000 -65 9 2 2 Si-30 P1 0.000000 -66 9 2 2 Si-30 P2 0.000000 -67 9 2 2 Si-30 P3 0.000000 -68 9 2 2 Cr-50 P0 0.000000 -69 9 2 2 Cr-50 P1 0.000000 -70 9 2 2 Cr-50 P2 0.000000 -71 9 2 2 Cr-50 P3 0.000000 -72 9 2 2 Cr-52 P0 0.000000 -73 9 2 2 Cr-52 P1 0.000000 -74 9 2 2 Cr-52 P2 0.000000 -75 9 2 2 Cr-52 P3 0.000000 -76 9 2 2 Cr-53 P0 0.000000 -77 9 2 2 Cr-53 P1 0.000000 -78 9 2 2 Cr-53 P2 0.000000 -79 9 2 2 Cr-53 P3 0.000000 -80 9 2 2 Cr-54 P0 0.000000 -81 9 2 2 Cr-54 P1 0.000000 -82 9 2 2 Cr-54 P2 0.000000 -83 9 2 2 Cr-54 P3 0.000000 material group out nuclide mean std. dev. -21 9 1 H-1 0 0 -22 9 1 O-16 0 0 -23 9 1 B-10 0 0 -24 9 1 B-11 0 0 -25 9 1 Fe-54 0 0 -26 9 1 Fe-56 0 0 -27 9 1 Fe-57 0 0 -28 9 1 Fe-58 0 0 -29 9 1 Ni-58 0 0 -30 9 1 Ni-60 0 0 -31 9 1 Ni-61 0 0 -32 9 1 Ni-62 0 0 -33 9 1 Ni-64 0 0 -34 9 1 Mn-55 0 0 -35 9 1 Si-28 0 0 -36 9 1 Si-29 0 0 -37 9 1 Si-30 0 0 -38 9 1 Cr-50 0 0 -39 9 1 Cr-52 0 0 -40 9 1 Cr-53 0 0 -41 9 1 Cr-54 0 0 -0 9 2 H-1 0 0 -1 9 2 O-16 0 0 -2 9 2 B-10 0 0 -3 9 2 B-11 0 0 -4 9 2 Fe-54 0 0 -5 9 2 Fe-56 0 0 -6 9 2 Fe-57 0 0 -7 9 2 Fe-58 0 0 -8 9 2 Ni-58 0 0 -9 9 2 Ni-60 0 0 -10 9 2 Ni-61 0 0 -11 9 2 Ni-62 0 0 -12 9 2 Ni-64 0 0 -13 9 2 Mn-55 0 0 -14 9 2 Si-28 0 0 -15 9 2 Si-29 0 0 -16 9 2 Si-30 0 0 -17 9 2 Cr-50 0 0 -18 9 2 Cr-52 0 0 -19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 10 1 H-1 0.123944 0.541390 -22 10 1 O-16 0.000000 0.000000 -23 10 1 B-10 0.000000 0.000000 -24 10 1 B-11 0.000000 0.000000 -25 10 1 Fe-54 0.000000 0.000000 -26 10 1 Fe-56 0.000000 0.000000 -27 10 1 Fe-57 0.000000 0.000000 -28 10 1 Fe-58 0.000000 0.000000 -29 10 1 Ni-58 0.000000 0.000000 -30 10 1 Ni-60 0.000000 0.000000 -31 10 1 Ni-61 0.000000 0.000000 -32 10 1 Ni-62 0.000000 0.000000 -33 10 1 Ni-64 0.000000 0.000000 -34 10 1 Mn-55 0.000000 0.000000 -35 10 1 Si-28 0.000000 0.000000 -36 10 1 Si-29 0.000000 0.000000 -37 10 1 Si-30 0.000000 0.000000 -38 10 1 Cr-50 0.111571 0.138458 -39 10 1 Cr-52 0.000000 0.000000 -40 10 1 Cr-53 0.000000 0.000000 -41 10 1 Cr-54 0.000000 0.000000 -0 10 2 H-1 0.000000 0.000000 -1 10 2 O-16 0.000000 0.000000 -2 10 2 B-10 0.000000 0.000000 -3 10 2 B-11 0.000000 0.000000 -4 10 2 Fe-54 0.000000 0.000000 -5 10 2 Fe-56 0.000000 0.000000 -6 10 2 Fe-57 0.000000 0.000000 -7 10 2 Fe-58 0.000000 0.000000 -8 10 2 Ni-58 0.000000 0.000000 -9 10 2 Ni-60 0.000000 0.000000 -10 10 2 Ni-61 0.000000 0.000000 -11 10 2 Ni-62 0.000000 0.000000 -12 10 2 Ni-64 0.000000 0.000000 -13 10 2 Mn-55 0.000000 0.000000 -14 10 2 Si-28 0.000000 0.000000 -15 10 2 Si-29 0.000000 0.000000 -16 10 2 Si-30 0.000000 0.000000 -17 10 2 Cr-50 0.000000 0.000000 -18 10 2 Cr-52 0.000000 0.000000 -19 10 2 Cr-53 0.000000 0.000000 -20 10 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 10 1 H-1 0 0 -22 10 1 O-16 0 0 -23 10 1 B-10 0 0 -24 10 1 B-11 0 0 -25 10 1 Fe-54 0 0 -26 10 1 Fe-56 0 0 -27 10 1 Fe-57 0 0 -28 10 1 Fe-58 0 0 -29 10 1 Ni-58 0 0 -30 10 1 Ni-60 0 0 -31 10 1 Ni-61 0 0 -32 10 1 Ni-62 0 0 -33 10 1 Ni-64 0 0 -34 10 1 Mn-55 0 0 -35 10 1 Si-28 0 0 -36 10 1 Si-29 0 0 -37 10 1 Si-30 0 0 -38 10 1 Cr-50 0 0 -39 10 1 Cr-52 0 0 -40 10 1 Cr-53 0 0 -41 10 1 Cr-54 0 0 -0 10 2 H-1 0 0 -1 10 2 O-16 0 0 -2 10 2 B-10 0 0 -3 10 2 B-11 0 0 -4 10 2 Fe-54 0 0 -5 10 2 Fe-56 0 0 -6 10 2 Fe-57 0 0 -7 10 2 Fe-58 0 0 -8 10 2 Ni-58 0 0 -9 10 2 Ni-60 0 0 -10 10 2 Ni-61 0 0 -11 10 2 Ni-62 0 0 -12 10 2 Ni-64 0 0 -13 10 2 Mn-55 0 0 -14 10 2 Si-28 0 0 -15 10 2 Si-29 0 0 -16 10 2 Si-30 0 0 -17 10 2 Cr-50 0 0 -18 10 2 Cr-52 0 0 -19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in group out nuclide moment mean -252 10 1 1 H-1 P0 0.429436 -253 10 1 1 H-1 P1 0.305492 -254 10 1 1 H-1 P2 0.144235 -255 10 1 1 H-1 P3 0.045491 -256 10 1 1 O-16 P0 0.000000 -257 10 1 1 O-16 P1 0.000000 -258 10 1 1 O-16 P2 0.000000 -259 10 1 1 O-16 P3 0.000000 -260 10 1 1 B-10 P0 0.000000 -261 10 1 1 B-10 P1 0.000000 -262 10 1 1 B-10 P2 0.000000 -263 10 1 1 B-10 P3 0.000000 -264 10 1 1 B-11 P0 0.000000 -265 10 1 1 B-11 P1 0.000000 -266 10 1 1 B-11 P2 0.000000 -267 10 1 1 B-11 P3 0.000000 -268 10 1 1 Fe-54 P0 0.000000 -269 10 1 1 Fe-54 P1 0.000000 -270 10 1 1 Fe-54 P2 0.000000 -271 10 1 1 Fe-54 P3 0.000000 -272 10 1 1 Fe-56 P0 0.000000 -273 10 1 1 Fe-56 P1 0.000000 -274 10 1 1 Fe-56 P2 0.000000 -275 10 1 1 Fe-56 P3 0.000000 -276 10 1 1 Fe-57 P0 0.000000 -277 10 1 1 Fe-57 P1 0.000000 -278 10 1 1 Fe-57 P2 0.000000 -279 10 1 1 Fe-57 P3 0.000000 -280 10 1 1 Fe-58 P0 0.000000 -281 10 1 1 Fe-58 P1 0.000000 -282 10 1 1 Fe-58 P2 0.000000 -283 10 1 1 Fe-58 P3 0.000000 -284 10 1 1 Ni-58 P0 0.000000 -285 10 1 1 Ni-58 P1 0.000000 -286 10 1 1 Ni-58 P2 0.000000 -287 10 1 1 Ni-58 P3 0.000000 -288 10 1 1 Ni-60 P0 0.000000 -289 10 1 1 Ni-60 P1 0.000000 -290 10 1 1 Ni-60 P2 0.000000 -291 10 1 1 Ni-60 P3 0.000000 -292 10 1 1 Ni-61 P0 0.000000 -293 10 1 1 Ni-61 P1 0.000000 -294 10 1 1 Ni-61 P2 0.000000 -295 10 1 1 Ni-61 P3 0.000000 -296 10 1 1 Ni-62 P0 0.000000 -297 10 1 1 Ni-62 P1 0.000000 -298 10 1 1 Ni-62 P2 0.000000 -299 10 1 1 Ni-62 P3 0.000000 -300 10 1 1 Ni-64 P0 0.000000 -301 10 1 1 Ni-64 P1 0.000000 -302 10 1 1 Ni-64 P2 0.000000 -303 10 1 1 Ni-64 P3 0.000000 -304 10 1 1 Mn-55 P0 0.000000 -305 10 1 1 Mn-55 P1 0.000000 -306 10 1 1 Mn-55 P2 0.000000 -307 10 1 1 Mn-55 P3 0.000000 -308 10 1 1 Si-28 P0 0.000000 -309 10 1 1 Si-28 P1 0.000000 -310 10 1 1 Si-28 P2 0.000000 -311 10 1 1 Si-28 P3 0.000000 -312 10 1 1 Si-29 P0 0.000000 -313 10 1 1 Si-29 P1 0.000000 -314 10 1 1 Si-29 P2 0.000000 -315 10 1 1 Si-29 P3 0.000000 -316 10 1 1 Si-30 P0 0.000000 -317 10 1 1 Si-30 P1 0.000000 -318 10 1 1 Si-30 P2 0.000000 -319 10 1 1 Si-30 P3 0.000000 -320 10 1 1 Cr-50 P0 0.071573 -321 10 1 1 Cr-50 P1 -0.039998 -322 10 1 1 Cr-50 P2 -0.002257 -323 10 1 1 Cr-50 P3 0.028768 -324 10 1 1 Cr-52 P0 0.000000 -325 10 1 1 Cr-52 P1 0.000000 -326 10 1 1 Cr-52 P2 0.000000 -327 10 1 1 Cr-52 P3 0.000000 -328 10 1 1 Cr-53 P0 0.000000 -329 10 1 1 Cr-53 P1 0.000000 -330 10 1 1 Cr-53 P2 0.000000 -331 10 1 1 Cr-53 P3 0.000000 -332 10 1 1 Cr-54 P0 0.000000 -333 10 1 1 Cr-54 P1 0.000000 -334 10 1 1 Cr-54 P2 0.000000 -335 10 1 1 Cr-54 P3 0.000000 -168 10 1 2 H-1 P0 0.000000 -169 10 1 2 H-1 P1 0.000000 -170 10 1 2 H-1 P2 0.000000 -171 10 1 2 H-1 P3 0.000000 -172 10 1 2 O-16 P0 0.000000 -173 10 1 2 O-16 P1 0.000000 -174 10 1 2 O-16 P2 0.000000 -175 10 1 2 O-16 P3 0.000000 -176 10 1 2 B-10 P0 0.000000 -177 10 1 2 B-10 P1 0.000000 -178 10 1 2 B-10 P2 0.000000 -179 10 1 2 B-10 P3 0.000000 -180 10 1 2 B-11 P0 0.000000 -181 10 1 2 B-11 P1 0.000000 -182 10 1 2 B-11 P2 0.000000 -183 10 1 2 B-11 P3 0.000000 -184 10 1 2 Fe-54 P0 0.000000 -185 10 1 2 Fe-54 P1 0.000000 -186 10 1 2 Fe-54 P2 0.000000 -187 10 1 2 Fe-54 P3 0.000000 -188 10 1 2 Fe-56 P0 0.000000 -189 10 1 2 Fe-56 P1 0.000000 -190 10 1 2 Fe-56 P2 0.000000 -191 10 1 2 Fe-56 P3 0.000000 -192 10 1 2 Fe-57 P0 0.000000 -193 10 1 2 Fe-57 P1 0.000000 -194 10 1 2 Fe-57 P2 0.000000 -195 10 1 2 Fe-57 P3 0.000000 -196 10 1 2 Fe-58 P0 0.000000 -197 10 1 2 Fe-58 P1 0.000000 -198 10 1 2 Fe-58 P2 0.000000 -199 10 1 2 Fe-58 P3 0.000000 -200 10 1 2 Ni-58 P0 0.000000 -201 10 1 2 Ni-58 P1 0.000000 -202 10 1 2 Ni-58 P2 0.000000 -203 10 1 2 Ni-58 P3 0.000000 -204 10 1 2 Ni-60 P0 0.000000 -205 10 1 2 Ni-60 P1 0.000000 -206 10 1 2 Ni-60 P2 0.000000 -207 10 1 2 Ni-60 P3 0.000000 -208 10 1 2 Ni-61 P0 0.000000 -209 10 1 2 Ni-61 P1 0.000000 -210 10 1 2 Ni-61 P2 0.000000 -211 10 1 2 Ni-61 P3 0.000000 -212 10 1 2 Ni-62 P0 0.000000 -213 10 1 2 Ni-62 P1 0.000000 -214 10 1 2 Ni-62 P2 0.000000 -215 10 1 2 Ni-62 P3 0.000000 -216 10 1 2 Ni-64 P0 0.000000 -217 10 1 2 Ni-64 P1 0.000000 -218 10 1 2 Ni-64 P2 0.000000 -219 10 1 2 Ni-64 P3 0.000000 -220 10 1 2 Mn-55 P0 0.000000 -221 10 1 2 Mn-55 P1 0.000000 -222 10 1 2 Mn-55 P2 0.000000 -223 10 1 2 Mn-55 P3 0.000000 -224 10 1 2 Si-28 P0 0.000000 -225 10 1 2 Si-28 P1 0.000000 -226 10 1 2 Si-28 P2 0.000000 -227 10 1 2 Si-28 P3 0.000000 -228 10 1 2 Si-29 P0 0.000000 -229 10 1 2 Si-29 P1 0.000000 -230 10 1 2 Si-29 P2 0.000000 -231 10 1 2 Si-29 P3 0.000000 -232 10 1 2 Si-30 P0 0.000000 -233 10 1 2 Si-30 P1 0.000000 -234 10 1 2 Si-30 P2 0.000000 -235 10 1 2 Si-30 P3 0.000000 -236 10 1 2 Cr-50 P0 0.000000 -237 10 1 2 Cr-50 P1 0.000000 -238 10 1 2 Cr-50 P2 0.000000 -239 10 1 2 Cr-50 P3 0.000000 -240 10 1 2 Cr-52 P0 0.000000 -241 10 1 2 Cr-52 P1 0.000000 -242 10 1 2 Cr-52 P2 0.000000 -243 10 1 2 Cr-52 P3 0.000000 -244 10 1 2 Cr-53 P0 0.000000 -245 10 1 2 Cr-53 P1 0.000000 -246 10 1 2 Cr-53 P2 0.000000 -247 10 1 2 Cr-53 P3 0.000000 -248 10 1 2 Cr-54 P0 0.000000 -249 10 1 2 Cr-54 P1 0.000000 -250 10 1 2 Cr-54 P2 0.000000 -251 10 1 2 Cr-54 P3 0.000000 -84 10 2 1 H-1 P0 0.000000 -85 10 2 1 H-1 P1 0.000000 -86 10 2 1 H-1 P2 0.000000 -87 10 2 1 H-1 P3 0.000000 -88 10 2 1 O-16 P0 0.000000 -89 10 2 1 O-16 P1 0.000000 -90 10 2 1 O-16 P2 0.000000 -91 10 2 1 O-16 P3 0.000000 -92 10 2 1 B-10 P0 0.000000 -93 10 2 1 B-10 P1 0.000000 -94 10 2 1 B-10 P2 0.000000 -95 10 2 1 B-10 P3 0.000000 -96 10 2 1 B-11 P0 0.000000 -97 10 2 1 B-11 P1 0.000000 -98 10 2 1 B-11 P2 0.000000 -99 10 2 1 B-11 P3 0.000000 -100 10 2 1 Fe-54 P0 0.000000 -101 10 2 1 Fe-54 P1 0.000000 -102 10 2 1 Fe-54 P2 0.000000 -103 10 2 1 Fe-54 P3 0.000000 -104 10 2 1 Fe-56 P0 0.000000 -105 10 2 1 Fe-56 P1 0.000000 -106 10 2 1 Fe-56 P2 0.000000 -107 10 2 1 Fe-56 P3 0.000000 -108 10 2 1 Fe-57 P0 0.000000 -109 10 2 1 Fe-57 P1 0.000000 -110 10 2 1 Fe-57 P2 0.000000 -111 10 2 1 Fe-57 P3 0.000000 -112 10 2 1 Fe-58 P0 0.000000 -113 10 2 1 Fe-58 P1 0.000000 -114 10 2 1 Fe-58 P2 0.000000 -115 10 2 1 Fe-58 P3 0.000000 -116 10 2 1 Ni-58 P0 0.000000 -117 10 2 1 Ni-58 P1 0.000000 -118 10 2 1 Ni-58 P2 0.000000 -119 10 2 1 Ni-58 P3 0.000000 -120 10 2 1 Ni-60 P0 0.000000 -121 10 2 1 Ni-60 P1 0.000000 -122 10 2 1 Ni-60 P2 0.000000 -123 10 2 1 Ni-60 P3 0.000000 -124 10 2 1 Ni-61 P0 0.000000 -125 10 2 1 Ni-61 P1 0.000000 -126 10 2 1 Ni-61 P2 0.000000 -127 10 2 1 Ni-61 P3 0.000000 -128 10 2 1 Ni-62 P0 0.000000 -129 10 2 1 Ni-62 P1 0.000000 -130 10 2 1 Ni-62 P2 0.000000 -131 10 2 1 Ni-62 P3 0.000000 -132 10 2 1 Ni-64 P0 0.000000 -133 10 2 1 Ni-64 P1 0.000000 -134 10 2 1 Ni-64 P2 0.000000 -135 10 2 1 Ni-64 P3 0.000000 -136 10 2 1 Mn-55 P0 0.000000 -137 10 2 1 Mn-55 P1 0.000000 -138 10 2 1 Mn-55 P2 0.000000 -139 10 2 1 Mn-55 P3 0.000000 -140 10 2 1 Si-28 P0 0.000000 -141 10 2 1 Si-28 P1 0.000000 -142 10 2 1 Si-28 P2 0.000000 -143 10 2 1 Si-28 P3 0.000000 -144 10 2 1 Si-29 P0 0.000000 -145 10 2 1 Si-29 P1 0.000000 -146 10 2 1 Si-29 P2 0.000000 -147 10 2 1 Si-29 P3 0.000000 -148 10 2 1 Si-30 P0 0.000000 -149 10 2 1 Si-30 P1 0.000000 -150 10 2 1 Si-30 P2 0.000000 -151 10 2 1 Si-30 P3 0.000000 -152 10 2 1 Cr-50 P0 0.000000 -153 10 2 1 Cr-50 P1 0.000000 -154 10 2 1 Cr-50 P2 0.000000 -155 10 2 1 Cr-50 P3 0.000000 -156 10 2 1 Cr-52 P0 0.000000 -157 10 2 1 Cr-52 P1 0.000000 -158 10 2 1 Cr-52 P2 0.000000 -159 10 2 1 Cr-52 P3 0.000000 -160 10 2 1 Cr-53 P0 0.000000 -161 10 2 1 Cr-53 P1 0.000000 -162 10 2 1 Cr-53 P2 0.000000 -163 10 2 1 Cr-53 P3 0.000000 -164 10 2 1 Cr-54 P0 0.000000 -165 10 2 1 Cr-54 P1 0.000000 -166 10 2 1 Cr-54 P2 0.000000 -167 10 2 1 Cr-54 P3 0.000000 -0 10 2 2 H-1 P0 0.000000 -1 10 2 2 H-1 P1 0.000000 -2 10 2 2 H-1 P2 0.000000 -3 10 2 2 H-1 P3 0.000000 -4 10 2 2 O-16 P0 0.000000 -5 10 2 2 O-16 P1 0.000000 -6 10 2 2 O-16 P2 0.000000 -7 10 2 2 O-16 P3 0.000000 -8 10 2 2 B-10 P0 0.000000 -9 10 2 2 B-10 P1 0.000000 -10 10 2 2 B-10 P2 0.000000 -11 10 2 2 B-10 P3 0.000000 -12 10 2 2 B-11 P0 0.000000 -13 10 2 2 B-11 P1 0.000000 -14 10 2 2 B-11 P2 0.000000 -15 10 2 2 B-11 P3 0.000000 -16 10 2 2 Fe-54 P0 0.000000 -17 10 2 2 Fe-54 P1 0.000000 -18 10 2 2 Fe-54 P2 0.000000 -19 10 2 2 Fe-54 P3 0.000000 -20 10 2 2 Fe-56 P0 0.000000 -21 10 2 2 Fe-56 P1 0.000000 -22 10 2 2 Fe-56 P2 0.000000 -23 10 2 2 Fe-56 P3 0.000000 -24 10 2 2 Fe-57 P0 0.000000 -25 10 2 2 Fe-57 P1 0.000000 -26 10 2 2 Fe-57 P2 0.000000 -27 10 2 2 Fe-57 P3 0.000000 -28 10 2 2 Fe-58 P0 0.000000 -29 10 2 2 Fe-58 P1 0.000000 -30 10 2 2 Fe-58 P2 0.000000 -31 10 2 2 Fe-58 P3 0.000000 -32 10 2 2 Ni-58 P0 0.000000 -33 10 2 2 Ni-58 P1 0.000000 -34 10 2 2 Ni-58 P2 0.000000 -35 10 2 2 Ni-58 P3 0.000000 -36 10 2 2 Ni-60 P0 0.000000 -37 10 2 2 Ni-60 P1 0.000000 -38 10 2 2 Ni-60 P2 0.000000 -39 10 2 2 Ni-60 P3 0.000000 -40 10 2 2 Ni-61 P0 0.000000 -41 10 2 2 Ni-61 P1 0.000000 -42 10 2 2 Ni-61 P2 0.000000 -43 10 2 2 Ni-61 P3 0.000000 -44 10 2 2 Ni-62 P0 0.000000 -45 10 2 2 Ni-62 P1 0.000000 -46 10 2 2 Ni-62 P2 0.000000 -47 10 2 2 Ni-62 P3 0.000000 -48 10 2 2 Ni-64 P0 0.000000 -49 10 2 2 Ni-64 P1 0.000000 -50 10 2 2 Ni-64 P2 0.000000 -51 10 2 2 Ni-64 P3 0.000000 -52 10 2 2 Mn-55 P0 0.000000 -53 10 2 2 Mn-55 P1 0.000000 -54 10 2 2 Mn-55 P2 0.000000 -55 10 2 2 Mn-55 P3 0.000000 -56 10 2 2 Si-28 P0 0.000000 -57 10 2 2 Si-28 P1 0.000000 -58 10 2 2 Si-28 P2 0.000000 -59 10 2 2 Si-28 P3 0.000000 -60 10 2 2 Si-29 P0 0.000000 -61 10 2 2 Si-29 P1 0.000000 -62 10 2 2 Si-29 P2 0.000000 -63 10 2 2 Si-29 P3 0.000000 -64 10 2 2 Si-30 P0 0.000000 -65 10 2 2 Si-30 P1 0.000000 -66 10 2 2 Si-30 P2 0.000000 -67 10 2 2 Si-30 P3 0.000000 -68 10 2 2 Cr-50 P0 0.000000 -69 10 2 2 Cr-50 P1 0.000000 -70 10 2 2 Cr-50 P2 0.000000 -71 10 2 2 Cr-50 P3 0.000000 -72 10 2 2 Cr-52 P0 0.000000 -73 10 2 2 Cr-52 P1 0.000000 -74 10 2 2 Cr-52 P2 0.000000 -75 10 2 2 Cr-52 P3 0.000000 -76 10 2 2 Cr-53 P0 0.000000 -77 10 2 2 Cr-53 P1 0.000000 -78 10 2 2 Cr-53 P2 0.000000 -79 10 2 2 Cr-53 P3 0.000000 -80 10 2 2 Cr-54 P0 0.000000 -81 10 2 2 Cr-54 P1 0.000000 -82 10 2 2 Cr-54 P2 0.000000 -83 10 2 2 Cr-54 P3 0.000000 material group out nuclide mean std. dev. -21 10 1 H-1 0 0 -22 10 1 O-16 0 0 -23 10 1 B-10 0 0 -24 10 1 B-11 0 0 -25 10 1 Fe-54 0 0 -26 10 1 Fe-56 0 0 -27 10 1 Fe-57 0 0 -28 10 1 Fe-58 0 0 -29 10 1 Ni-58 0 0 -30 10 1 Ni-60 0 0 -31 10 1 Ni-61 0 0 -32 10 1 Ni-62 0 0 -33 10 1 Ni-64 0 0 -34 10 1 Mn-55 0 0 -35 10 1 Si-28 0 0 -36 10 1 Si-29 0 0 -37 10 1 Si-30 0 0 -38 10 1 Cr-50 0 0 -39 10 1 Cr-52 0 0 -40 10 1 Cr-53 0 0 -41 10 1 Cr-54 0 0 -0 10 2 H-1 0 0 -1 10 2 O-16 0 0 -2 10 2 B-10 0 0 -3 10 2 B-11 0 0 -4 10 2 Fe-54 0 0 -5 10 2 Fe-56 0 0 -6 10 2 Fe-57 0 0 -7 10 2 Fe-58 0 0 -8 10 2 Ni-58 0 0 -9 10 2 Ni-60 0 0 -10 10 2 Ni-61 0 0 -11 10 2 Ni-62 0 0 -12 10 2 Ni-64 0 0 -13 10 2 Mn-55 0 0 -14 10 2 Si-28 0 0 -15 10 2 Si-29 0 0 -16 10 2 Si-30 0 0 -17 10 2 Cr-50 0 0 -18 10 2 Cr-52 0 0 -19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. -9 11 1 H-1 0.131470 0.476035 -10 11 1 O-16 0.028684 0.043000 -11 11 1 B-10 0.000000 0.000000 -12 11 1 B-11 0.000000 0.000000 -13 11 1 Zr-90 0.021980 0.039963 -14 11 1 Zr-91 0.000000 0.000000 -15 11 1 Zr-92 0.000000 0.000000 -16 11 1 Zr-94 0.004191 0.087344 -17 11 1 Zr-96 0.000000 0.000000 -0 11 2 H-1 0.687243 1.239217 -1 11 2 O-16 0.000000 0.000000 -2 11 2 B-10 0.042902 0.060672 -3 11 2 B-11 0.000000 0.000000 -4 11 2 Zr-90 0.039576 0.105193 -5 11 2 Zr-91 0.000000 0.000000 -6 11 2 Zr-92 0.084226 0.103161 -7 11 2 Zr-94 0.092039 0.125985 -8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 11 1 H-1 0 0 -10 11 1 O-16 0 0 -11 11 1 B-10 0 0 -12 11 1 B-11 0 0 -13 11 1 Zr-90 0 0 -14 11 1 Zr-91 0 0 -15 11 1 Zr-92 0 0 -16 11 1 Zr-94 0 0 -17 11 1 Zr-96 0 0 -0 11 2 H-1 0 0 -1 11 2 O-16 0 0 -2 11 2 B-10 0 0 -3 11 2 B-11 0 0 -4 11 2 Zr-90 0 0 -5 11 2 Zr-91 0 0 -6 11 2 Zr-92 0 0 -7 11 2 Zr-94 0 0 -8 11 2 Zr-96 0 0 material group in group out nuclide moment mean -108 11 1 1 H-1 P0 0.350627 -109 11 1 1 H-1 P1 0.251032 -110 11 1 1 H-1 P2 0.118434 -111 11 1 1 H-1 P3 0.029897 -112 11 1 1 O-16 P0 0.031875 -113 11 1 1 O-16 P1 0.003191 -114 11 1 1 O-16 P2 -0.015458 -115 11 1 1 O-16 P3 -0.004707 -116 11 1 1 B-10 P0 0.000000 -117 11 1 1 B-10 P1 0.000000 -118 11 1 1 B-10 P2 0.000000 -119 11 1 1 B-10 P3 0.000000 -120 11 1 1 B-11 P0 0.000000 -121 11 1 1 B-11 P1 0.000000 -122 11 1 1 B-11 P2 0.000000 -123 11 1 1 B-11 P3 0.000000 -124 11 1 1 Zr-90 P0 0.031875 -125 11 1 1 Zr-90 P1 0.009895 -126 11 1 1 Zr-90 P2 -0.011330 -127 11 1 1 Zr-90 P3 -0.012459 -128 11 1 1 Zr-91 P0 0.000000 -129 11 1 1 Zr-91 P1 0.000000 -130 11 1 1 Zr-91 P2 0.000000 -131 11 1 1 Zr-91 P3 0.000000 -132 11 1 1 Zr-92 P0 0.000000 -133 11 1 1 Zr-92 P1 0.000000 -134 11 1 1 Zr-92 P2 0.000000 -135 11 1 1 Zr-92 P3 0.000000 -136 11 1 1 Zr-94 P0 0.063750 -137 11 1 1 Zr-94 P1 0.059559 -138 11 1 1 Zr-94 P2 0.051729 -139 11 1 1 Zr-94 P3 0.041273 -140 11 1 1 Zr-96 P0 0.000000 -141 11 1 1 Zr-96 P1 0.000000 -142 11 1 1 Zr-96 P2 0.000000 -143 11 1 1 Zr-96 P3 0.000000 -72 11 1 2 H-1 P0 0.031875 -73 11 1 2 H-1 P1 0.008585 -74 11 1 2 H-1 P2 -0.012470 -75 11 1 2 H-1 P3 -0.011320 -76 11 1 2 O-16 P0 0.000000 -77 11 1 2 O-16 P1 0.000000 -78 11 1 2 O-16 P2 0.000000 -79 11 1 2 O-16 P3 0.000000 -80 11 1 2 B-10 P0 0.000000 -81 11 1 2 B-10 P1 0.000000 -82 11 1 2 B-10 P2 0.000000 -83 11 1 2 B-10 P3 0.000000 -84 11 1 2 B-11 P0 0.000000 -85 11 1 2 B-11 P1 0.000000 -86 11 1 2 B-11 P2 0.000000 -87 11 1 2 B-11 P3 0.000000 -88 11 1 2 Zr-90 P0 0.000000 -89 11 1 2 Zr-90 P1 0.000000 -90 11 1 2 Zr-90 P2 0.000000 -91 11 1 2 Zr-90 P3 0.000000 -92 11 1 2 Zr-91 P0 0.000000 -93 11 1 2 Zr-91 P1 0.000000 -94 11 1 2 Zr-91 P2 0.000000 -95 11 1 2 Zr-91 P3 0.000000 -96 11 1 2 Zr-92 P0 0.000000 -97 11 1 2 Zr-92 P1 0.000000 -98 11 1 2 Zr-92 P2 0.000000 -99 11 1 2 Zr-92 P3 0.000000 -100 11 1 2 Zr-94 P0 0.000000 -101 11 1 2 Zr-94 P1 0.000000 -102 11 1 2 Zr-94 P2 0.000000 -103 11 1 2 Zr-94 P3 0.000000 -104 11 1 2 Zr-96 P0 0.000000 -105 11 1 2 Zr-96 P1 0.000000 -106 11 1 2 Zr-96 P2 0.000000 -107 11 1 2 Zr-96 P3 0.000000 -36 11 2 1 H-1 P0 0.000000 -37 11 2 1 H-1 P1 0.000000 -38 11 2 1 H-1 P2 0.000000 -39 11 2 1 H-1 P3 0.000000 -40 11 2 1 O-16 P0 0.000000 -41 11 2 1 O-16 P1 0.000000 -42 11 2 1 O-16 P2 0.000000 -43 11 2 1 O-16 P3 0.000000 -44 11 2 1 B-10 P0 0.000000 -45 11 2 1 B-10 P1 0.000000 -46 11 2 1 B-10 P2 0.000000 -47 11 2 1 B-10 P3 0.000000 -48 11 2 1 B-11 P0 0.000000 -49 11 2 1 B-11 P1 0.000000 -50 11 2 1 B-11 P2 0.000000 -51 11 2 1 B-11 P3 0.000000 -52 11 2 1 Zr-90 P0 0.000000 -53 11 2 1 Zr-90 P1 0.000000 -54 11 2 1 Zr-90 P2 0.000000 -55 11 2 1 Zr-90 P3 0.000000 -56 11 2 1 Zr-91 P0 0.000000 -57 11 2 1 Zr-91 P1 0.000000 -58 11 2 1 Zr-91 P2 0.000000 -59 11 2 1 Zr-91 P3 0.000000 -60 11 2 1 Zr-92 P0 0.000000 -61 11 2 1 Zr-92 P1 0.000000 -62 11 2 1 Zr-92 P2 0.000000 -63 11 2 1 Zr-92 P3 0.000000 -64 11 2 1 Zr-94 P0 0.000000 -65 11 2 1 Zr-94 P1 0.000000 -66 11 2 1 Zr-94 P2 0.000000 -67 11 2 1 Zr-94 P3 0.000000 -68 11 2 1 Zr-96 P0 0.000000 -69 11 2 1 Zr-96 P1 0.000000 -70 11 2 1 Zr-96 P2 0.000000 -71 11 2 1 Zr-96 P3 0.000000 -0 11 2 2 H-1 P0 0.986741 -1 11 2 2 H-1 P1 0.287943 -2 11 2 2 H-1 P2 0.156802 -3 11 2 2 H-1 P3 0.037565 -4 11 2 2 O-16 P0 0.000000 -5 11 2 2 O-16 P1 0.000000 -6 11 2 2 O-16 P2 0.000000 -7 11 2 2 O-16 P3 0.000000 -8 11 2 2 B-10 P0 0.000000 -9 11 2 2 B-10 P1 0.000000 -10 11 2 2 B-10 P2 0.000000 -11 11 2 2 B-10 P3 0.000000 -12 11 2 2 B-11 P0 0.000000 -13 11 2 2 B-11 P1 0.000000 -14 11 2 2 B-11 P2 0.000000 -15 11 2 2 B-11 P3 0.000000 -16 11 2 2 Zr-90 P0 0.085804 -17 11 2 2 Zr-90 P1 0.046227 -18 11 2 2 Zr-90 P2 -0.005520 -19 11 2 2 Zr-90 P3 -0.035731 -20 11 2 2 Zr-91 P0 0.000000 -21 11 2 2 Zr-91 P1 0.000000 -22 11 2 2 Zr-91 P2 0.000000 -23 11 2 2 Zr-91 P3 0.000000 -24 11 2 2 Zr-92 P0 0.042902 -25 11 2 2 Zr-92 P1 -0.041324 -26 11 2 2 Zr-92 P2 0.038256 -27 11 2 2 Zr-92 P3 -0.033866 -28 11 2 2 Zr-94 P0 0.085804 -29 11 2 2 Zr-94 P1 -0.006235 -30 11 2 2 Zr-94 P2 0.028653 -31 11 2 2 Zr-94 P3 -0.016482 -32 11 2 2 Zr-96 P0 0.000000 -33 11 2 2 Zr-96 P1 0.000000 -34 11 2 2 Zr-96 P2 0.000000 -35 11 2 2 Zr-96 P3 0.000000 material group out nuclide mean std. dev. -9 11 1 H-1 0 0 -10 11 1 O-16 0 0 -11 11 1 B-10 0 0 -12 11 1 B-11 0 0 -13 11 1 Zr-90 0 0 -14 11 1 Zr-91 0 0 -15 11 1 Zr-92 0 0 -16 11 1 Zr-94 0 0 -17 11 1 Zr-96 0 0 -0 11 2 H-1 0 0 -1 11 2 O-16 0 0 -2 11 2 B-10 0 0 -3 11 2 B-11 0 0 -4 11 2 Zr-90 0 0 -5 11 2 Zr-91 0 0 -6 11 2 Zr-92 0 0 -7 11 2 Zr-94 0 0 -8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. -9 12 1 H-1 0.098944 0.178543 -10 12 1 O-16 0.013270 0.020403 -11 12 1 B-10 0.000000 0.000000 -12 12 1 B-11 0.000000 0.000000 -13 12 1 Zr-90 0.089997 0.075538 -14 12 1 Zr-91 0.000000 0.000000 -15 12 1 Zr-92 0.003501 0.017031 -16 12 1 Zr-94 0.004850 0.016327 -17 12 1 Zr-96 0.002730 0.017476 -0 12 2 H-1 1.261686 1.980336 -1 12 2 O-16 0.079159 0.104796 -2 12 2 B-10 0.016928 0.023940 -3 12 2 B-11 0.000000 0.000000 -4 12 2 Zr-90 0.000000 0.000000 -5 12 2 Zr-91 0.033201 0.040665 -6 12 2 Zr-92 0.000000 0.000000 -7 12 2 Zr-94 0.000000 0.000000 -8 12 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 12 1 H-1 0 0 -10 12 1 O-16 0 0 -11 12 1 B-10 0 0 -12 12 1 B-11 0 0 -13 12 1 Zr-90 0 0 -14 12 1 Zr-91 0 0 -15 12 1 Zr-92 0 0 -16 12 1 Zr-94 0 0 -17 12 1 Zr-96 0 0 -0 12 2 H-1 0 0 -1 12 2 O-16 0 0 -2 12 2 B-10 0 0 -3 12 2 B-11 0 0 -4 12 2 Zr-90 0 0 -5 12 2 Zr-91 0 0 -6 12 2 Zr-92 0 0 -7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 material group in group out nuclide moment mean -108 12 1 1 H-1 P0 0.245156 -109 12 1 1 H-1 P1 0.173452 -110 12 1 1 H-1 P2 0.092660 -111 12 1 1 H-1 P3 0.047419 -112 12 1 1 O-16 P0 0.027240 -113 12 1 1 O-16 P1 0.013970 -114 12 1 1 O-16 P2 0.000090 -115 12 1 1 O-16 P3 -0.004169 -116 12 1 1 B-10 P0 0.000000 -117 12 1 1 B-10 P1 0.000000 -118 12 1 1 B-10 P2 0.000000 -119 12 1 1 B-10 P3 0.000000 -120 12 1 1 B-11 P0 0.000000 -121 12 1 1 B-11 P1 0.000000 -122 12 1 1 B-11 P2 0.000000 -123 12 1 1 B-11 P3 0.000000 -124 12 1 1 Zr-90 P0 0.095339 -125 12 1 1 Zr-90 P1 0.005341 -126 12 1 1 Zr-90 P2 -0.014156 -127 12 1 1 Zr-90 P3 -0.008036 -128 12 1 1 Zr-91 P0 0.000000 -129 12 1 1 Zr-91 P1 0.000000 -130 12 1 1 Zr-91 P2 0.000000 -131 12 1 1 Zr-91 P3 0.000000 -132 12 1 1 Zr-92 P0 0.013620 -133 12 1 1 Zr-92 P1 0.010119 -134 12 1 1 Zr-92 P2 0.004467 -135 12 1 1 Zr-92 P3 -0.001214 -136 12 1 1 Zr-94 P0 0.013620 -137 12 1 1 Zr-94 P1 0.008770 -138 12 1 1 Zr-94 P2 0.001661 -139 12 1 1 Zr-94 P3 -0.004065 -140 12 1 1 Zr-96 P0 0.013620 -141 12 1 1 Zr-96 P1 0.010890 -142 12 1 1 Zr-96 P2 0.006250 -143 12 1 1 Zr-96 P3 0.001069 -72 12 1 2 H-1 P0 0.027240 -73 12 1 2 H-1 P1 -0.010088 -74 12 1 2 H-1 P2 -0.006946 -75 12 1 2 H-1 P3 0.009692 -76 12 1 2 O-16 P0 0.000000 -77 12 1 2 O-16 P1 0.000000 -78 12 1 2 O-16 P2 0.000000 -79 12 1 2 O-16 P3 0.000000 -80 12 1 2 B-10 P0 0.000000 -81 12 1 2 B-10 P1 0.000000 -82 12 1 2 B-10 P2 0.000000 -83 12 1 2 B-10 P3 0.000000 -84 12 1 2 B-11 P0 0.000000 -85 12 1 2 B-11 P1 0.000000 -86 12 1 2 B-11 P2 0.000000 -87 12 1 2 B-11 P3 0.000000 -88 12 1 2 Zr-90 P0 0.000000 -89 12 1 2 Zr-90 P1 0.000000 -90 12 1 2 Zr-90 P2 0.000000 -91 12 1 2 Zr-90 P3 0.000000 -92 12 1 2 Zr-91 P0 0.000000 -93 12 1 2 Zr-91 P1 0.000000 -94 12 1 2 Zr-91 P2 0.000000 -95 12 1 2 Zr-91 P3 0.000000 -96 12 1 2 Zr-92 P0 0.000000 -97 12 1 2 Zr-92 P1 0.000000 -98 12 1 2 Zr-92 P2 0.000000 -99 12 1 2 Zr-92 P3 0.000000 -100 12 1 2 Zr-94 P0 0.000000 -101 12 1 2 Zr-94 P1 0.000000 -102 12 1 2 Zr-94 P2 0.000000 -103 12 1 2 Zr-94 P3 0.000000 -104 12 1 2 Zr-96 P0 0.000000 -105 12 1 2 Zr-96 P1 0.000000 -106 12 1 2 Zr-96 P2 0.000000 -107 12 1 2 Zr-96 P3 0.000000 -36 12 2 1 H-1 P0 0.000000 -37 12 2 1 H-1 P1 0.000000 -38 12 2 1 H-1 P2 0.000000 -39 12 2 1 H-1 P3 0.000000 -40 12 2 1 O-16 P0 0.000000 -41 12 2 1 O-16 P1 0.000000 -42 12 2 1 O-16 P2 0.000000 -43 12 2 1 O-16 P3 0.000000 -44 12 2 1 B-10 P0 0.000000 -45 12 2 1 B-10 P1 0.000000 -46 12 2 1 B-10 P2 0.000000 -47 12 2 1 B-10 P3 0.000000 -48 12 2 1 B-11 P0 0.000000 -49 12 2 1 B-11 P1 0.000000 -50 12 2 1 B-11 P2 0.000000 -51 12 2 1 B-11 P3 0.000000 -52 12 2 1 Zr-90 P0 0.000000 -53 12 2 1 Zr-90 P1 0.000000 -54 12 2 1 Zr-90 P2 0.000000 -55 12 2 1 Zr-90 P3 0.000000 -56 12 2 1 Zr-91 P0 0.000000 -57 12 2 1 Zr-91 P1 0.000000 -58 12 2 1 Zr-91 P2 0.000000 -59 12 2 1 Zr-91 P3 0.000000 -60 12 2 1 Zr-92 P0 0.000000 -61 12 2 1 Zr-92 P1 0.000000 -62 12 2 1 Zr-92 P2 0.000000 -63 12 2 1 Zr-92 P3 0.000000 -64 12 2 1 Zr-94 P0 0.000000 -65 12 2 1 Zr-94 P1 0.000000 -66 12 2 1 Zr-94 P2 0.000000 -67 12 2 1 Zr-94 P3 0.000000 -68 12 2 1 Zr-96 P0 0.000000 -69 12 2 1 Zr-96 P1 0.000000 -70 12 2 1 Zr-96 P2 0.000000 -71 12 2 1 Zr-96 P3 0.000000 -0 12 2 2 H-1 P0 1.489686 -1 12 2 2 H-1 P1 0.257467 -2 12 2 2 H-1 P2 0.001678 -3 12 2 2 H-1 P3 0.044735 -4 12 2 2 O-16 P0 0.067713 -5 12 2 2 O-16 P1 -0.011446 -6 12 2 2 O-16 P2 -0.002500 -7 12 2 2 O-16 P3 0.007446 -8 12 2 2 B-10 P0 0.000000 -9 12 2 2 B-10 P1 0.000000 -10 12 2 2 B-10 P2 0.000000 -11 12 2 2 B-10 P3 0.000000 -12 12 2 2 B-11 P0 0.000000 -13 12 2 2 B-11 P1 0.000000 -14 12 2 2 B-11 P2 0.000000 -15 12 2 2 B-11 P3 0.000000 -16 12 2 2 Zr-90 P0 0.000000 -17 12 2 2 Zr-90 P1 0.000000 -18 12 2 2 Zr-90 P2 0.000000 -19 12 2 2 Zr-90 P3 0.000000 -20 12 2 2 Zr-91 P0 0.016928 -21 12 2 2 Zr-91 P1 -0.016273 -22 12 2 2 Zr-91 P2 0.015000 -23 12 2 2 Zr-91 P3 -0.013183 -24 12 2 2 Zr-92 P0 0.000000 -25 12 2 2 Zr-92 P1 0.000000 -26 12 2 2 Zr-92 P2 0.000000 -27 12 2 2 Zr-92 P3 0.000000 -28 12 2 2 Zr-94 P0 0.000000 -29 12 2 2 Zr-94 P1 0.000000 -30 12 2 2 Zr-94 P2 0.000000 -31 12 2 2 Zr-94 P3 0.000000 -32 12 2 2 Zr-96 P0 0.000000 -33 12 2 2 Zr-96 P1 0.000000 -34 12 2 2 Zr-96 P2 0.000000 -35 12 2 2 Zr-96 P3 0.000000 material group out nuclide mean std. dev. -9 12 1 H-1 0 0 -10 12 1 O-16 0 0 -11 12 1 B-10 0 0 -12 12 1 B-11 0 0 -13 12 1 Zr-90 0 0 -14 12 1 Zr-91 0 0 -15 12 1 Zr-92 0 0 -16 12 1 Zr-94 0 0 -17 12 1 Zr-96 0 0 -0 12 2 H-1 0 0 -1 12 2 O-16 0 0 -2 12 2 B-10 0 0 -3 12 2 B-11 0 0 -4 12 2 Zr-90 0 0 -5 12 2 Zr-91 0 0 -6 12 2 Zr-92 0 0 -7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 \ No newline at end of file +002a4c91c4b4288dbac2cba267175c4560cca43685bfd5d415775e9fc1635866c1f9c3396a44d01dd29f734a0432e132408d36c9f7c4e34783cc295f2d9dc393 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index e0a7c199a..47c1ec60a 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -37,7 +37,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) self._input_set.tallies.export_to_xml() - def _get_results(self, hash_output=False): + def _get_results(self, hash_output=True): """Digest info in the statepoint and return as a string.""" # Read the statepoint file. From eb20de6a51b35d221c8ee8e1f0cc0d86478bba14 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 13 May 2016 22:32:48 -0400 Subject: [PATCH 193/259] Updating per the latest round of comments. This includes simplifying the notebook significantly, and adding a get_xsdata method to Library. --- .../pythonapi/examples/mgxs-part-iv.ipynb | 1428 +++-------------- docs/source/usersguide/mgxs_library.rst | 6 +- openmc/material.py | 12 +- openmc/mgxs/library.py | 275 ++-- openmc/mgxs_library.py | 211 +-- src/input_xml.F90 | 12 +- 6 files changed, 393 insertions(+), 1551 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index 823d67ae1..d03db2cce 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -7,9 +7,8 @@ "This Notebook illustrates the use of the openmc.mgxs.Library class specifically for application in OpenMC's multi-group mode. This example notebook follows the same process as was done in MGXS Part III, but instead uses OpenMC as the multi-group solver. This Notebook illustrates the following features:\n", "\n", " - Calculation of multi-group cross sections for a fuel assembly\n", - " - Automated creation, manipulation and storage of MGXS with openmc.mgxs.Library\n", - " - Validation of multi-group cross sections with OpenMC\n", - " - Steady-state pin-by-pin fission rates comparison between Continuous-Energy mode and Multi-Group OpenMC.\n", + " - Automated creation and storage of MGXS with openmc.mgxs.Library\n", + " - Steady-state pin-by-pin fission rates comparison between continuous-energy and multi-group OpenMC.\n", "\n", "Note: This Notebook illustrates the use of Pandas DataFrames to containerize multi-group cross section data. We recommend using Pandas >v0.15.0 or later since OpenMC's Python API leverages the multi-indexing feature included in the most recent releases of Pandas.\n" ] @@ -84,23 +83,23 @@ "outputs": [], "source": [ "# 1.6 enriched fuel\n", - "fuel = openmc.Material(name='1.6% Fuel')\n", + "fuel = openmc.Material(name='1.6% Fuel', material_id=1)\n", "fuel.set_density('g/cm3', 10.31341)\n", "fuel.add_nuclide(u235, 3.7503e-4)\n", "fuel.add_nuclide(u238, 2.2625e-2)\n", "fuel.add_nuclide(o16, 4.6007e-2)\n", "\n", + "# zircaloy\n", + "zircaloy = openmc.Material(name='Zircaloy', material_id=2)\n", + "zircaloy.set_density('g/cm3', 6.55)\n", + "zircaloy.add_nuclide(zr90, 7.2758e-3)\n", + "\n", "# borated water\n", - "water = openmc.Material(name='Borated Water')\n", + "water = openmc.Material(name='Borated Water', material_id=3)\n", "water.set_density('g/cm3', 0.740582)\n", "water.add_nuclide(h1, 4.9457e-2)\n", "water.add_nuclide(o16, 2.4732e-2)\n", - "water.add_nuclide(b10, 8.0042e-6)\n", - "\n", - "# zircaloy\n", - "zircaloy = openmc.Material(name='Zircaloy')\n", - "zircaloy.set_density('g/cm3', 6.55)\n", - "zircaloy.add_nuclide(zr90, 7.2758e-3)" + "water.add_nuclide(b10, 8.0042e-6)\n" ] }, { @@ -119,7 +118,7 @@ "outputs": [], "source": [ "# Instantiate a Materials object\n", - "materials_file = openmc.Materials((fuel, water, zircaloy))\n", + "materials_file = openmc.Materials((fuel, zircaloy, water))\n", "materials_file.default_xs = '71c'\n", "\n", "# Export to \"materials.xml\"\n", @@ -347,7 +346,7 @@ "outputs": [], "source": [ "# OpenMC simulation parameters\n", - "batches = 500\n", + "batches = 50\n", "inactive = 10\n", "particles = 5000\n", "\n", @@ -434,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -523,7 +522,7 @@ "source": [ "Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports \"material,\" \"cell,\" and \"universe\" domain types. We will use a \"cell\" domain type here to compute cross sections in each of the cells in the fuel assembly geometry.\n", "\n", - "**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell or universe) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property. In our case, we wish to compute multi-group cross sections in each and every cell since they will be needed in our downstream multi-group OpenMC calculation on the identical combinatorial geometry mesh." + "**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell or universe) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property. In our this simple example, we wish to compute multi-group cross sections only for each material." ] }, { @@ -535,10 +534,10 @@ "outputs": [], "source": [ "# Specify a \"cell\" domain type for the cross section tally filters\n", - "mgxs_lib.domain_type = \"cell\"\n", + "mgxs_lib.domain_type = \"material\"\n", "\n", "# Specify the cell domains over which to compute multi-group cross sections\n", - "mgxs_lib.domains = geometry.get_all_material_cells()" + "mgxs_lib.domains = geometry.get_all_materials()" ] }, { @@ -697,7 +696,7 @@ " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: c779ca42c41a062a6a813e03f2add2d182ca9190\n", - " Date/Time: 2016-05-12 21:15:02\n", + " Date/Time: 2016-05-13 22:29:41\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -713,9 +712,9 @@ " Loading ACE cross section table: 92235.71c\n", " Loading ACE cross section table: 92238.71c\n", " Loading ACE cross section table: 8016.71c\n", + " Loading ACE cross section table: 40090.71c\n", " Loading ACE cross section table: 1001.71c\n", " Loading ACE cross section table: 5010.71c\n", - " Loading ACE cross section table: 40090.71c\n", " Maximum neutron transport energy: 20.0000 MeV for 92235.71c\n", " Initializing source particles...\n", "\n", @@ -725,507 +724,57 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.05162 \n", - " 2/1 1.05369 \n", - " 3/1 1.02989 \n", - " 4/1 1.00126 \n", - " 5/1 1.03151 \n", - " 6/1 1.00183 \n", - " 7/1 0.99379 \n", - " 8/1 1.04193 \n", - " 9/1 1.01578 \n", - " 10/1 1.03349 \n", - " 11/1 1.03354 \n", - " 12/1 1.03646 1.03500 +/- 0.00146\n", - " 13/1 1.00873 1.02624 +/- 0.00880\n", - " 14/1 1.04263 1.03034 +/- 0.00745\n", - " 15/1 1.01556 1.02738 +/- 0.00648\n", - " 16/1 1.04897 1.03098 +/- 0.00640\n", - " 17/1 1.01796 1.02912 +/- 0.00572\n", - " 18/1 1.02276 1.02833 +/- 0.00502\n", - " 19/1 1.04003 1.02963 +/- 0.00461\n", - " 20/1 1.00695 1.02736 +/- 0.00471\n", - " 21/1 1.00012 1.02488 +/- 0.00493\n", - " 22/1 1.03580 1.02579 +/- 0.00459\n", - " 23/1 1.03427 1.02644 +/- 0.00427\n", - " 24/1 1.06024 1.02886 +/- 0.00463\n", - " 25/1 1.00742 1.02743 +/- 0.00454\n", - " 26/1 1.02556 1.02731 +/- 0.00425\n", - " 27/1 1.02207 1.02700 +/- 0.00401\n", - " 28/1 1.05847 1.02875 +/- 0.00416\n", - " 29/1 1.01125 1.02783 +/- 0.00404\n", - " 30/1 1.03213 1.02804 +/- 0.00384\n", - " 31/1 1.02241 1.02778 +/- 0.00366\n", - " 32/1 1.02675 1.02773 +/- 0.00349\n", - " 33/1 1.05484 1.02891 +/- 0.00354\n", - " 34/1 1.01893 1.02849 +/- 0.00341\n", - " 35/1 0.99044 1.02697 +/- 0.00361\n", - " 36/1 1.02602 1.02693 +/- 0.00347\n", - " 37/1 1.04107 1.02746 +/- 0.00338\n", - " 38/1 1.03237 1.02763 +/- 0.00326\n", - " 39/1 1.01489 1.02719 +/- 0.00318\n", - " 40/1 1.01065 1.02664 +/- 0.00312\n", - " 41/1 1.03722 1.02698 +/- 0.00304\n", - " 42/1 1.04339 1.02750 +/- 0.00298\n", - " 43/1 1.00921 1.02694 +/- 0.00294\n", - " 44/1 1.04576 1.02750 +/- 0.00291\n", - " 45/1 1.02580 1.02745 +/- 0.00283\n", - " 46/1 1.03464 1.02765 +/- 0.00275\n", - " 47/1 1.01552 1.02732 +/- 0.00270\n", - " 48/1 1.03357 1.02748 +/- 0.00263\n", - " 49/1 1.03439 1.02766 +/- 0.00257\n", - " 50/1 1.04281 1.02804 +/- 0.00253\n", - " 51/1 1.02902 1.02806 +/- 0.00247\n", - " 52/1 1.02245 1.02793 +/- 0.00241\n", - " 53/1 1.05271 1.02851 +/- 0.00243\n", - " 54/1 0.98630 1.02755 +/- 0.00256\n", - " 55/1 1.02690 1.02753 +/- 0.00250\n", - " 56/1 1.04107 1.02783 +/- 0.00246\n", - " 57/1 1.03029 1.02788 +/- 0.00241\n", - " 58/1 1.01874 1.02769 +/- 0.00237\n", - " 59/1 1.04211 1.02798 +/- 0.00234\n", - " 60/1 0.99584 1.02734 +/- 0.00238\n", - " 61/1 1.05166 1.02782 +/- 0.00238\n", - " 62/1 1.05572 1.02835 +/- 0.00239\n", - " 63/1 1.02694 1.02833 +/- 0.00235\n", - " 64/1 1.03314 1.02842 +/- 0.00231\n", - " 65/1 1.05850 1.02896 +/- 0.00233\n", - " 66/1 1.01100 1.02864 +/- 0.00231\n", - " 67/1 1.03784 1.02880 +/- 0.00227\n", - " 68/1 1.04084 1.02901 +/- 0.00224\n", - " 69/1 1.03932 1.02919 +/- 0.00221\n", - " 70/1 1.02564 1.02913 +/- 0.00218\n", - " 71/1 1.00027 1.02865 +/- 0.00219\n", - " 72/1 1.02385 1.02858 +/- 0.00216\n", - " 73/1 1.04885 1.02890 +/- 0.00215\n", - " 74/1 1.00298 1.02849 +/- 0.00215\n", - " 75/1 1.02009 1.02836 +/- 0.00212\n", - " 76/1 1.04505 1.02862 +/- 0.00211\n", - " 77/1 1.02889 1.02862 +/- 0.00207\n", - " 78/1 1.01306 1.02839 +/- 0.00206\n", - " 79/1 1.01817 1.02824 +/- 0.00203\n", - " 80/1 1.00533 1.02792 +/- 0.00203\n", - " 81/1 1.04439 1.02815 +/- 0.00201\n", - " 82/1 1.02212 1.02806 +/- 0.00199\n", - " 83/1 0.99419 1.02760 +/- 0.00201\n", - " 84/1 1.07132 1.02819 +/- 0.00207\n", - " 85/1 1.02710 1.02818 +/- 0.00204\n", - " 86/1 1.01702 1.02803 +/- 0.00202\n", - " 87/1 1.02134 1.02794 +/- 0.00200\n", - " 88/1 1.05231 1.02826 +/- 0.00200\n", - " 89/1 1.05290 1.02857 +/- 0.00200\n", - " 90/1 1.05751 1.02893 +/- 0.00200\n", - " 91/1 1.03970 1.02906 +/- 0.00198\n", - " 92/1 0.99678 1.02867 +/- 0.00200\n", - " 93/1 1.04471 1.02886 +/- 0.00198\n", - " 94/1 1.00820 1.02862 +/- 0.00198\n", - " 95/1 1.05823 1.02896 +/- 0.00198\n", - " 96/1 1.05118 1.02922 +/- 0.00198\n", - " 97/1 1.03617 1.02930 +/- 0.00196\n", - " 98/1 1.00585 1.02904 +/- 0.00195\n", - " 99/1 1.06663 1.02946 +/- 0.00198\n", - " 100/1 1.01802 1.02933 +/- 0.00196\n", - " 101/1 1.02695 1.02931 +/- 0.00194\n", - " 102/1 1.01642 1.02917 +/- 0.00192\n", - " 103/1 1.02567 1.02913 +/- 0.00190\n", - " 104/1 1.03519 1.02919 +/- 0.00188\n", - " 105/1 1.02439 1.02914 +/- 0.00186\n", - " 106/1 1.03779 1.02923 +/- 0.00184\n", - " 107/1 1.01304 1.02906 +/- 0.00183\n", - " 108/1 1.02541 1.02903 +/- 0.00181\n", - " 109/1 1.04297 1.02917 +/- 0.00180\n", - " 110/1 1.00442 1.02892 +/- 0.00180\n", - " 111/1 1.03102 1.02894 +/- 0.00178\n", - " 112/1 1.00380 1.02870 +/- 0.00178\n", - " 113/1 1.04010 1.02881 +/- 0.00177\n", - " 114/1 1.01297 1.02865 +/- 0.00176\n", - " 115/1 1.00130 1.02839 +/- 0.00176\n", - " 116/1 1.02001 1.02831 +/- 0.00174\n", - " 117/1 1.03847 1.02841 +/- 0.00173\n", - " 118/1 1.00371 1.02818 +/- 0.00173\n", - " 119/1 1.02650 1.02817 +/- 0.00171\n", - " 120/1 1.00767 1.02798 +/- 0.00171\n", - " 121/1 1.00408 1.02776 +/- 0.00171\n", - " 122/1 1.00235 1.02754 +/- 0.00171\n", - " 123/1 1.01212 1.02740 +/- 0.00170\n", - " 124/1 1.03278 1.02745 +/- 0.00168\n", - " 125/1 1.00818 1.02728 +/- 0.00168\n", - " 126/1 1.02132 1.02723 +/- 0.00166\n", - " 127/1 1.03677 1.02731 +/- 0.00165\n", - " 128/1 1.04148 1.02743 +/- 0.00164\n", - " 129/1 1.01245 1.02730 +/- 0.00163\n", - " 130/1 1.04172 1.02742 +/- 0.00162\n", - " 131/1 1.04519 1.02757 +/- 0.00162\n", - " 132/1 1.02495 1.02755 +/- 0.00160\n", - " 133/1 0.99747 1.02731 +/- 0.00161\n", - " 134/1 1.02411 1.02728 +/- 0.00160\n", - " 135/1 1.05750 1.02752 +/- 0.00160\n", - " 136/1 1.02341 1.02749 +/- 0.00159\n", - " 137/1 1.02212 1.02745 +/- 0.00158\n", - " 138/1 1.03464 1.02750 +/- 0.00157\n", - " 139/1 1.05920 1.02775 +/- 0.00157\n", - " 140/1 1.01911 1.02768 +/- 0.00156\n", - " 141/1 1.03076 1.02771 +/- 0.00155\n", - " 142/1 1.03648 1.02777 +/- 0.00154\n", - " 143/1 1.00382 1.02759 +/- 0.00154\n", - " 144/1 1.00366 1.02741 +/- 0.00154\n", - " 145/1 1.01638 1.02733 +/- 0.00153\n", - " 146/1 1.02418 1.02731 +/- 0.00152\n", - " 147/1 0.99267 1.02706 +/- 0.00153\n", - " 148/1 1.02575 1.02705 +/- 0.00152\n", - " 149/1 0.98560 1.02675 +/- 0.00153\n", - " 150/1 1.02725 1.02675 +/- 0.00152\n", - " 151/1 1.03723 1.02683 +/- 0.00151\n", - " 152/1 1.00857 1.02670 +/- 0.00151\n", - " 153/1 1.00642 1.02656 +/- 0.00151\n", - " 154/1 1.03461 1.02661 +/- 0.00150\n", - " 155/1 1.00088 1.02643 +/- 0.00150\n", - " 156/1 1.02589 1.02643 +/- 0.00149\n", - " 157/1 1.02494 1.02642 +/- 0.00148\n", - " 158/1 1.03303 1.02646 +/- 0.00147\n", - " 159/1 1.02276 1.02644 +/- 0.00146\n", - " 160/1 1.03293 1.02648 +/- 0.00145\n", - " 161/1 1.04758 1.02662 +/- 0.00144\n", - " 162/1 1.01033 1.02652 +/- 0.00144\n", - " 163/1 1.03883 1.02660 +/- 0.00143\n", - " 164/1 1.00519 1.02646 +/- 0.00143\n", - " 165/1 1.05958 1.02667 +/- 0.00144\n", - " 166/1 1.03849 1.02675 +/- 0.00143\n", - " 167/1 1.02306 1.02672 +/- 0.00142\n", - " 168/1 1.02693 1.02672 +/- 0.00141\n", - " 169/1 1.02584 1.02672 +/- 0.00140\n", - " 170/1 0.99388 1.02651 +/- 0.00141\n", - " 171/1 0.99376 1.02631 +/- 0.00141\n", - " 172/1 1.00453 1.02618 +/- 0.00141\n", - " 173/1 1.04516 1.02629 +/- 0.00141\n", - " 174/1 1.02402 1.02628 +/- 0.00140\n", - " 175/1 0.99012 1.02606 +/- 0.00141\n", - " 176/1 1.02084 1.02603 +/- 0.00140\n", - " 177/1 1.03959 1.02611 +/- 0.00139\n", - " 178/1 1.01719 1.02606 +/- 0.00139\n", - " 179/1 1.01671 1.02600 +/- 0.00138\n", - " 180/1 1.03691 1.02606 +/- 0.00137\n", - " 181/1 1.04276 1.02616 +/- 0.00137\n", - " 182/1 1.02002 1.02613 +/- 0.00136\n", - " 183/1 1.03081 1.02615 +/- 0.00135\n", - " 184/1 1.02432 1.02614 +/- 0.00135\n", - " 185/1 1.02225 1.02612 +/- 0.00134\n", - " 186/1 1.04722 1.02624 +/- 0.00134\n", - " 187/1 0.98045 1.02598 +/- 0.00135\n", - " 188/1 1.02555 1.02598 +/- 0.00135\n", - " 189/1 1.03645 1.02604 +/- 0.00134\n", - " 190/1 1.00407 1.02592 +/- 0.00134\n", - " 191/1 1.03033 1.02594 +/- 0.00133\n", - " 192/1 1.04175 1.02603 +/- 0.00133\n", - " 193/1 1.00555 1.02592 +/- 0.00132\n", - " 194/1 1.00183 1.02578 +/- 0.00132\n", - " 195/1 1.04328 1.02588 +/- 0.00132\n", - " 196/1 1.03041 1.02590 +/- 0.00131\n", - " 197/1 1.04791 1.02602 +/- 0.00131\n", - " 198/1 1.01366 1.02596 +/- 0.00130\n", - " 199/1 1.04471 1.02605 +/- 0.00130\n", - " 200/1 1.02416 1.02604 +/- 0.00129\n", - " 201/1 1.01172 1.02597 +/- 0.00129\n", - " 202/1 1.01683 1.02592 +/- 0.00128\n", - " 203/1 1.01341 1.02586 +/- 0.00128\n", - " 204/1 1.01507 1.02580 +/- 0.00127\n", - " 205/1 1.02540 1.02580 +/- 0.00127\n", - " 206/1 1.00310 1.02568 +/- 0.00127\n", - " 207/1 1.02822 1.02570 +/- 0.00126\n", - " 208/1 1.01023 1.02562 +/- 0.00126\n", - " 209/1 1.04603 1.02572 +/- 0.00125\n", - " 210/1 1.00775 1.02563 +/- 0.00125\n", - " 211/1 1.01706 1.02559 +/- 0.00125\n", - " 212/1 0.99434 1.02543 +/- 0.00125\n", - " 213/1 1.03346 1.02547 +/- 0.00124\n", - " 214/1 1.05322 1.02561 +/- 0.00124\n", - " 215/1 1.03057 1.02563 +/- 0.00124\n", - " 216/1 1.00976 1.02556 +/- 0.00123\n", - " 217/1 1.02760 1.02557 +/- 0.00123\n", - " 218/1 1.01259 1.02550 +/- 0.00122\n", - " 219/1 1.02829 1.02552 +/- 0.00122\n", - " 220/1 1.02228 1.02550 +/- 0.00121\n", - " 221/1 1.06679 1.02570 +/- 0.00122\n", - " 222/1 1.03417 1.02574 +/- 0.00122\n", - " 223/1 1.04239 1.02582 +/- 0.00121\n", - " 224/1 1.02062 1.02579 +/- 0.00121\n", - " 225/1 1.00331 1.02569 +/- 0.00121\n", - " 226/1 1.00131 1.02557 +/- 0.00121\n", - " 227/1 1.01768 1.02554 +/- 0.00120\n", - " 228/1 1.00813 1.02546 +/- 0.00120\n", - " 229/1 1.05320 1.02558 +/- 0.00120\n", - " 230/1 1.03472 1.02563 +/- 0.00120\n", - " 231/1 1.01426 1.02557 +/- 0.00119\n", - " 232/1 1.00782 1.02549 +/- 0.00119\n", - " 233/1 1.02813 1.02551 +/- 0.00118\n", - " 234/1 1.01184 1.02545 +/- 0.00118\n", - " 235/1 1.02156 1.02543 +/- 0.00118\n", - " 236/1 0.99029 1.02527 +/- 0.00118\n", - " 237/1 1.04196 1.02535 +/- 0.00118\n", - " 238/1 1.01594 1.02531 +/- 0.00117\n", - " 239/1 1.02732 1.02531 +/- 0.00117\n", - " 240/1 0.98987 1.02516 +/- 0.00117\n", - " 241/1 1.03388 1.02520 +/- 0.00117\n", - " 242/1 1.01319 1.02515 +/- 0.00116\n", - " 243/1 1.02870 1.02516 +/- 0.00116\n", - " 244/1 1.01943 1.02514 +/- 0.00115\n", - " 245/1 1.04463 1.02522 +/- 0.00115\n", - " 246/1 1.03551 1.02526 +/- 0.00115\n", - " 247/1 1.00436 1.02517 +/- 0.00115\n", - " 248/1 1.03326 1.02521 +/- 0.00114\n", - " 249/1 1.05769 1.02534 +/- 0.00115\n", - " 250/1 1.01372 1.02530 +/- 0.00114\n", - " 251/1 1.02971 1.02531 +/- 0.00114\n", - " 252/1 1.01166 1.02526 +/- 0.00113\n", - " 253/1 1.03992 1.02532 +/- 0.00113\n", - " 254/1 1.01507 1.02528 +/- 0.00113\n", - " 255/1 1.03222 1.02530 +/- 0.00112\n", - " 256/1 1.03096 1.02533 +/- 0.00112\n", - " 257/1 1.01153 1.02527 +/- 0.00112\n", - " 258/1 1.03668 1.02532 +/- 0.00111\n", - " 259/1 1.03070 1.02534 +/- 0.00111\n", - " 260/1 1.01189 1.02529 +/- 0.00111\n", - " 261/1 1.00082 1.02519 +/- 0.00111\n", - " 262/1 1.03653 1.02523 +/- 0.00110\n", - " 263/1 1.02908 1.02525 +/- 0.00110\n", - " 264/1 1.00072 1.02515 +/- 0.00110\n", - " 265/1 1.00832 1.02509 +/- 0.00109\n", - " 266/1 1.04385 1.02516 +/- 0.00109\n", - " 267/1 1.00117 1.02507 +/- 0.00109\n", - " 268/1 1.02682 1.02507 +/- 0.00109\n", - " 269/1 1.03202 1.02510 +/- 0.00108\n", - " 270/1 1.01275 1.02505 +/- 0.00108\n", - " 271/1 1.02633 1.02506 +/- 0.00108\n", - " 272/1 1.04811 1.02514 +/- 0.00108\n", - " 273/1 1.02851 1.02516 +/- 0.00107\n", - " 274/1 1.01270 1.02511 +/- 0.00107\n", - " 275/1 1.06222 1.02525 +/- 0.00107\n", - " 276/1 1.02778 1.02526 +/- 0.00107\n", - " 277/1 1.02601 1.02526 +/- 0.00107\n", - " 278/1 1.02356 1.02526 +/- 0.00106\n", - " 279/1 1.00792 1.02519 +/- 0.00106\n", - " 280/1 1.02331 1.02518 +/- 0.00106\n", - " 281/1 1.00985 1.02513 +/- 0.00105\n", - " 282/1 1.02035 1.02511 +/- 0.00105\n", - " 283/1 0.98181 1.02495 +/- 0.00106\n", - " 284/1 1.01829 1.02493 +/- 0.00106\n", - " 285/1 1.02929 1.02494 +/- 0.00105\n", - " 286/1 1.03524 1.02498 +/- 0.00105\n", - " 287/1 1.01212 1.02493 +/- 0.00105\n", - " 288/1 1.03584 1.02497 +/- 0.00104\n", - " 289/1 1.02961 1.02499 +/- 0.00104\n", - " 290/1 0.99692 1.02489 +/- 0.00104\n", - " 291/1 1.03966 1.02494 +/- 0.00104\n", - " 292/1 1.00965 1.02489 +/- 0.00104\n", - " 293/1 1.02601 1.02489 +/- 0.00103\n", - " 294/1 1.03224 1.02492 +/- 0.00103\n", - " 295/1 1.01596 1.02489 +/- 0.00103\n", - " 296/1 1.06964 1.02504 +/- 0.00103\n", - " 297/1 1.03982 1.02509 +/- 0.00103\n", - " 298/1 0.99758 1.02500 +/- 0.00103\n", - " 299/1 1.01479 1.02496 +/- 0.00103\n", - " 300/1 1.04517 1.02503 +/- 0.00103\n", - " 301/1 0.99128 1.02492 +/- 0.00103\n", - " 302/1 1.01493 1.02488 +/- 0.00103\n", - " 303/1 1.00623 1.02482 +/- 0.00103\n", - " 304/1 1.02560 1.02482 +/- 0.00102\n", - " 305/1 1.00806 1.02477 +/- 0.00102\n", - " 306/1 1.03524 1.02480 +/- 0.00102\n", - " 307/1 0.99244 1.02469 +/- 0.00102\n", - " 308/1 0.98013 1.02454 +/- 0.00103\n", - " 309/1 1.00853 1.02449 +/- 0.00103\n", - " 310/1 1.00116 1.02441 +/- 0.00103\n", - " 311/1 1.01730 1.02439 +/- 0.00102\n", - " 312/1 1.01198 1.02435 +/- 0.00102\n", - " 313/1 1.02405 1.02435 +/- 0.00102\n", - " 314/1 1.01734 1.02432 +/- 0.00101\n", - " 315/1 1.02320 1.02432 +/- 0.00101\n", - " 316/1 1.03438 1.02435 +/- 0.00101\n", - " 317/1 1.00106 1.02428 +/- 0.00101\n", - " 318/1 1.03114 1.02430 +/- 0.00100\n", - " 319/1 1.04955 1.02438 +/- 0.00100\n", - " 320/1 1.03259 1.02441 +/- 0.00100\n", - " 321/1 1.00687 1.02435 +/- 0.00100\n", - " 322/1 1.05753 1.02446 +/- 0.00100\n", - " 323/1 1.03676 1.02450 +/- 0.00100\n", - " 324/1 0.99796 1.02441 +/- 0.00100\n", - " 325/1 1.03783 1.02445 +/- 0.00100\n", - " 326/1 1.02315 1.02445 +/- 0.00099\n", - " 327/1 1.04205 1.02451 +/- 0.00099\n", - " 328/1 1.01971 1.02449 +/- 0.00099\n", - " 329/1 1.02394 1.02449 +/- 0.00099\n", - " 330/1 1.03318 1.02452 +/- 0.00098\n", - " 331/1 1.01503 1.02449 +/- 0.00098\n", - " 332/1 1.07143 1.02463 +/- 0.00099\n", - " 333/1 1.00991 1.02459 +/- 0.00099\n", - " 334/1 1.03115 1.02461 +/- 0.00098\n", - " 335/1 1.04400 1.02467 +/- 0.00098\n", - " 336/1 1.03516 1.02470 +/- 0.00098\n", - " 337/1 1.02025 1.02468 +/- 0.00098\n", - " 338/1 1.03269 1.02471 +/- 0.00098\n", - " 339/1 1.03745 1.02475 +/- 0.00097\n", - " 340/1 1.03685 1.02478 +/- 0.00097\n", - " 341/1 1.01831 1.02476 +/- 0.00097\n", - " 342/1 1.01425 1.02473 +/- 0.00097\n", - " 343/1 1.02990 1.02475 +/- 0.00096\n", - " 344/1 1.02958 1.02476 +/- 0.00096\n", - " 345/1 1.03133 1.02478 +/- 0.00096\n", - " 346/1 1.02441 1.02478 +/- 0.00095\n", - " 347/1 1.07010 1.02492 +/- 0.00096\n", - " 348/1 1.02327 1.02491 +/- 0.00096\n", - " 349/1 1.03123 1.02493 +/- 0.00096\n", - " 350/1 1.03158 1.02495 +/- 0.00095\n", - " 351/1 1.03473 1.02498 +/- 0.00095\n", - " 352/1 1.04000 1.02502 +/- 0.00095\n", - " 353/1 1.01651 1.02500 +/- 0.00095\n", - " 354/1 1.03647 1.02503 +/- 0.00094\n", - " 355/1 1.04650 1.02509 +/- 0.00094\n", - " 356/1 1.04703 1.02516 +/- 0.00094\n", - " 357/1 1.00260 1.02509 +/- 0.00094\n", - " 358/1 1.00075 1.02502 +/- 0.00094\n", - " 359/1 1.04874 1.02509 +/- 0.00094\n", - " 360/1 1.03211 1.02511 +/- 0.00094\n", - " 361/1 1.02136 1.02510 +/- 0.00094\n", - " 362/1 1.00803 1.02505 +/- 0.00094\n", - " 363/1 1.00319 1.02499 +/- 0.00094\n", - " 364/1 1.01443 1.02496 +/- 0.00093\n", - " 365/1 1.02685 1.02496 +/- 0.00093\n", - " 366/1 1.02373 1.02496 +/- 0.00093\n", - " 367/1 1.02026 1.02495 +/- 0.00093\n", - " 368/1 1.01579 1.02492 +/- 0.00092\n", - " 369/1 1.08004 1.02508 +/- 0.00093\n", - " 370/1 1.01715 1.02505 +/- 0.00093\n", - " 371/1 0.98578 1.02494 +/- 0.00093\n", - " 372/1 1.03033 1.02496 +/- 0.00093\n", - " 373/1 1.03269 1.02498 +/- 0.00093\n", - " 374/1 1.04050 1.02502 +/- 0.00093\n", - " 375/1 1.00760 1.02498 +/- 0.00093\n", - " 376/1 1.04492 1.02503 +/- 0.00093\n", - " 377/1 1.04983 1.02510 +/- 0.00093\n", - " 378/1 1.06022 1.02519 +/- 0.00093\n", - " 379/1 1.02516 1.02519 +/- 0.00093\n", - " 380/1 1.01740 1.02517 +/- 0.00092\n", - " 381/1 1.02520 1.02517 +/- 0.00092\n", - " 382/1 1.02820 1.02518 +/- 0.00092\n", - " 383/1 1.00697 1.02513 +/- 0.00092\n", - " 384/1 1.03497 1.02516 +/- 0.00092\n", - " 385/1 0.98404 1.02505 +/- 0.00092\n", - " 386/1 1.05206 1.02512 +/- 0.00092\n", - " 387/1 1.01502 1.02509 +/- 0.00092\n", - " 388/1 1.02196 1.02508 +/- 0.00092\n", - " 389/1 1.02856 1.02509 +/- 0.00091\n", - " 390/1 1.01376 1.02506 +/- 0.00091\n", - " 391/1 1.01696 1.02504 +/- 0.00091\n", - " 392/1 1.03283 1.02506 +/- 0.00091\n", - " 393/1 1.00787 1.02502 +/- 0.00091\n", - " 394/1 1.02184 1.02501 +/- 0.00090\n", - " 395/1 1.03170 1.02503 +/- 0.00090\n", - " 396/1 1.04406 1.02508 +/- 0.00090\n", - " 397/1 1.03939 1.02511 +/- 0.00090\n", - " 398/1 1.00329 1.02506 +/- 0.00090\n", - " 399/1 1.04518 1.02511 +/- 0.00090\n", - " 400/1 1.03435 1.02513 +/- 0.00090\n", - " 401/1 1.00525 1.02508 +/- 0.00089\n", - " 402/1 1.03112 1.02510 +/- 0.00089\n", - " 403/1 1.00188 1.02504 +/- 0.00089\n", - " 404/1 1.01241 1.02501 +/- 0.00089\n", - " 405/1 1.01796 1.02499 +/- 0.00089\n", - " 406/1 1.02686 1.02499 +/- 0.00089\n", - " 407/1 1.01003 1.02496 +/- 0.00088\n", - " 408/1 1.02359 1.02495 +/- 0.00088\n", - " 409/1 1.01258 1.02492 +/- 0.00088\n", - " 410/1 1.04361 1.02497 +/- 0.00088\n", - " 411/1 1.00885 1.02493 +/- 0.00088\n", - " 412/1 1.00999 1.02489 +/- 0.00088\n", - " 413/1 0.97832 1.02477 +/- 0.00088\n", - " 414/1 1.04183 1.02482 +/- 0.00088\n", - " 415/1 1.02279 1.02481 +/- 0.00088\n", - " 416/1 1.04197 1.02485 +/- 0.00088\n", - " 417/1 1.04617 1.02491 +/- 0.00088\n", - " 418/1 1.01311 1.02488 +/- 0.00088\n", - " 419/1 1.03904 1.02491 +/- 0.00087\n", - " 420/1 1.00458 1.02486 +/- 0.00087\n", - " 421/1 0.98580 1.02477 +/- 0.00088\n", - " 422/1 1.01850 1.02475 +/- 0.00087\n", - " 423/1 1.03739 1.02478 +/- 0.00087\n", - " 424/1 1.02716 1.02479 +/- 0.00087\n", - " 425/1 1.00711 1.02475 +/- 0.00087\n", - " 426/1 1.01008 1.02471 +/- 0.00087\n", - " 427/1 1.03332 1.02473 +/- 0.00087\n", - " 428/1 1.00501 1.02468 +/- 0.00087\n", - " 429/1 1.04549 1.02473 +/- 0.00086\n", - " 430/1 1.00582 1.02469 +/- 0.00086\n", - " 431/1 1.00586 1.02464 +/- 0.00086\n", - " 432/1 1.00082 1.02459 +/- 0.00086\n", - " 433/1 1.00835 1.02455 +/- 0.00086\n", - " 434/1 1.03965 1.02458 +/- 0.00086\n", - " 435/1 1.02385 1.02458 +/- 0.00086\n", - " 436/1 1.01440 1.02456 +/- 0.00086\n", - " 437/1 1.03127 1.02458 +/- 0.00085\n", - " 438/1 1.02961 1.02459 +/- 0.00085\n", - " 439/1 0.99584 1.02452 +/- 0.00085\n", - " 440/1 1.04964 1.02458 +/- 0.00085\n", - " 441/1 0.99792 1.02452 +/- 0.00085\n", - " 442/1 1.04971 1.02457 +/- 0.00085\n", - " 443/1 1.01504 1.02455 +/- 0.00085\n", - " 444/1 1.04359 1.02460 +/- 0.00085\n", - " 445/1 1.01148 1.02457 +/- 0.00085\n", - " 446/1 1.01203 1.02454 +/- 0.00085\n", - " 447/1 1.02353 1.02454 +/- 0.00085\n", - " 448/1 1.06299 1.02462 +/- 0.00085\n", - " 449/1 1.00017 1.02457 +/- 0.00085\n", - " 450/1 1.01193 1.02454 +/- 0.00085\n", - " 451/1 1.00179 1.02449 +/- 0.00085\n", - " 452/1 1.02425 1.02449 +/- 0.00085\n", - " 453/1 1.03629 1.02451 +/- 0.00084\n", - " 454/1 1.01955 1.02450 +/- 0.00084\n", - " 455/1 1.00870 1.02447 +/- 0.00084\n", - " 456/1 1.04230 1.02451 +/- 0.00084\n", - " 457/1 1.05081 1.02457 +/- 0.00084\n", - " 458/1 1.00271 1.02452 +/- 0.00084\n", - " 459/1 1.01010 1.02448 +/- 0.00084\n", - " 460/1 1.04656 1.02453 +/- 0.00084\n", - " 461/1 1.00790 1.02450 +/- 0.00084\n", - " 462/1 1.02214 1.02449 +/- 0.00084\n", - " 463/1 1.04401 1.02453 +/- 0.00083\n", - " 464/1 1.02863 1.02454 +/- 0.00083\n", - " 465/1 0.99971 1.02449 +/- 0.00083\n", - " 466/1 1.00344 1.02444 +/- 0.00083\n", - " 467/1 1.02810 1.02445 +/- 0.00083\n", - " 468/1 1.02091 1.02444 +/- 0.00083\n", - " 469/1 1.00545 1.02440 +/- 0.00083\n", - " 470/1 1.01590 1.02438 +/- 0.00083\n", - " 471/1 1.04465 1.02443 +/- 0.00083\n", - " 472/1 1.02028 1.02442 +/- 0.00082\n", - " 473/1 1.01951 1.02441 +/- 0.00082\n", - " 474/1 1.03280 1.02443 +/- 0.00082\n", - " 475/1 1.04722 1.02447 +/- 0.00082\n", - " 476/1 1.03587 1.02450 +/- 0.00082\n", - " 477/1 1.02234 1.02449 +/- 0.00082\n", - " 478/1 1.07848 1.02461 +/- 0.00082\n", - " 479/1 1.04759 1.02466 +/- 0.00082\n", - " 480/1 1.07189 1.02476 +/- 0.00083\n", - " 481/1 1.05811 1.02483 +/- 0.00083\n", - " 482/1 1.04554 1.02487 +/- 0.00083\n", - " 483/1 1.01956 1.02486 +/- 0.00083\n", - " 484/1 1.01055 1.02483 +/- 0.00083\n", - " 485/1 1.00845 1.02480 +/- 0.00082\n", - " 486/1 1.04607 1.02484 +/- 0.00082\n", - " 487/1 1.05955 1.02492 +/- 0.00083\n", - " 488/1 1.02245 1.02491 +/- 0.00082\n", - " 489/1 0.98206 1.02482 +/- 0.00083\n", - " 490/1 1.03786 1.02485 +/- 0.00083\n", - " 491/1 1.02973 1.02486 +/- 0.00082\n", - " 492/1 1.02890 1.02487 +/- 0.00082\n", - " 493/1 1.02086 1.02486 +/- 0.00082\n", - " 494/1 1.01194 1.02483 +/- 0.00082\n", - " 495/1 1.01902 1.02482 +/- 0.00082\n", - " 496/1 1.01783 1.02481 +/- 0.00082\n", - " 497/1 1.02129 1.02480 +/- 0.00081\n", - " 498/1 1.02407 1.02480 +/- 0.00081\n", - " 499/1 1.02873 1.02480 +/- 0.00081\n", - " 500/1 1.00998 1.02477 +/- 0.00081\n", - " Creating state point statepoint.500.h5...\n", + " 1/1 1.05201 \n", + " 2/1 1.02017 \n", + " 3/1 1.02398 \n", + " 4/1 1.02677 \n", + " 5/1 1.01070 \n", + " 6/1 1.02964 \n", + " 7/1 1.02163 \n", + " 8/1 1.04524 \n", + " 9/1 1.00773 \n", + " 10/1 1.01536 \n", + " 11/1 1.02992 \n", + " 12/1 1.03248 1.03120 +/- 0.00128\n", + " 13/1 0.99044 1.01761 +/- 0.01361\n", + " 14/1 1.01484 1.01692 +/- 0.00965\n", + " 15/1 1.01491 1.01652 +/- 0.00748\n", + " 16/1 1.03809 1.02011 +/- 0.00709\n", + " 17/1 1.02536 1.02086 +/- 0.00604\n", + " 18/1 1.03663 1.02283 +/- 0.00559\n", + " 19/1 1.03902 1.02463 +/- 0.00525\n", + " 20/1 1.01557 1.02373 +/- 0.00478\n", + " 21/1 1.01286 1.02274 +/- 0.00443\n", + " 22/1 1.01392 1.02200 +/- 0.00411\n", + " 23/1 1.04439 1.02372 +/- 0.00416\n", + " 24/1 1.04034 1.02491 +/- 0.00403\n", + " 25/1 0.99433 1.02287 +/- 0.00427\n", + " 26/1 1.02720 1.02314 +/- 0.00400\n", + " 27/1 1.03545 1.02387 +/- 0.00383\n", + " 28/1 1.03853 1.02468 +/- 0.00370\n", + " 29/1 1.02735 1.02482 +/- 0.00350\n", + " 30/1 1.02429 1.02480 +/- 0.00332\n", + " 31/1 1.02901 1.02500 +/- 0.00317\n", + " 32/1 1.03296 1.02536 +/- 0.00304\n", + " 33/1 1.03605 1.02582 +/- 0.00294\n", + " 34/1 1.04247 1.02652 +/- 0.00290\n", + " 35/1 1.02088 1.02629 +/- 0.00279\n", + " 36/1 1.03017 1.02644 +/- 0.00269\n", + " 37/1 1.03216 1.02665 +/- 0.00259\n", + " 38/1 1.01459 1.02622 +/- 0.00254\n", + " 39/1 1.03706 1.02659 +/- 0.00248\n", + " 40/1 1.01383 1.02617 +/- 0.00243\n", + " 41/1 0.99043 1.02502 +/- 0.00262\n", + " 42/1 1.02891 1.02514 +/- 0.00254\n", + " 43/1 1.02100 1.02501 +/- 0.00246\n", + " 44/1 0.99546 1.02414 +/- 0.00254\n", + " 45/1 1.01562 1.02390 +/- 0.00248\n", + " 46/1 1.03025 1.02408 +/- 0.00242\n", + " 47/1 0.99409 1.02327 +/- 0.00249\n", + " 48/1 1.04355 1.02380 +/- 0.00248\n", + " 49/1 1.02763 1.02390 +/- 0.00242\n", + " 50/1 0.99426 1.02316 +/- 0.00247\n", + " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", " ======================> SIMULATION FINISHED <======================\n", @@ -1234,27 +783,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.5880E+00 seconds\n", - " Reading cross sections = 1.2650E+00 seconds\n", - " Total time in simulation = 2.6051E+02 seconds\n", - " Time in transport only = 2.6013E+02 seconds\n", - " Time in inactive batches = 2.0990E+00 seconds\n", - " Time in active batches = 2.5841E+02 seconds\n", - " Time synchronizing fission bank = 6.5000E-02 seconds\n", - " Sampling source sites = 4.4000E-02 seconds\n", - " SEND/RECV source sites = 2.1000E-02 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", + " Total time for initialization = 1.4550E+00 seconds\n", + " Reading cross sections = 1.1400E+00 seconds\n", + " Total time in simulation = 1.9150E+01 seconds\n", + " Time in transport only = 1.9021E+01 seconds\n", + " Time in inactive batches = 2.1570E+00 seconds\n", + " Time in active batches = 1.6993E+01 seconds\n", + " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.6211E+02 seconds\n", - " Calculation Rate (inactive) = 23820.9 neutrons/second\n", - " Calculation Rate (active) = 9480.98 neutrons/second\n", + " Total time elapsed = 2.0614E+01 seconds\n", + " Calculation Rate (inactive) = 23180.3 neutrons/second\n", + " Calculation Rate (active) = 11769.6 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02480 +/- 0.00073\n", - " k-effective (Track-length) = 1.02477 +/- 0.00081\n", - " k-effective (Absorption) = 1.02552 +/- 0.00068\n", - " Combined k-effective = 1.02519 +/- 0.00055\n", + " k-effective (Collision) = 1.02389 +/- 0.00235\n", + " k-effective (Track-length) = 1.02316 +/- 0.00247\n", + " k-effective (Absorption) = 1.02494 +/- 0.00180\n", + " Combined k-effective = 1.02429 +/- 0.00140\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -1399,10 +948,12 @@ } ], "source": [ - "mgxs_lib.write_mg_library(filename='mgxs', xs_type='macro',\n", - " domain_names=['fuel', 'fuel_clad', 'fuel_mod',\n", - " 'gt_inmod', 'gt_clad', 'gt_outmod'],\n", - " xs_ids='2m')" + "# Create a MGXS File which can then be written to disk\n", + "mgxs_file = mgxs_lib.create_mg_library(xs_type='macro', domain_names=['fuel', 'zircaloy', 'water'],\n", + " xs_ids='2m')\n", + "\n", + "# Write the file to disk using the default filename of `mgxs.xml`\n", + "mgxs_file.export_to_xml()" ] }, { @@ -1420,49 +971,27 @@ }, "outputs": [], "source": [ - "# Instantiate our Macroscopic Data using mat_names for the name\n", + "# Instantiate our Macroscopic Data\n", "fuel_macro = openmc.Macroscopic('fuel')\n", - "fuel_clad_macro = openmc.Macroscopic('fuel_clad')\n", - "fuel_mod_macro = openmc.Macroscopic('fuel_mod')\n", - "gt_inmod_macro = openmc.Macroscopic('gt_inmod')\n", - "gt_clad_macro = openmc.Macroscopic('gt_clad')\n", - "gt_outmod_macro = openmc.Macroscopic('gt_outmod')\n", - "\n", - "# Now define the materials\n", + "zircaloy_macro = openmc.Macroscopic('zircaloy')\n", + "water_macro = openmc.Macroscopic('water')\n", "\n", + "# Now re-define our materials to use the Multi-Group macroscopic data\n", + "# instead of the continuous-energy data.\n", "# 1.6 enriched fuel UO2\n", - "fuel = openmc.Material(name='1.6% Fuel UO2', material_id=1)\n", - "fuel.set_density('macro', 1.0)\n", + "fuel = openmc.Material(name='UO2', material_id=1)\n", "fuel.add_macroscopic(fuel_macro)\n", "\n", - "# 1.6 enriched fuel cladding\n", - "fuel_clad = openmc.Material(name='1.6% Fuel Clad', material_id=2)\n", - "fuel_clad.set_density('macro', 1.0)\n", - "fuel_clad.add_macroscopic(fuel_clad_macro)\n", + "# cladding\n", + "zircaloy = openmc.Material(name='Clad', material_id=2)\n", + "zircaloy.add_macroscopic(zircaloy_macro)\n", "\n", - "# 1.6 enriched fuel moderator\n", - "fuel_mod = openmc.Material(name='1.6% Fuel Water', material_id=3)\n", - "fuel_mod.set_density('macro', 1.0)\n", - "fuel_mod.add_macroscopic(fuel_mod_macro)\n", - "\n", - "# Guide Tube Inner Moderator\n", - "gt_inmod = openmc.Material(name='GT Inner Water', material_id=4)\n", - "gt_inmod.set_density('macro', 1.0)\n", - "gt_inmod.add_macroscopic(gt_inmod_macro)\n", - "\n", - "# Guide Tube Cladding\n", - "gt_clad = openmc.Material(name='GT Clad', material_id=5)\n", - "gt_clad.set_density('macro', 1.0)\n", - "gt_clad.add_macroscopic(gt_clad_macro)\n", - "\n", - "# Guide Tube Outer Moderator\n", - "gt_outmod = openmc.Material(name='GT Outer Water', material_id=6)\n", - "gt_outmod.set_density('macro', 1.0)\n", - "gt_outmod.add_macroscopic(gt_outmod_macro)\n", + "# moderator\n", + "water = openmc.Material(name='Water', material_id=3)\n", + "water.add_macroscopic(water_macro)\n", "\n", "# Finally, instantiate our Materials object\n", - "materials_file = openmc.Materials((fuel, fuel_clad, fuel_mod,\n", - " gt_inmod, gt_clad, gt_outmod))\n", + "materials_file = openmc.Materials((fuel, zircaloy, water))\n", "materials_file.default_xs = '2m'\n", "\n", "# Export to \"materials.xml\"\n", @@ -1473,98 +1002,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n", - "For our geometry files we will do the same as before but now we will be pointing at our newly created materials instead." - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Create a Universe to encapsulate a fuel pin\n", - "fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin', universe_id=10)\n", - "\n", - "# Create fuel Cell\n", - "fuel_cell = openmc.Cell(name='1.6% Fuel', cell_id=1)\n", - "fuel_cell.fill = fuel\n", - "fuel_cell.region = -fuel_outer_radius\n", - "fuel_pin_universe.add_cell(fuel_cell)\n", - "\n", - "# Create a clad Cell\n", - "clad_cell = openmc.Cell(name='1.6% Clad', cell_id=2)\n", - "clad_cell.fill = fuel_clad\n", - "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", - "fuel_pin_universe.add_cell(clad_cell)\n", - "\n", - "# Create a moderator Cell\n", - "moderator_cell = openmc.Cell(name='1.6% Moderator', cell_id=3)\n", - "moderator_cell.fill = fuel_mod\n", - "moderator_cell.region = +clad_outer_radius\n", - "fuel_pin_universe.add_cell(moderator_cell)\n", - "\n", - "# Create a Universe to encapsulate a control rod guide tube\n", - "guide_tube_universe = openmc.Universe(name='Guide Tube', universe_id=20)\n", - "\n", - "# Create guide tube Cell\n", - "guide_tube_cell = openmc.Cell(name='Guide Tube Water', cell_id=4)\n", - "guide_tube_cell.fill = gt_inmod\n", - "guide_tube_cell.region = -fuel_outer_radius\n", - "guide_tube_universe.add_cell(guide_tube_cell)\n", - "\n", - "# Create a clad Cell\n", - "clad_cell = openmc.Cell(name='Guide Clad', cell_id=5)\n", - "clad_cell.fill = gt_clad\n", - "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", - "guide_tube_universe.add_cell(clad_cell)\n", - "\n", - "# Create a moderator Cell\n", - "moderator_cell = openmc.Cell(name='Guide Tube Moderator', cell_id=6)\n", - "moderator_cell.fill = gt_outmod\n", - "moderator_cell.region = +clad_outer_radius\n", - "guide_tube_universe.add_cell(moderator_cell)\n", - "\n", - "# Create fuel assembly Lattice\n", - "assembly = openmc.RectLattice(name='1.6% Fuel Assembly', lattice_id=100)\n", - "assembly.dimension = (17, 17)\n", - "assembly.pitch = (1.26, 1.26)\n", - "assembly.lower_left = [-1.26 * 17. / 2.0] * 2\n", - "\n", - "# Create array indices for guide tube locations in lattice\n", - "template_x = np.array([5, 8, 11, 3, 13, 2, 5, 8, 11, 14, 2, 5, 8,\n", - " 11, 14, 2, 5, 8, 11, 14, 3, 13, 5, 8, 11])\n", - "template_y = np.array([2, 2, 2, 3, 3, 5, 5, 5, 5, 5, 8, 8, 8, 8,\n", - " 8, 11, 11, 11, 11, 11, 13, 13, 14, 14, 14])\n", - "\n", - "# Initialize an empty 17x17 array of the lattice universes\n", - "universes = np.empty((17, 17), dtype=openmc.Universe)\n", - "\n", - "# Fill the array with the fuel pin and guide tube universes\n", - "universes[:,:] = fuel_pin_universe\n", - "universes[template_x, template_y] = guide_tube_universe\n", - "\n", - "# Store the array of universes in the lattice\n", - "assembly.universes = universes\n", - "\n", - "# Create root Cell\n", - "root_cell = openmc.Cell(name='root cell', cell_id=0)\n", - "root_cell.fill = assembly\n", - "\n", - "# Add boundary planes\n", - "root_cell.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n", - "\n", - "# Create root Universe\n", - "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", - "root_universe.add_cell(root_cell)\n", - "\n", - "# Create Geometry and set root Universe\n", - "geometry = openmc.Geometry()\n", - "geometry.root_universe = root_universe\n", - "# Export to \"geometry.xml\"\n", - "geometry.export_to_xml()" + "No geometry file neeeds to be written as the continuous-energy file is correctly defined for the multi-group case as well." ] }, { @@ -1577,7 +1015,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "metadata": { "collapsed": true }, @@ -1602,9 +1040,10 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true }, "outputs": [ { @@ -1628,7 +1067,7 @@ " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: c779ca42c41a062a6a813e03f2add2d182ca9190\n", - " Date/Time: 2016-05-12 21:19:25\n", + " Date/Time: 2016-05-13 22:30:02\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1643,11 +1082,8 @@ " Building neighboring cells lists for each surface...\n", " Loading Cross Section Data...\n", " Loading fuel.2m Data...\n", - " Loading fuel_clad.2m Data...\n", - " Loading fuel_mod.2m Data...\n", - " Loading gt_inmod.2m Data...\n", - " Loading gt_clad.2m Data...\n", - " Loading gt_outmod.2m Data...\n", + " Loading zircaloy.2m Data...\n", + " Loading water.2m Data...\n", " Initializing source particles...\n", "\n", " ===========================================================================\n", @@ -1656,507 +1092,57 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.01702 \n", - " 2/1 0.99463 \n", - " 3/1 1.02321 \n", - " 4/1 0.98628 \n", - " 5/1 1.03122 \n", - " 6/1 1.00774 \n", - " 7/1 1.05616 \n", - " 8/1 1.03051 \n", - " 9/1 1.02321 \n", - " 10/1 1.04380 \n", - " 11/1 1.05837 \n", - " 12/1 1.01514 1.03676 +/- 0.02161\n", - " 13/1 1.06720 1.04690 +/- 0.01608\n", - " 14/1 1.01696 1.03942 +/- 0.01361\n", - " 15/1 1.03549 1.03863 +/- 0.01057\n", - " 16/1 1.01599 1.03486 +/- 0.00942\n", - " 17/1 1.03070 1.03427 +/- 0.00799\n", - " 18/1 1.03778 1.03470 +/- 0.00693\n", - " 19/1 1.03042 1.03423 +/- 0.00613\n", - " 20/1 1.01047 1.03185 +/- 0.00598\n", - " 21/1 1.03251 1.03191 +/- 0.00541\n", - " 22/1 1.02047 1.03096 +/- 0.00503\n", - " 23/1 1.01729 1.02991 +/- 0.00474\n", - " 24/1 1.02948 1.02988 +/- 0.00439\n", - " 25/1 1.01963 1.02919 +/- 0.00414\n", - " 26/1 1.00626 1.02776 +/- 0.00413\n", - " 27/1 1.04531 1.02879 +/- 0.00402\n", - " 28/1 0.99936 1.02716 +/- 0.00412\n", - " 29/1 1.04497 1.02809 +/- 0.00401\n", - " 30/1 1.02429 1.02790 +/- 0.00381\n", - " 31/1 1.05112 1.02901 +/- 0.00379\n", - " 32/1 1.01843 1.02853 +/- 0.00365\n", - " 33/1 1.04478 1.02924 +/- 0.00355\n", - " 34/1 1.01719 1.02873 +/- 0.00344\n", - " 35/1 0.99873 1.02753 +/- 0.00351\n", - " 36/1 1.00054 1.02649 +/- 0.00353\n", - " 37/1 1.03986 1.02699 +/- 0.00343\n", - " 38/1 1.02243 1.02683 +/- 0.00331\n", - " 39/1 1.02744 1.02685 +/- 0.00319\n", - " 40/1 1.01174 1.02634 +/- 0.00313\n", - " 41/1 1.04973 1.02710 +/- 0.00312\n", - " 42/1 0.99564 1.02612 +/- 0.00317\n", - " 43/1 1.03022 1.02624 +/- 0.00308\n", - " 44/1 1.03526 1.02650 +/- 0.00300\n", - " 45/1 1.02143 1.02636 +/- 0.00292\n", - " 46/1 1.03264 1.02653 +/- 0.00284\n", - " 47/1 1.03868 1.02686 +/- 0.00278\n", - " 48/1 1.02385 1.02678 +/- 0.00271\n", - " 49/1 1.03897 1.02710 +/- 0.00266\n", - " 50/1 1.01267 1.02674 +/- 0.00261\n", - " 51/1 0.99683 1.02601 +/- 0.00265\n", - " 52/1 1.04189 1.02638 +/- 0.00261\n", - " 53/1 1.02871 1.02644 +/- 0.00255\n", - " 54/1 1.02564 1.02642 +/- 0.00250\n", - " 55/1 1.02955 1.02649 +/- 0.00244\n", - " 56/1 1.02390 1.02643 +/- 0.00239\n", - " 57/1 1.03342 1.02658 +/- 0.00234\n", - " 58/1 1.01430 1.02633 +/- 0.00231\n", - " 59/1 0.99242 1.02563 +/- 0.00236\n", - " 60/1 1.00442 1.02521 +/- 0.00235\n", - " 61/1 1.03870 1.02547 +/- 0.00232\n", - " 62/1 1.02146 1.02540 +/- 0.00228\n", - " 63/1 1.04782 1.02582 +/- 0.00227\n", - " 64/1 1.02872 1.02587 +/- 0.00223\n", - " 65/1 1.02420 1.02584 +/- 0.00219\n", - " 66/1 1.01974 1.02573 +/- 0.00215\n", - " 67/1 1.00774 1.02542 +/- 0.00214\n", - " 68/1 1.01323 1.02521 +/- 0.00211\n", - " 69/1 1.01468 1.02503 +/- 0.00208\n", - " 70/1 1.02869 1.02509 +/- 0.00205\n", - " 71/1 1.02284 1.02505 +/- 0.00202\n", - " 72/1 1.04815 1.02543 +/- 0.00202\n", - " 73/1 1.01119 1.02520 +/- 0.00200\n", - " 74/1 1.03314 1.02533 +/- 0.00197\n", - " 75/1 1.02333 1.02529 +/- 0.00194\n", - " 76/1 1.04030 1.02552 +/- 0.00193\n", - " 77/1 1.02537 1.02552 +/- 0.00190\n", - " 78/1 1.02875 1.02557 +/- 0.00187\n", - " 79/1 1.03588 1.02572 +/- 0.00185\n", - " 80/1 1.05250 1.02610 +/- 0.00186\n", - " 81/1 1.00477 1.02580 +/- 0.00186\n", - " 82/1 1.03903 1.02598 +/- 0.00184\n", - " 83/1 1.02378 1.02595 +/- 0.00182\n", - " 84/1 1.01107 1.02575 +/- 0.00180\n", - " 85/1 1.01550 1.02561 +/- 0.00178\n", - " 86/1 1.00540 1.02535 +/- 0.00178\n", - " 87/1 1.03056 1.02542 +/- 0.00176\n", - " 88/1 1.01742 1.02531 +/- 0.00174\n", - " 89/1 0.99730 1.02496 +/- 0.00175\n", - " 90/1 1.03569 1.02509 +/- 0.00174\n", - " 91/1 1.04514 1.02534 +/- 0.00173\n", - " 92/1 1.02757 1.02537 +/- 0.00171\n", - " 93/1 1.00610 1.02514 +/- 0.00171\n", - " 94/1 1.03576 1.02526 +/- 0.00169\n", - " 95/1 1.03732 1.02540 +/- 0.00168\n", - " 96/1 1.04784 1.02567 +/- 0.00168\n", - " 97/1 1.06507 1.02612 +/- 0.00172\n", - " 98/1 1.03673 1.02624 +/- 0.00170\n", - " 99/1 1.01270 1.02609 +/- 0.00169\n", - " 100/1 1.01980 1.02602 +/- 0.00167\n", - " 101/1 1.01357 1.02588 +/- 0.00166\n", - " 102/1 1.03125 1.02594 +/- 0.00164\n", - " 103/1 1.01527 1.02582 +/- 0.00163\n", - " 104/1 1.02403 1.02580 +/- 0.00161\n", - " 105/1 1.03435 1.02589 +/- 0.00160\n", - " 106/1 1.04113 1.02605 +/- 0.00159\n", - " 107/1 1.03291 1.02612 +/- 0.00157\n", - " 108/1 1.02478 1.02611 +/- 0.00156\n", - " 109/1 1.05814 1.02643 +/- 0.00158\n", - " 110/1 1.02647 1.02643 +/- 0.00156\n", - " 111/1 0.98951 1.02607 +/- 0.00159\n", - " 112/1 1.00739 1.02589 +/- 0.00158\n", - " 113/1 1.04165 1.02604 +/- 0.00157\n", - " 114/1 1.00047 1.02579 +/- 0.00158\n", - " 115/1 1.02550 1.02579 +/- 0.00156\n", - " 116/1 1.02408 1.02577 +/- 0.00155\n", - " 117/1 1.03110 1.02582 +/- 0.00153\n", - " 118/1 1.02874 1.02585 +/- 0.00152\n", - " 119/1 1.02348 1.02583 +/- 0.00151\n", - " 120/1 1.01969 1.02577 +/- 0.00149\n", - " 121/1 1.02312 1.02575 +/- 0.00148\n", - " 122/1 1.03261 1.02581 +/- 0.00147\n", - " 123/1 0.98394 1.02544 +/- 0.00150\n", - " 124/1 1.03771 1.02555 +/- 0.00149\n", - " 125/1 1.01857 1.02549 +/- 0.00148\n", - " 126/1 1.00066 1.02527 +/- 0.00148\n", - " 127/1 1.02372 1.02526 +/- 0.00147\n", - " 128/1 1.03307 1.02533 +/- 0.00146\n", - " 129/1 1.00889 1.02519 +/- 0.00145\n", - " 130/1 1.02053 1.02515 +/- 0.00144\n", - " 131/1 1.00943 1.02502 +/- 0.00144\n", - " 132/1 1.07225 1.02541 +/- 0.00148\n", - " 133/1 1.04068 1.02553 +/- 0.00147\n", - " 134/1 1.03509 1.02561 +/- 0.00146\n", - " 135/1 1.01250 1.02550 +/- 0.00145\n", - " 136/1 1.02179 1.02547 +/- 0.00144\n", - " 137/1 1.05685 1.02572 +/- 0.00145\n", - " 138/1 1.04217 1.02585 +/- 0.00144\n", - " 139/1 1.02793 1.02586 +/- 0.00143\n", - " 140/1 1.01207 1.02576 +/- 0.00143\n", - " 141/1 1.03445 1.02582 +/- 0.00142\n", - " 142/1 1.03579 1.02590 +/- 0.00141\n", - " 143/1 1.00786 1.02576 +/- 0.00140\n", - " 144/1 0.99089 1.02550 +/- 0.00142\n", - " 145/1 1.02617 1.02551 +/- 0.00141\n", - " 146/1 1.01691 1.02545 +/- 0.00140\n", - " 147/1 1.00692 1.02531 +/- 0.00139\n", - " 148/1 0.97702 1.02496 +/- 0.00143\n", - " 149/1 1.04002 1.02507 +/- 0.00142\n", - " 150/1 1.01262 1.02498 +/- 0.00141\n", - " 151/1 1.03613 1.02506 +/- 0.00141\n", - " 152/1 1.02920 1.02509 +/- 0.00140\n", - " 153/1 1.02199 1.02507 +/- 0.00139\n", - " 154/1 1.03421 1.02513 +/- 0.00138\n", - " 155/1 1.05882 1.02536 +/- 0.00139\n", - " 156/1 1.02649 1.02537 +/- 0.00138\n", - " 157/1 1.01933 1.02533 +/- 0.00137\n", - " 158/1 1.04269 1.02545 +/- 0.00137\n", - " 159/1 0.99604 1.02525 +/- 0.00137\n", - " 160/1 1.04748 1.02540 +/- 0.00137\n", - " 161/1 1.00501 1.02526 +/- 0.00137\n", - " 162/1 1.00550 1.02513 +/- 0.00137\n", - " 163/1 1.00115 1.02498 +/- 0.00137\n", - " 164/1 1.02283 1.02496 +/- 0.00136\n", - " 165/1 1.01964 1.02493 +/- 0.00135\n", - " 166/1 1.02287 1.02491 +/- 0.00134\n", - " 167/1 1.05498 1.02511 +/- 0.00134\n", - " 168/1 1.05267 1.02528 +/- 0.00135\n", - " 169/1 1.00474 1.02515 +/- 0.00135\n", - " 170/1 1.03469 1.02521 +/- 0.00134\n", - " 171/1 1.02499 1.02521 +/- 0.00133\n", - " 172/1 1.03961 1.02530 +/- 0.00132\n", - " 173/1 1.01240 1.02522 +/- 0.00132\n", - " 174/1 1.00762 1.02511 +/- 0.00132\n", - " 175/1 1.00200 1.02497 +/- 0.00131\n", - " 176/1 1.01449 1.02491 +/- 0.00131\n", - " 177/1 1.01111 1.02483 +/- 0.00130\n", - " 178/1 1.01208 1.02475 +/- 0.00130\n", - " 179/1 1.03304 1.02480 +/- 0.00129\n", - " 180/1 1.04504 1.02492 +/- 0.00129\n", - " 181/1 1.03476 1.02498 +/- 0.00128\n", - " 182/1 1.02124 1.02495 +/- 0.00128\n", - " 183/1 0.98855 1.02474 +/- 0.00128\n", - " 184/1 1.04689 1.02487 +/- 0.00128\n", - " 185/1 1.00618 1.02476 +/- 0.00128\n", - " 186/1 1.02012 1.02474 +/- 0.00127\n", - " 187/1 1.00162 1.02461 +/- 0.00127\n", - " 188/1 1.03269 1.02465 +/- 0.00127\n", - " 189/1 1.04772 1.02478 +/- 0.00127\n", - " 190/1 1.01132 1.02471 +/- 0.00126\n", - " 191/1 1.02669 1.02472 +/- 0.00125\n", - " 192/1 1.01154 1.02464 +/- 0.00125\n", - " 193/1 1.05795 1.02483 +/- 0.00126\n", - " 194/1 1.01615 1.02478 +/- 0.00125\n", - " 195/1 1.03828 1.02485 +/- 0.00125\n", - " 196/1 1.00695 1.02476 +/- 0.00124\n", - " 197/1 1.04126 1.02484 +/- 0.00124\n", - " 198/1 1.02834 1.02486 +/- 0.00123\n", - " 199/1 1.01000 1.02478 +/- 0.00123\n", - " 200/1 0.99294 1.02462 +/- 0.00123\n", - " 201/1 1.00248 1.02450 +/- 0.00123\n", - " 202/1 1.03461 1.02455 +/- 0.00123\n", - " 203/1 1.06289 1.02475 +/- 0.00124\n", - " 204/1 1.03010 1.02478 +/- 0.00123\n", - " 205/1 1.04636 1.02489 +/- 0.00123\n", - " 206/1 1.05434 1.02504 +/- 0.00123\n", - " 207/1 1.03993 1.02512 +/- 0.00123\n", - " 208/1 1.02672 1.02512 +/- 0.00122\n", - " 209/1 1.04958 1.02525 +/- 0.00122\n", - " 210/1 0.99194 1.02508 +/- 0.00123\n", - " 211/1 1.01570 1.02503 +/- 0.00122\n", - " 212/1 1.04079 1.02511 +/- 0.00122\n", - " 213/1 1.02961 1.02513 +/- 0.00121\n", - " 214/1 1.03797 1.02520 +/- 0.00121\n", - " 215/1 1.03714 1.02526 +/- 0.00120\n", - " 216/1 1.03299 1.02529 +/- 0.00120\n", - " 217/1 1.00461 1.02519 +/- 0.00120\n", - " 218/1 1.02386 1.02519 +/- 0.00119\n", - " 219/1 1.01955 1.02516 +/- 0.00119\n", - " 220/1 1.04372 1.02525 +/- 0.00118\n", - " 221/1 1.01694 1.02521 +/- 0.00118\n", - " 222/1 0.99642 1.02507 +/- 0.00118\n", - " 223/1 1.00999 1.02500 +/- 0.00118\n", - " 224/1 1.02703 1.02501 +/- 0.00117\n", - " 225/1 1.00236 1.02491 +/- 0.00117\n", - " 226/1 1.02825 1.02492 +/- 0.00117\n", - " 227/1 1.04535 1.02502 +/- 0.00116\n", - " 228/1 1.01779 1.02498 +/- 0.00116\n", - " 229/1 1.01058 1.02492 +/- 0.00116\n", - " 230/1 1.00391 1.02482 +/- 0.00115\n", - " 231/1 1.05990 1.02498 +/- 0.00116\n", - " 232/1 1.01885 1.02495 +/- 0.00116\n", - " 233/1 1.03204 1.02498 +/- 0.00115\n", - " 234/1 0.99396 1.02485 +/- 0.00115\n", - " 235/1 1.01828 1.02482 +/- 0.00115\n", - " 236/1 1.08225 1.02507 +/- 0.00117\n", - " 237/1 1.00335 1.02498 +/- 0.00117\n", - " 238/1 1.03097 1.02500 +/- 0.00117\n", - " 239/1 1.01738 1.02497 +/- 0.00116\n", - " 240/1 1.02261 1.02496 +/- 0.00116\n", - " 241/1 1.02814 1.02497 +/- 0.00115\n", - " 242/1 1.01158 1.02491 +/- 0.00115\n", - " 243/1 1.03507 1.02496 +/- 0.00114\n", - " 244/1 1.01914 1.02493 +/- 0.00114\n", - " 245/1 1.04555 1.02502 +/- 0.00114\n", - " 246/1 1.02459 1.02502 +/- 0.00113\n", - " 247/1 1.05827 1.02516 +/- 0.00114\n", - " 248/1 1.02549 1.02516 +/- 0.00113\n", - " 249/1 1.03354 1.02520 +/- 0.00113\n", - " 250/1 1.04186 1.02526 +/- 0.00113\n", - " 251/1 1.00466 1.02518 +/- 0.00112\n", - " 252/1 0.99065 1.02504 +/- 0.00113\n", - " 253/1 1.03065 1.02506 +/- 0.00112\n", - " 254/1 1.02167 1.02505 +/- 0.00112\n", - " 255/1 1.01700 1.02501 +/- 0.00112\n", - " 256/1 1.03619 1.02506 +/- 0.00111\n", - " 257/1 1.01833 1.02503 +/- 0.00111\n", - " 258/1 1.02211 1.02502 +/- 0.00110\n", - " 259/1 1.04348 1.02509 +/- 0.00110\n", - " 260/1 1.03444 1.02513 +/- 0.00110\n", - " 261/1 1.05597 1.02525 +/- 0.00110\n", - " 262/1 1.02085 1.02524 +/- 0.00110\n", - " 263/1 1.00552 1.02516 +/- 0.00109\n", - " 264/1 1.03976 1.02522 +/- 0.00109\n", - " 265/1 1.02810 1.02523 +/- 0.00109\n", - " 266/1 1.00911 1.02516 +/- 0.00108\n", - " 267/1 1.01963 1.02514 +/- 0.00108\n", - " 268/1 1.03732 1.02519 +/- 0.00108\n", - " 269/1 1.02422 1.02519 +/- 0.00107\n", - " 270/1 1.01546 1.02515 +/- 0.00107\n", - " 271/1 1.05488 1.02526 +/- 0.00107\n", - " 272/1 1.01709 1.02523 +/- 0.00107\n", - " 273/1 1.05629 1.02535 +/- 0.00107\n", - " 274/1 1.03864 1.02540 +/- 0.00107\n", - " 275/1 1.01472 1.02536 +/- 0.00106\n", - " 276/1 1.03425 1.02539 +/- 0.00106\n", - " 277/1 1.00663 1.02532 +/- 0.00106\n", - " 278/1 1.03326 1.02535 +/- 0.00106\n", - " 279/1 1.02571 1.02535 +/- 0.00105\n", - " 280/1 1.00525 1.02528 +/- 0.00105\n", - " 281/1 1.00451 1.02520 +/- 0.00105\n", - " 282/1 1.04016 1.02526 +/- 0.00105\n", - " 283/1 0.98343 1.02510 +/- 0.00105\n", - " 284/1 1.04843 1.02519 +/- 0.00105\n", - " 285/1 1.01807 1.02516 +/- 0.00105\n", - " 286/1 1.02393 1.02516 +/- 0.00105\n", - " 287/1 1.01851 1.02514 +/- 0.00104\n", - " 288/1 1.03976 1.02519 +/- 0.00104\n", - " 289/1 1.03153 1.02521 +/- 0.00104\n", - " 290/1 1.00416 1.02514 +/- 0.00104\n", - " 291/1 1.01426 1.02510 +/- 0.00103\n", - " 292/1 1.02583 1.02510 +/- 0.00103\n", - " 293/1 1.01680 1.02507 +/- 0.00103\n", - " 294/1 1.04578 1.02514 +/- 0.00103\n", - " 295/1 1.03162 1.02517 +/- 0.00102\n", - " 296/1 1.01682 1.02514 +/- 0.00102\n", - " 297/1 1.00488 1.02507 +/- 0.00102\n", - " 298/1 1.03057 1.02508 +/- 0.00101\n", - " 299/1 1.01126 1.02504 +/- 0.00101\n", - " 300/1 1.03528 1.02507 +/- 0.00101\n", - " 301/1 1.05548 1.02518 +/- 0.00101\n", - " 302/1 1.02994 1.02519 +/- 0.00101\n", - " 303/1 1.03010 1.02521 +/- 0.00100\n", - " 304/1 1.04031 1.02526 +/- 0.00100\n", - " 305/1 1.05866 1.02537 +/- 0.00101\n", - " 306/1 1.03602 1.02541 +/- 0.00100\n", - " 307/1 1.01362 1.02537 +/- 0.00100\n", - " 308/1 1.01318 1.02533 +/- 0.00100\n", - " 309/1 1.04262 1.02539 +/- 0.00100\n", - " 310/1 1.01626 1.02536 +/- 0.00099\n", - " 311/1 1.00285 1.02528 +/- 0.00099\n", - " 312/1 0.98155 1.02514 +/- 0.00100\n", - " 313/1 1.05649 1.02524 +/- 0.00100\n", - " 314/1 1.00960 1.02519 +/- 0.00100\n", - " 315/1 1.05350 1.02528 +/- 0.00100\n", - " 316/1 1.03842 1.02533 +/- 0.00100\n", - " 317/1 1.01394 1.02529 +/- 0.00100\n", - " 318/1 1.01830 1.02527 +/- 0.00099\n", - " 319/1 1.02050 1.02525 +/- 0.00099\n", - " 320/1 1.03402 1.02528 +/- 0.00099\n", - " 321/1 1.04547 1.02534 +/- 0.00099\n", - " 322/1 1.02579 1.02534 +/- 0.00098\n", - " 323/1 1.01922 1.02533 +/- 0.00098\n", - " 324/1 1.01050 1.02528 +/- 0.00098\n", - " 325/1 1.01426 1.02524 +/- 0.00098\n", - " 326/1 1.03283 1.02527 +/- 0.00097\n", - " 327/1 1.03859 1.02531 +/- 0.00097\n", - " 328/1 1.01536 1.02528 +/- 0.00097\n", - " 329/1 1.03149 1.02530 +/- 0.00097\n", - " 330/1 1.04328 1.02535 +/- 0.00096\n", - " 331/1 1.01949 1.02534 +/- 0.00096\n", - " 332/1 1.02319 1.02533 +/- 0.00096\n", - " 333/1 1.01704 1.02530 +/- 0.00096\n", - " 334/1 1.02691 1.02531 +/- 0.00095\n", - " 335/1 1.03188 1.02533 +/- 0.00095\n", - " 336/1 1.03107 1.02535 +/- 0.00095\n", - " 337/1 1.02410 1.02534 +/- 0.00094\n", - " 338/1 0.99917 1.02526 +/- 0.00094\n", - " 339/1 1.03593 1.02529 +/- 0.00094\n", - " 340/1 1.02286 1.02529 +/- 0.00094\n", - " 341/1 1.04154 1.02534 +/- 0.00094\n", - " 342/1 1.01664 1.02531 +/- 0.00094\n", - " 343/1 1.01041 1.02527 +/- 0.00093\n", - " 344/1 1.02033 1.02525 +/- 0.00093\n", - " 345/1 1.03137 1.02527 +/- 0.00093\n", - " 346/1 1.02162 1.02526 +/- 0.00093\n", - " 347/1 1.00835 1.02521 +/- 0.00092\n", - " 348/1 1.01168 1.02517 +/- 0.00092\n", - " 349/1 1.01168 1.02513 +/- 0.00092\n", - " 350/1 1.03509 1.02516 +/- 0.00092\n", - " 351/1 1.01883 1.02514 +/- 0.00092\n", - " 352/1 1.04314 1.02519 +/- 0.00091\n", - " 353/1 0.99067 1.02509 +/- 0.00092\n", - " 354/1 1.03100 1.02511 +/- 0.00091\n", - " 355/1 1.01664 1.02508 +/- 0.00091\n", - " 356/1 1.02193 1.02507 +/- 0.00091\n", - " 357/1 1.03213 1.02509 +/- 0.00091\n", - " 358/1 1.00555 1.02504 +/- 0.00091\n", - " 359/1 1.04849 1.02511 +/- 0.00091\n", - " 360/1 1.02174 1.02510 +/- 0.00090\n", - " 361/1 1.05064 1.02517 +/- 0.00090\n", - " 362/1 1.05274 1.02525 +/- 0.00091\n", - " 363/1 1.00932 1.02520 +/- 0.00090\n", - " 364/1 1.03400 1.02523 +/- 0.00090\n", - " 365/1 1.00149 1.02516 +/- 0.00090\n", - " 366/1 1.01631 1.02514 +/- 0.00090\n", - " 367/1 1.03928 1.02517 +/- 0.00090\n", - " 368/1 1.01318 1.02514 +/- 0.00090\n", - " 369/1 1.04610 1.02520 +/- 0.00090\n", - " 370/1 1.04338 1.02525 +/- 0.00089\n", - " 371/1 1.01638 1.02523 +/- 0.00089\n", - " 372/1 1.04056 1.02527 +/- 0.00089\n", - " 373/1 1.00090 1.02520 +/- 0.00089\n", - " 374/1 1.01261 1.02517 +/- 0.00089\n", - " 375/1 1.03919 1.02520 +/- 0.00089\n", - " 376/1 0.99900 1.02513 +/- 0.00089\n", - " 377/1 1.00168 1.02507 +/- 0.00089\n", - " 378/1 0.99476 1.02499 +/- 0.00089\n", - " 379/1 1.04960 1.02505 +/- 0.00089\n", - " 380/1 0.99797 1.02498 +/- 0.00089\n", - " 381/1 1.04956 1.02505 +/- 0.00089\n", - " 382/1 1.02803 1.02505 +/- 0.00089\n", - " 383/1 0.99388 1.02497 +/- 0.00089\n", - " 384/1 1.00767 1.02492 +/- 0.00089\n", - " 385/1 1.00856 1.02488 +/- 0.00089\n", - " 386/1 1.02997 1.02489 +/- 0.00088\n", - " 387/1 0.97841 1.02477 +/- 0.00089\n", - " 388/1 0.99712 1.02470 +/- 0.00089\n", - " 389/1 0.99072 1.02461 +/- 0.00089\n", - " 390/1 1.02439 1.02461 +/- 0.00089\n", - " 391/1 1.02769 1.02462 +/- 0.00089\n", - " 392/1 1.02205 1.02461 +/- 0.00089\n", - " 393/1 1.03702 1.02464 +/- 0.00088\n", - " 394/1 1.00274 1.02458 +/- 0.00088\n", - " 395/1 1.00131 1.02452 +/- 0.00088\n", - " 396/1 1.00130 1.02446 +/- 0.00088\n", - " 397/1 1.00472 1.02441 +/- 0.00088\n", - " 398/1 1.00724 1.02437 +/- 0.00088\n", - " 399/1 1.03061 1.02438 +/- 0.00088\n", - " 400/1 0.99651 1.02431 +/- 0.00088\n", - " 401/1 0.99290 1.02423 +/- 0.00088\n", - " 402/1 1.02166 1.02423 +/- 0.00088\n", - " 403/1 1.01691 1.02421 +/- 0.00088\n", - " 404/1 1.00492 1.02416 +/- 0.00088\n", - " 405/1 1.00663 1.02411 +/- 0.00088\n", - " 406/1 1.01865 1.02410 +/- 0.00087\n", - " 407/1 1.02717 1.02411 +/- 0.00087\n", - " 408/1 1.01793 1.02409 +/- 0.00087\n", - " 409/1 1.02606 1.02410 +/- 0.00087\n", - " 410/1 1.03809 1.02413 +/- 0.00087\n", - " 411/1 1.03780 1.02417 +/- 0.00086\n", - " 412/1 1.02782 1.02418 +/- 0.00086\n", - " 413/1 1.03077 1.02419 +/- 0.00086\n", - " 414/1 1.00651 1.02415 +/- 0.00086\n", - " 415/1 1.05594 1.02423 +/- 0.00086\n", - " 416/1 0.99558 1.02416 +/- 0.00086\n", - " 417/1 1.00689 1.02411 +/- 0.00086\n", - " 418/1 1.02932 1.02413 +/- 0.00086\n", - " 419/1 1.03552 1.02415 +/- 0.00086\n", - " 420/1 1.03735 1.02419 +/- 0.00085\n", - " 421/1 1.02402 1.02419 +/- 0.00085\n", - " 422/1 1.04227 1.02423 +/- 0.00085\n", - " 423/1 1.03087 1.02425 +/- 0.00085\n", - " 424/1 1.04363 1.02429 +/- 0.00085\n", - " 425/1 1.02676 1.02430 +/- 0.00085\n", - " 426/1 1.03739 1.02433 +/- 0.00085\n", - " 427/1 1.02977 1.02434 +/- 0.00084\n", - " 428/1 1.02547 1.02435 +/- 0.00084\n", - " 429/1 1.03552 1.02437 +/- 0.00084\n", - " 430/1 1.04282 1.02442 +/- 0.00084\n", - " 431/1 1.03171 1.02443 +/- 0.00084\n", - " 432/1 1.01030 1.02440 +/- 0.00084\n", - " 433/1 1.04168 1.02444 +/- 0.00084\n", - " 434/1 0.98994 1.02436 +/- 0.00084\n", - " 435/1 0.98166 1.02426 +/- 0.00084\n", - " 436/1 1.00178 1.02421 +/- 0.00084\n", - " 437/1 1.03801 1.02424 +/- 0.00084\n", - " 438/1 1.02099 1.02423 +/- 0.00084\n", - " 439/1 1.01305 1.02421 +/- 0.00084\n", - " 440/1 1.02286 1.02420 +/- 0.00083\n", - " 441/1 1.03697 1.02423 +/- 0.00083\n", - " 442/1 0.99050 1.02415 +/- 0.00083\n", - " 443/1 1.02238 1.02415 +/- 0.00083\n", - " 444/1 1.05188 1.02421 +/- 0.00083\n", - " 445/1 1.03150 1.02423 +/- 0.00083\n", - " 446/1 1.01071 1.02420 +/- 0.00083\n", - " 447/1 1.03713 1.02423 +/- 0.00083\n", - " 448/1 1.03631 1.02426 +/- 0.00083\n", - " 449/1 1.02968 1.02427 +/- 0.00083\n", - " 450/1 1.03031 1.02428 +/- 0.00082\n", - " 451/1 1.02161 1.02428 +/- 0.00082\n", - " 452/1 0.99036 1.02420 +/- 0.00082\n", - " 453/1 1.02581 1.02420 +/- 0.00082\n", - " 454/1 1.03140 1.02422 +/- 0.00082\n", - " 455/1 1.01962 1.02421 +/- 0.00082\n", - " 456/1 1.00680 1.02417 +/- 0.00082\n", - " 457/1 1.00178 1.02412 +/- 0.00082\n", - " 458/1 1.02306 1.02412 +/- 0.00082\n", - " 459/1 1.02653 1.02412 +/- 0.00081\n", - " 460/1 1.02934 1.02413 +/- 0.00081\n", - " 461/1 1.00872 1.02410 +/- 0.00081\n", - " 462/1 1.00012 1.02405 +/- 0.00081\n", - " 463/1 0.99057 1.02397 +/- 0.00081\n", - " 464/1 1.02353 1.02397 +/- 0.00081\n", - " 465/1 1.01402 1.02395 +/- 0.00081\n", - " 466/1 1.01651 1.02393 +/- 0.00081\n", - " 467/1 1.01024 1.02390 +/- 0.00081\n", - " 468/1 1.02504 1.02391 +/- 0.00080\n", - " 469/1 1.00891 1.02387 +/- 0.00080\n", - " 470/1 1.04038 1.02391 +/- 0.00080\n", - " 471/1 1.04346 1.02395 +/- 0.00080\n", - " 472/1 1.02634 1.02396 +/- 0.00080\n", - " 473/1 1.01207 1.02393 +/- 0.00080\n", - " 474/1 1.00787 1.02390 +/- 0.00080\n", - " 475/1 1.03591 1.02392 +/- 0.00080\n", - " 476/1 1.04257 1.02396 +/- 0.00080\n", - " 477/1 1.00536 1.02392 +/- 0.00079\n", - " 478/1 1.07545 1.02403 +/- 0.00080\n", - " 479/1 1.02306 1.02403 +/- 0.00080\n", - " 480/1 1.02733 1.02404 +/- 0.00080\n", - " 481/1 1.00990 1.02401 +/- 0.00080\n", - " 482/1 0.99031 1.02394 +/- 0.00080\n", - " 483/1 0.98006 1.02384 +/- 0.00080\n", - " 484/1 1.05635 1.02391 +/- 0.00080\n", - " 485/1 1.02410 1.02391 +/- 0.00080\n", - " 486/1 1.01227 1.02389 +/- 0.00080\n", - " 487/1 1.00614 1.02385 +/- 0.00080\n", - " 488/1 1.01837 1.02384 +/- 0.00080\n", - " 489/1 1.02565 1.02384 +/- 0.00080\n", - " 490/1 1.00530 1.02381 +/- 0.00079\n", - " 491/1 1.01958 1.02380 +/- 0.00079\n", - " 492/1 1.04490 1.02384 +/- 0.00079\n", - " 493/1 1.02567 1.02384 +/- 0.00079\n", - " 494/1 1.03865 1.02387 +/- 0.00079\n", - " 495/1 1.03990 1.02391 +/- 0.00079\n", - " 496/1 0.98352 1.02382 +/- 0.00079\n", - " 497/1 1.00909 1.02379 +/- 0.00079\n", - " 498/1 1.03661 1.02382 +/- 0.00079\n", - " 499/1 1.04423 1.02386 +/- 0.00079\n", - " 500/1 1.06406 1.02394 +/- 0.00079\n", - " Creating state point statepoint.500.h5...\n", + " 1/1 1.02073 \n", + " 2/1 1.04004 \n", + " 3/1 1.02324 \n", + " 4/1 1.01690 \n", + " 5/1 1.03702 \n", + " 6/1 1.01796 \n", + " 7/1 1.01779 \n", + " 8/1 1.02764 \n", + " 9/1 1.03324 \n", + " 10/1 1.01465 \n", + " 11/1 1.02268 \n", + " 12/1 1.01598 1.01933 +/- 0.00335\n", + " 13/1 1.01993 1.01953 +/- 0.00194\n", + " 14/1 1.01779 1.01910 +/- 0.00144\n", + " 15/1 1.01014 1.01731 +/- 0.00211\n", + " 16/1 1.04059 1.02119 +/- 0.00425\n", + " 17/1 1.04877 1.02513 +/- 0.00533\n", + " 18/1 1.05504 1.02887 +/- 0.00594\n", + " 19/1 1.02601 1.02855 +/- 0.00525\n", + " 20/1 1.04347 1.03004 +/- 0.00493\n", + " 21/1 1.01703 1.02886 +/- 0.00461\n", + " 22/1 1.02628 1.02864 +/- 0.00421\n", + " 23/1 1.02598 1.02844 +/- 0.00388\n", + " 24/1 1.05341 1.03022 +/- 0.00401\n", + " 25/1 1.02201 1.02967 +/- 0.00377\n", + " 26/1 1.00758 1.02829 +/- 0.00379\n", + " 27/1 1.00720 1.02705 +/- 0.00377\n", + " 28/1 1.03098 1.02727 +/- 0.00356\n", + " 29/1 1.03022 1.02743 +/- 0.00337\n", + " 30/1 1.01694 1.02690 +/- 0.00324\n", + " 31/1 0.99064 1.02518 +/- 0.00353\n", + " 32/1 0.99495 1.02380 +/- 0.00364\n", + " 33/1 1.03220 1.02417 +/- 0.00350\n", + " 34/1 1.02399 1.02416 +/- 0.00335\n", + " 35/1 1.03048 1.02441 +/- 0.00322\n", + " 36/1 1.05360 1.02553 +/- 0.00329\n", + " 37/1 1.05030 1.02645 +/- 0.00330\n", + " 38/1 1.04167 1.02699 +/- 0.00322\n", + " 39/1 1.04406 1.02758 +/- 0.00317\n", + " 40/1 1.01169 1.02705 +/- 0.00310\n", + " 41/1 1.00191 1.02624 +/- 0.00311\n", + " 42/1 1.02729 1.02628 +/- 0.00301\n", + " 43/1 1.02263 1.02616 +/- 0.00292\n", + " 44/1 1.05344 1.02697 +/- 0.00295\n", + " 45/1 1.03607 1.02723 +/- 0.00287\n", + " 46/1 1.00357 1.02657 +/- 0.00287\n", + " 47/1 1.03353 1.02676 +/- 0.00279\n", + " 48/1 1.03817 1.02706 +/- 0.00274\n", + " 49/1 1.01454 1.02674 +/- 0.00269\n", + " 50/1 0.99860 1.02603 +/- 0.00271\n", + " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", " ======================> SIMULATION FINISHED <======================\n", @@ -2165,27 +1151,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.3000E-02 seconds\n", - " Reading cross sections = 5.0000E-03 seconds\n", - " Total time in simulation = 1.8631E+02 seconds\n", - " Time in transport only = 1.8590E+02 seconds\n", - " Time in inactive batches = 1.1710E+00 seconds\n", - " Time in active batches = 1.8514E+02 seconds\n", - " Time synchronizing fission bank = 7.3000E-02 seconds\n", - " Sampling source sites = 5.1000E-02 seconds\n", - " SEND/RECV source sites = 2.2000E-02 seconds\n", - " Time accumulating tallies = 4.0000E-03 seconds\n", + " Total time for initialization = 3.7000E-02 seconds\n", + " Reading cross sections = 4.0000E-03 seconds\n", + " Total time in simulation = 1.2661E+01 seconds\n", + " Time in transport only = 1.2600E+01 seconds\n", + " Time in inactive batches = 1.1370E+00 seconds\n", + " Time in active batches = 1.1524E+01 seconds\n", + " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.8637E+02 seconds\n", - " Calculation Rate (inactive) = 42698.5 neutrons/second\n", - " Calculation Rate (active) = 13233.2 neutrons/second\n", + " Total time elapsed = 1.2707E+01 seconds\n", + " Calculation Rate (inactive) = 43975.4 neutrons/second\n", + " Calculation Rate (active) = 17355.1 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02403 +/- 0.00071\n", - " k-effective (Track-length) = 1.02394 +/- 0.00079\n", - " k-effective (Absorption) = 1.02539 +/- 0.00044\n", - " Combined k-effective = 1.02518 +/- 0.00042\n", + " k-effective (Collision) = 1.02471 +/- 0.00243\n", + " k-effective (Track-length) = 1.02603 +/- 0.00271\n", + " k-effective (Absorption) = 1.02312 +/- 0.00182\n", + " Combined k-effective = 1.02387 +/- 0.00172\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -2196,7 +1182,7 @@ "0" ] }, - "execution_count": 35, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -2219,7 +1205,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -2239,7 +1225,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 36, "metadata": { "collapsed": true }, @@ -2257,7 +1243,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 37, "metadata": { "collapsed": false }, @@ -2266,9 +1252,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Continuous-Energy keff = 1.025194\n", - "Multi-Group keff = 1.025183\n", - "bias [pcm]: 1.1\n" + "Continuous-Energy keff = 1.024295\n", + "Multi-Group keff = 1.023875\n", + "bias [pcm]: 42.0\n" ] } ], @@ -2284,7 +1270,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We see quite good agreement with only an 1 pcm difference between the two. While these results are quite favorable, due to the high degree of approximations inherent in practical application of multi-group theory, one should not expect results of such fidelity always for multi-group Monte Carlo calculations." + "We see quite good agreement with only a 42 pcm difference between the two methods. Due to the high degree of approximations inherent in practical application of multi-group theory, one should not expect results of such high fidelity always for multi-group Monte Carlo calculations." ] }, { @@ -2305,7 +1291,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -2313,39 +1299,39 @@ "source": [ "# Get the OpenMC fission rate mesh tally data\n", "mg_mesh_tally = mgsp.get_tally(name='mesh tally')\n", - "mgopenmc_fission_rates = mg_mesh_tally.get_values(scores=['fission'])\n", + "mg_fission_rates = mg_mesh_tally.get_values(scores=['fission'])\n", "\n", "# Reshape array to 2D for plotting\n", - "mgopenmc_fission_rates.shape = (17,17)\n", + "mg_fission_rates.shape = (17,17)\n", "\n", "# Normalize to the average pin power\n", - "mgopenmc_fission_rates /= np.mean(mgopenmc_fission_rates)" + "mg_fission_rates /= np.mean(mg_fission_rates)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Now we can do the same for the Multi-Group results." + "Now we can do the same for the Continuous-Energy results." ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 39, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "# Get the OpenMC fission rate mesh tally data\n", - "mesh_tally = sp.get_tally(name='mesh tally')\n", - "openmc_fission_rates = mesh_tally.get_values(scores=['fission'])\n", + "ce_mesh_tally = sp.get_tally(name='mesh tally')\n", + "ce_fission_rates = ce_mesh_tally.get_values(scores=['fission'])\n", "\n", "# Reshape array to 2D for plotting\n", - "openmc_fission_rates.shape = (17,17)\n", + "ce_fission_rates.shape = (17,17)\n", "\n", "# Normalize to the average pin power\n", - "openmc_fission_rates /= np.mean(openmc_fission_rates)" + "ce_fission_rates /= np.mean(ce_fission_rates)" ] }, { @@ -2357,7 +1343,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 40, "metadata": { "collapsed": false }, @@ -2365,18 +1351,18 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 41, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\nMIunubFhPwAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2386,12 +1372,12 @@ "source": [ "# Plot the CE fission rates in the left subplot\n", "fig = plt.subplot(121)\n", - "plt.imshow(openmc_fission_rates, interpolation='none', cmap='jet')\n", + "plt.imshow(ce_fission_rates, interpolation='none', cmap='jet')\n", "plt.title('Continuous-Energy Fission Rates')\n", "\n", "# Plot the MG fission rates in the right subplot\n", "fig2 = plt.subplot(122)\n", - "plt.imshow(mgopenmc_fission_rates, interpolation='none', cmap='jet')\n", + "plt.imshow(mg_fission_rates, interpolation='none', cmap='jet')\n", "plt.title('Multi-Group Fission Rates')\n" ] }, diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index a5d2ec0d0..8628bef4e 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -8,10 +8,10 @@ OpenMC can be run in continuous-energy mode or multi-group mode, provided the nuclear data is available. In continuous-energy mode, the ``cross_sections.xml`` file contains necessary meta-data for each data set, including the name and a file system location where the complete library -can be found. In multi-group mode, this ``cross_sections.xml`` file contains +can be found. In multi-group mode, this ``mgxs.xml`` file contains this same meta-data describing the nuclide or material, but also contains the group-wise nuclear data. This portion of the manual describes the format of -the multi-group data library required to be used in the ``cross_sections.xml`` +the multi-group data library required to be used in the ``mgxs.xml`` file. Similar to the other input file types, the multi-group library is provided in @@ -23,7 +23,7 @@ materials. .. _XML: http://www.w3.org/XML/ ------------------------------------------------ -MGXS Library Specification -- cross_sections.xml +MGXS Library Specification -- mgxs.xml ------------------------------------------------ The multi-group library meta-data is contained within the groups_, diff --git a/openmc/material.py b/openmc/material.py index e9a74f1e7..02cbc117d 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -348,7 +348,9 @@ class Material(object): del self._nuclides[nuclide._name] def add_macroscopic(self, macroscopic): - """Add a macroscopic to the material + """Add a macroscopic to the material. This will also set the + density of the material to 1.0, unless it has been otherwise set, + as a default for Macroscopic cross sections. Parameters ---------- @@ -386,6 +388,14 @@ class Material(object): 'Material!'.format(self._id, macroscopic) raise ValueError(msg) + # Generally speaking, the density for a macroscopic object will + # be 1.0. Therefore, lets set density to 1.0 so that the user + # doesnt need to set it unless its needed. + # Of course, if the user has already set a value of density, + # then we will not override it. + if self._density is None: + self.set_density('macro', 1.0) + def remove_macroscopic(self, macroscopic): """Remove a macroscopic from the material diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 334a0fa9c..44746e209 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -722,11 +722,140 @@ class Library(object): # Load and return pickled Library object return pickle.load(open(full_filename, 'rb')) - def write_mg_library(self, xs_type='macro', domain_names=None, xs_ids=None, - filename='mg_cross_sections', directory='./', - return_names=False): - """Creates a cross-section data library file for the Multi-Group - mode of OpenMC. + def get_xsdata(self, domain, domain_name, nuclide='total', xs_type='macro', + xs_id='1m', order=-1): + """Generates an openmc.XSdata object describing a multi-group cross section + data set for eventual combination in to an openmc.MGXSLibrary object + (i.e., the library). + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_name : str + Name to apply to the "xsdata" entry produced by this method + nuclide : str + A nuclide name string (e.g., 'U-235'). Defaults to 'total' to + obtain a material-wise macroscopic cross section. + xs_type: {'macro', 'micro'} + Provide the macro or micro cross section in units of cm^-1 or + barns. Defaults to 'macro'. If the Library object is not tallied by + nuclide this will be set to 'macro' regardless. + xs_ids : str + Cross section set identifier. Defaults to '1m'. + order : Scattering order for this dataset entry. Default is -1, + which will force the XSdata object to use whatever the maximum + order available. + + Returns + ------- + xsdata : openmc.XSdata + Multi-Group Cross Section data set object. + + Raises + ------ + ValueError + When the Library object is initialized with insufficient types of + cross sections for the Library. + + See also + -------- + Library.create_mg_library(...) + + """ + + cv.check_type('domain', domain, (openmc.Material, openmc.Cell, + openmc.Cell)) + cv.check_type('domain_name', domain_name, basestring) + cv.check_type('nuclide', nuclide, basestring) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + cv.check_type('xs_id', xs_id, basestring) + cv.check_type('order', order, Integral) + cv.check_greater_than('order', order, -1, equality=True) + + # Make sure statepoint has been loaded + if self._sp_filename is None: + msg = 'A StatePoint must be loaded before calling ' \ + 'the create_mg_library() function' + raise ValueError(msg) + + # If gathering material-specific data, set the xs_type to macro + if not self.by_nuclide: + xs_type = 'macro' + + # Build & add metadata to XSdata object + name = domain_name + if nuclide is not 'total': + name += '_' + nuclide + name += '.' + xs_id + xsdata = openmc.XSdata(name, self.energy_groups) + xsdata.order = order + if nuclide is not 'total': + xsdata.zaid = self._nuclides[nuclide][0] + xsdata.awr = self._nuclides[nuclide][1] + + # Now get xs data itself + if 'transport' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'transport') + xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) + elif 'total' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'total') + xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) + if 'absorption' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'absorption') + xsdata.set_absorption_mgxs(mymgxs, xs_type=xs_type, + nuclide=[nuclide]) + if 'fission' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'fission') + xsdata.set_fission_mgxs(mymgxs, xs_type=xs_type, + nuclide=[nuclide]) + if 'kappa-fission' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'kappa-fission') + xsdata.set_kappa_fission_mgxs(mymgxs, xs_type=xs_type, + nuclide=[nuclide]) + if 'chi' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'chi') + xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) + if 'nu-fission' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'nu-fission') + xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, + nuclide=[nuclide]) + # multiplicity requires scatter and nu-scatter + if ((('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_mgxs(nuscatt_mgxs, scatt_mgxs, + xs_type=xs_type, nuclide=[nuclide]) + using_multiplicity = True + else: + using_multiplicity = False + + if using_multiplicity: + nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') + xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, + nuclide=[nuclide]) + else: + if 'nu-scatter matrix' in self.mgxs_types: + nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix') + xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, + nuclide=[nuclide]) + + # Since we are not using multiplicity, then + # scattering multiplication (nu-scatter) must be + # accounted for approximately by using an adjusted + # absorption cross section. + if 'total' in self.mgxs_types: + xsdata._absorption = \ + np.subtract(xsdata.total, + np.sum(xsdata.scatter[0, :, :], axis=1)) + + return xsdata + + def create_mg_library(self, xs_type='macro', domain_names=None, + xs_ids=None): + """Creates an openmc.MGXSLibrary object to contain the MGXS data for the + Multi-Group mode of OpenMC. Parameters ---------- @@ -735,28 +864,18 @@ class Library(object): barns. Defaults to 'macro'. If the Library object is not tallied by nuclide this will be set to 'macro' regardless. domain_names : Iterable of str - List of names to apply to the xsdata entries in the + List of names to apply to the "xsdata" entries in the resultant mgxs data file. Defaults to 'set1', 'set2', ... xs_ids : str or Iterable of str Cross section set identifier (i.e., '71c') for all data sets (if only str) or for each individual one (if iterable of str). Defaults to '1m'. - filename : str - Filename for the pickle file. Defaults to 'mg_cross_sections'. - directory : str - Directory for the pickle file. Defaults to './' (the - current working directory). - return_names : bool - Flag to indicate if the user would like the names of the - materials generated by this function returned with completion. - Defaults to False, indicating that no names will be returned. Returns ------- - mat_names : Iterable of str - Iterable of material names generated during this routine and - applies to the cross section library. Note this is returned if - the return_names parameter is provided. + mgxs_file : openmc.MGXSLibrary + Multi-Group Cross Section File that is ready to be printed to the + file of choice by the user. Raises ------ @@ -774,10 +893,9 @@ class Library(object): # multi-group cross section types self.check_library_for_openmc_mgxs() - # Check the provided parameters cv.check_value('xs_type', xs_type, ['macro', 'micro']) if domain_names is not None: - cv.check_iterable_type('domain_names', filename, basestring) + cv.check_iterable_type('domain_names', domain_names, basestring) if xs_ids is not None: if isinstance(xs_ids, basestring): # If we only have a string lets convert it now to a list @@ -787,25 +905,11 @@ class Library(object): cv.check_iterable_type('xs_ids', xs_ids, basestring) else: xs_ids = ['1m' for i in range(len(self.domains))] - cv.check_type('filename', filename, basestring) - cv.check_type('directory', directory, basestring) - # Make sure statepoint has been loaded - if self._sp_filename is None: - msg = 'A StatePoint must be loaded before calling ' \ - 'the write_mg_library() function' - raise ValueError(msg) - - # Construct the collection of the nuclides to report + # If gathering material-specific data, set the xs_type to macro if not self.by_nuclide: xs_type = 'macro' - # Make directory if it does not exist and build our filename - if not os.path.exists(directory): - os.makedirs(directory) - full_filename = os.path.join(directory, filename + '.xml') - full_filename = full_filename.replace(' ', '-') - # Initialize file mgxs_file = openmc.MGXSLibrary(self.energy_groups) @@ -813,13 +917,10 @@ class Library(object): # support for higher orders are included in openmc.mgxs order = 0 - # Build XSdata objects + # Build storage for our XSdata objects xsdatas = [] - mat_names = {} for i, domain in enumerate(self.domains): - - mat_names[domain.id] = {} if self.by_nuclide: nuclides = list(domain.get_all_nuclides().keys()) else: @@ -832,99 +933,23 @@ class Library(object): name = domain_names[i] if nuclide is not 'total': name += '_' + nuclide - name += '.' + xs_ids[i] - # Store the name - mat_names[domain.id][nuclide] = name - - xsdata = openmc.XSdata(name, self.energy_groups) - xsdata.order = order - if nuclide is not 'total': - xsdata.zaid = self._nuclides[nuclide][0] - xsdata.awr = self._nuclides[nuclide][1] - - nuclide = [nuclide] - # Now get xs data itself - if 'transport' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'transport') - xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, - nuclide=nuclide) - elif 'total' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'total') - xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, - nuclide=nuclide) - if 'absorption' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'absorption') - xsdata.set_absorption_mgxs(mymgxs, xs_type=xs_type, - nuclide=nuclide) - if 'fission' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'fission') - xsdata.set_fission_mgxs(mymgxs, xs_type=xs_type, - nuclide=nuclide) - if 'kappa-fission' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'kappa-fission') - xsdata.set_kappa_fission_mgxs(mymgxs, xs_type=xs_type, - nuclide=nuclide) - if 'chi' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'chi') - xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, - nuclide=nuclide) - if 'nu-fission' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'nu-fission') - xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, - nuclide=nuclide) - # multiplicity requires scatter and nu-scatter - if ((('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_mgxs(nuscatt_mgxs, scatt_mgxs, - xs_type=xs_type, - nuclide=nuclide) - using_multiplicity = True - else: - using_multiplicity = False - - if using_multiplicity: - nuscatt_mgxs = self.get_mgxs(domain, - 'nu-scatter matrix') - xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, - nuclide=nuclide) - else: - if 'nu-scatter matrix' in self.mgxs_types: - nuscatt_mgxs = self.get_mgxs(domain, - 'nu-scatter matrix') - xsdata.set_scatter_mgxs(nuscatt_mgxs, xs_type=xs_type, - nuclide=nuclide) - - # Since we are not using multiplicity, then - # scattering multiplication (nu-scatter) must be - # accounted for approximately by using an adjusted - # absorption cross section. - if 'total' in self.mgxs_types: - xsdata._absorption = \ - np.subtract(xsdata.total, - np.sum(xsdata.scatter[0, :, :], - axis=1)) + xsdata = self.get_xsdata(domain, name, nuclide=nuclide, + xs_type=xs_type, xs_id=xs_ids[i], + order=order) xsdatas.append(xsdata) # Add XSdatas to file mgxs_file.add_xsdatas(xsdatas) - # Finally, write the file - mgxs_file.export_to_xml(full_filename) - - if return_names: - return mat_names + return mgxs_file def check_library_for_openmc_mgxs(self): - """This routine will check the MGXS Types within the provided - Library to ensure the data types provided can be used to create - a MGXS Library for OpenMC's Multi-Group mode via the - `Library.write_mg_library` method. + """This routine will check the MGXS Types within a Library + to ensure the MGXS types provided can be used to create + a MGXS Library for OpenMC's Multi-Group mode. + The rules to check include: - Either total or transport should be present. - Both can be available if one wants, but we should @@ -943,7 +968,7 @@ class Library(object): See also -------- - Library.write_mg_library(...) + Library.create_mg_library(...) """ diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 29d0bfdd7..e59ef2d61 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -420,7 +420,8 @@ class XSdata(object): enable = tabular_legendre['enable'] check_type('enable', enable, bool) else: - msg = 'enable must be provided in tabular_legendre' + msg = 'The tabular_legendre dict must include a value keyed by ' \ + '"enable"' raise ValueError(msg) if 'num_points' in tabular_legendre: num_points = tabular_legendre['num_points'] @@ -448,217 +449,77 @@ class XSdata(object): @total.setter def total(self, total): - """This method sets the total cross section by performing a - deep-copy of the provided ndarray. If the angular - representation is "isotropic" the shape of the input array - must be the number of energy groups. If the angular - representation is "angle" then the shape of the input - array must be the number of polar angles, number azimuthal - angles and energy groups. - - Parameters - ---------- - total: ndarray - Array of group-wise cross sections to apply - - """ - - # check we have a numpy list check_type('total', total, np.ndarray, expected_iter_type=Real) - # Check the dimensions of the data check_value('total shape', total.shape, self.vector_shape) - self._total = np.copy(total) + self._total = total @absorption.setter def absorption(self, absorption): - """This method sets the absorption cross section by performing a - deep-copy of the provided ndarray. If the angular - representation is "isotropic" the shape of the input array - must be the number of energy groups. If the angular - representation is "angle" then the shape of the input - array must be the number of polar angles, number azimuthal - angles and energy groups. - - Parameters - ---------- - absorption: ndarray - Array of group-wise cross sections to apply - - """ - - # check we have a numpy list check_type('absorption', absorption, np.ndarray, expected_iter_type=Real) - # Check the dimensions of the data check_value('absorption shape', absorption.shape, self.vector_shape) - self._absorption = np.copy(absorption) + self._absorption = absorption @fission.setter def fission(self, fission): - """This method sets the fission cross section by performing a - deep-copy of the provided ndarray. If the angular - representation is "isotropic" the shape of the input array - must be the number of energy groups. If the angular - representation is "angle" then the shape of the input - array must be the number of polar angles, number azimuthal - angles and energy groups. - - Parameters - ---------- - fission: ndarray - Array of group-wise cross sections to apply - - """ - - # check we have a numpy list check_type('fission', fission, np.ndarray, expected_iter_type=Real) - # Check the dimensions of the data check_value('fission shape', fission.shape, self.vector_shape) - self._fission = np.copy(fission) + self._fission = fission if np.sum(self._fission) > 0.0: self._fissionable = True @kappa_fission.setter def kappa_fission(self, kappa_fission): - """This method sets the kappa_fission cross section by performing a - deep-copy of the provided ndarray. If the angular - representation is "isotropic" the shape of the input array - must be the number of energy groups. If the angular - representation is "angle" then the shape of the input - array must be the number of polar angles, number azimuthal - angles and energy groups. - - Parameters - ---------- - kappa_fission: ndarray - Array of group-wise cross sections to apply - - """ - - # check we have a numpy list - check_type('kappa_fission', fission, np.ndarray, + check_type('kappa_fission', kappa_fission, np.ndarray, expected_iter_type=Real) - # Check the dimensions of the data check_value('kappa fission shape', kappa_fission.shape, self.vector_shape) - self._kappa_fission = np.copy(fission) + self._kappa_fission = kappa_fission if np.sum(self._kappa_fission) > 0.0: self._fissionable = True @chi.setter def chi(self, chi): - """This method sets the chi cross section by performing a - deep-copy of the provided ndarray. If the angular - representation is "isotropic" the shape of the input array - must be the number of energy groups. If the angular - representation is "angle" then the shape of the input - array must be the number of polar angles, number azimuthal - angles and energy groups. - - Parameters - ---------- - chi: ndarray - Array of group-wise chi values to apply - - """ - if self._use_chi is not None: if not self._use_chi: msg = 'Providing chi when nu_fission already provided as a' \ 'matrix' raise ValueError(msg) - # check we have a numpy list check_type('chi', chi, np.ndarray, expected_iter_type=Real) - # Check the dimensions of the data check_value('chi shape', chi.shape, self.vector_shape) - self._chi = np.copy(chi) + self._chi = chi if self._use_chi is not None: self._use_chi = True @scatter.setter def scatter(self, scatter): - """This method sets the scattering matrix cross sections - by performing a deep-copy of the provided ndarray. - If the angular representation is "isotropic" the shape of - the input array must be the number of scattering orders, the - number of energy groups, and the number of energy groups. If - the angular representation is "angle" then the shape of the input - array must be the number of polar angles, number azimuthal - angles, number of scattering orders, energy groups, and energy groups. - - Parameters - ---------- - scatter : ndarrays - Array of cross sections to apply - - """ - - # check we have a numpy list check_type('scatter', scatter, np.ndarray, expected_iter_type=Real, max_depth=len(scatter.shape)) - # Check the dimensions of the data check_value('scatter shape', scatter.shape, self.pn_matrix_shape) - self._scatter = np.copy(scatter) + self._scatter = scatter @multiplicity.setter def multiplicity(self, multiplicity): - """This method sets the scattering multiplicity matrix cross sections - by performing a deep-copy of the provided ndarray. Multiplicity, - in OpenMC parlance, is a factor used to account for the production - of neutrons introduced by scattering multiplication reactions, i.e., - (n,xn) events. In this sense, the multiplication matrix is simply - defined as the ratio of the nu-scatter and scatter matrices. - If the angular representation is "isotropic" the shape of - the input array must be the number of energy groups and the number - of energy groups. If the angular representation is "angle" then the - shape of the input array must be the number of polar angles, - number azimuthal angles, number of scattering orders, energy groups, - and energy groups. - - Parameters - ---------- - multiplicity : ndarrays - Array of scattering multiplications to apply - - """ - - # check we have a numpy list check_type('multiplicity', multiplicity, np.ndarray, expected_iter_type=Real, max_depth=len(multiplicity.shape)) - # Check the dimensions of the data check_value('multiplicity shape', multiplicity.shape, self.matrix_shape) - self._multiplicity = np.copy(multiplicity) + self._multiplicity = multiplicity @nu_fission.setter def nu_fission(self, nu_fission): - """This method sets the nu_fission cross section by performing a - deep-copy of the provided ndarray. If the angular - representation is "isotropic" the shape of the input array - must be the number of energy groups. If the angular - representation is "angle" then the shape of the input - array must be the number of polar angles, number azimuthal - angles and energy groups. - - Parameters - ---------- - nu_fission: ndarray - Array of group-wise cross sections to apply - - """ - # The NuFissionXS class does not have the capability to produce # a fission matrix and therefore if this path is pursued, we know # chi must be used. @@ -669,12 +530,10 @@ class XSdata(object): # chi already has been set. If not, we just check that this is OK # and set the use_chi flag accordingly - # First, check we have a numpy list check_type('nu_fission', nu_fission, np.ndarray, expected_iter_type=Real, max_depth=len(nu_fission.shape)) if self._use_chi is not None: - # Check the dimensions of the data if self._use_chi: check_value('nu_fission shape', nu_fission.shape, self.vector_shape) @@ -682,16 +541,16 @@ class XSdata(object): check_value('nu_fission shape', nu_fission.shape, self.matrix_shape) else: - # Make sure the dimensions are at least right check_value('nu_fission shape', nu_fission.shape, (self.vector_shape, self.matrix_shape)) - # Then find out which one we have so we can set use_chi + # Find out if we have a nu-fission matrix or vector + # and set a flag to allow other methods to check this later. if nu_fission.shape == self.vector_shape: self._use_chi = True else: self._use_chi = False - self._nu_fission = np.copy(nu_fission) + self._nu_fission = nu_fission if np.sum(self._nu_fission) > 0.0: self._fissionable = True @@ -716,11 +575,7 @@ class XSdata(object): check_type('total', total, (openmc.mgxs.TotalXS, openmc.mgxs.TransportXS)) - - # Make sure passed MGXS object contains correct group structure check_value('energy_groups', total.energy_groups, [self.energy_groups]) - - # Make sure passed MGXS object has correct domain type check_value('domain_type', total.domain_type, ['universe', 'cell', 'material']) @@ -750,12 +605,8 @@ class XSdata(object): """ check_type('absorption', absorption, openmc.mgxs.AbsorptionXS) - - # Make sure passed MGXS object contains correct group structure check_value('energy_groups', absorption.energy_groups, [self.energy_groups]) - - # Make sure passed MGXS object has correct domain type check_value('domain_type', absorption.domain_type, ['universe', 'cell', 'material']) @@ -785,12 +636,8 @@ class XSdata(object): """ check_type('fission', fission, openmc.mgxs.FissionXS) - - # Make sure passed MGXS object contains correct group structure check_value('energy_groups', fission.energy_groups, [self.energy_groups]) - - # Make sure passed MGXS object has correct domain type check_value('domain_type', fission.domain_type, ['universe', 'cell', 'material']) @@ -824,12 +671,8 @@ class XSdata(object): # a fission matrix and therefore if this path is pursued, we know # chi must be used. check_type('nu_fission', nu_fission, openmc.mgxs.NuFissionXS) - - # Make sure passed MGXS object contains correct group structure check_value('energy_groups', nu_fission.energy_groups, [self.energy_groups]) - - # Make sure passed MGXS object has correct domain type check_value('domain_type', nu_fission.domain_type, ['universe', 'cell', 'material']) @@ -866,12 +709,8 @@ class XSdata(object): """ check_type('k_fission', k_fission, openmc.mgxs.KappaFissionXS) - - # Make sure passed MGXS object contains correct group structure check_value('energy_groups', k_fission.energy_groups, [self.energy_groups]) - - # Make sure passed MGXS object has correct domain type check_value('domain_type', k_fission.domain_type, ['universe', 'cell', 'material']) @@ -906,11 +745,7 @@ class XSdata(object): raise ValueError(msg) check_type('chi', chi, openmc.mgxs.Chi) - - # Make sure passed MGXS object contains correct group structure check_value('energy_groups', chi.energy_groups, [self.energy_groups]) - - # Make sure passed MGXS object has correct domain type check_value('domain_type', chi.domain_type, ['universe', 'cell', 'material']) @@ -944,12 +779,8 @@ class XSdata(object): """ check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) - - # Make sure passed MGXS object contains correct group structure check_value('energy_groups', scatter.energy_groups, [self.energy_groups]) - - # Make sure passed MGXS object has correct domain type check_value('domain_type', scatter.domain_type, ['universe', 'cell', 'material']) @@ -990,14 +821,10 @@ class XSdata(object): check_type('nuscatter', nuscatter, openmc.mgxs.NuScatterMatrixXS) check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) - - # Make sure passed MGXS object contains correct group structure check_value('energy_groups', nuscatter.energy_groups, [self.energy_groups]) check_value('energy_groups', scatter.energy_groups, [self.energy_groups]) - - # Make sure passed MGXS object has correct domain type check_value('domain_type', nuscatter.domain_type, ['universe', 'cell', 'material']) check_value('domain_type', scatter.domain_type, @@ -1153,14 +980,10 @@ class MGXSLibrary(object): MGXS information to add """ - - # Check the type if not isinstance(xsdata, XSdata): msg = 'Unable to add a non-XSdata "{0}" to the ' \ 'MGXSLibrary instance'.format(xsdata) raise ValueError(msg) - - # Make sure energy groups match. if xsdata.energy_groups != self._energy_groups: msg = 'Energy groups of XSdata do not match that of MGXSLibrary.' raise ValueError(msg) @@ -1176,8 +999,6 @@ class MGXSLibrary(object): XSdatas to add """ - - # Check we have an iterable of XSdatas check_iterable_type('xsdatas', xsdatas, XSdata) for xsdata in xsdatas: @@ -1222,14 +1043,14 @@ class MGXSLibrary(object): xml_element = xsdata._get_xsdata_xml() self._cross_sections_file.append(xml_element) - def export_to_xml(self, filename='mg_cross_sections.xml'): - """Create an mg_cross_sections.xml file that can be used for a + def export_to_xml(self, filename='mgxs.xml'): + """Create an mgxs.xml file that can be used for a simulation. Parameters ---------- filename : str, optional - filename of file, default is mg_cross_sections.xml + filename of file, default is mgxs.xml """ diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 22eff595c..24986be87 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -153,7 +153,7 @@ contains else call get_environment_variable("OPENMC_MG_CROSS_SECTIONS", env_variable) if (len_trim(env_variable) == 0) then - call fatal_error("No cross_sections.xml file was specified in & + call fatal_error("No mgxs.xml file was specified in & &settings.xml or in the OPENMC_MG_CROSS_SECTIONS environment & &variable. OpenMC needs such a file to identify where to & &find the cross section libraries. Please consult the user's & @@ -4537,24 +4537,24 @@ contains subroutine read_mg_cross_sections_xml() integer :: i ! loop index - logical :: file_exists ! does cross_sections.xml exist? + logical :: file_exists ! does mgxs.xml exist? type(XsListing), pointer :: listing => null() type(Node), pointer :: doc => null() type(Node), pointer :: node_xsdata => null() type(NodeList), pointer :: node_xsdata_list => null() real(8), allocatable :: rev_energy_bins(:) - ! Check if cross_sections.xml exists + ! Check if mgxs.xml exists inquire(FILE=path_cross_sections, EXIST=file_exists) if (.not. file_exists) then - ! Could not find cross_sections.xml file + ! Could not find mgxs.xml file call fatal_error("Cross sections XML file '" & // trim(path_cross_sections) // "' does not exist!") end if call write_message("Reading cross sections XML file...", 5) - ! Parse cross_sections.xml file + ! Parse mgxs.xml file call open_xmldoc(doc, path_cross_sections) if (check_for_node(doc, "groups")) then @@ -4602,7 +4602,7 @@ contains ! Allocate xs_listings array if (n_listings == 0) then call fatal_error("At least one element must be present in & - &cross_sections.xml file!") + &mgxs.xml file!") else allocate(xs_listings(n_listings)) end if From 86cf42d7a63ab65db19986787510fe670a88e955 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 14 May 2016 07:58:10 -0400 Subject: [PATCH 194/259] Clarifications in example notebook --- .../pythonapi/examples/mgxs-part-iv.ipynb | 69 +++++++++++-------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index d03db2cce..b81e8f06b 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -520,9 +520,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports \"material,\" \"cell,\" and \"universe\" domain types. We will use a \"cell\" domain type here to compute cross sections in each of the cells in the fuel assembly geometry.\n", + "Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports \"material,\" \"cell,\" and \"universe\" domain types. In this simple example, we wish to compute multi-group cross sections only for each material andtherefore will use a \"material\" domain type.\n", "\n", - "**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell or universe) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property. In our this simple example, we wish to compute multi-group cross sections only for each material." + "**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell or universe) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property." ] }, { @@ -696,7 +696,7 @@ " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: c779ca42c41a062a6a813e03f2add2d182ca9190\n", - " Date/Time: 2016-05-13 22:29:41\n", + " Date/Time: 2016-05-14 07:56:31\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -783,20 +783,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4550E+00 seconds\n", - " Reading cross sections = 1.1400E+00 seconds\n", - " Total time in simulation = 1.9150E+01 seconds\n", - " Time in transport only = 1.9021E+01 seconds\n", - " Time in inactive batches = 2.1570E+00 seconds\n", - " Time in active batches = 1.6993E+01 seconds\n", - " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Total time for initialization = 1.4930E+00 seconds\n", + " Reading cross sections = 1.1850E+00 seconds\n", + " Total time in simulation = 1.9053E+01 seconds\n", + " Time in transport only = 1.9002E+01 seconds\n", + " Time in inactive batches = 2.0890E+00 seconds\n", + " Time in active batches = 1.6964E+01 seconds\n", + " Time synchronizing fission bank = 6.0000E-03 seconds\n", " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.0614E+01 seconds\n", - " Calculation Rate (inactive) = 23180.3 neutrons/second\n", - " Calculation Rate (active) = 11769.6 neutrons/second\n", + " Total time elapsed = 2.0556E+01 seconds\n", + " Calculation Rate (inactive) = 23934.9 neutrons/second\n", + " Calculation Rate (active) = 11789.7 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -960,7 +960,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we will need to recreate similar xml files from above, beginning with materials.xml. Similar to how continuous-energy cross section libraries are named, the `openmc.Macroscopic` quantities below can either have their `xs_id` included (i.e., `'.2m'`), or this can be left off but the `default_xs` parameter of the materials file be used instead to be set to the `'xs_id'` of interest (which is `'.2m'` in this case as defined in the previous cell)." + "OpenMC's multi-group mode uses the same input files as does the continuous-energy mode (materials, geometry, settings, plots ,and tallies file). Differences would include the use of a flag to tell the code to use multi-group transport, a location of the multi-group library file, and any changes needed in the materials.xml and geometry.xml files to re-define materials as necessary (for example, if using a macroscopic cross section library instead of individual microscopic nuclide cross sections as is done in continuous-energy, or if multiple cross sections exist for the same material due to the material existing in varied spectral regions).\n", + "\n", + "Since this example is using material-wise macroscopic cross sections without considering that the neutron energy spectra and thus cross sections may be changing in space, we only need to modify the materials.xml and settings.xml files. If the material names and ids are not otherwise changed, then the geometry.xml file does not need to be modified from its continuous-energy form. The tallies.xml file will be left untouched as it currently contains the tally types that we will need to perform our comparison. \n", + "\n", + "First we will create the new materials.xml file. Continuous-energy cross section nuclidic data sets are named with the nuclide name followed by a cross section identifier. For example, the data for hydrogen is accessed in OpenMC by the name `H-1.71c`. The cross-section identifier (in this case, `71c`) can be used to distinguish between different variants of `H-1` data, such as for different evaluations or temperatures. OpenMC multi-group libraries use the same convention of a name followed by a xs identifier. We will use a cross section identifier here of `2m`. Similar to how continuous-energy cross section libraries are named, the `openmc.Macroscopic` quantities below can either have their `xs_id` included (i.e., `'fuel.2m'`). An alternative is to leave this extension off and simply change the `default_xs` parameter to `.2m`." ] }, { @@ -1067,7 +1071,7 @@ " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: c779ca42c41a062a6a813e03f2add2d182ca9190\n", - " Date/Time: 2016-05-13 22:30:02\n", + " Date/Time: 2016-05-14 07:56:52\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1151,20 +1155,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.7000E-02 seconds\n", - " Reading cross sections = 4.0000E-03 seconds\n", - " Total time in simulation = 1.2661E+01 seconds\n", - " Time in transport only = 1.2600E+01 seconds\n", - " Time in inactive batches = 1.1370E+00 seconds\n", - " Time in active batches = 1.1524E+01 seconds\n", + " Total time for initialization = 4.0000E-02 seconds\n", + " Reading cross sections = 6.0000E-03 seconds\n", + " Total time in simulation = 1.2540E+01 seconds\n", + " Time in transport only = 1.2496E+01 seconds\n", + " Time in inactive batches = 1.1110E+00 seconds\n", + " Time in active batches = 1.1429E+01 seconds\n", " Time synchronizing fission bank = 7.0000E-03 seconds\n", " Sampling source sites = 5.0000E-03 seconds\n", " SEND/RECV source sites = 2.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.2707E+01 seconds\n", - " Calculation Rate (inactive) = 43975.4 neutrons/second\n", - " Calculation Rate (active) = 17355.1 neutrons/second\n", + " Total time elapsed = 1.2589E+01 seconds\n", + " Calculation Rate (inactive) = 45004.5 neutrons/second\n", + " Calculation Rate (active) = 17499.3 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1351,7 +1355,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1360,9 +1364,9 @@ }, { "data": { - "image/png": "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\nMIunubFhPwAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1370,6 +1374,11 @@ } ], "source": [ + "# Force zeros to be NaNs so their values are not included when matplotlib calculates\n", + "# the color scale\n", + "ce_fission_rates[ce_fission_rates == 0.] = np.nan\n", + "mg_fission_rates[mg_fission_rates == 0.] = np.nan\n", + "\n", "# Plot the CE fission rates in the left subplot\n", "fig = plt.subplot(121)\n", "plt.imshow(ce_fission_rates, interpolation='none', cmap='jet')\n", @@ -1387,7 +1396,7 @@ "collapsed": true }, "source": [ - "We also see very good agreement between the fission rate distributions." + "We also see very good agreement between the fission rate distributions, though these should converge closer together with an increasing number of particle histories in both the continuous-energy run to generate the multi-group cross sections, and in the multi-group calculation itself." ] }, { From 2654505089422a551f57f2653cd60c7b70e45fc3 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 14 May 2016 10:36:13 -0400 Subject: [PATCH 195/259] Updated MGXS test results using Pandas 0.18 --- .../results_true.dat | 86 +++---- .../results_true.dat | 4 +- .../results_true.dat | 236 +++++++++--------- .../results_true.dat | 2 +- 4 files changed, 164 insertions(+), 164 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index ffe6f2908..184be68bf 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -5,81 +5,81 @@ 1 1 1 1 total P1 0.039277 0.004308 2 1 1 1 total P2 0.017574 0.002402 3 1 1 1 total P3 0.012203 0.002164 material group out nuclide mean std. dev. -0 1 1 total 1 0.055333 material group in nuclide mean std. dev. +0 1 1 total 1.0 0.055333 material group in nuclide mean std. dev. 0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. -0 2 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 2 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 0 2 1 1 total P0 0.272369 0.006872 1 2 1 1 total P1 0.031107 0.005483 2 2 1 1 total P2 0.025999 0.006151 3 2 1 1 total P3 0.003219 0.003312 material group out nuclide mean std. dev. -0 2 1 total 0 0 material group in nuclide mean std. dev. +0 2 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 3 1 total 0.400028 0.034667 material group in nuclide mean std. dev. -0 3 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 3 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 0 3 1 1 total P0 0.794999 0.036548 1 3 1 1 total P1 0.401537 0.016175 2 3 1 1 total P2 0.143623 0.008719 3 3 1 1 total P3 0.001991 0.004433 material group out nuclide mean std. dev. -0 3 1 total 0 0 material group in nuclide mean std. dev. +0 3 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 4 1 total 0.377402 0.072937 material group in nuclide mean std. dev. -0 4 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 4 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 0 4 1 1 total P0 0.727311 0.080096 1 4 1 1 total P1 0.355839 0.037901 2 4 1 1 total P2 0.124483 0.015823 3 4 1 1 total P3 0.012168 0.006224 material group out nuclide mean std. dev. -0 4 1 total 0 0 material group in nuclide mean std. dev. -0 5 1 total 0 0 material group in nuclide mean std. dev. -0 5 1 total 0 0 material group in group out nuclide moment mean std. dev. -0 5 1 1 total P0 0 0 -1 5 1 1 total P1 0 0 -2 5 1 1 total P2 0 0 -3 5 1 1 total P3 0 0 material group out nuclide mean std. dev. -0 5 1 total 0 0 material group in nuclide mean std. dev. -0 6 1 total 0 0 material group in nuclide mean std. dev. -0 6 1 total 0 0 material group in group out nuclide moment mean std. dev. -0 6 1 1 total P0 0 0 -1 6 1 1 total P1 0 0 -2 6 1 1 total P2 0 0 -3 6 1 1 total P3 0 0 material group out nuclide mean std. dev. -0 6 1 total 0 0 material group in nuclide mean std. dev. -0 7 1 total 0 0 material group in nuclide mean std. dev. -0 7 1 total 0 0 material group in group out nuclide moment mean std. dev. -0 7 1 1 total P0 0 0 -1 7 1 1 total P1 0 0 -2 7 1 1 total P2 0 0 -3 7 1 1 total P3 0 0 material group out nuclide mean std. dev. -0 7 1 total 0 0 material group in nuclide mean std. dev. -0 8 1 total 0 0 material group in nuclide mean std. dev. -0 8 1 total 0 0 material group in group out nuclide moment mean std. dev. -0 8 1 1 total P0 0 0 -1 8 1 1 total P1 0 0 -2 8 1 1 total P2 0 0 -3 8 1 1 total P3 0 0 material group out nuclide mean std. dev. -0 8 1 total 0 0 material group in nuclide mean std. dev. +0 4 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 5 1 1 total P0 0.0 0.0 +1 5 1 1 total P1 0.0 0.0 +2 5 1 1 total P2 0.0 0.0 +3 5 1 1 total P3 0.0 0.0 material group out nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 6 1 1 total P0 0.0 0.0 +1 6 1 1 total P1 0.0 0.0 +2 6 1 1 total P2 0.0 0.0 +3 6 1 1 total P3 0.0 0.0 material group out nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 7 1 1 total P0 0.0 0.0 +1 7 1 1 total P1 0.0 0.0 +2 7 1 1 total P2 0.0 0.0 +3 7 1 1 total P3 0.0 0.0 material group out nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 8 1 1 total P0 0.0 0.0 +1 8 1 1 total P1 0.0 0.0 +2 8 1 1 total P2 0.0 0.0 +3 8 1 1 total P3 0.0 0.0 material group out nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 9 1 total 0.600536 0.748875 material group in nuclide mean std. dev. -0 9 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 9 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 0 9 1 1 total P0 0.720380 0.771015 1 9 1 1 total P1 0.119844 0.184691 2 9 1 1 total P2 0.038522 0.064485 3 9 1 1 total P3 0.056023 0.050595 material group out nuclide mean std. dev. -0 9 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10 1 total 0.235515 0.613974 material group in nuclide mean std. dev. -0 10 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 10 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 0 10 1 1 total P0 0.501009 0.708534 1 10 1 1 total P1 0.265494 0.375465 2 10 1 1 total P2 0.141979 0.200788 3 10 1 1 total P3 0.074258 0.105017 material group out nuclide mean std. dev. -0 10 1 total 0 0 material group in nuclide mean std. dev. +0 10 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 11 1 total 0.510145 0.741941 material group in nuclide mean std. dev. -0 11 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 11 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 0 11 1 1 total P0 0.804661 0.817658 1 11 1 1 total P1 0.312803 0.315315 2 11 1 1 total P2 0.168113 0.172935 3 11 1 1 total P3 0.003808 0.037911 material group out nuclide mean std. dev. -0 11 1 total 0 0 material group in nuclide mean std. dev. +0 11 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 12 1 total 0.73836 0.825631 material group in nuclide mean std. dev. -0 12 1 total 0 0 material group in group out nuclide moment mean std. dev. +0 12 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 0 12 1 1 total P0 0.943429 0.856119 1 12 1 1 total P1 0.220164 0.163180 2 12 1 1 total P2 0.052884 0.042440 3 12 1 1 total P3 0.039939 0.032867 material group out nuclide mean std. dev. -0 12 1 total 0 0 \ No newline at end of file +0 12 1 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index ba9eaa71e..fa55249d1 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,8 +1,8 @@ avg(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.718919 0.520644 avg(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 0 avg(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 total 0.0 0.0 avg(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 1.142547 0.570131 1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 avg(distribcell) group out nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 5e55a4c74..94150a202 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -19,12 +19,12 @@ 1 1 2 2 total P1 -0.011310 0.007839 2 1 2 2 total P2 -0.014807 0.008629 3 1 2 2 total P3 -0.006855 0.009047 material group out nuclide mean std. dev. -1 1 1 total 1 0.055333 -0 1 2 total 0 0.000000 material group in nuclide mean std. dev. +1 1 1 total 1.0 0.055333 +0 1 2 total 0.0 0.000000 material group in nuclide mean std. dev. 1 2 1 total 0.237254 0.008184 0 2 2 total 0.285930 0.048796 material group in nuclide mean std. dev. -1 2 1 total 0 0 -0 2 2 total 0 0 material group in group out nuclide moment mean std. dev. +1 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 12 2 1 1 total P0 0.273115 0.006253 13 2 1 1 total P1 0.035861 0.005878 14 2 1 1 total P2 0.029704 0.006640 @@ -41,12 +41,12 @@ 1 2 2 2 total P1 -0.021880 0.012218 2 2 2 2 total P2 -0.015295 0.010276 3 2 2 2 total P3 0.014034 0.014318 material group out nuclide mean std. dev. -1 2 1 total 0 0 -0 2 2 total 0 0 material group in nuclide mean std. dev. +1 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 3 1 total 0.286906 0.027401 0 3 2 total 1.418151 0.265308 material group in nuclide mean std. dev. -1 3 1 total 0 0 -0 3 2 total 0 0 material group in group out nuclide moment mean std. dev. +1 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 12 3 1 1 total P0 0.643346 0.028376 13 3 1 1 total P1 0.383409 0.016447 14 3 1 1 total P2 0.152185 0.009574 @@ -63,12 +63,12 @@ 1 3 2 2 total P1 0.498431 0.063421 2 3 2 2 total P2 0.091205 0.013726 3 3 2 2 total P3 0.017054 0.013916 material group out nuclide mean std. dev. -1 3 1 total 0 0 -0 3 2 total 0 0 material group in nuclide mean std. dev. +1 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 4 1 total 0.242447 0.061031 0 4 2 total 1.253959 0.388363 material group in nuclide mean std. dev. -1 4 1 total 0 0 -0 4 2 total 0 0 material group in group out nuclide moment mean std. dev. +1 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 12 4 1 1 total P0 0.543941 0.065427 13 4 1 1 total P1 0.326011 0.038602 14 4 1 1 total P2 0.131133 0.017475 @@ -85,100 +85,100 @@ 1 4 2 2 total P1 0.500695 0.122178 2 4 2 2 total P2 0.099026 0.038719 3 4 2 2 total P3 0.032975 0.025103 material group out nuclide mean std. dev. -1 4 1 total 0 0 -0 4 2 total 0 0 material group in nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in group out nuclide moment mean std. dev. -12 5 1 1 total P0 0 0 -13 5 1 1 total P1 0 0 -14 5 1 1 total P2 0 0 -15 5 1 1 total P3 0 0 -8 5 1 2 total P0 0 0 -9 5 1 2 total P1 0 0 -10 5 1 2 total P2 0 0 -11 5 1 2 total P3 0 0 -4 5 2 1 total P0 0 0 -5 5 2 1 total P1 0 0 -6 5 2 1 total P2 0 0 -7 5 2 1 total P3 0 0 -0 5 2 2 total P0 0 0 -1 5 2 2 total P1 0 0 -2 5 2 2 total P2 0 0 -3 5 2 2 total P3 0 0 material group out nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in group out nuclide moment mean std. dev. -12 6 1 1 total P0 0 0 -13 6 1 1 total P1 0 0 -14 6 1 1 total P2 0 0 -15 6 1 1 total P3 0 0 -8 6 1 2 total P0 0 0 -9 6 1 2 total P1 0 0 -10 6 1 2 total P2 0 0 -11 6 1 2 total P3 0 0 -4 6 2 1 total P0 0 0 -5 6 2 1 total P1 0 0 -6 6 2 1 total P2 0 0 -7 6 2 1 total P3 0 0 -0 6 2 2 total P0 0 0 -1 6 2 2 total P1 0 0 -2 6 2 2 total P2 0 0 -3 6 2 2 total P3 0 0 material group out nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in group out nuclide moment mean std. dev. -12 7 1 1 total P0 0 0 -13 7 1 1 total P1 0 0 -14 7 1 1 total P2 0 0 -15 7 1 1 total P3 0 0 -8 7 1 2 total P0 0 0 -9 7 1 2 total P1 0 0 -10 7 1 2 total P2 0 0 -11 7 1 2 total P3 0 0 -4 7 2 1 total P0 0 0 -5 7 2 1 total P1 0 0 -6 7 2 1 total P2 0 0 -7 7 2 1 total P3 0 0 -0 7 2 2 total P0 0 0 -1 7 2 2 total P1 0 0 -2 7 2 2 total P2 0 0 -3 7 2 2 total P3 0 0 material group out nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in group out nuclide moment mean std. dev. -12 8 1 1 total P0 0 0 -13 8 1 1 total P1 0 0 -14 8 1 1 total P2 0 0 -15 8 1 1 total P3 0 0 -8 8 1 2 total P0 0 0 -9 8 1 2 total P1 0 0 -10 8 1 2 total P2 0 0 -11 8 1 2 total P3 0 0 -4 8 2 1 total P0 0 0 -5 8 2 1 total P1 0 0 -6 8 2 1 total P2 0 0 -7 8 2 1 total P3 0 0 -0 8 2 2 total P0 0 0 -1 8 2 2 total P1 0 0 -2 8 2 2 total P2 0 0 -3 8 2 2 total P3 0 0 material group out nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in nuclide mean std. dev. +1 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +12 5 1 1 total P0 0.0 0.0 +13 5 1 1 total P1 0.0 0.0 +14 5 1 1 total P2 0.0 0.0 +15 5 1 1 total P3 0.0 0.0 +8 5 1 2 total P0 0.0 0.0 +9 5 1 2 total P1 0.0 0.0 +10 5 1 2 total P2 0.0 0.0 +11 5 1 2 total P3 0.0 0.0 +4 5 2 1 total P0 0.0 0.0 +5 5 2 1 total P1 0.0 0.0 +6 5 2 1 total P2 0.0 0.0 +7 5 2 1 total P3 0.0 0.0 +0 5 2 2 total P0 0.0 0.0 +1 5 2 2 total P1 0.0 0.0 +2 5 2 2 total P2 0.0 0.0 +3 5 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +12 6 1 1 total P0 0.0 0.0 +13 6 1 1 total P1 0.0 0.0 +14 6 1 1 total P2 0.0 0.0 +15 6 1 1 total P3 0.0 0.0 +8 6 1 2 total P0 0.0 0.0 +9 6 1 2 total P1 0.0 0.0 +10 6 1 2 total P2 0.0 0.0 +11 6 1 2 total P3 0.0 0.0 +4 6 2 1 total P0 0.0 0.0 +5 6 2 1 total P1 0.0 0.0 +6 6 2 1 total P2 0.0 0.0 +7 6 2 1 total P3 0.0 0.0 +0 6 2 2 total P0 0.0 0.0 +1 6 2 2 total P1 0.0 0.0 +2 6 2 2 total P2 0.0 0.0 +3 6 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +12 7 1 1 total P0 0.0 0.0 +13 7 1 1 total P1 0.0 0.0 +14 7 1 1 total P2 0.0 0.0 +15 7 1 1 total P3 0.0 0.0 +8 7 1 2 total P0 0.0 0.0 +9 7 1 2 total P1 0.0 0.0 +10 7 1 2 total P2 0.0 0.0 +11 7 1 2 total P3 0.0 0.0 +4 7 2 1 total P0 0.0 0.0 +5 7 2 1 total P1 0.0 0.0 +6 7 2 1 total P2 0.0 0.0 +7 7 2 1 total P3 0.0 0.0 +0 7 2 2 total P0 0.0 0.0 +1 7 2 2 total P1 0.0 0.0 +2 7 2 2 total P2 0.0 0.0 +3 7 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +12 8 1 1 total P0 0.0 0.0 +13 8 1 1 total P1 0.0 0.0 +14 8 1 1 total P2 0.0 0.0 +15 8 1 1 total P3 0.0 0.0 +8 8 1 2 total P0 0.0 0.0 +9 8 1 2 total P1 0.0 0.0 +10 8 1 2 total P2 0.0 0.0 +11 8 1 2 total P3 0.0 0.0 +4 8 2 1 total P0 0.0 0.0 +5 8 2 1 total P1 0.0 0.0 +6 8 2 1 total P2 0.0 0.0 +7 8 2 1 total P3 0.0 0.0 +0 8 2 2 total P0 0.0 0.0 +1 8 2 2 total P1 0.0 0.0 +2 8 2 2 total P2 0.0 0.0 +3 8 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 9 1 total 0.600536 0.748875 0 9 2 total 0.000000 0.000000 material group in nuclide mean std. dev. -1 9 1 total 0 0 -0 9 2 total 0 0 material group in group out nuclide moment mean std. dev. +1 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 12 9 1 1 total P0 0.720380 0.771015 13 9 1 1 total P1 0.119844 0.184691 14 9 1 1 total P2 0.038522 0.064485 @@ -195,12 +195,12 @@ 1 9 2 2 total P1 0.000000 0.000000 2 9 2 2 total P2 0.000000 0.000000 3 9 2 2 total P3 0.000000 0.000000 material group out nuclide mean std. dev. -1 9 1 total 0 0 -0 9 2 total 0 0 material group in nuclide mean std. dev. +1 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10 1 total 0.235515 0.613974 0 10 2 total 0.000000 0.000000 material group in nuclide mean std. dev. -1 10 1 total 0 0 -0 10 2 total 0 0 material group in group out nuclide moment mean std. dev. +1 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 12 10 1 1 total P0 0.501009 0.708534 13 10 1 1 total P1 0.265494 0.375465 14 10 1 1 total P2 0.141979 0.200788 @@ -217,12 +217,12 @@ 1 10 2 2 total P1 0.000000 0.000000 2 10 2 2 total P2 0.000000 0.000000 3 10 2 2 total P3 0.000000 0.000000 material group out nuclide mean std. dev. -1 10 1 total 0 0 -0 10 2 total 0 0 material group in nuclide mean std. dev. +1 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 11 1 total 0.186324 0.632129 0 11 2 total 0.945986 1.591133 material group in nuclide mean std. dev. -1 11 1 total 0 0 -0 11 2 total 0 0 material group in group out nuclide moment mean std. dev. +1 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 12 11 1 1 total P0 0.478128 0.676174 13 11 1 1 total P1 0.323679 0.457751 14 11 1 1 total P2 0.143375 0.202763 @@ -239,12 +239,12 @@ 1 11 2 2 total P1 0.286611 0.405329 2 11 2 2 total P2 0.218191 0.308569 3 11 2 2 total P3 -0.048514 0.068609 material group out nuclide mean std. dev. -1 11 1 total 0 0 -0 11 2 total 0 0 material group in nuclide mean std. dev. +1 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 12 1 total 0.213292 0.271444 0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. -1 12 1 total 0 0 -0 12 2 total 0 0 material group in group out nuclide moment mean std. dev. +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. 12 12 1 1 total P0 0.408594 0.278123 13 12 1 1 total P1 0.222541 0.145776 14 12 1 1 total P2 0.090972 0.069626 @@ -261,5 +261,5 @@ 1 12 2 2 total P1 0.229748 0.324913 2 12 2 2 total P2 0.014178 0.020051 3 12 2 2 total P3 0.038997 0.055150 material group out nuclide mean std. dev. -1 12 1 total 0 0 -0 12 2 total 0 0 \ No newline at end of file +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 1fcfe4aef..06f838206 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -002a4c91c4b4288dbac2cba267175c4560cca43685bfd5d415775e9fc1635866c1f9c3396a44d01dd29f734a0432e132408d36c9f7c4e34783cc295f2d9dc393 \ No newline at end of file +1ee58383dc8ac46c5e0d72321cbc34b0dba531435d5e0e632cbbf9572eb7d669c8c8ad9f370345325afa0bdeb2f818b0f5204b7c4a7c4aaf58ded7acbd715ef8 \ No newline at end of file From fc1734e75a545b2017f9423ba5010da4c4a3852c Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 14 May 2016 10:52:35 -0400 Subject: [PATCH 196/259] Now import warnings module in openmc.statepoint --- openmc/statepoint.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 19aa3dbaf..d5dd7bc1e 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -1,6 +1,8 @@ import sys import re import os +import warnings + import numpy as np import openmc From 132fd870d8f8803bc54a851079ec8f92dfea9980 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 14 May 2016 10:57:47 -0400 Subject: [PATCH 197/259] Now expand Legendre scores for ScatterMatrix for all orders --- openmc/mgxs/mgxs.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c1255f609..2f9247d18 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1821,10 +1821,9 @@ class ScatterMatrixXS(MGXS): # Expand scores to match the format in the statepoint # e.g., "scatter-P2" -> "scatter-0", "scatter-1", "scatter-2" - if 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)] + 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)] super(ScatterMatrixXS, self).load_from_statepoint(statepoint) From 87dfd97e5c5beb162678b4a0858f4373ae3063f6 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 14 May 2016 12:33:02 -0400 Subject: [PATCH 198/259] Fixed issue with order=0 ScatterMatrixXS statepoint loading when not using P0 correction --- .../pythonapi/examples/mgxs-part-iii.ipynb | 34 +++++++++---------- openmc/mgxs/mgxs.py | 7 ++-- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index ece33e3f5..bc2f96414 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -459,7 +459,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -727,7 +727,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: 47ef320ad517612376e181ec6a6bc42ca0db98ce\n", - " Date/Time: 2016-05-13 13:14:08\n", + " Date/Time: 2016-05-14 12:29:07\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -814,20 +814,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 7.4900E-01 seconds\n", - " Reading cross sections = 2.6400E-01 seconds\n", - " Total time in simulation = 8.0114E+01 seconds\n", - " Time in transport only = 8.0033E+01 seconds\n", - " Time in inactive batches = 6.5120E+00 seconds\n", - " Time in active batches = 7.3602E+01 seconds\n", - " Time synchronizing fission bank = 3.2000E-02 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 2.8000E-02 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", + " Total time for initialization = 5.7700E-01 seconds\n", + " Reading cross sections = 1.3400E-01 seconds\n", + " Total time in simulation = 8.0461E+01 seconds\n", + " Time in transport only = 8.0422E+01 seconds\n", + " Time in inactive batches = 6.4060E+00 seconds\n", + " Time in active batches = 7.4055E+01 seconds\n", + " Time synchronizing fission bank = 6.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 8.0892E+01 seconds\n", - " Calculation Rate (inactive) = 3839.07 neutrons/second\n", - " Calculation Rate (active) = 1358.66 neutrons/second\n", + " Total time elapsed = 8.1067E+01 seconds\n", + " Calculation Rate (inactive) = 3902.59 neutrons/second\n", + " Calculation Rate (active) = 1350.35 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1559,7 +1559,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 43, @@ -1570,7 +1570,7 @@ "data": { "image/png": "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\n2ajR7Q6wgAAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2f9247d18..34a5b88b5 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1821,9 +1821,10 @@ class ScatterMatrixXS(MGXS): # Expand scores to match the format in the statepoint # e.g., "scatter-P2" -> "scatter-0", "scatter-1", "scatter-2" - 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)] + 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)] super(ScatterMatrixXS, self).load_from_statepoint(statepoint) From 4bec584ddb7d07be7d92ad9d037e8363b2f25614 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 14 May 2016 13:04:27 -0400 Subject: [PATCH 199/259] Removed *_id setting in example notebook IV, since they are not needed, just as @wbinventor said. I owe this man a beer. --- .../pythonapi/examples/mgxs-part-iv.ipynb | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index b81e8f06b..d15f265d4 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -83,19 +83,19 @@ "outputs": [], "source": [ "# 1.6 enriched fuel\n", - "fuel = openmc.Material(name='1.6% Fuel', material_id=1)\n", + "fuel = openmc.Material(name='1.6% Fuel')\n", "fuel.set_density('g/cm3', 10.31341)\n", "fuel.add_nuclide(u235, 3.7503e-4)\n", "fuel.add_nuclide(u238, 2.2625e-2)\n", "fuel.add_nuclide(o16, 4.6007e-2)\n", "\n", "# zircaloy\n", - "zircaloy = openmc.Material(name='Zircaloy', material_id=2)\n", + "zircaloy = openmc.Material(name='Zircaloy')\n", "zircaloy.set_density('g/cm3', 6.55)\n", "zircaloy.add_nuclide(zr90, 7.2758e-3)\n", "\n", "# borated water\n", - "water = openmc.Material(name='Borated Water', material_id=3)\n", + "water = openmc.Material(name='Borated Water')\n", "water.set_density('g/cm3', 0.740582)\n", "water.add_nuclide(h1, 4.9457e-2)\n", "water.add_nuclide(o16, 2.4732e-2)\n", @@ -169,22 +169,22 @@ "outputs": [], "source": [ "# Create a Universe to encapsulate a fuel pin\n", - "fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin', universe_id=10)\n", + "fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin')\n", "\n", "# Create fuel Cell\n", - "fuel_cell = openmc.Cell(name='1.6% Fuel', cell_id=1)\n", + "fuel_cell = openmc.Cell(name='1.6% Fuel')\n", "fuel_cell.fill = fuel\n", "fuel_cell.region = -fuel_outer_radius\n", "fuel_pin_universe.add_cell(fuel_cell)\n", "\n", "# Create a clad Cell\n", - "clad_cell = openmc.Cell(name='1.6% Clad', cell_id=2)\n", + "clad_cell = openmc.Cell(name='1.6% Clad')\n", "clad_cell.fill = zircaloy\n", "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", "fuel_pin_universe.add_cell(clad_cell)\n", "\n", "# Create a moderator Cell\n", - "moderator_cell = openmc.Cell(name='1.6% Moderator', cell_id=3)\n", + "moderator_cell = openmc.Cell(name='1.6% Moderator')\n", "moderator_cell.fill = water\n", "moderator_cell.region = +clad_outer_radius\n", "fuel_pin_universe.add_cell(moderator_cell)" @@ -206,22 +206,22 @@ "outputs": [], "source": [ "# Create a Universe to encapsulate a control rod guide tube\n", - "guide_tube_universe = openmc.Universe(name='Guide Tube', universe_id=20)\n", + "guide_tube_universe = openmc.Universe(name='Guide Tube')\n", "\n", "# Create guide tube Cell\n", - "guide_tube_cell = openmc.Cell(name='Guide Tube Water', cell_id=4)\n", + "guide_tube_cell = openmc.Cell(name='Guide Tube Water')\n", "guide_tube_cell.fill = water\n", "guide_tube_cell.region = -fuel_outer_radius\n", "guide_tube_universe.add_cell(guide_tube_cell)\n", "\n", "# Create a clad Cell\n", - "clad_cell = openmc.Cell(name='Guide Clad', cell_id=5)\n", + "clad_cell = openmc.Cell(name='Guide Clad')\n", "clad_cell.fill = zircaloy\n", "clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n", "guide_tube_universe.add_cell(clad_cell)\n", "\n", "# Create a moderator Cell\n", - "moderator_cell = openmc.Cell(name='Guide Tube Moderator', cell_id=6)\n", + "moderator_cell = openmc.Cell(name='Guide Tube Moderator')\n", "moderator_cell.fill = water\n", "moderator_cell.region = +clad_outer_radius\n", "guide_tube_universe.add_cell(moderator_cell)" @@ -243,7 +243,7 @@ "outputs": [], "source": [ "# Create fuel assembly Lattice\n", - "assembly = openmc.RectLattice(name='1.6% Fuel Assembly', lattice_id=100)\n", + "assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n", "assembly.dimension = (17, 17)\n", "assembly.pitch = (1.26, 1.26)\n", "assembly.lower_left = [-1.26 * 17. / 2.0] * 2" @@ -297,14 +297,14 @@ "outputs": [], "source": [ "# Create root Cell\n", - "root_cell = openmc.Cell(name='root cell', cell_id=0)\n", + "root_cell = openmc.Cell(name='root cell')\n", "root_cell.fill = assembly\n", "\n", "# Add boundary planes\n", "root_cell.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n", "\n", "# Create root Universe\n", - "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", + "root_universe = openmc.Universe(name='root universe')\n", "root_universe.add_cell(root_cell)" ] }, @@ -382,7 +382,7 @@ "outputs": [], "source": [ "# Instantiate a Plot\n", - "plot = openmc.Plot(plot_id=1)\n", + "plot = openmc.Plot()\n", "plot.filename = 'materials-xy'\n", "plot.origin = [0, 0, 0]\n", "plot.pixels = [250, 250]\n", @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -637,7 +637,7 @@ "outputs": [], "source": [ "# Instantiate a tally Mesh\n", - "mesh = openmc.Mesh(mesh_id=1)\n", + "mesh = openmc.Mesh()\n", "mesh.type = 'regular'\n", "mesh.dimension = [17, 17]\n", "mesh.lower_left = [-10.71, -10.71]\n", @@ -696,7 +696,7 @@ " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: c779ca42c41a062a6a813e03f2add2d182ca9190\n", - " Date/Time: 2016-05-14 07:56:31\n", + " Date/Time: 2016-05-14 12:59:34\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -783,20 +783,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4930E+00 seconds\n", - " Reading cross sections = 1.1850E+00 seconds\n", - " Total time in simulation = 1.9053E+01 seconds\n", - " Time in transport only = 1.9002E+01 seconds\n", - " Time in inactive batches = 2.0890E+00 seconds\n", - " Time in active batches = 1.6964E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", + " Total time for initialization = 1.4720E+00 seconds\n", + " Reading cross sections = 1.1730E+00 seconds\n", + " Total time in simulation = 1.9211E+01 seconds\n", + " Time in transport only = 1.9108E+01 seconds\n", + " Time in inactive batches = 2.1390E+00 seconds\n", + " Time in active batches = 1.7072E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 9.0000E-03 seconds\n", " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.0556E+01 seconds\n", - " Calculation Rate (inactive) = 23934.9 neutrons/second\n", - " Calculation Rate (active) = 11789.7 neutrons/second\n", + " Total time elapsed = 2.0692E+01 seconds\n", + " Calculation Rate (inactive) = 23375.4 neutrons/second\n", + " Calculation Rate (active) = 11715.1 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -950,7 +950,7 @@ "source": [ "# Create a MGXS File which can then be written to disk\n", "mgxs_file = mgxs_lib.create_mg_library(xs_type='macro', domain_names=['fuel', 'zircaloy', 'water'],\n", - " xs_ids='2m')\n", + " xs_ids='2m')\n", "\n", "# Write the file to disk using the default filename of `mgxs.xml`\n", "mgxs_file.export_to_xml()" @@ -983,15 +983,15 @@ "# Now re-define our materials to use the Multi-Group macroscopic data\n", "# instead of the continuous-energy data.\n", "# 1.6 enriched fuel UO2\n", - "fuel = openmc.Material(name='UO2', material_id=1)\n", + "fuel = openmc.Material(name='UO2')\n", "fuel.add_macroscopic(fuel_macro)\n", "\n", "# cladding\n", - "zircaloy = openmc.Material(name='Clad', material_id=2)\n", + "zircaloy = openmc.Material(name='Clad')\n", "zircaloy.add_macroscopic(zircaloy_macro)\n", "\n", "# moderator\n", - "water = openmc.Material(name='Water', material_id=3)\n", + "water = openmc.Material(name='Water')\n", "water.add_macroscopic(water_macro)\n", "\n", "# Finally, instantiate our Materials object\n", @@ -1071,7 +1071,7 @@ " License: http://openmc.readthedocs.org/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: c779ca42c41a062a6a813e03f2add2d182ca9190\n", - " Date/Time: 2016-05-14 07:56:52\n", + " Date/Time: 2016-05-14 12:59:55\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1156,19 +1156,19 @@ " =======================> TIMING STATISTICS <=======================\n", "\n", " Total time for initialization = 4.0000E-02 seconds\n", - " Reading cross sections = 6.0000E-03 seconds\n", - " Total time in simulation = 1.2540E+01 seconds\n", - " Time in transport only = 1.2496E+01 seconds\n", - " Time in inactive batches = 1.1110E+00 seconds\n", - " Time in active batches = 1.1429E+01 seconds\n", - " Time synchronizing fission bank = 7.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Reading cross sections = 3.0000E-03 seconds\n", + " Total time in simulation = 1.3223E+01 seconds\n", + " Time in transport only = 1.3175E+01 seconds\n", + " Time in inactive batches = 1.1160E+00 seconds\n", + " Time in active batches = 1.2107E+01 seconds\n", + " Time synchronizing fission bank = 9.0000E-03 seconds\n", + " Sampling source sites = 8.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.2589E+01 seconds\n", - " Calculation Rate (inactive) = 45004.5 neutrons/second\n", - " Calculation Rate (active) = 17499.3 neutrons/second\n", + " Total time elapsed = 1.3272E+01 seconds\n", + " Calculation Rate (inactive) = 44802.9 neutrons/second\n", + " Calculation Rate (active) = 16519.4 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1355,7 +1355,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1366,7 +1366,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, From 2ea3466206f48b2e19c77bf216925542c522ec58 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 14 May 2016 22:29:38 -0400 Subject: [PATCH 200/259] Hotfix for making elements isotropic in lab through Material.make_isotropic_in_lab() method --- openmc/material.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/material.py b/openmc/material.py index e9a74f1e7..bf66cf11d 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -506,7 +506,7 @@ class Material(object): for nuclide_name in self._nuclides: self._nuclides[nuclide_name][0].scattering = 'iso-in-lab' for element_name in self._elements: - self._element[element_name][0].scattering = 'iso-in-lab' + self._elements[element_name][0].scattering = 'iso-in-lab' def get_all_nuclides(self): """Returns all nuclides in the material From 394d8385c3b814fe27ad1cc5872921719a1bd724 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sun, 15 May 2016 11:24:25 -0500 Subject: [PATCH 201/259] Fix spaces around % as suggested by @smharper --- src/particle_restart.F90 | 28 ++++++++++++++-------------- src/state_point.F90 | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/particle_restart.F90 b/src/particle_restart.F90 index 4040a471a..e5cca17bf 100644 --- a/src/particle_restart.F90 +++ b/src/particle_restart.F90 @@ -34,7 +34,7 @@ contains verbosity = 10 ! Initialize the particle to be tracked - call p%initialize() + call p % initialize() ! Read in the restart information call read_particle_restart(p, previous_run_mode) @@ -46,9 +46,9 @@ contains select case (previous_run_mode) case (MODE_EIGENVALUE) particle_seed = ((current_batch - 1)*gen_per_batch + & - current_gen - 1)*n_particles + p%id + current_gen - 1)*n_particles + p % id case (MODE_FIXEDSOURCE) - particle_seed = p%id + particle_seed = p % id end select call set_particle_seed(particle_seed) @@ -94,19 +94,19 @@ contains case ('fixed source') previous_run_mode = MODE_FIXEDSOURCE end select - call read_dataset(p%id, file_id, 'id') - call read_dataset(p%wgt, file_id, 'weight') - call read_dataset(p%E, file_id, 'energy') - call read_dataset(p%g, file_id, 'energy_group') - call read_dataset(p%coord(1)%xyz, file_id, 'xyz') - call read_dataset(p%coord(1)%uvw, file_id, 'uvw') + call read_dataset(p % id, file_id, 'id') + call read_dataset(p % wgt, file_id, 'weight') + call read_dataset(p % E, file_id, 'energy') + call read_dataset(p % g, file_id, 'energy_group') + call read_dataset(p % coord(1) % xyz, file_id, 'xyz') + call read_dataset(p % coord(1) % uvw, file_id, 'uvw') ! Set particle last attributes - p%last_wgt = p%wgt - p%last_xyz = p%coord(1)%xyz - p%last_uvw = p%coord(1)%uvw - p%last_E = p%E - p%last_g = p%g + p % last_wgt = p % wgt + p % last_xyz = p % coord(1)%xyz + p % last_uvw = p % coord(1)%uvw + p % last_E = p % E + p % last_g = p % g ! Close hdf5 file call file_close(file_id) diff --git a/src/state_point.F90 b/src/state_point.F90 index 81abf0c1b..0006d3042 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -782,16 +782,16 @@ contains ! Read in CMFD info if (int_array(1) == 1) then cmfd_group = open_group(file_id, "cmfd") - call read_dataset(cmfd%indices, cmfd_group, "indices") - call read_dataset(cmfd%k_cmfd(1:restart_batch), cmfd_group, "k_cmfd") - call read_dataset(cmfd%cmfd_src, cmfd_group, "cmfd_src") - call read_dataset(cmfd%entropy(1:restart_batch), cmfd_group, & + call read_dataset(cmfd % indices, cmfd_group, "indices") + call read_dataset(cmfd % k_cmfd(1:restart_batch), cmfd_group, "k_cmfd") + call read_dataset(cmfd % cmfd_src, cmfd_group, "cmfd_src") + call read_dataset(cmfd % entropy(1:restart_batch), cmfd_group, & "cmfd_entropy") - call read_dataset(cmfd%balance(1:restart_batch), cmfd_group, & + call read_dataset(cmfd % balance(1:restart_batch), cmfd_group, & "cmfd_balance") - call read_dataset(cmfd%dom(1:restart_batch), cmfd_group, & + call read_dataset(cmfd % dom(1:restart_batch), cmfd_group, & "cmfd_dominance") - call read_dataset(cmfd%src_cmp(1:restart_batch), cmfd_group, & + call read_dataset(cmfd % src_cmp(1:restart_batch), cmfd_group, & "cmfd_srccmp") call close_group(cmfd_group) end if From 071e8d3e305532b9e53f747af6ac533ed01fc17d Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 15 May 2016 14:26:54 -0400 Subject: [PATCH 202/259] Forgot universe_id=0 for root in example nb (fixed), resolved comments from @paulromano, and made sure the example problem worked still (it did, but I simplified it a bit since data doesnt need to be numpy arrays anymore. --- .../pythonapi/examples/mgxs-part-iv.ipynb | 72 ++++++------ docs/source/usersguide/mgxs_library.rst | 6 +- .../python/pincell_multigroup/build-xml.py | 71 ++++++------ openmc/mgxs/library.py | 46 +++++--- openmc/mgxs/mgxs.py | 2 +- openmc/mgxs_library.py | 108 ++++++++++++------ 6 files changed, 172 insertions(+), 133 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index d15f265d4..4509f0fc8 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -304,7 +304,7 @@ "root_cell.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n", "\n", "# Create root Universe\n", - "root_universe = openmc.Universe(name='root universe')\n", + "root_universe = openmc.Universe(name='root universe', universe_id=0)\n", "root_universe.add_cell(root_cell)" ] }, @@ -319,7 +319,7 @@ "cell_type": "code", "execution_count": 11, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -693,10 +693,10 @@ " 888\n", "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.org/en/latest/license.html\n", + " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: c779ca42c41a062a6a813e03f2add2d182ca9190\n", - " Date/Time: 2016-05-14 12:59:34\n", + " Git SHA1: 4bec584ddb7d07be7d92ad9d037e8363b2f25614\n", + " Date/Time: 2016-05-15 14:22:34\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -783,20 +783,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4720E+00 seconds\n", - " Reading cross sections = 1.1730E+00 seconds\n", - " Total time in simulation = 1.9211E+01 seconds\n", - " Time in transport only = 1.9108E+01 seconds\n", - " Time in inactive batches = 2.1390E+00 seconds\n", - " Time in active batches = 1.7072E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-02 seconds\n", - " Sampling source sites = 9.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 1.4620E+00 seconds\n", + " Reading cross sections = 1.1520E+00 seconds\n", + " Total time in simulation = 2.1015E+01 seconds\n", + " Time in transport only = 2.0844E+01 seconds\n", + " Time in inactive batches = 2.2260E+00 seconds\n", + " Time in active batches = 1.8789E+01 seconds\n", + " Time synchronizing fission bank = 9.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.0692E+01 seconds\n", - " Calculation Rate (inactive) = 23375.4 neutrons/second\n", - " Calculation Rate (active) = 11715.1 neutrons/second\n", + " Total time elapsed = 2.2491E+01 seconds\n", + " Calculation Rate (inactive) = 22461.8 neutrons/second\n", + " Calculation Rate (active) = 10644.5 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -949,7 +949,7 @@ ], "source": [ "# Create a MGXS File which can then be written to disk\n", - "mgxs_file = mgxs_lib.create_mg_library(xs_type='macro', domain_names=['fuel', 'zircaloy', 'water'],\n", + "mgxs_file = mgxs_lib.create_mg_library(xs_type='macro', xsdata_names=['fuel', 'zircaloy', 'water'],\n", " xs_ids='2m')\n", "\n", "# Write the file to disk using the default filename of `mgxs.xml`\n", @@ -1068,10 +1068,10 @@ " 888\n", "\n", " Copyright: 2011-2016 Massachusetts Institute of Technology\n", - " License: http://openmc.readthedocs.org/en/latest/license.html\n", + " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: c779ca42c41a062a6a813e03f2add2d182ca9190\n", - " Date/Time: 2016-05-14 12:59:55\n", + " Git SHA1: 4bec584ddb7d07be7d92ad9d037e8363b2f25614\n", + " Date/Time: 2016-05-15 14:22:57\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1155,20 +1155,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.0000E-02 seconds\n", + " Total time for initialization = 3.5000E-02 seconds\n", " Reading cross sections = 3.0000E-03 seconds\n", - " Total time in simulation = 1.3223E+01 seconds\n", - " Time in transport only = 1.3175E+01 seconds\n", - " Time in inactive batches = 1.1160E+00 seconds\n", - " Time in active batches = 1.2107E+01 seconds\n", - " Time synchronizing fission bank = 9.0000E-03 seconds\n", - " Sampling source sites = 8.0000E-03 seconds\n", + " Total time in simulation = 1.2599E+01 seconds\n", + " Time in transport only = 1.2565E+01 seconds\n", + " Time in inactive batches = 1.1220E+00 seconds\n", + " Time in active batches = 1.1477E+01 seconds\n", + " Time synchronizing fission bank = 6.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.3272E+01 seconds\n", - " Calculation Rate (inactive) = 44802.9 neutrons/second\n", - " Calculation Rate (active) = 16519.4 neutrons/second\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 1.2644E+01 seconds\n", + " Calculation Rate (inactive) = 44563.3 neutrons/second\n", + " Calculation Rate (active) = 17426.2 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1355,7 +1355,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1366,7 +1366,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index 8628bef4e..98a9e8485 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -22,9 +22,9 @@ materials. .. _XML: http://www.w3.org/XML/ ------------------------------------------------- +-------------------------------------- MGXS Library Specification -- mgxs.xml ------------------------------------------------- +-------------------------------------- The multi-group library meta-data is contained within the groups_, group_structure_, and inverse_velocities_ elements. @@ -33,7 +33,7 @@ The actual multi-group data itself is contained within the xsdata_ element. .. _groups: ```` Element ----------------------------------- +-------------------- The ```` element has no attributes and simply provides the number of energy groups contained within the library. diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index c7d6dfc8b..5ac5b376a 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -1,4 +1,3 @@ -import numpy as np import openmc import openmc.mgxs @@ -12,7 +11,7 @@ inactive = 10 particles = 1000 ############################################################################### -# Exporting to OpenMC mg_cross_sections.xml file +# Exporting to OpenMC mgxs.xml file ############################################################################### # Instantiate the energy group data @@ -22,45 +21,43 @@ groups = openmc.mgxs.EnergyGroups(group_edges=[1E-11, 0.0635E-6, 10.0E-6, # Instantiate the 7-group (C5G7) cross section data uo2_xsdata = openmc.XSdata('UO2.300K', groups) uo2_xsdata.order = 0 -uo2_xsdata.total = np.array([0.1779492, 0.3298048, 0.4803882, 0.5543674, - 0.3118013, 0.3951678, 0.5644058]) -uo2_xsdata.absorption = np.array([8.0248E-03, 3.7174E-03, 2.6769E-02, 9.6236E-02, - 3.0020E-02, 1.1126E-01, 2.8278E-01]) -scatter = [[[0.1275370, 0.0423780, 0.0000094, 0.0000000, 0.0000000, 0.0000000, 0.0000000], - [0.0000000, 0.3244560, 0.0016314, 0.0000000, 0.0000000, 0.0000000, 0.0000000], - [0.0000000, 0.0000000, 0.4509400, 0.0026792, 0.0000000, 0.0000000, 0.0000000], - [0.0000000, 0.0000000, 0.0000000, 0.4525650, 0.0055664, 0.0000000, 0.0000000], - [0.0000000, 0.0000000, 0.0000000, 0.0001253, 0.2714010, 0.0102550, 0.0000000], - [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0012968, 0.2658020, 0.0168090], - [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0085458, 0.2730800]]] -uo2_xsdata.scatter = np.array(scatter[:][:]) -uo2_xsdata.fission = np.array([7.21206E-03, 8.19301E-04, 6.45320E-03, - 1.85648E-02, 1.78084E-02, 8.30348E-02, - 2.16004E-01]) -uo2_xsdata.nu_fission = np.array([2.005998E-02, 2.027303E-03, 1.570599E-02, - 4.518301E-02, 4.334208E-02, 2.020901E-01, - 5.257105E-01]) -uo2_xsdata.chi = np.array([5.8791E-01, 4.1176E-01, 3.3906E-04, 1.1761E-07, - 0.0000E+00, 0.0000E+00, 0.0000E+00]) +uo2_xsdata.total = [0.1779492, 0.3298048, 0.4803882, 0.5543674, + 0.3118013, 0.3951678, 0.5644058] +uo2_xsdata.absorption = [8.0248E-03, 3.7174E-03, 2.6769E-02, 9.6236E-02, + 3.0020E-02, 1.1126E-01, 2.8278E-01] +uo2_xsdata.scatter = [[[0.1275370, 0.0423780, 0.0000094, 0.0000000, 0.0000000, 0.0000000, 0.0000000], + [0.0000000, 0.3244560, 0.0016314, 0.0000000, 0.0000000, 0.0000000, 0.0000000], + [0.0000000, 0.0000000, 0.4509400, 0.0026792, 0.0000000, 0.0000000, 0.0000000], + [0.0000000, 0.0000000, 0.0000000, 0.4525650, 0.0055664, 0.0000000, 0.0000000], + [0.0000000, 0.0000000, 0.0000000, 0.0001253, 0.2714010, 0.0102550, 0.0000000], + [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0012968, 0.2658020, 0.0168090], + [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0085458, 0.2730800]]] +uo2_xsdata.fission = [7.21206E-03, 8.19301E-04, 6.45320E-03, + 1.85648E-02, 1.78084E-02, 8.30348E-02, + 2.16004E-01] +uo2_xsdata.nu_fission = [2.005998E-02, 2.027303E-03, 1.570599E-02, + 4.518301E-02, 4.334208E-02, 2.020901E-01, + 5.257105E-01] +uo2_xsdata.chi = [5.8791E-01, 4.1176E-01, 3.3906E-04, 1.1761E-07, + 0.0000E+00, 0.0000E+00, 0.0000E+00] h2o_xsdata = openmc.XSdata('LWTR.300K', groups) h2o_xsdata.order = 0 -h2o_xsdata.total = np.array([0.15920605, 0.412969593, 0.59030986, 0.58435, - 0.718, 1.2544497, 2.650379]) -h2o_xsdata.absorption = np.array([6.0105E-04, 1.5793E-05, 3.3716E-04, - 1.9406E-03, 5.7416E-03, 1.5001E-02, - 3.7239E-02]) -scatter = [[[0.0444777, 0.1134000, 0.0007235, 0.0000037, 0.0000001, 0.0000000, 0.0000000], - [0.0000000, 0.2823340, 0.1299400, 0.0006234, 0.0000480, 0.0000074, 0.0000010], - [0.0000000, 0.0000000, 0.3452560, 0.2245700, 0.0169990, 0.0026443, 0.0005034], - [0.0000000, 0.0000000, 0.0000000, 0.0910284, 0.4155100, 0.0637320, 0.0121390], - [0.0000000, 0.0000000, 0.0000000, 0.0000714, 0.1391380, 0.5118200, 0.0612290], - [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0022157, 0.6999130, 0.5373200], - [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.1324400, 2.4807000]]] -h2o_xsdata.scatter = np.array(scatter) +h2o_xsdata.total = [0.15920605, 0.412969593, 0.59030986, 0.58435, + 0.718, 1.2544497, 2.650379] +h2o_xsdata.absorption = [6.0105E-04, 1.5793E-05, 3.3716E-04, + 1.9406E-03, 5.7416E-03, 1.5001E-02, + 3.7239E-02] +h2o_xsdata.scatter = [[[0.0444777, 0.1134000, 0.0007235, 0.0000037, 0.0000001, 0.0000000, 0.0000000], + [0.0000000, 0.2823340, 0.1299400, 0.0006234, 0.0000480, 0.0000074, 0.0000010], + [0.0000000, 0.0000000, 0.3452560, 0.2245700, 0.0169990, 0.0026443, 0.0005034], + [0.0000000, 0.0000000, 0.0000000, 0.0910284, 0.4155100, 0.0637320, 0.0121390], + [0.0000000, 0.0000000, 0.0000000, 0.0000714, 0.1391380, 0.5118200, 0.0612290], + [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0022157, 0.6999130, 0.5373200], + [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.1324400, 2.4807000]]] mg_cross_sections_file = openmc.MGXSLibrary(groups) -mg_cross_sections_file.add_xsdatas([uo2_xsdata,h2o_xsdata]) +mg_cross_sections_file.add_xsdatas([uo2_xsdata, h2o_xsdata]) mg_cross_sections_file.export_to_xml() @@ -134,7 +131,7 @@ geometry.export_to_xml() # Instantiate a Settings object, set all runtime parameters, and export to XML settings_file = openmc.Settings() settings_file.energy_mode = "multi-group" -settings_file.cross_sections = "./mg_cross_sections.xml" +settings_file.cross_sections = "./mgxs.xml" settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 44746e209..586302a4b 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -247,8 +247,7 @@ class Library(object): @domain_type.setter def domain_type(self, domain_type): - cv.check_value('domain type', domain_type, - tuple(openmc.mgxs.DOMAIN_TYPES)) + cv.check_value('domain type', domain_type, openmc.mgxs.DOMAIN_TYPES) self._domain_type = domain_type @domains.setter @@ -722,8 +721,8 @@ class Library(object): # Load and return pickled Library object return pickle.load(open(full_filename, 'rb')) - def get_xsdata(self, domain, domain_name, nuclide='total', xs_type='macro', - xs_id='1m', order=-1): + def get_xsdata(self, domain, xsdata_name, nuclide='total', xs_type='macro', + xs_id='1m', order=None): """Generates an openmc.XSdata object describing a multi-group cross section data set for eventual combination in to an openmc.MGXSLibrary object (i.e., the library). @@ -732,7 +731,7 @@ class Library(object): ---------- domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization - domain_name : str + xsdata_name : str Name to apply to the "xsdata" entry produced by this method nuclide : str A nuclide name string (e.g., 'U-235'). Defaults to 'total' to @@ -743,7 +742,7 @@ class Library(object): nuclide this will be set to 'macro' regardless. xs_ids : str Cross section set identifier. Defaults to '1m'. - order : Scattering order for this dataset entry. Default is -1, + order : Scattering order for this dataset entry. Default is None, which will force the XSdata object to use whatever the maximum order available. @@ -766,11 +765,11 @@ class Library(object): cv.check_type('domain', domain, (openmc.Material, openmc.Cell, openmc.Cell)) - cv.check_type('domain_name', domain_name, basestring) + cv.check_type('xsdata_name', xsdata_name, basestring) cv.check_type('nuclide', nuclide, basestring) cv.check_value('xs_type', xs_type, ['macro', 'micro']) cv.check_type('xs_id', xs_id, basestring) - cv.check_type('order', order, Integral) + cv.check_type('order', order, (type(None), Integral)) cv.check_greater_than('order', order, -1, equality=True) # Make sure statepoint has been loaded @@ -784,12 +783,18 @@ class Library(object): xs_type = 'macro' # Build & add metadata to XSdata object - name = domain_name + name = xsdata_name if nuclide is not 'total': name += '_' + nuclide name += '.' + xs_id xsdata = openmc.XSdata(name, self.energy_groups) - xsdata.order = order + if order is 0: + xsdata.order = order + else: + msg = 'Generating anisotropic scattering from openmc.Library' \ + 'objects has not yet been implemented.' + raise NotImplementedError(msg) + if nuclide is not 'total': xsdata.zaid = self._nuclides[nuclide][0] xsdata.awr = self._nuclides[nuclide][1] @@ -852,7 +857,7 @@ class Library(object): return xsdata - def create_mg_library(self, xs_type='macro', domain_names=None, + def create_mg_library(self, xs_type='macro', xsdata_names=None, xs_ids=None): """Creates an openmc.MGXSLibrary object to contain the MGXS data for the Multi-Group mode of OpenMC. @@ -863,7 +868,7 @@ class Library(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. If the Library object is not tallied by nuclide this will be set to 'macro' regardless. - domain_names : Iterable of str + xsdata_names : Iterable of str List of names to apply to the "xsdata" entries in the resultant mgxs data file. Defaults to 'set1', 'set2', ... xs_ids : str or Iterable of str @@ -894,8 +899,8 @@ class Library(object): self.check_library_for_openmc_mgxs() cv.check_value('xs_type', xs_type, ['macro', 'micro']) - if domain_names is not None: - cv.check_iterable_type('domain_names', domain_names, basestring) + if xsdata_names is not None: + cv.check_iterable_type('xsdata_names', xsdata_names, basestring) if xs_ids is not None: if isinstance(xs_ids, basestring): # If we only have a string lets convert it now to a list @@ -927,14 +932,14 @@ class Library(object): nuclides = ['total'] for nuclide in nuclides: # Build & add metadata to XSdata object - if domain_names is None: - name = 'set' + str(i + 1) + if xsdata_names is None: + xsdata_name = 'set' + str(i + 1) else: - name = domain_names[i] + xsdata_name = xsdata_names[i] if nuclide is not 'total': - name += '_' + nuclide + xsdata_name += '_' + nuclide - xsdata = self.get_xsdata(domain, name, nuclide=nuclide, + xsdata = self.get_xsdata(domain, xsdata_name, nuclide=nuclide, xs_type=xs_type, xs_id=xs_ids[i], order=order) @@ -952,14 +957,17 @@ class Library(object): The rules to check include: - Either total or transport should be present. + - Both can be available if one wants, but we should use whatever corresponds to Library.correction (if P0: transport) + - Absorption and total (or transport) are required. - A nu-fission cross section and chi values are not required as a fixed source problem could be the target. - Fission and kappa-fission are not required as they are only needed to support tallies the user may wish to request. - A nu-scatter matrix is required. + - Having both nu-scatter (of any order) and scatter (at least isotropic) matrices is preferred - If only nu-scatter, need total (not transport), to diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f8a712f68..7cfec2f54 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -283,7 +283,7 @@ class MGXS(object): @domain_type.setter def domain_type(self, domain_type): - cv.check_value('domain type', domain_type, tuple(DOMAIN_TYPES)) + cv.check_value('domain type', domain_type, DOMAIN_TYPES) self._domain_type = domain_type @energy_groups.setter diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index e59ef2d61..b7c61595f 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -346,6 +346,16 @@ class XSdata(object): self.energy_groups.num_groups, self.energy_groups.num_groups) + @property + def pn_matrix_shape(self): + if self.representation is 'isotropic': + return (self.num_orders, self.energy_groups.num_groups, + self.energy_groups.num_groups) + elif self.representation is 'angle': + return (self.num_polar, self.num_azimuthal, self.num_orders, + self.energy_groups.num_groups, + self.energy_groups.num_groups) + @name.setter def name(self, name): check_type('name for XSdata', name, basestring) @@ -449,38 +459,49 @@ class XSdata(object): @total.setter def total(self, total): - check_type('total', total, np.ndarray, expected_iter_type=Real) - check_value('total shape', total.shape, self.vector_shape) + check_type('total', total, Iterable, expected_iter_type=Real) + # Convert to a numpy array so we can easily get the shape for + # checking + nptotal = np.array(total) + check_value('total shape', nptotal.shape, [self.vector_shape]) - self._total = total + self._total = nptotal @absorption.setter def absorption(self, absorption): - check_type('absorption', absorption, np.ndarray, - expected_iter_type=Real) - check_value('absorption shape', absorption.shape, self.vector_shape) + check_type('absorption', absorption, Iterable, expected_iter_type=Real) + # Convert to a numpy array so we can easily get the shape for + # checking + npabsorption = np.array(absorption) + check_value('absorption shape', npabsorption.shape, + [self.vector_shape]) - self._absorption = absorption + self._absorption = npabsorption @fission.setter def fission(self, fission): - check_type('fission', fission, np.ndarray, - expected_iter_type=Real) - check_value('fission shape', fission.shape, self.vector_shape) + check_type('fission', fission, Iterable, expected_iter_type=Real) + # Convert to a numpy array so we can easily get the shape for + # checking + npfission = np.array(fission) + check_value('fission shape', npfission.shape, [self.vector_shape]) - self._fission = fission + self._fission = npfission if np.sum(self._fission) > 0.0: self._fissionable = True @kappa_fission.setter def kappa_fission(self, kappa_fission): - check_type('kappa_fission', kappa_fission, np.ndarray, + check_type('kappa_fission', kappa_fission, Iterable, expected_iter_type=Real) - check_value('kappa fission shape', kappa_fission.shape, - self.vector_shape) + # Convert to a numpy array so we can easily get the shape for + # checking + npkappa_fission = np.array(kappa_fission) + check_value('kappa fission shape', npkappa_fission.shape, + [self.vector_shape]) - self._kappa_fission = kappa_fission + self._kappa_fission = npkappa_fission if np.sum(self._kappa_fission) > 0.0: self._fissionable = True @@ -493,30 +514,39 @@ class XSdata(object): 'matrix' raise ValueError(msg) - check_type('chi', chi, np.ndarray, expected_iter_type=Real) - check_value('chi shape', chi.shape, self.vector_shape) + check_type('chi', chi, Iterable, expected_iter_type=Real) + # Convert to a numpy array so we can easily get the shape for + # checking + npchi = np.array(chi) + check_value('chi shape', npchi.shape, [self.vector_shape]) - self._chi = chi + self._chi = npchi if self._use_chi is not None: self._use_chi = True @scatter.setter def scatter(self, scatter): - check_type('scatter', scatter, np.ndarray, expected_iter_type=Real, - max_depth=len(scatter.shape)) - check_value('scatter shape', scatter.shape, self.pn_matrix_shape) + # Convert to a numpy array so we can easily get the shape for + # checking + npscatter = np.array(scatter) + check_iterable_type('scatter', npscatter, Real, + max_depth=len(npscatter.shape)) + check_value('scatter shape', npscatter.shape, [self.pn_matrix_shape]) - self._scatter = scatter + self._scatter = npscatter @multiplicity.setter def multiplicity(self, multiplicity): - check_type('multiplicity', multiplicity, np.ndarray, - expected_iter_type=Real, max_depth=len(multiplicity.shape)) - check_value('multiplicity shape', multiplicity.shape, - self.matrix_shape) + # Convert to a numpy array so we can easily get the shape for + # checking + npmultiplicity = np.array(multiplicity) + check_iterable_type('multiplicity', npmultiplicity, Real, + max_depth=len(npmultiplicity.shape)) + check_value('multiplicity shape', npmultiplicity.shape, + [self.matrix_shape]) - self._multiplicity = multiplicity + self._multiplicity = npmultiplicity @nu_fission.setter def nu_fission(self, nu_fission): @@ -530,27 +560,31 @@ class XSdata(object): # chi already has been set. If not, we just check that this is OK # and set the use_chi flag accordingly - check_type('nu_fission', nu_fission, np.ndarray, - expected_iter_type=Real, max_depth=len(nu_fission.shape)) + # Convert to a numpy array so we can easily get the shape for + # checking + npnu_fission = np.array(nu_fission) + + check_iterable_type('nu_fission', npnu_fission, Real, + max_depth=len(npnu_fission.shape)) if self._use_chi is not None: if self._use_chi: - check_value('nu_fission shape', nu_fission.shape, - self.vector_shape) + check_value('nu_fission shape', npnu_fission.shape, + [self.vector_shape]) else: - check_value('nu_fission shape', nu_fission.shape, - self.matrix_shape) + check_value('nu_fission shape', npnu_fission.shape, + [self.matrix_shape]) else: - check_value('nu_fission shape', nu_fission.shape, - (self.vector_shape, self.matrix_shape)) + check_value('nu_fission shape', npnu_fission.shape, + [self.vector_shape, self.matrix_shape]) # Find out if we have a nu-fission matrix or vector # and set a flag to allow other methods to check this later. - if nu_fission.shape == self.vector_shape: + if npnu_fission.shape == self.vector_shape: self._use_chi = True else: self._use_chi = False - self._nu_fission = nu_fission + self._nu_fission = npnu_fission if np.sum(self._nu_fission) > 0.0: self._fissionable = True From 142033c2607f400fbd365bd79a8b2f1a07177b22 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 15 May 2016 14:56:00 -0400 Subject: [PATCH 203/259] minor edits per @paulromano comments --- openmc/mgxs/library.py | 1 + openmc/mgxs_library.py | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 586302a4b..45b502be4 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -956,6 +956,7 @@ class Library(object): a MGXS Library for OpenMC's Multi-Group mode. The rules to check include: + - Either total or transport should be present. - Both can be available if one wants, but we should diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index b7c61595f..7a2c0e7b7 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -103,7 +103,7 @@ class XSdata(object): 1000*(atomic number) + mass number. As an example, the zaid of U-235 would be 92235. awr : float - Atomic-weight-ratio of an isotope. That is, the ratio of the mass + Atomic weight ratio of an isotope. That is, the ratio of the mass of the isotope to the mass of a single neutron. kT : float Temperature (in units of MeV). @@ -390,14 +390,14 @@ class XSdata(object): def zaid(self, zaid): # Check type and value check_type('zaid', zaid, Integral) - check_greater_than('zaid', zaid, 0, equality=False) + check_greater_than('zaid', zaid, 0) self._zaid = zaid @awr.setter def awr(self, awr): # Check validity of type and that the awr value is > 0 check_type('awr', awr, Real) - check_greater_than('awr', awr, 0.0, equality=False) + check_greater_than('awr', awr, 0.0) self._awr = awr @kT.setter @@ -462,7 +462,7 @@ class XSdata(object): check_type('total', total, Iterable, expected_iter_type=Real) # Convert to a numpy array so we can easily get the shape for # checking - nptotal = np.array(total) + nptotal = np.asarray(total) check_value('total shape', nptotal.shape, [self.vector_shape]) self._total = nptotal @@ -472,7 +472,7 @@ class XSdata(object): check_type('absorption', absorption, Iterable, expected_iter_type=Real) # Convert to a numpy array so we can easily get the shape for # checking - npabsorption = np.array(absorption) + npabsorption = np.asarray(absorption) check_value('absorption shape', npabsorption.shape, [self.vector_shape]) @@ -483,7 +483,7 @@ class XSdata(object): check_type('fission', fission, Iterable, expected_iter_type=Real) # Convert to a numpy array so we can easily get the shape for # checking - npfission = np.array(fission) + npfission = np.asarray(fission) check_value('fission shape', npfission.shape, [self.vector_shape]) self._fission = npfission @@ -497,7 +497,7 @@ class XSdata(object): expected_iter_type=Real) # Convert to a numpy array so we can easily get the shape for # checking - npkappa_fission = np.array(kappa_fission) + npkappa_fission = np.asarray(kappa_fission) check_value('kappa fission shape', npkappa_fission.shape, [self.vector_shape]) @@ -517,7 +517,7 @@ class XSdata(object): check_type('chi', chi, Iterable, expected_iter_type=Real) # Convert to a numpy array so we can easily get the shape for # checking - npchi = np.array(chi) + npchi = np.asarray(chi) check_value('chi shape', npchi.shape, [self.vector_shape]) self._chi = npchi @@ -529,7 +529,7 @@ class XSdata(object): def scatter(self, scatter): # Convert to a numpy array so we can easily get the shape for # checking - npscatter = np.array(scatter) + npscatter = np.asarray(scatter) check_iterable_type('scatter', npscatter, Real, max_depth=len(npscatter.shape)) check_value('scatter shape', npscatter.shape, [self.pn_matrix_shape]) @@ -540,7 +540,7 @@ class XSdata(object): def multiplicity(self, multiplicity): # Convert to a numpy array so we can easily get the shape for # checking - npmultiplicity = np.array(multiplicity) + npmultiplicity = np.asarray(multiplicity) check_iterable_type('multiplicity', npmultiplicity, Real, max_depth=len(npmultiplicity.shape)) check_value('multiplicity shape', npmultiplicity.shape, @@ -562,7 +562,7 @@ class XSdata(object): # Convert to a numpy array so we can easily get the shape for # checking - npnu_fission = np.array(nu_fission) + npnu_fission = np.asarray(nu_fission) check_iterable_type('nu_fission', npnu_fission, Real, max_depth=len(npnu_fission.shape)) @@ -595,7 +595,7 @@ class XSdata(object): Parameters ---------- - total: {openmc.mgxs.TotalXS, openmc.mgxs.TransportXS} + total: openmc.mgxs.TotalXS or openmc.mgxs.TransportXS MGXS Object containing the total or transport cross section for the domain of interest. nuclide : str From e13bd5c853b4251ef5ef8f46f0c1221fdde0442f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 15 May 2016 19:13:22 -0400 Subject: [PATCH 204/259] Fixed per @paulromano comments --- openmc/mgxs/library.py | 18 +++++++--------- openmc/mgxs_library.py | 47 ++++++++++++++++++++++++++++++++++++++++-- src/summary.F90 | 2 +- 3 files changed, 53 insertions(+), 14 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 45b502be4..baa4d6304 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -4,9 +4,10 @@ import copy import pickle from numbers import Integral from collections import OrderedDict -import numpy as np from warnings import warn +import numpy as np + import openmc import openmc.mgxs import openmc.checkvalue as cv @@ -759,7 +760,7 @@ class Library(object): See also -------- - Library.create_mg_library(...) + Library.create_mg_library() """ @@ -890,7 +891,7 @@ class Library(object): See also -------- - Library.dump_to_file(mgxs_lib, filename, directory) + Library.dump_to_file() """ @@ -922,9 +923,7 @@ class Library(object): # support for higher orders are included in openmc.mgxs order = 0 - # Build storage for our XSdata objects - xsdatas = [] - + # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): if self.by_nuclide: nuclides = list(domain.get_all_nuclides().keys()) @@ -943,10 +942,7 @@ class Library(object): xs_type=xs_type, xs_id=xs_ids[i], order=order) - xsdatas.append(xsdata) - - # Add XSdatas to file - mgxs_file.add_xsdatas(xsdatas) + mgxs_file.add_xsdata(xsdata) return mgxs_file @@ -977,7 +973,7 @@ class Library(object): See also -------- - Library.create_mg_library(...) + Library.create_mg_library() """ diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 7a2c0e7b7..408175f43 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -367,7 +367,7 @@ class XSdata(object): check_type('energy_groups', energy_groups, openmc.mgxs.EnergyGroups) if energy_group.group_edges is None: - msg = 'Unable to assign an EnergyGroups object ' + \ + msg = 'Unable to assign an EnergyGroups object ' \ 'with uninitialized group edges' raise ValueError(msg) self._energy_groups = energy_groups @@ -518,7 +518,10 @@ class XSdata(object): # Convert to a numpy array so we can easily get the shape for # checking npchi = np.asarray(chi) - check_value('chi shape', npchi.shape, [self.vector_shape]) + # Check the shape + if npchi.shape != self.vector_shape: + msg = 'Provided chi iterable does not have the expected shape.' + raise ValueError(msg) self._chi = npchi @@ -605,6 +608,11 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + See also + -------- + openmc.mgxs.Library.create_mg_library() + openmc.mgxs.Library.get_xsdata + """ check_type('total', total, (openmc.mgxs.TotalXS, @@ -636,6 +644,11 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + See also + -------- + openmc.mgxs.Library.create_mg_library() + openmc.mgxs.Library.get_xsdata + """ check_type('absorption', absorption, openmc.mgxs.AbsorptionXS) @@ -667,6 +680,11 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + See also + -------- + openmc.mgxs.Library.create_mg_library() + openmc.mgxs.Library.get_xsdata + """ check_type('fission', fission, openmc.mgxs.FissionXS) @@ -699,6 +717,11 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + See also + -------- + openmc.mgxs.Library.create_mg_library() + openmc.mgxs.Library.get_xsdata + """ # The NuFissionXS class does not have the capability to produce @@ -740,6 +763,11 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + See also + -------- + openmc.mgxs.Library.create_mg_library() + openmc.mgxs.Library.get_xsdata + """ check_type('k_fission', k_fission, openmc.mgxs.KappaFissionXS) @@ -770,6 +798,11 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + See also + -------- + openmc.mgxs.Library.create_mg_library() + openmc.mgxs.Library.get_xsdata + """ if self._use_chi is not None: @@ -810,6 +843,11 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + See also + -------- + openmc.mgxs.Library.create_mg_library() + openmc.mgxs.Library.get_xsdata + """ check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) @@ -851,6 +889,11 @@ class XSdata(object): Provide the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. + See also + -------- + openmc.mgxs.Library.create_mg_library() + openmc.mgxs.Library.get_xsdata + """ check_type('nuscatter', nuscatter, openmc.mgxs.NuScatterMatrixXS) diff --git a/src/summary.F90 b/src/summary.F90 index 9defcc92f..aabf6c22b 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -118,7 +118,7 @@ contains real(8), allocatable :: awrs(:) integer, allocatable :: zaids(:) - ! Use H5LT interface to write useful data from nuclide objects + ! Write useful data from nuclide objects nuclide_group = create_group(file_id, "nuclides") call write_dataset(nuclide_group, "n_nuclides_total", n_nuclides_total) From 704022dccc43f19744db123c5d4e0fdb7cea7ff9 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 16 May 2016 11:32:55 -0400 Subject: [PATCH 205/259] Removed docstring on MGXS.xs_tally to eliminate sphinx cross-reference issues --- openmc/mgxs/mgxs.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 3e24f16bc..09f1de3aa 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -297,8 +297,6 @@ class MGXS(object): @property def xs_tally(self): - """Computes multi-group cross section using OpenMC tally arithmetic.""" - if self._xs_tally is None: if self.tallies is None: msg = 'Unable to get xs_tally since tallies have ' \ From 1e86848ac62a7aa44fdccecbba9d4a12269fa81b Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 16 May 2016 11:59:12 -0400 Subject: [PATCH 206/259] Removed docstrings on MGXS.tallies and Chi.xs_tally to eliminate sphinx issues --- openmc/mgxs/mgxs.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 09f1de3aa..56bb9ea89 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -248,7 +248,6 @@ class MGXS(object): @property def tallies(self): - """Construct the OpenMC tallies needed to compute the cross section.""" # Instantiate tallies if they do not exist if self._tallies is None: @@ -3298,7 +3297,6 @@ class Chi(MGXS): @property def xs_tally(self): - """Computes chi fission spectrum using OpenMC tally arithmetic.""" if self._xs_tally is None: nu_fission_in = self.tallies['nu-fission-in'] From 970cc4130a6ff85ecfd3757b2d0e818144bdd39e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 16 May 2016 16:28:57 -0500 Subject: [PATCH 207/259] Fix hexagon region orientation --- openmc/surface.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/surface.py b/openmc/surface.py index 84028c1af..52f0955f0 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -1527,7 +1527,7 @@ def make_hexagon_region(edge_length=1., orientation='y'): l = edge_length - if orientation == 'x': + if orientation == 'y': right = XPlane(x0=sqrt(3.)/2.*l) left = XPlane(x0=-sqrt(3.)/2.*l) c = sqrt(3.)/3. @@ -1537,7 +1537,7 @@ def make_hexagon_region(edge_length=1., orientation='y'): ll = Plane(A=c, B=1., D=-l) # y = -x/sqrt(3) - a return Intersection(-right, +left, -ur, -ul, +lr, +ll) - elif orientation == 'y': + elif orientation == 'x': top = YPlane(y0=sqrt(3.)/2.*l) bottom = YPlane(y0=-sqrt(3.)/2.*l) c = sqrt(3.) From 16886a41d95de450cbc0474833058601f17abc61 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 17 May 2016 05:35:55 -0400 Subject: [PATCH 208/259] Incorporating Legendre scattering to Library and Mgxs_library modules (and example nbook). --- .../pythonapi/examples/mgxs-part-iv.ipynb | 258 ++++++++++-------- openmc/mgxs/library.py | 40 ++- openmc/mgxs_library.py | 42 ++- 3 files changed, 198 insertions(+), 142 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index 4509f0fc8..e1d61cedc 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -512,7 +512,7 @@ "outputs": [], "source": [ "# Specify multi-group cross section types to compute\n", - "mgxs_lib.mgxs_types = ['transport', 'absorption', 'nu-fission', 'fission',\n", + "mgxs_lib.mgxs_types = ['total', 'absorption', 'nu-fission', 'fission',\n", " 'nu-scatter matrix', 'scatter matrix', 'chi']" ] }, @@ -565,7 +565,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now that the `Library` has been setup, lets make sure it contains the types of cross sections which meet the needs of OpenMC's multi-group solver. Note that this step is done automatically when writing the Multi-Group Library file later in the process (as part of the `mgxs_lib.write_mg_library()`), but it is a good practice to also run this before spending all the time running OpenMC to generate the cross sections." + "Now we will set the scattering order that we wish to use. For this problem we will use P3 scattering." ] }, { @@ -574,6 +574,34 @@ "metadata": { "collapsed": false }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/nelsonag/git/openmc/openmc/mgxs/library.py:320: RuntimeWarning: The P0 correction will be ignored since the scattering order 0 is greater than zero\n", + " warnings.warn(msg, RuntimeWarning)\n" + ] + } + ], + "source": [ + "# Set the Legendre order to 3 for P3 scattering\n", + "mgxs_lib.legendre_order = 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that the `Library` has been setup, lets make sure it contains the types of cross sections which meet the needs of OpenMC's multi-group solver. Note that this step is done automatically when writing the Multi-Group Library file later in the process (as part of the `mgxs_lib.write_mg_library()`), but it is a good practice to also run this before spending all the time running OpenMC to generate the cross sections." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, "outputs": [], "source": [ "# Check the library - if no errors are raised, then the library is satisfactory.\n", @@ -589,9 +617,9 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -610,7 +638,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": { "collapsed": true }, @@ -630,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "metadata": { "collapsed": true }, @@ -658,7 +686,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "metadata": { "collapsed": true }, @@ -670,7 +698,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -695,8 +723,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 4bec584ddb7d07be7d92ad9d037e8363b2f25614\n", - " Date/Time: 2016-05-15 14:22:34\n", + " Git SHA1: 058ba68895a2f880402fda3d58cfb14b162931d9\n", + " Date/Time: 2016-05-17 05:32:34\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -783,20 +811,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4620E+00 seconds\n", - " Reading cross sections = 1.1520E+00 seconds\n", - " Total time in simulation = 2.1015E+01 seconds\n", - " Time in transport only = 2.0844E+01 seconds\n", - " Time in inactive batches = 2.2260E+00 seconds\n", - " Time in active batches = 1.8789E+01 seconds\n", - " Time synchronizing fission bank = 9.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for initialization = 1.4400E+00 seconds\n", + " Reading cross sections = 1.1340E+00 seconds\n", + " Total time in simulation = 1.8207E+01 seconds\n", + " Time in transport only = 1.8125E+01 seconds\n", + " Time in inactive batches = 2.1170E+00 seconds\n", + " Time in active batches = 1.6090E+01 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.2491E+01 seconds\n", - " Calculation Rate (inactive) = 22461.8 neutrons/second\n", - " Calculation Rate (active) = 10644.5 neutrons/second\n", + " Total time elapsed = 1.9657E+01 seconds\n", + " Calculation Rate (inactive) = 23618.3 neutrons/second\n", + " Calculation Rate (active) = 12430.1 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -814,7 +842,7 @@ "0" ] }, - "execution_count": 26, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -833,7 +861,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -858,7 +886,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -877,7 +905,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -896,7 +924,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -929,7 +957,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -969,7 +997,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -1019,7 +1047,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "metadata": { "collapsed": true }, @@ -1044,7 +1072,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "metadata": { "collapsed": false, "scrolled": true @@ -1070,8 +1098,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 4bec584ddb7d07be7d92ad9d037e8363b2f25614\n", - " Date/Time: 2016-05-15 14:22:57\n", + " Git SHA1: 058ba68895a2f880402fda3d58cfb14b162931d9\n", + " Date/Time: 2016-05-17 05:32:54\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1096,56 +1124,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.02073 \n", - " 2/1 1.04004 \n", - " 3/1 1.02324 \n", - " 4/1 1.01690 \n", - " 5/1 1.03702 \n", - " 6/1 1.01796 \n", - " 7/1 1.01779 \n", - " 8/1 1.02764 \n", - " 9/1 1.03324 \n", - " 10/1 1.01465 \n", - " 11/1 1.02268 \n", - " 12/1 1.01598 1.01933 +/- 0.00335\n", - " 13/1 1.01993 1.01953 +/- 0.00194\n", - " 14/1 1.01779 1.01910 +/- 0.00144\n", - " 15/1 1.01014 1.01731 +/- 0.00211\n", - " 16/1 1.04059 1.02119 +/- 0.00425\n", - " 17/1 1.04877 1.02513 +/- 0.00533\n", - " 18/1 1.05504 1.02887 +/- 0.00594\n", - " 19/1 1.02601 1.02855 +/- 0.00525\n", - " 20/1 1.04347 1.03004 +/- 0.00493\n", - " 21/1 1.01703 1.02886 +/- 0.00461\n", - " 22/1 1.02628 1.02864 +/- 0.00421\n", - " 23/1 1.02598 1.02844 +/- 0.00388\n", - " 24/1 1.05341 1.03022 +/- 0.00401\n", - " 25/1 1.02201 1.02967 +/- 0.00377\n", - " 26/1 1.00758 1.02829 +/- 0.00379\n", - " 27/1 1.00720 1.02705 +/- 0.00377\n", - " 28/1 1.03098 1.02727 +/- 0.00356\n", - " 29/1 1.03022 1.02743 +/- 0.00337\n", - " 30/1 1.01694 1.02690 +/- 0.00324\n", - " 31/1 0.99064 1.02518 +/- 0.00353\n", - " 32/1 0.99495 1.02380 +/- 0.00364\n", - " 33/1 1.03220 1.02417 +/- 0.00350\n", - " 34/1 1.02399 1.02416 +/- 0.00335\n", - " 35/1 1.03048 1.02441 +/- 0.00322\n", - " 36/1 1.05360 1.02553 +/- 0.00329\n", - " 37/1 1.05030 1.02645 +/- 0.00330\n", - " 38/1 1.04167 1.02699 +/- 0.00322\n", - " 39/1 1.04406 1.02758 +/- 0.00317\n", - " 40/1 1.01169 1.02705 +/- 0.00310\n", - " 41/1 1.00191 1.02624 +/- 0.00311\n", - " 42/1 1.02729 1.02628 +/- 0.00301\n", - " 43/1 1.02263 1.02616 +/- 0.00292\n", - " 44/1 1.05344 1.02697 +/- 0.00295\n", - " 45/1 1.03607 1.02723 +/- 0.00287\n", - " 46/1 1.00357 1.02657 +/- 0.00287\n", - " 47/1 1.03353 1.02676 +/- 0.00279\n", - " 48/1 1.03817 1.02706 +/- 0.00274\n", - " 49/1 1.01454 1.02674 +/- 0.00269\n", - " 50/1 0.99860 1.02603 +/- 0.00271\n", + " 1/1 1.02235 \n", + " 2/1 1.01108 \n", + " 3/1 1.02801 \n", + " 4/1 1.01404 \n", + " 5/1 1.03423 \n", + " 6/1 1.03282 \n", + " 7/1 1.04060 \n", + " 8/1 1.01152 \n", + " 9/1 1.02063 \n", + " 10/1 1.02604 \n", + " 11/1 1.02137 \n", + " 12/1 1.01416 1.01776 +/- 0.00360\n", + " 13/1 1.00239 1.01264 +/- 0.00553\n", + " 14/1 1.04293 1.02021 +/- 0.00852\n", + " 15/1 1.02029 1.02023 +/- 0.00660\n", + " 16/1 1.01512 1.01938 +/- 0.00546\n", + " 17/1 1.02098 1.01960 +/- 0.00462\n", + " 18/1 1.05954 1.02460 +/- 0.00640\n", + " 19/1 1.02347 1.02447 +/- 0.00564\n", + " 20/1 1.03063 1.02509 +/- 0.00508\n", + " 21/1 1.04679 1.02706 +/- 0.00500\n", + " 22/1 1.01301 1.02589 +/- 0.00472\n", + " 23/1 1.00936 1.02462 +/- 0.00452\n", + " 24/1 1.01030 1.02360 +/- 0.00431\n", + " 25/1 1.03799 1.02456 +/- 0.00412\n", + " 26/1 1.00404 1.02327 +/- 0.00406\n", + " 27/1 1.02987 1.02366 +/- 0.00384\n", + " 28/1 1.00107 1.02241 +/- 0.00383\n", + " 29/1 1.01460 1.02200 +/- 0.00365\n", + " 30/1 1.01433 1.02161 +/- 0.00348\n", + " 31/1 1.01566 1.02133 +/- 0.00332\n", + " 32/1 1.03339 1.02188 +/- 0.00321\n", + " 33/1 1.03974 1.02265 +/- 0.00317\n", + " 34/1 1.03136 1.02302 +/- 0.00306\n", + " 35/1 1.05175 1.02417 +/- 0.00315\n", + " 36/1 1.05444 1.02533 +/- 0.00324\n", + " 37/1 1.02432 1.02529 +/- 0.00312\n", + " 38/1 1.01464 1.02491 +/- 0.00303\n", + " 39/1 1.01086 1.02443 +/- 0.00296\n", + " 40/1 1.02492 1.02444 +/- 0.00286\n", + " 41/1 1.02882 1.02459 +/- 0.00277\n", + " 42/1 1.00377 1.02394 +/- 0.00276\n", + " 43/1 0.97480 1.02245 +/- 0.00306\n", + " 44/1 1.03623 1.02285 +/- 0.00300\n", + " 45/1 1.02606 1.02294 +/- 0.00291\n", + " 46/1 1.01771 1.02280 +/- 0.00284\n", + " 47/1 1.05400 1.02364 +/- 0.00288\n", + " 48/1 1.01844 1.02350 +/- 0.00281\n", + " 49/1 1.00754 1.02309 +/- 0.00277\n", + " 50/1 1.02902 1.02324 +/- 0.00270\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -1155,27 +1183,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.5000E-02 seconds\n", - " Reading cross sections = 3.0000E-03 seconds\n", - " Total time in simulation = 1.2599E+01 seconds\n", - " Time in transport only = 1.2565E+01 seconds\n", - " Time in inactive batches = 1.1220E+00 seconds\n", - " Time in active batches = 1.1477E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", + " Total time for initialization = 4.7000E-02 seconds\n", + " Reading cross sections = 6.0000E-03 seconds\n", + " Total time in simulation = 1.4145E+01 seconds\n", + " Time in transport only = 1.4098E+01 seconds\n", + " Time in inactive batches = 1.2400E+00 seconds\n", + " Time in active batches = 1.2905E+01 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 1.2644E+01 seconds\n", - " Calculation Rate (inactive) = 44563.3 neutrons/second\n", - " Calculation Rate (active) = 17426.2 neutrons/second\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 1.4201E+01 seconds\n", + " Calculation Rate (inactive) = 40322.6 neutrons/second\n", + " Calculation Rate (active) = 15497.9 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02471 +/- 0.00243\n", - " k-effective (Track-length) = 1.02603 +/- 0.00271\n", - " k-effective (Absorption) = 1.02312 +/- 0.00182\n", - " Combined k-effective = 1.02387 +/- 0.00172\n", + " k-effective (Collision) = 1.02379 +/- 0.00230\n", + " k-effective (Track-length) = 1.02324 +/- 0.00270\n", + " k-effective (Absorption) = 1.02813 +/- 0.00172\n", + " Combined k-effective = 1.02680 +/- 0.00165\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -1186,7 +1214,7 @@ "0" ] }, - "execution_count": 34, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -1209,7 +1237,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "metadata": { "collapsed": false }, @@ -1229,7 +1257,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "metadata": { "collapsed": true }, @@ -1247,7 +1275,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -1257,8 +1285,8 @@ "output_type": "stream", "text": [ "Continuous-Energy keff = 1.024295\n", - "Multi-Group keff = 1.023875\n", - "bias [pcm]: 42.0\n" + "Multi-Group keff = 1.026805\n", + "bias [pcm]: -251.0\n" ] } ], @@ -1274,7 +1302,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We see quite good agreement with only a 42 pcm difference between the two methods. Due to the high degree of approximations inherent in practical application of multi-group theory, one should not expect results of such high fidelity always for multi-group Monte Carlo calculations." + "This shows a 251 pcm bias between the two methods. Some degree of mismatch is expected simply to the very few histories being used in these example problems. An additional mismatch is always inherent in the practical application of multi-group theory due to the high degree of approximations inherent in that method." ] }, { @@ -1295,7 +1323,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "metadata": { "collapsed": false }, @@ -1321,7 +1349,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "metadata": { "collapsed": false }, @@ -1347,7 +1375,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "metadata": { "collapsed": false }, @@ -1355,18 +1383,18 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 40, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAADDCAYAAACS2+oqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXmcXtP9x9/fLJZEQoQgIhFCgrSIJMRSY4tSKm0TO0Ub\nuqi1FFWG+lmqtVVVi2paS1BLKCVaprWTBLXUVhHSSJBIQkK2+f7+uHfiycw8z/dOZp48Mzef9+s1\nr3meez73nO9z7vd+77nnnnOPuTtCCCHaPu0qbYAQQoiWQQFdCCFyggK6EELkBAV0IYTICQroQgiR\nExTQhRAiJ7S6gG5mL5vZVyptx8qMmT1gZkc0Y//fmtlPW9KmlREzqzWzTUqk5/ZckQ8uJ+4e/gGH\nAs8BnwD/A+4Hdsqyb5DvjcD5zc2nkn/pb1gAzE3/PgGer7RdGew+F1hYYPNc4MeVtqsJNs8CHgd2\naML+jwLHrAA73wE+B9aut/0FoBbonTGfJcAmBX7WpHMF6AicA7yWHuP30nN3r0ofy0aOp3ywBf7C\nFrqZnQJcBlwA9AB6A9cAX4/2XYm4xN27pn9d3H3bli7AzNq3dJ7A2AKbu7r7L8tQRksz1t27AusA\nNcAdlTWnURyYDBxSt8HMBgKrpWlZsWbacSewP3A40A3oC1wJ7NtoYeXxsQj5YEsSXE26klw5v1lC\nswpwBUnLfSpwOdAxTduVpFVwCjAj1RyVpo0mudJ9TnK1G5dunwzsXnA1vA0Yk2peAgYVlF1L2oJJ\nvy/TiknLeBP4CLgH2CDd3ifdt11jV05gU5IDNRv4ALi1xO8v2nIqKOdIYEqa11kF6QacAbwFfAiM\nBdaqt+8x6b416fYjSVqAHwJn19UXsB4wD+hWkP92aZnti7Q0/hS1IkrVRXqsZ6RpLwBbNuU4FBzD\n44A3gJnA1UHr6E8F37cgacV2T7+vBdyX2jkz/dwzTbsAWAzMT33pqnT7AGB8qv8PMKog/32BV1L9\ne8ApGVthk4GzgGcLtl0KnJna27ux1hrwbeCx+v5NhnOlERv2TP1hgwy2ng68CHxG0g27RWrbxyTn\n3P6N+UYJm38E/Dc9Dr/Iejzlg833waiFPgxYNa2AYpwNDAW+DGydfj67IH19oAvQE/gu8BszW9Pd\nrwNuJjngXd39gCL57w/cAqyZVs5vCtKKtnbMbHfgQmAksAHwLknADPcFfg485O5rAb2AX5fQZmEn\nYDOSk+wcM+ufbj+R5E5nF5L6+Zjk7qeQr5Ac8L3NbAuS338IyW9aM90Pd59BchIcWLDvYSTOv6QZ\ntjdaF2Y2HNgZ6JemHUTikMuQ4TgAfI3k4rMNcGCad0nMbBWSYDKTpN4gCUZ/ADYiuZOcT+ov7n42\n8BhwfOpvJ5hZJ5IT6SaS1tYhwDVpPQNcD4z2pDU2EHgksquAp4EuZtbfzNqRHJebiFvdDfyyCedK\nIXsAz7j7+xm0BwP7kASjdsC9wIPAusAJwM1mtlkTbB4BDEr/DjCzYzLYUAr5YEYfjAJ6d+Ajd68t\noTkUOM/dZ7r7TOA8oPBhxkLg5+6+xN3/BnwK9G8kn2I87u4PeXK5+jPJhaOOUifHocAN7v6iuy8i\naR0NM7PeGcpcBPQxsw3dfaG7PxnoTzOzWWb2cfr/xoI0B6rTfP5N0hLaOk07Fvipu7+f2ng+MDIN\nAHX7nuvun7n7AhKHvNfdn3L3xST9o4X8ibTu0zwOIamzYhxUz+71m1AXi0gu1Fuambn76+lFpT5Z\njsNF7v6Ju79HclHaJrKZ5ET5DjCyzj/dfZa73+3uC9x9HnARyQWxGPsBk939T57wAkk3xcg0fSGw\nlZl1cfc5aXpT+DPJCb8XST/2tCbu3xzWAabXfTGzbulxnm1mn9XTXunu01If2wHo7O6XuPtid38U\n+CsF3UcZuDitr6kkd++l9pUPtqAPRgF9JrBOQYBpjJ4kV7w6pqTbluZR74IwH1gjKLeQ6QWf5wOr\nBfYU2jWl7ktauTOBDTPsexpJ3TxrZi+Z2dEAZnammX1iZnPNrLAlfam7r+3u3dL/R9fLr9DJCn9/\nH+Du1JFnAa+SOOl6Bfqp9X7TewW/6TOWbZGMA7Yws42B4cBsd59Q4nfeVs/u6Y1oGq2L9ES/mqT1\nMd3MrjWzxo5rluNQrH6K2kzyPOdlYHBdgpmtbma/M7N3zGw28E9gLTMrduHvA+xQV/9m9jHJyV9X\n/98iablNMbNHzWyHEnY1xk1pfkeRXGzLRuqXdb7Zi6SON6hLd/eP3b0bSSt0lXq7F/WxlClkO28a\ny69+PKiPfLAFfTAKjE+R9NuNKKH5X2pUoYFZWyJNeUDUGPOBTgXfC6/u0wrtMrPOJHccU0n6Fim2\nr7t/4O7HuvuGwPdIboE2cfeL/IuHNz9opu2QXAj3SR25zqk717tNLqyj90luOet+0+rpb6qzewFw\nO8lDsMMp3TrPRLG6SNOudvfBwFYkd12nNZJFqePQHLtmpfZUm1md859K0rU1JL0Fr2sZ1Z1M9f3t\nPZJnE4X139Xdj0/LmOjuI0i6HsaR1G1TbHyXpI96H+CuRiTzKO6/DbILyupS4JtTgX8AQ8yssWBa\nP7gU5j2NpLugkN4k53lWmwv3700z70zkg9l9sGRAd/e5JA8BfmNmB6RXnw5mto+ZXZzKxgJnm9k6\nZrYO8DOyB5IZJA99mkKhMz4PHGpm7czsqyQPYeu4BTjazL5sZquS9KE97e7vuftHJA56eLrvMSQP\nXpICzEaaWd3VezbJQ5Pl7Ycu1S30O+DCuls/M1vXzApHD9Xf9y/A/ma2g5l1JOneqs+fSVqE+5O0\nEJtFsbows8FmNtTMOpA8TPucxuuo6HForm3u/jpJX+9P0k1dUlvmmtnaQHW9Xer721+Bzc3s8NSv\nO6a/a0D6+VAz6+rJM4hPSB5oNZVjSB5c1u/mgOQh3jfT86ofye17MZp0rrj7wyRdB/ekx6ljeqyG\nUfri8Awwz8xOT+ukiqRb4NYm2Hyama1lZhuRPCeq31/dJOSD2X0w7Lpw98tJRqmcTfLk9l3gB3zx\noPQCYAJQ1z88Afi/UlkWfL6BpH9olpnd1Uh6tP9JJA8VPybpp7u7wO5HSC4ud5EE774kD3/qGE3y\ndP8jkifVTxSkDQGeMbO56e88wd2nUJzT01vduelt7wdF7K3//UqSq+54M5sDPEnyULnRfd39VZIR\nBLeRtDrmkByTBQWaJ0kcflLaQlweCsstVhddgetIxuJOJqnHBkPOMhyHUvWThV8Co9PGxBUkrceP\nSOrygXraK4FRZjbTzK5w909JuqYOJqnPacDFfNElcQQwOb11PpbkIXMWlv4Gd5/s7pMaSyMZobGI\npFvxRhpegJt7rnyTJGDcRHKOvE1ynuxdpAzSPuavk4yu+IikS+MId38zo82Q+PREYBLJQIY/BHY2\nhnwwoUk+aO7N7fUQlSK9dZxN8pR/SsH2fwA3u/vynEhCLDdmVkvij29X2paVkVY39V+Uxsz2S293\nOwO/Av5dL5gPAbYlacULIVYiFNDbHgeQ3JZNJen3X3rraGZ/JBnTemL6JF+IFY1u+SuIulyEECIn\nqIUuhBA5oUM5Mk2HEF5BcsG4wd0vaUSjWwNRVty9uS+3aoB8W7QGivl2i3e5WDKL8w2Sd0lMI3nt\n7sHu/lo9nfOTgrIfr4adq5fNbEyGAi/PoMkyafmlDJoJ9erqnmoYUb3stqPjuQqX114Qak5+49qS\n6VdtPjrM44RHrmu4cUw1fLt66ddee7zZUFOPF5a+qaA41/PdULOQVUPN7/y4BtvmVl9F1+oTln7/\n37OlXiuSsoO1eEBvkm/zesGWX5OMNq3jlgyl1X+rQ0N29YdCzVB/NtRcNedHDbYtvvgSOpzxk6Xf\nFy2oP7m0IWt1nx1qPnq5/pylhuy2Tf2Rfg25fZlXFiVcWr2A06q/8LEXvNTs/YS9n3gs1PBQHCNv\nOz9++exB7e6rt6WaBsPUVyudx/A9Yfxfi/t2ObpchgJvuvuUdEzrWJIHeUK0deTbolVTjoC+Icu+\nC2IqTXsPhBCtFfm2aNWUow+9sVuBxu9ZHq/+4vOqa5XBlDIzoKrSFjSdrasqbUGTWbVq+1g0sQYm\n1ZTblOy+vcwbl7uUw5ay0m7nnSptQpPZsaoS63M0h6pssiU1UFsDwFuvl1SWJaBPJXkhTx29KPZy\nnvp95m2NthjQt6mqtAVNJlNA364q+avjhsZec9Nssvs2Dful2xLtdt650iY0mZ2qyjLGo4xUZZO1\nr0r+gH794e03i/t2ObpcngP6mVkfS14AfzDJC/OFaOvIt0WrpsUvae6+xMyOJ5mxWDe06z8tXY4Q\nKxr5tmjtlOUexd0fpGmrEgnRJpBvi9ZMxab+m5mzcVD2nrFt9vP5ocav7hRqlhwcP1BZbf14nG2X\nteaGmu07PBNqtggafld+cGKYx4k9rgw1VfZoqHmTzUPNi8usDNg4TzEs1MymW6jZIMMymf9uN6ws\nE4uykMyxKLFq44AMmcRDzOlz62uhZhueDzXD/KlQk2UOwZa8GmpmEw9+OJOLQs1Hp8bj2cdeFo8o\nfdR3CzXXfv3kUHPAvbeGmnGdDg01HFQ6efhAGH/aih2HLoQQogIooAshRE5QQBdCiJyggC6EEDlB\nAV0IIXKCAroQQuQEBXQhhMgJCuhCCJETKvs2m0uD9AVxFsf1KL0QBMB6F/441FiXeA7KgtPjt+ZV\n8WSo6elF3udUwC/5acn0/j2ODPMYyMuhZphPCjVPs22oOfmy+Djcdeo+oeYXnB5q9rO/hpp/h4oy\n06+EP03IsP+d8aS6x9gl1Fztx4ea07kq1Pjv47bficdeHGquynB837MzQk3NL6tCzSiPX7Mz6sP4\ndx147+2hZvdJ8eSsvvNeCTWTv7NVqCmFWuhCCJETFNCFECInKKALIUROUEAXQoicoIAuhBA5QQFd\nCCFyggK6EELkhMoucPFcUPYasW2L140Xpmi39pLYoAzjbN8/Nn45/8l2eag5yv8YavZ+5F8l04/d\nI1684hKPx/yuPTQe7O9rhhLs4biO/Ya4jvf87n2hZhbdQ82LtmNlF7gYWXyBiz63xwtTDPZ4sPod\ndnioeS7DwiODX47HR+8+8P5Q08nixWZ29sdDzTiLF6a4hUNCzUse//b+/nqoGWCTQ80RXB9qbr7l\nu6Gm76GlFwnZhc78qV1fLXAhhBB5RwFdCCFyggK6EELkBAV0IYTICQroQgiRExTQhRAiJyigCyFE\nTlBAF0KInFDRBS6e2670y9yH/C+eXNFuVjz5aEi3x0LNhP6hhA3+NjvUjN366DijR2IJZ5ZO7jh1\nUZjFgdwWanafEE/i+OmjoYTaC+MJXhPPil/e/3uOzaA5LtS8GCrKy2rXzSqatqvVhPtvZm+Fmr/5\nH0LNTXZSqHly4I6hZsqkAaFm2KDYsc+YekWomdZrg1AzeOHEULPHKv8INdfXxpN92r8Vx5iTB8wI\nNdse+kSo+dB6lExfHIRstdCFECInKKALIUROUEAXQoicoIAuhBA5QQFdCCFyggK6EELkBAV0IYTI\nCQroQgiRE8oyscjM3gHmALXAIncf2pjuYBtbMp9JPbfJUFjxlWHqGMploeaz7eLFbVZbI8PKRxPj\na+Sth8WTeQ45/O6S6Z/6dWEeD38wItRYbVx/fk/8m544c9tQszPxRDH+GZe1/a7PxPmUiay+3XPN\n94vmsb3H9n+fG0PNh9Y11HT3maHmZo4JNV8bdFeoOSXDeWa9Yn872uIJaG923DzU3EG8ohNjjwwl\ni8fHYdLGxLHhs/nx5LsLO59RMr0fm3FLifRyzRStBarc/eMy5S9EpZBvi1ZLubpcrIx5C1FJ5Nui\n1VIux3TgITN7zsxGl6kMISqBfFu0WsrV5bKju083s3WBh83sP+4ZlvsWovUj3xatlrIEdHefnv7/\n0MzuBoYCDZx+VvU1Sz+vXjWE1auGlMMcsRLwcs1MXqkp/obDlkK+LVY0U2qmMKXmXQBe5pWS2hYP\n6GbWCWjn7p+aWWdgOHBeY9q1q3/Q0sWLlZSBVd0ZWNV96fc7zotfP9tU5NuiEvSp6kOfqj5AMspl\n3Hn3FtWWo4W+HnC3mXma/83uPr4M5QixopFvi1ZNiwd0d58MZBhALkTbQr4tWjsVXbHoTC4qmT6l\n3cZhHtf6laGmh30Uat5Zo3eomeCjQs0RnUMJh7wzLtS82K/0JITtauMBFr/rcUSo+d5p8WQHhseS\nkXZnqJn+TIay4rkyjLzt/lhU4ZGFj9kuRdP25qE4A49XvhrMxqHmemI/GfJefFy69I5XR+rL26Hm\ndo8n1V3Jr0PN6jY/1Pgj8e869rCrQs0uh8UrnnXkG6Hm804HhZpZdC+Z/gldSqZrPK0QQuQEBXQh\nhMgJCuhCCJETFNCFECInKKALIUROUEAXQoicoIAuhBA5QQFdCCFygrl7ZQo2cxtbepWPxVvF856G\nDXwk1NxDvHLPjzJMZvgWfwk1XfyTULPnvEdDzaonl06/+7p9wjx68V6oWctnh5qJDAo1uzR8P1VD\nezaKX57lh4US9r/49lBzf7sDcfd4GaoyYGZ+up9bNL0jC8M8duDpULMxU0LNBAaHmvYer7Zz1Iw/\nhhqf0inUjN4+nsgzM5hcA/BzfhZq3vGNQ82NFk/g+i+bhJrBTAw1Q3k21PyDPUqmf4kNOcv2Kerb\naqELIUROUEAXQoicoIAuhBA5QQFdCCFyggK6EELkBAV0IYTICQroQgiRExTQhRAiJ1R0YtHBtTeU\n1OzrD4T5HG53xIVdFV+3nj3hS6FmKC/GZY2Jy7rjyP1CzSgrvhAsAA/H5SwcGs+rWWXNeFIJ28dl\n+X1xWdYjQ1mT47Je26RPqNnSplR0YtEm/lLR9B95PIntRK4NNRMs9tnPfdVQszMTQs3DfCXUvOJb\nhZqT7LehhqmxD7zSK57ssxUZFgr/W1xWzT7bh5oqngo1gzNMvnt17pYl0/fs0JG/rrGmJhYJIUTe\nUUAXQoicoIAuhBA5QQFdCCFyggK6EELkBAV0IYTICQroQgiRExTQhRAiJ8RLApWRN2yzkulfso3C\nPA6p/WOoufUbsS1z6Rpq/Lz2oeatc3vF9nBIqBnZr3RZv3zrh2Ee/Xkj1OxE51Bz/zOjQs18Vg81\n7Tky1PTtu1OomUbPUEOG1XzKyQjuKZo2ldhH/IXY157YdnSoucJOCjVreYbVkez7oeZXdmqoeTpD\nWRv0WjfUDJkTr/6zIJ4vBZPjyW7r2ruh5hr/WqjZP8NEsFW6LiqZvilrl0xXC10IIXKCAroQQuQE\nBXQhhMgJCuhCCJETFNCFECInKKALIUROUEAXQoicoIAuhBA5YbknFpnZDcB+wAx3/3K6rRtwG9AH\neAc40N3nFMujl08tWcbZ//pVaMfi3vFPOGfjM0LNQXZ7qLnv3D1DzQfWI9Qc71eHmnanlV5J6scv\n/ibM4/Stzw81w+c9HGqOfC1eFWrsdl8PNQfvE6zCBLz94Pqh5jQuDTWQYSWrIrSEb3+J4isWzWHN\n2Iae8Upipcqo406+FWo2svdCzWTvG2o2m/bfULNkQTyRjYmxZN7gePLRTXvEv/3bGc77A7kt1PRk\nWqg5dsnvQ83Q9qUnTHVmlZLpzWmh3wjsXW/bGcDf3b0/8AhwZjPyF6JSyLdFm2S5A7q7Pw58XG/z\nAcCY9PMYYMTy5i9EpZBvi7ZKS/eh93D3GQDuPh2I74uEaBvIt0WrRw9FhRAiJ7T02xZnmNl67j7D\nzNYHPiglfq36L0s/r1O1JetUbdnC5oiVhU9rJvFpzaRyFtEk376n+uWlnwdU9WBAVfywXIjGmFnz\nMrNqXgHg0+DtqM0N6Jb+1XEvcBRwCfBtYFypnQdUj2xm8UIkrFE1iDWqBi39PuO8PzQ3y2b59ojq\ngc0tXwgAulcNpHtV4k+D6MHj591YVLvcXS5mdgvwJLC5mb1rZkcDFwN7mdnrwJ7pdyHaFPJt0VZZ\n7ha6ux9aJCkerC1EK0a+Ldoq5h5PYChLwWb+99phJTW73RGvbmKj4hVH/Ob4RuTUw/4v1FyWYejx\ndOsWaj73VUPNxkwvmW67xL+p9jgLNXZ4XH/2lwxlfd4yZfFhXNYjPUr7DcCe9hTuHhtVBszM/1b7\nlaLpw197LM5jQFxX91r9ofINWdtnhpqdybC0z0XxcZl5RrxqVXebF2qeZttQM87jUaMX2bmh5k72\nCzXfW3JtqPmwfYZVqO6LV6Fq/37p4z68F4zfr11R39YoFyGEyAkK6EIIkRMU0IUQIicooAshRE5Q\nQBdCiJyggC6EEDlBAV0IIXKCAroQQuSEln45V5PY64HHS6afPipecefCK+PB+n8+cVSo2dTi1Vam\n+HqhpgOxPW/ZZqHmn35wyfS9HosnMK07p/4rvRvyBv1CTc+R8USoboctCDW1+8Z1szDDgjbVVMei\nButTrFgm2aCiaVcMOCnc/4Hr47oaNjqurB8Sr2y10/lxWe//LPa3nmfF/vZpdcdQM23V4aHmN5/9\nINSs1ileqayTxSsxHdH+z6Fm4ZyzQ82k/b8canrzesn0HsHLudRCF0KInKCALoQQOUEBXQghcoIC\nuhBC5AQFdCGEyAkK6EIIkRMU0IUQIicooAshRE6o6MQif7z0gjJPfG3HMI8RJ9waasZxYKgZzdWh\nZobFK7d/z38Xavac/ESoYWLp5FkjVwuzeGntuJhBfd8ONT42w8I/N9eGkps4KNRszQstoik9Za38\n/GjBr4umXeqnhfvbtLiMdX1uqLn9ybjNZuvEZfV8K540xP9iSYcl8UpMXeyTUHNqp1+Fmq4W188m\nHvv/aRQ/lktZ+NNQ8kc7KtR0ofRvX53S56Ja6EIIkRMU0IUQIicooAshRE5QQBdCiJyggC6EEDlB\nAV0IIXKCAroQQuQEBXQhhMgJ5u6VKdjMuTso+8XYNjsg1iweF8+fevGceBWhbXgt1HyfK0LNbx84\nNdSwbzAB46vxtdhfiCcE2fR4ogcPx2W17xHnc8LWl4Saq179Saj53laXh5rf2o9x9wwzoloeM/PH\narctmj6NDcM8ViVeAWpGhhW0Ru96c6jhX/GxO69d7ANdLK7uUzJMLHrU4gmFm/mboaYXH4aa3ezB\nUPPf2k1DzdQH4vjBVbGEIDQM7w7jh7Qr6ttqoQshRE5QQBdCiJyggC6EEDlBAV0IIXKCAroQQuQE\nBXQhhMgJCuhCCJETFNCFECInLPeKRWZ2A7AfMMPdv5xuOxcYDXyQys5y9+Ij939felLQkfdfG9px\n17xvhZpzz4knq7xkXwo1u9ceG2p+/3y8YtG39r0z1GxF6eWGxjx4YpjHN7g71PSe1z7UXLHXSaHG\nx8eTSmqsKtRUbflAqLltSbzyEfw4g6ZxWsK337LiE01u5ZDQhiH+bKi5tvb7oebQh28JNVdxSqj5\nbm23ULOAVULNLO8Uaqp+9nmoGXbBo6FmscfrVrl3CTUzZsUTuFgnwxy2ybGE2UF6sFBZc1roNwJ7\nN7L9MncflP7F07CEaH3It0WbZLkDurs/DjS20GBFplsL0VLIt0VbpRx96D80sxfM7HozW7MM+QtR\nKeTbolWz3H3oRbgGON/d3cwuAC4DvlNU/Wb1F5/XroLuVS1sjlhZWFTzFIv++VQ5i2iSb99T/fLS\nzwOqejCgqkc5bRN55pUaeLUGgLfWKC1t0YDu7oWvN7sOuK/kDptVt2TxYiWmY9UwOlYNW/r985/H\nb2RsCk317RHVA1u0fLESs1VV8gf0Wx/eHnNeUWlzu1yMgn5FM1u/IO2bwMsN9hCibSDfFm2O5gxb\nvAWoArqb2bvAucBuZrYNUAu8AxzXAjYKsUKRb4u2ynIHdHc/tJHNNzbDFiFaBfJt0Vap6IpFJ9Ze\nWFKztz0U5nOjHx1q/ssmoWbSL3YONRkWLILFGUa2ZVhliTsDzW3nh1lsV7t7qPm1nxBqdjzn+VDD\noljCLzL87k0z1N9bf89Q2PCKrli0hU8omj7fO4d5TDmrf1xQBpcdvu+4UDP+aweEmi63fxBq5ry2\nfqjxjeJD0uGpxaFmcb+4LXrwVvE1+I5JR4aaPoPiE387Joaauw48PNRwbunk4WvA+L6mFYuEECLv\nKKALIUROUEAXQoicoIAuhBA5odUE9Kk1b1fahKbzfk2lLWgyn9RkeMDZ2phfU2kLmsW8muIPSFst\nM2sqbUGTqXmuMgM8lpsPalo8SwX05jC9ptIWNJlPal6otAlN57OaSlvQLObXxCMgWh2zaiptQZP5\n53OVtqCJfFjT4lm2moAuhBCiebT0y7maRC++GLfalTWW+Z5s2zzMo2+wEARAR4I32gBkeIc9ny37\nddpk6NmnnmZJhnzWyqDpG6QP2iDMYkAjv3shqyyzvTNbhPkM6hlKIB46DIMyaHo13DTtNeg5oGBD\n13hRgkmTMpRVRrbki4UcXqXjMt8/Z9Vw/+5Z6rxrLOlH/FLIj/o13DZtJvQs2N65XYZQ0SnDAe4Q\nj0MflOU9lqs1UlaHabDaFxWXJTYMitfbYINoVQlgkyxl1Tunp02DnvXP86CofqvA+BLpFZ1YVJGC\nxUpDJScWVaJcsfJQzLcrFtCFEEK0LOpDF0KInKCALoQQOaFVBHQz+6qZvWZmb5jZTyptTxbM7B0z\ne9HMnjezeIn2CmBmN5jZDDP7d8G2bmY23sxeN7OHWtNSakXsPdfMpprZpPTvq5W0sam0Nd+WX5eH\nFeXbFQ/oZtYOuJpklfWtgEPMbEDpvVoFtUCVu2/r7kMrbUwRGlu9/gzg7+7eH3gEOHOFW1WcxuwF\nuMzdB6V/D65oo5aXNurb8uvysEJ8u+IBHRgKvOnuU9x9ETAWiN/nWXmM1lF/RSmyev0BwJj08xhg\nxAo1qgRF7IWClYPaGG3Rt+XXZWBF+XZrOHAbAu8VfJ+abmvtOPCQmT1nZqMrbUwT6OHuMwDcfTqw\nboXtycIPzewFM7u+td1KB7RF35Zfr1ha1LdbQ0Bv7ArVFsZS7ujug4F9SQ5KhuUGxHJwDbCpu28D\nTAcuq7BFsBgjAAABJ0lEQVQ9TaEt+rb8esXR4r7dGgL6VKB3wfdewLQK2ZKZtBVQtxr83SS3122B\nGWa2Hixd+DheiqaCuPuH/sVkieuAIZW0p4m0Od+WX684yuHbrSGgPwf0M7M+ZrYKcDBwb4VtKomZ\ndTKzNdLPnYHhtN5V4JdZvZ6kbo9KP38biNcoW7EsY296ctbxTVpvPTdGm/Jt+XXZKbtvV/RdLgDu\nvsTMjid5RUE74AZ3/0+FzYpYD7g7neLdAbjZ3Uu9YqEiFFm9/mLgDjM7BngXGFU5C5eliL27mdk2\nJKMv3gGOq5iBTaQN+rb8ukysKN/W1H8hhMgJraHLRQghRAuggC6EEDlBAV0IIXKCAroQQuQEBXQh\nhMgJCuhCCJETFNCFECInKKALIURO+H/MOIwTGD7mCAAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index bc643ed3e..e5728a812 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -460,7 +460,7 @@ class Library(object): ---------- domain : Material or Cell or Universe or Integral The material, cell, or universe object of interest (or its ID) - mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} The type of multi-group cross section object to return Returns @@ -773,9 +773,9 @@ class Library(object): nuclide this will be set to 'macro' regardless. xs_ids : str Cross section set identifier. Defaults to '1m'. - order : Scattering order for this dataset entry. Default is None, - which will force the XSdata object to use whatever the maximum - order available. + order : Scattering order for this data entry. Default is None, + which will force the XSdata object to use whatever the order of the + Library object is. Returns ------- @@ -801,7 +801,8 @@ class Library(object): cv.check_value('xs_type', xs_type, ['macro', 'micro']) cv.check_type('xs_id', xs_id, basestring) cv.check_type('order', order, (type(None), Integral)) - cv.check_greater_than('order', order, -1, equality=True) + if order is not None: + cv.check_greater_than('order', order, 0, equality=True) # Make sure statepoint has been loaded if self._sp_filename is None: @@ -819,20 +820,22 @@ class Library(object): name += '_' + nuclide name += '.' + xs_id xsdata = openmc.XSdata(name, self.energy_groups) - if order is 0: - xsdata.order = order + + if order is None: + # Set the order to the Library's order (the defualt behavior) + xsdata.order = self.legendre_order else: - msg = 'Generating anisotropic scattering from openmc.Library' \ - 'objects has not yet been implemented.' - raise NotImplementedError(msg) + # Set the order of the xsdata object to the minimum of + # the provided order or the Library's order. + xsdata.order = min(order, self.legendre_order) if nuclide is not 'total': xsdata.zaid = self._nuclides[nuclide][0] xsdata.awr = self._nuclides[nuclide][1] # Now get xs data itself - if 'transport' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'transport') + if ('nu-transport' in self.mgxs_types) and (self.correction == 'P0'): + mymgxs = self.get_mgxs(domain, 'nu-transport') xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) elif 'total' in self.mgxs_types: mymgxs = self.get_mgxs(domain, 'total') @@ -949,10 +952,6 @@ class Library(object): # Initialize file mgxs_file = openmc.MGXSLibrary(self.energy_groups) - # Set the scattering order as isotropic until - # support for higher orders are included in openmc.mgxs - order = 0 - # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): if self.by_nuclide: @@ -969,8 +968,7 @@ class Library(object): xsdata_name += '_' + nuclide xsdata = self.get_xsdata(domain, xsdata_name, nuclide=nuclide, - xs_type=xs_type, xs_id=xs_ids[i], - order=order) + xs_type=xs_type, xs_id=xs_ids[i]) mgxs_file.add_xsdata(xsdata) @@ -1031,10 +1029,10 @@ class Library(object): # Total or transport can be present, but if using # self.correction=="P0", then we should use transport. if (((self.correction is "P0") and - ('transport' not in self.mgxs_types))): + ('nu-transport' not in self.mgxs_types))): error_flag = True - msg = 'Transport MGXS type is required since a "P0" correction ' \ - 'is applied, but a Transport MGXS is not provided.' + msg = 'NuTransport MGXS type is required since a "P0" correction' \ + ' is applied, but a Transport MGXS is not provided.' warn(msg) elif (((self.correction is None) and ('total' not in self.mgxs_types))): diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 408175f43..99942361b 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -829,7 +829,8 @@ class XSdata(object): def set_scatter_mgxs(self, scatter, nuclide='total', xs_type='macro'): """This method allows for an openmc.mgxs.ScatterMatrixXS to be used to set the scatter matrix cross section for this XSdata - object. + object. If the XsData.order attribute has not yet been set, then + it will be set based on the properties of scatter. Parameters ---------- @@ -856,9 +857,35 @@ class XSdata(object): check_value('domain_type', scatter.domain_type, ['universe', 'cell', 'material']) + # Methods of representing anisotropic scattering besides + # Legendre expansions have not been implemented yet in openmc.mgxs. + # Therefore check to make sure the XsData has been set to + # legendre scattering. + if (self.scatt_type != 'legendre'): + msg = 'Anisotrpic scattering representations other than ' \ + 'Legendre expansions have not yet been implemented in ' \ + 'openmc.mgxs.' + raise ValueError(msg) + + # If the user has not defined XsData.order, then we will set + # the order based on the data within scatter. + # Otherwise, we will check to see that XsData.order to match + # the order of scatter + if self.order is None: + self.order = scatter.legendre_order + else: + check_value('legendre_order', scatter.legendre_order, + [self.order]) + if self._representation is 'isotropic': - self._scatter = np.array([scatter.get_xs(nuclides=nuclide, - xs_type=xs_type)]) + # Get the scattering orders in the outermost dimension + self._scatter = np.zeros((self.num_orders, + self.energy_groups.num_groups, + self.energy_groups.num_groups)) + for moment in range(self.num_orders): + self._scatter[moment, :, :] = scatter.get_xs(nuclides=nuclide, + xs_type=xs_type, + moment=moment) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' @@ -908,10 +935,12 @@ class XSdata(object): ['universe', 'cell', 'material']) if self._representation is 'isotropic': + # import pdb; pdb.set_trace() + nuscatt = nuscatter.get_xs(nuclides=nuclide, - xs_type=xs_type) + xs_type=xs_type, moment=0) scatt = scatter.get_xs(nuclides=nuclide, - xs_type=xs_type) + xs_type=xs_type, moment=0) self._multiplicity = np.divide(nuscatt, scatt) elif self._representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' @@ -969,7 +998,8 @@ class XSdata(object): if self._tabular_legendre is not None: subelement = ET.SubElement(element, 'tabular_legendre') subelement.set('enable', str(self._tabular_legendre['enable'])) - subelement.set('num_points', str(self._tabular_legendre['num_points'])) + subelement.set('num_points', + str(self._tabular_legendre['num_points'])) if self._total is not None: subelement = ET.SubElement(element, 'total') From b1516c91849989f40ac011e77af659409d34de94 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 17 May 2016 21:24:03 -0400 Subject: [PATCH 209/259] Updated per minor edits from @wbinventor and added a routine to calculate the mgxs_library and Materials objects --- .../pythonapi/examples/mgxs-part-iv.ipynb | 178 +++++++++--------- openmc/mgxs/library.py | 118 +++++++++++- openmc/mgxs_library.py | 50 +++-- 3 files changed, 222 insertions(+), 124 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index e1d61cedc..4b73cf3ca 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -724,7 +724,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: 058ba68895a2f880402fda3d58cfb14b162931d9\n", - " Date/Time: 2016-05-17 05:32:34\n", + " Date/Time: 2016-05-17 21:14:05\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -811,20 +811,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4400E+00 seconds\n", - " Reading cross sections = 1.1340E+00 seconds\n", - " Total time in simulation = 1.8207E+01 seconds\n", - " Time in transport only = 1.8125E+01 seconds\n", - " Time in inactive batches = 2.1170E+00 seconds\n", - " Time in active batches = 1.6090E+01 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for initialization = 1.4530E+00 seconds\n", + " Reading cross sections = 1.1470E+00 seconds\n", + " Total time in simulation = 1.8747E+01 seconds\n", + " Time in transport only = 1.8639E+01 seconds\n", + " Time in inactive batches = 2.1690E+00 seconds\n", + " Time in active batches = 1.6578E+01 seconds\n", + " Time synchronizing fission bank = 6.0000E-03 seconds\n", + " Sampling source sites = 4.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.9657E+01 seconds\n", - " Calculation Rate (inactive) = 23618.3 neutrons/second\n", - " Calculation Rate (active) = 12430.1 neutrons/second\n", + " Total time elapsed = 2.0209E+01 seconds\n", + " Calculation Rate (inactive) = 23052.1 neutrons/second\n", + " Calculation Rate (active) = 12064.2 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1099,7 +1099,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: 058ba68895a2f880402fda3d58cfb14b162931d9\n", - " Date/Time: 2016-05-17 05:32:54\n", + " Date/Time: 2016-05-17 21:14:26\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1124,56 +1124,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.02235 \n", - " 2/1 1.01108 \n", - " 3/1 1.02801 \n", - " 4/1 1.01404 \n", - " 5/1 1.03423 \n", - " 6/1 1.03282 \n", - " 7/1 1.04060 \n", - " 8/1 1.01152 \n", - " 9/1 1.02063 \n", - " 10/1 1.02604 \n", - " 11/1 1.02137 \n", - " 12/1 1.01416 1.01776 +/- 0.00360\n", - " 13/1 1.00239 1.01264 +/- 0.00553\n", - " 14/1 1.04293 1.02021 +/- 0.00852\n", - " 15/1 1.02029 1.02023 +/- 0.00660\n", - " 16/1 1.01512 1.01938 +/- 0.00546\n", - " 17/1 1.02098 1.01960 +/- 0.00462\n", - " 18/1 1.05954 1.02460 +/- 0.00640\n", - " 19/1 1.02347 1.02447 +/- 0.00564\n", - " 20/1 1.03063 1.02509 +/- 0.00508\n", - " 21/1 1.04679 1.02706 +/- 0.00500\n", - " 22/1 1.01301 1.02589 +/- 0.00472\n", - " 23/1 1.00936 1.02462 +/- 0.00452\n", - " 24/1 1.01030 1.02360 +/- 0.00431\n", - " 25/1 1.03799 1.02456 +/- 0.00412\n", - " 26/1 1.00404 1.02327 +/- 0.00406\n", - " 27/1 1.02987 1.02366 +/- 0.00384\n", - " 28/1 1.00107 1.02241 +/- 0.00383\n", - " 29/1 1.01460 1.02200 +/- 0.00365\n", - " 30/1 1.01433 1.02161 +/- 0.00348\n", - " 31/1 1.01566 1.02133 +/- 0.00332\n", - " 32/1 1.03339 1.02188 +/- 0.00321\n", - " 33/1 1.03974 1.02265 +/- 0.00317\n", - " 34/1 1.03136 1.02302 +/- 0.00306\n", - " 35/1 1.05175 1.02417 +/- 0.00315\n", - " 36/1 1.05444 1.02533 +/- 0.00324\n", - " 37/1 1.02432 1.02529 +/- 0.00312\n", - " 38/1 1.01464 1.02491 +/- 0.00303\n", - " 39/1 1.01086 1.02443 +/- 0.00296\n", - " 40/1 1.02492 1.02444 +/- 0.00286\n", - " 41/1 1.02882 1.02459 +/- 0.00277\n", - " 42/1 1.00377 1.02394 +/- 0.00276\n", - " 43/1 0.97480 1.02245 +/- 0.00306\n", - " 44/1 1.03623 1.02285 +/- 0.00300\n", - " 45/1 1.02606 1.02294 +/- 0.00291\n", - " 46/1 1.01771 1.02280 +/- 0.00284\n", - " 47/1 1.05400 1.02364 +/- 0.00288\n", - " 48/1 1.01844 1.02350 +/- 0.00281\n", - " 49/1 1.00754 1.02309 +/- 0.00277\n", - " 50/1 1.02902 1.02324 +/- 0.00270\n", + " 1/1 1.06913 \n", + " 2/1 1.04067 \n", + " 3/1 1.01854 \n", + " 4/1 1.00203 \n", + " 5/1 1.03243 \n", + " 6/1 1.02688 \n", + " 7/1 1.06855 \n", + " 8/1 1.03420 \n", + " 9/1 1.01657 \n", + " 10/1 1.02795 \n", + " 11/1 1.01796 \n", + " 12/1 1.03372 1.02584 +/- 0.00788\n", + " 13/1 1.02433 1.02534 +/- 0.00458\n", + " 14/1 1.01147 1.02187 +/- 0.00474\n", + " 15/1 1.01215 1.01993 +/- 0.00416\n", + " 16/1 1.04088 1.02342 +/- 0.00487\n", + " 17/1 1.04033 1.02583 +/- 0.00477\n", + " 18/1 1.04483 1.02821 +/- 0.00477\n", + " 19/1 1.02870 1.02826 +/- 0.00420\n", + " 20/1 1.01339 1.02678 +/- 0.00404\n", + " 21/1 1.03389 1.02742 +/- 0.00371\n", + " 22/1 1.02535 1.02725 +/- 0.00340\n", + " 23/1 1.00225 1.02533 +/- 0.00367\n", + " 24/1 0.99938 1.02347 +/- 0.00387\n", + " 25/1 1.01620 1.02299 +/- 0.00363\n", + " 26/1 1.03393 1.02367 +/- 0.00347\n", + " 27/1 1.01875 1.02338 +/- 0.00327\n", + " 28/1 1.00305 1.02225 +/- 0.00328\n", + " 29/1 1.01453 1.02185 +/- 0.00313\n", + " 30/1 1.02891 1.02220 +/- 0.00299\n", + " 31/1 0.99612 1.02096 +/- 0.00311\n", + " 32/1 1.04911 1.02224 +/- 0.00323\n", + " 33/1 1.01410 1.02188 +/- 0.00310\n", + " 34/1 0.98979 1.02055 +/- 0.00326\n", + " 35/1 1.00938 1.02010 +/- 0.00316\n", + " 36/1 1.02857 1.02043 +/- 0.00305\n", + " 37/1 1.04095 1.02119 +/- 0.00303\n", + " 38/1 1.02033 1.02115 +/- 0.00292\n", + " 39/1 1.02104 1.02115 +/- 0.00282\n", + " 40/1 1.00854 1.02073 +/- 0.00276\n", + " 41/1 1.00932 1.02036 +/- 0.00269\n", + " 42/1 1.00284 1.01982 +/- 0.00266\n", + " 43/1 1.02489 1.01997 +/- 0.00258\n", + " 44/1 1.03981 1.02055 +/- 0.00257\n", + " 45/1 1.02630 1.02072 +/- 0.00251\n", + " 46/1 1.00133 1.02018 +/- 0.00249\n", + " 47/1 1.02409 1.02028 +/- 0.00243\n", + " 48/1 1.03928 1.02078 +/- 0.00241\n", + " 49/1 1.01226 1.02057 +/- 0.00236\n", + " 50/1 1.03536 1.02094 +/- 0.00233\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -1183,27 +1183,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.7000E-02 seconds\n", - " Reading cross sections = 6.0000E-03 seconds\n", - " Total time in simulation = 1.4145E+01 seconds\n", - " Time in transport only = 1.4098E+01 seconds\n", - " Time in inactive batches = 1.2400E+00 seconds\n", - " Time in active batches = 1.2905E+01 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for initialization = 4.6000E-02 seconds\n", + " Reading cross sections = 8.0000E-03 seconds\n", + " Total time in simulation = 1.4524E+01 seconds\n", + " Time in transport only = 1.4457E+01 seconds\n", + " Time in inactive batches = 1.3350E+00 seconds\n", + " Time in active batches = 1.3189E+01 seconds\n", + " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.4201E+01 seconds\n", - " Calculation Rate (inactive) = 40322.6 neutrons/second\n", - " Calculation Rate (active) = 15497.9 neutrons/second\n", + " Total time elapsed = 1.4579E+01 seconds\n", + " Calculation Rate (inactive) = 37453.2 neutrons/second\n", + " Calculation Rate (active) = 15164.2 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.02379 +/- 0.00230\n", - " k-effective (Track-length) = 1.02324 +/- 0.00270\n", - " k-effective (Absorption) = 1.02813 +/- 0.00172\n", - " Combined k-effective = 1.02680 +/- 0.00165\n", + " k-effective (Collision) = 1.02358 +/- 0.00231\n", + " k-effective (Track-length) = 1.02094 +/- 0.00233\n", + " k-effective (Absorption) = 1.02682 +/- 0.00152\n", + " Combined k-effective = 1.02527 +/- 0.00153\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -1285,8 +1285,8 @@ "output_type": "stream", "text": [ "Continuous-Energy keff = 1.024295\n", - "Multi-Group keff = 1.026805\n", - "bias [pcm]: -251.0\n" + "Multi-Group keff = 1.025274\n", + "bias [pcm]: -97.9\n" ] } ], @@ -1302,7 +1302,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This shows a 251 pcm bias between the two methods. Some degree of mismatch is expected simply to the very few histories being used in these example problems. An additional mismatch is always inherent in the practical application of multi-group theory due to the high degree of approximations inherent in that method." + "This shows a nontrivial pcm bias between the two methods. Some degree of mismatch is expected simply to the very few histories being used in these example problems. An additional mismatch is always inherent in the practical application of multi-group theory due to the high degree of approximations inherent in that method." ] }, { @@ -1383,7 +1383,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 41, @@ -1392,9 +1392,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index e5728a812..20302b624 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -774,8 +774,8 @@ class Library(object): xs_ids : str Cross section set identifier. Defaults to '1m'. order : Scattering order for this data entry. Default is None, - which will force the XSdata object to use whatever the order of the - Library object is. + which will set the XSdata object to use the order of the + Library. Returns ------- @@ -803,6 +803,7 @@ class Library(object): cv.check_type('order', order, (type(None), Integral)) if order is not None: cv.check_greater_than('order', order, 0, equality=True) + cv.check_less_than('order', order, 10, equality=True) # Make sure statepoint has been loaded if self._sp_filename is None: @@ -834,7 +835,7 @@ class Library(object): xsdata.awr = self._nuclides[nuclide][1] # Now get xs data itself - if ('nu-transport' in self.mgxs_types) and (self.correction == 'P0'): + if 'nu-transport' in self.mgxs_types and self.correction == 'P0': mymgxs = self.get_mgxs(domain, 'nu-transport') xsdata.set_total_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) elif 'total' in self.mgxs_types: @@ -974,6 +975,104 @@ class Library(object): return mgxs_file + def create_mg_library_and_materials(self, xsdata_names=None, xs_ids=None, + material_ids=None): + """Creates an openmc.MGXSLibrary object to contain the MGXS data for the + Multi-Group mode of OpenMC as well as the associated openmc.Materials + objects. This method cannot be used for Library objects with + `Library.by_nuclide == True` since the materials to output would be + problem dependent and thus any Materials object produced by this method + would not be useful. + + Parameters + ---------- + xsdata_names : Iterable of str + List of names to apply to the "xsdata" entries in the + resultant mgxs data file. Defaults to 'set1', 'set2', ... + xs_ids : str or Iterable of str + Cross section set identifier (i.e., '71c') for all + data sets (if only str) or for each individual one + (if iterable of str). Defaults to '1m'. + material_ids : None or Iterable of Integral + An optional list of material IDs to pass to the materials in + materials_file. Defaults to `None` implying the materials will be + given an ID number which matches the index of the domain in + `self.domains` + + Returns + ------- + mgxs_file : openmc.MGXSLibrary + Multi-Group Cross Section File that is ready to be printed to the + file of choice by the user. + materials_file : openmc.Materials + Materials file ready to be printed with all the macroscopic data + present within this Library. + + Raises + ------ + ValueError + When the Library object is initialized with insufficient types of + cross sections for the Library. + + See also + -------- + Library.create_mg_library() + Library.dump_to_file() + + """ + + # Check to ensure the Library contains the correct + # multi-group cross section types + self.check_library_for_openmc_mgxs() + + if xsdata_names is not None: + cv.check_iterable_type('xsdata_names', xsdata_names, basestring) + if xs_ids is not None: + if isinstance(xs_ids, basestring): + # If we only have a string lets convert it now to a list + # of strings. + xs_ids = [xs_ids for i in range(len(self.domains))] + else: + cv.check_iterable_type('xs_ids', xs_ids, basestring) + else: + xs_ids = ['1m' for i in range(len(self.domains))] + if material_ids is not None: + cv.check_iterable_type('material_ids', material_ids, Integral) + xs_type = 'macro' + + # Initialize files + mgxs_file = openmc.MGXSLibrary(self.energy_groups) + + materials = [] + macroscopics = [] + nuclide = 'total' + # Create the xsdata object and add it to the mgxs_file + for i, domain in enumerate(self.domains): + # Build & add metadata to XSdata object + if xsdata_names is None: + xsdata_name = 'set' + str(i + 1) + else: + xsdata_name = xsdata_names[i] + + xsdata = self.get_xsdata(domain, xsdata_name, nuclide=nuclide, + xs_type=xs_type, xs_id=xs_ids[i]) + + mgxs_file.add_xsdata(xsdata) + + macroscopics.append(openmc.Macroscopic(name=xsdata_name, + xs=xs_ids[i])) + if material_ids is not None: + mat_id = material_ids[i] + else: + mat_id = i + materials.append(openmc.Material(name=xsdata_name + '.' + + xs_ids[i], material_id=mat_id)) + materials[-1].add_macroscopic(macroscopics[-1]) + + materials_file = openmc.Materials(materials) + + return (mgxs_file, materials_file) + def check_library_for_openmc_mgxs(self): """This routine will check the MGXS Types within a Library to ensure the MGXS types provided can be used to create @@ -1009,12 +1108,12 @@ class Library(object): # Ensure absorption is present if 'absorption' not in self.mgxs_types: error_flag = True - msg = 'Absorption MGXS type is required but not provided.' + msg = '"absorption" MGXS type is required but not provided.' warn(msg) # Ensure nu-scattering matrix is required if 'nu-scatter matrix' not in self.mgxs_types: error_flag = True - msg = 'Nu-Scatter Matrix MGXS type is required but not provided.' + msg = '"nu-scatter matrix" MGXS type is required but not provided.' warn(msg) else: # Ok, now see the status of scatter @@ -1023,7 +1122,7 @@ class Library(object): # we need total, and not transport. if 'total' not in self.mgxs_types: error_flag = True - msg = 'Total MGXS type is required if a ' \ + msg = '"total" MGXS type is required if a ' \ 'scattering matrix is not provided.' warn(msg) # Total or transport can be present, but if using @@ -1031,13 +1130,14 @@ class Library(object): if (((self.correction is "P0") and ('nu-transport' not in self.mgxs_types))): error_flag = True - msg = 'NuTransport MGXS type is required since a "P0" correction' \ - ' is applied, but a Transport MGXS is not provided.' + msg = 'A "nu-transport" MGXS type is required since a "P0" ' \ + 'correction is applied, but a "nu-transport" MGXS is ' \ + 'not provided.' warn(msg) elif (((self.correction is None) and ('total' not in self.mgxs_types))): error_flag = True - msg = 'Total MGXS type is required, but not provided.' + msg = '"total" MGXS type is required, but not provided.' warn(msg) if error_flag: diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 99942361b..88ae05808 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -137,6 +137,10 @@ class XSdata(object): ``representation``. matrix_shape : iterable of int Dimensionality of matrix multi-group cross sections (e.g., the + fission matrix cross section). The return result depends on the + value of ``representation``. + pn_matrix_shape : iterable of int + Dimensionality of scattering matrix data (e.g., the scattering matrix cross section). The return result depends on the value of ``representation``. total : numpy.ndarray @@ -621,9 +625,9 @@ class XSdata(object): check_value('domain_type', total.domain_type, ['universe', 'cell', 'material']) - if self._representation is 'isotropic': + if self.representation is 'isotropic': self._total = total.get_xs(nuclides=nuclide, xs_type=xs_type) - elif self._representation is 'angle': + elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -657,10 +661,10 @@ class XSdata(object): check_value('domain_type', absorption.domain_type, ['universe', 'cell', 'material']) - if self._representation is 'isotropic': + if self.representation is 'isotropic': self._absorption = absorption.get_xs(nuclides=nuclide, xs_type=xs_type) - elif self._representation is 'angle': + elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -693,10 +697,10 @@ class XSdata(object): check_value('domain_type', fission.domain_type, ['universe', 'cell', 'material']) - if self._representation is 'isotropic': + if self.representation is 'isotropic': self._fission = fission.get_xs(nuclides=nuclide, xs_type=xs_type) - elif self._representation is 'angle': + elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -733,10 +737,10 @@ class XSdata(object): check_value('domain_type', nu_fission.domain_type, ['universe', 'cell', 'material']) - if self._representation is 'isotropic': + if self.representation is 'isotropic': self._nu_fission = nu_fission.get_xs(nuclides=nuclide, xs_type=xs_type) - elif self._representation is 'angle': + elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -776,10 +780,10 @@ class XSdata(object): check_value('domain_type', k_fission.domain_type, ['universe', 'cell', 'material']) - if self._representation is 'isotropic': + if self.representation is 'isotropic': self._kappa_fission = k_fission.get_xs(nuclides=nuclide, xs_type=xs_type) - elif self._representation is 'angle': + elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -816,10 +820,10 @@ class XSdata(object): check_value('domain_type', chi.domain_type, ['universe', 'cell', 'material']) - if self._representation is 'isotropic': + if self.representation is 'isotropic': self._chi = chi.get_xs(nuclides=nuclide, xs_type=xs_type) - elif self._representation is 'angle': + elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -829,7 +833,7 @@ class XSdata(object): def set_scatter_mgxs(self, scatter, nuclide='total', xs_type='macro'): """This method allows for an openmc.mgxs.ScatterMatrixXS to be used to set the scatter matrix cross section for this XSdata - object. If the XsData.order attribute has not yet been set, then + object. If the XSdata.order attribute has not yet been set, then it will be set based on the properties of scatter. Parameters @@ -857,19 +861,15 @@ class XSdata(object): check_value('domain_type', scatter.domain_type, ['universe', 'cell', 'material']) - # Methods of representing anisotropic scattering besides - # Legendre expansions have not been implemented yet in openmc.mgxs. - # Therefore check to make sure the XsData has been set to - # legendre scattering. if (self.scatt_type != 'legendre'): - msg = 'Anisotrpic scattering representations other than ' \ + msg = 'Anisotropic scattering representations other than ' \ 'Legendre expansions have not yet been implemented in ' \ 'openmc.mgxs.' raise ValueError(msg) - # If the user has not defined XsData.order, then we will set + # If the user has not defined XSdata.order, then we will set # the order based on the data within scatter. - # Otherwise, we will check to see that XsData.order to match + # Otherwise, we will check to see that XSdata.order to match # the order of scatter if self.order is None: self.order = scatter.legendre_order @@ -877,7 +877,7 @@ class XSdata(object): check_value('legendre_order', scatter.legendre_order, [self.order]) - if self._representation is 'isotropic': + if self.representation is 'isotropic': # Get the scattering orders in the outermost dimension self._scatter = np.zeros((self.num_orders, self.energy_groups.num_groups, @@ -887,7 +887,7 @@ class XSdata(object): xs_type=xs_type, moment=moment) - elif self._representation is 'angle': + elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) @@ -934,15 +934,13 @@ class XSdata(object): check_value('domain_type', scatter.domain_type, ['universe', 'cell', 'material']) - if self._representation is 'isotropic': - # import pdb; pdb.set_trace() - + if self.representation is 'isotropic': nuscatt = nuscatter.get_xs(nuclides=nuclide, xs_type=xs_type, moment=0) scatt = scatter.get_xs(nuclides=nuclide, xs_type=xs_type, moment=0) self._multiplicity = np.divide(nuscatt, scatt) - elif self._representation is 'angle': + elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) self._multiplicity = np.nan_to_num(self._multiplicity) From 03957aac6ba080a9b98b2bc023f856c44dcd4f96 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 21 May 2016 14:12:06 -0400 Subject: [PATCH 210/259] Implementing create_mg_mode, a method of Library which creates the MGXS Library, Geometry and Materials objects based on the Library class. --- openmc/mgxs/library.py | 67 +++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 20302b624..4eae2cb06 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -975,14 +975,11 @@ class Library(object): return mgxs_file - def create_mg_library_and_materials(self, xsdata_names=None, xs_ids=None, - material_ids=None): + def create_mg_mode(self, xsdata_names=None, xs_ids=None): """Creates an openmc.MGXSLibrary object to contain the MGXS data for the Multi-Group mode of OpenMC as well as the associated openmc.Materials - objects. This method cannot be used for Library objects with - `Library.by_nuclide == True` since the materials to output would be - problem dependent and thus any Materials object produced by this method - would not be useful. + and openmc.Geometry objects. This method only creates a macroscopic + MGXS Library even if nuclidic tallies are specified in the Library. Parameters ---------- @@ -993,18 +990,16 @@ class Library(object): Cross section set identifier (i.e., '71c') for all data sets (if only str) or for each individual one (if iterable of str). Defaults to '1m'. - material_ids : None or Iterable of Integral - An optional list of material IDs to pass to the materials in - materials_file. Defaults to `None` implying the materials will be - given an ID number which matches the index of the domain in - `self.domains` Returns ------- mgxs_file : openmc.MGXSLibrary Multi-Group Cross Section File that is ready to be printed to the file of choice by the user. - materials_file : openmc.Materials + materials : openmc.Materials + Materials file ready to be printed with all the macroscopic data + present within this Library. + geometry : openmc.Geometry Materials file ready to be printed with all the macroscopic data present within this Library. @@ -1036,42 +1031,51 @@ class Library(object): cv.check_iterable_type('xs_ids', xs_ids, basestring) else: xs_ids = ['1m' for i in range(len(self.domains))] - if material_ids is not None: - cv.check_iterable_type('material_ids', material_ids, Integral) xs_type = 'macro' - # Initialize files + # Initialize MGXS File mgxs_file = openmc.MGXSLibrary(self.energy_groups) - materials = [] - macroscopics = [] - nuclide = 'total' + # Create a copy of the Geometry to differentiate for these Macroscopics + geometry = copy.deepcopy(self.openmc_geometry) + materials = openmc.Materials() + + # Get all Cells from the Geometry for differentiation + all_cells = geometry.get_all_material_cells() + # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): + # Build & add metadata to XSdata object if xsdata_names is None: xsdata_name = 'set' + str(i + 1) else: xsdata_name = xsdata_names[i] - xsdata = self.get_xsdata(domain, xsdata_name, nuclide=nuclide, + # Create XSdata and Macroscopic for this domain + xsdata = self.get_xsdata(domain, xsdata_name, nuclide='total', xs_type=xs_type, xs_id=xs_ids[i]) - mgxs_file.add_xsdata(xsdata) + macroscopic = openmc.Macroscopic(name=xsdata_name, xs=xs_ids[i]) - macroscopics.append(openmc.Macroscopic(name=xsdata_name, - xs=xs_ids[i])) - if material_ids is not None: - mat_id = material_ids[i] - else: - mat_id = i - materials.append(openmc.Material(name=xsdata_name + '.' + - xs_ids[i], material_id=mat_id)) - materials[-1].add_macroscopic(macroscopics[-1]) + # Create Material and add to collection + material = openmc.Material(name=xsdata_name + '.' + xs_ids[i]) + material.add_macroscopic(macroscopic) + materials.append(material) - materials_file = openmc.Materials(materials) + # Differentiate Geometry with new Material + if self.domain_type == 'material': + # Fill all appropriate Cells with new Material + for cell in all_cells: + if cell.fill.id == domain.id: + cell.fill = material - return (mgxs_file, materials_file) + elif self.domain_type == 'cell': + for cell in all_cells: + if cell.id == domain.id: + cell.fill = material + + return mgxs_file, materials, geometry def check_library_for_openmc_mgxs(self): """This routine will check the MGXS Types within a Library @@ -1101,6 +1105,7 @@ class Library(object): See also -------- Library.create_mg_library() + Library.create_mg_mode() """ From 9b8dbe6e942f32095b9594f63dfcd82500025306 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 22 May 2016 05:56:29 -0400 Subject: [PATCH 211/259] added NuFissionMatrixXS class to MGXS types and incorporated in to Library and XsData --- openmc/mgxs/library.py | 22 ++- openmc/mgxs/mgxs.py | 430 ++++++++++++++++++++++++++++++++++++++++- openmc/mgxs_library.py | 46 +++-- 3 files changed, 474 insertions(+), 24 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 4eae2cb06..816b78e3d 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -460,7 +460,10 @@ class Library(object): ---------- domain : Material or Cell or Universe or Integral The material, cell, or universe object of interest (or its ID) - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', + 'capture', 'fission', 'nu-fission', 'kappa-fission', + 'scatter', 'nu-scatter', 'scatter matrix', + 'nu-scatter matrix', 'nu-fission matrix', chi'} The type of multi-group cross section object to return Returns @@ -853,13 +856,20 @@ class Library(object): mymgxs = self.get_mgxs(domain, 'kappa-fission') xsdata.set_kappa_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) - if 'chi' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'chi') - xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) - if 'nu-fission' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'nu-fission') + # For chi and nu-fission we can either have only a nu-fission matrix + # provided, or vectors of chi and nu-fission provided + if 'nu-fission matrix' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'nu-fission matrix') xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) + else: + if 'chi' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'chi') + xsdata.set_chi_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) + if 'nu-fission' in self.mgxs_types: + mymgxs = self.get_mgxs(domain, 'nu-fission') + xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, + nuclide=[nuclide]) # multiplicity requires scatter and nu-scatter if ((('scatter matrix' in self.mgxs_types) and ('nu-scatter matrix' in self.mgxs_types))): diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 5be84bb2c..717334937 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -32,6 +32,7 @@ MGXS_TYPES = ['total', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', + 'nu-fission matrix', 'chi'] @@ -425,7 +426,10 @@ class MGXS(object): Parameters ---------- - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', + 'capture', 'fission', 'nu-fission', 'kappa-fission', + 'scatter', 'nu-scatter', 'scatter matrix', + 'nu-scatter matrix', 'nu-fission matrix', 'chi'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization @@ -474,6 +478,8 @@ class MGXS(object): mgxs = ScatterMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'nu-scatter matrix': mgxs = NuScatterMatrixXS(domain, domain_type, energy_groups) + elif mgxs_type == 'nu-fission matrix': + mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'chi': mgxs = Chi(domain, domain_type, energy_groups) @@ -3182,6 +3188,428 @@ class NuScatterMatrixXS(ScatterMatrixXS): self._hdf5_key = 'nu-scatter matrix' +class NuFissionMatrixXS(MGXS): + """A fission production matrix multi-group cross section. + + 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): + super(NuFissionMatrixXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'nu-fission matrix' + self._hdf5_key = 'nu-fission matrix' + + def __deepcopy__(self, memo): + clone = super(NuFissionMatrixXS, self).__deepcopy__(memo) + return clone + + @property + def scores(self): + scores = ['flux', 'nu-fission'] + + return scores + + @property + def filters(self): + group_edges = self.energy_groups.group_edges + energy = openmc.Filter('energy', group_edges) + energyout = openmc.Filter('energyout', group_edges) + + filters = [[energy], [energy, energyout]] + + return filters + + @property + def estimator(self): + return 'analog' + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['nu-fission'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): + """Build a sliced NuFissionMatrix for the specified nuclides and + energy groups. + + This method constructs a new MGXS to encapsulate a subset of the data + represented by this MGXS. The subset of data to include in the tally + slice is determined by the nuclides and energy groups specified in + the input parameters. + + Parameters + ---------- + nuclides : list of str + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is []) + in_groups : list of int + A list of incoming energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) + out_groups : list of int + A list of outgoing energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) + + Returns + ------- + openmc.mgxs.MGXS + A new tally which encapsulates the subset of data requested for the + nuclide(s) and/or energy group(s) requested in the parameters. + + """ + + # Call super class method and null out derived tallies + slice_xs = super(NuFissionMatrixXS, self).get_slice(nuclides, + in_groups) + slice_xs._rxn_rate_tally = None + slice_xs._xs_tally = None + + # Slice outgoing energy groups if needed + if len(out_groups) != 0: + filter_bins = [] + for group in out_groups: + group_bounds = self.energy_groups.get_group_bounds(group) + filter_bins.append(group_bounds) + filter_bins = [tuple(filter_bins)] + + # Slice each of the tallies across energyout groups + for tally_type, tally in slice_xs.tallies.items(): + if tally.contains_filter('energyout'): + tally_slice = tally.get_slice(filters=['energyout'], + filter_bins=filter_bins) + slice_xs.tallies[tally_type] = tally_slice + + slice_xs.sparse = self.sparse + return slice_xs + + def get_xs(self, in_groups='all', out_groups='all', + subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', + row_column='inout', value='mean', **kwargs): + r"""Returns an array of multi-group cross sections. + + This method constructs a 2D NumPy array for the requested scattering + matrix data data for one or more energy groups and subdomains. + + 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. + + Parameters + ---------- + in_groups : Iterable of Integral or 'all' + Incoming energy groups of interest. Defaults to 'all'. + out_groups : Iterable of Integral or 'all' + Outgoing energy groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + row_column: {'inout', 'outin'} + Return the cross section indexed first by incoming group and + second by outgoing group ('inout'), or vice versa ('outin'). + Defaults to 'inout'. + value : str + A string for the type of value to return - 'mean', 'std_dev', or + 'rel_err' are accepted. Defaults to the empty string. + + Returns + ------- + ndarray + A NumPy array of the multi-group cross section indexed in the order + each group and subdomain is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(in_groups, basestring): + cv.check_iterable_type('groups', in_groups, Integral) + for group in in_groups: + filters.append('energy') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(out_groups, basestring): + cv.check_iterable_type('groups', out_groups, Integral) + for group in out_groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct a collection of the nuclides to retrieve from the xs tally + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides + else: + query_nuclides = ['total'] + + # Use tally summation if user requested the sum for all nuclides + if nuclides == 'sum' or nuclides == ['sum']: + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, + value=value) + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=query_nuclides, value=value) + + xs = np.nan_to_num(xs) + + # Divide by atom number densities for microscopic cross sections + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + if in_groups == 'all': + num_in_groups = self.num_groups + else: + num_in_groups = len(in_groups) + if out_groups == 'all': + num_out_groups = self.num_groups + else: + num_out_groups = len(out_groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = int(xs.shape[0] / + (num_in_groups * num_out_groups)) + new_shape = (num_subdomains, num_in_groups, num_out_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Transpose the scattering matrix if requested by user + if row_column == 'outin': + xs = np.swapaxes(xs, 1, 2) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_2d(xs) + + return xs + + def print_xs(self, subdomains='all', nuclides='all', + xs_type='macro'): + """Prints a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will report + the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + if nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + string += '{0: <16}\n'.format('\tEnergy Groups:') + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += \ + '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if xs_type != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + if xs_type == 'macro': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') + else: + string += '{0: <16}\n'.format('\tCross Sections [barns]:') + + template = '{0: <12}Group {1} -> Group {2}:\t\t' + + # Loop over incoming/outgoing energy groups ranges + for in_group in range(1, self.num_groups+1): + for out_group in range(1, self.num_groups+1): + string += template.format('', in_group, out_group) + average = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + string += '\n' + + print(string) + + class Chi(MGXS): """The fission spectrum. diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 88ae05808..7559b427a 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -131,6 +131,8 @@ class XSdata(object): num_polar : int Number of equal width angular bins that the polar angular domain is subdivided into. This only applies when ``representation`` is "angle". + use_chi : bool + Whether or not a chi vector or nu-fission matrix was used. vector_shape : iterable of int Dimensionality of vector multi-group cross sections (e.g., the total cross section). The return result depends on the value of @@ -292,6 +294,10 @@ class XSdata(object): def num_azimuthal(self): return self._num_azimuthal + @property + def use_chi(self): + return self._use_chi + @property def total(self): return self._total @@ -461,6 +467,11 @@ class XSdata(object): check_greater_than('num_azimuthal', num_azimuthal, 0) self._num_azimuthal = num_azimuthal + @use_chi.setter + def use_chi(self, use_chi): + check_type('use_chi', use_chi, bool) + self._use_chi = use_chi + @total.setter def total(self, total): check_type('total', total, Iterable, expected_iter_type=Real) @@ -512,8 +523,8 @@ class XSdata(object): @chi.setter def chi(self, chi): - if self._use_chi is not None: - if not self._use_chi: + if self.use_chi is not None: + if not self.use_chi: msg = 'Providing chi when nu_fission already provided as a' \ 'matrix' raise ValueError(msg) @@ -529,8 +540,8 @@ class XSdata(object): self._chi = npchi - if self._use_chi is not None: - self._use_chi = True + if self.use_chi is not None: + self.use_chi = True @scatter.setter def scatter(self, scatter): @@ -574,8 +585,8 @@ class XSdata(object): check_iterable_type('nu_fission', npnu_fission, Real, max_depth=len(npnu_fission.shape)) - if self._use_chi is not None: - if self._use_chi: + if self.use_chi is not None: + if self.use_chi: check_value('nu_fission shape', npnu_fission.shape, [self.vector_shape]) else: @@ -587,9 +598,9 @@ class XSdata(object): # Find out if we have a nu-fission matrix or vector # and set a flag to allow other methods to check this later. if npnu_fission.shape == self.vector_shape: - self._use_chi = True + self.use_chi = True else: - self._use_chi = False + self.use_chi = False self._nu_fission = npnu_fission if np.sum(self._nu_fission) > 0.0: @@ -728,10 +739,8 @@ class XSdata(object): """ - # The NuFissionXS class does not have the capability to produce - # a fission matrix and therefore if this path is pursued, we know - # chi must be used. - check_type('nu_fission', nu_fission, openmc.mgxs.NuFissionXS) + check_type('nu_fission', nu_fission, (openmc.mgxs.NuFissionXS, + openmc.mgxs.NuFissionMatrixXS)) check_value('energy_groups', nu_fission.energy_groups, [self.energy_groups]) check_value('domain_type', nu_fission.domain_type, @@ -744,7 +753,10 @@ class XSdata(object): msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - self._use_chi = True + if type(nu_fission) is openmc.mgxs.NuFissionMatrixXS: + self.use_chi = False + else: + self.use_chi = True if np.sum(self._nu_fission) > 0.0: self._fissionable = True @@ -809,8 +821,8 @@ class XSdata(object): """ - if self._use_chi is not None: - if not self._use_chi: + if self.use_chi is not None: + if not self.use_chi: msg = 'Providing chi when nu_fission already provided as a ' \ 'matrix!' raise ValueError(msg) @@ -827,8 +839,8 @@ class XSdata(object): msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - if self._use_chi is not None: - self._use_chi = True + if self.use_chi is not None: + self.use_chi = True def set_scatter_mgxs(self, scatter, nuclide='total', xs_type='macro'): """This method allows for an openmc.mgxs.ScatterMatrixXS From b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 22 May 2016 15:04:04 -0400 Subject: [PATCH 212/259] added MultiplicityMatrix class to MGXS and incorporated in to Library and XsData --- openmc/mgxs/library.py | 19 +- openmc/mgxs/mgxs.py | 436 ++++++++++++++++++++++++++++++++++++++++- openmc/mgxs_library.py | 40 ++-- 3 files changed, 469 insertions(+), 26 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 816b78e3d..23d40a952 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -870,9 +870,15 @@ class Library(object): mymgxs = self.get_mgxs(domain, 'nu-fission') xsdata.set_nu_fission_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) - # multiplicity requires scatter and nu-scatter - if ((('scatter matrix' in self.mgxs_types) and - ('nu-scatter matrix' in self.mgxs_types))): + # If multiplicity matrix is available, prefer that + if 'multiplicity matrix' in self.mgxs_types: + mult_mgxs = self.get_mgxs(domain, 'multiplicity matrix') + xsdata.set_multiplicity_mgxs(mult_mgxs, xs_type=xs_type, + nuclide=[nuclide]) + using_multiplicity = True + # multiplicity wil fall back to using scatter and nu-scatter + 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_mgxs(nuscatt_mgxs, scatt_mgxs, @@ -1131,9 +1137,10 @@ class Library(object): msg = '"nu-scatter matrix" MGXS type is required but not provided.' warn(msg) else: - # Ok, now see the status of scatter - if 'scatter matrix' not in self.mgxs_types: - # We dont have both nu-scatter and scatter, therefore + # 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))): + # We dont have data needed for multiplicity matrix, therefore # we need total, and not transport. if 'total' not in self.mgxs_types: error_flag = True diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 717334937..c3fd3a1b0 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -32,6 +32,7 @@ MGXS_TYPES = ['total', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', + 'multiplicity matrix', 'nu-fission matrix', 'chi'] @@ -478,6 +479,8 @@ class MGXS(object): mgxs = ScatterMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'nu-scatter matrix': mgxs = NuScatterMatrixXS(domain, domain_type, energy_groups) + elif mgxs_type == 'multiplicity matrix': + mgxs = MultiplicityMatrix(domain, domain_type, energy_groups) elif mgxs_type == 'nu-fission matrix': mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'chi': @@ -3188,6 +3191,431 @@ class NuScatterMatrixXS(ScatterMatrixXS): self._hdf5_key = 'nu-scatter matrix' +class MultiplicityMatrix(MGXS): + """The scattering multiplicity 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 deterministic neutronics calculations. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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=''): + super(MultiplicityMatrix, self).__init__(domain, domain_type, groups, + by_nuclide, name) + self._rxn_type = 'multiplicity' + + @property + def scores(self): + return ['nu-scatter', 'scatter'] + + @property + def filters(self): + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energyout = openmc.Filter('energyout', group_edges) + energyin = openmc.Filter('energy', group_edges) + return [[energyin, energyout], [energyin, energyout]] + + @property + def tally_keys(self): + return ['nu-scatter', 'scatter'] + + @property + def estimator(self): + return 'analog' + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies['nu-scatter'] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + @property + def xs_tally(self): + + if self._xs_tally is None: + scatter = self.tallies['scatter'] + + # Compute the multiplicity + self._xs_tally = self.rxn_rate_tally / scatter + super(MultiplicityMatrix, self)._compute_xs() + + return self._xs_tally + + def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): + """Build a sliced MultiplicityMatrix for the specified nuclides and + energy groups. + + This method constructs a new MGXS to encapsulate a subset of the data + represented by this MGXS. The subset of data to include in the tally + slice is determined by the nuclides and energy groups specified in + the input parameters. + + Parameters + ---------- + nuclides : list of str + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is []) + in_groups : list of int + A list of incoming energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) + out_groups : list of int + A list of outgoing energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) + + Returns + ------- + openmc.mgxs.MGXS + A new tally which encapsulates the subset of data requested for the + nuclide(s) and/or energy group(s) requested in the parameters. + + """ + + # Call super class method and null out derived tallies + slice_xs = super(MultiplicityMatrix, self).get_slice(nuclides, + in_groups) + slice_xs._rxn_rate_tally = None + slice_xs._xs_tally = None + + # Slice outgoing energy groups if needed + if len(out_groups) != 0: + filter_bins = [] + for group in out_groups: + group_bounds = self.energy_groups.get_group_bounds(group) + filter_bins.append(group_bounds) + filter_bins = [tuple(filter_bins)] + + # Slice each of the tallies across energyout groups + for tally_type, tally in slice_xs.tallies.items(): + if tally.contains_filter('energyout'): + tally_slice = tally.get_slice(filters=['energyout'], + filter_bins=filter_bins) + slice_xs.tallies[tally_type] = tally_slice + + slice_xs.sparse = self.sparse + return slice_xs + + def get_xs(self, in_groups='all', out_groups='all', + subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', + row_column='inout', value='mean', **kwargs): + r"""Returns an array of multi-group cross sections. + + This method constructs a 2D NumPy array for the requested multiplicity + matrix data data for one or more energy groups and subdomains. + + Parameters + ---------- + in_groups : Iterable of Integral or 'all' + Incoming energy groups of interest. Defaults to 'all'. + out_groups : Iterable of Integral or 'all' + Outgoing energy groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + row_column: {'inout', 'outin'} + Return the cross section indexed first by incoming group and + second by outgoing group ('inout'), or vice versa ('outin'). + Defaults to 'inout'. + value : str + A string for the type of value to return - 'mean', 'std_dev', or + 'rel_err' are accepted. Defaults to the empty string. + + Returns + ------- + ndarray + A NumPy array of the multi-group cross section indexed in the order + each group and subdomain is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(in_groups, basestring): + cv.check_iterable_type('groups', in_groups, Integral) + for group in in_groups: + filters.append('energy') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(out_groups, basestring): + cv.check_iterable_type('groups', out_groups, Integral) + for group in out_groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct a collection of the nuclides to retrieve from the xs tally + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides + else: + query_nuclides = ['total'] + + # Use tally summation if user requested the sum for all nuclides + if nuclides == 'sum' or nuclides == ['sum']: + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, + value=value) + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=query_nuclides, value=value) + + xs = np.nan_to_num(xs) + + # Divide by atom number densities for microscopic cross sections + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + if in_groups == 'all': + num_in_groups = self.num_groups + else: + num_in_groups = len(in_groups) + if out_groups == 'all': + num_out_groups = self.num_groups + else: + num_out_groups = len(out_groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = int(xs.shape[0] / + (num_in_groups * num_out_groups)) + new_shape = (num_subdomains, num_in_groups, num_out_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Transpose the matrix if requested by user + if row_column == 'outin': + xs = np.swapaxes(xs, 1, 2) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_2d(xs) + + return xs + + def print_xs(self, subdomains='all', nuclides='all', + xs_type='macro'): + """Prints a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will report + the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + if nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + string += '{0: <16}\n'.format('\tEnergy Groups:') + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += \ + '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if xs_type != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + if xs_type == 'macro': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') + else: + string += '{0: <16}\n'.format('\tCross Sections [barns]:') + + template = '{0: <12}Group {1} -> Group {2}:\t\t' + + # Loop over incoming/outgoing energy groups ranges + for in_group in range(1, self.num_groups+1): + for out_group in range(1, self.num_groups+1): + string += template.format('', in_group, out_group) + average = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + string += '\n' + + print(string) + + class NuFissionMatrixXS(MGXS): """A fission production matrix multi-group cross section. @@ -3366,13 +3794,9 @@ class NuFissionMatrixXS(MGXS): row_column='inout', value='mean', **kwargs): r"""Returns an array of multi-group cross sections. - This method constructs a 2D NumPy array for the requested scattering + This method constructs a 2D NumPy array for the requested nu-fission matrix data data for one or more energy groups and subdomains. - 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. - Parameters ---------- in_groups : Iterable of Integral or 'all' @@ -3491,7 +3915,7 @@ class NuFissionMatrixXS(MGXS): new_shape += xs.shape[1:] xs = np.reshape(xs, new_shape) - # Transpose the scattering matrix if requested by user + # Transpose the matrix if requested by user if row_column == 'outin': xs = np.swapaxes(xs, 1, 2) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 7559b427a..f3d8b28fc 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -903,9 +903,10 @@ class XSdata(object): msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - def set_multiplicity_mgxs(self, nuscatter, scatter, nuclide='total', + def set_multiplicity_mgxs(self, nuscatter, scatter=None, nuclide='total', xs_type='macro'): - """This method allows for an openmc.mgxs.NuScatterMatrixXS and + """This method allows for either the direct use of only an + openmc.mgxs.MultiplicityMatrix OR an openmc.mgxs.NuScatterMatrixXS and openmc.mgxs.ScatterMatrixXS to be used to set the scattering multiplicity for this XSdata object. Multiplicity, in OpenMC parlance, is a factor used to account for the production @@ -915,9 +916,10 @@ class XSdata(object): Parameters ---------- - nuscatter: openmc.mgxs.NuScatterMatrixXS - MGXS Object containing the nu-scattering matrix cross section - for the domain of interest. + nuscatter: {openmc.mgxs.NuScatterMatrixXS, + openmc.mgxs.MultiplicityMatrix} + MGXS Object containing the matrix cross section for the domain + of interest. scatter: openmc.mgxs.ScatterMatrixXS MGXS Object containing the scattering matrix cross section for the domain of interest. @@ -935,23 +937,33 @@ class XSdata(object): """ - check_type('nuscatter', nuscatter, openmc.mgxs.NuScatterMatrixXS) - check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) + check_type('nuscatter', nuscatter, (openmc.mgxs.NuScatterMatrixXS, + openmc.mgxs.MultiplicityMatrix)) check_value('energy_groups', nuscatter.energy_groups, [self.energy_groups]) - check_value('energy_groups', scatter.energy_groups, - [self.energy_groups]) check_value('domain_type', nuscatter.domain_type, ['universe', 'cell', 'material']) - check_value('domain_type', scatter.domain_type, - ['universe', 'cell', 'material']) + if scatter is not None: + check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) + if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrix): + msg = 'Either an MultiplicityMatrix object must be passed ' \ + 'for "nuscatter" or the "scatter" argument must be ' \ + 'provided.' + raise ValueError(msg) + check_value('energy_groups', scatter.energy_groups, + [self.energy_groups]) + check_value('domain_type', scatter.domain_type, + ['universe', 'cell', 'material']) if self.representation is 'isotropic': nuscatt = nuscatter.get_xs(nuclides=nuclide, xs_type=xs_type, moment=0) - scatt = scatter.get_xs(nuclides=nuclide, - xs_type=xs_type, moment=0) - self._multiplicity = np.divide(nuscatt, scatt) + if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrix): + self._multiplicity = nuscatt + else: + scatt = scatter.get_xs(nuclides=nuclide, + xs_type=xs_type, moment=0) + self._multiplicity = np.divide(nuscatt, scatt) elif self.representation is 'angle': msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) From 002b1e360a45e2fa2b194365f813df61dd540b32 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 22 May 2016 20:22:04 -0400 Subject: [PATCH 213/259] Replaced most code within MultiplicityMatrix and NuFissionMatrix with a base abstract type, MatrixMGXS --- openmc/mgxs/mgxs.py | 1041 +++++++++++++++++-------------------------- 1 file changed, 412 insertions(+), 629 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c3fd3a1b0..b88e583ae 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -47,8 +47,8 @@ DOMAIN_TYPES = ['cell', # Supported domain classes # TODO: Implement Mesh domains _DOMAINS = [openmc.Cell, - openmc.Universe, - openmc.Material] + openmc.Universe, + openmc.Material] class MGXS(object): @@ -1530,6 +1530,409 @@ class MGXS(object): return df +class MatrixMGXS(MGXS): + """An abstract multi-group cross section for some energy group structure + within some spatial domain. This class is specifically intended for + cross sections which depend on both the incoming and outgoing energy groups + and are therefore represented by matrices. Examples of this include the + scattering and nu-fission matrices. + + 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 deterministic neutronics calculations. + + NOTE: Users should instantiate the subclasses of this abstract class. + + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_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. + + 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 + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + 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 : {'tracklength', '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 + 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. When the 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., 'U-238', 'O-16'). 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 + + """ + + # This is an abstract class which cannot be instantiated + __metaclass__ = abc.ABCMeta + + @property + def filters(self): + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy = openmc.Filter('energy', group_edges) + energyout = openmc.Filter('energyout', group_edges) + + filters = [[energy], [energy, energyout]] + + return filters + + @property + def estimator(self): + return 'analog' + + def get_xs(self, in_groups='all', out_groups='all', + subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', + row_column='inout', value='mean', **kwargs): + r"""Returns an array of multi-group cross sections. + + This method constructs a 2D NumPy array for the requested multiplicity + matrix data data for one or more energy groups and subdomains. + + Parameters + ---------- + in_groups : Iterable of Integral or 'all' + Incoming energy groups of interest. Defaults to 'all'. + out_groups : Iterable of Integral or 'all' + Outgoing energy groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + row_column: {'inout', 'outin'} + Return the cross section indexed first by incoming group and + second by outgoing group ('inout'), or vice versa ('outin'). + Defaults to 'inout'. + value : str + A string for the type of value to return - 'mean', 'std_dev', or + 'rel_err' are accepted. Defaults to the empty string. + + Returns + ------- + ndarray + A NumPy array of the multi-group cross section indexed in the order + each group and subdomain is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(in_groups, basestring): + cv.check_iterable_type('groups', in_groups, Integral) + for group in in_groups: + filters.append('energy') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(out_groups, basestring): + cv.check_iterable_type('groups', out_groups, Integral) + for group in out_groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct a collection of the nuclides to retrieve from the xs tally + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides + else: + query_nuclides = ['total'] + + # Use tally summation if user requested the sum for all nuclides + if nuclides == 'sum' or nuclides == ['sum']: + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, + value=value) + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=query_nuclides, value=value) + + xs = np.nan_to_num(xs) + + # Divide by atom number densities for microscopic cross sections + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + if in_groups == 'all': + num_in_groups = self.num_groups + else: + num_in_groups = len(in_groups) + if out_groups == 'all': + num_out_groups = self.num_groups + else: + num_out_groups = len(out_groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = int(xs.shape[0] / + (num_in_groups * num_out_groups)) + new_shape = (num_subdomains, num_in_groups, num_out_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Transpose the matrix if requested by user + if row_column == 'outin': + xs = np.swapaxes(xs, 1, 2) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, ::-1, :] + + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_2d(xs) + + return xs + + def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): + """Build a sliced NuFissionMatrix for the specified nuclides and + energy groups. + + This method constructs a new MGXS to encapsulate a subset of the data + represented by this MGXS. The subset of data to include in the tally + slice is determined by the nuclides and energy groups specified in + the input parameters. + + Parameters + ---------- + nuclides : list of str + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is []) + in_groups : list of int + A list of incoming energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) + out_groups : list of int + A list of outgoing energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) + + Returns + ------- + openmc.mgxs.MGXS + A new tally which encapsulates the subset of data requested for the + nuclide(s) and/or energy group(s) requested in the parameters. + + """ + + # Call super class method and null out derived tallies + slice_xs = super(NuFissionMatrixXS, self).get_slice(nuclides, + in_groups) + slice_xs._rxn_rate_tally = None + slice_xs._xs_tally = None + + # Slice outgoing energy groups if needed + if len(out_groups) != 0: + filter_bins = [] + for group in out_groups: + group_bounds = self.energy_groups.get_group_bounds(group) + filter_bins.append(group_bounds) + filter_bins = [tuple(filter_bins)] + + # Slice each of the tallies across energyout groups + for tally_type, tally in slice_xs.tallies.items(): + if tally.contains_filter('energyout'): + tally_slice = tally.get_slice(filters=['energyout'], + filter_bins=filter_bins) + slice_xs.tallies[tally_type] = tally_slice + + slice_xs.sparse = self.sparse + return slice_xs + + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): + """Prints a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report. + Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' will report the cross sections for all + nuclides in the spatial domain. The special string 'sum' will report + the cross sections summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + + """ + + # Construct a collection of the subdomains to report + if not isinstance(subdomains, basestring): + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + if nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.tallies is None: + print(string) + return + + string += '{0: <16}\n'.format('\tEnergy Groups:') + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += \ + '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if xs_type != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + if xs_type == 'macro': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') + else: + string += '{0: <16}\n'.format('\tCross Sections [barns]:') + + template = '{0: <12}Group {1} -> Group {2}:\t\t' + + # Loop over incoming/outgoing energy groups ranges + for in_group in range(1, self.num_groups+1): + for out_group in range(1, self.num_groups+1): + string += template.format('', in_group, out_group) + average = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + string += '\n' + + print(string) + + class TotalXS(MGXS): """A total multi-group cross section. @@ -3191,7 +3594,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): self._hdf5_key = 'nu-scatter matrix' -class MultiplicityMatrix(MGXS): +class MultiplicityMatrix(MatrixMGXS): """The scattering multiplicity matrix. This class can be used for both OpenMC input generation and tally data @@ -3280,23 +3683,19 @@ class MultiplicityMatrix(MGXS): @property def scores(self): - return ['nu-scatter', 'scatter'] + scores = ['nu-scatter', 'scatter'] + return scores @property def filters(self): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges + energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - energyin = openmc.Filter('energy', group_edges) - return [[energyin, energyout], [energyin, energyout]] - @property - def tally_keys(self): - return ['nu-scatter', 'scatter'] + filters = [[energy, energyout], [energy, energyout]] - @property - def estimator(self): - return 'analog' + return filters @property def rxn_rate_tally(self): @@ -3317,306 +3716,8 @@ class MultiplicityMatrix(MGXS): return self._xs_tally - def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): - """Build a sliced MultiplicityMatrix for the specified nuclides and - energy groups. - This method constructs a new MGXS to encapsulate a subset of the data - represented by this MGXS. The subset of data to include in the tally - slice is determined by the nuclides and energy groups specified in - the input parameters. - - Parameters - ---------- - nuclides : list of str - A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is []) - in_groups : list of int - A list of incoming energy group indices starting at 1 for the high - energies (e.g., [1, 2, 3]; default is []) - out_groups : list of int - A list of outgoing energy group indices starting at 1 for the high - energies (e.g., [1, 2, 3]; default is []) - - Returns - ------- - openmc.mgxs.MGXS - A new tally which encapsulates the subset of data requested for the - nuclide(s) and/or energy group(s) requested in the parameters. - - """ - - # Call super class method and null out derived tallies - slice_xs = super(MultiplicityMatrix, self).get_slice(nuclides, - in_groups) - slice_xs._rxn_rate_tally = None - slice_xs._xs_tally = None - - # Slice outgoing energy groups if needed - if len(out_groups) != 0: - filter_bins = [] - for group in out_groups: - group_bounds = self.energy_groups.get_group_bounds(group) - filter_bins.append(group_bounds) - filter_bins = [tuple(filter_bins)] - - # Slice each of the tallies across energyout groups - for tally_type, tally in slice_xs.tallies.items(): - if tally.contains_filter('energyout'): - tally_slice = tally.get_slice(filters=['energyout'], - filter_bins=filter_bins) - slice_xs.tallies[tally_type] = tally_slice - - slice_xs.sparse = self.sparse - return slice_xs - - def get_xs(self, in_groups='all', out_groups='all', - subdomains='all', nuclides='all', - xs_type='macro', order_groups='increasing', - row_column='inout', value='mean', **kwargs): - r"""Returns an array of multi-group cross sections. - - This method constructs a 2D NumPy array for the requested multiplicity - matrix data data for one or more energy groups and subdomains. - - Parameters - ---------- - in_groups : Iterable of Integral or 'all' - Incoming energy groups of interest. Defaults to 'all'. - out_groups : Iterable of Integral or 'all' - Outgoing energy groups of interest. Defaults to 'all'. - subdomains : Iterable of Integral or 'all' - Subdomain IDs of interest. Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The - special string 'all' will return the cross sections for all nuclides - in the spatial domain. The special string 'sum' will return the - cross section summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. - order_groups: {'increasing', 'decreasing'} - Return the cross section indexed according to increasing or - decreasing energy groups (decreasing or increasing energies). - Defaults to 'increasing'. - row_column: {'inout', 'outin'} - Return the cross section indexed first by incoming group and - second by outgoing group ('inout'), or vice versa ('outin'). - Defaults to 'inout'. - value : str - A string for the type of value to return - 'mean', 'std_dev', or - 'rel_err' are accepted. Defaults to the empty string. - - Returns - ------- - ndarray - A NumPy array of the multi-group cross section indexed in the order - each group and subdomain is listed in the parameters. - - Raises - ------ - ValueError - When this method is called before the multi-group cross section is - computed from tally data. - - """ - - cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - filters = [] - filter_bins = [] - - # Construct a collection of the domain filter bins - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) - for subdomain in subdomains: - filters.append(self.domain_type) - filter_bins.append((subdomain,)) - - # Construct list of energy group bounds tuples for all requested groups - if not isinstance(in_groups, basestring): - cv.check_iterable_type('groups', in_groups, Integral) - for group in in_groups: - filters.append('energy') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) - - # Construct list of energy group bounds tuples for all requested groups - if not isinstance(out_groups, basestring): - cv.check_iterable_type('groups', out_groups, Integral) - for group in out_groups: - filters.append('energyout') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) - - # Construct a collection of the nuclides to retrieve from the xs tally - if self.by_nuclide: - if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: - query_nuclides = self.get_all_nuclides() - else: - query_nuclides = nuclides - else: - query_nuclides = ['total'] - - # Use tally summation if user requested the sum for all nuclides - if nuclides == 'sum' or nuclides == ['sum']: - xs_tally = self.xs_tally.summation(nuclides=query_nuclides) - xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, - value=value) - else: - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, - nuclides=query_nuclides, value=value) - - xs = np.nan_to_num(xs) - - # Divide by atom number densities for microscopic cross sections - if xs_type == 'micro': - if self.by_nuclide: - densities = self.get_nuclide_densities(nuclides) - else: - densities = self.get_nuclide_densities('sum') - if value == 'mean' or value == 'std_dev': - xs /= densities[np.newaxis, :, np.newaxis] - - # Reverse data if user requested increasing energy groups since - # tally data is stored in order of increasing energies - if order_groups == 'increasing': - if in_groups == 'all': - num_in_groups = self.num_groups - else: - num_in_groups = len(in_groups) - if out_groups == 'all': - num_out_groups = self.num_groups - else: - num_out_groups = len(out_groups) - - # Reshape tally data array with separate axes for domain and energy - num_subdomains = int(xs.shape[0] / - (num_in_groups * num_out_groups)) - new_shape = (num_subdomains, num_in_groups, num_out_groups) - new_shape += xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Transpose the matrix if requested by user - if row_column == 'outin': - xs = np.swapaxes(xs, 1, 2) - - # Reverse energies to align with increasing energy groups - xs = xs[:, ::-1, ::-1, :] - - # Eliminate trivial dimensions - xs = np.squeeze(xs) - xs = np.atleast_2d(xs) - - return xs - - def print_xs(self, subdomains='all', nuclides='all', - xs_type='macro'): - """Prints a string representation for the multi-group cross section. - - Parameters - ---------- - subdomains : Iterable of Integral or 'all' - The subdomain IDs of the cross sections to include in the report. - Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). - The special string 'all' will report the cross sections for all - nuclides in the spatial domain. The special string 'sum' will report - the cross sections summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. - - """ - - # Construct a collection of the subdomains to report - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral) - elif self.domain_type == 'distribcell': - subdomains = np.arange(self.num_subdomains, dtype=np.int) - else: - subdomains = [self.domain.id] - - # Construct a collection of the nuclides to report - if self.by_nuclide: - if nuclides == 'all': - nuclides = self.get_all_nuclides() - if nuclides == 'sum': - nuclides = ['sum'] - else: - cv.check_iterable_type('nuclides', nuclides, basestring) - else: - nuclides = ['sum'] - - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - # Build header for string with type and domain info - string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) - - # If cross section data has not been computed, only print string header - if self.tallies is None: - print(string) - return - - string += '{0: <16}\n'.format('\tEnergy Groups:') - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' - - # Loop over energy groups ranges - for group in range(1, self.num_groups+1): - bounds = self.energy_groups.get_group_bounds(group) - string += template.format('', group, bounds[0], bounds[1]) - - # Loop over all subdomains - for subdomain in subdomains: - - if self.domain_type == 'distribcell': - string += \ - '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - - # Loop over all Nuclides - for nuclide in nuclides: - - # Build header for nuclide type - if xs_type != 'sum': - string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) - - # Build header for cross section type - if xs_type == 'macro': - string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') - else: - string += '{0: <16}\n'.format('\tCross Sections [barns]:') - - template = '{0: <12}Group {1} -> Group {2}:\t\t' - - # Loop over incoming/outgoing energy groups ranges - for in_group in range(1, self.num_groups+1): - for out_group in range(1, self.num_groups+1): - string += template.format('', in_group, out_group) - average = \ - self.get_xs([in_group], [out_group], - [subdomain], [nuclide], - xs_type=xs_type, value='mean') - rel_err = \ - self.get_xs([in_group], [out_group], - [subdomain], [nuclide], - xs_type=xs_type, value='rel_err') - average = average.flatten()[0] - rel_err = rel_err.flatten()[0] * 100. - string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) - string += '\n' - string += '\n' - string += '\n' - string += '\n' - - print(string) - - -class NuFissionMatrixXS(MGXS): +class NuFissionMatrixXS(MatrixMGXS): """A fission production matrix multi-group cross section. This class can be used for both OpenMC input generation and tally data @@ -3702,32 +3803,12 @@ class NuFissionMatrixXS(MGXS): super(NuFissionMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'nu-fission matrix' - self._hdf5_key = 'nu-fission matrix' - - def __deepcopy__(self, memo): - clone = super(NuFissionMatrixXS, self).__deepcopy__(memo) - return clone @property def scores(self): scores = ['flux', 'nu-fission'] - return scores - @property - def filters(self): - group_edges = self.energy_groups.group_edges - energy = openmc.Filter('energy', group_edges) - energyout = openmc.Filter('energyout', group_edges) - - filters = [[energy], [energy, energyout]] - - return filters - - @property - def estimator(self): - return 'analog' - @property def rxn_rate_tally(self): if self._rxn_rate_tally is None: @@ -3735,304 +3816,6 @@ class NuFissionMatrixXS(MGXS): self._rxn_rate_tally.sparse = self.sparse return self._rxn_rate_tally - def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): - """Build a sliced NuFissionMatrix for the specified nuclides and - energy groups. - - This method constructs a new MGXS to encapsulate a subset of the data - represented by this MGXS. The subset of data to include in the tally - slice is determined by the nuclides and energy groups specified in - the input parameters. - - Parameters - ---------- - nuclides : list of str - A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is []) - in_groups : list of int - A list of incoming energy group indices starting at 1 for the high - energies (e.g., [1, 2, 3]; default is []) - out_groups : list of int - A list of outgoing energy group indices starting at 1 for the high - energies (e.g., [1, 2, 3]; default is []) - - Returns - ------- - openmc.mgxs.MGXS - A new tally which encapsulates the subset of data requested for the - nuclide(s) and/or energy group(s) requested in the parameters. - - """ - - # Call super class method and null out derived tallies - slice_xs = super(NuFissionMatrixXS, self).get_slice(nuclides, - in_groups) - slice_xs._rxn_rate_tally = None - slice_xs._xs_tally = None - - # Slice outgoing energy groups if needed - if len(out_groups) != 0: - filter_bins = [] - for group in out_groups: - group_bounds = self.energy_groups.get_group_bounds(group) - filter_bins.append(group_bounds) - filter_bins = [tuple(filter_bins)] - - # Slice each of the tallies across energyout groups - for tally_type, tally in slice_xs.tallies.items(): - if tally.contains_filter('energyout'): - tally_slice = tally.get_slice(filters=['energyout'], - filter_bins=filter_bins) - slice_xs.tallies[tally_type] = tally_slice - - slice_xs.sparse = self.sparse - return slice_xs - - def get_xs(self, in_groups='all', out_groups='all', - subdomains='all', nuclides='all', - xs_type='macro', order_groups='increasing', - row_column='inout', value='mean', **kwargs): - r"""Returns an array of multi-group cross sections. - - This method constructs a 2D NumPy array for the requested nu-fission - matrix data data for one or more energy groups and subdomains. - - Parameters - ---------- - in_groups : Iterable of Integral or 'all' - Incoming energy groups of interest. Defaults to 'all'. - out_groups : Iterable of Integral or 'all' - Outgoing energy groups of interest. Defaults to 'all'. - subdomains : Iterable of Integral or 'all' - Subdomain IDs of interest. Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U-235', 'U-238']). The - special string 'all' will return the cross sections for all nuclides - in the spatial domain. The special string 'sum' will return the - cross section summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. - order_groups: {'increasing', 'decreasing'} - Return the cross section indexed according to increasing or - decreasing energy groups (decreasing or increasing energies). - Defaults to 'increasing'. - row_column: {'inout', 'outin'} - Return the cross section indexed first by incoming group and - second by outgoing group ('inout'), or vice versa ('outin'). - Defaults to 'inout'. - value : str - A string for the type of value to return - 'mean', 'std_dev', or - 'rel_err' are accepted. Defaults to the empty string. - - Returns - ------- - ndarray - A NumPy array of the multi-group cross section indexed in the order - each group and subdomain is listed in the parameters. - - Raises - ------ - ValueError - When this method is called before the multi-group cross section is - computed from tally data. - - """ - - cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - filters = [] - filter_bins = [] - - # Construct a collection of the domain filter bins - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) - for subdomain in subdomains: - filters.append(self.domain_type) - filter_bins.append((subdomain,)) - - # Construct list of energy group bounds tuples for all requested groups - if not isinstance(in_groups, basestring): - cv.check_iterable_type('groups', in_groups, Integral) - for group in in_groups: - filters.append('energy') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) - - # Construct list of energy group bounds tuples for all requested groups - if not isinstance(out_groups, basestring): - cv.check_iterable_type('groups', out_groups, Integral) - for group in out_groups: - filters.append('energyout') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) - - # Construct a collection of the nuclides to retrieve from the xs tally - if self.by_nuclide: - if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: - query_nuclides = self.get_all_nuclides() - else: - query_nuclides = nuclides - else: - query_nuclides = ['total'] - - # Use tally summation if user requested the sum for all nuclides - if nuclides == 'sum' or nuclides == ['sum']: - xs_tally = self.xs_tally.summation(nuclides=query_nuclides) - xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, - value=value) - else: - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, - nuclides=query_nuclides, value=value) - - xs = np.nan_to_num(xs) - - # Divide by atom number densities for microscopic cross sections - if xs_type == 'micro': - if self.by_nuclide: - densities = self.get_nuclide_densities(nuclides) - else: - densities = self.get_nuclide_densities('sum') - if value == 'mean' or value == 'std_dev': - xs /= densities[np.newaxis, :, np.newaxis] - - # Reverse data if user requested increasing energy groups since - # tally data is stored in order of increasing energies - if order_groups == 'increasing': - if in_groups == 'all': - num_in_groups = self.num_groups - else: - num_in_groups = len(in_groups) - if out_groups == 'all': - num_out_groups = self.num_groups - else: - num_out_groups = len(out_groups) - - # Reshape tally data array with separate axes for domain and energy - num_subdomains = int(xs.shape[0] / - (num_in_groups * num_out_groups)) - new_shape = (num_subdomains, num_in_groups, num_out_groups) - new_shape += xs.shape[1:] - xs = np.reshape(xs, new_shape) - - # Transpose the matrix if requested by user - if row_column == 'outin': - xs = np.swapaxes(xs, 1, 2) - - # Reverse energies to align with increasing energy groups - xs = xs[:, ::-1, ::-1, :] - - # Eliminate trivial dimensions - xs = np.squeeze(xs) - xs = np.atleast_2d(xs) - - return xs - - def print_xs(self, subdomains='all', nuclides='all', - xs_type='macro'): - """Prints a string representation for the multi-group cross section. - - Parameters - ---------- - subdomains : Iterable of Integral or 'all' - The subdomain IDs of the cross sections to include in the report. - Defaults to 'all'. - nuclides : Iterable of str or 'all' or 'sum' - The nuclides of the cross-sections to include in the report. This - may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). - The special string 'all' will report the cross sections for all - nuclides in the spatial domain. The special string 'sum' will report - the cross sections summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. - - """ - - # Construct a collection of the subdomains to report - if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral) - elif self.domain_type == 'distribcell': - subdomains = np.arange(self.num_subdomains, dtype=np.int) - else: - subdomains = [self.domain.id] - - # Construct a collection of the nuclides to report - if self.by_nuclide: - if nuclides == 'all': - nuclides = self.get_all_nuclides() - if nuclides == 'sum': - nuclides = ['sum'] - else: - cv.check_iterable_type('nuclides', nuclides, basestring) - else: - nuclides = ['sum'] - - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - # Build header for string with type and domain info - string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) - string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) - - # If cross section data has not been computed, only print string header - if self.tallies is None: - print(string) - return - - string += '{0: <16}\n'.format('\tEnergy Groups:') - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' - - # Loop over energy groups ranges - for group in range(1, self.num_groups+1): - bounds = self.energy_groups.get_group_bounds(group) - string += template.format('', group, bounds[0], bounds[1]) - - # Loop over all subdomains - for subdomain in subdomains: - - if self.domain_type == 'distribcell': - string += \ - '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - - # Loop over all Nuclides - for nuclide in nuclides: - - # Build header for nuclide type - if xs_type != 'sum': - string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) - - # Build header for cross section type - if xs_type == 'macro': - string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') - else: - string += '{0: <16}\n'.format('\tCross Sections [barns]:') - - template = '{0: <12}Group {1} -> Group {2}:\t\t' - - # Loop over incoming/outgoing energy groups ranges - for in_group in range(1, self.num_groups+1): - for out_group in range(1, self.num_groups+1): - string += template.format('', in_group, out_group) - average = \ - self.get_xs([in_group], [out_group], - [subdomain], [nuclide], - xs_type=xs_type, value='mean') - rel_err = \ - self.get_xs([in_group], [out_group], - [subdomain], [nuclide], - xs_type=xs_type, value='rel_err') - average = average.flatten()[0] - rel_err = rel_err.flatten()[0] * 100. - string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) - string += '\n' - string += '\n' - string += '\n' - string += '\n' - - print(string) - class Chi(MGXS): """The fission spectrum. From 29f62126117cc29c50477bde1e23e169e7795051 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 22 May 2016 20:36:50 -0400 Subject: [PATCH 214/259] Made ScatterMatrixXS (and by extension, NuScatterMatrixXS) point to MatrixMGXS now --- openmc/mgxs/mgxs.py | 46 ++++++++++++++++++++++-------------------- openmc/mgxs_library.py | 12 +++++------ 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b88e583ae..6ab726f89 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -480,7 +480,7 @@ class MGXS(object): elif mgxs_type == 'nu-scatter matrix': mgxs = NuScatterMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'multiplicity matrix': - mgxs = MultiplicityMatrix(domain, domain_type, energy_groups) + mgxs = MultiplicityMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'nu-fission matrix': mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups) elif mgxs_type == 'chi': @@ -1654,9 +1654,10 @@ class MatrixMGXS(MGXS): Subdomain IDs of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' A list of nuclide name strings (e.g., ['U-235', 'U-238']). The - special string 'all' will return the cross sections for all nuclides - in the spatial domain. The special string 'sum' will return the - cross section summed over all nuclides. Defaults to 'all'. + special string 'all' will return the cross sections for all + nuclides in the spatial domain. The special string 'sum' will + return the cross section summed over all nuclides. Defaults to + 'all'. xs_type: {'macro', 'micro'} Return the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. @@ -1694,7 +1695,8 @@ class MatrixMGXS(MGXS): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) + cv.check_iterable_type('subdomains', subdomains, Integral, + max_depth=2) for subdomain in subdomains: filters.append(self.domain_type) filter_bins.append((subdomain,)) @@ -1704,14 +1706,16 @@ class MatrixMGXS(MGXS): cv.check_iterable_type('groups', in_groups, Integral) for group in in_groups: filters.append('energy') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) + filter_bins.append(( + self.energy_groups.get_group_bounds(group),)) # Construct list of energy group bounds tuples for all requested groups if not isinstance(out_groups, basestring): cv.check_iterable_type('groups', out_groups, Integral) for group in out_groups: filters.append('energyout') - filter_bins.append((self.energy_groups.get_group_bounds(group),)) + filter_bins.append(( + self.energy_groups.get_group_bounds(group),)) # Construct a collection of the nuclides to retrieve from the xs tally if self.by_nuclide: @@ -1840,8 +1844,9 @@ class MatrixMGXS(MGXS): The nuclides of the cross-sections to include in the report. This may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). The special string 'all' will report the cross sections for all - nuclides in the spatial domain. The special string 'sum' will report - the cross sections summed over all nuclides. Defaults to 'all'. + nuclides in the spatial domain. The special string 'sum' will + report the cross sections summed over all nuclides. Defaults to + 'all'. xs_type: {'macro', 'micro'} Return the macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. @@ -1884,7 +1889,7 @@ class MatrixMGXS(MGXS): template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' # Loop over energy groups ranges - for group in range(1, self.num_groups+1): + for group in range(1, self.num_groups + 1): bounds = self.energy_groups.get_group_bounds(group) string += template.format('', group, bounds[0], bounds[1]) @@ -1911,8 +1916,8 @@ class MatrixMGXS(MGXS): template = '{0: <12}Group {1} -> Group {2}:\t\t' # Loop over incoming/outgoing energy groups ranges - for in_group in range(1, self.num_groups+1): - for out_group in range(1, self.num_groups+1): + for in_group in range(1, self.num_groups + 1): + for out_group in range(1, self.num_groups + 1): string += template.format('', in_group, out_group) average = \ self.get_xs([in_group], [out_group], @@ -1924,7 +1929,8 @@ class MatrixMGXS(MGXS): xs_type=xs_type, value='rel_err') average = average.flatten()[0] rel_err = rel_err.flatten()[0] * 100. - string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '{:1.2e} +/- {:1.2e}%'.format(average, + rel_err) string += '\n' string += '\n' string += '\n' @@ -2864,7 +2870,7 @@ class NuScatterXS(MGXS): self._rxn_type = 'nu-scatter' -class ScatterMatrixXS(MGXS): +class ScatterMatrixXS(MatrixMGXS): """A scattering matrix multi-group cross section for one or more Legendre moments. @@ -2998,10 +3004,6 @@ class ScatterMatrixXS(MGXS): return filters - @property - def estimator(self): - return 'analog' - @property def rxn_rate_tally(self): @@ -3594,7 +3596,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): self._hdf5_key = 'nu-scatter matrix' -class MultiplicityMatrix(MatrixMGXS): +class MultiplicityMatrixXS(MatrixMGXS): """The scattering multiplicity matrix. This class can be used for both OpenMC input generation and tally data @@ -3677,8 +3679,8 @@ class MultiplicityMatrix(MatrixMGXS): def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(MultiplicityMatrix, self).__init__(domain, domain_type, groups, - by_nuclide, name) + super(MultiplicityMatrixXS, self).__init__(domain, domain_type, groups, + by_nuclide, name) self._rxn_type = 'multiplicity' @property @@ -3712,7 +3714,7 @@ class MultiplicityMatrix(MatrixMGXS): # Compute the multiplicity self._xs_tally = self.rxn_rate_tally / scatter - super(MultiplicityMatrix, self)._compute_xs() + super(MultiplicityMatrixXS, self)._compute_xs() return self._xs_tally diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index f3d8b28fc..f75d7e2e4 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -906,7 +906,7 @@ class XSdata(object): def set_multiplicity_mgxs(self, nuscatter, scatter=None, nuclide='total', xs_type='macro'): """This method allows for either the direct use of only an - openmc.mgxs.MultiplicityMatrix OR an openmc.mgxs.NuScatterMatrixXS and + openmc.mgxs.MultiplicityMatrixXS OR an openmc.mgxs.NuScatterMatrixXS and openmc.mgxs.ScatterMatrixXS to be used to set the scattering multiplicity for this XSdata object. Multiplicity, in OpenMC parlance, is a factor used to account for the production @@ -917,7 +917,7 @@ class XSdata(object): Parameters ---------- nuscatter: {openmc.mgxs.NuScatterMatrixXS, - openmc.mgxs.MultiplicityMatrix} + openmc.mgxs.MultiplicityMatrixXS} MGXS Object containing the matrix cross section for the domain of interest. scatter: openmc.mgxs.ScatterMatrixXS @@ -938,15 +938,15 @@ class XSdata(object): """ check_type('nuscatter', nuscatter, (openmc.mgxs.NuScatterMatrixXS, - openmc.mgxs.MultiplicityMatrix)) + openmc.mgxs.MultiplicityMatrixXS)) check_value('energy_groups', nuscatter.energy_groups, [self.energy_groups]) check_value('domain_type', nuscatter.domain_type, ['universe', 'cell', 'material']) if scatter is not None: check_type('scatter', scatter, openmc.mgxs.ScatterMatrixXS) - if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrix): - msg = 'Either an MultiplicityMatrix object must be passed ' \ + if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrixXS): + msg = 'Either an MultiplicityMatrixXS object must be passed ' \ 'for "nuscatter" or the "scatter" argument must be ' \ 'provided.' raise ValueError(msg) @@ -958,7 +958,7 @@ class XSdata(object): if self.representation is 'isotropic': nuscatt = nuscatter.get_xs(nuclides=nuclide, xs_type=xs_type, moment=0) - if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrix): + if isinstance(nuscatter, openmc.mgxs.MultiplicityMatrixXS): self._multiplicity = nuscatt else: scatt = scatter.get_xs(nuclides=nuclide, From 18fc97fc9abd5d6b7383f431ab93c8e01a647981 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 22 May 2016 21:31:33 -0400 Subject: [PATCH 215/259] Updating notebook to reflect changes thus far --- .../pythonapi/examples/mgxs-part-iv.ipynb | 139 +++++++++--------- openmc/mgxs/library.py | 4 +- 2 files changed, 72 insertions(+), 71 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index 4b73cf3ca..9c13d28ec 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This Notebook illustrates the use of the openmc.mgxs.Library class specifically for application in OpenMC's multi-group mode. This example notebook follows the same process as was done in MGXS Part III, but instead uses OpenMC as the multi-group solver. This Notebook illustrates the following features:\n", + "This Notebook illustrates the use of the openmc.mgxs.Library class specifically for application in OpenMC's multi-group mode. This example notebook follows the same process as was done in MGXS Part III, but instead uses OpenMC as the multi-group solver. During this process, this notebook will illustrate the following features:\n", "\n", " - Calculation of multi-group cross sections for a fuel assembly\n", " - Automated creation and storage of MGXS with openmc.mgxs.Library\n", @@ -334,7 +334,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 10 inactive batches and 40 active batches each with 2500 particles." + "With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 10 inactive batches and 40 active batches each with 5000 particles." ] }, { @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -499,8 +499,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now, we must specify to the Library which types of cross sections to compute. OpenMC's multi-group mode can accept isotropic flux-weighted cross sections or angle-dependent cross sections, as well as supporting anisotropic scattering represented by either Legendre polynomials, histogram, or tabular angular distributions. At this time the MGXS Library class only supports the generation of isotropic flux-weighted cross sections and P0 scattering, so that is what will be used for this example. Therefore, we will create the following multi-group cross sections needed to run an OpenMC simulation to verify the accuracy of our cross sections: \"transport\", \"absorption\", \"nu-fission\", '\"fission\", \"nu-scatter matrix\", \"scatter matrix\", and \"chi\".\n", - "\"scatter matrix\" is needed in addition to \"nu-scatter matrix\" because OpenMC's multi-group mode can treat scattering multiplication (i.e., (n,xn) reactions)) explicitly instead of adjusting the absorption cross section to maintain neutron balance, and using this explicit treatment would require tallying of both types of scattering matrices." + "Now, we must specify to the Library which types of cross sections to compute. OpenMC's multi-group mode can accept isotropic flux-weighted cross sections or angle-dependent cross sections, as well as supporting anisotropic scattering represented by either Legendre polynomials, histogram, or tabular angular distributions. At this time the MGXS Library class only supports the generation of isotropic flux-weighted cross sections and P0 scattering, so that is what will be used for this example. Therefore, we will create the following multi-group cross sections needed to run an OpenMC simulation to verify the accuracy of our cross sections: \"total\", \"absorption\", \"nu-fission\", '\"fission\", \"nu-scatter matrix\", \"multiplicity matrix\", and \"chi\".\n", + "\"multiplicity matrix\" is needed to provide OpenMC's multi-group mode with additional information needed to accurately treat scattering multiplication (i.e., (n,xn) reactions)) explicitly." ] }, { @@ -513,7 +513,7 @@ "source": [ "# Specify multi-group cross section types to compute\n", "mgxs_lib.mgxs_types = ['total', 'absorption', 'nu-fission', 'fission',\n", - " 'nu-scatter matrix', 'scatter matrix', 'chi']" + " 'nu-scatter matrix', 'multiplicity matrix', 'chi']" ] }, { @@ -565,7 +565,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we will set the scattering order that we wish to use. For this problem we will use P3 scattering." + "Now we will set the scattering order that we wish to use. For this problem we will use P3 scattering. A warning is expected telling us that the default behavior (a P0 correction on the scattering data) is over-ridden by our choice of using a Legendre expansion to treat anisotropic scattering." ] }, { @@ -681,24 +681,24 @@ "tally.scores = ['fission']\n", "\n", "# Add tally to collection\n", - "tallies_file.append(tally)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ + "tallies_file.append(tally, merge=True)\n", + "\n", "# Export all tallies to a \"tallies.xml\" file\n", "tallies_file.export_to_xml()" ] }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Time to run the calculation and get our results!" + ] + }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -723,8 +723,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 058ba68895a2f880402fda3d58cfb14b162931d9\n", - " Date/Time: 2016-05-17 21:14:05\n", + " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", + " Date/Time: 2016-05-22 21:29:21\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -811,20 +811,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4530E+00 seconds\n", - " Reading cross sections = 1.1470E+00 seconds\n", - " Total time in simulation = 1.8747E+01 seconds\n", - " Time in transport only = 1.8639E+01 seconds\n", - " Time in inactive batches = 2.1690E+00 seconds\n", - " Time in active batches = 1.6578E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for initialization = 1.4810E+00 seconds\n", + " Reading cross sections = 1.1840E+00 seconds\n", + " Total time in simulation = 1.9619E+01 seconds\n", + " Time in transport only = 1.9512E+01 seconds\n", + " Time in inactive batches = 2.1770E+00 seconds\n", + " Time in active batches = 1.7442E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 6.0000E-03 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.0209E+01 seconds\n", - " Calculation Rate (inactive) = 23052.1 neutrons/second\n", - " Calculation Rate (active) = 12064.2 neutrons/second\n", + " Total time elapsed = 2.1110E+01 seconds\n", + " Calculation Rate (inactive) = 22967.4 neutrons/second\n", + " Calculation Rate (active) = 11466.6 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -842,7 +842,7 @@ "0" ] }, - "execution_count": 27, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -861,7 +861,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -886,7 +886,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -905,7 +905,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -924,7 +924,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -952,12 +952,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We will now use the `Library` to produce a multi-group cross section data set for use by the OpenMC multi-group solver. " + "We will now use the `Library` to produce a multi-group cross section data set for use by the OpenMC multi-group solver. \n", + "Note that since we have ran so few histories, is not unreasonable to expect some divisions by zero errors. This will show up as a runtime warning in the following step." ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -997,7 +998,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -1047,7 +1048,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "metadata": { "collapsed": true }, @@ -1072,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "metadata": { "collapsed": false, "scrolled": true @@ -1098,8 +1099,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 058ba68895a2f880402fda3d58cfb14b162931d9\n", - " Date/Time: 2016-05-17 21:14:26\n", + " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", + " Date/Time: 2016-05-22 21:29:43\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1183,20 +1184,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.6000E-02 seconds\n", - " Reading cross sections = 8.0000E-03 seconds\n", - " Total time in simulation = 1.4524E+01 seconds\n", - " Time in transport only = 1.4457E+01 seconds\n", - " Time in inactive batches = 1.3350E+00 seconds\n", - " Time in active batches = 1.3189E+01 seconds\n", - " Time synchronizing fission bank = 7.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 3.4000E-02 seconds\n", + " Reading cross sections = 3.0000E-03 seconds\n", + " Total time in simulation = 1.4720E+01 seconds\n", + " Time in transport only = 1.4678E+01 seconds\n", + " Time in inactive batches = 1.3020E+00 seconds\n", + " Time in active batches = 1.3418E+01 seconds\n", + " Time synchronizing fission bank = 6.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.4579E+01 seconds\n", - " Calculation Rate (inactive) = 37453.2 neutrons/second\n", - " Calculation Rate (active) = 15164.2 neutrons/second\n", + " Total time elapsed = 1.4763E+01 seconds\n", + " Calculation Rate (inactive) = 38402.5 neutrons/second\n", + " Calculation Rate (active) = 14905.4 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1214,7 +1215,7 @@ "0" ] }, - "execution_count": 35, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -1237,7 +1238,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -1257,7 +1258,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 36, "metadata": { "collapsed": true }, @@ -1275,7 +1276,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 37, "metadata": { "collapsed": false }, @@ -1302,7 +1303,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This shows a nontrivial pcm bias between the two methods. Some degree of mismatch is expected simply to the very few histories being used in these example problems. An additional mismatch is always inherent in the practical application of multi-group theory due to the high degree of approximations inherent in that method." + "This shows a small but nontrivial pcm bias between the two methods. Some degree of mismatch is expected simply to the very few histories being used in these example problems. An additional mismatch is always inherent in the practical application of multi-group theory due to the high degree of approximations inherent in that method." ] }, { @@ -1323,7 +1324,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -1349,7 +1350,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 39, "metadata": { "collapsed": false }, @@ -1375,7 +1376,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 40, "metadata": { "collapsed": false }, @@ -1383,10 +1384,10 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 41, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" }, @@ -1394,7 +1395,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 23d40a952..4fffe0080 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -872,8 +872,8 @@ class Library(object): nuclide=[nuclide]) # If multiplicity matrix is available, prefer that if 'multiplicity matrix' in self.mgxs_types: - mult_mgxs = self.get_mgxs(domain, 'multiplicity matrix') - xsdata.set_multiplicity_mgxs(mult_mgxs, xs_type=xs_type, + mymgxs = self.get_mgxs(domain, 'multiplicity matrix') + xsdata.set_multiplicity_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide]) using_multiplicity = True # multiplicity wil fall back to using scatter and nu-scatter From 9586ed3c0718ce5fbfdacc551966a4de9e64fb42 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 23 May 2016 11:51:23 -0500 Subject: [PATCH 216/259] Fix two hexagonal lattice bugs. 1) The center of the lattice was placed incorrectly when the number of axial positions was an even number. 2) The center of the lattice had no effect in the radial direction. --- src/geometry_header.F90 | 47 +++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/src/geometry_header.F90 b/src/geometry_header.F90 index 1adda3ea3..30f82f706 100644 --- a/src/geometry_header.F90 +++ b/src/geometry_header.F90 @@ -1,6 +1,6 @@ module geometry_header - use constants, only: HALF, TWO, THREE + use constants, only: HALF, TWO, THREE, INFINITY implicit none @@ -201,20 +201,22 @@ contains real(8), intent(in) :: global_xyz(3) integer :: i_xyz(3) - real(8) :: xyz(3) ! global_xyz alias + real(8) :: xyz(3) ! global xyz relative to the center real(8) :: alpha ! Skewed coord axis real(8) :: xyz_t(3) ! Local xyz - real(8) :: dists(4) ! Squared distances from cell centers + real(8) :: d, d_min ! Squared distance from cell centers integer :: i, j, k ! Iterators - integer :: loc(1) ! Minimum distance index + integer :: k_min ! Minimum distance index - xyz = global_xyz + xyz(1) = global_xyz(1) - this % center(1) + xyz(2) = global_xyz(2) - this % center(2) ! Index z direction. if (this % is_3d) then - i_xyz(3) = ceiling((xyz(3) - this % center(3))/this % pitch(2) + HALF)& - + this % n_axial/2 + xyz(3) = global_xyz(3) - this % center(3) + i_xyz(3) = ceiling(xyz(3)/this % pitch(2) + HALF*this % n_axial) else + xyz(3) = global_xyz(3) i_xyz(3) = 1 end if @@ -233,28 +235,33 @@ contains ! the four possible cells. Regular hexagonal tiles form a centroidal ! Voronoi tessellation so the global xyz should be in the hexagonal cell ! that it is closest to the center of. This method is used over a - ! method that uses the remainders of the floor divisions above becasue it + ! method that uses the remainders of the floor divisions above because it ! provides better finite precision performance. Squared distances are ! used becasue they are more computationally efficient than normal ! distances. k = 1 - do i=0,1 - do j=0,1 - xyz_t = this % get_local_xyz(xyz, i_xyz + (/j, i, 0/)) - dists(k) = xyz_t(1)**2 + xyz_t(2)**2 + d_min = INFINITY + do i = 0, 1 + do j = 0, 1 + xyz_t = this % get_local_xyz(global_xyz, i_xyz + [j, i, 0]) + d = xyz_t(1)**2 + xyz_t(2)**2 + if (d < d_min) then + d_min = d + k_min = k + end if k = k + 1 end do end do ! Select the minimum squared distance which corresponds to the cell the ! coordinates are in. - loc = minloc(dists) - if (loc(1) == 2) then - i_xyz = i_xyz + (/1, 0, 0/) - else if (loc(1) == 3) then - i_xyz = i_xyz + (/0, 1, 0/) - else if (loc(1) == 4) then - i_xyz = i_xyz + (/1, 1, 0/) + if (k_min == 2) then + i_xyz(1) = i_xyz(1) + 1 + else if (k_min == 3) then + i_xyz(2) = i_xyz(2) + 1 + else if (k_min == 4) then + i_xyz(1) = i_xyz(1) + 1 + i_xyz(2) = i_xyz(2) + 1 end if end function get_inds_hex @@ -303,7 +310,7 @@ contains (i_xyz(1) - this % n_rings) * this % pitch(1) / TWO) if (this % is_3d) then local_xyz(3) = xyz(3) - this % center(3) & - + (this % n_axial/2 - i_xyz(3) + 1) * this % pitch(2) + + (HALF*this % n_axial - i_xyz(3) + HALF) * this % pitch(2) else local_xyz(3) = xyz(3) end if From abd069a9c28fdf9ddeebfde9f795b21e44f2a86f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 23 May 2016 20:39:16 -0400 Subject: [PATCH 217/259] Minor comment changes to pyapi --- openmc/mgxs/library.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 4fffe0080..25427b2aa 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -942,6 +942,7 @@ class Library(object): See also -------- Library.dump_to_file() + Library.create_mg_mode() """ @@ -994,7 +995,10 @@ class Library(object): def create_mg_mode(self, xsdata_names=None, xs_ids=None): """Creates an openmc.MGXSLibrary object to contain the MGXS data for the Multi-Group mode of OpenMC as well as the associated openmc.Materials - and openmc.Geometry objects. This method only creates a macroscopic + and openmc.Geometry objects. The created Geometry is the same as that + used to generate the MGXS data, with the only differences being + modifications to point to newly-created Materials which point to the + multi-group data. This method only creates a macroscopic MGXS Library even if nuclidic tallies are specified in the Library. Parameters @@ -1112,8 +1116,9 @@ class Library(object): needed to support tallies the user may wish to request. - A nu-scatter matrix is required. + - Having a multiplicity matrix is preferred. - Having both nu-scatter (of any order) and scatter - (at least isotropic) matrices is preferred + (at least isotropic) matrices is the second choice. - If only nu-scatter, need total (not transport), to be used in adjusting absorption (i.e., reduced_abs = tot - nuscatt) From 7aac42686093b887defb9fac0570fe20c99717af Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 23 May 2016 20:42:34 -0400 Subject: [PATCH 218/259] And one more comment change to include multiplicity matrix in mgxs_type docstring def --- openmc/mgxs/library.py | 3 ++- openmc/mgxs/mgxs.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 25427b2aa..1ceaf455d 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -463,7 +463,8 @@ class Library(object): mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'nu-fission matrix', chi'} + 'nu-scatter matrix', 'multiplicity matrix', + 'nu-fission matrix', chi'} The type of multi-group cross section object to return Returns diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 6ab726f89..bd26156a4 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -430,7 +430,8 @@ class MGXS(object): mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'nu-fission matrix', 'chi'} + 'nu-scatter matrix', 'multiplicity matrix', + 'nu-fission matrix', chi'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization From 18447b7f00d12719f81907aa830cb75b9e38f9b4 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 23 May 2016 21:31:23 -0400 Subject: [PATCH 219/259] updating for 2 comments per @wbinventory --- openmc/mgxs/library.py | 6 +----- openmc/mgxs/mgxs.py | 9 ++------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 1ceaf455d..4c2497173 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -460,11 +460,7 @@ class Library(object): ---------- domain : Material or Cell or Universe or Integral The material, cell, or universe object of interest (or its ID) - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', - 'capture', 'fission', 'nu-fission', 'kappa-fission', - 'scatter', 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'multiplicity matrix', - 'nu-fission matrix', chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi'} The type of multi-group cross section object to return Returns diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index bd26156a4..76da3a587 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -427,11 +427,7 @@ class MGXS(object): Parameters ---------- - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', - 'capture', 'fission', 'nu-fission', 'kappa-fission', - 'scatter', 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'multiplicity matrix', - 'nu-fission matrix', chi'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', chi'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization @@ -1810,8 +1806,7 @@ class MatrixMGXS(MGXS): """ # Call super class method and null out derived tallies - slice_xs = super(NuFissionMatrixXS, self).get_slice(nuclides, - in_groups) + slice_xs = super(MatrixMGXS, self).get_slice(nuclides, in_groups) slice_xs._rxn_rate_tally = None slice_xs._xs_tally = None From 48ac499d8a96ccc2ceadc72675e0b8a0b7df3d61 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 24 May 2016 16:24:26 -0500 Subject: [PATCH 220/259] Respond to @smharper suggestions on #647 --- docs/source/usersguide/input.rst | 8 +++-- openmc/surface.py | 53 +++++++++++++++++--------------- src/geometry.F90 | 12 +++++--- 3 files changed, 43 insertions(+), 30 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index ea51723b7..e9ce42fd9 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -897,8 +897,12 @@ Each ```` element can have the following attributes or sub-elements: *Default*: None :boundary: - The boundary condition for the surface. This can be "transmission", - "vacuum", "reflective", or "periodic". + The boundary condition for the surface. This can be "transmission", + "vacuum", "reflective", or "periodic". Periodic boundary conditions can + only be applied to x-, y-, and z-planes. Only axis-aligned periodicity is + supported, i.e., x-planes an only be paired with x-planes. Specify which + planes are periodic and the code will automatically identify which planes + are paired together. *Default*: "transmission" diff --git a/openmc/surface.py b/openmc/surface.py index 37e7c2ffd..239b868aa 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -37,7 +37,9 @@ class Surface(object): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles - freely pass through the surface. + freely pass through the surface. Note that periodic boundary conditions + can only be applied to x-, y-, and z-planes, and only axis-aligned + periodicity is supported. name : str, optional Name of the surface. If not specified, the name will be the empty string. @@ -192,7 +194,7 @@ class Plane(Surface): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -217,7 +219,7 @@ class Plane(Surface): The 'C' parameter for the plane d : float The 'D' parameter for the plane - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -290,7 +292,8 @@ class XPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles - freely pass through the surface. + freely pass through the surface. Only axis-aligned periodicity is + supported, i.e., x-planes can only be paired with x-planes. x0 : float, optional Location of the plane. Defaults to 0. name : str, optional @@ -374,7 +377,8 @@ class YPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles - freely pass through the surface. + freely pass through the surface. Only axis-aligned periodicity is + supported, i.e., x-planes can only be paired with x-planes. y0 : float, optional Location of the plane name : str, optional @@ -459,7 +463,8 @@ class ZPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles - freely pass through the surface. + freely pass through the surface. Only axis-aligned periodicity is + supported, i.e., x-planes can only be paired with x-planes. z0 : float, optional Location of the plane. Defaults to 0. name : str, optional @@ -541,7 +546,7 @@ class Cylinder(Surface): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -555,7 +560,7 @@ class Cylinder(Surface): ---------- r : float Radius of the cylinder - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -597,7 +602,7 @@ class XCylinder(Cylinder): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -617,7 +622,7 @@ class XCylinder(Cylinder): y-coordinate of the center of the cylinder z0 : float z-coordinate of the center of the cylinder - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -700,7 +705,7 @@ class YCylinder(Cylinder): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -720,7 +725,7 @@ class YCylinder(Cylinder): x-coordinate of the center of the cylinder z0 : float z-coordinate of the center of the cylinder - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -803,7 +808,7 @@ class ZCylinder(Cylinder): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -823,7 +828,7 @@ class ZCylinder(Cylinder): x-coordinate of the center of the cylinder y0 : float y-coordinate of the center of the cylinder - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -905,7 +910,7 @@ class Sphere(Surface): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -930,7 +935,7 @@ class Sphere(Surface): z-coordinate of the center of the sphere R : float Radius of the sphere - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -1033,7 +1038,7 @@ class Cone(Surface): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -1058,7 +1063,7 @@ class Cone(Surface): z-coordinate of the apex R2 : float Parameter related to the aperature - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -1130,7 +1135,7 @@ class XCone(Cone): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -1155,7 +1160,7 @@ class XCone(Cone): z-coordinate of the apex R2 : float Parameter related to the aperature - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -1186,7 +1191,7 @@ class YCone(Cone): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -1211,7 +1216,7 @@ class YCone(Cone): z-coordinate of the apex R2 : float Parameter related to the aperature - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict @@ -1242,7 +1247,7 @@ class ZCone(Cone): surface_id : int, optional Unique identifier for the surface. If not specified, an identifier will automatically be assigned. - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'}, optional + boundary_type : {'transmission, 'vacuum', 'reflective'}, optional Boundary condition that defines the behavior for particles hitting the surface. Defaults to transmissive boundary condition where particles freely pass through the surface. @@ -1267,7 +1272,7 @@ class ZCone(Cone): z-coordinate of the apex R2 : float Parameter related to the aperature - boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} + boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. coefficients : dict diff --git a/src/geometry.F90 b/src/geometry.F90 index 62c5036a9..2059ea42f 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -378,6 +378,7 @@ contains real(8) :: v ! y-component of direction real(8) :: w ! z-component of direction real(8) :: norm ! "norm" of surface normal + real(8) :: xyz(3) ! Saved global coordinate integer :: i_surface ! index in surfaces logical :: found ! particle found in universe? class(Surface), pointer :: surf @@ -435,9 +436,10 @@ contains ! case the surface crossing is coincident with a mesh boundary if (active_current_tallies % size() > 0) then + xyz = p % coord(1) % xyz p % coord(1) % xyz = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw call score_surface_current(p) - p % coord(1) % xyz = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw + p % coord(1) % xyz = xyz end if ! Reflect particle off surface @@ -481,8 +483,9 @@ contains ! Do not handle periodic boundary conditions on lower universes if (p % n_coord /= 1) then - call handle_lost_particle(p, "Cannot period particle " & - // trim(to_str(p % id)) // " off surface in a lower universe.") + call handle_lost_particle(p, "Cannot transfer particle " & + // trim(to_str(p % id)) // " across surface in a lower universe.& + & Boundary conditions must be applied to universe 0.") return end if @@ -491,9 +494,10 @@ contains ! case the surface crossing is coincident with a mesh boundary if (active_current_tallies % size() > 0) then + xyz = p % coord(1) % xyz p % coord(1) % xyz = p % coord(1) % xyz - TINY_BIT * p % coord(1) % uvw call score_surface_current(p) - p % coord(1) % xyz = p % coord(1) % xyz + TINY_BIT * p % coord(1) % uvw + p % coord(1) % xyz = xyz end if select type (surf) From 7794fae54dc9fd56eb23d673b3d02c30944fbaae Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 24 May 2016 20:19:14 -0400 Subject: [PATCH 221/259] updates per @wbinventor comments --- .../pythonapi/examples/mgxs-part-iv.ipynb | 60 ++++----- openmc/mgxs/mgxs.py | 122 ++++++++---------- openmc/mgxs_library.py | 4 +- 3 files changed, 86 insertions(+), 100 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index 9c13d28ec..b330e7ace 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -724,7 +724,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", - " Date/Time: 2016-05-22 21:29:21\n", + " Date/Time: 2016-05-24 19:52:06\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -811,20 +811,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4810E+00 seconds\n", - " Reading cross sections = 1.1840E+00 seconds\n", - " Total time in simulation = 1.9619E+01 seconds\n", - " Time in transport only = 1.9512E+01 seconds\n", - " Time in inactive batches = 2.1770E+00 seconds\n", - " Time in active batches = 1.7442E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-02 seconds\n", - " Sampling source sites = 6.0000E-03 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for initialization = 1.4330E+00 seconds\n", + " Reading cross sections = 1.1310E+00 seconds\n", + " Total time in simulation = 1.8040E+01 seconds\n", + " Time in transport only = 1.7983E+01 seconds\n", + " Time in inactive batches = 2.0740E+00 seconds\n", + " Time in active batches = 1.5966E+01 seconds\n", + " Time synchronizing fission bank = 8.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.1110E+01 seconds\n", - " Calculation Rate (inactive) = 22967.4 neutrons/second\n", - " Calculation Rate (active) = 11466.6 neutrons/second\n", + " Total time elapsed = 1.9482E+01 seconds\n", + " Calculation Rate (inactive) = 24108.0 neutrons/second\n", + " Calculation Rate (active) = 12526.6 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -953,7 +953,7 @@ "metadata": {}, "source": [ "We will now use the `Library` to produce a multi-group cross section data set for use by the OpenMC multi-group solver. \n", - "Note that since we have ran so few histories, is not unreasonable to expect some divisions by zero errors. This will show up as a runtime warning in the following step." + "Note that since this simulation included so few histories, it is reasonable to expect some divisions by zero errors. This will show up as a runtime warning in the following step." ] }, { @@ -1100,7 +1100,7 @@ " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", - " Date/Time: 2016-05-22 21:29:43\n", + " Date/Time: 2016-05-24 19:52:26\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1184,20 +1184,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.4000E-02 seconds\n", - " Reading cross sections = 3.0000E-03 seconds\n", - " Total time in simulation = 1.4720E+01 seconds\n", - " Time in transport only = 1.4678E+01 seconds\n", - " Time in inactive batches = 1.3020E+00 seconds\n", - " Time in active batches = 1.3418E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 3.6000E-02 seconds\n", + " Reading cross sections = 7.0000E-03 seconds\n", + " Total time in simulation = 1.4412E+01 seconds\n", + " Time in transport only = 1.4376E+01 seconds\n", + " Time in inactive batches = 1.2750E+00 seconds\n", + " Time in active batches = 1.3137E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 7.0000E-03 seconds\n", " SEND/RECV source sites = 3.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.4763E+01 seconds\n", - " Calculation Rate (inactive) = 38402.5 neutrons/second\n", - " Calculation Rate (active) = 14905.4 neutrons/second\n", + " Total time elapsed = 1.4458E+01 seconds\n", + " Calculation Rate (inactive) = 39215.7 neutrons/second\n", + " Calculation Rate (active) = 15224.2 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1384,7 +1384,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1395,7 +1395,7 @@ "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAADDCAYAAACS2+oqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXeYFeX1xz8HUJSmoIJiA8WOokSwm43RtUSjiQ1LbAnq\nzySYaGzR6IrGHns0tih2YzcxidjWXlAUS2woIoiggoqKorDn98fMwmXZe88su5e7O3w/z7PP3jvv\nd9733HfOnHmnnHnN3RFCCNH2aVdpA4QQQrQMCuhCCJETFNCFECInKKALIUROUEAXQoicoIAuhBA5\nodUFdDN7zcy2rrQdizJm9m8z+0Uz1r/czE5sSZsWRcyszsxWK1Ge231FPriAuHv4B+wLjAK+BD4E\n7ge2yLJuUO+1wPDm1lPJv/Q3zASmp39fAi9V2q4Mdp8CfFdg83TgD5W2qwk2TwOeBDZtwvqPAocs\nBDvfB74FejRY/jJQB6ySsZ7ZwGoFftakfQVYDDgZeDPdxhPSfXe7Sm/LRranfLAF/sIRupkdBZwP\nnA70BFYBLgN+Gq27CHG2u3dL/7q6+0Yt3YCZtW/pOoFbC2zu5u7nlaGNluZWd+8GLAvUArdX1pxG\ncWAcsE/9AjPrDyyRlmXFmmnHncAuwP5Ad6AvcBGwU6ONlcfHIuSDLUlwNOlGcuT8eQnN4sCFJCP3\nicAFwGJp2Q9JRgVHAVNSzUFp2VCSI923JEe7e9Pl44BtCo6GtwEjUs2rwMCCtutIRzDp93lGMWkb\n7wCfAvcAK6TLV03XbdfYkRNYnWRDfQ58DNxS4vcXHTkVtHMAMD6t648F5QYcD4wFPgFuBZZusO4h\n6bq16fIDSEaAnwAn1fcX0Av4GuheUP8P0jbbFxlpXB+NIkr1Rbqtp6RlLwPrNmU7FGzDw4C3ganA\npcHo6PqC7+uQjGKXSb8vDfwztXNq+rl3WnY6MAuYkfrSxenytYGRqf4NYM+C+ncCXk/1E4CjMo7C\nxgF/BJ4vWHYucEJq7yqNjdaAA4EnGvo3GfaVRmzYNvWHFTLYeiwwBviG5DLsOqltn5Hsc7s05hsl\nbP4t8G66Hc7Juj3lg833wWiEvhnQMe2AYpwEDAY2AAakn08qKF8e6Ar0Bn4F/NXMlnL3q4CbSDZ4\nN3fftUj9uwA3A0ulnfPXgrKiox0z2wY4A9gDWAH4gCRghusCpwEPuPvSwErAJSW0WdgCWINkJzvZ\nzNZKlx9JcqazFUn/fEZy9lPI1iQbfHszW4fk9+9D8puWStfD3aeQ7AR7Fay7H4nzz26G7Y32hZlV\nA1sC/dKyvUkcch4ybAeAn5AcfDYE9krrLomZLU4STKaS9BskwejvwMokZ5IzSP3F3U8CngB+k/rb\nMDPrRLIj3Ugy2toHuCztZ4CrgaGejMb6A49EdhXwLNDVzNYys3Yk2+VG4lH3fH7ZhH2lkB8Dz7n7\nRxm0Q4AdSYJRO+A+4L/AcsAw4CYzW6MJNu8GDEz/djWzQzLYUAr5YEYfjAL6MsCn7l5XQrMvcKq7\nT3X3qcCpQOHNjO+A09x9trv/B/gKWKuReorxpLs/4Mnh6gaSA0c9pXaOfYFr3H2Mu39PMjrazMxW\nydDm98CqZraiu3/n7k8H+mPMbJqZfZb+v7agzIGatJ5XSEZCA9KyQ4ET3f2j1MbhwB5pAKhf9xR3\n/8bdZ5I45H3u/oy7zyK5PlrI9aR9n9axD0mfFWPvBnYv34S++J7kQL2umZm7v5UeVBqSZTuc6e5f\nuvsEkoPShpHNJDvKL4E96v3T3ae5+93uPtPdvwbOJDkgFmNnYJy7X+8JL5NcptgjLf8OWM/Murr7\nF2l5U7iBZIffjuQ69qQmrt8clgUm138xs+7pdv7czL5poL3I3SelPrYp0Nndz3b3We7+KPAvCi4f\nZeCstL8mkpy9l1pXPtiCPhgF9KnAsgUBpjF6kxzx6hmfLptTR4MDwgygS9BuIZMLPs8AlgjsKbRr\nfP2XtHOnAitmWPcYkr553sxeNbODAczsBDP70symm1nhSPpcd+/h7t3T/wc3qK/QyQp//6rA3akj\nTwP+R+KkvQr0Exv8pgkFv+kb5h2R3AusY2Z9gGrgc3d/ocTvvK2B3ZMb0TTaF+mOfinJ6GOymf3N\nzBrbrlm2Q7H+KWozyf2c14CN6wvMbEkzu8LM3jezz4HHgKXNrNiBf1Vg0/r+N7PPSHb++v7fnWTk\nNt7MHjWzTUvY1Rg3pvUdRHKwLRupX9b75kokfbxCfbm7f+bu3UlGoYs3WL2oj6WMJ9t+01h9DeNB\nQ+SDLeiDUWB8huS63W4lNB+mRhUamHUk0pQbRI0xA+hU8L3w6D6p0C4z60xyxjGR5NoixdZ194/d\n/VB3XxE4nOQUaDV3P9Pn3rw5opm2Q3Ig3DF15Hqn7tzgNLmwjz4iOeWs/01Lpr+p3u6ZwD9IboLt\nT+nReSaK9UVadqm7bwysR3LWdUwjVZTaDs2xa1pqT42Z1Tv/0SSXtgalp+D1I6P6namhv00guTdR\n2P/d3P03aRsvuvtuJJce7iXp26bY+AHJNeodgbsakXxNcf+dr7qgra4FvjkReBgYZGaNBdOGwaWw\n7kkklwsKWYVkP89qc+H6q9DMMxP5YHYfLBnQ3X06yU2Av5rZrunRp4OZ7WhmZ6WyW4GTzGxZM1sW\n+BPZA8kUkps+TaHQGV8C9jWzdma2A8lN2HpuBg42sw3MrCPJNbRn3X2Cu39K4qD7p+seQnLjJWnA\nbA8zqz96f05y02RBr0OXuix0BXBG/amfmS1nZoVPDzVc9w5gFzPb1MwWI7m81ZAbSEaEu5CMEJtF\nsb4ws43NbLCZdSC5mfYtjfdR0e3QXNvc/S2Sa73HpYu6prZMN7MeQE2DVRr627+ANc1s/9SvF0t/\n19rp533NrJsn9yC+JLmh1VQOIblx2fAyByQ38X6e7lf9SE7fi9GkfcXdHyS5dHBPup0WS7fVZpQ+\nODwHfG1mx6Z9UkVyWeCWJth8jJktbWYrk9wnani9uknIB7P7YHjpwt0vIHlK5SSSO7cfAEcw90bp\n6cALQP314ReAP5eqsuDzNSTXh6aZ2V2NlEfr/47kpuJnJNfp7i6w+xGSg8tdJMG7L8nNn3qGktzd\n/5TkTvVTBWWDgOfMbHr6O4e5+3iKc2x6qjs9Pe39uIi9Db9fRHLUHWlmXwBPk9xUbnRdd/8fyRME\nt5GMOr4g2SYzCzRPkzj86HSEuCAUtlusL7oBV5E8izuOpB/ne+Qsw3Yo1T9ZOA8Ymg4mLiQZPX5K\n0pf/bqC9CNjTzKaa2YXu/hXJpakhJP05CTiLuZckfgGMS0+dDyW5yZyFOb/B3ce5++jGykie0Pie\n5LLitcx/AG7uvvJzkoBxI8k+8h7JfrJ9kTZIrzH/lOTpik9JLmn8wt3fyWgzJD79IjCa5EGGvwd2\nNoZ8MKFJPmjuzb3qISpFeur4Ocld/vEFyx8GbnL3BdmRhFhgzKyOxB/fq7QtiyKtLvVflMbMdk5P\ndzsDfwFeaRDMBwEbkYzihRCLEArobY9dSU7LJpJc959z6mhm15E803pkeidfiIWNTvkriC65CCFE\nTtAIXQghckKHclSaPkJ4IckB4xp3P7sRjU4NRFlx9+a+3Go+5NuiNVDMt1v8koslWZxvk7xLYhLJ\na3eHuPubDXTOcQVtP1kDW9bMW9mIDA1ekEGTJWn51QyaFxr01T01sFvNvMsOjnMVLqg7PdT8/u2/\nlSy/eM2hYR3DHrlq/oUjauDAmjlfV/rxO/NrGvDynDcVFOdqfhVqvqNjqLnCD5tv2fSai+lWM2zO\n9w+fL/VakZRNrcUDepN8+/iC5OgnamCrmjlf+57xv7Ctce+uGxs0OcPPezjev7v84ZP5ls3887l0\nPHFujs7/dbo8rOfcYQ3fRDE/Ay55NtT099dCzU1HNOJvo2pgUM2cr49ftvH8mgZs/ZdSidQpx8R9\nuHXdyFDz+AM7zLvgxhrYv2beZTuWrqO6GkaOLO7b5bjkMhh4x93Hp8+03kpyI0+Ito58W7RqyhHQ\nV2Ted0FMpGnvgRCitSLfFq2aclxDb+xUoPFzlidr5n7uuHQZTCkza1dV2oKmM6Cq0hY0mY5Vm8Si\nF2thdG25Tcnu20/UzP3cBn27/VabV9qEptO7qtIWNI0NqjIKa9M/GDu2tLIcAX0iyQt56lmJYi/n\naXjNvK3RFgP6hlWVtqDJZAroP6hK/uq5prHX3DSb7L5dcM28LdJh6y0qbULTWbGq0hY0jcwBvSr9\ng3794L33ivt2OS65jAL6mdmqlrwAfgjJC/OFaOvIt0WrpsVH6O4+28x+Q5KxWP9o1xst3Y4QCxv5\ntmjtlOU5dHf/L02blUiINoF8W7RmKpb6b2ZOn6DtbWPb7LQZocYv7RRqZg+JJzxfYvnPQ03XpaeH\nmk06PBdq1gkGfhd9fGRYx5E9Lwo1VfZoqHmHNUPNmHlmBmycZ9gs1HxO91CzQoZpMl9pt1lZEouy\nkCQWlZq1MfZZ7LNYs1v8gM1md8bToJ5EnBfxk5PjerocN//z7A2p7hw/r33X9fFbik854PhQ04f3\nQ83hX8TP18/8TeyT/CiWXHRwnDtyZPuVSpZXV6/OyJEHLNTn0IUQQlQABXQhhMgJCuhCCJETFNCF\nECInKKALIUROUEAXQoicoIAuhBA5QQFdCCFyQlkyRTNzblA+M67isJ6lJ4IA6HXGH0KNdY1zUGYe\n2zXUVPF0qOntjb/PqZDzOLFk+Vo9Dwjr6E88UcBmPjrUPMtGoeb358fb4a6jg7f3A+dwbKjZ2f4V\nal4JFWXmlyXKrolXf3x2/Jr1frwbano9Fye62SazQ83sp+PEu5073R5q7iBOGhp1QJyk9iXdQs02\nPBlqNlmqb6j58IY4geuWDLPoXMWhoYZNBpUuXxsYWXzf1whdCCFyggK6EELkBAV0IYTICQroQgiR\nExTQhRAiJyigCyFETlBAF0KInFDZ59D7BOVd4iou/eyYUNNudqnJBlKujI9tH9Ej1CxvF4Sa3f3O\nUOOPlJ7A4vkfx5NX7O53hBoGx88Xb7JUXA0Pxn38s6vjPv7rr44INXeyewaD/pJBUz6GXnlx0bKr\nZg4L1+/EN6FmeTJMgtEr7vNhnBNq9n5ow1Bzhp0Qai71/4SaXtYn1Nzue4aabT6MfXutiaGEtTcZ\nF7f1VtxW+8/j5/3ZMMiHWb10sUboQgiRExTQhRAiJyigCyFETlBAF0KInKCALoQQOUEBXQghcoIC\nuhBC5AQFdCGEyAnm7pVp2MxH1a1bUjPowxfCeuq+6RRqBq3+WKh54fEfhhqfEUpgQAbNIxk0QY7G\nERPjxJm3vV+o2aZdPJHCiY+GEuqeiicIefGPpbc3QHebFmqu5LBQc67V4O6xUWXAzHyduuK+O3Zq\nvF1GLBtPYJLl540Ps/fg+OfjJDU6x5Kj1vtzqDn/8dITtwAM3zpOFjx5XDQ7DvBsLBmxf6w5sDqD\nG10Sx9Hr+u0dak7jTyXLt6Iz17frW9S3NUIXQoicoIAuhBA5QQFdCCFyggK6EELkBAV0IYTICQro\nQgiRExTQhRAiJyigCyFETijLjEVm9j7wBVAHfO/ugxvTDbFbS9Yzunc8SwoWz5QzmPNDzTc/iJMH\nluiSYcaRF+Nj5C37xck8++x/d8nyr/yqsI4HP94t1Fhd3H9+T/ybnjpho1CzJXGiGI/FbW3yw+fi\nespEVt9+o33x2a3s7XgqriHL3BMb80ncV/5VhqSYwbEP2MtxW3957qS4ra3jtk7O8Ltu7BPPWrV/\n39tDzYHfZhjTxpOQQb/4d43n+FAzbs3SyXdrbFl6/XJNQVcHVLl7hjmyhGhTyLdFq6Vcl1ysjHUL\nUUnk26LVUi7HdOABMxtlZkPL1IYQlUC+LVot5brksrm7Tzaz5YAHzewNd3+yTG0JsTCRb4tWS1kC\nurtPTv9/YmZ3A4OB+Zx+Ws1lcz4vWTWIJasGlcMcsQjwWu1UXq+N39TYXLL6Nn5hwZdNwTYtu20i\np8yohW9qARj7Umlpiwd0M+sEtHP3r8ysM1ANnNqYtkfNES3dvFhE6V+1DP2rlpnz/fZTx7Z4G03x\nbex3Ld6+WETpVJX8Af02gvfGDC8qLccIvRdwt5l5Wv9N7j6yDO0IsbCRb4tWTYsHdHcfB2R4gFyI\ntoV8W7R2Kjpj0dW+T0nNMkwN6/mP7xhqetqUULOv3xJqXvCNQ80v3roz1HjHUMKYfqUTQmrr4gcs\nOvq3oebwY26IjamOfWT57caFmsnPrRa31TFuq93bcRIHQ9pVdMaiPWdfV7T89svj2YhmT2gfao48\n88xQM5kVQs1t4w4KNU/3jY9jHYgT7wa/+WqomdU79oG1ur0eat67qH+osfXjtrx3KOHttVYONWs/\nMT6u6JnSLlvdF0YOMc1YJIQQeUcBXQghcoICuhBC5AQFdCGEyAkK6EIIkRMU0IUQIicooAshRE5Q\nQBdCiJxQ0cQiu7V0IsKs9eJE1s36PxJq7iGeuee3XBJqdueOUNPVvww12379aKjp+PvS5XdfFSdU\nrcSEULO0fx5qXmRgqNmqkfdTzWfPyvHLs3y/UMIuZ/0j1Nzfbq+KJhbt7LcVLf/aO4V1rMikUPOl\nxTMfLZshOe9sPzbUjLJGJ2aah/7+WqihfewDK2bIvxmz8hqhprd/FNfDgFCzJDNCzRbvB2/NAtbs\n83KoGft6aXuqu8DIvkosEkKI3KOALoQQOUEBXQghcoICuhBC5AQFdCGEyAkK6EIIkRMU0IUQIico\noAshRE6oaGLRkLprSmp28n+H9exvt8eNXRwft54ftn6oGcyYuK0RcVu3H7BzqNnT7isteDBu57vB\ncV7N4kvFs8ywSdyW/zNuy3pmaGtc3Nabq60aata18RVNLLLziv/WWRvGCXO2TdxX5/PrUHPMXy4N\nNbOPztBNf4q3y6GnXRRqruS3oeb59nFbHWfHiUUDeCvU3MEuoWb3P8VxyE6Lt1e7v4cS9jzk+pLl\nA+jNSe2qlVgkhBB5RwFdCCFyggK6EELkBAV0IYTICQroQgiRExTQhRAiJyigCyFETlBAF0KInBBn\nOJSRt610csD6tnJYxz5114WaW34W2zKdbqHGT20fasaeslJsD/uEmj36lW7rvLFxUslavB1qtqBz\nqLn/uT1DzQyWDDXtOSDU9O27RaiZRO9QAxmmvSkj+x5VPGmuw82zwvXHECfOjLTzQs09R1eHmo38\ntFDz/knxDEp8F0s+XezmUHPXZXE9kzLMxMR68f66x5FxYuX9w38U29M+buuO2TuEmods25LlXSk9\nS5VG6EIIkRMU0IUQIicooAshRE5QQBdCiJyggC6EEDlBAV0IIXKCAroQQuQEBXQhhMgJCzxjkZld\nA+wMTHH3DdJl3YHbgFWB94G93P2LIuv7T+tKJxn88/G9QztmrRLnRp3S57hQs7f9I9S866uHmo+t\nZ6hZzd8LNT++4pmS5XWbhlVw7IDhoea0r08ONUu8Gbd16w9+GmqG7BjMwgS899/lQ83u3BVqxtjm\nCzxjUUv4Nl3rijdwS2xD9U73hpqRN+8aapbYeVrcVreRoea+9+J9ccvVHgo1D3+xfahZ7PRQwvXn\nxsluXdrFs5ntfmzclm8da16JJyHj6bo4se7wA0rPWMT61bQ7bmRZZiy6Fmi4dY4HHnL3tYBHgBOa\nUb8QlUK+LdokCxzQ3f1J4LMGi3cFRqSfRwC7LWj9QlQK+bZoq7T0NfSe7j4FwN0nA8u1cP1CVAr5\ntmj16KaoEELkhJZ+2+IUM+vl7lPMbHng41LiN2vumPN52ap1WbZq3RY2RywqfFU7mq9qR5eziSb5\nNjNr5n5uXwUdqspomsgztZOhdkr6ZfLYktrmBnRL/+q5DzgIOBs4ECh5q37tmj2a2bwQCV2qBtKl\nauCc71NO/Xtzq2yWb9OxprntCwFA1fLJHwDr92P4Q8WfklvgSy5mdjPwNLCmmX1gZgcDZwHbmdlb\nwLbpdyHaFPJt0VZZ4BG6u+9bpKj0G9qFaOXIt0VbZYETi5rdsJk/VLdZSc2Pbn82rmfP2aHGb4pP\nRI7e78+h5vwMjx5Ptu6h5lvvGGr6MLlkuW0V/6a6w+K8Gts/7j+7I0Nb37ZMW3wSt/VIz9J+A7Ct\nPbPAiUXNxcwcu7Jo+bmzXg7rONouDTU3EifX7HdjnISVZbt8/0W8XTo8l8EHquO2pi0et/Xpd/Fs\nZmtmmLXKHovb8qcyuNEfM/j2xXFb9nAg2KgaG16exCIhhBCtCAV0IYTICQroQgiRExTQhRAiJyig\nCyFETlBAF0KInKCALoQQOUEBXQghckJLv5yrSWz37ydLlh+7ZzzjzhkXtQ81NxwZJ2Csbu+GmvHe\nK9R0ILZnrK0Rah7zISXLt3siTmBa7ouGr/Sen7fpF2p67xEnQnXfb2aoqdsp7pvvOocSaqiJRfPN\nT7GQ8V8VLbrSxoSrH3tFnPB39WGLhZoZGV6XNKl9vF3WeDquZ/iOsc0nPxy31WOruK0eB04INR9e\nt2yoWWl63Bb949/1SoY+3ODBuCk7vsRMV0C1Q6lxuEboQgiRExTQhRAiJyigCyFETlBAF0KInKCA\nLoQQOUEBXQghcoICuhBC5AQFdCGEyAkVTSzyJ0vPBPLUTzYP69ht2C2h5l72CjVDiWeImWI9Q83h\nfkWo2XbcU6GGF0sXT9tjibCKV3vEzQzsW3zC2Xr81gwzttxUOiEC4Eb2DjUDiGfzyaIpnbK2EOhf\nvOgIuzxcfeSh1aHmYG4ONSM63xpqDown4uLATf4WaobOin3fJr4Uavy42J6x260Yavpd/mHc1toZ\nfHubeDaimbM3CDU/5U9xW0cH9vQD/lW8WCN0IYTICQroQgiRExTQhRAiJyigCyFETlBAF0KInKCA\nLoQQOUEBXQghcoICuhBC5ISKJhaxSemH6J88dbuwCts1nk3E741nE/n1yfEsQhvyZqj5P+Lko8vf\nODrUsEfpZIYeO8TH4u7LZUiaGBsnTdiDcVvtx8TbYdiAjULNwf+LE2EOX++CUFNxbi/e979/OU7S\nsfvj/nzkhC1CzQFXZ/CBg2MfuO7ieB+6YNjhoWbLlYOMOcAejv1t9VUmhRomxMluNi5uq26b+Lcf\n9OioUFPtI0MN0cRpwYxeGqELIUROUEAXQoicoIAuhBA5QQFdCCFyggK6EELkBAV0IYTICQroQgiR\nExTQhRAiJ5h7nMDQ6Ipm1wA7A1PcfYN02SnAUODjVPZHd/9vkfWdHUs/+H/A/XECxl1f7x5qftc5\nTkR51dYPNdvUPRq39VI8a8sDA7cONevxesnyERwY1vEz7g41q3w9IdRc2PnIUHPiyPNDzYDtnw01\nPXxqqBlTt2GomdZhZdw9Q1bN/LSIb29aYr/aMt7n/nzOUaGmm00PNdv7A6Fm9Ulxks4HvZcNNaMY\nHGp2P/DfoebsEcNCzfr+SqjZ6fXaUPNG/z6hZkmfEWr63PlxqBm052OhZrp3K1m+JV24rl2/or7d\nnBH6tcD2jSw/390Hpn+NOrwQrRz5tmiTLHBAd/cngc8aKVqgUZEQrQX5tmirlOMa+q/N7GUzu9rM\nlipD/UJUCvm2aNW09Mu5LgOGu7ub2enA+cAvi6rfqZn7uUcVLFPVwuaIRYXva5/h+8eeKWcTTfPt\nCTVzP3ergqWqymmbyDEzakfxTe0LALzE4iW1LRrQ3f2Tgq9XAf8sucIaNS3ZvFiEWaxqMxar2mzO\n929Pa9k3MjbZt1euadH2xaJLp6pBdKoaBMBGdGHM8EuKapt7ycUouK5oZssXlP0ceK2Z9QtRKeTb\nos2xwCN0M7sZqAKWMbMPgFOAH5nZhkAd8D5wWAvYKMRCRb4t2ioLHNDdfd9GFl/bDFuEaBXIt0Vb\nZYETi5rdsJkfWXdGSc32FidFXOsHh5p3WS3UjD5ny1CTYcIimJXhybYMsyxxZ6C5bXhYxQ/qtgk1\nl3icxLH5yS+FGr6PJZyT4XevnmWWpYcyNFa9wIlFzcXMnA4lfmu/DJXckaGvMgzH9lprRKh5wmPf\nP8yuDDVZunv4/WeGmu12vi/U/IIbQs0M7xRqDn887p+Tf3hCqPm7HxLXQ7zPDr3rxpLl1T1h5Nbt\nypJYJIQQohWhgC6EEDlBAV0IIXKCAroQQuSEVhPQJ9a+V2kTms5HtZW2oMl8WZvhBmdrY0ZtpS1o\nHnW1lbagycysfa7SJjSZN2o/iUWtiLdqp7R4nQrozWFybaUtaDJf1r5caROazje1lbageXhtpS1o\nMt8poJedXAd0IYQQzaOlX87VJFZibjZ1N7rM8z1ZtmZYR196hJrF6BIb0yuW8M28XyeNg96rNtDM\nzlDP0hk0fYPygSuEVazdyO/+jsXnWd6ZdcJ6BvYOJTArg2ZgBs1K8y+a9Cb0XrtgQbeuYTWjR2do\nq4wM3Gju50kfQu8VCwpXzlDBEhk07WNJX5YJNZ/Tcb5lY2lPv4LlK7DifJqGeIa3Cw/M8I7KfsSi\nHo3klizJR/Ms75ShEwdmCA1Zfnv/RvqwIcvQZ57vS/LBfMsGBrGhXxcYWaK8oolFFWlYLDJUNLFI\niDJSzLcrFtCFEEK0LLqGLoQQOUEBXQghckKrCOhmtoOZvWlmb5vZcZW2Jwtm9r6ZjTGzl8zs+Urb\n0xhmdo2ZTTGzVwqWdTezkWb2lpk90JqmUiti7ylmNtHMRqd/O1TSxqbS1nxbfl0eFpZvVzygm1k7\n4FKSWdbXA/Yxs7VLr9UqqAOq3H0jdx9caWOK0Njs9ccDD7n7WsAjQPwquYVHY/YCnO/uA9O//y5s\noxaUNurb8uvysFB8u+IBHRgMvOPu4939e+BWYNcK25QFo3X0X1GKzF6/K1D/ztARwG4L1agSFLEX\nyPA8XOukLfq2/LoMLCzfbg0bbkVgQsH3iemy1o4DD5jZKDMbWmljmkBPd58C4O6TgeUqbE8Wfm1m\nL5vZ1a3tVDqgLfq2/Hrh0qK+3RoCemNHqLbwLOXm7r4xsBPJRskwQ4ZYAC4DVnf3DYHJwPkVtqcp\ntEXfll/3XIupAAABIElEQVQvPFrct1tDQJ8IrFLwfSVgUoVsyUw6CqifDf5uktPrtsAUM+sFcyY+\n/rjC9pTE3T/xuckSVwGDKmlPE2lzvi2/XniUw7dbQ0AfBfQzs1XNbHFgCBDPQVVBzKyTmXVJP3cG\nqmm9s8DPM3s9Sd8elH4+ELh3YRsUMI+96c5Zz89pvf3cGG3Kt+XXZafsvl3Rd7kAuPtsM/sNySsK\n2gHXuPsbFTYrohdwd5ri3QG4yd1LvWKhIhSZvf4s4HYzOwT4ANizchbOSxF7f2RmG5I8ffE+cFjF\nDGwibdC35ddlYmH5tlL/hRAiJ7SGSy5CCCFaAAV0IYTICQroQgiRExTQhRAiJyigCyFETlBAF0KI\nnKCALoQQOUEBXQghcsL/A1cunn39vbPfAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 76da3a587..8a7d9d0b1 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -57,7 +57,7 @@ class MGXS(object): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. NOTE: Users should instantiate the subclasses of this abstract class. @@ -727,9 +727,8 @@ class MGXS(object): Return the cross section indexed according to increasing or decreasing energy groups (decreasing or increasing energies). Defaults to 'increasing'. - value : str - A string for the type of value to return - 'mean', 'std_dev' or - 'rel_err' are accepted. Defaults to 'mean'. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. Returns ------- @@ -963,8 +962,9 @@ class MGXS(object): Returns ------- openmc.mgxs.MGXS - A new tally which encapsulates the subset of data requested for the - nuclide(s) and/or energy group(s) requested in the parameters. + A new MGXS object which encapsulates the subset of data requested + for the nuclide(s) and/or energy group(s) requested in the + parameters. """ @@ -1536,7 +1536,7 @@ class MatrixMGXS(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. NOTE: Users should instantiate the subclasses of this abstract class. @@ -1624,9 +1624,7 @@ class MatrixMGXS(MGXS): energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - filters = [[energy], [energy, energyout]] - - return filters + return [[energy], [energy, energyout]] @property def estimator(self): @@ -1636,10 +1634,10 @@ class MatrixMGXS(MGXS): subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', row_column='inout', value='mean', **kwargs): - r"""Returns an array of multi-group cross sections. + """Returns an array of multi-group cross sections. - This method constructs a 2D NumPy array for the requested multiplicity - matrix data data for one or more energy groups and subdomains. + This method constructs a 2D NumPy array for the requested multi-group + matrix data for one or more energy groups and subdomains. Parameters ---------- @@ -1666,9 +1664,8 @@ class MatrixMGXS(MGXS): Return the cross section indexed first by incoming group and second by outgoing group ('inout'), or vice versa ('outin'). Defaults to 'inout'. - value : str - A string for the type of value to return - 'mean', 'std_dev', or - 'rel_err' are accepted. Defaults to the empty string. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. Returns ------- @@ -1777,7 +1774,7 @@ class MatrixMGXS(MGXS): return xs def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): - """Build a sliced NuFissionMatrix for the specified nuclides and + """Build a sliced matrixMGXS object for the specified nuclides and energy groups. This method constructs a new MGXS to encapsulate a subset of the data @@ -1799,9 +1796,10 @@ class MatrixMGXS(MGXS): Returns ------- - openmc.mgxs.MGXS - A new tally which encapsulates the subset of data requested for the - nuclide(s) and/or energy group(s) requested in the parameters. + openmc.mgxs.MatrixMGXS + A new MatrixMGXS object which encapsulates the subset of data + requested for the nuclide(s) and/or energy group(s) requested in + the parameters. """ @@ -1940,7 +1938,7 @@ class TotalXS(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2028,7 +2026,7 @@ class TransportXS(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2142,7 +2140,7 @@ class NuTransportXS(TransportXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2238,7 +2236,7 @@ class AbsorptionXS(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2331,7 +2329,7 @@ class CaptureXS(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2431,7 +2429,7 @@ class FissionXS(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2519,7 +2517,7 @@ class NuFissionXS(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2607,7 +2605,7 @@ class KappaFissionXS(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2695,7 +2693,7 @@ class ScatterXS(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2783,7 +2781,7 @@ class NuScatterXS(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -2872,7 +2870,7 @@ class ScatterMatrixXS(MatrixMGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -3116,9 +3114,10 @@ class ScatterMatrixXS(MatrixMGXS): Returns ------- - openmc.mgxs.MGXS - A new tally which encapsulates the subset of data requested for the - nuclide(s) and/or energy group(s) requested in the parameters. + openmc.mgxs.MatrixMGXS + A new MatrixMGXS which encapsulates the subset of data requested + for the nuclide(s) and/or energy group(s) requested in the + parameters. """ @@ -3200,9 +3199,8 @@ class ScatterMatrixXS(MatrixMGXS): Return the cross section indexed first by incoming group and second by outgoing group ('inout'), or vice versa ('outin'). Defaults to 'inout'. - value : str - A string for the type of value to return - 'mean', 'std_dev', or - 'rel_err' are accepted. Defaults to the empty string. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. Returns ------- @@ -3430,7 +3428,7 @@ class ScatterMatrixXS(MatrixMGXS): cv.check_value('xs_type', xs_type, ['macro', 'micro']) if self.correction != 'P0': - rxn_type= '{0} (P{1})'.format(self.rxn_type, moment) + rxn_type = '{0} (P{1})'.format(self.rxn_type, moment) else: rxn_type = self.rxn_type @@ -3449,7 +3447,7 @@ class ScatterMatrixXS(MatrixMGXS): template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' # Loop over energy groups ranges - for group in range(1, self.num_groups+1): + for group in range(1, self.num_groups + 1): bounds = self.energy_groups.get_group_bounds(group) string += template.format('', group, bounds[0], bounds[1]) @@ -3476,8 +3474,8 @@ class ScatterMatrixXS(MatrixMGXS): template = '{0: <12}Group {1} -> Group {2}:\t\t' # Loop over incoming/outgoing energy groups ranges - for in_group in range(1, self.num_groups+1): - for out_group in range(1, self.num_groups+1): + for in_group in range(1, self.num_groups + 1): + for out_group in range(1, self.num_groups + 1): string += template.format('', in_group, out_group) average = \ self.get_xs([in_group], [out_group], @@ -3489,7 +3487,8 @@ class ScatterMatrixXS(MatrixMGXS): xs_type=xs_type, value='rel_err') average = average.flatten()[0] rel_err = rel_err.flatten()[0] * 100. - string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '{:1.2e} +/- {:1.2e}%'.format(average, + rel_err) string += '\n' string += '\n' string += '\n' @@ -3504,7 +3503,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -3597,7 +3596,7 @@ class MultiplicityMatrixXS(MatrixMGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -3691,9 +3690,7 @@ class MultiplicityMatrixXS(MatrixMGXS): energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - filters = [[energy, energyout], [energy, energyout]] - - return filters + return [[energy, energyout], [energy, energyout]] @property def rxn_rate_tally(self): @@ -3720,7 +3717,7 @@ class NuFissionMatrixXS(MatrixMGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -3800,19 +3797,8 @@ class NuFissionMatrixXS(MatrixMGXS): groups=None, by_nuclide=False, name=''): super(NuFissionMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'nu-fission matrix' - - @property - def scores(self): - scores = ['flux', 'nu-fission'] - return scores - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['nu-fission'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally + self._rxn_type = 'nu-fission' + self._hdf5_key = 'nu-fission matrix' class Chi(MGXS): @@ -3820,7 +3806,7 @@ class Chi(MGXS): 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 deterministic neutronics calculations. + multi-group cross sections for multi-group neutronics calculations. Parameters ---------- @@ -3966,9 +3952,10 @@ class Chi(MGXS): Returns ------- - MGXS - A new tally which encapsulates the subset of data requested for the - nuclide(s) and/or energy group(s) requested in the parameters. + openmc.mgxs.MGXS + A new MGXS which encapsulates the subset of data requested + for the nuclide(s) and/or energy group(s) requested in the + parameters. """ @@ -4080,9 +4067,8 @@ class Chi(MGXS): Return the cross section indexed according to increasing or decreasing energy groups (decreasing or increasing energies). Defaults to 'increasing'. - value : str - A string for the type of value to return - 'mean', 'std_dev', or - 'rel_err' are accepted. Defaults to 'mean'. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. Returns ------- diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index f75d7e2e4..35b48d873 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -525,7 +525,7 @@ class XSdata(object): def chi(self, chi): if self.use_chi is not None: if not self.use_chi: - msg = 'Providing chi when nu_fission already provided as a' \ + msg = 'Providing "chi" when "nu-fission" already provided as a' \ 'matrix' raise ValueError(msg) @@ -753,7 +753,7 @@ class XSdata(object): msg = 'Angular-Dependent MGXS have not yet been implemented' raise ValueError(msg) - if type(nu_fission) is openmc.mgxs.NuFissionMatrixXS: + if isinstance(nu_fission, openmc.mgxs.NuFissionMatrixXS): self.use_chi = False else: self.use_chi = True From dca86df219b846fd913041c8ea02cfee1feae941 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 24 May 2016 20:27:06 -0400 Subject: [PATCH 222/259] adding notice to users that div by zero is expected in mgxs-part-iii nbook. --- docs/source/pythonapi/examples/mgxs-part-iii.ipynb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index bc2f96414..a38677945 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -939,7 +939,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The `NuFissionXS` object supports all of the methods described previously the `openmc.mgxs` tutorials, such as [Pandas](http://pandas.pydata.org/) `DataFrames`:" + "The `NuFissionXS` object supports all of the methods described previously in the `openmc.mgxs` tutorials, such as [Pandas](http://pandas.pydata.org/) `DataFrames`:\n", + "Note that since so few histories were simulated, we should expect a few division-by-error errors as some tallies have not yet scored any results." ] }, { @@ -1597,7 +1598,7 @@ "metadata": { "kernelspec": { "display_name": "Python 2", - "language": "python", + "language": "python2", "name": "python2" }, "language_info": { From 7f2bf91be6054f5ab67388bc6e643ec0d62fd4da Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 24 May 2016 21:09:19 -0400 Subject: [PATCH 223/259] Fixed typo in MatrixMGXS.get_slice and fixed an error found when attempting to implement the test where the NuScatterXS type thought it deserved tracklength estimator status when it hasnt yet earned it. Its been demoted back to analog. --- openmc/mgxs/mgxs.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 8a7d9d0b1..ca95be58a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1774,7 +1774,7 @@ class MatrixMGXS(MGXS): return xs def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): - """Build a sliced matrixMGXS object for the specified nuclides and + """Build a sliced MatrixMGXS object for the specified nuclides and energy groups. This method constructs a new MGXS to encapsulate a subset of the data @@ -2863,6 +2863,10 @@ class NuScatterXS(MGXS): groups, by_nuclide, name) self._rxn_type = 'nu-scatter' + @property + def estimator(self): + return 'analog' + class ScatterMatrixXS(MatrixMGXS): """A scattering matrix multi-group cross section for one or more Legendre From 1af96416eaa502d714076dfd85f68a59b01b52de Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 25 May 2016 07:22:43 -0500 Subject: [PATCH 224/259] Extend input so that user can specify periodic surface pairs. Also fix a bug. --- openmc/surface.py | 32 ++++++++++++++++ src/geometry.F90 | 8 ++-- src/initialize.F90 | 14 ------- src/input_xml.F90 | 56 ++++++++++++++++++---------- src/surface_header.F90 | 6 +-- tests/test_periodic/geometry.xml | 12 ------ tests/test_periodic/inputs_true.dat | 1 + tests/test_periodic/materials.xml | 13 ------- tests/test_periodic/results_true.dat | 2 +- tests/test_periodic/settings.xml | 13 ------- tests/test_periodic/test_periodic.py | 53 +++++++++++++++++++++++++- 11 files changed, 129 insertions(+), 81 deletions(-) delete mode 100644 tests/test_periodic/geometry.xml create mode 100644 tests/test_periodic/inputs_true.dat delete mode 100644 tests/test_periodic/materials.xml delete mode 100644 tests/test_periodic/settings.xml diff --git a/openmc/surface.py b/openmc/surface.py index 239b868aa..ca2d5d6b4 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -222,6 +222,9 @@ class Plane(Surface): boundary_type : {'transmission, 'vacuum', 'reflective'} Boundary condition that defines the behavior for particles hitting the surface. + periodic_surface : openmc.Surface + If a periodic boundary condition is used, the surface with which this + one is periodic with coefficients : dict Dictionary of surface coefficients id : int @@ -239,6 +242,7 @@ class Plane(Surface): self._type = 'plane' self._coeff_keys = ['A', 'B', 'C', 'D'] + self._periodic_surface = None self.a = A self.b = B self.c = C @@ -260,6 +264,10 @@ class Plane(Surface): def d(self): return self.coefficients['D'] + @property + def periodic_surface(self): + return self._periodic_surface + @a.setter def a(self, A): check_type('A coefficient', A, Real) @@ -280,6 +288,21 @@ class Plane(Surface): check_type('D coefficient', D, Real) self._coefficients['D'] = D + @periodic_surface.setter + def periodic_surface(self, periodic_surface): + check_type('periodic surface', periodic_surface, Plane) + self._periodic_surface = periodic_surface + periodic_surface._periodic_surface = self + + def create_xml_subelement(self): + element = super(Plane, self).create_xml_subelement() + + # Add periodic surface pair information + if self.boundary_type == 'periodic': + if self.periodic_surface is not None: + element.set("periodic_surface_id", str(self.periodic_surface.id)) + return element + class XPlane(Plane): """A plane perpendicular to the x axis of the form :math:`x - x_0 = 0` @@ -306,6 +329,9 @@ class XPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. + periodic_surface : openmc.Surface + If a periodic boundary condition is used, the surface with which this + one is periodic with coefficients : dict Dictionary of surface coefficients id : int @@ -391,6 +417,9 @@ class YPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. + periodic_surface : openmc.Surface + If a periodic boundary condition is used, the surface with which this + one is periodic with coefficients : dict Dictionary of surface coefficients id : int @@ -477,6 +506,9 @@ class ZPlane(Plane): boundary_type : {'transmission, 'vacuum', 'reflective', 'periodic'} Boundary condition that defines the behavior for particles hitting the surface. + periodic_surface : openmc.Surface + If a periodic boundary condition is used, the surface with which this + one is periodic with coefficients : dict Dictionary of surface coefficients id : int diff --git a/src/geometry.F90 b/src/geometry.F90 index 2059ea42f..21c8baa6b 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -502,26 +502,26 @@ contains select type (surf) type is (SurfaceXPlane) - select type (opposite => surfaces(surf % opposite) % obj) + select type (opposite => surfaces(surf % i_periodic) % obj) type is (SurfaceXPlane) p % coord(1) % xyz(1) = opposite % x0 end select type is (SurfaceYPlane) - select type (opposite => surfaces(surf % opposite) % obj) + select type (opposite => surfaces(surf % i_periodic) % obj) type is (SurfaceYPlane) p % coord(1) % xyz(2) = opposite % y0 end select type is (SurfaceZPlane) - select type (opposite => surfaces(surf % opposite) % obj) + select type (opposite => surfaces(surf % i_periodic) % obj) type is (SurfaceZPlane) p % coord(1) % xyz(3) = opposite % z0 end select end select ! Reassign particle's surface - p % surface = sign(surfaces(surf % opposite) % obj % id, p % surface) + p % surface = sign(surf % i_periodic, p % surface) ! Figure out what cell particle is in now p % n_coord = 1 diff --git a/src/initialize.F90 b/src/initialize.F90 index 74cab87c4..09bedb138 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -580,20 +580,6 @@ contains class(Lattice), pointer :: lat => null() type(TallyObject), pointer :: t => null() - ! Adjust opposite surfaces for periodic boundaries - do i = 1, size(surfaces) - associate (surf => surfaces(i) % obj) - if (surf % bc == BC_PERIODIC) then - if (surface_dict % has_key(surf % opposite)) then - surf % opposite = surface_dict % get_key(surf % opposite) - else - call fatal_error("Could not find opposite surface " // & - trim(to_str(surf % opposite)) // ".") - end if - end if - end associate - end do - do i = 1, n_cells ! ======================================================================= ! ADJUST REGION SPECIFICATION FOR EACH CELL diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 242d3459a..8a9b2299f 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1578,6 +1578,12 @@ contains case ('periodic') s%bc = BC_PERIODIC boundary_exists = .true. + + ! Check for specification of periodic surface + if (check_for_node(node_surf, "periodic_surface_id")) then + call get_node_value(node_surf, "periodic_surface_id", & + s % i_periodic) + end if case default call fatal_error("Unknown boundary condition '" // trim(word) // & &"' specified on surface " // trim(to_str(s%id))) @@ -1597,33 +1603,45 @@ contains if (surfaces(i) % obj % bc == BC_PERIODIC) then select type (surf => surfaces(i) % obj) type is (SurfaceXPlane) - if (i == i_xmin) then - surf % opposite = i_xmax - elseif (i == i_xmax) then - surf % opposite = i_xmin + if (surf % i_periodic == NONE) then + if (i == i_xmin) then + surf % i_periodic = i_xmax + elseif (i == i_xmax) then + surf % i_periodic = i_xmin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if else - call fatal_error("Periodic boundary condition applied to & - &interior surface.") + surf % i_periodic = surface_dict % get_key(surf % i_periodic) end if type is (SurfaceYPlane) - if (i == i_ymin) then - surf % opposite = i_ymax - elseif (i == i_ymax) then - surf % opposite = i_ymin + if (surf % i_periodic == NONE) then + if (i == i_ymin) then + surf % i_periodic = i_ymax + elseif (i == i_ymax) then + surf % i_periodic = i_ymin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if else - call fatal_error("Periodic boundary condition applied to & - &interior surface.") + surf % i_periodic = surface_dict % get_key(surf % i_periodic) end if type is (SurfaceZPlane) - if (i == i_zmin) then - surf % opposite = i_zmax - elseif (i == i_zmax) then - surf % opposite = i_zmin + if (surf % i_periodic == NONE) then + if (i == i_zmin) then + surf % i_periodic = i_zmax + elseif (i == i_zmax) then + surf % i_periodic = i_zmin + else + call fatal_error("Periodic boundary condition applied to & + &interior surface.") + end if else - call fatal_error("Periodic boundary condition applied to & - &interior surface.") + surf % i_periodic = surface_dict % get_key(surf % i_periodic) end if class default @@ -1633,7 +1651,7 @@ contains ! Make sure opposite surface is also periodic associate (surf => surfaces(i) % obj) - if (surfaces(surf % opposite) % obj % bc /= BC_PERIODIC) then + if (surfaces(surf % i_periodic) % obj % bc /= BC_PERIODIC) then call fatal_error("Could not find matching surface for periodic & &boundary on surface " // trim(to_str(surf % id)) // ".") end if diff --git a/src/surface_header.F90 b/src/surface_header.F90 index 0b5d3c86b..68e5144b7 100644 --- a/src/surface_header.F90 +++ b/src/surface_header.F90 @@ -1,6 +1,6 @@ module surface_header - use constants, only: ONE, TWO, ZERO, HALF, INFINITY, FP_COINCIDENT + use constants, only: NONE, ONE, TWO, ZERO, HALF, INFINITY, FP_COINCIDENT implicit none @@ -15,8 +15,8 @@ module surface_header neighbor_pos(:), & ! List of cells on positive side neighbor_neg(:) ! List of cells on negative side integer :: bc ! Boundary condition - integer :: opposite ! Opposite surface for periodic boundary - character(len=104) :: name = "" ! User-defined name + integer :: i_periodic = NONE ! Index of corresponding periodic surface + character(len=104) :: name = "" ! User-defined name contains procedure :: sense procedure :: reflect diff --git a/tests/test_periodic/geometry.xml b/tests/test_periodic/geometry.xml deleted file mode 100644 index 6ecfec197..000000000 --- a/tests/test_periodic/geometry.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/tests/test_periodic/inputs_true.dat b/tests/test_periodic/inputs_true.dat new file mode 100644 index 000000000..d50d0b859 --- /dev/null +++ b/tests/test_periodic/inputs_true.dat @@ -0,0 +1 @@ +af589996f2930337afe34ba9894098ff5efe3b29b6e927117220b718bf29b630ffdbc931754d465a8e8100125a8aa997dbe10aab322b43f69d59710573996a6d \ No newline at end of file diff --git a/tests/test_periodic/materials.xml b/tests/test_periodic/materials.xml deleted file mode 100644 index a7bf4faf4..000000000 --- a/tests/test_periodic/materials.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/tests/test_periodic/results_true.dat b/tests/test_periodic/results_true.dat index f65dbafd1..b0bdb22c7 100644 --- a/tests/test_periodic/results_true.dat +++ b/tests/test_periodic/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.542742E+00 4.410461E-02 +1.040109E+00 6.527490E-02 diff --git a/tests/test_periodic/settings.xml b/tests/test_periodic/settings.xml deleted file mode 100644 index af09407ae..000000000 --- a/tests/test_periodic/settings.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - 1000 - 4 - 0 - - - - -5. -5. -5. 5. 5. 5. - - - diff --git a/tests/test_periodic/test_periodic.py b/tests/test_periodic/test_periodic.py index b584632f0..558514575 100644 --- a/tests/test_periodic/test_periodic.py +++ b/tests/test_periodic/test_periodic.py @@ -3,9 +3,58 @@ import os import sys sys.path.insert(0, os.pardir) -from testing_harness import TestHarness +from testing_harness import PyAPITestHarness +import openmc + + +class PeriodicTest(PyAPITestHarness): + def _build_inputs(self): + # Define materials + water = openmc.Material(1) + water.add_nuclide('H-1', 2.0) + water.add_nuclide('O-16', 1.0) + water.add_s_alpha_beta('HH2O', '71t') + water.set_density('g/cc', 1.0) + + fuel = openmc.Material(2) + fuel.add_nuclide('U-235', 1.0) + fuel.set_density('g/cc', 4.5) + + materials = openmc.Materials((water, fuel)) + materials.default_xs = '71c' + materials.export_to_xml() + + # Define geometry + x_min = openmc.XPlane(1, x0=-5., boundary_type='periodic') + x_max = openmc.XPlane(2, x0=5., boundary_type='periodic') + x_max.periodic_surface = x_min + + y_min = openmc.YPlane(3, y0=-5., boundary_type='periodic') + y_max = openmc.YPlane(4, y0=5., boundary_type='periodic') + + z_min = openmc.ZPlane(5, z0=-5., boundary_type='reflective') + z_max = openmc.ZPlane(6, z0=5., boundary_type='reflective') + z_cyl = openmc.ZCylinder(7, x0=-2.5, y0=2.5, R=2.0) + + outside_cyl = openmc.Cell(1, fill=water, region=( + +x_min & -x_max & +y_min & -y_max & +z_min & -z_max & +z_cyl)) + inside_cyl = openmc.Cell(2, fill=fuel, region=+z_min & -z_max & -z_cyl) + root_universe = openmc.Universe(0, cells=(outside_cyl, inside_cyl)) + + geometry = openmc.Geometry() + geometry.root_universe = root_universe + geometry.export_to_xml() + + # Define settings + settings = openmc.Settings() + settings.particles = 1000 + settings.batches = 4 + settings.inactive = 0 + settings.source = openmc.Source(space=openmc.stats.Box( + *outside_cyl.region.bounding_box)) + settings.export_to_xml() if __name__ == '__main__': - harness = TestHarness('statepoint.4.h5') + harness = PeriodicTest('statepoint.4.h5') harness.main() From 63e355f5a02730d6f2d1c4dbf5373d4e9dea7395 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 25 May 2016 10:09:02 -0500 Subject: [PATCH 225/259] Fix typo in documentation pointed out by @smharper --- docs/source/usersguide/input.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index e9ce42fd9..da9896fbb 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -900,7 +900,7 @@ Each ```` element can have the following attributes or sub-elements: The boundary condition for the surface. This can be "transmission", "vacuum", "reflective", or "periodic". Periodic boundary conditions can only be applied to x-, y-, and z-planes. Only axis-aligned periodicity is - supported, i.e., x-planes an only be paired with x-planes. Specify which + supported, i.e., x-planes can only be paired with x-planes. Specify which planes are periodic and the code will automatically identify which planes are paired together. From 55740283934463d2e58255b1a5956c5afc757ffd Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 25 May 2016 10:33:47 -0500 Subject: [PATCH 226/259] Update documentation and fix Relax NG schema --- docs/source/usersguide/input.rst | 4 ++++ src/relaxng/geometry.rnc | 2 +- src/relaxng/geometry.rng | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index da9896fbb..d1a01b65b 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -906,6 +906,10 @@ Each ```` element can have the following attributes or sub-elements: *Default*: "transmission" + :periodic_surface_id: + If a periodic boundary condition is applied, this attribute identifies the + ``id`` of the corresponding periodic sufrace. + The following quadratic surfaces can be modeled: :x-plane: diff --git a/src/relaxng/geometry.rnc b/src/relaxng/geometry.rnc index 6cb6f7c15..35d5ef8b2 100644 --- a/src/relaxng/geometry.rnc +++ b/src/relaxng/geometry.rnc @@ -23,7 +23,7 @@ element geometry { (element coeffs { list { xsd:double+ } } | attribute coeffs { list { xsd:double+ } }) & (element boundary { ( "transmit" | "reflective" | "vacuum" | "periodic" ) } | attribute boundary { ( "transmit" | "reflective" | "vacuum" | "periodic" ) })? & - (element opposite { xsd:int } | attribute opposite { xsd:int })? + (element periodic_surface_id { xsd:int } | attribute periodic_surface_id { xsd:int })? }* & element lattice { diff --git a/src/relaxng/geometry.rng b/src/relaxng/geometry.rng index 3ff0f67c6..b53d0e8db 100644 --- a/src/relaxng/geometry.rng +++ b/src/relaxng/geometry.rng @@ -188,10 +188,10 @@ - + - + From ccc7da103283b1d45bc362e42cb16e1349671b9f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 25 May 2016 21:26:06 -0400 Subject: [PATCH 227/259] Removing transport score capability and replacing with error message to let users know of deprecation. Also removed that same error message for diffusion --- src/constants.F90 | 29 +++++++++++----------- src/endf.F90 | 2 -- src/input_xml.F90 | 8 ++---- src/output.F90 | 1 - src/tally.F90 | 38 ----------------------------- tests/test_tallies/inputs_true.dat | 2 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tallies/test_tallies.py | 2 +- 8 files changed, 19 insertions(+), 65 deletions(-) diff --git a/src/constants.F90 b/src/constants.F90 index 5b58f409d..be13f47f2 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -279,7 +279,7 @@ module constants EVENT_ABSORB = 2 ! Tally score type - integer, parameter :: N_SCORE_TYPES = 22 + integer, parameter :: N_SCORE_TYPES = 21 integer, parameter :: & SCORE_FLUX = -1, & ! flux SCORE_TOTAL = -2, & ! total reaction rate @@ -289,20 +289,19 @@ module constants SCORE_SCATTER_PN = -6, & ! system for scoring 0th through nth moment SCORE_NU_SCATTER_N = -7, & ! arbitrary nu-scattering moment SCORE_NU_SCATTER_PN = -8, & ! system for scoring 0th through nth nu-scatter moment - SCORE_TRANSPORT = -9, & ! transport reaction rate - SCORE_N_1N = -10, & ! (n,1n) rate - SCORE_ABSORPTION = -11, & ! absorption rate - SCORE_FISSION = -12, & ! fission rate - SCORE_NU_FISSION = -13, & ! neutron production rate - SCORE_KAPPA_FISSION = -14, & ! fission energy production rate - SCORE_CURRENT = -15, & ! partial current - SCORE_FLUX_YN = -16, & ! angular moment of flux - SCORE_TOTAL_YN = -17, & ! angular moment of total reaction rate - SCORE_SCATTER_YN = -18, & ! angular flux-weighted scattering moment (0:N) - SCORE_NU_SCATTER_YN = -19, & ! angular flux-weighted nu-scattering moment (0:N) - SCORE_EVENTS = -20, & ! number of events - SCORE_DELAYED_NU_FISSION = -21, & ! delayed neutron production rate - SCORE_INVERSE_VELOCITY = -22 ! flux-weighted inverse velocity + SCORE_N_1N = -9, & ! (n,1n) rate + SCORE_ABSORPTION = -10, & ! absorption rate + SCORE_FISSION = -11, & ! fission rate + SCORE_NU_FISSION = -12, & ! neutron production rate + SCORE_KAPPA_FISSION = -13, & ! fission energy production rate + SCORE_CURRENT = -14, & ! partial current + SCORE_FLUX_YN = -15, & ! angular moment of flux + SCORE_TOTAL_YN = -16, & ! angular moment of total reaction rate + SCORE_SCATTER_YN = -17, & ! angular flux-weighted scattering moment (0:N) + SCORE_NU_SCATTER_YN = -18, & ! angular flux-weighted nu-scattering moment (0:N) + SCORE_EVENTS = -19, & ! number of events + SCORE_DELAYED_NU_FISSION = -20, & ! delayed neutron production rate + SCORE_INVERSE_VELOCITY = -21 ! flux-weighted inverse velocity ! Maximum scattering order supported integer, parameter :: MAX_ANG_ORDER = 10 diff --git a/src/endf.F90 b/src/endf.F90 index 64f26539a..9f14ea6b7 100644 --- a/src/endf.F90 +++ b/src/endf.F90 @@ -34,8 +34,6 @@ contains string = "nu-scatter-n" case (SCORE_NU_SCATTER_PN) string = "nu-scatter-pn" - case (SCORE_TRANSPORT) - string = "transport" case (SCORE_N_1N) string = "n1n" case (SCORE_ABSORPTION) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index d06fe1f9d..eb8859bec 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3493,13 +3493,9 @@ contains j = j + n_bins - 1 case('transport') - t % score_bins(j) = SCORE_TRANSPORT - - ! Set tally estimator to analog - t % estimator = ESTIMATOR_ANALOG - case ('diffusion') - call fatal_error("Diffusion score no longer supported for tallies, & + call fatal_error("Transport score no longer supported for tallies, & &please remove") + case ('n1n') if (run_CE) then t % score_bins(j) = SCORE_N_1N diff --git a/src/output.F90 b/src/output.F90 index d56de1f3d..76e3cfc02 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -777,7 +777,6 @@ contains score_names(abs(SCORE_TOTAL)) = "Total Reaction Rate" score_names(abs(SCORE_SCATTER)) = "Scattering Rate" score_names(abs(SCORE_NU_SCATTER)) = "Scattering Production Rate" - score_names(abs(SCORE_TRANSPORT)) = "Transport Rate" score_names(abs(SCORE_N_1N)) = "(n,1n) Rate" score_names(abs(SCORE_ABSORPTION)) = "Absorption Rate" score_names(abs(SCORE_FISSION)) = "Fission Rate" diff --git a/src/tally.F90 b/src/tally.F90 index c4eaf30c8..0c41b6f98 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -346,30 +346,6 @@ contains end if - case (SCORE_TRANSPORT) - ! Only analog estimators are available. - ! Skip any event where the particle didn't scatter - if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP - ! get material macros - macro_total = material_xs % total - macro_scatt = material_xs % total - material_xs % absorption - ! Score total rate - p1 scatter rate Note estimator needs to be - ! adjusted since tallying is only occuring when a scatter has - ! happened. Effectively this means multiplying the estimator by - ! total/scatter macro - score = (macro_total - p % mu * macro_scatt) * (ONE / macro_scatt) - - - case (SCORE_N_1N) - ! Only analog estimators are available. - ! Skip any event where the particle didn't scatter - if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP - ! Skip any events where weight of particle changed - if (p % wgt /= p % last_wgt) cycle SCORE_LOOP - ! All events that reach this point are (n,1n) reactions - score = p % last_wgt - - case (SCORE_ABSORPTION) if (t % estimator == ESTIMATOR_ANALOG) then if (survival_biasing) then @@ -1021,20 +997,6 @@ contains end if - case (SCORE_TRANSPORT) - ! Only analog estimators are available. - ! Skip any event where the particle didn't scatter - if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP - ! Score total rate - p1 scatter rate Note estimator needs to be - ! adjusted since tallying is only occuring when a scatter has - ! happened. Effectively this means multiplying the estimator by - ! total/scatter macro - score = (material_xs % total - p % mu * material_xs % elastic) - if (material_xs % elastic /= ZERO) then - score = score / material_xs % elastic - end if - - case (SCORE_ABSORPTION) if (t % estimator == ESTIMATOR_ANALOG) then if (survival_biasing) then diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index be789fc83..61d09f8ea 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -0597eff3fddbc45a09b5b324c9704e540b694b07c136f2040426fdcfe5ec544f036073e4afa34a5fb0fbd721a4c0a609b9b68bf17ce4ec78302023b46b71930c \ No newline at end of file +35e3e1a2c2ef7c707ea585e6cd697ea5e4ae8ec0ec070985dcfd1917a6a569cb7354bee7bbdd259ecdad7198823b4dad98b17452f9cba1122f22635e0aa0a046 \ No newline at end of file diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index fd5eb91a1..904f62a77 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -9f14aaa1694489032b3ce193ad29ecf6ac8976c88c2dd6b26d4c30ae88348e249a9b702b1d39c22204350b8f3bd689800c1b6a6003f19c7bdaf64084a209a2cc \ No newline at end of file +264bc2cb19f7d81dfb1c326ee044f89cd09549b3b6836f334bb06f63bf586058e9825788a90ca7b84c77fd53ee23871727fd0d2b0139cb008192c533be4b84e3 \ No newline at end of file diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index 52d4084fd..0b7fabef2 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -161,7 +161,7 @@ class TalliesTestHarness(PyAPITestHarness): total_tallies[3].estimator = 'collision' questionable_tally = Tally() - questionable_tally.scores = ['transport', 'n1n'] + questionable_tally.scores = ['n1n'] all_nuclide_tallies = [Tally(), Tally()] for t in all_nuclide_tallies: From 4f56453a168e0f2709ff929cea711130dd55ebe3 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 26 May 2016 18:43:49 -0400 Subject: [PATCH 228/259] Removed (n,1n) score from code, replaced with deprecation message --- src/constants.F90 | 27 +++++++++++++-------------- src/endf.F90 | 2 -- src/input_xml.F90 | 10 ++-------- src/output.F90 | 1 - tests/test_tallies/inputs_true.dat | 2 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tallies/test_tallies.py | 4 ---- 7 files changed, 17 insertions(+), 31 deletions(-) diff --git a/src/constants.F90 b/src/constants.F90 index be13f47f2..4354cc423 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -279,7 +279,7 @@ module constants EVENT_ABSORB = 2 ! Tally score type - integer, parameter :: N_SCORE_TYPES = 21 + integer, parameter :: N_SCORE_TYPES = 20 integer, parameter :: & SCORE_FLUX = -1, & ! flux SCORE_TOTAL = -2, & ! total reaction rate @@ -289,19 +289,18 @@ module constants SCORE_SCATTER_PN = -6, & ! system for scoring 0th through nth moment SCORE_NU_SCATTER_N = -7, & ! arbitrary nu-scattering moment SCORE_NU_SCATTER_PN = -8, & ! system for scoring 0th through nth nu-scatter moment - SCORE_N_1N = -9, & ! (n,1n) rate - SCORE_ABSORPTION = -10, & ! absorption rate - SCORE_FISSION = -11, & ! fission rate - SCORE_NU_FISSION = -12, & ! neutron production rate - SCORE_KAPPA_FISSION = -13, & ! fission energy production rate - SCORE_CURRENT = -14, & ! partial current - SCORE_FLUX_YN = -15, & ! angular moment of flux - SCORE_TOTAL_YN = -16, & ! angular moment of total reaction rate - SCORE_SCATTER_YN = -17, & ! angular flux-weighted scattering moment (0:N) - SCORE_NU_SCATTER_YN = -18, & ! angular flux-weighted nu-scattering moment (0:N) - SCORE_EVENTS = -19, & ! number of events - SCORE_DELAYED_NU_FISSION = -20, & ! delayed neutron production rate - SCORE_INVERSE_VELOCITY = -21 ! flux-weighted inverse velocity + SCORE_ABSORPTION = -9, & ! absorption rate + SCORE_FISSION = -10, & ! fission rate + SCORE_NU_FISSION = -11, & ! neutron production rate + SCORE_KAPPA_FISSION = -12, & ! fission energy production rate + SCORE_CURRENT = -13, & ! partial current + SCORE_FLUX_YN = -14, & ! angular moment of flux + SCORE_TOTAL_YN = -15, & ! angular moment of total reaction rate + SCORE_SCATTER_YN = -16, & ! angular flux-weighted scattering moment (0:N) + SCORE_NU_SCATTER_YN = -17, & ! angular flux-weighted nu-scattering moment (0:N) + SCORE_EVENTS = -18, & ! number of events + SCORE_DELAYED_NU_FISSION = -19, & ! delayed neutron production rate + SCORE_INVERSE_VELOCITY = -20 ! flux-weighted inverse velocity ! Maximum scattering order supported integer, parameter :: MAX_ANG_ORDER = 10 diff --git a/src/endf.F90 b/src/endf.F90 index 9f14ea6b7..ad5e97a03 100644 --- a/src/endf.F90 +++ b/src/endf.F90 @@ -34,8 +34,6 @@ contains string = "nu-scatter-n" case (SCORE_NU_SCATTER_PN) string = "nu-scatter-pn" - case (SCORE_N_1N) - string = "n1n" case (SCORE_ABSORPTION) string = "absorption" case (SCORE_FISSION) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index eb8859bec..e2add2027 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3497,14 +3497,8 @@ contains &please remove") case ('n1n') - if (run_CE) then - t % score_bins(j) = SCORE_N_1N - - ! Set tally estimator to analog - t % estimator = ESTIMATOR_ANALOG - else - call fatal_error("Cannot tally n1n rate in multi-group mode!") - end if + call fatal_error("n1n score no longer supported for tallies, & + &please remove") case ('n2n', '(n,2n)') t % score_bins(j) = N_2N diff --git a/src/output.F90 b/src/output.F90 index 76e3cfc02..768019f8d 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -777,7 +777,6 @@ contains score_names(abs(SCORE_TOTAL)) = "Total Reaction Rate" score_names(abs(SCORE_SCATTER)) = "Scattering Rate" score_names(abs(SCORE_NU_SCATTER)) = "Scattering Production Rate" - score_names(abs(SCORE_N_1N)) = "(n,1n) Rate" score_names(abs(SCORE_ABSORPTION)) = "Absorption Rate" score_names(abs(SCORE_FISSION)) = "Fission Rate" score_names(abs(SCORE_NU_FISSION)) = "Nu-Fission Rate" diff --git a/tests/test_tallies/inputs_true.dat b/tests/test_tallies/inputs_true.dat index 61d09f8ea..e3d37be30 100644 --- a/tests/test_tallies/inputs_true.dat +++ b/tests/test_tallies/inputs_true.dat @@ -1 +1 @@ -35e3e1a2c2ef7c707ea585e6cd697ea5e4ae8ec0ec070985dcfd1917a6a569cb7354bee7bbdd259ecdad7198823b4dad98b17452f9cba1122f22635e0aa0a046 \ No newline at end of file +ea09926d8f5c6c96529bf5529f4deb3be78eda2da80adbbf3440147c337587358c2b1823bc72df9463676135573eb481dcd361b735f18365216645ee81092f1e \ No newline at end of file diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 904f62a77..ff3a82845 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -264bc2cb19f7d81dfb1c326ee044f89cd09549b3b6836f334bb06f63bf586058e9825788a90ca7b84c77fd53ee23871727fd0d2b0139cb008192c533be4b84e3 \ No newline at end of file +a0c7d6ca246ecd7dd5fed06373af142390971401c4e97744f29e55810ab9c231c97c4d8947cdf0b3d2df0ae829a9ddf768e5b2d889bbea34f2b6db0e567db884 \ No newline at end of file diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index 0b7fabef2..9e40d4185 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -160,9 +160,6 @@ class TalliesTestHarness(PyAPITestHarness): total_tallies[2].estimator = 'analog' total_tallies[3].estimator = 'collision' - questionable_tally = Tally() - questionable_tally.scores = ['n1n'] - all_nuclide_tallies = [Tally(), Tally()] for t in all_nuclide_tallies: t.filters = [cell_filter] @@ -182,7 +179,6 @@ class TalliesTestHarness(PyAPITestHarness): self._input_set.tallies += flux_tallies self._input_set.tallies += (scatter_tally1, scatter_tally2) self._input_set.tallies += total_tallies - self._input_set.tallies.append(questionable_tally) self._input_set.tallies += all_nuclide_tallies self._input_set.export() From 07be6306ce92bef7de529e592d0440ad226bddd1 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 18 May 2016 16:37:11 -0500 Subject: [PATCH 229/259] Add Surface.evaluate() methods and Region.__contains__ methods --- openmc/region.py | 52 ++++++++++ openmc/surface.py | 246 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 298 insertions(+) diff --git a/openmc/region.py b/openmc/region.py index a2edbeedd..95f59546c 100644 --- a/openmc/region.py +++ b/openmc/region.py @@ -28,6 +28,10 @@ class Region(object): def __invert__(self): return Complement(self) + @abstractmethod + def __contains__(self, point): + return False + @abstractmethod def __str__(self): return '' @@ -229,6 +233,22 @@ class Intersection(Region): def __init__(self, *nodes): self.nodes = list(nodes) + def __contains__(self, point): + """Check whether a point is contained in the region. + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinates, :math:`(x',y',z')`, of the point + + Returns + ------- + bool + Whether the point is in the region + + """ + return all(point in n for n in self.nodes) + def __str__(self): return '(' + ' '.join(map(str, self.nodes)) + ')' @@ -281,6 +301,22 @@ class Union(Region): def __init__(self, *nodes): self.nodes = list(nodes) + def __contains__(self, point): + """Check whether a point is contained in the region. + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinates, :math:`(x',y',z')`, of the point + + Returns + ------- + bool + Whether the point is in the region + + """ + return any(point in n for n in self.nodes) + def __str__(self): return '(' + ' | '.join(map(str, self.nodes)) + ')' @@ -336,6 +372,22 @@ class Complement(Region): def __init__(self, node): self.node = node + def __contains__(self, point): + """Check whether a point is contained in the region. + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinates, :math:`(x',y',z')`, of the point + + Returns + ------- + bool + Whether the point is in the region + + """ + return point not in self.node + def __str__(self): return '~' + str(self.node) diff --git a/openmc/surface.py b/openmc/surface.py index 193780192..76f0d82e7 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -295,6 +295,25 @@ class Plane(Surface): self._periodic_surface = periodic_surface periodic_surface._periodic_surface = self + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`Ax' + By' + Cz' - d` + + """ + + x, y, z = point + return self.a*x + self.b*y + self.c*z - self.d + def create_xml_subelement(self): element = super(Plane, self).create_xml_subelement() @@ -392,6 +411,23 @@ class XPlane(Plane): return (np.array([self.x0, -np.inf, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`x' - x_0` + + """ + return point[0] - self.x0 + class YPlane(Plane): """A plane perpendicular to the y axis of the form :math:`y - y_0 = 0` @@ -481,6 +517,23 @@ class YPlane(Plane): return (np.array([-np.inf, self.y0, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`y' - y_0` + + """ + return point[1] - self.y0 + class ZPlane(Plane): """A plane perpendicular to the z axis of the form :math:`z - z_0 = 0` @@ -570,6 +623,23 @@ class ZPlane(Plane): return (np.array([-np.inf, -np.inf, self.z0]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`z' - z_0` + + """ + return point[2] - self.z0 + class Cylinder(Surface): """A cylinder whose length is parallel to the x-, y-, or z-axis. @@ -728,6 +798,25 @@ class XCylinder(Cylinder): return (np.array([-np.inf, -np.inf, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(y' - y_0)^2 + (z' - z_0)^2 - R^2` + + """ + y = point[1] - self.y0 + z = point[2] - self.z0 + return y**2 + z**2 - self.r**2 + class YCylinder(Cylinder): """An infinite cylinder whose length is parallel to the y-axis of the form @@ -831,6 +920,25 @@ class YCylinder(Cylinder): return (np.array([-np.inf, -np.inf, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(x' - x_0)^2 + (z' - z_0)^2 - R^2` + + """ + x = point[0] - self.x0 + z = point[2] - self.z0 + return x**2 + z**2 - self.r**2 + class ZCylinder(Cylinder): """An infinite cylinder whose length is parallel to the z-axis of the form @@ -934,6 +1042,25 @@ class ZCylinder(Cylinder): return (np.array([-np.inf, -np.inf, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(x' - x_0)^2 + (y' - y_0)^2 - R^2` + + """ + x = point[0] - self.x0 + y = point[1] - self.y0 + return x**2 + y**2 - self.r**2 + class Sphere(Surface): """A sphere of the form :math:`(x - x_0)^2 + (y - y_0)^2 + (z - z_0)^2 = R^2`. @@ -1062,6 +1189,26 @@ class Sphere(Surface): return (np.array([-np.inf, -np.inf, -np.inf]), np.array([np.inf, np.inf, np.inf])) + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(x' - x_0)^2 + (y' - y_0)^2 + (z' - z_0)^2 - R^2` + + """ + x = point[0] - self.x0 + y = point[1] - self.y0 + z = point[2] - self.z0 + return x**2 + y**2 + z**2 - self.r**2 + class Cone(Surface): """A conical surface parallel to the x-, y-, or z-axis. @@ -1214,6 +1361,26 @@ class XCone(Cone): self._type = 'x-cone' + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(y' - y_0)^2 + (z' - z_0)^2 - R^2(x' - x_0)^2` + + """ + x = point[0] - self.x0 + y = point[1] - self.y0 + z = point[2] - self.z0 + return y**2 + z**2 - self.r2*x**2 + class YCone(Cone): """A cone parallel to the y-axis of the form :math:`(x - x_0)^2 + (z - z_0)^2 = @@ -1270,6 +1437,26 @@ class YCone(Cone): self._type = 'y-cone' + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(x' - x_0)^2 + (z' - z_0)^2 - R^2(y' - y_0)^2` + + """ + x = point[0] - self.x0 + y = point[1] - self.y0 + z = point[2] - self.z0 + return x**2 + z**2 - self.r2*y**2 + class ZCone(Cone): """A cone parallel to the x-axis of the form :math:`(x - x_0)^2 + (y - y_0)^2 = @@ -1326,6 +1513,26 @@ class ZCone(Cone): self._type = 'z-cone' + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`(x' - x_0)^2 + (y' - y_0)^2 - R^2(z' - z_0)^2` + + """ + x = point[0] - self.x0 + y = point[1] - self.y0 + z = point[2] - self.z0 + return x**2 + y**2 - self.r2*z**2 + class Quadric(Surface): """A surface of the form :math:`Ax^2 + By^2 + Cz^2 + Dxy + Eyz + Fxz + Gx + Hy + @@ -1471,6 +1678,27 @@ class Quadric(Surface): check_type('k coefficient', k, Real) self._coefficients['k'] = k + def evaluate(self, point): + """Evaluate the surface equation at a given point. + + Parameters + ---------- + point : 3-tuple of float + The Cartesian coordinates, :math:`(x',y',z')`, at which the surface + equation should be evaluated. + + Returns + ------- + float + :math:`Ax'^2 + By'^2 + Cz'^2 + Dx'y' + Ey'z' + Fx'z' + Gx' + Hy' + + Jz' + K = 0` + + """ + x, y, z = point + return x*(self.a*x + self.d*y + self.g) + \ + y*(self.b*y + self.e*z + self.h) + \ + z*(self.c*z + self.f*x + self.j) + self.k + class Halfspace(Region): """A positive or negative half-space region. @@ -1516,6 +1744,24 @@ class Halfspace(Region): def __invert__(self): return -self.surface if self.side == '+' else +self.surface + def __contains__(self, point): + """Check whether a point is contained in the half-space. + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinates, :math:`(x',y',z')`, of the point + + Returns + ------- + bool + Whether the point is in the half-space + + """ + + val = self.surface.evaluate(point) + return val >= 0. if self.side == '+' else val < 0. + @property def surface(self): return self._surface From e8d4dbd5f419ce52ff14355b9dbf59ef0a0e26b8 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 18 May 2016 16:39:35 -0500 Subject: [PATCH 230/259] Add Intersection.__iter__ and Union.__iter__ methods --- openmc/region.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/openmc/region.py b/openmc/region.py index 95f59546c..9e1011271 100644 --- a/openmc/region.py +++ b/openmc/region.py @@ -223,7 +223,7 @@ class Intersection(Region): Attributes ---------- - nodes : tuple of openmc.Region + nodes : list of openmc.Region Regions to take the intersection of bounding_box : tuple of numpy.array Lower-left and upper-right coordinates of an axis-aligned bounding box @@ -233,6 +233,10 @@ class Intersection(Region): def __init__(self, *nodes): self.nodes = list(nodes) + def __iter__(self): + for n in self.nodes: + yield n + def __contains__(self, point): """Check whether a point is contained in the region. @@ -301,6 +305,10 @@ class Union(Region): def __init__(self, *nodes): self.nodes = list(nodes) + def __iter__(self): + for n in self.nodes: + yield n + def __contains__(self, point): """Check whether a point is contained in the region. From 168f1269fdcd1ee73cc88090431c6686ab085b09 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 19 May 2016 10:25:27 -0500 Subject: [PATCH 231/259] Add Cell.__contains__ and Cell.rotation_matrix --- openmc/cell.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index 8ddae6371..8f8ebd936 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -1,9 +1,12 @@ from collections import OrderedDict, Iterable +from math import cos, sin, pi from numbers import Real, Integral from xml.etree import ElementTree as ET import sys import warnings +import numpy as np + import openmc import openmc.checkvalue as cv from openmc.surface import Halfspace @@ -83,6 +86,7 @@ class Cell(object): self._type = None self._region = None self._rotation = None + self._rotation_matrix = None self._translation = None self._offsets = None self._distribcell_index = None @@ -92,6 +96,9 @@ class Cell(object): if region is not None: self.region = region + def __contains__(self, point): + return point in self.region + def __eq__(self, other): if not isinstance(other, Cell): return False @@ -124,6 +131,8 @@ class Cell(object): if isinstance(self._fill, openmc.Material): string += '{0: <16}{1}{2}\n'.format('\tMaterial', '=\t', self._fill._id) + elif isinstance(self._fill, basestring): + string += '{0: <16}=\tvoid\n'.format('\tMaterial') elif isinstance(self._fill, Iterable): string += '{0: <16}{1}'.format('\tMaterial', '=\t') string += '[' @@ -179,6 +188,10 @@ class Cell(object): def rotation(self): return self._rotation + @property + def rotation_matrix(self): + return self._rotation_matrix + @property def translation(self): return self._translation @@ -249,13 +262,23 @@ class Cell(object): cv.check_type('cell rotation', rotation, Iterable, Real) cv.check_length('cell rotation', rotation, 3) - self._rotation = rotation + self._rotation = np.asarray(rotation) + + # Save rotation matrix + phi, theta, psi = self.rotation*(-pi/180.) + c3, s3 = cos(phi), sin(phi) + c2, s2 = cos(theta), sin(theta) + c1, s1 = cos(psi), sin(psi) + self._rotation_matrix = np.array([ + [c1*c2, c1*s2*s3 - c3*s1, s1*s3 + c1*c3*s2], + [c2*s1, c1*c3 + s1*s2*s3, c3*s1*s2 - c1*s3], + [-s2, c2*s3, c2*c3]]) @translation.setter def translation(self, translation): cv.check_type('cell translation', translation, Iterable, Real) cv.check_length('cell translation', translation, 3) - self._translation = translation + self._translation = np.asarray(translation) @offsets.setter def offsets(self, offsets): From e40a369693e48d5f7b5a2e0d3edae5203f938e5a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 19 May 2016 20:14:44 -0500 Subject: [PATCH 232/259] Add geometry plotting capability and restructure lattice attributes --- .../pythonapi/examples/mgxs-part-iii.ipynb | 13 +- .../pythonapi/examples/mgxs-part-iv.ipynb | 1 - .../examples/pandas-dataframes.ipynb | 11 +- examples/python/lattice/nested/build-xml.py | 2 - examples/python/lattice/simple/build-xml.py | 1 - openmc/cell.py | 5 +- openmc/geometry.py | 17 + openmc/lattice.py | 444 +++++++++++++++--- openmc/opencg_compatible.py | 9 +- openmc/summary.py | 13 +- openmc/universe.py | 105 +++++ tests/input_set.py | 4 - .../test_asymmetric_lattice.py | 1 - tests/test_distribmat/test_distribmat.py | 1 - 14 files changed, 527 insertions(+), 100 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index a38677945..5f0acde3f 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -260,7 +260,6 @@ "source": [ "# Create fuel assembly Lattice\n", "assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n", - "assembly.dimension = (17, 17)\n", "assembly.pitch = (1.26, 1.26)\n", "assembly.lower_left = [-1.26 * 17. / 2.0] * 2" ] @@ -1597,21 +1596,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", - "language": "python2", - "name": "python2" + "display_name": "Python 3", + "language": "python", + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.11" + "pygments_lexer": "ipython3", + "version": "3.5.1" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index b330e7ace..65b3f44dc 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -244,7 +244,6 @@ "source": [ "# Create fuel assembly Lattice\n", "assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n", - "assembly.dimension = (17, 17)\n", "assembly.pitch = (1.26, 1.26)\n", "assembly.lower_left = [-1.26 * 17. / 2.0] * 2" ] diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index b88cf9949..2c222ad6e 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -199,7 +199,6 @@ "source": [ "# Create fuel assembly Lattice\n", "assembly = openmc.RectLattice(name='1.6% Fuel - 0BA')\n", - "assembly.dimension = (17, 17)\n", "assembly.pitch = (1.26, 1.26)\n", "assembly.lower_left = [-1.26 * 17. / 2.0] * 2\n", "assembly.universes = [[pin_cell_universe] * 17] * 17" @@ -2194,21 +2193,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.5.1" } }, "nbformat": 4, diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index b2d611d34..a964d882c 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -98,14 +98,12 @@ univ4.add_cell(cell2) # Instantiate nested Lattices lattice1 = openmc.RectLattice(lattice_id=4, name='4x4 assembly') -lattice1.dimension = [2, 2] lattice1.lower_left = [-1., -1.] lattice1.pitch = [1., 1.] lattice1.universes = [[univ1, univ2], [univ2, univ3]] lattice2 = openmc.RectLattice(lattice_id=6, name='4x4 core') -lattice2.dimension = [2, 2] lattice2.lower_left = [-2., -2.] lattice2.pitch = [2., 2.] lattice2.universes = [[univ4, univ4], diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index 65c355479..4961b96b8 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -94,7 +94,6 @@ root.add_cell(cell1) # Instantiate a Lattice lattice = openmc.RectLattice(lattice_id=5) -lattice.dimension = [4, 4] lattice.lower_left = [-2., -2.] lattice.pitch = [1., 1.] lattice.universes = [[univ1, univ2, univ1, univ2], diff --git a/openmc/cell.py b/openmc/cell.py index 8f8ebd936..29f85754a 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -97,7 +97,10 @@ class Cell(object): self.region = region def __contains__(self, point): - return point in self.region + if self.region is None: + return True + else: + return point in self.region def __eq__(self, other): if not isinstance(other, Cell): diff --git a/openmc/geometry.py b/openmc/geometry.py index ed437f6e1..7eddadfc7 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -62,6 +62,23 @@ class Geometry(object): tree.write("geometry.xml", xml_declaration=True, encoding='utf-8', method="xml") + def find(self, point): + """Find cells/universes/lattices which contain a given point + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinatesof the point + + Returns + ------- + list + Sequence of universes, cells, and lattices which are traversed to + find the given point + + """ + return self.root_universe.find(point) + def get_cell_instance(self, path): """Return the instance number for the final cell in a geometry path. diff --git a/openmc/lattice.py b/openmc/lattice.py index af6c14a6a..d8deddc42 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -1,8 +1,12 @@ +from __future__ import division + import abc from collections import OrderedDict, Iterable +from math import sqrt, floor from numbers import Real, Integral from xml.etree import ElementTree as ET import sys +import warnings import numpy as np @@ -113,12 +117,6 @@ class Lattice(object): cv.check_type('outer universe', outer, openmc.Universe) self._outer = outer - @universes.setter - def universes(self, universes): - cv.check_iterable_type('lattice universes', universes, openmc.Universe, - min_depth=2, max_depth=3) - self._universes = np.asarray(universes) - def get_unique_universes(self): """Determine all unique universes in the lattice @@ -239,6 +237,11 @@ class Lattice(object): class RectLattice(Lattice): """A lattice consisting of rectangular prisms. + To completely define a rectangular lattice, the + :attr:`RectLattice.lower_left` :attr:`RectLattice.pitch`, + :attr:`RectLattice.outer`, and :attr:`RectLattice.universes` properties need + to be set. + Parameters ---------- lattice_id : int, optional @@ -253,12 +256,6 @@ class RectLattice(Lattice): Unique identifier for the lattice name : str Name of the lattice - dimension : Iterable of int - An array of two or three integers representing the number of lattice - cells in the x- and y- (and z-) directions, respectively. - lower_left : Iterable of float - The coordinates of the lower-left corner of the lattice. If the lattice - is two-dimensional, only the x- and y-coordinates are specified. pitch : Iterable of float Pitch of the lattice in the x, y, and (if applicable) z directions in cm. @@ -266,7 +263,25 @@ class RectLattice(Lattice): A universe to fill all space outside the lattice universes : Iterable of Iterable of openmc.Universe A two- or three-dimensional list/array of universes filling each element - of the lattice + of the lattice. The first dimension corresponds to the z-direction (if + applicable), the second dimension corresponds to the y-direction, and + the third dimension corresponds to the x-direction. Note that for the + y-direction, a higher index corresponds to a lower physical + y-value. Each z-slice in the array can be thought of as a top-down view + of the lattice. + lower_left : Iterable of float + The Cartesian coordinates of the lower-left corner of the lattice. If + the lattice is two-dimensional, only the x- and y-coordinates are + specified. + indices : list of tuple + A list of all possible (z,y,x) or (y,x) lattice element indices. These + indices correspond to indices in the :attr:`RectLattice.universes` + property. + ndim : int + The number of dimensions of the lattice + shape : Iterable of int + An array of two or three integers representing the number of lattice + cells in the x- and y- (and z-) directions, respectively. """ @@ -274,7 +289,6 @@ class RectLattice(Lattice): super(RectLattice, self).__init__(lattice_id, name) # Initialize Lattice class attributes - self._dimension = None self._lower_left = None self._offsets = None @@ -283,7 +297,7 @@ class RectLattice(Lattice): return False elif not super(RectLattice, self).__eq__(other): return False - elif self.dimension != other.dimension: + elif self.shape != other.shape: return False elif self.lower_left != other.lower_left: return False @@ -300,8 +314,8 @@ class RectLattice(Lattice): string = 'RectLattice\n' string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) - string += '{0: <16}{1}{2}\n'.format('\tDimension', '=\t', - self._dimension) + string += '{0: <16}{1}{2}\n'.format('\tShape', '=\t', + self.shape) string += '{0: <16}{1}{2}\n'.format('\tLower Left', '=\t', self._lower_left) string += '{0: <16}{1}{2}\n'.format('\tPitch', '=\t', self._pitch) @@ -320,7 +334,7 @@ class RectLattice(Lattice): string += '{0} '.format(universe._id) # Add a newline character every time we reach end of row of cells - if (i+1) % self._dimension[-1] == 0: + if (i+1) % self.shape[0] == 0: string += '\n' string = string.rstrip('\n') @@ -333,7 +347,7 @@ class RectLattice(Lattice): string += '{0} '.format(offset) # Add a newline character when we reach end of row of cells - if (i+1) % self._dimension[-1] == 0: + if (i+1) % self.shape[0] == 0: string += '\n' string = string.rstrip('\n') @@ -341,24 +355,29 @@ class RectLattice(Lattice): return string @property - def dimension(self): - return self._dimension + def indices(self): + if self.ndim == 2: + return list(np.broadcast(*np.ogrid[ + :self.shape[1], :self.shape[0]])) + else: + return list(np.broadcast(*np.ogrid[ + :self.shape[2], :self.shape[1], :self.shape[0]])) @property def lower_left(self): return self._lower_left + @property + def ndim(self): + return len(self.pitch) + @property def offsets(self): return self._offsets - @dimension.setter - def dimension(self, dimension): - cv.check_type('lattice dimension', dimension, Iterable, Integral) - cv.check_length('lattice dimension', dimension, 2, 3) - for dim in dimension: - cv.check_greater_than('lattice dimension', dim, 0) - self._dimension = dimension + @property + def shape(self): + return self._universes.shape[::-1] @lower_left.setter def lower_left(self, lower_left): @@ -379,8 +398,13 @@ class RectLattice(Lattice): cv.check_greater_than('lattice pitch', dim, 0.0) self._pitch = pitch - def get_cell_instance(self, path, distribcell_index): + @Lattice.universes.setter + def universes(self, universes): + cv.check_iterable_type('lattice universes', universes, openmc.Universe, + min_depth=2, max_depth=3) + self._universes = np.asarray(universes) + def get_cell_instance(self, path, distribcell_index): # Extract the lattice element from the path next_index = path.index('-') lat_id_indices = path[:next_index] @@ -395,7 +419,7 @@ class RectLattice(Lattice): lat_z = int(i.split(',')[2]) - 1 # For 2D Lattices - if len(self._dimension) == 2: + if self.ndim == 2: offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] offset += self._universes[lat_x][lat_y].get_cell_instance(path, distribcell_index) @@ -408,6 +432,128 @@ class RectLattice(Lattice): return offset + def find_element(self, point): + """Determine index of lattice element and local coordinates for a point + + Parameters + ---------- + point : Iterable of float + Cartesian coordinates of point + + Returns + ------- + 2- or 3-tuple of int + A tuple of the corresponding (x,y,z) lattice element indices + 3-tuple of float + Carestian coordinates of the point in the corresponding lattice + element coordinate system + + """ + ix = floor((point[0] - self._lower_left[0])/self._pitch[0]) + iy = floor((point[1] - self._lower_left[1])/self._pitch[1]) + if self.ndim == 2: + idx = (ix, iy) + else: + iz = floor((point[2] - self._lower_left[2])/self._pitch[2]) + idx = (ix, iy, iz) + return idx, self.get_local_coordinates(point, idx) + + def get_local_coordinates(self, point, idx): + """Determine local coordinates of a point within a lattice element + + Parameters + ---------- + point : Iterable of float + Cartesian coordinates of point + idx : Iterable of int + (x,y,z) indices of lattice element. If the lattice is 2D, the z + index can be omitted. + + Returns + ------- + 3-tuple of float + Cartesian coordinates of point in the lattice element coordinate + system + + """ + x = point[0] - (self._lower_left[0] + (idx[0] + 0.5)*self._pitch[0]) + y = point[1] - (self._lower_left[1] + (idx[1] + 0.5)*self._pitch[1]) + if self.ndim == 2: + z = point[2] + else: + z = point[2] - (self._lower_left[2] + (idx[2] + 0.5)*self._pitch[2]) + return (x, y, z) + + def get_universe_index(self, idx): + """Return index in the universes array corresponding to a lattice element index + + Parameters + ---------- + idx : Iterable of int + Lattice element indices in the :math:`(x,y,z)` coordinate system + + Returns + ------- + 2- or 3-tuple of int + Indices used when setting the :attr:`RectLattice.universes` property + + """ + max_y = self.shape[1] - 1 + if self.ndim == 2: + x, y = idx + return (max_y - y, x) + else: + x, y, z = idx + return (z, max_y - y, x) + + def is_valid_index(self, idx): + """Determine whether lattice element index is within defined range + + Parameters + ---------- + idx : Iterable of int + Lattice element indices in the :math:`(x,y,z)` coordinate system + + Returns + ------- + bool + Whether index is valid + + """ + if self.ndim == 2: + return (0 <= idx[0] < self.shape[0] and + 0 <= idx[1] < self.shape[1]) + else: + return (0 <= idx[0] < self.shape[0] and + 0 <= idx[1] < self.shape[1] and + 0 <= idx[2] < self.shape[2]) + + def find(self, point): + """Find cells/universes/lattices which contain a given point + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinatesof the point + + Returns + ------- + list + Sequence of universes, cells, and lattices which are traversed to + find the given point + + """ + idx, p = self.find_element(point) + if self.is_valid_index(idx): + idx_u = self.get_universe_index(idx) + u = self.universes[idx_u] + else: + if self.outer is not None: + u = self.outer + else: + return [] + return [(self, idx)] + u.find(p) + def create_xml_subelement(self, xml_element): # Determine if XML element already contains subelement for this Lattice @@ -436,7 +582,7 @@ class RectLattice(Lattice): # Export Lattice cell dimensions dimension = ET.SubElement(lattice_subelement, "dimension") - dimension.text = ' '.join(map(str, self._dimension)) + dimension.text = ' '.join(map(str, self.shape)) # Export Lattice lower left lower_left = ET.SubElement(lattice_subelement, "lower_left") @@ -446,10 +592,10 @@ class RectLattice(Lattice): universe_ids = '\n' # 3D Lattices - if len(self._dimension) == 3: - for z in range(self._dimension[2]): - for y in range(self._dimension[1]): - for x in range(self._dimension[0]): + if self.ndim == 3: + for z in range(self.shape[2]): + for y in range(self.shape[1]): + for x in range(self.shape[0]): universe = self._universes[z][y][x] # Append Universe ID to the Lattice XML subelement @@ -466,8 +612,8 @@ class RectLattice(Lattice): # 2D Lattices else: - for y in range(self._dimension[1]): - for x in range(self._dimension[0]): + for y in range(self.shape[1]): + for x in range(self.shape[0]): universe = self._universes[y][x] # Append Universe ID to Lattice XML subelement @@ -492,6 +638,10 @@ class RectLattice(Lattice): class HexLattice(Lattice): """A lattice consisting of hexagonal prisms. + To completely define a hexagonal lattice, the :attr:`HexLattice.center`, + :attr:`HexLattice.pitch`, :attr:`HexLattice.universes`, and + :attr:`HexLattice.outer` properties need to be set. + Parameters ---------- lattice_id : int, optional @@ -506,26 +656,31 @@ class HexLattice(Lattice): Unique identifier for the lattice name : str Name of the lattice - num_rings : int - Number of radial ring positions in the xy-plane - num_axial : int - Number of positions along the z-axis. - center : Iterable of float - Coordinates of the center of the lattice. If the lattice does not have - axial sections then only the x- and y-coordinates are specified pitch : Iterable of float Pitch of the lattice in cm. The first item in the iterable specifies the pitch in the radial direction and, if the lattice is 3D, the second item in the iterable specifies the pitch in the axial direction. outer : openmc.Universe A universe to fill all space outside the lattice - universes : Iterable of Iterable of openmc.Universe + universes : Nested Iterable of openmc.Universe A two- or three-dimensional list/array of universes filling each element of the lattice. Each sub-list corresponds to one ring of universes and should be ordered from outermost ring to innermost ring. The universes within each sub-list are ordered from the "top" and proceed in a clockwise fashion. The :meth:`HexLattice.show_indices` method can be used to help figure out indices for this property. + center : Iterable of float + Coordinates of the center of the lattice. If the lattice does not have + axial sections then only the x- and y-coordinates are specified + indices : list of tuple + A list of all possible (z,r,i) or (r,i) lattice element indices that are + possible, where z is the axial index, r is in the ring index (starting + from the outermost ring), and i is the index with a ring starting from + the top and proceeding clockwise. + num_rings : int + Number of radial ring positions in the xy-plane + num_axial : int + Number of positions along the z-axis. """ @@ -597,17 +752,15 @@ class HexLattice(Lattice): def center(self): return self._center - @num_rings.setter - def num_rings(self, num_rings): - cv.check_type('number of rings', num_rings, Integral) - cv.check_greater_than('number of rings', num_rings, 0) - self._num_rings = num_rings - - @num_axial.setter - def num_axial(self, num_axial): - cv.check_type('number of axial', num_axial, Integral) - cv.check_greater_than('number of axial', num_axial, 0) - self._num_axial = num_axial + @property + def indices(self): + if self.num_axial is None: + return [(r, i) for r in range(self._num_rings) + for i in range(max(6*(self._num_rings - 1 - r), 1))] + else: + return [(z, r, i) for z in range(self._num_axial) + for r in range(self._num_rings) + for i in range(max(6*(self._num_rings - 1 - r), 1))] @center.setter def center(self, center): @@ -625,8 +778,9 @@ class HexLattice(Lattice): @Lattice.universes.setter def universes(self, universes): - # Call Lattice.universes parent class setter property - Lattice.universes.fset(self, universes) + cv.check_iterable_type('lattice universes', universes, openmc.Universe, + min_depth=2, max_depth=3) + self._universes = universes # NOTE: This routine assumes that the user creates a "ragged" list of # lists, where each sub-list corresponds to one ring of Universes. @@ -649,14 +803,14 @@ class HexLattice(Lattice): # Set the number of axial positions. if n_dims == 3: - self.num_axial = len(self._universes) + self._num_axial = len(self._universes) else: self._num_axial = None # Set the number of rings and make sure this number is consistent for # all axial positions. if n_dims == 3: - self.num_rings = len(self._universes[0]) + self._num_rings = len(self._universes[0]) for rings in self._universes: if len(rings) != self._num_rings: msg = 'HexLattice ID={0:d} has an inconsistent number of ' \ @@ -664,7 +818,7 @@ class HexLattice(Lattice): raise ValueError(msg) else: - self.num_rings = len(self._universes) + self._num_rings = len(self._universes) # Make sure there are the correct number of elements in each ring. if n_dims == 3: @@ -705,6 +859,170 @@ class HexLattice(Lattice): 6*(self._num_rings - 1 - r)) raise ValueError(msg) + def find_element(self, point): + """Determine index of lattice element and local coordinates for a point + + Parameters + ---------- + point : Iterable of float + Cartesian coordinates of point + + Returns + ------- + 3-tuple of int + Indices of corresponding lattice element in (x,:math:`alpha`,z) + bases + numpy.ndarray + Carestian coordinates of the point in the corresponding lattice + element coordinate system + + """ + # Convert coordinates to skewed bases + x = point[0] - self._center[0] + y = point[1] - self._center[1] + if self._num_axial is None: + iz = 1 + else: + z = point[2] - self._center[2] + iz = floor(z/self._pitch[1] + 0.5*self._num_axial) + alpha = y - x/sqrt(3.) + ix = floor(x/(sqrt(0.75) * self._pitch[0])) + ia = floor(alpha/self._pitch[0]) + + # Check four lattice elements to see which one is closest based on local + # coordinates + d_min = np.inf + for idx in [(ix, ia, iz), (ix + 1, ia, iz), (ix, ia + 1, iz), + (ix + 1, ia + 1, iz)]: + p = self.get_local_coordinates(point, idx) + d = p[0]**2 + p[1]**2 + if d < d_min: + d_min = d + idx_min = idx + p_min = p + + return idx_min, p_min + + def get_local_coordinates(self, point, idx): + """Determine local coordinates of a point within a lattice element + + Parameters + ---------- + point : Iterable of float + Cartesian coordinates of point + idx : Iterable of int + Indices of lattice element in (x,:math:`alpha`,z) bases + + Returns + ------- + 3-tuple of float + Cartesian coordinates of point in the lattice element coordinate + system + + """ + x = point[0] - (self._center[0] + sqrt(0.75)*self._pitch[0]*idx[0]) + y = point[1] - (self._center[1] + (0.5*idx[0] + idx[1])*self._pitch[0]) + if self._num_axial is None: + z = point[2] + else: + z = point[2] - (self._center[2] + (idx[2] + 0.5 - 0.5*self._num_axial)* + self._pitch[1]) + return (x, y, z) + + def get_universe_index(self, idx): + """Return index in the universes array corresponding to a lattice element index + + Parameters + ---------- + idx : Iterable of int + Lattice element indices in the :math:`(x,\alpha,z)` coordinate + system + + Returns + ------- + 2- or 3-tuple of int + Indices used when setting the :attr:`HexLattice.universes` property + + """ + + # First we determine which ring the index corresponds to. + x = idx[0] + a = idx[1] + z = -a - x + g = max(abs(x), abs(a), abs(z)) + + # Next we use a clever method to figure out where along the ring we are. + i_ring = self._num_rings - 1 - g + if x >= 0: + if a >= 0: + i_within = x + else: + i_within = 2*g + z + else: + if a <= 0: + i_within = 3*g - x + else: + i_within = 5*g - z + + if self.num_axial is None: + return (i_ring, i_within) + else: + return (idx[2], i_ring, i_within) + + def is_valid_index(self, idx): + """Determine whether lattice element index is within defined range + + Parameters + ---------- + idx : Iterable of int + Lattice element indices in the :math:`(x,\alpha,z)` coordinate + system + + Returns + ------- + bool + Whether index is valid + + """ + x = idx[0] + y = idx[1] + z = 0 - y - x + g = max(abs(x), abs(y), abs(z)) + if self.num_axial is None: + return g < self.num_rings + else: + return g < self.num_rings and 0 <= idx[2] < self.num_axial + + def find(self, point): + """Find cells/universes/lattices which contain a given point + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinatesof the point + + Returns + ------- + list + Sequence of universes, cells, and lattices which are traversed to + find the given point + + """ + idx, p = self.find_element(point) + if self.is_valid_index(idx): + idx_u = self.get_universe_index(idx) + if self.num_axial is None: + u = self.universes[idx_u[0]][idx_u[1]] + else: + u = self.universes[idx_u[0]][idx_u[1]][idx_u[2]] + else: + if self.outer is not None: + u = self.outer + else: + return [] + + return [(self, idx)] + u.find(p) + def create_xml_subelement(self, xml_element): # Determine if XML element already contains subelement for this Lattice path = './hex_lattice[@id=\'{0}\']'.format(self._id) @@ -736,8 +1054,8 @@ class HexLattice(Lattice): lattice_subelement.set("n_axial", str(self._num_axial)) # Export Lattice cell center - dimension = ET.SubElement(lattice_subelement, "center") - dimension.text = ' '.join(map(str, self._center)) + center = ET.SubElement(lattice_subelement, "center") + center.text = ' '.join(map(str, self._center)) # Export the Lattice nested Universe IDs. diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 562fe9cad..c6b364d7c 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -861,8 +861,8 @@ def get_opencg_lattice(openmc_lattice): universes = new_universes # Initialize an empty array for the OpenCG nested Universes in this Lattice - universe_array = np.ndarray(tuple(np.array(dimension)[::-1]), - dtype=opencg.Universe) + universe_array = np.empty(tuple(np.array(dimension)[::-1]), + dtype=opencg.Universe) # Create OpenCG Universes for each unique nested Universe in this Lattice unique_universes = openmc_lattice.get_unique_universes() @@ -929,8 +929,8 @@ def get_openmc_lattice(opencg_lattice): outer = opencg_lattice.outside # Initialize an empty array for the OpenMC nested Universes in this Lattice - universe_array = np.ndarray(tuple(np.array(dimension)[::-1]), - dtype=openmc.Universe) + universe_array = np.empty(tuple(np.array(dimension)[::-1]), + dtype=openmc.Universe) # Create OpenMC Universes for each unique nested Universe in this Lattice unique_universes = opencg_lattice.get_unique_universes() @@ -953,7 +953,6 @@ def get_openmc_lattice(opencg_lattice): np.array(dimension, dtype=np.float64))) / -2.0 openmc_lattice = openmc.RectLattice(lattice_id=lattice_id) - openmc_lattice.dimension = dimension openmc_lattice.pitch = width openmc_lattice.universes = universe_array openmc_lattice.lower_left = lower_left diff --git a/openmc/summary.py b/openmc/summary.py index 6fb6b7000..c3277809a 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -358,7 +358,6 @@ class Summary(object): # Create the Lattice lattice = openmc.RectLattice(lattice_id=lattice_id, name=name) - lattice.dimension = tuple(dimension) lattice.lower_left = lower_left lattice.pitch = pitch @@ -368,7 +367,7 @@ class Summary(object): # Build array of Universe pointers for the Lattice universes = \ - np.ndarray(tuple(universe_ids.shape), dtype=openmc.Universe) + np.empty(tuple(universe_ids.shape), dtype=openmc.Universe) for z in range(universe_ids.shape[0]): for y in range(universe_ids.shape[1]): @@ -403,8 +402,6 @@ class Summary(object): # Create the Lattice lattice = openmc.HexLattice(lattice_id=lattice_id, name=name) - lattice.num_rings = n_rings - lattice.num_axial = n_axial lattice.center = center lattice.pitch = pitch @@ -417,12 +414,12 @@ class Summary(object): # (x, alpha, z) to the Python API's format of a ragged nested # list of (z, ring, theta). universes = [] - for z in range(lattice.num_axial): + for z in range(n_axial): # Add a list for this axial level. universes.append([]) - x = lattice.num_rings - 1 - a = 2*lattice.num_rings - 2 - for r in range(lattice.num_rings - 1, 0, -1): + x = n_rings - 1 + a = 2*n_rings - 2 + for r in range(n_rings - 1, 0, -1): # Add a list for this ring. universes[-1].append([]) diff --git a/openmc/universe.py b/openmc/universe.py index 770e789da..d8e1c4dac 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -1,6 +1,7 @@ from collections import OrderedDict, Iterable from numbers import Integral from xml.etree import ElementTree as ET +import random import sys import warnings @@ -124,6 +125,110 @@ class Universe(object): else: self._name = '' + def find(self, point): + """Find cells/universes/lattices which contain a given point + + Parameters + ---------- + point : 3-tuple of float + Cartesian coordinatesof the point + + Returns + ------- + list + Sequence of universes, cells, and lattices which are traversed to + find the given point + + """ + p = np.asarray(point) + for cell in self._cells.values(): + if p in cell: + if cell._type in ('normal', 'void'): + return [self, cell] + elif cell._type == 'fill': + if cell.translation is not None: + p -= cell.translation + if cell.rotation is not None: + p[:] = cell.rotation_matrix.dot(p) + return [self, cell] + cell.fill.find(p) + else: + return [self, cell] + cell.fill.find(p) + return [] + + def plot(self, center=(0., 0., 0.), width=(1., 1.), pixels=(200, 200), + basis='xy', color_by='cell'): + """Display a slice plot of the universe. + + Parameters + ---------- + center : Iterable of float + Coordinates at the center of the plot + width : Iterable of float + Width of the plot in each basis direction + pixels : Iterable of int + Number of pixels to use in each basis direction + basis : {'xy', 'xz', 'yz'} + The basis directions for the plot + color_by : {'cell', 'material'} + Indicate whether the plot should be colored by cell or by material + + """ + import matplotlib.pyplot as plt + + if basis == 'xy': + x_min = center[0] - 0.5*width[0] + x_max = center[0] + 0.5*width[0] + y_min = center[1] - 0.5*width[1] + y_max = center[1] + 0.5*width[1] + elif basis == 'yz': + # The x-axis will correspond to physical y and the y-axis will correspond to physical z + x_min = center[1] - 0.5*width[0] + x_max = center[1] + 0.5*width[0] + y_min = center[2] - 0.5*width[1] + y_max = center[2] + 0.5*width[1] + elif basis == 'xz': + # The y-axis will correspond to physical z + x_min = center[0] - 0.5*width[0] + x_max = center[0] + 0.5*width[0] + y_min = center[2] - 0.5*width[1] + y_max = center[2] + 0.5*width[1] + + # Determine locations to determine cells at + x_coords = np.linspace(x_min, x_max, pixels[0], endpoint=False) + \ + 0.5*(x_max - x_min)/pixels[0] + y_coords = np.linspace(y_max, y_min, pixels[1], endpoint=False) - \ + 0.5*(y_max - y_min)/pixels[1] + + colors = {} + img = np.zeros(pixels + (4,)) # Use RGBA form + for i, x in enumerate(x_coords): + for j, y in enumerate(y_coords): + if basis == 'xy': + path = self.find((x, y, center[2])) + elif basis == 'yz': + path = self.find((center[0], x, y)) + elif basis == 'xz': + path = self.find((x, center[1], y)) + + if len(path) > 0: + try: + if color_by == 'cell': + uid = path[-1].id + elif color_by == 'material': + if path[-1].fill_type == 'material': + uid = path[-1].fill.id + else: + continue + except AttributeError: + continue + if uid not in colors: + colors[uid] = (random.random(), random.random(), + random.random(), 1.0) + img[j,i,:] = colors[uid] + + plt.imshow(img, extent=(x_min, x_max, y_min, y_max)) + plt.show() + def add_cell(self, cell): """Add a cell to the universe. diff --git a/tests/input_set.py b/tests/input_set.py index 2c6841e25..fefd2ca5f 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -350,7 +350,6 @@ class InputSet(object): # Define fuel lattices. l100 = openmc.RectLattice(name='Fuel assembly (lower half)', lattice_id=100) - l100.dimension = (17, 17) l100.lower_left = (-10.71, -10.71) l100.pitch = (1.26, 1.26) l100.universes = [ @@ -384,7 +383,6 @@ class InputSet(object): l101 = openmc.RectLattice(name='Fuel assembly (upper half)', lattice_id=101) - l101.dimension = (17, 17) l101.lower_left = (-10.71, -10.71) l101.pitch = (1.26, 1.26) l101.universes = [ @@ -444,7 +442,6 @@ class InputSet(object): # Define core lattices l200 = openmc.RectLattice(name='Core lattice (lower half)', lattice_id=200) - l200.dimension = (21, 21) l200.lower_left = (-224.91, -224.91) l200.pitch = (21.42, 21.42) l200.universes = [ @@ -472,7 +469,6 @@ class InputSet(object): l201 = openmc.RectLattice(name='Core lattice (lower half)', lattice_id=201) - l201.dimension = (21, 21) l201.lower_left = (-224.91, -224.91) l201.pitch = (21.42, 21.42) l201.universes = [ diff --git a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py index 504cc4746..40def1f62 100644 --- a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py +++ b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py @@ -24,7 +24,6 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): # Construct a 3x3 lattice of fuel assemblies core_lat = openmc.RectLattice(name='3x3 Core Lattice', lattice_id=202) - core_lat.dimension = (3, 3) core_lat.lower_left = (-32.13, -32.13) core_lat.pitch = (21.42, 21.42) core_lat.universes = [[fuel, water, water], diff --git a/tests/test_distribmat/test_distribmat.py b/tests/test_distribmat/test_distribmat.py index d8f78c5cf..6700a96b6 100644 --- a/tests/test_distribmat/test_distribmat.py +++ b/tests/test_distribmat/test_distribmat.py @@ -53,7 +53,6 @@ class DistribmatTestHarness(PyAPITestHarness): fuel_univ.add_cells((c11, c12)) lat = openmc.RectLattice(lattice_id=101) - lat.dimension = [2, 2] lat.lower_left = [-2.0, -2.0] lat.pitch = [2.0, 2.0] lat.universes = [[fuel_univ]*2]*2 From 1f294c614e874ca92177aae8e8cd5f3de96834db Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 25 May 2016 09:57:42 -0500 Subject: [PATCH 233/259] Remove use of Cell.add_surface in OpenCG compatibility module --- openmc/opencg_compatible.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index c6b364d7c..b112ed327 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -1,4 +1,5 @@ import copy +import operator import numpy as np @@ -9,8 +10,6 @@ except ImportError: raise ImportError(msg) import openmc -from openmc.region import Intersection -from openmc.surface import Halfspace import openmc.checkvalue as cv @@ -467,13 +466,13 @@ def get_opencg_cell(openmc_cell): # half-spaces, i.e., no complex cells. region = openmc_cell.region if region is not None: - if isinstance(region, Halfspace): + if isinstance(region, openmc.Halfspace): surface = region.surface halfspace = -1 if region.side == '-' else 1 opencg_cell.add_surface(get_opencg_surface(surface), halfspace) - elif isinstance(region, Intersection): + elif isinstance(region, openmc.Intersection): for node in region.nodes: - if not isinstance(node, Halfspace): + if not isinstance(node, openmc.Halfspace): raise NotImplementedError("Complex cells not yet " "supported in OpenCG.") surface = node.surface @@ -697,12 +696,13 @@ def get_openmc_cell(opencg_cell): translation = np.asarray(opencg_cell.translation, dtype=np.float64) openmc_cell.translation = translation - surfaces = opencg_cell.surfaces - - for surface_id in surfaces: - surface = surfaces[surface_id][0] - halfspace = surfaces[surface_id][1] - openmc_cell.add_surface(get_openmc_surface(surface), halfspace) + surfaces = [] + operators = [] + for surface, halfspace in opencg_cell.surfaces.values(): + surfaces.append(get_openmc_surface(surface)) + operators.append(operator.neg if halfspace == -1 else operator.pos) + openmc_cell.region = openmc.Intersection( + *[op(s) for op, s in zip(operators, surfaces)]) # Add the OpenMC Cell to the global collection of all OpenMC Cells OPENMC_CELLS[cell_id] = openmc_cell From eb3f888c899b905429963edfc6fdbd5a75e1e071 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 25 May 2016 10:02:27 -0500 Subject: [PATCH 234/259] Allow root_universe to be passed to Geometry constructor --- examples/python/basic/build-xml.py | 3 +-- examples/python/boxes/build-xml.py | 3 +-- examples/python/lattice/hexagonal/build-xml.py | 3 +-- examples/python/lattice/nested/build-xml.py | 3 +-- examples/python/lattice/simple/build-xml.py | 3 +-- examples/python/pincell/build-xml.py | 3 +-- examples/python/pincell_multigroup/build-xml.py | 3 +-- examples/python/reflective/build-xml.py | 3 +-- openmc/geometry.py | 9 ++++++++- 9 files changed, 16 insertions(+), 17 deletions(-) diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index ffff03720..81aecc9f9 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -74,8 +74,7 @@ universe1.add_cells([cell2, cell3]) root.add_cells([cell1, cell4]) # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/boxes/build-xml.py b/examples/python/boxes/build-xml.py index 814f60beb..4be33dcf1 100644 --- a/examples/python/boxes/build-xml.py +++ b/examples/python/boxes/build-xml.py @@ -97,8 +97,7 @@ root = openmc.Universe(universe_id=0, name='root universe') root.add_cells([inner_box, middle_box, outer_box]) # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index ef3a12847..05cb2cb01 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -105,8 +105,7 @@ lattice.outer = univ2 cell1.fill = lattice # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index a964d882c..03cede9dc 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -114,8 +114,7 @@ cell1.fill = lattice2 cell2.fill = lattice1 # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index 4961b96b8..5a642d308 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -105,8 +105,7 @@ lattice.universes = [[univ1, univ2, univ1, univ2], cell1.fill = lattice # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index a3be3e97e..0afb2527f 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -149,8 +149,7 @@ root = openmc.Universe(universe_id=0, name='root universe') root.add_cells([fuel, gap, clad, water]) # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index 5ac5b376a..6dbfa336b 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -119,8 +119,7 @@ root = openmc.Universe(universe_id=0, name='root universe') root.add_cells([fuel, moderator]) # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/examples/python/reflective/build-xml.py b/examples/python/reflective/build-xml.py index 4ecd0351f..949e57c8c 100644 --- a/examples/python/reflective/build-xml.py +++ b/examples/python/reflective/build-xml.py @@ -64,8 +64,7 @@ root = openmc.Universe(universe_id=0, name='root universe') root.add_cell(cell) # Instantiate a Geometry, register the root Universe, and export to XML -geometry = openmc.Geometry() -geometry.root_universe = root +geometry = openmc.Geometry(root) geometry.export_to_xml() diff --git a/openmc/geometry.py b/openmc/geometry.py index 7eddadfc7..4e85929fc 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -15,6 +15,11 @@ def reset_auto_ids(): class Geometry(object): """Geometry representing a collection of surfaces, cells, and universes. + Parameters + ---------- + root_universe : openmc.Universe, optional + Root universe which contains all others + Attributes ---------- root_universe : openmc.Universe @@ -22,9 +27,11 @@ class Geometry(object): """ - def __init__(self): + def __init__(self, root_universe=None): self._root_universe = None self._offsets = {} + if root_universe is not None: + self.root_universe = root_universe @property def root_universe(self): From 68809265872d1b068d52be995b9e9471d8779a50 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 28 May 2016 21:19:34 -0400 Subject: [PATCH 235/259] Added optional boolean exact parameter to StatePoint.get_tally(...) --- openmc/mgxs/mgxs.py | 10 +++++----- openmc/statepoint.py | 24 ++++++++++++++++++++---- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 5be84bb2c..7c07ae722 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -685,11 +685,11 @@ class MGXS(object): # Find, slice and store Tallies from StatePoint # The tally slicing is needed if tally merging was used for tally_type, tally in self.tallies.items(): - sp_tally = statepoint.get_tally(tally.scores, tally.filters, - tally.nuclides, - estimator=tally.estimator) - sp_tally = sp_tally.get_slice(tally.scores, filters, - filter_bins, tally.nuclides) + sp_tally = statepoint.get_tally( + tally.scores, tally.filters, tally.nuclides, + estimator=tally.estimator, exact=True) + sp_tally = sp_tally.get_slice( + tally.scores, filters, filter_bins, tally.nuclides) sp_tally.sparse = self.sparse self.tallies[tally_type] = sp_tally diff --git a/openmc/statepoint.py b/openmc/statepoint.py index d5dd7bc1e..83dd148fe 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -497,13 +497,17 @@ class StatePoint(object): self.tallies[tally_id].sparse = self.sparse def get_tally(self, scores=[], filters=[], nuclides=[], - name=None, id=None, estimator=None): + name=None, id=None, estimator=None, exact=False): """Finds and returns a Tally object with certain properties. This routine searches the list of Tallies and returns the first Tally found which satisfies all of the input parameters. - NOTE: The input parameters do not need to match the complete Tally - specification and may only represent a subset of the Tally's properties. + + NOTE: If the "exact" parameter is False (default), the input parameters + do not need to match the complete Tally specification and may only + represent a subset of the Tally's properties. If the "exact" parameter + is True then the scores, filters, nuclides and estimator parameters + must precisely match those of any matching Tally. Parameters ---------- @@ -519,6 +523,9 @@ class StatePoint(object): The id specified for the Tally (default is None). estimator: str, optional The type of estimator ('tracklength', 'analog'; default is None). + exact : bool + Whether to strictly enforce the match between the parameters and + the returned tally Returns ------- @@ -547,9 +554,18 @@ class StatePoint(object): continue # Determine if Tally has queried estimator - if estimator and not estimator == test_tally.estimator: + if (estimator or exact) and estimator != test_tally.estimator: continue + # The number of filters, nuclides and scores must exactly match + if exact: + if len(scores) != test_tally.num_scores: + continue + if len(nuclides) != test_tally.num_nuclides: + continue + if len(filters) != test_tally.num_filters: + continue + # Determine if Tally has the queried score(s) if scores: contains_scores = True From 160d35a548287d50abc7c02a6fe203de19d7d4fe Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 09:59:42 -0400 Subject: [PATCH 236/259] Adding all MGXS classes to test_mgxs_libary_*nuclides. The current other test_mgxs_library_* tests dont require it since the scores in place now exercise their respective routines on the base classes, so no reason to add to the total data generation and test time. Also clarified the results_true files for all test_mgxs_library tests which needed it by adding an endline after the dataframe string. --- .../results_true.dat | 143 ++-- .../test_mgxs_library_condense.py | 2 +- .../results_true.dat | 11 +- .../test_mgxs_library_distribcell.py | 2 +- .../inputs_true.dat | 2 +- .../results_true.dat | 755 ++++++++++++++++-- .../test_mgxs_library_no_nuclides.py | 10 +- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- .../test_mgxs_library_nuclides.py | 10 +- 10 files changed, 828 insertions(+), 111 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 184be68bf..190d652d8 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,85 +1,132 @@ material group in nuclide mean std. dev. -0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. -0 1 1 total 0.076425 0.003691 material group in group out nuclide moment mean std. dev. +0 1 1 total 0.412084 0.02359 + material group in nuclide mean std. dev. +0 1 1 total 0.076425 0.003691 + material group in group out nuclide moment mean std. dev. 0 1 1 1 total P0 0.384780 0.022253 1 1 1 1 total P1 0.039277 0.004308 2 1 1 1 total P2 0.017574 0.002402 -3 1 1 1 total P3 0.012203 0.002164 material group out nuclide mean std. dev. -0 1 1 total 1.0 0.055333 material group in nuclide mean std. dev. -0 2 1 total 0.241262 0.00841 material group in nuclide mean std. dev. -0 2 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 1 1 1 total P3 0.012203 0.002164 + material group out nuclide mean std. dev. +0 1 1 total 1.0 0.055333 + material group in nuclide mean std. dev. +0 2 1 total 0.241262 0.00841 + material group in nuclide mean std. dev. +0 2 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 2 1 1 total P0 0.272369 0.006872 1 2 1 1 total P1 0.031107 0.005483 2 2 1 1 total P2 0.025999 0.006151 -3 2 1 1 total P3 0.003219 0.003312 material group out nuclide mean std. dev. -0 2 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 3 1 total 0.400028 0.034667 material group in nuclide mean std. dev. -0 3 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 2 1 1 total P3 0.003219 0.003312 + material group out nuclide mean std. dev. +0 2 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 3 1 total 0.400028 0.034667 + material group in nuclide mean std. dev. +0 3 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 3 1 1 total P0 0.794999 0.036548 1 3 1 1 total P1 0.401537 0.016175 2 3 1 1 total P2 0.143623 0.008719 -3 3 1 1 total P3 0.001991 0.004433 material group out nuclide mean std. dev. -0 3 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 4 1 total 0.377402 0.072937 material group in nuclide mean std. dev. -0 4 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 3 1 1 total P3 0.001991 0.004433 + material group out nuclide mean std. dev. +0 3 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 4 1 total 0.377402 0.072937 + material group in nuclide mean std. dev. +0 4 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 4 1 1 total P0 0.727311 0.080096 1 4 1 1 total P1 0.355839 0.037901 2 4 1 1 total P2 0.124483 0.015823 -3 4 1 1 total P3 0.012168 0.006224 material group out nuclide mean std. dev. -0 4 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 5 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 4 1 1 total P3 0.012168 0.006224 + material group out nuclide mean std. dev. +0 4 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 5 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 5 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 5 1 1 total P0 0.0 0.0 1 5 1 1 total P1 0.0 0.0 2 5 1 1 total P2 0.0 0.0 -3 5 1 1 total P3 0.0 0.0 material group out nuclide mean std. dev. -0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 6 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 5 1 1 total P3 0.0 0.0 + material group out nuclide mean std. dev. +0 5 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 6 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 6 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 6 1 1 total P0 0.0 0.0 1 6 1 1 total P1 0.0 0.0 2 6 1 1 total P2 0.0 0.0 -3 6 1 1 total P3 0.0 0.0 material group out nuclide mean std. dev. -0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 7 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 6 1 1 total P3 0.0 0.0 + material group out nuclide mean std. dev. +0 6 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 7 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 7 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 7 1 1 total P0 0.0 0.0 1 7 1 1 total P1 0.0 0.0 2 7 1 1 total P2 0.0 0.0 -3 7 1 1 total P3 0.0 0.0 material group out nuclide mean std. dev. -0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 8 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 7 1 1 total P3 0.0 0.0 + material group out nuclide mean std. dev. +0 7 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 8 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 8 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 8 1 1 total P0 0.0 0.0 1 8 1 1 total P1 0.0 0.0 2 8 1 1 total P2 0.0 0.0 -3 8 1 1 total P3 0.0 0.0 material group out nuclide mean std. dev. -0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 9 1 total 0.600536 0.748875 material group in nuclide mean std. dev. -0 9 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 8 1 1 total P3 0.0 0.0 + material group out nuclide mean std. dev. +0 8 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 9 1 total 0.600536 0.748875 + material group in nuclide mean std. dev. +0 9 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 9 1 1 total P0 0.720380 0.771015 1 9 1 1 total P1 0.119844 0.184691 2 9 1 1 total P2 0.038522 0.064485 -3 9 1 1 total P3 0.056023 0.050595 material group out nuclide mean std. dev. -0 9 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 10 1 total 0.235515 0.613974 material group in nuclide mean std. dev. -0 10 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 9 1 1 total P3 0.056023 0.050595 + material group out nuclide mean std. dev. +0 9 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10 1 total 0.235515 0.613974 + material group in nuclide mean std. dev. +0 10 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 10 1 1 total P0 0.501009 0.708534 1 10 1 1 total P1 0.265494 0.375465 2 10 1 1 total P2 0.141979 0.200788 -3 10 1 1 total P3 0.074258 0.105017 material group out nuclide mean std. dev. -0 10 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 11 1 total 0.510145 0.741941 material group in nuclide mean std. dev. -0 11 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 10 1 1 total P3 0.074258 0.105017 + material group out nuclide mean std. dev. +0 10 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 11 1 total 0.510145 0.741941 + material group in nuclide mean std. dev. +0 11 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 11 1 1 total P0 0.804661 0.817658 1 11 1 1 total P1 0.312803 0.315315 2 11 1 1 total P2 0.168113 0.172935 -3 11 1 1 total P3 0.003808 0.037911 material group out nuclide mean std. dev. -0 11 1 total 0.0 0.0 material group in nuclide mean std. dev. -0 12 1 total 0.73836 0.825631 material group in nuclide mean std. dev. -0 12 1 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +3 11 1 1 total P3 0.003808 0.037911 + material group out nuclide mean std. dev. +0 11 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 12 1 total 0.73836 0.825631 + material group in nuclide mean std. dev. +0 12 1 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 0 12 1 1 total P0 0.943429 0.856119 1 12 1 1 total P1 0.220164 0.163180 2 12 1 1 total P2 0.052884 0.042440 -3 12 1 1 total P3 0.039939 0.032867 material group out nuclide mean std. dev. -0 12 1 total 0.0 0.0 \ No newline at end of file +3 12 1 1 total P3 0.039939 0.032867 + material group out nuclide mean std. dev. +0 12 1 total 0.0 0.0 diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index 561232b22..2b834fa98 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -57,7 +57,7 @@ class MGXSTestHarness(PyAPITestHarness): for mgxs_type in condense_lib.mgxs_types: mgxs = condense_lib.get_mgxs(domain, mgxs_type) df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + outstr += df.to_string() + '\n' # Hash the results if necessary if hash_output: diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index fa55249d1..84e76965d 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,8 +1,11 @@ avg(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.718919 0.520644 avg(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.0 0.0 avg(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 total 0.718919 0.520644 + avg(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.0 0.0 + avg(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 1.142547 0.570131 1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 -3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 avg(distribcell) group out nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 \ No newline at end of file +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 + avg(distribcell) group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index 32f5ea1bd..a6fef2e77 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -59,7 +59,7 @@ class MGXSTestHarness(PyAPITestHarness): for mgxs_type in avg_lib.mgxs_types: mgxs = avg_lib.get_mgxs(domain, mgxs_type) df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + outstr += df.to_string() + '\n' # Hash the results if necessary if hash_output: diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index 3643c9a2e..e5d0a175c 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -104e7fb527770ac5d3fc636da7716e8fb05d55761253d30516c899f466e6b38ffd881611a3d0cdf65c6af058c32f6f6758c68782be7a170d21024bdae751862f \ No newline at end of file +8675afa50c9e291cea100a30603833c9f73fdf75f0831809dee523292ddcdd27d452540bb06ea2ad40aaa3304228fb6a46281cb04878a492e27a62976c78c96b \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 94150a202..c05e05389 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,8 +1,51 @@ material group in nuclide mean std. dev. +1 1 1 total 0.413737 0.020666 +0 1 2 total 0.831077 0.043043 + material group in nuclide mean std. dev. 1 1 1 total 0.372745 0.024269 -0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. +0 1 2 total 0.861607 0.032349 + material group in nuclide mean std. dev. +1 1 1 total 0.372593 0.024246 +0 1 2 total 0.861607 0.032349 + material group in nuclide mean std. dev. +1 1 1 total 0.033747 0.001497 +0 1 2 total 0.436807 0.024531 + material group in nuclide mean std. dev. +1 1 1 total 0.025522 0.001301 +0 1 2 total 0.165054 0.023520 + material group in nuclide mean std. dev. +1 1 1 total 0.008225 0.000436 +0 1 2 total 0.271753 0.015604 + material group in nuclide mean std. dev. 1 1 1 total 0.021789 0.001182 -0 1 2 total 0.714077 0.040552 material group in group out nuclide moment mean std. dev. +0 1 2 total 0.714077 0.040552 + material group in nuclide mean std. dev. +1 1 1 total 1.612520 0.085471 +0 1 2 total 53.252833 3.051695 + material group in nuclide mean std. dev. +1 1 1 total 0.379990 0.019207 +0 1 2 total 0.394271 0.019629 + material group in nuclide mean std. dev. +1 1 1 total 0.383106 0.024061 +0 1 2 total 0.403916 0.018966 + material group in group out nuclide moment mean std. dev. +12 1 1 1 total P0 0.381200 0.023972 +13 1 1 1 total P1 0.044149 0.004814 +14 1 1 1 total P2 0.020601 0.002497 +15 1 1 1 total P3 0.013589 0.002222 +8 1 1 2 total P0 0.001559 0.000510 +9 1 1 2 total P1 -0.000597 0.000225 +10 1 1 2 total P2 -0.000239 0.000222 +11 1 1 2 total P3 0.000176 0.000209 +4 1 2 1 total P0 0.000000 0.000000 +5 1 2 1 total P1 0.000000 0.000000 +6 1 2 1 total P2 0.000000 0.000000 +7 1 2 1 total P3 0.000000 0.000000 +0 1 2 2 total P0 0.403916 0.018966 +1 1 2 2 total P1 -0.011310 0.007839 +2 1 2 2 total P2 -0.014807 0.008629 +3 1 2 2 total P3 -0.006855 0.009047 + material group in group out nuclide moment mean std. dev. 12 1 1 1 total P0 0.381546 0.024033 13 1 1 1 total P1 0.044301 0.004722 14 1 1 1 total P2 0.020646 0.002539 @@ -18,13 +61,51 @@ 0 1 2 2 total P0 0.403916 0.018966 1 1 2 2 total P1 -0.011310 0.007839 2 1 2 2 total P2 -0.014807 0.008629 -3 1 2 2 total P3 -0.006855 0.009047 material group out nuclide mean std. dev. +3 1 2 2 total P3 -0.006855 0.009047 + material group in group out nuclide mean std. dev. +3 1 1 1 total 1.000909 0.061440 +2 1 1 2 total 1.000000 0.458123 +1 1 2 1 total 0.000000 0.000000 +0 1 2 2 total 1.000000 0.055242 + material group in group out nuclide mean std. dev. +3 1 1 1 total 0.022739 0.002910 +2 1 1 2 total 0.000000 0.000000 +1 1 2 1 total 0.737265 0.030217 +0 1 2 2 total 0.000000 0.000000 + material group out nuclide mean std. dev. 1 1 1 total 1.0 0.055333 -0 1 2 total 0.0 0.000000 material group in nuclide mean std. dev. +0 1 2 total 0.0 0.000000 + material group in nuclide mean std. dev. +1 2 1 total 0.274809 0.009544 +0 2 2 total 0.264483 0.013309 + material group in nuclide mean std. dev. 1 2 1 total 0.237254 0.008184 -0 2 2 total 0.285930 0.048796 material group in nuclide mean std. dev. +0 2 2 total 0.285930 0.048796 + material group in nuclide mean std. dev. +1 2 1 total 0.237254 0.008184 +0 2 2 total 0.285930 0.048796 + material group in nuclide mean std. dev. +1 2 1 total 0.001327 0.000144 +0 2 2 total 0.004358 0.000224 + material group in nuclide mean std. dev. +1 2 1 total 0.001327 0.000144 +0 2 2 total 0.004358 0.000224 + material group in nuclide mean std. dev. 1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 2 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 2 1 total 0.273482 0.009533 +0 2 2 total 0.260125 0.013092 + material group in nuclide mean std. dev. +1 2 1 total 0.273115 0.006253 +0 2 2 total 0.264051 0.045397 + material group in group out nuclide moment mean std. dev. 12 2 1 1 total P0 0.273115 0.006253 13 2 1 1 total P1 0.035861 0.005878 14 2 1 1 total P2 0.029704 0.006640 @@ -40,13 +121,68 @@ 0 2 2 2 total P0 0.264051 0.045397 1 2 2 2 total P1 -0.021880 0.012218 2 2 2 2 total P2 -0.015295 0.010276 -3 2 2 2 total P3 0.014034 0.014318 material group out nuclide mean std. dev. +3 2 2 2 total P3 0.014034 0.014318 + material group in group out nuclide moment mean std. dev. +12 2 1 1 total P0 0.273115 0.006253 +13 2 1 1 total P1 0.035861 0.005878 +14 2 1 1 total P2 0.029704 0.006640 +15 2 1 1 total P3 0.002249 0.003376 +8 2 1 2 total P0 0.000000 0.000000 +9 2 1 2 total P1 0.000000 0.000000 +10 2 1 2 total P2 0.000000 0.000000 +11 2 1 2 total P3 0.000000 0.000000 +4 2 2 1 total P0 0.000000 0.000000 +5 2 2 1 total P1 0.000000 0.000000 +6 2 2 1 total P2 0.000000 0.000000 +7 2 2 1 total P3 0.000000 0.000000 +0 2 2 2 total P0 0.264051 0.045397 +1 2 2 2 total P1 -0.021880 0.012218 +2 2 2 2 total P2 -0.015295 0.010276 +3 2 2 2 total P3 0.014034 0.014318 + material group in group out nuclide mean std. dev. +3 2 1 1 total 1.0 0.019157 +2 2 1 2 total 0.0 0.000000 +1 2 2 1 total 0.0 0.000000 +0 2 2 2 total 1.0 0.171895 + material group in group out nuclide mean std. dev. +3 2 1 1 total 0.0 0.0 +2 2 1 2 total 0.0 0.0 +1 2 2 1 total 0.0 0.0 +0 2 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 2 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 3 1 total 0.670714 0.041725 +0 3 2 total 1.989013 0.270454 + material group in nuclide mean std. dev. 1 3 1 total 0.286906 0.027401 -0 3 2 total 1.418151 0.265308 material group in nuclide mean std. dev. +0 3 2 total 1.418151 0.265308 + material group in nuclide mean std. dev. +1 3 1 total 0.286906 0.027401 +0 3 2 total 1.418151 0.265308 + material group in nuclide mean std. dev. +1 3 1 total 0.000998 0.000050 +0 3 2 total 0.048908 0.007333 + material group in nuclide mean std. dev. +1 3 1 total 0.000998 0.000050 +0 3 2 total 0.048908 0.007333 + material group in nuclide mean std. dev. 1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 3 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 3 1 total 0.669716 0.041680 +0 3 2 total 1.940105 0.263149 + material group in nuclide mean std. dev. +1 3 1 total 0.669533 0.029665 +0 3 2 total 1.924214 0.284062 + material group in group out nuclide moment mean std. dev. 12 3 1 1 total P0 0.643346 0.028376 13 3 1 1 total P1 0.383409 0.016447 14 3 1 1 total P2 0.152185 0.009574 @@ -62,13 +198,68 @@ 0 3 2 2 total P0 1.924214 0.284062 1 3 2 2 total P1 0.498431 0.063421 2 3 2 2 total P2 0.091205 0.013726 -3 3 2 2 total P3 0.017054 0.013916 material group out nuclide mean std. dev. +3 3 2 2 total P3 0.017054 0.013916 + material group in group out nuclide moment mean std. dev. +12 3 1 1 total P0 0.643346 0.028376 +13 3 1 1 total P1 0.383409 0.016447 +14 3 1 1 total P2 0.152185 0.009574 +15 3 1 1 total P3 0.003037 0.004648 +8 3 1 2 total P0 0.026187 0.001665 +9 3 1 2 total P1 0.007362 0.000934 +10 3 1 2 total P2 -0.002738 0.000756 +11 3 1 2 total P3 -0.002720 0.000558 +4 3 2 1 total P0 0.000000 0.000000 +5 3 2 1 total P1 0.000000 0.000000 +6 3 2 1 total P2 0.000000 0.000000 +7 3 2 1 total P3 0.000000 0.000000 +0 3 2 2 total P0 1.924214 0.284062 +1 3 2 2 total P1 0.498431 0.063421 +2 3 2 2 total P2 0.091205 0.013726 +3 3 2 2 total P3 0.017054 0.013916 + material group in group out nuclide mean std. dev. +3 3 1 1 total 1.0 0.047903 +2 3 1 2 total 1.0 0.080529 +1 3 2 1 total 0.0 0.000000 +0 3 2 2 total 1.0 0.162017 + material group in group out nuclide mean std. dev. +3 3 1 1 total 0.0 0.0 +2 3 1 2 total 0.0 0.0 +1 3 2 1 total 0.0 0.0 +0 3 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 3 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 4 1 total 0.569719 0.069542 +0 4 2 total 1.818808 0.468684 + material group in nuclide mean std. dev. 1 4 1 total 0.242447 0.061031 -0 4 2 total 1.253959 0.388363 material group in nuclide mean std. dev. +0 4 2 total 1.253959 0.388363 + material group in nuclide mean std. dev. +1 4 1 total 0.242447 0.061031 +0 4 2 total 1.253959 0.388363 + material group in nuclide mean std. dev. +1 4 1 total 0.000981 0.000145 +0 4 2 total 0.045603 0.012339 + material group in nuclide mean std. dev. +1 4 1 total 0.000981 0.000145 +0 4 2 total 0.045603 0.012339 + material group in nuclide mean std. dev. 1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 4 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 4 1 total 0.568737 0.069416 +0 4 2 total 1.773206 0.456376 + material group in nuclide mean std. dev. +1 4 1 total 0.567603 0.068093 +0 4 2 total 1.764648 0.416210 + material group in group out nuclide moment mean std. dev. 12 4 1 1 total P0 0.543941 0.065427 13 4 1 1 total P1 0.326011 0.038602 14 4 1 1 total P2 0.131133 0.017475 @@ -84,13 +275,68 @@ 0 4 2 2 total P0 1.764648 0.416210 1 4 2 2 total P1 0.500695 0.122178 2 4 2 2 total P2 0.099026 0.038719 -3 4 2 2 total P3 0.032975 0.025103 material group out nuclide mean std. dev. +3 4 2 2 total P3 0.032975 0.025103 + material group in group out nuclide moment mean std. dev. +12 4 1 1 total P0 0.543941 0.065427 +13 4 1 1 total P1 0.326011 0.038602 +14 4 1 1 total P2 0.131133 0.017475 +15 4 1 1 total P3 0.012105 0.006073 +8 4 1 2 total P0 0.023662 0.003083 +9 4 1 2 total P1 0.007526 0.001301 +10 4 1 2 total P2 -0.002730 0.000841 +11 4 1 2 total P3 -0.003140 0.000578 +4 4 2 1 total P0 0.000000 0.000000 +5 4 2 1 total P1 0.000000 0.000000 +6 4 2 1 total P2 0.000000 0.000000 +7 4 2 1 total P3 0.000000 0.000000 +0 4 2 2 total P0 1.764648 0.416210 +1 4 2 2 total P1 0.500695 0.122178 +2 4 2 2 total P2 0.099026 0.038719 +3 4 2 2 total P3 0.032975 0.025103 + material group in group out nuclide mean std. dev. +3 4 1 1 total 1.0 0.125440 +2 4 1 2 total 1.0 0.144075 +1 4 2 1 total 0.0 0.000000 +0 4 2 2 total 1.0 0.256789 + material group in group out nuclide mean std. dev. +3 4 1 1 total 0.0 0.0 +2 4 1 2 total 0.0 0.0 +1 4 2 1 total 0.0 0.0 +0 4 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 4 2 total 0.0 0.0 + material group in nuclide mean std. dev. 1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 5 2 total 0.0 0.0 + material group in nuclide mean std. dev. 1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 5 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 12 5 1 1 total P0 0.0 0.0 13 5 1 1 total P1 0.0 0.0 14 5 1 1 total P2 0.0 0.0 @@ -106,13 +352,68 @@ 0 5 2 2 total P0 0.0 0.0 1 5 2 2 total P1 0.0 0.0 2 5 2 2 total P2 0.0 0.0 -3 5 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +3 5 2 2 total P3 0.0 0.0 + material group in group out nuclide moment mean std. dev. +12 5 1 1 total P0 0.0 0.0 +13 5 1 1 total P1 0.0 0.0 +14 5 1 1 total P2 0.0 0.0 +15 5 1 1 total P3 0.0 0.0 +8 5 1 2 total P0 0.0 0.0 +9 5 1 2 total P1 0.0 0.0 +10 5 1 2 total P2 0.0 0.0 +11 5 1 2 total P3 0.0 0.0 +4 5 2 1 total P0 0.0 0.0 +5 5 2 1 total P1 0.0 0.0 +6 5 2 1 total P2 0.0 0.0 +7 5 2 1 total P3 0.0 0.0 +0 5 2 2 total P0 0.0 0.0 +1 5 2 2 total P1 0.0 0.0 +2 5 2 2 total P2 0.0 0.0 +3 5 2 2 total P3 0.0 0.0 + material group in group out nuclide mean std. dev. +3 5 1 1 total 0.0 0.0 +2 5 1 2 total 0.0 0.0 +1 5 2 1 total 0.0 0.0 +0 5 2 2 total 0.0 0.0 + material group in group out nuclide mean std. dev. +3 5 1 1 total 0.0 0.0 +2 5 1 2 total 0.0 0.0 +1 5 2 1 total 0.0 0.0 +0 5 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 5 2 total 0.0 0.0 + material group in nuclide mean std. dev. 1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 6 2 total 0.0 0.0 + material group in nuclide mean std. dev. 1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 6 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 12 6 1 1 total P0 0.0 0.0 13 6 1 1 total P1 0.0 0.0 14 6 1 1 total P2 0.0 0.0 @@ -128,13 +429,68 @@ 0 6 2 2 total P0 0.0 0.0 1 6 2 2 total P1 0.0 0.0 2 6 2 2 total P2 0.0 0.0 -3 6 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +3 6 2 2 total P3 0.0 0.0 + material group in group out nuclide moment mean std. dev. +12 6 1 1 total P0 0.0 0.0 +13 6 1 1 total P1 0.0 0.0 +14 6 1 1 total P2 0.0 0.0 +15 6 1 1 total P3 0.0 0.0 +8 6 1 2 total P0 0.0 0.0 +9 6 1 2 total P1 0.0 0.0 +10 6 1 2 total P2 0.0 0.0 +11 6 1 2 total P3 0.0 0.0 +4 6 2 1 total P0 0.0 0.0 +5 6 2 1 total P1 0.0 0.0 +6 6 2 1 total P2 0.0 0.0 +7 6 2 1 total P3 0.0 0.0 +0 6 2 2 total P0 0.0 0.0 +1 6 2 2 total P1 0.0 0.0 +2 6 2 2 total P2 0.0 0.0 +3 6 2 2 total P3 0.0 0.0 + material group in group out nuclide mean std. dev. +3 6 1 1 total 0.0 0.0 +2 6 1 2 total 0.0 0.0 +1 6 2 1 total 0.0 0.0 +0 6 2 2 total 0.0 0.0 + material group in group out nuclide mean std. dev. +3 6 1 1 total 0.0 0.0 +2 6 1 2 total 0.0 0.0 +1 6 2 1 total 0.0 0.0 +0 6 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 6 2 total 0.0 0.0 + material group in nuclide mean std. dev. 1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 7 2 total 0.0 0.0 + material group in nuclide mean std. dev. 1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 7 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 12 7 1 1 total P0 0.0 0.0 13 7 1 1 total P1 0.0 0.0 14 7 1 1 total P2 0.0 0.0 @@ -150,13 +506,68 @@ 0 7 2 2 total P0 0.0 0.0 1 7 2 2 total P1 0.0 0.0 2 7 2 2 total P2 0.0 0.0 -3 7 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +3 7 2 2 total P3 0.0 0.0 + material group in group out nuclide moment mean std. dev. +12 7 1 1 total P0 0.0 0.0 +13 7 1 1 total P1 0.0 0.0 +14 7 1 1 total P2 0.0 0.0 +15 7 1 1 total P3 0.0 0.0 +8 7 1 2 total P0 0.0 0.0 +9 7 1 2 total P1 0.0 0.0 +10 7 1 2 total P2 0.0 0.0 +11 7 1 2 total P3 0.0 0.0 +4 7 2 1 total P0 0.0 0.0 +5 7 2 1 total P1 0.0 0.0 +6 7 2 1 total P2 0.0 0.0 +7 7 2 1 total P3 0.0 0.0 +0 7 2 2 total P0 0.0 0.0 +1 7 2 2 total P1 0.0 0.0 +2 7 2 2 total P2 0.0 0.0 +3 7 2 2 total P3 0.0 0.0 + material group in group out nuclide mean std. dev. +3 7 1 1 total 0.0 0.0 +2 7 1 2 total 0.0 0.0 +1 7 2 1 total 0.0 0.0 +0 7 2 2 total 0.0 0.0 + material group in group out nuclide mean std. dev. +3 7 1 1 total 0.0 0.0 +2 7 1 2 total 0.0 0.0 +1 7 2 1 total 0.0 0.0 +0 7 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 7 2 total 0.0 0.0 + material group in nuclide mean std. dev. 1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. 1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 + material group in group out nuclide moment mean std. dev. 12 8 1 1 total P0 0.0 0.0 13 8 1 1 total P1 0.0 0.0 14 8 1 1 total P2 0.0 0.0 @@ -172,13 +583,68 @@ 0 8 2 2 total P0 0.0 0.0 1 8 2 2 total P1 0.0 0.0 2 8 2 2 total P2 0.0 0.0 -3 8 2 2 total P3 0.0 0.0 material group out nuclide mean std. dev. +3 8 2 2 total P3 0.0 0.0 + material group in group out nuclide moment mean std. dev. +12 8 1 1 total P0 0.0 0.0 +13 8 1 1 total P1 0.0 0.0 +14 8 1 1 total P2 0.0 0.0 +15 8 1 1 total P3 0.0 0.0 +8 8 1 2 total P0 0.0 0.0 +9 8 1 2 total P1 0.0 0.0 +10 8 1 2 total P2 0.0 0.0 +11 8 1 2 total P3 0.0 0.0 +4 8 2 1 total P0 0.0 0.0 +5 8 2 1 total P1 0.0 0.0 +6 8 2 1 total P2 0.0 0.0 +7 8 2 1 total P3 0.0 0.0 +0 8 2 2 total P0 0.0 0.0 +1 8 2 2 total P1 0.0 0.0 +2 8 2 2 total P2 0.0 0.0 +3 8 2 2 total P3 0.0 0.0 + material group in group out nuclide mean std. dev. +3 8 1 1 total 0.0 0.0 +2 8 1 2 total 0.0 0.0 +1 8 2 1 total 0.0 0.0 +0 8 2 2 total 0.0 0.0 + material group in group out nuclide mean std. dev. +3 8 1 1 total 0.0 0.0 +2 8 1 2 total 0.0 0.0 +1 8 2 1 total 0.0 0.0 +0 8 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 8 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 9 1 total 1.123604 1.580875 +0 9 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. 1 9 1 total 0.600536 0.748875 -0 9 2 total 0.000000 0.000000 material group in nuclide mean std. dev. +0 9 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 9 1 total 0.600536 0.748875 +0 9 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 9 1 total 0.006197 0.008724 +0 9 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 9 1 total 0.006197 0.008724 +0 9 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. 1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 9 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 9 1 total 1.117408 1.572151 +0 9 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 9 1 total 0.72038 0.771015 +0 9 2 total 0.00000 0.000000 + material group in group out nuclide moment mean std. dev. 12 9 1 1 total P0 0.720380 0.771015 13 9 1 1 total P1 0.119844 0.184691 14 9 1 1 total P2 0.038522 0.064485 @@ -194,13 +660,68 @@ 0 9 2 2 total P0 0.000000 0.000000 1 9 2 2 total P1 0.000000 0.000000 2 9 2 2 total P2 0.000000 0.000000 -3 9 2 2 total P3 0.000000 0.000000 material group out nuclide mean std. dev. +3 9 2 2 total P3 0.000000 0.000000 + material group in group out nuclide moment mean std. dev. +12 9 1 1 total P0 0.720380 0.771015 +13 9 1 1 total P1 0.119844 0.184691 +14 9 1 1 total P2 0.038522 0.064485 +15 9 1 1 total P3 0.056023 0.050595 +8 9 1 2 total P0 0.000000 0.000000 +9 9 1 2 total P1 0.000000 0.000000 +10 9 1 2 total P2 0.000000 0.000000 +11 9 1 2 total P3 0.000000 0.000000 +4 9 2 1 total P0 0.000000 0.000000 +5 9 2 1 total P1 0.000000 0.000000 +6 9 2 1 total P2 0.000000 0.000000 +7 9 2 1 total P3 0.000000 0.000000 +0 9 2 2 total P0 0.000000 0.000000 +1 9 2 2 total P1 0.000000 0.000000 +2 9 2 2 total P2 0.000000 0.000000 +3 9 2 2 total P3 0.000000 0.000000 + material group in group out nuclide mean std. dev. +3 9 1 1 total 1.0 1.227262 +2 9 1 2 total 0.0 0.000000 +1 9 2 1 total 0.0 0.000000 +0 9 2 2 total 0.0 0.000000 + material group in group out nuclide mean std. dev. +3 9 1 1 total 0.0 0.0 +2 9 1 2 total 0.0 0.0 +1 9 2 1 total 0.0 0.0 +0 9 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 9 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 10 1 total 0.812963 1.149704 +0 10 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. 1 10 1 total 0.235515 0.613974 -0 10 2 total 0.000000 0.000000 material group in nuclide mean std. dev. +0 10 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10 1 total 0.235515 0.613974 +0 10 2 total 0.000000 0.000000 + material group in nuclide mean std. dev. +1 10 1 total 0.00018 0.000254 +0 10 2 total 0.00000 0.000000 + material group in nuclide mean std. dev. +1 10 1 total 0.00018 0.000254 +0 10 2 total 0.00000 0.000000 + material group in nuclide mean std. dev. 1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 10 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 10 1 total 0.812784 1.14945 +0 10 2 total 0.000000 0.00000 + material group in nuclide mean std. dev. +1 10 1 total 0.501009 0.708534 +0 10 2 total 0.000000 0.000000 + material group in group out nuclide moment mean std. dev. 12 10 1 1 total P0 0.501009 0.708534 13 10 1 1 total P1 0.265494 0.375465 14 10 1 1 total P2 0.141979 0.200788 @@ -216,13 +737,68 @@ 0 10 2 2 total P0 0.000000 0.000000 1 10 2 2 total P1 0.000000 0.000000 2 10 2 2 total P2 0.000000 0.000000 -3 10 2 2 total P3 0.000000 0.000000 material group out nuclide mean std. dev. +3 10 2 2 total P3 0.000000 0.000000 + material group in group out nuclide moment mean std. dev. +12 10 1 1 total P0 0.501009 0.708534 +13 10 1 1 total P1 0.265494 0.375465 +14 10 1 1 total P2 0.141979 0.200788 +15 10 1 1 total P3 0.074258 0.105017 +8 10 1 2 total P0 0.000000 0.000000 +9 10 1 2 total P1 0.000000 0.000000 +10 10 1 2 total P2 0.000000 0.000000 +11 10 1 2 total P3 0.000000 0.000000 +4 10 2 1 total P0 0.000000 0.000000 +5 10 2 1 total P1 0.000000 0.000000 +6 10 2 1 total P2 0.000000 0.000000 +7 10 2 1 total P3 0.000000 0.000000 +0 10 2 2 total P0 0.000000 0.000000 +1 10 2 2 total P1 0.000000 0.000000 +2 10 2 2 total P2 0.000000 0.000000 +3 10 2 2 total P3 0.000000 0.000000 + material group in group out nuclide mean std. dev. +3 10 1 1 total 1.0 1.414214 +2 10 1 2 total 0.0 0.000000 +1 10 2 1 total 0.0 0.000000 +0 10 2 2 total 0.0 0.000000 + material group in group out nuclide mean std. dev. +3 10 1 1 total 0.0 0.0 +2 10 1 2 total 0.0 0.0 +1 10 2 1 total 0.0 0.0 +0 10 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 10 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 11 1 total 0.408939 0.578327 +0 11 2 total 1.258110 1.779236 + material group in nuclide mean std. dev. 1 11 1 total 0.186324 0.632129 -0 11 2 total 0.945986 1.591133 material group in nuclide mean std. dev. +0 11 2 total 0.945986 1.591133 + material group in nuclide mean std. dev. +1 11 1 total 0.186324 0.632129 +0 11 2 total 0.945986 1.591133 + material group in nuclide mean std. dev. +1 11 1 total 0.000687 0.000971 +0 11 2 total 0.028614 0.040466 + material group in nuclide mean std. dev. +1 11 1 total 0.000687 0.000971 +0 11 2 total 0.028614 0.040466 + material group in nuclide mean std. dev. 1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 11 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 11 1 total 0.408253 0.577356 +0 11 2 total 1.229496 1.738770 + material group in nuclide mean std. dev. +1 11 1 total 0.510003 0.721253 +0 11 2 total 1.201250 1.698824 + material group in group out nuclide moment mean std. dev. 12 11 1 1 total P0 0.478128 0.676174 13 11 1 1 total P1 0.323679 0.457751 14 11 1 1 total P2 0.143375 0.202763 @@ -238,13 +814,68 @@ 0 11 2 2 total P0 1.201250 1.698824 1 11 2 2 total P1 0.286611 0.405329 2 11 2 2 total P2 0.218191 0.308569 -3 11 2 2 total P3 -0.048514 0.068609 material group out nuclide mean std. dev. +3 11 2 2 total P3 -0.048514 0.068609 + material group in group out nuclide moment mean std. dev. +12 11 1 1 total P0 0.478128 0.676174 +13 11 1 1 total P1 0.323679 0.457751 +14 11 1 1 total P2 0.143375 0.202763 +15 11 1 1 total P3 0.054003 0.076372 +8 11 1 2 total P0 0.031875 0.045078 +9 11 1 2 total P1 0.008585 0.012140 +10 11 1 2 total P2 -0.012470 0.017635 +11 11 1 2 total P3 -0.011320 0.016009 +4 11 2 1 total P0 0.000000 0.000000 +5 11 2 1 total P1 0.000000 0.000000 +6 11 2 1 total P2 0.000000 0.000000 +7 11 2 1 total P3 0.000000 0.000000 +0 11 2 2 total P0 1.201250 1.698824 +1 11 2 2 total P1 0.286611 0.405329 +2 11 2 2 total P2 0.218191 0.308569 +3 11 2 2 total P3 -0.048514 0.068609 + material group in group out nuclide mean std. dev. +3 11 1 1 total 1.0 1.414214 +2 11 1 2 total 1.0 1.414214 +1 11 2 1 total 0.0 0.000000 +0 11 2 2 total 1.0 1.414214 + material group in group out nuclide mean std. dev. +3 11 1 1 total 0.0 0.0 +2 11 1 2 total 0.0 0.0 +1 11 2 1 total 0.0 0.0 +0 11 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 material group in nuclide mean std. dev. +0 11 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 12 1 total 0.390295 0.247786 +0 12 2 total 1.619510 2.290334 + material group in nuclide mean std. dev. 1 12 1 total 0.213292 0.271444 -0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. +0 12 2 total 1.390975 2.137346 + material group in nuclide mean std. dev. +1 12 1 total 0.213292 0.271444 +0 12 2 total 1.390975 2.137346 + material group in nuclide mean std. dev. +1 12 1 total 0.000217 0.000142 +0 12 2 total 0.045440 0.064261 + material group in nuclide mean std. dev. +1 12 1 total 0.000217 0.000142 +0 12 2 total 0.045440 0.064261 + material group in nuclide mean std. dev. 1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 material group in group out nuclide moment mean std. dev. +0 12 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 + material group in nuclide mean std. dev. +1 12 1 total 0.390078 0.247656 +0 12 2 total 1.574071 2.226072 + material group in nuclide mean std. dev. +1 12 1 total 0.435834 0.294632 +0 12 2 total 1.574328 2.226436 + material group in group out nuclide moment mean std. dev. 12 12 1 1 total P0 0.408594 0.278123 13 12 1 1 total P1 0.222541 0.145776 14 12 1 1 total P2 0.090972 0.069626 @@ -260,6 +891,34 @@ 0 12 2 2 total P0 1.574328 2.226436 1 12 2 2 total P1 0.229748 0.324913 2 12 2 2 total P2 0.014178 0.020051 -3 12 2 2 total P3 0.038997 0.055150 material group out nuclide mean std. dev. +3 12 2 2 total P3 0.038997 0.055150 + material group in group out nuclide moment mean std. dev. +12 12 1 1 total P0 0.408594 0.278123 +13 12 1 1 total P1 0.222541 0.145776 +14 12 1 1 total P2 0.090972 0.069626 +15 12 1 1 total P3 0.031004 0.035981 +8 12 1 2 total P0 0.027240 0.029555 +9 12 1 2 total P1 -0.010088 0.010945 +10 12 1 2 total P2 -0.006946 0.007537 +11 12 1 2 total P3 0.009692 0.010516 +4 12 2 1 total P0 0.000000 0.000000 +5 12 2 1 total P1 0.000000 0.000000 +6 12 2 1 total P2 0.000000 0.000000 +7 12 2 1 total P3 0.000000 0.000000 +0 12 2 2 total P0 1.574328 2.226436 +1 12 2 2 total P1 0.229748 0.324913 +2 12 2 2 total P2 0.014178 0.020051 +3 12 2 2 total P3 0.038997 0.055150 + material group in group out nuclide mean std. dev. +3 12 1 1 total 1.0 0.756454 +2 12 1 2 total 1.0 1.414214 +1 12 2 1 total 0.0 0.000000 +0 12 2 2 total 1.0 1.414214 + material group in group out nuclide mean std. dev. +3 12 1 1 total 0.0 0.0 +2 12 1 2 total 0.0 0.0 +1 12 2 1 total 0.0 0.0 +0 12 2 2 total 0.0 0.0 + material group out nuclide mean std. dev. 1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 \ No newline at end of file +0 12 2 total 0.0 0.0 diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 6ee8813d0..1413f869c 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -25,8 +25,12 @@ class MGXSTestHarness(PyAPITestHarness): # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False - self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', - 'nu-scatter matrix', 'chi'] + self.mgxs_lib.mgxs_types = ['total', 'transport', 'nu-transport', + 'absorption', 'capture', 'fission', + 'nu-fission', 'kappa-fission', 'scatter', + 'nu-scatter', 'scatter matrix', + 'nu-scatter matrix', 'multiplicity matrix', + 'nu-fission matrix', 'chi'] self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' @@ -53,7 +57,7 @@ class MGXSTestHarness(PyAPITestHarness): for mgxs_type in self.mgxs_lib.mgxs_types: mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + outstr += df.to_string() + '\n' # Hash the results if necessary if hash_output: diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 9e25fe96a..9adacb3a5 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -791a2bd647b8bae03aafc39e29ff1ce1ffc44063b0d757ccba4e1eda6eb73b8a275020f4f5774b17dede49fbf15549787279c8b2fc45caba0097155b32e56fa8 \ No newline at end of file +6612ed1baa139ba085456963f0f04a0450bd13c46e6e04ec8fb1c7392168584fce4ca28b75c7606163b4af02a9ead433993f14fa3be8a5ad0083b01c5ff5f33e \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 06f838206..26b7f26a3 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -1ee58383dc8ac46c5e0d72321cbc34b0dba531435d5e0e632cbbf9572eb7d669c8c8ad9f370345325afa0bdeb2f818b0f5204b7c4a7c4aaf58ded7acbd715ef8 \ No newline at end of file +629afcb6af616b3b51fc219ef1a829675322fd0b890d538ac172feb76a3937efd1142d8082072f3ab304d2b5f4bf8a930330dc5b2d322c2c96c7187d7c026b7b \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index 47c1ec60a..b9ffdbcaa 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -25,8 +25,12 @@ class MGXSTestHarness(PyAPITestHarness): # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = True - self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', - 'nu-scatter matrix', 'chi'] + self.mgxs_lib.mgxs_types = ['total', 'transport', 'nu-transport', + 'absorption', 'capture', 'fission', + 'nu-fission', 'kappa-fission', 'scatter', + 'nu-scatter', 'scatter matrix', + 'nu-scatter matrix', 'multiplicity matrix', + 'nu-fission matrix', 'chi'] self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' @@ -53,7 +57,7 @@ class MGXSTestHarness(PyAPITestHarness): for mgxs_type in self.mgxs_lib.mgxs_types: mgxs = self.mgxs_lib.get_mgxs(domain, mgxs_type) df = mgxs.get_pandas_dataframe() - outstr += df.to_string() + outstr += df.to_string() + '\n' # Hash the results if necessary if hash_output: From 61fb8194a530ae3ebc1345607899d18371cf257c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 10:42:20 -0400 Subject: [PATCH 237/259] Added a test which tests creating MGXS in CE mode and piping in to MG mode. --- openmc/mgxs/library.py | 2 +- .../inputs_true.dat | 1 + .../results_true.dat | 2 + .../test_mgxs_library_ce_to_mg.py | 93 +++++++++++++++++++ 4 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 tests/test_mgxs_library_ce_to_mg/inputs_true.dat create mode 100644 tests/test_mgxs_library_ce_to_mg/results_true.dat create mode 100644 tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 4c2497173..62dde28ab 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -34,7 +34,7 @@ class Library(object): Parameters ---------- openmc_geometry : openmc.Geometry - An geometry which has been initialized with a root universe + A geometry which has been initialized with a root universe by_nuclide : bool If true, computes cross sections for each nuclide in each domain mgxs_types : Iterable of str diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat new file mode 100644 index 000000000..ad4b63965 --- /dev/null +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -0,0 +1 @@ +15355a90181bc3a8ba70bcc9a89beff2c240dc75abbf26c3e3b6a940c4ec2028b238422ac26af08863c24ce6fc16d48d249f17cd0bce53df0141138deccfc81a \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/results_true.dat b/tests/test_mgxs_library_ce_to_mg/results_true.dat new file mode 100644 index 000000000..1152dd2cc --- /dev/null +++ b/tests/test_mgxs_library_ce_to_mg/results_true.dat @@ -0,0 +1,2 @@ +k-combined: +1.017325E+00 3.827758E-02 diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py new file mode 100644 index 000000000..9bf70bbbb --- /dev/null +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import hashlib +sys.path.insert(0, os.pardir) +from testing_harness import PyAPITestHarness +import openmc +import openmc.mgxs + + +class MGXSTestHarness(PyAPITestHarness): + def _build_inputs(self): + + # The openmc.mgxs module needs a summary.h5 file + self._input_set.settings.output = {'summary': True} + + # Generate inputs using parent class routine + super(MGXSTestHarness, self)._build_inputs() + + # Initialize a two-group structure + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + + # Initialize MGXS Library for a few cross section types + self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) + self.mgxs_lib.by_nuclide = False + self.mgxs_lib.mgxs_types = ['total', 'absorption', 'nu-fission matrix', + 'nu-scatter matrix', 'multiplicity matrix'] + self.mgxs_lib.energy_groups = energy_groups + self.mgxs_lib.correction = None + self.mgxs_lib.legendre_order = 3 + self.mgxs_lib.domain_type = 'material' + self.mgxs_lib.build_library() + + # Initialize a tallies file + self._input_set.tallies = openmc.Tallies() + self.mgxs_lib.add_to_tallies_file(self._input_set.tallies, merge=False) + self._input_set.tallies.export_to_xml() + + def _run_openmc(self): + # Initial run + if self._opts.mpi_exec is not None: + returncode = openmc.run(mpi_procs=self._opts.mpi_np, + openmc_exec=self._opts.exe, + mpi_exec=self._opts.mpi_exec) + + else: + returncode = openmc.run(openmc_exec=self._opts.exe) + + assert returncode == 0, 'CE OpenMC calculation did not exit' \ + 'successfully.' + + # Build MG Inputs + # Get data needed to execute Library calculations. + statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] + sp = openmc.StatePoint(statepoint) + self.mgxs_lib.load_from_statepoint(sp) + self._input_set.mgxs_file, self._input_set.materials, \ + self._input_set.geometry = self.mgxs_lib.create_mg_mode() + + # Modify settings so we can run in MG mode + self._input_set.settings.cross_sections = './mgxs.xml' + self._input_set.settings.energy_mode = 'multi-group' + + # Write modified input files + self._input_set.settings.export_to_xml() + self._input_set.geometry.export_to_xml() + self._input_set.materials.export_to_xml() + self._input_set.mgxs_file.export_to_xml() + # Dont need tallies.xml, so remove the file + if os.path.exists('./tallies.xml'): + os.remove('./tallies.xml') + + # Re-run MG mode. + if self._opts.mpi_exec is not None: + returncode = openmc.run(mpi_procs=self._opts.mpi_np, + openmc_exec=self._opts.exe, + mpi_exec=self._opts.mpi_exec) + + else: + returncode = openmc.run(openmc_exec=self._opts.exe) + + def _cleanup(self): + super(MGXSTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + f = os.path.join(os.getcwd(), 'mgxs.xml') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = MGXSTestHarness('statepoint.10.*', True) + harness.main() From 08b8082b7bc78aeb968c0ac49bf9636745471bdc Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sun, 29 May 2016 10:20:11 -0500 Subject: [PATCH 238/259] First round of fixes for @wbinventor comments on #656 --- docs/source/methods/geometry.rst | 2 + openmc/geometry.py | 2 +- openmc/lattice.py | 71 +++++++++++++++++++------------- openmc/universe.py | 11 ++++- 4 files changed, 55 insertions(+), 31 deletions(-) diff --git a/docs/source/methods/geometry.rst b/docs/source/methods/geometry.rst index f642cca10..bcd568ca3 100644 --- a/docs/source/methods/geometry.rst +++ b/docs/source/methods/geometry.rst @@ -437,6 +437,8 @@ where :math:`(x_0, y_0, z_0)` are the coordinates to the lower-left-bottom corner of the lattice, and :math:`p_0, p_1, p_2` are the pitches along the :math:`x`, :math:`y`, and :math:`z` axes, respectively. +.. _hexagonal_indexing: + Hexagonal Lattice Indexing -------------------------- diff --git a/openmc/geometry.py b/openmc/geometry.py index 4e85929fc..006151900 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -75,7 +75,7 @@ class Geometry(object): Parameters ---------- point : 3-tuple of float - Cartesian coordinatesof the point + Cartesian coordinates of the point Returns ------- diff --git a/openmc/lattice.py b/openmc/lattice.py index d8deddc42..0277d50cb 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -242,6 +242,14 @@ class RectLattice(Lattice): :attr:`RectLattice.outer`, and :attr:`RectLattice.universes` properties need to be set. + Most methods for this class use a natural indexing scheme wherein elements + are assigned an index corresponding to their position relative to the + (x,y,z) axes in a Cartesian coordinate system, i.e., an index of (0,0,0) in + the lattice gives the element whose x, y, and z coordinates are the + smallest. However, note that when universes are assigned to lattice elements + using the :attr:`RectLattice.universes` property, the array indices do not + correspond to natural indices. + Parameters ---------- lattice_id : int, optional @@ -449,12 +457,12 @@ class RectLattice(Lattice): element coordinate system """ - ix = floor((point[0] - self._lower_left[0])/self._pitch[0]) - iy = floor((point[1] - self._lower_left[1])/self._pitch[1]) + ix = floor((point[0] - self.lower_left[0])/self.pitch[0]) + iy = floor((point[1] - self.lower_left[1])/self.pitch[1]) if self.ndim == 2: idx = (ix, iy) else: - iz = floor((point[2] - self._lower_left[2])/self._pitch[2]) + iz = floor((point[2] - self.lower_left[2])/self.pitch[2]) idx = (ix, iy, iz) return idx, self.get_local_coordinates(point, idx) @@ -476,12 +484,12 @@ class RectLattice(Lattice): system """ - x = point[0] - (self._lower_left[0] + (idx[0] + 0.5)*self._pitch[0]) - y = point[1] - (self._lower_left[1] + (idx[1] + 0.5)*self._pitch[1]) + x = point[0] - (self.lower_left[0] + (idx[0] + 0.5)*self.pitch[0]) + y = point[1] - (self.lower_left[1] + (idx[1] + 0.5)*self.pitch[1]) if self.ndim == 2: z = point[2] else: - z = point[2] - (self._lower_left[2] + (idx[2] + 0.5)*self._pitch[2]) + z = point[2] - (self.lower_left[2] + (idx[2] + 0.5)*self.pitch[2]) return (x, y, z) def get_universe_index(self, idx): @@ -636,12 +644,19 @@ class RectLattice(Lattice): class HexLattice(Lattice): - """A lattice consisting of hexagonal prisms. + r"""A lattice consisting of hexagonal prisms. To completely define a hexagonal lattice, the :attr:`HexLattice.center`, :attr:`HexLattice.pitch`, :attr:`HexLattice.universes`, and :attr:`HexLattice.outer` properties need to be set. + Most methods for this class use a natural indexing scheme wherein elements + are assigned an index corresponding to their position relative to skewed + :math:`(x,\alpha,z)` axes as described fully in + :ref:`hexagonal_indexing`. However, note that when universes are assigned to + lattice elements using the :attr:`RectLattice.universes` property, the array + indices do not correspond to natural indices. + Parameters ---------- lattice_id : int, optional @@ -755,12 +770,12 @@ class HexLattice(Lattice): @property def indices(self): if self.num_axial is None: - return [(r, i) for r in range(self._num_rings) - for i in range(max(6*(self._num_rings - 1 - r), 1))] + return [(r, i) for r in range(self.num_rings) + for i in range(max(6*(self.num_rings - 1 - r), 1))] else: - return [(z, r, i) for z in range(self._num_axial) - for r in range(self._num_rings) - for i in range(max(6*(self._num_rings - 1 - r), 1))] + return [(z, r, i) for z in range(self.num_axial) + for r in range(self.num_rings) + for i in range(max(6*(self.num_rings - 1 - r), 1))] @center.setter def center(self, center): @@ -860,7 +875,7 @@ class HexLattice(Lattice): raise ValueError(msg) def find_element(self, point): - """Determine index of lattice element and local coordinates for a point + r"""Determine index of lattice element and local coordinates for a point Parameters ---------- @@ -870,7 +885,7 @@ class HexLattice(Lattice): Returns ------- 3-tuple of int - Indices of corresponding lattice element in (x,:math:`alpha`,z) + Indices of corresponding lattice element in :math:`(x,\alpha,z)` bases numpy.ndarray Carestian coordinates of the point in the corresponding lattice @@ -878,16 +893,16 @@ class HexLattice(Lattice): """ # Convert coordinates to skewed bases - x = point[0] - self._center[0] - y = point[1] - self._center[1] + x = point[0] - self.center[0] + y = point[1] - self.center[1] if self._num_axial is None: iz = 1 else: - z = point[2] - self._center[2] - iz = floor(z/self._pitch[1] + 0.5*self._num_axial) + z = point[2] - self.center[2] + iz = floor(z/self.pitch[1] + 0.5*self.num_axial) alpha = y - x/sqrt(3.) - ix = floor(x/(sqrt(0.75) * self._pitch[0])) - ia = floor(alpha/self._pitch[0]) + ix = floor(x/(sqrt(0.75) * self.pitch[0])) + ia = floor(alpha/self.pitch[0]) # Check four lattice elements to see which one is closest based on local # coordinates @@ -904,14 +919,14 @@ class HexLattice(Lattice): return idx_min, p_min def get_local_coordinates(self, point, idx): - """Determine local coordinates of a point within a lattice element + r"""Determine local coordinates of a point within a lattice element Parameters ---------- point : Iterable of float Cartesian coordinates of point idx : Iterable of int - Indices of lattice element in (x,:math:`alpha`,z) bases + Indices of lattice element in :math:`(x,\alpha,z)` bases Returns ------- @@ -920,17 +935,17 @@ class HexLattice(Lattice): system """ - x = point[0] - (self._center[0] + sqrt(0.75)*self._pitch[0]*idx[0]) - y = point[1] - (self._center[1] + (0.5*idx[0] + idx[1])*self._pitch[0]) + x = point[0] - (self.center[0] + sqrt(0.75)*self.pitch[0]*idx[0]) + y = point[1] - (self.center[1] + (0.5*idx[0] + idx[1])*self.pitch[0]) if self._num_axial is None: z = point[2] else: - z = point[2] - (self._center[2] + (idx[2] + 0.5 - 0.5*self._num_axial)* - self._pitch[1]) + z = point[2] - (self.center[2] + (idx[2] + 0.5 - 0.5*self.num_axial)* + self.pitch[1]) return (x, y, z) def get_universe_index(self, idx): - """Return index in the universes array corresponding to a lattice element index + r"""Return index in the universes array corresponding to a lattice element index Parameters ---------- @@ -970,7 +985,7 @@ class HexLattice(Lattice): return (idx[2], i_ring, i_within) def is_valid_index(self, idx): - """Determine whether lattice element index is within defined range + r"""Determine whether lattice element index is within defined range Parameters ---------- diff --git a/openmc/universe.py b/openmc/universe.py index d8e1c4dac..a28729d8e 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -13,7 +13,6 @@ import openmc.checkvalue as cv if sys.version_info[0] >= 3: basestring = str - # A dictionary for storing IDs of cell elements that have already been written, # used to optimize the writing process WRITTEN_IDS = {} @@ -156,7 +155,7 @@ class Universe(object): return [] def plot(self, center=(0., 0., 0.), width=(1., 1.), pixels=(200, 200), - basis='xy', color_by='cell'): + basis='xy', color_by='cell', seed=None): """Display a slice plot of the universe. Parameters @@ -171,10 +170,18 @@ class Universe(object): The basis directions for the plot color_by : {'cell', 'material'} Indicate whether the plot should be colored by cell or by material + seed : hashable object or None + Hashable object which is used to seed the random number generator + used to select colors. If None, the generator is seeded from the + current time. """ import matplotlib.pyplot as plt + # Seed the random number generator + if seed is not None: + random.seed(seed) + if basis == 'xy': x_min = center[0] - 0.5*width[0] x_max = center[0] + 0.5*width[0] From 9ead31396e8821dda4079fb248720b3de2e530cc Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 11:23:48 -0400 Subject: [PATCH 239/259] removed deletion of tallies.xml in new tests cleanup routine since its already deleted, and added printing of logfile so I can debug this test isue --- tests/run_tests.py | 1 + tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index 5a04f340a..c8eeeebdd 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -474,6 +474,7 @@ for key in iter(tests): logfilename = os.path.splitext(logfilename)[0] logfilename = logfilename + '_{0}.log'.format(test.name) shutil.copy(logfile[0], logfilename) + with open(logfilename) as fh: print(fh.read()) # For coverage builds, use lcov to generate HTML output if test.coverage: diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index 9bf70bbbb..987d10ae0 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -83,7 +83,6 @@ class MGXSTestHarness(PyAPITestHarness): def _cleanup(self): super(MGXSTestHarness, self)._cleanup() - f = os.path.join(os.getcwd(), 'tallies.xml') f = os.path.join(os.getcwd(), 'mgxs.xml') if os.path.exists(f): os.remove(f) From 9898eea1f23ab5ed7cddb9528f44448abcc6b788 Mon Sep 17 00:00:00 2001 From: samuel shaner Date: Sun, 29 May 2016 17:05:24 +0000 Subject: [PATCH 240/259] fixed issue with expanded elements into their naturally-occurring isotopes --- openmc/element.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/element.py b/openmc/element.py index 66371aba9..c391d0823 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -127,7 +127,7 @@ class Element(object): isotopes = [] for isotope, abundance in natural_abundance.items(): - if isotope.startswith(self.name): + if isotope.startswith(self.name + '-'): nuc = openmc.Nuclide(isotope, self.xs) isotopes.append((nuc, abundance)) return isotopes From 2a786f090dbc9576f5a7bdeb23cfd368655b8cc1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 13:18:32 -0400 Subject: [PATCH 241/259] Fixed failing test: not enough neutrons simulated so many cross sections were zero. Made OpenMC properly deal with that case and then added more neutrons to the test to make it a bit more useful --- src/mgxs_header.F90 | 23 ++++++++++++++----- tests/run_tests.py | 1 - .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- .../test_mgxs_library_ce_to_mg.py | 13 ++++++++--- 5 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/mgxs_header.F90 b/src/mgxs_header.F90 index 88c1b23e2..750a8df98 100644 --- a/src/mgxs_header.F90 +++ b/src/mgxs_header.F90 @@ -1485,8 +1485,13 @@ module mgxs_header nuc % scatter % energy(gin) % data(gout) mult_num(gout, gin) = mult_num(gout, gin) + atom_density * & nuscatt - mult_denom(gout, gin) = mult_denom(gout,gin) + atom_density * & - nuscatt / nuc % scatter % mult(gin) % data(gout) + if (nuc % scatter % mult(gin) % data(gout) > ZERO) then + mult_denom(gout, gin) = mult_denom(gout,gin) + atom_density * & + nuscatt / nuc % scatter % mult(gin) % data(gout) + else + ! Avoid division by zero + mult_denom(gout, gin) = mult_denom(gout,gin) + atom_density + end if end do end do @@ -1722,10 +1727,16 @@ module mgxs_header nuc % scatter(iazi, ipol) % obj % energy(gin) % data(gout) mult_num(gout, gin, iazi, ipol) = mult_num(gout, gin, iazi, ipol) + & atom_density * nuscatt - mult_denom(gout, gin, iazi, ipol) = & - mult_denom(gout, gin, iazi, ipol) + & - atom_density * nuscatt / & - nuc % scatter(iazi, ipol) % obj % mult(gin) % data(gout) + if (nuc % scatter(iazi, ipol) % obj % mult(gin) % data(gout) > ZERO) then + mult_denom(gout, gin, iazi, ipol) = & + mult_denom(gout, gin, iazi, ipol) + & + atom_density * nuscatt / & + nuc % scatter(iazi, ipol) % obj % mult(gin) % data(gout) + else + ! Avoid division by zero + mult_denom(gout, gin, iazi, ipol) = & + mult_denom(gout,gin, iazi, ipol) + atom_density + end if end do end do end do diff --git a/tests/run_tests.py b/tests/run_tests.py index c8eeeebdd..5a04f340a 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -474,7 +474,6 @@ for key in iter(tests): logfilename = os.path.splitext(logfilename)[0] logfilename = logfilename + '_{0}.log'.format(test.name) shutil.copy(logfile[0], logfilename) - with open(logfilename) as fh: print(fh.read()) # For coverage builds, use lcov to generate HTML output if test.coverage: diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat index ad4b63965..55943bad4 100644 --- a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -1 +1 @@ -15355a90181bc3a8ba70bcc9a89beff2c240dc75abbf26c3e3b6a940c4ec2028b238422ac26af08863c24ce6fc16d48d249f17cd0bce53df0141138deccfc81a \ No newline at end of file +f6442195628d3e6acd714d1ac123310a8c463ce6e76de2149783e4d9f2485752b53155f78bd9ae5e886b5f4717ef7c66b71959344051ea7f53b79148d59fe609 \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/results_true.dat b/tests/test_mgxs_library_ce_to_mg/results_true.dat index 1152dd2cc..b1f855942 100644 --- a/tests/test_mgxs_library_ce_to_mg/results_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.017325E+00 3.827758E-02 +1.006931E+00 3.262911E-03 diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index 987d10ae0..17be8979e 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -13,12 +13,19 @@ import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} - # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() + # The openmc.mgxs module needs a summary.h5 file + self._input_set.settings.output = {'summary': True} + # Use a larger history count to get some scores in every material + self._input_set.settings.batches = 50 + self._input_set.settings.inactive = 10 + self._input_set.settings.particles = 1000 + self._sp_name = './statepoint.50.h5' + # Rewrite file + self._input_set.settings.export_to_xml() + # Initialize a two-group structure energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) From 326cf4f84c66036cc2d2edf57d9b7f85abf52a92 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 13:47:17 -0400 Subject: [PATCH 242/259] added pin cell input set and converted test_mgxs_library_ce_to_mg to use it. --- tests/input_set.py | 99 +++++++++++++++++++ .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- .../test_mgxs_library_ce_to_mg.py | 11 ++- 4 files changed, 108 insertions(+), 6 deletions(-) diff --git a/tests/input_set.py b/tests/input_set.py index 2c6841e25..fe8ca7176 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -570,6 +570,105 @@ class InputSet(object): self.plots.add_plot(plot) +class PinCellInputSet(object): + def __init__(self): + self.settings = openmc.Settings() + self.materials = openmc.Materials() + self.geometry = openmc.Geometry() + self.tallies = None + self.plots = None + + def export(self): + self.settings.export_to_xml() + self.materials.export_to_xml() + self.geometry.export_to_xml() + if self.tallies is not None: self.tallies.export_to_xml() + if self.plots is not None: self.plots.export_to_xml() + + def build_default_materials_and_geometry(self): + # Define materials. + fuel = openmc.Material(name='Fuel') + fuel.set_density('g/cm3', 10.29769) + fuel.add_nuclide("U-234", 4.4843e-6) + fuel.add_nuclide("U-235", 5.5815e-4) + fuel.add_nuclide("U-238", 2.2408e-2) + fuel.add_nuclide("O-16", 4.5829e-2) + + clad = openmc.Material(name='Cladding') + clad.set_density('g/cm3', 6.55) + clad.add_nuclide("Zr-90", 2.1827e-2) + clad.add_nuclide("Zr-91", 4.7600e-3) + clad.add_nuclide("Zr-92", 7.2758e-3) + clad.add_nuclide("Zr-94", 7.3734e-3) + clad.add_nuclide("Zr-96", 1.1879e-3) + + hot_water = openmc.Material(name='Hot borated water') + hot_water.set_density('g/cm3', 0.740582) + hot_water.add_nuclide("H-1", 4.9457e-2) + hot_water.add_nuclide("O-16", 2.4672e-2) + hot_water.add_nuclide("B-10", 8.0042e-6) + hot_water.add_nuclide("B-11", 3.2218e-5) + hot_water.add_s_alpha_beta('HH2O', '71t') + + # Define the materials file. + self.materials.default_xs = '71c' + self.materials += (fuel, clad, hot_water) + + # Instantiate ZCylinder surfaces + fuel_or = openmc.ZCylinder(x0=0, y0=0, R=0.39218, name='Fuel OR') + clad_or = openmc.ZCylinder(x0=0, y0=0, R=0.45720, name='Clad OR') + left = openmc.XPlane(x0=-0.63, name='left') + right = openmc.XPlane(x0=0.63, name='right') + bottom = openmc.YPlane(y0=-0.63, name='bottom') + top = openmc.YPlane(y0=0.63, name='top') + + left.boundary_type = 'reflective' + right.boundary_type = 'reflective' + top.boundary_type = 'reflective' + bottom.boundary_type = 'reflective' + + # Instantiate Cells + fuel_pin = openmc.Cell(name='cell 1') + cladding = openmc.Cell(name='cell 3') + water = openmc.Cell(name='cell 2') + + # Use surface half-spaces to define regions + fuel_pin.region = -fuel_or + cladding.region = +fuel_or & -clad_or + water.region = +clad_or & +left & -right & +bottom & -top + + # Register Materials with Cells + fuel_pin.fill = fuel + cladding.fill = clad + water.fill = hot_water + + # Instantiate Universe + root = openmc.Universe(universe_id=0, name='root universe') + + # Register Cells with Universe + root.add_cells([fuel_pin, cladding, water]) + + # Instantiate a Geometry, register the root Universe, and export to XML + self.geometry.root_universe = root + + def build_default_settings(self): + self.settings.batches = 10 + self.settings.inactive = 5 + self.settings.particles = 100 + self.settings.source = Source(space=Box([-0.63, -0.63, -1], + [0.63, 0.63, 1], + only_fissionable=True)) + + def build_defualt_plots(self): + plot = openmc.Plot() + plot.filename = 'mat' + plot.origin = (0.0, 0.0, 0) + plot.width = (1.26, 1.26) + plot.pixels = (300, 300) + plot.color = 'mat' + + self.plots.add_plot(plot) + class MGInputSet(InputSet): def build_default_materials_and_geometry(self): # Define materials needed for 1D/1G slab problem diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat index 55943bad4..46defbd0d 100644 --- a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -1 +1 @@ -f6442195628d3e6acd714d1ac123310a8c463ce6e76de2149783e4d9f2485752b53155f78bd9ae5e886b5f4717ef7c66b71959344051ea7f53b79148d59fe609 \ No newline at end of file +2db36402006f1aec10d484836303d5d804516ea9945f0508e610994b255185cb7f42dc3ed27dfd93355018d187100332011e921391059f83d3a5fda85e80d789 \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/results_true.dat b/tests/test_mgxs_library_ce_to_mg/results_true.dat index b1f855942..16441af8c 100644 --- a/tests/test_mgxs_library_ce_to_mg/results_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.006931E+00 3.262911E-03 +1.094839E+00 1.203524E-02 diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index 17be8979e..c9db2c45f 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -6,12 +6,15 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() @@ -19,10 +22,10 @@ class MGXSTestHarness(PyAPITestHarness): # The openmc.mgxs module needs a summary.h5 file self._input_set.settings.output = {'summary': True} # Use a larger history count to get some scores in every material - self._input_set.settings.batches = 50 - self._input_set.settings.inactive = 10 - self._input_set.settings.particles = 1000 - self._sp_name = './statepoint.50.h5' + # self._input_set.settings.batches = 50 + # self._input_set.settings.inactive = 10 + # self._input_set.settings.particles = 1000 + # self._sp_name = './statepoint.50.h5' # Rewrite file self._input_set.settings.export_to_xml() From 117ca2e1b24342835fb85b56d6b4afe5bf03ef4f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 13:50:23 -0400 Subject: [PATCH 243/259] Left some superfluous code in there. removed now --- .../test_mgxs_library_ce_to_mg.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index c9db2c45f..fb782e828 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -16,18 +16,14 @@ class MGXSTestHarness(PyAPITestHarness): # Set the input set to use the pincell model self._input_set = PinCellInputSet() + # The openmc.mgxs module needs a summary.h5 file + self._input_set.settings.output = {'summary': True} + # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} - # Use a larger history count to get some scores in every material - # self._input_set.settings.batches = 50 - # self._input_set.settings.inactive = 10 - # self._input_set.settings.particles = 1000 - # self._sp_name = './statepoint.50.h5' # Rewrite file - self._input_set.settings.export_to_xml() + # self._input_set.settings.export_to_xml() # Initialize a two-group structure energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) From e201b898ed17c0aa195c6db4d5e40557f5add8c0 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 14:09:27 -0400 Subject: [PATCH 244/259] PEP8 compliance changes to the new test, testing_harness and input_set --- tests/input_set.py | 46 +++++++++++-------- .../test_mgxs_library_ce_to_mg.py | 6 ++- tests/testing_harness.py | 30 +++++++----- 3 files changed, 49 insertions(+), 33 deletions(-) diff --git a/tests/input_set.py b/tests/input_set.py index fe8ca7176..ae3ee2301 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -15,8 +15,10 @@ class InputSet(object): self.settings.export_to_xml() self.materials.export_to_xml() self.geometry.export_to_xml() - if self.tallies is not None: self.tallies.export_to_xml() - if self.plots is not None: self.plots.export_to_xml() + if self.tallies is not None: + self.tallies.export_to_xml() + if self.plots is not None: + self.plots.export_to_xml() def build_default_materials_and_geometry(self): # Define materials. @@ -82,7 +84,7 @@ class InputSet(object): hot_water.add_s_alpha_beta('HH2O', '71t') rpv_steel = openmc.Material(name='Reactor pressure vessel steel', - material_id=5) + material_id=5) rpv_steel.set_density('g/cm3', 7.9) rpv_steel.add_nuclide("Fe-54", 0.05437098, 'wo') rpv_steel.add_nuclide("Fe-56", 0.88500663, 'wo') @@ -113,7 +115,7 @@ class InputSet(object): rpv_steel.add_nuclide("Cu-65", 0.0006304, 'wo') lower_rad_ref = openmc.Material(name='Lower radial reflector', - material_id=6) + material_id=6) lower_rad_ref.set_density('g/cm3', 4.32) lower_rad_ref.add_nuclide("H-1", 0.0095661, 'wo') lower_rad_ref.add_nuclide("O-16", 0.0759107, 'wo') @@ -189,7 +191,8 @@ class InputSet(object): bot_plate.add_nuclide("Cr-54", 0.004612692337, 'wo') bot_plate.add_s_alpha_beta('HH2O', '71t') - bot_nozzle = openmc.Material(name='Bottom nozzle region', material_id=9) + bot_nozzle = openmc.Material(name='Bottom nozzle region', + material_id=9) bot_nozzle.set_density('g/cm3', 2.53) bot_nozzle.add_nuclide("H-1", 0.0245014, 'wo') bot_nozzle.add_nuclide("O-16", 0.1944274, 'wo') @@ -252,7 +255,8 @@ class InputSet(object): top_fa.add_nuclide("Zr-96", 0.02511169542, 'wo') top_fa.add_s_alpha_beta('HH2O', '71t') - bot_fa = openmc.Material(name='Bottom of fuel assemblies', material_id=12) + bot_fa = openmc.Material(name='Bottom of fuel assemblies', + material_id=12) bot_fa.set_density('g/cm3', 1.762) bot_fa.add_nuclide("H-1", 0.0292856, 'wo') bot_fa.add_nuclide("O-16", 0.2323919, 'wo') @@ -570,6 +574,7 @@ class InputSet(object): self.plots.add_plot(plot) + class PinCellInputSet(object): def __init__(self): self.settings = openmc.Settings() @@ -582,8 +587,10 @@ class PinCellInputSet(object): self.settings.export_to_xml() self.materials.export_to_xml() self.geometry.export_to_xml() - if self.tallies is not None: self.tallies.export_to_xml() - if self.plots is not None: self.plots.export_to_xml() + if self.tallies is not None: + self.tallies.export_to_xml() + if self.plots is not None: + self.plots.export_to_xml() def build_default_materials_and_geometry(self): # Define materials. @@ -669,6 +676,7 @@ class PinCellInputSet(object): self.plots.add_plot(plot) + class MGInputSet(InputSet): def build_default_materials_and_geometry(self): # Define materials needed for 1D/1G slab problem @@ -694,21 +702,21 @@ class MGInputSet(InputSet): # Define surfaces. # Assembly/Problem Boundary - left = openmc.XPlane(x0=0.0, surface_id=200, - boundary_type='reflective') - right = openmc.XPlane(x0=10.0, surface_id=201, - boundary_type='reflective') + left = openmc.XPlane(x0=0.0, surface_id=200, + boundary_type='reflective') + right = openmc.XPlane(x0=10.0, surface_id=201, + boundary_type='reflective') bottom = openmc.YPlane(y0=0.0, surface_id=300, boundary_type='reflective') - top = openmc.YPlane(y0=10.0, surface_id=301, - boundary_type='reflective') + top = openmc.YPlane(y0=10.0, surface_id=301, + boundary_type='reflective') - down = openmc.ZPlane(z0=0.0, surface_id=0, - boundary_type='reflective') + down = openmc.ZPlane(z0=0.0, surface_id=0, + boundary_type='reflective') fuel_clad_intfc = openmc.ZPlane(z0=2.0, surface_id=1) clad_lwtr_intfc = openmc.ZPlane(z0=2.4, surface_id=2) - up = openmc.ZPlane(z0=5.0, surface_id=3, - boundary_type='reflective') + up = openmc.ZPlane(z0=5.0, surface_id=3, + boundary_type='reflective') # Define cells c1 = openmc.Cell(cell_id=1) @@ -724,7 +732,7 @@ class MGInputSet(InputSet): # Define root universe. root = openmc.Universe(universe_id=0, name='root universe') - root.add_cells((c1,c2,c3)) + root.add_cells((c1, c2, c3)) # Assign root universe to geometry self.geometry.root_universe = root diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index fb782e828..e091f28f7 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -26,7 +26,8 @@ class MGXSTestHarness(PyAPITestHarness): # self._input_set.settings.export_to_xml() # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) @@ -90,7 +91,8 @@ class MGXSTestHarness(PyAPITestHarness): def _cleanup(self): super(MGXSTestHarness, self)._cleanup() f = os.path.join(os.getcwd(), 'mgxs.xml') - if os.path.exists(f): os.remove(f) + if os.path.exists(f): + os.remove(f) if __name__ == '__main__': diff --git a/tests/testing_harness.py b/tests/testing_harness.py index e65976885..d36018404 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -6,7 +6,6 @@ import hashlib from optparse import OptionParser import os import shutil -from subprocess import Popen, STDOUT, PIPE, call import sys import numpy as np @@ -18,6 +17,7 @@ import openmc class TestHarness(object): """General class for running OpenMC regression tests.""" + def __init__(self, statepoint_name, tallies_present=False): self._sp_name = statepoint_name self._tallies = tallies_present @@ -74,13 +74,13 @@ class TestHarness(object): def _test_output_created(self): """Make sure statepoint.* and tallies.out have been created.""" statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name)) - assert len(statepoint) == 1, 'Either multiple or no statepoint files ' \ - 'exist.' + assert len(statepoint) == 1, 'Either multiple or no statepoint files' \ + ' exist.' assert statepoint[0].endswith('h5'), \ - 'Statepoint file is not a HDF5 file.' + 'Statepoint file is not a HDF5 file.' if self._tallies: assert os.path.exists(os.path.join(os.getcwd(), 'tallies.out')), \ - 'Tally output file does not exist.' + 'Tally output file does not exist.' def _get_results(self, hash_output=False): """Digest info in the statepoint and return as a string.""" @@ -98,7 +98,7 @@ class TestHarness(object): tally_num = 1 for tally_ind in sp.tallies: tally = sp.tallies[tally_ind] - results = np.zeros((tally.sum.size*2, )) + results = np.zeros((tally.sum.size * 2, )) results[0::2] = tally.sum.ravel() results[1::2] = tally.sum_sq.ravel() results = ['{0:12.6E}'.format(x) for x in results] @@ -144,6 +144,7 @@ class TestHarness(object): class HashedTestHarness(TestHarness): """Specialized TestHarness that hashes the results.""" + def _get_results(self): """Digest info in the statepoint and return as a string.""" return super(HashedTestHarness, self)._get_results(True) @@ -151,6 +152,7 @@ class HashedTestHarness(TestHarness): class CMFDTestHarness(TestHarness): """Specialized TestHarness for running OpenMC CMFD tests.""" + def _get_results(self): """Digest info in the statepoint and return as a string.""" # Read the statepoint file. @@ -184,6 +186,7 @@ class CMFDTestHarness(TestHarness): class ParticleRestartTestHarness(TestHarness): """Specialized TestHarness for running OpenMC particle restart tests.""" + def _run_openmc(self): # Set arguments args = {'openmc_exec': self._opts.exe} @@ -204,9 +207,9 @@ class ParticleRestartTestHarness(TestHarness): """Make sure the restart file has been created.""" particle = glob.glob(os.path.join(os.getcwd(), self._sp_name)) assert len(particle) == 1, 'Either multiple or no particle restart ' \ - 'files exist.' + 'files exist.' assert particle[0].endswith('h5'), \ - 'Particle restart file is not a HDF5 file.' + 'Particle restart file is not a HDF5 file.' def _get_results(self): """Digest info in the statepoint and return as a string.""" @@ -229,10 +232,10 @@ class ParticleRestartTestHarness(TestHarness): outstr += 'particle energy:\n' outstr += "{0:12.6E}\n".format(p.energy) outstr += 'particle xyz:\n' - outstr += "{0:12.6E} {1:12.6E} {2:12.6E}\n".format(p.xyz[0],p.xyz[1], + outstr += "{0:12.6E} {1:12.6E} {2:12.6E}\n".format(p.xyz[0], p.xyz[1], p.xyz[2]) outstr += 'particle uvw:\n' - outstr += "{0:12.6E} {1:12.6E} {2:12.6E}\n".format(p.uvw[0],p.uvw[1], + outstr += "{0:12.6E} {1:12.6E} {2:12.6E}\n".format(p.uvw[0], p.uvw[1], p.uvw[2]) return outstr @@ -240,13 +243,15 @@ class ParticleRestartTestHarness(TestHarness): class PyAPITestHarness(TestHarness): def __init__(self, statepoint_name, tallies_present=False, mg=False): - super(PyAPITestHarness, self).__init__(statepoint_name, tallies_present) + super(PyAPITestHarness, self).__init__(statepoint_name, + tallies_present) self.parser.add_option('--build-inputs', dest='build_only', action='store_true', default=False) if mg: self._input_set = MGInputSet() else: self._input_set = InputSet() + def main(self): """Accept commandline arguments and either run or update tests.""" (self._opts, self._args) = self.parser.parse_args() @@ -321,7 +326,8 @@ class PyAPITestHarness(TestHarness): compare = filecmp.cmp('inputs_test.dat', 'inputs_true.dat') if not compare: f = open('inputs_test.dat') - for line in f.readlines(): print(line) + for line in f.readlines(): + print(line) f.close() os.rename('inputs_test.dat', 'inputs_error.dat') assert compare, 'Input files are broken.' From 56f2a0b2e61e9d37b783e1b5a79abc4b9bad1d80 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 14:12:47 -0400 Subject: [PATCH 245/259] Removed final few lines of superfluous code/comments --- .../test_mgxs_library_ce_to_mg.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index e091f28f7..17358e21e 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -16,15 +16,9 @@ class MGXSTestHarness(PyAPITestHarness): # Set the input set to use the pincell model self._input_set = PinCellInputSet() - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} - # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() - # Rewrite file - # self._input_set.settings.export_to_xml() - # Initialize a two-group structure energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) From 3368d7aebeedd4f741c4aa2975bcdcd1aac0e927 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 14:18:31 -0400 Subject: [PATCH 246/259] Converting test_mgxs_library_*_nuclides tests to use openmc.mgxs.MGXS_TYPES so the test always tests the latest list of Mgxs classes --- .../test_mgxs_library_no_nuclides.py | 11 ++++------- .../test_mgxs_library_nuclides.py | 11 ++++------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 1413f869c..8f074f4f6 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -20,17 +20,14 @@ class MGXSTestHarness(PyAPITestHarness): super(MGXSTestHarness, self)._build_inputs() # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False - self.mgxs_lib.mgxs_types = ['total', 'transport', 'nu-transport', - 'absorption', 'capture', 'fission', - 'nu-fission', 'kappa-fission', 'scatter', - 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'multiplicity matrix', - 'nu-fission matrix', 'chi'] + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index b9ffdbcaa..0bd773248 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -20,17 +20,14 @@ class MGXSTestHarness(PyAPITestHarness): super(MGXSTestHarness, self)._build_inputs() # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = True - self.mgxs_lib.mgxs_types = ['total', 'transport', 'nu-transport', - 'absorption', 'capture', 'fission', - 'nu-fission', 'kappa-fission', 'scatter', - 'nu-scatter', 'scatter matrix', - 'nu-scatter matrix', 'multiplicity matrix', - 'nu-fission matrix', 'chi'] + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' From a3ccb5c7cd75dab8590ce66357fb8876fe71e025 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 29 May 2016 14:57:00 -0400 Subject: [PATCH 247/259] Added all mgxs types to tally types for all mgxs library tests and also converted them (save for the distribcell tests) to use the pincell model. Also, this showed there was an error in my multiplicitymatrix class, but thats fixed now --- openmc/mgxs/mgxs.py | 2 +- .../inputs_true.dat | 2 +- .../test_mgxs_library_ce_to_mg.py | 2 +- .../inputs_true.dat | 2 +- .../results_true.dat | 216 ++-- .../test_mgxs_library_condense.py | 13 +- .../inputs_true.dat | 2 +- .../results_true.dat | 25 + .../test_mgxs_library_distribcell.py | 8 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 381 +++--- .../test_mgxs_library_hdf5.py | 14 +- .../inputs_true.dat | 2 +- .../results_true.dat | 1067 +++-------------- .../test_mgxs_library_no_nuclides.py | 6 +- .../inputs_true.dat | 2 +- .../results_true.dat | 2 +- .../test_mgxs_library_nuclides.py | 6 +- 18 files changed, 507 insertions(+), 1247 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b79780ffc..829f88111 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -3680,7 +3680,7 @@ class MultiplicityMatrixXS(MatrixMGXS): groups=None, by_nuclide=False, name=''): super(MultiplicityMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'multiplicity' + self._rxn_type = 'multiplicity matrix' @property def scores(self): diff --git a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat index 46defbd0d..9633a46a8 100644 --- a/tests/test_mgxs_library_ce_to_mg/inputs_true.dat +++ b/tests/test_mgxs_library_ce_to_mg/inputs_true.dat @@ -1 +1 @@ -2db36402006f1aec10d484836303d5d804516ea9945f0508e610994b255185cb7f42dc3ed27dfd93355018d187100332011e921391059f83d3a5fda85e80d789 \ No newline at end of file +34d5891f6f17c2d4b686b814ba61ba0045bc4289e278b1c3c47dbba59b83837fcfe15f2b8d58e7a2b07627b73d51e40348d70e9ed36dbb7cc94468d61c068c4c \ No newline at end of file diff --git a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py index 17358e21e..0f7cba4a8 100644 --- a/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py +++ b/tests/test_mgxs_library_ce_to_mg/test_mgxs_library_ce_to_mg.py @@ -90,5 +90,5 @@ class MGXSTestHarness(PyAPITestHarness): if __name__ == '__main__': - harness = MGXSTestHarness('statepoint.10.*', True) + harness = MGXSTestHarness('statepoint.10.*', False) harness.main() diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index 3643c9a2e..79ca0ec66 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -1 +1 @@ -104e7fb527770ac5d3fc636da7716e8fb05d55761253d30516c899f466e6b38ffd881611a3d0cdf65c6af058c32f6f6758c68782be7a170d21024bdae751862f \ No newline at end of file +317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ No newline at end of file diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 190d652d8..13c277b15 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,132 +1,108 @@ material group in nuclide mean std. dev. -0 1 1 total 0.412084 0.02359 +0 10000 1 total 0.453624 0.021053 material group in nuclide mean std. dev. -0 1 1 total 0.076425 0.003691 +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.064903 0.004313 + material group in nuclide mean std. dev. +0 10000 1 total 0.028048 0.00458 + material group in nuclide mean std. dev. +0 10000 1 total 0.036855 0.002622 + material group in nuclide mean std. dev. +0 10000 1 total 0.090649 0.00641 + material group in nuclide mean std. dev. +0 10000 1 total 7.137955 0.507364 + material group in nuclide mean std. dev. +0 10000 1 total 0.388721 0.01783 + material group in nuclide mean std. dev. +0 10000 1 total 0.389304 0.023076 material group in group out nuclide moment mean std. dev. -0 1 1 1 total P0 0.384780 0.022253 -1 1 1 1 total P1 0.039277 0.004308 -2 1 1 1 total P2 0.017574 0.002402 -3 1 1 1 total P3 0.012203 0.002164 - material group out nuclide mean std. dev. -0 1 1 total 1.0 0.055333 - material group in nuclide mean std. dev. -0 2 1 total 0.241262 0.00841 - material group in nuclide mean std. dev. -0 2 1 total 0.0 0.0 +0 10000 1 1 total P0 0.389304 0.023146 +1 10000 1 1 total P1 0.046224 0.005907 +2 10000 1 1 total P2 0.017984 0.002883 +3 10000 1 1 total P3 0.006628 0.002457 material group in group out nuclide moment mean std. dev. -0 2 1 1 total P0 0.272369 0.006872 -1 2 1 1 total P1 0.031107 0.005483 -2 2 1 1 total P2 0.025999 0.006151 -3 2 1 1 total P3 0.003219 0.003312 +0 10000 1 1 total P0 0.389304 0.023146 +1 10000 1 1 total P1 0.046224 0.005907 +2 10000 1 1 total P2 0.017984 0.002883 +3 10000 1 1 total P3 0.006628 0.002457 + material group in group out nuclide mean std. dev. +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 out nuclide mean std. dev. -0 2 1 total 0.0 0.0 +0 10000 1 total 1.0 0.046071 material group in nuclide mean std. dev. -0 3 1 total 0.400028 0.034667 - material group in nuclide mean std. dev. -0 3 1 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -0 3 1 1 total P0 0.794999 0.036548 -1 3 1 1 total P1 0.401537 0.016175 -2 3 1 1 total P2 0.143623 0.008719 -3 3 1 1 total P3 0.001991 0.004433 - material group out nuclide mean std. dev. -0 3 1 total 0.0 0.0 +0 10001 1 total 0.311594 0.013793 material group in nuclide mean std. dev. -0 4 1 total 0.377402 0.072937 - material group in nuclide mean std. dev. -0 4 1 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -0 4 1 1 total P0 0.727311 0.080096 -1 4 1 1 total P1 0.355839 0.037901 -2 4 1 1 total P2 0.124483 0.015823 -3 4 1 1 total P3 0.012168 0.006224 - material group out nuclide mean std. dev. -0 4 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 5 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 5 1 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -0 5 1 1 total P0 0.0 0.0 -1 5 1 1 total P1 0.0 0.0 -2 5 1 1 total P2 0.0 0.0 -3 5 1 1 total P3 0.0 0.0 - material group out nuclide mean std. dev. -0 5 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 6 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 6 1 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -0 6 1 1 total P0 0.0 0.0 -1 6 1 1 total P1 0.0 0.0 -2 6 1 1 total P2 0.0 0.0 -3 6 1 1 total P3 0.0 0.0 - material group out nuclide mean std. dev. -0 6 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 7 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 7 1 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -0 7 1 1 total P0 0.0 0.0 -1 7 1 1 total P1 0.0 0.0 -2 7 1 1 total P2 0.0 0.0 -3 7 1 1 total P3 0.0 0.0 - material group out nuclide mean std. dev. -0 7 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 8 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 8 1 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -0 8 1 1 total P0 0.0 0.0 -1 8 1 1 total P1 0.0 0.0 -2 8 1 1 total P2 0.0 0.0 -3 8 1 1 total P3 0.0 0.0 - material group out nuclide mean std. dev. -0 8 1 total 0.0 0.0 +0 10001 1 total 0.279255 0.02919 material group in nuclide mean std. dev. -0 9 1 total 0.600536 0.748875 - material group in nuclide mean std. dev. -0 9 1 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -0 9 1 1 total P0 0.720380 0.771015 -1 9 1 1 total P1 0.119844 0.184691 -2 9 1 1 total P2 0.038522 0.064485 -3 9 1 1 total P3 0.056023 0.050595 - material group out nuclide mean std. dev. -0 9 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 10 1 total 0.235515 0.613974 - material group in nuclide mean std. dev. -0 10 1 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -0 10 1 1 total P0 0.501009 0.708534 -1 10 1 1 total P1 0.265494 0.375465 -2 10 1 1 total P2 0.141979 0.200788 -3 10 1 1 total P3 0.074258 0.105017 - material group out nuclide mean std. dev. -0 10 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 11 1 total 0.510145 0.741941 - material group in nuclide mean std. dev. -0 11 1 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -0 11 1 1 total P0 0.804661 0.817658 -1 11 1 1 total P1 0.312803 0.315315 -2 11 1 1 total P2 0.168113 0.172935 -3 11 1 1 total P3 0.003808 0.037911 - material group out nuclide mean std. dev. -0 11 1 total 0.0 0.0 +0 10001 1 total 0.279255 0.02919 material group in nuclide mean std. dev. -0 12 1 total 0.73836 0.825631 +0 10001 1 total 0.00221 0.000286 + material group in nuclide mean std. dev. +0 10001 1 total 0.00221 0.000286 material group in nuclide mean std. dev. -0 12 1 total 0.0 0.0 +0 10001 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10001 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10001 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10001 1 total 0.309384 0.013551 + material group in nuclide mean std. dev. +0 10001 1 total 0.307987 0.029308 material group in group out nuclide moment mean std. dev. -0 12 1 1 total P0 0.943429 0.856119 -1 12 1 1 total P1 0.220164 0.163180 -2 12 1 1 total P2 0.052884 0.042440 -3 12 1 1 total P3 0.039939 0.032867 +0 10001 1 1 total P0 0.307987 0.029308 +1 10001 1 1 total P1 0.030617 0.007464 +2 10001 1 1 total P2 0.018911 0.004323 +3 10001 1 1 total P3 0.006235 0.003338 + material group in group out nuclide moment mean std. dev. +0 10001 1 1 total P0 0.307987 0.029308 +1 10001 1 1 total P1 0.030617 0.007464 +2 10001 1 1 total P2 0.018911 0.004323 +3 10001 1 1 total P3 0.006235 0.003338 + material group in group out nuclide mean std. dev. +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 out nuclide mean std. dev. -0 12 1 total 0.0 0.0 +0 10001 1 total 0.0 0.0 + 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 + material group in nuclide mean std. dev. +0 10002 1 total 0.499184 0.040914 + material group in nuclide mean std. dev. +0 10002 1 total 0.00606 0.000555 + material group in nuclide mean std. dev. +0 10002 1 total 0.00606 0.000555 + material group in nuclide mean std. dev. +0 10002 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10002 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10002 1 total 0.0 0.0 + material group in nuclide mean std. dev. +0 10002 1 total 0.898938 0.043493 + material group in nuclide mean std. dev. +0 10002 1 total 0.903415 0.043959 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 0.903415 0.043586 +1 10002 1 1 total P1 0.410417 0.015877 +2 10002 1 1 total P2 0.143301 0.007187 +3 10002 1 1 total P3 0.008739 0.003571 + material group in group out nuclide moment mean std. dev. +0 10002 1 1 total P0 0.903415 0.043586 +1 10002 1 1 total P1 0.410417 0.015877 +2 10002 1 1 total P2 0.143301 0.007187 +3 10002 1 1 total P3 0.008739 0.003571 + material group in group out nuclide mean std. dev. +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 out nuclide mean std. dev. +0 10002 1 total 0.0 0.0 diff --git a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py index 2b834fa98..5571b59f2 100644 --- a/tests/test_mgxs_library_condense/test_mgxs_library_condense.py +++ b/tests/test_mgxs_library_condense/test_mgxs_library_condense.py @@ -6,27 +6,28 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False - self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', - 'nu-scatter matrix', 'chi'] + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 21927c800..dc67b7c56 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -1 +1 @@ -018bbbc2099f7b94180b391e46e42fc9a82498c60b3f8f7f4c91480ea373427932d287fe571d53b2397f329e71485e7155d7644f0f995bbcb458ba3e872ab043 \ No newline at end of file +88849ac150f9c389e67de96356dfceb0bde08643f68ca25699e67d263995b95893d7340a2b08b2f0f5075fc5020f73553c5287ec6c56ace2f35ce0214961e123 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 84e76965d..5000d60c3 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,11 +1,36 @@ avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 1.145934 0.553822 + avg(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.718919 0.520644 + avg(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.718919 0.520644 + avg(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.019762 0.010629 + avg(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.019762 0.010629 avg(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.0 0.0 + avg(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.0 0.0 + avg(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.0 0.0 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 1.126172 0.54344 + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 1.142547 0.570131 avg(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 1.142547 0.570131 1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 + avg(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 1.142547 0.570131 +1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P1 0.447381 0.216322 +2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P2 0.141202 0.066504 +3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total P3 0.039228 0.024621 + avg(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.529717 + avg(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.0 0.0 avg(distribcell) group out nuclide mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 diff --git a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py index a6fef2e77..30593e54b 100644 --- a/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py +++ b/tests/test_mgxs_library_distribcell/test_mgxs_library_distribcell.py @@ -12,10 +12,6 @@ import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} - # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() @@ -26,8 +22,8 @@ class MGXSTestHarness(PyAPITestHarness): # for one material-filled cell in the geometry self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False - self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', - 'nu-scatter matrix', 'chi'] + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'distribcell' diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index 3643c9a2e..79ca0ec66 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -1 +1 @@ -104e7fb527770ac5d3fc636da7716e8fb05d55761253d30516c899f466e6b38ffd881611a3d0cdf65c6af058c32f6f6758c68782be7a170d21024bdae751862f \ No newline at end of file +317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 3cae57747..7391b2e42 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,240 +1,195 @@ -domain=1 type=transport -[ 0.37274472 0.86160691] -[ 0.02426918 0.03234902] -domain=1 type=nu-fission -[ 0.02178897 0.71407658] -[ 0.00118187 0.04055185] -domain=1 type=nu-scatter matrix -[[[ 3.81546297e-01 4.43012537e-02 2.06462886e-02 1.36952959e-02] - [ 1.55945353e-03 -5.97269486e-04 -2.38789528e-04 1.75508083e-04]] +domain=10000 type=total +[ 0.41482549 0.66016992] +[ 0.02279291 0.04751893] +domain=10000 type=transport +[ 0.35685964 0.64764766] +[ 0.0254936 0.02370374] +domain=10000 type=nu-transport +[ 0.35685964 0.64764766] +[ 0.0254936 0.02370374] +domain=10000 type=absorption +[ 0.02740784 0.26451074] +[ 0.0026925 0.02336708] +domain=10000 type=capture +[ 0.01984455 0.07171935] +[ 0.0026433 0.02520786] +domain=10000 type=fission +[ 0.00756329 0.19279139] +[ 0.00050848 0.01710592] +domain=10000 type=nu-fission +[ 0.01943174 0.46977478] +[ 0.00132298 0.041682 ] +domain=10000 type=kappa-fission +[ 1.47456982 37.28689641] +[ 0.09923532 3.30837772] +domain=10000 type=scatter +[ 0.38741765 0.39565918] +[ 0.02062573 0.02512506] +domain=10000 type=nu-scatter +[ 0.38518839 0.4123894 ] +[ 0.02694562 0.01542528] +domain=10000 type=scatter matrix +[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] + [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 4.03915981e-01 -1.13103276e-02 -1.48065932e-02 -6.85505346e-03]]] -[[[ 0.02403322 0.00472203 0.00253903 0.00222437] - [ 0.00051015 0.00022485 0.00022157 0.00020939]] + [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] + [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] +[[[ 0.02700101 0.00698255 0.0028465 0.00223352] + [ 0.00048242 0.00014901 0.00018432 0.00012817]] - [[ 0. 0. 0. 0. ] - [ 0.01896646 0.00783919 0.00862908 0.00904704]]] -domain=1 type=chi + [[ 0.00092488 0.00076791 0.00049392 0.00017154] + [ 0.01524494 0.00450173 0.01055075 0.01043819]]] +domain=10000 type=nu-scatter matrix +[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03] + [ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]] + + [[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04] + [ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]] +[[[ 0.02700101 0.00698255 0.0028465 0.00223352] + [ 0.00048242 0.00014901 0.00018432 0.00012817]] + + [[ 0.00092488 0.00076791 0.00049392 0.00017154] + [ 0.01524494 0.00450173 0.01055075 0.01043819]]] +domain=10000 type=multiplicity matrix +[[ 1. 1.] + [ 1. 1.]] +[[ 0.07851646 0.68718427] + [ 1.41421356 0.04113035]] +domain=10000 type=nu-fission matrix +[[ 0.02014243 0. ] + [ 0.45436647 0. ]] +[[ 0.00314909 0. ] + [ 0.02742551 0. ]] +domain=10000 type=chi [ 1. 0.] -[ 0.05533329 0. ] -domain=2 type=transport -[ 0.23725441 0.28593027] -[ 0.00818357 0.04879593] -domain=2 type=nu-fission +[ 0.04607052 0. ] +domain=10001 type=total +[ 0.31373767 0.3008214 ] +[ 0.0155819 0.02805245] +domain=10001 type=transport +[ 0.27322787 0.31237484] +[ 0.03311537 0.04960583] +domain=10001 type=nu-transport +[ 0.27322787 0.31237484] +[ 0.03311537 0.04960583] +domain=10001 type=absorption +[ 0.00157499 0.00540038] +[ 0.00032255 0.00061814] +domain=10001 type=capture +[ 0.00157499 0.00540038] +[ 0.00032255 0.00061814] +domain=10001 type=fission [ 0. 0.] [ 0. 0.] -domain=2 type=nu-scatter matrix -[[[ 0.27311543 0.03586102 0.02970389 0.00224892] +domain=10001 type=nu-fission +[ 0. 0.] +[ 0. 0.] +domain=10001 type=kappa-fission +[ 0. 0.] +[ 0. 0.] +domain=10001 type=scatter +[ 0.31216268 0.29542102] +[ 0.01532192 0.02744549] +domain=10001 type=nu-scatter +[ 0.31012074 0.29626427] +[ 0.03378811 0.04379223] +domain=10001 type=scatter matrix +[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.26405068 -0.02187959 -0.01529469 0.01403395]]] -[[[ 0.00625287 0.00587756 0.00664018 0.00337568] + [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] +[[[ 0.03378811 0.008484 0.00469561 0.00373162] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0.04539742 0.01221814 0.01027609 0.01431818]]] -domain=2 type=chi -[ 0. 0.] -[ 0. 0.] -domain=3 type=transport -[ 0.28690578 1.41815062] -[ 0.02740142 0.26530756] -domain=3 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=3 type=nu-scatter matrix -[[[ 0.64334557 0.38340871 0.15218526 0.00303724] - [ 0.02618721 0.00736219 -0.00273849 -0.00271989]] - - [[ 0. 0. 0. 0. ] - [ 1.92421362 0.4984312 0.09120485 0.01705441]]] -[[[ 0.02837604 0.01644677 0.00957372 0.00464802] - [ 0.00166461 0.00093414 0.00075617 0.00055807]] - - [[ 0. 0. 0. 0. ] - [ 0.28406198 0.06342067 0.01372628 0.01391602]]] -domain=3 type=chi -[ 0. 0.] -[ 0. 0.] -domain=4 type=transport -[ 0.24244686 1.25395921] -[ 0.06103082 0.38836257] -domain=4 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=4 type=nu-scatter matrix -[[[ 0.54394096 0.32601136 0.13113269 0.01210477] - [ 0.023662 0.00752551 -0.00272975 -0.0031405 ]] - - [[ 0. 0. 0. 0. ] - [ 1.76464845 0.50069481 0.09902596 0.03297543]]] -[[[ 0.06542705 0.03860196 0.0174751 0.00607268] - [ 0.00308328 0.00130111 0.00084112 0.00057761]] - - [[ 0. 0. 0. 0. ] - [ 0.41620952 0.12217802 0.03871874 0.02510259]]] -domain=4 type=chi -[ 0. 0.] -[ 0. 0.] -domain=5 type=transport -[ 0. 0.] -[ 0. 0.] -domain=5 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=5 type=nu-scatter matrix -[[[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] - - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]]] -[[[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] - - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]]] -domain=5 type=chi -[ 0. 0.] -[ 0. 0.] -domain=6 type=transport -[ 0. 0.] -[ 0. 0.] -domain=6 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=6 type=nu-scatter matrix -[[[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] - - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]]] -[[[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] - - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]]] -domain=6 type=chi -[ 0. 0.] -[ 0. 0.] -domain=7 type=transport -[ 0. 0.] -[ 0. 0.] -domain=7 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=7 type=nu-scatter matrix -[[[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] - - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]]] -[[[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] - - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]]] -domain=7 type=chi -[ 0. 0.] -[ 0. 0.] -domain=8 type=transport -[ 0. 0.] -[ 0. 0.] -domain=8 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=8 type=nu-scatter matrix -[[[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] - - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]]] -[[[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]] - - [[ 0. 0. 0. 0.] - [ 0. 0. 0. 0.]]] -domain=8 type=chi -[ 0. 0.] -[ 0. 0.] -domain=9 type=transport -[ 0.60053598 0. ] -[ 0.74887543 0. ] -domain=9 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=9 type=nu-scatter matrix -[[[ 0.72037987 0.11984389 0.03852204 0.05602285] + [ 0.04379223 0.01618037 0.01150396 0.00732885]]] +domain=10001 type=nu-scatter matrix +[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0. 0. 0. 0. ]]] -[[[ 0.77101455 0.18469083 0.06448453 0.05059534] + [ 0.29626427 -0.01121364 0.00883657 -0.00327007]]] +[[[ 0.03378811 0.008484 0.00469561 0.00373162] [ 0. 0. 0. 0. ]] [[ 0. 0. 0. 0. ] - [ 0. 0. 0. 0. ]]] -domain=9 type=chi + [ 0.04379223 0.01618037 0.01150396 0.00732885]]] +domain=10001 type=multiplicity matrix +[[ 1. 0.] + [ 0. 1.]] +[[ 0.1087787 0. ] + [ 0. 0.14242717]] +domain=10001 type=nu-fission matrix +[[ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.]] +domain=10001 type=chi [ 0. 0.] [ 0. 0.] -domain=10 type=transport -[ 0.23551495 0. ] -[ 0.61397415 0. ] -domain=10 type=nu-fission +domain=10002 type=total +[ 0.66457226 2.05238401] +[ 0.03121475 0.22434291] +domain=10002 type=transport +[ 0.29056526 1.51643801] +[ 0.02385185 0.23519727] +domain=10002 type=nu-transport +[ 0.29056526 1.51643801] +[ 0.02385185 0.23519727] +domain=10002 type=absorption +[ 0.0006904 0.03168726] +[ 4.41475687e-05 3.74655858e-03] +domain=10002 type=capture +[ 0.0006904 0.03168726] +[ 4.41475687e-05 3.74655858e-03] +domain=10002 type=fission [ 0. 0.] [ 0. 0.] -domain=10 type=nu-scatter matrix -[[[ 0.50100891 0.26549396 0.14197875 0.07425836] - [ 0. 0. 0. 0. ]] +domain=10002 type=nu-fission +[ 0. 0.] +[ 0. 0.] +domain=10002 type=kappa-fission +[ 0. 0.] +[ 0. 0.] +domain=10002 type=scatter +[ 0.66388186 2.02069676] +[ 0.03117268 0.22060445] +domain=10002 type=nu-scatter +[ 0.6712692 2.03538833] +[ 0.02618637 0.25806033] +domain=10002 type=scatter matrix +[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] + [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] - [[ 0. 0. 0. 0. ] - [ 0. 0. 0. 0. ]]] -[[[ 0.70853359 0.37546516 0.20078827 0.10501718] - [ 0. 0. 0. 0. ]] + [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] + [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] +[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] + [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] - [[ 0. 0. 0. 0. ] - [ 0. 0. 0. 0. ]]] -domain=10 type=chi -[ 0. 0.] -[ 0. 0.] -domain=11 type=transport -[ 0.18632392 0.94598628] -[ 0.63212919 1.59113341] -domain=11 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=11 type=nu-scatter matrix -[[[ 0.47812753 0.32367878 0.14337507 0.05400336] - [ 0.03187517 0.00858456 -0.01246962 -0.01132019]] + [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] + [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] +domain=10002 type=nu-scatter matrix +[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03] + [ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]] - [[ 0. 0. 0. 0. ] - [ 1.20124973 0.28661101 0.21819147 -0.04851424]]] -[[[ 0.67617444 0.45775092 0.20276296 0.07637229] - [ 0.0450783 0.0121404 0.01763471 0.01600917]] + [[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04] + [ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]] +[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03] + [ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]] - [[ 0. 0. 0. 0. ] - [ 1.69882367 0.40532917 0.30856933 0.0686095 ]]] -domain=11 type=chi -[ 0. 0.] -[ 0. 0.] -domain=12 type=transport -[ 0.21329208 1.3909745 ] -[ 0.27144387 2.13734565] -domain=12 type=nu-fission -[ 0. 0.] -[ 0. 0.] -domain=12 type=nu-scatter matrix -[[[ 0.40859392 0.22254143 0.0909719 0.03100368] - [ 0.02723959 -0.01008785 -0.00694631 0.00969231]] - - [[ 0. 0. 0. 0. ] - [ 1.57432766 0.22974802 0.01417839 0.03899727]]] -[[[ 0.27812309 0.14577636 0.06962553 0.03598053] - [ 0.02955488 0.01094529 0.00753673 0.01051613]] - - [[ 0. 0. 0. 0. ] - [ 2.22643553 0.32491277 0.02005128 0.05515046]]] -domain=12 type=chi + [[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04] + [ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]] +domain=10002 type=multiplicity matrix +[[ 1. 1.] + [ 1. 1.]] +[[ 0.03860919 0.06766735] + [ 1.41421356 0.13592921]] +domain=10002 type=nu-fission matrix +[[ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.]] +domain=10002 type=chi [ 0. 0.] [ 0. 0.] diff --git a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py index 2d7ed2ef3..000a1f8cb 100644 --- a/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py +++ b/tests/test_mgxs_library_hdf5/test_mgxs_library_hdf5.py @@ -7,27 +7,28 @@ import hashlib import h5py sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() # Initialize a two-group structure - energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, 20.]) + energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6, + 20.]) # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry) self.mgxs_lib.by_nuclide = False - self.mgxs_lib.mgxs_types = ['transport', 'nu-fission', - 'nu-scatter matrix', 'chi'] + # Test all MGXS types + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' @@ -75,7 +76,6 @@ class MGXSTestHarness(PyAPITestHarness): return outstr - def _cleanup(self): super(MGXSTestHarness, self)._cleanup() f = os.path.join(os.getcwd(), 'tallies.xml') diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index e5d0a175c..79ca0ec66 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -1 +1 @@ -8675afa50c9e291cea100a30603833c9f73fdf75f0831809dee523292ddcdd27d452540bb06ea2ad40aaa3304228fb6a46281cb04878a492e27a62976c78c96b \ No newline at end of file +317a63a9dd3bfd84e969667b00f46018e56c04c356461a75103f63569e6b70c84d0da7f5e611faaf1b2631330b05ab4346223d3d843018ce0ce8876671a450c0 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index c05e05389..599cee6c4 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,924 +1,231 @@ material group in nuclide mean std. dev. -1 1 1 total 0.413737 0.020666 -0 1 2 total 0.831077 0.043043 +1 10000 1 total 0.414825 0.022793 +0 10000 2 total 0.660170 0.047519 material group in nuclide mean std. dev. -1 1 1 total 0.372745 0.024269 -0 1 2 total 0.861607 0.032349 +1 10000 1 total 0.356860 0.025494 +0 10000 2 total 0.647648 0.023704 material group in nuclide mean std. dev. -1 1 1 total 0.372593 0.024246 -0 1 2 total 0.861607 0.032349 +1 10000 1 total 0.356860 0.025494 +0 10000 2 total 0.647648 0.023704 material group in nuclide mean std. dev. -1 1 1 total 0.033747 0.001497 -0 1 2 total 0.436807 0.024531 +1 10000 1 total 0.027408 0.002692 +0 10000 2 total 0.264511 0.023367 material group in nuclide mean std. dev. -1 1 1 total 0.025522 0.001301 -0 1 2 total 0.165054 0.023520 +1 10000 1 total 0.019845 0.002643 +0 10000 2 total 0.071719 0.025208 material group in nuclide mean std. dev. -1 1 1 total 0.008225 0.000436 -0 1 2 total 0.271753 0.015604 +1 10000 1 total 0.007563 0.000508 +0 10000 2 total 0.192791 0.017106 material group in nuclide mean std. dev. -1 1 1 total 0.021789 0.001182 -0 1 2 total 0.714077 0.040552 +1 10000 1 total 0.019432 0.001323 +0 10000 2 total 0.469775 0.041682 material group in nuclide mean std. dev. -1 1 1 total 1.612520 0.085471 -0 1 2 total 53.252833 3.051695 +1 10000 1 total 1.474570 0.099235 +0 10000 2 total 37.286896 3.308378 material group in nuclide mean std. dev. -1 1 1 total 0.379990 0.019207 -0 1 2 total 0.394271 0.019629 +1 10000 1 total 0.387418 0.020626 +0 10000 2 total 0.395659 0.025125 material group in nuclide mean std. dev. -1 1 1 total 0.383106 0.024061 -0 1 2 total 0.403916 0.018966 +1 10000 1 total 0.385188 0.026946 +0 10000 2 total 0.412389 0.015425 material group in group out nuclide moment mean std. dev. -12 1 1 1 total P0 0.381200 0.023972 -13 1 1 1 total P1 0.044149 0.004814 -14 1 1 1 total P2 0.020601 0.002497 -15 1 1 1 total P3 0.013589 0.002222 -8 1 1 2 total P0 0.001559 0.000510 -9 1 1 2 total P1 -0.000597 0.000225 -10 1 1 2 total P2 -0.000239 0.000222 -11 1 1 2 total P3 0.000176 0.000209 -4 1 2 1 total P0 0.000000 0.000000 -5 1 2 1 total P1 0.000000 0.000000 -6 1 2 1 total P2 0.000000 0.000000 -7 1 2 1 total P3 0.000000 0.000000 -0 1 2 2 total P0 0.403916 0.018966 -1 1 2 2 total P1 -0.011310 0.007839 -2 1 2 2 total P2 -0.014807 0.008629 -3 1 2 2 total P3 -0.006855 0.009047 +12 10000 1 1 total P0 0.384199 0.027001 +13 10000 1 1 total P1 0.051870 0.006983 +14 10000 1 1 total P2 0.020069 0.002846 +15 10000 1 1 total P3 0.009478 0.002234 +8 10000 1 2 total P0 0.000989 0.000482 +9 10000 1 2 total P1 -0.000207 0.000149 +10 10000 1 2 total P2 -0.000103 0.000184 +11 10000 1 2 total P3 0.000234 0.000128 +4 10000 2 1 total P0 0.000925 0.000925 +5 10000 2 1 total P1 -0.000768 0.000768 +6 10000 2 1 total P2 0.000494 0.000494 +7 10000 2 1 total P3 -0.000171 0.000172 +0 10000 2 2 total P0 0.411465 0.015245 +1 10000 2 2 total P1 0.016482 0.004502 +2 10000 2 2 total P2 0.006371 0.010551 +3 10000 2 2 total P3 -0.010499 0.010438 material group in group out nuclide moment mean std. dev. -12 1 1 1 total P0 0.381546 0.024033 -13 1 1 1 total P1 0.044301 0.004722 -14 1 1 1 total P2 0.020646 0.002539 -15 1 1 1 total P3 0.013695 0.002224 -8 1 1 2 total P0 0.001559 0.000510 -9 1 1 2 total P1 -0.000597 0.000225 -10 1 1 2 total P2 -0.000239 0.000222 -11 1 1 2 total P3 0.000176 0.000209 -4 1 2 1 total P0 0.000000 0.000000 -5 1 2 1 total P1 0.000000 0.000000 -6 1 2 1 total P2 0.000000 0.000000 -7 1 2 1 total P3 0.000000 0.000000 -0 1 2 2 total P0 0.403916 0.018966 -1 1 2 2 total P1 -0.011310 0.007839 -2 1 2 2 total P2 -0.014807 0.008629 -3 1 2 2 total P3 -0.006855 0.009047 +12 10000 1 1 total P0 0.384199 0.027001 +13 10000 1 1 total P1 0.051870 0.006983 +14 10000 1 1 total P2 0.020069 0.002846 +15 10000 1 1 total P3 0.009478 0.002234 +8 10000 1 2 total P0 0.000989 0.000482 +9 10000 1 2 total P1 -0.000207 0.000149 +10 10000 1 2 total P2 -0.000103 0.000184 +11 10000 1 2 total P3 0.000234 0.000128 +4 10000 2 1 total P0 0.000925 0.000925 +5 10000 2 1 total P1 -0.000768 0.000768 +6 10000 2 1 total P2 0.000494 0.000494 +7 10000 2 1 total P3 -0.000171 0.000172 +0 10000 2 2 total P0 0.411465 0.015245 +1 10000 2 2 total P1 0.016482 0.004502 +2 10000 2 2 total P2 0.006371 0.010551 +3 10000 2 2 total P3 -0.010499 0.010438 + material group in group out nuclide mean std. dev. +3 10000 1 1 total 1.0 0.078516 +2 10000 1 2 total 1.0 0.687184 +1 10000 2 1 total 1.0 1.414214 +0 10000 2 2 total 1.0 0.041130 material group in group out nuclide mean std. dev. -3 1 1 1 total 1.000909 0.061440 -2 1 1 2 total 1.000000 0.458123 -1 1 2 1 total 0.000000 0.000000 -0 1 2 2 total 1.000000 0.055242 - material group in group out nuclide mean std. dev. -3 1 1 1 total 0.022739 0.002910 -2 1 1 2 total 0.000000 0.000000 -1 1 2 1 total 0.737265 0.030217 -0 1 2 2 total 0.000000 0.000000 +3 10000 1 1 total 0.020142 0.003149 +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 out nuclide mean std. dev. -1 1 1 total 1.0 0.055333 -0 1 2 total 0.0 0.000000 +1 10000 1 total 1.0 0.046071 +0 10000 2 total 0.0 0.000000 material group in nuclide mean std. dev. -1 2 1 total 0.274809 0.009544 -0 2 2 total 0.264483 0.013309 +1 10001 1 total 0.313738 0.015582 +0 10001 2 total 0.300821 0.028052 material group in nuclide mean std. dev. -1 2 1 total 0.237254 0.008184 -0 2 2 total 0.285930 0.048796 +1 10001 1 total 0.273228 0.033115 +0 10001 2 total 0.312375 0.049606 material group in nuclide mean std. dev. -1 2 1 total 0.237254 0.008184 -0 2 2 total 0.285930 0.048796 +1 10001 1 total 0.273228 0.033115 +0 10001 2 total 0.312375 0.049606 material group in nuclide mean std. dev. -1 2 1 total 0.001327 0.000144 -0 2 2 total 0.004358 0.000224 +1 10001 1 total 0.001575 0.000323 +0 10001 2 total 0.005400 0.000618 material group in nuclide mean std. dev. -1 2 1 total 0.001327 0.000144 -0 2 2 total 0.004358 0.000224 +1 10001 1 total 0.001575 0.000323 +0 10001 2 total 0.005400 0.000618 material group in nuclide mean std. dev. -1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 2 1 total 0.273482 0.009533 -0 2 2 total 0.260125 0.013092 +1 10001 1 total 0.312163 0.015322 +0 10001 2 total 0.295421 0.027445 material group in nuclide mean std. dev. -1 2 1 total 0.273115 0.006253 -0 2 2 total 0.264051 0.045397 +1 10001 1 total 0.310121 0.033788 +0 10001 2 total 0.296264 0.043792 material group in group out nuclide moment mean std. dev. -12 2 1 1 total P0 0.273115 0.006253 -13 2 1 1 total P1 0.035861 0.005878 -14 2 1 1 total P2 0.029704 0.006640 -15 2 1 1 total P3 0.002249 0.003376 -8 2 1 2 total P0 0.000000 0.000000 -9 2 1 2 total P1 0.000000 0.000000 -10 2 1 2 total P2 0.000000 0.000000 -11 2 1 2 total P3 0.000000 0.000000 -4 2 2 1 total P0 0.000000 0.000000 -5 2 2 1 total P1 0.000000 0.000000 -6 2 2 1 total P2 0.000000 0.000000 -7 2 2 1 total P3 0.000000 0.000000 -0 2 2 2 total P0 0.264051 0.045397 -1 2 2 2 total P1 -0.021880 0.012218 -2 2 2 2 total P2 -0.015295 0.010276 -3 2 2 2 total P3 0.014034 0.014318 +12 10001 1 1 total P0 0.310121 0.033788 +13 10001 1 1 total P1 0.038230 0.008484 +14 10001 1 1 total P2 0.020745 0.004696 +15 10001 1 1 total P3 0.007964 0.003732 +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.296264 0.043792 +1 10001 2 2 total P1 -0.011214 0.016180 +2 10001 2 2 total P2 0.008837 0.011504 +3 10001 2 2 total P3 -0.003270 0.007329 material group in group out nuclide moment mean std. dev. -12 2 1 1 total P0 0.273115 0.006253 -13 2 1 1 total P1 0.035861 0.005878 -14 2 1 1 total P2 0.029704 0.006640 -15 2 1 1 total P3 0.002249 0.003376 -8 2 1 2 total P0 0.000000 0.000000 -9 2 1 2 total P1 0.000000 0.000000 -10 2 1 2 total P2 0.000000 0.000000 -11 2 1 2 total P3 0.000000 0.000000 -4 2 2 1 total P0 0.000000 0.000000 -5 2 2 1 total P1 0.000000 0.000000 -6 2 2 1 total P2 0.000000 0.000000 -7 2 2 1 total P3 0.000000 0.000000 -0 2 2 2 total P0 0.264051 0.045397 -1 2 2 2 total P1 -0.021880 0.012218 -2 2 2 2 total P2 -0.015295 0.010276 -3 2 2 2 total P3 0.014034 0.014318 +12 10001 1 1 total P0 0.310121 0.033788 +13 10001 1 1 total P1 0.038230 0.008484 +14 10001 1 1 total P2 0.020745 0.004696 +15 10001 1 1 total P3 0.007964 0.003732 +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.296264 0.043792 +1 10001 2 2 total P1 -0.011214 0.016180 +2 10001 2 2 total P2 0.008837 0.011504 +3 10001 2 2 total P3 -0.003270 0.007329 material group in group out nuclide mean std. dev. -3 2 1 1 total 1.0 0.019157 -2 2 1 2 total 0.0 0.000000 -1 2 2 1 total 0.0 0.000000 -0 2 2 2 total 1.0 0.171895 +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 mean std. dev. -3 2 1 1 total 0.0 0.0 -2 2 1 2 total 0.0 0.0 -1 2 2 1 total 0.0 0.0 -0 2 2 2 total 0.0 0.0 +3 10001 1 1 total 0.0 0.0 +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 out nuclide mean std. dev. -1 2 1 total 0.0 0.0 -0 2 2 total 0.0 0.0 +1 10001 1 total 0.0 0.0 +0 10001 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 3 1 total 0.670714 0.041725 -0 3 2 total 1.989013 0.270454 +1 10002 1 total 0.664572 0.031215 +0 10002 2 total 2.052384 0.224343 material group in nuclide mean std. dev. -1 3 1 total 0.286906 0.027401 -0 3 2 total 1.418151 0.265308 +1 10002 1 total 0.290565 0.023852 +0 10002 2 total 1.516438 0.235197 material group in nuclide mean std. dev. -1 3 1 total 0.286906 0.027401 -0 3 2 total 1.418151 0.265308 +1 10002 1 total 0.290565 0.023852 +0 10002 2 total 1.516438 0.235197 material group in nuclide mean std. dev. -1 3 1 total 0.000998 0.000050 -0 3 2 total 0.048908 0.007333 +1 10002 1 total 0.000690 0.000044 +0 10002 2 total 0.031687 0.003747 material group in nuclide mean std. dev. -1 3 1 total 0.000998 0.000050 -0 3 2 total 0.048908 0.007333 +1 10002 1 total 0.000690 0.000044 +0 10002 2 total 0.031687 0.003747 material group in nuclide mean std. dev. -1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 material group in nuclide mean std. dev. -1 3 1 total 0.669716 0.041680 -0 3 2 total 1.940105 0.263149 +1 10002 1 total 0.663882 0.031173 +0 10002 2 total 2.020697 0.220604 material group in nuclide mean std. dev. -1 3 1 total 0.669533 0.029665 -0 3 2 total 1.924214 0.284062 +1 10002 1 total 0.671269 0.026186 +0 10002 2 total 2.035388 0.258060 material group in group out nuclide moment mean std. dev. -12 3 1 1 total P0 0.643346 0.028376 -13 3 1 1 total P1 0.383409 0.016447 -14 3 1 1 total P2 0.152185 0.009574 -15 3 1 1 total P3 0.003037 0.004648 -8 3 1 2 total P0 0.026187 0.001665 -9 3 1 2 total P1 0.007362 0.000934 -10 3 1 2 total P2 -0.002738 0.000756 -11 3 1 2 total P3 -0.002720 0.000558 -4 3 2 1 total P0 0.000000 0.000000 -5 3 2 1 total P1 0.000000 0.000000 -6 3 2 1 total P2 0.000000 0.000000 -7 3 2 1 total P3 0.000000 0.000000 -0 3 2 2 total P0 1.924214 0.284062 -1 3 2 2 total P1 0.498431 0.063421 -2 3 2 2 total P2 0.091205 0.013726 -3 3 2 2 total P3 0.017054 0.013916 +12 10002 1 1 total P0 0.639901 0.024709 +13 10002 1 1 total P1 0.381167 0.016243 +14 10002 1 1 total P2 0.152392 0.008156 +15 10002 1 1 total P3 0.009148 0.003889 +8 10002 1 2 total P0 0.031368 0.001728 +9 10002 1 2 total P1 0.008758 0.000926 +10 10002 1 2 total P2 -0.002568 0.001014 +11 10002 1 2 total P3 -0.003785 0.000817 +4 10002 2 1 total P0 0.000443 0.000445 +5 10002 2 1 total P1 0.000400 0.000401 +6 10002 2 1 total P2 0.000320 0.000321 +7 10002 2 1 total P3 0.000214 0.000215 +0 10002 2 2 total P0 2.034945 0.257800 +1 10002 2 2 total P1 0.509941 0.051236 +2 10002 2 2 total P2 0.111175 0.013020 +3 10002 2 2 total P3 0.024988 0.008312 material group in group out nuclide moment mean std. dev. -12 3 1 1 total P0 0.643346 0.028376 -13 3 1 1 total P1 0.383409 0.016447 -14 3 1 1 total P2 0.152185 0.009574 -15 3 1 1 total P3 0.003037 0.004648 -8 3 1 2 total P0 0.026187 0.001665 -9 3 1 2 total P1 0.007362 0.000934 -10 3 1 2 total P2 -0.002738 0.000756 -11 3 1 2 total P3 -0.002720 0.000558 -4 3 2 1 total P0 0.000000 0.000000 -5 3 2 1 total P1 0.000000 0.000000 -6 3 2 1 total P2 0.000000 0.000000 -7 3 2 1 total P3 0.000000 0.000000 -0 3 2 2 total P0 1.924214 0.284062 -1 3 2 2 total P1 0.498431 0.063421 -2 3 2 2 total P2 0.091205 0.013726 -3 3 2 2 total P3 0.017054 0.013916 +12 10002 1 1 total P0 0.639901 0.024709 +13 10002 1 1 total P1 0.381167 0.016243 +14 10002 1 1 total P2 0.152392 0.008156 +15 10002 1 1 total P3 0.009148 0.003889 +8 10002 1 2 total P0 0.031368 0.001728 +9 10002 1 2 total P1 0.008758 0.000926 +10 10002 1 2 total P2 -0.002568 0.001014 +11 10002 1 2 total P3 -0.003785 0.000817 +4 10002 2 1 total P0 0.000443 0.000445 +5 10002 2 1 total P1 0.000400 0.000401 +6 10002 2 1 total P2 0.000320 0.000321 +7 10002 2 1 total P3 0.000214 0.000215 +0 10002 2 2 total P0 2.034945 0.257800 +1 10002 2 2 total P1 0.509941 0.051236 +2 10002 2 2 total P2 0.111175 0.013020 +3 10002 2 2 total P3 0.024988 0.008312 material group in group out nuclide mean std. dev. -3 3 1 1 total 1.0 0.047903 -2 3 1 2 total 1.0 0.080529 -1 3 2 1 total 0.0 0.000000 -0 3 2 2 total 1.0 0.162017 +3 10002 1 1 total 1.0 0.038609 +2 10002 1 2 total 1.0 0.067667 +1 10002 2 1 total 1.0 1.414214 +0 10002 2 2 total 1.0 0.135929 material group in group out nuclide mean std. dev. -3 3 1 1 total 0.0 0.0 -2 3 1 2 total 0.0 0.0 -1 3 2 1 total 0.0 0.0 -0 3 2 2 total 0.0 0.0 +3 10002 1 1 total 0.0 0.0 +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 out nuclide mean std. dev. -1 3 1 total 0.0 0.0 -0 3 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 4 1 total 0.569719 0.069542 -0 4 2 total 1.818808 0.468684 - material group in nuclide mean std. dev. -1 4 1 total 0.242447 0.061031 -0 4 2 total 1.253959 0.388363 - material group in nuclide mean std. dev. -1 4 1 total 0.242447 0.061031 -0 4 2 total 1.253959 0.388363 - material group in nuclide mean std. dev. -1 4 1 total 0.000981 0.000145 -0 4 2 total 0.045603 0.012339 - material group in nuclide mean std. dev. -1 4 1 total 0.000981 0.000145 -0 4 2 total 0.045603 0.012339 - material group in nuclide mean std. dev. -1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 4 1 total 0.568737 0.069416 -0 4 2 total 1.773206 0.456376 - material group in nuclide mean std. dev. -1 4 1 total 0.567603 0.068093 -0 4 2 total 1.764648 0.416210 - material group in group out nuclide moment mean std. dev. -12 4 1 1 total P0 0.543941 0.065427 -13 4 1 1 total P1 0.326011 0.038602 -14 4 1 1 total P2 0.131133 0.017475 -15 4 1 1 total P3 0.012105 0.006073 -8 4 1 2 total P0 0.023662 0.003083 -9 4 1 2 total P1 0.007526 0.001301 -10 4 1 2 total P2 -0.002730 0.000841 -11 4 1 2 total P3 -0.003140 0.000578 -4 4 2 1 total P0 0.000000 0.000000 -5 4 2 1 total P1 0.000000 0.000000 -6 4 2 1 total P2 0.000000 0.000000 -7 4 2 1 total P3 0.000000 0.000000 -0 4 2 2 total P0 1.764648 0.416210 -1 4 2 2 total P1 0.500695 0.122178 -2 4 2 2 total P2 0.099026 0.038719 -3 4 2 2 total P3 0.032975 0.025103 - material group in group out nuclide moment mean std. dev. -12 4 1 1 total P0 0.543941 0.065427 -13 4 1 1 total P1 0.326011 0.038602 -14 4 1 1 total P2 0.131133 0.017475 -15 4 1 1 total P3 0.012105 0.006073 -8 4 1 2 total P0 0.023662 0.003083 -9 4 1 2 total P1 0.007526 0.001301 -10 4 1 2 total P2 -0.002730 0.000841 -11 4 1 2 total P3 -0.003140 0.000578 -4 4 2 1 total P0 0.000000 0.000000 -5 4 2 1 total P1 0.000000 0.000000 -6 4 2 1 total P2 0.000000 0.000000 -7 4 2 1 total P3 0.000000 0.000000 -0 4 2 2 total P0 1.764648 0.416210 -1 4 2 2 total P1 0.500695 0.122178 -2 4 2 2 total P2 0.099026 0.038719 -3 4 2 2 total P3 0.032975 0.025103 - material group in group out nuclide mean std. dev. -3 4 1 1 total 1.0 0.125440 -2 4 1 2 total 1.0 0.144075 -1 4 2 1 total 0.0 0.000000 -0 4 2 2 total 1.0 0.256789 - material group in group out nuclide mean std. dev. -3 4 1 1 total 0.0 0.0 -2 4 1 2 total 0.0 0.0 -1 4 2 1 total 0.0 0.0 -0 4 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 4 1 total 0.0 0.0 -0 4 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 5 1 1 total P0 0.0 0.0 -13 5 1 1 total P1 0.0 0.0 -14 5 1 1 total P2 0.0 0.0 -15 5 1 1 total P3 0.0 0.0 -8 5 1 2 total P0 0.0 0.0 -9 5 1 2 total P1 0.0 0.0 -10 5 1 2 total P2 0.0 0.0 -11 5 1 2 total P3 0.0 0.0 -4 5 2 1 total P0 0.0 0.0 -5 5 2 1 total P1 0.0 0.0 -6 5 2 1 total P2 0.0 0.0 -7 5 2 1 total P3 0.0 0.0 -0 5 2 2 total P0 0.0 0.0 -1 5 2 2 total P1 0.0 0.0 -2 5 2 2 total P2 0.0 0.0 -3 5 2 2 total P3 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 5 1 1 total P0 0.0 0.0 -13 5 1 1 total P1 0.0 0.0 -14 5 1 1 total P2 0.0 0.0 -15 5 1 1 total P3 0.0 0.0 -8 5 1 2 total P0 0.0 0.0 -9 5 1 2 total P1 0.0 0.0 -10 5 1 2 total P2 0.0 0.0 -11 5 1 2 total P3 0.0 0.0 -4 5 2 1 total P0 0.0 0.0 -5 5 2 1 total P1 0.0 0.0 -6 5 2 1 total P2 0.0 0.0 -7 5 2 1 total P3 0.0 0.0 -0 5 2 2 total P0 0.0 0.0 -1 5 2 2 total P1 0.0 0.0 -2 5 2 2 total P2 0.0 0.0 -3 5 2 2 total P3 0.0 0.0 - material group in group out nuclide mean std. dev. -3 5 1 1 total 0.0 0.0 -2 5 1 2 total 0.0 0.0 -1 5 2 1 total 0.0 0.0 -0 5 2 2 total 0.0 0.0 - material group in group out nuclide mean std. dev. -3 5 1 1 total 0.0 0.0 -2 5 1 2 total 0.0 0.0 -1 5 2 1 total 0.0 0.0 -0 5 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 5 1 total 0.0 0.0 -0 5 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 6 1 1 total P0 0.0 0.0 -13 6 1 1 total P1 0.0 0.0 -14 6 1 1 total P2 0.0 0.0 -15 6 1 1 total P3 0.0 0.0 -8 6 1 2 total P0 0.0 0.0 -9 6 1 2 total P1 0.0 0.0 -10 6 1 2 total P2 0.0 0.0 -11 6 1 2 total P3 0.0 0.0 -4 6 2 1 total P0 0.0 0.0 -5 6 2 1 total P1 0.0 0.0 -6 6 2 1 total P2 0.0 0.0 -7 6 2 1 total P3 0.0 0.0 -0 6 2 2 total P0 0.0 0.0 -1 6 2 2 total P1 0.0 0.0 -2 6 2 2 total P2 0.0 0.0 -3 6 2 2 total P3 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 6 1 1 total P0 0.0 0.0 -13 6 1 1 total P1 0.0 0.0 -14 6 1 1 total P2 0.0 0.0 -15 6 1 1 total P3 0.0 0.0 -8 6 1 2 total P0 0.0 0.0 -9 6 1 2 total P1 0.0 0.0 -10 6 1 2 total P2 0.0 0.0 -11 6 1 2 total P3 0.0 0.0 -4 6 2 1 total P0 0.0 0.0 -5 6 2 1 total P1 0.0 0.0 -6 6 2 1 total P2 0.0 0.0 -7 6 2 1 total P3 0.0 0.0 -0 6 2 2 total P0 0.0 0.0 -1 6 2 2 total P1 0.0 0.0 -2 6 2 2 total P2 0.0 0.0 -3 6 2 2 total P3 0.0 0.0 - material group in group out nuclide mean std. dev. -3 6 1 1 total 0.0 0.0 -2 6 1 2 total 0.0 0.0 -1 6 2 1 total 0.0 0.0 -0 6 2 2 total 0.0 0.0 - material group in group out nuclide mean std. dev. -3 6 1 1 total 0.0 0.0 -2 6 1 2 total 0.0 0.0 -1 6 2 1 total 0.0 0.0 -0 6 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 6 1 total 0.0 0.0 -0 6 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 7 1 1 total P0 0.0 0.0 -13 7 1 1 total P1 0.0 0.0 -14 7 1 1 total P2 0.0 0.0 -15 7 1 1 total P3 0.0 0.0 -8 7 1 2 total P0 0.0 0.0 -9 7 1 2 total P1 0.0 0.0 -10 7 1 2 total P2 0.0 0.0 -11 7 1 2 total P3 0.0 0.0 -4 7 2 1 total P0 0.0 0.0 -5 7 2 1 total P1 0.0 0.0 -6 7 2 1 total P2 0.0 0.0 -7 7 2 1 total P3 0.0 0.0 -0 7 2 2 total P0 0.0 0.0 -1 7 2 2 total P1 0.0 0.0 -2 7 2 2 total P2 0.0 0.0 -3 7 2 2 total P3 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 7 1 1 total P0 0.0 0.0 -13 7 1 1 total P1 0.0 0.0 -14 7 1 1 total P2 0.0 0.0 -15 7 1 1 total P3 0.0 0.0 -8 7 1 2 total P0 0.0 0.0 -9 7 1 2 total P1 0.0 0.0 -10 7 1 2 total P2 0.0 0.0 -11 7 1 2 total P3 0.0 0.0 -4 7 2 1 total P0 0.0 0.0 -5 7 2 1 total P1 0.0 0.0 -6 7 2 1 total P2 0.0 0.0 -7 7 2 1 total P3 0.0 0.0 -0 7 2 2 total P0 0.0 0.0 -1 7 2 2 total P1 0.0 0.0 -2 7 2 2 total P2 0.0 0.0 -3 7 2 2 total P3 0.0 0.0 - material group in group out nuclide mean std. dev. -3 7 1 1 total 0.0 0.0 -2 7 1 2 total 0.0 0.0 -1 7 2 1 total 0.0 0.0 -0 7 2 2 total 0.0 0.0 - material group in group out nuclide mean std. dev. -3 7 1 1 total 0.0 0.0 -2 7 1 2 total 0.0 0.0 -1 7 2 1 total 0.0 0.0 -0 7 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 7 1 total 0.0 0.0 -0 7 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 8 1 1 total P0 0.0 0.0 -13 8 1 1 total P1 0.0 0.0 -14 8 1 1 total P2 0.0 0.0 -15 8 1 1 total P3 0.0 0.0 -8 8 1 2 total P0 0.0 0.0 -9 8 1 2 total P1 0.0 0.0 -10 8 1 2 total P2 0.0 0.0 -11 8 1 2 total P3 0.0 0.0 -4 8 2 1 total P0 0.0 0.0 -5 8 2 1 total P1 0.0 0.0 -6 8 2 1 total P2 0.0 0.0 -7 8 2 1 total P3 0.0 0.0 -0 8 2 2 total P0 0.0 0.0 -1 8 2 2 total P1 0.0 0.0 -2 8 2 2 total P2 0.0 0.0 -3 8 2 2 total P3 0.0 0.0 - material group in group out nuclide moment mean std. dev. -12 8 1 1 total P0 0.0 0.0 -13 8 1 1 total P1 0.0 0.0 -14 8 1 1 total P2 0.0 0.0 -15 8 1 1 total P3 0.0 0.0 -8 8 1 2 total P0 0.0 0.0 -9 8 1 2 total P1 0.0 0.0 -10 8 1 2 total P2 0.0 0.0 -11 8 1 2 total P3 0.0 0.0 -4 8 2 1 total P0 0.0 0.0 -5 8 2 1 total P1 0.0 0.0 -6 8 2 1 total P2 0.0 0.0 -7 8 2 1 total P3 0.0 0.0 -0 8 2 2 total P0 0.0 0.0 -1 8 2 2 total P1 0.0 0.0 -2 8 2 2 total P2 0.0 0.0 -3 8 2 2 total P3 0.0 0.0 - material group in group out nuclide mean std. dev. -3 8 1 1 total 0.0 0.0 -2 8 1 2 total 0.0 0.0 -1 8 2 1 total 0.0 0.0 -0 8 2 2 total 0.0 0.0 - material group in group out nuclide mean std. dev. -3 8 1 1 total 0.0 0.0 -2 8 1 2 total 0.0 0.0 -1 8 2 1 total 0.0 0.0 -0 8 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 8 1 total 0.0 0.0 -0 8 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 9 1 total 1.123604 1.580875 -0 9 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 9 1 total 0.600536 0.748875 -0 9 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 9 1 total 0.600536 0.748875 -0 9 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 9 1 total 0.006197 0.008724 -0 9 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 9 1 total 0.006197 0.008724 -0 9 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 9 1 total 1.117408 1.572151 -0 9 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 9 1 total 0.72038 0.771015 -0 9 2 total 0.00000 0.000000 - material group in group out nuclide moment mean std. dev. -12 9 1 1 total P0 0.720380 0.771015 -13 9 1 1 total P1 0.119844 0.184691 -14 9 1 1 total P2 0.038522 0.064485 -15 9 1 1 total P3 0.056023 0.050595 -8 9 1 2 total P0 0.000000 0.000000 -9 9 1 2 total P1 0.000000 0.000000 -10 9 1 2 total P2 0.000000 0.000000 -11 9 1 2 total P3 0.000000 0.000000 -4 9 2 1 total P0 0.000000 0.000000 -5 9 2 1 total P1 0.000000 0.000000 -6 9 2 1 total P2 0.000000 0.000000 -7 9 2 1 total P3 0.000000 0.000000 -0 9 2 2 total P0 0.000000 0.000000 -1 9 2 2 total P1 0.000000 0.000000 -2 9 2 2 total P2 0.000000 0.000000 -3 9 2 2 total P3 0.000000 0.000000 - material group in group out nuclide moment mean std. dev. -12 9 1 1 total P0 0.720380 0.771015 -13 9 1 1 total P1 0.119844 0.184691 -14 9 1 1 total P2 0.038522 0.064485 -15 9 1 1 total P3 0.056023 0.050595 -8 9 1 2 total P0 0.000000 0.000000 -9 9 1 2 total P1 0.000000 0.000000 -10 9 1 2 total P2 0.000000 0.000000 -11 9 1 2 total P3 0.000000 0.000000 -4 9 2 1 total P0 0.000000 0.000000 -5 9 2 1 total P1 0.000000 0.000000 -6 9 2 1 total P2 0.000000 0.000000 -7 9 2 1 total P3 0.000000 0.000000 -0 9 2 2 total P0 0.000000 0.000000 -1 9 2 2 total P1 0.000000 0.000000 -2 9 2 2 total P2 0.000000 0.000000 -3 9 2 2 total P3 0.000000 0.000000 - material group in group out nuclide mean std. dev. -3 9 1 1 total 1.0 1.227262 -2 9 1 2 total 0.0 0.000000 -1 9 2 1 total 0.0 0.000000 -0 9 2 2 total 0.0 0.000000 - material group in group out nuclide mean std. dev. -3 9 1 1 total 0.0 0.0 -2 9 1 2 total 0.0 0.0 -1 9 2 1 total 0.0 0.0 -0 9 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 9 1 total 0.0 0.0 -0 9 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10 1 total 0.812963 1.149704 -0 10 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10 1 total 0.235515 0.613974 -0 10 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10 1 total 0.235515 0.613974 -0 10 2 total 0.000000 0.000000 - material group in nuclide mean std. dev. -1 10 1 total 0.00018 0.000254 -0 10 2 total 0.00000 0.000000 - material group in nuclide mean std. dev. -1 10 1 total 0.00018 0.000254 -0 10 2 total 0.00000 0.000000 - material group in nuclide mean std. dev. -1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 10 1 total 0.812784 1.14945 -0 10 2 total 0.000000 0.00000 - material group in nuclide mean std. dev. -1 10 1 total 0.501009 0.708534 -0 10 2 total 0.000000 0.000000 - material group in group out nuclide moment mean std. dev. -12 10 1 1 total P0 0.501009 0.708534 -13 10 1 1 total P1 0.265494 0.375465 -14 10 1 1 total P2 0.141979 0.200788 -15 10 1 1 total P3 0.074258 0.105017 -8 10 1 2 total P0 0.000000 0.000000 -9 10 1 2 total P1 0.000000 0.000000 -10 10 1 2 total P2 0.000000 0.000000 -11 10 1 2 total P3 0.000000 0.000000 -4 10 2 1 total P0 0.000000 0.000000 -5 10 2 1 total P1 0.000000 0.000000 -6 10 2 1 total P2 0.000000 0.000000 -7 10 2 1 total P3 0.000000 0.000000 -0 10 2 2 total P0 0.000000 0.000000 -1 10 2 2 total P1 0.000000 0.000000 -2 10 2 2 total P2 0.000000 0.000000 -3 10 2 2 total P3 0.000000 0.000000 - material group in group out nuclide moment mean std. dev. -12 10 1 1 total P0 0.501009 0.708534 -13 10 1 1 total P1 0.265494 0.375465 -14 10 1 1 total P2 0.141979 0.200788 -15 10 1 1 total P3 0.074258 0.105017 -8 10 1 2 total P0 0.000000 0.000000 -9 10 1 2 total P1 0.000000 0.000000 -10 10 1 2 total P2 0.000000 0.000000 -11 10 1 2 total P3 0.000000 0.000000 -4 10 2 1 total P0 0.000000 0.000000 -5 10 2 1 total P1 0.000000 0.000000 -6 10 2 1 total P2 0.000000 0.000000 -7 10 2 1 total P3 0.000000 0.000000 -0 10 2 2 total P0 0.000000 0.000000 -1 10 2 2 total P1 0.000000 0.000000 -2 10 2 2 total P2 0.000000 0.000000 -3 10 2 2 total P3 0.000000 0.000000 - material group in group out nuclide mean std. dev. -3 10 1 1 total 1.0 1.414214 -2 10 1 2 total 0.0 0.000000 -1 10 2 1 total 0.0 0.000000 -0 10 2 2 total 0.0 0.000000 - material group in group out nuclide mean std. dev. -3 10 1 1 total 0.0 0.0 -2 10 1 2 total 0.0 0.0 -1 10 2 1 total 0.0 0.0 -0 10 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 10 1 total 0.0 0.0 -0 10 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 11 1 total 0.408939 0.578327 -0 11 2 total 1.258110 1.779236 - material group in nuclide mean std. dev. -1 11 1 total 0.186324 0.632129 -0 11 2 total 0.945986 1.591133 - material group in nuclide mean std. dev. -1 11 1 total 0.186324 0.632129 -0 11 2 total 0.945986 1.591133 - material group in nuclide mean std. dev. -1 11 1 total 0.000687 0.000971 -0 11 2 total 0.028614 0.040466 - material group in nuclide mean std. dev. -1 11 1 total 0.000687 0.000971 -0 11 2 total 0.028614 0.040466 - material group in nuclide mean std. dev. -1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 11 1 total 0.408253 0.577356 -0 11 2 total 1.229496 1.738770 - material group in nuclide mean std. dev. -1 11 1 total 0.510003 0.721253 -0 11 2 total 1.201250 1.698824 - material group in group out nuclide moment mean std. dev. -12 11 1 1 total P0 0.478128 0.676174 -13 11 1 1 total P1 0.323679 0.457751 -14 11 1 1 total P2 0.143375 0.202763 -15 11 1 1 total P3 0.054003 0.076372 -8 11 1 2 total P0 0.031875 0.045078 -9 11 1 2 total P1 0.008585 0.012140 -10 11 1 2 total P2 -0.012470 0.017635 -11 11 1 2 total P3 -0.011320 0.016009 -4 11 2 1 total P0 0.000000 0.000000 -5 11 2 1 total P1 0.000000 0.000000 -6 11 2 1 total P2 0.000000 0.000000 -7 11 2 1 total P3 0.000000 0.000000 -0 11 2 2 total P0 1.201250 1.698824 -1 11 2 2 total P1 0.286611 0.405329 -2 11 2 2 total P2 0.218191 0.308569 -3 11 2 2 total P3 -0.048514 0.068609 - material group in group out nuclide moment mean std. dev. -12 11 1 1 total P0 0.478128 0.676174 -13 11 1 1 total P1 0.323679 0.457751 -14 11 1 1 total P2 0.143375 0.202763 -15 11 1 1 total P3 0.054003 0.076372 -8 11 1 2 total P0 0.031875 0.045078 -9 11 1 2 total P1 0.008585 0.012140 -10 11 1 2 total P2 -0.012470 0.017635 -11 11 1 2 total P3 -0.011320 0.016009 -4 11 2 1 total P0 0.000000 0.000000 -5 11 2 1 total P1 0.000000 0.000000 -6 11 2 1 total P2 0.000000 0.000000 -7 11 2 1 total P3 0.000000 0.000000 -0 11 2 2 total P0 1.201250 1.698824 -1 11 2 2 total P1 0.286611 0.405329 -2 11 2 2 total P2 0.218191 0.308569 -3 11 2 2 total P3 -0.048514 0.068609 - material group in group out nuclide mean std. dev. -3 11 1 1 total 1.0 1.414214 -2 11 1 2 total 1.0 1.414214 -1 11 2 1 total 0.0 0.000000 -0 11 2 2 total 1.0 1.414214 - material group in group out nuclide mean std. dev. -3 11 1 1 total 0.0 0.0 -2 11 1 2 total 0.0 0.0 -1 11 2 1 total 0.0 0.0 -0 11 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 11 1 total 0.0 0.0 -0 11 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 12 1 total 0.390295 0.247786 -0 12 2 total 1.619510 2.290334 - material group in nuclide mean std. dev. -1 12 1 total 0.213292 0.271444 -0 12 2 total 1.390975 2.137346 - material group in nuclide mean std. dev. -1 12 1 total 0.213292 0.271444 -0 12 2 total 1.390975 2.137346 - material group in nuclide mean std. dev. -1 12 1 total 0.000217 0.000142 -0 12 2 total 0.045440 0.064261 - material group in nuclide mean std. dev. -1 12 1 total 0.000217 0.000142 -0 12 2 total 0.045440 0.064261 - material group in nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 - material group in nuclide mean std. dev. -1 12 1 total 0.390078 0.247656 -0 12 2 total 1.574071 2.226072 - material group in nuclide mean std. dev. -1 12 1 total 0.435834 0.294632 -0 12 2 total 1.574328 2.226436 - material group in group out nuclide moment mean std. dev. -12 12 1 1 total P0 0.408594 0.278123 -13 12 1 1 total P1 0.222541 0.145776 -14 12 1 1 total P2 0.090972 0.069626 -15 12 1 1 total P3 0.031004 0.035981 -8 12 1 2 total P0 0.027240 0.029555 -9 12 1 2 total P1 -0.010088 0.010945 -10 12 1 2 total P2 -0.006946 0.007537 -11 12 1 2 total P3 0.009692 0.010516 -4 12 2 1 total P0 0.000000 0.000000 -5 12 2 1 total P1 0.000000 0.000000 -6 12 2 1 total P2 0.000000 0.000000 -7 12 2 1 total P3 0.000000 0.000000 -0 12 2 2 total P0 1.574328 2.226436 -1 12 2 2 total P1 0.229748 0.324913 -2 12 2 2 total P2 0.014178 0.020051 -3 12 2 2 total P3 0.038997 0.055150 - material group in group out nuclide moment mean std. dev. -12 12 1 1 total P0 0.408594 0.278123 -13 12 1 1 total P1 0.222541 0.145776 -14 12 1 1 total P2 0.090972 0.069626 -15 12 1 1 total P3 0.031004 0.035981 -8 12 1 2 total P0 0.027240 0.029555 -9 12 1 2 total P1 -0.010088 0.010945 -10 12 1 2 total P2 -0.006946 0.007537 -11 12 1 2 total P3 0.009692 0.010516 -4 12 2 1 total P0 0.000000 0.000000 -5 12 2 1 total P1 0.000000 0.000000 -6 12 2 1 total P2 0.000000 0.000000 -7 12 2 1 total P3 0.000000 0.000000 -0 12 2 2 total P0 1.574328 2.226436 -1 12 2 2 total P1 0.229748 0.324913 -2 12 2 2 total P2 0.014178 0.020051 -3 12 2 2 total P3 0.038997 0.055150 - material group in group out nuclide mean std. dev. -3 12 1 1 total 1.0 0.756454 -2 12 1 2 total 1.0 1.414214 -1 12 2 1 total 0.0 0.000000 -0 12 2 2 total 1.0 1.414214 - material group in group out nuclide mean std. dev. -3 12 1 1 total 0.0 0.0 -2 12 1 2 total 0.0 0.0 -1 12 2 1 total 0.0 0.0 -0 12 2 2 total 0.0 0.0 - material group out nuclide mean std. dev. -1 12 1 total 0.0 0.0 -0 12 2 total 0.0 0.0 +1 10002 1 total 0.0 0.0 +0 10002 2 total 0.0 0.0 diff --git a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py index 8f074f4f6..2c0a2e278 100644 --- a/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py +++ b/tests/test_mgxs_library_no_nuclides/test_mgxs_library_no_nuclides.py @@ -6,15 +6,15 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 9adacb3a5..8dbb564c6 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -1 +1 @@ -6612ed1baa139ba085456963f0f04a0450bd13c46e6e04ec8fb1c7392168584fce4ca28b75c7606163b4af02a9ead433993f14fa3be8a5ad0083b01c5ff5f33e \ No newline at end of file +eebb1469278f470b5859ed83e9b6526e7c4e3fed503bd22e414c6dc13b19b8e4cb6a44e3c14269e6e173f43056eda78268f455662ae119280bc18ea6a071dac7 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 26b7f26a3..4f47bd417 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -629afcb6af616b3b51fc219ef1a829675322fd0b890d538ac172feb76a3937efd1142d8082072f3ab304d2b5f4bf8a930330dc5b2d322c2c96c7187d7c026b7b \ No newline at end of file +a631b8a347f344d822e6300ed2576caa7c05a74daedeb4aaaabfb89570942cff1bbd47ad7f81306e668e12266404f7abdcf680fdfeb5a4835579892e32bf57e8 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py index 0bd773248..da613d78a 100644 --- a/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py +++ b/tests/test_mgxs_library_nuclides/test_mgxs_library_nuclides.py @@ -6,15 +6,15 @@ import glob import hashlib sys.path.insert(0, os.pardir) from testing_harness import PyAPITestHarness +from input_set import PinCellInputSet import openmc import openmc.mgxs class MGXSTestHarness(PyAPITestHarness): def _build_inputs(self): - - # The openmc.mgxs module needs a summary.h5 file - self._input_set.settings.output = {'summary': True} + # Set the input set to use the pincell model + self._input_set = PinCellInputSet() # Generate inputs using parent class routine super(MGXSTestHarness, self)._build_inputs() From a3126e832074819da0022424c794bee4ae4ec38b Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 29 May 2016 22:30:28 -0400 Subject: [PATCH 248/259] Introduced finer granularity for exact parameter in StatePoint.get_tally(...) to fix MGXS notebook bug --- openmc/mgxs/mgxs.py | 2 +- openmc/statepoint.py | 51 ++++++++++++++++++++++++++++++-------------- openmc/tallies.py | 2 ++ 3 files changed, 38 insertions(+), 17 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 829f88111..e0974d473 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -693,7 +693,7 @@ class MGXS(object): for tally_type, tally in self.tallies.items(): sp_tally = statepoint.get_tally( tally.scores, tally.filters, tally.nuclides, - estimator=tally.estimator, exact=True) + estimator=tally.estimator, exact_filters=True) sp_tally = sp_tally.get_slice( tally.scores, filters, filter_bins, tally.nuclides) sp_tally.sparse = self.sparse diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 83dd148fe..329d3e41d 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -497,17 +497,28 @@ class StatePoint(object): self.tallies[tally_id].sparse = self.sparse def get_tally(self, scores=[], filters=[], nuclides=[], - name=None, id=None, estimator=None, exact=False): + name=None, id=None, estimator=None, exact_nuclides=False, + exact_filters=False, exact_scores=False): """Finds and returns a Tally object with certain properties. This routine searches the list of Tallies and returns the first Tally found which satisfies all of the input parameters. - NOTE: If the "exact" parameter is False (default), the input parameters + If the "exactness" parameter is 0 (default), the input parameters do not need to match the complete Tally specification and may only - represent a subset of the Tally's properties. If the "exact" parameter - is True then the scores, filters, nuclides and estimator parameters - must precisely match those of any matching Tally. + represent a subset of the Tally's properties. If the "exactness" + parameter is 1 then the length of the scores, filters, nuclides + parameters must precisely match those of any matching Tally, but the + filter bins may represent a subset of those in any matching Tally + (useful if tallies are merged in the input). If the "exactness" + parameter is 2 then the values of the scores, nuclides and filters + parameters must precisely match those of any matching Tally. + + NOTE: If any of the "exact" parameters are False (default), the input + parameters do not need to match the complete Tally specification and + may only represent a subset of the Tally's properties. If an "exact" + parameter is True then number of scores, filters, or nuclides in the + parameters must precisely match those of any matching Tally. Parameters ---------- @@ -523,9 +534,18 @@ class StatePoint(object): The id specified for the Tally (default is None). estimator: str, optional The type of estimator ('tracklength', 'analog'; default is None). - exact : bool - Whether to strictly enforce the match between the parameters and - the returned tally + exact_filters : bool + If True, the number of filters in the parameters must be identical + to those in the matching Tally. If False (default), the filters in + the parameters may be a subset of those in the matching Tally. + exact_nuclides : bool + If True, the number of nuclides in the parameters must be identical + to those in the matching Tally. If False (default), the nuclides in + the parameters may be a subset of those in the matching Tally. + exact_scores : bool + If True, the number of scores in the parameters must be identical + to those in the matching Tally. If False (default), the scores + in the parameters may be a subset of those in the matching Tally. Returns ------- @@ -554,17 +574,16 @@ class StatePoint(object): continue # Determine if Tally has queried estimator - if (estimator or exact) and estimator != test_tally.estimator: + if estimator and estimator != test_tally.estimator: continue # The number of filters, nuclides and scores must exactly match - if exact: - if len(scores) != test_tally.num_scores: - continue - if len(nuclides) != test_tally.num_nuclides: - continue - if len(filters) != test_tally.num_filters: - continue + if exact_scores and len(scores) != test_tally.num_scores: + continue + if exact_nuclides and len(nuclides) != test_tally.num_nuclides: + continue + if exact_filters and len(filters) != test_tally.num_filters: + continue # Determine if Tally has the queried score(s) if scores: diff --git a/openmc/tallies.py b/openmc/tallies.py index 9559adcad..641b6c26c 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -762,6 +762,8 @@ class Tally(object): # If filters are the second mergeable filters encountered elif filter1.can_merge(filter2) and merge_filters: + merge_filters = True + mergeable_filter = True return False # If no mergeable filter was found, the tallies are not mergeable From 4fe252ba8a1955c15c73d71ddecd5a961b2b1885 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 29 May 2016 23:14:09 -0400 Subject: [PATCH 249/259] Changes to address comments by @samuelshaner --- openmc/statepoint.py | 10 ---------- openmc/tallies.py | 2 -- 2 files changed, 12 deletions(-) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 329d3e41d..9f485619d 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -504,16 +504,6 @@ class StatePoint(object): This routine searches the list of Tallies and returns the first Tally found which satisfies all of the input parameters. - If the "exactness" parameter is 0 (default), the input parameters - do not need to match the complete Tally specification and may only - represent a subset of the Tally's properties. If the "exactness" - parameter is 1 then the length of the scores, filters, nuclides - parameters must precisely match those of any matching Tally, but the - filter bins may represent a subset of those in any matching Tally - (useful if tallies are merged in the input). If the "exactness" - parameter is 2 then the values of the scores, nuclides and filters - parameters must precisely match those of any matching Tally. - NOTE: If any of the "exact" parameters are False (default), the input parameters do not need to match the complete Tally specification and may only represent a subset of the Tally's properties. If an "exact" diff --git a/openmc/tallies.py b/openmc/tallies.py index 641b6c26c..9559adcad 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -762,8 +762,6 @@ class Tally(object): # If filters are the second mergeable filters encountered elif filter1.can_merge(filter2) and merge_filters: - merge_filters = True - mergeable_filter = True return False # If no mergeable filter was found, the tallies are not mergeable From e2fb00c6a56c88be39bf1bb5911ab9b0440b5e1e Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 30 May 2016 08:34:08 -0400 Subject: [PATCH 250/259] Reordered parameters in StatePoint.get_tally(...) --- openmc/statepoint.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 9f485619d..14a48e7f6 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -497,8 +497,8 @@ class StatePoint(object): self.tallies[tally_id].sparse = self.sparse def get_tally(self, scores=[], filters=[], nuclides=[], - name=None, id=None, estimator=None, exact_nuclides=False, - exact_filters=False, exact_scores=False): + name=None, id=None, estimator=None, exact_filters=False, + exact_nuclides=False, exact_scores=False): """Finds and returns a Tally object with certain properties. This routine searches the list of Tallies and returns the first Tally From a9462ff7f79ceea0bde4c6933e8806ad84e8a182 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 30 May 2016 14:23:06 -0400 Subject: [PATCH 251/259] Fixed tallies._can_merge_scores to properly think it can merge a score if the master score list contains the score to be added. --- .../pythonapi/examples/mgxs-part-iv.ipynb | 68 +++++++++---------- openmc/tallies.py | 11 ++- 2 files changed, 39 insertions(+), 40 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb index b330e7ace..12a4e642a 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iv.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iv.ipynb @@ -433,7 +433,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -723,8 +723,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", - " Date/Time: 2016-05-24 19:52:06\n", + " Git SHA1: d20322f22d4850bd640b4accf34e2551550d17fb\n", + " Date/Time: 2016-05-30 14:20:53\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -811,20 +811,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.4330E+00 seconds\n", - " Reading cross sections = 1.1310E+00 seconds\n", - " Total time in simulation = 1.8040E+01 seconds\n", - " Time in transport only = 1.7983E+01 seconds\n", - " Time in inactive batches = 2.0740E+00 seconds\n", - " Time in active batches = 1.5966E+01 seconds\n", - " Time synchronizing fission bank = 8.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 1.4260E+00 seconds\n", + " Reading cross sections = 1.1340E+00 seconds\n", + " Total time in simulation = 1.6739E+01 seconds\n", + " Time in transport only = 1.6650E+01 seconds\n", + " Time in inactive batches = 2.1540E+00 seconds\n", + " Time in active batches = 1.4585E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 9.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.9482E+01 seconds\n", - " Calculation Rate (inactive) = 24108.0 neutrons/second\n", - " Calculation Rate (active) = 12526.6 neutrons/second\n", + " Total time elapsed = 1.8174E+01 seconds\n", + " Calculation Rate (inactive) = 23212.6 neutrons/second\n", + " Calculation Rate (active) = 13712.7 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -967,11 +967,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/nelsonag/git/openmc/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1986: RuntimeWarning: invalid value encountered in true_divide\n", " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n", - "/home/nelsonag/git/openmc/openmc/tallies.py:1989: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1987: RuntimeWarning: invalid value encountered in true_divide\n", " other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n", - "/home/nelsonag/git/openmc/openmc/tallies.py:1990: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/nelsonag/git/openmc/openmc/tallies.py:1988: RuntimeWarning: invalid value encountered in true_divide\n", " new_tally._mean = data['self']['mean'] / data['other']['mean']\n" ] } @@ -1099,8 +1099,8 @@ " Copyright: 2011-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", - " Git SHA1: b7cc8a3a1460a9662fd3e8d11a6c0cf5902946c2\n", - " Date/Time: 2016-05-24 19:52:26\n", + " Git SHA1: d20322f22d4850bd640b4accf34e2551550d17fb\n", + " Date/Time: 2016-05-30 14:21:12\n", " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", @@ -1184,20 +1184,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.6000E-02 seconds\n", - " Reading cross sections = 7.0000E-03 seconds\n", - " Total time in simulation = 1.4412E+01 seconds\n", - " Time in transport only = 1.4376E+01 seconds\n", - " Time in inactive batches = 1.2750E+00 seconds\n", - " Time in active batches = 1.3137E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-02 seconds\n", - " Sampling source sites = 7.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 2.8000E-02 seconds\n", + " Reading cross sections = 4.0000E-03 seconds\n", + " Total time in simulation = 1.2816E+01 seconds\n", + " Time in transport only = 1.2770E+01 seconds\n", + " Time in inactive batches = 1.3130E+00 seconds\n", + " Time in active batches = 1.1503E+01 seconds\n", + " Time synchronizing fission bank = 9.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 6.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.4458E+01 seconds\n", - " Calculation Rate (inactive) = 39215.7 neutrons/second\n", - " Calculation Rate (active) = 15224.2 neutrons/second\n", + " Total time elapsed = 1.2854E+01 seconds\n", + " Calculation Rate (inactive) = 38080.7 neutrons/second\n", + " Calculation Rate (active) = 17386.8 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1384,7 +1384,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 40, @@ -1395,7 +1395,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/openmc/tallies.py b/openmc/tallies.py index 9559adcad..2313a6173 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -827,9 +827,7 @@ class Tally(object): # Search for each of this tally's scores in the other tally for score in self.scores: - if score not in other.scores: - all_scores_match = False - else: + if score in other.scores: no_scores_match = False # Search for each of the other tally's scores in this tally @@ -3471,7 +3469,8 @@ class Tallies(cv.CheckedList): """ if not isinstance(tally, Tally): - msg = 'Unable to add a non-Tally "{0}" to the Tallies instance'.format(tally) + msg = 'Unable to add a non-Tally "{0}" to the ' \ + 'Tallies instance'.format(tally) raise TypeError(msg) if merge: @@ -3482,13 +3481,13 @@ class Tallies(cv.CheckedList): # If a mergeable tally is found if tally2.can_merge(tally): - # Replace tally 2 with the merged tally + # Replace tally2 with the merged tally merged_tally = tally2.merge(tally) self[i] = merged_tally merged = True break - # If not mergeable tally was found, simply add this tally + # If no mergeable tally was found, simply add this tally if not merged: super(Tallies, self).append(tally) From 0ee6a6169cb05ab3d79f57766533a9c0a69e57b1 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 31 May 2016 06:47:27 -0500 Subject: [PATCH 252/259] Fix typo --- openmc/lattice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/lattice.py b/openmc/lattice.py index 0277d50cb..7690104c7 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -654,7 +654,7 @@ class HexLattice(Lattice): are assigned an index corresponding to their position relative to skewed :math:`(x,\alpha,z)` axes as described fully in :ref:`hexagonal_indexing`. However, note that when universes are assigned to - lattice elements using the :attr:`RectLattice.universes` property, the array + lattice elements using the :attr:`HexLattice.universes` property, the array indices do not correspond to natural indices. Parameters From 2b219ae15f8f1a581e808f7d664f522353ba89cc Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 31 May 2016 08:41:05 -0500 Subject: [PATCH 253/259] Refactor handling of cell fill types. Fix Geometry.get_* methods --- openmc/cell.py | 149 ++++++++++------------- openmc/geometry.py | 55 ++++----- openmc/summary.py | 4 +- tests/test_distribmat/results_true.dat | 2 +- tests/test_distribmat/test_distribmat.py | 2 +- 5 files changed, 92 insertions(+), 120 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index 29f85754a..900c952e5 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -36,7 +36,7 @@ class Cell(object): automatically be assigned. name : str, optional Name of the cell. If not specified, the name is the empty string. - fill : openmc.Material or openmc.Universe or openmc.Lattice or 'void' or iterable of openmc.Material, optional + fill : openmc.Material or openmc.Universe or openmc.Lattice or None or iterable of openmc.Material, optional Indicates what the region of space is filled with region : openmc.Region, optional Region of space that is assigned to the cell. @@ -47,9 +47,13 @@ class Cell(object): Unique identifier for the cell name : str Name of the cell - fill : openmc.Material or openmc.Universe or openmc.Lattice or 'void' or iterable of openmc.Material - Indicates what the region of space is filled with - region : openmc.Region + fill : openmc.Material or openmc.Universe or openmc.Lattice or None or iterable of openmc.Material + Indicates what the region of space is filled with. If None, the cell is + treated as a void. An iterable of materials is used to fill repeated + instances of a cell with different materials. + fill_type : {'material', 'universe', 'lattice', 'distribmat', 'void'} + Indicates what the cell is filled with. + region : openmc.Region or None Region of space that is assigned to the cell. rotation : Iterable of float If the cell is filled with a universe, this array specifies the angles @@ -68,6 +72,9 @@ class Cell(object): \sin\theta \sin\psi \\ -\sin\theta & \sin\phi \cos\theta & \cos\phi \cos\theta \end{array} \right ] + rotation_matrix : numpy.ndarray + The rotation matrix defined by the angles specified in the + :attr:`Cell.rotation` property. translation : Iterable of float If the cell is filled with a universe, this array specifies a vector that is used to translate (shift) the universe. @@ -82,20 +89,14 @@ class Cell(object): # Initialize Cell class attributes self.id = cell_id self.name = name - self._fill = None - self._type = None - self._region = None + self.fill = fill + self.region = region self._rotation = None self._rotation_matrix = None self._translation = None self._offsets = None self._distribcell_index = None - if fill is not None: - self.fill = fill - if region is not None: - self.region = region - def __contains__(self, point): if self.region is None: return True @@ -128,35 +129,24 @@ class Cell(object): def __repr__(self): string = 'Cell\n' - string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) - string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) + string += '{: <16}=\t{}\n'.format('\tID', self.id) + string += '{: <16}=\t{}\n'.format('\tName', self.name) - if isinstance(self._fill, openmc.Material): - string += '{0: <16}{1}{2}\n'.format('\tMaterial', '=\t', - self._fill._id) - elif isinstance(self._fill, basestring): - string += '{0: <16}=\tvoid\n'.format('\tMaterial') - elif isinstance(self._fill, Iterable): - string += '{0: <16}{1}'.format('\tMaterial', '=\t') - string += '[' - string += ', '.join(['void' if m == 'void' else str(m.id) - for m in self.fill]) - string += ']\n' - elif isinstance(self._fill, (openmc.Universe, openmc.Lattice)): - string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', - self._fill._id) + if self.fill_type == 'material': + string += '{: <16}=\tMaterial {}\n'.format('\tFill', self.fill.id) + elif self.fill_type == 'void': + string += '{: <16}=\tNone\n'.format('\tFill') + elif self.fill_type == 'distribmat': + string += '{: <16}=\t{}\n'.format('\tFill', list(map( + lambda m: m if m is None else m.id, self.fill))) else: - string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', self._fill) + string += '{: <16}=\t{}\n'.format('\tFill', self.fill.id) - string += '{0: <16}{1}{2}\n'.format('\tRegion', '=\t', self._region) - - string += '{0: <16}{1}{2}\n'.format('\tRotation', '=\t', - self._rotation) - string += '{0: <16}{1}{2}\n'.format('\tTranslation', '=\t', - self._translation) - string += '{0: <16}{1}{2}\n'.format('\tOffset', '=\t', self._offsets) - string += '{0: <16}{1}{2}\n'.format('\tDistribcell index', '=\t', - self._distribcell_index) + string += '{: <16}=\t{}\n'.format('\tRegion', self.region) + string += '{: <16}=\t{}\n'.format('\tRotation', self.rotation) + string += '{: <16}=\t{}\n'.format('\tTranslation', self.translation) + string += '{: <16}=\t{}\n'.format('\tOffset', self.offsets) + string += '{: <16}=\t{}\n'.format('\tDistribcell index', self.distribcell_index) return string @@ -180,8 +170,10 @@ class Cell(object): return 'universe' elif isinstance(self.fill, openmc.Lattice): return 'lattice' + elif isinstance(self.fill, Iterable): + return 'distribmat' else: - return None + return 'void' @property def region(self): @@ -228,33 +220,25 @@ class Cell(object): @fill.setter def fill(self, fill): - if isinstance(fill, basestring): - if fill.strip().lower() == 'void': - self._type = 'void' - else: + if fill is not None: + if isinstance(fill, basestring): + if fill.strip().lower() != 'void': + msg = 'Unable to set Cell ID="{0}" to use a non-Material ' \ + 'or Universe fill "{1}"'.format(self._id, fill) + raise ValueError(msg) + fill = None + + elif isinstance(fill, Iterable): + for i, f in enumerate(fill): + if f is not None: + cv.check_type('cell.fill[i]', f, openmc.Material) + + elif not isinstance(fill, (openmc.Material, openmc.Lattice, + openmc.Universe)): msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ - 'Universe fill "{1}"'.format(self._id, fill) + 'Universe fill "{1}"'.format(self._id, fill) raise ValueError(msg) - elif isinstance(fill, openmc.Material): - self._type = 'normal' - - elif isinstance(fill, Iterable): - cv.check_type('cell.fill', fill, Iterable, - (openmc.Material, basestring)) - self._type = 'normal' - - elif isinstance(fill, openmc.Universe): - self._type = 'fill' - - elif isinstance(fill, openmc.Lattice): - self._type = 'lattice' - - else: - msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ - 'Universe fill "{1}"'.format(self._id, fill) - raise ValueError(msg) - self._fill = fill @rotation.setter @@ -290,7 +274,8 @@ class Cell(object): @region.setter def region(self, region): - cv.check_type('cell region', region, Region) + if region is not None: + cv.check_type('cell region', region, Region) self._region = region @distribcell_index.setter @@ -345,11 +330,11 @@ class Cell(object): def get_cell_instance(self, path, distribcell_index): # If the Cell is filled by a Material - if self._type == 'normal' or self._type == 'void': + if self.fill_type in ('material', 'distribmat', 'void'): offset = 0 # If the Cell is filled by a Universe - elif self._type == 'fill': + elif self.fill_type == 'universe': offset = self.offsets[distribcell_index-1] offset += self.fill.get_cell_instance(path, distribcell_index) @@ -372,8 +357,8 @@ class Cell(object): nuclides = OrderedDict() - if self._type != 'void': - nuclides.update(self._fill.get_all_nuclides()) + if self.fill_type != 'void': + nuclides.update(self.fill.get_all_nuclides()) return nuclides @@ -391,8 +376,8 @@ class Cell(object): cells = OrderedDict() - if self._type == 'fill' or self._type == 'lattice': - cells.update(self._fill.get_all_cells()) + if self.fill_type in ('universe', 'lattice'): + cells.update(self.fill.get_all_cells()) return cells @@ -432,11 +417,11 @@ class Cell(object): universes = OrderedDict() - if self._type == 'fill': - universes[self._fill._id] = self._fill - universes.update(self._fill.get_all_universes()) - elif self._type == 'lattice': - universes.update(self._fill.get_all_universes()) + if self.fill_type == 'universe': + universes[self.fill.id] = self.fill + universes.update(self.fill.get_all_universes()) + elif self.fill_type == 'lattice': + universes.update(self.fill.get_all_universes()) return universes @@ -447,24 +432,20 @@ class Cell(object): if len(self._name) > 0: element.set("name", str(self.name)) - if isinstance(self.fill, basestring): + if self.fill_type == 'void': element.set("material", "void") - elif isinstance(self.fill, openmc.Material): + elif self.fill_type == 'material': element.set("material", str(self.fill.id)) - elif isinstance(self.fill, Iterable): - element.set("material", ' '.join([m if m == 'void' else str(m.id) + elif self.fill_type == 'distribmat': + element.set("material", ' '.join(['void' if m is None else str(m.id) for m in self.fill])) - elif isinstance(self.fill, (openmc.Universe, openmc.Lattice)): + elif self.fill_type in ('universe', 'lattice'): element.set("fill", str(self.fill.id)) self.fill.create_xml_subelement(xml_element) - else: - element.set("fill", str(self.fill)) - self.fill.create_xml_subelement(xml_element) - if self.region is not None: # Set the region attribute with the region specification element.set("region", str(self.region)) diff --git a/openmc/geometry.py b/openmc/geometry.py index 006151900..2625ed3fa 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -144,14 +144,8 @@ class Geometry(object): """ - all_cells = self._root_universe.get_all_cells() - cells = set() - - for cell in all_cells.values(): - if cell._type == 'normal': - cells.add(cell) - - cells = list(cells) + all_cells = self.root_universe.get_all_cells() + cells = list(set(all_cells.values())) cells.sort(key=lambda x: x.id) return cells @@ -166,12 +160,7 @@ class Geometry(object): """ all_universes = self._root_universe.get_all_universes() - universes = set() - - for universe in all_universes.values(): - universes.add(universe) - - universes = list(universes) + universes = list(set(all_universes.values())) universes.sort(key=lambda x: x.id) return universes @@ -204,15 +193,17 @@ class Geometry(object): """ material_cells = self.get_all_material_cells() - materials = set() + materials = [] for cell in material_cells: - if isinstance(cell.fill, Iterable): - for m in cell.fill: materials.add(m) - else: - materials.add(cell.fill) + if cell.fill_type == 'distribmat': + for m in cell.fill: + if m is not None and m not in materials: + materials.append(m) + elif cell.fill_type == 'material': + if cell.fill not in materials: + materials.append(cell.fill) - materials = list(materials) materials.sort(key=lambda x: x.id) return materials @@ -227,13 +218,13 @@ class Geometry(object): """ all_cells = self.get_all_cells() - material_cells = set() + material_cells = [] for cell in all_cells: - if cell._type == 'normal': - material_cells.add(cell) + if cell.fill_type in ('material', 'distribmat'): + if cell not in material_cells: + material_cells.append(cell) - material_cells = list(material_cells) material_cells.sort(key=lambda x: x.id) return material_cells @@ -248,15 +239,15 @@ class Geometry(object): """ all_universes = self.get_all_universes() - material_universes = set() + material_universes = [] for universe in all_universes: cells = universe.cells for cell in cells: - if cell._type == 'normal': - material_universes.add(universe) + if cell.fill_type in ('material', 'distribmat', 'void'): + if universe not in material_universes: + material_universes.append(universe) - material_universes = list(material_universes) material_universes.sort(key=lambda x: x.id) return material_universes @@ -271,13 +262,13 @@ class Geometry(object): """ cells = self.get_all_cells() - lattices = set() + lattices = [] for cell in cells: - if isinstance(cell.fill, openmc.Lattice): - lattices.add(cell.fill) + if cell.fill_type == 'lattice': + if cell.fill not in lattices: + lattices.append(cell.fill) - lattices = list(lattices) lattices.sort(key=lambda x: x.id) return lattices diff --git a/openmc/summary.py b/openmc/summary.py index c3277809a..2af9b6be6 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -493,13 +493,13 @@ class Summary(object): # Retrieve the object corresponding to the fill type and ID if fill_type == 'normal': if isinstance(fill_id, Iterable): - fill = [self.get_material_by_id(mat) if mat > 0 else 'void' + fill = [self.get_material_by_id(mat) if mat > 0 else None for mat in fill_id] else: if fill_id > 0: fill = self.get_material_by_id(fill_id) else: - fill = 'void' + fill = None elif fill_type == 'universe': fill = self.get_universe_by_id(fill_id) else: diff --git a/tests/test_distribmat/results_true.dat b/tests/test_distribmat/results_true.dat index 15a00ee7d..bf96784d7 100644 --- a/tests/test_distribmat/results_true.dat +++ b/tests/test_distribmat/results_true.dat @@ -3,7 +3,7 @@ k-combined: Cell ID = 11 Name = - Material = [2, 3, void, 2] + Fill = [2, 3, None, 2] Region = -10000 Rotation = None Translation = None diff --git a/tests/test_distribmat/test_distribmat.py b/tests/test_distribmat/test_distribmat.py index 6700a96b6..96d41c3fb 100644 --- a/tests/test_distribmat/test_distribmat.py +++ b/tests/test_distribmat/test_distribmat.py @@ -45,7 +45,7 @@ class DistribmatTestHarness(PyAPITestHarness): r0 = openmc.ZCylinder(R=0.3) c11 = openmc.Cell(cell_id=11) c11.region = -r0 - c11.fill = [dense_fuel, light_fuel, 'void', dense_fuel] + c11.fill = [dense_fuel, light_fuel, None, dense_fuel] c12 = openmc.Cell(cell_id=12) c12.region = +r0 c12.fill = moderator From e3c927b0210abf7b2ca2d9d52c3d22d0b91e0712 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 31 May 2016 09:41:15 -0500 Subject: [PATCH 254/259] Fix use of fill_type in universe module --- openmc/universe.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/universe.py b/openmc/universe.py index a28729d8e..7f32d68a9 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -130,7 +130,7 @@ class Universe(object): Parameters ---------- point : 3-tuple of float - Cartesian coordinatesof the point + Cartesian coordinates of the point Returns ------- @@ -142,9 +142,9 @@ class Universe(object): p = np.asarray(point) for cell in self._cells.values(): if p in cell: - if cell._type in ('normal', 'void'): + if cell.fill_type in ('material', 'distribmat', 'void'): return [self, cell] - elif cell._type == 'fill': + elif cell.fill_type == 'universe': if cell.translation is not None: p -= cell.translation if cell.rotation is not None: From b4910473b2eb26db7a09a44b8299fa298db85a44 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 2 Jun 2016 16:36:10 -0500 Subject: [PATCH 255/259] Throw ImportError if user has h5py 2.6.0. --- openmc/particle_restart.py | 5 +++++ openmc/statepoint.py | 5 +++++ openmc/summary.py | 4 ++++ openmc/tallies.py | 4 ++++ 4 files changed, 18 insertions(+) diff --git a/openmc/particle_restart.py b/openmc/particle_restart.py index 72bf3ac3d..7a27db2f6 100644 --- a/openmc/particle_restart.py +++ b/openmc/particle_restart.py @@ -37,6 +37,11 @@ class Particle(object): def __init__(self, filename): import h5py + if h5py.__version__ == '2.6.0': + raise ImportError("h5py 2.6.0 has a known bug which makes it " + "incompatible with OpenMC's HDF5 files. " + "Please switch to a different version.") + self._f = h5py.File(filename, 'r') # Ensure filetype and revision are correct diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 14a48e7f6..0baa63158 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -106,6 +106,11 @@ class StatePoint(object): def __init__(self, filename, autolink=True): import h5py + if h5py.__version__ == '2.6.0': + raise ImportError("h5py 2.6.0 has a known bug which makes it " + "incompatible with OpenMC's HDF5 files. " + "Please switch to a different version.") + self._f = h5py.File(filename, 'r') # Ensure filetype and revision are correct diff --git a/openmc/summary.py b/openmc/summary.py index 2af9b6be6..d5259247f 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -26,6 +26,10 @@ class Summary(object): # Python API so we'll only try to import h5py if the user actually inits # a Summary object. import h5py + if h5py.__version__ == '2.6.0': + raise ImportError("h5py 2.6.0 has a known bug which makes it " + "incompatible with OpenMC's HDF5 files. " + "Please switch to a different version.") openmc.reset_auto_ids() diff --git a/openmc/tallies.py b/openmc/tallies.py index 2313a6173..38aa0bf12 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -314,6 +314,10 @@ class Tally(object): if not self._results_read: import h5py + if h5py.__version__ == '2.6.0': + raise ImportError("h5py 2.6.0 has a known bug which makes it " + "incompatible with OpenMC's HDF5 files. " + "Please switch to a different version.") # Open the HDF5 statepoint file f = h5py.File(self._sp_filename, 'r') From 96351c9b1cbc5b14cf6f671f240f367df48159fc Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 1 Jun 2016 15:40:35 -0500 Subject: [PATCH 256/259] Improve documentation of MGXS classes --- docs/source/_templates/myclassinherit.rst | 8 + docs/source/pythonapi/index.rst | 5 +- docs/source/usersguide/input.rst | 3 +- openmc/mgxs/mgxs.py | 505 +++++++++++++++++++--- 4 files changed, 455 insertions(+), 66 deletions(-) create mode 100644 docs/source/_templates/myclassinherit.rst diff --git a/docs/source/_templates/myclassinherit.rst b/docs/source/_templates/myclassinherit.rst new file mode 100644 index 000000000..ed93a2966 --- /dev/null +++ b/docs/source/_templates/myclassinherit.rst @@ -0,0 +1,8 @@ +{{ fullname }} +{{ underline }} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: + :inherited-members: diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index bf35e7587..4b1d8cca7 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -271,14 +271,17 @@ Multi-group Cross Sections .. autosummary:: :toctree: generated :nosignatures: - :template: myclass.rst + :template: myclassinherit.rst openmc.mgxs.MGXS openmc.mgxs.AbsorptionXS openmc.mgxs.CaptureXS openmc.mgxs.Chi openmc.mgxs.FissionXS + openmc.mgxs.KappaFissionXS + openmc.mgxs.MultiplicityMatrixXS openmc.mgxs.NuFissionXS + openmc.mgxs.NuFissionMatrixXS openmc.mgxs.NuScatterXS openmc.mgxs.NuScatterMatrixXS openmc.mgxs.ScatterXS diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 5a902479e..d7c8a239a 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1598,7 +1598,8 @@ The ```` element accepts the following sub-elements: |Score | Description | +======================+===================================================+ |absorption |Total absorption rate. This accounts for all | - | |reactions which do not produce secondary neutrons. | + | |reactions which do not produce secondary neutrons | + | |as well as fission. | +----------------------+---------------------------------------------------+ |elastic |Elastic scattering reaction rate. | +----------------------+---------------------------------------------------+ diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e0974d473..5104dc192 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -46,9 +46,9 @@ DOMAIN_TYPES = ['cell', # Supported domain classes # TODO: Implement Mesh domains -_DOMAINS = [openmc.Cell, +_DOMAINS = (openmc.Cell, openmc.Universe, - openmc.Material] + openmc.Material) class MGXS(object): @@ -364,7 +364,7 @@ class MGXS(object): @domain.setter def domain(self, domain): - cv.check_type('domain', domain, tuple(_DOMAINS)) + cv.check_type('domain', domain, _DOMAINS) self._domain = domain # Assign a domain type @@ -1934,11 +1934,30 @@ class MatrixMGXS(MGXS): class TotalXS(MGXS): - """A total multi-group cross section. + r"""A total multi-group cross section. 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. + multi-group total cross sections for multi-group neutronics calculations. At + a minimum, one needs to set the :attr:`TotalXS.energy_groups` and + :attr:`TotalXS.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`TotalXS.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:`TotalXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + total cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_t (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -1946,7 +1965,7 @@ class TotalXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -1981,7 +2000,9 @@ class TotalXS(MGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`TotalXS.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 @@ -2022,11 +2043,39 @@ class TotalXS(MGXS): class TransportXS(MGXS): - """A transport-corrected total multi-group cross section. + r"""A transport-corrected total multi-group cross section. 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. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`TransportXS.energy_groups` and + :attr:`TransportXS.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`TransportXS.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:`TransportXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + transport-corrected total cross section is calculated as: + + .. math:: + + \langle \sigma_t \phi \rangle &= \int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \sigma_t (r, E) \psi + (r, E, \Omega) \\ + \langle \sigma_{s1} \phi \rangle &= \int_{r \in D} dr + \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_{-1}^1 d\mu \; \mu \sigma_s + (r, E' \rightarrow E, \Omega' \cdot \Omega) + \phi (r, E', \Omega) \\ + \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ + \sigma_{tr} &= \frac{\langle \sigma_t \phi \rangle - \langle \sigma_{s1} + \phi \rangle}{\langle \phi \rangle} Parameters ---------- @@ -2034,7 +2083,7 @@ class TransportXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2069,7 +2118,9 @@ class TransportXS(MGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`TransportXS.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 @@ -2135,12 +2186,26 @@ class TransportXS(MGXS): class NuTransportXS(TransportXS): - """A transport-corrected total multi-group cross section which + r"""A transport-corrected total multi-group cross section which accounts for neutron multiplicity in scattering reactions. 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. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`NuTransportXS.energy_groups` and + :attr:`NuTransportXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`NuTransportXS.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:`NuTransportXS.xs_tally` property. + + The calculation of the transport-corrected cross section is the same as that + for :class:`TransportXS` except that the scattering multiplicity is + accounted for. Parameters ---------- @@ -2148,7 +2213,7 @@ class NuTransportXS(TransportXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2183,7 +2248,9 @@ class NuTransportXS(TransportXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuTransportXS.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 @@ -2232,11 +2299,34 @@ class NuTransportXS(TransportXS): class AbsorptionXS(MGXS): - """An absorption multi-group cross section. + r"""An absorption multi-group cross section. + + Absorption is defined as all reactions that do not produce secondary + neutrons (disappearance) plus fission reactions. 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. + multi-group absorption cross sections for multi-group neutronics + calculations. At a minimum, one needs to set the + :attr:`AbsorptionXS.energy_groups` and :attr:`AbsorptionXS.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`AbsorptionXS.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:`AbsorptionXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + absorption cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_a (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -2244,7 +2334,7 @@ class AbsorptionXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2279,7 +2369,9 @@ class AbsorptionXS(MGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`AbsorptionXS.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 @@ -2320,16 +2412,37 @@ class AbsorptionXS(MGXS): class CaptureXS(MGXS): - """A capture multi-group cross section. + r"""A capture multi-group cross section. The neutron capture reaction rate is defined as the difference between OpenMC's 'absorption' and 'fission' reaction rate score types. This includes not only radiative capture, but all forms of neutron disappearance aside - from fission (e.g., MT > 100). + from fission (i.e., MT > 100). 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. + multi-group capture cross sections for multi-group neutronics + calculations. At a minimum, one needs to set the + :attr:`CaptureXS.energy_groups` and :attr:`CaptureXS.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`CaptureXS.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:`CaptureXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + capture cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \left [ \sigma_a (r, E) \psi (r, E, \Omega) - \sigma_f (r, E) \psi (r, E, + \Omega) \right ]}{\int_{r \in D} dr \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -2337,7 +2450,7 @@ class CaptureXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2372,7 +2485,9 @@ class CaptureXS(MGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`CaptureXS.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 @@ -2425,11 +2540,31 @@ class CaptureXS(MGXS): class FissionXS(MGXS): - """A fission multi-group cross section. + r"""A fission multi-group cross section. 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. + multi-group fission cross sections for multi-group neutronics + calculations. At a minimum, one needs to set the + :attr:`FissionXS.energy_groups` and :attr:`FissionXS.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`FissionXS.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:`FissionXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + fission cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -2437,7 +2572,7 @@ class FissionXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2472,7 +2607,9 @@ class FissionXS(MGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`FissionXS.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 @@ -2513,11 +2650,32 @@ class FissionXS(MGXS): class NuFissionXS(MGXS): - """A fission production multi-group cross section. + r"""A fission neutron production multi-group cross section. 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. + multi-group fission neutron production cross sections for multi-group + neutronics calculations. At a minimum, one needs to set the + :attr:`NuFissionXS.energy_groups` and :attr:`NuFissionXS.domain` + properties. Tallies for the flux and appropriate reaction rates over the + specified domain are generated automatically via the + :attr:`NuFissionXS.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:`NuFissionXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + fission neutron production cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \nu\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. + Parameters ---------- @@ -2525,7 +2683,7 @@ class NuFissionXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2560,7 +2718,9 @@ class NuFissionXS(MGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuFissionXS.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 @@ -2601,11 +2761,37 @@ class NuFissionXS(MGXS): class KappaFissionXS(MGXS): - """A recoverable fission energy production rate multi-group cross section. + r"""A recoverable fission energy production rate multi-group cross section. + + The recoverable energy per fission, :math:`\kappa`, is defined as the + fission product kinetic energy, prompt and delayed neutron kinetic energies, + prompt and delayed :math:`\gamma`-ray total energies, and the total energy + released by the delayed :math:`\beta` particles. The neutrino energy does + not contribute to this response. The prompt and delayed :math:`\gamma`-rays + are assumed to deposit their energy locally. 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. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`KappaFissionXS.energy_groups` and + :attr:`KappaFissionXS.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`KappaFissionXS.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:`KappaFissionXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + recoverable fission energy production rate cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \kappa\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -2613,7 +2799,7 @@ class KappaFissionXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2648,7 +2834,9 @@ class KappaFissionXS(MGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`KappaFissionXS.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 @@ -2689,11 +2877,34 @@ class KappaFissionXS(MGXS): class ScatterXS(MGXS): - """A scatter multi-group cross section. + r"""A scattering multi-group cross section. + + The scattering cross section is defined as the difference between the total + and absorption cross sections. 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. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`ScatterXS.energy_groups` and + :attr:`ScatterXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`ScatterXS.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:`ScatterXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + scattering cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \left [ \sigma_t (r, E) \psi (r, E, \Omega) - \sigma_a (r, E) \psi (r, E, + \Omega) \right ]}{\int_{r \in D} dr \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters ---------- @@ -2701,7 +2912,7 @@ class ScatterXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2736,7 +2947,9 @@ class ScatterXS(MGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`ScatterXS.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 @@ -2777,11 +2990,35 @@ class ScatterXS(MGXS): class NuScatterXS(MGXS): - """A nu-scatter multi-group cross section. + r"""A scattering neutron production multi-group cross section. + + The neutron production from scattering is defined as the average number of + neutrons produced from all neutron-producing reactions except for fission. 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. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`NuScatterXS.energy_groups` and + :attr:`NuScatterXS.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`NuScatterXS.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:`NuScatterXS.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + scattering neutron production cross section is calculated as: + + .. math:: + + \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sum_i \upsilon_i \sigma_i (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr + \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. + + where :math:`\upsilon_i` is the multiplicity of the :math:`i`-th reaction. Parameters ---------- @@ -2789,7 +3026,7 @@ class NuScatterXS(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2824,7 +3061,9 @@ class NuScatterXS(MGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuScatterXS.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 @@ -2869,12 +3108,47 @@ class NuScatterXS(MGXS): class ScatterMatrixXS(MatrixMGXS): - """A scattering matrix multi-group cross section for one or more Legendre + r"""A scattering matrix multi-group cross section for one or more Legendre moments. 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. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`ScatterMatrixXS.energy_groups` and + :attr:`ScatterMatrixXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`ScatterMatrixXS.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:`ScatterMatrixXS.xs_tally` property. + + For a spatial domain :math:`D`, incoming energy group + :math:`[E_{g'},E_{g'-1}]`, and outgoing energy group :math:`[E_g,E_{g-1}]`, + the scattering moments are calculated as: + + .. math:: + + \langle \sigma_{s,\ell,g'\rightarrow g} \phi \rangle &= \int_{r \in D} 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 \; P_\ell (\Omega \cdot \Omega') \sigma_s (r, E' + \rightarrow E, \Omega' \cdot \Omega) \psi(r, E', \Omega')\\ + \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ + \sigma_{s,\ell,g'\rightarrow g} &= \frac{\langle + \sigma_{s,\ell,g'\rightarrow g} \phi \rangle}{\langle \phi \rangle} + + If the order is zero and a :math:`P_0` transport-correction is applied + (default), the scattering matrix elements are: + + .. math:: + + \sigma_{s,g'\rightarrow g} = \frac{\langle \sigma_{s,0,g'\rightarrow g} + \phi \rangle - \delta_{gg'} \sum_{g''} \langle \sigma_{s,1,g''\rightarrow + g} \phi \rangle}{\langle \phi \rangle} + Parameters ---------- @@ -2882,7 +3156,7 @@ class ScatterMatrixXS(MatrixMGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -2895,7 +3169,7 @@ class ScatterMatrixXS(MatrixMGXS): correction : 'P0' or None Apply the P0 correction to scattering matrices if set to 'P0' legendre_order : int - The highest legendre moment in the scattering matrix (default is 0) + The highest Legendre moment in the scattering matrix (default is 0) name : str, optional Name of the multi-group cross section rxn_type : str @@ -2921,7 +3195,9 @@ class ScatterMatrixXS(MatrixMGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`ScatterMatrixXS.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 @@ -3507,7 +3783,21 @@ class NuScatterMatrixXS(ScatterMatrixXS): 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. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`NuScatterMatrixXS.energy_groups` and + :attr:`NuScatterMatrixXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`NuScatterMatrixXS.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:`NuScatterMatrixXS.xs_tally` property. + + The calculation of the scattering-production matrix is the same as that for + :class:`ScatterMatrixXS` except that the scattering multiplicity is + accounted for. Parameters ---------- @@ -3515,7 +3805,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -3554,7 +3844,9 @@ class NuScatterMatrixXS(ScatterMatrixXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuScatterMatrixXS.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 @@ -3596,11 +3888,42 @@ class NuScatterMatrixXS(ScatterMatrixXS): class MultiplicityMatrixXS(MatrixMGXS): - """The scattering multiplicity matrix. + r"""The scattering multiplicity 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. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`MultiplicityMatrixXS.energy_groups` and + :attr:`MultiplicityMatrixXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`MultiplicityMatrixXS.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:`MultiplicityMatrixXS.xs_tally` + property. + + For a spatial domain :math:`D`, incoming energy group + :math:`[E_{g'},E_{g'-1}]`, and outgoing energy group :math:`[E_g,E_{g-1}]`, + the multiplicity is calculated as: + + .. math:: + + \langle \upsilon \sigma_{s,g'\rightarrow g} \phi \rangle &= \int_{r \in + D} 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 \; \sum_i \upsilon_i \sigma_i (r, E' \rightarrow + E, \Omega' \cdot \Omega) \psi(r, E', \Omega') \\ + \langle \sigma_{s,g'\rightarrow g} \phi \rangle &= \int_{r \in + D} 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 \; \sum_i \upsilon_i \sigma_i (r, E' \rightarrow + E, \Omega' \cdot \Omega) \psi(r, E', \Omega') \\ + \upsilon_{g'\rightarrow g} &= \frac{\langle \upsilon + \sigma_{s,g'\rightarrow g} \rangle}{\langle \sigma_{s,g'\rightarrow g} + \rangle} + + where :math:`\upsilon_i` is the multiplicity for the :math:`i`-th reaction. Parameters ---------- @@ -3608,7 +3931,7 @@ class MultiplicityMatrixXS(MatrixMGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -3643,7 +3966,9 @@ class MultiplicityMatrixXS(MatrixMGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`MultiplicityMatrixXS.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 @@ -3717,11 +4042,35 @@ class MultiplicityMatrixXS(MatrixMGXS): class NuFissionMatrixXS(MatrixMGXS): - """A fission production matrix multi-group cross section. + r"""A fission production matrix multi-group cross section. 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. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`NuFissionMatrixXS.energy_groups` and + :attr:`NuFissionMatrixXS.domain` properties. Tallies for the flux and + appropriate reaction rates over the specified domain are generated + automatically via the :attr:`NuFissionMatrixXS.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:`NuFissionMatrixXS.xs_tally` property. + + For a spatial domain :math:`D`, incoming energy group + :math:`[E_{g'},E_{g'-1}]`, and outgoing energy group :math:`[E_g,E_{g-1}]`, + the fission production is calculated as: + + .. math:: + + \langle \nu\sigma_{f,g'\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \int_{4\pi} d\Omega' \int_{E_{g'}}^{E_{g'-1}} dE' \int_{E_g}^{E_{g-1}} dE + \; \chi(E) \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ + \nu\sigma_{f,g'\rightarrow g} &= \frac{\langle \nu\sigma_{f,g'\rightarrow + g} \phi \rangle}{\langle \phi \rangle} Parameters ---------- @@ -3729,7 +4078,7 @@ class NuFissionMatrixXS(MatrixMGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -3764,7 +4113,9 @@ class NuFissionMatrixXS(MatrixMGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`NuFissionMatrixXS.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 @@ -3806,11 +4157,35 @@ class NuFissionMatrixXS(MatrixMGXS): class Chi(MGXS): - """The fission spectrum. + r"""The fission spectrum. 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. + multi-group cross sections for multi-group neutronics calculations. At a + minimum, one needs to set the :attr:`Chi.energy_groups` and + :attr:`Chi.domain` properties. Tallies for the flux and appropriate reaction + rates over the specified domain are generated automatically via the + :attr:`Chi.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:`Chi.xs_tally` property. + + For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + fission spectrum is calculated as: + + .. math:: + + \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) + \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ + \langle \nu\sigma_f \phi \rangle &= \int_{r \in D} dr \int_{4\pi} + d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, + E') \psi(r, E', \Omega') \\ + \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle + \nu\sigma_f \phi \rangle} Parameters ---------- @@ -3818,7 +4193,7 @@ class Chi(MGXS): The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : openmc.mgxs.EnergyGroups + groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -3853,7 +4228,9 @@ class Chi(MGXS): estimator : {'tracklength', '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 + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`Chi.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 From 87c61fd81d6290d7e1573d7d3abd356640e1d6fd Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 3 Jun 2016 19:26:47 -0500 Subject: [PATCH 257/259] Change D to V as symbol for domain --- openmc/mgxs/mgxs.py | 79 +++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 5104dc192..088db649f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1950,13 +1950,13 @@ class TotalXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`TotalXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the total cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \sigma_t (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_t (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -2059,20 +2059,20 @@ class TransportXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`TransportXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the transport-corrected total cross section is calculated as: .. math:: - \langle \sigma_t \phi \rangle &= \int_{r \in D} dr \int_{4\pi} + \langle \sigma_t \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \sigma_t (r, E) \psi (r, E, \Omega) \\ - \langle \sigma_{s1} \phi \rangle &= \int_{r \in D} dr + \langle \sigma_{s1} \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' \int_{-1}^1 d\mu \; \mu \sigma_s (r, E' \rightarrow E, \Omega' \cdot \Omega) \phi (r, E', \Omega) \\ - \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \langle \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ \sigma_{tr} &= \frac{\langle \sigma_t \phi \rangle - \langle \sigma_{s1} \phi \rangle}{\langle \phi \rangle} @@ -2319,13 +2319,13 @@ class AbsorptionXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`AbsorptionXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the absorption cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \sigma_a (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_a (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -2434,14 +2434,14 @@ class CaptureXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`CaptureXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the capture cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \left [ \sigma_a (r, E) \psi (r, E, \Omega) - \sigma_f (r, E) \psi (r, E, - \Omega) \right ]}{\int_{r \in D} dr \int_{4\pi} d\Omega + \Omega) \right ]}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -2557,13 +2557,13 @@ class FissionXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`FissionXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the fission cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -2667,13 +2667,13 @@ class NuFissionXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`NuFissionXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the fission neutron production cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \nu\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \nu\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. @@ -2784,13 +2784,13 @@ class KappaFissionXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`KappaFissionXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the recoverable fission energy production rate cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \kappa\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr \int_{4\pi} + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \kappa\sigma_f (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -2896,14 +2896,14 @@ class ScatterXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`ScatterXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the scattering cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \left [ \sigma_t (r, E) \psi (r, E, \Omega) - \sigma_a (r, E) \psi (r, E, - \Omega) \right ]}{\int_{r \in D} dr \int_{4\pi} d\Omega + \Omega) \right ]}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. Parameters @@ -3009,16 +3009,17 @@ class NuScatterXS(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`NuScatterXS.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the scattering neutron production cross section is calculated as: .. math:: - \frac{\int_{r \in D} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \sum_i \upsilon_i \sigma_i (r, E) \psi (r, E, \Omega)}{\int_{r \in D} dr + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sum_i \upsilon_i \sigma_i (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. - where :math:`\upsilon_i` is the multiplicity of the :math:`i`-th reaction. + where :math:`\upsilon_i` is the multiplicity of the :math:`i`-th scattering + reaction. Parameters ---------- @@ -3125,17 +3126,17 @@ class ScatterMatrixXS(MatrixMGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`ScatterMatrixXS.xs_tally` property. - For a spatial domain :math:`D`, incoming energy group + 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 scattering moments are calculated as: .. math:: - \langle \sigma_{s,\ell,g'\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \langle \sigma_{s,\ell,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 \; P_\ell (\Omega \cdot \Omega') \sigma_s (r, E' \rightarrow E, \Omega' \cdot \Omega) \psi(r, E', \Omega')\\ - \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \langle \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ \sigma_{s,\ell,g'\rightarrow g} &= \frac{\langle \sigma_{s,\ell,g'\rightarrow g} \phi \rangle}{\langle \phi \rangle} @@ -3905,7 +3906,7 @@ class MultiplicityMatrixXS(MatrixMGXS): can then be obtained from the :attr:`MultiplicityMatrixXS.xs_tally` property. - For a spatial domain :math:`D`, incoming energy group + 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 multiplicity is calculated as: @@ -4058,16 +4059,16 @@ class NuFissionMatrixXS(MatrixMGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`NuFissionMatrixXS.xs_tally` property. - For a spatial domain :math:`D`, incoming energy group + 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 fission production is calculated as: .. math:: - \langle \nu\sigma_{f,g'\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \langle \nu\sigma_{f,g'\rightarrow g} \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_{E_{g'}}^{E_{g'-1}} dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ - \langle \phi \rangle &= \int_{r \in D} dr \int_{4\pi} d\Omega + \langle \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega) \\ \nu\sigma_{f,g'\rightarrow g} &= \frac{\langle \nu\sigma_{f,g'\rightarrow g} \phi \rangle}{\langle \phi \rangle} @@ -4173,15 +4174,15 @@ class Chi(MGXS): :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`Chi.xs_tally` property. - For a spatial domain :math:`D` and energy group :math:`[E_g,E_{g-1}]`, the + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the fission spectrum is calculated as: .. math:: - \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in D} dr + \langle \nu\sigma_{f,\rightarrow g} \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_0^\infty dE' \int_{E_g}^{E_{g-1}} dE \; \chi(E) \nu\sigma_f (r, E') \psi(r, E', \Omega')\\ - \langle \nu\sigma_f \phi \rangle &= \int_{r \in D} dr \int_{4\pi} + \langle \nu\sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi} d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu\sigma_f (r, E') \psi(r, E', \Omega') \\ \chi_g &= \frac{\langle \nu\sigma_{f,\rightarrow g} \phi \rangle}{\langle From 97c2e3732d50b8af1a00333108bac473982236fe Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 4 Jun 2016 12:36:23 -0400 Subject: [PATCH 258/259] Whoops - tabular_legendres default value is False (leave as Legendre) as opposed to True (convert to Table) --- docs/source/usersguide/mgxs_library.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index 98a9e8485..11ccae43d 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -172,7 +172,7 @@ attributes/sub-elements required to describe the meta-data: during the scattering process. Specifically, the options are to either convert the Legendre expansion to a tabular representation or leave it as a set of Legendre coefficients. Converting to a tabular representation will - cost memory but is likely to decrease runtime compared to leaving as a + cost memory but can allow for a decrease in runtime compared to leaving as a set of Legendre coefficients. This element has the following attributes/sub-elements: @@ -181,7 +181,7 @@ attributes/sub-elements required to describe the meta-data: tabular format should be performed or not. A value of "true" means the conversion should be performed, "false" means it should not. - *Default*: "true" + *Default*: "false" :num_points: If the conversion is to take place the number of tabular points is From 395cfb092da21d8624e2a83431ff1ec6b7c3ee71 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sun, 5 Jun 2016 16:33:12 -0500 Subject: [PATCH 259/259] Remove _isinstance and optimize check_type for ndarrays --- openmc/checkvalue.py | 41 ++++++++++---------------------------- openmc/filter.py | 4 ++-- openmc/mgxs/library.py | 2 +- openmc/stats/univariate.py | 4 ++-- 4 files changed, 16 insertions(+), 35 deletions(-) diff --git a/openmc/checkvalue.py b/openmc/checkvalue.py index 62b843a3a..cc0e1190d 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -4,33 +4,6 @@ from numbers import Integral, Real import numpy as np -def _isinstance(value, expected_type): - """A Numpy-aware replacement for isinstance - - This function will be obsolete when Numpy v. >= 1.9 is established. - """ - - # Declare numpy numeric types. - np_ints = (np.int_, np.intc, np.intp, np.int8, np.int16, np.int32, np.int64, - np.uint8, np.uint16, np.uint32, np.uint64) - np_floats = (np.float_, np.float16, np.float32, np.float64) - - # Include numpy integers, if necessary. - if type(expected_type) is tuple: - if Integral in expected_type: - expected_type = expected_type + np_ints - elif expected_type is Integral: - expected_type = (Integral, ) + np_ints - - # Include numpy floats, if necessary. - if type(expected_type) is tuple: - if Real in expected_type: - expected_type = expected_type + np_floats - elif expected_type is Real: - expected_type = (Real, ) + np_floats - - # Now, make the instance check. - return isinstance(value, expected_type) def check_type(name, value, expected_type, expected_iter_type=None): """Ensure that an object is of an expected type. Optionally, if the object is @@ -50,7 +23,7 @@ def check_type(name, value, expected_type, expected_iter_type=None): """ - if not _isinstance(value, expected_type): + if not isinstance(value, expected_type): if isinstance(expected_type, Iterable): msg = 'Unable to set "{0}" to "{1}" which is not one of the ' \ 'following types: "{2}"'.format(name, value, ', '.join( @@ -61,8 +34,16 @@ def check_type(name, value, expected_type, expected_iter_type=None): raise TypeError(msg) if expected_iter_type: + if isinstance(value, np.ndarray): + if not issubclass(value.dtype.type, expected_iter_type): + msg = 'Unable to set "{0}" to "{1}" since each item must be ' \ + 'of type "{2}"'.format(name, value, + expected_iter_type.__name__) + else: + return + for item in value: - if not _isinstance(item, expected_iter_type): + if not isinstance(item, expected_iter_type): if isinstance(expected_iter_type, Iterable): msg = 'Unable to set "{0}" to "{1}" since each item must be ' \ 'one of the following types: "{2}"'.format( @@ -118,7 +99,7 @@ def check_iterable_type(name, value, expected_type, min_depth=1, max_depth=1): # If this item is of the expected type, then we've reached the bottom # level of this branch. - if _isinstance(current_item, expected_type): + if isinstance(current_item, expected_type): # Is this deep enough? if len(tree) < min_depth: msg = 'Error setting "{0}": The item at {1} does not meet the '\ diff --git a/openmc/filter.py b/openmc/filter.py index 52560a193..b34400cbb 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -196,7 +196,7 @@ class Filter(object): elif self.type in ['energy', 'energyout']: for edge in bins: - if not cv._isinstance(edge, Real): + if not isinstance(edge, Real): msg = 'Unable to add bin edge "{0}" to a "{1}" Filter ' \ 'since it is a non-integer or floating point ' \ 'value'.format(edge, self.type) @@ -220,7 +220,7 @@ class Filter(object): msg = 'Unable to add bins "{0}" to a mesh Filter since ' \ 'only a single mesh can be used per tally'.format(bins) raise ValueError(msg) - elif not cv._isinstance(bins[0], Integral): + elif not isinstance(bins[0], Integral): msg = 'Unable to add bin "{0}" to mesh Filter since it ' \ 'is a non-integer'.format(bins[0]) raise ValueError(msg) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 62dde28ab..e0e14b862 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -484,7 +484,7 @@ class Library(object): cv.check_type('domain', domain, (openmc.Universe, Integral)) # Check that requested domain is included in library - if cv._isinstance(domain, Integral): + if isinstance(domain, Integral): domain_id = domain for domain in self.domains: if domain_id == domain.id: diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 0deeb600c..af9b9b301 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -66,14 +66,14 @@ class Discrete(Univariate): @x.setter def x(self, x): - if cv._isinstance(x, Real): + if isinstance(x, Real): x = [x] cv.check_type('discrete values', x, Iterable, Real) self._x = x @p.setter def p(self, p): - if cv._isinstance(p, Real): + if isinstance(p, Real): p = [p] cv.check_type('discrete probabilities', p, Iterable, Real) for pk in p: