From a20c2bdc7003f8e0b4f523c6af6a55cbb005f57b Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 3 Aug 2015 20:44:22 -0700 Subject: [PATCH 01/91] Added new EnergyGroups class for MGXS calculations --- openmc/mgxs/__init__.py | 1 + openmc/mgxs/groups.py | 257 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 258 insertions(+) create mode 100644 openmc/mgxs/__init__.py create mode 100644 openmc/mgxs/groups.py diff --git a/openmc/mgxs/__init__.py b/openmc/mgxs/__init__.py new file mode 100644 index 000000000..8d5086de7 --- /dev/null +++ b/openmc/mgxs/__init__.py @@ -0,0 +1 @@ +__author__ = 'wboyd' diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py new file mode 100644 index 000000000..913851247 --- /dev/null +++ b/openmc/mgxs/groups.py @@ -0,0 +1,257 @@ +import copy +from numbers import Real, Integral + +import numpy as np + +from openmc.checkvalue import * + +class EnergyGroups(object): + """An energy groups structure used for multi-group cross-sections. + + Parameters + ---------- + group_edges : NumPy array + The energy group boundaries [MeV] + num_groups : Integral + The number of energy groups + + Attributes + ---------- + group_edges : NumPy array + The energy group boundaries [MeV] + num_groups : Integral + The number of energy groups + + """ + + def __init__(self): + self._group_edges = None + self._num_groups = None + + def __deepcopy__(self, memo): + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy this object, create a copy + if existing is None: + clone = type(self).__new__(type(self)) + clone.group_edges = copy.deepcopy(self._group_edges, memo) + + memo[id(self)] = clone + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + + @property + def group_edges(self): + return self._group_edges + + @property + def num_groups(self): + return self._num_groups + + @group_edges.setter + def group_edges(self, edges): + check_type('group edges', edges, list, Integral) + check_length('number of group edges', edges, 2) + self._group_edges = np.array(edges) + self._num_groups = len(edges)-1 + + def __eq__(self, other): + if not isinstance(other, EnergyGroups): + return False + elif self._group_edges != other._group_edges: + return False + + def generate_bin_edges(self, start, stop, num_groups, type='linear'): + """Generate equally or logarithmically-spaced energy group boundaries. + + Parameters + ---------- + start : Real + The lowest energy in MeV + stop : Real + The highest energy in MeV + num_groups : Integral + The number of energy groups + type : str + The spacing between groups ('linear' or 'logarithmic') + + """ + check_type('first edge', start, Real) + check_type('last edge', stop, Real) + check_type('number of groups', num_groups, Integral) + check_type('type', type, str) + check_greater_than('first edge', start, 0, equality=True) + check_greater_than('first edge', stop, start, equality=False) + check_greater_than('number of groups', num_groups, 0) + check_value('type', type, ('linear', 'logarithmic')) + + if type == 'linear': + self._group_edges = np.linspace(start, stop, num_groups+1) + elif type == 'logarithmic': + self._group_edges = \ + np.logspace(np.log10(start), np.log10(stop), num_groups+1) + + self._num_groups = num_groups + + def get_group(self, energy): + """Returns the energy group in which the given energy resides. + + Parameters + ---------- + energy : Real + The energy of interest in MeV + + Returns + ------- + Integral + The energy group index, starting at 1 for the highest energies + + Raises + ------ + ValueError + If the group edges have not yet been set. + + """ + + if self._group_edges is None: + msg = 'Unable to get energy group for energy "{0}" eV since ' \ + 'the group edges have not yet been set'.format(energy) + raise ValueError(msg) + + index = np.where(self._group_edges > energy)[0] + group = self._num_groups - index + return group + + def get_group_bounds(self, group): + """Returns the energy boundaries for the energy group of interest. + + Parameters + ---------- + group : Integral + The energy group index, starting at 1 for the highest energies + + Returns + ------- + 2-tuple + The low and high energy bounds for the group in MeV + + Raises + ------ + ValueError + If the group edges have not yet been set. + + """ + + if self._group_edges is None: + msg = 'Unable to get energy group bounds for group "{0}" since ' \ + 'the group edges have not yet been set'.format(group) + raise ValueError(msg) + + lower = self._group_edges[self._num_groups-group] + upper = self._group_edges[self._num_groups-group+1] + return (lower, upper) + + + def get_group_indices(self, groups='all'): + """Returns the array indices for one or more energy groups. + + Parameters + ---------- + groups : str, tuple + The energy groups of interest - a tuple of the energy group indices, + starting at 1 for the highest energies (default is 'all') + + Returns + ------- + NumPy.ndarray + The NumPy array indices for each energy group of interest + + Raises + ------ + ValueError + If the group edges have not yet been set, or if a group is requested + that is outside the bounds of the number of energy groups. + + """ + + if self._group_edges is None: + msg = 'Unable to get energy group indices for groups "{0}" since ' \ + 'the group edges have not yet been set'.format(groups) + raise ValueError(msg) + + if groups == 'all': + indices = np.arange(self._num_groups) + else: + indices = np.zeros(len(groups), dtype=np.int64) + + for i, group in enumerate(groups): + if group > 0 and group <= self._num_groups: + indices[i] = group - 1 + else: + msg = 'Unable to get energy group index for group "{0}" ' \ + 'since it is outside the group bounds'.format(group) + raise ValueError(msg) + + return indices + + + def get_condensed_groups(self, coarse_groups): + """Return a coarsened version of this EnergyGroups object. + + This method merges together energy groups in this object into wider + energy groups as defined by the list of groups specified by the user, + and returns a new, coarse EnergyGroups object. + + Parameters + ---------- + coarse_groups : list + The energy groups of interest - a list of 2-tuples, each directly + corresponding to one of the new coarse groups. The values in the + 2-tuples are upper/lower energy groups used to construct a new + coarse group. + + Returns + ------- + EnergyGroups + A coarsened version of this EnergyGroups object. + + Raises + ------ + ValueError + If the group edges have not yet been set. + """ + + check_type('group edges', coarse_groups, list) + for group in coarse_groups: + check_value('group edges', group, tuple) + check_length('group edges', group, 2) + check_greater_than('lower group', group[0], 1, True) + check_less_than('lower group', group[0], self.num_groups, True) + check_greater_than('upper group', group[0], 1, True) + check_less_than('upper group', group[0], self.num_groups, True) + check_less_than('lower group', group[0], group[1], False) + + # Compute the group indices into the coarse group + group_bounds = list() + for group in coarse_groups: + group_bounds.append(group[0]) + group_bounds.append(coarse_groups[-1][1]) + + # Determine the indices mapping the fine-to-coarse energy groups + group_bounds = np.asarray(group_bounds) + group_indices = np.flipud(self._num_groups - group_bounds) + group_indices[-1] += 1 + + # Determine the edges between coarse energy groups and sort + # in increasing order in case the user passed in unordered groups + group_edges = self._group_edges[group_indices] + group_edges = np.sort(group_edges) + + # Create a new condensed EnergyGroups object + condensed_groups = EnergyGroups() + condensed_groups.group_edges = group_edges + return condensed_groups \ No newline at end of file From cfc81640439acf0f25ee5daf60916b182a2fe320 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 9 Aug 2015 16:16:03 -0700 Subject: [PATCH 02/91] First implementation of MultiGroupXS class --- openmc/mgxs/__init__.py | 2 +- openmc/mgxs/groups.py | 82 ++-- openmc/mgxs/mgxs.py | 836 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 879 insertions(+), 41 deletions(-) create mode 100644 openmc/mgxs/mgxs.py diff --git a/openmc/mgxs/__init__.py b/openmc/mgxs/__init__.py index 8d5086de7..4f5c1ea12 100644 --- a/openmc/mgxs/__init__.py +++ b/openmc/mgxs/__init__.py @@ -1 +1 @@ -__author__ = 'wboyd' +from groups import EnergyGroups \ No newline at end of file diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index 913851247..061f1c61a 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -1,9 +1,15 @@ -import copy +from collections import Iterable from numbers import Real, Integral +import copy +import sys import numpy as np -from openmc.checkvalue import * +import openmc.checkvalue as cv + + +if sys.version_info[0] >= 3: + basestring = str class EnergyGroups(object): """An energy groups structure used for multi-group cross-sections. @@ -54,8 +60,8 @@ class EnergyGroups(object): @group_edges.setter def group_edges(self, edges): - check_type('group edges', edges, list, Integral) - check_length('number of group edges', edges, 2) + cv.check_type('group edges', edges, Iterable, Integral) + cv.check_length('number of group edges', edges, 2) self._group_edges = np.array(edges) self._num_groups = len(edges)-1 @@ -80,19 +86,20 @@ class EnergyGroups(object): The spacing between groups ('linear' or 'logarithmic') """ - check_type('first edge', start, Real) - check_type('last edge', stop, Real) - check_type('number of groups', num_groups, Integral) - check_type('type', type, str) - check_greater_than('first edge', start, 0, equality=True) - check_greater_than('first edge', stop, start, equality=False) - check_greater_than('number of groups', num_groups, 0) - check_value('type', type, ('linear', 'logarithmic')) + + cv.check_type('first edge', start, Real) + cv.check_type('last edge', stop, Real) + cv.check_type('number of groups', num_groups, Integral) + cv.check_type('type', type, basestring) + cv.check_greater_than('first edge', start, 0, True) + cv.check_greater_than('first edge', stop, start, False) + cv.check_greater_than('number of groups', num_groups, 0) + cv.check_value('type', type, ('linear', 'logarithmic')) if type == 'linear': - self._group_edges = np.linspace(start, stop, num_groups+1) + self.group_edges = np.linspace(start, stop, num_groups+1) elif type == 'logarithmic': - self._group_edges = \ + self.group_edges = \ np.logspace(np.log10(start), np.log10(stop), num_groups+1) self._num_groups = num_groups @@ -117,13 +124,13 @@ class EnergyGroups(object): """ - if self._group_edges is None: + if self.group_edges is None: msg = 'Unable to get energy group for energy "{0}" eV since ' \ 'the group edges have not yet been set'.format(energy) raise ValueError(msg) - index = np.where(self._group_edges > energy)[0] - group = self._num_groups - index + index = np.where(self.group_edges > energy)[0] + group = self.num_groups - index return group def get_group_bounds(self, group): @@ -146,16 +153,15 @@ class EnergyGroups(object): """ - if self._group_edges is None: + if self.group_edges is None: msg = 'Unable to get energy group bounds for group "{0}" since ' \ 'the group edges have not yet been set'.format(group) raise ValueError(msg) - lower = self._group_edges[self._num_groups-group] - upper = self._group_edges[self._num_groups-group+1] + lower = self.group_edges[self.num_groups-group] + upper = self.group_edges[self.num_groups-group+1] return (lower, upper) - def get_group_indices(self, groups='all'): """Returns the array indices for one or more energy groups. @@ -178,27 +184,23 @@ class EnergyGroups(object): """ - if self._group_edges is None: + if self.group_edges is None: msg = 'Unable to get energy group indices for groups "{0}" since ' \ 'the group edges have not yet been set'.format(groups) raise ValueError(msg) if groups == 'all': - indices = np.arange(self._num_groups) + indices = np.arange(self.num_groups) else: indices = np.zeros(len(groups), dtype=np.int64) for i, group in enumerate(groups): - if group > 0 and group <= self._num_groups: - indices[i] = group - 1 - else: - msg = 'Unable to get energy group index for group "{0}" ' \ - 'since it is outside the group bounds'.format(group) - raise ValueError(msg) + cv.check_greater_than('group', group, 0) + cv.check_less_than('group', group, self.num_groups, True) + indices[i] = group - 1 return indices - def get_condensed_groups(self, coarse_groups): """Return a coarsened version of this EnergyGroups object. @@ -225,15 +227,15 @@ class EnergyGroups(object): If the group edges have not yet been set. """ - check_type('group edges', coarse_groups, list) + cv.check_type('group edges', coarse_groups, Iterable) for group in coarse_groups: - check_value('group edges', group, tuple) - check_length('group edges', group, 2) - check_greater_than('lower group', group[0], 1, True) - check_less_than('lower group', group[0], self.num_groups, True) - check_greater_than('upper group', group[0], 1, True) - check_less_than('upper group', group[0], self.num_groups, True) - check_less_than('lower group', group[0], group[1], False) + cv.check_value('group edges', group, Iterable) + cv.check_length('group edges', group, 2) + cv.check_greater_than('lower group', group[0], 1, True) + cv.check_less_than('lower group', group[0], self.num_groups, True) + cv.check_greater_than('upper group', group[0], 1, True) + cv.check_less_than('upper group', group[0], self.num_groups, True) + cv.check_less_than('lower group', group[0], group[1], False) # Compute the group indices into the coarse group group_bounds = list() @@ -243,12 +245,12 @@ class EnergyGroups(object): # Determine the indices mapping the fine-to-coarse energy groups group_bounds = np.asarray(group_bounds) - group_indices = np.flipud(self._num_groups - group_bounds) + group_indices = np.flipud(self.num_groups - group_bounds) group_indices[-1] += 1 # Determine the edges between coarse energy groups and sort # in increasing order in case the user passed in unordered groups - group_edges = self._group_edges[group_indices] + group_edges = self.group_edges[group_indices] group_edges = np.sort(group_edges) # Create a new condensed EnergyGroups object diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py new file mode 100644 index 000000000..792d8d30c --- /dev/null +++ b/openmc/mgxs/mgxs.py @@ -0,0 +1,836 @@ +from collections import Iterable +from numbers import Integral, Real +import os +import sys +import copy +import abc +import pickle +import subprocess + +import numpy as np + +import openmc +import openmc.checkvalue as cv +from openmc.mgxs import EnergyGroups + + +if sys.version_info[0] >= 3: + basestring = str + + +# Supported cross-section types +XS_TYPES = ['total', + 'transport', + 'absorption', + 'capture', + 'scatter', + 'nu-scatter', + 'scatter matrix', + 'nu-scatter matrix', + 'fission', + 'nu-fission', + 'chi'] + +# Supported domain types +DOMAIN_TYPES = ['cell', + 'distribcell', + 'universe', + 'material', + 'mesh'] + +# Supported domain objects +DOMAINS = [openmc.Cell, + openmc.Universe, + openmc.Material, + openmc.Mesh] + +# LaTeX Greek symbols for each cross-section type +GREEK = dict() +GREEK['total'] = '$\\Sigma_{t}$' +GREEK['transport'] = '$\\Sigma_{tr}$' +GREEK['absorption'] = '$\\Sigma_{a}$' +GREEK['capture'] = '$\\Sigma_{c}$' +GREEK['scatter'] = '$\\Sigma_{s}$' +GREEK['nu-scatter'] = '$\\nu\\Sigma_{s}$' +GREEK['scatter matrix'] = '$\\Sigma_{s}$' +GREEK['nu-scatter matrix'] = '$\\nu\\Sigma_{s}$' +GREEK['fission'] = '$\\Sigma_{f}$' +GREEK['nu-fission'] = '$\\nu\\Sigma_{f}$' +GREEK['chi'] = '$\\chi$' +GREEK['diffusion'] = '$D$' + + +def flip_axis(arr, axis=0): + """Flip contents of `axis` in array 'arr' + Taken verbatim from: + https://github.com/nipy/nibabel/blob/master/nibabel/orientations.py + """ + arr = np.asanyarray(arr) + arr = arr.swapaxes(0, axis) + arr = np.flipud(arr) + return arr.swapaxes(axis, 0) + + +class MultiGroupXS(object): + """ + + """ + + # This is an abstract class which cannot be instantiated + metaclass__ = abc.ABCMeta + + def __init__(self, name='', domain=None, + domain_type=None, energy_groups=None): + """ + :param name: + :param domain: + :param domain_type: + :param energy_groups: + :return: + """ + + self._name = '' + self._xs_type = None + self._domain = None + self._domain_type = None + self._energy_groups = None + self._num_groups = None + self._tallies = dict() + self._xs = None + + # A dictionary used to compute indices into the xs array + # Keys - Domain ID (ie, Material ID, Region ID for districell, etc) + # Values - Offset/stride into xs array + self._subdomain_offsets = dict() + self._offset = None + + self.name = name + if not domain_type is None: + self.domain_type = domain_type + if not domain is None: + self.domain = domain + if not energy_groups is None: + self.energy_groups = energy_groups + + def __deepcopy__(self, memo): + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy this object, create a copy + if existing is None: + clone = type(self).__new__(type(self)) + clone._name = self._name + clone._xs_type = self._xs_type + clone._domain = self._domain + clone._domain_type = self._domain_type + clone._energy_groups = copy.deepcopy(self._energy_groups, memo) + clone._num_groups = self._num_groups + clone._xs = copy.deepcopy(self._xs, memo) + clone._subdomain_offsets = copy.deepcopy(self._subdomain_offsets, memo) + clone._offset = copy.deepcopy(self._offset, memo) + + clone._tallies = dict() + for tally_type, tally in self._tallies.items(): + clone._tallies[tally_type] = copy.deepcopy(tally, memo) + + memo[id(self)] = clone + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + + @property + def name(self): + return self._name + + @property + def domain(self): + return self._domain + + @property + def domain_type(self): + return self._domain_type + + @property + def energy_groups(self): + return self._energy_groups + + @property + def num_groups(self): + return self._num_groups + + @name.setter + def name(self, name): + cv.check_type('MultiGroupXS name', name, basestring) + self._name = name + + @domain.setter + def domain(self, domain): + cv.check_type('MultiGroupXS domain', domain, DOMAINS) + self._domain = domain + if self._domain_type in ['material', 'cell', 'universe', 'mesh']: + self._subdomain_offsets[domain.id] = 0 + + @energy_groups.setter + def energy_groups(self, energy_groups): + cv.check_type('MultiGroupXS energy groups', energy_groups, + openmc.mgxs.EnergyGroups) + self._energy_groups = energy_groups + self._num_groups = energy_groups._num_groups + + @domain_type.setter + def domain_type(self, domain_type): + cv.check_type('MultiGroupXS domain type', domain_type, DOMAIN_TYPES) + self._domain_type = domain_type + + def find_domain_offset(self): + tally = self.tallies[self.tallies.keys()[0]] + filter = tally.find_filter(self.domain_type, [self.domain.id]) + self._offset = filter.offset + + def set_subdomain_offset(self, domain_id, offset): + """ + :param domain_id: + :param offset: + :return: + """ + + cv.check_type('subdomain id', domain_id, Integral) + cv.check_type('subdomain offset', offset, Integral) + self._subdomain_offsets[domain_id] = offset + + @abc.abstractmethod + def _create_tallies(self, scores, filters, keys, estimator): + """ + + :param scores: + :param filters: + :param keys: + :param estimator: + :return: + """ + + if self.energy_groups is None: + raise ValueError('Unable to create Tallies without energy groups') + elif self.domain is None: + raise ValueError('Unable to create Tallies without a domain') + elif self.domain_type is None: + raise ValueError('Unable to create Tallies without a domain type') + + cv.check_type('scores', scores, Iterable, basestring) + cv.check_value('scores', scores, openmc.SCORE_TYPES) + cv.check_type('filters', scores, Iterable, openmc.Filter) + cv.check_type('keys', keys, Iterable, basestring) + cv.check_value('# scores', len(scores), len(keys)) + cv.check_type('estimator', estimator, basestring) + cv.check_value('estimator', estimator, ['analog', 'tracklength']) + + # Create a domain Filter object + domain_filter = openmc.Filter(self.domain_type, self.domain.id) + + for score, key, filters in zip(scores, keys, filters): + self.tallies[key] = openmc.Tally(name=self.name) + self.tallies[key].add_score(score) + self.tallies[key].estimator = estimator + self.tallies[key].add_filter(domain_filter) + + # Add all non-domain specific Filters (ie, energy) to the Tally + for filter in filters: + self.tallies[key].add_filter(filter) + + def get_subdomain_offsets(self, subdomains='all'): + """ + + :param subdomains: + :return: + """ + + if subdomains != 'all': + cv.check_type('subdomains', subdomains, Iterable, Integral) + + if subdomains == 'all': + offsets = np.arange(self.xs.shape[1]) + else: + offsets = np.zeros(len(subdomains), dtype=np.int64) + + for i, subdomain in enumerate(subdomains): + if subdomain in self._subdomain_offsets: + offsets[i] = self._subdomain_offsets[subdomain] + else: + msg = 'Unable to get index for subdomain "{0}" since it ' \ + 'is not a subdomain in cross-section'.format(subdomain) + raise ValueError(msg) + + return offsets + + def get_subdomains(self, offsets='all'): + + if offsets != 'all': + cv.check_type('offsets', offsets, Iterable, Integral) + + if offsets == 'all': + offsets = self.get_subdomain_offsets() + + subdomains = np.zeros(len(offsets), dtype=np.int64) + keys = self._subdomain_offsets.keys() + values = self._subdomain_offsets.values() + + for i, offset in enumerate(offsets): + if offset in values: + subdomains[i] = keys[values.index(offset)] + else: + msg = 'Unable to get subdomain for offset "{0}" since it ' \ + 'is not an offset in the cross-section'.format(offset) + raise ValueError(msg) + + return subdomains + + def get_xs(self, groups='all', subdomains='all', metric='mean'): + + if self.xs is None: + msg = 'Unable to get cross-section since it has not been computed' + raise ValueError(msg) + + cv.check_value('metric', metric, ['mean', 'std. dev.', 'rel. err.']) + if groups != 'all': + cv.check_value('groups', groups, Iterable, Integral) + if subdomains != 'all': + cv.check_value('subdomains', subdomains, Iterable, Integral) + + # FIXME: Make this use Tally.get_values() + + def get_condensed_xs(self, coarse_groups): + """This routine takes in a collection of 2-tuples of energy groups""" + + cv.check_value('coarse groups', coarse_groups, EnergyGroups) + + # FIXME: this should use the Tally.slice(...) routine + + def get_domain_vg_xs(self, subdomains='all'): + + if self.domain_type != 'distribcell': + msg = 'Unable to compute domain averaged "{0}" xs for "{1}"' \ + '"{2}" since it is not a distribcell'.format(self._xs_type, + self._domain_type, self._domain.id) + raise ValueError(msg) + + if subdomains != 'all': + cv.check_value('subdomains', subdomains, Iterable, Integral) + + # FIXME: This should use tally arithmetic + + def print_xs(self, subdomains='all'): + + if subdomains != 'all': + cv.check_value('subdomains', subdomains, Iterable, Integral) + + string = 'Multi-Group XS\n' + string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', self.xs_type) + string += '{0: <16}{1}{2}\n'.format('\tDomain Type', '=\t', self.domain_type) + string += '{0: <16}{1}{2}\n'.format('\tDomain ID', '=\t', self.domain.id) + + if subdomains == 'all': + subdomains = self._subdomain_offsets.keys() + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += '{0: <16}{1}{2}\n'.format('\tSubDomain', '=\t', subdomain) + + string += '{0: <16}\n'.format('\tCross-Sections [cm^-1]:') + + # Loop over energy groups ranges + for group in range(1,self.num_groups+1): + bounds = self._energy_groups.getGroupBounds(group) + string += '{0: <12}Group {1} [{2: <10} - ' \ + '{3: <10}MeV]:\t'.format('', group, bounds[0], bounds[1]) + average = self.get_xs([group], [subdomain], 'mean') + rel_err = self.get_xs([group], [subdomain], 'rel. err.') + string += '{:.2e}+/-{:1.2e}%'.format(average[0,0,0], rel_err[0,0,0]) + string += '\n' + string += '\n' + + print(string) + + def dump_to_file(self, filename='multigroupxs', directory='multigroupxs'): + + 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) + + # Create an empty dictionary to store the data + xs_results = dict() + + # Store all of this MultiGroupXS' class attributes in the dictionary + xs_results['name'] = self.name + xs_results['xs type'] = self.xs_type + xs_results['domain type'] = self.domain_type + xs_results['domain'] = self.domain + xs_results['energy groups'] = self.energy_groups + xs_results['tallies'] = self.tallies + xs_results['xs'] = self.xs + xs_results['offset'] = self._offset + xs_results['subdomain offsets'] = self._subdomain_offsets + + # Pickle the MultiGroupXS results to a file + filename = directory + '/' + filename + '.pkl' + filename = filename.replace(' ', '-') + pickle.dump(xs_results, open(filename, 'wb')) + + def restore_from_file(self, filename='multigroupxs', directory='multigroupxs'): + + cv.check_type('filename', filename, basestring) + cv.check_type('directory', directory, basestring) + + filename = directory + '/' + filename + '.pkl' + filename = filename.replace(' ', '-') + + # Check that the file exists + if not os.path.exists(filename): + msg = 'Unable to import from filename="{0}"'.format(filename) + raise ValueError(msg) + + # Load the pickle file into a dictionary + xs_results = pickle.load(open(filename, 'rb')) + + # Store the MultiGroupXS class attributes + self.name = xs_results['name'] + self.xs_type = xs_results['xs type'] + self.domain_type = xs_results['domain type'] + self.domain = xs_results['domain'] + self.energy_groups = xs_results['energy groups'] + self.tallies = xs_results['tallies'] + self.xs = xs_results['xs'] + self._offset = xs_results['offset'] + self._subdomain_offsets = xs_results['subdomain offsets'] + + def exportResults(self, subdomains='all', filename='multigroupxs', + directory='multigroupxs', format='hdf5', append=True): + + if subdomains != 'all': + cv.check_type('submdomains', subdomains, Iterable, Integral) + cv.check_type('filename', filename, basestring) + cv.check_type('directory', directory, basestring) + cv.check_values('format', format, ['hdf5', 'pickle']) + cv.check_type('append', append, bool) + + # Make directory if it does not exist + if not os.path.exists(directory): + os.makedirs(directory) + + # FIXME: Use tally arithmetic!!! + + def print_pdf(self, subdomains='all', filename='multigroupxs', + directory='multigroupxs'): + + if subdomains != 'all': + cv.check_type('submdomains', subdomains, Iterable, Integral) + 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) + + filename = filename.replace(' ', '-') + + # Generate LaTeX file + self.exportResults(subdomains, filename, '.', 'latex', False) + + # Compile LaTeX to PDF + FNULL = open(os.devnull, 'w') + subprocess.check_call('pdflatex {0}.tex'.format(filename), + shell=True, stdout=FNULL) + + # Move PDF to requested directory and cleanup temporary LaTeX files + if directory != '.': + os.system('mv {0}.pdf {1}'.format(filename, directory)) + os.system('rm {0}.tex {0}.aux {0}.log'.format(filename)) + + +class TotalXS(MultiGroupXS): + + def __init__(self, name='', domain=None, domain_type=None, groups=None): + super(TotalXS, self).__init__(name, domain, domain_type, groups) + self.xs_type = 'total' + + def create_tallies(self): + + # 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]] + + # Intialize the Tallies + super(TotalXS, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + self.xs = self.tallies['total'] / self.tallies['flux'] + + +class TransportXS(MultiGroupXS): + + def __init__(self, name='', domain=None, domain_type=None, groups=None): + super(TransportXS, self).__init__(name, domain, domain_type, groups) + self.xs_type = 'transport' + + def create_tallies(self): + + # Create a list of scores for each Tally to be created + scores = ['flux', 'total', 'scatter-1'] + 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) + energyout_filter = openmc.Filter('energyout', group_edges) + filters = [[energy_filter], [energy_filter], [energyout_filter]] + + # Initialize the Tallies + super(TransportXS, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + self.xs = self.tallies['total'] - self.tallies['scatter-1'] + self.xs /= self.tallies['flux'] + + +class AbsorptionXS(MultiGroupXS): + + def __init__(self, name='', domain=None, domain_type=None, groups=None): + super(AbsorptionXS, self).__init__(name, domain, domain_type, groups) + self.xs_type = 'absorption' + + def create_tallies(self): + + # 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]] + + # Intialize the Tallies + super(AbsorptionXS, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + self.xs = self.tallies['absorption'] / self.tallies['flux'] + + +class CaptureXS(MultiGroupXS): + + def __init__(self, name='', domain=None, domain_type=None, groups=None): + super(CaptureXS, self).__init__(name, domain, domain_type, groups) + self._xs_type = 'capture' + + def create_tallies(self): + + # 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]] + + # Intialize the Tallies + super(CaptureXS, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + self.xs = self.tallies['absorption'] - self.tallies['fission'] + self.xs /= self.tallies['flux'] + + +class FissionXS(MultiGroupXS): + + def __init__(self, name='', domain=None, domain_type=None, energy_groups=None): + super(FissionXS, self).__init__(name, domain, domain_type, energy_groups) + self._xs_type = 'fission' + + def create_tallies(self): + + # Create a list of scores for each Tally to be created + scores = ['flux', '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]] + + # Intialize the Tallies + super(FissionXS, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + self.xs = self.tallies['fission'] / self.tallies['flux'] + + +class NuFissionXS(MultiGroupXS): + + def __init__(self, name='', domain=None, domain_type=None, groups=None): + super(NuFissionXS, self).__init__(name, domain, domain_type, groups) + self._xs_type = 'nu-fission' + + def create_tallies(self): + + # Create a list of scores for each Tally to be created + scores = ['flux', 'nu-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]] + + # Intialize the Tallies + super(NuFissionXS, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + self.xs = self.tallies['nu-fission'] / self.tallies['flux'] + + +class ScatterXS(MultiGroupXS): + + def __init__(self, name='', domain=None, domain_type=None, energy_groups=None): + super(ScatterXS, self).__init__(name, domain, domain_type, energy_groups) + self._xs_type = 'scatter' + + def create_tallies(self): + + # 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 + super(ScatterXS, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + self.xs = self.tallies['scatter'] / self.tallies['flux'] + + +class NuScatterXS(MultiGroupXS): + + def __init__(self, name='', domain=None, domain_type=None, groups=None): + super(NuScatterXS, self).__init__(name, domain, domain_type, groups) + self._xs_type = 'nu-scatter' + + def create_tallies(self): + + # 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]] + + # Intialize the Tallies + super(NuScatterXS, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + self.xs = self.tallies['nu-scatter'] / self.tallies['flux'] + + +class ScatterMatrixXS(MultiGroupXS): + + def __init__(self, name='', domain=None, domain_type=None, groups=None): + super(ScatterMatrixXS, self).__init__(name, domain, domain_type, groups) + self._xs_type = 'scatter matrix' + + def create_tallies(self): + + # Create a list of scores for each Tally to be created + scores = ['flux', 'scatter', 'scatter-1'] + 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) + energyout_filter = openmc.Filter('energyout', group_edges) + filters = [[energy_filter], [energy_filter, energyout_filter], [energyout_filter]] + + # Intialize the Tallies + super(ScatterMatrixXS, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + self.xs = self.tallies['scatter'] - self.tallies['scatter-1'] + self.xs /= self.tallies['flux'] + + def get_condensed_xs(self, coarse_groups): + """This routine takes in a collection of 2-tuples of energy groups""" + + cv.check_value('coarse groups', coarse_groups, EnergyGroups) + + # FIXME: this should use the Tally.slice(...) routine + + # Error checking for the group bounds is done here + new_groups = self.energy_groups.getCondensedGroups(coarse_groups) + num_coarse_groups = new_groups._num_groups + + def get_xs(self, in_groups='all', out_groups='all', + subdomains='all', metric='mean'): + + if self.xs is None: + msg = 'Unable to get cross-section since it has not been computed' + raise ValueError(msg) + + cv.check_value('metric', metric, ['mean', 'std. dev.', 'rel. err.']) + if in_groups != 'all': + cv.check_value('in groups', in_groups, Iterable, Integral) + if out_groups != 'all': + cv.check_value('out groups', out_groups, Iterable, Integral) + if subdomains != 'all': + cv.check_value('subdomains', subdomains, Iterable, Integral) + + # FIXME: Make this use Tally.get_values() + + def print_xs(self, subdomains='all'): + + if subdomains != 'all': + cv.check_value('subdomains', subdomains, Iterable, Integral) + + string = 'Multi-Group XS\n' + string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', self.xs_type) + string += '{0: <16}{1}{2}\n'.format('\tDomain Type', '=\t', self.domain_type) + string += '{0: <16}{1}{2}\n'.format('\tDomain ID', '=\t', self.domain.id) + + string += '{0: <16}\n'.format('\tEnergy Groups:') + + # Loop over energy groups ranges + for group in range(1,self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += '{0: <12}Group {1} [{2: <10} - ' \ + '{3: <10}MeV]\n'.format('', group, bounds[0], bounds[1]) + + if subdomains == 'all': + subdomains = self._subdomain_offsets.keys() + + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += '{0: <16}{1}{2}\n'.format('\tSubDomain', '=\t', subdomain) + + string += '{0: <16}\n'.format('\tCross-Sections [cm^-1]:') + + # Loop over energy groups ranges + for in_group in range(1,self.num_groups+1): + for out_group in range(1,self.num_groups+1): + string += '{0: <12}Group {1} -> Group {2}:\t\t'.format('', in_group, out_group) + average = self.get_xs([in_group], [out_group], [subdomain], 'mean') + rel_err = self.get_xs([in_group], [out_group], [subdomain], 'rel. err.') + string += '{:.2e}+/-{:1.2e}%'.format(average[0,0,0], rel_err[0,0,0]) + string += '\n' + string += '\n' + print(string) + + +class NuScatterMatrixXS(ScatterMatrixXS): + + def __init__(self, name='', domain=None, domain_type=None, groups=None): + super(NuScatterMatrixXS, self).__init__(name, domain, domain_type, groups) + self.xs_type = 'nu-scatter matrix' + + def create_tallies(self): + + # Create a list of scores for each Tally to be created + scores = ['flux', 'nu-scatter', 'scatter-1'] + 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) + energyout_filter = openmc.Filter('energyout', group_edges) + filters = [[energy_filter], [energy_filter, energyout_filter], [energyout_filter]] + + # Intialize the Tallies + super(ScatterMatrixXS, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + self.xs = self.tallies['nu-scatter'] - self.tallies['scatter-1'] + self.xs /= self.tallies['flux'] + + +class Chi(MultiGroupXS): + + def __init__(self, name='', domain=None, domain_type=None, groups=None): + super(Chi, self).__init__(name, domain, domain_type, groups) + self._xs_type = 'chi' + + def create_tallies(self): + + # 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 + energy_filter = openmc.Filter('energy', group_edges) + energyout_filter = openmc.Filter('energyout', group_edges) + filters = [[energy_filter], [energyout_filter]] + + # Intialize the Tallies + super(Chi, self)._create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + + # Extract and clean the Tally data + tally_data, zero_indices = super(Chi, self).getAllTallyData() + nu_fission_in = tally_data['nu-fission-in'] + nu_fission_out = tally_data['nu-fission-out'] + + # Set any zero reaction rates to -1 + nu_fission_in[0, zero_indices['nu-fission-in']] = -1. + + # FIXME - uncertainty propagation + self._xs = infermc.error_prop.arithmetic.divide_by_scalar(nu_fission_out, + nu_fission_in.sum(2)[0, :, np.newaxis, ...], + corr, False) + + # Compute the total across all groups per subdomain + norm = self._xs.sum(2)[0, :, np.newaxis, ...] + + # Set any zero norms (in non-fissionable domains) to -1 + norm_indices = norm == 0. + norm[norm_indices] = -1. + + # Normalize chi to 1.0 + # FIXME - uncertainty propagation + self._xs = infermc.error_prop.arithmetic.divide_by_scalar(self._xs, norm, + corr, False) + + # For any region without flux or reaction rate, convert xs to zero + self._xs[:, norm_indices] = 0. + + # FIXME - uncertainty propagation - this is just a temporary fix + self._xs[1, ...] = 0. + + # Correct -0.0 to +0.0 + self._xs += 0. \ No newline at end of file From 0a78549adfb569dc48348223c0c96123c2a63c32 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 9 Aug 2015 16:18:59 -0700 Subject: [PATCH 03/91] Added openmc.mgxs to setup.py --- openmc/mgxs/mgxs.py | 4 ++-- setup.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 792d8d30c..f5b977f6b 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1,5 +1,5 @@ from collections import Iterable -from numbers import Integral, Real +from numbers import Integral import os import sys import copy @@ -165,7 +165,7 @@ class MultiGroupXS(object): cv.check_type('MultiGroupXS name', name, basestring) self._name = name - @domain.setter + @domain.setterr def domain(self, domain): cv.check_type('MultiGroupXS domain', domain, DOMAINS) self._domain = domain diff --git a/setup.py b/setup.py index b86582dd0..afaa9dcfc 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ except ImportError: kwargs = {'name': 'openmc', 'version': '0.6.2', - 'packages': ['openmc'], + 'packages': ['openmc', 'openmc.mgxs'], 'scripts': glob.glob('scripts/openmc-*'), # Metadata From 8b6f2dde26591bb44b05772f87d8a6d8f8e88a03 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 9 Aug 2015 21:23:19 -0700 Subject: [PATCH 04/91] Added initial docstrings to MultiGroupXS class --- openmc/mgxs/mgxs.py | 566 ++++++++++++++++++++++++++++---------------- 1 file changed, 368 insertions(+), 198 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f5b977f6b..c01c8438a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -57,38 +57,63 @@ GREEK['nu-scatter matrix'] = '$\\nu\\Sigma_{s}$' GREEK['fission'] = '$\\Sigma_{f}$' GREEK['nu-fission'] = '$\\nu\\Sigma_{f}$' GREEK['chi'] = '$\\chi$' -GREEK['diffusion'] = '$D$' - - -def flip_axis(arr, axis=0): - """Flip contents of `axis` in array 'arr' - Taken verbatim from: - https://github.com/nipy/nibabel/blob/master/nibabel/orientations.py - """ - arr = np.asanyarray(arr) - arr = arr.swapaxes(0, axis) - arr = np.flipud(arr) - return arr.swapaxes(axis, 0) class MultiGroupXS(object): - """ + """A multi-group cross-section for some energy groups structure within + some spatial domain. + + 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 + ---------- + name : str, optional + Name of the multi-group cross-section. If not specified, the name is + the empty string. + domain : Material or Cell or Universe or Mesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe' or 'mesh'} + The domain type for spatial homogenization + energy_groups : EnergyGroups + The energy group structure for energy condensation + + Attributes + ---------- + name : str, optional + Name of the multi-group cross-section + xs_type : str + Cross-section type (e.g., 'total', 'nu-fission', etc.) + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe' or 'mesh'} + Domain type for spatial homogenization + energy_groups : EnergyGroups + Energy group structure for energy condensation + num_groups : Integral + Number of energy groups + tallies : dict + Tallies needed to compute the multi-group cross-section + xs : Tally + Derived tally for the multi-group cross-section. This attribute + is None unless the multi-group cross-section has been computed. + subdomain_offsets : dict + Integral subdomain IDs (keys) mapped to integral tally data array + offsets (values). When the domain_type is 'distribcell', each subdomain + ID corresponds to an instance of the cell domain. For all other domain + types, there is only one subdomain for the domain and this dictionary + will trivially map zero to zero. + offset : Integral + The filter offset for the domain filter """ # This is an abstract class which cannot be instantiated metaclass__ = abc.ABCMeta - def __init__(self, name='', domain=None, - domain_type=None, energy_groups=None): - """ - :param name: - :param domain: - :param domain_type: - :param energy_groups: - :return: - """ - + def __init__(self, domain=None, domain_type=None, + energy_groups=None, name=''): self._name = '' self._xs_type = None self._domain = None @@ -96,12 +121,13 @@ class MultiGroupXS(object): self._energy_groups = None self._num_groups = None self._tallies = dict() - self._xs = None + self._xs_tally = None # A dictionary used to compute indices into the xs array # Keys - Domain ID (ie, Material ID, Region ID for districell, etc) # Values - Offset/stride into xs array - self._subdomain_offsets = dict() + # NOTE: This is primarily used for distribcell domain types + self._subdomain_indices = dict() self._offset = None self.name = name @@ -118,19 +144,19 @@ class MultiGroupXS(object): # If this is the first time we have tried to copy this object, create a copy if existing is None: clone = type(self).__new__(type(self)) - clone._name = self._name - clone._xs_type = self._xs_type - clone._domain = self._domain - clone._domain_type = self._domain_type - clone._energy_groups = copy.deepcopy(self._energy_groups, memo) - clone._num_groups = self._num_groups - clone._xs = copy.deepcopy(self._xs, memo) - clone._subdomain_offsets = copy.deepcopy(self._subdomain_offsets, memo) - clone._offset = copy.deepcopy(self._offset, memo) + clone._name = self.name + clone._xs_type = self.xs_type + clone._domain = self.domain + clone._domain_type = self.domain_type + clone._energy_groups = copy.deepcopy(self.energy_groups, memo) + clone._num_groups = self.num_groups + clone._xs_tally = copy.deepcopy(self.xs_tally, memo) + clone._subdomain_offsets = copy.deepcopy(self.subdomain_indices, memo) + clone._offset = copy.deepcopy(self.offset, memo) clone._tallies = dict() - for tally_type, tally in self._tallies.items(): - clone._tallies[tally_type] = copy.deepcopy(tally, memo) + for tally_type, tally in self.tallies.items(): + clone.tallies[tally_type] = copy.deepcopy(tally, memo) memo[id(self)] = clone @@ -160,145 +186,248 @@ class MultiGroupXS(object): def num_groups(self): return self._num_groups + @property + def tallies(self): + return self._tallies + + @property + def xs_tally(self): + return self._xs_tally + + @property + def offset(self): + return self._offset + + @property + def subdomain_indices(self): + return self._subdomain_indices + @name.setter def name(self, name): - cv.check_type('MultiGroupXS name', name, basestring) + cv.check_type('name', name, basestring) self._name = name - @domain.setterr + @domain.setter def domain(self, domain): - cv.check_type('MultiGroupXS domain', domain, DOMAINS) + cv.check_type('domain', domain, DOMAINS) self._domain = domain if self._domain_type in ['material', 'cell', 'universe', 'mesh']: - self._subdomain_offsets[domain.id] = 0 - - @energy_groups.setter - def energy_groups(self, energy_groups): - cv.check_type('MultiGroupXS energy groups', energy_groups, - openmc.mgxs.EnergyGroups) - self._energy_groups = energy_groups - self._num_groups = energy_groups._num_groups + self._subdomain_indices[domain.id] = 0 @domain_type.setter def domain_type(self, domain_type): - cv.check_type('MultiGroupXS domain type', domain_type, DOMAIN_TYPES) + cv.check_type('domain type', domain_type, DOMAIN_TYPES) self._domain_type = domain_type - def find_domain_offset(self): + @energy_groups.setter + def energy_groups(self, energy_groups): + cv.check_type('energy groups', energy_groups, openmc.mgxs.EnergyGroups) + self._energy_groups = energy_groups + self._num_groups = energy_groups._num_groups + + def _find_domain_offset(self): + """Finds and stores the offset of the domain tally filter""" tally = self.tallies[self.tallies.keys()[0]] filter = tally.find_filter(self.domain_type, [self.domain.id]) self._offset = filter.offset - def set_subdomain_offset(self, domain_id, offset): - """ - :param domain_id: - :param offset: - :return: + def set_subdomain_index(self, subdomain_id, offset): + """Set the filter bin index for a subdomain of the domain. + + This is primary useful when the domain type is 'distribcell', in which + case it can be useful to map each subdomain (a cell instance) to its + filter bin in the derived multi-group cross-section tally data array. + + Parameters + ---------- + subdomain_id : Integral + The ID for the subdomain + index : Integral + The filter bin index for the subdomain + """ - cv.check_type('subdomain id', domain_id, Integral) + cv.check_type('subdomain id', subdomain_id, Integral) cv.check_type('subdomain offset', offset, Integral) - self._subdomain_offsets[domain_id] = offset + cv.check_greater_than('subdomain id', subdomain_id, 0, True) + cv.check_greater_than('subdomain offset', subdomain_id, 0, True) + self._subdomain_indices[subdomain_id] = offset @abc.abstractmethod - def _create_tallies(self, scores, filters, keys, estimator): + 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 MultiGroupXS subclasses to create tallies + for input file generation. The tallies are stored in the tallies dict. + + Parameters + ---------- + scores : Iterable of str + Scores for each tally + filters : Iterable of tuple of 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'} + Type of estimator to use for each tally + """ - :param scores: - :param filters: - :param keys: - :param estimator: - :return: - """ - - if self.energy_groups is None: - raise ValueError('Unable to create Tallies without energy groups') - elif self.domain is None: - raise ValueError('Unable to create Tallies without a domain') - elif self.domain_type is None: - raise ValueError('Unable to create Tallies without a domain type') - - cv.check_type('scores', scores, Iterable, basestring) cv.check_value('scores', scores, openmc.SCORE_TYPES) - cv.check_type('filters', scores, Iterable, openmc.Filter) + # FIXME : Use @smharper's recursive iterable checker + # cv.check_type('filters', all_filters, openmc.Filter) cv.check_type('keys', keys, Iterable, basestring) - cv.check_value('# scores', len(scores), len(keys)) - cv.check_type('estimator', estimator, basestring) + cv.check_length('scores', scores, len(keys)) cv.check_value('estimator', estimator, ['analog', 'tracklength']) # Create a domain Filter object domain_filter = openmc.Filter(self.domain_type, self.domain.id) - for score, key, filters in zip(scores, keys, filters): + 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].estimator = estimator self.tallies[key].add_filter(domain_filter) - # Add all non-domain specific Filters (ie, energy) to the Tally + # Add all non-domain specific Filters (i.e., 'energy') to the Tally for filter in filters: self.tallies[key].add_filter(filter) - def get_subdomain_offsets(self, subdomains='all'): - """ + def get_subdomain_indices(self, subdomains='all'): + """Get the indices for one or more subdomains. + + This method can be used to extract the indices into the multi-group + cross-section tally data array for a subdomain (i.e., cell instance). + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest + + Returns + indices : NumPy ndarray + Array of subdomain indices indexed in the order of the subdomains + + Raises + ------ + ValueError + When one of the subdomains is not a valid subdomain ID. - :param subdomains: - :return: """ if subdomains != 'all': cv.check_type('subdomains', subdomains, Iterable, Integral) if subdomains == 'all': - offsets = np.arange(self.xs.shape[1]) + # FIXME: This isn't correct any more!! + # indices = np.arange(self.xs.shape[1]) else: - offsets = np.zeros(len(subdomains), dtype=np.int64) + indices = np.zeros(len(subdomains), dtype=np.int64) for i, subdomain in enumerate(subdomains): - if subdomain in self._subdomain_offsets: - offsets[i] = self._subdomain_offsets[subdomain] + if subdomain in self.subdomain_indices: + indices[i] = self.subdomain_indices[subdomain] else: msg = 'Unable to get index for subdomain "{0}" since it ' \ - 'is not a subdomain in cross-section'.format(subdomain) + 'is not a valid subdomain'.format(subdomain) raise ValueError(msg) - return offsets + return indices - def get_subdomains(self, offsets='all'): + def get_subdomains(self, indices='all'): + """Get the subdomain IDs for one or more indices. - if offsets != 'all': - cv.check_type('offsets', offsets, Iterable, Integral) + This method can be used to extract the subdomains for the multi-group + cross-section from their indices in the tally data array. - if offsets == 'all': - offsets = self.get_subdomain_offsets() + See also : get_subdomain_offsets - subdomains = np.zeros(len(offsets), dtype=np.int64) - keys = self._subdomain_offsets.keys() - values = self._subdomain_offsets.values() + Parameters + ---------- + indices : Iterable of Integral or 'all' + Subdomain indices of interest - for i, offset in enumerate(offsets): - if offset in values: - subdomains[i] = keys[values.index(offset)] + Returns + subdomains : NumPy ndarray + Array of subdomain IDs indexed in the order of the indices + + Raises + ------ + ValueError + When one of the indices is not a valid subdomain index. + + """ + + if indices != 'all': + cv.check_type('offsets', indices, Iterable, Integral) + + if indices == 'all': + indices = self.get_subdomain_indices() + + subdomains = np.zeros(len(indices), dtype=np.int64) + keys = self.subdomain_indices.keys() + values = self.subdomain_indices.values() + + for i, index in enumerate(indices): + if index in values: + subdomains[i] = keys[values.index(indices)] else: msg = 'Unable to get subdomain for offset "{0}" since it ' \ - 'is not an offset in the cross-section'.format(offset) + 'is not a valid index'.format(index) raise ValueError(msg) return subdomains - def get_xs(self, groups='all', subdomains='all', metric='mean'): + def get_xs(self, groups='all', subdomains='all', value='mean'): + """ - if self.xs is None: + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest + value : str + A string for the type of value to return - 'mean' (default), + 'std_dev' or 'rel_err' are accepted + + Returns + ------- + xs : 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. + + """ + + if self.xs_tally is None: msg = 'Unable to get cross-section since it has not been computed' raise ValueError(msg) - - cv.check_value('metric', metric, ['mean', 'std. dev.', 'rel. err.']) if groups != 'all': cv.check_value('groups', groups, Iterable, Integral) if subdomains != 'all': cv.check_value('subdomains', subdomains, Iterable, Integral) - # FIXME: Make this use Tally.get_values() + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + filters.append(self.domain_type) + filter_bins.append(subdomains) + + # Construct a collection of the energy group filter bins + filters.append('energy') + filter_bins.append(self.energy_groups.get_group_bounds(groups)) + + # Query the multi-group cross-section tally for the data + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + return xs def get_condensed_xs(self, coarse_groups): """This routine takes in a collection of 2-tuples of energy groups""" @@ -307,54 +436,97 @@ class MultiGroupXS(object): # FIXME: this should use the Tally.slice(...) routine - def get_domain_vg_xs(self, subdomains='all'): + def get_subdomain_avg_xs(self, subdomains='all'): + """Construct a subdomain-averaged version of this cross-section. - if self.domain_type != 'distribcell': - msg = 'Unable to compute domain averaged "{0}" xs for "{1}"' \ - '"{2}" since it is not a distribcell'.format(self._xs_type, - self._domain_type, self._domain.id) - raise ValueError(msg) + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs to average across + + Returns + ------- + MultiGroupXS + This MultiGroupXS averaged across subdomains of interest + + """ if subdomains != 'all': cv.check_value('subdomains', subdomains, Iterable, Integral) - # FIXME: This should use tally arithmetic + avg_xs = copy.deepcopy(self) + + if self.domain_type == 'distribcell': + avg_xs.domain_type = 'cell' + avg_xs._subdomain_indices = {} + avg_xs._offset = 0 + + # Spatially average each tally + for key, old_tally in avg_xs.tallies.items(): + # FIXME: Need to create Tally.mean(...) + slice_tally = old_tally.slice(filters=[avg_xs.domain_type], + filter_bins=subdomains) + avg_tally = slice_tally.mean(filters=[avg_xs.domain_type], + filter_bins=subdomains) + avg_xs.tallies[key] = avg_tally + + avg_xs.compute_xs() + + return avg_xs def print_xs(self, subdomains='all'): + """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 + + """ if subdomains != 'all': cv.check_value('subdomains', subdomains, Iterable, Integral) string = 'Multi-Group XS\n' - string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', self.xs_type) - string += '{0: <16}{1}{2}\n'.format('\tDomain Type', '=\t', self.domain_type) - string += '{0: <16}{1}{2}\n'.format('\tDomain ID', '=\t', self.domain.id) + string += '{0: <16}=\t{1}\n'.format('\tType', self.xs_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 subdomains == 'all': - subdomains = self._subdomain_offsets.keys() + if self.xs_tally is not None: + if subdomains == 'all': + subdomains = self.get_subdomain_indices() - # Loop over all subdomains - for subdomain in subdomains: + # Loop over all subdomains + for subdomain in subdomains: - if self.domain_type == 'distribcell': - string += '{0: <16}{1}{2}\n'.format('\tSubDomain', '=\t', subdomain) + if self.domain_type == 'distribcell': + string += '{0: <16}=\t{1}\n'.format('\tSubDomain', subdomain) - string += '{0: <16}\n'.format('\tCross-Sections [cm^-1]:') + string += '{0: <16}\n'.format('\tCross-Sections [cm^-1]:') - # Loop over energy groups ranges - for group in range(1,self.num_groups+1): - bounds = self._energy_groups.getGroupBounds(group) - string += '{0: <12}Group {1} [{2: <10} - ' \ - '{3: <10}MeV]:\t'.format('', group, bounds[0], bounds[1]) - average = self.get_xs([group], [subdomain], 'mean') - rel_err = self.get_xs([group], [subdomain], 'rel. err.') - string += '{:.2e}+/-{:1.2e}%'.format(average[0,0,0], rel_err[0,0,0]) + # Loop over energy groups ranges + for group in range(1,self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += '{0: <12}Group {1} [{2: <10} - ' \ + '{3: <10}MeV]:\t'.format('', group, bounds[0], bounds[1]) + average = self.get_xs([group], [subdomain], 'mean') + rel_err = self.get_xs([group], [subdomain], 'rel_err')*100. + string += '{:.2e}+/-{:1.2e}%'.format(average, rel_err) + string += '\n' string += '\n' - string += '\n' print(string) - def dump_to_file(self, filename='multigroupxs', directory='multigroupxs'): + def pickle(self, filename='mgxs', directory='mgxs'): + """Store the MultiGroupXS as a pickled binary file. + + Parameters + ---------- + filename : str + Filename for the pickled binary file (default is 'mgxs') + directory : str + Directory for the pickled binary file (default is 'mgxs') + """ cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) @@ -368,21 +540,30 @@ class MultiGroupXS(object): # Store all of this MultiGroupXS' class attributes in the dictionary xs_results['name'] = self.name - xs_results['xs type'] = self.xs_type - xs_results['domain type'] = self.domain_type + xs_results['xs_type'] = self.xs_type + xs_results['domain_type'] = self.domain_type xs_results['domain'] = self.domain - xs_results['energy groups'] = self.energy_groups + xs_results['energy_groups'] = self.energy_groups xs_results['tallies'] = self.tallies - xs_results['xs'] = self.xs + xs_results['xs_tally'] = self.xs_tally xs_results['offset'] = self._offset - xs_results['subdomain offsets'] = self._subdomain_offsets + xs_results['subdomain_indices'] = self._subdomain_indices - # Pickle the MultiGroupXS results to a file + # Pickle the MultiGroupXS results to a binary file filename = directory + '/' + filename + '.pkl' filename = filename.replace(' ', '-') pickle.dump(xs_results, open(filename, 'wb')) - def restore_from_file(self, filename='multigroupxs', directory='multigroupxs'): + def restore_from_file(self, filename='mgxs', directory='mgxs'): + """Restore the MultiGroupXS from a pickled binary file. + + Parameters + ---------- + filename : str + Filename for the pickled binary file (default is 'mgxs') + directory : str + Directory for the pickled binary file (default is 'mgxs') + """ cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) @@ -400,17 +581,34 @@ class MultiGroupXS(object): # Store the MultiGroupXS class attributes self.name = xs_results['name'] - self.xs_type = xs_results['xs type'] - self.domain_type = xs_results['domain type'] + self.xs_type = xs_results['xs_type'] + self.domain_type = xs_results['domain_type'] self.domain = xs_results['domain'] - self.energy_groups = xs_results['energy groups'] + self.energy_groups = xs_results['energy_groups'] self.tallies = xs_results['tallies'] - self.xs = xs_results['xs'] + self.xs_tally = xs_results['xs_tally'] self._offset = xs_results['offset'] - self._subdomain_offsets = xs_results['subdomain offsets'] + self._subdomain_indices = xs_results['subdomain_indices'] - def exportResults(self, subdomains='all', filename='multigroupxs', - directory='multigroupxs', format='hdf5', append=True): + def export_xs_data(self, subdomains='all', filename='mgxs', + directory='mgxs', format='hdf5', append=True): + """Export the multi-group cross-secttion data to a file. + + This routine leverages the functionality in the Pandas library to + export DataFrames to CSV, HDF5, LaTeX and PDF files. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + filename : str + Filename for the exported file (default is 'mgxs') + directory : str + Directory for the exported file (default is 'mgxs') + format : {'csv', 'hdf5', 'latex', 'pdf'} + The format for the exported data file + append : bool + If True (default), appends to an existing file if possible + """ if subdomains != 'all': cv.check_type('submdomains', subdomains, Iterable, Integral) @@ -423,35 +621,7 @@ class MultiGroupXS(object): if not os.path.exists(directory): os.makedirs(directory) - # FIXME: Use tally arithmetic!!! - - def print_pdf(self, subdomains='all', filename='multigroupxs', - directory='multigroupxs'): - - if subdomains != 'all': - cv.check_type('submdomains', subdomains, Iterable, Integral) - 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) - - filename = filename.replace(' ', '-') - - # Generate LaTeX file - self.exportResults(subdomains, filename, '.', 'latex', False) - - # Compile LaTeX to PDF - FNULL = open(os.devnull, 'w') - subprocess.check_call('pdflatex {0}.tex'.format(filename), - shell=True, stdout=FNULL) - - # Move PDF to requested directory and cleanup temporary LaTeX files - if directory != '.': - os.system('mv {0}.pdf {1}'.format(filename, directory)) - os.system('rm {0}.tex {0}.aux {0}.log'.format(filename)) - + # FIXME: Use pandas dataframes!! class TotalXS(MultiGroupXS): @@ -475,7 +645,7 @@ class TotalXS(MultiGroupXS): super(TotalXS, self)._create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs = self.tallies['total'] / self.tallies['flux'] + self.xs_tally = self.tallies['total'] / self.tallies['flux'] class TransportXS(MultiGroupXS): @@ -501,8 +671,8 @@ class TransportXS(MultiGroupXS): super(TransportXS, self)._create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs = self.tallies['total'] - self.tallies['scatter-1'] - self.xs /= self.tallies['flux'] + self.xs_tally = self.tallies['total'] - self.tallies['scatter-1'] + self.xs_tally /= self.tallies['flux'] class AbsorptionXS(MultiGroupXS): @@ -527,7 +697,7 @@ class AbsorptionXS(MultiGroupXS): super(AbsorptionXS, self)._create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs = self.tallies['absorption'] / self.tallies['flux'] + self.xs_tally = self.tallies['absorption'] / self.tallies['flux'] class CaptureXS(MultiGroupXS): @@ -552,8 +722,8 @@ class CaptureXS(MultiGroupXS): super(CaptureXS, self)._create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs = self.tallies['absorption'] - self.tallies['fission'] - self.xs /= self.tallies['flux'] + self.xs_tally = self.tallies['absorption'] - self.tallies['fission'] + self.xs_tally /= self.tallies['flux'] class FissionXS(MultiGroupXS): @@ -578,7 +748,7 @@ class FissionXS(MultiGroupXS): super(FissionXS, self)._create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs = self.tallies['fission'] / self.tallies['flux'] + self.xs_tally = self.tallies['fission'] / self.tallies['flux'] class NuFissionXS(MultiGroupXS): @@ -603,7 +773,7 @@ class NuFissionXS(MultiGroupXS): super(NuFissionXS, self)._create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs = self.tallies['nu-fission'] / self.tallies['flux'] + self.xs_tally = self.tallies['nu-fission'] / self.tallies['flux'] class ScatterXS(MultiGroupXS): @@ -628,7 +798,7 @@ class ScatterXS(MultiGroupXS): super(ScatterXS, self)._create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs = self.tallies['scatter'] / self.tallies['flux'] + self.xs_tally = self.tallies['scatter'] / self.tallies['flux'] class NuScatterXS(MultiGroupXS): @@ -653,7 +823,7 @@ class NuScatterXS(MultiGroupXS): super(NuScatterXS, self)._create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs = self.tallies['nu-scatter'] / self.tallies['flux'] + self.xs_tally = self.tallies['nu-scatter'] / self.tallies['flux'] class ScatterMatrixXS(MultiGroupXS): @@ -679,8 +849,8 @@ class ScatterMatrixXS(MultiGroupXS): super(ScatterMatrixXS, self)._create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs = self.tallies['scatter'] - self.tallies['scatter-1'] - self.xs /= self.tallies['flux'] + self.xs_tally = self.tallies['scatter'] - self.tallies['scatter-1'] + self.xs_tally /= self.tallies['flux'] def get_condensed_xs(self, coarse_groups): """This routine takes in a collection of 2-tuples of energy groups""" @@ -694,13 +864,13 @@ class ScatterMatrixXS(MultiGroupXS): num_coarse_groups = new_groups._num_groups def get_xs(self, in_groups='all', out_groups='all', - subdomains='all', metric='mean'): + subdomains='all', value='mean'): - if self.xs is None: + if self.xs_tally is None: msg = 'Unable to get cross-section since it has not been computed' raise ValueError(msg) - cv.check_value('metric', metric, ['mean', 'std. dev.', 'rel. err.']) + cv.check_value('value', value, ['mean', 'std. dev.', 'rel. err.']) if in_groups != 'all': cv.check_value('in groups', in_groups, Iterable, Integral) if out_groups != 'all': @@ -729,7 +899,7 @@ class ScatterMatrixXS(MultiGroupXS): '{3: <10}MeV]\n'.format('', group, bounds[0], bounds[1]) if subdomains == 'all': - subdomains = self._subdomain_offsets.keys() + subdomains = self._subdomain_indices.keys() for subdomain in subdomains: @@ -773,8 +943,8 @@ class NuScatterMatrixXS(ScatterMatrixXS): super(ScatterMatrixXS, self)._create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs = self.tallies['nu-scatter'] - self.tallies['scatter-1'] - self.xs /= self.tallies['flux'] + self.xs_tally = self.tallies['nu-scatter'] - self.tallies['scatter-1'] + self.xs_tally /= self.tallies['flux'] class Chi(MultiGroupXS): @@ -810,12 +980,12 @@ class Chi(MultiGroupXS): nu_fission_in[0, zero_indices['nu-fission-in']] = -1. # FIXME - uncertainty propagation - self._xs = infermc.error_prop.arithmetic.divide_by_scalar(nu_fission_out, + self._xs_tally = infermc.error_prop.arithmetic.divide_by_scalar(nu_fission_out, nu_fission_in.sum(2)[0, :, np.newaxis, ...], corr, False) # Compute the total across all groups per subdomain - norm = self._xs.sum(2)[0, :, np.newaxis, ...] + norm = self._xs_tally.sum(2)[0, :, np.newaxis, ...] # Set any zero norms (in non-fissionable domains) to -1 norm_indices = norm == 0. @@ -823,14 +993,14 @@ class Chi(MultiGroupXS): # Normalize chi to 1.0 # FIXME - uncertainty propagation - self._xs = infermc.error_prop.arithmetic.divide_by_scalar(self._xs, norm, + self._xs_tally = infermc.error_prop.arithmetic.divide_by_scalar(self._xs_tally, norm, corr, False) # For any region without flux or reaction rate, convert xs to zero - self._xs[:, norm_indices] = 0. + self._xs_tally[:, norm_indices] = 0. # FIXME - uncertainty propagation - this is just a temporary fix - self._xs[1, ...] = 0. + self._xs_tally[1, ...] = 0. # Correct -0.0 to +0.0 - self._xs += 0. \ No newline at end of file + self._xs_tally += 0. \ No newline at end of file From efb3c0488f0d6b08c6b75d517bf06fba6ac34ab1 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 6 Sep 2015 18:51:43 -0400 Subject: [PATCH 05/91] Implemented Tally.summation(...) routine --- openmc/mgxs/mgxs.py | 61 +++++++++++++------------- openmc/tallies.py | 103 ++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 126 insertions(+), 38 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c01c8438a..b2019a20a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -114,6 +114,7 @@ class MultiGroupXS(object): def __init__(self, domain=None, domain_type=None, energy_groups=None, name=''): + self._name = '' self._xs_type = None self._domain = None @@ -141,7 +142,7 @@ class MultiGroupXS(object): def __deepcopy__(self, memo): existing = memo.get(id(self)) - # If this is the first time we have tried to copy this object, create a copy + # If this is the first time we have tried to copy this object, copy it if existing is None: clone = type(self).__new__(type(self)) clone._name = self.name @@ -151,7 +152,7 @@ class MultiGroupXS(object): clone._energy_groups = copy.deepcopy(self.energy_groups, memo) clone._num_groups = self.num_groups clone._xs_tally = copy.deepcopy(self.xs_tally, memo) - clone._subdomain_offsets = copy.deepcopy(self.subdomain_indices, memo) + clone._subdomain_indices = copy.deepcopy(self.subdomain_indices, memo) clone._offset = copy.deepcopy(self.offset, memo) clone._tallies = dict() @@ -227,15 +228,15 @@ class MultiGroupXS(object): def _find_domain_offset(self): """Finds and stores the offset of the domain tally filter""" - tally = self.tallies[self.tallies.keys()[0]] + tally = self.tallies.values()[0] filter = tally.find_filter(self.domain_type, [self.domain.id]) self._offset = filter.offset - def set_subdomain_index(self, subdomain_id, offset): + def set_subdomain_index(self, subdomain_id, index): """Set the filter bin index for a subdomain of the domain. - This is primary useful when the domain type is 'distribcell', in which - case it can be useful to map each subdomain (a cell instance) to its + This is primarily useful when the domain type is 'distribcell', in + which case one may wish to map each subdomain (a cell instance) to its filter bin in the derived multi-group cross-section tally data array. Parameters @@ -248,10 +249,10 @@ class MultiGroupXS(object): """ cv.check_type('subdomain id', subdomain_id, Integral) - cv.check_type('subdomain offset', offset, Integral) + cv.check_type('subdomain offset', index, Integral) cv.check_greater_than('subdomain id', subdomain_id, 0, True) cv.check_greater_than('subdomain offset', subdomain_id, 0, True) - self._subdomain_indices[subdomain_id] = offset + self._subdomain_indices[subdomain_id] = index @abc.abstractmethod def _create_tallies(self, scores, all_filters, keys, estimator): @@ -274,8 +275,7 @@ class MultiGroupXS(object): """ cv.check_value('scores', scores, openmc.SCORE_TYPES) - # FIXME : Use @smharper's recursive iterable checker - # cv.check_type('filters', all_filters, openmc.Filter) + cv.check_iterable_type('filters', all_filters, openmc.Filter, 1, 2) cv.check_type('keys', keys, Iterable, basestring) cv.check_length('scores', scores, len(keys)) cv.check_value('estimator', estimator, ['analog', 'tracklength']) @@ -299,14 +299,17 @@ class MultiGroupXS(object): This method can be used to extract the indices into the multi-group cross-section tally data array for a subdomain (i.e., cell instance). + See also : get_subdomains + Parameters ---------- subdomains : Iterable of Integral or 'all' Subdomain IDs of interest Returns - indices : NumPy ndarray - Array of subdomain indices indexed in the order of the subdomains + ---------- + indices : ndarray + The subdomain indices indexed in the order of the subdomains Raises ------ @@ -319,8 +322,8 @@ class MultiGroupXS(object): cv.check_type('subdomains', subdomains, Iterable, Integral) if subdomains == 'all': - # FIXME: This isn't correct any more!! - # indices = np.arange(self.xs.shape[1]) + num_subdomains = len(self.subdomain_indices) + indices = np.arange(num_subdomains) else: indices = np.zeros(len(subdomains), dtype=np.int64) @@ -340,7 +343,7 @@ class MultiGroupXS(object): This method can be used to extract the subdomains for the multi-group cross-section from their indices in the tally data array. - See also : get_subdomain_offsets + See also : get_subdomain_indices Parameters ---------- @@ -348,7 +351,8 @@ class MultiGroupXS(object): Subdomain indices of interest Returns - subdomains : NumPy ndarray + ---------- + subdomains : ndarray Array of subdomain IDs indexed in the order of the indices Raises @@ -370,9 +374,9 @@ class MultiGroupXS(object): for i, index in enumerate(indices): if index in values: - subdomains[i] = keys[values.index(indices)] + subdomains[i] = keys[values.index(index)] else: - msg = 'Unable to get subdomain for offset "{0}" since it ' \ + msg = 'Unable to get subdomain for index "{0}" since it ' \ 'is not a valid index'.format(index) raise ValueError(msg) @@ -408,21 +412,20 @@ class MultiGroupXS(object): if self.xs_tally is None: msg = 'Unable to get cross-section since it has not been computed' raise ValueError(msg) - if groups != 'all': - cv.check_value('groups', groups, Iterable, Integral) - if subdomains != 'all': - cv.check_value('subdomains', subdomains, Iterable, Integral) filters = [] filter_bins = [] # Construct a collection of the domain filter bins - filters.append(self.domain_type) - filter_bins.append(subdomains) + if subdomains != 'all': + cv.check_value('subdomains', subdomains, Iterable, Integral) + filters.append(self.domain_type) + filter_bins.append(tuple(subdomains)) - # Construct a collection of the energy group filter bins - filters.append('energy') - filter_bins.append(self.energy_groups.get_group_bounds(groups)) + if groups != 'all': + cv.check_value('groups', groups, Iterable, Integral) + filters.append('energy') + filter_bins.append(self.energy_groups.get_group_bounds(groups)) # Query the multi-group cross-section tally for the data xs = self.xs_tally.get_values(filters=filters, @@ -465,9 +468,9 @@ class MultiGroupXS(object): for key, old_tally in avg_xs.tallies.items(): # FIXME: Need to create Tally.mean(...) slice_tally = old_tally.slice(filters=[avg_xs.domain_type], - filter_bins=subdomains) + filter_bins=[tuple(subdomains)]) avg_tally = slice_tally.mean(filters=[avg_xs.domain_type], - filter_bins=subdomains) + filter_bins=[tuple(subdomains)]) avg_xs.tallies[key] = avg_tally avg_xs.compute_xs() diff --git a/openmc/tallies.py b/openmc/tallies.py index 003acd943..1140e18c8 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3,6 +3,8 @@ import copy import os import pickle import itertools +import functools +from operator import mul from numbers import Integral, Real from xml.etree import ElementTree as ET import sys @@ -1677,8 +1679,8 @@ class Tally(object): new_tally._derived = True new_tally.with_batch_statistics = True new_tally.name = self.name - new_tally._mean = self._mean + other - new_tally._std_dev = self._std_dev + new_tally._mean = self.mean + other + new_tally._std_dev = self.std_dev new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations @@ -1746,8 +1748,8 @@ class Tally(object): new_tally = Tally(name='derived') new_tally._derived = True new_tally.name = self.name - new_tally._mean = self._mean - other - new_tally._std_dev = self._std_dev + new_tally._mean = self.mean - other + new_tally._std_dev = self.std_dev new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations @@ -1816,8 +1818,8 @@ class Tally(object): new_tally = Tally(name='derived') new_tally._derived = True new_tally.name = self.name - new_tally._mean = self._mean * other - new_tally._std_dev = self._std_dev * np.abs(other) + new_tally._mean = self.mean * other + new_tally._std_dev = self.std_dev * np.abs(other) new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations @@ -1886,8 +1888,8 @@ class Tally(object): new_tally = Tally(name='derived') new_tally._derived = True new_tally.name = self.name - new_tally._mean = self._mean / other - new_tally._std_dev = self._std_dev * np.abs(1. / other) + new_tally._mean = self.mean / other + new_tally._std_dev = self.std_dev * np.abs(1. / other) new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations @@ -2085,7 +2087,7 @@ class Tally(object): """Build a sliced tally for the specified filters, scores and nuclides. This method constructs a new tally to encapsulate a subset of the data - represented by this tally. The subset of data to included in the tally + represented by this tally. The subset of data to include in the tally slice is determined by the scores, filters and nuclides specified in the input parameters. @@ -2200,6 +2202,89 @@ class Tally(object): return new_tally + def summation(self, scores=[], filters=[], filter_bins=[], nuclides=[]): + """Build a sliced tally for the specified filters, scores and nuclides. + + This method constructs a new tally to encapsulate a subset of the data + represented by this tally. The subset of data to include in the tally + slice is determined by the scores, filters and nuclides specified in + the input parameters. + + Parameters + ---------- + scores : list + A list of one or more score strings to sum across + (e.g., ['absorption', 'nu-fission']; default is []) + + filters : list + A list of filter type strings to sum across + (e.g., ['mesh', 'energy']; default is []) + + filter_bins : list of Iterables + A list of the filter bins corresponding to the filter_types + parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin + in the list is the integer ID for 'material', 'surface', 'cell', + 'cellborn', and 'universe' Filters. Each bin is an integer for the + cell instance ID for 'distribcell Filters. Each bin is a 2-tuple of + floats for 'energy' and 'energyout' filters corresponding to the + energy boundaries of the bin of interest. The bin is a (x,y,z) + 3-tuple for 'mesh' filters corresponding to the mesh cell of + interest. The order of the bins in the list must correspond of the + filter_types parameter. + + nuclides : list + A list of nuclide name strings to sum across + (e.g., ['U-235', 'U-238']; default is []) + + Returns + ------- + Tally + A new tally which encapsulates the sum of data requested. + + """ + + # If user did not specify any scores, do not sum across scores + if len(scores) == 0: + scores = [[]] + # Sum across any scores specified by the user + else: + scores = [[score] for score in scores] + + # If user did not specify any nuclides, do not sum across nuclides + if len(nuclides) == 0: + nuclides = [[]] + # Sum across any nuclides specified by the user + else: + nuclides = [[nuclide] for nuclide in nuclides] + + # If user did not specify any filter bins, do not sum across filter bins + if len(filters) == 0: + filter_bins = [[]] + filters = [[]] + # Sum across any filter bins specified by the user + else: + filter_bins = list(itertools.product(*filter_bins)) + filter_bins = [list(filter_bin) for filter_bin in filter_bins] + filters = [filters] + + # Initialize Tally sum + tally_sum = 0 + + # Iterate over all Tally slice operands in summation + prod = [scores, filters, filter_bins, nuclides] + for scores, filters, filter_bins, nuclides in itertools.product(*prod): + tally_slice = self.get_slice(scores, filters, filter_bins, nuclides) + + # Remove filters summed across to avoid bulky CrossFilters + for filter in reversed(tally_slice.filters): + if filter.type in filters: + tally_slice.remove_filter(filter) + + # Accumulate this Tally slice into the Tally sum + tally_sum += tally_slice + + return tally_sum + class TalliesFile(object): """Tallies file used for an OpenMC simulation. Corresponds directly to the From 1d9af02f854208cc6c3679d05713dd71852b44fa Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 6 Sep 2015 19:45:12 -0400 Subject: [PATCH 06/91] Fixed num score bins update in Tally.get_slice(...) routine. Need to cleanup filter reset in Tally.summation(...) --- openmc/tallies.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 1140e18c8..d52a10dc7 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1516,7 +1516,6 @@ class Tally(object): new_tally.with_summary = self.with_summary if self.num_realizations == other.num_realizations: new_tally.num_realizations = self.num_realizations - new_tally.num_score_bins = self.num_score_bins * other.num_score_bins # Generate filter "outer products" if self.filters == other.filters: @@ -1530,9 +1529,11 @@ class Tally(object): # Generate score "outer products" if self.scores == other.scores: + new_tally.num_score_bins = self.num_score_bins for self_score in self.scores: new_tally.add_score(self_score) else: + new_tally.num_score_bins = self.num_score_bins * other.num_score_bins all_scores = [self.scores, other.scores] for self_score, other_score in itertools.product(*all_scores): new_score = CrossScore(self_score, other_score, binary_op) @@ -2189,10 +2190,15 @@ class Tally(object): for filter_bin in filter_bins[i]: bin_index = filter.get_bin_index(filter_bin) - bin_indices.append(bin_index) + if filter_type in ['energy', 'energyout']: + bin_indices.append(bin_index) + bin_indices.append(bin_index+1) + else: + bin_indices.append(bin_index) new_bins = filter.bins[bin_indices] filter.bins = new_bins + filter.num_bins = len(filter_bins[i]) # Correct each Filter's stride stride = new_tally.num_nuclides * new_tally.num_score_bins @@ -2276,13 +2282,19 @@ class Tally(object): tally_slice = self.get_slice(scores, filters, filter_bins, nuclides) # Remove filters summed across to avoid bulky CrossFilters + removed_filters = [] for filter in reversed(tally_slice.filters): if filter.type in filters: tally_slice.remove_filter(filter) + removed_filters.append(filter) # Accumulate this Tally slice into the Tally sum tally_sum += tally_slice + # FIXME: test if this works for filter + for filter in removed_filters: + tally_sum.add_filter(filter) + return tally_sum From 05b34977a638c43f489ef2383c21fa416bfe8466 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 7 Sep 2015 15:45:20 -0400 Subject: [PATCH 07/91] Refactored pandas dataframe construction into Filter and CrossFilter class abstractions --- openmc/cross.py | 72 +++++++---- openmc/filter.py | 300 ++++++++++++++++++++++++++++++++++++++++++++-- openmc/tallies.py | 245 ++++--------------------------------- 3 files changed, 364 insertions(+), 253 deletions(-) diff --git a/openmc/cross.py b/openmc/cross.py index 735bb4cd2..05ca0f9b6 100644 --- a/openmc/cross.py +++ b/openmc/cross.py @@ -279,26 +279,6 @@ class CrossFilter(object): def __eq__(self, other): return str(other) == str(self) - def split_filters(self): - - split_filters = [] - - # If left Filter is not a CrossFilter, simply append to list - if isinstance(self.left_filter, Filter): - split_filters.append(self.left_filter) - # Recursively descend CrossFilter tree to collect all Filters - else: - split_filters.extend(self.left_filter.split_filters()) - - # If right Filter is not a CrossFilter, simply append to list - if isinstance(self.right_filter, Filter): - split_filters.append(self.right_filter) - # Recursively descend CrossFilter tree to collect all Filters - else: - split_filters.extend(self.right_filter.split_filters()) - - return split_filters - def get_bin_index(self, filter_bin): """Returns the index in the CrossFilter for some bin. @@ -326,6 +306,58 @@ class CrossFilter(object): filter_index = left_index * self.right_filter.num_bins + right_index return filter_index + def get_pandas_dataframe(self, datasize, summary=None): + """Builds a Pandas DataFrame for the CrossFilter's bins. + + This method constructs a Pandas DataFrame object for the CrossFilter + with columns annotated by filter bin information. This is a helper + method for the Tally.get_pandas_dataframe(...) routine. This method + recursively builds and concatenates the Pandas DataFrames for left + and right filters and crossfilters. + + 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 + uses the Multi-index Pandas feature. + + Parameters + ---------- + data_size : Integral + The total number of bins in the tally corresponding to this filter + + summary : None or 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 with columns of strings that characterize the + crossfilter's bins. Each entry in the DataFrame will include the one + or more binary operations used to construct the crossfilter's bins. + The number of rows in the DataFrame is the same as the total number + of bins in the corresponding tally, with the filter bin + appropriately tiled to map to the corresponding tally bins. + + See also + -------- + Tally.get_pandas_dataframe(), Filter.get_pandas_dataframe() + + """ + + # If left and right filters are identical, do not combine bins + if self.left_filter == self.right_filter: + df = self.left_filter.get_pandas_dataframe(datasize, summary) + # If left and right filters are different, combine their bins + else: + df = '(' + self.left_filter.get_pandas_dataframe(datasize, summary) + df += ' ' + self.binary_op + ' ' + df += self.right_filter.get_pandas_dataframe(datasize, summary) + ')' + + return df + def __repr__(self): string = 'CrossFilter\n' diff --git a/openmc/filter.py b/openmc/filter.py index 5a8190676..c24684039 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -5,9 +5,10 @@ from numbers import Real, Integral import numpy as np from openmc import Mesh +from openmc.summary import Summary from openmc.constants import * -from openmc.checkvalue import check_type, check_iterable_type, \ - check_greater_than +import openmc.checkvalue as cv + class Filter(object): """A filter used to constrain a tally to a specific criterion, e.g. only tally @@ -135,9 +136,9 @@ class Filter(object): if self.type in ['cell', 'cellborn', 'surface', 'material', 'universe', 'distribcell']: - check_iterable_type('filter bins', bins, Integral) + cv.check_iterable_type('filter bins', bins, Integral) for edge in bins: - check_greater_than('filter bin', edge, 0, equality=True) + cv.check_greater_than('filter bin', edge, 0, equality=True) elif self._type in ['energy', 'energyout']: for edge in bins: @@ -180,13 +181,13 @@ class Filter(object): # FIXME @num_bins.setter def num_bins(self, num_bins): - check_type('filter num_bins', num_bins, Integral) - check_greater_than('filter num_bins', num_bins, 0, equality=True) + cv.check_type('filter num_bins', num_bins, Integral) + cv.check_greater_than('filter num_bins', num_bins, 0, equality=True) self._num_bins = num_bins @mesh.setter def mesh(self, mesh): - check_type('filter mesh', mesh, Mesh) + cv.check_type('filter mesh', mesh, Mesh) self._mesh = mesh self.type = 'mesh' @@ -194,12 +195,12 @@ class Filter(object): @offset.setter def offset(self, offset): - check_type('filter offset', offset, Integral) + cv.check_type('filter offset', offset, Integral) self._offset = offset @stride.setter def stride(self, stride): - check_type('filter stride', stride, Integral) + cv.check_type('filter stride', stride, Integral) if stride < 0: msg = 'Unable to set stride "{0}" for a "{1}" Filter since it ' \ 'is a negative value'.format(stride, self.type) @@ -334,6 +335,287 @@ class Filter(object): return filter_index + def get_pandas_dataframe(self, data_size, summary=None): + """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(...) routine. + + 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 + uses the Multi-index Pandas feature. + + + Parameters + ---------- + data_size : Integral + The total number of bins in the tally corresponding to this filter + + summary : None or 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 with columns of strings that characterize the + filter's bins. The number of rows in the DataFrame is the same as + the total number of bins in the corresponding tally, with the filter + bin appropriately tiled to map to the corresponding tally bins. + + For 'cell', 'cellborn', 'surface', 'material', and 'universe' + filters, the DataFrame includes a single column with the cell, + surface, material or universe ID corresponding to each filter bin. + + For 'mesh' filters, the DataFrame includes three columns for the + x,y,z mesh cell indices corresponding to each filter bin. + + For 'energy' and 'energyout' filters, the DataFrame include a single + column with each element comprising a string with the lower, upper + energy bounds for each filter bin. + + For 'distribcell' filters, the DataFrame either includes: + 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) + + Raises + ------ + ImportError + When Pandas cannot is not installed, or summary info is requested + but OpenCG is not installed. + + See also + -------- + Tally.get_pandas_dataframe(), CrossFilter.get_pandas_dataframe() + + """ + + # Attempt to import the pandas package + try: + import pandas as pd + except ImportError: + msg = 'The pandas Python package must be installed on your system' + raise ImportError(msg) + + df = pd.DataFrame() + + # mesh filters + if self.type == 'mesh': + + # Initialize dictionary to build Pandas Multi-index column + filter_dict = {} + + # Append Mesh ID as outermost index of mult-index + mesh_key = 'mesh {0}'.format(self.mesh.id) + + # Find mesh dimensions - use 3D indices for simplicity + if (len(self.mesh.dimension) == 3): + nx, ny, nz = self.mesh.dimension + else: + nx, ny = self.mesh.dimension + nz = 1 + + # Generate multi-index sub-column for x-axis + filter_bins = np.arange(1, nx+1) + repeat_factor = ny * nz * self.stride + filter_bins = np.repeat(filter_bins, repeat_factor) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_dict[(mesh_key, 'x')] = filter_bins + + # Generate multi-index sub-column for y-axis + filter_bins = np.arange(1, ny+1) + repeat_factor = nz * self.stride + filter_bins = np.repeat(filter_bins, repeat_factor) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_dict[(mesh_key, 'y')] = filter_bins + + # Generate multi-index sub-column for z-axis + filter_bins = np.arange(1, nz+1) + repeat_factor = self.stride + filter_bins = np.repeat(filter_bins, repeat_factor) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_dict[(mesh_key, 'z')] = filter_bins + + # Initialize a Pandas DataFrame from the mesh dictionary + df = pd.concat([df, pd.DataFrame(filter_dict)]) + + # distribcell filters + 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 and extract the OpenCG geometry the Summary + summary.make_opencg_geometry() + opencg_geometry = summary.opencg_geometry + openmc_geometry = summary.openmc_geometry + + # Use OpenCG to compute the number of regions + opencg_geometry.initializeCellOffsets() + num_regions = opencg_geometry._num_regions + + # Initialize a dictionary mapping OpenMC distribcell + # 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): + coords = opencg_geometry.findRegion(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_offset(path, self.offset) + 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 + levels_remain = True + counter = 0 + + # Iterate over each level in the CSG tree hierarchy + while levels_remain: + levels_remain = False + + # Initialize dictionary to build Pandas Multi-index + # column for this level in the CSG tree hierarchy + level_dict = {} + + # 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') + + # 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 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 + + # Iterate over all regions (distribcell instances) + for offset in range(num_offsets): + coords = offsets_to_coords[offset] + + # 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 + else: + 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._lat_y + level_dict[lat_z_key][offset] = coords._lat_z + + # 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 + + # Tile the Multi-index columns + for level_key, level_bins in level_dict.items(): + level_bins = np.repeat(level_bins, self.stride) + tile_factor = data_size / len(level_bins) + level_bins = np.tile(level_bins, tile_factor) + level_dict[level_key] = level_bins + + # Initialize a Pandas DataFrame from the level dictionary + if level_df is None: + level_df = pd.DataFrame(level_dict) + else: + level_df = pd.concat([level_df, pd.DataFrame(level_dict)], axis=1) + + # Create DataFrame column for distribcell instances IDs + # NOTE: This is performed regardless of whether the user + # requests Summary geometric information + filter_bins = np.arange(self.num_bins) + filter_bins = np.repeat(filter_bins, self.stride) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_bins = filter_bins + if level_df is None: + df = pd.DataFrame({self.type :filter_bins}) + else: + level_df = level_df.dropna(axis=1, how='all') + level_df = level_df.astype(np.int) + df = pd.concat([level_df, pd.DataFrame({self.type :filter_bins})], axis=1) + + # energy, energyout filters + elif 'energy' in self.type: + bins = self.bins + num_bins = self.num_bins + + # Create strings for + template = '({0:.1e} - {1:.1e})' + filter_bins = [] + for i in range(num_bins): + filter_bins.append(template.format(bins[i], bins[i+1])) + + # Tile the energy bins into a DataFrame column + filter_bins = np.repeat(filter_bins, self.stride) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_bins = filter_bins + df = pd.concat([df, pd.DataFrame({self.type + ' [MeV]' : filter_bins})]) + + # universe, material, surface, cell, and cellborn filters + else: + filter_bins = np.repeat(self.bins, self.stride) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_bins = filter_bins + df = pd.concat([df, pd.DataFrame({self.type :filter_bins})]) + + df = df.astype(np.str) + return df + def __repr__(self): string = 'Filter\n' string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', self.type) diff --git a/openmc/tallies.py b/openmc/tallies.py index d52a10dc7..57fa911b2 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1,10 +1,8 @@ -from collections import Iterable +from collections import Iterable, defaultdict import copy import os import pickle import itertools -import functools -from operator import mul from numbers import Integral, Real from xml.etree import ElementTree as ET import sys @@ -976,9 +974,10 @@ class Tally(object): This method constructs a Pandas DataFrame object for the Tally data with columns annotated by filter, nuclide and score bin information. - This capability has been tested for Pandas >=v0.13.1. However, if - possible, it is recommended to use the v0.16 or newer versions of - Pandas since this this method uses the Multi-index Pandas feature. + + 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 + uses the Multi-index Pandas feature. Parameters ---------- @@ -1010,6 +1009,8 @@ class Tally(object): KeyError When this method is called before the Tally is populated with data by the StatePoint.read_results() method. + ImportError + When Pandas can not be found on the caller's system """ @@ -1041,224 +1042,14 @@ class Tally(object): # Find the total length of the tally data array data_size = self.mean.size - # Split CrossFilters into separate filters - split_filters = [] - for filter in self.filters: - if isinstance(filter, CrossFilter): - split_filters.extend(filter.split_filters()) - else: - split_filters.append(filter) - # Build DataFrame columns for filters if user requested them if filters: - for filter in split_filters: + # Append each Filter's DataFRame to the overall DataFrame + for filter in self.filters: + filter_df = filter.get_pandas_dataframe(data_size, summary) - # mesh filters - if filter.type == 'mesh': - - # Initialize dictionary to build Pandas Multi-index column - filter_dict = {} - - # Append Mesh ID as outermost index of mult-index - mesh_id = filter.mesh.id - mesh_key = 'mesh {0}'.format(mesh_id) - - # Find mesh dimensions - use 3D indices for simplicity - if (len(filter.mesh.dimension) == 3): - nx, ny, nz = filter.mesh.dimension - else: - nx, ny = filter.mesh.dimension - nz = 1 - - # Generate multi-index sub-column for x-axis - filter_bins = np.arange(1, nx+1) - repeat_factor = ny * nz * filter.stride - filter_bins = np.repeat(filter_bins, repeat_factor) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - filter_dict[(mesh_key, 'x')] = filter_bins - - # Generate multi-index sub-column for y-axis - filter_bins = np.arange(1, ny+1) - repeat_factor = nz * filter.stride - filter_bins = np.repeat(filter_bins, repeat_factor) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - filter_dict[(mesh_key, 'y')] = filter_bins - - # Generate multi-index sub-column for z-axis - filter_bins = np.arange(1, nz+1) - repeat_factor = filter.stride - filter_bins = np.repeat(filter_bins, repeat_factor) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - filter_dict[(mesh_key, 'z')] = filter_bins - - # Append the multi-index column to the DataFrame - df = pd.concat([df, pd.DataFrame(filter_dict)], axis=1) - - # distribcell filters - elif filter.type == 'distribcell': - 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 and extract the OpenCG geometry the Summary - summary.make_opencg_geometry() - opencg_geometry = summary.opencg_geometry - openmc_geometry = summary.openmc_geometry - - # Use OpenCG to compute the number of regions - opencg_geometry.initializeCellOffsets() - num_regions = opencg_geometry._num_regions - - # Initialize a dictionary mapping OpenMC distribcell - # 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): - coords = opencg_geometry.findRegion(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 == filter.bins[0]: - offset = openmc_geometry.get_offset(path, - filter.offset) - 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 - levels_remain = True - counter = 0 - - # Iterate over each level in the CSG tree hierarchy - while levels_remain: - levels_remain = False - - # Initialize dictionary to build Pandas Multi-index - # column for this level in the CSG tree hierarchy - level_dict = {} - - # 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') - - # 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 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 - - # Iterate over all regions (distribcell instances) - for offset in range(num_offsets): - coords = offsets_to_coords[offset] - - # 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': - univ_id = coords._universe._id - cell_id = coords._cell._id - level_dict[univ_key][offset] = univ_id - level_dict[cell_key][offset] = cell_id - - # Assign entry to Lattice Multi-index column - else: - lat_id = coords._lattice._id - lat_x = coords._lat_x - lat_y = coords._lat_y - lat_z = coords._lat_z - level_dict[lat_id_key][offset] = lat_id - level_dict[lat_x_key][offset] = lat_x - level_dict[lat_y_key][offset] = lat_y - level_dict[lat_z_key][offset] = lat_z - - # 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 - - # Tile the Multi-index columns - for level_key, level_bins in level_dict.items(): - level_bins = \ - np.repeat(level_bins, filter.stride) - tile_factor = data_size / len(level_bins) - level_bins = np.tile(level_bins, tile_factor) - level_dict[level_key] = level_bins - - # Append the multi-index column to the DataFrame - df = pd.concat([df, pd.DataFrame(level_dict)], - axis=1) - - # Create DataFrame column for distribcell instances IDs - # NOTE: This is performed regardless of whether the user - # requests Summary geomeric information - filter_bins = np.arange(filter.num_bins) - filter_bins = np.repeat(filter_bins, filter.stride) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - df[filter.type] = filter_bins - - # energy, energyout filters - elif 'energy' in filter.type: - bins = filter.bins - num_bins = filter.num_bins - - # Create strings for - template = '{0:.1e} - {1:.1e}' - filter_bins = [] - for i in range(num_bins): - filter_bins.append(template.format(bins[i], bins[i+1])) - - # Tile the energy bins into a DataFrame column - filter_bins = np.repeat(filter_bins, filter.stride) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - df[filter.type + ' [MeV]'] = filter_bins - - # universe, material, surface, cell, and cellborn filters - else: - filter_bins = np.repeat(filter.bins, filter.stride) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - df[filter.type] = filter_bins + df = pd.concat([df, filter_df], axis=1) # Include DataFrame column for nuclides if user requested it if nuclides: @@ -2278,22 +2069,28 @@ class Tally(object): # Iterate over all Tally slice operands in summation prod = [scores, filters, filter_bins, nuclides] + summed_filters = defaultdict(list) for scores, filters, filter_bins, nuclides in itertools.product(*prod): tally_slice = self.get_slice(scores, filters, filter_bins, nuclides) # Remove filters summed across to avoid bulky CrossFilters - removed_filters = [] for filter in reversed(tally_slice.filters): if filter.type in filters: tally_slice.remove_filter(filter) - removed_filters.append(filter) + summed_filters[filter.type].append(filter) # Accumulate this Tally slice into the Tally sum tally_sum += tally_slice # FIXME: test if this works for filter - for filter in removed_filters: - tally_sum.add_filter(filter) + for filter_type in summed_filters: + filters = summed_filters[filter_type] + for i in range(1, len(filters)): + filters[i] = CrossFilter(filters[i-1], filters[i], '+') + tally_sum.add_filter(filters[-1]) + +# for filter in removed_filters: +# tally_sum.add_filter(filter) return tally_sum From 13b3632c311d90bd141d504cfc7c5068022ad53c Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 8 Sep 2015 00:13:23 -0400 Subject: [PATCH 08/91] Fixed Pandas MultiIndex for refactored Filter.get_pandas_dataframe(...) routine --- openmc/cross.py | 8 +++++--- openmc/filter.py | 11 +++++------ openmc/tallies.py | 23 ++++++++++++++++++++++- 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/openmc/cross.py b/openmc/cross.py index 05ca0f9b6..51b579553 100644 --- a/openmc/cross.py +++ b/openmc/cross.py @@ -352,9 +352,11 @@ class CrossFilter(object): df = self.left_filter.get_pandas_dataframe(datasize, summary) # If left and right filters are different, combine their bins else: - df = '(' + self.left_filter.get_pandas_dataframe(datasize, summary) - df += ' ' + self.binary_op + ' ' - df += self.right_filter.get_pandas_dataframe(datasize, summary) + ')' + left_df = self.left_filter.get_pandas_dataframe(datasize, summary) + right_df = self.right_filter.get_pandas_dataframe(datasize, summary) + left_df = left_df.astype(str) + right_df = right_df.astype(str) + df = '(' + left_df + ' ' + self.binary_op + ' ' + right_df + ')' return df diff --git a/openmc/filter.py b/openmc/filter.py index c24684039..35cbd1dc5 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -566,11 +566,11 @@ class Filter(object): level_bins = np.tile(level_bins, tile_factor) level_dict[level_key] = level_bins - # Initialize a Pandas DataFrame from the level dictionary - if level_df is None: - level_df = pd.DataFrame(level_dict) - else: - level_df = pd.concat([level_df, pd.DataFrame(level_dict)], axis=1) + # Initialize a Pandas DataFrame from the level dictionary + if level_df is None: + level_df = pd.DataFrame(level_dict) + else: + level_df = pd.concat([level_df, pd.DataFrame(level_dict)], axis=1) # Create DataFrame column for distribcell instances IDs # NOTE: This is performed regardless of whether the user @@ -613,7 +613,6 @@ class Filter(object): filter_bins = filter_bins df = pd.concat([df, pd.DataFrame({self.type :filter_bins})]) - df = df.astype(np.str) return df def __repr__(self): diff --git a/openmc/tallies.py b/openmc/tallies.py index 57fa911b2..9d5f4dc00 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1076,8 +1076,29 @@ class Tally(object): df['mean'] = self.mean.ravel() df['std. dev.'] = self.std_dev.ravel() - df.index.name = 'bin' df = df.dropna(axis=1) + + # Expand the columns into Pandas MultiIndices for readability + if pd.__version__ >= '0.16': + columns = copy.deepcopy(df.columns.values) + + # Convert all elements in columns list to tuples + for i, column in enumerate(columns): + if not isinstance(column, tuple): + columns[i] = (column,) + + # Make each tuple the same length + max_len_column = len(max(columns, key=len)) + for i, column in enumerate(columns): + delta_len = max_len_column - len(column) + if delta_len > 0: + new_column = list(column) + new_column.extend(['']*delta_len) + columns[i] = tuple(new_column) + + # Create and set a MultiIndex for the DataFrame's columns + df.columns = pd.MultiIndex.from_tuples(columns) + return df def export_results(self, filename='tally-results', directory='.', From 9ebc5d6793ca24b732e47afd3a14d6f0100de457 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 9 Sep 2015 19:32:26 -0400 Subject: [PATCH 09/91] Major updates to mgxs.py with preliminary testing. Scattering matrices not yet working --- openmc/mgxs/__init__.py | 3 +- openmc/mgxs/groups.py | 25 +- openmc/mgxs/mgxs.py | 623 ++++++++++++++++++++++++++++------------ openmc/statepoint.py | 6 + openmc/summary.py | 2 +- openmc/tallies.py | 18 +- 6 files changed, 472 insertions(+), 205 deletions(-) diff --git a/openmc/mgxs/__init__.py b/openmc/mgxs/__init__.py index 4f5c1ea12..b6f928b09 100644 --- a/openmc/mgxs/__init__.py +++ b/openmc/mgxs/__init__.py @@ -1 +1,2 @@ -from groups import EnergyGroups \ No newline at end of file +from groups import EnergyGroups +from mgxs import * \ No newline at end of file diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index 061f1c61a..be1ffd162 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -11,6 +11,7 @@ import openmc.checkvalue as cv if sys.version_info[0] >= 3: basestring = str + class EnergyGroups(object): """An energy groups structure used for multi-group cross-sections. @@ -37,10 +38,10 @@ class EnergyGroups(object): def __deepcopy__(self, memo): existing = memo.get(id(self)) - # If this is the first time we have tried to copy this object, create a copy + # If this is the first time we have tried to copy object, create copy if existing is None: clone = type(self).__new__(type(self)) - clone.group_edges = copy.deepcopy(self._group_edges, memo) + clone.group_edges = copy.deepcopy(self.group_edges, memo) memo[id(self)] = clone @@ -60,18 +61,18 @@ class EnergyGroups(object): @group_edges.setter def group_edges(self, edges): - cv.check_type('group edges', edges, Iterable, Integral) - cv.check_length('number of group edges', edges, 2) + cv.check_type('group edges', edges, Iterable, Real) + cv.check_greater_than('number of group edges', len(edges), 1) self._group_edges = np.array(edges) self._num_groups = len(edges)-1 def __eq__(self, other): if not isinstance(other, EnergyGroups): return False - elif self._group_edges != other._group_edges: + elif self.group_edges != other.group_edges: return False - def generate_bin_edges(self, start, stop, num_groups, type='linear'): + def generate_bin_edges(self, start, stop, num_groups, spacing='linear'): """Generate equally or logarithmically-spaced energy group boundaries. Parameters @@ -82,7 +83,7 @@ class EnergyGroups(object): The highest energy in MeV num_groups : Integral The number of energy groups - type : str + spacing : str The spacing between groups ('linear' or 'logarithmic') """ @@ -90,15 +91,15 @@ class EnergyGroups(object): cv.check_type('first edge', start, Real) cv.check_type('last edge', stop, Real) cv.check_type('number of groups', num_groups, Integral) - cv.check_type('type', type, basestring) + cv.check_type('spacing', spacing, basestring) cv.check_greater_than('first edge', start, 0, True) cv.check_greater_than('first edge', stop, start, False) cv.check_greater_than('number of groups', num_groups, 0) - cv.check_value('type', type, ('linear', 'logarithmic')) + cv.check_value('spacing', spacing, ('linear', 'logarithmic')) - if type == 'linear': + if spacing == 'linear': self.group_edges = np.linspace(start, stop, num_groups+1) - elif type == 'logarithmic': + elif spacing == 'logarithmic': self.group_edges = \ np.logspace(np.log10(start), np.log10(stop), num_groups+1) @@ -160,7 +161,7 @@ class EnergyGroups(object): lower = self.group_edges[self.num_groups-group] upper = self.group_edges[self.num_groups-group+1] - return (lower, upper) + return lower, upper def get_group_indices(self, groups='all'): """Returns the array indices for one or more energy groups. diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b2019a20a..78c8cbb57 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5,7 +5,6 @@ import sys import copy import abc import pickle -import subprocess import numpy as np @@ -19,7 +18,7 @@ if sys.version_info[0] >= 3: # Supported cross-section types -XS_TYPES = ['total', +XS_TYPES = ('total', 'transport', 'absorption', 'capture', @@ -29,20 +28,20 @@ XS_TYPES = ['total', 'nu-scatter matrix', 'fission', 'nu-fission', - 'chi'] + 'chi') # Supported domain types -DOMAIN_TYPES = ['cell', +DOMAIN_TYPES = ('cell', 'distribcell', 'universe', 'material', - 'mesh'] + 'mesh') # Supported domain objects -DOMAINS = [openmc.Cell, +DOMAINS = (openmc.Cell, openmc.Universe, openmc.Material, - openmc.Mesh] + openmc.Mesh) # LaTeX Greek symbols for each cross-section type GREEK = dict() @@ -132,11 +131,11 @@ class MultiGroupXS(object): self._offset = None self.name = name - if not domain_type is None: + if domain_type is not None: self.domain_type = domain_type - if not domain is None: + if domain is not None: self.domain = domain - if not energy_groups is None: + if energy_groups is not None: self.energy_groups = energy_groups def __deepcopy__(self, memo): @@ -151,8 +150,9 @@ class MultiGroupXS(object): clone._domain_type = self.domain_type clone._energy_groups = copy.deepcopy(self.energy_groups, memo) clone._num_groups = self.num_groups - clone._xs_tally = copy.deepcopy(self.xs_tally, memo) - clone._subdomain_indices = copy.deepcopy(self.subdomain_indices, memo) + clone._xs_tally = copy.deepcopy(self._xs_tally, memo) + clone._subdomain_indices = \ + copy.deepcopy(self.subdomain_indices, memo) clone._offset = copy.deepcopy(self.offset, memo) clone._tallies = dict() @@ -217,14 +217,14 @@ class MultiGroupXS(object): @domain_type.setter def domain_type(self, domain_type): - cv.check_type('domain type', domain_type, DOMAIN_TYPES) + cv.check_value('domain type', domain_type, DOMAIN_TYPES) self._domain_type = domain_type @energy_groups.setter def energy_groups(self, energy_groups): cv.check_type('energy groups', energy_groups, openmc.mgxs.EnergyGroups) self._energy_groups = energy_groups - self._num_groups = energy_groups._num_groups + self._num_groups = energy_groups.num_groups def _find_domain_offset(self): """Finds and stores the offset of the domain tally filter""" @@ -255,7 +255,7 @@ class MultiGroupXS(object): self._subdomain_indices[subdomain_id] = index @abc.abstractmethod - def _create_tallies(self, scores, all_filters, keys, estimator): + 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 MultiGroupXS subclasses to create tallies @@ -274,7 +274,7 @@ class MultiGroupXS(object): """ - cv.check_value('scores', scores, openmc.SCORE_TYPES) + cv.check_iterable_type('scores', scores, basestring) cv.check_iterable_type('filters', all_filters, openmc.Filter, 1, 2) cv.check_type('keys', keys, Iterable, basestring) cv.check_length('scores', scores, len(keys)) @@ -383,7 +383,10 @@ class MultiGroupXS(object): return subdomains def get_xs(self, groups='all', subdomains='all', value='mean'): - """ + """Returns an array of multi-group cross-sections. + + This method constructs a 2D NumPy array for the requested multi-group + cross-section data data for one or more energy groups and subdomains. Parameters ---------- @@ -409,7 +412,7 @@ class MultiGroupXS(object): """ - if self.xs_tally is None: + if self._xs_tally is None: msg = 'Unable to get cross-section since it has not been computed' raise ValueError(msg) @@ -418,26 +421,30 @@ class MultiGroupXS(object): # Construct a collection of the domain filter bins if subdomains != 'all': - cv.check_value('subdomains', subdomains, Iterable, Integral) + cv.check_iterable_type('subdomains', subdomains, Integral) filters.append(self.domain_type) filter_bins.append(tuple(subdomains)) + # Construct list of energy group bounds tuples for all requested groups if groups != 'all': - cv.check_value('groups', groups, Iterable, Integral) + cv.check_iterable_type('groups', groups, Integral) filters.append('energy') - filter_bins.append(self.energy_groups.get_group_bounds(groups)) + for group in groups: + filter_bins.append(self.energy_groups.get_group_bounds(group)) # Query the multi-group cross-section tally for the data - xs = self.xs_tally.get_values(filters=filters, + xs = self._xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) return xs def get_condensed_xs(self, coarse_groups): - """This routine takes in a collection of 2-tuples of energy groups""" + """ - cv.check_value('coarse groups', coarse_groups, EnergyGroups) + :param coarse_groups: + :return: + """ - # FIXME: this should use the Tally.slice(...) routine + raise NotImplementedError('Energy condensation is not yet implemented') def get_subdomain_avg_xs(self, subdomains='all'): """Construct a subdomain-averaged version of this cross-section. @@ -450,31 +457,46 @@ class MultiGroupXS(object): Returns ------- MultiGroupXS - This MultiGroupXS averaged across subdomains of interest + A new MultiGroupXS averaged across the subdomains of interest + + Raises + ------ + ValueError + When this method is called before the multi-group cross-section is + computed from tally data. """ + if self._xs_tally is None: + msg = 'Unable to get cross-section since it has not been computed' + raise ValueError(msg) + + # Construct a collection of the subdomain filter bins to average across + # FIXME: Make Tally.summation take single rather than nested tuples if subdomains != 'all': - cv.check_value('subdomains', subdomains, Iterable, Integral) + cv.check_iterable_type('subdomains', subdomains, Integral) + subdomain_indices = self.get_subdomain_indices(subdomains) + subdomain_indices = [(index,) for index in subdomain_indices] + # Clone this MultiGroupXS to initialize the condensed version avg_xs = copy.deepcopy(self) + avg_xs.domain_type = 'avg. ' + avg_xs.domain_type + # Reset subdomain indices and offsets for distribcell domains if self.domain_type == 'distribcell': - avg_xs.domain_type = 'cell' avg_xs._subdomain_indices = {} avg_xs._offset = 0 - # Spatially average each tally - for key, old_tally in avg_xs.tallies.items(): - # FIXME: Need to create Tally.mean(...) - slice_tally = old_tally.slice(filters=[avg_xs.domain_type], - filter_bins=[tuple(subdomains)]) - avg_tally = slice_tally.mean(filters=[avg_xs.domain_type], - filter_bins=[tuple(subdomains)]) - avg_xs.tallies[key] = avg_tally - - avg_xs.compute_xs() + # Overwrite tallies with new subdomain-averaged versions + avg_xs._tallies = {} + for tally_type, tally in self.tallies.items(): + tally_sum = tally.summation(filters=[self.domain_type], + filter_bins=subdomain_indices) + tally_sum /= len(subdomains) + avg_xs.tallies[tally_type] = tally_sum + # Compute the condensed single group cross-section + avg_xs.compute_xs() return avg_xs def print_xs(self, subdomains='all'): @@ -485,17 +507,27 @@ class MultiGroupXS(object): subdomains : Iterable of Integral or 'all' The subdomain IDs of the cross-sections to include in the report + Raises + ------ + ValueError + When this method is called before the multi-group cross-section is + computed from tally data. + """ + if self._xs_tally is None: + msg = 'Unable to print cross-section since it has not been computed' + raise ValueError(msg) + if subdomains != 'all': - cv.check_value('subdomains', subdomains, Iterable, Integral) + cv.check_iterable_type('subdomains', subdomains, Integral) string = 'Multi-Group XS\n' string += '{0: <16}=\t{1}\n'.format('\tType', self.xs_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 self.xs_tally is not None: + if self._xs_tally is not None: if subdomains == 'all': subdomains = self.get_subdomain_indices() @@ -503,15 +535,15 @@ class MultiGroupXS(object): for subdomain in subdomains: if self.domain_type == 'distribcell': - string += '{0: <16}=\t{1}\n'.format('\tSubDomain', subdomain) + string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) string += '{0: <16}\n'.format('\tCross-Sections [cm^-1]:') + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' # 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 += '{0: <12}Group {1} [{2: <10} - ' \ - '{3: <10}MeV]:\t'.format('', group, bounds[0], bounds[1]) + string += template.format('', group, bounds[0], bounds[1]) average = self.get_xs([group], [subdomain], 'mean') rel_err = self.get_xs([group], [subdomain], 'rel_err')*100. string += '{:.2e}+/-{:1.2e}%'.format(average, rel_err) @@ -529,6 +561,7 @@ class MultiGroupXS(object): Filename for the pickled binary file (default is 'mgxs') directory : str Directory for the pickled binary file (default is 'mgxs') + """ cv.check_type('filename', filename, basestring) @@ -548,16 +581,16 @@ class MultiGroupXS(object): xs_results['domain'] = self.domain xs_results['energy_groups'] = self.energy_groups xs_results['tallies'] = self.tallies - xs_results['xs_tally'] = self.xs_tally - xs_results['offset'] = self._offset - xs_results['subdomain_indices'] = self._subdomain_indices + xs_results['xs_tally'] = self._xs_tally + xs_results['offset'] = self.offset + xs_results['subdomain_indices'] = self.subdomain_indices # Pickle the MultiGroupXS results to a binary file filename = directory + '/' + filename + '.pkl' filename = filename.replace(' ', '-') pickle.dump(xs_results, open(filename, 'wb')) - def restore_from_file(self, filename='mgxs', directory='mgxs'): + def unpickle(self, filename='mgxs', directory='mgxs'): """Restore the MultiGroupXS from a pickled binary file. Parameters @@ -566,6 +599,12 @@ class MultiGroupXS(object): Filename for the pickled binary file (default is 'mgxs') directory : str Directory for the pickled binary file (default is 'mgxs') + + Raises + ------ + ValueError + When the requested filename does not exist. + """ cv.check_type('filename', filename, basestring) @@ -589,50 +628,154 @@ class MultiGroupXS(object): self.domain = xs_results['domain'] self.energy_groups = xs_results['energy_groups'] self.tallies = xs_results['tallies'] - self.xs_tally = xs_results['xs_tally'] + self._xs_tally = xs_results['xs_tally'] self._offset = xs_results['offset'] self._subdomain_indices = xs_results['subdomain_indices'] - def export_xs_data(self, subdomains='all', filename='mgxs', - directory='mgxs', format='hdf5', append=True): - """Export the multi-group cross-secttion data to a file. + def load_from_statepoint(self, statepoint): + """Find tallies in an OpenMC StatePoint with the data needed to compute + multi-group cross-sections. - This routine leverages the functionality in the Pandas library to - export DataFrames to CSV, HDF5, LaTeX and PDF files. + This method is needed to compute cross-section data from tallies + in an OpenMC StatePoint object. + + Parameters + ---------- + statepoint : openmc.StatePoint + An OpenMC StatePoint object with tally data + + """ + + cv.check_type('statepoint', statepoint, openmc.statepoint.StatePoint) + + statepoint.read_results() + + # Create Tallies to search for in StatePoint + if self.tallies is None: + self.create_tallies() + + # Find and store Tallies in StatePoint + for tally_type, tally in self.tallies.items(): + print('getting tally type {}'.format(tally_type)) + print(tally) + sp_tally = statepoint.get_tally(tally.scores, tally.filters, + tally.nuclides, + estimator=tally.estimator) + self.tallies[tally_type] = sp_tally + + def build_hdf5_store(self, filename='mgxs', directory='mgxs', + append=True, key=None): + """ + + :param filename: + :param directory: + :param append: + :param key: + :return: + """ + + # FIXME: + import h5py + raise NotImplementedError('HDF5 storage is not yet implemented') + + def export_xs_data(self, filename='mgxs', directory='mgxs', format='csv'): + """Export the multi-group cross-section data to a file. + + This routine leverages the functionality in the Pandas library to + export the multi-group cross-section data in a variety of output + file formats for storage and/or post-processing. Parameters ---------- - subdomains : Iterable of Integral or 'all' filename : str Filename for the exported file (default is 'mgxs') directory : str Directory for the exported file (default is 'mgxs') - format : {'csv', 'hdf5', 'latex', 'pdf'} + format : {'csv', 'excel', 'pickle', 'latex'} The format for the exported data file - append : bool - If True (default), appends to an existing file if possible + + Raises + ------ + ValueError + When this method is called before the multi-group cross-section is + computed from tally data. + """ - if subdomains != 'all': - cv.check_type('submdomains', subdomains, Iterable, Integral) + if self._xs_tally is None: + msg = 'Unable to export cross-section since it has not been computed' + raise ValueError(msg) + cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) - cv.check_values('format', format, ['hdf5', 'pickle']) - cv.check_type('append', append, bool) + cv.check_values('format', format, ['csv', 'excel', 'pickle', 'latex']) # Make directory if it does not exist if not os.path.exists(directory): os.makedirs(directory) - # FIXME: Use pandas dataframes!! + filename = directory + '/' + filename + filename = filename.replace(' ', '-') + + # Get a Pandas DataFrame for the data + df = self.get_pandas_dataframe() + + # Export the data using Pandas IO API + if format == 'csv': + df.to_csv(filename + '.csv') + elif format == 'excel': + df.to_excel(filename + '.xslx') + elif format == 'pickle': + df.to_pickle(filename + '.pkl') + elif format == 'latex': + # FIXME: Insert greek letters + df.to_latex(filename + '.tex') + + def get_pandas_dataframe(self): + """Build a Pandas DataFrame for the MultiGroupXS data. + + This routine leverages the Tally.get_pandas_dataframe(...) routine, but + renames the columns with terminology appropriate for cross-section data. + + 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. + + """ + + if self._xs_tally is None: + msg = 'Unable to get Pandas DataFrame since the ' \ + 'cross-section has not been computed' + raise ValueError(msg) + + # TODO: Reset column labels as cross-sections if needed + df = self._xs_tally.get_pandas_dataframe() + return df + + def from_statepoint(self, sp): + """ + + :return: + """ + + # Get the tallies from a statepoint file + class TotalXS(MultiGroupXS): - def __init__(self, name='', domain=None, domain_type=None, groups=None): - super(TotalXS, self).__init__(name, domain, domain_type, groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(TotalXS, self).__init__(domain, domain_type, groups, name) self.xs_type = 'total' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'total'] @@ -644,23 +787,27 @@ class TotalXS(MultiGroupXS): energy_filter = openmc.Filter('energy', group_edges) filters = [[energy_filter], [energy_filter]] - # Intialize the Tallies - super(TotalXS, self)._create_tallies(scores, filters, keys, estimator) + # Initialize the Tallies + super(TotalXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs_tally = self.tallies['total'] / self.tallies['flux'] + """Computes the multi-group total cross-sections using OpenMC + tally arithmetic""" + + self._xs_tally = self.tallies['total'] / self.tallies['flux'] class TransportXS(MultiGroupXS): - def __init__(self, name='', domain=None, domain_type=None, groups=None): - super(TransportXS, self).__init__(name, domain, domain_type, groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(TransportXS, self).__init__(domain, domain_type, groups, name) self.xs_type = 'transport' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created - scores = ['flux', 'total', 'scatter-1'] + scores = ['flux', 'total', 'scatter-P1'] estimator = 'analog' keys = scores @@ -671,20 +818,29 @@ class TransportXS(MultiGroupXS): filters = [[energy_filter], [energy_filter], [energyout_filter]] # Initialize the Tallies - super(TransportXS, self)._create_tallies(scores, filters, keys, estimator) + super(TransportXS, self).create_tallies(scores, filters, keys, estimator) + + def load_from_statepoint(self, statepoint): + super(TransportXS, self).load_from_statepoint(statepoint) + scatter_p1 = self.tallies['scatter-P1'] + self.tallies['scatter-P1'] = scatter_p1.get_slice(scores=['scatter-P1']) def compute_xs(self): - self.xs_tally = self.tallies['total'] - self.tallies['scatter-1'] - self.xs_tally /= self.tallies['flux'] + """Computes the multi-group transport cross-sections using OpenMC + tally arithmetic""" + + self._xs_tally = self.tallies['total'] - self.tallies['scatter-P1'] + self._xs_tally /= self.tallies['flux'] class AbsorptionXS(MultiGroupXS): - def __init__(self, name='', domain=None, domain_type=None, groups=None): - super(AbsorptionXS, self).__init__(name, domain, domain_type, groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(AbsorptionXS, self).__init__(domain, domain_type, groups, name) self.xs_type = 'absorption' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'absorption'] @@ -696,20 +852,24 @@ class AbsorptionXS(MultiGroupXS): energy_filter = openmc.Filter('energy', group_edges) filters = [[energy_filter], [energy_filter]] - # Intialize the Tallies - super(AbsorptionXS, self)._create_tallies(scores, filters, keys, estimator) + # Initialize the Tallies + super(AbsorptionXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs_tally = self.tallies['absorption'] / self.tallies['flux'] + """Computes the multi-group absorption cross-sections using OpenMC + tally arithmetic""" + + self._xs_tally = self.tallies['absorption'] / self.tallies['flux'] class CaptureXS(MultiGroupXS): - def __init__(self, name='', domain=None, domain_type=None, groups=None): - super(CaptureXS, self).__init__(name, domain, domain_type, groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(CaptureXS, self).__init__(domain, domain_type, groups, name) self._xs_type = 'capture' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'absorption', 'fission'] @@ -721,21 +881,25 @@ class CaptureXS(MultiGroupXS): energy_filter = openmc.Filter('energy', group_edges) filters = [[energy_filter], [energy_filter], [energy_filter]] - # Intialize the Tallies - super(CaptureXS, self)._create_tallies(scores, filters, keys, estimator) + # Initialize the Tallies + super(CaptureXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs_tally = self.tallies['absorption'] - self.tallies['fission'] - self.xs_tally /= self.tallies['flux'] + """Computes the multi-group capture cross-sections using OpenMC + tally arithmetic""" + + self._xs_tally = self.tallies['absorption'] - self.tallies['fission'] + self._xs_tally /= self.tallies['flux'] class FissionXS(MultiGroupXS): - def __init__(self, name='', domain=None, domain_type=None, energy_groups=None): - super(FissionXS, self).__init__(name, domain, domain_type, energy_groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(FissionXS, self).__init__(domain, domain_type, groups, name) self._xs_type = 'fission' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'fission'] @@ -743,24 +907,28 @@ class FissionXS(MultiGroupXS): keys = scores # Create the non-domain specific Filters for the Tallies - group_edges = self._energy_groups._group_edges + group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) filters = [[energy_filter], [energy_filter]] - # Intialize the Tallies - super(FissionXS, self)._create_tallies(scores, filters, keys, estimator) + # Initialize the Tallies + super(FissionXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs_tally = self.tallies['fission'] / self.tallies['flux'] + """Computes the multi-group fission cross-sections using OpenMC + tally arithmetic""" + + self._xs_tally = self.tallies['fission'] / self.tallies['flux'] class NuFissionXS(MultiGroupXS): - def __init__(self, name='', domain=None, domain_type=None, groups=None): - super(NuFissionXS, self).__init__(name, domain, domain_type, groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(NuFissionXS, self).__init__(domain, domain_type, groups, name) self._xs_type = 'nu-fission' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'nu-fission'] @@ -772,20 +940,24 @@ class NuFissionXS(MultiGroupXS): energy_filter = openmc.Filter('energy', group_edges) filters = [[energy_filter], [energy_filter]] - # Intialize the Tallies - super(NuFissionXS, self)._create_tallies(scores, filters, keys, estimator) + # Initialize the Tallies + super(NuFissionXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs_tally = self.tallies['nu-fission'] / self.tallies['flux'] + """Computes the multi-group nu-fission cross-sections using OpenMC + tally arithmetic""" + + self._xs_tally = self.tallies['nu-fission'] / self.tallies['flux'] class ScatterXS(MultiGroupXS): - def __init__(self, name='', domain=None, domain_type=None, energy_groups=None): - super(ScatterXS, self).__init__(name, domain, domain_type, energy_groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(ScatterXS, self).__init__(domain, domain_type, groups, name) self._xs_type = 'scatter' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'scatter'] @@ -798,19 +970,23 @@ class ScatterXS(MultiGroupXS): filters = [[energy_filter], [energy_filter]] # Intialize the Tallies - super(ScatterXS, self)._create_tallies(scores, filters, keys, estimator) + super(ScatterXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs_tally = self.tallies['scatter'] / self.tallies['flux'] + """Computes the scattering multi-group cross-sections using + OpenMC tally arithmetic""" + + self._xs_tally = self.tallies['scatter'] / self.tallies['flux'] class NuScatterXS(MultiGroupXS): - def __init__(self, name='', domain=None, domain_type=None, groups=None): - super(NuScatterXS, self).__init__(name, domain, domain_type, groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(NuScatterXS, self).__init__(domain, domain_type, groups, name) self._xs_type = 'nu-scatter' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'nu-scatter'] @@ -822,68 +998,135 @@ class NuScatterXS(MultiGroupXS): energy_filter = openmc.Filter('energy', group_edges) filters = [[energy_filter], [energy_filter]] - # Intialize the Tallies - super(NuScatterXS, self)._create_tallies(scores, filters, keys, estimator) + # Initialize the Tallies + super(NuScatterXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs_tally = self.tallies['nu-scatter'] / self.tallies['flux'] + """Computes the nu-scattering multi-group cross-section using OpenMC + tally arithmetic""" + + self._xs_tally = self.tallies['nu-scatter'] / self.tallies['flux'] class ScatterMatrixXS(MultiGroupXS): - def __init__(self, name='', domain=None, domain_type=None, groups=None): - super(ScatterMatrixXS, self).__init__(name, domain, domain_type, groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, name) self._xs_type = 'scatter matrix' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created - scores = ['flux', 'scatter', 'scatter-1'] + scores = ['flux', 'scatter', 'scatter-P1'] 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) - energyout_filter = openmc.Filter('energyout', group_edges) - filters = [[energy_filter], [energy_filter, energyout_filter], [energyout_filter]] + energy = openmc.Filter('energy', group_edges) + energyout = openmc.Filter('energyout', group_edges) + filters = [[energy], [energy, energyout], [energyout]] - # Intialize the Tallies - super(ScatterMatrixXS, self)._create_tallies(scores, filters, keys, estimator) + # Initialize the Tallies + super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) + + def load_from_statepoint(self, statepoint): + super(ScatterMatrixXS, self).load_from_statepoint(statepoint) + scatter_p1 = self.tallies['scatter-P1'] + self.tallies['scatter-P1'] = scatter_p1.get_slice(scores=['scatter-P1']) def compute_xs(self): - self.xs_tally = self.tallies['scatter'] - self.tallies['scatter-1'] - self.xs_tally /= self.tallies['flux'] + """Computes the multi-group scattering matrix using OpenMC + tally arithmetic""" - def get_condensed_xs(self, coarse_groups): - """This routine takes in a collection of 2-tuples of energy groups""" - - cv.check_value('coarse groups', coarse_groups, EnergyGroups) - - # FIXME: this should use the Tally.slice(...) routine - - # Error checking for the group bounds is done here - new_groups = self.energy_groups.getCondensedGroups(coarse_groups) - num_coarse_groups = new_groups._num_groups + self._xs_tally = self.tallies['scatter'] - self.tallies['scatter-P1'] + self._xs_tally /= self.tallies['flux'] def get_xs(self, in_groups='all', out_groups='all', - subdomains='all', value='mean'): + subdomains='all', value='mean'): + """Returns an array of multi-group cross-sections. - if self.xs_tally is None: + This method constructs a 2D NumPy array for the requested multi-group + cross-section data data for one or more energy groups and subdomains. + + Parameters + ---------- + in_groups : Iterable of Integral or 'all' + Incoming energy groups of interest + out_groups : Iterable of Integral or 'all' + Outgoing energy groups of interest + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest + value : str + A string for the type of value to return - 'mean' (default), + 'std_dev' or 'rel_err' are accepted + + Returns + ------- + xs : 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. + + """ + + if self._xs_tally is None: msg = 'Unable to get cross-section since it has not been computed' raise ValueError(msg) cv.check_value('value', value, ['mean', 'std. dev.', 'rel. err.']) - if in_groups != 'all': - cv.check_value('in groups', in_groups, Iterable, Integral) - if out_groups != 'all': - cv.check_value('out groups', out_groups, Iterable, Integral) - if subdomains != 'all': - cv.check_value('subdomains', subdomains, Iterable, Integral) - # FIXME: Make this use Tally.get_values() + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if subdomains != 'all': + cv.check_iterable_type('subdomains', subdomains, Integral) + filters.append(self.domain_type) + filter_bins.append(tuple(subdomains)) + + # Construct list of energy group bounds tuples for all requested groups + if in_groups != 'all': + cv.check_iterable_type('in_groups', in_groups, Integral) + filters.append('energy') + for in_group in in_groups: + filter_bins.append(self.energy_groups.get_group_bounds(in_group)) + if out_groups != 'all': + cv.check_iterable_type('out_groups', out_groups, Integral) + filters.append('energy') + for out_group in out_groups: + filter_bins.append(self.energy_groups.get_group_bounds(out_group)) + + # Query the multi-group cross-section tally for the data + xs = self._xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + return xs def print_xs(self, subdomains='all'): + """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 + + Raises + ------ + ValueError + When this method is called before the multi-group cross-section is + computed from tally data. + + """ + + if self._xs_tally is None: + msg = 'Unable to print cross-section since it has not been computed' + raise ValueError(msg) if subdomains != 'all': cv.check_value('subdomains', subdomains, Iterable, Integral) @@ -894,69 +1137,80 @@ class ScatterMatrixXS(MultiGroupXS): string += '{0: <16}{1}{2}\n'.format('\tDomain ID', '=\t', self.domain.id) 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): + for group in range(1, self.num_groups+1): bounds = self.energy_groups.get_group_bounds(group) - string += '{0: <12}Group {1} [{2: <10} - ' \ - '{3: <10}MeV]\n'.format('', group, bounds[0], bounds[1]) + string += template.format('', group, bounds[0], bounds[1]) if subdomains == 'all': - subdomains = self._subdomain_indices.keys() + subdomains = self.subdomain_indices.keys() + # Loop over all subdomains for subdomain in subdomains: if self.domain_type == 'distribcell': - string += '{0: <16}{1}{2}\n'.format('\tSubDomain', '=\t', subdomain) + string += \ + '{0: <16}{1}{2}\n'.format('\tSubdomain', '=\t', subdomain) string += '{0: <16}\n'.format('\tCross-Sections [cm^-1]:') + template = '{0: <12}Group {1} -> Group {2}:\t\t' - # Loop over energy groups ranges - for in_group in range(1,self.num_groups+1): - for out_group in range(1,self.num_groups+1): - string += '{0: <12}Group {1} -> Group {2}:\t\t'.format('', in_group, out_group) - average = self.get_xs([in_group], [out_group], [subdomain], 'mean') - rel_err = self.get_xs([in_group], [out_group], [subdomain], 'rel. err.') - string += '{:.2e}+/-{:1.2e}%'.format(average[0,0,0], rel_err[0,0,0]) + # 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], 'mean') + rel_err = self.get_xs([in_group], [out_group], + [subdomain], 'rel. err.')*100. + string += '{:.2e}+/-{:1.2e}%'.format(average, rel_err) string += '\n' string += '\n' + print(string) class NuScatterMatrixXS(ScatterMatrixXS): - def __init__(self, name='', domain=None, domain_type=None, groups=None): - super(NuScatterMatrixXS, self).__init__(name, domain, domain_type, groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(NuScatterMatrixXS, self).__init__(domain, domain_type, groups, name) self.xs_type = 'nu-scatter matrix' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created - scores = ['flux', 'nu-scatter', 'scatter-1'] + scores = ['flux', 'nu-scatter', 'scatter-P1'] 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) - energyout_filter = openmc.Filter('energyout', group_edges) - filters = [[energy_filter], [energy_filter, energyout_filter], [energyout_filter]] + energy = openmc.Filter('energy', group_edges) + energyout = openmc.Filter('energyout', group_edges) + filters = [[energy], [energy, energyout], [energyout]] # Intialize the Tallies - super(ScatterMatrixXS, self)._create_tallies(scores, filters, keys, estimator) + super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - self.xs_tally = self.tallies['nu-scatter'] - self.tallies['scatter-1'] - self.xs_tally /= self.tallies['flux'] + """Computes the multi-group nu-scattering matrix using OpenMC + tally arithmetic""" + + self._xs_tally = self.tallies['nu-scatter'] - self.tallies['scatter-P1'] + self._xs_tally /= self.tallies['flux'] class Chi(MultiGroupXS): - def __init__(self, name='', domain=None, domain_type=None, groups=None): - super(Chi, self).__init__(name, domain, domain_type, groups) + def __init__(self, domain=None, domain_type=None, groups=None, name=''): + super(Chi, self).__init__(domain, domain_type, groups, name) self._xs_type = 'chi' def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross-section.""" # Create a list of scores for each Tally to be created scores = ['nu-fission', 'nu-fission'] @@ -964,46 +1218,43 @@ class Chi(MultiGroupXS): keys = ['nu-fission-in', 'nu-fission-out'] # Create the non-domain specific Filters for the Tallies - group_edges = self._energy_groups._group_edges + group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) energyout_filter = openmc.Filter('energyout', group_edges) filters = [[energy_filter], [energyout_filter]] # Intialize the Tallies - super(Chi, self)._create_tallies(scores, filters, keys, estimator) + super(Chi, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): + """Computes chi fission spectrum using OpenMC tally arithmetic""" - # Extract and clean the Tally data - tally_data, zero_indices = super(Chi, self).getAllTallyData() - nu_fission_in = tally_data['nu-fission-in'] - nu_fission_out = tally_data['nu-fission-out'] + nu_fission_in = self.tallies['nu-fission-in'] + nu_fission_out = self.tallies['nu-fission-out'] - # Set any zero reaction rates to -1 - nu_fission_in[0, zero_indices['nu-fission-in']] = -1. + # FIXME: Make filter bins simpler in Tally.summation(...) - # FIXME - uncertainty propagation - self._xs_tally = infermc.error_prop.arithmetic.divide_by_scalar(nu_fission_out, - nu_fission_in.sum(2)[0, :, np.newaxis, ...], - corr, False) + # Construct energy group filter bins to sum across + filter_bins = [] + for group in range(self.num_groups): + group_bounds = self.energy_groups.get_group_bounds(group) + filter_bins.append((group_bounds,)) + energy_bins = [filter_bins] - # Compute the total across all groups per subdomain - norm = self._xs_tally.sum(2)[0, :, np.newaxis, ...] + sum_nu_fission_in = nu_fission_in.summation(filters=['energyout'], + filter_bins=energy_bins) + self._xs_tally = nu_fission_out / sum_nu_fission_in - # Set any zero norms (in non-fissionable domains) to -1 - norm_indices = norm == 0. - norm[norm_indices] = -1. + # Compute the total across all groups per subdomain + if self.domain_type == 'distribcell': + subdomain_indices = self.get_subdomain_indices() + filter_bins = [(i,) for i in subdomain_indices] + else: + filter_bins = [(self.domain,)] - # Normalize chi to 1.0 - # FIXME - uncertainty propagation - self._xs_tally = infermc.error_prop.arithmetic.divide_by_scalar(self._xs_tally, norm, - corr, False) + # Normalize chi to 1.0 + norm = self._xs_tally.summation(filters=[self.domain_type], + filter_bins=filter_bins) + self._xs_tally /= norm - # For any region without flux or reaction rate, convert xs to zero - self._xs_tally[:, norm_indices] = 0. - - # FIXME - uncertainty propagation - this is just a temporary fix - self._xs_tally[1, ...] = 0. - - # Correct -0.0 to +0.0 - self._xs_tally += 0. \ No newline at end of file + # FIXME: Does this need to reset NaNs to zero? \ No newline at end of file diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 6a4713e91..5d385b548 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -663,6 +663,8 @@ class StatePoint(object): # Iterate over all tallies to find the appropriate one for tally_id, test_tally in self.tallies.items(): + print(test_tally) + # Determine if Tally has queried name if name and name != test_tally.name: continue @@ -673,6 +675,7 @@ class StatePoint(object): # Determine if Tally has queried estimator if estimator and not estimator == test_tally.estimator: + print('estimator') continue # Determine if Tally has the queried score(s) @@ -686,6 +689,7 @@ class StatePoint(object): break if not contains_scores: + print('scores') continue # Determine if Tally has the queried Filter(s) @@ -699,6 +703,7 @@ class StatePoint(object): break if not contains_filters: + print('filters') continue # Determine if Tally has the queried Nuclide(s) @@ -712,6 +717,7 @@ class StatePoint(object): break if not contains_nuclides: + print('nuclides') continue # If the current Tally met user's request, break loop and return it diff --git a/openmc/summary.py b/openmc/summary.py index 7f9d5387e..0734e7782 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -264,7 +264,7 @@ class Summary(object): if maps > 0: offset = self._f['geometry/cells'][key]['offset'][...] - cell.set_offset(offset) + cell.offsets = offset translated = self._f['geometry/cells'][key]['translated'][0] if translated: diff --git a/openmc/tallies.py b/openmc/tallies.py index 9d5f4dc00..6165dc677 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -114,10 +114,10 @@ class Tally(object): clone.estimator = self.estimator clone.num_score_bins = self.num_score_bins clone.num_realizations = self.num_realizations - clone._sum = copy.deepcopy(self.sum, memo) - clone._sum_sq = copy.deepcopy(self.sum_sq, memo) - clone._mean = copy.deepcopy(self.mean, memo) - clone._std_dev = copy.deepcopy(self.std_dev, memo) + clone._sum = copy.deepcopy(self._sum, memo) + clone._sum_sq = copy.deepcopy(self._sum_sq, memo) + clone._mean = copy.deepcopy(self._mean, memo) + clone._std_dev = copy.deepcopy(self._std_dev, memo) clone._with_summary = self.with_summary clone._with_batch_statistics = self.with_batch_statistics clone._derived = self.derived @@ -828,7 +828,7 @@ class Tally(object): parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin in the list is the integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer for the - cell instance ID for 'distribcell Filters. Each bin is a 2-tuple of + cell instance ID for 'distribcell' Filters. Each bin is a 2-tuple of floats for 'energy' and 'energyout' filters corresponding to the energy boundaries of the bin of interest. The bin is a (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of @@ -2128,6 +2128,14 @@ class TalliesFile(object): self._meshes = [] self._tallies_file = ET.Element("tallies") + @property + def tallies(self): + return self._tallies + + @property + def meshes(self): + return self._meshes + def add_tally(self, tally, merge=False): """Add a tally to the file From 5bfab3a48191271941bab2f1c0f75ded651227f2 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 11 Sep 2015 00:26:11 -0400 Subject: [PATCH 10/91] Major bug fixes and extensions to tally arithmetic for MGXS generation --- openmc/cross.py | 17 +- openmc/filter.py | 57 ++++- openmc/mesh.py | 31 +-- openmc/mgxs/mgxs.py | 85 +++++-- openmc/statepoint.py | 7 - openmc/tallies.py | 532 ++++++++++++++++++++++++++++++++++--------- 6 files changed, 564 insertions(+), 165 deletions(-) diff --git a/openmc/cross.py b/openmc/cross.py index 51b579553..cb1e4930b 100644 --- a/openmc/cross.py +++ b/openmc/cross.py @@ -192,12 +192,13 @@ class CrossFilter(object): left_type = left_filter.type right_type = right_filter.type - self.type = '({0} {1} {2})'.format(left_type, binary_op, right_type) + self._type = '({0} {1} {2})'.format(left_type, binary_op, right_type) self._bins = {} self._bins['left'] = left_filter.bins self._bins['right'] = right_filter.bins self._num_bins = left_filter.num_bins * right_filter.num_bins + self._stride = None self._left_filter = None self._right_filter = None @@ -211,7 +212,7 @@ class CrossFilter(object): self.binary_op = binary_op def __hash__(self): - return hash((self.type, self.bins)) + return hash((self.left_filter, self.right_filter)) def __deepcopy__(self, memo): existing = memo.get(id(self)) @@ -224,6 +225,8 @@ class CrossFilter(object): clone._type = self.type clone._bins = self.bins clone._num_bins = self.num_bins + clone._stride = self.stride + memo[id(self)] = clone return clone @@ -258,7 +261,8 @@ class CrossFilter(object): @property def stride(self): - return self.left_filter.stride * self.right_filter.stride + return self._stride +# return self.left_filter.stride * self.right_filter.stride @type.setter def type(self, filter_type): @@ -276,9 +280,16 @@ class CrossFilter(object): def binary_op(self, binary_op): self._binary_op = binary_op + @stride.setter + def stride(self, stride): + self._stride = stride + def __eq__(self, other): return str(other) == str(self) + def __ne__(self, other): + return not self == other + def get_bin_index(self, filter_bin): """Returns the index in the CrossFilter for some bin. diff --git a/openmc/filter.py b/openmc/filter.py index 35cbd1dc5..52c927bed 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -42,24 +42,23 @@ class Filter(object): self._offset = -1 self._stride = None - def __eq__(self, filter2): - # Check type - if self.type != filter2.type: + def __eq__(self, other): + if not isinstance(other, Filter): return False - - # Check number of bins - elif len(self.bins) != len(filter2.bins): + elif self.type != other.type: return False - - # Check bin edges - elif not np.allclose(self.bins, filter2.bins): + elif len(self.bins) != len(other.bins): + return False + elif not np.allclose(self.bins, other.bins): return False - else: return True + def __ne__(self, other): + return not self == other + def __hash__(self): - return hash((self._type, self._bins)) + return hash((self._type, tuple(self._bins))) def __deepcopy__(self, memo): existing = memo.get(id(self)) @@ -121,6 +120,7 @@ class Filter(object): def bins(self, bins): if bins is None: self.num_bins = 0 + return elif self._type is None: msg = 'Unable to set bins for Filter to "{0}" since ' \ 'the Filter type has not yet been set'.format(bins) @@ -321,7 +321,8 @@ class Filter(object): # Filter bins for distribcell are the "IDs" of each unique placement # of the Cell in the Geometry (integers starting at 0) elif self.type == 'distribcell': - filter_index = filter_bin + val = np.where(self.bins == filter_bin)[0][0] + filter_index = val # Use ID for all other Filters (e.g., material, cell, etc.) else: @@ -335,6 +336,38 @@ class Filter(object): return filter_index + def get_bin(self, bin_index): + """ + + :param bin_index: + :return: + """ + + cv.check_type('bin_index', bin_index, Integral) + cv.check_greater_than('bin_index', bin_index, 0, equality=True) + cv.check_less_than('bin_index', bin_index, self.num_bins) + + if self.type == 'mesh': + + if (len(self.mesh.dimension) == 3): + nx, ny, nz = self.mesh.dimension + x = bin_index / (ny * nz) + y = (bin_index - (x * ny * nz)) / nz + z = bin_index - (x * ny * nz) - (y * nz) + bin = (x, y, z) + else: + nx, ny = self.mesh.dimension + x = bin_index / ny + y = bin_index - (x * ny) + bin = (x, y) + + elif self.type in ['energy', 'energyout']: + bin = (self.bins[bin_index], self.bins[bin_index+1]) + else: + bin = (self.bins[bin_index],) + + return bin + def get_pandas_dataframe(self, data_size, summary=None): """Builds a Pandas DataFrame for the Filter's bins. diff --git a/openmc/mesh.py b/openmc/mesh.py index 7e907aaa5..ddf3529c2 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -4,8 +4,9 @@ from numbers import Real, Integral from xml.etree import ElementTree as ET import sys -from openmc.checkvalue import (check_type, check_length, check_value, - check_greater_than) +import numpy as np + +import openmc.checkvalue as cv if sys.version_info[0] >= 3: basestring = str @@ -142,45 +143,45 @@ class Mesh(object): self._id = AUTO_MESH_ID AUTO_MESH_ID += 1 else: - check_type('mesh ID', mesh_id, Integral) - check_greater_than('mesh ID', mesh_id, 0) + cv.check_type('mesh ID', mesh_id, Integral) + cv.check_greater_than('mesh ID', mesh_id, 0) self._id = mesh_id @name.setter def name(self, name): - check_type('name for mesh ID="{0}"'.format(self._id), name, basestring) + cv.check_type('name for mesh ID="{0}"'.format(self._id), name, basestring) self._name = name @type.setter def type(self, meshtype): - check_type('type for mesh ID="{0}"'.format(self._id), + cv.check_type('type for mesh ID="{0}"'.format(self._id), meshtype, basestring) - check_value('type for mesh ID="{0}"'.format(self._id), + cv.check_value('type for mesh ID="{0}"'.format(self._id), meshtype, ['rectangular', 'hexagonal']) self._type = meshtype @dimension.setter def dimension(self, dimension): - check_type('mesh dimension', dimension, Iterable, Integral) - check_length('mesh dimension', dimension, 2, 3) + cv.check_type('mesh dimension', dimension, Iterable, Integral) + cv.check_length('mesh dimension', dimension, 2, 3) self._dimension = dimension @lower_left.setter def lower_left(self, lower_left): - check_type('mesh lower_left', lower_left, Iterable, Real) - check_length('mesh lower_left', lower_left, 2, 3) + cv.check_type('mesh lower_left', lower_left, Iterable, Real) + cv.check_length('mesh lower_left', lower_left, 2, 3) self._lower_left = lower_left @upper_right.setter def upper_right(self, upper_right): - check_type('mesh upper_right', upper_right, Iterable, Real) - check_length('mesh upper_right', upper_right, 2, 3) + cv.check_type('mesh upper_right', upper_right, Iterable, Real) + cv.check_length('mesh upper_right', upper_right, 2, 3) self._upper_right = upper_right @width.setter def width(self, width): - check_type('mesh width', width, Iterable, Real) - check_length('mesh width', width, 2, 3) + cv.check_type('mesh width', width, Iterable, Real) + cv.check_length('mesh width', width, 2, 3) self._width = width def __repr__(self): diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 78c8cbb57..39eb79160 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -656,8 +656,6 @@ class MultiGroupXS(object): # Find and store Tallies in StatePoint for tally_type, tally in self.tallies.items(): - print('getting tally type {}'.format(tally_type)) - print(tally) sp_tally = statepoint.get_tally(tally.scores, tally.filters, tally.nuclides, estimator=tally.estimator) @@ -795,6 +793,8 @@ class TotalXS(MultiGroupXS): tally arithmetic""" self._xs_tally = self.tallies['total'] / self.tallies['flux'] + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) class TransportXS(MultiGroupXS): @@ -831,6 +831,8 @@ class TransportXS(MultiGroupXS): self._xs_tally = self.tallies['total'] - self.tallies['scatter-P1'] self._xs_tally /= self.tallies['flux'] + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) class AbsorptionXS(MultiGroupXS): @@ -860,6 +862,8 @@ class AbsorptionXS(MultiGroupXS): tally arithmetic""" self._xs_tally = self.tallies['absorption'] / self.tallies['flux'] + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) class CaptureXS(MultiGroupXS): @@ -890,6 +894,8 @@ class CaptureXS(MultiGroupXS): self._xs_tally = self.tallies['absorption'] - self.tallies['fission'] self._xs_tally /= self.tallies['flux'] + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) class FissionXS(MultiGroupXS): @@ -919,6 +925,8 @@ class FissionXS(MultiGroupXS): tally arithmetic""" self._xs_tally = self.tallies['fission'] / self.tallies['flux'] + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) class NuFissionXS(MultiGroupXS): @@ -948,6 +956,8 @@ class NuFissionXS(MultiGroupXS): tally arithmetic""" self._xs_tally = self.tallies['nu-fission'] / self.tallies['flux'] + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) class ScatterXS(MultiGroupXS): @@ -977,6 +987,8 @@ class ScatterXS(MultiGroupXS): OpenMC tally arithmetic""" self._xs_tally = self.tallies['scatter'] / self.tallies['flux'] + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) class NuScatterXS(MultiGroupXS): @@ -1006,6 +1018,8 @@ class NuScatterXS(MultiGroupXS): tally arithmetic""" self._xs_tally = self.tallies['nu-scatter'] / self.tallies['flux'] + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) class ScatterMatrixXS(MultiGroupXS): @@ -1014,34 +1028,45 @@ class ScatterMatrixXS(MultiGroupXS): super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, name) self._xs_type = 'scatter matrix' - def create_tallies(self): + def create_tallies(self, correct=False): """Construct the OpenMC tallies needed to compute this cross-section.""" - # Create a list of scores for each Tally to be created - scores = ['flux', 'scatter', 'scatter-P1'] - estimator = 'analog' - keys = scores - - # 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], [energyout]] + + # Create a list of scores for each Tally to be created + if correct: + scores = ['flux', 'scatter', 'scatter-P1'] + filters = [[energy], [energy, energyout], [energyout]] + else: + scores = ['flux', 'scatter'] + filters = [[energy], [energy, energyout]] + + estimator = 'analog' + keys = scores # Initialize the Tallies super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) - def load_from_statepoint(self, statepoint): - super(ScatterMatrixXS, self).load_from_statepoint(statepoint) - scatter_p1 = self.tallies['scatter-P1'] - self.tallies['scatter-P1'] = scatter_p1.get_slice(scores=['scatter-P1']) - - def compute_xs(self): + def compute_xs(self, correct=False): """Computes the multi-group scattering matrix using OpenMC tally arithmetic""" - self._xs_tally = self.tallies['scatter'] - self.tallies['scatter-P1'] - self._xs_tally /= self.tallies['flux'] + # FIXME: This should only subtract P1 from the diagonal!!! + if correct: + scatter_p1 = self.tallies['scatter-P1'] + scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) + energy_filter = openmc.Filter(type='energy') + energy_filter.bins = self.energy_groups.group_edges + scatter_p1 = scatter_p1.diagonalize_filter(energy_filter) + rxn_tally = self.tallies['scatter'] - scatter_p1 + else: + rxn_tally = self.tallies['scatter'] + + self._xs_tally = rxn_tally / self.tallies['flux'] + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) def get_xs(self, in_groups='all', out_groups='all', subdomains='all', value='mean'): @@ -1195,13 +1220,25 @@ class NuScatterMatrixXS(ScatterMatrixXS): # Intialize the Tallies super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) - def compute_xs(self): + def compute_xs(self, correct=False): """Computes the multi-group nu-scattering matrix using OpenMC tally arithmetic""" - self._xs_tally = self.tallies['nu-scatter'] - self.tallies['scatter-P1'] - self._xs_tally /= self.tallies['flux'] + # FIXME: This should only subtract P1 from the diagonal!!! + if correct: + scatter_p1 = self.tallies['scatter-P1'] + scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) + energy_filter = openmc.Filter(type='energy') + energy_filter.bins = self.energy_groups.group_edges + energy_filter.num_bins = self.num_groups + scatter_p1 = scatter_p1.diagonalize_filter(energy_filter) + rxn_tally = self.tallies['nu-scatter'] - scatter_p1 + else: + rxn_tally = self.tallies['nu-scatter'] + self._xs_tally = rxn_tally / self.tallies['flux'] + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) class Chi(MultiGroupXS): @@ -1236,12 +1273,12 @@ class Chi(MultiGroupXS): # Construct energy group filter bins to sum across filter_bins = [] - for group in range(self.num_groups): + for group in range(1, self.num_groups+1): group_bounds = self.energy_groups.get_group_bounds(group) filter_bins.append((group_bounds,)) energy_bins = [filter_bins] - sum_nu_fission_in = nu_fission_in.summation(filters=['energyout'], + sum_nu_fission_in = nu_fission_in.summation(filters=['energy'], filter_bins=energy_bins) self._xs_tally = nu_fission_out / sum_nu_fission_in @@ -1256,5 +1293,7 @@ class Chi(MultiGroupXS): norm = self._xs_tally.summation(filters=[self.domain_type], filter_bins=filter_bins) self._xs_tally /= norm + self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) # FIXME: Does this need to reset NaNs to zero? \ No newline at end of file diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 5d385b548..0730c5c65 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -517,7 +517,6 @@ class StatePoint(object): new_shape = (nonzero(tally.num_filter_bins), nonzero(tally.num_nuclides), nonzero(tally.num_score_bins)) - sum = np.reshape(sum, new_shape) sum_sq = np.reshape(sum_sq, new_shape) @@ -663,8 +662,6 @@ class StatePoint(object): # Iterate over all tallies to find the appropriate one for tally_id, test_tally in self.tallies.items(): - print(test_tally) - # Determine if Tally has queried name if name and name != test_tally.name: continue @@ -675,7 +672,6 @@ class StatePoint(object): # Determine if Tally has queried estimator if estimator and not estimator == test_tally.estimator: - print('estimator') continue # Determine if Tally has the queried score(s) @@ -689,7 +685,6 @@ class StatePoint(object): break if not contains_scores: - print('scores') continue # Determine if Tally has the queried Filter(s) @@ -703,7 +698,6 @@ class StatePoint(object): break if not contains_filters: - print('filters') continue # Determine if Tally has the queried Nuclide(s) @@ -717,7 +711,6 @@ class StatePoint(object): break if not contains_nuclides: - print('nuclides') continue # If the current Tally met user's request, break loop and return it diff --git a/openmc/tallies.py b/openmc/tallies.py index 6165dc677..827d98b61 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -12,7 +12,7 @@ import numpy as np from openmc import Mesh, Filter, Trigger, Nuclide from openmc.cross import CrossScore, CrossNuclide, CrossFilter from openmc.summary import Summary -from openmc.checkvalue import check_type, check_value, check_greater_than +import openmc.checkvalue as cv from openmc.clean_xml import * @@ -146,36 +146,42 @@ class Tally(object): else: return existing - def __eq__(self, tally2): + def __eq__(self, other): + if not isinstance(other, Tally): + return False + # Check all filters - if len(self.filters) != len(tally2.filters): + if len(self.filters) != len(other.filters): return False for filter in self.filters: - if filter not in tally2.filters: + if filter not in other.filters: return False # Check all nuclides - if len(self.nuclides) != len(tally2.nuclides): + if len(self.nuclides) != len(other.nuclides): return False for nuclide in self.nuclides: - if nuclide not in tally2.nuclides: + if nuclide not in other.nuclides: return False # Check all scores - if len(self.scores) != len(tally2.scores): + if len(self.scores) != len(other.scores): return False for score in self.scores: - if score not in tally2.scores: + if score not in other.scores: return False - if self.estimator != tally2.estimator: + if self.estimator != other.estimator: return False return True + def __ne__(self, other): + return not self == other + def __hash__(self): hashable = [] @@ -229,7 +235,7 @@ class Tally(object): def num_filter_bins(self): num_bins = 1 - for filter in self._filters: + for filter in self.filters: num_bins *= filter.num_bins return num_bins @@ -289,7 +295,7 @@ class Tally(object): @estimator.setter def estimator(self, estimator): - check_value('estimator', estimator, ['analog', 'tracklength']) + cv.check_value('estimator', estimator, ['analog', 'tracklength']) self._estimator = estimator def add_trigger(self, trigger): @@ -316,13 +322,13 @@ class Tally(object): self._id = AUTO_TALLY_ID AUTO_TALLY_ID += 1 else: - check_type('tally ID', tally_id, Integral) - check_greater_than('tally ID', tally_id, 0) + cv.check_type('tally ID', tally_id, Integral) + cv.check_greater_than('tally ID', tally_id, 0) self._id = tally_id @name.setter def name(self, name): - check_type('tally name', name, basestring) + cv.check_type('tally name', name, basestring) self._name = name def add_filter(self, filter): @@ -381,28 +387,28 @@ class Tally(object): @num_realizations.setter def num_realizations(self, num_realizations): - check_type('number of realizations', num_realizations, Integral) - check_greater_than('number of realizations', num_realizations, 0, True) + cv.check_type('number of realizations', num_realizations, Integral) + cv.check_greater_than('number of realizations', num_realizations, 0, True) self._num_realizations = num_realizations @with_summary.setter def with_summary(self, with_summary): - check_type('with_summary', with_summary, bool) + cv.check_type('with_summary', with_summary, bool) self._with_summary = with_summary @with_batch_statistics.setter def with_batch_statistics(self, with_batch_statistics): - check_type('with_batch_statistics', with_batch_statistics, bool) + cv.check_type('with_batch_statistics', with_batch_statistics, bool) self._with_batch_statistics = with_batch_statistics @sum.setter def sum(self, sum): - check_type('sum', sum, Iterable) + cv.check_type('sum', sum, Iterable) self._sum = sum @sum_sq.setter def sum_sq(self, sum_sq): - check_type('sum_sq', sum_sq, Iterable) + cv.check_type('sum_sq', sum_sq, Iterable) self._sum_sq = sum_sq def remove_score(self, score): @@ -805,72 +811,17 @@ class Tally(object): return score_index - def get_values(self, scores=[], filters=[], filter_bins=[], - nuclides=[], value='mean'): - """Returns a tally score value given a list of filters to satisfy. - - This method constructs a 3D NumPy array for the requested Tally data - indexed by filter bin, nuclide bin, and score index. The method will - order the data in the array as specified in the parameter lists - - Parameters - ---------- - scores : list - A list of one or more score strings - (e.g., ['absorption', 'nu-fission']; default is []) - - filters : list - A list of filter type strings - (e.g., ['mesh', 'energy']; default is []) - - filter_bins : list of Iterables - A list of the filter bins corresponding to the filter_types - parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin - in the list is the integer ID for 'material', 'surface', 'cell', - 'cellborn', and 'universe' Filters. Each bin is an integer for the - cell instance ID for 'distribcell' Filters. Each bin is a 2-tuple of - floats for 'energy' and 'energyout' filters corresponding to the - energy boundaries of the bin of interest. The bin is a (x,y,z) - 3-tuple for 'mesh' filters corresponding to the mesh cell of - interest. The order of the bins in the list must correspond of the - filter_types parameter. - - nuclides : list - A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is []) - - value : str - A string for the type of value to return - 'mean' (default), - 'std_dev', 'rel_err', 'sum', or 'sum_sq' are accepted - - Returns - ------- - float or ndarray - A scalar or NumPy array of the Tally data indexed in the order - each filter, nuclide and score is listed in the parameters. - - Raises - ------ - ValueError - When this method is called before the Tally is populated with data - by the StatePoint.read_results() method. ValueError is also thrown - if the input parameters do not correspond to the Tally's attributes, - e.g., if the score(s) do not match those in the Tally. - + def get_filter_indices(self, filters=[], filter_bins=[]): """ - # Ensure that StatePoint.read_results() was called first - if (value == 'mean' and self.mean is None) or \ - (value == 'std_dev' and self.std_dev is None) or \ - (value == 'rel_err' and self.mean is None) or \ - (value == 'sum' and self.sum is None) or \ - (value == 'sum_sq' and self.sum_sq is None): - msg = 'The Tally ID="{0}" has no data to return. Call the ' \ - 'StatePoint.read_results() method before using ' \ - 'Tally.get_values(...)'.format(self.id) - raise ValueError(msg) + :param filters: + :param filter_bins: + :return: + """ + + cv.check_iterable_type('filters', filters, basestring) + cv.check_iterable_type('filter_bins', filter_bins, tuple) - ############################ FILTERS ######################### # Determine the score indices from any of the requested scores if filters: # Initialize empty list of indices for each bin in each Filter @@ -924,7 +875,17 @@ class Tally(object): else: filter_indices = np.arange(self.num_filter_bins) - ############################ NUCLIDES ######################## + return filter_indices + + def get_nuclide_indices(self, nuclides): + """ + + :param nuclides: + :return: + """ + + cv.check_iterable_type('nuclides', nuclides, basestring) + # Determine the score indices from any of the requested scores if nuclides: nuclide_indices = np.zeros(len(nuclides), dtype=np.int) @@ -935,7 +896,17 @@ class Tally(object): else: nuclide_indices = np.arange(self.num_nuclides) - ############################# SCORES ######################### + return nuclide_indices + + def get_score_indices(self, scores): + """ + + :param scores: + :return: + """ + + cv.check_iterable_type('scores', scores, basestring) + # Determine the score indices from any of the requested scores if scores: score_indices = np.zeros(len(scores), dtype=np.int) @@ -946,6 +917,78 @@ class Tally(object): else: score_indices = np.arange(self.num_scores) + return score_indices + + def get_values(self, scores=[], filters=[], filter_bins=[], + nuclides=[], value='mean'): + """Returns a tally score value given a list of filters to satisfy. + + This method constructs a 3D NumPy array for the requested Tally data + indexed by filter bin, nuclide bin, and score index. The method will + order the data in the array as specified in the parameter lists + + Parameters + ---------- + scores : list + A list of one or more score strings + (e.g., ['absorption', 'nu-fission']; default is []) + + filters : list + A list of filter type strings + (e.g., ['mesh', 'energy']; default is []) + + filter_bins : list of Iterables + A list of the filter bins corresponding to the filter_types + parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin + in the list is the integer ID for 'material', 'surface', 'cell', + 'cellborn', and 'universe' Filters. Each bin is an integer for the + cell instance ID for 'distribcell' Filters. Each bin is a 2-tuple of + floats for 'energy' and 'energyout' filters corresponding to the + energy boundaries of the bin of interest. The bin is a (x,y,z) + 3-tuple for 'mesh' filters corresponding to the mesh cell of + interest. The order of the bins in the list must correspond to the + filter_types parameter. + + nuclides : list + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is []) + + value : str + A string for the type of value to return - 'mean' (default), + 'std_dev', 'rel_err', 'sum', or 'sum_sq' are accepted + + Returns + ------- + float or ndarray + A scalar or NumPy array of the Tally data indexed in the order + each filter, nuclide and score is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the Tally is populated with data + by the StatePoint.read_results() method. ValueError is also thrown + if the input parameters do not correspond to the Tally's attributes, + e.g., if the score(s) do not match those in the Tally. + + """ + + # Ensure that StatePoint.read_results() was called first + if (value == 'mean' and self.mean is None) or \ + (value == 'std_dev' and self.std_dev is None) or \ + (value == 'rel_err' and self.mean is None) or \ + (value == 'sum' and self.sum is None) or \ + (value == 'sum_sq' and self.sum_sq is None): + msg = 'The Tally ID="{0}" has no data to return. Call the ' \ + 'StatePoint.read_results() method before using ' \ + 'Tally.get_values(...)'.format(self.id) + raise ValueError(msg) + + # Get filter, nuclide and score indices + filter_indices = self.get_filter_indices(filters, filter_bins) + nuclide_indices = self.get_nuclide_indices(nuclides) + score_indices = self.get_score_indices(scores) + # Construct outer product of all three index types with each other indices = np.ix_(filter_indices, nuclide_indices, score_indices) @@ -1129,7 +1172,7 @@ class Tally(object): """ # Ensure that StatePoint.read_results() was called first - if self._sum is None or self._sum_sq is None: + if self._sum is None or self._sum_sq is None and not self.derived: msg = 'The Tally ID="{0}" has no data to export. Call the ' \ 'StatePoint.read_results() routine before using ' \ 'Tally.export_results(...)'.format(self.id) @@ -1282,11 +1325,25 @@ class Tally(object): 'since it does not contain any results.'.format(other.id) raise ValueError(msg) - new_name = '({0} {1} {2})'.format(self.name, binary_op, other.name) - new_tally = Tally(name=new_name) + new_tally = Tally() new_tally.with_batch_statistics = True new_tally._derived = True + if self.name != '' and other.name != '': + new_name = '({0} {1} {2})'.format(self.name, binary_op, other.name) + new_tally.name = new_name + + # FIXME: Align filters + self_filters = set(self.filters) + other_filters = set(other.filters) + filter_intersect = self_filters.intersection(other_filters) + + for i, filter in enumerate(filter_intersect): + self_index = self.filters.index(filter) + other_filter = other.filters[self_index] + if other_filter != filter: + other = other.swap_filters(filter, other_filter) + data = self._align_tally_data(other) if binary_op == '+': @@ -1334,10 +1391,69 @@ class Tally(object): for self_filter in self.filters: new_tally.add_filter(self_filter) else: - all_filters = [self.filters, other.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) + + match = 0 + for self_filter, other_filter in zip(self.filters, other.filters): + if self_filter == other_filter: + match += 1 + else: + break + + match_filters = self.filters[:match] + cross_filters = [self.filters[match:], other.filters[match:]] + + ''' + # FIXME: + self_filters = set(self.filters) + other_filters = set(other.filters) + diff1 = list(self_filters.difference(other_filters)) + diff2 = list(other_filters.difference(self_filters)) + symm_diff = list(other_filters.symmetric_difference(self_filters)) + ''' + + # FIXME: This must be the common longest sequence of tallies at the beginning + + for filter in match_filters: + new_tally.add_filter(filter) + + ''' + # + if len(self_filters) == 0: + for filter in self.filters: + new_tally.add_filter(filter) + for filter in self_filters: + new_tally.add_filter(filter) + # + elif len(diff2) == 0: + for filter in other.filters: + new_tally.add_filter(filter) + for filter in diff2: + new_tally.add_filter(filter) + ''' + + if len(self.filters) != match and len(other.filters) == match: + for filter in cross_filters[0]: + new_tally.add_filter(filter) + elif len(other.filters) == match and len(other.filters) != match: + for filter in cross_filters[1]: + new_tally.add_filter(filter) + else: + for self_filter, other_filter in itertools.product(*cross_filters): + new_filter = CrossFilter(self_filter, other_filter, binary_op) + new_tally.add_filter(new_filter) + + # +# else: +# all_filters = list(set([self.filters, other.filters] + ''' + if len(symm_diff) <= 1: + for filter in symm_diff: + new_tally.add_filter(filter) + else: + for self_filter, other_filter in itertools.product(*symm_diff): + new_filter = CrossFilter(self_filter, other_filter, binary_op) + new_tally.add_filter(new_filter) + ''' # Generate score "outer products" if self.scores == other.scores: @@ -1361,8 +1477,95 @@ class Tally(object): new_nuclide = CrossNuclide(self_nuclide, other_nuclide, binary_op) new_tally.add_nuclide(new_nuclide) + # Correct each Filter's stride + stride = new_tally.num_nuclides * new_tally.num_score_bins + for filter in reversed(new_tally.filters): + filter.stride = stride + stride *= filter.num_bins + return new_tally + def swap_filters(self, filter1, filter2): + """ + + :param filter1: + :param filter2: + :return: + """ + + # Check that results have been read + if not self.derived and self.sum is None: + msg = 'Unable to use tally arithmetic with Tally ID="{0}" ' \ + 'since it does not contain any results.'.format(self.id) + raise ValueError(msg) + + cv.check_type('filter1', filter1, Filter) + cv.check_type('filter2', filter2, Filter) + + if filter1 == filter2: + msg = 'Unable to swap a filter with itself' + raise ValueError(msg) + elif filter1 not in self.filters: + msg = 'Unable to swap "{0}" filter1 in Tally ID="{1}" since it ' \ + 'does not contain such a filter'.format(filter1.type, self.id) + raise ValueError(msg) + elif filter2 not in self.filters: + msg = 'Unable to swap "{0}" filter2 in Tally ID="{1}" since it ' \ + 'does not contain such a filter'.format(filter2.type, self.id) + raise ValueError(msg) + + swap_tally = copy.deepcopy(self) + + # Swap the filters in the copied version of this Tally + filter1_index = swap_tally.filters.index(filter1) + filter2_index = swap_tally.filters.index(filter2) + swap_tally.filters[filter1_index] = filter2 + swap_tally.filters[filter2_index] = filter1 + + # Update the strides for each of the filters + stride = swap_tally.num_nuclides * swap_tally.num_score_bins + for filter in reversed(swap_tally.filters): + filter.stride = stride + stride *= filter.num_bins + + filters = [filter1.type, filter2.type] + filter1_bins = np.arange(filter.num_bins) + filter2_bins = np.arange(filter2.num_bins) + + if self.sum is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(filter1.get_bin(bin1),), (filter2.get_bin(bin2),)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='sum') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally.sum[indices, :, :] = data + + if self.sum_sq is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(filter1.get_bin(bin1),), (filter2.get_bin(bin2),)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='sum_sq') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally.sum_sq[indices, :, :] = data + + if self.sum is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(filter1.get_bin(bin1),), (filter2.get_bin(bin2),)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='mean') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally._mean[indices, :, :] = data + + if self.sum is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(filter1.get_bin(bin1),), (filter2.get_bin(bin2),)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='std_dev') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally._std_dev[indices, :, :] = data + + return swap_tally + def _align_tally_data(self, other): """Aligns data from two tallies for tally arithmetic. @@ -1396,10 +1599,61 @@ class Tally(object): if self.filters != other.filters: + # FIXME: Note that this makes the assumption that common filters + # are at the beginning of each Tally's list of filters + +# match = 0 +# for i, filter_pair in enumerate(zip(self.filters, other.filters)): +# self_filter, other_filter = filter_pair +# if self_filter == other_filter: +# match += 1 +# else: +# break + +# match_filters = self.filters[:match] +# cross_filters = [self.filters[match:], other.filters[match:]] +# cross_filters.extend(other.filters[match:]) + +# other_tile_factor = 1 +# self_repeat_factor = 1 + + # FIXME: If one or the other tally has not cross filters +# repeat_factor = 1 +# for self_filter, other_filter in itertools.product(*cross_filters): +# repeat_factor *= self_filter.num_bins * other_filter.num_bins + +# other_tile_factor = repeat_factor / other.num_filter_bins +# self_repeat_factor = repeat_factor / self.num_filter_bins + +# other_tile_factor = repeat_factor +# self_repeat_factor = repeat_factor + + # +# for filter in self.filters[match:]: +# other_tile_factor *= filter.num_bins + +# for filter in other.filters[match:]: +# self_repeat_factor *= filter.num_bins + + + # FIXME: + diff1 = list(set(self.filters).difference(set(other.filters))) + diff2 = list(set(other.filters).difference(set(self.filters))) + + # + other_tile_factor = 1 + self_repeat_factor = 1 + + # + for filter in diff1: + other_tile_factor *= filter.num_bins + for filter in diff2: + self_repeat_factor *= filter.num_bins + # Determine the number of paired combinations of filter bins # between the two tallies and repeat arrays along filter axes - self_repeat_factor = other.num_filter_bins - other_tile_factor = self.num_filter_bins +# self_repeat_factor = other.num_filter_bins +# other_tile_factor = self.num_filter_bins # Replicate the data self_mean = np.repeat(self_mean, self_repeat_factor, axis=0) @@ -1923,7 +2177,7 @@ class Tally(object): floats for 'energy' and 'energyout' filters corresponding to the energy boundaries of the bin of interest. The bin is a (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of - interest. The order of the bins in the list must correspond of the + interest. The order of the bins in the list must correspond to the filter_types parameter. nuclides : list @@ -1945,21 +2199,29 @@ class Tally(object): """ # Ensure that StatePoint.read_results() was called first - if self.sum is None: + if not self.derived and self.sum is None: msg = 'Unable to use tally arithmetic with Tally ID="{0}" ' \ 'since it does not contain any results.'.format(self.id) raise ValueError(msg) new_tally = copy.deepcopy(self) - new_sum = self.get_values(scores, filters, filter_bins, - nuclides, 'sum') - new_sum_sq = self.get_values(scores, filters, filter_bins, - nuclides, 'sum_sq') - new_tally.sum = new_sum - new_tally.sum_sq = new_sum_sq - new_tally._mean = None - new_tally._std_dev = None + if self.sum is not None: + new_sum = self.get_values(scores, filters, filter_bins, + nuclides, 'sum') + new_tally.sum = new_sum + if self.sum_sq is not None: + new_sum_sq = self.get_values(scores, filters, filter_bins, + nuclides, 'sum_sq') + new_tally.sum_sq = new_sum_sq + if self.mean is not None: + new_mean = self.get_values(scores, filters, filter_bins, + nuclides, 'mean') + new_tally._mean = new_mean + if self.std_dev is not None: + new_std_dev = self.get_values(scores, filters, filter_bins, + nuclides, 'std_dev') + new_tally._std_dev = new_std_dev # SCORES if scores: @@ -2047,7 +2309,7 @@ class Tally(object): floats for 'energy' and 'energyout' filters corresponding to the energy boundaries of the bin of interest. The bin is a (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of - interest. The order of the bins in the list must correspond of the + interest. The order of the bins in the list must correspond to the filter_types parameter. nuclides : list @@ -2115,6 +2377,66 @@ class Tally(object): return tally_sum + def diagonalize_filter(self, new_filter): + """Combines filters, scores and nuclides with another tally. + + This is a helper method for the tally arithmetic methods. The filters, + scores and nuclides from both tallies are enumerated into all possible + combinations and expressed as CrossFilter, CrossScore and + CrossNuclide objects in the new derived tally. + + Parameters + ---------- + other : Tally + The tally on the right hand side of the outer product + binary_op : {'+', '-', '*', '/', '^'} + The binary operation in the outer product + + Returns + ------- + Tally + A new Tally outer that is the outer product with this one. + + """ + + cv.check_type('new_filter', new_filter, Filter) + + if new_filter in self.filters: + msg = 'Unable to diagonalize Tally ID="{0}" which already ' \ + 'contains a "{1}" filter'.format(self.id, new_filter.type) + raise ValueError(msg) + + new_tally = copy.deepcopy(self) + new_tally.add_filter(new_filter) + + num_filter_bins = new_tally.num_filter_bins + num_nuclides = new_tally.num_nuclides + num_score_bins = new_tally.num_score_bins + new_shape = (num_filter_bins, num_nuclides, num_score_bins) + + diag_indices = np.arange(0, new_tally.num_filter_bins, new_filter.num_bins+1) + + if self.sum is not None: + new_tally._sum = np.zeros(new_shape, dtype=np.float64) + new_tally._sum[diag_indices, :, :] = self.sum + if self.sum_sq is not None: + new_tally._sum_sq = np.zeros(new_shape, dtype=np.float64) + new_tally._sum_sq[diag_indices, :, :] = self.sum_sq + if self.mean is not None: + new_tally._mean = np.zeros(new_shape, dtype=np.float64) + new_tally._mean[diag_indices, :, :] = self.mean + if self.std_dev is not None: + new_tally._std_dev = np.zeros(new_shape, dtype=np.float64) + new_tally._std_dev[diag_indices, :, :] = self.std_dev + + # Correct each Filter's stride + stride = new_tally.num_nuclides * new_tally.num_score_bins + for filter in reversed(new_tally.filters): + filter.stride = stride + stride *= filter.num_bins + + return new_tally + class TalliesFile(object): """Tallies file used for an OpenMC simulation. Corresponds directly to the From 0e8eaecf2faa223aa32d1b768bd9d9c025127632 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 11 Sep 2015 16:41:11 -0400 Subject: [PATCH 11/91] Multigroup Chi class is now working and verfied for 2-groups --- openmc/filter.py | 5 +++-- openmc/mgxs/mgxs.py | 11 ++++++++--- openmc/tallies.py | 22 ++++++++++++++++------ 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 52c927bed..435d08c44 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -321,8 +321,7 @@ class Filter(object): # Filter bins for distribcell are the "IDs" of each unique placement # of the Cell in the Geometry (integers starting at 0) elif self.type == 'distribcell': - val = np.where(self.bins == filter_bin)[0][0] - filter_index = val + filter_index = filter_bin # Use ID for all other Filters (e.g., material, cell, etc.) else: @@ -363,6 +362,8 @@ class Filter(object): elif self.type in ['energy', 'energyout']: bin = (self.bins[bin_index], self.bins[bin_index+1]) + elif self.type == 'distribcell': + bin = (self.bins[0],) else: bin = (self.bins[bin_index],) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 39eb79160..d92daa5d6 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1280,14 +1280,19 @@ class Chi(MultiGroupXS): sum_nu_fission_in = nu_fission_in.summation(filters=['energy'], filter_bins=energy_bins) + + # FIXME: CrossFilter for energy + energy messes up tally arithmetic + sum_nu_fission_in.remove_filter(sum_nu_fission_in.filters[-1]) + self._xs_tally = nu_fission_out / sum_nu_fission_in # Compute the total across all groups per subdomain if self.domain_type == 'distribcell': - subdomain_indices = self.get_subdomain_indices() - filter_bins = [(i,) for i in subdomain_indices] + domain_filter = self.tallies['nu-fission-in'].filters[0] + num_subdomains = domain_filter.num_bins + filter_bins = [((i,),) for i in range(num_subdomains)] else: - filter_bins = [(self.domain,)] + filter_bins = [((self.domain,),)] # Normalize chi to 1.0 norm = self._xs_tally.summation(filters=[self.domain_type], diff --git a/openmc/tallies.py b/openmc/tallies.py index 827d98b61..c0fb1615f 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -852,6 +852,9 @@ class Tally(object): for k in range(filter.num_bins): bins.append((filter.bins[k], filter.bins[k+1])) + elif filter.type == 'distribcell': + bins = np.arange(filter.num_bins) + # Create list of IDs for bins for all other Filter types else: bins = filter.bins @@ -1529,12 +1532,19 @@ class Tally(object): stride *= filter.num_bins filters = [filter1.type, filter2.type] - filter1_bins = np.arange(filter.num_bins) - filter2_bins = np.arange(filter2.num_bins) + if filter1.type == 'distribcell': + filter1_bins = np.arange(filter.num_bins) + else: + filter1_bins = [(filter1.get_bin(i)) for i in range(filter1.num_bins)] + + if filter1.type == 'distribcell': + filter2_bins = np.arange(filter2.num_bins) + else: + filter2_bins = [filter2.get_bin(i) for i in range(filter2.num_bins)] if self.sum is not None: for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): - filter_bins = [(filter1.get_bin(bin1),), (filter2.get_bin(bin2),)] + filter_bins = [(bin1,), (bin2,)] data = self.get_values(filters=filters, filter_bins=filter_bins, value='sum') indices = swap_tally.get_filter_indices(filters, filter_bins) @@ -1542,7 +1552,7 @@ class Tally(object): if self.sum_sq is not None: for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): - filter_bins = [(filter1.get_bin(bin1),), (filter2.get_bin(bin2),)] + filter_bins = [(bin1,), (bin2,)] data = self.get_values(filters=filters, filter_bins=filter_bins, value='sum_sq') indices = swap_tally.get_filter_indices(filters, filter_bins) @@ -1550,7 +1560,7 @@ class Tally(object): if self.sum is not None: for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): - filter_bins = [(filter1.get_bin(bin1),), (filter2.get_bin(bin2),)] + filter_bins = [(bin1,), (bin2,)] data = self.get_values(filters=filters, filter_bins=filter_bins, value='mean') indices = swap_tally.get_filter_indices(filters, filter_bins) @@ -1558,7 +1568,7 @@ class Tally(object): if self.sum is not None: for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): - filter_bins = [(filter1.get_bin(bin1),), (filter2.get_bin(bin2),)] + filter_bins = [(bin1,), (bin2,)] data = self.get_values(filters=filters, filter_bins=filter_bins, value='std_dev') indices = swap_tally.get_filter_indices(filters, filter_bins) From 6d3d794c3e8e6544e98af6535e069b6c33e851bc Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 11 Sep 2015 16:52:36 -0400 Subject: [PATCH 12/91] Corrected energy normalization for mulit-group chi calculatoin --- openmc/mgxs/mgxs.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d92daa5d6..b37a5880c 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1286,17 +1286,13 @@ class Chi(MultiGroupXS): self._xs_tally = nu_fission_out / sum_nu_fission_in - # Compute the total across all groups per subdomain - if self.domain_type == 'distribcell': - domain_filter = self.tallies['nu-fission-in'].filters[0] - num_subdomains = domain_filter.num_bins - filter_bins = [((i,),) for i in range(num_subdomains)] - else: - filter_bins = [((self.domain,),)] - # Normalize chi to 1.0 - norm = self._xs_tally.summation(filters=[self.domain_type], - filter_bins=filter_bins) + norm = self._xs_tally.summation(filters=['energyout'], + filter_bins=energy_bins) + + # FIXME: CrossFilter for energy + energy messes up tally arithmetic + norm.remove_filter(sum_nu_fission_in.filters[-1]) + self._xs_tally /= norm self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) From 85a67ce17b79438f4f788148fce4e6679a471627 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 12 Sep 2015 02:04:21 -0400 Subject: [PATCH 13/91] Added Tally.tile_filter(...) routine for multi-group chi with distribcells --- openmc/mgxs/mgxs.py | 11 ++++++- openmc/tallies.py | 77 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 86 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b37a5880c..c837bf085 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1059,6 +1059,7 @@ class ScatterMatrixXS(MultiGroupXS): scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) energy_filter = openmc.Filter(type='energy') energy_filter.bins = self.energy_groups.group_edges + energy_filter.num_bins = self.num_groups scatter_p1 = scatter_p1.diagonalize_filter(energy_filter) rxn_tally = self.tallies['scatter'] - scatter_p1 else: @@ -1281,6 +1282,9 @@ class Chi(MultiGroupXS): sum_nu_fission_in = nu_fission_in.summation(filters=['energy'], filter_bins=energy_bins) + # FIXME: Need ability to override energy groups with group numbers + # FIXME: Reverse from fast to thermal with energy groups + # FIXME: CrossFilter for energy + energy messes up tally arithmetic sum_nu_fission_in.remove_filter(sum_nu_fission_in.filters[-1]) @@ -1291,7 +1295,12 @@ class Chi(MultiGroupXS): filter_bins=energy_bins) # FIXME: CrossFilter for energy + energy messes up tally arithmetic - norm.remove_filter(sum_nu_fission_in.filters[-1]) + norm.remove_filter(norm.filters[-1]) + + energy_filter = openmc.Filter(type='energyout') + energy_filter.bins = self.energy_groups.group_edges + energy_filter.num_bins = self.num_groups + norm = norm.tile_filter(energy_filter) self._xs_tally /= norm self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) diff --git a/openmc/tallies.py b/openmc/tallies.py index c0fb1615f..28a89af91 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2387,6 +2387,74 @@ class Tally(object): return tally_sum + def tile_filter(self, new_filter): + """Combines filters, scores and nuclides with another tally. + + This is a helper method for the tally arithmetic methods. The filters, + scores and nuclides from both tallies are enumerated into all possible + combinations and expressed as CrossFilter, CrossScore and + CrossNuclide objects in the new derived tally. + + Parameters + ---------- + other : Tally + The tally on the right hand side of the outer product + binary_op : {'+', '-', '*', '/', '^'} + The binary operation in the outer product + + Returns + ------- + Tally + A new Tally outer that is the outer product with this one. + + """ + + cv.check_type('new_filter', new_filter, Filter) + + if new_filter in self.filters: + msg = 'Unable to tile Tally ID="{0}" which already ' \ + 'contains a "{1}" filter'.format(self.id, new_filter.type) + raise ValueError(msg) + + new_tally = copy.deepcopy(self) + new_tally.add_filter(new_filter) + + num_filter_bins = new_tally.num_filter_bins + num_nuclides = new_tally.num_nuclides + num_score_bins = new_tally.num_score_bins + new_shape = (num_filter_bins, num_nuclides, num_score_bins) + + repeat_indices = np.arange(0, new_tally.num_bins, new_filter.num_bins) + repeat_factor = new_filter.num_bins + + if self.sum is not None: + new_tally._sum = np.zeros(new_shape, dtype=np.float64) + if self.sum_sq is not None: + new_tally._sum_sq = np.zeros(new_shape, dtype=np.float64) + if self.mean is not None: + new_tally._mean = np.zeros(new_shape, dtype=np.float64) + if self.std_dev is not None: + new_tally._std_dev = np.zeros(new_shape, dtype=np.float64) + + for i in range(repeat_factor): + if self.sum is not None: + new_tally._sum[repeat_indices+i, :, :] = self.sum + if self.sum_sq is not None: + new_tally._sum_sq[repeat_indices+i, :, :] = self.sum_sq + if self.mean is not None: + new_tally._mean[repeat_indices+i, :, :] = self.mean + if self.std_dev is not None: + new_tally._std_dev[repeat_indices+i, :, :] = self.std_dev + + # Correct each Filter's stride + stride = new_tally.num_nuclides * new_tally.num_score_bins + for filter in reversed(new_tally.filters): + filter.stride = stride + stride *= filter.num_bins + + return new_tally + + def diagonalize_filter(self, new_filter): """Combines filters, scores and nuclides with another tally. @@ -2424,7 +2492,14 @@ class Tally(object): num_score_bins = new_tally.num_score_bins new_shape = (num_filter_bins, num_nuclides, num_score_bins) - diag_indices = np.arange(0, new_tally.num_filter_bins, new_filter.num_bins+1) + indices = np.arange(0, new_filter.num_bins**2, new_filter.num_bins+1) + diag_indices = np.zeros(self.num_bins, dtype=np.int) + diag_factor = self.num_bins / new_filter.num_bins + + for i in range(diag_factor): + start = i * new_filter.num_bins + end = (i+1) * new_filter.num_bins + diag_indices[start:end] = indices + (i * new_filter.num_bins**2) if self.sum is not None: new_tally._sum = np.zeros(new_shape, dtype=np.float64) From 17317a7a31e71592b2c57f135e4d179d43662785 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 12 Sep 2015 02:31:25 -0400 Subject: [PATCH 14/91] Now using tally merging and slicing for openmc.mgxs --- openmc/mgxs/mgxs.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c837bf085..d77523261 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -657,8 +657,9 @@ class MultiGroupXS(object): # Find and store Tallies in StatePoint for tally_type, tally in self.tallies.items(): sp_tally = statepoint.get_tally(tally.scores, tally.filters, - tally.nuclides, - estimator=tally.estimator) + tally.nuclides, + estimator=tally.estimator) + sp_tally = sp_tally.get_slice(scores=tally.scores, nuclides=tally.nuclides) self.tallies[tally_type] = sp_tally def build_hdf5_store(self, filename='mgxs', directory='mgxs', From db6e07917fe5b42afa264081f1c9a9679fad924a Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 12 Sep 2015 21:02:13 -0400 Subject: [PATCH 15/91] Cleaned up tally arithmetic cross-product classes __init__, __hash__, __eq__ routines --- openmc/constants.py | 2 +- openmc/cross.py | 127 +++++++++++++++++++++++++++++++------- openmc/filter.py | 147 +++++++++++++++++++++++++++++--------------- openmc/tallies.py | 2 +- 4 files changed, 203 insertions(+), 75 deletions(-) diff --git a/openmc/constants.py b/openmc/constants.py index a6b535e6d..80f56088b 100644 --- a/openmc/constants.py +++ b/openmc/constants.py @@ -120,4 +120,4 @@ SCORE_TYPES.update({MT: '(n,p' + str(MT-600) + ')' for MT in range(600,649)}) SCORE_TYPES.update({MT: '(n,d' + str(MT-650) + ')' for MT in range(650,699)}) SCORE_TYPES.update({MT: '(n,t' + str(MT-700) + ')' for MT in range(700,749)}) SCORE_TYPES.update({MT: '(n,3He' + str(MT-750) + ')' for MT in range(750,649)}) -SCORE_TYPES.update({MT: '(n,a' + str(MT-800) + ')' for MT in range(800,849)}) +SCORE_TYPES.update({MT: '(n,a' + str(MT-800) + ')' for MT in range(800,849)}) \ No newline at end of file diff --git a/openmc/cross.py b/openmc/cross.py index cb1e4930b..035ef43ab 100644 --- a/openmc/cross.py +++ b/openmc/cross.py @@ -1,4 +1,15 @@ +import sys + from openmc import Filter, Nuclide +from openmc.constants import FILTER_TYPES +import openmc.checkvalue as cv + + +if sys.version_info[0] >= 3: + basestring = str + +# Acceptable tally arithmetic binary operations +TALLY_ARITHMETIC_OPS = ['+', '-', '*', '/', '^'] class CrossScore(object): @@ -40,6 +51,33 @@ class CrossScore(object): if binary_op is not None: self.binary_op = binary_op + def __hash__(self): + return hash(str(self)) + + def __eq__(self, other): + return str(other) == str(self) + + def __ne__(self, other): + return not self == other + + def __deepcopy__(self, memo): + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy this object, create a copy + if existing is None: + clone = type(self).__new__(type(self)) + clone._left_score = self.left_score + clone._right_score = self.right_score + clone._binary_op = self.binary_op + + memo[id(self)] = clone + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + @property def left_score(self): return self._left_score @@ -54,19 +92,20 @@ class CrossScore(object): @left_score.setter def left_score(self, left_score): + cv.check_type('left_score', left_score, (basestring, CrossScore)) self._left_score = left_score @right_score.setter def right_score(self, right_score): + cv.check_type('right_score', right_score, (basestring, CrossScore)) self._right_score = right_score @binary_op.setter def binary_op(self, binary_op): + cv.check_type('binary_op', binary_op, (basestring, CrossScore)) + cv.check_value('binary_op', binary_op, TALLY_ARITHMETIC_OPS) self._binary_op = binary_op - def __eq__(self, other): - return str(other) == str(self) - def __repr__(self): string = '({0} {1} {2})'.format(self.left_score, self.binary_op, self.right_score) @@ -75,7 +114,7 @@ class CrossScore(object): class CrossNuclide(object): """A special-purpose nuclide used to encapsulate all combinations of two - tally's nuclides as a outer product for tally arithmetic. + tally's nuclides as an outer product for tally arithmetic. Parameters ---------- @@ -112,6 +151,33 @@ class CrossNuclide(object): if binary_op is not None: self.binary_op = binary_op + def __hash__(self): + return hash(str(self)) + + def __eq__(self, other): + return str(other) == str(self) + + def __ne__(self, other): + return not self == other + + def __deepcopy__(self, memo): + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy this object, create a copy + if existing is None: + clone = type(self).__new__(type(self)) + clone._left_nuclide = self.left_nuclide + clone._right_nuclide = self.right_nuclide + clone._binary_op = self.binary_op + + memo[id(self)] = clone + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + @property def left_nuclide(self): return self._left_nuclide @@ -126,14 +192,18 @@ class CrossNuclide(object): @left_nuclide.setter def left_nuclide(self, left_nuclide): + cv.check_type('left_nuclide', left_nuclide, (Nuclide, CrossNuclide)) self._left_nuclide = left_nuclide @right_nuclide.setter def right_nuclide(self, right_nuclide): + cv.check_type('right_nuclide', right_nuclide, (Nuclide, CrossNuclide)) self._right_nuclide = right_nuclide @binary_op.setter def binary_op(self, binary_op): + cv.check_type('binary_op', binary_op, basestring) + cv.check_value('binary_op', binary_op, TALLY_ARITHMETIC_OPS) self._binary_op = binary_op def __eq__(self, other): @@ -164,7 +234,7 @@ class CrossNuclide(object): class CrossFilter(object): """A special-purpose filter used to encapsulate all combinations of two - tally's filter bins as a outer product for tally arithmetic. + tally's filter bins as an outer product for tally arithmetic. Parameters ---------- @@ -195,25 +265,34 @@ class CrossFilter(object): self._type = '({0} {1} {2})'.format(left_type, binary_op, right_type) self._bins = {} - self._bins['left'] = left_filter.bins - self._bins['right'] = right_filter.bins - self._num_bins = left_filter.num_bins * right_filter.num_bins self._stride = None self._left_filter = None self._right_filter = None self._binary_op = None + self._num_bins = 0 if left_filter is not None: self.left_filter = left_filter + self.bins['left'] = left_filter.bins if right_filter is not None: self.right_filter = right_filter + self.bins['right'] = right_filter.bins if binary_op is not None: self.binary_op = binary_op + if self.left_filter is not None and self.right_filter is not None: + self._num_bins = left_filter.num_bins * right_filter.num_bins + def __hash__(self): return hash((self.left_filter, self.right_filter)) + def __eq__(self, other): + return str(other) == str(self) + + def __ne__(self, other): + return not self == other + def __deepcopy__(self, memo): existing = memo.get(id(self)) @@ -222,6 +301,7 @@ class CrossFilter(object): clone = type(self).__new__(type(self)) clone._left_filter = self.left_filter clone._right_filter = self.right_filter + clone._binary_op = self.binary_op clone._type = self.type clone._bins = self.bins clone._num_bins = self.num_bins @@ -262,34 +342,36 @@ class CrossFilter(object): @property def stride(self): return self._stride -# return self.left_filter.stride * self.right_filter.stride @type.setter def type(self, filter_type): + if filter_type not in FILTER_TYPES.values(): + msg = 'Unable to set Filter type to "{0}" since it is not one ' \ + 'of the supported types'.format(type) + raise ValueError(msg) + self._type = filter_type @left_filter.setter def left_filter(self, left_filter): + cv.check_type('left_filter', left_filter, (Filter, CrossFilter)) self._left_filter = left_filter @right_filter.setter def right_filter(self, right_filter): + cv.check_type('right_filter', right_filter, (Filter, CrossFilter)) self._right_filter = right_filter @binary_op.setter def binary_op(self, binary_op): + cv.check_type('binary_op', binary_op, basestring) + cv.check_value('binary_op', binary_op, TALLY_ARITHMETIC_OPS) self._binary_op = binary_op @stride.setter def stride(self, stride): self._stride = stride - def __eq__(self, other): - return str(other) == str(self) - - def __ne__(self, other): - return not self == other - def get_bin_index(self, filter_bin): """Returns the index in the CrossFilter for some bin. @@ -307,7 +389,7 @@ class CrossFilter(object): Returns ------- - filter_index : int + filter_index : Integral The index in the Tally data array for this filter bin. """ @@ -323,12 +405,12 @@ class CrossFilter(object): This method constructs a Pandas DataFrame object for the CrossFilter with columns annotated by filter bin information. This is a helper method for the Tally.get_pandas_dataframe(...) routine. This method - recursively builds and concatenates the Pandas DataFrames for left + recursively builds and concatenates Pandas DataFrames for the left and right filters and crossfilters. 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 - uses the Multi-index Pandas feature. + uses Pandas' Multi-index functionality. Parameters ---------- @@ -339,17 +421,17 @@ class CrossFilter(object): 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. + column with a geometric "path" to each distribcell instance. NOTE: This option requires the OpenCG Python package. Returns ------- pandas.DataFrame A Pandas DataFrame with columns of strings that characterize the - crossfilter's bins. Each entry in the DataFrame will include the one + crossfilter's bins. Each entry in the DataFrame will include one or more binary operations used to construct the crossfilter's bins. The number of rows in the DataFrame is the same as the total number - of bins in the corresponding tally, with the filter bin + of bins in the corresponding tally, with the filter bins appropriately tiled to map to the corresponding tally bins. See also @@ -361,6 +443,7 @@ class CrossFilter(object): # If left and right filters are identical, do not combine bins if self.left_filter == self.right_filter: df = self.left_filter.get_pandas_dataframe(datasize, summary) + # If left and right filters are different, combine their bins else: left_df = self.left_filter.get_pandas_dataframe(datasize, summary) @@ -382,4 +465,4 @@ class CrossFilter(object): self.right_filter.bins) string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', filter_type) string += '{0: <16}{1}{2}\n'.format('\tBins', '=\t', filter_bins) - return string + return string \ No newline at end of file diff --git a/openmc/filter.py b/openmc/filter.py index 435d08c44..bcbe61eb8 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -1,6 +1,7 @@ from collections import Iterable import copy from numbers import Real, Integral +import sys import numpy as np @@ -10,9 +11,13 @@ from openmc.constants import * import openmc.checkvalue as cv +if sys.version_info[0] >= 3: + basestring = str + + class Filter(object): - """A filter used to constrain a tally to a specific criterion, e.g. only tally - events when the particle is in a certain cell and energy range. + """A filter used to constrain a tally to a specific criterion, e.g. only + tally events when the particle is in a certain cell and energy range. Parameters ---------- @@ -20,28 +25,42 @@ class Filter(object): The type of the tally filter. Acceptable values are "universe", "material", "cell", "cellborn", "surface", "mesh", "energy", "energyout", and "distribcell". - bins : int or Iterable of int or Iterable of float + bins : Integral or Iterable of Integral or Iterable of Real The bins for the filter. This takes on different meaning for different - filters. + filters. See the OpenMC online documentation for more details. Attributes ---------- type : str The type of the tally filter. - bins : int or Iterable of int or Iterable of float + bins : Integral or Iterable of Integral or Iterable of float The bins for the filter + mesh : Mesh or None + A Mesh object for 'mesh' type filters. + offset : Integral + A value used to index tally bins for 'distribcell' tallies. + stride : Integral + The number of filter, nuclide and score bins within each of this + filter's bins. """ # Initialize Filter class attributes def __init__(self, type=None, bins=None): - self.type = type + + self._type = None self._num_bins = 0 - self.bins = bins + self._bins = None + self._bins = None self._mesh = None self._offset = -1 self._stride = None + if type is not None: + self.type = type + if bins is not None: + self.bins = bins + def __eq__(self, other): if not isinstance(other, Filter): return False @@ -58,7 +77,7 @@ class Filter(object): return not self == other def __hash__(self): - return hash((self._type, tuple(self._bins))) + return hash((self.type, tuple(self.bins))) def __deepcopy__(self, memo): existing = memo.get(id(self)) @@ -107,9 +126,7 @@ class Filter(object): @type.setter def type(self, type): - if type is None: - self._type = type - elif type not in FILTER_TYPES.values(): + if type not in FILTER_TYPES.values(): msg = 'Unable to set Filter type to "{0}" since it is not one ' \ 'of the supported types'.format(type) raise ValueError(msg) @@ -118,10 +135,7 @@ class Filter(object): @bins.setter def bins(self, bins): - if bins is None: - self.num_bins = 0 - return - elif self._type is None: + if self.type is None: msg = 'Unable to set bins for Filter to "{0}" since ' \ 'the Filter type has not yet been set'.format(bins) raise ValueError(msg) @@ -140,7 +154,7 @@ class Filter(object): for edge in bins: cv.check_greater_than('filter bin', edge, 0, equality=True) - elif self._type in ['energy', 'energyout']: + elif self.type in ['energy', 'energyout']: for edge in bins: if not isinstance(edge, Real): msg = 'Unable to add bin edge "{0}" to a "{1}" Filter ' \ @@ -161,7 +175,7 @@ class Filter(object): raise ValueError(msg) # mesh filters - elif self._type == 'mesh': + elif self.type == 'mesh': if not len(bins) == 1: msg = 'Unable to add bins "{0}" to a mesh Filter since ' \ 'only a single mesh can be used per tally'.format(bins) @@ -178,7 +192,6 @@ class Filter(object): # If all error checks passed, add bin edges self._bins = np.array(bins) - # FIXME @num_bins.setter def num_bins(self, num_bins): cv.check_type('filter num_bins', num_bins, Integral) @@ -280,20 +293,24 @@ class Filter(object): Parameters ---------- - filter_bin : int or tuple + filter_bin : Integral or tuple The bin is the 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 floats for 'energy' and 'energyout' filters corresponding to the - energy boundaries of the bin of interest. The bin is a (x,y,z) - 3-tuple for 'mesh' filters corresponding to the mesh cell of + energy boundaries of the bin of interest. The bin is an (x,y,z) + 3-tuple for 'mesh' filters corresponding to the mesh cell interest. Returns ------- - filter_index : int + filter_index : Integral The index in the Tally data array for this filter bin. + See also + -------- + Filter.get_bin() + """ try: @@ -318,7 +335,7 @@ class Filter(object): val = np.where(self.bins == filter_bin[0])[0][0] filter_index = val - # Filter bins for distribcell are the "IDs" of each unique placement + # Filter bins for distribcells are "IDs" of each unique placement # of the Cell in the Geometry (integers starting at 0) elif self.type == 'distribcell': filter_index = filter_bin @@ -330,16 +347,42 @@ class Filter(object): except ValueError: msg = 'Unable to get the bin index for Filter since "{0}" ' \ - 'is not one of the bins'.format(filter_bin) + 'is not one of the bins'.format(filter_bin) raise ValueError(msg) return filter_index def get_bin(self, bin_index): - """ + """Returns the filter bin for some filter bin index. + + Parameters + ---------- + bin_index : Integral + The zero-based index into the filter's array of bins. The bin + index for 'material', 'surface', 'cell', 'cellborn', and 'universe' + filters corresponds to the ID in the filter's list of bins. For + 'distribcell' tallies the bin_index necessarily can only be zero + since only one cell can be tracked per tally. The bin index for + 'energy' and 'energyout' filters corresponds to the energy range of + interest in the filter bins of energies. The bin index for 'mesh' + filters is the index into the flattened array of (x,y) or (x,y,z) + mesh cell bins. + + Returns + ------- + bin : 1-, 2-, or 3-tuple of Real + The bin in the Tally data array. The bin for 'material', surface', + 'cell', 'cellborn', 'universe' and 'distribcell' filters is a + 1-tuple of the ID corresponding to the appropriate filter bin. + The bin for 'energy' and 'energyout' filters is a 2-tuple of the + lower and upper energies bounding the energy interval for the filter + bin. The bin for 'mesh' tallies is a 2-tuple or 3-tuple of the x,y + or x,y,z mesh cell indices corresponding to the bin in a 2D/3D mesh. + + See also + -------- + Filter.get_bin_index() - :param bin_index: - :return: """ cv.check_type('bin_index', bin_index, Integral) @@ -353,33 +396,32 @@ class Filter(object): x = bin_index / (ny * nz) y = (bin_index - (x * ny * nz)) / nz z = bin_index - (x * ny * nz) - (y * nz) - bin = (x, y, z) + filter_bin = (x, y, z) else: nx, ny = self.mesh.dimension x = bin_index / ny y = bin_index - (x * ny) - bin = (x, y) + filter_bin = (x, y) elif self.type in ['energy', 'energyout']: - bin = (self.bins[bin_index], self.bins[bin_index+1]) + filter_bin = (self.bins[bin_index], self.bins[bin_index+1]) elif self.type == 'distribcell': - bin = (self.bins[0],) + filter_bin = (self.bins[0],) else: - bin = (self.bins[bin_index],) + filter_bin = (self.bins[bin_index],) - return bin + return filter_bin def get_pandas_dataframe(self, data_size, summary=None): """Builds a Pandas DataFrame for the Filter's bins. - This method constructs a Pandas DataFrame object for the Filter with + 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(...) routine. 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 - uses the Multi-index Pandas feature. - + uses Pandas' Multi-index functionality. Parameters ---------- @@ -390,7 +432,7 @@ class Filter(object): 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. + column with a geometric "path" to each distribcell instance. NOTE: This option requires the OpenCG Python package. Returns @@ -405,23 +447,23 @@ class Filter(object): filters, the DataFrame includes a single column with the cell, surface, material or universe ID corresponding to each filter bin. - For 'mesh' filters, the DataFrame includes three columns for the - x,y,z mesh cell indices corresponding to each filter bin. + For 'distribcell' filters, the DataFrame either includes: + 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). For 'energy' and 'energyout' filters, the DataFrame include a single column with each element comprising a string with the lower, upper energy bounds for each filter bin. - For 'distribcell' filters, the DataFrame either includes: - 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) + For 'mesh' filters, the DataFrame includes three columns for the + x,y,z mesh cell indices corresponding to each filter bin. Raises ------ ImportError - When Pandas cannot is not installed, or summary info is requested - but OpenCG is not installed. + When Pandas is not installed, or summary info is requested but + OpenCG is not installed. See also -------- @@ -429,13 +471,14 @@ class Filter(object): """ - # Attempt to import the pandas package + # Attempt to import Pandas try: import pandas as pd except ImportError: msg = 'The pandas Python package must be installed on your system' raise ImportError(msg) + # Initialize Pandas DataFrame df = pd.DataFrame() # mesh filters @@ -614,12 +657,14 @@ class Filter(object): tile_factor = data_size / len(filter_bins) filter_bins = np.tile(filter_bins, tile_factor) filter_bins = filter_bins - if level_df is None: - df = pd.DataFrame({self.type :filter_bins}) - else: + df = pd.DataFrame({self.type : filter_bins}) + + # If OpenCG level info DataFrame was created, concatenate + # with DataFrame of distribcell instance IDs + if level_df is not None: level_df = level_df.dropna(axis=1, how='all') level_df = level_df.astype(np.int) - df = pd.concat([level_df, pd.DataFrame({self.type :filter_bins})], axis=1) + df = pd.concat([level_df, df], axis=1) # energy, energyout filters elif 'energy' in self.type: @@ -645,7 +690,7 @@ class Filter(object): tile_factor = data_size / len(filter_bins) filter_bins = np.tile(filter_bins, tile_factor) filter_bins = filter_bins - df = pd.concat([df, pd.DataFrame({self.type :filter_bins})]) + df = pd.concat([df, pd.DataFrame({self.type : filter_bins})]) return df diff --git a/openmc/tallies.py b/openmc/tallies.py index 28a89af91..9b3056818 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -78,8 +78,8 @@ class Tally(object): mean : ndarray An array containing the sample mean for each bin std_dev : ndarray - An array containing the sample standard deviation for each bin + An array containing the sample standard deviation for each bin """ def __init__(self, tally_id=None, name=''): From d41f0a92e3adfcc10500221ed657f22abd40aeee Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 12 Sep 2015 21:05:10 -0400 Subject: [PATCH 16/91] Fixed bug in bins property decorator for CrossFilter --- openmc/cross.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/cross.py b/openmc/cross.py index 035ef43ab..fa1ce6e63 100644 --- a/openmc/cross.py +++ b/openmc/cross.py @@ -274,10 +274,10 @@ class CrossFilter(object): if left_filter is not None: self.left_filter = left_filter - self.bins['left'] = left_filter.bins + self._bins['left'] = left_filter.bins if right_filter is not None: self.right_filter = right_filter - self.bins['right'] = right_filter.bins + self._bins['right'] = right_filter.bins if binary_op is not None: self.binary_op = binary_op @@ -333,7 +333,7 @@ class CrossFilter(object): @property def bins(self): - return (self._bins['left'], self._bins['right']) + return self._bins['left'], self._bins['right'] @property def num_bins(self): From a886a16b04b6374d519f26750493d6b0b59a147d Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 12 Sep 2015 21:36:19 -0400 Subject: [PATCH 17/91] Improved comments for Python API openmc.mgxs.EnergyGroups class --- openmc/constants.py | 2 +- openmc/mesh.py | 1 + openmc/mgxs/groups.py | 37 +++++++++++++++++++++++++++---------- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/openmc/constants.py b/openmc/constants.py index 80f56088b..a6b535e6d 100644 --- a/openmc/constants.py +++ b/openmc/constants.py @@ -120,4 +120,4 @@ SCORE_TYPES.update({MT: '(n,p' + str(MT-600) + ')' for MT in range(600,649)}) SCORE_TYPES.update({MT: '(n,d' + str(MT-650) + ')' for MT in range(650,699)}) SCORE_TYPES.update({MT: '(n,t' + str(MT-700) + ')' for MT in range(700,749)}) SCORE_TYPES.update({MT: '(n,3He' + str(MT-750) + ')' for MT in range(750,649)}) -SCORE_TYPES.update({MT: '(n,a' + str(MT-800) + ')' for MT in range(800,849)}) \ No newline at end of file +SCORE_TYPES.update({MT: '(n,a' + str(MT-800) + ')' for MT in range(800,849)}) diff --git a/openmc/mesh.py b/openmc/mesh.py index ddf3529c2..961b1519f 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -8,6 +8,7 @@ import numpy as np import openmc.checkvalue as cv + if sys.version_info[0] >= 3: basestring = str diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index be1ffd162..a989d27e9 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -17,7 +17,7 @@ class EnergyGroups(object): Parameters ---------- - group_edges : NumPy array + group_edges : ndarray The energy group boundaries [MeV] num_groups : Integral The number of energy groups @@ -31,17 +31,23 @@ class EnergyGroups(object): """ - def __init__(self): + def __init__(self, group_edges=None, num_groups=None): self._group_edges = None self._num_groups = None + if group_edges is not None: + self.group_edges = group_edges + if num_groups is not None: + self.num_groups = num_groups + def __deepcopy__(self, memo): existing = memo.get(id(self)) # If this is the first time we have tried to copy object, create copy if existing is None: clone = type(self).__new__(type(self)) - clone.group_edges = copy.deepcopy(self.group_edges, memo) + clone._group_edges = copy.deepcopy(self.group_edges, memo) + clone._num_groups = self.num_groups memo[id(self)] = clone @@ -71,6 +77,14 @@ class EnergyGroups(object): return False elif self.group_edges != other.group_edges: return False + else: + return True + + def __ne__(self, other): + return not self == other + + def __hash__(self): + return hash(tuple(self.group_edges)) def generate_bin_edges(self, start, stop, num_groups, spacing='linear'): """Generate equally or logarithmically-spaced energy group boundaries. @@ -126,7 +140,7 @@ class EnergyGroups(object): """ if self.group_edges is None: - msg = 'Unable to get energy group for energy "{0}" eV since ' \ + msg = 'Unable to get energy group for energy "{0}" MeV since ' \ 'the group edges have not yet been set'.format(energy) raise ValueError(msg) @@ -174,7 +188,7 @@ class EnergyGroups(object): Returns ------- - NumPy.ndarray + ndarray The NumPy array indices for each energy group of interest Raises @@ -193,11 +207,11 @@ class EnergyGroups(object): if groups == 'all': indices = np.arange(self.num_groups) else: - indices = np.zeros(len(groups), dtype=np.int64) + indices = np.zeros(len(groups), dtype=np.int) for i, group in enumerate(groups): cv.check_greater_than('group', group, 0) - cv.check_less_than('group', group, self.num_groups, True) + cv.check_less_than('group', group, self.num_groups, equality=True) indices[i] = group - 1 return indices @@ -211,11 +225,13 @@ class EnergyGroups(object): Parameters ---------- - coarse_groups : list + coarse_groups : Iterable of 2-tuple The energy groups of interest - a list of 2-tuples, each directly corresponding to one of the new coarse groups. The values in the 2-tuples are upper/lower energy groups used to construct a new - coarse group. + coarse group. For example, if [(1,2), (2,4)] was used as the coarse + groups, fine groups 1 and 2 would be merged into coarse group 1 + while fine groups 3 and 4 would be merged into coarse group 2. Returns ------- @@ -230,7 +246,7 @@ class EnergyGroups(object): cv.check_type('group edges', coarse_groups, Iterable) for group in coarse_groups: - cv.check_value('group edges', group, Iterable) + cv.check_type('group edges', group, Iterable) cv.check_length('group edges', group, 2) cv.check_greater_than('lower group', group[0], 1, True) cv.check_less_than('lower group', group[0], self.num_groups, True) @@ -257,4 +273,5 @@ class EnergyGroups(object): # Create a new condensed EnergyGroups object condensed_groups = EnergyGroups() condensed_groups.group_edges = group_edges + return condensed_groups \ No newline at end of file From 665b8226e86d88a7b6e485b596f144ece0bfbe7b Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 12 Sep 2015 22:16:41 -0400 Subject: [PATCH 18/91] Improvements to docstrings for openmc.mgxs.MultiGroupXS --- openmc/mgxs/mgxs.py | 399 ++++++++++++++++++++++---------------------- 1 file changed, 203 insertions(+), 196 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d77523261..e0ffb6431 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -17,31 +17,18 @@ if sys.version_info[0] >= 3: basestring = str -# Supported cross-section types -XS_TYPES = ('total', - 'transport', - 'absorption', - 'capture', - 'scatter', - 'nu-scatter', - 'scatter matrix', - 'nu-scatter matrix', - 'fission', - 'nu-fission', - 'chi') - # Supported domain types -DOMAIN_TYPES = ('cell', +DOMAIN_TYPES = ['cell', 'distribcell', 'universe', 'material', - 'mesh') + 'mesh'] # Supported domain objects -DOMAINS = (openmc.Cell, +DOMAINS = [openmc.Cell, openmc.Universe, openmc.Material, - openmc.Mesh) + openmc.Mesh] # LaTeX Greek symbols for each cross-section type GREEK = dict() @@ -59,7 +46,7 @@ GREEK['chi'] = '$\\chi$' class MultiGroupXS(object): - """A multi-group cross-section for some energy groups structure within + """A multi-group cross-section for some energy group structure within some spatial domain. This class can be used for both OpenMC input generation and tally data @@ -68,15 +55,15 @@ class MultiGroupXS(object): Parameters ---------- - name : str, optional - Name of the multi-group cross-section. If not specified, the name is - the empty string. domain : Material or Cell or Universe or Mesh The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe' or 'mesh'} The domain type for spatial homogenization energy_groups : EnergyGroups The energy group structure for energy condensation + name : str, optional + Name of the multi-group cross-section. Used as a label to identify + tallies in OpenMC tallies.xml file. Attributes ---------- @@ -93,16 +80,16 @@ class MultiGroupXS(object): num_groups : Integral Number of energy groups tallies : dict - Tallies needed to compute the multi-group cross-section - xs : Tally + OpenMC tallies needed to compute the multi-group cross-section + xs_tally : Tally Derived tally for the multi-group cross-section. This attribute is None unless the multi-group cross-section has been computed. - subdomain_offsets : dict - Integral subdomain IDs (keys) mapped to integral tally data array - offsets (values). When the domain_type is 'distribcell', each subdomain - ID corresponds to an instance of the cell domain. For all other domain - types, there is only one subdomain for the domain and this dictionary - will trivially map zero to zero. + subdomain_indices : dict + Integer subdomain IDs (keys) mapped to integer tally data array + indices (values) for 'distribcell' domain types. Each subdomain ID + corresponds to an instance of the cell domain. For all other domain + types, the domain has only one subdomain and this dictionary will + trivially map zero to zero. offset : Integral The filter offset for the domain filter @@ -124,7 +111,7 @@ class MultiGroupXS(object): self._xs_tally = None # A dictionary used to compute indices into the xs array - # Keys - Domain ID (ie, Material ID, Region ID for districell, etc) + # Keys - Domain ID (ie, maaterial ID, distribcell instance ID, etc) # Values - Offset/stride into xs array # NOTE: This is primarily used for distribcell domain types self._subdomain_indices = dict() @@ -150,7 +137,7 @@ class MultiGroupXS(object): clone._domain_type = self.domain_type clone._energy_groups = copy.deepcopy(self.energy_groups, memo) clone._num_groups = self.num_groups - clone._xs_tally = copy.deepcopy(self._xs_tally, memo) + clone._xs_tally = copy.deepcopy(self.xs_tally, memo) clone._subdomain_indices = \ copy.deepcopy(self.subdomain_indices, memo) clone._offset = copy.deepcopy(self.offset, memo) @@ -210,14 +197,14 @@ class MultiGroupXS(object): @domain.setter def domain(self, domain): - cv.check_type('domain', domain, DOMAINS) + cv.check_type('domain', domain, tuple(DOMAINS)) self._domain = domain if self._domain_type in ['material', 'cell', 'universe', 'mesh']: self._subdomain_indices[domain.id] = 0 @domain_type.setter def domain_type(self, domain_type): - cv.check_value('domain type', domain_type, DOMAIN_TYPES) + cv.check_value('domain type', domain_type, tuple(DOMAIN_TYPES)) self._domain_type = domain_type @energy_groups.setter @@ -228,16 +215,17 @@ class MultiGroupXS(object): def _find_domain_offset(self): """Finds and stores the offset of the domain tally filter""" + tally = self.tallies.values()[0] - filter = tally.find_filter(self.domain_type, [self.domain.id]) - self._offset = filter.offset + domain_filter = tally.find_filter(self.domain_type, [self.domain.id]) + self._offset = domain_filter.offset def set_subdomain_index(self, subdomain_id, index): """Set the filter bin index for a subdomain of the domain. - This is primarily useful when the domain type is 'distribcell', in - which case one may wish to map each subdomain (a cell instance) to its - filter bin in the derived multi-group cross-section tally data array. + This is useful when the domain type is 'distribcell', in which case one + may wish to map each subdomain (a cell instance) to its filter bin in + the derived multi-group cross-section tally data array. Parameters ---------- @@ -246,17 +234,120 @@ class MultiGroupXS(object): index : Integral The filter bin index for the subdomain + See also + -------- + MultiGroupXS.get_subdomains(), MultiGroupXS.get_subdomain_indices() + """ cv.check_type('subdomain id', subdomain_id, Integral) - cv.check_type('subdomain offset', index, Integral) - cv.check_greater_than('subdomain id', subdomain_id, 0, True) - cv.check_greater_than('subdomain offset', subdomain_id, 0, True) + cv.check_type('subdomain index', index, Integral) + cv.check_greater_than('subdomain id', subdomain_id, 0, equality=True) + cv.check_greater_than('subdomain index', index, 0, equality=True) self._subdomain_indices[subdomain_id] = index + def get_subdomain_indices(self, subdomains='all'): + """Get the indices for one or more subdomains. + + This method can be used to extract the indices into the multi-group + cross-section tally data array for a subdomain. This is useful when the + domain type is 'distribcell', in which case one may wish to map each + subdomain (a cell instance) to its filter bin index in the derived + multi-group cross-section tally data array. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + Subdomain IDs (distribcell instance IDs) of interest + + Returns + ---------- + indices : ndarray + The subdomain indices indexed in the order of the subdomains + + Raises + ------ + ValueError + When one of the subdomains is not a valid subdomain ID. + + See also + -------- + MultiGroupXS.get_subdomains(), MultiGroupXS.set_subdomain_index() + + """ + + if subdomains != 'all': + cv.check_type('subdomains', subdomains, Iterable, Integral) + + if subdomains == 'all': + num_subdomains = len(self.subdomain_indices) + indices = np.arange(num_subdomains) + else: + indices = np.zeros(len(subdomains), dtype=np.int64) + + for i, subdomain in enumerate(subdomains): + if subdomain in self.subdomain_indices: + indices[i] = self.subdomain_indices[subdomain] + else: + msg = 'Unable to get index for subdomain "{0}" since it ' \ + 'is not a valid subdomain'.format(subdomain) + raise ValueError(msg) + + return indices + + def get_subdomains(self, indices='all'): + """Get the subdomain IDs for one or more indices. + + This method can be used to extract the subdomains for the multi-group + cross-section from their indices in the tally data array. This is useful + when the domain type is 'distribcell', in which case one may wish to map + each subdomain (a cell instance) to its filter bin index in the derived + multi-group cross-section tally data array. + + Parameters + ---------- + indices : Iterable of Integral or 'all' + Subdomain indices of interest + + Returns + ---------- + subdomains : ndarray + Array of subdomain IDs indexed in the order of the indices + + Raises + ------ + ValueError + When one of the indices is not a valid subdomain index. + + See also + -------- + MultiGroupXS.get_subdomain_indices(), MultiGroupXS.set_subdomain_index() + + """ + + if indices != 'all': + cv.check_type('offsets', indices, Iterable, Integral) + + if indices == 'all': + indices = self.get_subdomain_indices() + + subdomains = np.zeros(len(indices), dtype=np.int64) + keys = self.subdomain_indices.keys() + values = self.subdomain_indices.values() + + for i, index in enumerate(indices): + if index in values: + subdomains[i] = keys[values.index(index)] + else: + msg = 'Unable to get subdomain for index "{0}" since it ' \ + 'is not a valid index'.format(index) + raise ValueError(msg) + + return subdomains + @abc.abstractmethod def create_tallies(self, scores, all_filters, keys, estimator): - """Instantiates tallies needed to compute the multi-group cross-section + """Instantiates tallies needed to compute the multi-group cross-section. This is a helper method for MultiGroupXS subclasses to create tallies for input file generation. The tallies are stored in the tallies dict. @@ -293,94 +384,37 @@ class MultiGroupXS(object): for filter in filters: self.tallies[key].add_filter(filter) - def get_subdomain_indices(self, subdomains='all'): - """Get the indices for one or more subdomains. + def load_from_statepoint(self, statepoint): + """Extracts tallies in an OpenMC StatePoint with the data needed to + compute multi-group cross-sections. - This method can be used to extract the indices into the multi-group - cross-section tally data array for a subdomain (i.e., cell instance). - - See also : get_subdomains + This method is needed to compute cross-section data from tallies + in an OpenMC StatePoint object. Parameters ---------- - subdomains : Iterable of Integral or 'all' - Subdomain IDs of interest - - Returns - ---------- - indices : ndarray - The subdomain indices indexed in the order of the subdomains - - Raises - ------ - ValueError - When one of the subdomains is not a valid subdomain ID. + statepoint : openmc.StatePoint + An OpenMC StatePoint object with tally data """ - if subdomains != 'all': - cv.check_type('subdomains', subdomains, Iterable, Integral) + cv.check_type('statepoint', statepoint, openmc.statepoint.StatePoint) - if subdomains == 'all': - num_subdomains = len(self.subdomain_indices) - indices = np.arange(num_subdomains) - else: - indices = np.zeros(len(subdomains), dtype=np.int64) + # Ensure that tally metadata has been loaded from the statepoint file + statepoint.read_results() - for i, subdomain in enumerate(subdomains): - if subdomain in self.subdomain_indices: - indices[i] = self.subdomain_indices[subdomain] - else: - msg = 'Unable to get index for subdomain "{0}" since it ' \ - 'is not a valid subdomain'.format(subdomain) - raise ValueError(msg) + # Create Tallies to search for in StatePoint + if self.tallies is None: + self.create_tallies() - return indices - - def get_subdomains(self, indices='all'): - """Get the subdomain IDs for one or more indices. - - This method can be used to extract the subdomains for the multi-group - cross-section from their indices in the tally data array. - - See also : get_subdomain_indices - - Parameters - ---------- - indices : Iterable of Integral or 'all' - Subdomain indices of interest - - Returns - ---------- - subdomains : ndarray - Array of subdomain IDs indexed in the order of the indices - - Raises - ------ - ValueError - When one of the indices is not a valid subdomain index. - - """ - - if indices != 'all': - cv.check_type('offsets', indices, Iterable, Integral) - - if indices == 'all': - indices = self.get_subdomain_indices() - - subdomains = np.zeros(len(indices), dtype=np.int64) - keys = self.subdomain_indices.keys() - values = self.subdomain_indices.values() - - for i, index in enumerate(indices): - if index in values: - subdomains[i] = keys[values.index(index)] - else: - msg = 'Unable to get subdomain for index "{0}" since it ' \ - 'is not a valid index'.format(index) - raise ValueError(msg) - - return subdomains + # 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(scores=tally.scores, nuclides=tally.nuclides) + self.tallies[tally_type] = sp_tally def get_xs(self, groups='all', subdomains='all', value='mean'): """Returns an array of multi-group cross-sections. @@ -412,7 +446,7 @@ class MultiGroupXS(object): """ - if self._xs_tally is None: + if self.xs_tally is None: msg = 'Unable to get cross-section since it has not been computed' raise ValueError(msg) @@ -433,15 +467,23 @@ class MultiGroupXS(object): filter_bins.append(self.energy_groups.get_group_bounds(group)) # Query the multi-group cross-section tally for the data - xs = self._xs_tally.get_values(filters=filters, + xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) return xs def get_condensed_xs(self, coarse_groups): - """ + """Construct an energy-condensed version of this cross-section. + + Parameters + ---------- + coarse_groups : openmc.mgxs.EnergyGroups + The coarse energy group structure of interest + + Returns + ------- + MultiGroupXS + A new MultiGroupXS condensed to the group structure of interest - :param coarse_groups: - :return: """ raise NotImplementedError('Energy condensation is not yet implemented') @@ -449,6 +491,8 @@ class MultiGroupXS(object): def get_subdomain_avg_xs(self, subdomains='all'): """Construct a subdomain-averaged version of this cross-section. + This is primarily useful for averaging across distribcell instances. + Parameters ---------- subdomains : Iterable of Integral or 'all' @@ -467,7 +511,7 @@ class MultiGroupXS(object): """ - if self._xs_tally is None: + if self.xs_tally is None: msg = 'Unable to get cross-section since it has not been computed' raise ValueError(msg) @@ -497,6 +541,7 @@ class MultiGroupXS(object): # Compute the condensed single group cross-section avg_xs.compute_xs() + return avg_xs def print_xs(self, subdomains='all'): @@ -515,7 +560,7 @@ class MultiGroupXS(object): """ - if self._xs_tally is None: + if self.xs_tally is None: msg = 'Unable to print cross-section since it has not been computed' raise ValueError(msg) @@ -527,7 +572,7 @@ class MultiGroupXS(object): 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 self._xs_tally is not None: + if self.xs_tally is not None: if subdomains == 'all': subdomains = self.get_subdomain_indices() @@ -581,7 +626,7 @@ class MultiGroupXS(object): xs_results['domain'] = self.domain xs_results['energy_groups'] = self.energy_groups xs_results['tallies'] = self.tallies - xs_results['xs_tally'] = self._xs_tally + xs_results['xs_tally'] = self.xs_tally xs_results['offset'] = self.offset xs_results['subdomain_indices'] = self.subdomain_indices @@ -632,36 +677,6 @@ class MultiGroupXS(object): self._offset = xs_results['offset'] self._subdomain_indices = xs_results['subdomain_indices'] - def load_from_statepoint(self, statepoint): - """Find 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. - - Parameters - ---------- - statepoint : openmc.StatePoint - An OpenMC StatePoint object with tally data - - """ - - cv.check_type('statepoint', statepoint, openmc.statepoint.StatePoint) - - statepoint.read_results() - - # Create Tallies to search for in StatePoint - if self.tallies is None: - self.create_tallies() - - # Find and store Tallies in StatePoint - 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(scores=tally.scores, nuclides=tally.nuclides) - self.tallies[tally_type] = sp_tally - def build_hdf5_store(self, filename='mgxs', directory='mgxs', append=True, key=None): """ @@ -701,7 +716,7 @@ class MultiGroupXS(object): """ - if self._xs_tally is None: + if self.xs_tally is None: msg = 'Unable to export cross-section since it has not been computed' raise ValueError(msg) @@ -749,23 +764,15 @@ class MultiGroupXS(object): """ - if self._xs_tally is None: + if self.xs_tally is None: msg = 'Unable to get Pandas DataFrame since the ' \ 'cross-section has not been computed' raise ValueError(msg) # TODO: Reset column labels as cross-sections if needed - df = self._xs_tally.get_pandas_dataframe() + df = self.xs_tally.get_pandas_dataframe() return df - def from_statepoint(self, sp): - """ - - :return: - """ - - # Get the tallies from a statepoint file - class TotalXS(MultiGroupXS): @@ -794,8 +801,8 @@ class TotalXS(MultiGroupXS): tally arithmetic""" self._xs_tally = self.tallies['total'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) class TransportXS(MultiGroupXS): @@ -832,8 +839,8 @@ class TransportXS(MultiGroupXS): self._xs_tally = self.tallies['total'] - self.tallies['scatter-P1'] self._xs_tally /= self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) class AbsorptionXS(MultiGroupXS): @@ -863,8 +870,8 @@ class AbsorptionXS(MultiGroupXS): tally arithmetic""" self._xs_tally = self.tallies['absorption'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) class CaptureXS(MultiGroupXS): @@ -895,8 +902,8 @@ class CaptureXS(MultiGroupXS): self._xs_tally = self.tallies['absorption'] - self.tallies['fission'] self._xs_tally /= self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) class FissionXS(MultiGroupXS): @@ -926,8 +933,8 @@ class FissionXS(MultiGroupXS): tally arithmetic""" self._xs_tally = self.tallies['fission'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) class NuFissionXS(MultiGroupXS): @@ -957,8 +964,8 @@ class NuFissionXS(MultiGroupXS): tally arithmetic""" self._xs_tally = self.tallies['nu-fission'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) class ScatterXS(MultiGroupXS): @@ -988,8 +995,8 @@ class ScatterXS(MultiGroupXS): OpenMC tally arithmetic""" self._xs_tally = self.tallies['scatter'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) class NuScatterXS(MultiGroupXS): @@ -1019,8 +1026,8 @@ class NuScatterXS(MultiGroupXS): tally arithmetic""" self._xs_tally = self.tallies['nu-scatter'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) class ScatterMatrixXS(MultiGroupXS): @@ -1067,8 +1074,8 @@ class ScatterMatrixXS(MultiGroupXS): rxn_tally = self.tallies['scatter'] self._xs_tally = rxn_tally / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) def get_xs(self, in_groups='all', out_groups='all', subdomains='all', value='mean'): @@ -1103,7 +1110,7 @@ class ScatterMatrixXS(MultiGroupXS): """ - if self._xs_tally is None: + if self.xs_tally is None: msg = 'Unable to get cross-section since it has not been computed' raise ValueError(msg) @@ -1131,7 +1138,7 @@ class ScatterMatrixXS(MultiGroupXS): filter_bins.append(self.energy_groups.get_group_bounds(out_group)) # Query the multi-group cross-section tally for the data - xs = self._xs_tally.get_values(filters=filters, + xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) return xs @@ -1151,7 +1158,7 @@ class ScatterMatrixXS(MultiGroupXS): """ - if self._xs_tally is None: + if self.xs_tally is None: msg = 'Unable to print cross-section since it has not been computed' raise ValueError(msg) @@ -1239,8 +1246,8 @@ class NuScatterMatrixXS(ScatterMatrixXS): rxn_tally = self.tallies['nu-scatter'] self._xs_tally = rxn_tally / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) class Chi(MultiGroupXS): @@ -1292,7 +1299,7 @@ class Chi(MultiGroupXS): self._xs_tally = nu_fission_out / sum_nu_fission_in # Normalize chi to 1.0 - norm = self._xs_tally.summation(filters=['energyout'], + norm = self.xs_tally.summation(filters=['energyout'], filter_bins=energy_bins) # FIXME: CrossFilter for energy + energy messes up tally arithmetic @@ -1304,7 +1311,7 @@ class Chi(MultiGroupXS): norm = norm.tile_filter(energy_filter) self._xs_tally /= norm - self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev) + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) # FIXME: Does this need to reset NaNs to zero? \ No newline at end of file From ecda3bef5efadcae1634e807e5369b5336955a6d Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 00:31:50 -0400 Subject: [PATCH 19/91] Subdomain-averaged multi-group cross-section calculation now working --- openmc/mgxs/mgxs.py | 49 ++++++++++++++++++++++--------------- openmc/tallies.py | 59 ++++++++++++++++++++++++--------------------- 2 files changed, 62 insertions(+), 46 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e0ffb6431..8a8414624 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -217,7 +217,7 @@ class MultiGroupXS(object): """Finds and stores the offset of the domain tally filter""" tally = self.tallies.values()[0] - domain_filter = tally.find_filter(self.domain_type, [self.domain.id]) + domain_filter = tally.find_filter(self.domain_type) self._offset = domain_filter.offset def set_subdomain_index(self, subdomain_id, index): @@ -280,7 +280,9 @@ class MultiGroupXS(object): cv.check_type('subdomains', subdomains, Iterable, Integral) if subdomains == 'all': - num_subdomains = len(self.subdomain_indices) + tally = self.tallies.values()[0] + domain_filter = tally.find_filter(self.domain_type) + num_subdomains = domain_filter.num_bins indices = np.arange(num_subdomains) else: indices = np.zeros(len(subdomains), dtype=np.int64) @@ -329,19 +331,22 @@ class MultiGroupXS(object): cv.check_type('offsets', indices, Iterable, Integral) if indices == 'all': - indices = self.get_subdomain_indices() + tally = self.tallies.values()[0] + domain_filter = tally.find_filter(self.domain_type) + num_subdomains = domain_filter.num_bins + subdomains = np.arange(num_subdomains) + else: + subdomains = np.zeros(len(indices), dtype=np.int64) + keys = self.subdomain_indices.keys() + values = self.subdomain_indices.values() - subdomains = np.zeros(len(indices), dtype=np.int64) - keys = self.subdomain_indices.keys() - values = self.subdomain_indices.values() - - for i, index in enumerate(indices): - if index in values: - subdomains[i] = keys[values.index(index)] - else: - msg = 'Unable to get subdomain for index "{0}" since it ' \ - 'is not a valid index'.format(index) - raise ValueError(msg) + for i, index in enumerate(indices): + if index in values: + subdomains[i] = keys[values.index(index)] + else: + msg = 'Unable to get subdomain for index "{0}" since it ' \ + 'is not a valid index'.format(index) + raise ValueError(msg) return subdomains @@ -520,11 +525,11 @@ class MultiGroupXS(object): if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) subdomain_indices = self.get_subdomain_indices(subdomains) - subdomain_indices = [(index,) for index in subdomain_indices] +# subdomain_indices = [(index,) for index in subdomain_indices] # Clone this MultiGroupXS to initialize the condensed version avg_xs = copy.deepcopy(self) - avg_xs.domain_type = 'avg. ' + avg_xs.domain_type + avg_xs._domain_type = 'avg. ' + avg_xs.domain_type # Reset subdomain indices and offsets for distribcell domains if self.domain_type == 'distribcell': @@ -534,7 +539,7 @@ class MultiGroupXS(object): # Overwrite tallies with new subdomain-averaged versions avg_xs._tallies = {} for tally_type, tally in self.tallies.items(): - tally_sum = tally.summation(filters=[self.domain_type], + tally_sum = tally.summation(filter=self.domain_type, filter_bins=subdomain_indices) tally_sum /= len(subdomains) avg_xs.tallies[tally_type] = tally_sum @@ -1281,13 +1286,19 @@ class Chi(MultiGroupXS): # FIXME: Make filter bins simpler in Tally.summation(...) # Construct energy group filter bins to sum across + ''' filter_bins = [] for group in range(1, self.num_groups+1): group_bounds = self.energy_groups.get_group_bounds(group) filter_bins.append((group_bounds,)) energy_bins = [filter_bins] + ''' - sum_nu_fission_in = nu_fission_in.summation(filters=['energy'], + energy_bins = [] + for group in range(1, self.num_groups+1): + energy_bins.append(self.energy_groups.get_group_bounds(group)) + + sum_nu_fission_in = nu_fission_in.summation(filter='energy', filter_bins=energy_bins) # FIXME: Need ability to override energy groups with group numbers @@ -1299,7 +1310,7 @@ class Chi(MultiGroupXS): self._xs_tally = nu_fission_out / sum_nu_fission_in # Normalize chi to 1.0 - norm = self.xs_tally.summation(filters=['energyout'], + norm = self.xs_tally.summation(filter='energyout', filter_bins=energy_bins) # FIXME: CrossFilter for energy + energy messes up tally arithmetic diff --git a/openmc/tallies.py b/openmc/tallies.py index 9b3056818..221dc2854 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -9,7 +9,7 @@ import sys import numpy as np -from openmc import Mesh, Filter, Trigger, Nuclide +from openmc import Mesh, Filter, Trigger, Nuclide, FILTER_TYPES from openmc.cross import CrossScore, CrossNuclide, CrossFilter from openmc.summary import Summary import openmc.checkvalue as cv @@ -78,8 +78,8 @@ class Tally(object): mean : ndarray An array containing the sample mean for each bin std_dev : ndarray - An array containing the sample standard deviation for each bin + """ def __init__(self, tally_id=None, name=''): @@ -713,7 +713,7 @@ class Tally(object): filter_type : str The type of Filter (e.g., 'cell', 'energy', etc.) - filter_bin : int, list + filter_bin : int, 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 @@ -2277,6 +2277,8 @@ class Tally(object): if filter_type in ['energy', 'energyout']: bin_indices.append(bin_index) bin_indices.append(bin_index+1) + elif filter_type == 'distribcell': + bin_indices.append(0) else: bin_indices.append(bin_index) @@ -2292,13 +2294,13 @@ class Tally(object): return new_tally - def summation(self, scores=[], filters=[], filter_bins=[], nuclides=[]): - """Build a sliced tally for the specified filters, scores and nuclides. + def summation(self, scores=[], filter=None, filter_bins=[], nuclides=[]): + """Build a sliced tally for the specified filter bins, nuclides, scores. This method constructs a new tally to encapsulate a subset of the data represented by this tally. The subset of data to include in the tally - slice is determined by the scores, filters and nuclides specified in - the input parameters. + slice is determined by the scores, filter bins and nuclides specified + in the input parameters. Parameters ---------- @@ -2306,21 +2308,19 @@ class Tally(object): A list of one or more score strings to sum across (e.g., ['absorption', 'nu-fission']; default is []) - filters : list - A list of filter type strings to sum across - (e.g., ['mesh', 'energy']; default is []) + filter : str + A filter type string (e.g., 'cell', 'energy') corresponding to the + filter bins to sum across - filter_bins : list of Iterables - A list of the filter bins corresponding to the filter_types - parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin - in the list is the integer ID for 'material', 'surface', 'cell', - 'cellborn', and 'universe' Filters. Each bin is an integer for the - cell instance ID for 'distribcell Filters. Each bin is a 2-tuple of - floats for 'energy' and 'energyout' filters corresponding to the - energy boundaries of the bin of interest. The bin is a (x,y,z) - 3-tuple for 'mesh' filters corresponding to the mesh cell of - interest. The order of the bins in the list must correspond to the - filter_types parameter. + filter_bins : Iterable of Integral or tuple + A list of the filter bins corresponding to the filters parameter + Each bin in the list is the integer ID for 'material', 'surface', + 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer + for the cell instance ID for 'distribcell Filters. Each bin is a + 2-tuple of floats for 'energy' and 'energyout' filters corresponding + to the energy boundaries of the bin of interest. Each bin is an + (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of + interest. nuclides : list A list of nuclide name strings to sum across @@ -2347,15 +2347,20 @@ class Tally(object): else: nuclides = [[nuclide] for nuclide in nuclides] - # If user did not specify any filter bins, do not sum across filter bins - if len(filters) == 0: + # Sum across any filter bins specified by the user + if filter in FILTER_TYPES.values(): + filter_bins = [[(filter_bin,)] for filter_bin in filter_bins] + filters = [[filter]] + # If user did not specify a filter type, do not sum across filter bins + else: filter_bins = [[]] filters = [[]] - # Sum across any filter bins specified by the user + ''' else: - filter_bins = list(itertools.product(*filter_bins)) - filter_bins = [list(filter_bin) for filter_bin in filter_bins] - filters = [filters] +# filter_bins = list(itertools.product(*filter_bins)) + filter_bins = [[filter_bin] for filter_bin in filter_bins] + filters = [[filter]] + ''' # Initialize Tally sum tally_sum = 0 From da6e953319522cd2d5b5b5e8dadb3d9a06cc2cf0 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 01:14:38 -0400 Subject: [PATCH 20/91] MultiGroupXS print_xs and get_xs routines now working --- openmc/mgxs/mgxs.py | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 8a8414624..56af455e8 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -461,15 +461,16 @@ class MultiGroupXS(object): # Construct a collection of the domain filter bins if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) - filters.append(self.domain_type) - filter_bins.append(tuple(subdomains)) + 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 groups != 'all': cv.check_iterable_type('groups', groups, Integral) - filters.append('energy') for group in groups: - filter_bins.append(self.energy_groups.get_group_bounds(group)) + filters.append('energy') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) # Query the multi-group cross-section tally for the data xs = self.xs_tally.get_values(filters=filters, @@ -521,11 +522,7 @@ class MultiGroupXS(object): raise ValueError(msg) # Construct a collection of the subdomain filter bins to average across - # FIXME: Make Tally.summation take single rather than nested tuples - if subdomains != 'all': - cv.check_iterable_type('subdomains', subdomains, Integral) subdomain_indices = self.get_subdomain_indices(subdomains) -# subdomain_indices = [(index,) for index in subdomain_indices] # Clone this MultiGroupXS to initialize the condensed version avg_xs = copy.deepcopy(self) @@ -596,7 +593,9 @@ class MultiGroupXS(object): string += template.format('', group, bounds[0], bounds[1]) average = self.get_xs([group], [subdomain], 'mean') rel_err = self.get_xs([group], [subdomain], 'rel_err')*100. - string += '{:.2e}+/-{:1.2e}%'.format(average, rel_err) + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] + string += '{0:.2e} +/- {1:1.2e}%'.format(average, rel_err) string += '\n' string += '\n' @@ -1062,13 +1061,13 @@ class ScatterMatrixXS(MultiGroupXS): # Initialize the Tallies super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) - def compute_xs(self, correct=False): + def compute_xs(self, correction='None'): """Computes the multi-group scattering matrix using OpenMC tally arithmetic""" - # FIXME: This should only subtract P1 from the diagonal!!! - if correct: - scatter_p1 = self.tallies['scatter-P1'] + # If using P0 correction subtract scatter-P1 from the diagonal + if correction == 'P0': + scatter_p1 = self.tallies['scatter-1'] scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) energy_filter = openmc.Filter(type='energy') energy_filter.bins = self.energy_groups.group_edges @@ -1204,7 +1203,9 @@ class ScatterMatrixXS(MultiGroupXS): [subdomain], 'mean') rel_err = self.get_xs([in_group], [out_group], [subdomain], 'rel. err.')*100. - string += '{:.2e}+/-{:1.2e}%'.format(average, rel_err) + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] + string += '{0:1.2e} +/- {:1.2e}%'.format(average, rel_err) string += '\n' string += '\n' @@ -1234,13 +1235,13 @@ class NuScatterMatrixXS(ScatterMatrixXS): # Intialize the Tallies super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) - def compute_xs(self, correct=False): + def compute_xs(self, correction='None'): """Computes the multi-group nu-scattering matrix using OpenMC tally arithmetic""" - # FIXME: This should only subtract P1 from the diagonal!!! - if correct: - scatter_p1 = self.tallies['scatter-P1'] + # If using P0 correction subtract scatter-P1 from the diagonal + if correction == 'P0': + scatter_p1 = self.tallies['scatter-1'] scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) energy_filter = openmc.Filter(type='energy') energy_filter.bins = self.energy_groups.group_edges From 925d227d1fd64b552c07eb5972525e3350c28874 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 01:34:54 -0400 Subject: [PATCH 21/91] The print_xs routine for the Python API ScatterMatrixXS class is now working --- openmc/mgxs/mgxs.py | 43 ++++++++++++++++++++++++------------------- openmc/tallies.py | 2 +- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 56af455e8..cd3302e2a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -455,6 +455,8 @@ class MultiGroupXS(object): msg = 'Unable to get cross-section since it has not been computed' raise ValueError(msg) + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + filters = [] filter_bins = [] @@ -593,8 +595,8 @@ class MultiGroupXS(object): string += template.format('', group, bounds[0], bounds[1]) average = self.get_xs([group], [subdomain], 'mean') rel_err = self.get_xs([group], [subdomain], 'rel_err')*100. - average = average.flatten()[0] - rel_err = rel_err.flatten()[0] + average = np.nan_to_num(average.flatten())[0] + rel_err = np.nan_to_num(rel_err.flatten())[0] string += '{0:.2e} +/- {1:1.2e}%'.format(average, rel_err) string += '\n' string += '\n' @@ -1118,7 +1120,7 @@ class ScatterMatrixXS(MultiGroupXS): msg = 'Unable to get cross-section since it has not been computed' raise ValueError(msg) - cv.check_value('value', value, ['mean', 'std. dev.', 'rel. err.']) + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) filters = [] filter_bins = [] @@ -1126,20 +1128,23 @@ class ScatterMatrixXS(MultiGroupXS): # Construct a collection of the domain filter bins if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) - filters.append(self.domain_type) - filter_bins.append(tuple(subdomains)) + 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 in_groups != 'all': - cv.check_iterable_type('in_groups', in_groups, Integral) - filters.append('energy') - for in_group in in_groups: - filter_bins.append(self.energy_groups.get_group_bounds(in_group)) + 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 out_groups != 'all': - cv.check_iterable_type('out_groups', out_groups, Integral) - filters.append('energy') - for out_group in out_groups: - filter_bins.append(self.energy_groups.get_group_bounds(out_group)) + 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),)) # Query the multi-group cross-section tally for the data xs = self.xs_tally.get_values(filters=filters, @@ -1167,7 +1172,7 @@ class ScatterMatrixXS(MultiGroupXS): raise ValueError(msg) if subdomains != 'all': - cv.check_value('subdomains', subdomains, Iterable, Integral) + cv.check_iterable_type('subdomains', subdomains, Integral) string = 'Multi-Group XS\n' string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', self.xs_type) @@ -1183,7 +1188,7 @@ class ScatterMatrixXS(MultiGroupXS): string += template.format('', group, bounds[0], bounds[1]) if subdomains == 'all': - subdomains = self.subdomain_indices.keys() + subdomains = self.get_subdomain_indices() # Loop over all subdomains for subdomain in subdomains: @@ -1202,10 +1207,10 @@ class ScatterMatrixXS(MultiGroupXS): average = self.get_xs([in_group], [out_group], [subdomain], 'mean') rel_err = self.get_xs([in_group], [out_group], - [subdomain], 'rel. err.')*100. - average = average.flatten()[0] - rel_err = rel_err.flatten()[0] - string += '{0:1.2e} +/- {:1.2e}%'.format(average, rel_err) + [subdomain], 'rel_err')*100. + average = np.nan_to_num(average.flatten())[0] + rel_err = np.nan_to_num(rel_err.flatten())[0] + string += '{0:1.2e} +/- {1:1.2e}%'.format(average, rel_err) string += '\n' string += '\n' diff --git a/openmc/tallies.py b/openmc/tallies.py index 221dc2854..bccfd2eb5 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1009,7 +1009,7 @@ class Tally(object): else: msg = 'Unable to return results from Tally ID="{0}" since the ' \ 'the requested value "{1}" is not \'mean\', \'std_dev\', ' \ - '\rel_err\', \'sum\', or \'sum_sq\''.format(self.id, value) + '\'rel_err\', \'sum\', or \'sum_sq\''.format(self.id, value) raise LookupError(msg) return data From 67312eaf8f5181536ce37bb2346792dcd416de05 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 01:43:30 -0400 Subject: [PATCH 22/91] MultiGroupXS pickle and unpickle routines now working --- openmc/mgxs/mgxs.py | 91 +++++++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 53 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index cd3302e2a..cf878e86a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -556,26 +556,18 @@ class MultiGroupXS(object): subdomains : Iterable of Integral or 'all' The subdomain IDs of the cross-sections to include in the report - Raises - ------ - ValueError - When this method is called before the multi-group cross-section is - computed from tally data. - """ - if self.xs_tally is None: - msg = 'Unable to print cross-section since it has not been computed' - raise ValueError(msg) - if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) + # Build header for string with type and domain info string = 'Multi-Group XS\n' string += '{0: <16}=\t{1}\n'.format('\tType', self.xs_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) + # Append cross-section data if it has been computed if self.xs_tally is not None: if subdomains == 'all': subdomains = self.get_subdomain_indices() @@ -597,7 +589,7 @@ class MultiGroupXS(object): rel_err = self.get_xs([group], [subdomain], 'rel_err')*100. average = np.nan_to_num(average.flatten())[0] rel_err = np.nan_to_num(rel_err.flatten())[0] - string += '{0:.2e} +/- {1:1.2e}%'.format(average, rel_err) + string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) string += '\n' string += '\n' @@ -674,11 +666,11 @@ class MultiGroupXS(object): # Store the MultiGroupXS class attributes self.name = xs_results['name'] - self.xs_type = xs_results['xs_type'] + self._xs_type = xs_results['xs_type'] self.domain_type = xs_results['domain_type'] self.domain = xs_results['domain'] self.energy_groups = xs_results['energy_groups'] - self.tallies = xs_results['tallies'] + self._tallies = xs_results['tallies'] self._xs_tally = xs_results['xs_tally'] self._offset = xs_results['offset'] self._subdomain_indices = xs_results['subdomain_indices'] @@ -1159,60 +1151,53 @@ class ScatterMatrixXS(MultiGroupXS): subdomains : Iterable of Integral or 'all' The subdomain IDs of the cross-sections to include in the report - Raises - ------ - ValueError - When this method is called before the multi-group cross-section is - computed from tally data. - """ - if self.xs_tally is None: - msg = 'Unable to print cross-section since it has not been computed' - raise ValueError(msg) - if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) + # Build header for string with type and domain info string = 'Multi-Group XS\n' - string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', self.xs_type) - string += '{0: <16}{1}{2}\n'.format('\tDomain Type', '=\t', self.domain_type) - string += '{0: <16}{1}{2}\n'.format('\tDomain ID', '=\t', self.domain.id) + string += '{0: <16}=\t{1}\n'.format('\tType', self.xs_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) - string += '{0: <16}\n'.format('\tEnergy Groups:') - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' + # Append cross-section data if it has been computed + if self.xs_tally is not None: + 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 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]) - if subdomains == 'all': - subdomains = self.get_subdomain_indices() + if subdomains == 'all': + subdomains = self.get_subdomain_indices() - # Loop over all subdomains - for subdomain in subdomains: + # Loop over all subdomains + for subdomain in subdomains: - if self.domain_type == 'distribcell': - string += \ - '{0: <16}{1}{2}\n'.format('\tSubdomain', '=\t', subdomain) + if self.domain_type == 'distribcell': + string += \ + '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - string += '{0: <16}\n'.format('\tCross-Sections [cm^-1]:') - template = '{0: <12}Group {1} -> Group {2}:\t\t' + string += '{0: <16}\n'.format('\tCross-Sections [cm^-1]:') + 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], 'mean') - rel_err = self.get_xs([in_group], [out_group], - [subdomain], 'rel_err')*100. - average = np.nan_to_num(average.flatten())[0] - rel_err = np.nan_to_num(rel_err.flatten())[0] - string += '{0:1.2e} +/- {1:1.2e}%'.format(average, rel_err) + # 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], 'mean') + rel_err = self.get_xs([in_group], [out_group], + [subdomain], 'rel_err') * 100. + average = np.nan_to_num(average.flatten())[0] + rel_err = np.nan_to_num(rel_err.flatten())[0] + string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' string += '\n' - string += '\n' print(string) From 39040c587a5e74a8159b122e1bf2fcd3f750fec0 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 09:28:49 -0400 Subject: [PATCH 23/91] Pandas DataFrames for MultiGroupXS now swap energy bounds with group indices if needed --- openmc/mgxs/mgxs.py | 72 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 67 insertions(+), 5 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index cf878e86a..659a24228 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -231,6 +231,7 @@ class MultiGroupXS(object): ---------- subdomain_id : Integral The ID for the subdomain + index : Integral The filter bin index for the subdomain @@ -361,10 +362,13 @@ class MultiGroupXS(object): ---------- scores : Iterable of str Scores for each tally + filters : Iterable of tuple of 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'} Type of estimator to use for each tally @@ -431,8 +435,10 @@ class MultiGroupXS(object): ---------- groups : Iterable of Integral or 'all' Energy groups of interest + subdomains : Iterable of Integral or 'all' Subdomain IDs of interest + value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted @@ -602,6 +608,7 @@ class MultiGroupXS(object): ---------- filename : str Filename for the pickled binary file (default is 'mgxs') + directory : str Directory for the pickled binary file (default is 'mgxs') @@ -640,6 +647,7 @@ class MultiGroupXS(object): ---------- filename : str Filename for the pickled binary file (default is 'mgxs') + directory : str Directory for the pickled binary file (default is 'mgxs') @@ -701,8 +709,10 @@ class MultiGroupXS(object): ---------- filename : str Filename for the exported file (default is 'mgxs') + directory : str Directory for the exported file (default is 'mgxs') + format : {'csv', 'excel', 'pickle', 'latex'} The format for the exported data file @@ -720,7 +730,7 @@ class MultiGroupXS(object): cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) - cv.check_values('format', format, ['csv', 'excel', 'pickle', 'latex']) + cv.check_value('format', format, ['csv', 'excel', 'pickle', 'latex']) # Make directory if it does not exist if not os.path.exists(directory): @@ -730,25 +740,42 @@ class MultiGroupXS(object): filename = filename.replace(' ', '-') # Get a Pandas DataFrame for the data + # FIXME: Column niceties need to be implemented here df = self.get_pandas_dataframe() # Export the data using Pandas IO API if format == 'csv': df.to_csv(filename + '.csv') elif format == 'excel': - df.to_excel(filename + '.xslx') + # FIXME: Overwrite column CrossScores with scores + df.to_excel(filename + '.xls') elif format == 'pickle': df.to_pickle(filename + '.pkl') elif format == 'latex': # FIXME: Insert greek letters + # FIXME: Need to put document header around string df.to_latex(filename + '.tex') - def get_pandas_dataframe(self): + def get_pandas_dataframe(self, groups='indices', summary=None): """Build a Pandas DataFrame for the MultiGroupXS data. This routine leverages the Tally.get_pandas_dataframe(...) routine, but renames the columns with terminology appropriate for cross-section data. + Parameters + ---------- + groups : {'indices' or 'bounds'} + When set to 'indices', integer group indices are inserted in the + energy column(s) of the DataFrame. When set to 'bounds', the lower + and upper energy bounds are used. + + summary : None or 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 @@ -767,8 +794,40 @@ class MultiGroupXS(object): 'cross-section has not been computed' raise ValueError(msg) - # TODO: Reset column labels as cross-sections if needed - df = self.xs_tally.get_pandas_dataframe() + # Get a Pandas DataFrame from the derived xs tally + df = self.xs_tally.get_pandas_dataframe(summary=summary) + + # Remove the score column since it is homogeneous and redundant + if summary: + df = df.drop('score', level=0, axis=1) + else: + df = df.drop('score', axis=1) + + # Use group indices in place of energy bounds ("1" for fastest group) + if groups == 'indices': + + # Rename the column label for energy in the dataframe + columns = [] + if 'energy [MeV]' in df: + df.rename(columns={'energy [MeV]': 'group in'}, inplace=True) + columns.append('group in') + if 'energyout [MeV]' in df: + df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True) + columns.append('group out') + + # Loop over all energy groups and override the bounds with indices + template = '({0:.1e} - {1:.1e})' + bins = self.energy_groups.group_edges + for column in columns: + for i in range(self.num_groups): + group = template.format(bins[i], bins[i+1]) + row_indices = df[column] == group + df.loc[row_indices, column] = self.num_groups - i + + # Sort the dataframe by domain type id (e.g., distribcell id) and + # energy groups such that data is from fast to thermal + df.sort([self.domain_type] + columns, inplace=True) + return df @@ -1086,10 +1145,13 @@ class ScatterMatrixXS(MultiGroupXS): ---------- in_groups : Iterable of Integral or 'all' Incoming energy groups of interest + out_groups : Iterable of Integral or 'all' Outgoing energy groups of interest + subdomains : Iterable of Integral or 'all' Subdomain IDs of interest + value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted From ad981a6035f7e82a0a7689a828a0f378c632a37b Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 09:33:41 -0400 Subject: [PATCH 24/91] Fixed bug in subdomain-averaged multi-group cross-sections --- openmc/mgxs/mgxs.py | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 659a24228..6d975502e 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -534,7 +534,6 @@ class MultiGroupXS(object): # Clone this MultiGroupXS to initialize the condensed version avg_xs = copy.deepcopy(self) - avg_xs._domain_type = 'avg. ' + avg_xs.domain_type # Reset subdomain indices and offsets for distribcell domains if self.domain_type == 'distribcell': @@ -698,7 +697,8 @@ class MultiGroupXS(object): import h5py raise NotImplementedError('HDF5 storage is not yet implemented') - def export_xs_data(self, filename='mgxs', directory='mgxs', format='csv'): + def export_xs_data(self, filename='mgxs', directory='mgxs', format='csv', + groups='indices', summary=None): """Export the multi-group cross-section data to a file. This routine leverages the functionality in the Pandas library to @@ -716,18 +716,20 @@ class MultiGroupXS(object): format : {'csv', 'excel', 'pickle', 'latex'} The format for the exported data file - Raises - ------ - ValueError - When this method is called before the multi-group cross-section is - computed from tally data. + groups : {'indices' or 'bounds'} + When set to 'indices' (default), integer group indices are inserted + in the energy in/out column(s) of the DataFrame. When it is 'bounds' + the lower and upper energy bounds are used. + + summary : None or 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. """ - if self.xs_tally is None: - msg = 'Unable to export cross-section since it has not been computed' - raise ValueError(msg) - cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) cv.check_value('format', format, ['csv', 'excel', 'pickle', 'latex']) @@ -740,8 +742,7 @@ class MultiGroupXS(object): filename = filename.replace(' ', '-') # Get a Pandas DataFrame for the data - # FIXME: Column niceties need to be implemented here - df = self.get_pandas_dataframe() + df = self.get_pandas_dataframe(groups, summary) # Export the data using Pandas IO API if format == 'csv': @@ -765,9 +766,9 @@ class MultiGroupXS(object): Parameters ---------- groups : {'indices' or 'bounds'} - When set to 'indices', integer group indices are inserted in the - energy column(s) of the DataFrame. When set to 'bounds', the lower - and upper energy bounds are used. + When set to 'indices' (default), integer group indices are inserted + in the energy in/out column(s) of the DataFrame. When it is 'bounds' + the lower and upper energy bounds are used. summary : None or Summary An optional Summary object to be used to construct columns for From e663aa6ec88eb63a2a2726093717f450d3b39d90 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 12:25:31 -0400 Subject: [PATCH 25/91] Fixed mergeable tallies for use with MultiGroupXS subclasses in Python API --- openmc/filter.py | 29 +++++++++++++- openmc/mgxs/mgxs.py | 91 ++++++++++++++++++++++++++++++++++---------- openmc/statepoint.py | 4 +- 3 files changed, 101 insertions(+), 23 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index bcbe61eb8..e7e527531 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -282,12 +282,39 @@ class Filter(object): merged_filter = copy.deepcopy(self) # Merge unique filter bins - merged_bins = list(set(self.bins + filter.bins)) + merged_bins = list(set(list(self.bins) + list(filter.bins))) merged_filter.bins = merged_bins merged_filter.num_bins = len(merged_bins) return merged_filter + def is_subset(self, other): + """Determine if another filter is a subset of this filter. + + If all of the bins in the other filter are included as bins in this + filter, then it is a subset of this filter. + + Parameters + ---------- + other : Filter + The filter to query as a subset of this filter + + Returns + ------- + boolean + Whether or not the other filter is a subset of this filter + """ + if not isinstance(other, Filter): + return False + elif self.type != other.type: + return False + + for bin in other.bins: + if bin not in self.bins: + return False + + return True + def get_bin_index(self, filter_bin): """Returns the index in the Filter for some bin. diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 6d975502e..18e87bba1 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -158,6 +158,10 @@ class MultiGroupXS(object): def name(self): return self._name + @property + def xs_type(self): + return self._xs_type + @property def domain(self): return self._domain @@ -280,7 +284,9 @@ class MultiGroupXS(object): if subdomains != 'all': cv.check_type('subdomains', subdomains, Iterable, Integral) - if subdomains == 'all': + if subdomains == 'all' and self.domain_type != 'distribcell': + indices = [0] + elif subdomains == 'all' and self.domain_type == 'distribcell': tally = self.tallies.values()[0] domain_filter = tally.find_filter(self.domain_type) num_subdomains = domain_filter.num_bins @@ -331,7 +337,9 @@ class MultiGroupXS(object): if indices != 'all': cv.check_type('offsets', indices, Iterable, Integral) - if indices == 'all': + if indices == 'all' and self.domain_type != 'distribcell': + subdomains = [self.domain.id] + elif indices == 'all' and self.domain_type == 'distribcell': tally = self.tallies.values()[0] domain_filter = tally.find_filter(self.domain_type) num_subdomains = domain_filter.num_bins @@ -382,6 +390,7 @@ class MultiGroupXS(object): # Create a domain Filter object domain_filter = openmc.Filter(self.domain_type, self.domain.id) + domain_filter.num_bins = 1 for score, key, filters in zip(scores, keys, all_filters): self.tallies[key] = openmc.Tally(name=self.name) @@ -413,8 +422,14 @@ class MultiGroupXS(object): statepoint.read_results() # Create Tallies to search for in StatePoint - if self.tallies is None: - self.create_tallies() + self.create_tallies() + + if self.domain_type == 'distribcell': + filters = [] + filter_bins = [] + else: + filters = [self.domain_type] + filter_bins = [(self.domain.id,)] # Find, slice and store Tallies from StatePoint # The tally slicing is needed if tally merging was used @@ -422,7 +437,8 @@ class MultiGroupXS(object): sp_tally = statepoint.get_tally(tally.scores, tally.filters, tally.nuclides, estimator=tally.estimator) - sp_tally = sp_tally.get_slice(scores=tally.scores, nuclides=tally.nuclides) + sp_tally = sp_tally.get_slice(tally.scores, filters, + filter_bins, tally.nuclides) self.tallies[tally_type] = sp_tally def get_xs(self, groups='all', subdomains='all', value='mean'): @@ -575,7 +591,7 @@ class MultiGroupXS(object): # Append cross-section data if it has been computed if self.xs_tally is not None: if subdomains == 'all': - subdomains = self.get_subdomain_indices() + subdomains = self.get_subdomains() # Loop over all subdomains for subdomain in subdomains: @@ -697,8 +713,7 @@ class MultiGroupXS(object): import h5py raise NotImplementedError('HDF5 storage is not yet implemented') - def export_xs_data(self, filename='mgxs', directory='mgxs', format='csv', - groups='indices', summary=None): + def export_xs_data(self, filename='mgxs', directory='mgxs', format='csv'): """Export the multi-group cross-section data to a file. This routine leverages the functionality in the Pandas library to @@ -742,20 +757,41 @@ class MultiGroupXS(object): filename = filename.replace(' ', '-') # Get a Pandas DataFrame for the data - df = self.get_pandas_dataframe(groups, summary) + df = self.get_pandas_dataframe() + + # Capitalize column label strings + df.columns = map(str.title, df.columns) # Export the data using Pandas IO API if format == 'csv': - df.to_csv(filename + '.csv') + df.to_csv(filename + '.csv', index=False) elif format == 'excel': - # FIXME: Overwrite column CrossScores with scores - df.to_excel(filename + '.xls') + df.to_excel(filename + '.xls', index=False) elif format == 'pickle': df.to_pickle(filename + '.pkl') elif format == 'latex': + if self.domain_type == 'distribcell': + msg = 'Unable to export distribcell multi-group cross-section' \ + 'data to a LaTeX table' + raise NotImplementedError(msg) + # FIXME: Insert greek letters - # FIXME: Need to put document header around string - df.to_latex(filename + '.tex') + + df.to_latex(filename + '.tex', bold_rows=True, + longtable=True, index=False) + + # Surround LaTeX table with code needed to run pdflatex + with open(filename + '.tex','r') as original: + data = original.read() + with open(filename + '.tex','w') as modified: + modified.write( + '\\documentclass[preview, 12pt, border=1mm]{standalone}\n') + modified.write('\\usepackage{caption}\n') + modified.write('\\usepackage{longtable}\n') + modified.write('\\usepackage{booktabs}\n') + modified.write('\\begin{document}\n\n') + modified.write(data) + modified.write('\n\\end{document}') def get_pandas_dataframe(self, groups='indices', summary=None): """Build a Pandas DataFrame for the MultiGroupXS data. @@ -799,7 +835,7 @@ class MultiGroupXS(object): df = self.xs_tally.get_pandas_dataframe(summary=summary) # Remove the score column since it is homogeneous and redundant - if summary: + if summary and self.domain_type == 'distribcell': df = df.drop('score', level=0, axis=1) else: df = df.drop('score', axis=1) @@ -836,7 +872,7 @@ class TotalXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(TotalXS, self).__init__(domain, domain_type, groups, name) - self.xs_type = 'total' + self._xs_type = 'total' def create_tallies(self): """Construct the OpenMC tallies needed to compute this cross-section.""" @@ -849,6 +885,7 @@ class TotalXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) + energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Initialize the Tallies @@ -867,7 +904,7 @@ class TransportXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(TransportXS, self).__init__(domain, domain_type, groups, name) - self.xs_type = 'transport' + self._xs_type = 'transport' def create_tallies(self): """Construct the OpenMC tallies needed to compute this cross-section.""" @@ -881,6 +918,8 @@ class TransportXS(MultiGroupXS): group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) energyout_filter = openmc.Filter('energyout', group_edges) + energy_filter.num_bins = self.num_groups + energyout_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter], [energyout_filter]] # Initialize the Tallies @@ -905,7 +944,7 @@ class AbsorptionXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(AbsorptionXS, self).__init__(domain, domain_type, groups, name) - self.xs_type = 'absorption' + self._xs_type = 'absorption' def create_tallies(self): """Construct the OpenMC tallies needed to compute this cross-section.""" @@ -918,6 +957,7 @@ class AbsorptionXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) + energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Initialize the Tallies @@ -949,6 +989,7 @@ class CaptureXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) + energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter], [energy_filter]] # Initialize the Tallies @@ -981,6 +1022,7 @@ class FissionXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) + energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Initialize the Tallies @@ -1012,6 +1054,7 @@ class NuFissionXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) + energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Initialize the Tallies @@ -1043,6 +1086,7 @@ class ScatterXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) + energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Intialize the Tallies @@ -1074,6 +1118,7 @@ class NuScatterXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) + energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Initialize the Tallies @@ -1100,6 +1145,8 @@ class ScatterMatrixXS(MultiGroupXS): group_edges = self.energy_groups.group_edges energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) + energy.num_bins = self.num_groups + energyout.num_bins = self.num_groups # Create a list of scores for each Tally to be created if correct: @@ -1236,7 +1283,7 @@ class ScatterMatrixXS(MultiGroupXS): string += template.format('', group, bounds[0], bounds[1]) if subdomains == 'all': - subdomains = self.get_subdomain_indices() + subdomains = self.get_subdomains() # Loop over all subdomains for subdomain in subdomains: @@ -1269,7 +1316,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(NuScatterMatrixXS, self).__init__(domain, domain_type, groups, name) - self.xs_type = 'nu-scatter matrix' + self._xs_type = 'nu-scatter matrix' def create_tallies(self): """Construct the OpenMC tallies needed to compute this cross-section.""" @@ -1283,6 +1330,8 @@ class NuScatterMatrixXS(ScatterMatrixXS): group_edges = self.energy_groups.group_edges energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) + energy.num_bins = self.num_groups + energyout.num_bins = self.num_groups filters = [[energy], [energy, energyout], [energyout]] # Intialize the Tallies @@ -1326,6 +1375,8 @@ class Chi(MultiGroupXS): group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) energyout_filter = openmc.Filter('energyout', group_edges) + energy_filter.num_bins = self.num_groups + energyout_filter.num_bins = self.num_groups filters = [[energy_filter], [energyout_filter]] # Intialize the Tallies diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 0730c5c65..6e6accf83 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -692,8 +692,8 @@ class StatePoint(object): contains_filters = True # Iterate over the Filters requested by the user - for filter in filters: - if filter not in test_tally.filters: + for filter, test_filter in zip(filters, test_tally.filters): + if not test_filter.is_subset(filter): contains_filters = False break From 442e0d88e9701a6897406006debe7ef7e2ea25a8 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 12:42:23 -0400 Subject: [PATCH 26/91] Made Python API Filter.num_bins property decorator look at bins attribute for smarter return --- openmc/filter.py | 11 ++++++++++- openmc/mgxs/mgxs.py | 18 ------------------ 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index e7e527531..10a245d75 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -35,6 +35,8 @@ class Filter(object): The type of the tally filter. bins : Integral or Iterable of Integral or Iterable of float The bins for the filter + num_bins : Integral + The number of filter bins mesh : Mesh or None A Mesh object for 'mesh' type filters. offset : Integral @@ -110,7 +112,14 @@ class Filter(object): @property def num_bins(self): - return self._num_bins + if self.bins is None: + return 0 + elif self.type in ['energy', 'energyout']: + return len(self.bins)-1 + elif self.type in ['cell', 'cellborn', 'surface', 'universe', 'material']: + return len(self.bins) + else: + return self._num_bins @property def mesh(self): diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 18e87bba1..5abc4fe0a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -885,7 +885,6 @@ class TotalXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) - energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Initialize the Tallies @@ -918,8 +917,6 @@ class TransportXS(MultiGroupXS): group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) energyout_filter = openmc.Filter('energyout', group_edges) - energy_filter.num_bins = self.num_groups - energyout_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter], [energyout_filter]] # Initialize the Tallies @@ -957,7 +954,6 @@ class AbsorptionXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) - energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Initialize the Tallies @@ -989,7 +985,6 @@ class CaptureXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) - energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter], [energy_filter]] # Initialize the Tallies @@ -1022,7 +1017,6 @@ class FissionXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) - energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Initialize the Tallies @@ -1054,7 +1048,6 @@ class NuFissionXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) - energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Initialize the Tallies @@ -1086,7 +1079,6 @@ class ScatterXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) - energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Intialize the Tallies @@ -1118,7 +1110,6 @@ class NuScatterXS(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) - energy_filter.num_bins = self.num_groups filters = [[energy_filter], [energy_filter]] # Initialize the Tallies @@ -1145,8 +1136,6 @@ class ScatterMatrixXS(MultiGroupXS): group_edges = self.energy_groups.group_edges energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - energy.num_bins = self.num_groups - energyout.num_bins = self.num_groups # Create a list of scores for each Tally to be created if correct: @@ -1172,7 +1161,6 @@ class ScatterMatrixXS(MultiGroupXS): scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) energy_filter = openmc.Filter(type='energy') energy_filter.bins = self.energy_groups.group_edges - energy_filter.num_bins = self.num_groups scatter_p1 = scatter_p1.diagonalize_filter(energy_filter) rxn_tally = self.tallies['scatter'] - scatter_p1 else: @@ -1330,8 +1318,6 @@ class NuScatterMatrixXS(ScatterMatrixXS): group_edges = self.energy_groups.group_edges energy = openmc.Filter('energy', group_edges) energyout = openmc.Filter('energyout', group_edges) - energy.num_bins = self.num_groups - energyout.num_bins = self.num_groups filters = [[energy], [energy, energyout], [energyout]] # Intialize the Tallies @@ -1347,7 +1333,6 @@ class NuScatterMatrixXS(ScatterMatrixXS): scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) energy_filter = openmc.Filter(type='energy') energy_filter.bins = self.energy_groups.group_edges - energy_filter.num_bins = self.num_groups scatter_p1 = scatter_p1.diagonalize_filter(energy_filter) rxn_tally = self.tallies['nu-scatter'] - scatter_p1 else: @@ -1375,8 +1360,6 @@ class Chi(MultiGroupXS): group_edges = self.energy_groups.group_edges energy_filter = openmc.Filter('energy', group_edges) energyout_filter = openmc.Filter('energyout', group_edges) - energy_filter.num_bins = self.num_groups - energyout_filter.num_bins = self.num_groups filters = [[energy_filter], [energyout_filter]] # Intialize the Tallies @@ -1423,7 +1406,6 @@ class Chi(MultiGroupXS): energy_filter = openmc.Filter(type='energyout') energy_filter.bins = self.energy_groups.group_edges - energy_filter.num_bins = self.num_groups norm = norm.tile_filter(energy_filter) self._xs_tally /= norm From fa86ae2fbba7eedf6bfe94a3874944cc1eb4e4fb Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 12:51:53 -0400 Subject: [PATCH 27/91] Removed references to Greek letters in MultiGroupXS latex generatoin --- openmc/mgxs/mgxs.py | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 5abc4fe0a..160ce1dcb 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -30,20 +30,6 @@ DOMAINS = [openmc.Cell, openmc.Material, openmc.Mesh] -# LaTeX Greek symbols for each cross-section type -GREEK = dict() -GREEK['total'] = '$\\Sigma_{t}$' -GREEK['transport'] = '$\\Sigma_{tr}$' -GREEK['absorption'] = '$\\Sigma_{a}$' -GREEK['capture'] = '$\\Sigma_{c}$' -GREEK['scatter'] = '$\\Sigma_{s}$' -GREEK['nu-scatter'] = '$\\nu\\Sigma_{s}$' -GREEK['scatter matrix'] = '$\\Sigma_{s}$' -GREEK['nu-scatter matrix'] = '$\\nu\\Sigma_{s}$' -GREEK['fission'] = '$\\Sigma_{f}$' -GREEK['nu-fission'] = '$\\nu\\Sigma_{f}$' -GREEK['chi'] = '$\\chi$' - class MultiGroupXS(object): """A multi-group cross-section for some energy group structure within @@ -775,8 +761,6 @@ class MultiGroupXS(object): 'data to a LaTeX table' raise NotImplementedError(msg) - # FIXME: Insert greek letters - df.to_latex(filename + '.tex', bold_rows=True, longtable=True, index=False) @@ -793,6 +777,7 @@ class MultiGroupXS(object): modified.write(data) modified.write('\n\\end{document}') + def get_pandas_dataframe(self, groups='indices', summary=None): """Build a Pandas DataFrame for the MultiGroupXS data. From 6d2a87fd35afda3a31af89c2104604514680d8be Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 13:04:27 -0400 Subject: [PATCH 28/91] Removed subdomain indices related methods and attributes from MultiGroupXS in Python API --- openmc/mgxs/mgxs.py | 179 +++++--------------------------------------- 1 file changed, 20 insertions(+), 159 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 160ce1dcb..d655472ed 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -70,12 +70,6 @@ class MultiGroupXS(object): xs_tally : Tally Derived tally for the multi-group cross-section. This attribute is None unless the multi-group cross-section has been computed. - subdomain_indices : dict - Integer subdomain IDs (keys) mapped to integer tally data array - indices (values) for 'distribcell' domain types. Each subdomain ID - corresponds to an instance of the cell domain. For all other domain - types, the domain has only one subdomain and this dictionary will - trivially map zero to zero. offset : Integral The filter offset for the domain filter @@ -95,12 +89,6 @@ class MultiGroupXS(object): self._num_groups = None self._tallies = dict() self._xs_tally = None - - # A dictionary used to compute indices into the xs array - # Keys - Domain ID (ie, maaterial ID, distribcell instance ID, etc) - # Values - Offset/stride into xs array - # NOTE: This is primarily used for distribcell domain types - self._subdomain_indices = dict() self._offset = None self.name = name @@ -124,8 +112,6 @@ class MultiGroupXS(object): clone._energy_groups = copy.deepcopy(self.energy_groups, memo) clone._num_groups = self.num_groups clone._xs_tally = copy.deepcopy(self.xs_tally, memo) - clone._subdomain_indices = \ - copy.deepcopy(self.subdomain_indices, memo) clone._offset = copy.deepcopy(self.offset, memo) clone._tallies = dict() @@ -177,8 +163,10 @@ class MultiGroupXS(object): return self._offset @property - def subdomain_indices(self): - return self._subdomain_indices + def num_subdomains(self): + tally = self.tallies.values()[0] + domain_filter = tally.find_filter(self.domain_type) + return domain_filter.num_bins @name.setter def name(self, name): @@ -189,8 +177,6 @@ class MultiGroupXS(object): def domain(self, domain): cv.check_type('domain', domain, tuple(DOMAINS)) self._domain = domain - if self._domain_type in ['material', 'cell', 'universe', 'mesh']: - self._subdomain_indices[domain.id] = 0 @domain_type.setter def domain_type(self, domain_type): @@ -210,141 +196,6 @@ class MultiGroupXS(object): domain_filter = tally.find_filter(self.domain_type) self._offset = domain_filter.offset - def set_subdomain_index(self, subdomain_id, index): - """Set the filter bin index for a subdomain of the domain. - - This is useful when the domain type is 'distribcell', in which case one - may wish to map each subdomain (a cell instance) to its filter bin in - the derived multi-group cross-section tally data array. - - Parameters - ---------- - subdomain_id : Integral - The ID for the subdomain - - index : Integral - The filter bin index for the subdomain - - See also - -------- - MultiGroupXS.get_subdomains(), MultiGroupXS.get_subdomain_indices() - - """ - - cv.check_type('subdomain id', subdomain_id, Integral) - cv.check_type('subdomain index', index, Integral) - cv.check_greater_than('subdomain id', subdomain_id, 0, equality=True) - cv.check_greater_than('subdomain index', index, 0, equality=True) - self._subdomain_indices[subdomain_id] = index - - def get_subdomain_indices(self, subdomains='all'): - """Get the indices for one or more subdomains. - - This method can be used to extract the indices into the multi-group - cross-section tally data array for a subdomain. This is useful when the - domain type is 'distribcell', in which case one may wish to map each - subdomain (a cell instance) to its filter bin index in the derived - multi-group cross-section tally data array. - - Parameters - ---------- - subdomains : Iterable of Integral or 'all' - Subdomain IDs (distribcell instance IDs) of interest - - Returns - ---------- - indices : ndarray - The subdomain indices indexed in the order of the subdomains - - Raises - ------ - ValueError - When one of the subdomains is not a valid subdomain ID. - - See also - -------- - MultiGroupXS.get_subdomains(), MultiGroupXS.set_subdomain_index() - - """ - - if subdomains != 'all': - cv.check_type('subdomains', subdomains, Iterable, Integral) - - if subdomains == 'all' and self.domain_type != 'distribcell': - indices = [0] - elif subdomains == 'all' and self.domain_type == 'distribcell': - tally = self.tallies.values()[0] - domain_filter = tally.find_filter(self.domain_type) - num_subdomains = domain_filter.num_bins - indices = np.arange(num_subdomains) - else: - indices = np.zeros(len(subdomains), dtype=np.int64) - - for i, subdomain in enumerate(subdomains): - if subdomain in self.subdomain_indices: - indices[i] = self.subdomain_indices[subdomain] - else: - msg = 'Unable to get index for subdomain "{0}" since it ' \ - 'is not a valid subdomain'.format(subdomain) - raise ValueError(msg) - - return indices - - def get_subdomains(self, indices='all'): - """Get the subdomain IDs for one or more indices. - - This method can be used to extract the subdomains for the multi-group - cross-section from their indices in the tally data array. This is useful - when the domain type is 'distribcell', in which case one may wish to map - each subdomain (a cell instance) to its filter bin index in the derived - multi-group cross-section tally data array. - - Parameters - ---------- - indices : Iterable of Integral or 'all' - Subdomain indices of interest - - Returns - ---------- - subdomains : ndarray - Array of subdomain IDs indexed in the order of the indices - - Raises - ------ - ValueError - When one of the indices is not a valid subdomain index. - - See also - -------- - MultiGroupXS.get_subdomain_indices(), MultiGroupXS.set_subdomain_index() - - """ - - if indices != 'all': - cv.check_type('offsets', indices, Iterable, Integral) - - if indices == 'all' and self.domain_type != 'distribcell': - subdomains = [self.domain.id] - elif indices == 'all' and self.domain_type == 'distribcell': - tally = self.tallies.values()[0] - domain_filter = tally.find_filter(self.domain_type) - num_subdomains = domain_filter.num_bins - subdomains = np.arange(num_subdomains) - else: - subdomains = np.zeros(len(indices), dtype=np.int64) - keys = self.subdomain_indices.keys() - values = self.subdomain_indices.values() - - for i, index in enumerate(indices): - if index in values: - subdomains[i] = keys[values.index(index)] - else: - msg = 'Unable to get subdomain for index "{0}" since it ' \ - 'is not a valid index'.format(index) - raise ValueError(msg) - - return subdomains - @abc.abstractmethod def create_tallies(self, scores, all_filters, keys, estimator): """Instantiates tallies needed to compute the multi-group cross-section. @@ -532,21 +383,26 @@ class MultiGroupXS(object): raise ValueError(msg) # Construct a collection of the subdomain filter bins to average across - subdomain_indices = self.get_subdomain_indices(subdomains) + if subdomains == 'all': + if self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains) + else: + subdomains = [self.domain.id] + else: + cv.check_iterable_type('subdomains', subdomains, Integral) # Clone this MultiGroupXS to initialize the condensed version avg_xs = copy.deepcopy(self) # Reset subdomain indices and offsets for distribcell domains if self.domain_type == 'distribcell': - avg_xs._subdomain_indices = {} avg_xs._offset = 0 # Overwrite tallies with new subdomain-averaged versions avg_xs._tallies = {} for tally_type, tally in self.tallies.items(): tally_sum = tally.summation(filter=self.domain_type, - filter_bins=subdomain_indices) + filter_bins=subdomains) tally_sum /= len(subdomains) avg_xs.tallies[tally_type] = tally_sum @@ -577,7 +433,10 @@ class MultiGroupXS(object): # Append cross-section data if it has been computed if self.xs_tally is not None: if subdomains == 'all': - subdomains = self.get_subdomains() + if self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] # Loop over all subdomains for subdomain in subdomains: @@ -682,7 +541,6 @@ class MultiGroupXS(object): self._tallies = xs_results['tallies'] self._xs_tally = xs_results['xs_tally'] self._offset = xs_results['offset'] - self._subdomain_indices = xs_results['subdomain_indices'] def build_hdf5_store(self, filename='mgxs', directory='mgxs', append=True, key=None): @@ -1256,7 +1114,10 @@ class ScatterMatrixXS(MultiGroupXS): string += template.format('', group, bounds[0], bounds[1]) if subdomains == 'all': - subdomains = self.get_subdomains() + if self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] # Loop over all subdomains for subdomain in subdomains: From 2ad9ac99325afcd4021d605dbbb173f7fbba28a4 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 17:14:29 -0400 Subject: [PATCH 29/91] HDF5 stores now working for MultiGroupXS in Python API --- openmc/filter.py | 2 +- openmc/mgxs/mgxs.py | 119 ++++++++++++++++++++++++++++++++++---------- openmc/tallies.py | 4 +- 3 files changed, 95 insertions(+), 30 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 10a245d75..85f1ee5bc 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -511,7 +511,7 @@ class Filter(object): try: import pandas as pd except ImportError: - msg = 'The pandas Python package must be installed on your system' + msg = 'The Pandas Python package must be installed on your system' raise ImportError(msg) # Initialize Pandas DataFrame diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d655472ed..e2ec26859 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -542,20 +542,99 @@ class MultiGroupXS(object): self._xs_tally = xs_results['xs_tally'] self._offset = xs_results['offset'] - def build_hdf5_store(self, filename='mgxs', directory='mgxs', - append=True, key=None): + def build_hdf5_store(self, filename='mgxs', directory='mgxs', append=True): + """Export the multi-group cross-section data into an HDF5 binary file. + + This routine constructs an HDF5 file which stores the multi-group + cross-section data. The data is be stored in a hierarchy of HDF5 groups + from the domain type, domain id, subdomain id (for distribcell domains), + and cross-section type. Two datasets for the mean and standard deviation + are stored for each subddomain entry in the HDF5 file. + + NOTE: This requires the h5py Python package. + + Parameters + ---------- + filename : str + Filename for the HDF5 file (default is 'mgxs') + + directory : str + Directory for the HDF5 file (default is 'mgxs') + + append : boolean + If true, appends to an existing HDF5 file with the same filename + directory (if one exists) + + Raises + ------ + ValueError + When this method is called before the multi-group cross-section is + computed from tally data. + ImportError + When h5py is not installed. + """ - :param filename: - :param directory: - :param append: - :param key: - :return: - """ + if self.xs_tally is None: + msg = 'Unable to get build HDF5 store since the ' \ + 'cross-section has not been computed' + raise ValueError(msg) - # FIXME: - import h5py - raise NotImplementedError('HDF5 storage is not yet implemented') + # Attempt to import h5py + try: + import h5py + except ImportError: + msg = 'The h5py Python package must be installed on your system' + raise ImportError(msg) + + filename = directory + '/' + filename + '.h5' + filename = filename.replace(' ', '-') + + if append: + xs_results = h5py.File(filename, 'a') + else: + xs_results = h5py.File(filename, 'w') + + # Create an HDF5 group within the file for the domain + domain_type_group = xs_results.require_group(self.domain_type) + group_name = '{0} {1}'.format(self.domain_type, self.domain.id) + domain_group = domain_type_group.require_group(group_name) + + if self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Determine number of digits to pad subdomain group keys + num_digits = len(str(self.num_subdomains)) + + # Create a separate HDF5 dataset for each subdomain + for i, subdomain in enumerate(subdomains): + + # Create an HDF5 group for the subdomain + if self.domain_type == 'distribcell': + group_name = str(subdomain).zfill(num_digits) + subdomain_group = domain_group.require_group(group_name) + else: + subdomain_group = domain_group + + # Create a separate HDF5 group for the xs type + xs_group = subdomain_group.require_group(self.xs_type) + + # Extract the cross-section for this + average = self.get_xs(subdomains=[subdomain], value='mean') + std_dev = self.get_xs(subdomains=[subdomain], value='std_dev') + average = average.squeeze() + std_dev = std_dev.squeeze() + + # Add MultiGroupXS results data to the HDF5 group + xs_group.require_dataset('average', dtype=np.float64, + shape=average.shape, data=average) + xs_group.require_dataset('std. dev.', dtype=np.float64, + shape=std_dev.shape, data=std_dev) + + # Close the MultiGroup results HDF5 file + xs_results.close() def export_xs_data(self, filename='mgxs', directory='mgxs', format='csv'): """Export the multi-group cross-section data to a file. @@ -1082,6 +1161,7 @@ class ScatterMatrixXS(MultiGroupXS): # Query the multi-group cross-section tally for the data xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) + xs = np.nan_to_num(xs) return xs def print_xs(self, subdomains='all'): @@ -1217,17 +1297,7 @@ class Chi(MultiGroupXS): nu_fission_in = self.tallies['nu-fission-in'] nu_fission_out = self.tallies['nu-fission-out'] - # FIXME: Make filter bins simpler in Tally.summation(...) - # Construct energy group filter bins to sum across - ''' - filter_bins = [] - for group in range(1, self.num_groups+1): - group_bounds = self.energy_groups.get_group_bounds(group) - filter_bins.append((group_bounds,)) - energy_bins = [filter_bins] - ''' - energy_bins = [] for group in range(1, self.num_groups+1): energy_bins.append(self.energy_groups.get_group_bounds(group)) @@ -1235,9 +1305,6 @@ class Chi(MultiGroupXS): sum_nu_fission_in = nu_fission_in.summation(filter='energy', filter_bins=energy_bins) - # FIXME: Need ability to override energy groups with group numbers - # FIXME: Reverse from fast to thermal with energy groups - # FIXME: CrossFilter for energy + energy messes up tally arithmetic sum_nu_fission_in.remove_filter(sum_nu_fission_in.filters[-1]) @@ -1256,6 +1323,4 @@ class Chi(MultiGroupXS): self._xs_tally /= norm self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) - - # FIXME: Does this need to reset NaNs to zero? \ No newline at end of file + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) \ No newline at end of file diff --git a/openmc/tallies.py b/openmc/tallies.py index bccfd2eb5..8e5292d29 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1075,11 +1075,11 @@ class Tally(object): 'Summary info'.format(self.id) raise KeyError(msg) - # Attempt to import the pandas package + # Attempt to import Pandas try: import pandas as pd except ImportError: - msg = 'The pandas Python package must be installed on your system' + msg = 'The Pandas Python package must be installed on your system' raise ImportError(msg) # Initialize a pandas dataframe for the tally data From 4657823ade25e51b97d36ce2463b04ada4a64584 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 17:24:09 -0400 Subject: [PATCH 30/91] Added abstract compute_xs method to MultiGroupXS class in Python API --- openmc/mgxs/mgxs.py | 45 ++++++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e2ec26859..f8fd5518d 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -70,13 +70,11 @@ class MultiGroupXS(object): xs_tally : Tally Derived tally for the multi-group cross-section. This attribute is None unless the multi-group cross-section has been computed. - offset : Integral - The filter offset for the domain filter """ # This is an abstract class which cannot be instantiated - metaclass__ = abc.ABCMeta + __metaclass__ = abc.ABCMeta def __init__(self, domain=None, domain_type=None, energy_groups=None, name=''): @@ -89,7 +87,6 @@ class MultiGroupXS(object): self._num_groups = None self._tallies = dict() self._xs_tally = None - self._offset = None self.name = name if domain_type is not None: @@ -112,7 +109,6 @@ class MultiGroupXS(object): clone._energy_groups = copy.deepcopy(self.energy_groups, memo) clone._num_groups = self.num_groups clone._xs_tally = copy.deepcopy(self.xs_tally, memo) - clone._offset = copy.deepcopy(self.offset, memo) clone._tallies = dict() for tally_type, tally in self.tallies.items(): @@ -158,10 +154,6 @@ class MultiGroupXS(object): def xs_tally(self): return self._xs_tally - @property - def offset(self): - return self._offset - @property def num_subdomains(self): tally = self.tallies.values()[0] @@ -189,13 +181,6 @@ class MultiGroupXS(object): self._energy_groups = energy_groups self._num_groups = energy_groups.num_groups - def _find_domain_offset(self): - """Finds and stores the offset of the domain tally filter""" - - tally = self.tallies.values()[0] - domain_filter = tally.find_filter(self.domain_type) - self._offset = domain_filter.offset - @abc.abstractmethod def create_tallies(self, scores, all_filters, keys, estimator): """Instantiates tallies needed to compute the multi-group cross-section. @@ -239,6 +224,12 @@ class MultiGroupXS(object): for filter in filters: self.tallies[key].add_filter(filter) + @abc.abstractmethod + def compute_xs(self): + """Computes multi-group cross-sections using OpenMC tally arithmetic.""" + + return + def load_from_statepoint(self, statepoint): """Extracts tallies in an OpenMC StatePoint with the data needed to compute multi-group cross-sections. @@ -814,7 +805,7 @@ class TotalXS(MultiGroupXS): def compute_xs(self): """Computes the multi-group total cross-sections using OpenMC - tally arithmetic""" + tally arithmetic.""" self._xs_tally = self.tallies['total'] / self.tallies['flux'] self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) @@ -851,7 +842,7 @@ class TransportXS(MultiGroupXS): def compute_xs(self): """Computes the multi-group transport cross-sections using OpenMC - tally arithmetic""" + tally arithmetic.""" self._xs_tally = self.tallies['total'] - self.tallies['scatter-P1'] self._xs_tally /= self.tallies['flux'] @@ -883,7 +874,7 @@ class AbsorptionXS(MultiGroupXS): def compute_xs(self): """Computes the multi-group absorption cross-sections using OpenMC - tally arithmetic""" + tally arithmetic.""" self._xs_tally = self.tallies['absorption'] / self.tallies['flux'] self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) @@ -914,7 +905,7 @@ class CaptureXS(MultiGroupXS): def compute_xs(self): """Computes the multi-group capture cross-sections using OpenMC - tally arithmetic""" + tally arithmetic.""" self._xs_tally = self.tallies['absorption'] - self.tallies['fission'] self._xs_tally /= self.tallies['flux'] @@ -946,7 +937,7 @@ class FissionXS(MultiGroupXS): def compute_xs(self): """Computes the multi-group fission cross-sections using OpenMC - tally arithmetic""" + tally arithmetic.""" self._xs_tally = self.tallies['fission'] / self.tallies['flux'] self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) @@ -977,7 +968,7 @@ class NuFissionXS(MultiGroupXS): def compute_xs(self): """Computes the multi-group nu-fission cross-sections using OpenMC - tally arithmetic""" + tally arithmetic.""" self._xs_tally = self.tallies['nu-fission'] / self.tallies['flux'] self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) @@ -1008,7 +999,7 @@ class ScatterXS(MultiGroupXS): def compute_xs(self): """Computes the scattering multi-group cross-sections using - OpenMC tally arithmetic""" + OpenMC tally arithmetic.""" self._xs_tally = self.tallies['scatter'] / self.tallies['flux'] self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) @@ -1039,7 +1030,7 @@ class NuScatterXS(MultiGroupXS): def compute_xs(self): """Computes the nu-scattering multi-group cross-section using OpenMC - tally arithmetic""" + tally arithmetic.""" self._xs_tally = self.tallies['nu-scatter'] / self.tallies['flux'] self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) @@ -1075,7 +1066,7 @@ class ScatterMatrixXS(MultiGroupXS): def compute_xs(self, correction='None'): """Computes the multi-group scattering matrix using OpenMC - tally arithmetic""" + tally arithmetic.""" # If using P0 correction subtract scatter-P1 from the diagonal if correction == 'P0': @@ -1251,7 +1242,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): def compute_xs(self, correction='None'): """Computes the multi-group nu-scattering matrix using OpenMC - tally arithmetic""" + tally arithmetic.""" # If using P0 correction subtract scatter-P1 from the diagonal if correction == 'P0': @@ -1292,7 +1283,7 @@ class Chi(MultiGroupXS): super(Chi, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - """Computes chi fission spectrum using OpenMC tally arithmetic""" + """Computes chi fission spectrum using OpenMC tally arithmetic.""" nu_fission_in = self.tallies['nu-fission-in'] nu_fission_out = self.tallies['nu-fission-out'] From ec497c526a371f954ba9bfd7eb7e111ed89527e9 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 17:29:17 -0400 Subject: [PATCH 31/91] Improved docstrings for MultiGroupXS --- openmc/mgxs/mgxs.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f8fd5518d..a71da8cf1 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1043,7 +1043,7 @@ class ScatterMatrixXS(MultiGroupXS): super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, name) self._xs_type = 'scatter matrix' - def create_tallies(self, correct=False): + def create_tallies(self): """Construct the OpenMC tallies needed to compute this cross-section.""" group_edges = self.energy_groups.group_edges @@ -1051,12 +1051,8 @@ class ScatterMatrixXS(MultiGroupXS): energyout = openmc.Filter('energyout', group_edges) # Create a list of scores for each Tally to be created - if correct: - scores = ['flux', 'scatter', 'scatter-P1'] - filters = [[energy], [energy, energyout], [energyout]] - else: - scores = ['flux', 'scatter'] - filters = [[energy], [energy, energyout]] + scores = ['flux', 'scatter', 'scatter-P1'] + filters = [[energy], [energy, energyout], [energyout]] estimator = 'analog' keys = scores @@ -1066,7 +1062,15 @@ class ScatterMatrixXS(MultiGroupXS): def compute_xs(self, correction='None'): """Computes the multi-group scattering matrix using OpenMC - tally arithmetic.""" + tally arithmetic. + + Parameters + ---------- + correction : {'P0' or None} + If 'P0', applies the P0 transport correction to the diagonal of the + scattering matrix. + + """ # If using P0 correction subtract scatter-P1 from the diagonal if correction == 'P0': @@ -1242,7 +1246,15 @@ class NuScatterMatrixXS(ScatterMatrixXS): def compute_xs(self, correction='None'): """Computes the multi-group nu-scattering matrix using OpenMC - tally arithmetic.""" + tally arithmetic. + + Parameters + ---------- + correction : {'P0' or None} + If 'P0', applies the P0 transport correction to the diagonal of the + scattering matrix + + """ # If using P0 correction subtract scatter-P1 from the diagonal if correction == 'P0': From e40716a49bb015db33135f8fe56eb633958bf9d7 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 13 Sep 2015 20:16:07 -0400 Subject: [PATCH 32/91] Began cleanup of Tally.summation(...) routine in Python API --- openmc/mgxs/mgxs.py | 6 ++--- openmc/tallies.py | 63 +++++++-------------------------------------- 2 files changed, 12 insertions(+), 57 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index a71da8cf1..590392ae8 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -392,7 +392,7 @@ class MultiGroupXS(object): # Overwrite tallies with new subdomain-averaged versions avg_xs._tallies = {} for tally_type, tally in self.tallies.items(): - tally_sum = tally.summation(filter=self.domain_type, + tally_sum = tally.summation(filter_type=self.domain_type, filter_bins=subdomains) tally_sum /= len(subdomains) avg_xs.tallies[tally_type] = tally_sum @@ -1305,7 +1305,7 @@ class Chi(MultiGroupXS): for group in range(1, self.num_groups+1): energy_bins.append(self.energy_groups.get_group_bounds(group)) - sum_nu_fission_in = nu_fission_in.summation(filter='energy', + sum_nu_fission_in = nu_fission_in.summation(filter_type='energy', filter_bins=energy_bins) # FIXME: CrossFilter for energy + energy messes up tally arithmetic @@ -1314,7 +1314,7 @@ class Chi(MultiGroupXS): self._xs_tally = nu_fission_out / sum_nu_fission_in # Normalize chi to 1.0 - norm = self.xs_tally.summation(filter='energyout', + norm = self.xs_tally.summation(filter_type='energyout', filter_bins=energy_bins) # FIXME: CrossFilter for energy + energy messes up tally arithmetic diff --git a/openmc/tallies.py b/openmc/tallies.py index 8e5292d29..28dc451f5 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1405,35 +1405,11 @@ class Tally(object): match_filters = self.filters[:match] cross_filters = [self.filters[match:], other.filters[match:]] - ''' - # FIXME: - self_filters = set(self.filters) - other_filters = set(other.filters) - diff1 = list(self_filters.difference(other_filters)) - diff2 = list(other_filters.difference(self_filters)) - symm_diff = list(other_filters.symmetric_difference(self_filters)) - ''' - # FIXME: This must be the common longest sequence of tallies at the beginning for filter in match_filters: new_tally.add_filter(filter) - ''' - # - if len(self_filters) == 0: - for filter in self.filters: - new_tally.add_filter(filter) - for filter in self_filters: - new_tally.add_filter(filter) - # - elif len(diff2) == 0: - for filter in other.filters: - new_tally.add_filter(filter) - for filter in diff2: - new_tally.add_filter(filter) - ''' - if len(self.filters) != match and len(other.filters) == match: for filter in cross_filters[0]: new_tally.add_filter(filter) @@ -1445,19 +1421,6 @@ class Tally(object): new_filter = CrossFilter(self_filter, other_filter, binary_op) new_tally.add_filter(new_filter) - # -# else: -# all_filters = list(set([self.filters, other.filters] - ''' - if len(symm_diff) <= 1: - for filter in symm_diff: - new_tally.add_filter(filter) - else: - for self_filter, other_filter in itertools.product(*symm_diff): - new_filter = CrossFilter(self_filter, other_filter, binary_op) - new_tally.add_filter(new_filter) - ''' - # Generate score "outer products" if self.scores == other.scores: new_tally.num_score_bins = self.num_score_bins @@ -2294,7 +2257,8 @@ class Tally(object): return new_tally - def summation(self, scores=[], filter=None, filter_bins=[], nuclides=[]): + def summation(self, scores=[], filter_type=None, + filter_bins=[], nuclides=[]): """Build a sliced tally for the specified filter bins, nuclides, scores. This method constructs a new tally to encapsulate a subset of the data @@ -2308,7 +2272,7 @@ class Tally(object): A list of one or more score strings to sum across (e.g., ['absorption', 'nu-fission']; default is []) - filter : str + filter_type : str A filter type string (e.g., 'cell', 'energy') corresponding to the filter bins to sum across @@ -2348,19 +2312,13 @@ class Tally(object): nuclides = [[nuclide] for nuclide in nuclides] # Sum across any filter bins specified by the user - if filter in FILTER_TYPES.values(): + if filter_type in FILTER_TYPES.values(): filter_bins = [[(filter_bin,)] for filter_bin in filter_bins] - filters = [[filter]] + filters = [[filter_type]] # If user did not specify a filter type, do not sum across filter bins else: filter_bins = [[]] filters = [[]] - ''' - else: -# filter_bins = list(itertools.product(*filter_bins)) - filter_bins = [[filter_bin] for filter_bin in filter_bins] - filters = [[filter]] - ''' # Initialize Tally sum tally_sum = 0 @@ -2372,10 +2330,10 @@ class Tally(object): tally_slice = self.get_slice(scores, filters, filter_bins, nuclides) # Remove filters summed across to avoid bulky CrossFilters - for filter in reversed(tally_slice.filters): - if filter.type in filters: - tally_slice.remove_filter(filter) - summed_filters[filter.type].append(filter) + if filter_type: + filter = tally_slice.find_filter(filter_type) + tally_slice.remove_filter(filter) + summed_filters[filter_type].append(filter) # Accumulate this Tally slice into the Tally sum tally_sum += tally_slice @@ -2387,9 +2345,6 @@ class Tally(object): filters[i] = CrossFilter(filters[i-1], filters[i], '+') tally_sum.add_filter(filters[-1]) -# for filter in removed_filters: -# tally_sum.add_filter(filter) - return tally_sum def tile_filter(self, new_filter): From 053c1d31a8e84257c9631637637a3e389d326419 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 21 Sep 2015 21:17:18 -0400 Subject: [PATCH 33/91] Multi-group Chi is now working with bug fixes to StatePoint.get_tally(...) --- openmc/mgxs/mgxs.py | 30 +------------- openmc/statepoint.py | 11 +++++- openmc/tallies.py | 94 +++++++++++++++++++------------------------- 3 files changed, 51 insertions(+), 84 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 590392ae8..3d473a626 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1287,9 +1287,8 @@ class Chi(MultiGroupXS): # 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], [energyout_filter]] + filters = [[], [energyout_filter]] # Intialize the Tallies super(Chi, self).create_tallies(scores, filters, keys, estimator) @@ -1299,31 +1298,6 @@ class Chi(MultiGroupXS): nu_fission_in = self.tallies['nu-fission-in'] nu_fission_out = self.tallies['nu-fission-out'] - - # Construct energy group filter bins to sum across - energy_bins = [] - for group in range(1, self.num_groups+1): - energy_bins.append(self.energy_groups.get_group_bounds(group)) - - sum_nu_fission_in = nu_fission_in.summation(filter_type='energy', - filter_bins=energy_bins) - - # FIXME: CrossFilter for energy + energy messes up tally arithmetic - sum_nu_fission_in.remove_filter(sum_nu_fission_in.filters[-1]) - - self._xs_tally = nu_fission_out / sum_nu_fission_in - - # Normalize chi to 1.0 - norm = self.xs_tally.summation(filter_type='energyout', - filter_bins=energy_bins) - - # FIXME: CrossFilter for energy + energy messes up tally arithmetic - norm.remove_filter(norm.filters[-1]) - - energy_filter = openmc.Filter(type='energyout') - energy_filter.bins = self.energy_groups.group_edges - norm = norm.tile_filter(energy_filter) - - self._xs_tally /= norm + self._xs_tally = nu_fission_out / nu_fission_in self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) \ No newline at end of file diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 22686e8e9..545b53a1a 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -635,8 +635,15 @@ class StatePoint(object): contains_filters = True # Iterate over the Filters requested by the user - for filter, test_filter in zip(filters, test_tally.filters): - if not test_filter.is_subset(filter): + for filter in filters: + contains_filter = False + + for test_filter in test_tally.filters: + if test_filter.is_subset(filter): + contains_filter = True + break + + if not contains_filter: contains_filters = False break diff --git a/openmc/tallies.py b/openmc/tallies.py index 28dc451f5..a62043132 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1354,26 +1354,22 @@ class Tally(object): new_tally._std_dev = np.sqrt(data['self']['std. dev.']**2 + data['other']['std. dev.']**2) elif binary_op == '-': - data = self._align_tally_data(other) new_tally._mean = data['self']['mean'] - data['other']['mean'] new_tally._std_dev = np.sqrt(data['self']['std. dev.']**2 + data['other']['std. dev.']**2) elif binary_op == '*': - data = self._align_tally_data(other) self_rel_err = data['self']['std. dev.'] / data['self']['mean'] other_rel_err = data['other']['std. dev.'] / data['other']['mean'] new_tally._mean = data['self']['mean'] * data['other']['mean'] new_tally._std_dev = np.abs(new_tally.mean) * \ np.sqrt(self_rel_err**2 + other_rel_err**2) elif binary_op == '/': - data = self._align_tally_data(other) self_rel_err = data['self']['std. dev.'] / data['self']['mean'] other_rel_err = data['other']['std. dev.'] / data['other']['mean'] new_tally._mean = data['self']['mean'] / data['other']['mean'] new_tally._std_dev = np.abs(new_tally.mean) * \ np.sqrt(self_rel_err**2 + other_rel_err**2) elif binary_op == '^': - data = self._align_tally_data(other) mean_ratio = data['other']['mean'] / data['self']['mean'] first_term = mean_ratio * data['self']['std. dev.'] second_term = \ @@ -1562,7 +1558,6 @@ class Tally(object): A dictionary of dictionaries to "aligned" 'mean' and 'std. dev' NumPy arrays for each tally's data. - """ self_mean = copy.deepcopy(self.mean) @@ -1572,44 +1567,12 @@ class Tally(object): if self.filters != other.filters: - # FIXME: Note that this makes the assumption that common filters - # are at the beginning of each Tally's list of filters - -# match = 0 -# for i, filter_pair in enumerate(zip(self.filters, other.filters)): -# self_filter, other_filter = filter_pair -# if self_filter == other_filter: -# match += 1 -# else: -# break - -# match_filters = self.filters[:match] -# cross_filters = [self.filters[match:], other.filters[match:]] -# cross_filters.extend(other.filters[match:]) - -# other_tile_factor = 1 -# self_repeat_factor = 1 - - # FIXME: If one or the other tally has not cross filters -# repeat_factor = 1 -# for self_filter, other_filter in itertools.product(*cross_filters): -# repeat_factor *= self_filter.num_bins * other_filter.num_bins - -# other_tile_factor = repeat_factor / other.num_filter_bins -# self_repeat_factor = repeat_factor / self.num_filter_bins - -# other_tile_factor = repeat_factor -# self_repeat_factor = repeat_factor - - # -# for filter in self.filters[match:]: -# other_tile_factor *= filter.num_bins - -# for filter in other.filters[match:]: -# self_repeat_factor *= filter.num_bins - + self_shape = list(self.mean.shape) + other_shape = list(other.mean.shape) # FIXME: + # Determine the number of paired combinations of filter bins + # between the two tallies and repeat arrays along filter axes diff1 = list(set(self.filters).difference(set(other.filters))) diff2 = list(set(other.filters).difference(set(self.filters))) @@ -1623,16 +1586,23 @@ class Tally(object): for filter in diff2: self_repeat_factor *= filter.num_bins - # Determine the number of paired combinations of filter bins - # between the two tallies and repeat arrays along filter axes -# self_repeat_factor = other.num_filter_bins -# other_tile_factor = self.num_filter_bins - # Replicate the data - self_mean = np.repeat(self_mean, self_repeat_factor, axis=0) - other_mean = np.tile(other_mean, (other_tile_factor, 1, 1)) - self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=0) - other_std_dev = np.tile(other_std_dev, (other_tile_factor, 1, 1)) + self_shape[0] *= self_repeat_factor + self_mean = np.repeat(self_mean, self_repeat_factor) + self_std_dev = np.repeat(self_std_dev, self_repeat_factor) + + if self_repeat_factor == 1: + other_shape[0] *= other_tile_factor + other_mean = np.repeat(other_mean, other_tile_factor) + other_std_dev = np.repeat(other_std_dev, other_tile_factor) + else: + other_mean = np.tile(other_mean, (other_tile_factor, 1, 1)) + other_std_dev = np.tile(other_std_dev, (other_tile_factor, 1, 1)) + + self_mean.shape = tuple(self_shape) + self_std_dev.shape = tuple(self_shape) + other_mean.shape = tuple(other_shape) + other_std_dev.shape = tuple(other_shape) if self.nuclides != other.nuclides: @@ -1641,12 +1611,20 @@ class Tally(object): self_repeat_factor = other.num_nuclides other_tile_factor = self.num_nuclides + self_shape = list(self.mean.shape) + # Replicate the data - self_mean = np.repeat(self_mean, self_repeat_factor, axis=1) + self_mean = np.repeat(self_mean, self_repeat_factor) +# self_mean = np.repeat(self_mean, self_repeat_factor, axis=1) other_mean = np.tile(other_mean, (1, other_tile_factor, 1)) - self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=1) +# self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=1) + self_std_dev = np.repeat(self_std_dev, self_repeat_factor) other_std_dev = np.tile(other_std_dev, (1, other_tile_factor, 1)) + self_shape[1] *= self_repeat_factor + self_mean.shape = tuple(self_shape) + self_std_dev.shape = tuple(self_shape) + if self.scores != other.scores: # Determine the number of paired combinations of score bins @@ -1654,12 +1632,20 @@ class Tally(object): self_repeat_factor = other.num_score_bins other_tile_factor = self.num_score_bins + self_shape = list(self.mean.shape) + # Replicate the data - self_mean = np.repeat(self_mean, self_repeat_factor, axis=2) + self_mean = np.repeat(self_mean, self_repeat_factor) +# self_mean = np.repeat(self_mean, self_repeat_factor, axis=2) other_mean = np.tile(other_mean, (1, 1, other_tile_factor)) - self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=2) + self_std_dev = np.repeat(self_std_dev, self_repeat_factor) +# self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=2) other_std_dev = np.tile(other_std_dev, (1, 1, other_tile_factor)) + self_shape[2] *= self_repeat_factor + self_mean.shape = tuple(self_shape) + self_std_dev.shape = tuple(self_shape) + data = {} data['self'] = {} data['other'] = {} From ffea752c5d9de3cb3571b17c0f6a58a03933c7f2 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 24 Sep 2015 15:20:51 -0400 Subject: [PATCH 34/91] Fixed bug in openmc.mgxs for appending data to HDF5 files --- 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 3d473a626..d7d6af807 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -578,10 +578,14 @@ class MultiGroupXS(object): msg = 'The h5py Python package must be installed on your system' raise ImportError(msg) + # Make directory if it does not exist + if not os.path.exists(directory): + os.makedirs(directory) + filename = directory + '/' + filename + '.h5' filename = filename.replace(' ', '-') - if append: + if append and os.path.isfile(filename): xs_results = h5py.File(filename, 'a') else: xs_results = h5py.File(filename, 'w') From 4bf7fe5104b34af559fbd465ae0ef51c176462c1 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 26 Sep 2015 12:18:03 -0400 Subject: [PATCH 35/91] Fixed issue in Filter.is_subset(...) routine for energy filter types --- openmc/filter.py | 2 ++ openmc/mgxs/mgxs.py | 15 +++++++++------ openmc/statepoint.py | 11 +++++------ 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index fdeebaf8a..5c97fb9e3 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -322,6 +322,8 @@ class Filter(object): return False elif self.type != other.type: return False + elif self.type in ['energy', 'energyout']: + return np.all(self.bins == other.bins) for bin in other.bins: if bin not in self.bins: diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 332eb7190..98248dc87 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -840,6 +840,7 @@ class TransportXS(MultiGroupXS): super(TransportXS, self).load_from_statepoint(statepoint) scatter_p1 = self.tallies['scatter-P1'] self.tallies['scatter-P1'] = scatter_p1.get_slice(scores=['scatter-P1']) + self.tallies['scatter-P1'].filters[-1].type = 'energy' def compute_xs(self): """Computes the multi-group transport cross-sections using OpenMC @@ -1061,7 +1062,7 @@ class ScatterMatrixXS(MultiGroupXS): # Initialize the Tallies super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) - def compute_xs(self, correction='None'): + def compute_xs(self, correction='P0'): """Computes the multi-group scattering matrix using OpenMC tally arithmetic. @@ -1075,7 +1076,7 @@ class ScatterMatrixXS(MultiGroupXS): # If using P0 correction subtract scatter-P1 from the diagonal if correction == 'P0': - scatter_p1 = self.tallies['scatter-1'] + scatter_p1 = self.tallies['scatter-P1'] scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) energy_filter = openmc.Filter(type='energy') energy_filter.bins = self.energy_groups.group_edges @@ -1245,7 +1246,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): # Intialize the Tallies super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) - def compute_xs(self, correction='None'): + def compute_xs(self, correction='P0'): """Computes the multi-group nu-scattering matrix using OpenMC tally arithmetic. @@ -1259,7 +1260,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): # If using P0 correction subtract scatter-P1 from the diagonal if correction == 'P0': - scatter_p1 = self.tallies['scatter-1'] + scatter_p1 = self.tallies['scatter-P1'] scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) energy_filter = openmc.Filter(type='energy') energy_filter.bins = self.energy_groups.group_edges @@ -1288,8 +1289,9 @@ class Chi(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges - energyout_filter = openmc.Filter('energyout', group_edges) - filters = [[], [energyout_filter]] + energyout_filter1 = openmc.Filter('energyout', group_edges) + energyout_filter2 = openmc.Filter('energyout', [group_edges[0], group_edges[-1]]) + filters = [[energyout_filter2], [energyout_filter1]] # Intialize the Tallies super(Chi, self).create_tallies(scores, filters, keys, estimator) @@ -1299,6 +1301,7 @@ class Chi(MultiGroupXS): nu_fission_in = self.tallies['nu-fission-in'] nu_fission_out = self.tallies['nu-fission-out'] + nu_fission_in.remove_filter(nu_fission_in.filters[-1]) self._xs_tally = nu_fission_out / nu_fission_in self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 34ed09ad4..f90e429cc 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -466,7 +466,7 @@ class StatePoint(object): """Finds and returns a Tally object with certain properties. This routine searches the list of Tallies and returns the first Tally - found it finds which satisfies all of the input parameters. + 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. @@ -534,15 +534,14 @@ class StatePoint(object): # Iterate over the Filters requested by the user for filter in filters: - contains_filter = False + contains_filters = False for test_filter in test_tally.filters: - if test_filter.is_subset(filter): - contains_filter = True + if filter.is_subset(test_filter): + contains_filters = True break - if not contains_filter: - contains_filters = False + if not contains_filters: break if not contains_filters: From 8ebaf9cb2447a2bdc797f107ecf11591c5e26b82 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 26 Sep 2015 14:02:53 -0400 Subject: [PATCH 36/91] The Python APIs multi-group cross-section condensation is now working except for transfer matrice --- openmc/mgxs/mgxs.py | 59 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 98248dc87..eadcbda88 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -341,7 +341,59 @@ class MultiGroupXS(object): """ - raise NotImplementedError('Energy condensation is not yet implemented') + if self.xs_tally is None: + msg = 'Unable to get a condensed coarse group cross-section ' \ + 'since the fine group cross-section has not been computed' + raise ValueError(msg) + + cv.check_type('coarse_groups', coarse_groups, EnergyGroups) + cv.check_less_than('coarse groups', coarse_groups.num_groups, self.num_groups) + cv.check_value('upper coarse energy', coarse_groups.group_edges[-1], + [self.energy_groups.group_edges[-1]]) + cv.check_value('lower coarse energy', coarse_groups.group_edges[0], + [self.energy_groups.group_edges[0]]) + + # Clone this MultiGroupXS to initialize the condensed version + condensed_xs = copy.deepcopy(self) + condensed_xs.energy_groups = coarse_groups + + # Build indices to sum up over + energy_indices = [] + for group in range(coarse_groups.num_groups, 0, -1): + low, high = coarse_groups.get_group_bounds(group) + low_index = np.where(self.energy_groups.group_edges == low)[0][0] + energy_indices.append(low_index) + + # FIXME: This won't work for scattering matrices + # Overwrite tallies with new energy-condensed versions + # NOTE: This assumes that the tallies were loaded such with a single + # domain filter and energy filter in that order + for tally_type, tally in condensed_xs.tallies.items(): + + try: + # Find the tally's energy filter and update to coarse groups + energy_filter = tally.find_filter('energy') + energy_filter.bins = coarse_groups.group_edges + + # Make the condensed tally derived and ull out sum, sum_sq + tally._derived = True + tally._sum = None + tally._sum_sq = None + + # Sum up mean, std. dev fine groups within each coarse group + tally._mean = np.add.reduceat(tally.mean, energy_indices) + tally._std_dev = tally.std_dev**2 + tally._std_dev = np.add.reduceat(tally.std_dev, energy_indices) + tally._std_dev = np.sqrt(tally.std_dev) + + # If the tally had no energy filter, then pass + except ValueError: + pass + + # Compute the energy condensed multi-group cross-section + condensed_xs.compute_xs() + + return condensed_xs def get_subdomain_avg_xs(self, subdomains='all'): """Construct a subdomain-averaged version of this cross-section. @@ -367,7 +419,8 @@ class MultiGroupXS(object): """ if self.xs_tally is None: - msg = 'Unable to get cross-section since it has not been computed' + msg = 'Unable to get subdomain-averaged cross-section since the ' \ + 'subdomain-distributed cross-section has not been computed' raise ValueError(msg) # Construct a collection of the subdomain filter bins to average across @@ -394,7 +447,7 @@ class MultiGroupXS(object): tally_sum /= len(subdomains) avg_xs.tallies[tally_type] = tally_sum - # Compute the condensed single group cross-section + # Compute the subdomain-averaged multi-group cross-section avg_xs.compute_xs() return avg_xs From d0a85cd0825938417f3b42c3160e0c3fdc6c1bbe Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 26 Sep 2015 16:06:42 -0400 Subject: [PATCH 37/91] Python API group condensation now working for multi-group scattering matrices --- openmc/filter.py | 2 +- openmc/mgxs/mgxs.py | 63 ++++++++++++++++++++++++--------------------- openmc/tallies.py | 46 +++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 30 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 5c97fb9e3..f74024724 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -118,7 +118,7 @@ class Filter(object): if self.bins is None: return 0 elif self.type in ['energy', 'energyout']: - return len(self.bins)-1 + return len(self.bins) - 1 elif self.type in ['cell', 'cellborn', 'surface', 'universe', 'material']: return len(self.bins) else: diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index eadcbda88..a0e52ab5f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -364,35 +364,40 @@ class MultiGroupXS(object): low_index = np.where(self.energy_groups.group_edges == low)[0][0] energy_indices.append(low_index) - # FIXME: This won't work for scattering matrices - # Overwrite tallies with new energy-condensed versions - # NOTE: This assumes that the tallies were loaded such with a single - # domain filter and energy filter in that order + fine_edges = self.energy_groups.group_edges + + # Condense each of the tallies to the coarse group structure for tally_type, tally in condensed_xs.tallies.items(): - try: - # Find the tally's energy filter and update to coarse groups - energy_filter = tally.find_filter('energy') - energy_filter.bins = coarse_groups.group_edges + # Make condensed tally derived and null out sum, sum_sq + tally._derived = True + tally._sum = None + tally._sum_sq = None - # Make the condensed tally derived and ull out sum, sum_sq - tally._derived = True - tally._sum = None - tally._sum_sq = None + # Get tally data arrays reshaped with one dimension per filter + mean = tally.get_reshaped_data(value='mean') + std_dev = tally.get_reshaped_data(value='std_dev') - # Sum up mean, std. dev fine groups within each coarse group - tally._mean = np.add.reduceat(tally.mean, energy_indices) - tally._std_dev = tally.std_dev**2 - tally._std_dev = np.add.reduceat(tally.std_dev, energy_indices) - tally._std_dev = np.sqrt(tally.std_dev) + # Sum across all applicable fine energy group filters + for i, filter in enumerate(tally.filters): + if 'energy' in filter.type and all(filter.bins == fine_edges): + filter.bins = coarse_groups.group_edges + mean = np.add.reduceat(mean, energy_indices, axis=i) + std_dev = np.add.reduceat(std_dev**2, energy_indices, axis=i) + std_dev = np.sqrt(std_dev) - # If the tally had no energy filter, then pass - except ValueError: - pass + # Reshape condensed data arrays with one dimension for all filters + new_shape = \ + (tally.num_filter_bins, tally.num_nuclides, tally.num_score_bins,) + mean = np.reshape(mean, new_shape) + std_dev = np.reshape(std_dev, new_shape) + + # Override tally's data with the new condensed data + tally._mean = mean + tally._std_dev = std_dev # Compute the energy condensed multi-group cross-section condensed_xs.compute_xs() - return condensed_xs def get_subdomain_avg_xs(self, subdomains='all'): @@ -432,7 +437,7 @@ class MultiGroupXS(object): else: cv.check_iterable_type('subdomains', subdomains, Integral) - # Clone this MultiGroupXS to initialize the condensed version + # Clone this MultiGroupXS to initialize the subdomain-averaged version avg_xs = copy.deepcopy(self) # Reset subdomain indices and offsets for distribcell domains @@ -1115,7 +1120,7 @@ class ScatterMatrixXS(MultiGroupXS): # Initialize the Tallies super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) - def compute_xs(self, correction='P0'): + def compute_xs(self, correction=None): """Computes the multi-group scattering matrix using OpenMC tally arithmetic. @@ -1146,8 +1151,8 @@ class ScatterMatrixXS(MultiGroupXS): subdomains='all', value='mean'): """Returns an array of multi-group cross-sections. - This method constructs a 2D NumPy array for the requested multi-group - cross-section data data for one or more energy groups and subdomains. + This method constructs a 2D NumPy array for the requested scattering + matrix data data for one or more energy groups and subdomains. Parameters ---------- @@ -1299,7 +1304,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): # Intialize the Tallies super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) - def compute_xs(self, correction='P0'): + def compute_xs(self, correction=None): """Computes the multi-group nu-scattering matrix using OpenMC tally arithmetic. @@ -1342,9 +1347,9 @@ class Chi(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges - energyout_filter1 = openmc.Filter('energyout', group_edges) - energyout_filter2 = openmc.Filter('energyout', [group_edges[0], group_edges[-1]]) - filters = [[energyout_filter2], [energyout_filter1]] + fine_energyout = openmc.Filter('energyout', group_edges) + coarse_energyout = openmc.Filter('energyout', [group_edges[0], group_edges[-1]]) + filters = [[coarse_energyout], [fine_energyout]] # Intialize the Tallies super(Chi, self).create_tallies(scores, filters, keys, estimator) diff --git a/openmc/tallies.py b/openmc/tallies.py index 3a2f77679..785fdb9dd 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1174,6 +1174,52 @@ class Tally(object): return df + def get_reshaped_data(self, value='mean'): + """Returns an array of tally data with one dimension per filter. + + 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(...) routine) since one must know how to properly use + the number of bins and strides for each filter to index into the first + (filter) dimension. + + This builds and returns a reshaped version of the tally data array with + unique dimensions corresponding to each tally filter. For example, + suppose this tally has arrays of data with shape (8,5,5) corresponding + to two filters (2 and 4 bins, respectively), five nuclides and five + scores. This routine will return a version of the data array with the + with a new shape of (2,4,5,5) such that the first two dimensions now + correspond directly to the two filters with two and four bins. + + Parameters + --------- + value : str + A string for the type of value to return - 'mean' (default), + 'std_dev', 'rel_err', 'sum', or 'sum_sq' are accepted + + Returns + ------- + float or ndarray + A scalar or NumPy array of the Tally data indexed in the order + each filter, nuclide and score is listed in the parameters. + + """ + + # Get the 3D array of data in filters, nuclides and scores + data = self.get_values(value=value) + + # Build a new array shape with one dimension per filter + new_shape = () + for filter in self.filters: + new_shape += (filter.num_bins, ) + new_shape += (self.num_nuclides,) + new_shape += (self.num_score_bins,) + + # Reshape the data with one dimension for each filter + data = np.reshape(data, new_shape) + return data + def export_results(self, filename='tally-results', directory='.', format='hdf5', append=True): """Exports tallly results to an HDF5 or Python pickle binary file. From 02c30fd5de7f4c26f5e97a6f2103a4736af9a226 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 26 Sep 2015 17:12:03 -0400 Subject: [PATCH 38/91] Removed Tally.summation(...) routine in place of explicit tally summations in openmc.mgxs module for subdomain averaging --- openmc/filter.py | 5 ++- openmc/mgxs/mgxs.py | 53 +++++++++++++++++++++----- openmc/tallies.py | 90 --------------------------------------------- 3 files changed, 47 insertions(+), 101 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index f74024724..b8865a184 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -318,6 +318,7 @@ class Filter(object): boolean Whether or not the other filter is a subset of this filter """ + if not isinstance(other, Filter): return False elif self.type != other.type: @@ -325,8 +326,8 @@ class Filter(object): elif self.type in ['energy', 'energyout']: return np.all(self.bins == other.bins) - for bin in other.bins: - if bin not in self.bins: + for bin in self.bins: + if bin not in other.bins: return False return True diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index a0e52ab5f..fc763592f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -403,7 +403,9 @@ class MultiGroupXS(object): def get_subdomain_avg_xs(self, subdomains='all'): """Construct a subdomain-averaged version of this cross-section. - This is primarily useful for averaging across distribcell instances. + This is primarily useful for averaging across distribcell instances or + mesh cells. This routine performs spatial homogenization to compute the + scalar flux-weighted average cross-section across the subdomains. Parameters ---------- @@ -440,17 +442,49 @@ class MultiGroupXS(object): # Clone this MultiGroupXS to initialize the subdomain-averaged version avg_xs = copy.deepcopy(self) - # Reset subdomain indices and offsets for distribcell domains + # If domain is distribcell, make subdomain-averaged a 'cell' domain if self.domain_type == 'distribcell': + avg_xs.domain_type = 'cell' avg_xs._offset = 0 + # TODO: Implement this for mesh tallies + elif self.domain_type == 'mesh': + raise NotImplementedError('Average mesh xs are not yet implemented') - # Overwrite tallies with new subdomain-averaged versions - avg_xs._tallies = {} - for tally_type, tally in self.tallies.items(): - tally_sum = tally.summation(filter_type=self.domain_type, - filter_bins=subdomains) - tally_sum /= len(subdomains) - avg_xs.tallies[tally_type] = tally_sum + # Average each of the tallies across subdomains + for tally_type, tally in avg_xs.tallies.items(): + + # Make condensed tally derived and null out sum, sum_sq + tally._derived = True + tally._sum = None + tally._sum_sq = None + + # Get tally data arrays reshaped with one dimension per filter + mean = tally.get_reshaped_data(value='mean') + std_dev = tally.get_reshaped_data(value='std_dev') + + # Get the mean of the mean, std. dev. across requested subdomains + mean = np.mean(mean[subdomains, ...], axis=0) + std_dev = np.mean(std_dev[subdomains, ...]**2, axis=0) + std_dev = np.sqrt(std_dev) + + # If domain is distribcell, make subdomain-averaged a 'cell' domain + domain_filter = tally.find_filter(self._domain_type) + if domain_filter.type == 'distribcell': + domain_filter.type = 'cell' + domain_filter.num_bins = 1 + # TODO: Implement this for mesh tallies + elif domain_filter.type == 'mesh': + raise NotImplementedError('Average mesh xs are not yet implemented') + + # Reshape averaged data arrays with one dimension for all filters + new_shape = \ + (tally.num_filter_bins, tally.num_nuclides, tally.num_score_bins,) + mean = np.reshape(mean, new_shape) + std_dev = np.reshape(std_dev, new_shape) + + # Override tally's data with the new condensed data + tally._mean = mean + tally._std_dev = std_dev # Compute the subdomain-averaged multi-group cross-section avg_xs.compute_xs() @@ -733,6 +767,7 @@ class MultiGroupXS(object): df = self.get_pandas_dataframe() # Capitalize column label strings + df.columns = df.columns.astype(str) df.columns = map(str.title, df.columns) # Export the data using Pandas IO API diff --git a/openmc/tallies.py b/openmc/tallies.py index 785fdb9dd..a5b55d810 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2316,96 +2316,6 @@ class Tally(object): return new_tally - def summation(self, scores=[], filter_type=None, - filter_bins=[], nuclides=[]): - """Build a sliced tally for the specified filter bins, nuclides, scores. - - This method constructs a new tally to encapsulate a subset of the data - represented by this tally. The subset of data to include in the tally - slice is determined by the scores, filter bins and nuclides specified - in the input parameters. - - Parameters - ---------- - scores : list - A list of one or more score strings to sum across - (e.g., ['absorption', 'nu-fission']; default is []) - - 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 - A list of the filter bins corresponding to the filters parameter - Each bin in the list is the integer ID for 'material', 'surface', - 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer - for the cell instance ID for 'distribcell Filters. Each bin is a - 2-tuple of floats for 'energy' and 'energyout' filters corresponding - to the energy boundaries of the bin of interest. Each bin is an - (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of - interest. - - nuclides : list - A list of nuclide name strings to sum across - (e.g., ['U-235', 'U-238']; default is []) - - Returns - ------- - Tally - A new tally which encapsulates the sum of data requested. - - """ - - # If user did not specify any scores, do not sum across scores - if len(scores) == 0: - scores = [[]] - # Sum across any scores specified by the user - else: - scores = [[score] for score in scores] - - # If user did not specify any nuclides, do not sum across nuclides - if len(nuclides) == 0: - nuclides = [[]] - # Sum across any nuclides specified by the user - else: - nuclides = [[nuclide] for nuclide in nuclides] - - # Sum across any filter bins specified by the user - if filter_type in FILTER_TYPES.values(): - filter_bins = [[(filter_bin,)] for filter_bin in filter_bins] - filters = [[filter_type]] - # If user did not specify a filter type, do not sum across filter bins - else: - filter_bins = [[]] - filters = [[]] - - # Initialize Tally sum - tally_sum = 0 - - # Iterate over all Tally slice operands in summation - prod = [scores, filters, filter_bins, nuclides] - summed_filters = defaultdict(list) - for scores, filters, filter_bins, nuclides in itertools.product(*prod): - tally_slice = self.get_slice(scores, filters, filter_bins, nuclides) - - # Remove filters summed across to avoid bulky CrossFilters - if filter_type: - filter = tally_slice.find_filter(filter_type) - tally_slice.remove_filter(filter) - summed_filters[filter_type].append(filter) - - # Accumulate this Tally slice into the Tally sum - tally_sum += tally_slice - - # FIXME: test if this works for filter - for filter_type in summed_filters: - filters = summed_filters[filter_type] - for i in range(1, len(filters)): - filters[i] = CrossFilter(filters[i-1], filters[i], '+') - tally_sum.add_filter(filters[-1]) - - return tally_sum - def tile_filter(self, new_filter): """Combines filters, scores and nuclides with another tally. From a8ccd78ab63d349e689ec4a8427a4997e8ccd88b Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 26 Sep 2015 17:32:10 -0400 Subject: [PATCH 39/91] Removed stubs for mesh domains in Python API openmc.mgxs module --- openmc/mgxs/mgxs.py | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index fc763592f..3c41a4d28 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -21,14 +21,12 @@ if sys.version_info[0] >= 3: DOMAIN_TYPES = ['cell', 'distribcell', 'universe', - 'material', - 'mesh'] + 'material'] # Supported domain objects DOMAINS = [openmc.Cell, openmc.Universe, - openmc.Material, - openmc.Mesh] + openmc.Material] class MultiGroupXS(object): @@ -41,9 +39,9 @@ class MultiGroupXS(object): Parameters ---------- - domain : Material or Cell or Universe or Mesh + domain : Material or Cell or Universe The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe' or 'mesh'} + domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization energy_groups : EnergyGroups The energy group structure for energy condensation @@ -57,9 +55,9 @@ class MultiGroupXS(object): Name of the multi-group cross-section xs_type : str Cross-section type (e.g., 'total', 'nu-fission', etc.) - domain : Material or Cell or Universe or Mesh + domain : Material or Cell or Universe Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe' or 'mesh'} + domain_type : {'material', 'cell', 'distribcell', 'universe'} Domain type for spatial homogenization energy_groups : EnergyGroups Energy group structure for energy condensation @@ -403,8 +401,8 @@ class MultiGroupXS(object): def get_subdomain_avg_xs(self, subdomains='all'): """Construct a subdomain-averaged version of this cross-section. - This is primarily useful for averaging across distribcell instances or - mesh cells. This routine performs spatial homogenization to compute the + This is primarily useful for averaging across distribcell instances. + This routine performs spatial homogenization to compute the scalar flux-weighted average cross-section across the subdomains. Parameters @@ -446,9 +444,6 @@ class MultiGroupXS(object): if self.domain_type == 'distribcell': avg_xs.domain_type = 'cell' avg_xs._offset = 0 - # TODO: Implement this for mesh tallies - elif self.domain_type == 'mesh': - raise NotImplementedError('Average mesh xs are not yet implemented') # Average each of the tallies across subdomains for tally_type, tally in avg_xs.tallies.items(): @@ -472,9 +467,6 @@ class MultiGroupXS(object): if domain_filter.type == 'distribcell': domain_filter.type = 'cell' domain_filter.num_bins = 1 - # TODO: Implement this for mesh tallies - elif domain_filter.type == 'mesh': - raise NotImplementedError('Average mesh xs are not yet implemented') # Reshape averaged data arrays with one dimension for all filters new_shape = \ From 4f86e8819ad2e9b5d8c38851a690518be333d7d1 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 26 Sep 2015 17:41:30 -0400 Subject: [PATCH 40/91] Renamed MultiGroupXS xs_type attribute to rxn_type to allow xs_type to be used for macro vs. micro --- openmc/mgxs/mgxs.py | 190 ++++++++++++++++++++++---------------------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 3c41a4d28..25807227d 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -30,12 +30,12 @@ DOMAINS = [openmc.Cell, class MultiGroupXS(object): - """A multi-group cross-section for some energy group structure within + """A multi-group cross section for some energy group structure within some spatial domain. 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 deterministic neutronics calculations. Parameters ---------- @@ -46,15 +46,15 @@ class MultiGroupXS(object): energy_groups : EnergyGroups The energy group structure for energy condensation name : str, optional - Name of the multi-group cross-section. Used as a label to identify + 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 - xs_type : str - Cross-section type (e.g., 'total', 'nu-fission', etc.) + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) domain : Material or Cell or Universe Domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} @@ -64,10 +64,10 @@ class MultiGroupXS(object): num_groups : Integral Number of energy groups tallies : dict - OpenMC tallies needed to compute the multi-group cross-section + OpenMC tallies needed to compute the multi-group cross section xs_tally : Tally - Derived tally for the multi-group cross-section. This attribute - is None unless the multi-group cross-section has been computed. + Derived tally for the multi-group cross section. This attribute + is None unless the multi-group cross section has been computed. """ @@ -78,7 +78,7 @@ class MultiGroupXS(object): energy_groups=None, name=''): self._name = '' - self._xs_type = None + self._rxn_type = None self._domain = None self._domain_type = None self._energy_groups = None @@ -101,7 +101,7 @@ class MultiGroupXS(object): if existing is None: clone = type(self).__new__(type(self)) clone._name = self.name - clone._xs_type = self.xs_type + clone._rxn_type = self.rxn_type clone._domain = self.domain clone._domain_type = self.domain_type clone._energy_groups = copy.deepcopy(self.energy_groups, memo) @@ -125,8 +125,8 @@ class MultiGroupXS(object): return self._name @property - def xs_type(self): - return self._xs_type + def rxn_type(self): + return self._rxn_type @property def domain(self): @@ -181,7 +181,7 @@ class MultiGroupXS(object): @abc.abstractmethod def create_tallies(self, scores, all_filters, keys, estimator): - """Instantiates tallies needed to compute the multi-group cross-section. + """Instantiates tallies needed to compute the multi-group cross section. This is a helper method for MultiGroupXS subclasses to create tallies for input file generation. The tallies are stored in the tallies dict. @@ -224,15 +224,15 @@ class MultiGroupXS(object): @abc.abstractmethod def compute_xs(self): - """Computes multi-group cross-sections using OpenMC tally arithmetic.""" + """Computes multi-group cross sections using OpenMC tally arithmetic.""" return def load_from_statepoint(self, statepoint): """Extracts tallies in an OpenMC StatePoint with the data needed to - compute multi-group cross-sections. + compute multi-group cross sections. - This method is needed to compute cross-section data from tallies + This method is needed to compute cross section data from tallies in an OpenMC StatePoint object. Parameters @@ -265,10 +265,10 @@ class MultiGroupXS(object): self.tallies[tally_type] = sp_tally def get_xs(self, groups='all', subdomains='all', value='mean'): - """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 multi-group - cross-section data data for one or more energy groups and subdomains. + cross section data data for one or more energy groups and subdomains. Parameters ---------- @@ -285,19 +285,19 @@ class MultiGroupXS(object): Returns ------- xs : ndarray - A NumPy array of the multi-group cross-section indexed in the order + 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 + When this method is called before the multi-group cross section is computed from tally data. """ if self.xs_tally is None: - msg = 'Unable to get cross-section since it has not been computed' + msg = 'Unable to get cross section since it has not been computed' raise ValueError(msg) cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) @@ -319,13 +319,13 @@ class MultiGroupXS(object): filters.append('energy') filter_bins.append((self.energy_groups.get_group_bounds(group),)) - # Query the multi-group cross-section tally for the data + # Query the multi-group cross section tally for the data xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) return xs def get_condensed_xs(self, coarse_groups): - """Construct an energy-condensed version of this cross-section. + """Construct an energy-condensed version of this cross section. Parameters ---------- @@ -340,8 +340,8 @@ class MultiGroupXS(object): """ if self.xs_tally is None: - msg = 'Unable to get a condensed coarse group cross-section ' \ - 'since the fine group cross-section has not been computed' + msg = 'Unable to get a condensed coarse group cross section ' \ + 'since the fine group cross section has not been computed' raise ValueError(msg) cv.check_type('coarse_groups', coarse_groups, EnergyGroups) @@ -394,16 +394,16 @@ class MultiGroupXS(object): tally._mean = mean tally._std_dev = std_dev - # Compute the energy condensed multi-group cross-section + # Compute the energy condensed multi-group cross section condensed_xs.compute_xs() return condensed_xs def get_subdomain_avg_xs(self, subdomains='all'): - """Construct a subdomain-averaged version of this cross-section. + """Construct a subdomain-averaged version of this cross section. This is primarily useful for averaging across distribcell instances. This routine performs spatial homogenization to compute the - scalar flux-weighted average cross-section across the subdomains. + scalar flux-weighted average cross section across the subdomains. Parameters ---------- @@ -418,14 +418,14 @@ class MultiGroupXS(object): Raises ------ ValueError - When this method is called before the multi-group cross-section is + When this method is called before the multi-group cross section is computed from tally data. """ if self.xs_tally is None: - msg = 'Unable to get subdomain-averaged cross-section since the ' \ - 'subdomain-distributed cross-section has not been computed' + msg = 'Unable to get subdomain-averaged cross section since the ' \ + 'subdomain-distributed cross section has not been computed' raise ValueError(msg) # Construct a collection of the subdomain filter bins to average across @@ -478,18 +478,18 @@ class MultiGroupXS(object): tally._mean = mean tally._std_dev = std_dev - # Compute the subdomain-averaged multi-group cross-section + # Compute the subdomain-averaged multi-group cross section avg_xs.compute_xs() return avg_xs def print_xs(self, subdomains='all'): - """Prints a string representation for the multi-group cross-section. + """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 + The subdomain IDs of the cross sections to include in the report """ @@ -498,11 +498,11 @@ class MultiGroupXS(object): # Build header for string with type and domain info string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tType', self.xs_type) + string += '{0: <16}=\t{1}\n'.format('\tType', 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) - # Append cross-section data if it has been computed + # Append cross section data if it has been computed if self.xs_tally is not None: if subdomains == 'all': if self.domain_type == 'distribcell': @@ -516,7 +516,7 @@ class MultiGroupXS(object): if self.domain_type == 'distribcell': string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - string += '{0: <16}\n'.format('\tCross-Sections [cm^-1]:') + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' # Loop over energy groups ranges @@ -558,7 +558,7 @@ class MultiGroupXS(object): # Store all of this MultiGroupXS' class attributes in the dictionary xs_results['name'] = self.name - xs_results['xs_type'] = self.xs_type + xs_results['rxn_type'] = self.rxn_type xs_results['domain_type'] = self.domain_type xs_results['domain'] = self.domain xs_results['energy_groups'] = self.energy_groups @@ -606,7 +606,7 @@ class MultiGroupXS(object): # Store the MultiGroupXS class attributes self.name = xs_results['name'] - self._xs_type = xs_results['xs_type'] + self._rxn_type = xs_results['rxn_type'] self.domain_type = xs_results['domain_type'] self.domain = xs_results['domain'] self.energy_groups = xs_results['energy_groups'] @@ -615,12 +615,12 @@ class MultiGroupXS(object): self._offset = xs_results['offset'] def build_hdf5_store(self, filename='mgxs', directory='mgxs', append=True): - """Export the multi-group cross-section data into an HDF5 binary file. + """Export the multi-group cross section data into an HDF5 binary file. This routine constructs an HDF5 file which stores the multi-group - cross-section data. The data is be stored in a hierarchy of HDF5 groups + cross section data. The data is be stored in a hierarchy of HDF5 groups from the domain type, domain id, subdomain id (for distribcell domains), - and cross-section type. Two datasets for the mean and standard deviation + and cross section type. Two datasets for the mean and standard deviation are stored for each subddomain entry in the HDF5 file. NOTE: This requires the h5py Python package. @@ -640,7 +640,7 @@ class MultiGroupXS(object): Raises ------ ValueError - When this method is called before the multi-group cross-section is + When this method is called before the multi-group cross section is computed from tally data. ImportError When h5py is not installed. @@ -649,7 +649,7 @@ class MultiGroupXS(object): if self.xs_tally is None: msg = 'Unable to get build HDF5 store since the ' \ - 'cross-section has not been computed' + 'cross section has not been computed' raise ValueError(msg) # Attempt to import h5py @@ -694,10 +694,10 @@ class MultiGroupXS(object): else: subdomain_group = domain_group - # Create a separate HDF5 group for the xs type - xs_group = subdomain_group.require_group(self.xs_type) + # Create a separate HDF5 group for the rxn type + xs_group = subdomain_group.require_group(self.rxn_type) - # Extract the cross-section for this + # Extract the cross section for this average = self.get_xs(subdomains=[subdomain], value='mean') std_dev = self.get_xs(subdomains=[subdomain], value='std_dev') average = average.squeeze() @@ -713,10 +713,10 @@ class MultiGroupXS(object): xs_results.close() def export_xs_data(self, filename='mgxs', directory='mgxs', format='csv'): - """Export the multi-group cross-section data to a file. + """Export the multi-group cross section data to a file. This routine leverages the functionality in the Pandas library to - export the multi-group cross-section data in a variety of output + export the multi-group cross section data in a variety of output file formats for storage and/or post-processing. Parameters @@ -771,7 +771,7 @@ class MultiGroupXS(object): df.to_pickle(filename + '.pkl') elif format == 'latex': if self.domain_type == 'distribcell': - msg = 'Unable to export distribcell multi-group cross-section' \ + msg = 'Unable to export distribcell multi-group cross section' \ 'data to a LaTeX table' raise NotImplementedError(msg) @@ -796,7 +796,7 @@ class MultiGroupXS(object): """Build a Pandas DataFrame for the MultiGroupXS data. This routine leverages the Tally.get_pandas_dataframe(...) routine, but - renames the columns with terminology appropriate for cross-section data. + renames the columns with terminology appropriate for cross section data. Parameters ---------- @@ -815,19 +815,19 @@ class MultiGroupXS(object): Returns ------- pandas.DataFrame - A Pandas DataFrame for the cross-section data. + A Pandas DataFrame for the cross section data. Raises ------ ValueError - When this method is called before the multi-group cross-section is + When this method is called before the multi-group cross section is computed from tally data. """ if self.xs_tally is None: msg = 'Unable to get Pandas DataFrame since the ' \ - 'cross-section has not been computed' + 'cross section has not been computed' raise ValueError(msg) # Get a Pandas DataFrame from the derived xs tally @@ -871,10 +871,10 @@ class TotalXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(TotalXS, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'total' + self._rxn_type = 'total' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'total'] @@ -890,7 +890,7 @@ class TotalXS(MultiGroupXS): super(TotalXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - """Computes the multi-group total cross-sections using OpenMC + """Computes the multi-group total cross sections using OpenMC tally arithmetic.""" self._xs_tally = self.tallies['total'] / self.tallies['flux'] @@ -902,10 +902,10 @@ class TransportXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(TransportXS, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'transport' + self._rxn_type = 'transport' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'total', 'scatter-P1'] @@ -928,7 +928,7 @@ class TransportXS(MultiGroupXS): self.tallies['scatter-P1'].filters[-1].type = 'energy' def compute_xs(self): - """Computes the multi-group transport cross-sections using OpenMC + """Computes the multi-group transport cross sections using OpenMC tally arithmetic.""" self._xs_tally = self.tallies['total'] - self.tallies['scatter-P1'] @@ -941,10 +941,10 @@ class AbsorptionXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(AbsorptionXS, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'absorption' + self._rxn_type = 'absorption' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'absorption'] @@ -960,7 +960,7 @@ class AbsorptionXS(MultiGroupXS): super(AbsorptionXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - """Computes the multi-group absorption cross-sections using OpenMC + """Computes the multi-group absorption cross sections using OpenMC tally arithmetic.""" self._xs_tally = self.tallies['absorption'] / self.tallies['flux'] @@ -972,10 +972,10 @@ class CaptureXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(CaptureXS, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'capture' + self._rxn_type = 'capture' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'absorption', 'fission'] @@ -991,7 +991,7 @@ class CaptureXS(MultiGroupXS): super(CaptureXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - """Computes the multi-group capture cross-sections using OpenMC + """Computes the multi-group capture cross sections using OpenMC tally arithmetic.""" self._xs_tally = self.tallies['absorption'] - self.tallies['fission'] @@ -1004,10 +1004,10 @@ class FissionXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(FissionXS, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'fission' + self._rxn_type = 'fission' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'fission'] @@ -1023,7 +1023,7 @@ class FissionXS(MultiGroupXS): super(FissionXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - """Computes the multi-group fission cross-sections using OpenMC + """Computes the multi-group fission cross sections using OpenMC tally arithmetic.""" self._xs_tally = self.tallies['fission'] / self.tallies['flux'] @@ -1035,10 +1035,10 @@ class NuFissionXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(NuFissionXS, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'nu-fission' + self._rxn_type = 'nu-fission' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'nu-fission'] @@ -1054,7 +1054,7 @@ class NuFissionXS(MultiGroupXS): super(NuFissionXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - """Computes the multi-group nu-fission cross-sections using OpenMC + """Computes the multi-group nu-fission cross sections using OpenMC tally arithmetic.""" self._xs_tally = self.tallies['nu-fission'] / self.tallies['flux'] @@ -1066,10 +1066,10 @@ class ScatterXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(ScatterXS, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'scatter' + self._rxn_type = 'scatter' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'scatter'] @@ -1085,7 +1085,7 @@ class ScatterXS(MultiGroupXS): super(ScatterXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - """Computes the scattering multi-group cross-sections using + """Computes the scattering multi-group cross sections using OpenMC tally arithmetic.""" self._xs_tally = self.tallies['scatter'] / self.tallies['flux'] @@ -1097,10 +1097,10 @@ class NuScatterXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(NuScatterXS, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'nu-scatter' + self._rxn_type = 'nu-scatter' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'nu-scatter'] @@ -1116,7 +1116,7 @@ class NuScatterXS(MultiGroupXS): super(NuScatterXS, self).create_tallies(scores, filters, keys, estimator) def compute_xs(self): - """Computes the nu-scattering multi-group cross-section using OpenMC + """Computes the nu-scattering multi-group cross section using OpenMC tally arithmetic.""" self._xs_tally = self.tallies['nu-scatter'] / self.tallies['flux'] @@ -1128,10 +1128,10 @@ class ScatterMatrixXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'scatter matrix' + self._rxn_type = 'scatter matrix' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" group_edges = self.energy_groups.group_edges energy = openmc.Filter('energy', group_edges) @@ -1176,7 +1176,7 @@ class ScatterMatrixXS(MultiGroupXS): def get_xs(self, in_groups='all', out_groups='all', subdomains='all', value='mean'): - """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 scattering matrix data data for one or more energy groups and subdomains. @@ -1199,19 +1199,19 @@ class ScatterMatrixXS(MultiGroupXS): Returns ------- xs : ndarray - A NumPy array of the multi-group cross-section indexed in the order + 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 + When this method is called before the multi-group cross section is computed from tally data. """ if self.xs_tally is None: - msg = 'Unable to get cross-section since it has not been computed' + msg = 'Unable to get cross section since it has not been computed' raise ValueError(msg) cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) @@ -1240,19 +1240,19 @@ class ScatterMatrixXS(MultiGroupXS): filters.append('energyout') filter_bins.append((self.energy_groups.get_group_bounds(group),)) - # Query the multi-group cross-section tally for the data + # Query the multi-group cross section tally for the data xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) xs = np.nan_to_num(xs) return xs def print_xs(self, subdomains='all'): - """Prints a string representation for the multi-group cross-section. + """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 + The subdomain IDs of the cross sections to include in the report """ @@ -1261,11 +1261,11 @@ class ScatterMatrixXS(MultiGroupXS): # Build header for string with type and domain info string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tType', self.xs_type) + 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) - # Append cross-section data if it has been computed + # Append cross section data if it has been computed if self.xs_tally is not None: string += '{0: <16}\n'.format('\tEnergy Groups:') template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' @@ -1288,7 +1288,7 @@ class ScatterMatrixXS(MultiGroupXS): string += \ '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - string += '{0: <16}\n'.format('\tCross-Sections [cm^-1]:') + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') template = '{0: <12}Group {1} -> Group {2}:\t\t' # Loop over incoming/outgoing energy groups ranges @@ -1312,10 +1312,10 @@ class NuScatterMatrixXS(ScatterMatrixXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(NuScatterMatrixXS, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'nu-scatter matrix' + self._rxn_type = 'nu-scatter matrix' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created scores = ['flux', 'nu-scatter', 'scatter-P1'] @@ -1362,10 +1362,10 @@ class Chi(MultiGroupXS): def __init__(self, domain=None, domain_type=None, groups=None, name=''): super(Chi, self).__init__(domain, domain_type, groups, name) - self._xs_type = 'chi' + self._rxn_type = 'chi' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross-section.""" + """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created scores = ['nu-fission', 'nu-fission'] From ddb249049cffd9a78c17c88b81dd2c27f43a22a6 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 26 Sep 2015 19:32:15 -0400 Subject: [PATCH 41/91] Removed MultiGroupXS.pickle/unpickle routines, added initial implementatoin for micro multi-group cross-sectoins --- openmc/mgxs/mgxs.py | 433 ++++++++++++++++++++++++++------------------ 1 file changed, 260 insertions(+), 173 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 25807227d..d079445f0 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -4,7 +4,6 @@ import os import sys import copy import abc -import pickle import numpy as np @@ -75,10 +74,11 @@ class MultiGroupXS(object): __metaclass__ = abc.ABCMeta def __init__(self, domain=None, domain_type=None, - energy_groups=None, name=''): + xs_type=None, energy_groups=None, name=''): self._name = '' self._rxn_type = None + self._xs_type = None self._domain = None self._domain_type = None self._energy_groups = None @@ -87,6 +87,8 @@ class MultiGroupXS(object): self._xs_tally = None self.name = name + if xs_type is not None: + self.xs_type = xs_type if domain_type is not None: self.domain_type = domain_type if domain is not None: @@ -102,6 +104,7 @@ class MultiGroupXS(object): clone = type(self).__new__(type(self)) clone._name = self.name clone._rxn_type = self.rxn_type + clone._xs_type = self.xs_type clone._domain = self.domain clone._domain_type = self.domain_type clone._energy_groups = copy.deepcopy(self.energy_groups, memo) @@ -128,6 +131,10 @@ class MultiGroupXS(object): def rxn_type(self): return self._rxn_type + @property + def xs_type(self): + return self._xs_type + @property def domain(self): return self._domain @@ -163,6 +170,11 @@ class MultiGroupXS(object): cv.check_type('name', name, basestring) self._name = name + @xs_type.setter + def xs_type(self, xs_type): + cv.check_value('xs_type', xs_type, ('macro', 'micro')) + self._xs_type = xs_type + @domain.setter def domain(self, domain): cv.check_type('domain', domain, tuple(DOMAINS)) @@ -218,10 +230,16 @@ class MultiGroupXS(object): self.tallies[key].estimator = estimator self.tallies[key].add_filter(domain_filter) - # Add all non-domain specific Filters (i.e., 'energy') to the Tally + # Add all non-domain specific Filters (e.g., 'energy') to the Tally for filter in filters: self.tallies[key].add_filter(filter) + # If this is a microscopic cross-section, add all nuclides to tally + if self.xs_type == 'micro' and score != 'flux': + all_nuclides = self.domain.get_all_nuclides() + for nuclide in all_nuclides: + self.tallies[key].add_nuclide(nuclide) + @abc.abstractmethod def compute_xs(self): """Computes multi-group cross sections using OpenMC tally arithmetic.""" @@ -264,7 +282,8 @@ class MultiGroupXS(object): filter_bins, tally.nuclides) self.tallies[tally_type] = sp_tally - def get_xs(self, groups='all', subdomains='all', value='mean'): + def get_xs(self, groups='all', subdomains='all', + nuclides='all', xs_type='macro', value='mean'): """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested multi-group @@ -278,6 +297,13 @@ class MultiGroupXS(object): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest + nuclides : Iterable of str or 'all' + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is 'all') + + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted @@ -286,7 +312,7 @@ class MultiGroupXS(object): ------- xs : ndarray A NumPy array of the multi-group cross section indexed in the order - each group and subdomain is listed in the parameters. + each group, subdomain and nuclide is listed in the parameters. Raises ------ @@ -319,9 +345,15 @@ class MultiGroupXS(object): filters.append('energy') filter_bins.append((self.energy_groups.get_group_bounds(group),)) + # Construct list of nuclides for all requested nuclides + if nuclides != 'all' and nuclides != ['total']: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = [] + # Query the multi-group cross section tally for the data - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, value=value) + xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, + nuclides=nuclides, value=value) return xs def get_condensed_xs(self, coarse_groups): @@ -439,11 +471,7 @@ class MultiGroupXS(object): # Clone this MultiGroupXS to initialize the subdomain-averaged version avg_xs = copy.deepcopy(self) - - # If domain is distribcell, make subdomain-averaged a 'cell' domain - if self.domain_type == 'distribcell': - avg_xs.domain_type = 'cell' - avg_xs._offset = 0 + avg_xs.domain_type = 'cell' # Average each of the tallies across subdomains for tally_type, tally in avg_xs.tallies.items(): @@ -483,7 +511,7 @@ class MultiGroupXS(object): return avg_xs - def print_xs(self, subdomains='all'): + def print_xs(self, subdomains='all', nuclides='all'): """Prints a string representation for the multi-group cross section. Parameters @@ -491,129 +519,73 @@ class MultiGroupXS(object): subdomains : Iterable of Integral or 'all' The subdomain IDs of the cross sections to include in the report + nuclides : Iterable of str or 'all' + The nuclides of the cross-sections to include in the report + """ if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) + if nuclides != 'all': + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + if self.xs_type == 'micro': + nuclides = self.domain.get_all_nuclides() + else: + nuclides = ['total'] # Build header for string with type and domain info string = 'Multi-Group XS\n' - string += '{0: <16}=\t{1}\n'.format('\tType', self.rxn_type) + 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) - # Append cross section data if it has been computed - if self.xs_tally is not None: - if subdomains == 'all': - if self.domain_type == 'distribcell': - subdomains = np.arange(self.num_subdomains, dtype=np.int) + # If cross section data has not been computed, only print string header + if self.xs_tally is None: + print(string) + return + + if subdomains == 'all': + if self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # 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 cross section type based on the nuclide + if nuclide == 'total': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') else: - subdomains = [self.domain.id] + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + string += '{0: <16}\n'.format('\tCross Sections [barns]:') - # Loop over all subdomains - for subdomain in subdomains: - - if self.domain_type == 'distribcell': - string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - - string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' # 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]) - average = self.get_xs([group], [subdomain], 'mean') - rel_err = self.get_xs([group], [subdomain], 'rel_err')*100. + average = self.get_xs([group], [subdomain], + [nuclide], 'mean') + rel_err = self.get_xs([group], [subdomain], + [nuclide], 'rel_err') * 100. average = np.nan_to_num(average.flatten())[0] rel_err = np.nan_to_num(rel_err.flatten())[0] string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) string += '\n' string += '\n' + string += '\n' print(string) - def pickle(self, filename='mgxs', directory='mgxs'): - """Store the MultiGroupXS as a pickled binary file. - - Parameters - ---------- - filename : str - Filename for the pickled binary file (default is 'mgxs') - - directory : str - Directory for the pickled binary file (default is 'mgxs') - - """ - - 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) - - # Create an empty dictionary to store the data - xs_results = dict() - - # Store all of this MultiGroupXS' class attributes in the dictionary - xs_results['name'] = self.name - xs_results['rxn_type'] = self.rxn_type - xs_results['domain_type'] = self.domain_type - xs_results['domain'] = self.domain - xs_results['energy_groups'] = self.energy_groups - xs_results['tallies'] = self.tallies - xs_results['xs_tally'] = self.xs_tally - xs_results['offset'] = self.offset - xs_results['subdomain_indices'] = self.subdomain_indices - - # Pickle the MultiGroupXS results to a binary file - filename = directory + '/' + filename + '.pkl' - filename = filename.replace(' ', '-') - pickle.dump(xs_results, open(filename, 'wb')) - - def unpickle(self, filename='mgxs', directory='mgxs'): - """Restore the MultiGroupXS from a pickled binary file. - - Parameters - ---------- - filename : str - Filename for the pickled binary file (default is 'mgxs') - - directory : str - Directory for the pickled binary file (default is 'mgxs') - - Raises - ------ - ValueError - When the requested filename does not exist. - - """ - - cv.check_type('filename', filename, basestring) - cv.check_type('directory', directory, basestring) - - filename = directory + '/' + filename + '.pkl' - filename = filename.replace(' ', '-') - - # Check that the file exists - if not os.path.exists(filename): - msg = 'Unable to import from filename="{0}"'.format(filename) - raise ValueError(msg) - - # Load the pickle file into a dictionary - xs_results = pickle.load(open(filename, 'rb')) - - # Store the MultiGroupXS class attributes - self.name = xs_results['name'] - self._rxn_type = xs_results['rxn_type'] - self.domain_type = xs_results['domain_type'] - self.domain = xs_results['domain'] - self.energy_groups = xs_results['energy_groups'] - self._tallies = xs_results['tallies'] - self._xs_tally = xs_results['xs_tally'] - self._offset = xs_results['offset'] - def build_hdf5_store(self, filename='mgxs', directory='mgxs', append=True): """Export the multi-group cross section data into an HDF5 binary file. @@ -671,6 +643,14 @@ class MultiGroupXS(object): else: xs_results = h5py.File(filename, 'w') + if self.xs_type == 'micro': + nuclides = self.domain.get_all_nuclides() + densities = [] + for nuclide in nuclides: + densities.append(nuclides[nuclide][1]) + else: + nuclides = ['total'] + # Create an HDF5 group within the file for the domain domain_type_group = xs_results.require_group(self.domain_type) group_name = '{0} {1}'.format(self.domain_type, self.domain.id) @@ -684,7 +664,7 @@ class MultiGroupXS(object): # Determine number of digits to pad subdomain group keys num_digits = len(str(self.num_subdomains)) - # Create a separate HDF5 dataset for each subdomain + # Create a separate HDF5 group for each subdomain for i, subdomain in enumerate(subdomains): # Create an HDF5 group for the subdomain @@ -695,19 +675,31 @@ class MultiGroupXS(object): subdomain_group = domain_group # Create a separate HDF5 group for the rxn type - xs_group = subdomain_group.require_group(self.rxn_type) + rxn_group = subdomain_group.require_group(self.rxn_type) - # Extract the cross section for this - average = self.get_xs(subdomains=[subdomain], value='mean') - std_dev = self.get_xs(subdomains=[subdomain], value='std_dev') - average = average.squeeze() - std_dev = std_dev.squeeze() + # Create a separate HDF5 group for each nuclide + for j, nuclide in enumerate(nuclides): - # Add MultiGroupXS results data to the HDF5 group - xs_group.require_dataset('average', dtype=np.float64, - shape=average.shape, data=average) - xs_group.require_dataset('std. dev.', dtype=np.float64, - shape=std_dev.shape, data=std_dev) + if nuclide != 'total': + nuclide_group = rxn_group.require_group(nuclide) + nuclide_group.require_dataset('density', dtype=np.float64, + data=[densities[j]], shape=(1,)) + else: + nuclide_group = rxn_group + + # Extract the cross section for this subdomain and nuclide + average = self.get_xs(subdomains=[subdomain], + nuclides=[nuclide], value='mean') + std_dev = self.get_xs(subdomains=[subdomain], + nuclides=[nuclide], value='std_dev') + average = average.squeeze() + std_dev = std_dev.squeeze() + + # Add MultiGroupXS results data to the HDF5 group + nuclide_group.require_dataset('average', dtype=np.float64, + shape=average.shape, data=average) + nuclide_group.require_dataset('std. dev.', dtype=np.float64, + shape=std_dev.shape, data=std_dev) # Close the MultiGroup results HDF5 file xs_results.close() @@ -791,7 +783,6 @@ class MultiGroupXS(object): modified.write(data) modified.write('\n\\end{document}') - def get_pandas_dataframe(self, groups='indices', summary=None): """Build a Pandas DataFrame for the MultiGroupXS data. @@ -869,8 +860,9 @@ class MultiGroupXS(object): class TotalXS(MultiGroupXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(TotalXS, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(TotalXS, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'total' def create_tallies(self): @@ -900,8 +892,9 @@ class TotalXS(MultiGroupXS): class TransportXS(MultiGroupXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(TransportXS, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(TransportXS, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'transport' def create_tallies(self): @@ -939,8 +932,9 @@ class TransportXS(MultiGroupXS): class AbsorptionXS(MultiGroupXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(AbsorptionXS, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(AbsorptionXS, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'absorption' def create_tallies(self): @@ -970,8 +964,9 @@ class AbsorptionXS(MultiGroupXS): class CaptureXS(MultiGroupXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(CaptureXS, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(CaptureXS, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'capture' def create_tallies(self): @@ -1002,8 +997,9 @@ class CaptureXS(MultiGroupXS): class FissionXS(MultiGroupXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(FissionXS, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(FissionXS, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'fission' def create_tallies(self): @@ -1033,8 +1029,9 @@ class FissionXS(MultiGroupXS): class NuFissionXS(MultiGroupXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(NuFissionXS, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(NuFissionXS, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'nu-fission' def create_tallies(self): @@ -1064,8 +1061,9 @@ class NuFissionXS(MultiGroupXS): class ScatterXS(MultiGroupXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(ScatterXS, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(ScatterXS, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'scatter' def create_tallies(self): @@ -1095,8 +1093,9 @@ class ScatterXS(MultiGroupXS): class NuScatterXS(MultiGroupXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(NuScatterXS, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(NuScatterXS, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'nu-scatter' def create_tallies(self): @@ -1126,8 +1125,9 @@ class NuScatterXS(MultiGroupXS): class ScatterMatrixXS(MultiGroupXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(ScatterMatrixXS, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'scatter matrix' def create_tallies(self): @@ -1175,7 +1175,7 @@ class ScatterMatrixXS(MultiGroupXS): self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) def get_xs(self, in_groups='all', out_groups='all', - subdomains='all', value='mean'): + subdomains='all', nuclides='all', value='mean'): """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested scattering @@ -1192,6 +1192,10 @@ class ScatterMatrixXS(MultiGroupXS): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest + nuclides : Iterable of str or 'all' + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is 'all') + value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted @@ -1240,13 +1244,19 @@ class ScatterMatrixXS(MultiGroupXS): filters.append('energyout') filter_bins.append((self.energy_groups.get_group_bounds(group),)) + # Construct list of nuclides for all requested nuclides + if nuclides != 'all' and nuclides != ['total']: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = [] + # Query the multi-group cross section tally for the data - xs = self.xs_tally.get_values(filters=filters, - filter_bins=filter_bins, value=value) + xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, + nuclides=nuclides, value=value) xs = np.nan_to_num(xs) return xs - def print_xs(self, subdomains='all'): + def print_xs(self, subdomains='all', nuclides='all'): """Prints a string representation for the multi-group cross section. Parameters @@ -1254,10 +1264,20 @@ class ScatterMatrixXS(MultiGroupXS): subdomains : Iterable of Integral or 'all' The subdomain IDs of the cross sections to include in the report + nuclides : Iterable of str or 'all' + The nuclides of the cross-sections to include in the report + """ if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) + if nuclides != 'all': + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + if self.xs_type == 'micro': + nuclides = self.domain.get_all_nuclides() + else: + nuclides = ['total'] # Build header for string with type and domain info string = 'Multi-Group XS\n' @@ -1265,53 +1285,70 @@ class ScatterMatrixXS(MultiGroupXS): string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) - # Append cross section data if it has been computed - if self.xs_tally is not None: - string += '{0: <16}\n'.format('\tEnergy Groups:') - template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' + # If cross section data has not been computed, only print string header + if self.xs_tally is None: + print(string) + return - # 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]) + string += '{0: <16}\n'.format('\tEnergy Groups:') + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' - if subdomains == 'all': - if self.domain_type == 'distribcell': - subdomains = np.arange(self.num_subdomains, dtype=np.int) + # 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]) + + if subdomains == 'all': + if self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # 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 cross section type based on the nuclide + if nuclide == 'total': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') else: - subdomains = [self.domain.id] + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + string += '{0: <16}\n'.format('\tCross Sections [barns]:') - # Loop over all subdomains - for subdomain in subdomains: - - if self.domain_type == 'distribcell': - string += \ - '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) - - string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') 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], 'mean') - rel_err = self.get_xs([in_group], [out_group], - [subdomain], 'rel_err') * 100. + average = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], 'mean') + rel_err = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], 'rel_err') * 100 average = np.nan_to_num(average.flatten())[0] rel_err = np.nan_to_num(rel_err.flatten())[0] string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) string += '\n' string += '\n' + string += '\n' + string += '\n' print(string) class NuScatterMatrixXS(ScatterMatrixXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(NuScatterMatrixXS, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(NuScatterMatrixXS, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'nu-scatter matrix' def create_tallies(self): @@ -1360,10 +1397,13 @@ class NuScatterMatrixXS(ScatterMatrixXS): class Chi(MultiGroupXS): - def __init__(self, domain=None, domain_type=None, groups=None, name=''): - super(Chi, self).__init__(domain, domain_type, groups, name) + def __init__(self, domain=None, domain_type=None, + xs_type=None, groups=None, name=''): + super(Chi, self).__init__(domain, domain_type, xs_type, groups, name) self._rxn_type = 'chi' + # FIXME: Make this work for micros!!! + def create_tallies(self): """Construct the OpenMC tallies needed to compute this cross section.""" @@ -1390,3 +1430,50 @@ class Chi(MultiGroupXS): self._xs_tally = nu_fission_out / nu_fission_in self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + + def get_xs(self, groups='all', subdomains='all', + nuclides='all', xs_type='macro', value='mean'): + """Returns an array of multi-group cross sections. + + This method constructs a 2D NumPy array for the requested multi-group + cross section data data for one or more energy groups and subdomains. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest + + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest + + nuclides : Iterable of str or 'all' + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is 'all') + + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + + value : str + A string for the type of value to return - 'mean' (default), + 'std_dev' or 'rel_err' are accepted + + Returns + ------- + xs : ndarray + A NumPy array of the multi-group cross section indexed in the order + each group, subdomain and nuclide is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + if self.xs_type == 'micro' and xs_type == 'macro': + raise NotImplementedError('Unable to compute macro Chi from micros') + + xs = super(Chi, self).get_xs(groups, subdomains, + nuclides, xs_type, value) + return xs From fe16bb4b10a6fcf5847b67a457e4f72413cef7cb Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 27 Sep 2015 00:29:46 -0400 Subject: [PATCH 42/91] Fixed tiling/repeating for tally arithmetic needed for micro xs in Python API --- openmc/element.py | 22 +++++++------- openmc/mgxs/mgxs.py | 70 ++++++++++++++++++++++++--------------------- openmc/nuclide.py | 25 +++++++--------- openmc/tallies.py | 16 ++++------- 4 files changed, 66 insertions(+), 67 deletions(-) diff --git a/openmc/element.py b/openmc/element.py index 2f81b9f30..a99d47127 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -38,18 +38,18 @@ class Element(object): if xs is not None: self.xs = xs - def __eq__(self, element2): - # Check type - if not isinstance(element2, Element): - return False - - # Check name and xs - if self._name != element2._name: - return False - elif self._xs != element2._xs: - return False - else: + def __eq__(self, other): + if isinstance(other, Element): + if self._name != other._name: + return False + elif self._xs != other._xs: + return False + else: + return True + elif isinstance(other, basestring) and other == self.name: return True + else: + return False def __hash__(self): return hash((self._name, self._xs)) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d079445f0..91e1635fe 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -74,7 +74,7 @@ class MultiGroupXS(object): __metaclass__ = abc.ABCMeta def __init__(self, domain=None, domain_type=None, - xs_type=None, energy_groups=None, name=''): + energy_groups=None, xs_type='macro', name=''): self._name = '' self._rxn_type = None @@ -87,8 +87,7 @@ class MultiGroupXS(object): self._xs_tally = None self.name = name - if xs_type is not None: - self.xs_type = xs_type + self.xs_type = xs_type if domain_type is not None: self.domain_type = domain_type if domain is not None: @@ -322,6 +321,8 @@ class MultiGroupXS(object): """ + # TODO: Multiply by densities + if self.xs_tally is None: msg = 'Unable to get cross section since it has not been computed' raise ValueError(msg) @@ -688,10 +689,10 @@ class MultiGroupXS(object): nuclide_group = rxn_group # Extract the cross section for this subdomain and nuclide - average = self.get_xs(subdomains=[subdomain], - nuclides=[nuclide], value='mean') - std_dev = self.get_xs(subdomains=[subdomain], - nuclides=[nuclide], value='std_dev') + average = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], + xs_type=self.xs_type, value='mean') + std_dev = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], + xs_type=self.xs_type, value='std_dev') average = average.squeeze() std_dev = std_dev.squeeze() @@ -861,8 +862,8 @@ class MultiGroupXS(object): class TotalXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(TotalXS, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(TotalXS, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'total' def create_tallies(self): @@ -893,8 +894,8 @@ class TotalXS(MultiGroupXS): class TransportXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(TransportXS, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(TransportXS, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'transport' def create_tallies(self): @@ -933,8 +934,8 @@ class TransportXS(MultiGroupXS): class AbsorptionXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(AbsorptionXS, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(AbsorptionXS, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'absorption' def create_tallies(self): @@ -965,8 +966,8 @@ class AbsorptionXS(MultiGroupXS): class CaptureXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(CaptureXS, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(CaptureXS, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'capture' def create_tallies(self): @@ -998,8 +999,8 @@ class CaptureXS(MultiGroupXS): class FissionXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(FissionXS, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(FissionXS, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'fission' def create_tallies(self): @@ -1030,8 +1031,8 @@ class FissionXS(MultiGroupXS): class NuFissionXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(NuFissionXS, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(NuFissionXS, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'nu-fission' def create_tallies(self): @@ -1062,8 +1063,8 @@ class NuFissionXS(MultiGroupXS): class ScatterXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(ScatterXS, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(ScatterXS, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'scatter' def create_tallies(self): @@ -1094,8 +1095,8 @@ class ScatterXS(MultiGroupXS): class NuScatterXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(NuScatterXS, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(NuScatterXS, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'nu-scatter' def create_tallies(self): @@ -1126,8 +1127,8 @@ class NuScatterXS(MultiGroupXS): class ScatterMatrixXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(ScatterMatrixXS, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'scatter matrix' def create_tallies(self): @@ -1174,8 +1175,8 @@ class ScatterMatrixXS(MultiGroupXS): self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) - def get_xs(self, in_groups='all', out_groups='all', - subdomains='all', nuclides='all', value='mean'): + def get_xs(self, in_groups='all', out_groups='all', subdomains='all', + nuclides='all', xs_type='macro', value='mean'): """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested scattering @@ -1196,6 +1197,9 @@ class ScatterMatrixXS(MultiGroupXS): A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is 'all') + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted @@ -1214,6 +1218,8 @@ class ScatterMatrixXS(MultiGroupXS): """ + # TODO: Deal with xs_type and micros + if self.xs_tally is None: msg = 'Unable to get cross section since it has not been computed' raise ValueError(msg) @@ -1332,7 +1338,7 @@ class ScatterMatrixXS(MultiGroupXS): [subdomain], [nuclide], 'mean') rel_err = \ self.get_xs([in_group], [out_group], - [subdomain], [nuclide], 'rel_err') * 100 + [subdomain], [nuclide],'rel_err') * 100 average = np.nan_to_num(average.flatten())[0] rel_err = np.nan_to_num(rel_err.flatten())[0] string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) @@ -1347,8 +1353,8 @@ class ScatterMatrixXS(MultiGroupXS): class NuScatterMatrixXS(ScatterMatrixXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(NuScatterMatrixXS, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(NuScatterMatrixXS, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'nu-scatter matrix' def create_tallies(self): @@ -1398,8 +1404,8 @@ class NuScatterMatrixXS(ScatterMatrixXS): class Chi(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - xs_type=None, groups=None, name=''): - super(Chi, self).__init__(domain, domain_type, xs_type, groups, name) + groups=None, xs_type='macro', name=''): + super(Chi, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'chi' # FIXME: Make this work for micros!!! diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 7e7cd5af3..a616edac9 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -41,21 +41,18 @@ class Nuclide(object): if xs is not None: self.xs = xs - def __eq__(self, nuclide2): - # Check type - if not isinstance(nuclide2, Nuclide): - return False - - # Check name - elif self._name != nuclide2._name: - return False - - # Check xs - elif self._xs != nuclide2._xs: - return False - - else: + def __eq__(self, other): + if isinstance(other, Nuclide): + if self._name != other._name: + return False + elif self._xs != other._xs: + return False + else: + return True + elif isinstance(other, basestring) and other == self.name: return True + else: + return False def __hash__(self): return hash((self._name, self._xs)) diff --git a/openmc/tallies.py b/openmc/tallies.py index a5b55d810..9b753fe49 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1666,8 +1666,8 @@ class Tally(object): if self_repeat_factor == 1: other_shape[0] *= other_tile_factor - other_mean = np.repeat(other_mean, other_tile_factor) - other_std_dev = np.repeat(other_std_dev, other_tile_factor) + other_mean = np.repeat(other_mean, other_tile_factor, axis=0) + other_std_dev = np.repeat(other_std_dev, other_tile_factor, axis=0) else: other_mean = np.tile(other_mean, (other_tile_factor, 1, 1)) other_std_dev = np.tile(other_std_dev, (other_tile_factor, 1, 1)) @@ -1687,11 +1687,9 @@ class Tally(object): self_shape = list(self.mean.shape) # Replicate the data - self_mean = np.repeat(self_mean, self_repeat_factor) -# self_mean = np.repeat(self_mean, self_repeat_factor, axis=1) + self_mean = np.repeat(self_mean, self_repeat_factor, axis=1) other_mean = np.tile(other_mean, (1, other_tile_factor, 1)) -# self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=1) - self_std_dev = np.repeat(self_std_dev, self_repeat_factor) + self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=1) other_std_dev = np.tile(other_std_dev, (1, other_tile_factor, 1)) self_shape[1] *= self_repeat_factor @@ -1708,11 +1706,9 @@ class Tally(object): self_shape = list(self.mean.shape) # Replicate the data - self_mean = np.repeat(self_mean, self_repeat_factor) -# self_mean = np.repeat(self_mean, self_repeat_factor, axis=2) + self_mean = np.repeat(self_mean, self_repeat_factor, axis=2) other_mean = np.tile(other_mean, (1, 1, other_tile_factor)) - self_std_dev = np.repeat(self_std_dev, self_repeat_factor) -# self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=2) + self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=2) other_std_dev = np.tile(other_std_dev, (1, 1, other_tile_factor)) self_shape[2] *= self_repeat_factor From 0374a07c6f76e7f6b5476a4e9336b6bc66edb6ff Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 27 Sep 2015 16:05:07 -0400 Subject: [PATCH 43/91] Added nuclide and number density getter routines to Python API MultiGroupXS class --- openmc/cross.py | 4 +- openmc/filter.py | 1 - openmc/mgxs/mgxs.py | 198 ++++++++++++++++++++++++++++++++++---------- openmc/tallies.py | 5 +- 4 files changed, 158 insertions(+), 50 deletions(-) diff --git a/openmc/cross.py b/openmc/cross.py index fa1ce6e63..e2281142c 100644 --- a/openmc/cross.py +++ b/openmc/cross.py @@ -1,7 +1,7 @@ import sys from openmc import Filter, Nuclide -from openmc.constants import FILTER_TYPES +from openmc.filter import _FILTER_TYPES import openmc.checkvalue as cv @@ -345,7 +345,7 @@ class CrossFilter(object): @type.setter def type(self, filter_type): - if filter_type not in FILTER_TYPES.values(): + if filter_type not in _FILTER_TYPES.values(): msg = 'Unable to set Filter type to "{0}" since it is not one ' \ 'of the supported types'.format(type) raise ValueError(msg) diff --git a/openmc/filter.py b/openmc/filter.py index b8865a184..2f09d93f2 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -7,7 +7,6 @@ import numpy as np from openmc import Mesh from openmc.summary import Summary -from openmc.constants import * import openmc.checkvalue as cv diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 91e1635fe..f4c569e16 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -190,6 +190,96 @@ class MultiGroupXS(object): self._energy_groups = energy_groups self._num_groups = energy_groups.num_groups + def get_all_nuclides(self): + """Get all nuclides in the cross section's spatial domain. + + Returns + ------- + nuclides : list of str + A list of the string names for each nuclide in the problem domain + (e.g., ['U-235', 'U-238', 'O-16']) + + Raises + ------ + ValueError + When this method is called before the spatial domain has been set. + + """ + + if self.domain is None: + raise ValueError('Unable to get all nuclides without a domain') + + nuclides = self.domain.get_all_nuclides() + return nuclides.keys() + + def get_nuclide_density(self, nuclide): + """Get the atomic number density for a nuclide in the cross section's + spatial domain. + + nuclide : str + A nuclide name string (e.g., 'U-235') + + Returns + ------- + density : Real + The atomic number density for the nuclide of interest + + Raises + ------ + ValueError + When the density is requested for a nuclide which is not found in + the spatial domain. + + """ + + cv.check_type('nuclide', nuclide, basestring) + + # Get list of all nuclides in the spatial domain + nuclides = self.domain.get_all_nuclides() + + if nuclide not in nuclides: + msg = 'Unable to get density for nuclide "{0}" which is not in ' \ + '{1} "{2}"'.format(nuclide, self.domain_type, self.domain.id) + ValueError(msg) + + density = nuclides[nuclide][1] + return density + + def get_nuclide_densities(self, nuclides='all'): + """Get all atomic number densities in the cross section's spatial domain. + + nuclides : Iterable of str or 'all' + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is 'all') + + Returns + ------- + densities : ndarray of float + The atomic number densities corresponding to each of the nuclides + in the problem domain + + Raises + ------ + ValueError + When this method is called before the spatial domain has been set. + + """ + + if self.domain is None: + raise ValueError('Unable to get nuclide densities without a domain') + + # If the user requested the densities for all nuclides, get a list of + # all of the nuclide name strings + if nuclides == 'all': + nuclides =self.domain.get_all_nuclides() + + # Loop over each nuclide and find and store its atomic number density + densities = np.zeros(len(nuclides), dtype=np.float) + for i, nuclide in enumerate(nuclides): + densities[i] = self.get_nuclide_density(nuclide) + + return densities + @abc.abstractmethod def create_tallies(self, scores, all_filters, keys, estimator): """Instantiates tallies needed to compute the multi-group cross section. @@ -243,7 +333,15 @@ class MultiGroupXS(object): def compute_xs(self): """Computes multi-group cross sections using OpenMC tally arithmetic.""" - return + # If a microscopic cross-section, replace CrossNuclides with originals + if self.xs_type == 'micro': + self.xs_tally._nuclides = [] + nuclides = self.domain.get_all_nuclides() + for nuclide in nuclides: + self.xs_tally.add_nuclide(nuclide) + + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) def load_from_statepoint(self, statepoint): """Extracts tallies in an OpenMC StatePoint with the data needed to @@ -321,8 +419,6 @@ class MultiGroupXS(object): """ - # TODO: Multiply by densities - if self.xs_tally is None: msg = 'Unable to get cross section since it has not been computed' raise ValueError(msg) @@ -355,6 +451,13 @@ class MultiGroupXS(object): # Query the multi-group cross section tally for the data xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, nuclides=nuclides, value=value) + + # If user requested microscopic cross sections from an object with + # microscopic cross sections, divide by atom number densities + if self.xs_type == 'micro' and xs_type == 'micro': + densities = self.get_nuclide_densities(nuclides) + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] return xs def get_condensed_xs(self, coarse_groups): @@ -512,7 +615,7 @@ class MultiGroupXS(object): return avg_xs - def print_xs(self, subdomains='all', nuclides='all'): + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): """Prints a string representation for the multi-group cross section. Parameters @@ -523,6 +626,9 @@ class MultiGroupXS(object): nuclides : Iterable of str or 'all' The nuclides of the cross-sections to include in the report + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + """ if subdomains != 'all': @@ -561,11 +667,14 @@ class MultiGroupXS(object): # Loop over all Nuclides for nuclide in nuclides: - # Build header for cross section type based on the nuclide - if nuclide == 'total': + # Build header for nuclide type + if xs_type != 'total': + 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}=\t{1}\n'.format('\tNuclide', nuclide) string += '{0: <16}\n'.format('\tCross Sections [barns]:') template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' @@ -575,9 +684,9 @@ class MultiGroupXS(object): bounds = self.energy_groups.get_group_bounds(group) string += template.format('', group, bounds[0], bounds[1]) average = self.get_xs([group], [subdomain], - [nuclide], 'mean') + [nuclide], xs_type, 'mean') rel_err = self.get_xs([group], [subdomain], - [nuclide], 'rel_err') * 100. + [nuclide], xs_type, 'rel_err') * 100 average = np.nan_to_num(average.flatten())[0] rel_err = np.nan_to_num(rel_err.flatten())[0] string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) @@ -646,9 +755,9 @@ class MultiGroupXS(object): if self.xs_type == 'micro': nuclides = self.domain.get_all_nuclides() - densities = [] - for nuclide in nuclides: - densities.append(nuclides[nuclide][1]) + densities = np.zeros(len(nuclides), dtype=np.float) + for i, nuclide in enumerate(nuclides): + densities[i] = nuclides[nuclide][1] else: nuclides = ['total'] @@ -887,8 +996,7 @@ class TotalXS(MultiGroupXS): tally arithmetic.""" self._xs_tally = self.tallies['total'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(TotalXS, self).compute_xs() class TransportXS(MultiGroupXS): @@ -927,8 +1035,7 @@ class TransportXS(MultiGroupXS): self._xs_tally = self.tallies['total'] - self.tallies['scatter-P1'] self._xs_tally /= self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(TotalXS, self).compute_xs() class AbsorptionXS(MultiGroupXS): @@ -959,8 +1066,7 @@ class AbsorptionXS(MultiGroupXS): tally arithmetic.""" self._xs_tally = self.tallies['absorption'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(AbsorptionXS, self).compute_xs() class CaptureXS(MultiGroupXS): @@ -992,8 +1098,7 @@ class CaptureXS(MultiGroupXS): self._xs_tally = self.tallies['absorption'] - self.tallies['fission'] self._xs_tally /= self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(CaptureXS, self).compute_xs() class FissionXS(MultiGroupXS): @@ -1024,8 +1129,7 @@ class FissionXS(MultiGroupXS): tally arithmetic.""" self._xs_tally = self.tallies['fission'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(FissionXS, self).compute_xs() class NuFissionXS(MultiGroupXS): @@ -1056,8 +1160,7 @@ class NuFissionXS(MultiGroupXS): tally arithmetic.""" self._xs_tally = self.tallies['nu-fission'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(NuFissionXS, self).compute_xs() class ScatterXS(MultiGroupXS): @@ -1088,8 +1191,7 @@ class ScatterXS(MultiGroupXS): OpenMC tally arithmetic.""" self._xs_tally = self.tallies['scatter'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(ScatterXS, self).compute_xs() class NuScatterXS(MultiGroupXS): @@ -1120,8 +1222,7 @@ class NuScatterXS(MultiGroupXS): tally arithmetic.""" self._xs_tally = self.tallies['nu-scatter'] / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(NuScatterXS, self).compute_xs() class ScatterMatrixXS(MultiGroupXS): @@ -1172,8 +1273,7 @@ class ScatterMatrixXS(MultiGroupXS): rxn_tally = self.tallies['scatter'] self._xs_tally = rxn_tally / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(ScatterMatrixXS, self).compute_xs() def get_xs(self, in_groups='all', out_groups='all', subdomains='all', nuclides='all', xs_type='macro', value='mean'): @@ -1218,8 +1318,6 @@ class ScatterMatrixXS(MultiGroupXS): """ - # TODO: Deal with xs_type and micros - if self.xs_tally is None: msg = 'Unable to get cross section since it has not been computed' raise ValueError(msg) @@ -1260,9 +1358,17 @@ class ScatterMatrixXS(MultiGroupXS): xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, nuclides=nuclides, value=value) xs = np.nan_to_num(xs) + + # If user requested microscopic cross sections from an object with + # microscopic cross sections, divide by atom number densities + if self.xs_type == 'micro' and xs_type == 'micro': + densities = self.get_nuclide_densities(nuclides) + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] + return xs - def print_xs(self, subdomains='all', nuclides='all'): + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): """Prints a string representation for the multi-group cross section. Parameters @@ -1273,6 +1379,9 @@ class ScatterMatrixXS(MultiGroupXS): nuclides : Iterable of str or 'all' The nuclides of the cross-sections to include in the report + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + """ if subdomains != 'all': @@ -1320,11 +1429,14 @@ class ScatterMatrixXS(MultiGroupXS): # Loop over all Nuclides for nuclide in nuclides: - # Build header for cross section type based on the nuclide - if nuclide == 'total': + # Build header for nuclide type + if xs_type != 'total': + 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}=\t{1}\n'.format('\tNuclide', nuclide) string += '{0: <16}\n'.format('\tCross Sections [barns]:') template = '{0: <12}Group {1} -> Group {2}:\t\t' @@ -1334,11 +1446,11 @@ class ScatterMatrixXS(MultiGroupXS): 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], 'mean') + self.get_xs([in_group], [out_group], [subdomain], + [nuclide], xs_type, 'mean') rel_err = \ - self.get_xs([in_group], [out_group], - [subdomain], [nuclide],'rel_err') * 100 + self.get_xs([in_group], [out_group], [subdomain], + [nuclide], xs_type, 'rel_err') * 100 average = np.nan_to_num(average.flatten())[0] rel_err = np.nan_to_num(rel_err.flatten())[0] string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) @@ -1398,8 +1510,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): rxn_tally = self.tallies['nu-scatter'] self._xs_tally = rxn_tally / self.tallies['flux'] - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(ScatterMatrixXS, self).compute_xs() class Chi(MultiGroupXS): @@ -1434,8 +1545,7 @@ class Chi(MultiGroupXS): nu_fission_out = self.tallies['nu-fission-out'] nu_fission_in.remove_filter(nu_fission_in.filters[-1]) self._xs_tally = nu_fission_out / nu_fission_in - self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) - self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + super(Chi, self).compute_xs() def get_xs(self, groups='all', subdomains='all', nuclides='all', xs_type='macro', value='mean'): diff --git a/openmc/tallies.py b/openmc/tallies.py index 9b753fe49..6429d8529 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1,4 +1,4 @@ -from collections import Iterable, defaultdict +from collections import Iterable import copy import os import pickle @@ -9,9 +9,8 @@ import sys import numpy as np -from openmc import Mesh, Filter, Trigger, Nuclide, FILTER_TYPES +from openmc import Mesh, Filter, Trigger, Nuclide from openmc.cross import CrossScore, CrossNuclide, CrossFilter -from openmc.summary import Summary import openmc.checkvalue as cv from openmc.clean_xml import * From 6e9dc5b09f2b53e517a0402a913be653b0ec0c8f Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 27 Sep 2015 17:14:29 -0400 Subject: [PATCH 44/91] Python API MultiGroupXS.load_from_statepoint(...) routine now resets domain type to get isotopic number densities from OpenMC --- openmc/mgxs/mgxs.py | 27 +++++++++++++++++++++++++++ openmc/statepoint.py | 17 ++++++++++++----- openmc/summary.py | 2 +- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f4c569e16..f5e37680d 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -359,6 +359,25 @@ class MultiGroupXS(object): cv.check_type('statepoint', statepoint, openmc.statepoint.StatePoint) + if not statepoint.with_summary: + msg = 'Unable to load data from a statepoint which has not been ' \ + 'linked with a summary file' + raise ValueError(msg) + + # Override the domain object that loaded from an OpenMC summary file + # NOTE: This is necessary for micro cross-sections which require + # the isotopic number densities as computed by OpenMC + if self.domain_type == 'cell': + self.domain = statepoint.summary.get_cell_by_id(self.domain.id) + elif self.domain_type == 'universe': + self.domain = statepoint.summary.get_universe_by_id(self.domain.id) + elif self.domain_type == 'material': + self.domain = statepoint.summary.get_material_by_id(self.domain.id) + else: + msg = 'Unable to load data from a statepoint for domain type {} ' \ + 'which is not yet supported'.format(self.domain_type) + raise ValueError(msg) + # Create Tallies to search for in StatePoint self.create_tallies() @@ -424,6 +443,7 @@ class MultiGroupXS(object): raise ValueError(msg) cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) filters = [] filter_bins = [] @@ -631,6 +651,8 @@ class MultiGroupXS(object): """ + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) if nuclides != 'all': @@ -1323,6 +1345,7 @@ class ScatterMatrixXS(MultiGroupXS): raise ValueError(msg) cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) filters = [] filter_bins = [] @@ -1384,6 +1407,8 @@ class ScatterMatrixXS(MultiGroupXS): """ + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) if nuclides != 'all': @@ -1587,6 +1612,8 @@ class Chi(MultiGroupXS): """ + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + if self.xs_type == 'micro' and xs_type == 'macro': raise NotImplementedError('Unable to compute macro Chi from micros') diff --git a/openmc/statepoint.py b/openmc/statepoint.py index f90e429cc..f58994b8c 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -82,8 +82,8 @@ class StatePoint(object): Indicate whether user-defined tallies are present version: tuple of int Version of OpenMC - with_summary : bool - Indicate whether statepoint data has been linked against a summary file + summary : None or openmc.summary.Summary + A summary object if the statepoint has been linked with a summary file """ @@ -104,7 +104,7 @@ class StatePoint(object): # Set flags for what data has been read self._meshes_read = False self._tallies_read = False - self._with_summary = False + self._summary = False self._global_tallies = None def close(self): @@ -457,9 +457,16 @@ class StatePoint(object): self._f['version_minor'].value, self._f['version_release'].value) + @property + def summary(self): + return self._summary + @property def with_summary(self): - return self._with_summary + if self.summary is None: + return False + else: + return True def get_tally(self, scores=[], filters=[], nuclides=[], name=None, id=None, estimator=None): @@ -628,4 +635,4 @@ class StatePoint(object): material_ids.append(summary.materials[bin].id) filter.bins = material_ids - self._with_summary = True + self._summary = summary diff --git a/openmc/summary.py b/openmc/summary.py index 2ae746484..35aa703f5 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -83,7 +83,7 @@ class Summary(object): material = openmc.Material(material_id=material_id, name=name) # Set the Material's density to g/cm3 - this is what is used in OpenMC - material.set_density(density=density, units='g/cm3') + material.set_density(density=density, units='atom/b-cm') # Add all nuclides to the Material for fullname, density in zip(nuclides, nuc_densities): From 8f19a3fdc3a2021090cad02cc644cc82d2882be7 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 27 Sep 2015 20:51:06 -0400 Subject: [PATCH 45/91] Added back in Tally.summation routine and fixed issues with Chi getter in Python API --- openmc/mgxs/mgxs.py | 84 +++++++++++++++++++++++++++++++++-------- openmc/tallies.py | 92 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 159 insertions(+), 17 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f5e37680d..4f0de5049 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -367,7 +367,7 @@ class MultiGroupXS(object): # Override the domain object that loaded from an OpenMC summary file # NOTE: This is necessary for micro cross-sections which require # the isotopic number densities as computed by OpenMC - if self.domain_type == 'cell': + if self.domain_type == 'cell' or self.domain_type == 'distribcell': self.domain = statepoint.summary.get_cell_by_id(self.domain.id) elif self.domain_type == 'universe': self.domain = statepoint.summary.get_universe_by_id(self.domain.id) @@ -478,6 +478,7 @@ class MultiGroupXS(object): densities = self.get_nuclide_densities(nuclides) if value == 'mean' or value == 'std_dev': xs /= densities[np.newaxis, :, np.newaxis] + return xs def get_condensed_xs(self, coarse_groups): @@ -1544,8 +1545,6 @@ class Chi(MultiGroupXS): super(Chi, self).__init__(domain, domain_type, groups, xs_type, name) self._rxn_type = 'chi' - # FIXME: Make this work for micros!!! - def create_tallies(self): """Construct the OpenMC tallies needed to compute this cross section.""" @@ -1556,9 +1555,9 @@ class Chi(MultiGroupXS): # Create the non-domain specific Filters for the Tallies group_edges = self.energy_groups.group_edges - fine_energyout = openmc.Filter('energyout', group_edges) - coarse_energyout = openmc.Filter('energyout', [group_edges[0], group_edges[-1]]) - filters = [[coarse_energyout], [fine_energyout]] + energyout = openmc.Filter('energyout', group_edges) + energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) + filters = [[energyin], [energyout]] # Intialize the Tallies super(Chi, self).create_tallies(scores, filters, keys, estimator) @@ -1566,9 +1565,14 @@ class Chi(MultiGroupXS): def compute_xs(self): """Computes chi fission spectrum using OpenMC tally arithmetic.""" + # Retrieve the fission production tallies nu_fission_in = self.tallies['nu-fission-in'] nu_fission_out = self.tallies['nu-fission-out'] + + # Remove the coarse energy filter to keep it out of tally arithmetic nu_fission_in.remove_filter(nu_fission_in.filters[-1]) + + # Compute chi self._xs_tally = nu_fission_out / nu_fission_in super(Chi, self).compute_xs() @@ -1587,12 +1591,15 @@ class Chi(MultiGroupXS): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest - nuclides : Iterable of str or 'all' - A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is '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-section for all nuclides + in the spatial domain. The special string 'sum' will return the sum + across all nuclides weighted by the isotope-specific fission source. xs_type: {'macro' or 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns + This parameter is not relevant for chi but is included here to + mirror the parent MultiGroupXS.get_xs(...) class method value : str A string for the type of value to return - 'mean' (default), @@ -1612,11 +1619,56 @@ class Chi(MultiGroupXS): """ - cv.check_value('xs_type', xs_type, ['macro', 'micro']) + if self.xs_tally is None: + msg = 'Unable to get cross section since it has not been computed' + raise ValueError(msg) - if self.xs_type == 'micro' and xs_type == 'macro': - raise NotImplementedError('Unable to compute macro Chi from micros') + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) - xs = super(Chi, self).get_xs(groups, subdomains, - nuclides, xs_type, value) - return xs + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if subdomains != 'all': + cv.check_iterable_type('subdomains', subdomains, Integral) + 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 groups != 'all': + cv.check_iterable_type('groups', groups, Integral) + for group in groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of nuclides for all requested nuclides + if nuclides != 'all' and nuclides != ['total']: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = [] + + # Special case for the "macroscopic-from-microscopic" chi + # This is needed since chi is fission source rather than flux-weighted + if nuclides == 'sum' and self.xs_type == 'micro': + + # Retrieve the fission production tallies + nu_fission_in = self.tallies['nu-fission-in'] + nu_fission_out = self.tallies['nu-fission-out'] + + # Sum out all nuclides + nuclides = self.get_all_nuclides() + nu_fission_in = nu_fission_in.summation(nuclides=nuclides) + nu_fission_out = nu_fission_out.summation(nuclides=nuclides) + + # Compute chi and store it as the xs_tally attribute so we can use + # the generic get_xs routine + xs_tally = nu_fission_out / nu_fission_in + 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=nuclides, value=value) + + return xs \ No newline at end of file diff --git a/openmc/tallies.py b/openmc/tallies.py index 6429d8529..b4501133a 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1,4 +1,4 @@ -from collections import Iterable +from collections import Iterable, defaultdict import copy import os import pickle @@ -11,6 +11,7 @@ import numpy as np from openmc import Mesh, Filter, Trigger, Nuclide from openmc.cross import CrossScore, CrossNuclide, CrossFilter +from openmc.filter import _FILTER_TYPES import openmc.checkvalue as cv from openmc.clean_xml import * @@ -2311,6 +2312,95 @@ class Tally(object): return new_tally + def summation(self, scores=[], filter_type=None, + filter_bins=[], nuclides=[]): + """Build a sliced tally for the specified filter bins, nuclides, scores. + + This method constructs a new tally to encapsulate a subset of the data + represented by this tally. The subset of data to include in the tally + slice is determined by the scores, filter bins and nuclides specified + in the input parameters. + + Parameters + ---------- + scores : list + A list of one or more score strings to sum across + (e.g., ['absorption', 'nu-fission']; default is []) + + 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 + A list of the filter bins corresponding to the filters parameter + Each bin in the list is the integer ID for 'material', 'surface', + 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer + for the cell instance ID for 'distribcell Filters. Each bin is a + 2-tuple of floats for 'energy' and 'energyout' filters corresponding + to the energy boundaries of the bin of interest. Each bin is an + (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of + interest. + + nuclides : list + A list of nuclide name strings to sum across + (e.g., ['U-235', 'U-238']; default is []) + + Returns + ------- + Tally + A new tally which encapsulates the sum of data requested. + """ + + # If user did not specify any scores, do not sum across scores + if len(scores) == 0: + scores = [[]] + # Sum across any scores specified by the user + else: + scores = [[score] for score in scores] + + # If user did not specify any nuclides, do not sum across nuclides + if len(nuclides) == 0: + nuclides = [[]] + # Sum across any nuclides specified by the user + else: + nuclides = [[nuclide] for nuclide in nuclides] + + # Sum across any filter bins specified by the user + if filter_type in _FILTER_TYPES: + filter_bins = [[(filter_bin,)] for filter_bin in filter_bins] + filters = [[filter_type]] + # If user did not specify a filter type, do not sum across filter bins + else: + filter_bins = [[]] + filters = [[]] + + # Initialize Tally sum + tally_sum = 0 + + # Iterate over all Tally slice operands in summation + prod = [scores, filters, filter_bins, nuclides] + summed_filters = defaultdict(list) + for scores, filters, filter_bins, nuclides in itertools.product(*prod): + tally_slice = self.get_slice(scores, filters, filter_bins, nuclides) + + # Remove filters summed across to avoid bulky CrossFilters + if filter_type: + filter = tally_slice.find_filter(filter_type) + tally_slice.remove_filter(filter) + summed_filters[filter_type].append(filter) + + # Accumulate this Tally slice into the Tally sum + tally_sum += tally_slice + + # FIXME: test if this works for filter + for filter_type in summed_filters: + filters = summed_filters[filter_type] + for i in range(1, len(filters)): + filters[i] = CrossFilter(filters[i-1], filters[i], '+') + tally_sum.add_filter(filters[-1]) + + return tally_sum + def tile_filter(self, new_filter): """Combines filters, scores and nuclides with another tally. From 25e67baa3222222693e11283838b2d01ebbbc733 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 28 Sep 2015 15:26:01 -0400 Subject: [PATCH 46/91] Made Python API MultiGroupXS object xs_type attribute by_nuclide; nuclides paramter can now be all, sum or a list of nuclides --- openmc/mgxs/mgxs.py | 500 +++++++++++++++++++++++++++----------------- 1 file changed, 309 insertions(+), 191 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 4f0de5049..7123223e0 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -44,6 +44,8 @@ class MultiGroupXS(object): The domain type for spatial homogenization energy_groups : EnergyGroups The energy group structure for energy condensation + by_nuclide : bool + If true, computes multi-group 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. @@ -54,6 +56,8 @@ class MultiGroupXS(object): Name of the multi-group cross section rxn_type : str Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes multi-group cross sections for each nuclide in domain domain : Material or Cell or Universe Domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} @@ -74,11 +78,11 @@ class MultiGroupXS(object): __metaclass__ = abc.ABCMeta def __init__(self, domain=None, domain_type=None, - energy_groups=None, xs_type='macro', name=''): + energy_groups=None, by_nuclide=False, name=''): self._name = '' self._rxn_type = None - self._xs_type = None + self._by_nuclide = None self._domain = None self._domain_type = None self._energy_groups = None @@ -87,7 +91,7 @@ class MultiGroupXS(object): self._xs_tally = None self.name = name - self.xs_type = xs_type + self.by_nuclide = by_nuclide if domain_type is not None: self.domain_type = domain_type if domain is not None: @@ -103,7 +107,7 @@ class MultiGroupXS(object): clone = type(self).__new__(type(self)) clone._name = self.name clone._rxn_type = self.rxn_type - clone._xs_type = self.xs_type + clone._by_nuclide = self.by_nuclide clone._domain = self.domain clone._domain_type = self.domain_type clone._energy_groups = copy.deepcopy(self.energy_groups, memo) @@ -131,8 +135,8 @@ class MultiGroupXS(object): return self._rxn_type @property - def xs_type(self): - return self._xs_type + def by_nuclide(self): + return self._by_nuclide @property def domain(self): @@ -169,10 +173,10 @@ class MultiGroupXS(object): cv.check_type('name', name, basestring) self._name = name - @xs_type.setter - def xs_type(self, xs_type): - cv.check_value('xs_type', xs_type, ('macro', 'micro')) - self._xs_type = xs_type + @by_nuclide.setter + def by_nuclide(self, by_nuclide): + cv.check_type('by_nuclide', by_nuclide, bool) + self._by_nuclide = by_nuclide @domain.setter def domain(self, domain): @@ -213,16 +217,18 @@ class MultiGroupXS(object): return nuclides.keys() def get_nuclide_density(self, nuclide): - """Get the atomic number density for a nuclide in the cross section's - spatial domain. + """Get the atomic number density in units of atoms/b-cm for a nuclide + in the cross section's spatial domain. + Paramters + --------- nuclide : str A nuclide name string (e.g., 'U-235') Returns ------- density : Real - The atomic number density for the nuclide of interest + The atomic number density (atom/b-cm) for the nuclide of interest Raises ------ @@ -246,17 +252,22 @@ class MultiGroupXS(object): return density def get_nuclide_densities(self, nuclides='all'): - """Get all atomic number densities in the cross section's spatial domain. + """Get an array of atomic number densities in units of atom/b-cm for all + nuclides in the cross section's spatial domain. - nuclides : Iterable of str or 'all' - A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is 'all') + Paramters + --------- + 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 atom densities for all nuclides + in the spatial domain. The special string 'sum' will return the atom + density summed across all nuclides in the spatial domain. Returns ------- densities : ndarray of float - The atomic number densities corresponding to each of the nuclides - in the problem domain + An array of the atomic number densities (atom/b-cm) for each of the + nuclides in the problem domain Raises ------ @@ -268,15 +279,21 @@ class MultiGroupXS(object): if self.domain is None: raise ValueError('Unable to get nuclide densities without a domain') - # If the user requested the densities for all nuclides, get a list of - # all of the nuclide name strings if nuclides == 'all': - nuclides =self.domain.get_all_nuclides() + nuclides = self.domain.get_all_nuclides() - # Loop over each nuclide and find and store its atomic number density - densities = np.zeros(len(nuclides), dtype=np.float) - for i, nuclide in enumerate(nuclides): - densities[i] = self.get_nuclide_density(nuclide) + # Sum the atomic number densities for all nuclides + elif nuclides == 'sum': + nuclides = self.get_all_nuclides() + densities = np.zeros(1, dtype=np.float) + for i, nuclide in enumerate(nuclides): + densities[0] += self.get_nuclide_density(nuclide) + + # Store each nuclide's atomic number density in an array + else: + densities = np.zeros(len(nuclides), dtype=np.float) + for i, nuclide in enumerate(nuclides): + densities[i] = self.get_nuclide_density(nuclide) return densities @@ -323,23 +340,25 @@ class MultiGroupXS(object): for filter in filters: self.tallies[key].add_filter(filter) - # If this is a microscopic cross-section, add all nuclides to tally - if self.xs_type == 'micro' and score != 'flux': + # 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) @abc.abstractmethod def compute_xs(self): - """Computes multi-group cross sections using OpenMC tally arithmetic.""" + """Performs generic cleanup after a subclass' uses tally arithmetic to + compute a multi-group cross section as a derived tally.""" - # If a microscopic cross-section, replace CrossNuclides with originals - if self.xs_type == 'micro': + # If computing xs for each nuclide, replace CrossNuclides with originals + if self.by_nuclide: self.xs_tally._nuclides = [] nuclides = self.domain.get_all_nuclides() for nuclide in nuclides: - self.xs_tally.add_nuclide(nuclide) + self.xs_tally.add_nuclide(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) self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) @@ -350,6 +369,8 @@ class MultiGroupXS(object): This method is needed to compute cross section data from tallies in an OpenMC StatePoint object. + NOTE: The statepoint must first be linked with an OpenMC Summary object. + Parameters ---------- statepoint : openmc.StatePoint @@ -413,9 +434,11 @@ class MultiGroupXS(object): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest - nuclides : Iterable of str or 'all' - A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is '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' (default) 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. xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns @@ -462,20 +485,32 @@ class MultiGroupXS(object): filters.append('energy') filter_bins.append((self.energy_groups.get_group_bounds(group),)) - # Construct list of nuclides for all requested nuclides - if nuclides != 'all' and nuclides != ['total']: - cv.check_iterable_type('nuclides', nuclides, basestring) + # Construct a collection of the nuclides to retrieve from the xs tally + # NOTE: We must not override the "nuclides" parameter since it is used + # to retrieve atomic number densities for micro xs + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum': + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides else: - nuclides = [] + query_nuclides = ['total'] - # Query the multi-group cross section tally for the data - xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, - nuclides=nuclides, value=value) + # 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) - # If user requested microscopic cross sections from an object with - # microscopic cross sections, divide by atom number densities - if self.xs_type == 'micro' and xs_type == 'micro': - densities = self.get_nuclide_densities(nuclides) + # 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] @@ -559,8 +594,8 @@ class MultiGroupXS(object): """Construct a subdomain-averaged version of this cross section. This is primarily useful for averaging across distribcell instances. - This routine performs spatial homogenization to compute the - scalar flux-weighted average cross section across the subdomains. + This routine performs spatial homogenization to compute the scalar + flux-weighted average cross section across the subdomains. Parameters ---------- @@ -586,13 +621,12 @@ class MultiGroupXS(object): raise ValueError(msg) # Construct a collection of the subdomain filter bins to average across - if subdomains == 'all': - if self.domain_type == 'distribcell': - subdomains = np.arange(self.num_subdomains) - else: - subdomains = [self.domain.id] - else: + if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains) + else: + subdomains = [self.domain.id] # Clone this MultiGroupXS to initialize the subdomain-averaged version avg_xs = copy.deepcopy(self) @@ -644,25 +678,38 @@ class MultiGroupXS(object): subdomains : Iterable of Integral or 'all' The subdomain IDs of the cross sections to include in the report - nuclides : Iterable of str or 'all' - The nuclides of the cross-sections to include in the report + 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' (default) 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. xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns """ - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - + # Construct a collection of the subdomains to report if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) - if nuclides != 'all': - cv.check_iterable_type('nuclides', nuclides, basestring) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) else: - if self.xs_type == 'micro': - nuclides = self.domain.get_all_nuclides() + 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: - nuclides = ['total'] + 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' @@ -675,12 +722,6 @@ class MultiGroupXS(object): print(string) return - if subdomains == 'all': - if self.domain_type == 'distribcell': - subdomains = np.arange(self.num_subdomains, dtype=np.int) - else: - subdomains = [self.domain.id] - # Loop over all subdomains for subdomain in subdomains: @@ -691,7 +732,7 @@ class MultiGroupXS(object): for nuclide in nuclides: # Build header for nuclide type - if xs_type != 'total': + if nuclide != 'sum': string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) # Build header for cross section type @@ -719,7 +760,8 @@ class MultiGroupXS(object): print(string) - def build_hdf5_store(self, filename='mgxs', directory='mgxs', append=True): + def build_hdf5_store(self, filename='mgxs', directory='mgxs', + xs_type='macro', append=True): """Export the multi-group cross section data into an HDF5 binary file. This routine constructs an HDF5 file which stores the multi-group @@ -738,6 +780,9 @@ class MultiGroupXS(object): directory : str Directory for the HDF5 file (default is 'mgxs') + xs_type: {'macro' or 'micro'} + Store the macro or micro cross section in units of cm^-1 or barns + append : boolean If true, appends to an existing HDF5 file with the same filename directory (if one exists) @@ -776,13 +821,15 @@ class MultiGroupXS(object): else: xs_results = h5py.File(filename, 'w') - if self.xs_type == 'micro': + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + if self.by_nuclide: nuclides = self.domain.get_all_nuclides() densities = np.zeros(len(nuclides), dtype=np.float) for i, nuclide in enumerate(nuclides): densities[i] = nuclides[nuclide][1] else: - nuclides = ['total'] + nuclides = ['sum'] # Create an HDF5 group within the file for the domain domain_type_group = xs_results.require_group(self.domain_type) @@ -813,7 +860,7 @@ class MultiGroupXS(object): # Create a separate HDF5 group for each nuclide for j, nuclide in enumerate(nuclides): - if nuclide != 'total': + if nuclide != 'sum': nuclide_group = rxn_group.require_group(nuclide) nuclide_group.require_dataset('density', dtype=np.float64, data=[densities[j]], shape=(1,)) @@ -822,9 +869,9 @@ class MultiGroupXS(object): # Extract the cross section for this subdomain and nuclide average = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], - xs_type=self.xs_type, value='mean') + xs_type=xs_type, value='mean') std_dev = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], - xs_type=self.xs_type, value='std_dev') + xs_type=xs_type, value='std_dev') average = average.squeeze() std_dev = std_dev.squeeze() @@ -837,7 +884,8 @@ class MultiGroupXS(object): # Close the MultiGroup results HDF5 file xs_results.close() - def export_xs_data(self, filename='mgxs', directory='mgxs', format='csv'): + def export_xs_data(self, filename='mgxs', directory='mgxs', + format='csv', groups='all', xs_type='macro'): """Export the multi-group cross section data to a file. This routine leverages the functionality in the Pandas library to @@ -855,23 +903,18 @@ class MultiGroupXS(object): format : {'csv', 'excel', 'pickle', 'latex'} The format for the exported data file - groups : {'indices' or 'bounds'} - When set to 'indices' (default), integer group indices are inserted - in the energy in/out column(s) of the DataFrame. When it is 'bounds' - the lower and upper energy bounds are used. + groups : Iterable of Integral or 'all' + Energy groups of interest - summary : None or 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. + xs_type: {'macro' or 'micro'} + Store the macro or micro cross section in units of cm^-1 or barns """ cv.check_type('filename', filename, basestring) cv.check_type('directory', directory, basestring) cv.check_value('format', format, ['csv', 'excel', 'pickle', 'latex']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) # Make directory if it does not exist if not os.path.exists(directory): @@ -881,7 +924,7 @@ class MultiGroupXS(object): filename = filename.replace(' ', '-') # Get a Pandas DataFrame for the data - df = self.get_pandas_dataframe() + df = self.get_pandas_dataframe(groups=groups, xs_type=xs_type) # Capitalize column label strings df.columns = df.columns.astype(str) @@ -916,7 +959,8 @@ class MultiGroupXS(object): modified.write(data) modified.write('\n\\end{document}') - def get_pandas_dataframe(self, groups='indices', summary=None): + def get_pandas_dataframe(self, groups='all', nuclides='all', + xs_type='macro', summary=None): """Build a Pandas DataFrame for the MultiGroupXS data. This routine leverages the Tally.get_pandas_dataframe(...) routine, but @@ -924,15 +968,23 @@ class MultiGroupXS(object): Parameters ---------- - groups : {'indices' or 'bounds'} - When set to 'indices' (default), integer group indices are inserted - in the energy in/out column(s) of the DataFrame. When it is 'bounds' - the lower and upper energy bounds are used. + groups : Iterable of Integral or 'all' + Energy groups of interest + + 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' (default) 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. + + xs_type: {'macro' or 'micro'} + Return macro or micro cross section in units of cm^-1 or barns summary : None or 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 + 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. @@ -954,6 +1006,12 @@ class MultiGroupXS(object): 'cross section has not been computed' raise ValueError(msg) + if groups != 'all': + cv.check_iterable_type('groups', groups, Integral) + if nuclides != 'all' and nuclides != 'sum': + cv.check_iterable_type('nuclides', nuclides, basestring) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + # Get a Pandas DataFrame from the derived xs tally df = self.xs_tally.get_pandas_dataframe(summary=summary) @@ -963,30 +1021,51 @@ class MultiGroupXS(object): else: df = df.drop('score', axis=1) - # Use group indices in place of energy bounds ("1" for fastest group) - if groups == 'indices': + # Rename energy(out) columns + columns = [] + if 'energy [MeV]' in df: + df.rename(columns={'energy [MeV]': 'group in'}, inplace=True) + columns.append('group in') + if 'energyout [MeV]' in df: + df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True) + columns.append('group out') - # Rename the column label for energy in the dataframe - columns = [] - if 'energy [MeV]' in df: - df.rename(columns={'energy [MeV]': 'group in'}, inplace=True) - columns.append('group in') - if 'energyout [MeV]' in df: - df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True) - columns.append('group out') + # Loop over all energy groups and override the bounds with indices + template = '({0:.1e} - {1:.1e})' + bins = self.energy_groups.group_edges + for column in columns: + for i in range(self.num_groups): + group = template.format(bins[i], bins[i+1]) + row_indices = df[column] == group + df.loc[row_indices, column] = self.num_groups - i - # Loop over all energy groups and override the bounds with indices - template = '({0:.1e} - {1:.1e})' - bins = self.energy_groups.group_edges - for column in columns: - for i in range(self.num_groups): - group = template.format(bins[i], bins[i+1]) - row_indices = df[column] == group - df.loc[row_indices, column] = self.num_groups - i + # Select out those groups the user requested + if groups != 'all': + if 'group in' in df: + df = df[df['group in'].isin(groups)] + if 'group out' in df: + df = df[df['group out'].isin(groups)] - # Sort the dataframe by domain type id (e.g., distribcell id) and - # energy groups such that data is from fast to thermal - df.sort([self.domain_type] + columns, inplace=True) + # Sum up cross sections across nuclides if requested + if self.by_nuclide and nuclides == 'sum': + non_nuclide_cols = list(df.columns[df.columns != 'nuclide']) + df = df.groupby(non_nuclide_cols, as_index=False)['nuclide'].sum() + # If the user requested specific nuclides, remove others from dataframe + elif nuclides != 'all' and nuclides != 'sum': + df = df[df.nuclide.isin(nuclides)] + + # If user requested micro cross sections, divide out the atom densities + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + df['mean'] /= densities + df['std. dev.'] /= densities + + # Sort the dataframe by domain type id (e.g., distribcell id) and + # energy groups such that data is from fast to thermal + df.sort([self.domain_type] + columns, inplace=True) return df @@ -994,8 +1073,8 @@ class MultiGroupXS(object): class TotalXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(TotalXS, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(TotalXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'total' def create_tallies(self): @@ -1025,8 +1104,8 @@ class TotalXS(MultiGroupXS): class TransportXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(TransportXS, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(TransportXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'transport' def create_tallies(self): @@ -1064,8 +1143,8 @@ class TransportXS(MultiGroupXS): class AbsorptionXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(AbsorptionXS, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(AbsorptionXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'absorption' def create_tallies(self): @@ -1095,8 +1174,8 @@ class AbsorptionXS(MultiGroupXS): class CaptureXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(CaptureXS, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(CaptureXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'capture' def create_tallies(self): @@ -1127,8 +1206,8 @@ class CaptureXS(MultiGroupXS): class FissionXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(FissionXS, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(FissionXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'fission' def create_tallies(self): @@ -1158,8 +1237,8 @@ class FissionXS(MultiGroupXS): class NuFissionXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(NuFissionXS, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(NuFissionXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'nu-fission' def create_tallies(self): @@ -1189,8 +1268,8 @@ class NuFissionXS(MultiGroupXS): class ScatterXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(ScatterXS, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(ScatterXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'scatter' def create_tallies(self): @@ -1220,8 +1299,8 @@ class ScatterXS(MultiGroupXS): class NuScatterXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(NuScatterXS, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(NuScatterXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'nu-scatter' def create_tallies(self): @@ -1251,8 +1330,8 @@ class NuScatterXS(MultiGroupXS): class ScatterMatrixXS(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'scatter matrix' def create_tallies(self): @@ -1316,9 +1395,11 @@ class ScatterMatrixXS(MultiGroupXS): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest - nuclides : Iterable of str or 'all' - A list of nuclide name strings - (e.g., ['U-235', 'U-238']; default is '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' (default) 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. xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns @@ -1372,21 +1453,34 @@ class ScatterMatrixXS(MultiGroupXS): filters.append('energyout') filter_bins.append((self.energy_groups.get_group_bounds(group),)) - # Construct list of nuclides for all requested nuclides - if nuclides != 'all' and nuclides != ['total']: - cv.check_iterable_type('nuclides', nuclides, basestring) + # Construct a collection of the nuclides to retrieve from the xs tally + # NOTE: We must not override the "nuclides" parameter since it is used + # to retrieve atomic number densities for micro xs + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum': + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides else: - nuclides = [] + 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) - # Query the multi-group cross section tally for the data - xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, - nuclides=nuclides, value=value) xs = np.nan_to_num(xs) - # If user requested microscopic cross sections from an object with - # microscopic cross sections, divide by atom number densities - if self.xs_type == 'micro' and xs_type == 'micro': - densities = self.get_nuclide_densities(nuclides) + # 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] @@ -1400,25 +1494,38 @@ class ScatterMatrixXS(MultiGroupXS): subdomains : Iterable of Integral or 'all' The subdomain IDs of the cross sections to include in the report - nuclides : Iterable of str or 'all' - The nuclides of the cross-sections to include in the report + 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' (default) 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. xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns """ - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - + # Construct a collection of the subdomains to report if subdomains != 'all': cv.check_iterable_type('subdomains', subdomains, Integral) - if nuclides != 'all': - cv.check_iterable_type('nuclides', nuclides, basestring) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) else: - if self.xs_type == 'micro': - nuclides = self.domain.get_all_nuclides() + 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: - nuclides = ['total'] + 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' @@ -1456,7 +1563,7 @@ class ScatterMatrixXS(MultiGroupXS): for nuclide in nuclides: # Build header for nuclide type - if xs_type != 'total': + if xs_type != 'sum': string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) # Build header for cross section type @@ -1491,8 +1598,8 @@ class ScatterMatrixXS(MultiGroupXS): class NuScatterMatrixXS(ScatterMatrixXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(NuScatterMatrixXS, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(NuScatterMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'nu-scatter matrix' def create_tallies(self): @@ -1541,8 +1648,8 @@ class NuScatterMatrixXS(ScatterMatrixXS): class Chi(MultiGroupXS): def __init__(self, domain=None, domain_type=None, - groups=None, xs_type='macro', name=''): - super(Chi, self).__init__(domain, domain_type, groups, xs_type, name) + groups=None, by_nuclide=False, name=''): + super(Chi, self).__init__(domain, domain_type, groups, by_nuclide, name) self._rxn_type = 'chi' def create_tallies(self): @@ -1593,9 +1700,9 @@ class Chi(MultiGroupXS): 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-section for all nuclides - in the spatial domain. The special string 'sum' will return the sum - across all nuclides weighted by the isotope-specific fission source. + special string 'all' (default) 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. xs_type: {'macro' or 'micro'} This parameter is not relevant for chi but is included here to @@ -1624,6 +1731,7 @@ class Chi(MultiGroupXS): raise ValueError(msg) cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) filters = [] filter_bins = [] @@ -1642,33 +1750,43 @@ class Chi(MultiGroupXS): filters.append('energyout') filter_bins.append((self.energy_groups.get_group_bounds(group),)) - # Construct list of nuclides for all requested nuclides - if nuclides != 'all' and nuclides != ['total']: - cv.check_iterable_type('nuclides', nuclides, basestring) + # If chi was computed for each nuclide in the domain + if self.by_nuclide: + + # Get the sum as the fission source weighted average chi for all + # nuclides in the domain + if nuclides == 'sum': + + # Retrieve the fission production tallies + nu_fission_in = self.tallies['nu-fission-in'] + nu_fission_out = self.tallies['nu-fission-out'] + + # Sum out all nuclides + nuclides = self.get_all_nuclides() + nu_fission_in = nu_fission_in.summation(nuclides=nuclides) + nu_fission_out = nu_fission_out.summation(nuclides=nuclides) + + # Compute chi and store it as the xs_tally attribute so we can use + # the generic get_xs routine + xs_tally = nu_fission_out / nu_fission_in + xs = xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Get chi for all nuclides in the domain + elif nuclides == 'all': + nuclides = self.get_all_nuclides() + xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # Get chi for user-specified nuclides in the domain + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # If chi was computed as an average of nuclides in the domain else: - nuclides = [] - - # Special case for the "macroscopic-from-microscopic" chi - # This is needed since chi is fission source rather than flux-weighted - if nuclides == 'sum' and self.xs_type == 'micro': - - # Retrieve the fission production tallies - nu_fission_in = self.tallies['nu-fission-in'] - nu_fission_out = self.tallies['nu-fission-out'] - - # Sum out all nuclides - nuclides = self.get_all_nuclides() - nu_fission_in = nu_fission_in.summation(nuclides=nuclides) - nu_fission_out = nu_fission_out.summation(nuclides=nuclides) - - # Compute chi and store it as the xs_tally attribute so we can use - # the generic get_xs routine - xs_tally = nu_fission_out / nu_fission_in - 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=nuclides, value=value) + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) return xs \ No newline at end of file From 9377823ddc54a1a8cfe8694623ea561631988985 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 28 Sep 2015 21:16:52 -0400 Subject: [PATCH 47/91] Added StatePoint and Summary to Python API __init__.py --- openmc/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openmc/__init__.py b/openmc/__init__.py index d966a155a..397d9f3e2 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -12,6 +12,8 @@ from openmc.trigger import * from openmc.tallies import * from openmc.cmfd import * from openmc.executor import * +from openmc.statepoint import * +from openmc.summary import * try: from openmc.opencg_compatible import * From 4451b71f365dda82f77f598a3b263d274ab4d4b7 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 28 Sep 2015 21:23:06 -0400 Subject: [PATCH 48/91] Made Python API MultiGroupXS.get_condensed_xs(...) routine permit same number of energy groups --- openmc/mgxs/mgxs.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 7123223e0..9b685d37c 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -537,7 +537,8 @@ class MultiGroupXS(object): raise ValueError(msg) cv.check_type('coarse_groups', coarse_groups, EnergyGroups) - cv.check_less_than('coarse groups', coarse_groups.num_groups, self.num_groups) + cv.check_less_than('coarse groups', coarse_groups.num_groups, + self.num_groups, equality=True) cv.check_value('upper coarse energy', coarse_groups.group_edges[-1], [self.energy_groups.group_edges[-1]]) cv.check_value('lower coarse energy', coarse_groups.group_edges[0], From c58c5639de0c0ec6e92ee25e1138706fd168041f Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 29 Sep 2015 09:22:51 -0400 Subject: [PATCH 49/91] Python API Executor now waits until process has finished before returning from run_simulation(...) routine even if output=False --- openmc/executor.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/openmc/executor.py b/openmc/executor.py index 54c8a64c1..58cb91246 100644 --- a/openmc/executor.py +++ b/openmc/executor.py @@ -30,14 +30,16 @@ class Executor(object): stdout=subprocess.PIPE) # Capture and re-print OpenMC output in real-time - while (True and output): - line = p.stdout.readline() - print(line, end='') - + 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 From 731ee261e1305966b351788c061ccca65e4ce055 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 29 Sep 2015 17:34:05 -0400 Subject: [PATCH 50/91] MultiGroupXS.get_xs(...) routine now includes an order_groups parameter with increasing/decreasing options --- openmc/mgxs/mgxs.py | 149 +++++++++++++++++++++++++++++++------------- 1 file changed, 104 insertions(+), 45 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 9b685d37c..ea8fa2f18 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -178,6 +178,20 @@ class MultiGroupXS(object): cv.check_type('by_nuclide', by_nuclide, bool) self._by_nuclide = by_nuclide + @property + def num_nuclides(self): + if self.by_nuclide: + return len(self.get_all_nuclides()) + else: + return 1 + + @property + def nuclides(self): + if self.by_nuclide: + return self.get_all_nuclides() + else: + return 'sum' + @domain.setter def domain(self, domain): cv.check_type('domain', domain, tuple(DOMAINS)) @@ -279,11 +293,8 @@ class MultiGroupXS(object): if self.domain is None: raise ValueError('Unable to get nuclide densities without a domain') - if nuclides == 'all': - nuclides = self.domain.get_all_nuclides() - # Sum the atomic number densities for all nuclides - elif nuclides == 'sum': + if nuclides == 'sum': nuclides = self.get_all_nuclides() densities = np.zeros(1, dtype=np.float) for i, nuclide in enumerate(nuclides): @@ -321,9 +332,9 @@ class MultiGroupXS(object): """ 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_length('scores', scores, len(keys)) cv.check_value('estimator', estimator, ['analog', 'tracklength']) # Create a domain Filter object @@ -419,8 +430,8 @@ class MultiGroupXS(object): filter_bins, tally.nuclides) self.tallies[tally_type] = sp_tally - def get_xs(self, groups='all', subdomains='all', - nuclides='all', xs_type='macro', value='mean'): + def get_xs(self, groups='all', subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', value='mean'): """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested multi-group @@ -443,6 +454,10 @@ class MultiGroupXS(object): xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing (default) + or decreasing energy groups (decreasing or increasing energies) + value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted @@ -514,6 +529,25 @@ class MultiGroupXS(object): 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': + # Reshape tally data array with separate axes for domain and energy + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + num_subdomains = xs.shape[0] / num_groups + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, :] + + # Reshape array to original axes (filters, nuclides, scores) + new_shape = (num_subdomains * num_groups,) + xs.shape[2:] + xs = np.reshape(xs, new_shape) + return xs def get_condensed_xs(self, coarse_groups): @@ -748,10 +782,10 @@ class MultiGroupXS(object): 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]) - average = self.get_xs([group], [subdomain], - [nuclide], xs_type, 'mean') - rel_err = self.get_xs([group], [subdomain], - [nuclide], xs_type, 'rel_err') * 100 + average = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='rel_err')*100 average = np.nan_to_num(average.flatten())[0] rel_err = np.nan_to_num(rel_err.flatten())[0] string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) @@ -1138,7 +1172,7 @@ class TransportXS(MultiGroupXS): self._xs_tally = self.tallies['total'] - self.tallies['scatter-P1'] self._xs_tally /= self.tallies['flux'] - super(TotalXS, self).compute_xs() + super(TransportXS, self).compute_xs() class AbsorptionXS(MultiGroupXS): @@ -1352,7 +1386,7 @@ class ScatterMatrixXS(MultiGroupXS): # Initialize the Tallies super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) - def compute_xs(self, correction=None): + def compute_xs(self, correction='P0'): """Computes the multi-group scattering matrix using OpenMC tally arithmetic. @@ -1379,7 +1413,8 @@ class ScatterMatrixXS(MultiGroupXS): super(ScatterMatrixXS, self).compute_xs() def get_xs(self, in_groups='all', out_groups='all', subdomains='all', - nuclides='all', xs_type='macro', value='mean'): + nuclides='all', order_groups='increasing', + xs_type='macro', value='mean'): """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested scattering @@ -1405,6 +1440,9 @@ class ScatterMatrixXS(MultiGroupXS): xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted @@ -1485,6 +1523,31 @@ class ScatterMatrixXS(MultiGroupXS): 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': + # Reshape tally data array with separate axes for domain and energy + 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) + num_subdomains = 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) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, ::-1, :] + + # Reshape array to original axes (filters, nuclides, scores) + new_shape = (num_subdomains * num_in_groups * num_out_groups,) + new_shape += xs.shape[3:] + xs = np.reshape(xs, new_shape) + return xs def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): @@ -1581,10 +1644,10 @@ class ScatterMatrixXS(MultiGroupXS): string += template.format('', in_group, out_group) average = \ self.get_xs([in_group], [out_group], [subdomain], - [nuclide], xs_type, 'mean') + [nuclide], xs_type=xs_type, value='mean') rel_err = \ self.get_xs([in_group], [out_group], [subdomain], - [nuclide], xs_type, 'rel_err') * 100 + [nuclide], xs_type=xs_type, value='rel_err') * 100 average = np.nan_to_num(average.flatten())[0] rel_err = np.nan_to_num(rel_err.flatten())[0] string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) @@ -1607,7 +1670,7 @@ class NuScatterMatrixXS(ScatterMatrixXS): """Construct the OpenMC tallies needed to compute this cross section.""" # Create a list of scores for each Tally to be created - scores = ['flux', 'nu-scatter', 'scatter-P1'] + scores = ['flux', 'scatter', 'scatter-P1'] estimator = 'analog' keys = scores @@ -1620,32 +1683,6 @@ class NuScatterMatrixXS(ScatterMatrixXS): # Intialize the Tallies super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) - def compute_xs(self, correction=None): - """Computes the multi-group nu-scattering matrix using OpenMC - tally arithmetic. - - Parameters - ---------- - correction : {'P0' or None} - If 'P0', applies the P0 transport correction to the diagonal of the - scattering matrix - - """ - - # If using P0 correction subtract scatter-P1 from the diagonal - if correction == 'P0': - scatter_p1 = self.tallies['scatter-P1'] - scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) - energy_filter = openmc.Filter(type='energy') - energy_filter.bins = self.energy_groups.group_edges - scatter_p1 = scatter_p1.diagonalize_filter(energy_filter) - rxn_tally = self.tallies['nu-scatter'] - scatter_p1 - else: - rxn_tally = self.tallies['nu-scatter'] - - self._xs_tally = rxn_tally / self.tallies['flux'] - super(ScatterMatrixXS, self).compute_xs() - class Chi(MultiGroupXS): def __init__(self, domain=None, domain_type=None, @@ -1684,8 +1721,8 @@ class Chi(MultiGroupXS): self._xs_tally = nu_fission_out / nu_fission_in super(Chi, self).compute_xs() - def get_xs(self, groups='all', subdomains='all', - nuclides='all', xs_type='macro', value='mean'): + def get_xs(self, groups='all', subdomains='all', nuclides='all', + order_groups='increasing', xs_type='macro', value='mean'): """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested multi-group @@ -1705,6 +1742,9 @@ class Chi(MultiGroupXS): all nuclides in the spatial domain. The special string 'sum' will return the cross section summed over all nuclides. + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + xs_type: {'macro' or 'micro'} This parameter is not relevant for chi but is included here to mirror the parent MultiGroupXS.get_xs(...) class method @@ -1790,4 +1830,23 @@ class Chi(MultiGroupXS): xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + # Reshape tally data array with separate axes for domain and energy + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + num_subdomains = xs.shape[0] / num_groups + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, :] + + # Reshape array to original axes (filters, nuclides, scores) + new_shape = (num_subdomains * num_groups,) + new_shape[2:] + xs = np.reshape(xs, new_shape) + return xs \ No newline at end of file From d075e10fbbd61ee2cd71dd51c2ed7661d14bd5ad Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 30 Sep 2015 13:09:30 -0400 Subject: [PATCH 51/91] Fixed bug in Tally.diagonalize_filter(...) routine for multiple nuclides, scores --- openmc/filter.py | 4 ++-- openmc/tallies.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 2f09d93f2..5dbf83fdd 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -55,7 +55,6 @@ class Filter(object): self._type = None self._num_bins = 0 self._bins = None - self._bins = None self._mesh = None self._offset = -1 self._stride = None @@ -314,8 +313,9 @@ class Filter(object): Returns ------- - boolean + bool Whether or not the other filter is a subset of this filter + """ if not isinstance(other, Filter): diff --git a/openmc/tallies.py b/openmc/tallies.py index b4501133a..cc6d5fbf5 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2517,16 +2517,16 @@ class Tally(object): if self.sum is not None: new_tally._sum = np.zeros(new_shape, dtype=np.float64) - new_tally._sum[diag_indices, :, :] = self.sum + new_tally._sum[indices, :self.num_nuclides, :self.num_scores] = self.sum if self.sum_sq is not None: new_tally._sum_sq = np.zeros(new_shape, dtype=np.float64) - new_tally._sum_sq[diag_indices, :, :] = self.sum_sq + new_tally._sum_sq[indices, :self.num_nuclides, :self.num_scores] = self.sum_sq if self.mean is not None: new_tally._mean = np.zeros(new_shape, dtype=np.float64) - new_tally._mean[diag_indices, :, :] = self.mean + new_tally._mean[indices, :self.num_nuclides, :self.num_scores] = self.mean if self.std_dev is not None: new_tally._std_dev = np.zeros(new_shape, dtype=np.float64) - new_tally._std_dev[diag_indices, :, :] = self.std_dev + new_tally._std_dev[indices, :self.num_nuclides, :self.num_scores] = self.std_dev # Correct each Filter's stride stride = new_tally.num_nuclides * new_tally.num_score_bins From b548e3dcc10f43f3fd7a407284d3811c8a6dced0 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 30 Sep 2015 14:33:17 -0400 Subject: [PATCH 52/91] Removed unnecessary code from Tally.filter_diagonalize(...) --- openmc/tallies.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index cc6d5fbf5..87af32c42 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2507,13 +2507,6 @@ class Tally(object): new_shape = (num_filter_bins, num_nuclides, num_score_bins) indices = np.arange(0, new_filter.num_bins**2, new_filter.num_bins+1) - diag_indices = np.zeros(self.num_bins, dtype=np.int) - diag_factor = self.num_bins / new_filter.num_bins - - for i in range(diag_factor): - start = i * new_filter.num_bins - end = (i+1) * new_filter.num_bins - diag_indices[start:end] = indices + (i * new_filter.num_bins**2) if self.sum is not None: new_tally._sum = np.zeros(new_shape, dtype=np.float64) From 006358daccbdbd9afe245d15db158e8fcd5d7a00 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 30 Sep 2015 18:16:58 -0400 Subject: [PATCH 53/91] Fixed bug in nuclide number densities for micro xs Pandas DataFrames --- openmc/mgxs/mgxs.py | 102 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 89 insertions(+), 13 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index ea8fa2f18..b39510418 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -297,9 +297,16 @@ class MultiGroupXS(object): if nuclides == 'sum': nuclides = self.get_all_nuclides() densities = np.zeros(1, dtype=np.float) - for i, nuclide in enumerate(nuclides): + for nuclide in nuclides: densities[0] += self.get_nuclide_density(nuclide) + # Sum the atomic number densities for all nuclides + elif nuclides == 'all': + nuclides = self.get_all_nuclides() + densities = np.zeros(self.num_nuclides, dtype=np.float) + for i, nuclide in enumerate(nuclides): + densities[i] += self.get_nuclide_density(nuclide) + # Store each nuclide's atomic number density in an array else: densities = np.zeros(len(nuclides), dtype=np.float) @@ -1048,7 +1055,24 @@ class MultiGroupXS(object): cv.check_value('xs_type', xs_type, ['macro', 'micro']) # Get a Pandas DataFrame from the derived xs tally - df = self.xs_tally.get_pandas_dataframe(summary=summary) + if self.by_nuclide and nuclides == 'sum': + + # 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) + + # Remove nuclide column since it is homogeneous and redundant + df.drop('nuclide', axis=1, inplace=True) + + # 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) + + # If the user requested all nuclides, keep nuclide column in dataframe + else: + df = self.xs_tally.get_pandas_dataframe(summary=summary) # Remove the score column since it is homogeneous and redundant if summary and self.domain_type == 'distribcell': @@ -1081,22 +1105,15 @@ class MultiGroupXS(object): if 'group out' in df: df = df[df['group out'].isin(groups)] - # Sum up cross sections across nuclides if requested - if self.by_nuclide and nuclides == 'sum': - non_nuclide_cols = list(df.columns[df.columns != 'nuclide']) - df = df.groupby(non_nuclide_cols, as_index=False)['nuclide'].sum() - # If the user requested specific nuclides, remove others from dataframe - elif nuclides != 'all' and nuclides != 'sum': - df = df[df.nuclide.isin(nuclides)] - # If user requested micro cross sections, divide out the atom densities if xs_type == 'micro': if self.by_nuclide: densities = self.get_nuclide_densities(nuclides) else: densities = self.get_nuclide_densities('sum') - df['mean'] /= densities - df['std. dev.'] /= densities + tile_factor = df.shape[0] / len(densities) + df['mean'] /= np.tile(densities, tile_factor) + df['std. dev.'] /= np.tile(densities, tile_factor) # Sort the dataframe by domain type id (e.g., distribcell id) and # energy groups such that data is from fast to thermal @@ -1849,4 +1866,63 @@ class Chi(MultiGroupXS): new_shape = (num_subdomains * num_groups,) + new_shape[2:] xs = np.reshape(xs, new_shape) - return xs \ No newline at end of file + return xs + + def get_pandas_dataframe(self, groups='all', nuclides='all', + xs_type='macro', summary=None): + """Build a Pandas DataFrame for the MultiGroupXS data. + + This routine leverages the Tally.get_pandas_dataframe(...) routine, but + renames the columns with terminology appropriate for cross section data. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest + + 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' (default) 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. + + xs_type: {'macro' or 'micro'} + Return macro or micro cross section in units of cm^-1 or barns + + summary : None or 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. + + """ + + # Build the dataframe using the parent class routine + df = super(Chi, self).get_pandas_dataframe(groups, nuclides, + xs_type, summary) + + # If user requested micro cross sections, multiply by the atom + # densities to cancel out division made by the parent class routine + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + tile_factor = df.shape[0] / len(densities) + df['mean'] *= np.tile(densities, tile_factor) + df['std. dev.'] *= np.tile(densities, tile_factor) + + return df \ No newline at end of file From b979a19f73a95cca6ad2d56356cf39b08ad69c06 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 30 Sep 2015 18:19:21 -0400 Subject: [PATCH 54/91] Fixed bug in subdomain avg multi-group xs for single subdomains --- 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 b39510418..14810fc32 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -668,7 +668,7 @@ class MultiGroupXS(object): elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains) else: - subdomains = [self.domain.id] + subdomains = [0] # Clone this MultiGroupXS to initialize the subdomain-averaged version avg_xs = copy.deepcopy(self) From 464105a362a262f2e0c1bd9844dcdc6b6c9d1787 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 30 Sep 2015 18:39:13 -0400 Subject: [PATCH 55/91] Fixed issues with MultiGroupXS extraction summed across nuclides --- openmc/mgxs/mgxs.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 14810fc32..c9847fa48 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -511,7 +511,7 @@ class MultiGroupXS(object): # NOTE: We must not override the "nuclides" parameter since it is used # to retrieve atomic number densities for micro xs if self.by_nuclide: - if nuclides == 'all' or nuclides == 'sum': + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: query_nuclides = self.get_all_nuclides() else: query_nuclides = nuclides @@ -1513,7 +1513,7 @@ class ScatterMatrixXS(MultiGroupXS): # NOTE: We must not override the "nuclides" parameter since it is used # to retrieve atomic number densities for micro xs if self.by_nuclide: - if nuclides == 'all' or nuclides == 'sum': + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: query_nuclides = self.get_all_nuclides() else: query_nuclides = nuclides @@ -1813,7 +1813,7 @@ class Chi(MultiGroupXS): # Get the sum as the fission source weighted average chi for all # nuclides in the domain - if nuclides == 'sum': + if nuclides == 'sum' or nuclides == ['sum']: # Retrieve the fission production tallies nu_fission_in = self.tallies['nu-fission-in'] @@ -1850,6 +1850,7 @@ class Chi(MultiGroupXS): # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies if order_groups == 'increasing': + # Reshape tally data array with separate axes for domain and energy if groups == 'all': num_groups = self.num_groups From a342a6c20ad5d7cdc8ce037ce90cf98bacce0fd1 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 30 Sep 2015 23:06:36 -0400 Subject: [PATCH 56/91] Now add total nuclide to MultiGroupXS objects if by_nuclide=False --- openmc/mgxs/mgxs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c9847fa48..e02a39849 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -363,6 +363,8 @@ class MultiGroupXS(object): all_nuclides = self.domain.get_all_nuclides() for nuclide in all_nuclides: self.tallies[key].add_nuclide(nuclide) + else: + self.tallies[key].add_nuclide('total') @abc.abstractmethod def compute_xs(self): From c1802875620b21ec5c37ddf7c865e7a175481bb8 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 30 Sep 2015 23:14:08 -0400 Subject: [PATCH 57/91] Fixed bug in Python API Chi.get_xs(...) when summed across nuclides --- openmc/mgxs/mgxs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e02a39849..07e47e0cf 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1869,6 +1869,7 @@ class Chi(MultiGroupXS): new_shape = (num_subdomains * num_groups,) + new_shape[2:] xs = np.reshape(xs, new_shape) + xs = np.nan_to_num(xs) return xs def get_pandas_dataframe(self, groups='all', nuclides='all', From 63dfe0b632e56503f02e40ce7ded30daf83a6f6b Mon Sep 17 00:00:00 2001 From: Colin Josey Date: Thu, 1 Oct 2015 12:20:25 -0400 Subject: [PATCH 58/91] Moved logarithm index out of loop --- src/cross_section.F90 | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index b937b03a1..4d8fb2f0f 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -33,6 +33,7 @@ contains integer :: i_nuclide ! index into nuclides array integer :: i_sab ! index into sab_tables array integer :: j ! index in mat % i_sab_nuclides + integer :: u ! index into logarithmic mapping array real(8) :: atom_density ! atom density of a nuclide logical :: check_sab ! should we check for S(a,b) table? type(Material), pointer :: mat ! current material @@ -50,9 +51,13 @@ contains mat => materials(p % material) - ! Find energy index on global or material unionized grid - if (grid_method == GRID_MAT_UNION) & - call find_energy_index(p % E, p % material) + ! Find energy index on energy grid + u = 0 + if (grid_method == GRID_MAT_UNION) then + call find_energy_index(p % E, p % material) + else if (grid_method == GRID_LOGARITHM) then + u = int(log(p % E/1.0e-11_8)/log_spacing) + end if ! Determine if this material has S(a,b) tables check_sab = (mat % n_sab > 0) @@ -94,9 +99,9 @@ contains ! Calculate microscopic cross section for this nuclide if (p % E /= micro_xs(i_nuclide) % last_E) then - call calculate_nuclide_xs(i_nuclide, i_sab, p % E, p % material, i) + call calculate_nuclide_xs(i_nuclide, i_sab, p % E, p % material, i, u) else if (i_sab /= micro_xs(i_nuclide) % last_index_sab) then - call calculate_nuclide_xs(i_nuclide, i_sab, p % E, p % material, i) + call calculate_nuclide_xs(i_nuclide, i_sab, p % E, p % material, i, u) end if ! ======================================================================== @@ -137,16 +142,16 @@ contains ! given index in the nuclides array at the energy of the given particle !=============================================================================== - subroutine calculate_nuclide_xs(i_nuclide, i_sab, E, i_mat, i_nuc_mat) + subroutine calculate_nuclide_xs(i_nuclide, i_sab, E, i_mat, i_nuc_mat, u) integer, intent(in) :: i_nuclide ! index into nuclides array integer, intent(in) :: i_sab ! index into sab_tables array integer, intent(in) :: i_mat ! index into materials array integer, intent(in) :: i_nuc_mat ! index into nuclides array for a material + integer, intent(in) :: u ! index into logarithmic mapping array integer :: i_grid ! index on nuclide energy grid integer :: i_low ! lower logarithmic mapping index integer :: i_high ! upper logarithmic mapping index - integer :: u ! index into logarithmic mapping array real(8), intent(in) :: E ! energy real(8) :: f ! interp factor on nuclide energy grid type(Nuclide), pointer :: nuc @@ -173,7 +178,6 @@ contains else ! Determine bounding indices based on which equal log-spaced interval ! the energy is in - u = int(log(E/1.0e-11_8)/log_spacing) i_low = nuc % grid_index(u) i_high = nuc % grid_index(u + 1) + 1 From 68b654b4031abbe4cf45fe290c5c718e94693ed4 Mon Sep 17 00:00:00 2001 From: Colin Josey Date: Thu, 1 Oct 2015 13:27:11 -0400 Subject: [PATCH 59/91] Removed L/R checking in binary search --- src/search.F90 | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/src/search.F90 b/src/search.F90 index dab7fa67c..db099946e 100644 --- a/src/search.F90 +++ b/src/search.F90 @@ -39,16 +39,6 @@ contains n_iteration = 0 do while (R - L > 1) - - ! Check boundaries - if (val > array(L) .and. val < array(L+1)) then - array_index = L - return - elseif (val > array(R-1) .and. val < array(R)) then - array_index = R - 1 - return - end if - ! Find values at midpoint array_index = L + (R - L)/2 testval = array(array_index) @@ -91,16 +81,6 @@ contains n_iteration = 0 do while (R - L > 1) - - ! Check boundaries - if (val > array(L) .and. val < array(L+1)) then - array_index = L - return - elseif (val > array(R-1) .and. val < array(R)) then - array_index = R - 1 - return - end if - ! Find values at midpoint array_index = L + (R - L)/2 testval = array(array_index) @@ -143,16 +123,6 @@ contains n_iteration = 0 do while (R - L > 1) - - ! Check boundaries - if (val > array(L) .and. val < array(L+1)) then - array_index = L - return - elseif (val > array(R-1) .and. val < array(R)) then - array_index = R - 1 - return - end if - ! Find values at midpoint array_index = L + (R - L)/2 testval = array(array_index) From 42ca8df692ba005dc7fee6030f9fae14fea1ac4c Mon Sep 17 00:00:00 2001 From: Colin Josey Date: Thu, 1 Oct 2015 14:01:52 -0400 Subject: [PATCH 60/91] Removed redundancy in binary search --- src/search.F90 | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/search.F90 b/src/search.F90 index db099946e..ea1149866 100644 --- a/src/search.F90 +++ b/src/search.F90 @@ -41,10 +41,9 @@ contains do while (R - L > 1) ! Find values at midpoint array_index = L + (R - L)/2 - testval = array(array_index) - if (val >= testval) then + if (val >= array(array_index)) then L = array_index - elseif (val < testval) then + else R = array_index end if @@ -83,10 +82,9 @@ contains do while (R - L > 1) ! Find values at midpoint array_index = L + (R - L)/2 - testval = array(array_index) - if (val >= testval) then + if (val >= array(array_index)) then L = array_index - elseif (val < testval) then + else R = array_index end if @@ -125,10 +123,9 @@ contains do while (R - L > 1) ! Find values at midpoint array_index = L + (R - L)/2 - testval = array(array_index) - if (val >= testval) then + if (val >= array(array_index)) then L = array_index - elseif (val < testval) then + else R = array_index end if From 7ab36529c0294146919793acead7d2ab0da84c53 Mon Sep 17 00:00:00 2001 From: Colin Josey Date: Thu, 1 Oct 2015 14:02:37 -0400 Subject: [PATCH 61/91] Removed spurious variable --- src/search.F90 | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/search.F90 b/src/search.F90 index ea1149866..d38dfb986 100644 --- a/src/search.F90 +++ b/src/search.F90 @@ -28,7 +28,6 @@ contains integer :: L integer :: R integer :: n_iteration - real(8) :: testval L = 1 R = n @@ -69,7 +68,6 @@ contains integer :: L integer :: R integer :: n_iteration - real(8) :: testval L = 1 R = n @@ -110,7 +108,6 @@ contains integer :: L integer :: R integer :: n_iteration - real(8) :: testval L = 1 R = n From 65cbcfadb715ce3355944257732ebdfcd6be6333 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 1 Oct 2015 18:26:25 -0400 Subject: [PATCH 62/91] Further refinements to Tally.diagonalize_filter(...) to allow for distribcell filters --- openmc/mgxs/mgxs.py | 7 +++++-- openmc/tallies.py | 15 +++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 07e47e0cf..bc9167dfd 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -614,7 +614,7 @@ class MultiGroupXS(object): # Sum across all applicable fine energy group filters for i, filter in enumerate(tally.filters): - if 'energy' in filter.type and all(filter.bins == fine_edges): + if 'energy' in filter.type and np.all(filter.bins == fine_edges): filter.bins = coarse_groups.group_edges mean = np.add.reduceat(mean, energy_indices, axis=i) std_dev = np.add.reduceat(std_dev**2, energy_indices, axis=i) @@ -1734,9 +1734,12 @@ class Chi(MultiGroupXS): nu_fission_out = self.tallies['nu-fission-out'] # Remove the coarse energy filter to keep it out of tally arithmetic - nu_fission_in.remove_filter(nu_fission_in.filters[-1]) + energy_filter = nu_fission_in.find_filter('energy') + nu_fission_in.remove_filter(energy_filter) # Compute chi + nu_fission_in.add_filter(energy_filter) + self._xs_tally = nu_fission_out / nu_fission_in super(Chi, self).compute_xs() diff --git a/openmc/tallies.py b/openmc/tallies.py index 87af32c42..d15be7983 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2506,20 +2506,27 @@ class Tally(object): num_score_bins = new_tally.num_score_bins new_shape = (num_filter_bins, num_nuclides, num_score_bins) + diag_factor = self.num_filter_bins / new_filter.num_bins indices = np.arange(0, new_filter.num_bins**2, new_filter.num_bins+1) + diag_indices = np.zeros(self.num_filter_bins, dtype=np.int) + + for i in range(diag_factor): + start = i * new_filter.num_bins + end = (i+1) * new_filter.num_bins + diag_indices[start:end] = indices + (i * new_filter.num_bins**2) if self.sum is not None: new_tally._sum = np.zeros(new_shape, dtype=np.float64) - new_tally._sum[indices, :self.num_nuclides, :self.num_scores] = self.sum + new_tally._sum[diag_indices, :self.num_nuclides, :self.num_scores] = self.sum if self.sum_sq is not None: new_tally._sum_sq = np.zeros(new_shape, dtype=np.float64) - new_tally._sum_sq[indices, :self.num_nuclides, :self.num_scores] = self.sum_sq + new_tally._sum_sq[diag_indices, :self.num_nuclides, :self.num_scores] = self.sum_sq if self.mean is not None: new_tally._mean = np.zeros(new_shape, dtype=np.float64) - new_tally._mean[indices, :self.num_nuclides, :self.num_scores] = self.mean + new_tally._mean[diag_indices, :self.num_nuclides, :self.num_scores] = self.mean if self.std_dev is not None: new_tally._std_dev = np.zeros(new_shape, dtype=np.float64) - new_tally._std_dev[indices, :self.num_nuclides, :self.num_scores] = self.std_dev + new_tally._std_dev[diag_indices, :self.num_nuclides, :self.num_scores] = self.std_dev # Correct each Filter's stride stride = new_tally.num_nuclides * new_tally.num_score_bins From 78d14133dbd7cb24c42b99256d36a67c4cd0b15e Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 2 Oct 2015 01:25:41 -0400 Subject: [PATCH 63/91] Updated OpenCG compatiblity module to reflect move to PEP8 use of underscores in place of camelCase --- openmc/material.py | 9 +- openmc/mesh.py | 8 +- openmc/opencg_compatible.py | 182 ++++++++++++++++++------------------ openmc/surface.py | 7 +- openmc/tallies.py | 7 +- openmc/universe.py | 21 +++-- 6 files changed, 128 insertions(+), 106 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index e495357b5..4f60abc67 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -132,9 +132,12 @@ class Material(object): @name.setter def name(self, name): - check_type('name for Material ID="{0}"'.format(self._id), - name, basestring) - self._name = name + if name is not None: + check_type('name for Material ID="{0}"'.format(self._id), + name, basestring) + self._name = name + else: + self._name = None def set_density(self, units, density=NO_DENSITY): """Set the density of the material diff --git a/openmc/mesh.py b/openmc/mesh.py index 2fe873d2b..af13d984d 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -148,8 +148,12 @@ class Mesh(object): @name.setter def name(self, name): - check_type('name for mesh ID="{0}"'.format(self._id), name, basestring) - self._name = name + if name is not None: + check_type('name for mesh ID="{0}"'.format(self._id), + name, basestring) + self._name = name + else: + self._name = None @type.setter def type(self, meshtype): diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 65e980c00..682ef0eca 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -83,14 +83,14 @@ def get_opencg_material(openmc_material): raise ValueError(msg) global OPENCG_MATERIALS - material_id = openmc_material._id + material_id = openmc_material.id # If this Material was already created, use it if material_id in OPENCG_MATERIALS: return OPENCG_MATERIALS[material_id] # Create an OpenCG Material to represent this OpenMC Material - name = openmc_material._name + name = openmc_material.name opencg_material = opencg.Material(material_id=material_id, name=name) # Add the OpenMC Material to the global collection of all OpenMC Materials @@ -123,14 +123,14 @@ def get_openmc_material(opencg_material): raise ValueError(msg) global OPENMC_MATERIALS - material_id = opencg_material._id + material_id = opencg_material.id # If this Material was already created, use it if material_id in OPENMC_MATERIALS: return OPENMC_MATERIALS[material_id] # Create an OpenMC Material to represent this OpenCG Material - name = opencg_material._name + name = opencg_material.name openmc_material = openmc.Material(material_id=material_id, name=name) # Add the OpenMC Material to the global collection of all OpenMC Materials @@ -168,8 +168,8 @@ def is_opencg_surface_compatible(opencg_surface): 'since "{0}" is not a Surface'.format(opencg_surface) raise ValueError(msg) - if opencg_surface._type in ['x-squareprism', - 'y-squareprism', 'z-squareprism']: + if opencg_surface.type in ['x-squareprism', + 'y-squareprism', 'z-squareprism']: return False else: return True @@ -196,59 +196,59 @@ def get_opencg_surface(openmc_surface): raise ValueError(msg) global OPENCG_SURFACES - surface_id = openmc_surface._id + surface_id = openmc_surface.id # If this Material was already created, use it if surface_id in OPENCG_SURFACES: return OPENCG_SURFACES[surface_id] # Create an OpenCG Surface to represent this OpenMC Surface - name = openmc_surface._name + name = openmc_surface.name # Correct for OpenMC's syntax for Surfaces dividing Cells - boundary = openmc_surface._boundary_type + boundary = openmc_surface.boundary_type if boundary == 'transmission': boundary = 'interface' opencg_surface = None - if openmc_surface._type == 'plane': - A = openmc_surface._coeffs['A'] - B = openmc_surface._coeffs['B'] - C = openmc_surface._coeffs['C'] - D = openmc_surface._coeffs['D'] + if openmc_surface.type == 'plane': + A = openmc_surface.coeffs['A'] + B = openmc_surface.coeffs['B'] + C = openmc_surface.coeffs['C'] + D = openmc_surface.coeffs['D'] opencg_surface = opencg.Plane(surface_id, name, boundary, A, B, C, D) - elif openmc_surface._type == 'x-plane': - x0 = openmc_surface._coeffs['x0'] + elif openmc_surface.type == 'x-plane': + x0 = openmc_surface.coeffs['x0'] opencg_surface = opencg.XPlane(surface_id, name, boundary, x0) - elif openmc_surface._type == 'y-plane': - y0 = openmc_surface._coeffs['y0'] + elif openmc_surface.type == 'y-plane': + y0 = openmc_surface.coeffs['y0'] opencg_surface = opencg.YPlane(surface_id, name, boundary, y0) - elif openmc_surface._type == 'z-plane': - z0 = openmc_surface._coeffs['z0'] + elif openmc_surface.type == 'z-plane': + z0 = openmc_surface.coeffs['z0'] opencg_surface = opencg.ZPlane(surface_id, name, boundary, z0) - elif openmc_surface._type == 'x-cylinder': - y0 = openmc_surface._coeffs['y0'] - z0 = openmc_surface._coeffs['z0'] - R = openmc_surface._coeffs['R'] + elif openmc_surface.type == 'x-cylinder': + y0 = openmc_surface.coeffs['y0'] + z0 = openmc_surface.coeffs['z0'] + R = openmc_surface.coeffs['R'] opencg_surface = opencg.XCylinder(surface_id, name, boundary, y0, z0, R) - elif openmc_surface._type == 'y-cylinder': - x0 = openmc_surface._coeffs['x0'] - z0 = openmc_surface._coeffs['z0'] - R = openmc_surface._coeffs['R'] + elif openmc_surface.type == 'y-cylinder': + x0 = openmc_surface.coeffs['x0'] + z0 = openmc_surface.coeffs['z0'] + R = openmc_surface.coeffs['R'] opencg_surface = opencg.YCylinder(surface_id, name, boundary, x0, z0, R) - elif openmc_surface._type == 'z-cylinder': - x0 = openmc_surface._coeffs['x0'] - y0 = openmc_surface._coeffs['y0'] - R = openmc_surface._coeffs['R'] + elif openmc_surface.type == 'z-cylinder': + x0 = openmc_surface.coeffs['x0'] + y0 = openmc_surface.coeffs['y0'] + R = openmc_surface.coeffs['R'] opencg_surface = opencg.ZCylinder(surface_id, name, boundary, x0, y0, R) @@ -282,52 +282,52 @@ def get_openmc_surface(opencg_surface): raise ValueError(msg) global openmc_surface - surface_id = opencg_surface._id + surface_id = opencg_surface.id # If this Surface was already created, use it if surface_id in OPENMC_SURFACES: return OPENMC_SURFACES[surface_id] # Create an OpenMC Surface to represent this OpenCG Surface - name = opencg_surface._name + name = opencg_surface.name # Correct for OpenMC's syntax for Surfaces dividing Cells - boundary = opencg_surface._boundary_type + boundary = opencg_surface.boundary_type if boundary == 'interface': boundary = 'transmission' - if opencg_surface._type == 'plane': + if opencg_surface.type == 'plane': A = opencg_surface._coeffs['A'] B = opencg_surface._coeffs['B'] C = opencg_surface._coeffs['C'] D = opencg_surface._coeffs['D'] openmc_surface = openmc.Plane(surface_id, boundary, A, B, C, D, name) - elif opencg_surface._type == 'x-plane': + elif opencg_surface.type == 'x-plane': x0 = opencg_surface._coeffs['x0'] openmc_surface = openmc.XPlane(surface_id, boundary, x0, name) - elif opencg_surface._type == 'y-plane': + elif opencg_surface.type == 'y-plane': y0 = opencg_surface._coeffs['y0'] openmc_surface = openmc.YPlane(surface_id, boundary, y0, name) - elif opencg_surface._type == 'z-plane': + elif opencg_surface.type == 'z-plane': z0 = opencg_surface._coeffs['z0'] openmc_surface = openmc.ZPlane(surface_id, boundary, z0, name) - elif opencg_surface._type == 'x-cylinder': + elif opencg_surface.type == 'x-cylinder': y0 = opencg_surface._coeffs['y0'] z0 = opencg_surface._coeffs['z0'] R = opencg_surface._coeffs['R'] openmc_surface = openmc.XCylinder(surface_id, boundary, y0, z0, R, name) - elif opencg_surface._type == 'y-cylinder': + elif opencg_surface.type == 'y-cylinder': x0 = opencg_surface._coeffs['x0'] z0 = opencg_surface._coeffs['z0'] R = opencg_surface._coeffs['R'] openmc_surface = openmc.YCylinder(surface_id, boundary, x0, z0, R, name) - elif opencg_surface._type == 'z-cylinder': + elif opencg_surface.type == 'z-cylinder': x0 = opencg_surface._coeffs['x0'] y0 = opencg_surface._coeffs['y0'] R = opencg_surface._coeffs['R'] @@ -336,7 +336,7 @@ def get_openmc_surface(opencg_surface): else: msg = 'Unable to create an OpenMC Surface from an OpenCG ' \ 'Surface of type "{0}" since it is not a compatible ' \ - 'Surface type in OpenMC'.format(opencg_surface._type) + 'Surface type in OpenMC'.format(opencg_surface.type) raise ValueError(msg) # Add the OpenMC Surface to the global collection of all OpenMC Surfaces @@ -373,17 +373,17 @@ def get_compatible_opencg_surfaces(opencg_surface): raise ValueError(msg) global OPENMC_SURFACES - surface_id = opencg_surface._id + surface_id = opencg_surface.id # If this Surface was already created, use it if surface_id in OPENMC_SURFACES: return OPENMC_SURFACES[surface_id] # Create an OpenMC Surface to represent this OpenCG Surface - name = opencg_surface._name - boundary = opencg_surface._boundary_type + name = opencg_surface.name + boundary = opencg_surface.boundary_type - if opencg_surface._type == 'x-squareprism': + if opencg_surface.type == 'x-squareprism': y0 = opencg_surface._coeffs['y0'] z0 = opencg_surface._coeffs['z0'] R = opencg_surface._coeffs['R'] @@ -395,7 +395,7 @@ def get_compatible_opencg_surfaces(opencg_surface): top = opencg.ZPlane(name=name, boundary=boundary, z0=z0+R) surfaces = [left, right, bottom, top] - elif opencg_surface._type == 'y-squareprism': + elif opencg_surface.type == 'y-squareprism': x0 = opencg_surface._coeffs['x0'] z0 = opencg_surface._coeffs['z0'] R = opencg_surface._coeffs['R'] @@ -407,7 +407,7 @@ def get_compatible_opencg_surfaces(opencg_surface): top = opencg.ZPlane(name=name, boundary=boundary, z0=z0+R) surfaces = [left, right, bottom, top] - elif opencg_surface._type == 'z-squareprism': + elif opencg_surface.type == 'z-squareprism': x0 = opencg_surface._coeffs['x0'] y0 = opencg_surface._coeffs['y0'] R = opencg_surface._coeffs['R'] @@ -422,7 +422,7 @@ def get_compatible_opencg_surfaces(opencg_surface): else: msg = 'Unable to create a compatible OpenMC Surface an OpenCG ' \ 'Surface of type "{0}" since it already a compatible ' \ - 'Surface type in OpenMC'.format(opencg_surface._type) + 'Surface type in OpenMC'.format(opencg_surface.type) raise ValueError(msg) # Add the OpenMC Surface(s) to the global collection of all OpenMC Surfaces @@ -455,32 +455,32 @@ def get_opencg_cell(openmc_cell): raise ValueError(msg) global OPENCG_CELLS - cell_id = openmc_cell._id + cell_id = openmc_cell.id # If this Cell was already created, use it if cell_id in OPENCG_CELLS: return OPENCG_CELLS[cell_id] # Create an OpenCG Cell to represent this OpenMC Cell - name = openmc_cell._name + name = openmc_cell.name opencg_cell = opencg.Cell(cell_id, name) - fill = openmc_cell._fill + fill = openmc_cell.fill - if (openmc_cell._type == 'normal'): + if (openmc_cell.type == 'normal'): opencg_cell.setFill(get_opencg_material(fill)) - elif (openmc_cell._type == 'fill'): + elif (openmc_cell.type == 'fill'): opencg_cell.setFill(get_opencg_universe(fill)) else: opencg_cell.setFill(get_opencg_lattice(fill)) - if openmc_cell._rotation is not None: - opencg_cell.setRotation(openmc_cell._rotation) + if openmc_cell.rotation is not None: + opencg_cell.setRotation(openmc_cell.rotation) - if openmc_cell._translation is not None: - opencg_cell.setTranslation(openmc_cell._translation) + if openmc_cell.translation is not None: + opencg_cell.setTranslation(openmc_cell.translation) - surfaces = openmc_cell._surfaces + surfaces = openmc_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] @@ -536,8 +536,8 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): compatible_cells = [] # SquarePrism Surfaces - if opencg_surface._type in ['x-squareprism', 'y-squareprism', - 'z-squareprism']: + if opencg_surface.type in ['x-squareprism', 'y-squareprism', + 'z-squareprism']: # Get the compatible Surfaces (XPlanes and YPlanes) compatible_surfaces = get_compatible_opencg_surfaces(opencg_surface) @@ -690,31 +690,31 @@ def get_openmc_cell(opencg_cell): raise ValueError(msg) global OPENMC_CELLS - cell_id = opencg_cell._id + cell_id = opencg_cell.id # If this Cell was already created, use it if cell_id in OPENMC_CELLS: return OPENMC_CELLS[cell_id] # Create an OpenCG Cell to represent this OpenMC Cell - name = opencg_cell._name + name = opencg_cell.name openmc_cell = openmc.Cell(cell_id, name) - fill = opencg_cell._fill + 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) - if opencg_cell._rotation: - rotation = np.asarray(opencg_cell._rotation, dtype=np.int) + if opencg_cell.rotation: + rotation = np.asarray(opencg_cell.rotation, dtype=np.int) openmc_cell.rotation = rotation - if opencg_cell._translation: - translation = np.asarray(opencg_cell._translation, dtype=np.float64) + if opencg_cell.translation: + translation = np.asarray(opencg_cell.translation, dtype=np.float64) openmc_cell.setTranslation(translation) surfaces = opencg_cell._surfaces @@ -754,18 +754,18 @@ def get_opencg_universe(openmc_universe): raise ValueError(msg) global OPENCG_UNIVERSES - universe_id = openmc_universe._id + universe_id = openmc_universe.id # If this Universe was already created, use it if universe_id in OPENCG_UNIVERSES: return OPENCG_UNIVERSES[universe_id] # Create an OpenCG Universe to represent this OpenMC Universe - name = openmc_universe._name + name = openmc_universe.name opencg_universe = opencg.Universe(universe_id, name) # Convert all OpenMC Cells in this Universe to OpenCG Cells - openmc_cells = openmc_universe._cells + openmc_cells = openmc_universe.cells for cell_id, openmc_cell in openmc_cells.items(): opencg_cell = get_opencg_cell(openmc_cell) @@ -801,7 +801,7 @@ def get_openmc_universe(opencg_universe): raise ValueError(msg) global OPENMC_UNIVERSES - universe_id = opencg_universe._id + universe_id = opencg_universe.id # If this Universe was already created, use it if universe_id in OPENMC_UNIVERSES: @@ -811,7 +811,7 @@ def get_openmc_universe(opencg_universe): make_opencg_cells_compatible(opencg_universe) # Create an OpenMC Universe to represent this OpenCSg Universe - name = opencg_universe._name + name = opencg_universe.name openmc_universe = openmc.Universe(universe_id, name) # Convert all OpenCG Cells in this Universe to OpenMC Cells @@ -851,7 +851,7 @@ def get_opencg_lattice(openmc_lattice): raise ValueError(msg) global OPENCG_LATTICES - lattice_id = openmc_lattice._id + lattice_id = openmc_lattice.id # If this Lattice was already created, use it if lattice_id in OPENCG_LATTICES: @@ -888,7 +888,7 @@ def get_opencg_lattice(openmc_lattice): for z in range(dimension[2]): for y in range(dimension[1]): for x in range(dimension[0]): - universe_id = universes[x][dimension[1]-y-1][z]._id + universe_id = universes[x][dimension[1]-y-1][z].id universe_array[z][y][x] = unique_universes[universe_id] opencg_lattice = opencg.Lattice(lattice_id, name) @@ -931,23 +931,23 @@ def get_openmc_lattice(opencg_lattice): raise ValueError(msg) global OPENMC_LATTICES - lattice_id = opencg_lattice._id + lattice_id = opencg_lattice.id # If this Lattice was already created, use it if lattice_id in OPENMC_LATTICES: return OPENMC_LATTICES[lattice_id] - dimension = opencg_lattice._dimension - width = opencg_lattice._width - offset = opencg_lattice._offset - universes = opencg_lattice._universes + dimension = opencg_lattice.dimension + width = opencg_lattice.width + offset = opencg_lattice.offset + universes = opencg_lattice.universes # Initialize an empty array for the OpenMC nested Universes in this Lattice universe_array = np.ndarray(tuple(np.array(dimension)), dtype=openmc.Universe) # Create OpenMC Universes for each unique nested Universe in this Lattice - unique_universes = opencg_lattice.getUniqueUniverses() + unique_universes = opencg_lattice.get_unique_universes() for universe_id, universe in unique_universes.items(): unique_universes[universe_id] = get_openmc_universe(universe) @@ -956,7 +956,7 @@ def get_openmc_lattice(opencg_lattice): for z in range(dimension[2]): for y in range(dimension[1]): for x in range(dimension[0]): - universe_id = universes[z][y][x]._id + universe_id = universes[z][y][x].id universe_array[x][y][z] = unique_universes[universe_id] # Reverse y-dimension in array to match ordering in OpenCG @@ -1011,7 +1011,7 @@ def get_opencg_geometry(openmc_geometry): OPENMC_LATTICES.clear() OPENCG_LATTICES.clear() - openmc_root_universe = openmc_geometry._root_universe + openmc_root_universe = openmc_geometry.root_universe opencg_root_universe = get_opencg_universe(openmc_root_universe) opencg_geometry = opencg.Geometry() @@ -1043,11 +1043,11 @@ def get_openmc_geometry(opencg_geometry): # Deep copy the goemetry since it may be modified to make all Surfaces # compatible with OpenMC's specifications - opencg_geometry.assignAutoIds() + opencg_geometry.assign_auto_ids() opencg_geometry = copy.deepcopy(opencg_geometry) # Update Cell bounding boxes in Geometry - opencg_geometry.updateBoundingBoxes() + opencg_geometry.update_bounding_boxes() # Clear dictionaries and auto-generated ID OPENMC_SURFACES.clear() @@ -1060,14 +1060,14 @@ def get_openmc_geometry(opencg_geometry): OPENCG_LATTICES.clear() # Make the entire geometry "compatible" before assigning auto IDs - universes = opencg_geometry.getAllUniverses() + universes = opencg_geometry.get_all_universes() for universe_id, universe in universes.items(): if not isinstance(universe, opencg.Lattice): make_opencg_cells_compatible(universe) - opencg_geometry.assignAutoIds() + opencg_geometry.assign_auto_ids() - opencg_root_universe = opencg_geometry._root_universe + opencg_root_universe = opencg_geometry.root_universe openmc_root_universe = get_openmc_universe(opencg_root_universe) openmc_geometry = openmc.Geometry() diff --git a/openmc/surface.py b/openmc/surface.py index 653754d30..164bbd09b 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -101,8 +101,11 @@ class Surface(object): @name.setter def name(self, name): - check_type('surface name', name, basestring) - self._name = name + if name is not None: + check_type('surface name', name, basestring) + self._name = name + else: + self._name = None @boundary_type.setter def boundary_type(self, boundary_type): diff --git a/openmc/tallies.py b/openmc/tallies.py index 20a6af3f2..a1206f012 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -373,8 +373,11 @@ class Tally(object): @name.setter def name(self, name): - check_type('tally name', name, basestring) - self._name = name + if name is not None: + check_type('tally name', name, basestring) + self._name = name + else: + self._name = None def add_filter(self, filter): """Add a filter to the tally diff --git a/openmc/universe.py b/openmc/universe.py index bab10f5df..951619280 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -117,8 +117,11 @@ class Cell(object): @name.setter def name(self, name): - cv.check_type('cell name', name, basestring) - self._name = name + if name is not None: + cv.check_type('cell name', name, basestring) + self._name = name + else: + self._name = None @fill.setter def fill(self, fill): @@ -438,8 +441,11 @@ class Universe(object): @name.setter def name(self, name): - cv.check_type('universe name', name, basestring) - self._name = name + if name is not None: + cv.check_type('universe name', name, basestring) + self._name = name + else: + self._name = None def add_cell(self, cell): """Add a cell to the universe. @@ -677,8 +683,11 @@ class Lattice(object): @name.setter def name(self, name): - cv.check_type('lattice name', name, basestring) - self._name = name + if name is not None: + cv.check_type('lattice name', name, basestring) + self._name = name + else: + self._name = None @outer.setter def outer(self, outer): From a491dde24853022514631ced51c1db053679319b Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 2 Oct 2015 17:01:52 -0400 Subject: [PATCH 64/91] Updated OpenCG compatibility module to use OpenCG property getters for surfaces, cells and coeffs --- openmc/opencg_compatible.py | 58 ++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 682ef0eca..b41a621b4 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -297,40 +297,40 @@ def get_openmc_surface(opencg_surface): boundary = 'transmission' if opencg_surface.type == 'plane': - A = opencg_surface._coeffs['A'] - B = opencg_surface._coeffs['B'] - C = opencg_surface._coeffs['C'] - D = opencg_surface._coeffs['D'] + A = opencg_surface.coeffs['A'] + B = opencg_surface.coeffs['B'] + C = opencg_surface.coeffs['C'] + D = opencg_surface.coeffs['D'] openmc_surface = openmc.Plane(surface_id, boundary, A, B, C, D, name) elif opencg_surface.type == 'x-plane': - x0 = opencg_surface._coeffs['x0'] + x0 = opencg_surface.coeffs['x0'] openmc_surface = openmc.XPlane(surface_id, boundary, x0, name) elif opencg_surface.type == 'y-plane': - y0 = opencg_surface._coeffs['y0'] + y0 = opencg_surface.coeffs['y0'] openmc_surface = openmc.YPlane(surface_id, boundary, y0, name) elif opencg_surface.type == 'z-plane': - z0 = opencg_surface._coeffs['z0'] + z0 = opencg_surface.coeffs['z0'] openmc_surface = openmc.ZPlane(surface_id, boundary, z0, name) elif opencg_surface.type == 'x-cylinder': - y0 = opencg_surface._coeffs['y0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + y0 = opencg_surface.coeffs['y0'] + z0 = opencg_surface.coeffs['z0'] + R = opencg_surface.coeffs['R'] openmc_surface = openmc.XCylinder(surface_id, boundary, y0, z0, R, name) elif opencg_surface.type == 'y-cylinder': - x0 = opencg_surface._coeffs['x0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + x0 = opencg_surface.coeffs['x0'] + z0 = opencg_surface.coeffs['z0'] + R = opencg_surface.coeffs['R'] openmc_surface = openmc.YCylinder(surface_id, boundary, x0, z0, R, name) elif opencg_surface.type == 'z-cylinder': - x0 = opencg_surface._coeffs['x0'] - y0 = opencg_surface._coeffs['y0'] - R = opencg_surface._coeffs['R'] + x0 = opencg_surface.coeffs['x0'] + y0 = opencg_surface.coeffs['y0'] + R = opencg_surface.coeffs['R'] openmc_surface = openmc.ZCylinder(surface_id, boundary, x0, y0, R, name) else: @@ -384,9 +384,9 @@ def get_compatible_opencg_surfaces(opencg_surface): boundary = opencg_surface.boundary_type if opencg_surface.type == 'x-squareprism': - y0 = opencg_surface._coeffs['y0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + y0 = opencg_surface.coeffs['y0'] + z0 = opencg_surface.coeffs['z0'] + R = opencg_surface.coeffs['R'] # Create a list of the four planes we need left = opencg.YPlane(name=name, boundary=boundary, y0=y0-R) @@ -396,9 +396,9 @@ def get_compatible_opencg_surfaces(opencg_surface): surfaces = [left, right, bottom, top] elif opencg_surface.type == 'y-squareprism': - x0 = opencg_surface._coeffs['x0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + x0 = opencg_surface.coeffs['x0'] + z0 = opencg_surface.coeffs['z0'] + R = opencg_surface.coeffs['R'] # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) @@ -408,9 +408,9 @@ def get_compatible_opencg_surfaces(opencg_surface): surfaces = [left, right, bottom, top] elif opencg_surface.type == 'z-squareprism': - x0 = opencg_surface._coeffs['x0'] - y0 = opencg_surface._coeffs['y0'] - R = opencg_surface._coeffs['R'] + x0 = opencg_surface.coeffs['x0'] + y0 = opencg_surface.coeffs['y0'] + R = opencg_surface.coeffs['R'] # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) @@ -631,12 +631,12 @@ def make_opencg_cells_compatible(opencg_universe): raise ValueError(msg) # Check all OpenCG Cells in this Universe for compatibility with OpenMC - opencg_cells = opencg_universe._cells + opencg_cells = opencg_universe.cells for cell_id, opencg_cell in opencg_cells.items(): # Check each of the OpenCG Surfaces for OpenMC compatibility - surfaces = opencg_cell._surfaces + surfaces = opencg_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] @@ -717,7 +717,7 @@ def get_openmc_cell(opencg_cell): translation = np.asarray(opencg_cell.translation, dtype=np.float64) openmc_cell.setTranslation(translation) - surfaces = opencg_cell._surfaces + surfaces = opencg_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] @@ -815,7 +815,7 @@ def get_openmc_universe(opencg_universe): openmc_universe = openmc.Universe(universe_id, name) # Convert all OpenCG Cells in this Universe to OpenMC Cells - opencg_cells = opencg_universe._cells + opencg_cells = opencg_universe.cells for cell_id, opencg_cell in opencg_cells.items(): openmc_cell = get_openmc_cell(opencg_cell) From e0c2aace2e73367536fa03e153b67a2d038cd2b3 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 2 Oct 2015 17:35:58 -0400 Subject: [PATCH 65/91] Removed debug print statement from OpenCG compatibility module --- openmc/opencg_compatible.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 9448ff29a..000801ca2 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -467,8 +467,6 @@ def get_opencg_cell(openmc_cell): fill = openmc_cell.fill - print(openmc_cell.fill_type) - if (openmc_cell.fill_type == 'material'): opencg_cell.fill = get_opencg_material(fill) elif (openmc_cell.fill_type == 'universe'): @@ -717,7 +715,7 @@ def get_openmc_cell(opencg_cell): if opencg_cell.translation: translation = np.asarray(opencg_cell.translation, dtype=np.float64) - openmc_cell.setTranslation(translation) + openmc_cell.translation = translation surfaces = opencg_cell.surfaces @@ -894,14 +892,14 @@ def get_opencg_lattice(openmc_lattice): universe_array[z][y][x] = unique_universes[universe_id] opencg_lattice = opencg.Lattice(lattice_id, name) - opencg_lattice.setDimension(dimension) - opencg_lattice.setWidth(pitch) - opencg_lattice.setUniverses(universe_array) + opencg_lattice.dimension = dimension + opencg_lattice.width = pitch + opencg_lattice.universes = universe_array offset = np.array(lower_left, dtype=np.float64) - \ ((np.array(pitch, dtype=np.float64) * np.array(dimension, dtype=np.float64))) / -2.0 - opencg_lattice.setOffset(offset) + opencg_lattice.offset = offset # Add the OpenMC Lattice to the global collection of all OpenMC Lattices OPENMC_LATTICES[lattice_id] = openmc_lattice From 147f2a162e7369f5559740f397a48a225e2cdf2a Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 2 Oct 2015 17:43:33 -0400 Subject: [PATCH 66/91] Updates to OpenCG compatibility module to reflect move to PEP8 compliance --- openmc/opencg_compatible.py | 42 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index b41a621b4..000801ca2 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -467,25 +467,25 @@ def get_opencg_cell(openmc_cell): fill = openmc_cell.fill - if (openmc_cell.type == 'normal'): - opencg_cell.setFill(get_opencg_material(fill)) - elif (openmc_cell.type == 'fill'): - opencg_cell.setFill(get_opencg_universe(fill)) + if (openmc_cell.fill_type == 'material'): + opencg_cell.fill = get_opencg_material(fill) + elif (openmc_cell.fill_type == 'universe'): + opencg_cell.fill = get_opencg_universe(fill) else: - opencg_cell.setFill(get_opencg_lattice(fill)) + opencg_cell.fill = get_opencg_lattice(fill) if openmc_cell.rotation is not None: - opencg_cell.setRotation(openmc_cell.rotation) + opencg_cell.rotation = openmc_cell.rotation if openmc_cell.translation is not None: - opencg_cell.setTranslation(openmc_cell.translation) + opencg_cell.translation = openmc_cell.translation surfaces = openmc_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] halfspace = surfaces[surface_id][1] - opencg_cell.addSurface(get_opencg_surface(surface), halfspace) + opencg_cell.add_surface(get_opencg_surface(surface), halfspace) # Add the OpenMC Cell to the global collection of all OpenMC Cells OPENMC_CELLS[cell_id] = openmc_cell @@ -546,10 +546,10 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): # If Cell is inside SquarePrism, add "inside" of Surface halfspaces if halfspace == -1: - opencg_cell.addSurface(compatible_surfaces[0], +1) - opencg_cell.addSurface(compatible_surfaces[1], -1) - opencg_cell.addSurface(compatible_surfaces[2], +1) - opencg_cell.addSurface(compatible_surfaces[3], -1) + opencg_cell.add_surface(compatible_surfaces[0], +1) + opencg_cell.add_surface(compatible_surfaces[1], -1) + opencg_cell.add_surface(compatible_surfaces[2], +1) + opencg_cell.add_surface(compatible_surfaces[3], -1) compatible_cells.append(opencg_cell) # If Cell is outside SquarePrism, add "outside" of Surface halfspaces @@ -659,7 +659,7 @@ def make_opencg_cells_compatible(opencg_universe): opencg_universe.removeCell(opencg_cell) # Add the compatible OpenCG Cells to the Universe - opencg_universe.addCells(cells) + opencg_universe.add_cells(cells) # Make recursive call to look at the updated state of the # OpenCG Universe and return @@ -715,7 +715,7 @@ def get_openmc_cell(opencg_cell): if opencg_cell.translation: translation = np.asarray(opencg_cell.translation, dtype=np.float64) - openmc_cell.setTranslation(translation) + openmc_cell.translation = translation surfaces = opencg_cell.surfaces @@ -769,7 +769,7 @@ def get_opencg_universe(openmc_universe): for cell_id, openmc_cell in openmc_cells.items(): opencg_cell = get_opencg_cell(openmc_cell) - opencg_universe.addCell(opencg_cell) + opencg_universe.add_cell(opencg_cell) # Add the OpenMC Universe to the global collection of all OpenMC Universes OPENMC_UNIVERSES[universe_id] = openmc_universe @@ -892,14 +892,14 @@ def get_opencg_lattice(openmc_lattice): universe_array[z][y][x] = unique_universes[universe_id] opencg_lattice = opencg.Lattice(lattice_id, name) - opencg_lattice.setDimension(dimension) - opencg_lattice.setWidth(pitch) - opencg_lattice.setUniverses(universe_array) + opencg_lattice.dimension = dimension + opencg_lattice.width = pitch + opencg_lattice.universes = universe_array offset = np.array(lower_left, dtype=np.float64) - \ ((np.array(pitch, dtype=np.float64) * np.array(dimension, dtype=np.float64))) / -2.0 - opencg_lattice.setOffset(offset) + opencg_lattice.offset = offset # Add the OpenMC Lattice to the global collection of all OpenMC Lattices OPENMC_LATTICES[lattice_id] = openmc_lattice @@ -1015,8 +1015,8 @@ def get_opencg_geometry(openmc_geometry): opencg_root_universe = get_opencg_universe(openmc_root_universe) opencg_geometry = opencg.Geometry() - opencg_geometry.setRootUniverse(opencg_root_universe) - opencg_geometry.initializeCellOffsets() + opencg_geometry.root_universe = opencg_root_universe + opencg_geometry.initialize_cell_offsets() return opencg_geometry From 3e0c960648053eb8ab4ff202ba4a6bf59ca46306 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 2 Oct 2015 18:12:35 -0400 Subject: [PATCH 67/91] Fixed multi-group chi calculation --- openmc/mgxs/mgxs.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index bc9167dfd..fd696ff72 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1738,9 +1738,11 @@ class Chi(MultiGroupXS): nu_fission_in.remove_filter(energy_filter) # Compute chi + self._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) - self._xs_tally = nu_fission_out / nu_fission_in super(Chi, self).compute_xs() def get_xs(self, groups='all', subdomains='all', nuclides='all', From 27548d6232b988eb0780000c5a2562a3707ca8c6 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 2 Oct 2015 22:25:07 -0400 Subject: [PATCH 68/91] Allow mpif90 in run_tests.py --- tests/run_tests.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index d3b79aa3b..70ea4c3dc 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -126,7 +126,12 @@ class Test(object): # Check for MPI if self.mpi: - self.fc = os.path.join(MPI_DIR, 'bin', 'mpifort') + if os.path.exists(os.path.join(MPI_DIR, 'bin', 'mpifort')): + self.fc = os.path.join(MPI_DIR, 'bin', 'mpifort') + elif os.path.exists(os.path.join(MPI_DIR, 'bin', 'mpif90')): + self.fc = os.path.join(MPI_DIR, 'bin', 'mpif90') + else: + raise RuntimeError('Cannot find an MPI Fortran compiler') else: self.fc = FC From 67971b5c6025a0ea02fac567d91cbd6441ad5b5e Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 00:04:01 -0400 Subject: [PATCH 69/91] Cleaned up docstring comments in filter.py and cross.py --- .../examples/pandas-dataframes.ipynb | 753 ++++++++---------- .../pythonapi/examples/post-processing.ipynb | 82 +- .../pythonapi/examples/tally-arithmetic.ipynb | 297 +++---- openmc/cross.py | 13 +- openmc/filter.py | 20 +- openmc/mesh.py | 2 +- openmc/mgxs/groups.py | 42 +- openmc/statepoint.py | 2 +- 8 files changed, 551 insertions(+), 660 deletions(-) diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index cb63e2ac3..34bb533cd 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -358,7 +358,18 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Run openmc in plotting mode\n", "executor = openmc.Executor()\n", @@ -374,7 +385,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB98JFQMbBgd4EXAAAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDktMjFUMTA6MjU6\nMjYrMDc6MDAKj62JAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTA5LTIxVDEwOjI1OjI2KzA3OjAw\ne9IVNQAAAABJRU5ErkJggg==\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDAwOjAx\nOjMxLTA0OjAw4140mAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QwMDowMTozMS0wNDow\nMJIDjCQAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -563,8 +574,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", - " Git SHA1: b167d70c877c516deca785801b9fa6f53fb0985b\n", - " Date/Time: 2015-09-21 10:27:06\n", + " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", + " Date/Time: 2015-10-03 00:01:31\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -631,20 +643,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.4100E-01 seconds\n", - " Reading cross sections = 1.7900E-01 seconds\n", - " Total time in simulation = 1.2656E+01 seconds\n", - " Time in transport only = 1.2642E+01 seconds\n", - " Time in inactive batches = 2.0300E+00 seconds\n", - " Time in active batches = 1.0626E+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", + " Total time for initialization = 5.9000E-01 seconds\n", + " Reading cross sections = 1.2900E-01 seconds\n", + " Total time in simulation = 1.4684E+01 seconds\n", + " Time in transport only = 1.4653E+01 seconds\n", + " Time in inactive batches = 1.7680E+00 seconds\n", + " Time in active batches = 1.2916E+01 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", + " Sampling source sites = 1.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.3110E+01 seconds\n", - " Calculation Rate (inactive) = 6157.64 neutrons/second\n", - " Calculation Rate (active) = 3529.08 neutrons/second\n", + " Total time elapsed = 1.5286E+01 seconds\n", + " Calculation Rate (inactive) = 7070.14 neutrons/second\n", + " Calculation Rate (active) = 2903.38 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -769,13 +781,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.15044911]]\n", + "[[[ 0.1127471 ]]\n", "\n", - " [[ 0.09149973]]\n", + " [[ 0.06599162]]\n", "\n", - " [[ 0.27611475]]\n", + " [[ 0.25310075]]\n", "\n", - " [[ 0.12476673]]]\n" + " [[ 0.10150973]]]\n" ] } ], @@ -819,16 +831,6 @@ " \n", " \n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -836,229 +838,228 @@ " 1\n", " 1\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " fission\n", - " 0.000236\n", - " 0.000035\n", + " 0.000224\n", + " 0.000025\n", " \n", " \n", " 1\n", " 1\n", " 1\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " nu-fission\n", - " 0.000574\n", - " 0.000086\n", + " 0.000546\n", + " 0.000062\n", " \n", " \n", " 2\n", " 1\n", " 1\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " fission\n", - " 0.000072\n", - " 0.000006\n", + " 0.000071\n", + " 0.000004\n", " \n", " \n", " 3\n", " 1\n", " 1\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " nu-fission\n", - " 0.000190\n", - " 0.000014\n", + " 0.000187\n", + " 0.000010\n", " \n", " \n", " 4\n", " 1\n", " 2\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " fission\n", - " 0.000451\n", - " 0.000058\n", + " 0.000392\n", + " 0.000045\n", " \n", " \n", " 5\n", " 1\n", " 2\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " nu-fission\n", - " 0.001100\n", - " 0.000141\n", + " 0.000955\n", + " 0.000110\n", " \n", " \n", " 6\n", " 1\n", " 2\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " fission\n", - " 0.000095\n", - " 0.000006\n", + " 0.000096\n", + " 0.000005\n", " \n", " \n", " 7\n", " 1\n", " 2\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " nu-fission\n", - " 0.000250\n", - " 0.000016\n", + " 0.000252\n", + " 0.000014\n", " \n", " \n", " 8\n", " 1\n", " 3\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " fission\n", - " 0.000575\n", - " 0.000080\n", + " 0.000551\n", + " 0.000053\n", " \n", " \n", " 9\n", " 1\n", " 3\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " nu-fission\n", - " 0.001401\n", - " 0.000194\n", + " 0.001343\n", + " 0.000130\n", " \n", " \n", " 10\n", " 1\n", " 3\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " fission\n", - " 0.000134\n", - " 0.000011\n", + " 0.000131\n", + " 0.000008\n", " \n", " \n", " 11\n", " 1\n", " 3\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " nu-fission\n", - " 0.000353\n", - " 0.000028\n", + " 0.000343\n", + " 0.000019\n", " \n", " \n", " 12\n", " 1\n", " 4\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " fission\n", - " 0.000655\n", - " 0.000071\n", + " 0.000688\n", + " 0.000063\n", " \n", " \n", " 13\n", " 1\n", " 4\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " nu-fission\n", - " 0.001596\n", - " 0.000174\n", + " 0.001676\n", + " 0.000153\n", " \n", " \n", " 14\n", " 1\n", " 4\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " fission\n", - " 0.000149\n", - " 0.000009\n", + " 0.000151\n", + " 0.000007\n", " \n", " \n", " 15\n", " 1\n", " 4\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " nu-fission\n", - " 0.000391\n", - " 0.000023\n", + " 0.000395\n", + " 0.000019\n", " \n", " \n", " 16\n", " 1\n", " 5\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " fission\n", - " 0.000781\n", - " 0.000078\n", + " 0.000785\n", + " 0.000065\n", " \n", " \n", " 17\n", " 1\n", " 5\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " nu-fission\n", - " 0.001903\n", - " 0.000191\n", + " 0.001914\n", + " 0.000158\n", " \n", " \n", " 18\n", " 1\n", " 5\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " fission\n", - " 0.000185\n", - " 0.000009\n", + " 0.000187\n", + " 0.000008\n", " \n", " \n", " 19\n", " 1\n", " 5\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " nu-fission\n", - " 0.000484\n", - " 0.000024\n", + " 0.000487\n", + " 0.000019\n", " \n", " \n", "\n", "" ], "text/plain": [ - " mesh 1 energy [MeV] score mean std. dev.\n", - " x y z \n", - "bin \n", - "0 1 1 1 0.0e+00 - 6.3e-07 fission 0.000236 0.000035\n", - "1 1 1 1 0.0e+00 - 6.3e-07 nu-fission 0.000574 0.000086\n", - "2 1 1 1 6.3e-07 - 2.0e+01 fission 0.000072 0.000006\n", - "3 1 1 1 6.3e-07 - 2.0e+01 nu-fission 0.000190 0.000014\n", - "4 1 2 1 0.0e+00 - 6.3e-07 fission 0.000451 0.000058\n", - "5 1 2 1 0.0e+00 - 6.3e-07 nu-fission 0.001100 0.000141\n", - "6 1 2 1 6.3e-07 - 2.0e+01 fission 0.000095 0.000006\n", - "7 1 2 1 6.3e-07 - 2.0e+01 nu-fission 0.000250 0.000016\n", - "8 1 3 1 0.0e+00 - 6.3e-07 fission 0.000575 0.000080\n", - "9 1 3 1 0.0e+00 - 6.3e-07 nu-fission 0.001401 0.000194\n", - "10 1 3 1 6.3e-07 - 2.0e+01 fission 0.000134 0.000011\n", - "11 1 3 1 6.3e-07 - 2.0e+01 nu-fission 0.000353 0.000028\n", - "12 1 4 1 0.0e+00 - 6.3e-07 fission 0.000655 0.000071\n", - "13 1 4 1 0.0e+00 - 6.3e-07 nu-fission 0.001596 0.000174\n", - "14 1 4 1 6.3e-07 - 2.0e+01 fission 0.000149 0.000009\n", - "15 1 4 1 6.3e-07 - 2.0e+01 nu-fission 0.000391 0.000023\n", - "16 1 5 1 0.0e+00 - 6.3e-07 fission 0.000781 0.000078\n", - "17 1 5 1 0.0e+00 - 6.3e-07 nu-fission 0.001903 0.000191\n", - "18 1 5 1 6.3e-07 - 2.0e+01 fission 0.000185 0.000009\n", - "19 1 5 1 6.3e-07 - 2.0e+01 nu-fission 0.000484 0.000024" + " mesh 1 energy [MeV] score mean std. dev.\n", + " x y z \n", + "0 1 1 1 (0.0e+00 - 6.3e-07) fission 0.000224 0.000025\n", + "1 1 1 1 (0.0e+00 - 6.3e-07) nu-fission 0.000546 0.000062\n", + "2 1 1 1 (6.3e-07 - 2.0e+01) fission 0.000071 0.000004\n", + "3 1 1 1 (6.3e-07 - 2.0e+01) nu-fission 0.000187 0.000010\n", + "4 1 2 1 (0.0e+00 - 6.3e-07) fission 0.000392 0.000045\n", + "5 1 2 1 (0.0e+00 - 6.3e-07) nu-fission 0.000955 0.000110\n", + "6 1 2 1 (6.3e-07 - 2.0e+01) fission 0.000096 0.000005\n", + "7 1 2 1 (6.3e-07 - 2.0e+01) nu-fission 0.000252 0.000014\n", + "8 1 3 1 (0.0e+00 - 6.3e-07) fission 0.000551 0.000053\n", + "9 1 3 1 (0.0e+00 - 6.3e-07) nu-fission 0.001343 0.000130\n", + "10 1 3 1 (6.3e-07 - 2.0e+01) fission 0.000131 0.000008\n", + "11 1 3 1 (6.3e-07 - 2.0e+01) nu-fission 0.000343 0.000019\n", + "12 1 4 1 (0.0e+00 - 6.3e-07) fission 0.000688 0.000063\n", + "13 1 4 1 (0.0e+00 - 6.3e-07) nu-fission 0.001676 0.000153\n", + "14 1 4 1 (6.3e-07 - 2.0e+01) fission 0.000151 0.000007\n", + "15 1 4 1 (6.3e-07 - 2.0e+01) nu-fission 0.000395 0.000019\n", + "16 1 5 1 (0.0e+00 - 6.3e-07) fission 0.000785 0.000065\n", + "17 1 5 1 (0.0e+00 - 6.3e-07) nu-fission 0.001914 0.000158\n", + "18 1 5 1 (6.3e-07 - 2.0e+01) fission 0.000187 0.000008\n", + "19 1 5 1 (6.3e-07 - 2.0e+01) nu-fission 0.000487 0.000019" ] }, "execution_count": 25, @@ -1083,9 +1084,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\nBPCvjMC6bD6xSh4AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1108,7 +1109,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1117,9 +1118,9 @@ }, { "data": { - "image/png": "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\nEvx/rHWCrxSlro8AAAAASUVORK5CYII=\n", + "image/png": "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\nefX/AdmeWI23zkQnAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1129,7 +1130,7 @@ "source": [ "# Extract thermal nu-fission rates from pandas\n", "fiss = df[df['score'] == 'nu-fission']\n", - "fiss = fiss[fiss['energy [MeV]'] == '0.0e+00 - 6.3e-07']\n", + "fiss = fiss[fiss['energy [MeV]'] == '(0.0e+00 - 6.3e-07)']\n", "\n", "# Extract mean and reshape as 2D NumPy arrays\n", "mean = fiss['mean'].reshape((17,17))\n", @@ -1200,14 +1201,6 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -1215,170 +1208,169 @@ " 10000\n", " U-235\n", " scatter-Y0,0\n", - " 0.036453\n", - " 0.001219\n", + " 0.038330\n", + " 0.001119\n", " \n", " \n", " 1\n", " 10000\n", " U-235\n", " scatter-Y1,-1\n", - " 0.000302\n", - " 0.000314\n", + " 0.000008\n", + " 0.000341\n", " \n", " \n", " 2\n", " 10000\n", " U-235\n", " scatter-Y1,0\n", - " -0.000006\n", - " 0.000347\n", + " -0.000342\n", + " 0.000342\n", " \n", " \n", " 3\n", " 10000\n", " U-235\n", " scatter-Y1,1\n", - " 0.000244\n", - " 0.000286\n", + " 0.000201\n", + " 0.000262\n", " \n", " \n", " 4\n", " 10000\n", " U-235\n", " scatter-Y2,-2\n", - " 0.000184\n", - " 0.000211\n", + " 0.000136\n", + " 0.000152\n", " \n", " \n", " 5\n", " 10000\n", " U-235\n", " scatter-Y2,-1\n", - " 0.000067\n", - " 0.000173\n", + " 0.000042\n", + " 0.000131\n", " \n", " \n", " 6\n", " 10000\n", " U-235\n", " scatter-Y2,0\n", - " 0.000353\n", - " 0.000210\n", + " 0.000303\n", + " 0.000185\n", " \n", " \n", " 7\n", " 10000\n", " U-235\n", " scatter-Y2,1\n", - " -0.000266\n", - " 0.000263\n", + " -0.000407\n", + " 0.000184\n", " \n", " \n", " 8\n", " 10000\n", " U-235\n", " scatter-Y2,2\n", - " -0.000246\n", - " 0.000153\n", + " -0.000145\n", + " 0.000120\n", " \n", " \n", " 9\n", " 10000\n", " U-238\n", " scatter-Y0,0\n", - " 2.315893\n", - " 0.008243\n", + " 2.319322\n", + " 0.006166\n", " \n", " \n", " 10\n", " 10000\n", " U-238\n", " scatter-Y1,-1\n", - " -0.022028\n", - " 0.002316\n", + " -0.023638\n", + " 0.001940\n", " \n", " \n", " 11\n", " 10000\n", " U-238\n", " scatter-Y1,0\n", - " -0.003426\n", - " 0.002651\n", + " -0.003463\n", + " 0.001892\n", " \n", " \n", " 12\n", " 10000\n", " U-238\n", " scatter-Y1,1\n", - " 0.026620\n", - " 0.002084\n", + " 0.025099\n", + " 0.002270\n", " \n", " \n", " 13\n", " 10000\n", " U-238\n", " scatter-Y2,-2\n", - " -0.001295\n", - " 0.001627\n", + " -0.000617\n", + " 0.001197\n", " \n", " \n", " 14\n", " 10000\n", " U-238\n", " scatter-Y2,-1\n", - " 0.000759\n", - " 0.001426\n", + " 0.002549\n", + " 0.001187\n", " \n", " \n", " 15\n", " 10000\n", " U-238\n", " scatter-Y2,0\n", - " 0.005513\n", - " 0.001983\n", + " 0.007121\n", + " 0.001646\n", " \n", " \n", " 16\n", " 10000\n", " U-238\n", " scatter-Y2,1\n", - " 0.000431\n", - " 0.001862\n", + " -0.000058\n", + " 0.001323\n", " \n", " \n", " 17\n", " 10000\n", " U-238\n", " scatter-Y2,2\n", - " -0.001962\n", - " 0.001222\n", + " -0.002235\n", + " 0.000867\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell nuclide score mean std. dev.\n", - "bin \n", - "0 10000 U-235 scatter-Y0,0 0.036453 0.001219\n", - "1 10000 U-235 scatter-Y1,-1 0.000302 0.000314\n", - "2 10000 U-235 scatter-Y1,0 -0.000006 0.000347\n", - "3 10000 U-235 scatter-Y1,1 0.000244 0.000286\n", - "4 10000 U-235 scatter-Y2,-2 0.000184 0.000211\n", - "5 10000 U-235 scatter-Y2,-1 0.000067 0.000173\n", - "6 10000 U-235 scatter-Y2,0 0.000353 0.000210\n", - "7 10000 U-235 scatter-Y2,1 -0.000266 0.000263\n", - "8 10000 U-235 scatter-Y2,2 -0.000246 0.000153\n", - "9 10000 U-238 scatter-Y0,0 2.315893 0.008243\n", - "10 10000 U-238 scatter-Y1,-1 -0.022028 0.002316\n", - "11 10000 U-238 scatter-Y1,0 -0.003426 0.002651\n", - "12 10000 U-238 scatter-Y1,1 0.026620 0.002084\n", - "13 10000 U-238 scatter-Y2,-2 -0.001295 0.001627\n", - "14 10000 U-238 scatter-Y2,-1 0.000759 0.001426\n", - "15 10000 U-238 scatter-Y2,0 0.005513 0.001983\n", - "16 10000 U-238 scatter-Y2,1 0.000431 0.001862\n", - "17 10000 U-238 scatter-Y2,2 -0.001962 0.001222" + " cell nuclide score mean std. dev.\n", + "0 10000 U-235 scatter-Y0,0 0.038330 0.001119\n", + "1 10000 U-235 scatter-Y1,-1 0.000008 0.000341\n", + "2 10000 U-235 scatter-Y1,0 -0.000342 0.000342\n", + "3 10000 U-235 scatter-Y1,1 0.000201 0.000262\n", + "4 10000 U-235 scatter-Y2,-2 0.000136 0.000152\n", + "5 10000 U-235 scatter-Y2,-1 0.000042 0.000131\n", + "6 10000 U-235 scatter-Y2,0 0.000303 0.000185\n", + "7 10000 U-235 scatter-Y2,1 -0.000407 0.000184\n", + "8 10000 U-235 scatter-Y2,2 -0.000145 0.000120\n", + "9 10000 U-238 scatter-Y0,0 2.319322 0.006166\n", + "10 10000 U-238 scatter-Y1,-1 -0.023638 0.001940\n", + "11 10000 U-238 scatter-Y1,0 -0.003463 0.001892\n", + "12 10000 U-238 scatter-Y1,1 0.025099 0.002270\n", + "13 10000 U-238 scatter-Y2,-2 -0.000617 0.001197\n", + "14 10000 U-238 scatter-Y2,-1 0.002549 0.001187\n", + "15 10000 U-238 scatter-Y2,0 0.007121 0.001646\n", + "16 10000 U-238 scatter-Y2,1 -0.000058 0.001323\n", + "17 10000 U-238 scatter-Y2,2 -0.002235 0.000867" ] }, "execution_count": 29, @@ -1412,8 +1404,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00122163 0.00824348]\n", - " [ 0.00015287 0.00121882]]]\n" + "[[[ 0.00086668 0.0061658 ]\n", + " [ 0.00011981 0.00111862]]]\n" ] } ], @@ -1481,25 +1473,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.0400168 ]]\n", - "\n", - " [[ 0.05233031]]\n", - "\n", - " [[ 0.03819276]]\n", - "\n", - " [[ 0.02900783]]\n", - "\n", - " [[ 0.03176394]]\n", - "\n", - " [[ 0.03046477]]\n", - "\n", - " [[ 0.03864163]]\n", - "\n", - " [[ 0.02455132]]\n", - "\n", - " [[ 0.02282716]]\n", - "\n", - " [[ 0.02162945]]]\n" + "[[[ 0.03658762]]]\n" ] } ], @@ -1507,7 +1481,7 @@ "# Get the relative error for the scattering reaction rates in\n", "# the first 30 distribcell instances \n", "data = tally.get_values(scores=['scatter'], filters=['distribcell'],\n", - " filter_bins=[range(10)], value='rel_err')\n", + " filter_bins=[(i,) for i in range(10)], value='rel_err')\n", "print(data)" ] }, @@ -1538,154 +1512,147 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 558\n", " 279\n", " absorption\n", - " 0.000085\n", + " 0.000081\n", " 0.000008\n", " \n", " \n", " 559\n", " 279\n", " scatter\n", - " 0.013429\n", - " 0.000449\n", + " 0.013109\n", + " 0.000358\n", " \n", " \n", " 560\n", " 280\n", " absorption\n", - " 0.000095\n", - " 0.000014\n", + " 0.000088\n", + " 0.000010\n", " \n", " \n", " 561\n", " 280\n", " scatter\n", - " 0.014770\n", - " 0.000783\n", + " 0.014395\n", + " 0.000586\n", " \n", " \n", " 562\n", " 281\n", " absorption\n", - " 0.000107\n", - " 0.000013\n", + " 0.000097\n", + " 0.000010\n", " \n", " \n", " 563\n", " 281\n", " scatter\n", - " 0.015044\n", - " 0.000605\n", + " 0.014637\n", + " 0.000427\n", " \n", " \n", " 564\n", " 282\n", " absorption\n", - " 0.000110\n", - " 0.000010\n", + " 0.000107\n", + " 0.000009\n", " \n", " \n", " 565\n", " 282\n", " scatter\n", - " 0.016090\n", - " 0.000795\n", + " 0.015683\n", + " 0.000552\n", " \n", " \n", " 566\n", " 283\n", " absorption\n", - " 0.000121\n", - " 0.000012\n", + " 0.000110\n", + " 0.000009\n", " \n", " \n", " 567\n", " 283\n", " scatter\n", - " 0.017010\n", - " 0.000793\n", + " 0.016293\n", + " 0.000627\n", " \n", " \n", " 568\n", " 284\n", " absorption\n", - " 0.000110\n", + " 0.000111\n", " 0.000007\n", " \n", " \n", " 569\n", " 284\n", " scatter\n", - " 0.017010\n", - " 0.000430\n", + " 0.017032\n", + " 0.000445\n", " \n", " \n", " 570\n", " 285\n", " absorption\n", " 0.000112\n", - " 0.000007\n", + " 0.000006\n", " \n", " \n", " 571\n", " 285\n", " scatter\n", - " 0.017499\n", - " 0.000615\n", + " 0.017666\n", + " 0.000425\n", " \n", " \n", " 572\n", " 286\n", " absorption\n", - " 0.000127\n", - " 0.000016\n", + " 0.000123\n", + " 0.000011\n", " \n", " \n", " 573\n", " 286\n", " scatter\n", - " 0.017716\n", - " 0.000690\n", + " 0.017706\n", + " 0.000597\n", " \n", " \n", " 574\n", " 287\n", " absorption\n", - " 0.000119\n", - " 0.000013\n", + " 0.000108\n", + " 0.000011\n", " \n", " \n", " 575\n", " 287\n", " scatter\n", - " 0.018041\n", - " 0.000702\n", + " 0.017339\n", + " 0.000664\n", " \n", " \n", " 576\n", " 288\n", " absorption\n", - " 0.000125\n", - " 0.000013\n", + " 0.000129\n", + " 0.000011\n", " \n", " \n", " 577\n", " 288\n", " scatter\n", - " 0.018212\n", - " 0.000715\n", + " 0.018452\n", + " 0.000523\n", " \n", " \n", "\n", @@ -1693,27 +1660,26 @@ ], "text/plain": [ " distribcell score mean std. dev.\n", - "bin \n", - "558 279 absorption 0.000085 0.000008\n", - "559 279 scatter 0.013429 0.000449\n", - "560 280 absorption 0.000095 0.000014\n", - "561 280 scatter 0.014770 0.000783\n", - "562 281 absorption 0.000107 0.000013\n", - "563 281 scatter 0.015044 0.000605\n", - "564 282 absorption 0.000110 0.000010\n", - "565 282 scatter 0.016090 0.000795\n", - "566 283 absorption 0.000121 0.000012\n", - "567 283 scatter 0.017010 0.000793\n", - "568 284 absorption 0.000110 0.000007\n", - "569 284 scatter 0.017010 0.000430\n", - "570 285 absorption 0.000112 0.000007\n", - "571 285 scatter 0.017499 0.000615\n", - "572 286 absorption 0.000127 0.000016\n", - "573 286 scatter 0.017716 0.000690\n", - "574 287 absorption 0.000119 0.000013\n", - "575 287 scatter 0.018041 0.000702\n", - "576 288 absorption 0.000125 0.000013\n", - "577 288 scatter 0.018212 0.000715" + "558 279 absorption 0.000081 0.000008\n", + "559 279 scatter 0.013109 0.000358\n", + "560 280 absorption 0.000088 0.000010\n", + "561 280 scatter 0.014395 0.000586\n", + "562 281 absorption 0.000097 0.000010\n", + "563 281 scatter 0.014637 0.000427\n", + "564 282 absorption 0.000107 0.000009\n", + "565 282 scatter 0.015683 0.000552\n", + "566 283 absorption 0.000110 0.000009\n", + "567 283 scatter 0.016293 0.000627\n", + "568 284 absorption 0.000111 0.000007\n", + "569 284 scatter 0.017032 0.000445\n", + "570 285 absorption 0.000112 0.000006\n", + "571 285 scatter 0.017666 0.000425\n", + "572 286 absorption 0.000123 0.000011\n", + "573 286 scatter 0.017706 0.000597\n", + "574 287 absorption 0.000108 0.000011\n", + "575 287 scatter 0.017339 0.000664\n", + "576 288 absorption 0.000129 0.000011\n", + "577 288 scatter 0.018452 0.000523" ] }, "execution_count": 33, @@ -1786,21 +1752,6 @@ " \n", " \n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -1815,8 +1766,8 @@ " 10000\n", " 0\n", " absorption\n", - " 0.000136\n", - " 0.000017\n", + " 0.000131\n", + " 0.000014\n", " \n", " \n", " 1\n", @@ -1830,8 +1781,8 @@ " 10000\n", " 0\n", " scatter\n", - " 0.018504\n", - " 0.000740\n", + " 0.018582\n", + " 0.000680\n", " \n", " \n", " 2\n", @@ -1845,8 +1796,8 @@ " 10000\n", " 1\n", " absorption\n", - " 0.000231\n", - " 0.000031\n", + " 0.000220\n", + " 0.000023\n", " \n", " \n", " 3\n", @@ -1860,8 +1811,8 @@ " 10000\n", " 1\n", " scatter\n", - " 0.029149\n", - " 0.001525\n", + " 0.028711\n", + " 0.001186\n", " \n", " \n", " 4\n", @@ -1875,8 +1826,8 @@ " 10000\n", " 2\n", " absorption\n", - " 0.000306\n", - " 0.000032\n", + " 0.000295\n", + " 0.000022\n", " \n", " \n", " 5\n", @@ -1890,8 +1841,8 @@ " 10000\n", " 2\n", " scatter\n", - " 0.039770\n", - " 0.001519\n", + " 0.038782\n", + " 0.001084\n", " \n", " \n", " 6\n", @@ -1905,8 +1856,8 @@ " 10000\n", " 3\n", " absorption\n", - " 0.000339\n", - " 0.000028\n", + " 0.000331\n", + " 0.000022\n", " \n", " \n", " 7\n", @@ -1920,8 +1871,8 @@ " 10000\n", " 3\n", " scatter\n", - " 0.046708\n", - " 0.001355\n", + " 0.045772\n", + " 0.001084\n", " \n", " \n", " 8\n", @@ -1935,8 +1886,8 @@ " 10000\n", " 4\n", " absorption\n", - " 0.000433\n", - " 0.000031\n", + " 0.000419\n", + " 0.000026\n", " \n", " \n", " 9\n", @@ -1950,8 +1901,8 @@ " 10000\n", " 4\n", " scatter\n", - " 0.056359\n", - " 0.001790\n", + " 0.055975\n", + " 0.001344\n", " \n", " \n", " 10\n", @@ -1965,8 +1916,8 @@ " 10000\n", " 5\n", " absorption\n", - " 0.000538\n", - " 0.000028\n", + " 0.000514\n", + " 0.000024\n", " \n", " \n", " 11\n", @@ -1980,8 +1931,8 @@ " 10000\n", " 5\n", " scatter\n", - " 0.064943\n", - " 0.001978\n", + " 0.063289\n", + " 0.001605\n", " \n", " \n", " 12\n", @@ -1995,8 +1946,8 @@ " 10000\n", " 6\n", " absorption\n", - " 0.000588\n", - " 0.000028\n", + " 0.000591\n", + " 0.000027\n", " \n", " \n", " 13\n", @@ -2010,8 +1961,8 @@ " 10000\n", " 6\n", " scatter\n", - " 0.070231\n", - " 0.002714\n", + " 0.071011\n", + " 0.002058\n", " \n", " \n", " 14\n", @@ -2025,8 +1976,8 @@ " 10000\n", " 7\n", " absorption\n", - " 0.000670\n", - " 0.000041\n", + " 0.000671\n", + " 0.000036\n", " \n", " \n", " 15\n", @@ -2040,8 +1991,8 @@ " 10000\n", " 7\n", " scatter\n", - " 0.075852\n", - " 0.001862\n", + " 0.077891\n", + " 0.001952\n", " \n", " \n", " 16\n", @@ -2055,8 +2006,8 @@ " 10000\n", " 8\n", " absorption\n", - " 0.000745\n", - " 0.000039\n", + " 0.000721\n", + " 0.000031\n", " \n", " \n", " 17\n", @@ -2070,8 +2021,8 @@ " 10000\n", " 8\n", " scatter\n", - " 0.086234\n", - " 0.001968\n", + " 0.086393\n", + " 0.001722\n", " \n", " \n", " 18\n", @@ -2085,8 +2036,8 @@ " 10000\n", " 9\n", " absorption\n", - " 0.000731\n", - " 0.000039\n", + " 0.000748\n", + " 0.000033\n", " \n", " \n", " 19\n", @@ -2100,63 +2051,61 @@ " 10000\n", " 9\n", " scatter\n", - " 0.090448\n", - " 0.001956\n", + " 0.090861\n", + " 0.001669\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", - "bin \n", - "0 10003 0 10001 0 0 0 10002 10000 0 absorption \n", - "1 10003 0 10001 0 0 0 10002 10000 0 scatter \n", - "2 10003 0 10001 1 0 0 10002 10000 1 absorption \n", - "3 10003 0 10001 1 0 0 10002 10000 1 scatter \n", - "4 10003 0 10001 2 0 0 10002 10000 2 absorption \n", - "5 10003 0 10001 2 0 0 10002 10000 2 scatter \n", - "6 10003 0 10001 3 0 0 10002 10000 3 absorption \n", - "7 10003 0 10001 3 0 0 10002 10000 3 scatter \n", - "8 10003 0 10001 4 0 0 10002 10000 4 absorption \n", - "9 10003 0 10001 4 0 0 10002 10000 4 scatter \n", - "10 10003 0 10001 5 0 0 10002 10000 5 absorption \n", - "11 10003 0 10001 5 0 0 10002 10000 5 scatter \n", - "12 10003 0 10001 6 0 0 10002 10000 6 absorption \n", - "13 10003 0 10001 6 0 0 10002 10000 6 scatter \n", - "14 10003 0 10001 7 0 0 10002 10000 7 absorption \n", - "15 10003 0 10001 7 0 0 10002 10000 7 scatter \n", - "16 10003 0 10001 8 0 0 10002 10000 8 absorption \n", - "17 10003 0 10001 8 0 0 10002 10000 8 scatter \n", - "18 10003 0 10001 9 0 0 10002 10000 9 absorption \n", - "19 10003 0 10001 9 0 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", + "0 10003 0 10001 0 0 0 10002 10000 0 absorption \n", + "1 10003 0 10001 0 0 0 10002 10000 0 scatter \n", + "2 10003 0 10001 1 0 0 10002 10000 1 absorption \n", + "3 10003 0 10001 1 0 0 10002 10000 1 scatter \n", + "4 10003 0 10001 2 0 0 10002 10000 2 absorption \n", + "5 10003 0 10001 2 0 0 10002 10000 2 scatter \n", + "6 10003 0 10001 3 0 0 10002 10000 3 absorption \n", + "7 10003 0 10001 3 0 0 10002 10000 3 scatter \n", + "8 10003 0 10001 4 0 0 10002 10000 4 absorption \n", + "9 10003 0 10001 4 0 0 10002 10000 4 scatter \n", + "10 10003 0 10001 5 0 0 10002 10000 5 absorption \n", + "11 10003 0 10001 5 0 0 10002 10000 5 scatter \n", + "12 10003 0 10001 6 0 0 10002 10000 6 absorption \n", + "13 10003 0 10001 6 0 0 10002 10000 6 scatter \n", + "14 10003 0 10001 7 0 0 10002 10000 7 absorption \n", + "15 10003 0 10001 7 0 0 10002 10000 7 scatter \n", + "16 10003 0 10001 8 0 0 10002 10000 8 absorption \n", + "17 10003 0 10001 8 0 0 10002 10000 8 scatter \n", + "18 10003 0 10001 9 0 0 10002 10000 9 absorption \n", + "19 10003 0 10001 9 0 0 10002 10000 9 scatter \n", "\n", - " mean std. dev. \n", - " \n", - " \n", - "bin \n", - "0 0.000136 0.000017 \n", - "1 0.018504 0.000740 \n", - "2 0.000231 0.000031 \n", - "3 0.029149 0.001525 \n", - "4 0.000306 0.000032 \n", - "5 0.039770 0.001519 \n", - "6 0.000339 0.000028 \n", - "7 0.046708 0.001355 \n", - "8 0.000433 0.000031 \n", - "9 0.056359 0.001790 \n", - "10 0.000538 0.000028 \n", - "11 0.064943 0.001978 \n", - "12 0.000588 0.000028 \n", - "13 0.070231 0.002714 \n", - "14 0.000670 0.000041 \n", - "15 0.075852 0.001862 \n", - "16 0.000745 0.000039 \n", - "17 0.086234 0.001968 \n", - "18 0.000731 0.000039 \n", - "19 0.090448 0.001956 " + " mean std. dev. \n", + " \n", + " \n", + "0 0.000131 0.000014 \n", + "1 0.018582 0.000680 \n", + "2 0.000220 0.000023 \n", + "3 0.028711 0.001186 \n", + "4 0.000295 0.000022 \n", + "5 0.038782 0.001084 \n", + "6 0.000331 0.000022 \n", + "7 0.045772 0.001084 \n", + "8 0.000419 0.000026 \n", + "9 0.055975 0.001344 \n", + "10 0.000514 0.000024 \n", + "11 0.063289 0.001605 \n", + "12 0.000591 0.000027 \n", + "13 0.071011 0.002058 \n", + "14 0.000671 0.000036 \n", + "15 0.077891 0.001952 \n", + "16 0.000721 0.000031 \n", + "17 0.086393 0.001722 \n", + "18 0.000748 0.000033 \n", + "19 0.090861 0.001669 " ] }, "execution_count": 34, @@ -2209,38 +2158,38 @@ " \n", " \n", " mean\n", - " 0.000416\n", - " 0.000025\n", + " 0.000417\n", + " 0.000020\n", " \n", " \n", " std\n", " 0.000238\n", - " 0.000011\n", + " 0.000008\n", " \n", " \n", " min\n", - " 0.000023\n", - " 0.000004\n", + " 0.000020\n", + " 0.000003\n", " \n", " \n", " 25%\n", - " 0.000206\n", - " 0.000017\n", + " 0.000214\n", + " 0.000014\n", " \n", " \n", " 50%\n", - " 0.000391\n", - " 0.000024\n", + " 0.000394\n", + " 0.000019\n", " \n", " \n", " 75%\n", - " 0.000626\n", - " 0.000031\n", + " 0.000627\n", + " 0.000025\n", " \n", " \n", " max\n", - " 0.000928\n", - " 0.000061\n", + " 0.000915\n", + " 0.000049\n", " \n", " \n", "\n", @@ -2251,13 +2200,13 @@ " \n", " \n", "count 289.000000 289.000000\n", - "mean 0.000416 0.000025\n", - "std 0.000238 0.000011\n", - "min 0.000023 0.000004\n", - "25% 0.000206 0.000017\n", - "50% 0.000391 0.000024\n", - "75% 0.000626 0.000031\n", - "max 0.000928 0.000061" + "mean 0.000417 0.000020\n", + "std 0.000238 0.000008\n", + "min 0.000020 0.000003\n", + "25% 0.000214 0.000014\n", + "50% 0.000394 0.000019\n", + "75% 0.000627 0.000025\n", + "max 0.000915 0.000049" ] }, "execution_count": 35, @@ -2292,7 +2241,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.474494586047\n" + "Mann-Whitney Test p-value: 0.498462484897\n" ] } ], @@ -2330,7 +2279,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 1.364780046e-41\n" + "Mann-Whitney Test p-value: 1.61253828675e-41\n" ] } ], @@ -2376,7 +2325,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2385,9 +2334,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\norlkyRKeP3+erVp1IWCgqI78DIFVDAuLossVo41pQ4rqwy2ZmHgjbbYuFKvqVlBVI1i3bnMajRMo\nZofbaLNF+F0sBAtI4yGNR2kSSvozMzO5Zs0aLlmyxFtp9Vr1d+p0K4HV9ATQgXrU6XoQeJ6KUpuT\nJz9T+EEoTugNG7amw5FIp7Mbw8NjvUUbe/S4g6Jib87VvO+Vty8e/WFh0QS20RPstdsT+eGHH+bZ\nfvPmzbTbI+l01qfVGsYFCxbx6aefZnh4RZrN5Vi/fjMeOnTIu/2MGTNoMPhWEn6Fwp1zG1W1OgcO\nHMLGjdvSZqtB4f6qR1Ep+B1GR1fzHmfQoH9RBNQ9x9nJ6OjqHDz4Ier1U7TnXtBmEdna1buFgIF3\n331/ntldcnIyq1evR5OpEnW6kVTVBD722JMFjvfp06dpt0dSuKNI4FM6nVH866+/Cv1fpaamagH5\ntfQ013I6b+XUqVO928yf/xLNZjtVNZ7h4bHctWuX9n/0XTDxGZs06cixY59gtWpN2Lx5F37zzTdM\nSUlhixadaTCYGB5eievWrStUUyCANB6hbTwkocWQIcNpNI7TTgbrKPzkHjdOCo1Ga5FWy0yfPkOr\ntOqpwjuPN97YgyS5ePF/tF7tRyiqurbnlCkFNzM6cuQIq1Spr13lhtFqrcpu3frmWVKbkZGhXUF7\nakMdpF7vok7XjqKrYWMCbVmhQrw3nrN//35tietSAl9RUdry3nvv56pVq7h161a63W5mZmZy8uTJ\ntFq7Myf/xU293uTN5J816wXabN00N46bJtNY3nrrXdoJdixFwPlhiuCzZzx3sly52AI/d3Z2Nleu\nXMlp06YV2nHw66+/ptOZ6HMiJ53O+oW23RVFJQdTLCvvps3Q3qaiVMxTBTctLY0HDx70xnPuvXeY\nj2EkdboF7Nbt9qu+V0kCaTyk8ZCUHCdOnGB0dDXa7T1osTQh0NXnhJRJo9FapFav9933EP0bS33P\nuLi6JMVJZOLEKbTZXLRY7HzwwVFXNUgJCU1pMEzTTtxfetu65ubo0aNUlGif9/yGQGXm5FecI+Ck\n3d6aGzdu9O63fft2tmnTnbVrt+SkSc/kuxJo69atVNUqFKu1xFV2eHis94R45coVdu9+G222GNrt\nNVizZmOePHmSnTr1pEgMbEaxuEClwdCLOt0TVJQYLl/+Zp73uh6OHDmi9WPxFMg8SoslLE/9sNx8\n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\nRCKRSCSB5/8ByMyfADZGvh4AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2414,7 +2363,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2423,9 +2372,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2458,7 +2407,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.9" + "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 1bd7ee49a..cea483f9d 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -326,7 +326,18 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Run openmc in plotting mode\n", "executor = openmc.Executor()\n", @@ -342,7 +353,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB98JEwAiCb5uYN4AAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDktMThUMjE6MTc6\nMDErMDc6MDA/DItCAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTA5LTE4VDIxOjE3OjAxKzA3OjAw\nTlEz/gAAAABJRU5ErkJggg==\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\nMTUtMTAtMDJUMjM6NTE6MTQtMDQ6MDBw2InyAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAy\nVDIzOjUxOjE0LTA0OjAwAYUxTgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -376,8 +387,7 @@ "outputs": [], "source": [ "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()\n", - "tallies_file.tallies = []" + "tallies_file = openmc.TalliesFile()" ] }, { @@ -454,9 +464,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", - " Git SHA1: 3df61825cc8c93656ed1458c34fca14000884e73\n", - " Date/Time: 2015-09-19 07:34:09\n", - " OpenMP Threads: 4\n", + " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", + " Date/Time: 2015-10-02 23:51:14\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -591,20 +601,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.6600E-01 seconds\n", - " Reading cross sections = 1.1500E-01 seconds\n", - " Total time in simulation = 8.1308E+01 seconds\n", - " Time in transport only = 8.1157E+01 seconds\n", - " Time in inactive batches = 2.1600E+00 seconds\n", - " Time in active batches = 7.9148E+01 seconds\n", - " Time synchronizing fission bank = 1.6000E-02 seconds\n", - " Sampling source sites = 9.0000E-03 seconds\n", - " SEND/RECV source sites = 7.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-02 seconds\n", - " Total time for finalization = 1.6400E-01 seconds\n", - " Total time elapsed = 8.1856E+01 seconds\n", - " Calculation Rate (inactive) = 23148.1 neutrons/second\n", - " Calculation Rate (active) = 5685.55 neutrons/second\n", + " Total time for initialization = 5.7400E-01 seconds\n", + " Reading cross sections = 1.3400E-01 seconds\n", + " Total time in simulation = 3.5996E+02 seconds\n", + " Time in transport only = 3.5984E+02 seconds\n", + " Time in inactive batches = 1.0821E+01 seconds\n", + " Time in active batches = 3.4914E+02 seconds\n", + " Time synchronizing fission bank = 1.5000E-02 seconds\n", + " Sampling source sites = 7.0000E-03 seconds\n", + " SEND/RECV source sites = 8.0000E-03 seconds\n", + " Time accumulating tallies = 3.4000E-02 seconds\n", + " Total time for finalization = 2.5500E-01 seconds\n", + " Total time elapsed = 3.6081E+02 seconds\n", + " Calculation Rate (inactive) = 4620.64 neutrons/second\n", + " Calculation Rate (active) = 1288.87 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -682,8 +692,8 @@ "\tName =\t\n", "\tFilters =\t\n", " \t\tmesh\t[10000]\n", - "\tNuclides =\t-1 \n", - "\tScores =\t['flux', 'fission']\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'flux', u'fission']\n", "\tEstimator =\ttracklength\n", "\n" ] @@ -817,8 +827,8 @@ "\tName =\t\n", "\tFilters =\t\n", " \t\tmesh\t[10000]\n", - "\tNuclides =\t-1 \n", - "\tScores =\t['flux']\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'flux']\n", "\tEstimator =\ttracklength\n", "\n" ] @@ -861,7 +871,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -870,9 +880,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\ncPmIaKHPh5wAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -902,9 +912,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1018,7 +1028,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1027,9 +1037,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEUCAYAAAA8+dFZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGeRJREFUeJzt3X20ZFV55/Hvz8YXUBL6Jo4O0IojELtdOgENsGJmxBdc\npFVQOhFoEpUZBY0dXyaZMK6oMOOsTHSiImHJ4BIVDQ0qEAdHEF9BaR0UQVT6grAcMrysIcRu3yAq\nL8/8UXWhKG7VrXO7zq26t7+ftWp1nX32OfXUprof9tn77JOqQpKkUT1i0gFIkpYXE4ckqREThySp\nEROHJKkRE4ckqREThySpkVYTR5LDk1yf5MYkJ82z/2lJvpHkF0n+rMmxkqTJSFv3cSRZBdwAvBC4\nDfgWcGxVzfbUeTzwZOBlwPaqes+ox0qSJqPNHsdBwE1VdXNV3QOcBxzZW6Gq7qyqq4B7mh4rSZqM\nNhPHXsAtPdu3dsvaPlaS1KI2E8eOXANzHRRJmlK7tHju24A1Pdtr6PQcxnZsEhOMJC1CVWWxx7bZ\n47gK2C/JPkkeBRwNXDSgbv8XGPnYqmr9dfLJJ7d+3EJ1B+1vUt5f1r991FFHTW1bNjl2lHq25/ja\nc9j+UdptlLKlaMsdac+l+Lu+I+3Zv72jWutxVNW9STYBlwKrgLOqajbJid39ZyZ5Ip0ZU78G3J/k\nTcC6qvr5fMe2FetCDj300NaPW6juoP1NyvvLFvu9dsSOfOaox45Sz/YcX3sO2z9KuzUpa9s0/10f\ntG8Sv83WpuMuhSS1nOOfNhs2bOCCCy6YdBgrhu05PrbleCWhpvRSlZaZtWvXTjqEFcX2HB/bcrqY\nOPSAdevWTTqEFcX2HB/bcrqYOCRJjZg4JEmNmDgkSY2YOCRJjZg4JEmNmDgkSY2YOCRJjZg4JEmN\nmDgkSY2YOCRJjZg4JK14MzOQzP+amZl0dMtPmw9ykqSpsH07DFpIO4teI3bnZY9DktSIiUOS1IiJ\nQ5LUiIlDktSIiUPSsuHsqOngrCpJy4azo6aDPQ5JUiMmDklSIyYOSVIjJg5JUiMmDklSIyYOSZqH\nU38HczquJM3Dqb+D2eOQJDVi4pAkNWLikCQ1YuKQJDVi4pAkNWLikCQ1YuKQJDVi4pAkNWLikCQ1\n0mriSHJ4kuuT3JjkpAF1TuvuvzbJAT3lb01yXZLvJdmc5NFtxipJGk1riSPJKuB04HBgHXBskrV9\n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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1078,9 +1088,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWEAAAD7CAYAAAC7dSVGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XeYFEXewPFv9+SZnc05weZAZsk5CyIKgoKBU8yKGc/s\nmfXMYkBRDIhEyRnJOaeFZQm7bM45zE7uev9Y7tCT11NB4HA+z9PPM9Nd3V3V3fObmprqakkIgYeH\nh4fHpSFf6gx4eHh4/JV5grCHh4fHJeQJwh4eHh6XkCcIe3h4eFxCniDs4eHhcQl5grCHh4fHJaS+\n1Bn4F0mSPH3lPDw8fjMhhPRH1/0j8eZ89vdrLpsgDHCx+iyPHj2aBQsWXJR9XSxXYpngyizXlVgm\nuLjlkqTzj4ev/Y60z5/33v5/l1UQ9vDw8LhYNJc6A2d4grCHh8df0uUS/C6XfFxUKSkplzoLF9yV\nWCa4Mst1JZYJ/vfKZbjUGTjjLxmEU1NTL3UWLrgrsUxwZZbrSiwT/O+Vy9Mc4eHh4XEJXS7Bz9NP\n2MPD4y9J8zum/yRJUpQkSRslScqQJOmoJEkP/9F8XC5fBh4eHh4X1XkGPyfwmBDikCRJXsB+SZLW\nCiEyL3I+PDw8PP43nU+bsBCiFCg987pRkqRMIBzwBGEPDw+P3+JC/TEnSVJLoAOw+4+s7wnCHh4e\nf0kXoovamaaI+cAjQojGP7INTxD28PD4Szrf4CdJkgZYAHwvhFj8R7fj6R3h8edrqgeX49zLnFbI\n3nhx8+PhwXn3jpCAr4BjQogPzycfniDs8edTa+HJRMhL/+Wyowvg5JqLnyePvzz175jOoSdwK9Bf\nkqSDZ6ahfzQfHh5/Lq0ejL7waHuIGQHvLzm7bP+3oLh/llwgkLhAowZaToEp4cJsy+OKcp69I7Zx\ngSqxnpqwx8Ux7AmICocNy2FMe2hqgsZSaD0auj3ws6R7OEE+5efeTmP1f93Vv4dErdoM+VPOLnBW\nQf3eP1oCjyvMedaELxhPEPb47c413rMQoNj/+7o9b4V/HgNvFTScgsXXQN1pKM+HgJ/XVGMJ4y3m\n8SP7EfzHPr99CJy/sr+ti3GKrxC2bDh8M2j8zy5T+8PRG8Fy/L/n1+OKdz5twhfSeQdhSZKGSpJ0\nXJKkU5IkPfUr6TpLkuSSJOn6892nx58k978EpwXf/XKeJEHBM9B0jvbe/6Q3wAezoYcVcvc2B9+c\nTNi26mfJgvChD23OXRsuPw3fTDz3FwLA/rWI46uxap5G+KRB4FVnl7mdoAmC08+BUP57fn+Hcuou\n6PY8/nyG3zH9mc4rCEuSpAI+AYYCqcBNkiT9Yjy7M+neAlbDhWrs87jg3n0AXK5zL1u3DGb85Ke9\nvf7sa6+ucLQz1G349e2XzoW6xRA6CGptsHoCOC3w3atQePJnSW+kDx2IJ69108+30eMmsDX+oh35\n31QapE07cbu2IsJ7g28XhBA05ObCpveh9TwQbv59GQoB+3fDlrN5V3Dgoumcmz8XG05msf03p/e4\nPFwpNeEuQJYQIlcI4QTmANedI91DNHdorjjP/Xn8WVwuOLgZ1sz85TKnE6Z9ABEtzs478CEUbG5+\nbU2B+iFQsBgKz10jdrsbIOMJ8DLCvT9CiBcUrQKNG1r1BL3pZ+klJNJIQMhwiOyzC4Y+DLIMDuu5\nyzH+OTSlrdDmCqy+CgoNSJLE8VcfxbXqDYQ2CvwGQtUqaGiAkQPgrrHQofOZcq1nD5NwYfutR475\n7KaCht+c3uPycKW0CUcABT95X3hm3r9JkhRBc2D+7MwszwM9LxfOn9T27FYYcAMERfwynVoNZm94\na9rZeaGdYeEQyFsL4a0hUwfvfgrLJ/183cZSEAJl8rU45QYsEf4IFLgzAywSKFshLRmOnrsm2fKI\nkT2coJSf/CHXYyRsnnzuMvkGIUXHoc31wlX1OqXuG1GwEN87EUd9A0WLZkD4XVD8JXz2Hvj6wUff\ngNkMgG3K37BW7kePPwJBHWW/eggFAhM6unOOHhgX6ZmJHn+MRv3bpz/T+W7+t1xlHwJPCyHEmQ7O\n/29zxOjRo//9OiUl5U8bJHr79ivvp+PvLpMQtG38gXTzjf+eFaGLQL1yMXlZP2+LDT59DD+NmRPL\nlv97nkrY6WVPoWTZd5z0r0Dlew3DjNswHdjIkffGcix0BEgyiXU/4l+VRdjMozRMCaShfhYHD4Wg\nrpbpGRRDwI4sJP9PKJmzmU3Fv2wK2bF9B13U3ZncYy4pO8yonTIydq4/+SaLasJwi1+22HXVZSJ2\nR2FoIbDLh8k4PgJtCBgCI9jw9scYahwMLjhIkR6ODBkD+cUwaxYA1zXVEf91ATNSvsSWdgJtViSa\nwuBfPZTpPZtovcPALPHzNvUI9T6KXJ1+kf5KvP7gzy3XsWPHyMz83WPj/Cr174l+/08r3QUhhPjD\nE9ANWP2T988AT/1HmtNAzpmpASgDrj3HtsTFMnPmzIu2r4vld5epJkuIj81COCxn55XkCfHJk2ff\nl2UIcXqTEI+PE6Km6j/WLxPinjghFl4nhKW8ed726UKseUOIee2E+GCEEAVHhZjWXohxEUJE6IWy\n3F9Yjz0vToiJwmLfJ8SMQCFe8RJipEaIh8KEKN19dvtNmUIoiljw1SdCHFgpauc/JRbmTBbuo4uF\nsFuEmG4UYs+YX5bL7RRi33VCvDBSuOo/ELXVEaKiKkyIfX2FWPuSKP5+uqhu21KIg1uESD+z/ooF\n/1794N5ewjVtklgq3hbzxAtCEe5fPYxNwi6miQ2/XKC4hVgfL4Sj9heLrsTrT4iLW64z8eJ8Ypdo\nMv326Xz392vT+TZH7AMSJElqKUmSFhgLLP2PIB8rhIgRQsTQ3C58vxBi6Tm25XEx1Z0GRQ95O87O\nC4mCsvyz7/3jYfN7oJ8D2T+5wUIIxA/P4mpfg9J2EGL9HeCygtEHvFvA4M+hjwq+HwllRRAfCeP7\nINka0e/ZTNzcCkqKH8Ema3GG2qHv7VCohmWPwadXw84eULscbI20zZwPb43AR2NmxOx/IM8bCd+P\nh1aPw64TPy+TYoH850AUgf4YqkotmvJAsMbjrA+CUhthaxZROWwE1VNfgRwD7JkOk5sffl7KVqyd\n2tJUsIcwkcBVPIj0Xz4iRymgNVG/XFCxDpryoP7I7zwxHheLWv3bpz81H+ezshDCJUnSg8AaQAV8\nJYTIlCTp3jPLp16APHr8GVoMBmMcvHo/vL4SIhOau5sJ0TxJUvPtxg1doF08VGfDvFug1xMQ3gGp\nyQWj/47V9xEMhwxI33mD5kbILoSsbrj2LEeNGxIGwLZ9MKIH+HaA69ahUmuJLTlAwaCvqHQeoX2m\nFmlXINIhIG43vFwLg+NwM5KS5BTib3sBDr6J2t6AK34Ian0KrFoC+cfgxVaQkIpItWJtacVYYYPs\nwdA5FQ7XowkbjnHNJ9R28SZo6zGYdpB4jYacsV3xf39d8xdMiS8A2UzHLIZSHV9OWlY0UsKvN0MA\nHKGAcXT/5YKgQRA2GrzbXOAT53GhaHSXOgfNzjvGCyFWAav+Y945g68QYsL57s/jAgoIA3cZ5B5t\nDsIAgeFQVQqBYVCUBWvmwrL05qBsqYRt78H6V0FSI8KfRqUEUDU0C+OuzzDun4UU2x02HWRX/EBO\n/q0746xRGLfXgXc+NIQ1B3bA7bKjPVJKfWcVWQEZ+Ma1JFilQFA7MH4LpenwzhY0OeOpDy9Am9lA\n8R0dCPN5DrVPH+A1eLwTtTWnqHQ7iSkrRE7XASbYMA+03hAcifrvX+O0TEZSnNgnJKHL+hQp5WFa\nvPAs7s9GI9mDkVuEY2/Kp85owVG6nzY9X0DaMAcSOv7ymJ3cAol9AFBQsOHEyDk+za5GUHuDxudP\nOXUeF8BlMmiD5465vzKdAT4/CKu/BpezeV5Cezh1CE6nw51dIK1bcwAGMPhA59G469TU+SnsnDGO\np8qqmSi6UX0kAVsPHU75FGKojV7d29Mv8G98FFBGldsGQSro8xI2LMzkVb6MmkNT21GoZBXkCBwr\nFqMU7oL0xdDHDWQhfzCU0ztvxJnzLSdG1iNFdMPg0+ds/m94ml0PdCXQqxx7qgLBXcE0EIIrwXQc\nKjIoWPEh6si78Mq0UJOQDk1T4Ng7qFpdi23iVvKP6VF6x+N8aSSBWyvoe2gZ0rGxkLXx3L0blr8K\nVXkAnKacWP6f2rKtCAyRF+5ceVx4l0kftcvku8DjoinKgYiY5teyFvQ6uOZemPcudOsKcjmcLAJh\nh1oF7nkWgCY3bGrQsLRIw3X1dRy4vS1uSzRjtm+l29FPqbIH0PC5N+bHxuBuXUBBXhEmVx1P5Nmo\nVCyUarWcMp2mdtVs/GceooXdh5CXJhC61xuRsZPCWg1lXrUEOoy4EtJoSi5GtTuPgTWvUjdUjX9l\nS0RYJU7y0NACFIXyQ1PRDRCYk8246YF6cSk0bIWe/SDZD1HoZuutaVwjuqIR36E5UIbN3RF98Udw\nZAMmfQSyr4GNRzW4Xr2ZQW+tQS6swDG4HrU1DPn4Hkjp+vPjV3wU1k2Gse9zmDzSlCQOVpTzeFUw\nGgkG+cCjoaC1FoDeE4Qva5dJ9LtMsuFxURzaDnM+gX/Obn6v1cP+eyHxQVg9FVSnISgack4gjmyg\nttcNfCvHsPsU6GTorP6Rf5y6D3sbHzrv2YWxaQZSYyNqtYug4DJO9WyB7/F5yNaBRJUsRHdoDnZ9\nKnofC1aTiU3aALoPexR/sRfLyx9i/+ET/COTsBtykYe4oKsf1eZGdEoU/tm7kDqMo3zddry3GJF6\nFOG9Rk1l1zsx6+/Ga5OTPcNa0F/dHZf8GlrLY0hDliCONWDXrcduN6C3RHGSHPKrdpOgdMe1cT0V\n+/OIuroaEhOAOvT9S0hOWUfw/E2o2rYEnQ7mCOqw4btjMVJ8e9DoEAJyrQqO1BvZmmdk08bjZAUG\nk2T0IblkKzHe0C8smJsDQS0BtkIwRJ899oU5sHEJtO9xCU68xzmpLnUGmnmC8F9FcR48dh3c+pOb\nKfQh4KWHDV1g3DSYuwpu/ALmdqZ+2H18EzqArl4wMVTwiVSNQ2lLcHZL5A1a5L9/B28mYattTdbL\nHYg6sZ/IBplaH4nD8al0DEpFV7MPa1USZp9v8NW14XlpGF+zjy+uVnhO2xPvb75CbGnAPcSXyNYB\nGMpOgaM9NFRDNVSmrKd2eDCJy4w09XsA+2ALoYUJVOU+TdW+CvyiUpD9a5CPt0bK/gTKT2AbHooz\nvxDTFl/UVUW8MPA5Gq7vRPGBSLx6aAlOKoSuPuBcAN5fIm3aTtio75FbtofMaWB7A63LhLyrHOe+\nybyo8SfX3ArURlrY6xhU72bQ6XkkH0onNCyf+Nd3wKHZzb8e7lja3EvEVgHWAvA7E3B3fA4z74fk\nbtDiKviPDhNuZRsqudfFuxY8ml0m0e8yyYbHn66mHAZcD/3O3FXucoLOB/x7Qto0KFoEnbrCmm/g\n1X/gY2jD47hoNCs8QTmj7fn0VVLgixNwdQu4vTX06YT+zR+JcqST03YSoYU9WBEWhpdJIeDUOug+\nD7+3noYQb6jX4zjyDT1qp9JvfRk1AUFUtA0nND4L443fIYSWxo+vwSvAH5RtVEd7Yy/XEV2QAxOX\nYnj3Y2r+EYw+agjeSxLYfY0fvdIPo62uRO49B9H3KhrqJiLZs9Fn90IdGQynf0BKjER3QEFesZpa\nOQzZXYTG3oTcsSXsHwvD7kNO6InAjcuci7qFCqk8FpXuKIvvuYP7S1cTnbkAhvdEeBUjyjORfP2Y\nXjCB+9fdTMZHAzl1yzCcVi3Dilbjtf9FnCn3o6k/AiofxJrbkeoKYZAfdHwQzMnAwZ+dGqf7PSSC\nkOWki35Z/KVdKb0jPC5jjlOgTQBFgWmvwyvTwXzm3/rPn4Nhg0HvC2F3QsRo2HcnbF0GvrWgOUWd\nrR3H5FheRYsPBfDdEYgOBc1xlJu0NLb0x7x9EDprFonm1hSElSK8Gqmp0yK6fImkNkD6JhigRixa\ngjp/JrG9Q3DeLIhKT0X75my4Iw58E5EElFVch1Gn0BDqi6VbJyJ3BrNLkel26j0c1w7A96UZVPgN\nRl9fS+dtKtytrSjVAodqPnbH9xiL6tDGz+PHrmvwOfgVAeNvIcAajj4zn+Ipo9Dl7yWoPJfaaQb8\nbjiOpBgQrunYdi3B2qYWY40WjbYUjlqReoxi5MFCDoTp0MdFErzqKOLWB1BSTqDeu51BPRo5mtCe\nnI5x1PuXcceu3XiVfYlTA6XVM4mqyMe9sAibJQHTe+ua7xNVe0FT1S9Ok6Kk4+RTdPJHF/Xy+Mu7\nTKKfp3fElcqeCVVvNL9e/h30Hwk6PWTsa55nbYR3XwNtWPN7rS90nQXdouFwC1baX2NZyxRS49T4\nRF4Pa+1Q4wB9HU75GlzGGnR5q2DtdjhZjBxWynbJh6CyEuIC8jmkfhuRsx3hW4lYnYUI9kF68kk0\ngcmYTLPRqodAkj8cDYf6WijKxKt+I5asjdQkGAg56E9T13Asw2VKe/mjbH+eppMnUSosrL1vIIdu\nu4qa5Ghs9T44THn4rC1Gm6vA4Rs44VVIjj6eYj87m3s4mX2zkR9GuJh/dyonB3WgUapDKpVAa4eg\nehSlDE2jN/rGGDgcAH6JcOPTqE/tIG3FSZYkpGH1k2Dqbcj2NE4kxHBqgIb9Vddy69oF3Ld2BeaT\nx6g3m3h7yOts6foc6B+mSTcIe5UCGq8zAbgC9rz7s9MkhECtGo9K7nfRLg2PMy6T3hGeIHw5Un7D\nWLf1+XD4S3Cf4wGaih2Kbz6Trha+exfMvrB0OhzY2jy/Xa/mkcjsPxnER6WDXnOoaB1JZOk2hn9R\ng88r62DHWIjdD9dI2BM1nOqVh1zXBl2AEam7F3QYhit4Ni5NFes1ndCfPIXVuZ6iitsQqQ5QaZCn\n5yC9MxtHpBpp1RT47AHIqcQZWkvTqqHUFjyEubUN+8kG9Pok6qNOo3V8S1zeHkKmFJJ9chBv9X+d\n7N6dkCK8UHvVEe6qgMhO1OdrQV0Mra+C+mwe3LaQSFcesZkFjGxow/jET3nI3ofbDq+jS9VehPBF\n0BuxTcE6vC/G0wa8DnekrPsjWNWpCPNhcFeCyYRKo+JvU77m68FjcPWyIH30GNGtH2X8dpnrrelo\nvW3YkkZQ6BdM6SkzNWqJSIsdBk3EVVyGu7j47JM+9n4I5T9vEJYkCZXcE0HtH7hQPM6L6ndMf6LL\npELu8TNWC7x8P1jqYeiN0MkONavB1BYiHoOslbDzNag+CfmbAOhRlQvLVjSPjJZzDLwl0JXBlkjw\nBlY/DJYaCAqD+XvBUQfXDoIlX8KE58/u224l4LOlBPV0QLQMlQJmyIhEPUp/gTqigsTKF1F7rwf/\na6D0SyRnCVsKJtLS7U/7Qz+QXRRGas5J9GY/MIcgdcuAa/oiJYeiXTwDke5Aaq2GdknY9AOwbdmH\n9+7DNOx34FAE/lMr0N84FnL+QcjHjVR2TkKTLPOYeIM8fQRDNmuQfA+i0g2nNHAX4RvyOTH+ahKC\n+qGKeAJp3Xw6brqbjO6pRGy5Dc2S14h1W3CHlaAofjirmyjeUUJ4Cw3GygBIeAKx8Vm8UhspqLKx\nc+gDjM78Hq8gAzitaKUWpDVFs7DHM9zYpEX9ZEfc5kCiY06zc3sKqfbvCPGDo9fFM+T4UnrtnYSt\n4jF0XbugGzAA6V93IjZVgDkCan5+uiWiEGLnxbq6PP7lPKKfJElfA8OBciHEed0W6akJX45MZnhp\nKjRZYNlM2OIEfRso/x7yX4LYPjAhHe46AVd/AyNmsiNgIrR7EIpK4VQuTD0FO9MhwAqpo8B8FWgG\nww1zYMwsSG4DvW+EvONQUQwNpVCeAfunIAfWgXko1JugUkJYTBTc3JvTnbohGW5DbX8FohZA9su4\nt5VimZtBzORTtP9wA2p3NUkdS3HFCJY9OQSRXA0+LkjoD3O2IYWbcLWLQiSoIaABc9xJgrpI6F7Z\ngFeiH2h0OG2+OH+YhvKamwq1Dx/1/pAWejWHojtQkzQQQ+EKDKfrUW9Pp8XxEjQlTswnc9murEZZ\n+AWsmI2hykZEro6ZKTfh9i4AVw2rr3sN1ai5ePWQcAfXIXkbIdsFXZ+i+pab0JcOIO5EAaYIN0uT\nwB4sEOoCHEcz6Dz7TWyuQCbrQLSJQSWycDm1hDgEJlUT2nCFbSHD6bWlDbIXaNsXgFaHZDQ2n1NJ\nAkMAdH+6+b1y9heMJEUhRMEvLgOPP9n5NUd8Q/PDLC5INjwulaoNEDDg3MuMJvhsOag1sGEJvLcS\nBj4Kid0g6wmwaCHxGVA13wYcUbEPFsyG5Bugz0B48hsIrEAEPoj0yGRYOw8+vBeyTJB1CqoPQ10e\nIqUOnuuEEluNZFYjt+iGaJeCy3cnslVGZbViGRVGRQcNiSeikZMmw9qNEN8GJeUkNS4tTX46KpN6\nE3P0AInHgpGzdiLH2omd/QFCa0fYFZw7X4SrQ9Acq0SdVIkrsQVqQwLSITv0eQ2iO6CfdhDD7V1Q\ntZaQ19Xyeqd/0K/oR17xm4v94B4CR31C64LNSL0WoohZ2L1jUcr2oDEVE5ytQVOykHKHk+DW7bBW\nxhPctIfkSgtTW43ngW1uFL9AKJ9H0CiJqhlOMHpB4VaUzG9wBQlUmm5g6szoupU0ZETg0ueh7Hag\n61uGlFtKm/mhvD32anq2D6b1bDN6h52W/RSsx1RUBXYgrDIU4yOvIErHIOd9gyhzIhv0Z89pXR74\ntMCoWg6NJ6F4DiS9jCSZEFjOeRkoNCFjvNBXngecV/QTQmyVJKnlJc6Gx3nLnQySFvz/nz6i+jNj\n5Q4ZDQNHwopZ8Mhj0KYdJAfByTuha3uI/Dv1XhFgaoJhj0PRDfB2O8RDWzg5awcxG9ejMgSgFNfi\nfm82oudw5FoDzvUAXuhK7UgBsUidrkUoh2gaZkFYKzBFLcSVXIv+6/voeE8h0ogOEHQYAvNxNan5\nZ8LzJESYSCxeSudjs5DWBKDuWgo+LXGZq9BXViMsAqXWjKI2U17fgJe3HzaTAWNlGqYDG1DX+SAd\nuAk6jYQxr+Az5locpm955+nFZB4IZWLZh9iLbLhvvpW2B96DyhIwVKAaNg2DMQD8QWlZhJh6C8Y7\nelDLfjKULOJ3ORAFRqIbisnzdbLcu4TYdT+ACEG2BRDQswBRZUFqciJ2vIQfevhiFmhUSO27YizJ\nQClqQg4FkW1FSZNptWEBz484Sa53RzrXKBDpwnWoM4qlgIUnUrhh1WycsXWIvFxUwSug7ARaaxa4\nb4Wr3gUhqD9+glbVn0JJOpRsh/p0SJvHuYbZdlNLDVMItD8KxRlQdASS+kPQmTsea8rhyHaIaQXB\nUc23oXv8dp4uah5IKjjxd+iyFlReP1skhJvmR/OdoVLBteOhLgu2/Aj7S8BXD9fEQv6rJIXmQFUg\n5K8HTREi+g6sIWo0R/dROec+fPW9ULlBZXKjah2H1KYLOqUjTB4Jdz8Jq6ZDp/G49P2h5EZ0OWak\nuFOotYEQ2A727oV1NlwVK7DJOsrbRPCgbiJK2Ql8p81FSmgP3hlYtAHIQTXUJw0gdPoi7FYdli7e\n6DL8iF53CnR2nEEmqoaWoQ+5DbdtJzrtI0grP4U3hiF1vwF3jYHUhC3c1DEC32nVNNTZMe3xhvos\nsFigtwGMAf86UMiGCNAn4VXzd4x+IfjPTUNSihGyIEjdRHtLJku79+dYmC9x/n9DrzIgr26PZV0T\ndoc/9jeNhJY8Dr6vwj8+RvQYhG1wW0wTq8HqhVjhxHXCQX1HfxJXHyc5ti2EXg+m+WhubUneqmhS\njx1GH2FANWwEyoG9KCfr0CQcQgp3g1cLWPwwqFSojUZyD4aQ0HYu+A1t/nPUbQWpuaeEdGacDoFC\nmftB1K4QWPAUbPwERr8NVgcsfAeqa5sHWFr7A6T1hjtehXZ98PgdLpPo52kTvpSS/gmGGHBmQmE/\nqHoBnP9qG6zA7Zr+y3VqSiDcD8YPQ7TMxvndclhgJ2b6FrCug1nXQEkZ7qn7McxZRIT3YOrebInx\n1lbo7k1F00dGjtEgqVrCuk9h+B2QlAc+xbi3jcVhuR3jsXrUFgGHHoPlt4EpC1poOR4i823nzqia\njMSqWuO7qD3+U99CDqgAQ1+Q4zHtclIbqCJowVLo3xupyxL0GYOQUm2UT7qNph5RaKKLCT1dhN73\nKOrO42nqvhXnU0+D0YeG/B+o0xpIbFpH6OE5NPXxQY6JR+3ngEY3dP0nJE4EWxksfA2WvgRV2dC6\nJ2LyCFyzBmJs7IF2X1sc3T+itkMMpoHj6F+6nrURqWzYPB/uvQOpQoupRxjy4CSktXVIql3w2PWQ\nshsl40Zyvg/BFWBGxLRE5Llo6BxAVb/eNJwIQdo+D1r1ROq1CEnvRWxgOSc0o3FWlSKbFdTjJyDf\nFIUYXI+tXwdEzwkQlgrZh9EY1dTkaKHzSfCOgcQXIeNRJPzgJz0klOrTeM3cSeD7X8KhDDD3hn2H\nYP0sqMiAaF+Y8CoowEvzmwPw//fwU49zu0x6R3iC8KVkSgRZB6pE8H0U6qdBw7fNNSPFiMvxAIpy\n5pEu/+q21u066D8eWtUh3GaIMMJNVaT3HwOdv0YkhmP5LhZrgRWaKtAl3IvGWYLVIkNUDwiSIPNT\n2PMsXD0U2kZA5R7cHfTYwwoxTI9HmhuJtNQFlgCITMKlaeBYv2ickX7cNmMTho018ME2KMgHcRCK\nymH7bOjYBymxAd/0GpyKG6bsQLPpQxyfr0ef2RvdiSVURGhw17aHAW+BnwZV5RywbsPm9Rk8tQzT\nkJsJy2ogefFJdLGfUTw2FmNEOI1mKE68Hra8Awufg7c6Q+mP4O8Fax6FsFZw8giqo/ugaTdy7j68\nVk7CV2fGnDONtruO8eq3H7CmZwjKO29Bm9uRQjPx81tC4Ag7rJ2CPXMtuLojCkNQyRHIy23w4jHq\n3jGgC44h5d3j6Fp1pMlohOShkO2GbVOwB6q4a+fzmIp8cLwzAseae7AHLsYRa0OXa0aqPQ2+wdBp\nPOql92JYLZvPAAAgAElEQVRw1YI2FGLfAp808OuBVFeKIvLB7YLt05H/3h9NjRdycCM88CS8vwWe\nnwkTXoZIPzj6JdSUQWzr5qFH7fWw97VLdSX/b/L0E/YAIHgElC8HVxREp4OuM5TdADsfBLxR3Gee\n6/bmbc3dnJx2CNyMIsfhzjShaRELu1cTG7oVpeQ+nBWV6AJ2Yh5rR8p8DUo3EFECRUELYOl+KOwI\n6S4YdwBqd0PGVyi6SOx93eiX2JAyTkCcHhKMoLFDm8l89tArVAyYQJu2j6ORLRCrA5UF5rqhTg2T\nVmCPC0Ip/4p6bzXqCifV3c0ocR2Qqo5iGNELqzUFc69DhK0KxBrphA37wWc2ks9gjCW1aKqsKMfu\ngOLpIGLAHYR7zT1Y/RVeCezIE2l/w6vVDdD7RThdA/F9IbEX9P47GA0oQUEoskKDnwrFkQsOI6yX\nkFb7YdpShlQg023lJl59/TmqJw9BfP0P3CY9lqYI1PKjOE3BcGIf7tl/o/5EBlEPHsGeq6dkTDiG\nFQ5Mx1UwLR1zTj3m/VUoc0ZAaT5cswzdUjciLhxtaSFKUy3qHRvQ6b/FWPwA8smlkP4MjpNfUO/f\nGmnYq/TqmAHbHoPcxVBxGvzHINeWItInw5RRoFJR/eVE5Idng39bsOb+/JppexNEdoaEdpCcBhFh\nsGgAiN/Qv9zjrPMIwpIkzQZ2AImSJBVIkvSHx0q/TFpF/sKChsLRe6DoB0h5vblrmK4z0qEItIXd\ncEcXgAaIiIecDNAeBkMe1tfcGJISEf5dcLl6oQ3ah+JjpLHvINzHwwhytIcud4EQGJbMobFHDTXa\nMvyi74big7DvXmiUcOaZcMTuQrtSi4i24Qxx4DY2ojEruNcquPLfoNs4C+b1Tpxqb+QJ76CKHwmn\n1zUPXJOzGbJ/4GhHFbvjb8di8qXQN4DWjUX0G5dJQt7VaDccwfrpIozJRrSmNmiL9sGhyRAfA+Gd\nkQpXo8/bg4j1w6nyRdtQieg2nvLUbJa7W2Dz0vJUw16889OoadqM14ur0Kx+GYr2Qv0H4LUE+fXl\nFKYGoFi9Oe0TwqGHh9AjMImkld8iQiUUv0bUboF3Yz7OYH+qI33xqrRgjCmCsifRDozGsS2CitUV\nWPYUo9w3CW9jCX6ba2iI9kfdOx15chJUV4F/BK7OxbgCjcjKXqQWjTh6+CBX1qNdJiO3HEnNu8+y\ns/NnbNtgILtIh0ar56F7VHRlK94JVjj4HfgPgoMzYOkrqMze0CsD7joJhiAMW59C1zsVBi6AzM9+\nfs1EdYG1jVBTCf6hYKtqvmknwtMm/LucRzODEOKmC5UNTxC+1FRGQAbhhMP3QI9NkD8eKrsimaKQ\njfMR5jSkeD/48WHomY5r17PgU4SkA8vCTNxHN2N+QIJ6Ez4/LEcJSoOiwxCRBHs/gpDriciZwpGP\n40hdPIdAyQWNCYjd7+O8xYdCJhLTdi9K2gtQeABN5ke4fdIQvfKwJDdRG6Fj6/Vd6KvbQkLlexic\nwWiSr4GobrB6IpyYQlq1TMdlh9nRZRAqh5XUskgs11XQUNiIub4BQxd/mj5/D9NgM9QWgUkPIcGw\n/y7QREC3dKidgFx8EE5b2NnrbtY4W3DLztnEBDegPqTBHpPI8RH1dJWCYdCL8EkSvLYLsk3Y7Haq\nJgbRLulLote+T+rGz9nRZwRLRvbB7D+Qrv0W0HHWMaxd7kGjauDIoCGkFN1F8BErNbF34V+gQ7N4\nCiGBAuWfJuzHv8VhclA61QvdMYUiezLGtGrk01ryOiXjr8sm0/kdQXku7BURdJSK2FHQgoWuVMa8\nt5FDYR3xi3Nwx+N3Eld2F5JPb6iYCuYJbJsfQ185B2qfhPwiiBuIFBQGeRnwURyMXYFxXQn0Brzj\noCYLFnwCRScQsoIIC0ReuR5+SIHUvrCvGobOBv+US3wx/4+5TKLfZZKNv7Bt6yD2arCcgsZT0HAE\nrOmQpoa95eAVAnVvQpAJGjIRhxMQma9g6G2EbAdalYL6zigqqnU0WjtgTj5BoH8QVDlg2VOIO5dQ\nrF1JkSMKWVbI7WxCVRWMLn893BOL1vdzttavISnkazC0BOkY1F+FaupamLGHQP9AzM6x3Kvcx/tN\n/bhl9Vpit90JKgkSQ6FjGIQ9A/tz4eB3RI8EjtZifnwejdpnqU2twjxuB1pHI9Zr+yOkLCRnLbQx\nQvq3EPMsHJ4Mhz6Fnquxe8/ga6/dqOV0njy0ktycdmjWr6C2py+Fffaj4ECuzIZH+zXf0WcGR8++\n5AZkkFjqB3PGQysteksxAxZNZUCLDuS2hO2D41n1RG8K1HGMrtvLoNPjUYQNl1GDwb0A13cNECsh\nKwJ5nwWNj4vauT5oB9yNX9BcFI0PdaVd0F99O4mhKdhEBnE1U/lknBdTDvZhefQsOrSTaDuiiMC4\nGfR75m1EcA7u3I1I1nwINjbXaiWJcuub8Nm3MPd56JEILbtD/yehZi6suQemXwOVGnjjOqhuhIrD\nUL4CxeyFMDQgG9pA204Q3RN8fEGbBz7RIHlaF38X/X9PcjF4ztqF4nb+sfUmvwKNiVC9EUoXwf7r\nQDSCpgB8WiHVt0DUCERxJUpLO4opHSm1EckYAgY36tanwalHX1tBixOLcUk25LxSDiSrEToj0s5v\nMa3XEvhZIeoyCUVjwB2QSFVwMVrzx1Qb2hLk3xfMLaHmAEr2j4hPp2OX6nH7eSO5FZLUz2Lya8Uk\nVzIzx48m54Ol8MxLYD8BC5xwUAfDxyFSw1FzgJDjp9h95C1Cd1lRV+Uhdt6CdPR5dD2rcRzSI3wC\nYLsKqoNAsYE9F05+jLTzQ5zpVVy/fDFjFBeG6KchX4bbtyC6t8XlyiE6T0akfwsTJ8HwZ1FkQePx\nHQQ11qJPmAQ97oLrx0CfNIhtCyo9kfluxk1ewUOH19Ih8xjHirzZsbkN8kJvhOYGsgPGoWo7EGdt\nMK5CgdMUj7NUjde71YSteged9xhMhUcJr1bQ55ejebI1PnfeTYuX1zO5ewYNj3xEr6Z6QrUmAsMG\nIhx52OI74nrmEaQcCfrNBVvt2cdEIUHbPjDudagJgg63QNV3kD8O6rrCUVVzr4dje6GpFAaMQRjc\nODo0osT7Il7+AEZNhIYyKF0Ofqebuzt6/D6XSe8IT034QlDcsPt26P79Tz5ov1FdDUz+J9ymx627\nASWvFE1iPlhPQ4eHYetDuLtVIUL9EXUS0jYJlVc8tBmC2PceIt5NvfldvinO4KbGeeR2aEGIZTB+\na2ZTXFxK4P6dVJfG4PvEA/jmfE5jQwrVaYEkvLYdqUM4xw2nSZYSYONMxOm/4/zWQuW1EfhVBKDb\nuBbys/Cb9jYktcM4pBeTCufzzrBhjLUfIClARpo0A95/EPzHIQW0QvidRB3Xge2dbiKcZIJooqzr\nQszVOtSRe6lduIfA1jIq2sKWpWCMhOyW4J0FOT/gGxqEMOmQHt6GNPlNDrfyo1VKb3zzwikOisS3\n5UCKWi4giAnoRAJFmYvxqsqEthFIZXWQ0AbihoBzB8Qfh4B3Uda+hS0uFp9Dm7jPdgyaBKL/M0hH\nBVqHAam8AKWmEf3rX9CkCsb6wrV4RQlMm4JRbnsUtzoP7cwK3LVz2CY5yBh1LbF1Gq7eugSkvehd\nTVSP7I87oS9eW5Zg/ehzdPd/g3pvNtITd8HB+Oba6r/IMorLhZzcGQpPwtpZEL0JVvWAfYcRtfXQ\n6yGkYeFgLYasIkSgBq67B5LH4FQWo5PvhUN3g0kNvgLiBRiU5j/nZM/H+je5TA6TpyZ8IbhtcGIu\nlC78/es++QYkt4OIm3AXKqjCQGjicepaYPd/AVfHUlSHFHA/gPjmbuTVbVEV+yIOfY7UpCDvGYrQ\nuqmUUjCqdURwF6WL/Kn9zMl6uR9SWgiaEX7UuFfj56wkqiKRkGxBwfBo+Ed3CtZNJva6vogdD1P7\nRQPlyTpK74rEaEyETbMhoTWNo65jxfvtWToog+LhHXmqrI6vknqxcEIXStYOhWgjoAX/ZEyqEORR\nb3I37fmYfaynEZ0cx8nA96mItCH7GnA3OBC9j4NeC/sWwYBnoDgQNGakPnMRY4dDUDXc1RY/VzYA\nNXorfnTDzFDCeIdqvuGYdRJ+6XWY/ELRq5OwSfNwH50Bn0yCk11BngSzxtDYoRRHey84UAsOBe7+\nDmnT51B9HCKHkDhtL3ZXNg2dQ2j46EPM/dqgM0o0rNHQOPZrGLsKt68RtaWRAXIuMYZ6jrfVs2hw\nN6r8tZSMDUBTXYbq1ilITQfx+lSPdtT1SLIC/3gCZr/f3Me3ZCWO2lqknBxyPv8cvhoHmUtwrXwB\nZh+DVtfjmDAGW7g/R5TjHI0biXAfxa3fh5Lihy75fSS5B0KUofhZwWmEchvk6OD5vnBfPLxwB3zz\nDuxaB7Vnxi4WAhrrL9jlfsW4TLqoXSbfBf/j3DaQBGR9AmGjf9+6A4bD4pkQPBGhfxkC3SiShgal\nJcrpDDZX34c5qSVdvn4CaZ0JXVg5CAlprw+SMRoRs47tcn/avroeEVFL7ZgvCb39Ptr/MJeQw1PZ\nbUwkvKqRlvNMSI8/ARpffHbtpaaFjurEcIYvWoUGP0SvCShHplE7Po4E413YXxtD/spHyW+1B3q0\nR6neTEdbFyK1oZB3E6/VJ/DM4LsxtduDStOe4A3vIBVuBv86xLUd0FjraZObi71hAX6ZDpDAnuhL\n4w8DkL9ai6pbB3zrsyA6G/Z+AwExUBkIk3shPfQV7pdiUC0LI2HGDLj5GSpMTcQqfZqrDVXFBK7c\nQ0j2RpRQMwiB9kglituOHH4d1G5CpKcjbdWA2gfvpSXQdBxCtNB+OCz7Aq7+EMoexz3/Dixhegr6\nxxD82NcYYrYjCpuwlmhRTxyIiLuF/AmD8OsSR+DL16JZeYgR2bkMOPIDtk5GsgvD0b9nQxfdG/+v\n7kOuGwqNddA4H3IPw/HX4K57oKAE8magbZ0MXl7o9Q4ITgErpEc10eGAC7d1MTTkoA800rqhhLp1\nI1naYxRDdh3G0FRBU95YDrccTwds2JX7MLTsBf0bYfFxGLMfoh+D4JcgOxOOp8P6RVBX3fzr7OA2\nGPcg3PQgGDxjUQCXzTPmPDXhC0HjA23uBJ/uv56uvuSX84RAlBbirL0DUqqRAoJQuR/Dv+WPBIoa\nRqmm0+X456zU9GHdve3ZG92GZVdtxZpyN+66fBpXtEbzwIcEzlsAkpm2zwQRMno0doeVUtN28vy6\nQ8f21JbXYH11CzjLoEkhOvkhKtuZ8d5UhUispeHbWeQ80JOY+izSlXx2MBvVoNvo8/5OBlZfzfDl\nc4h0RkHsOLg+C51d4ZUVc9jJIGaHmDjY7jgOcQxdRjGWD0KQp4/hpg/foK9vJlUdb8Ivrw+hXdcR\nqh5G/f39UOUfpyk4Hgp8IK4S9u8Fixek3Yj0+njI3EBNrx34tDiN7f5EFDmXItf9OCimMKCEbb1l\n0qvbYhUxNKXpsIWDpiAI+v2dpuru2Ct7Qt8H4aUsKu67lqZGsBZJsHYVbN4HM75AqTfiqnMjt0lE\nVMfj9N+MV4cRaKgk97Ou5Lu3URVVQcInY1H5pGJ7+RvsRXugaA9eZhvqf1aTODUD021aNj4WwFzn\np5Q7R4I1EA68CeZE6DYPOn+OElAGcc/A9ltR9+5AYJAVgkMhbxXaloMpf2Io7qu3o7r5G6SkCOTO\nJvw2SwyZOQXtgRqc5WpUR5YSUlWBVv0uAjtYsyE6BQa2hU0jwGcAFN0Chrdh1Dh47lN4ezZMeheG\n3AhqNWTs/XM+A/+LLpOasCcIXwgqNUQOh7Ltv57ux6eh9sxtyULAj4tg4iik6Fik7TfiXjQaNCVQ\n3vwMMmG8GzHdhk/RHq7PX8yo+vW0Tk0kav6XTFJaMvLJ0zzWcxzORz7E+3RPNB102IMiqdk4iYzK\nZ0g57WC4+ICpwddinLUOuXofTYe/wj74NM66DwicfYrDC3vQJEVBSBXB9fvxqiyluzSO/txJrLYn\nmjvfhjeuRY65FVqeqeV7x4E6Bq/TGXTNr2at1kx5VCjSaJmSrqHUPTqAqnsikPrl4V9RTMBzE+G2\nJ8BZjuHUG7S034rGFkaD4QTiyxKI+QRM8bBvHawuRLpqOPL2k/isdNM0Tqb0b1ZCHy8leFUFWouZ\nPPtS0p5LxzevHlv3YmSvfhjm1MHRHJxjrkWZ8hWavhNg+Lug90E5dhS9xoSsd2JJjYcBUTj7BWM7\nUY4Y/TZsCyBk5o/UPXQVquWrkXU+RAs/zFdfT7ahhDJjOX6nd6KL80JobDhkGeWUBkeQAe2N/gS0\njWOEl4qhBfvZYpZYEjWQJkM+WHKanylXvgFRm4Wy5Q7YsouREXPQHvkSnNvB0Q99sC/ZmqUgS8ir\nRkPtHlivxR2cSs5IHyRJizWxPTXGIGyr51Mi+SPLz+EKLUA52gQjFkHaNbBgLwQ/BrYTkD367HCZ\nweHwxLvwt8ehU98/6UPwP8gThK8w3m3AVv7raWQNfHcNbFwKD4yCylL4aD7c9zQsm4+mewvQtkCU\nLkdYKpGSJiPf+z3uAwacoT4opk7o85bT7uAXfFZZwCNyNWnGPArjulD3Yzuk9HIKTm4lT7eedn63\no/epwigcTCyaSGVta5ikRpNhR/2WBe0zFSx69WrCVwtK2zZiS5OJWpQLoh+qdx+AyXdBXQW0SIHE\neFi7CWzVZ8vSegIY7Azb9iUvOLfjdNhBNiD7GClRKjDW3YyjixF3vgr8/cE/GGQtWIqRHC701XUE\nNPnQlGagLONRnM4a3DFGLLcMwvX9Dho7CkrbbiP641y8ckyYOvTD+OBWnMNCiXtrNeYTlXjfZMN9\n0o9CKY/GW9NwJWloDExD9cE8VNffCbIMThuGk2WodHY0oQE4dmdhcfujFK1A73ag2/QiBstGQsKq\niZ79LW51JVJ4K0zBM/AJc9DZkk7I6o0UjTZjS6tBE+6H6B1K3gdj0KTqwV6Hz8It6Oa8idleyeiS\nGvpWuGlUeYFdgSUTYOZgpKwGXLo8RL3Aka9DanAjtqoR6xfi3v4lkt4K2RLC1x8OB8JjX+KY+AxR\nXzXh9FVzpH9PAnz0xFvqSVe+pr72PuxZVkRtO6g8CroM+D/23js6iiPt2746TJ7RzChnISEkEBIZ\njMjZJIMDJjiD0zrhdfY64bWN4zrnuDhhY2MwYILJOQqBSAKUszTK0mhyd39/aL9vH7/P7vt4lw3e\n5/N1Tp/T3dXTVX266tc1ddd9l84Au8uh7ylI/QyUlr9SEX8F6I6i9nO3fyK/ivA/CkMCyCJ0Vvzl\n9LMnoNYKW11QVAivLIerbgO9HtUchnZgF1Ly99Dph5ImhK6jAAgXTUL6tBNtxECass8Q8HQhDAMt\n8iMmnuvHbe7t3NboQlVNHHigH0F7LD1TLsf/4V14Mixo+FEEE0VFaYTar0JXE4NYK+D1+cjefxpF\nbEETuwglZqL2cMLJEjDZ4KaXwR7VXfbLHwJXE2z/GPze7nPOHLDbEeKzSSw7wnhfHK64sSRk3kcv\nNYIKZx7NbSk8WX4dW8fPBWsYCAaIuRYK74GYHKSOOrxLH0FJr6dl/iBCqSbc4atoW1RGVYoVoSrA\nrok3oeo1dKZsQmNHInXoieqswf1AJKbORApnJSP1jse0P56QV4/z0eswOUrh8+vg0wXw5mgcJ9oR\n4xMRnBFYE/Uc31SP15iG2CcbwduKbtLNMPF9zOcSkBweiGtEECT0e00onYX4Mh0omWNoyMykMceB\n0VSJI7gZ+SYB8yQFoSuA0GBD3G5EXbUT+0f7if7OBWfegJJY1GobwjER/WtNUCqihgQIC9D+QB/8\nvSXSF2wgMeRDqByIvzoSz2gLob33I+79GimqLyEBhj/4HoI/i8CMZsZWvo9jox9zbzc1ztVoX4+H\naOCah+H0XjiyBXSx3duv/HV+IT3hXw1z/yhEA9gjoW4b2Bb9NO10PiycDPZweGQK9Mj4qXFEdxYx\nqwm0cPhEQbssnJXWDq4EmvmOgOiiNdtK5u866by8N0G1Gn1LA9JJBfFwBYL9Hqwzu4g6qJHYFYNZ\nl4F2zkd95AiiXyyl7p6RJBVUIn32JUEMyDkSXsVCn11FdIyNRh8fjeiMQRwZC4NegT3TYUM6TNkD\n9t5g7wtXvwFP3gLGZJgwD+zpoAugpo0klFGLoaoYNfxiJGERZlUkruUqch68hYzEQu787TK62IxF\nnARJD0DjAYifgKCoRMY/iKdiFaFAIa7JJmJ3fUfQn4Y1GM2y8PG0ZBlZYxqIbEvEN7wvyaZDXGv7\nFPanUTnRh9XrIvndWtwr2nHeKyIU/g7awsEyDK55Ed6djBgVgxaXSrOlBHtnOMOHjSH/pa/o1d+C\nmWEUn9jKp/2iMN2yhOjG3USJ1UTXfU/bkBto3d/G9BmjiZDPYsnzE8hroXp+DLRLJFsyUPvuR9yU\nDIoL0VpPaMRsfOHnMSbdjuDOh/GTCAWdSLtOIq4/iXLNIOQfjqNE90I49yKilo6mbCNSfz+SbzNS\n42Garo7B0+MwkZ/txVemI9zdRWBsf9z9TmAracGYsBa14TW0cBfxET3AdxKsyyDfDz3Owyd3w7lr\n4aqHuv8N/Mpf5heifr++oX8kYdFQv+en50IhKC+CDzfA2gLo3QVFrwOgqU1oLTchlC8hGIxEPD8I\noXcUQvi16KSTbGEDlTxBA2tIWpeBlHkVDmMnBlsKTRfbUaNkQo0+lOBOovbLZAjzMa9ZAQfWIage\n4t7ZiKATcYc3Ik8cR4MtmurUcKgI4s6ORkoYjb7eS6xDwhkIIWiNIAdg7GpIvRbyHoLti2Hna2ir\n70LLFNFWPtod0U1vAkcSHdlObMpw/EIzTnESgiARClzPA0vPcvPAj/nj8PXEmj7CwwHahM/A0hsG\nfgNaLXR4QJCRkm6mdqYJfVUXUtgQTBd/THJ8OA+eX83d933Nyxffw9NPX8OiDT8wLbAB166+NIfb\n8UXocG5upH29ivOGdIQYP4hVcLICZt0LO1+ALpHg0NE0p3RhGLIUnV1COn6IgbmRFP+o0ZWVS5Y5\nnue3vMCDtS1MiLARHdtIg/MrtmhH+XTUpTxvG0JtWQWB5jO0jpPA5kTqI6BJ21ECfhoDTSBFQs5c\n5JEPYyy0Ibx6H4GAE61+JUriFBrrWhFiREhPQvQoaI0N2Jr7om9pRVNWYZSuQUKC9BSibG8Q2XoH\nrskGgok6Qjkawek1+FsldC4doYP30hp5kI4pmQTEcpjyOBg7QGuFhHgYL0H+I/Dt9d1R2X7lL/Or\ns8Z/KHu/g7KTYHXApOvB5vxzmqSHoLvb6Pb/Om3IMsyY172vtKIFdoEtGVqeAs9m6LwOYUsAvec4\nlOhgXDxCxxRmhK3jKamc3lzOnIJsDNpzMLMvbIpBX3+UuLz+aMkuhOtbEVtHoWvzwb4/Qng8RGRB\nXBSYPHQmOUjYcZaED/fzyYczKfEM4Pn3fotzXxdnc4L0PpVKe3w9ETWnobcX9mZCrQGqdGhCBErS\nKQI9axAnGdF6XoZm+x4htBj0CehiocXxLdZ2Gy3WAHGaSPP5vdz0rMziMd8gj2on8eQ4BCSiWEIb\nH9HEs0RsjEaoeAOqNdgyCUNkPFEXSYSfrEUwB2Hne7DYgrS7CmuYiRMfTqd2gIEeRxvpXfgEotFJ\n48YlpD9TTdDuJ/i4HaGmAhoMIMfA1Sndc4A3Pw7BJFx3jiHS+DiGIFDqgfI25Jl3MfDeRRy7eABp\nuXacWjjmwvfJ7L2M9PxtKF1buMQiYIhZiJb3LV1f1hHKTqVlikZG/SREpQy1Noa2yBIcXV645Hrw\n14DnE4SMGoIpl6OeexdVGYq4dil5v8li5hsa0hkbSpiM2OmmM/NuwpR7EUKxCAYDCCLCjCdRDVuw\nyg9zyLubQVMOEKowI++NI8qaStWkPIzVNQTGWbCqRozyCATrNGARaCHIuQeyPZB0FvY/A6tSIfUK\nGPRSt03iV/7ML0T9fu0J/63kzu4OJ/nNC/DBvZC3CZQ/BdPWR4E9FVpP/8WfaoIRmhRoKIENv4et\nBWgr34fQJsQYLwwcAvnNaN42xLs/Zsq337LNl4i+/WaY/Hs42xeiRsPIZxCzZiHlrkLUD4O2A5jP\nNcOEOTAgGla9AKPuhNSxuCMMZDxbBG/sRJ/sYVr1Wo7Omc+qh2eS6TuG3q7gWNXcHfpxcidEPwNx\nvwVHXzC2IrmrMR4LINd60J9ei9ioogY+QaeNQzGmoxNykGpLsZxooO67V7n+xRheulVmvMlLz9AM\ndg4+gptuA5GJwRiEHFxzz6DN/yOMGA7eKjqG12PMHYbQTwdpkfCHZaiqRKCvm+K5Cbj6OEhd6yVr\nzjb47mvobCdi0iMYhrdivL2Tuh7xEPcpdIyG4Y+A0g9OXQlGIxj9JLRehmHzNnj2agjWA21wYiuS\n1cDAuRbKttdzYl0VatpoBP83yLV+DIcFTC2TEJ0XI3WGY410UDE8juQP3cjOo4iaFyV5Hl2NEegy\nIkA2QK0R3j8HlnfRDXsDOXM8akUT1X0CtMda8N39PUJLCEGvgr+J8sZvKJ8Tg/jDcfjkaqjIR/jy\nVbSydykomE+/4EFkxYTxmAV/i4uDFzVz3J6L7eMgccY9hG+rQxz4EATzwTAFAkGQTXD2Jrjoarir\nEKblobpPEjiTiN87F0U9/i9qKP8B/Dom/B+KJMOi5+CS28Fogd3fwLNzIa4n5MgQnQm1WyE8+yc/\n07QQdF0HniCE+iP48tHUTLS8eoiWQW+Bjc+jlbnwFhchZ/Ri5Mm9tA1xEIhJwBA9G6bN/u/lCUyB\no4c5PXg2MZbBkPc2hHeCMR+8Z4lX/WiXyAgPz2ZSvIG9t47FJjpY8O5BdBY36tRyhM19EDqOo5YU\nIpo0mLoUpkndq54FAwgv3YzYchw6ziCIepSgH828gC5DDBEVl2Lc8A7bTRN468QDLHsulsiV98Ki\nryMuRiAAACAASURBVIitrMG87hj7F39GP6Zh4QwSUcAc6ju+JE7MJ3CFnYCxiAjfG+BaCVPD0VbG\nUmVNo3zuMFISi8n2Lsa07U3aPxiFe3AZ8ft3Ip76HC0thJIjEVVug+0/wO03g/sMjHgWjveBptu6\nwz0+Mhbq2gm9tIKAKRyjKRKxIQ9W9kMKNJCYIXN0o4ijIpmUmK/A2gbhmbD1UYjLgMG30FyxDsew\nRxAPvkfweCPy9E/wyncSa3cjbM2ArU+AJxWWHAWDEU7fTGh9O22IRPYYSXKbgLBtCagC7VGR2EPN\nRK2t4uRDaVhfiCdy9v0IbfsQEgbSnrgDX00e1q+GYJ72FN6Eu3HXtaNzQLihk8DbIbzNIwnLuhe9\nbATPETDfDNr3gAreImjeBFGzUXUqwZEZhIJ5GI5uRQqbCGEV0KO7LmleL9qp44hD/4c57v8b+dVZ\n4z+YoA+iksAWDjN+A49/B1NvgiNN8NUqqC//6fWBZjj/LLQ9hpA5C2FcAoxMQZh5Oc1JTnwBFTVn\nPoErMznz/i3II2ehvyoWYf7dzNy/CX2gBNZOhNIf/jzGp2mw6jlobYErHyPt9C448SYMboZ0oMEN\n3lz4YxtCfpCuUdewfuFViBaBS75Zgb68gFBxGnKwESnehzriVoTTl0Ko66fBYHR6eORTeGghLOyH\neKkLXcJ2VEMDBr8R3dYvcNXF8XrRCzz/upfIPUtg2mNgtCKER2Cu6mAid1DMAapUG+7AF0Tv/RSt\nYT/e5B4oTomIEfsRXlgMbgMt0jT2jcok1KOFUQVH4d4UhMY1NF9yFo8fdK2N0PlHNFlDswiIrTFE\nHipEnfItWsk8OP572JcDtR/DThEcTrgqEt79EmHAHHb1mMNjt6ZyNCsBtjSAEE2MU8fEHTcRLHwS\nVbOAUg2dKsRq8Nl8Autfp3milbjdxzHf9DChxhg6H1pOR4GIHAxB713QYga5AfQylG+gqqKRTxf1\nxZhgx5AYS18tCsO8VaipOYg2L+0hB6a9VfS5v5BmZx7Ccw/Cxn2wdTm1AT05721FnnYN/l3388aU\nyahWGVUfRVpwHqBDsjbTYn4PtnwEwSJoru0OhypHQtpSNL2eQPs9BIO/QyctxmQ6hdx3G9TdAycu\nhfLbwbUD9eFJaMfzu6tU1xnUz/ujfTQULf/j7jr2vxnj37D9E/m1J/z3sP4FmPX4Ty3PiRnQLIHZ\nBdY/OTW4z8P5RyDQhnAiGSqfhNsb4IyJk04j2xMq6TErlamvdtBg3IW12UTWdxUIl1wL/mKUZQeR\nHnkHjiyBkmpQ3oWyYug5DdY9B/0mweDL4PXbwabCjAfg/CjY+Uh3WMwUC8LocFpHj+ezKBfTY26k\nquIBOFmMMGAwgdJs5JAXws8j9H0EbfcXCD0WQtlOOPpB9zMIIhiCYCiFGjskPA0pUejrhuAeqHD3\n8ZeI6vKwcvIWtlSfJ3PyMwhhkQBoDgcKEnp0jNznp73pN7TnOjhjmg+5ifjFj0heGUKITMD30G2c\nqn0ayb+RYWcC6Pe3wRU2oi4twXjwONpBAcfAw4iHgwQSDeiMftQ4jZCvieCIMEQJRGRkh4pgb0FQ\nSmFeJPgiICoCXI8gSclMM+eS+8O3tEXG0JzaE0tTE95Jl+IwVZP++31QXwC6JGj7AQQNTdNTlnWA\nHqc6EA69DlHpmBZEE9jYE3v2MnzB69DlxMDut6BXFrT9DvW5z9l390QiAnocFz2HWnETBurAvB1l\nwndUWtbRZ2UxrpMK7PehFt1G69WTcH7yMmz7hpxt4ShJXqTVr7Bq4uWUOqOIr68n6tOeSB13IyWn\noJS5UG+vpz39DsKqkxGU9dByHA1Q9qxH3LgEXaMZ4bLbwLQGTBY05TPU8T60FkD5Bq36XdSRMlpE\nLYFVS9HcbgxuN4ERuehzsv+/RUf/1/ILUb9fSDH+wzi5AeIyYdg8OLKhO3JVeByc+h4yZUhLhuNz\nUVp344sMYv5iOML8GyA5H6p/T1VbD471m0UERqYda8Zr6SRyUy1SbyfCVXMhOhntVWjOP0e0dTRC\n75FwTgIhAzbcC+oncPtHUHiM0BdLkMYPI2b3e/DpE3DSDZWRMKYv7eZGOkSZbbEK04PfEanVoUUU\n0zFHj16rQZdSha/DjXe4TCD+bgxRKdgtsUi2DEgd1/2sSh24rgfhXeh4DdRWqN+FEDWdhu+2c92E\np8lpNWGY+iExHSsoXHEfWSmTYcI8REmGQD5svhQh7wxh/S4mb+0ulPjPyaiQaQ3rSVLnCc7mz6c5\nvo7slWXYlU6I6gs1IjS1csx1K6NGfY7J1gmddkgdjCFyPBQdJhTcin55CGny5ag9v0RtT0doikCo\nOA1KPMSMhiOHITYWwm1wdgEUx+Kob8Bx9Rnw3ISyeTVHcp2Y81ViDi8hzHeEsJM54BwDw4qouzIT\n28H9GI020Lkg7wsoyqLr7AZMF0v4/3AO3aDxGONmwahFcPRuintFE+8VGLxuOYw8hubMIGTqia4j\nhLJvAGltCrIlmsj7Fbytc9Ddno/4iAuGz4PCQwiBWjSiocZEi7eRu1ZuRfIo6HqFEZrehfJ+K4bq\nVvTFXxBQHsKfUY4WPIscPwhFvA3dvKcQzUugYypMugLF+wa0rkFrDuA2LEDfthN9WT1t9EBs9iPW\nOGgfM4PGQRH0VqZgk/v+O1vXv45fyHDEBYuwIAhTgdfofqSPNE174f9Ivxp4EBCATuA2TdNOXGi+\n/1ZEGYr2wUXzIX0QLL0cSgvQkoIIMSFo+AK0CMT2VPymIrpePI1TciC07WJH9Qj82QLzj/ZCnDYf\noWMeVmsSyqkyxJUl0H4Slt6J1wjeXU1oBbMRonvB4lVwUxbUaDDEAx8/CMNn4UuoxPz69+gDCoxK\ngTdfgWMH0JobWD7LTK37HLd++wFRdS7oXEmiw4KoqBgv+wP1WSFsc27HnCxj7eyJcH4qQtsHUH6k\nexjiludBuguiPwCpB1z+GeRfAkok2HrQZ+gCunR6WnN/h7Xicwbai7giaj4r86ajRb2HrPZEzqqB\nE31g9iM0uNyU37KMkXviaNyWQvugdDoyRmMzHyezKRXBVAwdMmwugqQBUH+IPuoGaAqDWA/EtXfH\n6TBcg3r0R9ovysE/WiBBHozYtAnxXArYR0LqpZA2BU79DsoEqMuFUffDqTuhYxXMnQgn7oND3yMN\nimX0lja0H7+ldvB4tk0ZhG/eUHLOVJBiK6ZNV0nvxHY4IoIP2H8CrfgcUY5O2n2zsWbOpH3uXKRX\nr0d37gNavCUcvn0u+koZy8hJIJzCmzCcztbNiE0CXQMGcHbHRKbrvsYQnoVh8R+wtbYRXD6Yjq9X\nY7v9GgQ36PK30ZkUR78WI1m9JAhmQuW3KPmRFA8yk7pwDeY+F6M//hahndV0Td9CwBiPVdyOJCRC\nTgbEtOPrWkB7Ui32uhYaIq/EcVDBWOQCczKRSUlQexjhUAzOqbPp4ckES9i/u3X967hA9fuftO/n\nckFjwoIgSMBbwFQgC1ggCML/ucZKKTBG07R+wNPABxeS578EVxEc+fKvLyF+9RsQntS9Hx4Hz++E\n25agmiSUqmQ4swcK/Aj3HUTwTUfviqOufR7LbUNJDdMz89vD6MfMRn7nYaSKs0g3PY4QY0XdsQNe\neA6mPQSjn8ExOQct6nnoOgLBKgjLhphU2FcCcVXgvw951Ul8koT3Uhv03IDGY2j9Pia/7RsCcg2X\nbzpGWISdJs1B048agUoL1Ghor95AYN8b6EZaMK5wYmg7iTxqEkqlC9ROcPwAa/rDijo4cgrcTXBy\nIWqwlkBOIqFIMxxYTLDiDqyRHkKOBxDbPkRTfbQPy0Z+/yzCZwXIo8rQjDJkDaW9uISBD15FZOYw\n+ky/lUzDGErbm4hcu4WulVGoqZlo2T1ghgiDT0Oymc7waAjrAfY7Ies8nBoN04ehXp2OwfkkwtRH\nIXcq9Lwc5q6HrGnQHIR3fwtLNoJOg5794cvb6azaTEBMAv3NkHcS6vxQnoB2YBfK1GwSckdw2Wk3\nl284giezlt2Zo4g7HY1o0GDai6DqIN9LV6oBuUbBWZiM6eoriVg9DznqC9SmbziWMZx9xt6k+09D\noAG104Du+08Iy69BH9uGs7mOhMh93ePmtcUgSkgRERj6ZyHqZZo+PYJy6QMEn/yczQvGMvh8BcKb\neQj7SqDdjr60g4hSM1W9E7vrX+AMkj6Avfg6jJvsdDISr/YiONPArSEckzgmX4bkCydlYx72llLE\niSHEWU+BuxliFZiZBC8s/P+XAMOFLvT5c7TvZ3GhhrlhQLGmaeWapgWBr4GfmPA1TTugaVr7nw4P\nAYkXmOc/n+hecPgzeGEgtFb99/SEbKg59edjnQHqTyGkTqL6tjS0ns/C1n0ELgvDnLeZsE+rif2k\nmLlfbya95ChURsPi4dC/P0REQeU3yNMmElzyIFrTLqjLw/jG1VhTw5CSp4AhB47MhkGZYLfAJydg\ncTH0egn1xizq3x2MPCgE8ZcibFXAOp5eFYdZXLeMAbMvQhwyC/dFsUjxZjxVOvYvHUPLXQ6cxkak\nnuH4auLgTBeCfTXa+UoYeilsb4NeXhguQM1yeDQR7dPVhNq6CHZ9hVrxBX5gr3MMhtoozhlGcSZh\nOR3qOD7MXkzDki8RdDJClALyVwSWDKHqwycZNFpC8hXQHPsESa4aWsZ0oh85AdNICf/pcLzySbzF\no1HXp8J3KhHRpZDyMWS8hrusk6plz6FNG4wW7UET0wGBZt8WNMNMECVIGQKOgdBphamXwygX7FsC\n1ZtQ9G62PxRBYcGdaMePgc0AVgv+N65AuSQF8l5Eq9qHkHOUfraJzLC+z6viZZS6h0HUFeDtgzpI\nj5bbQtOSFPwrNtDSdAw5XoKuOziYnMv5pCuYKA5hQJ/30MQyPCv6EJo2C3WKH39iNLaI91FLrd2u\n4X4XtFRC7Vpoysc62I7zNxMJPH4RNe/Np8/ZfOQ5S1Df+wPaJBuaZkNIGUxMs5m471dBwU4EMYj4\nzQCEWh0GSythKxpQGl7D27QKrXoPvsQi+tQOpzMqrvtdnqyBM2GwYxOUl6PpZ0DxaUjL/u/1/H87\nF+as8T9q38/lQkU4AfivKlX9p3N/jRuBDReY57+G2S+htjTjfX48XTs/+WmaztA9V7ixrPvY04ZW\nvhdm3Yz9kBW3fyOMzaTlioH47T0IKQHah6ViOLULiqug7hxawxmC6s34xx2kbWshjb9fC62VaFV+\n+PYV2vwRiDl18KYTtdOFtiEOcgtgUDrYzHBuG3jDMHtziNp/Gr9qwz3pGfakZeArlbCNfhYOXws6\nO2rVF7iT9NjvuRj/uQaM+XYEfSSWjlaCPVvwdTWj1SYj1L+KOOAMbfZ4tMd3gusu2GIC51q4IgCL\nZiIZr6Pz0ylUrKhFUnSMFBXMEen0aemimH3ktzoo77TS5NDAEkD7SIZKkeIaPQMG9EM4omI/nIvk\nVdEiS4glA58QRBJOY7rtRXT9eqMPyYilJ1Fj/YhGFU2fwfmlS9k1eASOTBF1zC7ERh3lPiNPt6fw\nR0FA0I8GTye8fAecPgiPLQNjPRR1QcsB6CXgmL6ctPVB3OlOWhLNKH7QZi4kaFyDFjqCNiQE0/zI\n5T6MVVnQWsW9az/gZW0+ynN3wp1vEgqPwJyuUjXhd6x/sjem+2bhc/1IHsc47uhJpC/ETIbiLd5G\nc1FP2i9qosKTSqHlJor9qezRPqB8kMY6yz5Kh8fC6hnw3myU8+1g7EDe/gf0v/+Rc80JlO93Qnw/\nNK0AzHUwxQbT5yHMvIOwz9+E+8ZDWRfctAROiBD3CqLZiXVrE8ayE2j+AxhL/CQ11uAy6yB0DuKj\noEKFdcfQ2nsjKD+AcQjc9vK/uoX9+7mw2RF/q/b9VS50TPhnz2ERBGE8sAgYeYF5/mtI7If4dBHq\no2lI224jVHEXctwEGP8VCHooPQzNlRCVCi8MQDGJdFQ8hP1IHS3WSAxKPOiiKZ/clw6aUIzV5Axv\nIGxPJ9pUCTXXieoIEni6DaW2lfBxTqT6OoJtDvQ3OQi9V4HY4YdicEvFtF+toskyTGmA4NXIYb3Q\nhYWjM+ZTK45BJ5xgGe8wtfd4vLW3Y+r5Gbz9Kox+CU/LmzSOdaALTSRm2S7UW9Zhf0VBlHTonY/i\nG3yE5vhDROhUNOtpvKuuxPJEBbqcsVC2Bzb8DnWwlxCb8SZuwdk7RIxfRtjrRH4qSGhsOobDx2n6\n4EeG9QyxOG4iaY8OAHMLVGp4c8yETygnasARMNmR9qwm+vXv0dwr6TNyEV1yGaawgdBahFARjVie\nD7c8hii+i0nXQrBiNa17fiDtnnuwjYslmPEWUo2VZxzNVKgGXvXugK8OQ2El3PQ0pPeDt+ZAeR5I\nOohOhVHXg+tKep1LQ8v9hq62bDa/PJ4Sq58bGrvQr3UQGNSGzqVHDE+DmrlQnokjq4gH3niNbcOH\nM+Xsa8jTW6B5AIM+XUmO3YI4xoR/lYHdzw+hzWimPqwK79HbifOXo0QkEKc2EH24CI6cIm9UDjli\nBsldy3FGVRGm+KHzPGrGRBocZ4gZvAl5z2s0bXqEj+bez8IX3kdduxKGbgbFiVCaBdqTYL4P7nkf\najfBjg9QFm1Ds6xGK1yFzukBl4AW9BOyCmiVMuqJd4k2+dASMxB6NME2J9x4J9quDxFdCiSUQOiv\nDL39b+bCDHP/sPl7FyrCNUDSfzlOovuL8BMEQegHfAhM1TSt9a/d7Ior/rwqRZ8+fcjKyrrA4v1l\n9u37C3F//6ur8Z8wW+oJ3DWD1O01ZJw7hKftBP6ayTg6qgnz1LJjyybkrWsZ01oBnTJtNVm45sai\n96uYw/PgbBh+uZx+JyqQB3sQ9wehUUN3sZ/SfXqiVrVgsMiIqT7OxeZSNew6Jux6juBhF0JIoOpU\nGpHldejyQ7hX6NEEgbi+HThuqaZxXSmCGCCYIkF6J55BOi4PrcKS/y1duY1YrhpJS1cG/t/Owdrf\nj1hhZk2BwCXhHSTPDxFcI9JsSqF90xr2JWYw+YUWDi0KY3BOG7ZP9Gw5+BadLakomkxUbi/S5P3E\ntAQJaOEg+XHpo3EYajg0cSj+plP0inOwYHFPEqKGIeb5MIbqKA2NwjK/DktKCWHHRJqvG0P5hFyC\nFgNDxwbpbI9AOvcpxmg3gboK2tYUIDX7CY02E1S+x1DsoM0s0PzulTTNuYeg7Kb4yHdYHEHucN5M\n/4JC/nDuafT1lbhq0tg+6lEiDq1iwPJ52Fpc1IcNwNjRzgHnb7DvrmWkzYOu5DCdD+VisAj02F9J\nZMZrbAoMZ8zwPegVM23nHRQbhlFtuZWpkY9hs7tJHO9h7YArEBtKmJgawH2mAqmhBK1DRI7xsn3m\nZYhlRu69+30CVhlbvy5kT5AOXTSBeIF11/ZBNU0m+bQZt6mGxpVmhCETGDzsQ7Q0OwerepEeXs6O\nvD1EeOIZ2/IlS0ur+GDcAkZ9eSdSlY/m1nQKIoYRH6PD5t9C9P43sHQ0Eeilp9qwA2erD88AA3Gt\nPvaMmMEQeRP2r7z4vUHcapCShSlkNBUTFmjF3TuCho4VmCs7kdoyCU8+RelzCynotwBFr+/+2P+j\n2tU/iDNnzlBYWPiPvemFqd/P0r6fg6BdwIRsQRBk4BwwEagFDgMLNE0r/C/XJAPbgWs0TTv4f7mX\ndiFl+VtYvnw5Vy1YALtXwPbPoPIMzH8MEnt3O2GEx4Oso047yyae5arWr9CfvBLP2XY6SitxOC2Y\nEuOhugBc5SBJ0GsMWuIAVNdrCGUybePDaR0qU6Drx4jKszh/7ED/WQda7wAttXaMTj+mYBAxGEK4\noS90laA1aNAVhnubFy02DGvmZYjfvI0WZkK4Zx6EmsF1HrIUiPBAj/UUqjXsjgwx/Nxz5PT4ACXM\nQFfBzYQ9e6p74UtEyIoiFNcbISqRoP57dBk26m5oxvmHL7GOj2ZJ8AC3LHyMsBscWNISUDefRej0\nUzU+hZWj7iFLGshkTxBd40uwKxxIghlZaHsfJjgql4/bBtB+uo2FO74g0tqB6PMRiMrEMG4xjVVv\nQGQpkb5chIJ6qBMgrQUtsR9CphuttJiymATsP9YS0SCgPvggqrwFed0+QpUB8tYo9P2tiM0VBR0d\nKNYAL9/wOLni5Yx+43HIKgC5FtKGQ1I9mM7CbidELIUNS2HgTAh5oWobCFH49KfRhvZC87hRNQst\nPZqxtXoQAxpNjkTCE62Icjtemwx1TbQft3I+PpvO6EiCpjDm1p/G9M4xWJgFHXupSLmcjY3R3HDj\nMtQeKZhvnQclT0HcldSWBtk9wchFEVNJ7XU9mqahNRyj/YPZOHOTYdg7qBXv0GXehdLpxdp3OztK\nvmHM7neQDYmsK47nkik/IB4xoSXdj2iLgGPrwLsbIkU0YyeNox0EbcnE7r0WLeExaLaAMxXF7MWw\nxQlmPfx2K2c6r6P3Nz4I20koIkhbuBHDFg/Wvg+iHi1FaFhG6EhfdC++jjR06N9lpFu+fDlXXXXV\nP7q5/kUEQUDTtL97IrMgCJqW9zdcP4Sf5PdztO/nckHfAk3TQoIg3An8SHfn/mNN0woFQbj1T+nv\nA08ATuDdP03+DmqaNuxC8v2HIAgwZh5EJHQLsSMGyk7A4R+gpRaUEEIChI+T8O4eh15uwGyow5gY\nR2d9Hc2tDhLVGIiLgY4DYN2GUFWGZk9BvSQHR30ZklJKlH4GGuNwZX2JbgEI1X6MiSas29vonJFK\n7Rw9qbsqkKt8iLEOiNHh39aC0+5GcH2ElhML0xfCJXdA2StQUAIjX4S2ZKiootfw6fRGZJ/8HqK/\nCLFpOLqyIOKoK2HzahSnGeUWPdqZNhpzKhHVSKJDqcQ+WIB/8xy0Urg7yY7noXhsZgmKT6FNvY3g\nt19i3qFwy3AjYVImeE9DXQws/AR2vwPGwQjhM9G7E/jN0X14zp9H19UBZomFT3zHwrONjDr6Fga5\nGPNZC4K1ipCvCqnPOIQfavE+NQlPrzoiyotJXV1BV5LE6R9CiPdvIHHxIYyFiTQ0FdHvBh3m6D4w\nzEf9/kQemPo4vztTTdbIeGjcAC0ipBlhTy2q1oUY3wsuegKWPQoxKRARA+YK8DXD+FzUwvN40n0c\nc/bEZ5DpWRDA0z8cx/4I9vfoS73ZSP82NzbBhWKwYx0nMkqVsOb/QNOwy3m2xzPc4Z9L7PYkmuVE\nfsiM5+KGEH88fDs3WJ4C105C6YvZ1XMUnZ4WLntoGYb41bDAjVC/lbrPG7CGGgiMvRG9vT9iqBfi\nuTyCPZIIhO6jwZGFLuBAE2rpMqcgfiJABAj73oRxvWB6Cih3oZ19HjSwSNPpai/G53kaVdEzd8JX\nPOb/PYPsO6H4cQhVwuqR6LNrCWRaMTiG40ruhePDZVhqPLjHvof+sruRNg3HoMtD+O43EPkqZM/s\n/ncYrAFdwt++ivh/Ahegfn9N+/6ee11QT/gfyb+8J/wzv9jb1XeY0HopNFah1R+CXR8j9BqGd8wi\nTCseg1Qr6NvAfRi0SLTjzWhqAAIK3oWJlOSMxJuvY9jpbLTY7+naeAJPlg01xUZkYyeUdRAUJc7d\nmELGYx2Ysm+h6fNviNKdAyWAUgVCrz4IT1+H6Pkd1A6DXY1Q64LlpyC2BwDrz17HVFMP1ORRtKs3\nYm70oe8IIAXcqEYBcb0ezecHgwnB6UeLiqBtvxuj0oWcPYB3B03n7lNvQSgRejwFPQfBhu9g0hWQ\nmIqGirD3adj/CUSPAUc+6JqgOBEGPwTbH8VzpBbmDUaedYo15vcZvukp5FATUXktSE4NX6+Z+M0e\nHBVxaF99he/eMIxfN8LkMILnzQhn6ik4Fk3yay0UPQh9b53O7qgxzIo/jqpv5cd6MyMPbyDMEgs2\nKygeaCtBu0jEq4uHMTdgrs0gsOYxAuOS0UU70ZOEUNmG399F2cS7qD76IuY0C5YaO/ExiZQVbuV0\nagpaVCxeYzaFaishRc9lOo2xgVnoG25AiP6KkGsEaqSdHVIO31XP4PV37uGTW+9ggVCJrmMV7v1x\ntF/xGGWug+THyoR5QhxMGYrV7+WKtRuYVGpEeuCPKAdupOi6r5HSR5H+3v0I5Rtokwoxyi1oCWGE\n2luxvlMFHZ0UR6TR01uMYAFGJyCcESG5L8Tp0GIL4WQVyrq+CBeV4ylsRbbF4nuugw2heewuu5aX\nTmwhbOJCtJZPKbN8jb5Kw2ZqQSYdy2dHIFpEjelF62U1iLITx3cSgq8Vbi6H2puhaw8kvA2On7d4\n7X9cT/jk33B9DheU3/+NXz3mANpbofA4nDkGky+DpFQANE1BE5oJOlYhhy+Cqv0w/WE01z6M749H\n08dA7+FQXwJ6AaHDBxNeJ2BajK4IDPn19D22goqByQQiNmLYE4mtCGxX6lB39Ec4vwmtXsMfYSDq\nsxbqZ5qJ27kbMTkaLq2EhkTE4myEm+9GSDkLwo9wfAOE1qHZg9BZiOJ/GdW/g/72Vnyyiqx0IKuJ\nCDWNhOhJMLULXXEpgZkTkULnEUKPUfb8jehrmtAJKgZbFHLv/iR1KlRd9CNJXQ9BWyus/QNUb4QV\nGyBhAFr7SZotPsLNCYgpe+FHHQz3QHgjbLsTIqIxfVpI++23IYRdyaVjN9NsChDe92V8EddhapCR\nqg/jGxFPfZ82YvU9Mb5ShnpDOM3jE4i6YhfC+jvJefUZWs9mExYbonZHEGY2oYx7jtDGZ+gxZBtS\now0iZ8DMJ0BQYc27dA36AF90G+H6u6BXJNrdgwhKJ2kXqqilDPO6AipuHUICuxl44jyW+LsRCt7k\n4Kx5lPTtg6nBzIikARiJoMjnoqb2FCnpj2LUpRDUTiNvWoBuxHIw5ZLe1cjCt+fz/dwrcafn8nIg\nmuimGOSxTdTZzpCgepl1+BBRYSHiLSrZ9iwy9UaEjAnwyEVI9yzBeH0ellAG1XfcSeKXB6n2BVJi\nNAAAIABJREFUv0mf05/gV6oxem9D67cCociAKcULJhFBrwPfRLh3Kbw5ADwhhIQ3oekzpHFFUNuC\n4ZSA2LMRzZPAJc5J9LK+QmF9J2310Uypf47WftmEBukYkgdS+3mI0qPFpCJMWI7drqJU3Isq5CNa\njQhn54DNBInvg/3vmnX1n8EvRP1+IcX4N+OqhR+/g+8/g4JDIMt/EuBSuCEMbd8hQo6vkc6WoFyc\niUgx4mwVjlWCqwrCBKhWYXkAIfVODPNiUQfWonqtCFYPshZEammH834474G3FYg7DoZUtNEOlIfC\niDd8RpVazfmaK0kzlUKLSODi/ki6VgSDCynmdij4EVathzc30dL+ODp5AaYqE7I3kYrabML5AUNC\nOb40N7rCMiTZiBD3NlrDrQhiI5JwmIPf3EvToUaCrTB6zf1Y2ldDazVTjrbjOTkXauthRjNctR+K\ne8PmxdDegRjqie3IeroyNCw+D3RIaK7xSE27QK9A/2sRwpOx3PckLbm5hD3xGLHDulCXrELKEFAG\nKXj3BInwn6ImJ5zqkILugV7orTosa0og+UVQFGo/XoTjmghOXTeWUcO2E/3EMboOvEnRy70x+axY\ndKVoje9xpjyC3hs/QMusQVMMhFXegJjeHbPC1xnktP8sQaWT3lubiH3uDFmm+Sh6D6EDrYjl7yDs\nKCbrwWfJECyEf7uWTlKo4FpSTV1kWGuI0J5DCzUQFNrRbHl4jW9jKjlPzxe+IeViE3H9f8sgoRPD\n8e9x2gfzZZqLwTXnmVy7C5vRCxYfV/gvpU0241GPYMxyInXlwtKPiYusxND8AR36SMrGZ1O79Tb6\nKF0YI79BizmJsLELweonMqIVLSCA7jHwfQ1bx8K8VLjdBesfgNkehHoFt70nxocFtAMK+sUxmPou\nYWhsOJr+KO66o+zsPRrJFkfStkqkt32oV8mQY8E/SMaUPKjbH8E3BnSHIDYajmyHK06D/e/yPfjP\n4Z+8dtzP5VcRBujVF5a8Bfc91x2Ux2xBKHoMwflbZGE9QuY0Qgd3oUuYiHgoCA1NcPkfQHkZHDmw\ncyesqIVmHdrcbOqGzca55lX0ZWNouqmU8N3nKeg1lAHjAgj+AoRBIYQoCaFjKBxdg9bgRdg4lBS5\ngWiXj8bUFE5OyCUQqiHbchaz7jNMxwzw0WOQW474Ri5hsSZO3xZPdIub2NMn6fn+SZQ7NDi8B3Ho\nJag9+iCnPoKmT0RrSQXrBFwuN43fFzP0JglTUhh2TxVkLAXbR1iDe1g5/vfMP1qAPvQjwts9UCNy\n8SbeR/DkZtTasxjMIv54icp1VtJNKrLdAI1hENLB56/AkXXIV63FtvQZfF98jGmoFXHSTjRjPMqw\nuUj99eiqJVK0HE4OfZ7UfSXYTItgzBCwzIb1t5GYdZbV1XNJmeIi4kg6NlMx7v7RCN93YmiKofzi\n2ewNNzGw+DiC0YaYD5ZaBffm1fhGFBA27zpkTwIDC7qw+I3w/eru2B71LciTopFbffgrgnRW6dEs\nOsI/20TR8MPA48TgJSB0YXePRuIcmt2JoSYWpXcjuq2rYNdhOh/vg76jFIPxWQ5hYupFdjx0csOm\n05gi/IjnF8KN90PVIoT2IpwNX6HUNtChfIkxZMRoS0c6HYQHPyZMF4207nWa5r5DKFtDd3QBQkoI\nIbwTZFBazbT5w4jtehPCgxAfDoZ8eHYR3PUtaCPQMo+h7PMhT3oAPG+hTXsCdfFcuKUOd7aRhphw\nUg39We6aR8dkibtm9se8ZRD2mkKE8jDYvxQGnYGTh2BWPvgbwfItFH8BQ5b+u1vmP5dfiPr9Qorx\nC6B8P0RlQPVxKNkJ1eugYyn6y6/HG9OfQ/ExZI4aTfKe12HOMtj8PHhEyNsNOysgdQjqkGr8STU4\ny1209Y7H3V8k5WwxmAI06gxoci2CrIM2L4LYCrqNSG4/oXOpkH2GMkt/SiwRFIWnsuD9TVisEXQ2\nOSiKb8ApLiZugQedN4Rq7ETXHCD1cw/eWAHVlYwxqQxjYwhaZaSjG1C7wsBxGqFvfxTTZE7PvA9v\nShyDnuiLoeQoWkgimO5Al3IFqONQar5k9NoPkBtO09aajumKIP58FZM9D3O8G8FZB74QhjEb2JOy\nDGXRj+REFsLFT0DiONA5QDoK/vvQ7p2CbrKM0tqM1OVDGPUhen0Cfs+XcHIvwpl3MP3+Ouqzm5CP\nHUE/4FJEu4vdwwbiqshiZtgK5OYAulMD2XPdHNL7BxmwLhFXZm82Va/EancT++YPNNxhxrwMTEIs\nxlQzslGEI2uwhHaBXusetlACMGcsRG8nUFZAx3IDUr90dF8PwJddT5HpZgxEE8fdmJuHUOfcRZ11\nBenbZiLMPASyhu6daKS6EN530vDvCREc/UeOcIopTMOGglmrQtFWoZUChg1wYBToG2FdL/D2RQpr\nwOFqwzMuE6XjAN4EC9aPl8IbeSj9v6Tf/C+p/u2rxKS3YzncDsEqtLAuDNVeSuU0YrNOQZcV1nVB\n4kRI2wmrh4P3JqrXniV61k6oWwOnmxBKFyD+P+y9d3Ac5brt/evuyUkjjXKOlixZknPOOWFswGQD\nBpPD3uQcTLLJG2zAJAPGgDE2tgEbnHOOsmUrWcnKoxwmT3ffP7S/e+536qtT+9TdG/jOZlXNH9M1\nVfNUT69V7/vM8651pZ+OdD0XJmTQ57sKHEXVPGV+k/boWN4aeow+jnu4fMVfsCxogtrnYacNrnui\nN0sQIHI8tJz6fXj4W+IPon5/+gm318BX18DyUbB2EbRVwqAFMOgaiApHTyfKiW8ZaxY4VfozDdev\ngdiBUH4Apj0L+6vALRFMa6VjUTSGmh4MtYcRHGFYnEfA6UZTL2KTXTSHRyA0aBAEM/y1DsT+uPpm\nUndSx85+r7A6fxYfXHsbCck52MMNaEelENbkJH9vOaZ+sziafzvHYkfTobWi2k2EtJsIMY6ibZKd\nYI8RzS4RWpIQN3uQXd1w9Cu8L0+k7uO3iL8qneg5Vuqc7TQMjSBgUyk17MTjfBOkKNS6WEJC+/LR\nVfdw8YFXME47gP0+O/o7FyOOexahU0awK2i/f5lx/Z6ncfkElAIn1HwIlSvAYkM1jcMdMhWh9UnM\njhIkXwco4+C5a+B8HUtd41mSuYCue/cgS0YSS9IoneymwbqLlw+fpKZSYl5nCfqyZASdHffQLCJj\nD5Dy6Q7UU3s4PMfH6KGXM+qtQqTl2TiaZmJ84SKafgvQzXoIsdQOCVeAPA16JoA+HSbEEoyw0f7s\nWVrXmvGtNON5U0PT4BoajdHENyaRIW/AwnxErwbj3z6nLbyB7ggrHHwecVkbwfEj8JtsVJ4xIHkP\n0ij9lXDVRBhRCP5f0KpRGMtiEZ1mlOgylB0zUX0ueOwN1Dc+QQnVI+j0mBskJLdI60QTtffm0vFa\nDup+O4ZzhSSnO2l+/zydTTIMWYjQptIyL5Gz/fJQrQZo7gGNGX7ZBz/pYbUVtfkjbDHL0Q19DdUU\nipruRg3pJJCh4OwfRtb2akIbhyEbY+m5rR/ipApeLKzm6g+eRYoPRWkOouaPhqkCBAsh4PoPXoQP\n/N0o+Zvhz2SN3xdKWxver1ejHPoarXQaggbkrg7kbT+hSHtACGDJ8SOdr8Tj9WEf/znDEobwkNrO\nR61ObM1tsG4FNIcSGK7gmmcjtKEAhnyPcvoGpH6RhB6pZeeiiZiCRrQ9Erv7RXL9mwWQcx3Iu6D8\nGN6gSnSKkbON9SjWgdze6WfqiZehjwUa68ERgrDofSKiBhGhC8PfcwstNhty4140mVMw+vU4qz0w\nPZTwUdfBjjqkCyWI3d20CU2UxBpofXoCEQ21JF8sIs9ZTbPJQfC8QGpMNUVJawkWlxOWNpu44auo\nEg6Tce4YdGWBXAKudyhW7yKLIJQmQE85YdV5pIhxdGXHEpr9OJxbjNJRTlB/DmX8YkxlkxBsv4I7\nHK5fDXGPgH4hr3SL/Cy9wlRzMoM8Y3hn+H1oW2ZwPsRNpiecq1kBSgZqdioqW2mR9hF9SKJnSi7n\n49oY2PUJjgIZ5b3RmIS/ounvgbQ0MF4Om1+FnBjY/B4MkCBsKEpHALmmE7luM+YMBekVG94QL2XB\nTmo7E5n7RRn6tP4wU+odMopLIOyUgb6PnqFn6gBsXxyAh03I2TkY3/iR3G9cdCz+G/HyPaSrh5GD\n21Dl42h0t/U+VJoMSO5ETDqK3H0B5fQo8DbTNFCHptZCFMNhcB78UoJ/aCHFT0ZhbDqNI8eBNf8G\nYmdtwe+bBDMehZQsbPrTzDm3Hv9ZDTpFQvBWQlw4xDtQSzeitApY4iT4dRhqnA110GSE6i1odDKZ\nJ7Oh5BfUYICOR+vxSz8RzhHEuREY4vsiV9+GkipB5X7UrCcR+j0Hou73pORvDvV/ipXl/x8her14\nPv0U/+7dSEE/6g3LEM/vQbtzL3pnA+KgRIT8bvB7MFkiCWS1gFhFFIO5X/6Fxe0Kr7bq0V36la5J\nSQRnDyIUI3KigDNxCUaXnpAvPbRX2bloSmJK425inB6qgqMhXQt92qB1AWrAx5mZt1A2OMicX35g\nTnMxId2AJxcmPwvH10J+Bbj3Q/ku8Leia9lPbJuMEudHFfZAzH2Y79tF5fpsYrYdxdvVSvXAOI5d\n1RfzMTcTm0MYoZ8P/h+hpww1P5tQYxmNN+ShtLpJfKWa2reCxOz5mhNps8kYdBc9OongZ9ORF6wk\n2H0fWVtngBLaO5Lub4DUEWR011I+wIpatwXtuLlYNi5DG5qKbsurYNPAIT1kT0b+diFS2lkQoqHY\nwtT2xRR6RL5NG8UVZQ7YtpJnbzczzvEkaGLgmgMIqorUto3ozhMET79MyzQ/cfIDxL99FNcdHRh8\nc9AUroHSInjxOOToQbGA9zR0aGHqIuririK44DKic8MxhF1C1gvoQpPpUetIKk5k5NbDCIMX9k5Z\nAGpbK7S1wrSJ2JbvxrL/EKz+Drnlfvx3fIk+NgHcFeyRWpmsK0GQ16N0rEbyzYbWEnC7EeJyETR3\n0mFficX1DRqDDN4uIhtCOHpFKu7znaT0/YRA3SgOD72R0ZrZxMXGogg+uq07aXVE4zd9hpZt2Efd\njXHDJSpvSaKNUCyt7cT3fZXofdtQW7dATBCigITx0PdXxMBBOHUTHpsVozwLNGcgdDL+KfMw7DtI\nSPoPiMGLEG0EhxXR8QwYX0U5mkDQ6UWf9w8IsCqD+yKYM/915PwNIf9B1O8PUsZvC8VgwPzYY5gf\newz1uREIV1wJt9zZG9i582dItsDGaRCIR3/Oi08EpfIGekbfznCbl9DtuXR59ITn9BAc7CUQUUl3\nbTOFebMJVp9meFkX4lERU6yGRQc7CeaMQvb/wIgfWuCBxfDLV9Bsgbzr2T8jHVOHn8jobDRNu8E1\nEeLHQuQkmDUJlr0EyXdDWDh0NMLaEfDgNtTK5Ti1hYS8W4jxihtwOi2cuL+Bpg4rhqIaLluxE658\nlfMTW9B/+yw90+4j6uqluLXVuI7MIbniApohy1F/uBbx5WuonOEl9eIp7JElaDuduHXdXDrwBJ/F\nPs7Y4U3M+/lv4G6ERAMUlsGbX5BY+RK1F48QYU9GsKZCZw1IMhjeBvvnMOgBArkzEQ0bEEp6wPca\nOq/I49+/wLUTIzh8PhezOY0hjUMQI2aCuB883XDwK8ifQiC2ii13XMHsJ/ZgND6Jb5ABXdNAdA0H\nwJQI/vdgSBKsKQNLKKwrgBeGg5rH0fgwYpfdTOKFxcjrINgahuYBM5HGTATfDxAqEFy6AjaV9D4U\ngQDqxu8hzIo02Io4yQW6PUgpQ5Ee9BF8cBdSbjyzPy1C82ACcrASUbMYVnwN27Ig0gr9uujKDudk\n2lkmdM9CaGiHs2PRXWtiyKU9tOkPc2ndaBxVDVyz5hj6G5/u9bYAjJ6BRLS10UoKDWyi1vo1/iu9\niEEzpkAoqZV+hB1P4XSkEZGzDH/VYrSaw6ihOgRRBH8unHHSnpGCMdZJuTmL1EYf+jMWeH8fPD8K\nnIXQfABOv4Uw7CGES1rEnOtQD31H4OA8tKP+C1sX2QvnboDEv/wpwv9k/EHK+P0gNFfChpfg5nd7\njx9PvRw6qiFvIYxdgvjTBsyjMrgU9jpxWw4iFPUn66sT+O8x0OpLxPFFGsrkAGfmX4bZFUfWyb1o\nW1RwqJhSvAgNMtpKhaDiJ77qOFhioeEiaEWEtBU88Fk2oYFUhPaDEKeAWg3RC/+jwPufBUDtLkX5\ncAbM6ougq0caugzH0r60nS4nYvdXxHbPJl1aTIzyKMkZa2DwIwTDzzKibQtd82+BPYvZnNzIWO18\nPGOeB+90/Kcq6bp7Ovrx48kasJIy22Uk1G3GpptOzVXfEnf0C0LRMbHiEKSNAW8nuM5AdAd8+SDa\n6NHEO/2cEiWGmrwI3V5IeAL2vAy3v4sSeIYWu0qEqEPffzI03grZlxNIP0bTGJhx9gT20p+gyQeZ\n/SA7G74YBvVF+Kffw+bJkZiK4jEt2QQfPoV+7W6EpjR46Z3eo8jBABRvgMxQCCbAc/fCrFfg1AoK\n++pJbl5Pt8uMd0YI4ednIfh9CEIQCjVgTEeTXgB9jTDkalR7OGpuNkLldoRxXZD5V6h+DCHqeiTv\nOqTMBFwnRUz9NCid7yHIAoJxDDyaAJkFoF6AkiOYvjzKyNUimAsJ1HvQ9sgo/SJwD95IyPcj8U4O\nEmLuRKw5jLosE1f/8TT3TaMtXEZVT2IJmYvUM5Co1gMITSppr/vwvf0ReuMqtDnXUR3l5mLj24SU\nNaOZ/iKi9nuszmGIvwQR3B4ktwy2hzBoGikadYrsx16GhBBQ/DDjbVg9vjeQtHUpQkEmjDyENHkh\nno8fQkr/ETEq6v+bKOUvQMuvkPftv5qSvxl8+v9O+8X/L6vj316EmfEghMb+v69V/AxZ19C+8zDB\n/QU45qbh+fwUeC9HOLkeJseiN9ZTrrfhHuHBdrac1I527MmpCF1FKM44XItCMLVFIjWGop5dj296\nPHLAjqm5CPH5JWjE7WBYSpi9CbZ8Dq0mGHwz1BwE15MQmA7asN56PN0IHz4KC14k2HMbQrcfrScR\noSQEJbaTAD+TefEQms/vxj5JT2PCm4TLO/BH+9HpXiVc+xfUnlVM3HaIsstE+gjX0aW3wKdfItfX\nY37wQcTW02Q2Bbk4RIMSFIm/+DFi7Xmuk+IIuXEDLF8INj1k3AWmUoiUYd1etEIV/b/RI/fzoOkE\nfl7a65PX+BNKzeXoM7qRfvwMaj6AaX0g7nKEyAkkXHyKkAHT4cwnYHZAVxWcaoMn9qBqrWwybGKC\nNIMdwi5IGQxT5yBkjYBPXofJU2DoDKg6AEclmGqCIyHgboWkbEi7gdv23sfKfrfy4I+vIDx1Fz0j\nhmH76QxEl8NNK6DqLGxVIP0CVK5AaOqDsOFLcDYBY2HG1aB7Ar6R0UQ2I4rtmCf2x/XTGfRxm9DF\nNkLnETA+A7MOwLZ7IEVAuvAdYswggruq0CbLqH/x0FrYg/LejdiS41EDfoqzM8i0i9SY/HgTu4mo\n2EJMTT4NiS4CQhUJ1mcxHRiL8nkD6gCJXQeeYg614D1HUqseryGRPUMM5MfNpscfj/HIYnTaKoKO\nERy/bBazmEncnnfokKpoGNJDTCAcju+DvWvAEQrXv4DKEuS0Z9CU/4qQ5sEwzYz36eHo3xyMqOsL\nhmcRxN5VOqoKnnIY8OP/qL6xLP0xmsJ/ivD4W2Hd8zBmwX9cu7Sbru5s2tavJ/Wzz2iWPsA69EU0\nN94N08ZAWilo+5DtFOmwV9I+3Eakry/CseOQnYuqdqDPW0VHy5s4NrX0+tRqTVjaNHRdW4qh5Us0\n+ivAdxSyJ0LGs7DjDBRL0OyE9Fi4tBTSXge/Fz5YCFe/iBSfj7h7OfgbUbaOwRUzhtAR3ehKriPQ\noYURC7HveYyaG+rpiZUI0Z9B1GRBZSEk34OlYyc+uYZ9VcuJW9lA+vCJ2F9/DfH0w9C0AdHqJMP5\nKmXaN6hNdNBv/rdk7F7Sa5ZeeQmcLnh2JXy5AMLnQsV6mKlFb3GhRmqgQQE70AXsz0eTEINgi0dz\n9XNgNsOn42H0WLR6E6GVHyOUHYAJZuj3MoGo/fycnkGCbz+DTTcyjxvQqlosmkZwfgInXofpedA3\nHh67FRY8Cq6TkOOHC+EwVUAd/Q588hhCThBN6gyySk+ib4/GFPEsJ8OeIrf8Z/RD70cYcD1c2AA5\nE2HkaNDsgWAxBLIhZDZctxgMPjDYwNKFkhyHWuRHaDyO8Zl4PIutEN6ELuoYzHgE3qyEkAW4Rw3H\nV3UG889NaHN0qAOt1JosCJ3thOhdSGersTRoMYxOwW3vQ0pnHD7tVdSOOEyb3E3cuW7Mcj/UKDsE\nBiK5LxD01DJs8F7UA3oE4SIoU9EHBMYd3U1jxznqPfHUyhnIYXlMfGcL+Ve0oKz6FangCNk9QVpG\nRxMU2tD4zOB0giYXPrgLubUTuWkCUqMLIdyMODwcw6gYvB+Wor/nOKr8IwFNPYo2H4NzGFLYZHBM\n+n04+i+C/AcJmftThG0R0N3yH+87Kgi4dTR98yFp7/0NZce3+GLXEPlJLIycRjDYSWVFKBl941CM\nFyDET01XMvtv+YKbvnsMde0aBLMb3fFXsX/xC4rOhOD1YGwoRZkpEay1ofnlPKq9HMFogaRdYDRC\nWCiMfxQO6KAnD9Z/DjGvwgg7zLsakvMBEBJvhc8+RJj/Gf4nrkE/Vou6B3pG2zAOHYS2Yxbxq5sg\n+wziym9g0Qu9q8MlNyKb6ujjOobweTfam97FfNvtsP+vUPs9hEVB8kiEwk8Ij8vjUn8LjUIJsUmj\noWQzFF+Ax98ANdjrHqe3wcIEMNdAlwZhUjs4x0L9aWhMAscK6HcNhDqAv+80Rr0EG1+EK27DkPcI\n7LwG+nipi93O1kSRPm43g/0a6PkMbfcBUFyk2vzQPA363ADVbdBxGrRBWP9JryD7SuDyRyF/Aeya\njDqmFQ4PxRK3ijnvB9Aueh0wENOWhGJqJDDmRnSiCI40VDEKtWY7YvxRMG2EkZPA1Qa2cKjrB3IQ\nHJ2onabelolDRWquw/LUEtyLV6PWudE/tw2KF0DINoSmnzCXgbbNiZDxAPLEQuLWNyJ1tiJnSJye\nO5Hgjm5CP/ETnNjE+ZuNuMXHsRGNWUynPa6LduPnoO7D2tBFyLibKYo4j7XmLEpGBUKXFbG+iICv\njCqvhU/8z1KWOoSPGp5BW3QSDDKRD1UQPFmGIoB0y62EZPenQfsl0e52tAlWSPRCuJe2A3bok4Lh\nq2JM7jCYn4tQuIdgYyRa2QnmxxGDm9Cf7ESQvkENf5L/aRY+wT+ICP/7GPioMtQvh6av6Ghvwj74\nG7AMAskEn94J1y6Fji4Cb0yk/kg38bmjkKKicV4XRN+Ugm3AXchhdj5mP9eu3kxY6Vv4++nxhM/H\n8nMFXRfbsD/xEurHtyCcdiMkGFETe6BVQL1eRcnNQnynjKJXFhHtn4DNPg6tTwv1hbD/HvCIELSA\nIEHSKIjOAY8Gqh+HtMW9Sb5AsOtXxO9WE0i7Fe/2bYgRWrSnl+AZLCEYJ2CrvIQQH4YwJwxWdEJx\nOTy0giapCe3XT2PWuZBrgphmjgM1ABUNcN9SaPkAguGQ+gZsehVVb6Lr8rnYxIHw/DCEsiqCawrw\nixWYyvUoh95GjdyEIqgoQzaihFpRzj2E0lCE4ktAzHNiONFB58w+OLoHIwCKICKePQVp41GlGFi5\nip7xbUjaHjCCyecDy2CIfwWsI2HfQSo/epGUiBawZgK7oUiFFhfYoqG9BdxBuDsBVAE0CqrsRAn6\nkTMEtE+B8NKLMPUJfCtHIqcOwVQThBuXQ9M51O0voDQ1It2mh+KFEDShNi9DHZmC2LMBtugg4w4Y\n8TDqnVn44tx4RsQTEplHeb/b6HjidUIsEha9gm/clQgrXkM3XYc4JB5jdyNWnxkxORQOdkDOfShr\nnqI400GtlEzm2fO4H/0LsSn9kAQjFkaDczMoPthQAtkDoL6RSnMx2rCtxOk1qA0noUvg1dwN9K06\nxeyqNUiOJjSlGfha6/G3txF8LomQT52oZ7ponf4AYbWfEdjmp/HWcVj6DCOi6Eew1lE13EhEkRN9\ndxqB3bVo5z6BZlIkSnUkcub1OKVHce4dwICfn0R9ZQmsvxvhllLQ/KeYCXc1nL4dWg9S6RtAypxN\noHf863j8d/wzDHxq1X+8znih9U8Dn/9rCBLE/QVMOTgbX8PecwoaV4LiAVsD7HwA39Fm/L464u54\nHem2BwCwHP4O+Zb76A68zqG7JzH+uvGE2cvwRNjR+zsIKd0AlTpCBQPKhUMEM6PRPXsvrFqKMCMT\n1X2K7qh4LOYrEG+QyNp8lgtXbcbgbUEr2yGkFZKDED0W1q+FYX0gZj/0NIM5FeI18Olj0G8Wqj0S\nr20l5kVfoPMKaIcPRzSZYFUJlzJqias+gVwtoMR3wskagpE3YOx7Cd+7C9HpzLQYQjFrBIxD28B3\nGBpN0OiGinUQkgl5b/fepxuXIZTux/bBy3iu7gf92lDy4mgRJyARQU/qIAThOCJGxDYQzVWIajiC\nFMSVYMK+xoTOpqFj3TDUGTI97ec4lfE+GWIxsUP+hvq3RZQP7KZ8djaZ7edIdHYSjDRDyhUQdidY\nxkEwCJ8t58S0m0lxb4Pr3oOH8mBaOlQchcZAb/BmbhAsDdARhLUmuOsxiP4e4XwJSlY00ldLobuO\nruFJhOUuhQvH4aPrYdwNCOU/Ich9UZt0CKvegqseROjMRwm1o9YHEOq9MG0cqk0D4T1ouzL46g0N\nrtACQt/aS9kL07n5yvdRmj2cjLahPngtYmM9mkA6g+O/QNfhw+hOhwIzNK5E7PHSd1cFacMqOHrP\nFYQs30i5sI72O29hRJ+BmCJmQlUBXNwIdz8Ju7aiaVvNu/YbeKPwZ/Dr6EiI5hnhclTpL//1AAAg\nAElEQVTtVPi0CuEmDYhOpCe/hCVzOW/KZHTtRZS5Jj64MZfnd+fiv/NeakO/RjGUMy6iFdfXg3CH\nlyF4NXRGTaLpfoWa2gIKXZcRUVXC9cvd6K5bRfYzf4N8E4JlArTVwJmPYOA90HYIGjeDqwJMSRA9\nG5IWcXhfgJTfQID/WfizHfF7IXQyJzqc9In7Pyz3Qs7ieuM2mqtaiZ+fhmbAQSg9h2wbhjE0E+Wu\nidTVXaTk8nxG+g/gHnUn6u6dCKUi+BRIkCDVglhyCE+iFl3qvbDgAzCdRDkWjq6jGfH0e5DbD8le\nTc65PtTFlCNJUzEc/wmS+kB4CHi9kDoBQrRgmQcVn0MwDQwXobaIgP0YGiYhCCYw0rs9DPpBa6DD\nmULanmJ6Pp6EueoAkrkFTcIXqA1NBOMlDkzJIz30Ih21ehynZASTB9GiQRhlg9J9EMwAyymwJAIg\np6bS/UAEurOFGI90IvTNwtT9MQFrF/qiDXChEVwSHPJAyf0QHkfXIx4MHSEYokTozEZ05CI3ncCq\nv5khuxbS0WnGl6nn+IJ+xH29Ct/E2SR9tQl0AkpBEBaMAtc2aP8Q9gdgqoZJJ5eAxgV3JEBiAnSc\nBRewcDF8sRL6FkHG1aAZBim/IGiCqLX1iBWg2ryoHUH4+TtMRZFIP9zV+3u73fDiHaAJQQiUoFbp\nQJEQzm2F+mJE/REUvkNMjMQdVYPc9SUGi4OOv2QzM3IA5z5Yi2b9N0y90Yfwqh3jE41M3n8Qe0wq\nnDsEcevhtALNOrDsAJ8ZWnQw9X6Ezz+hs93GQOUMhmd+wr9qDD7Nw1Qpb3JAvJfokgamPPICRoDo\nWE44x/FD39k88cUyHJfFESpFQFkQoaYR7k0CfxBMcWiOvoGuXUP/Vwvhqss4k9fK4O9X49t/COXY\nIXIeH43S9wxKcx33j3mHEdOOse2SnZHlWwg7mcyItsOMPPML1tu3gvlTwqJfRozrgY4E8Hpg8INg\nSYLVuZB1FWTfCZa0/5RI881vRuN/Bv4U4T8QfH4b3hMnCZs6FGnEWwQ9PqSUAfzCV0yJHoLOYCPx\n+CnuTotDN6qRwLJPkI6pCIOBOY+CtBFWXYSoBgg4kLsPIoWMheaxULgWrRLEdfMQLLwOrtOI+z8n\nev7dNHs+IubwSYSf9KDsBF8fWN0OCWkQVwzuEzBoHly/ELXoBP6+RzBL/+lBb1gLuUcYor+InGlA\n8G5FinsFoXExwv5uggYbYh8fM0r30jJ2AKG1p2geZoMUCSFEQOuYjik4CX1pOeKOhWD1Emhx40lt\nx1Kej2aiBGou9HgR3hyD/pG9sHIJuC2Q2QZGLcy9hcC1o3ArzxGV+Q443oFNGjSRPoI1jaBRMJ1z\n4clxsCl1B32/P0dCcTOJL62hY1YoxrMBRFsQ9rwFmiRovwRx1RAjYLMDp0PBaYRUG6hm0NbD+Hug\n7yRYejMserc3CWLjZ9CwDTUjFG/7OLTGNETlG+QGI8GkfiBMAEXpfdVXwdlaMOsh4EGebEW6VIiQ\n0wehvQ4hfzlq9kGk7WsQMi9D8BxGih9B0NrM6KeW4C1ch6/sB5TmZgxvpCJ194c9a2F6M4RGwok+\n0LIPLGLv8fYAsG81zMjGfbATTcQItO1vY3qgBm3x+yS2bmd8xGnqppWwWyijf/eVxBh/xZHcRKY8\nkxaXDkd1ClyzCgKVUPoYNAFl0TBWRD18Fk1PJ9ph3ZB1O2kt24lJvIh/phV9iBuDXoNoaCDoFrn9\n18+wRDSR/kUE3ZrTmFSBoH0QFsMPeL66Fr03FkFsQx1sQSiqg1tGwvABULkW1Jvg833QuRVyhvSa\nIzlrYexlGHqCvzl3/2/g448x6fHvJ8JeF5llv8JxK/hcUF9K+9qfCUuJQKdUw5YPOTArhr5tWgxW\nG3p3F+jMkJePDh3UX0Lb44J5k2DoZdBaDJNWQu1MOObHXOGka9d8QsVZUPojvvELqIk9QWzkKNAN\nhlNfQsMJtJs34Jh+Ly3zyglv60IY9C4IXtDfBjXlcHoF1Chw+kivGJ/cjPlzK8JNn8IVt4Hu7z58\n9c0o28MptCYSMakK2atgU2fC1lcQSUGVOzG5yuhMD8VefQbN0Ewc91QjvuhFCsYTuOIpPByka2gL\nytARqIFCzOWVWHdmIqpnYZsPeuIh/yGavl2G4ce+aDRTsLz5LXyUAO0S6rA+tJj+RoR2FUL7myDb\nIduKqf1ztIV2mN6fi7d9wVHtp4xpO0JMejVquIiEiiHaSutoF2GbfKi6doTOql6zmrYE2FGF0FeE\nlHAYMhZyToF2KrR+1Lv6is6CN/b3ivbeG6BVAL8FEu0EA33QiBkIbjuB6Da0LRWQnt7rktdcjpI7\nGNllQFN1CsEooBZOgasfAZsNTnyK2FaBktyI3tAPYeMGKKghtDCN2oEXsZw6jGnXKvzr7JQn2jne\ndJGpN2vBJ4IlDLZFgt0CxuEol04hnNmOcnwPYlY7CJNpfU6LfWMX/kn16Np3os2+Hw33kQEkCAF6\nlCKUvffgHmsnzVlCksZD+tWLoGFn74iYYTDI8XBxDURF0mlJodlxgRSTSnPfqUQa9eg7yjF0N6Pr\n/xr016PuWQatAppd0D9pN3W1EYh1tQh3JeMOcRI4Z8OdHI5J7ORCah9yt4SgSQcqGlHVLoTOVCgq\nAFtj70x3Sj5UlsGejWAwgVaHGPT+jsT+70P+g8jfH6OK3wqXzsOXD5N3YS+ECTB0HoycT9TljxHY\ns4zGrtNYT/7KyGV+NF1vMd4eA44voLQJ7n+9NwpJtx2mTwdfBL5Dq3Gd3UiYGNJ7CGN4FdIBN6ZS\nI0rCftR0EX1DEaYRz2ARJ4KghbkfQt61sPE59NvfwxEJzrTBOEJvQPPBSLj7DuiTB10XYYgeZbOD\noDsG+fKt6Ee/DBmXIfw/AgzI335Pc7WG2m2HkL41of4Qhvv4cEJzY7AOuAhaN825N6B3zEc5exXU\nl0OIRPtzRoyTHRijl2IJtqAZNBBf9x70x80EovNwXlUCWDE3zsM6ZAZseI3ox1PwvW/gYkkrwrR0\nUu4ag1Gzh3bXW1iL0tA4rgT/xF6rz/ZfQJToSBiCPrU/xzwvMbD4ErGdGqS2cHyTGznnG0GP83KG\nuhNoC3+a8PZOdGFZvRMXQ/8KPV9Q0JbNwHe/hsYjcK4TGmvBL0HtJYhPhLbjcPhpFJcMcgeBq55E\n7PoApb8N2R6D6nLg0QSxnTyNP/F6xIg11Nz6KVU/nkYyQlRKOPGNAYLV21AL52EcPhHdlCUIqozw\nyz0IRz5CjR+GEG1HzB2D47uHUc9WI6Qa0P9tIH2D5wlrTuHnNyuZdF0EjjMegp190Fi3oyoKgVMC\n+tz1oIJvhog6cjtdxqF06I/TlBLCsPPLwZKLoI8GwIgO4xf7IPR68JykclWQ8GEmGka3YS8+gVZd\ngf6sCxqO4u8MZf98C6I9nbEre6BOIqR/PG3W79G3Z9IYl096xp0otbUoniLEDQ2odhv4W3AEu9Av\n6CCiR0PdUDMxmaW42+GMnIfe1UTxODPlQ+7BOC8e6/F12Lv6Y9NHETLyLWznz8KxX6GtHLQuGDYF\nCo8zYccmaLkATy4D7R9jlflf4Y/Sjvj3mY74P/DN119z/fwrUXU6arlAGYcxNbWSt3onpqM7kOMy\ncCYZidHFQnsjdHeAQQdNpZA9BGYvhJS72U4nXeue5EptCLjeg3YFxeVHniEgpb+AsGMnwuES1PF3\nIEx9obd/5nPh7nkTfX04UsUSGLIW/8lPcPlOEPJcGeLGR8AxHlp+hqplqGevxPfjZqTRElJ/N4RH\nImivRkADTXVwbDMkWqmUEolILsVSp6C2q70TAjaZS+7BWOOn4qlsIkH5GDFOBbSoBjPdW/3oJsdj\nyCyh3WLDbliLmDoVNiyB6mdQw03ImRKavCO9W9+zD0P47XBsP94zH+I0ZePnIrrpWuI+FJDm+6BF\nALsZDJ34ujPpknWIUUZcSj2GMc8RWVgH2JEnRVDvfYE3zDfwwK81pJxYQXCAGW+GFpsvC6HrIdj6\nFN/0fbY3MmffQvBmw9cvQ1kXpMwEqlDDG8AehxqSiz+0ADmhFDXCSmdIGLa4mRgDAVo1lTiC0xB3\nvwfjHkP86Ee8LQpdx44TkpuKPMGGpmo39Ssd+CffjL+pCVVRqFO6ievcQeJVXkLMfUDrRi7tQuwK\nINy6BMr2UfujCV9zE0Kwh/KrutCsqKHf1SmEp59FaTTj/ToGKTcRnWMn3mtTCRg87IkayEB9Pq1s\nJalgEqGBCzBgLUhGKCuC91+FR+tBiuT84VEcHBvF8JqvyCvajZo9h5ZmP56L53H1n0T88MVYO70o\nt/TB3zcN14sx2MtKaJOvRdy5Bke5Hy6b0NvrtyZDwWtUJWqI2xWDVl8Hzh4UfyvBaQa0ad0IZwdT\nNP460vc8Tmf2LQTbD9OZmUzPhii6xtvxZkxnhmZKL5E6WmDDcpA0kNqPU+vWMTA6DBLS4br7encd\n/yL8M6YjTqn/uGn9QKHoz+mIfxa6aSWQ3MQJ3VZauEQ8OYziBvRRJipuH4T/xluQo7IQEIhhIDx7\nI9z/DJz8Ag4sA185dOwB7mYzHVwaOYcrf1kB1iSUUTWoJh/BphCkYwUIrXvguqUI61eAPR+yx8LG\nFzAe/gB1pIDaNhqh4XU00x9CKj+MKgdRdmxCTHsDMl+B3YkoD85BGrMf5e1kpHAJxs5G0exH2KND\n+LUSIS8LuvSExpxBEz4C6o+h6mUCIQJt+jzS285D5HHo1iDrI2B7J2qECSHSjyXChziqFNeRKOwV\nesRnp8G+zdC0GOwSQuq9aAo+gaP5YHkYht0PPy2C1AfwnfMR2mc0nVfLaJ8upi5SIO5kGFJyO6RH\ngtoHwWfDeugc3Ve+SUK3DeGHJ2DMU5B/BZIgEK07yLMnX0VXoUEZGUfwPJhOtdD2oBf7958iTRnY\nGyLeXdUrUGlDIMkAOgViTkBKGkxcguxdj7iqBP2mEuTLzbjzxoBFQaO9i4C6CSNaJOkeZH0APn4V\nNWU2hkXPYHhmLDjaoKqAQFI4sQN9aOPqEC6bCakDeStGw/0/rsZkeQ1VtSNcsIFkxTMuHFPGX+D4\nCuJvvw4GfcV5SrHSQ5L2a2pPf4huZBiuej3ax3twTH4VueByjOvrEHInEal3YRx4iVCHSlOqC2lf\nFbZt0TDsGLzyOLy1Arw3g3kuOUO91Hjq8epSaAw7zxmbnpiGdvJPFoF5GhyZi+ppI5gN/uv7ESZ+\njOC7At25r6nLn48jZwhMvrZ35rnweQITFuHSbcRbVg0XTGhS+yBWnEC65MJTE4oprZu+UiP+OYV4\nTs8nMlBGhDkHKeNK2PU9mO2Q+Hcy2cNh4Qv/m1vFl9wM/I0y5v4Z+FfNCQuCMB94AcgChqiq+l+a\nM/9b+QnXcp71vIB3YAmJ5DFdvY9+ZR3odzyEumYkrS3r6KPJo8J7iEw1F2orwBYKcVkwZym84oQw\nG3QdhGA30zovMKf5Z9ToFGjXIxT3IG1ORlfrR+0ph+EfQ79H4Yo8+PY2KDsNg0YhzMuh+Jdk2vO1\nqJXnEN8aj3VnC8EbB+ETrRAwQakNRl+F4vwrvqGj0H53AKEHxK/eQXzvIMKLP6JmO1ESK1FSYnEP\nNaFfdwKlrYeWARo8EVHEZt8EJ7vhRwX8qchz1+JPz0LIvx+lVEG6XkIwr8I0vQClpRv3rcNQd34P\nA60gJsJPtVA5HQ7ZwSjA0pmQdi0ceh2bX8V88n1iPvMSGZNJXFwuqsGGWiHDp4VwUof20D50NQ1E\nvHkLQtHXMG0w9L/yf/+bLin3Emb1YB2hIRD5AQ0rDdQuuBXR/DId15TiC/n7IZoLyyDrbijYiupx\n9m6BRy+ChYcQkuagCXkesaYE5cZBCFoZbfEpRE0//Gu+o/vYWsQ1B3HddQeBs0EkbTei9hKcfBJC\nolAe2svFRUtwjs8hOPN15HNeVKsD9dgGrnv/UQylh9HssqEYK1EzuhEbSnGFa/FRBzGj4fTzUPwB\np7rWM+DYu8REldB/cBT6Vjfm3DYCsozseRlN12xkXyj64q3QGEf4/jDCyoZjsh6jeWw2AZ0Kr2VB\ntgDmKhCcYL2GrqgJ5Dh3kuTcS2VOAuNOHSW/3gKDr4H6M1B8EOVIA4SFYYl5FKHqEzi8m4uTX8bV\nV4ABzX+fYBBh92HcLjfNDg2+KUMRZvaglh1ETvEhJCr0TFRRA5Ww9iN0x8djOx9C0ehrEU2PQ2YO\nfLwN9hX8fgT+J0NG8w+//ps4B8wD9v0jH/63WQkryEjomMMTbNmynYgrk3rFIHkGBFx0dZ0k1RVL\nlfM18lxORO9hKDkFSemw+XpIyIe8x2H689BwHxyYgBARSlh1Aox8Fs5+haAxoebKlI+4mZDyvURl\n3d775YkPgvZnWHIF5HejnoewapCW1qCm6BF8egS3C72mHLVKgHMydD+IOlMiUGPGmPc2IhoYMhY5\nfB7Shi0w/Cx4/dAajfuKGqQuASJ78PYYoC2CELMJtj4EaQJUKZAYivbQMXxiByAhDPOC4W448jRi\n6HEEbX8Mtr24TpRh0qmIcg4s/Rpa6uDlywme2Ul1+p1cWnGQ4Ymd9NxnQ79dwabLgrwBSPX7IPYC\n6AzgkiFZhovToG09ZM/sNf4xX9N7P1QV2ooQay9Dla0ELDLNGwuoOlvKGMsPlHc/Tfw+C2LJYSwR\nU6D+FGw/AaYeMGi4NG0CUeF9eiPCAj7Ub54haMzEve4MprsCqAUGhLv2EHzteryZBkIz89AmBsFz\nDBqywWCGjNtorXmR84FHSKvxEHemBUVjRN6wCV77CGXQTJpow3bwUziwGzVVgGXNqLE6OHuKes3D\nxHcfRQs4O3djT5qDPv8aOPMlwvFj6GUFTb4P1/h4XuieyxPm05hGPcVxx2qyPtkLSTOxhqTj013A\nHV/OxbA4IrKchJcUwI5Z0C+PVuo50fQQk4q34JmwlhHeozDoLfi+E/xmGDEPho7hQqALXech+iyf\nA74eMMbg8scSkTgNujZCw0LYHQ3HD2O8VIrpyTQcPzkQwu+GcXWoW1aiFPoJHdqB3E+HlD4VYe8e\nQjIKyPjwPB3D0wgd/ARMmwNfvQs3Lvp9SPxPxr+qJ6yqajH0tkz+EfzbiLCIRAwZAFiKavEXnEOb\nmYloMOLMHkNBZgdTOpMp9h5FiridJNcQOPYw3P8puAugYwMEuyF8NmrTAwRDtHSp2URoCpB/TkVS\nQRiwFCELojR6KvJEogAO/QrHf4RaCaZ4oTiDwKgRlJ/6lcwXv6Fn3FbM+w8jKXPg6CcIu1ohwQE3\neVCT3kRviUEiCQA1JJGWwPOYB0aia0+gZGgWhiDYenYSuqWDtlHXUGWoY+D2vQgRV4L2LMSloBpj\noVOLIEYhBV2QW4DyoQRJUxAj4uHkkwh2CToU1AwDzu+9GAb3YN+2ArxuUF0U6Odx6PklzFi/Hgzr\n6Ry4l7AzXtTjpSjldeAoRwx3o3ZqUOJD0aR/gK9sNx2bNhE+LB5N9x7YvaG3JoAwC5zMQNh9GvHu\ncGJmtWJqtaA/cheZQ56jJONpEnxmZjifBs0guPF1sCcgrBhBROrdVBjXYPMEiX1hOQyUkbITMQvj\n6ep/Ccvhbmy3XkUwK4VAsAuxdDeokeBVUFOMBNSLFHYtRRidwgjzywQitkPoj4izb0ZuqCBQexwi\n+xBfeIgmpRrVroNNQaiDS6OGE9Zxiu6sMtT887DzHg5HGhnVnAA/TYVmK6psInBNO4EIDdH78lgw\n3s4jiUO4K2EoPcI6fO0WOPcxxL5GqHk2Af/rxFXk4Lx6El2KlZTSdxDWdiHmv8ukpkOIbgXDqm9R\npSDCNA0ojdDjgHOvoY7aRHv9CsJ0VtAXQawRkm8jas03JFS3QEoOjBkDw9bCiL1ov3+M1IiXEO4Z\nA7522H8TwsxXEZc9iFgJXgnUnNloGy9A1kSMYz+n07eFkNcPIA4cAIcbfhf+/ivg/3NE7feD3+Gg\naeFCfIWFxOzZwabhq5hTX0Gw/RL9/Z2YvGlQugymhULhIggcAPt0qPgLtPyEgAuvtgi9OZp0bSl+\nEYw64NjzkLYdm/s1kgoz8ey7EkNLF4IpEYZE9saHP/0w2idHkOroJnzcaNRdq3GlyRjS5qIJpsE3\nVyIv9BFM1+P77hnaonIIhHxE0Gwgbvt+wm5vpXpgIrL2Rdq1F4ltdWE5f4D9ugcZYEsgv74Q7OeQ\nd/wKEX1RvR0ImiLU0+0EVxfgX2rFb27AfECPa/xKwvfUQ4QEiVEI0SqWgBMpWiGwajd1JysIyZQ4\nLWeisYpcuX8/saNH0x68RPxaAd9Pu5GndiFWFCH4gR5QDALypdsR40GUL6G0+JCaV0Nef7hQDfM/\ngcNb4cetkAZcr0cKSUMIbMae4oDUW5BaVTJ3iBTPtZFwugfthC8hJAMUGRzJGK0D6PvLbvx1nyFX\nFeG79kbM4VNR68roafkce3cLuoQa/Ke2k9Bci2iWkT11CKKHTkcU9enZhNfUoIuPo1X7Cn5dCXrD\nCVy+YWgeHISn/WOsZwow1qeze9zd9L3kJHV3AepAA0mGFDzDp5Ow/0W0+XvwemPo7moifPuTMKYc\nNeQFgv5VqNog3cWpmPrMJWvjh7zvPsHx0AkEpuXQPdJF9MV0KHkdYfDVqKFW/PGVpD/sxJdWizdR\ng6GthdDiZaiNHuR4Hcf3rCM5dyQx1XMRIvaBUw//i73zjo7izNL+r6qrc7e6lXNCWSCBQGQEmGyM\nwSY4YBxmxgmcscdxbI9znnHGOYLBNmAMBttgTM4CgQISKOeslrrVubvq+0Peb2d35zs7u56Zzzuz\nzzn1x9t1T1f12+99TtV9733uFgODadWMPdeI3qyF25tgay6E9HP0vluIHEzEsPldeOd1GKiDSz5E\nsCQRURGA7CCcWA0Jq+DTtxBGTAaTiO7cQeRjN+B+NhZ8m1Ed9xNlasc1rR1T5D0Q8/mQ7vYvRIHs\n5+DnxIQFQdgFxPyZUw8qirLtv/Jd/5QkHLBYiN+zB/s779Cz7h3yPzyP8d478aZ9jOJvRO6pRtXU\nCfOzQDMcdu8FdyOkCxC2GPqOYx4sJ/dIJb0pSYQrvfRq1Ri8YUgbP0Xd2EHoxDj23/82+9pKeXjK\nTITL8sD9JsSnEYzWYG0IwLpf0VBbib9pFpHDHsK8ownpLhN+/SpUYRbM074mJPZFfJXHEDe9jCwn\nouw2Y5zfR9jut8lqMeJv+gZll4NxmjfR5o1HkQ4TnCqgesYD8nl8JyJR1TvwYqb+mSwicj0EyxQs\nt6UQlrwccmxAEGreBVU5gimIXq1Fd9lYDHUVBBw2VOXNmEeOwxw3JMRj9l6LMyYHZUEVnv6T6LJA\nbBERRAUx5yMCNjO+9R8gnq9ClxlL0DAT0WBCHOaBl+dAdRckh0B4OKRMQRj+DIJzJ5J4O7Q0w56n\nUV06iazT+ygdn06Wvh0jGUNqbsveglP3QtUWNKPzUOq9aBs24Tm+HXeBBsNOH8KUVRC6BNX6JxFv\nP4JP+xKeWoU+9SGE+Fwy9K8iVa1HzLp3aEHIVfQ5JlOrlpjw4XbiZS+CNh5pxbfonSVkpcyGK68F\nzy6wfYUhfinyxx5k60JO3vIYY+ytMCoeIiYjDPSgKvUhAx0jzETYapBq9iNF6yg89DUDCTMwbKmE\nMRfDyA7E3i+JCU7CpyuH8QLaKBeOCjP9F3hRNBmE5tpReecwdsZG2gNZdO7cRVSKDbFcBEMY5oxC\n+PF+SLoI9KGw4AQcWYlUWgalFbDsToJmLf7db6Bx2BDrT0JFCZjN0NeGYt+NPDkN+fp0ggkBqBUQ\nz2kRmuyoqyyIbSqEm85gbyiiMfx9oqPjiGhrgcTk/0/e+9fDz8kTVhRl9l/rPv4pSRhAZbEQ+tvf\n4qeB/OYAgy++RtAeh+X++3Emv424qBtt40dI7TLC90DdfliVAynLIPtF8PWxe1QLVz8zF4PJhx4f\n59tMRF3cjJwsoLd9zZRtnRSKRgaXhCLVetBPnQan7yNoNnLCM4xJCZN4/Ku7uK/4PgydjTCtCdm2\nCM3+CpSTtfRWn8cuFRA11o8xX0HpMeDoNxHV4cc7chfkJyM5ohHyAthNkejdx+mLCaVkxiLMSic5\ne/egUk3A5NyLMcbNCM8xgv40hGENCEI8jJ4P65dAfR0k+iA2ESKnQ3ErrelmjNZKQhoLGGvoxV33\nFd6Vr+L1+1BGpxFyiYIy6WZ6ftdJ/PIW6JYRmuYjeA+gvuEVDkw/yWjldSz7bobytVS9lo2ULpA5\nIIJBC6PuhEEnrN0HD/sQWxrpTcvCpOlHm5sMyXlI5lE0HQ6inf4oqedWYHBVgf0zcHaAXYbDnQiZ\nAlLqKnzzfo1tcDrhh6Owj4rD8v5dqG54G19oDF3OI1RlTGNc23BC3u1BiH8exq8Yik0HvVD9GZZ+\nLwVH7JQsi2fCjyo0878hUlBzt7cdssLAMBZl6/UoKWMIfnAvvVUC/ufmcT6yi2u7Q0AbCvUDKMHT\nyAkuVN+IjGhz4yj4Guv0sQiNVUguHabUg6inelFiPkc4KUC5ESWzBHH2jSgFZgT9GozaAHUZOUid\n5VibGwmGNqFckE3S6DcIfr0adr5LX64VedyDhLxyM8HwZETnMaTmL1BFzUDJvYu5D98CBbewXW/D\nEVVB3EOvMdXmQfHtQY6yEog/SzAxGTEqCbHZier4YaRtRgRJD90iStTjYN4J6p341QqN0WG0yArv\n/eo6YujkeuIJ/x9OH3+nPOH/NDD8P3sW/wqIIgUSQf/KKwTa2rC99BLO7l6irs1AcpzAVyagaZER\nVkoQ2QQtT0DrY5D2R+wdKpwZIRhqPRCuIt7STeP63eQ88TyDUw20KzuJPDUGzfUr2VJbTsr5KsYn\nHSdYPQC+INR+xvtzjiG2elAK6qAC+py19H9TT7c5lvD0SaSE9aB2diBHCKgNNjoCdBkAACAASURB\nVKweDRzqx5cdiq6hAbElEvpDODNmGXnXX4FTrzDh2MtYjrYCCVC/HUQ9XBwHXzcjmCT8P8ag7fXC\nkaXgboJcH8RPgFM7cLV3UHa+g+zRg4Sof0VHbwle3wTMI7IJeWwSGuUPQwUSuYcIakQi5/8WrKAI\ncQQn6BAOfUCw/htMrQn8mHuMeevPUzZ3Ak9lPsDH87eCIXOoAs/7e3jNAb99BwZKoKcCk2k6g92b\nka0qNOoEVMMuRL//ZbI2WTg342NS1g+irXEi+U0QboeOLkiMR1l/FkfZPLSP6jCdKaPT9BxqqxVd\nRh6Vylrij8Yw3n0EqceG8J0f5uSC4Vv49gnwnIfcuahMGUTUd5GGl6MXpTNO8qNDQNtxCBw+KLsT\nYl2cT01Hd7qboE9F8Yxl9Mg2fKoadPXfQvwElMbPETuGujCISd1YbHZ6wxKIcPYhDIqoqsLoHBVD\nuMeM1mqCG4pQ9n+McPZlBGkcNPUgdsSRXheBPzUBb8wAmkMHaJ0Xz7qOj7h5zw+YozMIHVeNa9eD\nqPIGEJNFRFcIYv1N0Cgjh1+MZmQn4vBPiG/YxjDlDGafjyB2vPPCUdtkpCNqOjVW4tbuRhQNiJd9\nju3yBVjfyEc4dQJhoB2l/QAoAVxHb8c1SWDWbgfDxHcxHi/i2ZVxRCBxvWIkXDCj8MuoN/iv4G9F\nwoIgXAq8CkQA2wVBKFEU5cL/p/0/ZbHGZ58NFQD8OcgBBo/OR7WnHO35bliUhpLbhkqfCGSA7TvQ\nTACbnxONfobXlqO3u1EMArLTSmMV+BNMZE93o1hd8JSbQNgIFK2es2qZ3otCGN96hJIdMuN+I+A/\nHIFG04MqPIDnOxOV1nEkth0maupkhNyxQxs4hh6ISAJVL8hegkIy3hHN9EXGE3+8F8U1gea+fpKy\n8glIOqTm11HaVASUCDT6dtw9ZrwBDyafBskUSzBKQJVSBM1bIVcHuTeDkk/gi5VU1beRuSoTjXjV\nkBbCIi2cUCDbCOFaSFoDASe0vQz6ywgevw2/2YRUWYMccKLeA4ohGfssHfUz82gWbuPzz3t5d+Y1\nGPS5UHF6SA4x3w/+dXDqUWgtg7jpoI1GOb8L0vtxDRoQPRZc3WrCM3NxOd2ULXMTZV5O6r2fwkAx\nSDrkJ3fRcdsj+O+xEJ10A9oNv8HfGUog3oy4ags6YvDyFQFOYWz7DUQn/tt4Zud5+PEpqFgHYQq9\nsTNwTPTQmBxKIWswnlsJe6tB6YTwBOx1tXSvV5O83Mfaa37NrJgHSZAjYd106PGB+yQ919+H5ZOv\nkQbr8UwvpKWoGVVAJPzTAOb9rQw+oMfY4EUVqoZRxdjqn8R8+EukMB30WkE3H8I80FCPsv8IaLUo\nk5207Y/j4zt+TUGPjYmRG1A3hqExiyi2FpxNZlSz59Kq6yWnL0Dbjjbee3QNd9c3oRvsp3dHN97K\ns0SntKBN10HJMdwP76A06nWimUfyLh+DG3ehCd2HNioWlAGUsDZQFPwONYOZl6AfGI561x+QQmfA\ni19S4n6RBu0JEGOZ5LqTM5s/YvaVDyCotH/et/6K+GsUa2z6f/Pif8AS4du/WbHGP1We8H8Knw32\nLETa2YhW9CLeFECc+iaqtBLQZII6iBw6gaDuOPhjGTtQhiHWg5CYidAaD6Z+UgyDOL7roPNlB563\nBBSjGqG9nUCUC+uMQQwpdnqnWkh7LoRAcxBdZQvnjphpPRKL1jFIwbkDRIYOImQkw+LlkKqDaXNh\n1NUwby1cfQSVthWt6Geg3YHjnJ0+TweNBwMMHDiIfGwjChK+pMkI0SNRPEZ0PgdW4pAKrwSdDdUl\n10CWFRL6kIlAkUfAm5ciRYQz/KZY1OG3ooR9j3JxP4qlFSWvDTTpYP0jaNJAnU0wRINcfgXyzIW4\nv9OjSruZYHs4cpqEMNCCNfd2RlZvJCC/w+tX78Gg9kH1dOjTgSADEeB5BGYugKyLYOGnkL4cwWlF\njohjIH8mbqtIS0I+FC1DGLUEzfY4Wns34HI1I6ujUQwqXDsb8AjlOPPLUDxOhCwtmpTxGKRMNPZB\n/BzEx04MPAZxKf9xQyksHsQmKFgM4SOQBhqJOxrC8IH5lH51CYNqD4wpgoFoGDzHeXsig7OzUXW4\nuejjL0ioqYaProTI2Si3/IgnXYdL+preK8y4hplRH2wk6is17lY9pnUdiDEhKHY1zskFDPZPhcFQ\nQjJexZmZBonzhyQ5X9sCazeCsQVh9DKE8auQjyQQeouDEfkmui+YydGwWbjmv4Em8y20bUlY1Wq8\n7d+xSx6LR/ckqtg0Hj5wL4adv6HrD+swTplC0sJ4tNc+BUmj4YoX0NuCFPIRWiI4P6sf3cP34Ton\ngmKHgR6UyBEoGvD5VPhu24TQXIUUqcczcIZaz2NoA++R2dVI1pdOXmjazIksHy+4av/HPBX70P7F\nx98S/0vC/4K+ctg4Efap6b98EswPh8QLQLsepESI2QRR7+O1FOGouxC62iH0ITAth3HzEGb6UU27\nEWWCnuxNF3N61ihOvXMF/Y+lYX9GQ2B4BzFlHnyCjt5ht6EvsVPynp+u2BCy7xhLkqcdab6CaLEg\nVAkodqD/Ibj8IzgbDQd2QuVJiMyHhTmIdaEMc8j0LYom1F5GflEH1kfWor3/G8TwOHSNtajP7UEI\njUcwhMMDX8Ld70JsHhx8AzreRfGpkevqqQw8QHCuCmVqBWRnQOfTcKwCOiKgPguGb4PRH0DkCBAE\nAuvvx3W+hqA+k0BbCAbrWaAHzao9oB6GjMJHn1Qhi2rmt2yjLNxIoMcCXR9Bs31IK1i3AGLLYfNL\ncPgkPDgZOmsgcSSq1EnEGe4g1DGbgEuH57uXcPs+ZkRhIeNerwFzH0G5A9k/SHD/KmInxhK7Jw79\nmo9hzJMwIx26G/DW3MUg92HkeYR/WeqKAj4HlL0HO5bDxmkovmbknhICZ1zo9tfDumKMt35P+E1V\nFMfY6d1cjK8+EfmAD+vnTXTfcgXoJcIb+7FveBL33Eexm6voVP0WV2YUprJOotedwHjYjYSEpU4h\nc1MH51/Ixr54JZXnliCL1fQPr4X2BlTqCPRxq+HoEdB7YV4cpC2HUD19q5+nhZMce+oyDKFOFu24\nn2u/fInpzU3sFnr4LDUM75XvI3qaMVYNMFzbg2vfPtTiLHrWO8GgIvb2VEyhnSBpIGsqjL0VBk5D\n2iRU6IhlAZHCDBoj16DQiSzKEAgQFO/G7wLJDuHXTyZ4z8OcWzWdphkBYtZ+SU7dOXJLYskdM4MX\njz2EMmhmrd7PI/5Ggv8DiDiI6i8+/pb4x44JKwFwvgZ4QZUGuiVDlUP/HodfhZJnIfslWH4ldp4m\n0ns/UA6Om0F/F0i5oIpEXxpEb506NHPtjQTGxiN016JaXIW//XXEFi+mbzcTde1CPE83EPJcMZLW\nAN7NnM/4EuNgDecJIBdeweRHtyJ0hsIpx5B4uyIhmDpQ4iG4bx1iZzZi9jY49TUYfCj5y1BeXInS\nLSBGjUUt7sKoM+PLnIU6UDwknXjoE5SmFnCJCEEBImdBTA9kjwVFQZk7C+XICZQQI2K1D9XIVNxx\nUJw8nFFrQZsdC2eOo7R5Ebxm5AI9bu+7GHWFAHTXf0rriO8ZdbwSjyWCAc2XGFKL0Iy6FdXxW5Hn\nZlDnCWd26UZo16GLFcn54htOTbmSce0asL8FogyVH4IcAi471HfSP38lpowJCGITincv7nMX4Zlu\nQdJlMyi7qfKbmex6FKVRg6RPguh2ZM0wyl5pQNXQTPqHZ4baL2k04H8EOXImcudh9PwRAePQ//zd\nFjhzHC5MhvMboes4THkB4fg7oAygGi0hNINo0NORuYjAxh0kbxyk8p4kcspb8b9vwpLupMt2HFdA\niyssgm5vK7G/nYZB1GJ+NQBiL4pVQEgTwaKAxwsGG3JIFHE7GlB73qIl+ykK9FH49KchaSIM9qDZ\nsQ7kFoheCv1fwjX3E/DJ+M8sINZpJ8EXA0oMZLhA1KOXS7myYxvl+jO8YDJxp8lIoENL5oHDDL79\nPpZlRYTeeANi1nzwdMP3l0LhyqGNSEsiBDxDecJSFABhFKKV7ie45AsGT3Vi1imIX16DKlXGbob2\neU1oymeTVKlC/4c2+ORx/OdfpTJ7kKDufeIu38ywzTZOS/m04sdBEOsvnF5+Ke2Nftmz9HMhSGC4\nBmyLIdgOcg/or/nX88EAVLwOzRtg1FUwYfHQx3gQtZmgJIHlW3C/Bs7rhirnki+EqU+DqwVOZ6EM\nptI7YSyRghZNyu84FDqXtE+vIX/PLgJjcnH/+CLaufdxZNQ6tJtqSHC6GByXRmHWCvhhF7gHwK+D\nK14CVTu0PgkVIkKNF7+5Dm2GiJKmQ3FnIL/3Mcrp86gefwp+dSvSe7PRzR2HTzeNH95vYPGbjxDM\ntKPKy4ZveiAsCAuvhe9eRvHWQ+M9KGGTcB0Ox9jQgZA0BhJdxErJtNptiBGdULUN+nwIky6HEQFE\nbw2GxgbI6YGeHiIPlRHZ1oQ3Ow1V9j3EqBPg82XgqkCZ2MyBysuIjzMT11ZB75shhD3QgbUOzOlt\n1A+cITXBj9IQgrBkEjQmglAGo4LYemsRXl5I9cw88FtonfAHRnz+JfVji4gzv0a/OIEjHjOTuvdC\nehC6dIgXXcyYU7uR9o4h6IxEWXYXgt8JQi7y+PHoN3UgXngN+P3w/AOg1cE9T0DbPtBbYPjVBJ3F\niAkTEPTh2EYW0XPqJo7njcRk/5a0GVHoUgJk1sqYBB3NdXGkPlfP3C0/4knRE24cQX/2cCyd/YhH\n9kJbI6BBkLQQIYLOD/2h4HCjNaegSpmIu6+UEee/RhJewRT8lmDfFlSfvwsGPTj1cGobKEDx7UhR\nUUS/1kbbnAuhvYm4Pekwow5C20CdCEkfMkLuJ6tqDPvzL6Y0L4wxa/eT2OzCIu1GKHPCyGvg8zvh\n4h+Aejh6OfUZ9xEfnYZmxxUQEQfWEtD2YxyMIphhoP3tAQzXZ6GSy/AkpTGQ6ybtdANiTxzS0m9w\n/foVvAk7aIybgV1sI0N3D9HqecBniAgk/kKKIP4z/FKkLP/xwxFiOITtgrDvQZUIA79m1LD1EGyC\nA1+AJx3SLoS2nbDvRmjZBYqCgACCHtSFQ92Dd1wwJEU563UI9kH9RPDEoC7JwiLcRg/3coA6zlkk\nom89i9cZSfN4J70xp+nZmYPV2UbK1igiJhZRK56hyr8R5Y6TMCIKVq+FnPHw1U6YZkAYLSNky4hl\ndgI/tBGsGYWSfQ2qz35E+uEY4k13Q8kBiLkSc085pkfeZv53D6MYTfiyDAz43NhfTSMw2w5rV8DZ\nbXi2zaFvkw3fvY+g8fchtEhQ2gd/rCD246Nkbayh2qTASRc06eHhz+GNKlAvQojIBXUERKVDyRcw\nYKF/7Ay6M1vAYACnhxpNODM+34N9wES6fROCViTsiefxntQS0JSTtX0L7YVxnO4QafY7oTwejn1B\nk9FJ9QQjMRcuRCcMMtrSS3rYOLp7O3jromd5PW06lYGReBQ7Nmc0Dms4nsiJ0OZHkRVUxSUoiw3o\nVv4eob8KNvwOQt9FUmciasLh5A9w82Uw6QK45zHYdR8ceQXS7yZoMSCefg/av4XaFzFvv5xoxwAz\ndxeT09aIlJhAS1gyp9NCOdwWT+tVIzk0egxdE/IYkA2Ith4y1DmI/W0w/1bABFFmyPPCQTeQCQ8U\nw8wHoG4f0iUvYrqrnOqx03EoTTj6BhA+/x3ERMHUG1F0YciZCmTFgAy4VkCgj77KU8TecABq2gEF\nPPWAAVRaaLwV1eA0RhwYjsEgUnLNMqTrrsftX4W3woayZhgoe6HscSj7FILJbAt2cCR2ND6HBPlm\niJEh8X4YW4zHG0lr4TDcm1vwZcWgsbWS0JWMt7sQZ98AxbHraLlxNKagjlEnbEwS3yJWPe//o4P/\n9/G/4Yi/JwQNSKlDh24B9Z3PkTv4LIruexyZF+CwdBCffwBkP+xaQOKZLkiNh4wVIBnh+x/B4Ycl\nz4PjE3B8CmFPQc4KeHMFumAK1XIysvp5rnM9Q9OWB9kyazpz0vZjUipw+mLIZy6+5xei8r1Fr9pI\n0/kdJJ99FX2rCM574Uw5XH4LSncpih+EYzJiiBZ/7hzsD7xAnz4Um6xgy7TS5w7wbvpktGkTeGrP\nBkaeO0PxmBVMKUhC0u6mZXwX0ftKCXRKqPzdEJKAd6+L0IrDBHv9+NVqXNYQQoq8iOesCG3RhPhV\nSJO0+C6agqbgdQiNgOifuiR3r4ZAC0gJYM6ld3wl1i8P4F3oRXHsJ5CRwfIz73Nx/DEmi61gN4Ha\ngPDoCjR6PeIdIs7XFMZktdCYaCRhWCxUfAOJy4hc/ijv+9bQJzUy9rWJTKmqAN9hrvmwH3/OcTyJ\nB/lx+AWk7mzE1FCDzSVyxutkllmH7vxrqAdFFPEMiFfDYAWkzYeeeujqA10MrL4WHngO0hPh2GNg\nq0c5vgvOf4d3YSbaCY+j2v8YSHrsM+8gENxN1O4SYk5dTl9wLUnfdKIfG07jZ+NJ+PxN3IHb0K77\ngYO/GUnq7iMIjm5YsWWokMRvgt1r8IWF0ntxGxEnKlDuj8J1USLaEfG4S6/BMeYSssaup7v+DFEn\newhcGESjVIDUBckyDAQYMJjR66Kpz01Bn5rH8OKzCFNi4ZGN0PU69FdARytsnwdFbYjxG4hO+Iy6\nrFSePWQi8Jt8+HAV6r52ZLcVrz4dccIddI08SzsbOeofzajmD/HP8uEOuQBJdQOaQAxS6f3UGKM5\nd1coqbc0ohedNFom0TcqnZhEH2FNBYw6kIU0UQ/1PTDmIyRj+p/3uX/T9uiXiV+KnvA/Bwn/CRR8\niKEDdFhUWA7LMOIgsbZE0G0F/WWQOBNN3esgSrD3eugpA2MULH0XXLdCTwXEnQTtqKFOyWFH8NSM\noDh9LYuJwt50Hf7uUhK/ysMwEIGYWUeyR0JoOI62/zsUdzm/1qnxbk+j+4ELcbacIk2OQXPwMDz/\nOEcWLSAwuos4sY2Yxk6EHz5n19Sx1E36FWGSCmtnLWGtFUxKGkNSSxUjOUnrcymk7d6Ksh/EqA6G\nbUik83I9crcHdV8qflUPqsxcXO1+jKO6kPUqJCFAoLITdW8AzD0IWon03UEaioaRLDagis7/10nT\nF4H7IPSlQupIghO8iEeOo96uQOpE+qfcxJ6y29H59+Mtn4Xc10/nCQfR0aB6bD30rcAwy0SwtpZh\nSwx0pN2D/ZIWgjhRV97I9C47ByYn0dSRjKP/HGbNaQKXKzjTu2gtS8IZYiCxpg9dkxPTYJBEVRfC\nlRfC7JeRP5iCcvE94C+EH5aD7iy0vwVnZKgwwhw91L8JTR4ouguPqhldwI03Nhq1+nZUpmGwogrq\nNyA0f4mmAAS3EyJFNJbh+DsdBA72YBobgVSzH9OZI+BwMXLbeQZHjMPUUo/w2fUQ8A4Rj7Yfzd4m\nYkcvgvH5BPJuxrhnM7K9HYPThpjRhKq+AdOJUuqWJjOoCWOEvwCVvR9hwEowsYfm3JU0dWzhgrev\nQehLhYUp0NwOllgIdELedmj5FYyUIWo/qKx4x18AgVMIFQdRn3Tz8dVXk3bmKMNJwdrTQvCVq4kS\nRSIXa7k1/R06Iu7BHxaLjx4cnMGn2oYv8jsM3Q7iBxJxBQ2ozUHMVgMxq0+iialBybgIMfAZSlIN\nQuwrEDri3/iWJLqg7uBQ7P3GZ0BS/119+7+K/yXhvyM8lBCkm0EOIdOJSm3E0D2G3pyDeEy30KB0\nEOL5mvCAAX98BGKvhmBEDPrSpiGVNYAjT0GUF9KeHyJgoMfgwpjTQalxKdcyBaHkU9pia9FdOEjR\njmNUFaYw/jU74vBEAudllJHXIkjPYBE0SIFihP1qnHUNuI5V448WMQQCTDRWIUyphxmRKCcCoPVz\n1Qd3051noamqD5V9PZYGN4XOcagCh1EHnCQccHLUdQn2m/wIJ2tJ7a8j9lA+TXdUIm210RWaSerR\nozgmrUTwv4A2eTRS3Ax6hi9Cf8985B4TITFdCIIXa8pqatI6yPrTCdRNhr7H6PXcSXheEENnCt2T\nRxO6sxFfxTaMge8JVKvp90bi5jgRUSKSGAYPvEBw6xO0LM3COdpJtMqLq0OPsaGKKPd+BG03zr4B\nZL+J5cd8iE3RfD1zLiln2kidcBq9IUhYVi8LtTsI8cq41Spqbr6S5NI+dP6tUKqBsGTk5gOoup+C\nlBUQvRDeuRDUzTCqBVJDIHERFJdB2qXozn9EEDW1qflk5lwLaECW8TfrwVxDyN7RyP0jQH4NKWMW\nnkNBZLuItWg7csla0CrI84Zj7rHSJ/fSeaCDlucfZ7rQM9QleqANQmJh01PQVIxUexHc0g473oN3\nVqNtqWXQqkZYto5hn/yavgXZ+MQO9CFPw/4lMClIuKeJxEfPoL00gG1GFKcz4wlv0RK//TJ0sy9H\nlAfBcwB0M0G0AFBir+SKl9cSaGhGmnoJi9/+hK0XzSQ0GE2oqx2psIWAR4XvJS/RWSlkZn+GNW8e\n5M+FsHj8zQ8ht9hxVDsYSI8iQl2F94kg4da9iOPGoFjioHczvgofYpIGKWQvgiMCju0Gx3aYWsdc\njwDXd8EDH//iCRjA+zdOPftL8bNJWBCEecDLgAp4T1GU5/6MzavAhYALuE5RlJKfe92/BAoKA3xM\nO09hJxU/MZhIR04/Q727hPDspUQxDZOQjKgf2kxwRJ6lesouCjauhL5kkF+Ckc9B4WbkmrUc8h6k\nSO4GRYXDsZrn0x/jYc8cxA+noyRPo+qzBDIe0RJ6sJSx7gw0dgkMVdiWjqGdNSR09uLyLiN2awME\nyzGaDARXraIx6zvU5xxYzjownZ2MeMlWhKyToLjBdRrXzhKalnVgMqg5609ioD6Ir3c1NQUT6Tck\n0tVzmM9rllCTWED0pAPkaK28rppBbPVJYowD2OoyCZtzEPoMMONlBFstffWvkJY1loFpoxBPP0mw\nVsRw82cEv7mEgbN3Y6lvgPDsIZ0A12coOhV+nYTtxXP4b9cRsCoYerwokZGY8hqwJ6wkVm6Emkoi\nNryGsH05ymgjoQl5JJ4rRmzUEjZSD65nhrhP0mNKTEdUpsK+c/h6DrL0Uz2nR05iq/lyLm3aR9KL\npSjRWQQtzWh6PWy6VMcNDRp0496HsmcRlGikzh+h+Qisb4TOB2BsMoO5w5AM49FFjQW1BJoy+DYX\n1/jxiNoZZG07xd4ZbzJ1eyjCd7/HeUc/rYE4BJsVk7aYYKoXTe336BIU1KHRqOPuQcjNQ7Ffh0rM\nQ3r3MOYYD+H3GfH33DvUzkk3ApJeBTEelj0M256HPfuh6wxccgfEhMLXq+kOz8DcIyMsfo6w6o30\nqAdRH56LShtBpTqPhGPvo5lxI8rkfMJr7id84hacsUEc3dPwbbgHW+NLhIS78ZV4EMQVMFiG1WBG\nu7kUx/Bo9LIKs8nIUvM0Wv2fMRjjQV+iwRsmYJh7FcxpRLCIYD8LO4+BSUKdmwajT9Lnuxv9hMsR\no3fg2erBmSgh9R1Fd/21eGPS0Qw/AXY/ATEb9fvLIKULJhWBbg6OveVYrvoNTL/k7+HePxv/EE/C\ngiCogNeBWUArcEIQhK2KolT+ic18IF1RlAxBEMYDa4AJP+e6fylk7KjJwdjzG6SBahQFYg1enDYN\n+btSEOJaoXkNFKwGcwIARn8qUV2xCLXFKMkgj78PVdsJ6N6HmHMTvXIULc77CO9v59uom1jlnYC5\n+E3wOmisU5FoHE/kweGIltXoKo/CcgscdRKePA4p9Di2fUVYt5fTGxNPnTGa1GwtEe1bSDUW0BP8\nhra0UEw6P7GeSuSQADIdSCskYkq3UuDwolXfSOgna9ANuw5mXgc+F7ayZymXdmOXU0hPe4S3jJFM\nVYvobBb8EVpcSJiXXY0Q6YCS8xA9BjF6DKZOMx2664k+sgvZO4zGomtREnaQ+M5HnL8knIK2JERf\nFbiMoFPR6M8kTtNGTHoPNpsawS/hTxbRKEGEFeuwbroHRYxByE8G2/MQokc4ZyQkdyWKVIq3NxT1\nF5UMzkqEY0ZCspeCUYQ9TxFEwp8Yib4rnpBcBxO7zfzgH01utorRP55DSExBCZwlWSVgv7wUa8JV\nqA9aEAJHIHwOlHaAKxRmL8VhP4uq9hTaMCtMngSOVjhpwRdSgz/vOCERkyBoI3v9Qfbk9VC4vBeV\nJw/Z4cTSsAthrhexKR8hL5q+NxpIuMOKcPAROCjD3HQoeAQi52Fs0kLqp2zxHyQn+lHQ5w+ViP8L\nLr4XjBZY+3u46gUwWAg89hg1e1oZZnbDkbcQGtoIM0VQvSSd5syXSXl9McpoDfq5L8I3d4BxJGjD\nMDr3Yxx7NfiOE1J4CIdUSNW9RRS0HUBX24qYOJvyGz5h+uTLEKt+gOyX0dofIFm7mreqypkxOoRE\nIRzBuIjD0WPIdbcTHt4CEd+Dvw00ISBX4B17BXrvBvTzzfhKDGgXTkLVcpCu7w6jTW5B+ysn7JKR\nkm+Hy0zQZwLM8MY+AtNi4QIfnBkOIUUQcQWEXvjn00J/AfiHIGFgHFCjKEoDgCAIG4BFQOWf2CwE\nPgZQFOWYIAhWQRCiFUXp/JnX/k+hwoKR8RjDxqKcfRvlq7sJZg4nvDMcf08ZikZAO/0DOP4QhLRC\nYjbic5uJG5ULmhT8ObUIlmhUocOh61GofYRZlnQ2avVcFn43q7SzQHBC8hTchQ9QcdPNXPjFF7gm\njiYYpSBED0N4sxuWFhFcfzfyAjUpT9ZBbhbMnE1ocTGOYD/9dGNoq8aCCr3BRfuFzXjeLYLpMfhG\nd6KoQ1BGiEQJ85CqSpFGjUJxfoqw8xO8znAOqmPIsrlJTB2HED6Dn6TTOdJvICsHlG+WoTccQ5FE\ngmYT9s+uwdcgEdK9AbU6gNuooTtbQ5KqCuGie+mOiSGp8VVqRgySWZYI8KusHwAAIABJREFUITPh\n5B4svj68AwKBARHfNgPq++7HfW4DpsKX0evGQMdBhI4PocwNVVZ4tBjkQ1DxAB7RhWZkO8KHOoSz\nqZjKD8DgJtBZ4YY9uD9dwsD0Anh3Nwknl+NzlDLcEMnuvFiaA17idrYhTlWzsG4k/RzGyc2E6AoQ\nM38Fp9+HqVvhhsl47lzC2cucFFYvRkgeDaE5kDIb52UbkUrqCdlTgFB5DiWoJXzLNsIvzuIkFzP2\ncAfD7yhBWHcziJ8ianKg7itUqhmIRRvBswrqPgZHO3x/E+j6oUqGgBenEIKizUQQdf9xEc64CVQa\neLQIXmmEcyuYenY/VElDnaOvW4uq+jQGSy2G754jbrqIRiXCV+/CkTfh0pcBCPStwR73NGHzb0fc\nF4clspnJvQko7fvwZY5Bbf6WwiQbAcWPFJaL4P4EZW05/p5vuXxRFIcyitAqd2A6cidWlUKwY9/Q\nG17IRQDIdXtRjr1OaHolJqEOQavC8ulOZKGT4OcDBEY1EuZOQXGVo6RKBM7nos6OIxCqQ3pzB+LS\nqznZm0dK7EWg+ME0FkxjfrEEDP84ecLxQPOfjFuA8X+BTQJDrSP/LvCIhxicWoJx5FtI8qf4nqzB\n5xUxtjjhg4WQHAMdvdCxH2aLiF4bSqeWQF4S+u3lsPAZSLsFmr/B1PYYMZnP0lZWTXpgAJLzIPtS\njq5axcQnn0QUBLQrf4342u+AXljgBeUEngUyum3AqQ4gCDoLqpuXYF1sgS92Eaz3oowAteLAXKxD\nuzgXv7kLwXcjIRXtiKl3ojS+DvYDyCEW0PqR3b00RwkkZIRRtXcJmVMe+r+/OXj2OMlr9jGYI2Mo\nSKKrxYf77WeQLWoMaV8QPkFE8rmRzQa0kZEEpvyOraYKMvqOMaKkA0fBPFy9GwgWb0S1+zXQx5K8\n5Bq2ZwS5pOkwCdZnCUSkE/h2F86CTehPPAe2MhjxNBy5DyxA7VE8hVPYkzuSuDOQedCN1uDGdGA/\n3kgNgrMBbY8X5empGNvAuG87cryCasM6lDI3hEYxfhRo/G7cBaMxxvZheuMhjPZYvH8cgTBmHygn\noNILmg8IOI5S+qCfvJN6VB1vA8kwMoVAoArHlIOYS41oK78DbSy+3Di0X9eQfX8zZa9cxdGYXooW\nzMeY4IHQEnDthKo9GGLOowDCqBshJAX0+8HWDEWjoOwQwU1zWCo62Vh4G8tSr/2Pi8/RDz++CDF6\neCYZVVQQEgIw4jnIWTVUQLP+MSJ/zMB+gwohdCTs3I6y4VFcM5JoyVQY8G/iaGwq16rCYMAGej9U\nuCF4I4LagyryI/rlBSRvmobwzWMErotDSahFaOxGOqeBuaOYze28K5azdNxzFBy4li7fACQsg/BC\n5JpqvBPnI44ZSePmDJKPJmBRRyPE9UPts1RnhpJ5PhS18zw0zMJ//CCunZ0IOjumuXaqr8llcNhR\norznaJDCsaTeRAipqH7KF1b4KeXzF4ZfSp7wzxLwEQRhCTBPUZQbfhqvAMYrinLbn9hsA55VFOXQ\nT+MfgHv/ffM7QRCUxYsX/99xTk4Oubm5/+17+xdYY6sYccHb1BxfSs9GIxmGDeStbqZk6wqs1W2c\nHraMPHkLcS1nMGq6EXwyigiBCBHb6AR0xQEqQhbSyGSy936OKluNOamJDYWXcOujr6JSgnwfexl9\n59swXHYZMYMnmXz+dVQa8DdJ2OMS0Cf34JhpRnfChtBgRS14cRrDiNhRS9ecLHxaIxHaGoRyPypD\ngL6MZBgtcrTuRnL4llBtI/6gDl2nnd2mh5AFiZzSjVRPUxOW2Uv0Ex5KnSLCpUNOnX3sdTQfFKM1\nyvjC1UiLrVRrrmOO+EfkoJpggoBK8SLaBDo682nKmoBV20iudxs/lBYStb2U2FQ/IalaPKow/CYj\nloJmhGl+On9IJfpUC3KRQH3LVFK0h3GMNKH+XsLc0sn2yc8xb9eDiAkyDbrJtEfkM3b4BwQH/TTU\nFpLaVIrdHIKtOwHJqyHoM6CXOkkYKKc1dSSh5xsxBnsRQoJsWvAW8X0vMf5AzRBZXQhyjg5/0EDf\nSDPu+lQS+kso77yYJKmY6oJ40rdWEYiMBhMYem3o5AFsF4Rhq0ojfF0b3jwzzaFjKWz4EG2nA2VA\nRenF07FN9dEakktBdyX+c5GEn2jhTNYlXKB7kVZXAZHDauj1DSPGVo6m38khza2MiNxCuK4W5CBf\nRl2Dcu7fSsyqRScj+jczrH4fmmo3dINvkYazrjjccfNpM+WTYtxLxFunaEydgSffSszMbUSU+vAY\nApyckYeneDKto7tJafYQc0hDctVxUocfhG9BiRI5u3gCIUE/Nk84CR+dwxkVgXqpC9M3DbQPyyKw\nyEPUmwMY7b0cm7eC7SPGMq9hB1O6v6NPm0Ht/onEHiqhf3gKcRNLKZmcR/z6XirSf0MwpJerIu/C\nvcuMWK9wZtbl2O2RTDr0R3pMKVj6bQiLvPwQfAqdf5D4tneoLfw1SrgT0WoDMQgBNbLLiGh04Csb\nheIy/bf8+OzZs1RW/usL9ubNm3+2gM/DyoN/sf0TwtN/MwGfn0vCE4DfK4oy76fxA4D8p5tzgiC8\nBexVFGXDT+MqYNq/D0f8LVTUZJz0sRpN/zSa7t+LLj6R1BuvouvjeZhjwLnGi+GqOxETUsHdjiQ9\niL88AalXg29xBfq9AfCKEC6g9ofh2GPHtPpOhEn57Gv4hu7EcVxSn0rLk7eQVKTBv7AFUTYjvatB\nePAESkAgeEs+nje0eOpHodbEYznbCh2HoGgxFGfApBkQuGGomit0DRy7Ccak4yluQpErUGFCM30r\nfPsgLP4IzNHQUELfm6tR6dpRHe9BPWYBm4fP5MrlV+M6fhzHHxcgH+1GP2MO5lenMKB6hbAXnKA3\nwUUf0LL7fsrnFDJ3w2aI0iIXvE+taQ/p1WbE2jL69Wrqmo5i9eThqz2DNsVD6DAfpqnDkYp7GSy6\nHWP9nQgBCfoW05l3hvDv7EjDr4dLfw/b10D5GsiZDNXfQ2Q3JMyCMgGW34+t5BrkdSrCzncjPPMJ\nFBTCfUVDPfOuuhtl/QsEW7uRlj5EY/km4hvLkBJ9MF6DYgonECviT1lEUHUK874aGBaJXd+JYdCN\ndDQelk8H00oIZsEjC1FCLAgrX4NX7oNhPpQrPyTw4XTU506hBAqh+DhdW0bSrbFSYokjv7KRYZWd\nOJYtJLZ5NELrKWgrhphalAYHFNyD8NnjMO9maH+Ptsgr6bT0UZDzBnhlOPQYxOaAbw2cFYEoaKol\nUD8AVh9ndFcy5smPUQQBzw0p2KaqiHMuAZuPtrsjEN2HcfafpSM4gZbYyVz4/Ua0dh3dV9QgqmOI\n2daAqJXACXWtqQzzBFCKihHCZoN9J0pnAfKUt2kJfZM4nkJUegnUrkF6/ge8Uy7iiasmc9v+14ht\nPYysHYWYE4vStx9/+iD7oseRLdYT0pFI4HwdIZ09qD8LImRH0//sFjj2CcGPSjHH1+Ne4EKfOAdN\n+OcAbP/4OS4yH4GiJyAyDwA/Thr5lnYOYiCaDK4khJSf7dt/DRW1B5WH/2L7p4UnfrEt74uBDEEQ\nUoA24HLgyn9nsxW4FdjwE2n3/z3iwQACGuQdC6l+620ynnySkPx8OL6d0B21BC+bjH7eEWRbA2J0\nAmij8YXp0Q/WE8jUIyqpCEYvgSONCCo1xMuo9Ebkyl2ozr2CJiyH/aPymbT3NqKf8RBUolHvUiO0\nhuG59Wokqx2xu4xgoZfBQRnJU41kF0H6FpyhcK4XumqHKqvyqyFyOIr7IeyiGWHHHjzaaASvlfrw\nGISdNzDyZDWaI5mgtUBPO6Hh4QTqOhEK1Eg3LkE55ADAMG4chmkalFzAJkOJFrUhiDJmMUJnE5x6\nh4TUBfiPHEI57YHIQYTay+heOR/NuDmkLHocvdAE3Mmw3tUoognX01Ox7dbQsacDtd1GTPfdDEwI\nxxwpoupswhz3WwbnHcA6+qdFnTcN+tuh9g+Qp4HSUeBtg9SFMFiN1XOOkqLLCHFWoK49A9PnQe5o\n+NVrUL4XnI14Zudh9Hv4P+ydd3QUV5rof7e6OndLrZZaWUKggABJ5JyTiQYHsMHGGHs8Tjh77HHO\nnrHHOWeSbTwYjLHJwRhMzgIBAqEsoZxa6txdVe8P5r3dnd2d3Xl+s+Odfb9z6vSprnuq76m+39df\nf/cLyXtOoS7qgdZwHlEZRlu0mnPJn9C7/BRd5iLU9iDV3qEox/30MI+EqBMQ/BHCp8F+L7ywAdHR\nDO/eDRjAloryaT5dy1txDhCISBlatIxztQ7H9KNc1A2kJN2JyGsi0z8akTwTqr8EkxlOtUPecAht\nhNG9oHULnJxC8n0PYyl+BVovwv5nwVsCCQcg+V0oXAL+ENrdq/BY3sQnfYX6ugYPX0nQ70TOH4UY\ns5tARyqmxJm4vn2Gkiur6NbRgDh4kkFdsGnEJAblL8YhXaQt/Cot4yuxFzdhlkKowThCXi/6UzFo\n8ZshHEVL/5tpMbxGxnYn+oufQ7QL3eWvw0c6LOu+4sWZLxJRwmh3zUCXkQvWC2hyIvqmTJxmI77Q\nRfyRetQsC039uuF0ubGdDFAVfozQYDdObyuW0nishhHISsb/kTe3Pg16ZcCyfnDtTkgfix4rWcwh\nizn/FSL/VxH8haRX/ywlrGlaRAhxF7CVSyFqn2maViyEuO1P1z/SNG2TEGK6EKIU8AI3/exZ/8fz\nomH1alp37MCUnk7/b75B0v8pbtFkpbH3ELpdfw9a9X7UhP1IcfcTRiZ83olshvAEgaU4gmSvQx43\nGfxBWPQk0u1zacy6g8CMnfSoKWRi4CdKLu9Fjt6FjA16htCd341x/UOEDSrhqS6kqSEsOxU689wY\nTu6Ftj7gvQC954I4hLr0FbQRlyHp13FCXImry0hS9WiiWvaAIx6vFubIoBwqcrOIb+hg4LHT2FJS\nCBZZMOZ4EfYgnFpFftgLh49CuAutexYY6lGce9D98CO2sAKOTXDTIYjOgIPvkbaz9FI1s5ABMWo6\noSSFBmMLGULgUXdhqzHgP/Ydpvp3MY8dhHX0KChdRUjxI8WolKc6SNRacQ2fiLk9CSU35VLWGEBS\nJhjXQGomXDgLKTGwdzeMvRaeXUnHwnyS7Fn4+hcRvfRVyLtkNWF3wvCrCJ2cibhYibbvI7b/6l4m\ntGyC46D9RqKrcAGJR32o3bIxlAma+8XQ5akkeVoTDbYy4pfb0aK+QLYO+KcFkZAOT34NT1wORzYR\nrvTgL5RQ7nkH3c6XUS83ItfUI7iaUeXH8Zwu4sL8XFqPvYC1Ryp0FoOvAyZ9Dv4GCKxHU49BjBMh\nn4fYXjjCAUgeCpe/BxfvhrSPYN2r0FYHiVmIvZ8QNepqrI7FHBuyHNWRiCewjLi32nFE9aVj4oe4\n3vuaI/cPpaCsEjktTEqXgnHITAb1HcMfeRmrKpjfAY7ay/DoNxL8yYBnhp1jQ6MYdKgnkYiTI+Ua\ncv2nSC0yhbo0JE6RsMVPevEJxJCRhDd8h5hwBfr2asSyrWjDImhxRWjptei+NzFQ1sGuBpg3FjW4\nCym6P1q4nMhFGxnh27C++zSBfRmY/7gNTj4CP60GSxBG33bpWWfNulRb5dBLkDbmF50190vxCf/s\nWWiathnY/GfvffRn53f93M/5ayh9/nlKn36avitXkjz/zwxzRzzHB1xPN1M+wt8LKfgMauAuPEom\nFtso1N41EDqI1Os1kF+CuiLQp6GUvoM3RnDCt5QxSjzGUCYzN47He/WvWMFGBgddDDn1CiLkIJic\njrz8B5RqP1qqQH80RMU1KViXB9EeXoOIkuHI51Qk6fCndsMcPE3St8n0zR+Nrm0NOFvA6Ias4aRZ\njXiHzKKLj6nzpLNBttL7g1O4HxlGmr0HSWU7KR5qoq5FIKXb6OMBodwNxfuRR7yC+v7HhKytaIMt\n6No2YDDMgdJWJFx4J4cxtOgwesvoe1BPc3oFbFqJydRIj2N+JG8QbVw8UkUZJF4AQxwGnQxRUfQq\na8Cdr4eLLyPO6rFnH/unZ9xyHLWjDsnnvrT9Wr4BPBpsfQItdxD6o24skfVo7nq0kIp49VkYnYXC\naboKl9FWVkr6wfMwvA99hq7l5aR53OzuIGF9J4bFfoROQ/7mJD6XHb3wkbG3icr8VFIr7iKYWUrE\nWkoUA/7l9y4kiG2HRoFslTANToH2N+Dma1F/XIlk1BEuuwiHqohpCcOVQQpHxBJ7chlW+zSIqgCT\nivCehkAjmnEW2v7vUQd1oDtQgBbU426ZgaOpBmqaofxKKG6GUfeDJMG2l5HqTiOl9Ue6aAH1dxgG\nZkNqGubqszTSReukZroXCdrze5FwoYagM5n9tgN4607Qz5VBTvPnqKUGiL0M/TeDaL9JwpTlJq4y\nhBQ/Cy3r15iGLUAJ9yFtlUpCx/c0DMrg6IjeHPmqmbybF2MYLRE+eBx7ixVnVS3GI9VoC0xIHTmw\nqxCRHo3WNwDKdqRWCdF0BpLAMzSKqA3r0Z2vRbENu1QWM6MH5F4NjTr49mEGV1RDYx+IGwUFt0DI\nA0b731ze/2/5RwlR+8XhOXcOIUmMLCzEXlDwr3ZmtfQsdEkbCRpOocXo0fRPEzAnY639CPlwBqHc\nEIYDgyDvNIz8HLy/ImjtQq49gv5eB4M727EZVkOyBeXte4i62sYw8vncuBHX4E/pQQoSDbSlLMBi\nKsa0xIMi63DU5hEt6/E//RTmz1bQUpBFqOx9NIeB6F0XMQUssPkFCHogIwOldzYipKKb8TF9hJ2G\nwKf0+XATrNMQX+7iUIaXHaGz9LZEYXA46TqRQp9e90DZi+B7FkZboPo5pN9txvTKs4T7PECg8zXC\n5R9i3lGNlBLElJtF8HQLhpIO7OFmytP7ow1pw7TGj4gBLVtDtzcAsWNB3xsGd0BTCcgR5LI4PHHd\nsZj2YD4WgM6n4Zpn0BKyCNZo+A870PVXsSChyR46B3UjNjYetu0l3M1Bc18b6Z0q4ZR49MsL8T1a\nj2hRsS7bjGlXF3I3lYaWDLS3Srj+nuE0ZG8hujqApaQNcy8V/ywDh7NHkb9mL3JvyNpwEZP7J4I9\n/EjKOP6VfIW8oDSC34D+ij6IZ86iW3CWiLMRJbIVraua0IEDWJp8aAUSI9vT8VRV0WlzY8l7Ebw7\n4dyXiPazoIFQT8IZjdoBTiLJbTiiO7HVFUGlA3zNcLLh0r+OcXddUsIDrwVbHNScILPwUYSuBtPq\nerSDZsSEIYSl3rSHimm26OlbUo47oNAcFyS//jhxDaXg7kQL5dK0IsBnn2jMK8rCdW4c5qzJnExZ\nguvUm7i1KqzyeXbrR1Az0sTcczGkiDiUo21czK2j9bUkEqNG0f3ch8hGO7qghDJjBNK60yCaYWE8\nkERg13lMiV5oliEjDGYwp6YQrj6N8OUjuWLAvx+6VkH4EGR8AD2Wcnrpu2TveB2OfAlXvw7j7+aX\nzP9Xwn8jbLm5ZD3xBBoRgqwixLfIDEChFI0wAgOuVC+Qi367DynHjzvxbtTQQaw9Kon0kDEcDsH2\nA0QqT9BoMBHV1IBsULGd0eE5noIYD9jtBL3V1Gvf009Mw8ocfuAwCeTTxu9IHPwS8to5iNtexxdj\nI/GpWxEuGePwASirR+OyHcI18BsYsBd2vQGpRrTHTqF+Px/vNUno/B7M6q9ArURpqycSPEsg5CP2\niTykhCgm+qMZX1XIGSnMUSWJYPYFLlQ+RXYoAdSn4IW5cJUV5M/gt1b0WjH6HqvQvryTSM9GvGaw\n7StD0ptov62AmBoXEX0C2pvHke4Pol400HUxFnPv/hjvWw36P/nPtm+BcCuqYiS1Jo/CcS30zBmK\n1boUtq5CbTIgQj0w9DMR3NZFYCxE4iwoAzyoneWol5mxnPTDMIVmXT5Ym4irScHcGYX2UTtaWR+k\nG2NRqypwmLzsL0zGPmE++TP9tE9Npu1CEvLQy4gOfsXQ47vwR1+DclkLfl8E80M/YnI3orRUwFUD\nICrl0pxDbjiyGDQ3kAaz9yO+XYhmcRLhOyJ9K2hvM5N0wo0asaCOGY10zoMlkoq+53nwfQzqJug9\nEs2yBiEXQOEexIDVpO1bgSqHCSSoVGYMwdYth7jTCRjOrIXfnL6kgOGSAhYC0gdQpysgw7EHfVEI\nMSwMKSHiTgUoGpKFpymaFlM5aRcacB0+BuOvQEu5AFUqWvNp4tslpp9vZf3Iflz9xnZsMy+nUq8j\nKykHxX2UKJuPy07sIWSYQ7s5hFYdIn1kFt2kWYQLP6Iuaj2nZvfHUttJaqOGvWQvmk0gRVSIN6Np\nbkzjfeAAkSVBfQQRAlO4iIqh00k5okfXLRban4PACUheBtKliAe/0QlTX4Ah10NbNTSXQnz2f7EG\n+M/zjxIn/ItEQyXIl4TYiYYHA9PQ0QvBJb9wxZmVDM8aDqEYKLyI88Kj6HJCBJ0yupowItFGp9eJ\nEijCaRyBKUkhlNmF8W091qQq2DIM0udidEbTUPgmjf33MYDnMUUqOKW7j97bFxAsfwTZXQsjB2Ev\nb6Rr4tV0ZB3CcfAk+thO6D4CzfIdoRE7kQMSWnYz4Y4CDP1N2GolJE8LdC6CjLuJfF2GzuzBFpWE\nlOGFEzeA2YbUdoF8rYa8pv2cKU5CyNG0DZqKc+tymP8cdP0eXO+BFgLfeiiZjejRjJxyNdZD+1Hs\nDUihaKK3XgC5HiwmtEfmoCX5kTiI9LyPtveGk6T/pw2MSMJiwns/ILDnAlEjLtD9RzNNfSaT7vgA\nXdZodJ0RpPXXY6irxN2zN/5HSjDMcmHypOPNWci5KVdw7sq9TPP/jlqnk2LG0XuUg54bf8S4aivy\nR2OR28PQ2ojp1pU0bTlA30W30LZpMW2Du9Gz/Qr83/yOQKYgpsJL1PhVeIIFRCxWtIxxuOeaMEfP\nQRfx/9OCMESDcx6MnwjfbwNNQ5eegVJbi5SVipdkXCUV6NokeGwz8qH5MO0A0r5dGBffjufOIKaZ\nx9CLP1XUaKyB314Jt/6OioK+dDf/hKkT0r44SmTQEOqyalF/M4LY4BaizqhouaORCrfC0PlQtJc+\nJzZgSPMjdQOG/Qb6XU5L9U10OEYw3nInxvpBhHOeQj7ZAce/QVunB4sDUduBUCWST/3EtIIwrdXb\nEWopHukslYlDiK3/nhj9GLS+DjK+P4SI6Y0SOohPPYTh2ET01cPo1uih29q1ePq5qMm10pU0HKW3\nQsE+BWufR+HDBWi1Mp5SCfubnyBCb4D7IqLXAOLclxE0PY3BXgOuLyB876V2V/8cZ9ql478Bfyuf\nsBDiFWAmEALKgJs0TXP/e+N/ueksPwOBhIkbiWI50WxEpuD/KGA0jUz7Dtj3KgRawW9AystCsnnQ\nuXW0d9vAN5MXY4j34hgA5tgm1HAr4mgn6okGvOXZKLpUOP0KUvt2stZHIWPDXf85CSt/jcP3CNsm\nOhBFu1E8EkrzOcKfXE/7VIXGQRr+PB+qlIh29gxhbyrSN81oMUY4CR6zhhLVhBo4inqsBDx5aPGP\no0kDMdywAOPcWbC/GqzDIXke6FrQBm2ky+GgsNdVZO7vwv7pc7inJaHMfRgsBji3GiQT6qEuWGeF\ngZsR+mMIWwmBm6xIvkZ08XOgA/SGTkKB/Ug/uBGeeSj5Ktb5v0Mr33Lp0akqovl7wjGPoFONSEFB\njMGDw/Ql0qltKAe+Q2m/G7WgBhzXk3SoFNf4eKy2aMKbozGl3MKg2ALmKg4c5m8ZsO0ahm8uIpz8\nE40VHez54i7as4Ng3Qb9QtC+GdVmI/bKGWhPxtKjroOItB5TQwBrsYXOYCydkRmo/gpU9hC44xBK\nZB+SHAMx3f/lojj9PeTNgolzIBhAl5aGUlODjnycuqUYRo6DKQ8gDj0PBSPBno64bAFixBxsWyP4\n6p7Ed+4qtANPwtqXoKsVktJw9V3I8cZ+hI/qMVqdWE9+SbcLPUjbm0Tw6BuUqvdQ3DSC9obP4Pnr\n4NAW7IE6hBWUMU9SmZtIZOXlZJ++wMiidVBxJ/qTa6lIj6VrfAqEjEhaGGl4N4ScCv4IytozeCp1\nnLsjjx8an8EfsePwH0eq7MK0qZoTW6ZwxqIRqTqCGhOPEpvMzslJVOgr4JNNYBXY6hvJPaqjz1E9\nBrk7xTMG0rz93kslW98/hWpMQgwdCuYGMKdC5AxRHbdDRTtK9q2XWn5J/3cxv78U/ob1hLcBfTRN\n6wuUAI/+pcH/kJbwX6S1jLSSY2AuhllPQvadyJXXoNZH0xbswWlbhFlVYzH8tB/6mcG0gvDQHmhd\n6ci7/didm/CeHkxU2k2I6qXYK45T0N/FyZ5/JLPPNfRa+ge6rhrI7tvnMPrALhpDr5Lmiibt8eMk\nL8hHS3YhddsD5zTkP/6B0Mi+mNKehNVXEfdlO+FmGc8AHb4pWWCoweJZjOHWiSjafiKryjE0eKDX\nOQgmgAjib1mEzV1H1ukKRKgK2ToGzXeMo77FDPEZEfsfx2vsh/nD22DWg2BMgh7fEpTvJBJTjOLK\nhJOfIcWZMPkUPMcDmDfuhMRSDCMjtLlcmD6/F8PkAkT8aHQ+QdTsdEi1weZo8Ceh2XTUz8gioej3\nKGVdSC9JqPOOobtzLIYaGcOo+zBm9KPzt79FVpuw2UoR2YNg1HxM/Z+nQ32epMd9TAj4QV0EmXro\nvgx2T2KULpbaNd/RkGHHZLditF7ElNQdw4VSlIf2sCQhxPTARRzhEty2BNTEOkTNJHBGgfXXYL0L\niL3UwcQaCxOuBkCXnk6kuhoj45HMZ6EmCuGUYcpmqPhT5pskwePLEAdeJfrZF4gszEA7uwFNpCFN\niofmJVi7bKixdpTDejjXiIjORYtZjdQzBlfVVJzfePF2P0s4rg33jKuI/q4IS7dONFmisWkZUvKt\neIaD40gU0a1O6rPNmNU2TF0GOuOisCfmUeWycdIdwZVloWbBQAiWvbA/AAAgAElEQVR0El26l+hj\n0OdEK91m7UeZKFF7g4p6dRUD+vyBwDWDkPckIFpbEIEww+Qf8Pj1HHgkn8FvH0fMzUHqasSUOZkB\nG+sQ+79AzXXBuz8iPfcicoKX8E/jwdyGvr0D9FaQLkek+WhKq6V79Uvg3gDx58CY+/eS5p9F6G8U\noqZp2vZ/dnoIuPovjf+HtIT/BUrk0uvFE/DHRbDnLY44F8H068B4CnQWCFwkXAyxai2XPf85hmdv\ngtPrYPluOJuKqPCgb2hDymsnuFUldEKCmKGI+z+C5D6IY5+SfyaP0r7QNX8R/f/4BvaMCP743kg7\nBaH4MNgiCCUaX3YU3rSrUAreQNQ6MTadRqteAT47aCBHNKL360n4ahrxO4ai//VqtF/dAKe2wqbj\nqJMFdJ8Pmp6wXaU+7hakco1+e1bBs9sR6VHYL1aRt38NTcNHoNHJ2duvoCFzNiz4/SW/pDUK3F3o\n67ORjtVROtFFsELBeVajY4oF9f6X0G6+FVNGEH1/G96TLaitJtj9ILQ3wIXHwB6GCYvBe5aYhgtI\nhs9h1GPof7oGnS+C1O8QSs2PaBcPgPsUuthYYm4cj2z003ZAIzzsThg0k1TdJBJ1M1FNsdSmhiHn\nNsi4B/wfQ+/bsYXrqeheTY+mSizVrei9I4nYQigxEmrXQ9zQ+Aq+sJ+9x0YgSkMotWGkNVao9UJg\n+aXykGU/Qda4f7Es/rclrKkNEFqJO90Aw16EthLw/LMaEJIEvSfCCAXdbj3qNWECAxXaH7kC36xr\nESPvp2+P22kalIPXkoY4eh5R70UcKELb/zo6KUz0EQ9xp6OIWrUErWs9Lf1cNPTuTluOFfP5ZfiG\ngBr0oWCgM70D99QMup8ZQcBqpVZq5EJ+G01z0knRpXL52HcYEuNlcKyEd/Yc0gb4iHrMwfEhYxh5\n5Ad63vcYaSkHSRHTCWolSCMfxbijDNv2PrjunUPWVV9QOysNPi8i5FepzT+GdnQNypB0tKtyEGtn\nQ5/VGHoG8KXqUOPjQeoL4QQw5dA5Np70kx+AtxX8RhCx/1WS/P+cCLr/9PEzuBnY9JcG/GNbwoFO\n+PI6MNrA2R2mvwRRiXhXroRuS8B3DEquAK8Jo639UnWswT3BsQKmu6DWDS/WoNNtR6eNhtoBOFcP\nILD3Ihz4Fp7+FrFzCVraA8itZfR9uZ3CRzeSepeNLGkHXp0T/0ADOo+LYGc9xuU/Eu2+E63uLOLM\nh2idHiJGF3LjOjSLiuYGkaightsRWX9EdJ+CL02PMdWF8PhRu/civFJCeH+DKurwJDroll5M+HOF\n1gHdSUnrA4uXols8GMOVbZjLa1HiIpRUBHDccg0c2Qj7vgFfF2peIeZ3MhFTr8SYWMn5+40kBe6g\noeYIGaGniRyOwZgxlPj1B2nq7yT4+HoMT8xFincijAfhmQ7o8xZa3xa0LBOWi0lU5UaRaauCAjPa\nxWj8gz7Fc/5ppHWriJLikYdciXncQowdHXQ+9hjSxi3on7iVWGMOHdnTUVq2E+RDYmxDcIZr4Px3\nGOU25Lpkols60Hqb0Q5UoWtNQowbQtTnX6H1jSYyKp3MdXUYfjyP+249IVsMpnUKoMC0hZdaMk19\n5l8sDV1aGkp1NQQ+hMhPCHkgbL0V9BYwDIe7ciDohTuXQN/JMGM9ouYM0jcqxl71SObLaRWLkJoz\nMGqj6J5nRT0TQbsli2BbLQ1yEv57xhEwB+j38gk8TU1YdSqN0ybitVeQXhPC5IzDkNUT+Y9/RIt1\nYtxbS0x+KqpjDEJ3BnvCrZjGKUxauhhOxaEcLmbl7iU8+OE6nuq5lnmT96LcqiPqOT9tz/TCWv8b\nyHoVCr7AUryBpux0DKX7kStldGMm4Rd76FTnEd2/AX91GgZfiLSvDsAwUFPKoDUd6UIBImsWeud+\nugoSkb87calWRuNQArpoApZadLE3QtU3oNmh8zjETfm7iPfP5ef4hIUQ24HEf+PSY5qmrf/TmMeB\nkKZpK//Svf5xlXBnPXy1EMI+GHoL5P1ZjVMhgSEX6j2QnABpNoiKhZqVEDsXBsZA2AxPX4fu0c8Q\n0TGgzEaKnYNlyIOgdMCKeERUGurG/YhxfRDFK+h52IWob8M3XkdsuBbnYR3mgB+lLwTNBuSm3xFJ\nNqMvbEBzSZAQQoir0RxrEGEN7QKEVqhoLoFu2kG0mXq0rxTEGCOm9wshsJaIezHV4fF035WJ8uUy\nlFoZhQihvT/h1wRhxxCUl/YiDzhK8TrB4D45ZI4ZDkSgYDwsexbVKRBD74Dxo3C1fYoWKMd2YCXD\ni44RmC6jzvBhrBuMZiiE7Ey0yyvp8pbgMM2AmpshMYRGJZpJIB3uTrSvmEDgJUgYA4tepjN4J5ru\nKcwfjkRfeQ9Vb75Nx2/fxjlxIlm//z2O99+n5ft1nBlzCzzYDfN0HSa/RJ26hvb2tTg/tqBO1rM0\n9XYsdDCs9mYiP2xEZziFOONDzEuE7mMI9OqBPqoY69150NGBbdt59KPrYIATrA4I1cG5LZdiVnte\nBr0mgD0NyW6HUPMly7cxFeKqUJMXIe3YA407YPid0HgIKgth5ydgioa8MUjGm9C2v40+ZxXxcQcI\nJX8Dx58B5wSkgk60ukq8vW4g6vyPxC/7FnPiKITLir2jC8+NH2L54EX8oVQMN43EkDsXre0BAuNB\nd7YJxSLj+qkRf9pyyPmKWLeB6pQPiUosgIOricx8g8sK7uPsh6CX70BxL8H4igV9cRvZy4q5Kfdz\nHi9cRKIZbNUhHI1mgsa1yHc/CXuLsVbOIyVjFZI3jH64G/FRNcrVWfgmzMAvu4m40onevA3rLfcj\nnt6OorYgxSTA6Glg7oXv+JN0M8ZD799Awkg4MQv+rcpx/034OSFqmqZN/kvXhRCLgOnAxP/oXv+4\n7ghrHNy2He7a968VMICvDg7eBQXvQeqLkDwCImUQdz00LbnUCvyUFW5+BvHcQqirhJR+cPgLqLYD\nR8CSiIi5iLAeRKvYRiBbQrXpUDItyAc0zAfA2BpGVIIsJ6O/YRC6aS3I8fWIeRrS7RqysQmMGyAu\nBVWnQ+kOhlcFphcaMF41huhyHTZ7O6SnEjj/IZ7jy1BPhMkoyyK8cwvK3CCdt+dzzhhNzepv8J07\nh+/KLhyZSfi7JuO6L5eUxfchLX8J3nwY1n2GOnU2mFMptJyn7PxujI3ldNvfSUg9y4reN2L9yoWt\nOYhWXUKoVwpoVbgfjGA4YEJta8EXeATv/IuE58topRLifBMsaCYhMgnm3YkSJxPIrSfcrR37hxqW\njB5kv/YaCRPH4i0u5sjv3+S3a2u4py4G7Qk3fZ3r6beik5wVMPDRkzh3VdDZ+COnXzdyKDGPa85u\nRpy8H3nyQqhMIOycgvZCO3Qbj/bTGkKiE83UQOjF87S/FE2kWAc72kByQPvXMPIWuPZTMDvgm8tg\nyeXwwx/QKorgzFkoOkDnBxdRGkpgylxwt0FJMRzfC5s2Qe0uEI1wsRa2vIUQPRHfbUNX9CpW/cOI\nvoXQFYJIA2JfIjHVYey9EzBEhRCnfoALfiJJqRzt14x9honSPpNh0/ewexdaRxe0SmgFoPbTkKxd\n6NtKCH0/Bl3hk9g6vYQHjIQYO0bTUhJWziMuGmTrt6iJUyBXYLM4mHSwkE9T6lFdVyFK9uE7vZfa\n2iZaZ1kI6Jx0TXgZjq5F9gxFpIUQfYbAlKHoDvXC7nyS+A0SyWsTsR5xw2s3Q+d56DqNsAsYMo+m\nXrnUz74X2W+GVdNBigLFCdIvNxnjP+JvtTH3p0YXDwGzNU0L/Efj/3EtYd2ftVfRNPjhCyjcwfCy\nUhBPQ/IgcPYFTYW4R6HuOsh6Fkqvh+F3w9f3QXYB3PM4PDERslRI8UPGXEhQIakXrddeiXHhfVhK\nzuN7zo4t5yOUrW+hNP1IfbVEVKITk70Bf3sv9GuPE64W6LwykYMqwbndsBaV4W9JR58VQEtVCO0X\nWIcJhF1GHZWAvK2R4CQj2FMoC17A1FJOD18Xqrme4OR7MHe+RfxQmZaei7nsuuuJUEsHVYSb5hD3\nyXNUxUskzjHDjPcupSkf+xH38d+gq6ojlFtJx6GdpEjVGGUJ2acSmRFGrLMhtnrRkvcikuJoHWEj\n2/pH5Kl/QNm5BN2sKNoHKtirvAT75mJtbERqdKMZ5hOouplAXi76VhdaQg9EjwHw3kNIl49C7dbG\nZ5Yb8Pj13GteTb/rC0B7kq6otfh6XEfNo4uIbWghWh2BvaGcPvpdTF8Thc3VCokGxK63EC47jTMX\nYji7Dd/X5zD2iKaqfDF7Miah63KSn7qFNY/eTvLBTPLfX4Ovh4Pt060MrDrFxOxxYJ90qetweTP2\nm64k3L0fNasXYrlORdvwJvx6Any67dKzemw4tNVArheEDOUroD0Ebjuipjdq7Aq0nccR9hwwHoSk\nIExKgNLPiTic6MUQkHahRqkEolXGHvsIEZOGKb0Txi2E3RcQDxShz7XS8WhfzvQyMnLXCer6dqfG\nZcGQ1o7R34hyvoxEYxfazjOI5EpCWybi792KsTwbf3oQa69G9Enz4KUbyXnle+iKhshFrFPvIKr9\nDsrCz/DA2WnY4j7mbX8TsbFPouM6xKBBiOQQvPkSWMrBshksOtRvv0O5Khuc/aBwG5rqpphtjDTd\nBlHvgz4f1s8C1ygImP9N8fvvwN8wTvgdwABsF5fStg9omnbnvzf4H1cJ/zlCwITrQQnjPLED9gcg\n3gttb0F2HpR8CGOvg4rLwTwUUl+G6bPR9ixC7K6AUf1h6w40vx9Fv5ZAWhIR3zqCZ/ej9fWi2gw4\nyjR0J+YTKW6jqUwPgyxEht9Le6iO6DXvIiQNHRIiewy6rEQkRzHirAPTovn4ly4lODYa97AYgtUe\n7LVd6O97DhElCPaPRdVVEm0uIzazG6JbJzrlO6J7qrDaBZ1NxOgqAehkKVGRBfgOP4vWVU9CWQ6U\nLQHX8Ev9yPqNxpBfgGneISzmcro1VVARm0jd8ERstWE6ouJoeqE7rrrJsPt9pPluHNo4DLufB0cz\n5GmEt3pxxXanyCKhd/YgYWE0onQYwhjAaBiMo2I02lkZ9+xW2jJLaIqU8fpnvdBxDfesfYpe91yN\nWLMWJt8Nsh6d5w2M4atIWVyA93A28aNzEBkXeOXoUgaeLwXPEJT+/fghT7AzksmN2+7DPyyT1rkD\nyCvaTfKGJbRN3o2pupVgXzt9UhYQ43sJ06gcYvdVccuiP2COMqI5PAgtBGkWCIQRI1ycv/099A8+\nSuDQNoLWOuSHLkPcNx0x6A4YeiX4mkApAXM51ObD7Z1w/CBiwTtIoSbUYSuQTtcj1HGwrxD6XaBz\n6k3UusrI/WE8odxjaEf8WBt9qOdVdHlDSKk9AfpZMHE0SucqxFEjykUTrr6zEaqbzGNNpPd+hMbn\n1uB4/0PqezxO/Le11I1xoWYaCE4JIJRHaDGvZsAhF1JWDoTPgbMW3h0OhjpIm0CC/TDofMTTxEeJ\nU9jftADp7LvIPpXzfT4mp//v0ZWugcKLcPEAXNcL7TYb6kOnCA0qRq/1YlfVfIap88lLGItccSdg\nhuF3QfWr8NN+0K2A6b//+8n1z+BvFSesadpflaHyP0cJw6Wd7ik3c6Chhqk3PAYqUHIETuyAonrY\nexL66SB3H0hVaLMGQsXnMHs3VG8Gy2HC58KIUBhTpx5ddE+iaooRvkZUl4auMYTq04joNBx9bTQt\nyiLaMov6wh+xuGR0oTjkKAeMTYSjAjo94PVSmucgLr2LwJUy0eVzqZ50BNePAZK3HEQxRRM43BNz\nXD4WeT9K6348sTokQypS3FCkfq8hBcxkKHuIaJ0o7IWTzWiH1tASSSHj3BHwPQyrMlB/TEek5qMt\nKEFntJNXfhq2CHrpL5JTV8M382dxrLUft5z+lPaWfQivhXIpjZjvvQRLwdD3KLSqaJsk6HMGt30M\nqZ8VY+0bxH9DHKLKjXdYIkr5cixKFzuL57L2zCQSAzfytHUqybs7UVN7wdjL4dReWPIs3PoCiiUZ\nKacNW08dtiFNsGkw+4Y+T9nwWSzYdCWvjb+a1j79mF/1Ci9KXyLNCsCRYti1A8bGI1Q/3V7YATFt\nhE6m0OvJAkomuOj22hqYex9qUyGt8QnUnDNhHTaM+NtvRzv2AL4PXsQxMANTSRXGr0qx+TqIBEA8\nugXdfU2I0DE474crZkCwA+p2QUUXJMjQdDsiGECq9qFmpyI96UVEXDB9OJbqFUSRRmv0ByQYO6i4\nbgJdpRfpubkdXcNSMhQv1Pth5GxEjY7gTDfutBA5kQmExYdIzRr69HEkDTqM997ZZPTpRiCjP8mT\nn+di+s3EXHThSXXhdiXQnl9C7M5KZDUPHtoCD/SFrB4w9VboPhJalxNx3Yo7/lvm1zyCiBjQrApW\nOci9vgaeCx/D6ayCswJVF0D5uh75OgXzO17CaWswhLLw6jtxNhRBsRVtykRE8njo+h6Gj4PCtRBs\ngUG/RmjK31e+/0r+ViFqfy3/uD7hv0CbPhsk/aWOsL1HwPVPwZNrId0HnV1wJB2t/To4+QXhouGQ\nlQ01G6FPK+LXNrTRLchmHaK0GmlHGGWvQGyS0GoyaTkzgUBqIo6eHrSoZro+7kPi9ofQgrF05Q2E\n8Yugthgteiuaz0/X9FF0le2gdmw8olSjuKeedvcQjGsaabsphbPLe+LNbsX+8LvY3i3CulHG8nEP\njL8Lo1u5AU2KEE70kdRvHx61J3LkCL4en6K/1o7dbkD0HQR7z8IpHTg7Uaq2ITproV9vhMuIWHkE\n8nMI9kxha8ZUqkIZdNXYsHT5iFbC5G04hyNUijK8jPae90F0Pv6P5qI2yAx4uZCohfX4Jg3Bdvom\nHF93EryiAlntw5HeTiLVGreN/ZoXMr8gdcrdSNOvRSQ70bxdoAdCftSTGwhLp/CLty99OaZ4imL7\ns9P3FjfL91P9UBo3dV/Di2XvknfajXS6L2LPBNpyY6AhgPjQCzFRMHYadIzFcMSH1N4BCVkEnt4N\nF84hJcfh8h8he05vTMNHUPLgCxx4+AzerChSWluJu3sJJdlj0IqqkD74PbqZEuzdRWBtHFqLFWK6\ngUsP4YEQcztEboTC8aAYEGnDkNQ7oK4DhuXDSQt06Uh9pxzTdg9uOYsotYr8gzaMZa1gc1CmjIOr\nX4XNb6NTOwgrOcSXVOLeMRuf1okSCcCPS9DNvB3d42upPSxwz7DjL30Vx3ozsX+oJWNfDVPckGAD\n2ZMPsaMulUa96V20oirY+xEggf0Z4qvH0X1ZF0rzQEhMwe90kVrdwDOdz3B6egrNd8WgfaAhDBXI\ncyyIeS+gumXef+wB2jKi0fWfg1oRRon8hD97BVrNRxA/G4Y+gGawoDmT4LNx9G/4i0EAvzj+i0LU\n/kP+Z1nCfwlrAtx0AFZPhSmjYMmnaMWg9p0EJd9CRQ3a1JsJj7mI+dNOCuuuoJ9zG0roIJGJiRjq\nfLSc6sRkqid0VR/UYx6s3hocRlCaQ8i33Elk8yfQWgwImH4docGfYSyPZsDj39L1q8lou8KMTLsf\nHrkC1d+O4u3FSb0dx7AMKrt30v3patQhMkq4GjErB+QG5FIdkmsoFyqspPXqwPz+aWTFiThYhprQ\nA5b/BGEFTr+IVHYS7auDGF5vRwtXIgYYYdkCIkopcmk0GXjwnDqHst9NIMdIl1VP1Cdd2BfUETyT\nhvXdd4lIPkwfXyD8go3ISLC+5MbXeRR3Sg1WzU7ngYOEr6imr7WZgU8uwG85jPHiZyDrYFJ3JIcP\njo2EnnGQEYe0/gkMTjO6KBUsXr7RaRQOGszwyE56igRKNsTgPHUEzF6YcC/k5IF+M40xuegHpxK1\n71v49gg4/aBKcKgNJmXS/YrJNN8skVofhOnXQMNp1KpzHPC9SWh7Kflfvo2663VKj1uR511BqCuE\nOP4cUvsKWLAKln6PXhSh1DdDx9XIzr5g+ANc/6eQz51z4ERf6MqGdS/D0Ai+IYkY177D6QGj6db3\nKM433IhTARhohtowJNmgqg7J1h0qDwB+NIfg7M3jGbR8BWHVjWgzo0uUCJ/9nI75MjExj+O86Uaa\nt7+B+epxRJ/PQFzjhfdvgygn3GKBmgoQSbDtY7S5j+KJjUYesB3xRXcMkTHoTn+CZdodRCYORm5Z\nivmTWtikEnN9B/0Hqzzhf5VuJUe5p2Y58mVz0ZytiAf13Nn5FieMfdB5DhJKLEKPQFfSAYGtqMOu\nQz31HrqqIjpmnUeOiyd6dyXa+U2IntP/npL8n+aXUsryf6Ql/O8SnY4angPr34UMDZ95HsYHH4e3\nfoCcCURGj0SWZiLmLeOtMwNQx6YRsoYwXmigvSEBXf84LFfI2L4rJny+BIu7E1EHIrc7IvprlB4O\nAs5MmPkWojkeQ40F2ZYOA8cRyfNjNo2HfRvh2D4kl532/HL8FoVevv6kSb3Rnv8IqSOfcEUuavkC\nDPZX0B3rQtQXofe1Y//6EMbUachNEcJ6A5I5Gt4ZDU8vhOJNoI5DN3EhUqeOgLsBxeaharBCOEZH\nrd/E2Jmv8PiiW/Gs89H8dYjGQ2HqJIn6t6Npf7WWpiI/LV063GkKSqQXjupHaR45i0NbvsTVvwFL\nQjs9Z0kk2hpp1RtoXb0cw14dGCSIfwgcNTD8TdSD6QREPu7lWwkkR9BvOI3y7Wv4Ps5h3Iaree7w\nGXJ+6MT5bR15dd9BfApE50HPKeD5BqU4jk5bkNa8UiINBhg2HCZPA89x6G0DRcVgz0bsXA9JGTD7\nKSL5E2mK0ej5dgm9pqXTY8Jc0hZOovuzIbxnThHTsgvPmUqYvA3qNsKcTHSZTuS8TOQeibB+FVzZ\nDSQdwb0voWQugJtXEPziS87MiaFzghH2f4S/K4Hey+qw1foRMwUcCcFbbihTYd6voeAa0g2HoexN\nKIjhfEYBJdVp4PZgCiVi7jUdbdjdaIEwth9W4j+zmM6rDpAcdR7b3g8IJXzB+QHnCLoEFDWg+pvQ\nGsrh+HcQ9iP2f4btioeRKiSU6/10NDXibg4hVj+C6bPPobwKgQ+6GWlLjaU2KoNXd6whHT8LJ7xL\nY2ECYdsi/OtVftw8kREtDRiPOQlPBf+MBPQ/KkSMJfh07xDuFQMGC4a427GcDdFs6IPImfb3luL/\nNH/DtOW/il/GT8EvgBAhVvA9TVeozDojsWPwbH497GrEMw/BotvRapcQVpagaL/F2zKaruAfCH21\nEiUTahu6EUr3YJlaQHjZAWSvl2APE8KnEekuoU+8ATIfJsr2OdKXT6JmG5EMQ5CXtCBc36Atvgwl\nvAdDVwGseQ8SnXQufAib6W1yPUPQ4vYjJ36EJNLgqZtgZAHB3U9hXP4BQp6E5ttOwkYvumtiEGsP\nQlUVsisd4+KJIG9Hs5lRgsnIg++G3Z+hO5GCFmPCt6mSss/m4MlopM9Pq8nIyeblm59j3vJXcIWK\n8V2fSEzIhz71VZg0D+W+YYgkM+rkY8ilVbD8UdKjXCi/vwGtqQZhGA9xJjr6tZI2UQZPX6CJiM2K\naDuJqDbCR7cQCORTvbST+LpWOvssxt5RhGSLQR0+GXt+ASI5m6zTG2HFAoRPgolPw9674A8TISED\nMaA38XVGorULNI2JwZ3rQZ6VTmzivTiWfol0+22IniOI+foHIrcMQ/ZWIQZdgzOkJ2HSG0hbT8Od\n4+D9m5ErfiLvSQsluwfjM83AljgGkTQWqjaC4wPwJ8LvRsFta6D9TbQDE2ja4KahqJa4SQl4L0th\n+dBreWr3Umqd3Yn8JpGea1ci6jQ0D4jhEoRj0IakQ/HniO1RyP2CoNWDJY54umg+1MVNPZZhUSUm\nhqpJkY9QYImiundv1CQLOVtXYZoaQdsFyicqkVQHFbelkJbhxOItJHjt5Zik0XBqM5RuR1R0w9Bw\nJfIPa5DvrEVMEYS+T6bzlXWYpg7Fdr2GzpdKXJIbe/0WtJzBzCn/mgHKHu4c+RqLP3iboSGZ7ZZ7\nmVH+ALJxD5Y3rYRvzEdES+hzXkZPbzABl1uxmhdBbhYZu58FJQSy8e8qy/9Z/n8py18Qbrr4lDU0\n087gzgp6tCVxnz4W9h+AjEzIjBBp3YB83IdFq0JVbSSYutBK/YQTdJgbK0jpL0FhC6IujDYqmZYE\nHbENoLvi19B2Fl6eh2XodDRpFIrvBypSDpMx7Wl0DRVoP/yIaVQARBHUnqRpuJXm5A+xiyAJZ7/C\nvDQboX8AjJc2Esy9uxNor0a8tICLMf1wIWEd4aOGVNqGpBKvE1T16seW/LlcX/4jjvZDeLsU2nfM\nxmWMInWIwJziIpJUy4ivXsKQpEOLDuOb9yANh+PpHBdLWmsM/kovnXNyia38LXTmItLTQUlG6I/A\nlC/BsQux5HVkoxH2K/wv9t47Oo4q2/f/nKrO3VJLLbVylmVJluScc8LYGIPBNhjbpDEDA5g05MwA\nhmEIAwwDJpiMDRgMDtjGOecsW7YsK+ccOoeqen9o7rv39+5v5s1dc+fCvJnPWmetrtW7q/p01/6u\nU+ecvTcDXcjvbcA/LBZmj4dv34WnPiAYKEbftg95h4SUnYN5yqPk1tUgtq8kesmdSPYo+M1C6Ncf\nkv60sFxZAmfCWE64wbAbEiLA0AIXy5AW9gHNS4T5aRyf30Pi3LG4IwK0Tx5BbUE7WpKEfftreK5N\nIatzBbrDVyHbJiNfugYSMtAiHkRcqIfrHsX72avoEjZgM8zHd3ItYtUuyC4E83hoGQdV6yBCgy+v\nQpueTrCwDEe3SkXuULBewpf3Xcoth9/BioGu/HiGPPAtUpIMuWGQQbPloN19Bz3Pvkyk0454+g1a\ndt5LQuJFcHfgCGlcVXqG2Wc+JHb5KtYobeRt3MuphELWnr6cq/dtQEcKlZUOUhsP0dMYQczdYSLi\nsnG/eyOq6yl0J2LRdr6DSBkKD+2HnFGItmbkh+uQ/thM+LAQr+0AACAASURBVLp2pPlGvNI1RFwo\np+vFAVj8pzFN6YOp/jTapi0wNIOsmgZWyi/x1KSnqcwIMP3wlxgmTIJ1YaRjp9Ad2Ip297sQ+R8K\n8A6/qTfwqehXbD8ZYra7DqKy/7OT/Qz5lwj/jLATwf3cDP42OLsapBugJAwlp+F3f0TTgoQGmzAF\nciFqIZLjTuKXfcnZqWmY0kLEurrQ1ndBtJ5gfDTS3nZicuOw5tei7f0YzepGJBeB9DVi8AL8J8qJ\ncqYj/fAkWnwa3sk5mJudYDmF1s9A272xRESEcOmMxNVmIsxdUOmDR38Lw8cgqSq6+4ei9deRePIk\nypkwJf0uY6AujrSkkyjzVhG3bjmFMX0JRXyKsfJxxPEDtBTcjj37coTnQ9j5LPo0GZ1DQgsCViPm\n/beyMf0I14zUaE3sx/uecVz1+nLEgkTs/nokuxH1fIju+KE4osfBzgfBq5FU0cqFWdnkFkxClHyP\nTusm3NSAbrwFKpZgnrCeUOVlaHjRzOcRzibU7cuQplQjvroPuoNgCMITM6BwLIyeBTnjYOkKSja8\nS8EDb8KhmbCnB/qaevd73zgcmoKwcCDi3veIeOAWIgpfgYQ5qNWltJ39gerxVroNMeQ4HyHu62Uo\nrvkEfqxDcxuwfPQN4plJVL64glO/G0Rs/sc4ihPJuOQKKH8EvvoQT99kjHm3oev2Q/0KxNYyjNcn\nYkwdwITISr49dJahP8p0B6vRVl1kUJ8LMEJCRJhR8tKhQSZUVsHFfcsJPDaYIa+1QsjOqYiFJKR8\nAPJsgvWfEirfRW6+AXFsIzfa48FcxDjHWZKJYp1SxB+jbsEU42OYZSwLRlgQF85gKLwGy6JPsL6R\nR9Mlo4k6vglD+zZ0LfNg2/NQehrOliImXYa+7jheMQvDiFfQPbqVmFe+Rqt0IZSzUCkh1DCkZkNj\nNYamg7zgX8IXKcM5VhXLhOffwK76wGmEmABC2Q3dE3sT1sO/50sGvHLMP4wAAwT4eYzY/yXC/5G2\nFRB7ORw8DGvb4YOvQAjC2o/ITU6CfS5gEm9CaCLR/Upwbu0hJbeFnkEWwiMMdDoteIYNpL7HheoL\nUGToxhSoRu+/CkPLD7A3ATVuLXLoEI78xRCbiprYQDCrE0vRWrq+f5dwRhd9NlXSM+ASgo565Be2\nQ50CCx+Crz6DI/thQBeG2Eq0sxFo+01QG8YwRoMYByhVyDYTCEGEkMCQDFU/Ym1pxRnsAl8XbHkN\nztZCWiwibRbh7skE738OQ3YLN7z8MSlSPXG5DzLWPIGI1r2UrDEz5poPESYNrVujM2YY0T/eD3UX\n4BdF6FxhWoIy2bteQ3dqFDHXXIEW7wWXHjKWIOrKkQ8Fob8KdT0I3zIk62m0GjPCtBemLoZwJzQ0\nw9mjMOpyuHAY2upJKz0MXw2EIzL8GASdAvNPEN18Bp3uUxgKfP4q3PsEPHMfPLwUcWADsTsrGRsV\nhTz6KYJfLcf1lQ8x3oP+7tnoDR5EzauwpIjMHwUrageQGKeSeW41F2p3ka21I5vS6RqTQWKpAls+\npuuW17Hf9yBCvgDj57IlezT2uk3E3vI0OZeHYLwBpVKhe2oBsdXFyNVt4AyhpumIPtNJ0BZAm+xG\nfPgCthHJ4Avi0iXi7Yqm70QP4tIn4HgxHPgQ3DbU7H7EhIpp7VPEQtMHRPm9HE+eR0vZegJ94lBn\nTiFmRBMW3/3of29AV63SOiGaiJNL0BfegfHWL6G+CnQN0HoEafUK2jan45j6KaH70tHdpQePA5Kb\nYeTtcMVbkPcJdC5GilrAosfWcaSgmX2XX8GMVavpih3CTlMmV1WshpLPYNC9MOopMPxjR8z9HPiX\nCP8bahC8W6FuIzSmwasHwGAgrO1CqX0FY1U/diZOYvS5PRi7LuWWWAX3wERk2omu8KAaUnHPuBW5\nazWD285T7UymLC6DeMNlxBka0EcnIKQa3Aikq1cg1pyBkRZEeAz2Vw8gpJm4Y6Pp1tmwbe9NVagb\nbcXzcBFRO+rhVy+ALMPXn6G9sBZKu+CV3yBpT8MJcCfHQ1QRSAoU/woY0NsvIdAioxCZWb0BK59e\nCQkBaIyEoisBF3JyDKLvQAJnN7N473qMo26A2rNMStxEaHwp2vYYznxhpKh/GZyOIelZFWobIR24\neBDVMoL01h5K0/Io6NiJNaiH+PuhMQwXq+HE20iXmaFMJZSRhmHEAbR3Z0C+DmFcD4eeACNw9SIo\naYH4WBgzB4SgTF9DQdVeREUH+lgV9d4cpPIyOrpSsHU4kY3tULgcceYdaPbCrPUEH9QTfEslnHIA\nDo5HNyYfU2oM4QU9KNoKhHwjeul9ROU1WCYk8fy2pfwh/2E2TdaTX3yQ+j52krQytG4Vya9BVA41\nOeM5/+vHGbBnDW7fj2ywX8bLgV2oNwc5vyJE9v0OjNl2ujuiiM16CarPgj1EVWoZ6d/3oNP0CFMp\namQjw4t0qBYV9+Y3iB81AKl6B3T8GsKjYeJAtH170cqrsckKzza8SLBMQgqpDNUfgUyB2mRgq5ZJ\nRUSACYXRfN9/BFMbz5F+QgdDEwideIuO0Hbsk9cg738D9DlodY3kD+vBYHiDsG85gfvbMB5NR5xt\nhul1oJShxb+P+kcLmns5OtnI8L3lsLkdutxYq06RkaJHu3ILIjoHTFE/mav+d/FzEeF/7Y74NyQD\npNwLQx8G5xCQ6uHoUsQnl2P8bA/Ub6PwTD3VydfC5O3URTyMGtONNs6JppMQwVqyt7vJ3NiJvipE\n9rZqChpqcDWv5mTDORov2KmcMIrmCenYnvs9hDwQ24RiP00oMgIaPcSc6sB2+a1U/qovp+6YTaR7\nFC5LIzi74OCtUL8ZbeZMtMQ2xCw9InQMAoOg4HIu2i6Bg5uh/1JoOw/etv/dtVOZE2H6eui6CPEm\nmP04LLwBKj+FuqNI2SOxrPsR86IEEux+HFk3we4QoRInGKxkPKdgVDrpqTBAgUzTcDPhWDvqLQOg\n0oY2ehQJBXbSlWq0TIGqk1EPfYDqPYZ24Gs0FegzDmGMQG+tQNsQj0jwoLQmoe7sT9i6kGB8Er6c\nUQQun0OwbQXebVNo+SqLqI4DnB8SQfNyM5UfzaEhM4cwFpQYA16/RqjCgBIELScL5dEitAdDiCo7\n0idjsK5JIrJRxXD+IvI5D0Z5LWZDKYaTCjw5g57icqo9J6iNl7nJu4lx3ef4w7hFWMobCYRt+KVI\n/ME2tGtfoigczRy9B3ukm9NaJq+8+wy43WBWSb9BUP5tG+47Z6FT6vFOiCHUtAN/6XFCfSZh0BuR\ntIVg/SWiWqP5PivFL+lIuLyZDrkabUAILoTg/V0or59B+7EHTOnII6YgDR6MaWoc3VOjCPv1SFVm\njLoUZk68iyvcjdgbsrjFe5hUTxvUlCC6OzDG9sW+oQTpq1/Aqe9h3Qc0diagG5QN+95Bd6gLw2YP\namQX2GUIR6JuHcSW0lhCeVNwR9hhyAiwpMDRdRD2YygqoMOTgvLu7RD6iXz0v5l/7RP+ORKOhNbP\noawaTvohbT7ByYMxds9GiplEdFIhG7V19C3dTlpiMU+vOcKLA99Dsz2FcIDQfQVVVRjt/SHsQ3c6\nm74RO/AnGagpykNf0UxkrcqBefFk9bxBfHEm+nHXoN3aifr25xhyRpFWrtDUlUJnXiNNeblIpgzC\nwoyufEdvHoOec0hXZcH5WOg5j5Z3DtH/OowXOsFsg6wl4PPB7mXgc0Plu2TUbkO13I5U+CSYI+HH\npRBvgahkGPUNfPMQKGFkIcDUAievRr5sGeGP5uMdFoulfRRZV75L+yca5rCOlBc60BYXIr8vQbkH\nOWERsr8Hr9xGsygkYc4KtBNbYNszUF2LNioDsUaCgstQpMOEYwswZVbT0/ccPl000SsP0HlrOkoq\nSJqGqcqO6bM6yq+OYdft44hQvCR21BHvCpBY6cU3YzGGhGosvjR0oRLo2YkiX0pg+y6ENQr9FDeG\nfiVI0nw82zdjDNUhRgpE1UuQeDtopYihViI3yYhfPkNZWjnm0lNcGnGQwevKeXboY9y2bTn5D5xE\n0xsJ2+eixjqotes5k5LPnENnkAMCLVJF06kYnEYi5w+i7aZvqb9nPPYDH4CzB+PuarLmPwTxByHw\nMRgz0WZEUvJbwbBZOrRiA6quD97u8xhdNmSzG0VfhzbQhnz/x9DcAyW7wP8ZMV09tE+LINRuJKnD\nBhVboDMAgSTEmdXokvqjxaai2IejG+pHNkyEwyvBaiR89xr0dw1AqvHDqUfBlonUJEEoBsY0gH8l\n0jfDcC57lKNTFfpOXgRXNYE0G87uhM56GHQ134SeYci0XxPx1ATkxe9B/tDep7N/UP61T/jniGwH\nnQ8efh9GLYOcBRiTPkQ68TEEmtC5api45xWCBhsi+2GqmuMJlW1EDL4TenTQWgXjAPsZcDegIwpT\njMCyZwzZW86RojYgCt1kqOcQ8V7wlKAZXeiNS5Dvu4g85xuEzYm16hSxxumU5h1HBNJwXf9bmPoV\njFiKWFgLUz+FnA6IO46wuRAnP2GY50OY9QtQvCCckO6BXXPBdZGwyYESNsLRlyBmIBhGgH8IdLnh\n+1ng3wA9lZBnBZ8HdJFQ9jz6TgshytDc76GMDuFYNpKwTu2tnDX/I+jshiF22DgU2n2YlAK8cg3V\nrk8Q036BcMQjIkHSmRCNa2HbWuRjF+GrI2ixvyBmwm5SIu7B0t5N8rKTpH2tkrp4E86SeGx3T2RU\n3lRSvxvAbC2R6av3kF5ThjIpB0/6CmKkH6hJWMvFKZW0Th2Bd5QZw5P3YUxOR64ZjPy8Qvip5Zii\nrkK35DzCOwOS74P6NyC0EyXmEOF7riTi4FEGv1+MkwLsBh/Z/cw83nmELxfPZfnC6zllycXvs1Cp\nWtkfPZzmqDSsU+9CnfgYgTY73r4j0SfMID2qGV9PGsabv0HankX1hIVgicO0Zx88sBUOpKKc7MQj\nXIx7qAP7KC/CHCAmRqG9BCp3+yEZdOMtGPskIb9wPXz9PGQNg/xJVE0YjXXc7TTdnIXHYsC7ZyWa\nbES79mt4rAlK7SiTnsKVMoZTP6wmuO5FaC7D296A5+l+JPYLQ6QF0gZC2ABD/NB2AOJleNYAv3mC\nQfpRtNFM4JoINFcZ3HR7r8jaVEgZyPA8OOh5Fd8LU1DWP4N211S4WPzT+uzfwM9ln/C/RPjfUELw\nwz0Q0wIZg8CSBD21SJuehs7zsOMy2D4X4ZhOFSE2vreX+A130V5hRURchdAUvBf6waEcKJfB7Yf6\nnVAfj7AK6gdFYytxkRhoJMLmpS3bga89H+ErQxhTwfinbFQjb6ZxUCI5H+9haM9L+GwxuBregoQh\naDEONM+9EH4cGAeRD6FszQSlkNT841B6Ixy+A8I9cN4GmTdBRwtBXQr+iBHQaILPHoYTa+HIKjjh\nhwOAnA+hNnAmgTsZTLlQtx5pkg39aSshswW9WIMuYhdMmomWmI7hszsgWYXLxkDu49DSjKlsLwne\nFrzHvsXz6WWEho4Fkw6SRvSWoI+0I0wCnaoSjO7p7W+THpGSBSf9aG8+hbZgFtzxACL7l5D7IkLR\nk1zSg7lREOOqJbtiIM71GXRpUfhMDn5v+w0dEW9zyjiRcvkHaqPbEZuP4ctzII/KwjBiPrIc3zsf\nrk8C2+XQ0gB6DanrDbjCCjPvgOWvgz0fUfQ4DksiT/z4WzbNvYKnV7xL430jaH64ENcwBwtLDsPq\n7fi/+5Jguxnb5x6EdSBKHzPJ17bhsxg41/8I3dIJan93B62RF2jeXEi7dICOnSe4MKA/Z4sGU3so\nGfVwAOHfSFwSmArChDJNaGM8aDddoOuVawg9+D6Un4Qz29k1ooiOrkMMaBrL4YeyaQ224tu7mq6X\nimheOoYj5+ppfGA+YtlSnE02tEH5aEkCsxMiCyLQ5c6Eca/CFe+C5zwMd0FaMuxPg6k3g3cVnLiW\ny4rXoKb7cR0JQFQsjJ4H7aUQlczIfnCwRGA1v4xnsUAJn4VHrwGv+ydx2b+Vn4sI/zzG4z8F3e3w\n2t2w6zsYPAHyImD8/WCRQP+nbTaRqTD5VfBtB0UF+2gSdFlUNnxOUeNJJLWH2KvXwtf34nNptK9r\nxHLXJDAlQbcXpCrCwSb0pdVkN+oRMWaUqlR80zxEBp3U5UCfujqEM9S7oIaCJlnoTO2Le+AdRKx8\nHttlz9Joe5xQaV90qTPAfDdCzoHwB/DFK0iJ8YjxY6gNekiMsCAnjUPo56LpXoHqI4iuGGI2fI8w\nl0BiHriMMOBqUI/BmFehcBJ8OB/u2gI9ByHLDOc/h4S7wOzFfvwI/lFGqPoG0b0SU3gfHmMNnv1B\nPvzjJ7RYHDz75YMYLWOgfQcWt45smnHldlI3qT+5m+Lg7DaYeQMs3w33zkRa2US45mPUb5qQigMw\n7xmE9TZU42S01e8juZsRVz707/+V4kYMn4bh+HcEW1/CtGATasMi/GlhIvQVOAPfk2I0EA4UczSr\ngOjrmrFctg5d0NpbmXrQZ72pTNu3QkcxYZ2dzlwnuqpOonv2QeAULCyC3W3QvA+5Zxma3cYT0lrO\nebM5lpnHoKijZOYdJGCR6Bk8GB8pGPxZqNsb0R/+I+aSFoxDnBTdAt4DdTjKA0iVr6P/pRXdpgZa\nTkhEtIeI+30/oif9AMfjoC+ILjCckuhuUXEUhjEYNbR6icjgH6h3nEGZpMdR1p++XTa6ZCPJOz+k\n6JwFT66KwatgiJKR7z1I/E2N8P7vaLl7JNayEozHfkCLFNDjg/mD0HaXwrYdCGcq9NXBJ2HI89Oz\npYnIpdEQuwByRmHYtZD4YBSr5w5lftthJC0A4xeAv5rcKAOltQMACaPzFnreKyeibin6hkroU/RT\nePHfRCD480jg888rwvYYeOZz+PELOPgmNMjw6TIYlgfDOyD5T6u/WgBmFUPgLK4zN+C3naY9Khtx\nyEtioQl9xkjUnnqavpDRp1mhcicEOyGkEUJPyyAz9kt1WE5ZUfsGCWe1YlIfxvjxG6Qc7IIJEkQZ\nwFwEcZ8jDP0Z2PcPHNU+oO/8XJzfXEH0gP70pF5JzHdNUHSSwMAkQpEqNlcn0u2vwuCZnNupxzzy\nD0S3HUfpXEf949kkh4ZjGDWZ6lFjSXhsObpUO9LdT0FtNew6BDuXEz58P7J5OKpnJ9SsRqo4ivAZ\nIDEfTnyLFLJiro0hVGTHkPg6YucKrDtuJhxuZ+7Hn6A2HqPa6cQgrUW9qS/e5F/S55P3sIlUzlNG\nSl4M1pYLEAAcl4KjHck+kK55BowvNBPddQzKfTAoA7kzAkUMQNmzD13bErj6sV7x1GqgqgUp9VLU\non0oxk7S/1hNZDiSCYuP4lGPoOubgJ7b0FduQJyV0U9PBIOMv/A2DGduQcIMmhWt8gm82fHo2jtR\nLBKBhvMYpXZonwOTZkCXB/aqaEV+rJKe2e43MbZlIhe3o/XkEBAn6Bh8ghCjyTL9HnGZAObA+HVY\nR9bQ3LOCunPrSX1zHWqjgvRBD6Tm48hvQqfaSE7ch6jrRp3Zg5wM1IAYoJKr07H3PcHEegPingnI\nvqOkNe1EqcjCeyKINc9B9/hGzqQUkffdOWqGOEBzkrwrBmGI6s3FMf8GOssfoU+JAulhRKkMxhi0\n790wtAei2glvbUfulBGaFT7xU33fTIrSxkPwALhroP0YpsBgMo4EKOFlClt0vQErcYlIOVegAWgC\no7gaA9MIpRwD/vEEGEAJ/zzk7597OkJToXUnzH0GnlkPz30J2VfD6nfgmctgzTB4fxFcngo3zMNa\nn4ehxoAsOZAtXhKettBQPRv3lD7oLBrOaS6UWUthXAqYBVXlBtQDPVgcdqTZNyG0bsKxGkrjBqTx\neligQa4FNunpkm5HNRQAYCKSMYH52Ho2cO6aqzE09kM6d5SQ2crhzlf4XFvC4cjNVI0poGKwk07q\naWvOxSRepsZZhifkIqMDDBkzIcKJXjLQ/OoStKMXUFauguGz4cFStFv/gCaq0Qomwr4H0S6uQGu+\ngH9YmHDrUZT+E9EmzIRj09A3VEDl1/DN/dADOk3Duq2a9EGx9HVYybh+FckBH1qDjf3DZ7M5cyht\ne+yUX6LgHlyItmUk/OIW6GyBQRPQXqjGk1sD0jgwRkN7NKhVyOIkQkiESxvgnlwSWoqh32BYsgox\n/22MfgchFsKchwn5PAz8qATHxXhc7g582gHiLnhpiYmBAx/i5RAt+reQkm5GDW4kcOQBXDkJWF1d\nqIqGqjOgdDfB8SRIKofRi2DMNXgWzcPQmkHC7osEjIKOTDNabTQMvRche0AbSiq3IRC991GWDEfG\ngTCSvn8l+TorIqMvUh8NLcuOWHQl+hnxkFtFsK4OykE+CBwFNgErJPQdCSRVy7SVKXCoEDJLIe4Q\n7ppuus83kf3D97R1jWNl5qWcuu9rimy/5vxIB22mFDqf/zWoKtqmZ3B6a5D9pyBhNEyZAk9VIx4+\nQTjubo43zKFM1x+mPQ1JY6C/j7SovdA0D/wHQX8JOKZB9UGGdJ0m2FJPbU4+yvW7YdJvQWvlnvF3\n0162CDybENgwMOEncNz/HpSw/Fe3vyf/vCLs6YSVd8CAK6HwT1mfZBn6j4ZFU2HWBYirhr5G+P0O\nyCtAOm3E/nmQtEVfIt+Uj72xk6iSZjzk4xsbR+2CaMoGrqc1J0DAKWja5+esbxCSToL6N9BMDkxn\nC9GcZUgOFZIEJLlAUmhyrYXAXghXQ2Av4uJiLPG7yfR5qRtxGG3Ic+ivXkZR3D1cdSidwefSST4Z\nQIQVKjlI1JQ11HZ/TjSDifzBjEh9Fuqug2AtxpRBBBKdyLfPAk1DefQ+tIpDsOoOvLPChIbqkK+6\niNxzLeKHJAxfxSIdqUdVPWhR++HM5wh5KhxYBJ0tiMd/h7juQRx9L6AUn0Cb/TacvxFj5EiKijcy\necxSZuXdwcyvPsfoM7BjRD5t3jLILYCOZrSC0UgnNCJLUyF0hp6CkVz8xUNw5ZOQrSBTgag/j5ow\nlv7nv+kN5JAiwZaKHIhHQ8VfNJXOfjkkVFVjq04idoMOT7ie6MZ6WgYNRg220OS6FYsnFjp3IPQd\ntOXU0p2VjxSQMEU9jOjxIXwRcOcJGL4Sqq5GrZuAllPKzlevo3xoFj5riAumfoT81SiiA4ETS7OL\nCPJ775nunWjW/qgpHYCGnDSL8icvUNZcj9YEIt+GunIrypYIgi0ShgkK2iyBMtwMjQIckZCowtEO\ncgr8nDmuoH79e/hmIXzSD7sURPV60BtDDDvyA46GTspbN6KPjCalxkf1AA/nXn2fYPERetJ0eFOv\nhD3REDkYQs1w5gY4cR2+E6+QUraTpOhBiAE3gtmKFq2nLbkvNOXDsUjYdBd4NbT8IeiHVVEUPMV5\nDrDHVgldb6K1LiHV9iOvb7wSrNN/Ks/9b+NfIvwTYvM1wTO5kDYY+s/6zwZR02DIRRjV0lvSu2gE\nTEuA36zC++gbNPs7sXW4CR3TYdrdjG6rg7ThBrJLq0g9ug/qjHSnRBGVb0E/Yxia1ApqGK1RRa5p\nRTVORdI/BJudKE2Z+MYsJHH/BSTfSXAvg857IHIT1I7EHPMcydZHEV13Uhn8I/qCuRweAYene+hK\nEjh1MtHhNeSfLicv8Ar2jgWo7mLUmHxIehcq7sCoaAS1bgDkGxYiJkxBe/FGKN6NwfILdIyDyv2I\nxESEwYrYe4rQ48/TM6MST7wHkhW0JU/A76Igfhy0dELJuxDVSjgcQ8cNg9Dc1bD3Isx4pTeUtaYC\nXcBA5v4W+nR1cf6ZXHySDwyXI5Iz0VkCRB7cD4Y8IkzDUEtfRKl+D6yLoV1CVqpQ5FTa7alojesJ\nFd9G2L8D5HT05rvoCj/NwbGX4hk2BYIxmPxhUktLUCbJhHLbCE9agNmfg1ZVhlb7GqpdoItS8XfX\ngBrCunYVflIwfO9GLVkFhmRUx2A0s5fwtxpjF71EwYpSTD49/c6VIzJzCPb8QENOKgkVvedA06Dh\nTVRHG0S1QaASIjPIunYyxR910+DPQ33eS9g9grqGZLxjvkU5pqfrohXRqkCsAS4NwxKgvw8pXTD8\nWgjlAJU7QO0DnvHE9ZlI7e8kEjZd5N77X8fk8rPbsw9H40V0lQeRzYLgO8/SUWjGkXMvRGdDWx6k\nfA4DVlKqm8cZ6xg8VzyCve5HKB0BQ06jTkgm/pNS6PJDzBnIAjz7EUXT0WJuQqm1khm8iMP3Bpqh\nEJHwLeXiMKea5/1PuuvfjXBI/qvb35N/ShHuX/0t5E6GvD9TMFWIf3+tt4K7oTeYQzZQvWwV6S+/\nhbhEj3SHQLu0Df/WZZhig4gOA9aSJJxxHxDX1Ac8LiYEvsDj0ePTRVFfPZ7fDrgTj99LKGoUK0bd\nydPpd3FODRBIHgmHmyHqRYhdDerL4BoGIhaddTrRSXuJ6fyR2varSSYXfyycXhBFu/sL0vd2c6Lx\nNkTcKMTWe9HVe/C2342mi4dKgVGyE+Nb1dufsIeWMU7Cdg/hb9oRNXaU4FHY8gJc9hza5aPApsNQ\nmoFd24XBMxNtkA5cHsJjsuCSe2HPYdjuRV2rQU07Fqef8O4m1I5y8OwCxQ9pLZCciaaLwxtTR3qg\nlOrmB6DwFsLbPySq9XhvWZ3BBYiGR3AaxtOxvRa63fDOfugzHZ2jAYO9DcVYh+7wRuQTW1BEGEle\nQISvkqqUDPTBBuiogUMRSMpwkl7rQArUU6MuxuK8jVB6AWqHwJdqxGctILLcjKaG0YydpNxxBmWc\ngrb9l7BvGNK5g8jbhuI4W4F+/HAMmSEiPAEsRw+j1yDcfgZhjUWOvBSq34WuTagWFaHvgzifhtZz\nCE2KxeE6xahJY6hq0RGeNoe2i2XYb7qZ6GkzCPcfg1Eo0KFAcBhUOuFEFAgL9I3E0gSlP0CoSQV9\nFTiKMd32PIZYJ+0VRuR8hSuOleDu1uO1F5Ae6SFtsRobcwAAIABJREFUqA9vyVFoasB85ChMnEZt\nySfw0n3s9bfzdv4wBs64gSTLt4RsNjpHfo8WHo8aYUNqBUa+AYnZkPkYNCVDxBlkbSu6QdM59+YQ\njPGf0mYpAiExYbCdm/7xB8EAqIrur27/FYQQzwkhTgkhTgohtgkhUv+S/c9jZvp/kqCX88kzyLjl\nib/OPqYISj+C1BkEG0+SUricCAR2I3S5JeqqnVicYfBMhFgB2nn4w3UE5R70VhMVBddiCGwhaHDS\nJ7Wbg+mFyN4ypPrVDPP7uW7jcdbffgkDqzJh9S0gFJj0LGQ8AMfngNreu+XMkENk4npcPY+TWH8H\nsjMGhzaVs8FOKJpMRve3sHkfuM8hxnownaxF9fRH1pwE9t1FQnA9ius0cs13xHd24jV2cfGN68ld\nU4Io3wNTXkSTmwhfthHmt8OJJeg2X46u/QIIJ1pEJ1J/P0y/ErItqOdsuF5aR/SSpYRbPWiHn8RX\n7Me4/RaY9wy6y54H4ySMnZH0/WgvrYujyetIhQ3XI39RjFIwFPKrIecYxC4hetnvuDjLhK1gJGaT\nBTVCInBjPM5396JdNOBT56HPGY+yawX6bbcS7jeK/KTVuOwNmNoboKkNvtIjEg34xCBsa1Zj/fgK\njP0ctC2OJbash/SjekJDIlDDRkLHGwhMTEHp14PSZSAyLGFyzoMhu2BwNrhP9Qbs5CZi9FaDfBhr\nRwqBNDeKXId86jBaUgta4bVI3Iry+VOIyDshKgopPZGNi1ZSu/YLAivfZXR+LOZJk+D0t/g7a4lK\n8oEAzXMQUamHMbdB1SaY0YA4oCPpkjCuIwYccxfC6Q/RPplGwvkezpisxGZMRJzZwbSO45Q6YjHZ\nZaKHGKla20Lf19tg0F2oGQuonZjC+jwv58Kneb7zKbrNNqokA+mp0QjpOKHsebhORUBUKRbHBIjo\nB58OA58TfjTDwPdg6AS0z35JLn3/Py5x9bj/frf8Sfj7TTP8TtO0JwGEEHcBTwO3/Dnjf76RsMFC\nR0TWX29vT4Wq7yB1Gp0/PI2hz2AwxSIqQI1fjG+zwDbSjXpgG/Qb2ptUPDEPV4pGREEGfWq3YG91\nER0OstM8jOeeXULKEZhXspkRjo/xREiYsSJlTIFfHYeLO2HVHNh4J2hOqJ8Nmvd/f53IyJmEnQ+R\ndaEHxXia8ZZ76VIucGpqEuWXPIyWdQOkj0cesxpN141yyUv4hs5FzRd0DtDjzRqFSO2Pub+P6BHn\nUW9OQ+1TSsj5W5TzdyJ97UFXqUOf0orY+SG8fQg+rUY4VaTDDbDuDZC9hA/8gCoKoGwzuhNPoXeE\nsZhl3HOyqZg3gHJnKZ6CKKhdgc3sJ/nbAHz/DjT30BE/GaWghi3zc9lk8nKy4mHUKQHikvpzzPoD\nnVyPd8ZWdOe+QxsEYXcC4VQnxA7GFx+H5K7CvmkrU7cdoviKXFxJYXCkQ3kIrc3DlJtexLy/A5Ge\ngecWM4pDIeCPxNO/jQ5HM00pmXTMHEXz/ZFokRJKWhilUyFQMB/6/x6iJkP6070RhY4CSH8SomYj\nW5qIqalDWvMuWqAMvC0Iz4OE5k9HuNxolZlczNtAFQ1MzpnNnUPfIueqMZxt6kBbOJTg+48Q7JtI\nlzcF0vQoqg4NHxx7HaIvwEEdWMLEZubiDZkJx9yONrcMtc2BYcdeUrL6UBkThrz70LVnk+ZpJqa0\nk7BThzfZTMgMHHUTqvqCnoZ2fpwylecqFuOLv4nI6MXkt4+i86oACrUYUmcg159BssfAnq/h1Zuh\nuRm0U9D/JiiaRseFC8Tk5f0nl/iPD4r/0Ph1f337L6Bpmus/HNqAtj9nC/+MI+H/Ks4RvZvbj40g\nbkQr4jRgtsCUT4m2T6Zh3jHMNYfQxrRByATVLTAzGdfH4IxSkZRmbHEmXCEZ74yR5BxdQ/6etVRO\nHgElJTRMO0E81/ReyxINEx+Hiu291W+7TqDZQ6C5IHwGJCcRniQiNn5PVfRViKwt6GvnMiA8l9IL\ndnaNfgVz/H4SXUMRdTuQEwpwWV4jSfuUWu0TOrR24mKOomXWYnErJHprCRafJZhhx/ZWLcIYhk4V\nzivQ1w6LcnsrNE8LQmd/aPLAtvfQjl9EOa1iDZTCmRKIUuHarYgLzUQ9fyNRkbMJzPkVbY7bMA6o\noS47TMwfijEMHkfdTEHpZUE69CNojnNQWFFKtnwaEQoiLEaSDfVovslYqzMRujCNpyX0jz+Bm3Mo\nvI4uQcJW20a4GyL9Exi7dAOaN0zY34FOgBot48vQ0TVahztrBAHzdoLdkYTTY0lqPo2lE6Tg5ZD2\nSwI1zyM1leKPjETprqZSuYo068tEBpsgcQFaQQAMx1FnPIDa9BBhux/D4Qqwq2hZboJOGen0Zejk\nMkJ32gmFLmJ5ewJOQzdqVS1qlpmYGw6iM9Zx/scIDNmxJMWMRb/5ACJVjzzYBlv8aH3MiPNhNDkS\nLWckIrs/KXcdR1t2B0pHDPJja/D1gfbP3AQWbKP99V1YQiMwpN2I1/0+Z+tyMI9po7XYRWogxPLU\n26iLHc37+9/DbPSgyQfQ2oz0xBwjUp5OAg8SJkzZ4EEUHtwIv10Bix6D7btgbn/I7FXZg6+8gj0j\n46fyvL8/4b/fqYUQS4HrAS8w8i/Z/kuE/290FkOcEyKqEbV2sFrBG4DuaKRImdgRBhSjhFyuhxVv\nwcSJkJGGu6mR9P4XISIDvdaDLk5PvOFpLj4cTZ+mR8lZ/gjdfWUSjtTjT15JbcunJG1tQL7/PTj+\nMUx4DAY+DXWLIfAwePdDcwZahQf2OjCNXsMLQ9/jTUs2VLyGubYAiOFIbCfD1E7iL7yEFF2CzvsL\nQlxBaqCGlFATqiEHzT8H5Y9vIBdMQ9HV47UXI02cjbH2BySHnpBjGqHaAmTPBfQzDyDKjcgLNsOp\naZCvIE5rBEJOInZehDdGg6UfpEyBFKD/OPhwOsaL15L8/GYCC2TK+mSw46OxWNpDpLbVMcAr43x6\nNb5xc5EfeYd6/zK8gU1EtB8lsXosim8lIvG3sPojYtrPYuUaqDgFG94mcOQsPUNMRB7xEGzcjWGw\nD1dDNJbObghLyJ0KnvR4zDlhrK5qTDuGIkduh6MyWoKAUADKVoNlLcYogSIrmHQuRIqZvhviCA4+\njWoeilTyKprLh8oWJGkNMlcgbXmP8BXTkd2HEGfiMb1Wglp/Gr/Vxvmv0rH+ykrX/HHYv1yLK2Iu\nCZNkRMk5ktJ3Y17cQN2qTsrPv0nKOIkoowVhyEYb14biVpGH9YXys9BajfLlBiSPDWLtyMp5lOYP\naHceB6GQPkyl8yYvxrEXaVOcJLUkYO2v0VabgbyvFNutOvoY2/jlH5YjfCU0P94HzVVCUOsgMWYF\nJrUIUb0Lzn+HrBzBUFIGSQOh6iDMWQqX3g2BUgDazp3D0bfvn/eNf3T+BhEWQmwBEv5/3npM07R1\nmqY9DjwuhHgE+D1w8587179E+C/R8SW03gtp7SgtkcjZt0Pbt2C/GQ6/DhVnscYWUuuYTsbqNTC6\nAnLfBfcbRBda0Ab+Gp/3Y8KaD1d2AcayGvI/jURufxWi8zBvrqApM5b4rHXQ5ylqr7+AY8NtWK7/\nBt3+dyCvAlE/BW1VFfSPgUAzjF0KOZ/jDJWxxP8kP5imka130RQHWdI1nLfXMrH8OMG0Fky2EG7v\nKkrbh6Gkz6OuvpasWj1D64tR8qKoGZTEscJ+xEoK3qwGosL3E9lQTcra94nsWU/tjCWY/MOIMW1B\nvng16CIg4ddoEX6Cr/weWQuBOxWyddBZ3VuVODYV1y1/oPT4I1QvnYkUDVll5YxxdWN2XIoY+CEc\n2gFLV2LOnktQd5qQrRHF8yssFz4GaQ1hg0Tg+CMYm+20OHPJ7GmF9EKq+nWxc8FsZq+vRH+pC/3c\nF9Da3ySg99JZ58V2qppIl5m4Cj2B9iCm/J0QOxGsfdBe3gHfTEZEn4GJT0P1cojQoxlLEZpKU+ZA\nUlbvRW+OQlxoh+itiNAgwthQ2jowH3wSMcKJXL0JaY0FsbsENU7Hd55xvNr2S7b1vQmvPovchj2o\nBaOJHH5zb5BDewVMuoISczEjPCcIFgVoXh/C4wthK+yHXW1AnDPQ+MAEEt+yEmxrQHX3EAgqBJM6\nkKYYIPAJSrmNnC9VdCJMh09HdbmetLh65Pw55BsO896j19BQupam09VcmvQJodpU1GAP1tcF7U8o\npHTcirH5bQh6IGMi5M7Duf8gIgvovgiXfgZDZvfe96Y88LlIGDiQYXfd9VN539+fv0GENU37M6v6\n/4kVwIa/ZPA3ibAQwgF8RW9m2SrgGk3Tuv4Pm1TgUyAO0ID3NE1782+57v8I/hKovbU3I5k5jFze\nDdbPYMR5KLsPEnaB/AtsX37Flim52CdeTbRjNXz7EL4Zefjm+qjI3UnSBrCphUT2TMJY/APuOD32\nvNFw7b2c/n4KmW3RVKWn4PS9TfqQnfjaX8d7ejG+Gb8hzr8BMfR3iD47UWtrkUbcCUYHjVVRNPpP\nMKhGJsc5B6/+SQb1+5ou91rGhQPobacwKEWUhIfxWtQcIhQ3c2Qfk3tWERETS8/EUajeowTNx5gl\n3kFhIB3KPsIbNpF53k/H9R+wLuYbnN0uBuw+RCjnHvQb18GCXLBdQvhEM1J8PHz4Gxg+BI68AENu\n6BXhxuNUB48RLVsYeGg7ui06mJMMi46CpO/9bcdeAdrlcGEh3rMlHBg1gOtqt0F0GKIWgOpHn/Ut\nWpkfvzEb1jxDyF3DrmvtJNQ2EFVRDJOegOK7EVlvEb/9OrTdPfRMSuL0NRNJ199A/LffQc0XED4B\nLh20XgVZaSDZ0dofR6uzIg2Zj+RvJGwfiLGmAS3CA84v0SxxECVAvYBoEagdjxA0qBi+CiCVAcNU\ntKv0SOtCWKdczctjS+FzKzFbG+DseaScTjj8HPiMqJmD6fKcIM7iQHfrSnRPLiE9sRolM5nKzw5Q\n6RpO/k1lmJ86gL8wgLEtgBqvQ7lRw5z7OcopPbXW58h67zRawIRqgbAw0rGtmtz5V0HOKEwxV7GY\nHFbNPkLsnA20z7oS1/2lOKJT6I6pIOX1ZtSGt1FuX4Y8bQqc/hq+upFkTytSshPohLp3IdoILmDv\nJ5BSyPhnn+2tqOXt7J0q+3+Nv1NKTiFEjqZpZX86vBI48Zfs/9aFuUeALZqm9QW2/en4/yQE3Kdp\nWgG9cyN3CiHy/8br/v2p3QLVg6FL7o1sGq5AWTv8mNGbsDvmNZBKkaQmjIYQH12XhiculvKZTbSY\n9pCUNIY++h+xWPOQGjtA20fkJBNHxuoIXfEr2PMtKafbcPzqe3K9GagtTjp2TsfS/iERnYkYu/dS\nSz09+ia8GZcQ3KPgu/9R1NZW2prWk5b3KGLIUoRuJFbfOGr2zGOIeQ39LjQjTBohdwQFunyWd/bl\n5fVnGScuJSm6P7asVdi1hZgbJVpDfmpYRFf9G5gqP0MkpFN67y04EiczXH8b7SYXhy4fjyxbQYqA\nZW1QPJ3grlcxFP3pL/S4YdBNvQmQgJ4z19Nvxz6yD+1GJ/kgHARTJBx4FX5zGwR9vZ9rrwFlNkJp\n4qot32NAgYg86PcpcsFyaqOmEcwJEYi2oRma2TMzjXHabDKCbaDpoKsGErLh0Dto3UH+F3vnHR3F\nke7tp3pylkY5ZyEEiJxzTgZMtnE2OAeM0zqHdVyccQTnBAaMbYJxAEwOIgsBAmWUwyjPjCZ2f3+I\nb+93791v93q93t276+ecOqenT3V3nZ6q91S/9dbvlfqDKfsa+pf6qTaeo0yzB/JUMMwLwga5p/A3\nGHFt2YniAIkO2Pcu0q7haH70Eu5pRU6Lh91hdJjn4NybQPBoANUH4FpvQLwVwEMihEchku5EtPlh\npkS/4EriXTUYRi+Be9bBIDXUOgAJinKp6Wan0esg6WQ+lNig2gayQNNWSqavgh43T6fq4FD8ySeo\n+rIQheauJYBuEtqvN1Gf8AappttQj52CpoeTgEND2jRw3dQXd+osGDQD0gaix0xsphkpXCD5ziCH\nO3EZikhcU4faaECb6kd1+FF4ZRxsfQp8MlLMfND1ApMWdp/sypix7XpoKYWMfpi/uQI+XwQ68z9g\nAP4dCP6M8vN4TgiRL4Q4CYwB7vlzlX+pO2Im/HHf4sfALv6LIVYUpQ6ou3jsFEIUALFAwS989q+H\nswZ+fBJskTB5PzROhYYAxLdAoQkIAcc3XTOECA2ZUh3tfiudWhPJVU2o9kmQpoIhuZAyFwo+g5JK\ntJnh+FqbqH79KZL3vkb07a93JUm89H7C9oQTPHAHcpwRKWceIUUvYHKM4fxl26gsPUzvJh9Rt7xE\nw0NLUV9aTZg6qmtTxIVt4HWTc+InQpNMYCnDHZxEkbGN/h4P1O9GkzEEWurBZkeYohHBQ3jKTGSf\nyyG0sIW2/h4aRkRgSislYVcpRBQTa4xhgiuJql5WDnQXDHnOjeHkfhC9kSJ3oG3NgKu3wJtz4M51\nXe6ImkMYnDrcmmbMig/GrEExLANdPaLgHQiPg/Wzuj4DG6uhswpb/4Eovp0QaIX4q0BREBUnCMsz\nEdBAMBQOzL+MOCmROJKoZjiEfg4jZfAPRpl+NWJVDxTJjiZkBE7tanqfHE9uehSe6GSyavfCmCy4\ndSuIL+jItWKw68HrhuZuKImxiKmTofptVJrpKBUvojn2BVQFUZVGo9aFYhTnqJ8ege5gAEWoMRYf\nh5nD6YwsxZG8mGzNTeDIh4hsaI2C1FA4sRWyF9Ac0kZLIJzM3KOwczkkptGpr8JUqoUBATRfLCZ+\n6K04K1IJm1VD27nxWOPK0KhyCHYbQdTqpWi19SCdIDDRjmafwKnzYb0iEqNzOt6ifpxNvRlncx6D\n83NpDJFoT+xANuiJ3dSIYrAjSxo02XdB6XEwtULOfIgbBgE/7F4NxTsgMhrym2D2Ssh/EfY/DEEj\nXPUFqDT/6BH56/ArLcwpijLv59T/pUY4SlGU+ovH9UDUn6sshEgG+gK5v/C5vx6KAgWfw4R3IH4E\n6ASoP4Xml2Hg+9D2EvS9EtobYN9bUOYktb4CyezmXGgGw4rLYGQW/v1HEIE9qGbuIdh9O6qqbxGN\nKhJr+tJhPoJ88wtIw2f/8bGi5kfcQwdgyt0D7vsgNgSNy0BycD7GtFROjP6W4d++ydHl8+m3+ws6\nZ4xHt2Q0qopVYInA1BCAkFWgeglr6k20H59Dx8GNGEP60DzyXiz1H6GvWAtIeLtXYt7ViMH5Lcod\nm1AnHSYhz0eL4T3KEyCy+izmwyV0zLqK5MAtZNxyN56Am+LfzSJi4B14Bk/GOqoe9QcjES3FsO32\nLsU5VxHqC6Eo9fuR5z1JfWci4Z521MIJ0kCYd19XzHOgHSpzodYJ5jKERwt1R6DqNfCvI5g0FPP4\nt6k2ltNa/xjhWOnGIJwUorENAPfHyJ4KvCH90cq/RxKZCGc5nNuA6KajOfN3OKVrif62BI8pEU3H\nXqQeKjQxY4i8djf+Q+1o/VpEmhvXHRfQFV9A7TxHSz8bypSZhJ4rhWYHyopDiIrPMJ/Ow/jDFmSr\nl9LYHuQ+uJmFnq20V39CdusuCJ8Bx38HafMgWAcDH4DDv4P89zAkjiP7fD3Cr0DNMfjDdwRfmwTd\nxoKqEC6fgC5vL75kL8qQBKxpJ/GfljC1PIBw/ICm3osSVURgejzUdCDJHZwYMginIZLc9KV4Og/R\n/fDd5LQIfGV+EswBOh2t1IaMg2nLkCuOEAzxoSmvgAvrYe4bMP62rk5X+hPEtcLl93cJwM+8B6qP\ngpwBgwdC0adw8F4Y/2HXZOFfDc8/ugFd/MU3K4TYdnFq/V/LzP+3nqIoCl0+3//ffczAl8BSRVH+\neQVIhYCB90G3BWCKBXUMhE6GgetBFw/jHkbe+we83YfjXngrimRELUWQUFBFtGzkUNpU+OEs6i3H\nUB04i/vWHBrMLoLVepTQPsREgX3AefwZRSDVdxl9gJId6Ey9aJ+lxROiQVH3BGsU5mevJlW+DMOM\npZwwVTNk+XPEdEZh0B9C5D1HoNmEkpCO7dJqiF8B6XeDZMJKX4xVZRSEVrI7bD/6HishOxMlzYun\n/CQ6I8hJdgKXT0V11ZPodjiIMr6HLS4WubaYqmExmHesQz11DJw7isbUi/g9Kuo+ehq/MwixdgLn\nTCi374Wpq2DU81CSj8ivg9HdaemThEln5MJHLgiR8TlsEHUp2OeAbT4M/xjMOpRuz8DQfCiI6kq1\nM38N7cNG02g+Tovko7atJ72bNwLQzmnkoBvZHELAeYYG9SO01/yEsr8Gut0LoT3QfOWkRRMCzvOE\nzkiFIj+qjzoQl6oR+t1ItXGotFkEaoCys+jvzUV1wzba43tg8xgJG/EakiqWpoxwTu66GXafQORc\nh2rVBdT37yG9rZ7xH47g9WYtNt1IiFgJ5XNBbYCD94CcAgXnYdab0NFJ+ncbUSfagQTIage9ilZt\nLO0zrqMlPAdn42Faxw2ker6VziYJxVRDp83Fhe1XUd/wBt4EQTArHeFoQu3wkf90FsWTUzEpZfTY\nvoLx2/YTVuwnuLsB3YlGtGYweo2cy0wErY7AoJ7QYzgUfwWTnoG2izrO+V9A/hrwJYLKCD4HvDsN\n/J2w8H3odSOkL+hSVst97D/66b8SgZ9RfkWE8gterhDiHDBGUZQ6IUQMsFNRlP8W3S2E0ABbgO8U\nRXn1/3MvZc6cOX/83b17d7Kzs//qtv059u/fz/Dhw/+6i00uLDnf40qR0TSa6aXdh+WsH1uli4ao\nLDbHT+SyfW8RGmjFk2KlqGIi5yyTmML9qAv8+LyCnXcMx3CiJ4ltJYRIFbTIydiri2lSp6GPqyIu\n7jQFz42gdUI/hp9+h0M9bqJ2gJNjQ6J5ct4riHooGzmCkOgqCt1jGRX2IuosaHYks83zBDIabHWl\nTPI9ycm+PThjvJq4I21k9f+WCpFJmn03vi/CiQoU4ZEtSGY/cqGGFmsyqvp2QjxV4AK1S0aEyTRN\nTeeQ/Ra8qhDSv1mLPS8X+b5Qwo+3UFHcg5K5cxh96iW0BieSSqa0+2jaRvtIXFRB3IUz+COCHE8x\nUj77LYRazZhdz2PKceAN0XN+yEAiP2nDllRJvnEeyaoDnDTNQD/1W+or+nHixXZuXOCgzR1PZ04N\n2oCTPvvyMKU4cMQmUvHpCLqf+Z6qHn0Iaa1B527nyA1J9OpxCsMrEu2OdJLdBxEq8Nu11Fdn0dkR\nRksbJDoLiVBXo2SraRkWQ6l9PMkcxPxjA1sGTKGhRxgJZ9NxiwgAQlznUPoVYC03Ele9j29HTWfQ\n6Qp6iH3oE9toKM/EZqhBkoM408MxlLdiOtlCx8gwDN+3I1LBX6rnVHg8teMGkOI9Snyeg7a4cFQJ\nrXh/jCAmtpTzCcMwlFdjNrcgVfqJ7u/A67TToLVRnpREQIZeh0pQqTT4zlqQPW3E55XhWGTDutVN\n+wwz268aw4QDB5E1EoZ8L9XxPdGclTkTNo9Ez2G0wQ5qNH3odWIdEeklqDR+XPXhbOr92n/r8pLi\nQ0GN8hdmw79oXP0Fzp49S0HBf3gwv/rqKxRF+au3jQghFDb+DNs3S/yi5/3ZtvxCI7wcaFIU5Q8X\n4+FCFEV54L/UEXT5i5sURVn2Z+6l/JK2/BxWr17NokWL/vobBLzU7pyPetyzuOUNONo24pE1SGo7\npvoIzoUGmfPDWtTaEEhIhopRBEQj0uEv8EWrOZ2ViTzjUgzODnxmMxHtOhLK6xEFa8CcQ+eAKoJf\nX49wSZhuuhYOfsBx+Xv2TZrOrJM7iFvpRqUrRlz/NvS+hMAUFe40Czp/B5pL+yL1uhair0FeMZQj\n2VEMGBmNtLc/lHxMfbqbsA4bGqUQ9ibib6+BlmhUKfVdKZfChtI6JQTTrTtR97oE6dpLuvSR636A\n5Gl4Xl6LqrIIaUwaneoqvIk52N4+gOrmbERZK/SNhz6TaA6LIjD/ZSJmG+DbDpx5R2kMhBMzcy4G\n7fsowQDMSyYo6VBOtKDxRcNteVD8BheMbRzWnGWMfhHbNrex6PKF0DCPirBhGEs7CGvbhqw+hNBc\ngiQegAOrILgRBg5GLijjcJadfvlleOdEYN49HHa/B9osxCUqeKQKbp+Esm8nnu1+/I97sQ6bhlyw\nDY6rkLJvAuU7nhr2AE0aePXoelrHLKNeHKauNZ/kMyYakwJYT+1j7uQPubOzhBvK14JyAhpqURqN\n4JLgqi+hZhNsWwF1akjRQp0bJAj0k1BbzBCvhbNNkBvAq9Og7zkY8vdBr/nw2RZ8gyEQ1olebUCS\nwkFdBedmUty9lrQDh1GsA+k4WEEw1YBjNhja7IScjUYndXBkskRW8XlsdQFYsg+Rd5zOTY+gnnMj\nFGxE3xoNERqo2gnCDpNvBut4iPvrtYF/8bj6GQjxy4yiEEJhw8+wN3N/PSP8Sx09zwMThRCFwLiL\nvxFCxAohvr1YZzhwJTBWCHHiYvnfJQES9EPRT1CyG8oPokgqYqKuIuLIPpKqp9Dvq2qGnTrNwIaZ\nxKpiiAnIHBo/mf0jRuAw58CFtahf/BxRL6PNE0Ray+n/wcv0rOqD3melxVFERYcbuUwPgx5FCv+M\n9ls6UDo66Pz8E3CdoighjPlfPMfuRDsNj11AKfagvPM6HFmF6jIdmlofDVPfxvv9AIIOLdyciLS/\nlkHrDiH5+yCm38vZO9cSnJiOekEu2OagzHLifHQwmgnhSINvRUTejfg2n5AZG5HDgyhL+oIpGpAg\n/Wb46gF0xt2oB7Sh2robc0szO8Yswn9vKnJrHkpKCEr+ZihcRsiRV1D6N8PoRMSra7HMTSD6hrn4\nv/4Mn9uCmL0IdvpRGYpQ9Wunea4HL8WQdhtmy3CmNN2AN20haZ9+iuLxgf1V7E1bsJesAE0+aCyI\npnaoLwXH92C5FPaYqXW4iG2tQhvnxHC+gmCuWRhOAAAgAElEQVT4Z5AZ2hWj81oD3BoJ3+QjXKFo\nr3TjfNtLZ14VwXSJjlsUapMOUTZhDL34ikHBXM4PUHHa8xTlge/o+W0ucSX1NNs6kTY2co0cysfm\nTNp7jkHpVQrNaoSqBRGaglANRcQ9hVD3RgS8COvdCK8O0W0m7ppwREEi2N4isDcdx6Be6APhKDXV\nKCKsa0GsuhPOSKiT9QhPAOw5UKQB6Tjhh8uhSY3/3AlaHzLhWKxgrwoQeTgcQ7GTtsFX0O07hbDM\n1+kcPRTVffeiWv8JneOjCLaV0j59KhcWRxAMnocbj8HVu+HTPaAL+wcPtL8z/p9RfkV+0cKcoijN\nwIQ/cb4GmH7xeB//yzUqFJUan+Yw6jXPgM9DcMJlKGEpSLvfQLLkIE1/CdHiQV1aSnjn94yMuBRG\nPQk1R5D79IOoAyjJi6GyCLGrE9vTQTw3hmKUk+kx4Q4wW2FoKgy5As7t5mXrYOZYc7GP1eJ7rQZv\ndhiaIUOICW1G8qRh+eY76NcJO7ajPLodZWEKJ+wZyOmZJIydAk/MhfihKD1PgMUPN7xHcHKAvGsj\nmC1FIFCDFIuvORpLfBXMmQfHToF9OkpJO43XRyLfFIL5/ArMZ8KhtRTaosEVg+jdCt6OrviWIpmU\ncyW0q0KxZ60gcOxe1BFWVLreCJFL6MgU/IWn0HofhvJ2jM1bUN4fTkDeQ8Vnx0lod4JzIMHZY9Hs\nehvH7FeIaXyQsPgxkAWNvxuMZVUR3kMHkcdacZmaUScp6OhEVIaBIR+l4CGEUQ17ciGjGkNHAoa0\nZBTVSFTuAlyxNRhdLYijJ1GGCyj1IkIy4fZHUG25Ft2UAPXzc7E+H4J+zgCsIXnYNUuocxuRyz+g\no2ccEa4MhukXIfZcCqF7SMjpTUmrmZvOfMjMHnHUqUPR7bgFXVMqxOdD9xmw/244Ugah+TD4UTjy\nDnSfBe5CStrG0jcjCrHuVpoHhGHuOQNOHEQ5vguh7QF7P0bpMxS571HUtekodMCe76BKRjZ4OBQz\nh17tOzHeJxPt60vzPhn3a/vxVPyIxqanY3ISBlrgxoWYkqyIEQNg1O2YeibjEkeJZDEB2mi87AN8\nvE6k8Ub0llC4ZQSsK/kXEof4C/z80LNfhd92zP0lOhsQdfvRNrQRGDcHr74UbcEppLMHEQr4jWfx\nGjajRBtA2gR6EMk1aFmPIXY+kqKA2YqYthXl894og9207hKEn/UQ3DoLdZ8BoK+C3vHQWcun5PCH\nxAnclzSQJuPVWEzNHNFYSD+qRTEbGa7NYP/osUypc4HBjLJyA/KXVXz2xO08+fj1ICohPQ1seaAJ\ngteOPAPk/GdYsDCIPN2GEnMFoqkAQoqQnP2h42lIuwyW3ghJFsyWdjTrJDqGOlEqBQIX1HTA8EXg\nDelKhdM7HBr60r/sDYpDjET2cuJ6fzydh7/B8m407jUhmG/3UhXdh/inLQh9H5jdCP4WNLvtJIhi\ndnQMoNeU5wjfehmGBoVW308EFixDg4KPYrTLhuO40kfb4Zs5/UkW3euCaFN8kNMbny4CHXuhogUi\nQyEziJzhQ+e5ANYAoiYCbN0xNCbh8WzHUBEOtg5Ia0VZMg+x5nqC196L5FmB9l0vYoMWQ+9T+KM8\nSMWPESenUthdkLJuF+EpzyAGOkBXAnG9Sdp1gtMLsuhY/x6pzUFEpRlpSxuMNkGjGiL2QO0B6OmH\n1iTobwbzEKg6iRJfT2phKYH3opEGj8M35SiGuveRCxJQahWkUY0wZw3BxB2IF44iXX0OxaOFDoFc\nE4J0wEGK8Qe8ukiiPMdxHWjBs82MvjlIeKQa+vSnbcJ1OA1boUKNtPhp0LdCxU8YGEljr9MAqLER\nzTL8NNIgVqLcaSXyUTPac0eh+8B/7Jj7e/ErL7j9T/nNCP8l1GbwtSMKVqNxVKKJ7gOR3br8aYqM\nuuIQ+o154GyGDidwFcoNj6BE2LquFwKKnwBPEqKzG7hK0YdE0zEuAffQE1juqkJ/rAbqilHKyzi8\nbCBTawpQhyej39OCe7iD8n4TyBj7NL73I0g07ufHfs+SlzOe3sOjEbWnCUr9uOuVVYT5KlBUCp5x\nk9EXnYCEs4hZjbRvmIXNWIJrVTqGLzMQq1sJ9GvE2T8WS3spWrcd2bEBabSA1nZ0VVZUcUOw1jsI\nLroD9ctL4IWTYI2AZ7uB0Qbp6TD3IaTNM3AmxdPYvJzI/n0I9JxH65LtaCfHoNQXEnffl9Q/MJZo\n240oZbfiXnsJem07qqk1jLItZM/nbzJGaUDpAFPGpTTq30R4XejrrNilHCxvvYHVpWaoqKZNeJC1\nfuqrw9HbClAlR6PuVoZib0HIkQRtPQiOKELzkxpSPZBwL6o3UtCXe5D9nUiD7gfXa9C2FtwOJEcl\n2iQf1hUxdBysxR/eD3X1BaoH5HDSkE74YQPWYxZUOUuh2ArxRoTSF+2gRagsu7kQOYbYdesgeTBE\nl4HsgPQAtCaA2QyBbjDuBRSjhiAKwYqzaFPasPUPItwB/A0SdrUOpciDUnIKVaaAa39A2XsnSkgb\nlGkQYQK0AdpWWLFmtuOTFbaNm8Kw2YtJiXgF6+AVtN/7JFHOZ5GWXY4y4zJOhJwhYvpQusVPhTP7\nYNFjkLUQ8dFsRHYqssqLhA4ADRHE8QheUyUNy3VIbZ9h8DRj1Q9Hxb/oJo3/y/+WELV/ezRG0GZA\nzBIY/znM3AqT1nUdT1gD15aAvR8EvMjhE1CmLEY8cjtSXpcICo5SOJkPrSvANhLRLQtzfz3tb5Xg\nbMqk8L4wAs9eTuCaBEhPoxteVleOhXe7Yc7sRnuvLLQeN+Efz8T7dSTB4JW4cHCyczW0fgt3LYVb\n78cRH4HwKrgq7ag/+wZ5qgO6rwFJ4uC8Wzl/z1Z07m6ojlfC4iDBIieWh2rwrWmlSmMnf9QlVNz1\nNPLkS1DFA4kXUEsJqL/6HGbf22WAATReiE8ANJTqTkHsGFLy+nLCdytKXC6qI58jAvWYpihIaybi\nWvky7uxSZNcLuJ91oYnqQHXpzWDQo06bxeB2H5KsEBiXie78PmLOTCH2if3YH/4I49cfIywQGJKO\n0X6WaMqQamUslko0Kc20eJ0EFDXkCpSjifh1flo/1qGhP3x7FgpOw5dVSHEOvDeC3FCLwIJoq4CR\nEmL7R6gZgTT2AA2XZ1IYksCBof1prvTQp7IXqTXlKK3HkZKd4LXBpVtQnB7UF7zE6pNoSdPAgjdh\nSzl4KqBzMOi04N0MI3NxD7mHhm0P4bzmafyHFbT6Hojv+6LkA6ckVJY2AjUOAi/pUQ1UIcwKSuAM\ngaSjqLacRW2X4eNwaA1iS26hjXDUS8KoWRJNRu0RlL3b8MjV6MlCMpth1BTE5HmoUWPDDtlD4MJJ\nqC8HSQXjHsBYUIP74i5aORjE09hI65kztOwsJrChL23bLVwILuXY0T4cvO1q3DU1f/8x9/finyRE\n7beZ8P+ElGFd5U/RUgySGq7LQ/5hP6KuCdWra+GJW2HNneCpgQGXQ0Y45ERAbg0GkYpct53I9lIi\nAx6UeD9KSAtCZeHW0hUoJzQwqhnRsobzdZcQ/l0emg/y0OguQ7FP5gZ3Kl9bTkLz4xA+nbPh0ygY\n052hI0fhf+VD9LUOpISXEPrJAAwSgwgPsaNUnkKc2YLyvQo5x42YuxjTzWvQH6nB+3kSLttmatJd\nxHnDkHLehM+XwejrYchFPeqAE5L9XRoR/nh2mMsIHXEvtmvnopezOHB7Cj19ZqzDC5H0Z+EPX2Gx\nxqLPXY77oZNoE7Vok1Qw+S7kb1bC9T0x40EMScQQcQmkTIKNj0GSGk63orRc4Hj6IhJn60gt6QXV\n36MY+hN8tojgkt5ExB1AUcNxpR+ZogHJYKRzewJiyI9Q6IAPnofrn4eQjRg+Og2TjRBsgpi7odfd\n0PoAWvcVEBGNknUJF7zHMbTJZFli0P30KrI7gEsVA1EFiAgVvuumoZq1CNWZTQzqezOHYxxwpAWK\nz8CEaJiWhtIk4y8eTFHgQV44OZ6e8Uu4Z8ByRMl2wAehycjnNYhxSciZ5bRt7M8fHrycpw88iLAa\noeJdVJ4+uMqqMPaxI6rDkUubEWMD2FKzUJ3P5KGvX8f0XBPBZ3S4A7sxaS72zWmzQacjnjSyGQin\nV8PQ4fDpo7BsFYVr12B0Haey5C7c69KQJBlLqJp4dR4mvQ59ZA9M/a+i7adwgiHVhL88DKMu9tcf\nX/8ofnNH/ItgS4IZnwAg9XQS/HEN0rhauH8wvHYKoZ8BC54G2Q3nFkPqaKTt3xB15ZuYUqJoqJmE\nKQBK81CEbxvIrSh33IRsKSTgb6U5STBsdTGidj9kzELE98Py0UAuvewbaO8LqfMJKV3ABNEE437k\nTPQ+hn5dA7qLecAUhfCOBih5CKHJgFk3IE+/FJofQ29vhk0TUZqs2OvbsORdjuvO6+kc3AvjdxMR\nQ3pCpBsUJ5w+BAm9wGyDfisI7L2bxpC+/OB/j9Ev3UC3FV8jFY/ANnE1yq5u0KjA/X1QFtrwvqVB\ne+1taJMGwVfPEPzgBYKyCs2q5YiHl0LEEKirgkEJ8NAh5KPrYOcNtG90YtMeRbXFhdOmQQmkENRG\noxqSg3bwRLz5EyA9SHqiGZ+/kOYvzTji/CTdU4D+xFL4uB6uvh/8NyMKE2DLR3ClCzKugj1PQPlK\nxMm18MgxpNBEctqjSMh9BKJCYegylA8fR5VyI8LRgPLK7Xi37EDvaUd1+z1IWZMYUF0A51+FnhIM\nzUYpfhVfTSbffdTJG7c/wgM3u5kQMw72rodTeVCohe5elAQZRT6FqJEIqWmidW44yl4v9BqKOFCN\nWJaP/5uFSLPvgBemIE5J0G8OUuhplB6XYSp6D34PKq0X/b7lGMyj4XwV1DTC5AkMUKlQiZ2Q9z5Y\nkyFcDV8uJSOuGnyDCb3wPcZxyQiNEcJToTYIsT1g1C1gshPB+H/UaPr78psR/hdBrfvjocjshvJK\nBaimgGoR3BONUqODB2cj7nm9S/A9ahMo5wntHg3aZGqTb8QeuAT14XvgTVCeeAVvQisB52p87khM\nJg/xV8so+Vch2rIhEAFaC9Y9T0CfS+FAPgfaejIgUA7nB5Bs0sED9yGEgDWvQmIlNL2Df+gXaCJm\ngP4UYs86dNduA1kCtQ0NEOR1/LvzMQ40ohiLUDp1KJkjkOTnofYTiFpF5+YrUUc6KAxdSZK/iuFV\nozAHehLjb6Xl2U34iubidyxF1dodceIEyjAPrqdd6Cb1RpPjhh4L4Px3SJteRrrGiah7GdJtBK9/\nhabPLiPC04Yo3YlS8CmBHgvQRDqpCUkn5al0dGveQzN/G6i7dAxcbOBCIJbEDe3oFznQtEeyfUQm\npQfT2GDs5NmYDPTjusGG92DGaDBEo7QUIdqNoI8CdRv+yfNQ6k+h2TSW1IAT2Z4F3V4H98vQ+jaB\nCwHU+nVQmITS1oqkU0NlAWz/EnZsQG0ww77VcKUMLXvoyDVxf/yjWOfXsCnkBwyxjwMCDPOhbwVo\nqyAsjY5qGdPgRsQHHsxXn2HFS1cj2Vxg0UNOdzjwFvbXLuYEjLoaYTmO0i8KzMvAtxBaEgnaqlHH\n9+dIVDJjjqXB1s8hYxD0fBSV7ANfB3yyCuIDkDkU1H5E1HQCWZdQKRdhL3cR2e3TLl0IRfn3iYj4\nf/mVQ8/+p/xmhP+GCI0GAgGEZiSKNa9rBpl2Fn5Xg3J6FJAEJXsRoT7obARbMjYyaS3Yh329Hvez\nCfjSHkJSa5BaJTzbJXJG+3FOsmBtHo6q+HiXYE5cd/DuhSnvIj/Xk4ER0QQzk+ANGet9LqT6R6FE\ngfXL8d+bTem4mcTqo9EAnXYfhuLzIIX+pxWBMG7BcyYNdawWeocSHPI1wdUL0Ax14xwUgUdzF4bU\neqTGGLJ5HjGqgr7le9ltL6P/tk+wuN5EFdtBIKIM+QO5K7xyjwbtNC2avq3g/AhuXQ9jr0fcdA/E\n1iBve58Ds8dQqHmIcZILdj6MZ1AD0uU3oivoja78NBb5DKYdT6FWxf7RAAOoiMVcbECqbEH2+RC5\nlczNqKIhai6x7QdAFMIQGZ7/AMLvRil3Ii8RqKoF7B8AvT5GEz4EWThw8TLu4DEs53qhOfsJtLWA\nrg4pOoCUlgyHHkUaeiPigkBzzXSYf19XI9wdcOp9HO1ZnGoawMupC3n4zOsMrdsJBRooL4RON5zZ\nBilj4Kn3Ye8krLTAYzIiEaQjQcRUJ3KehFLSibphf1eKIb8Oek6BQQNAHYpS8hVS2g0ovlTkIfuR\nJC005yPF9oX1v+/6L69/B3ThXW0zAP3GQqEdSq0wzAMZU1HrEzG3dEe5sAWMRyF56L+nAYZ/mhC1\n3xbm/tYYDCguF0KyI1SJCO0URORaGHoSimtBBiVcjRJsR6GTULkaJf1hWl4uJBDVhF5MwFgvsK5p\nJLbJRUpnb0SIDSk8AUaug8GZUFYJdMDygSht7SRWlOJTjKAoFPon4rb/CK8+g7x8M+eGpeMxqbG4\nY/DTQYn71S4BnfaW/2hzUx2iMBedy4/PqiDbbKhzeqOdOApR50SEPEiEcQMWnwXdOTViyysQkYR1\n4JW4kzKg12zUEZCbNJKGyAjkoILnnIJGr6Bp1kJYD7DEw9BhUFMIBVsJ9vo9x3oPpr33GAZK80kq\n68DPLvxxF9B8dQTqDiOX72Bo87uoK1oQQx/tUoK7iJ6h2KotKNPb0BeWIrIHImpCCc/YBv5W8AqQ\nusEVL8HdXoQbghY9CgGweEDcBQ4TkmMpZsd0gqppeHrU45qQhdzvcQLKYjq3qyDCCPoOFNf7iMYz\nMO2m/3hvnQ0cqxxMH8tuNiX1Z820Oxj66FtgkUGo4NQuOLkVnAL6jITNb0OTE1UwgKKVkWwJcNCI\n2GxBMij4LsmDcRLkpKPsfhp51ZVw8kc4vglpXyHKrlshPx/fMRBxQXDY6bZlG8RnweM7IK3vf+6L\nM1+DJ1dC797wwmdw9gIA0aGvoc26Hsr2/Xrj4H8Dnp9RfkV+mwn/jRHZPVEKziAGDPrP5/VheCe+\nQ9Ppd4hpOIO/4ko64jLR5NdgybOhvvpLVDsfR+7+HVJuKIx7HMyNiPjLMNAbEfwa/GrInASZCnzz\nNXSUUpGRji4khPrObLB+jS6sJ96Hb8B0zSqc6Xq0hKPy5FEuzSfANMJirgHvFbB+OgxMwH8oD6m1\nAtX4iYi+tWj8An9NHSpFQViSACuWYDcovw4szdDTDhufQ+k2AWEIMOKHF5FHPos06k761/5Eid1C\nRM5NWHVAdn9ETj/oeR1U3AUzR4GvhLqjlRwvXEwO/ekvliIF3QR6aJBq4zFqn0KMk5FPrUF4tiGa\noSZDQ0ThPWhzY2DJuxCZCEBwvhPDi90Ryhm4+0s6/AVoT92ONvQdONcEUVthdQAitdAiIZxaFEs7\nosIOUWPgmASl60CzF4tJQt8uIykyoupt5AgzgRIFJT0Cht2A8lUrwvddV3qki9Tuz+Xua17iktid\n3K6cwXxSj+J4GYEGhsyHw/ldsdpDx0LJ++AVKGGRBI5UoRo5AHHjH7qyLK98HuUcnGoawgBrOYqv\nJ876EiyJRUh3rAe1D3l7CkKXhn9jAZpwAe0+fHECf4EMy4+C3vTfO6Pl4qJadjTMrIMfVsIPX6Ke\nsoCQ3k9BWOt/v+bfiX8Sn/BvM+G/MVLP3sj5eSjB//KtIwTanIk0LupN/cLBqCpaCXn8DNb3Vej7\nvo66WQdNhxEVAuJ6wJB7wV8LkX3RylOhUwN5r4JxJJSchROloERgCLYTYUsl2nkWMfsldD8dxDdu\nLN4JI6niQ9J5nNQddrRNfprJxyeto2NiPPLuSppe1tL0aAVS1KPQZy1i9yBIWILPlIRy/i7ovRQS\nx6A4nkZxbkM2NhMQScheI/5XR+DZNY8Lo/rTbm0DcyqabjeTVRGDpo8fRa9DPPJpVz4+w0DQpuAL\nv4v9cRMom7mYicu+If7Lr5H2zMPnmgByDaq6WlSuRpTy3QTEWaqzR3F09kDU7RFosleDLR0emgSt\njbiVWlz6EKSmDAKXXIvSUYRyYDWN/pugOQdCL8CPTdBfBVcrkGRArbEQSBDgUEHBJjDPhIHPwYjH\nYcxSlJt2It1ejHiwEGnCdLQToT15G0HXKmTDeqTZM8Fs6Po/WzZhqbiJbesn8ZarhLQP3ye4tRqM\n4ZA9DOYshpjzML0HTBwD9x2Hpwqhezca1NlIt6+ArNEw5TnkHnHU7NPgNt7Pofv11LxyBMttH6KW\nTLBxPqK0DmmDGn7Yi/uQQL7nU2SHDpWqCtHDDt9fA7kvdEXq/CnMaRDVDx5eDRPnwuKJiKfvBMuf\nVZ791+efZNvyb0b4b4xyvgD/Y7+D+rNQsR3Kt4LjDACirJCsFbXUXKhGKstCNcAHz++AtjPwZj+U\ncCui1/sIQw50loA1p+s6325wJ8G5D2H10/DuTugRBtdfjV4yovHK6AJOOF2JthWaLwtSwtOk8SAq\n9EiacGKKx6OhO4niHaSJTxNsryOQ+xnaz+5FWXgTlFdAuoKUsBhzhhYqW1CaH0KOOg5r38bfrCFY\nbEL1ziaEoRJNdjy+6Fb6rvoQ3ft/QHlgCbz/BLz7GCLjOpQkFUgy+Lq+5SoskewIvkoGQxjaMQlN\ndDo8vxK/fAC5UoXU403QJ+BrVVOaepjTYyajKWln4PNHiUqZjPDshphasMkQ9NEiH8OlasHHFgL9\nBkB4H+RDn0PFUQKeQQQPhiD3gKCxBermwpgnECGhyMkSiuoseAPgaYITeVDXgbn0LBpVJGgNEJGB\nOmYRugUxeG424UweS7AhFam3DJVvwd5YqHgb8xYfmrAReDwBGp5MxXlGB4e+QBm+AHY+C/Y0mPIS\nOKpBrQdnM6LtNHndLofUri8luaWe6m1thM810/fR2wieryUstR71+itg4Ytw4hxsfAZihiDOlWIc\nGInL/TbSDj+d58ZwZtI0mLWuS/s6b1VXBpP/ii4Kejzb5fvtNwLe+xFsdtj7/d9lTPzT8utl1vhZ\n/OaO+FuiKEjDeyJlBhBN26CjCX5YDufDurSJo+PQhZ8lThlK2T2Xk3reCxvvgM4OmPQsomQnYs1y\nGHYL1H4DsRcTL3p/gtPVUKWG8COQnQCXRYG1kaA1HEo2o8SOgg1r8G79Pa3ydyTJMlq1vev6sEyc\ncZFYcCFQIW1146tUETEWOgbGUqt/HHVHAfZUD+rqpSihfmTt18iWCaiODUY0N6Aefhjp+SuQrW4U\nbU9UV2/CemcycoUFnBfwjqinJjEb3eZ2YodOQBR/gFz/I960WvbUziWss4ZJh3NRFf0esrUwWwO7\np6JWayhqjcQrXkA/TIdHrCLmeAMpm48gSRE0Z8ZjH/c01OeB7QcCvTrxrM3CsTCOuOI6NI5QpHwX\nJJyhos1A8MfdJB5Zi2+gFtGuIhCqJ3DHdVg0oxHBW9CUvUwg6QPUsXeiBLYh3jsK3mZEaBWMVAEQ\npIWgAYIhJgI7m5GfG4nidSFldgfvV2AbheI8jzLFQtn4KFKmPIF+skTtPQmoSvwYh0xGPvI4rts9\naMwfYtSEIc5vg50vwpDptJ5PAkB2u6lZfAsRTzyFrv1VpMhe9E07jpTVB3pPA91KmDkAvtqNb8hr\neNbmYkivx/yZAdfYcIi+hCBVXYLrcUO7yp9CCIie1HWs0cDA0V3l351/EnfEb0b4b4qCFOJGszAG\n8l+A+nTYpwNTAGbZoHk3ilqPalsRdXTQ9oWDpOuvQZvRD5XTj67+JCKiHd5cDDMGQ1sZzLkTSrZA\n9VS47RQ8sgje2IrSupvmylW4GlsIk4yk7dwDb/yeVnGMDjlIVEMs7rrrMAXmg3stbl8q0WeycZ9b\nj+vxuwl/6g+IH5/G9v472DKSkTkEsUGctRq8LROxlCSiGzEZaj8hMGkcjjMvEhJUo8paisZUAq8/\nA3UhSBlWECF4bniC02kvMCH9HKJtfld6p+LHcGrT6N00jI4mFy2Jkwj76CdEUQ+Y9yDKpg+omhTB\nmqlxjFI5iCqykbPiPFIriEw7nHYQKNSj3H4d/uFuPMPrODegN+nLG5BrU5D0GUjlh2HVc3DbNkKG\nuDGdUCFGh6EL+JA1flCPQPXDfThSrAQJEHbgNIFJvRDF9fiSqpAyDDTfnw41DaB/+OK/6KUj7Dv8\nI7VoF2ej6ziLtuIEwqiChA0oQkW76wNUjkfQyjvxvjoYbUElUc+5UD15H2LfXqTsh9GbAgiseMwv\nod76HLKIQ2O5DCngQ964kprHlxP21qfohw2DH75F2/N6+GoD2rg7IHwd2N+GilwIPYrU8SrGKR7k\nECvaK76m89QgdFn9kDn/D+7z/4v5zQj/CyIkSJiGuH4SeOvAGAfLBMhBaC0CfyvCXYmp6DDKk2uo\nXGyn/eFnsTxjQCQLot2dRFWH0rQoHY27Bss5H6qnhsE8K6RGwzP3woJhyEeuwBHipuOCE5U3CMdb\n6BidhL0ogl7VtRRn5KBeuhkp0IDr68EYD9iILPkYpd5O83MGwjf/iEjIgF3rofEk9CtA0gTBNQal\neTzVNy4n6YZhaH+4n4o7TPh0eqKeOkCwvje6Hk3w9Y/QKwF6pQEKNJVjfXIKE2do0KVqaAu9D6nz\nI8x1LURsPgFvrCRq43b8WWVUje9L/KFTiFgt3geWIG66nyVfthAx04ihuRviUB3c8yTY1yJnGvCG\nSLhyDuFzZfJF5DVM1c/AfnU9FzQvIKfGQ3dgQTGYtxMxbQW+CT1hSG/4MRvJHYbWGYS0K4nYsQxP\nz0uoXXApoQd3EEiXMIe/jwgsIpYVkH8FxHblG/BThcYXg015kpXPjmT89A0Ew3SUJ8loeB0VJnzB\ncgzhiegjrQjPfnypYeh2eRFPvgqL5iBuexV98wmCB/5A8zNl6JNlDEMaEUuWMmFsKDUrawl57XUM\nwy7udjNEgS0SOTMVyl6HwZ+Do4Lg2rM7OR8AACAASURBVHuovXY40bVHkUu0aCe8Cq8txOBy4I6Y\nSo+CBJT+rQhdSNd9Ak4o/xDCRkBITleUxm/8aX5lX68Q4h7gBSD8ouLkn+Q3I/wrINRqUMf/xwlJ\nBfb/m3BkCIbkeQzf+hmVDMSzbjjR1WOp2/x7lN3bqYuoo1qbQISzjKarQO2Nx6y0YD2/HI0tFH9S\nXxytTuxtiejqTqCud4ItmoMRNzP9xQcxvrScXq9fB2lDELduxWP4HXQWoi41QK2LsJW9EKHNUJsL\n2Z24/QEMbgVnlhF1/KWYCs/S84tp+PceonyGHlN1J7Ff26nKCZC8rglxahdkBYHTUBcJWX1Bl0RA\nbcAQWwrbZCwR7Yio2xG2l6DvYEjNQVzxHNpzC7AnLONc0sdk3DULvyGRqKlVqC1exOZIqNsHKRaU\nmi34IisIjEzBVlhFe0kPvsqaxJX+YYSYEwl2i0ac7kQ0uyE9G0w7wHQVpkG3YhICWo7htY/HZ9uL\npc4O5ftg0FPoZTfRppsJXvgG37jDVFU9SUiCB3NnGULVtenGW1dHzep1CPV6rPMkEkUy6oVh6D9R\n6FZ5gfaEW2jkHG5vEUn6UXRGL6DdtAH/8Y2EpzjQpUXDsTPw5efQPxPv+Q7ayz1YJ6ShHpiJ0mij\n+cvvKHl7LgPc3wCH0DAeraIgjn2Dv7eMVj0D6ad74btj1KYn4AqUE1TLaN0aRNPzMDoE6gXeNA3m\n4w20H5+GTUq52L8UqP4aIkZD2m0Qc8m/bxzwX8L7l6v8tQghEoCJwIW/VPc3I/yPoK0OFJmEgQ9z\nli14VLmkn2xGXPMOVNUScmATNZN8yJoODLZmxAYf9QNM+C810WY/QaruHZQ2B80tj5B41gFX3oc9\ntxjaW+GltxFj50CgGeH3EnJDG766atRhAaTuSxAng1A4HyVcBd3Tqd8cTlSZD71IoDnlWdSZvTFt\nO4kYbiW2cz6+1zYjd5YSVq1DPPMa9JoNL0wCWzVUJoKtJywYhdbze2hbDcefQVo2Eda9BU1NkFQE\nzyyD+BTk/9PeecdHVWwP/Dt3+2aTzaZXSAIJJSE06b0IgiAodhSxo1ieig1sP9RnefqUp6JPbKAg\nKvgAGwpIky41BEJNQkJ6b9t3fn9sfKJSojwI6P1+PvvJnbtn7j1nd/Zk7pmZMwHxGP51M8kBQXja\nWgkoPARlwBYt7K6G3m2gbToibTT6nFvRF+Txbbd+VNrSuT1/E7r4/tBQSH3dSgJiB2P+5H1Iux6K\nB0DIUIT2AAQmw/b/UJdaR9AGDTjzwdIBej5GLRuoLJ1GTOgVSE0hcRkFuGKuoXTJcjz7qih552q0\nVisx116L9QIPInsdl0RPZd1Ve9F2ySCoroKVvIsWPaOdI1EMuZhFT3CH41g2h40v9CPFdjdR5QcQ\nb7+I8/k8aqKSafndR2g2TMO3ay/Fm6PZ+spoBpVthZUd8dSlob3+INJ3BLFjBUq8xJvxKcpOBYoc\n5E0JJtldgTM8GvLq0BsHIkJ7oVtaQVCiICvGSfJ8oEs/6HOFf6g9/WUwRTdzIz8POLPhiH8CDwGL\nTyWoOuHmoKoA7vsaXB4SZ26iumwZFffOIdQyEJZPxjx9Ma23XI9s6ER9/lOUd4nAFy6Inn2U8HQ7\nNb1fosKai6djA+7lLjRzn6FzmQ8UHSS3hxwXZB+BvSNRtjUgeyq4SgMwOjMgaCCETYWge/EppZgH\nasjPMxJbUY1hSTC64o00jLcSIB5E9/Fc9DXF7B2ZTLwvH8+h+WgxQeoQyPwCSlbBgW+RPV7G2XIc\nhliJGNUfbLHw+lLIWo0s/ABPYXfcc2ejhLRE370/ii0KceNkKt7rg6VwL+4OCdT930NUle6npn0a\n0boUWtT2pqIqG2tJDUMaXkfndsK+nWDpRh1lBHokhgIFwtZB+rWgs0L2PNj6KdJsxqOxo6sogbGL\nkd8/QUnd87gDJHHb26F0GYSiJOM4cD8H3n2dwhwnaXcNof3fL0MfPwLqtuGVGxH2WITQ0Mb0JAfa\nv4Rt3yLaHo0iOvbvKDXfU1v0A9W1O4nL2oOuWEPHGzIpSn2CwLS/UZfVCVOijsgD2+HwHLwVpdRs\nacA5BGzJJiKDNMiVa6ncsIyGteXoOoMsN6HZFII3UY8uWME3tgOO+P5olWLMFU9Qd2gQ+q+3QZ+v\nIDwag3kginkbTH0bNm6CZy8B6YMnvmne9n2+cIbCEUKIMUC+lHKXaMJTiDpF7WwjJcS3gTALTB+H\ncd067PdOpyh0O159CdJt9z8+GmMQncZhyYhE5+tN9JcFeIf3x6KtI/rbJTiLfFT4WuHobEbWeJHx\nGpgQD1YzrPgEsvNxd7qI2olmanoGUu1NpPLF7XjaXg4hqxD2K9GkF6CsTiQqUuDqrsVY50OxJGGe\nodCQ8QAV126lqrvEcZEBs96HY/tivB9MAOtWOLQb2pmQNwZQn9gFb7gVYWgNnT+EdW8jvV5cK77G\nvWojdtHA3kWTKPrwMXLu60bt0LfIzb6QrCuHUxgUQ35sKFWrX8F6cBupeTri936JtG/BHBNLTHYl\n79pu5F+d3sbeejhoFlMbUkBg0UGUUVdDfih43LB9BmxbCo4o7G3TMBVXQH0gvl3P4PV8T/iiZ4n7\nZiFK1lJI6IEgFIokLacNps9n44kqLccXtRjqtiMLXwN0/kUXQARtkAyl1qYhOWMPxkUbObrsTRr+\ns4GgKR8gD63Avr8CNpYQ8u99lDz3MAbvUayvz0dcMQheyMSrGNBHRLF7TEfSlxxE6P6Okt6bkK6A\nx8zRNwTOUgXNBdfhCQqHumxK23QjnDSszML+zKsE3DYeYTfA/pYQ5UZ4skndVYPZFww9x8Il90FK\nD/j0aXDam7WZnxecxhS1U+xC/yjw5LHiJ1ND7QmfTaSEuk+g7AHILIKrrkF0v45Ecy+qyKFGPIhR\nLMLLDAICWiLsBfgixhK2eQ261G6Ie3Nh7g+IvAeora1lQNZiNJpI6KPgteugoRTWLkWOvgXP1+/h\nW7MKXXQDQQFaTHofvsFR+B4ZgSPMTn5aD6rstxA5vhjPYRe6nAqqfXq8HfvgGRuNu+JjakM1WKfW\nYK0vQYh6AuzgNGpwz1iHvv94lKHr8VV2RLv4azQ3vgCaMNDZwLMB8e3TaFqaccfGUSbmEbSqFF9a\nJ/TRU9GEP0liyT0kLa7AtcuN7tttiCg3DNsH8gowxUFdJcbB/2Z97nqu3TGHpdUwO6o9w8OX0xD4\nGubUfHA8z/4rhpISPRE2vwFY4MfV1F8cSrAiqNS4qehnIT77JbQrn4BWQ8C8HVzlCGM4Jr3AdOVH\nMDsEIjvi1hqp3/cuDcYNuI6EYNyiJbT+H7i2zid1cwxVPRVKhhVi+M8dWFO6Yho+HSW6PeLz8Zjz\nK7A7sqg95MJzr43awEPYZoyA3KPIBxQ8h6zUDIGgCB22qCr47gHQtEBkVxAUKamtguINGuLSr8e7\n9k1k74c5EplMW4bg3bcfabej6z4AchbD5jwYdguYB6P5z3XwQxiEj4cbn4c+lzd3Kz9/OI1whJTy\nwuOdF0KkAYnAzsZecBywVQjRXUpZcrw6qhM+mwgBgVdDwGgIWwT6dHBsgvIHCfZVI0UAPlcETmcu\ndaYfMTRkoavzoB89Cu++RYjCQli2Es+wN6h1P0jB7n6Em2oRnaLxlGyH1oWQUAk/rqYuJZzNvdvT\nxp6HLAojwbuWFZf8DY3FTXi7dei8uUTk2tHtNEGdD02HyzCk5KHtOA3tgYVosl2UV0ZTYTMQTiTV\nl8QQmLsTY+IIPNoD0G0RMn4+MvtKDHUaWD4Gki/0zwjpswXq30YT1g5NmY+kWUegzoUcmosYp0DE\njaAfBAPGoOkkkHPrEIfcsAbY9BDEpYOSCN/OpHVRJUFpd3D5nrU4n3uYLbcMI0iXx9HuLxJeNw9q\n18GcTqCEQsUW6vvY8BkkwlFF5ahIWqxzoWMbtJsEtWYY9BQYGxPUez3+XNBrdDAwG/0iB6IuB1Ns\nHZUmA/rUanzGh7FHBFL0YndqDheQat+D5+ZxWHISICYZDEEQ1pbqXl1xeFcTO1yhdoudwol1ePbX\noh0TgVK9E7OnmGVtxzBioRHHBwGYhgVD8C7oGYv2+yCi76wlb7eLhu8G4bxQh7syk7r6/QSWLKX6\nwXVY7mgDO6ZD/i4oBH6YA8HBkHoPsABiDkPGddBxJgQknrAJqhzDGYgJSyl3A/9diiiEyAa6qrMj\nzjWUAAgc7z82dAD8SdOFrxaNcinmhgikPRBfxWI8BbW4tjpx7XFR7I4hcvZ72PM3w8UeDPoGXNKH\ncdsugqMLoSQM4gZRaMmnfH0IrQuL2ZuaTsldrQl/w8qwnI+gsxG5PBLfknzQxeE2xJLTsRdx5XkE\nJNkpid+Htmwmiwd+SFr5I2hCO9J68y5EfSdqb7GhaMBy+BAieBK+fRej8dUhWmngANDtEqg7APa1\nUB0ACXeCxQdvj4ajhxC5X8G/bgVDa+gRCrohaKrL4P5KKC8GVy9Yb4LcnVBVDj/OITHMCmuOoNRX\nYEoKou/Sb1HsdbgWDWfL6Mvp9cNh0GjhUAYEG6m/MQ2PeS9is4GEr6tQnJ9DMGDUQwVgHQW5H0PO\nVti/Cx4NgVA7UI+oLkMajQipIcTcCsJ6IgRY8t4kYdn7VLkjcKVasOZ8TF1ZOKVlh9HqE7Bk7kcG\npBI1+yOEx41hcCJt3C8ibCvg3aWguDn4wou0qFyNoWIZtYMtEJkIRMLKbTAkAG1wJ+r3ryZg0Os0\nGG6iNvAWgvcvxvn6PrTOIDSFXfw26POhZQiUVsPVj/r/sTfcCutvBlcVrB8JfVeA6U+cjP1/xdlJ\nZSlPJaA64XMJJRA0kWB7BBF4F5rK+1Ccy9CG5qK90ErY3UMJjB2A98hrRLu8BCsmdCkhCF82pcXJ\nhIdeQFHntvjMA+kw/00IyiKRUuzKKsoH2BB5IwiYvZqCd3sS9sB72Ekh87bR5PWNZ20hRLYy0ydr\nAgUpL3GpvgfVxkgOaQrwKP0xOJdjvacQ10fzIa4Tcskz+PokoK1ygqsStkbAiM7IoL7UlGzFql2J\nb+VkfKI1mgsSEUGhkD4MrJ9C1HUw9w7kDg/0SMaXYkSEOhBrP0N8Ew1fboWqSrzTH6Rs42bCht4G\nl1wJQmA/+BmV3m3EybGkLhnD3lYdKep7G/2yvkL/YxZC5BNR7kNTcwcE7oTq1ZDngToHjhQdRs1c\neFEBlwaq3FBgQrolcrcNcVcV1LihRiA6P0pJaATBWwfirfagyQsiKn0c3qLl5LcOIji2lBa+S/EU\nZyMuuQN9u3F+h1iQQ0MdGN96AS6pgyGRZLfqR0ZrD2M+LgOfh+yI3oTtqIDKHXBZD1jzDUqPIP+c\nXvMlWHx3cjD/ZaJWxVC3uYzgb76BuDjYvxk+ewY6j4SFH/gz4VlDwBwNsRf7e/gtRoOrvLlb8vnB\nGZyi9hNSyqRTyahO+Fzjp9FUrxOcJYjEGEgchiFjE1rDeByaj2mIg/V1Y+n09Uf4dhYjwgIJsuRT\nbQoj5NWV6EvqoO9AkEUomlACtu8mYIsBT/0X7B4YR+iTn/LhrW2go5uEjml0z6ulZnMJnazLwFFG\n6D9uhqhnqX7xdtpXbcJQUQgLQ+GaOvSZk/FFX4gnxopu7iHYJWCUBe5/E+x1rCt7H+vgB2hZuBFX\npRNHYRnRO1agKd+NL6KQnPq9eB03ETXKh+nOwYiCesR3uxH7ghFHG2ByJhR+gcORxv5lmzg4dixt\nx1wFgO/IETQHddhKYnG3dVBw67Wk5vdB88MSlsZHMSoyH9vOw2jTp0FVBmTmQ2Ug2Mxgzafw+nDi\nJOheToE92+HjKuh+M2gknuBYxNGnoI8LzcZA3Ns+5rCSSVn7XlSmX8eF/57OijblJHtaUBrVln65\ns9hVMJ2WG6rQWS5A/8rd4DYiDSZMiYp/h+NVxWDLZeuwFriLduMb+Q4adxX532+j2+Zp8HB3qKmF\negfuJC/6WBf2reMxtkynIjCYhJVf4ItIQjHmgtMJSa1h0PUwshtERcHRbL8TBmgzCVZeBu4aSLml\nWZrueYe6Yk7lN3jcfidcWwXuQ1C4xL99UsDVkNQSTcYhAqKfwut7mOvDr0fz3jj49jnkV/NwCQPu\n6HqsIh0mToCOY+Dx2+Af8+DwarwuQcMblxAZfxRzppubX5uCCAlDJvTEvWQBZWl2aJEMGQ4YPBi2\nrSb8kx8IsCbDpjehf2eIj0XWZeCsWoyhpDvCokALO9y8GYyBHC3ZwOK2oVyjzEVW9SN0z1fsj41g\nSXotY+dsRIx4m4gdX7D+sffwzboNGeBA27oVtrDrsU55B+2dD0PBTDh4MyXz++MpK8WRkgKeetgx\nCRHUCs3Rg4gtn+MmmPijCp5Di0kJ1tImvyVUV6Bd6wDzYzDoXrA6oNO/QL4KbzrwhGspLBS0mFcD\nBUGQ3wC2HRDiRPRUEOJ6iF2Fq89g6qct4YJhVeCJQ0nti1KlYfyMLGTaVryDL6Ay5C1aOe6B0FB0\nGRnQ/24YcweunDzsX3yJSW6B7EzkpVZkm1TGzt2H7tZU2LqGYYufgnah/sTrB3KhWwdqOvRDKYyk\n+qCPrE4m6upNyOhEgh/XIeR6qKgBbxUMbQDn49BbgtkGsiMILcjG+HbWG6oTbirqzhoqv8FeD2sW\nQ8u2MHEahPQG9xFwVkGbkTD3DbjoRgJ9CoIW0EIL/R9CbM5Hm7WdwKgbILQAdiyBjG+gaA+y4C1E\n+C40//4S0wUKugAw9YuGxLaw93tE9A9obykhJgmkz4voeht0egFK8whw2eGDZyDPCfp9IK7HPjoJ\nva8dyuQnYMsq2PUtBATj3X8vgVUfcd9nCehvXERQRByiuhWxrRNw7NmH012KduUs9DVFpH/RD1fA\nbHTVwwkRN1E9exLZr/XHa96KpWYEQa9nUVO5lNT575NdUAaZd0DxXESlQNchCTnia7KCN9PSeD1K\nxmq8W1fgzQpG0y4LxW1GZIDIeR98Rti0BmGLgg5OQiojcddZkTc/jfjoCkjsgLdsB+V3x+COL8dU\n6iCgtC3K8rkYeg5FJK9G5GvwbLkT8n3oju7B5wsB378JuXwLvuo70NbNRbycCTp/iktX5rfoDy6B\nv02HOTPxHEpldItMjOFpcDQTlt6Jr7sWCqphXSXEmKH/42gDAnGUHqHspQV4r+hKbFkM1ttvRIQ7\nwLUELDMbE/VIcGSCsd0vlyRrDDDgU9j8N7CXgCmiedrw+YS6s4bKbwgMhl4jIL2Pv6xcBHV6qNoP\nIe3BUQ/OxQjXEvDuhsIjcNcocHooDWkLY++HK16C2z+BG95F9tfg0j4LriXIqHocI1PRFZtwDhkD\nW6th2OfwTRy8BL5pBsRzcbAuD2bfAvcNhOcmwsa1MCAB+unwFm5Gt+goWv0kv35Z2/H06UG1ZgoO\n0xECS3xER+dge+5yqKuC0iQCAoJJaaimqp+Z/C5rKL2sE1bjPQTX/Zs9Vx2lfvAgIuIvI9n8Im2O\n3oB18QZyrDrq32lF5oD5EFYLHecgF8Yjc4dAq6eh7l84xFbM0oKSnIpueBLGJ59BNzwNTb+bEFVd\nIc2ObC2R9ZHQ/nnoaiPkaB+cLY2IhRPhUAIYatAobsKXKoTu64n12+7oJ36PjDRimtwLJa4VjsMX\nIxuOIqKq8F1+Lb6qlghnJb4nU/HO+ABvfQS+jfPAVQrl/8H16QvoPUWw8BW4/Ql0Cz/GaJ0I6R5Y\n8S6MDOLLxJeov6YV3vK9NOha4N2yAJ2uPfpueryV9QQrbjpmtUDo9GAYCbrBUP8geAv8T0qmtOPn\nhFA00ONfoAs8G631/Efd8l7luIy+Gdr38B9XboO9ddDWAxqTf0S9uo1/NoCmPdTug892QHAonn/2\n/eV1dAZcsj2equvRR19HRf9JWMNfQ5O2BeePT6O5+T20zz0M9Ufw9e2M3L4Dz+gctJsLEYcqQIYj\nduZAggF06cghL+G+cC6G4ofg7QeRgQbqEtbjaz0AC4+gqdkGm/VQsQsZuZu6jLY4LwsHqxFjfTbh\n+5MQ646ytk8BQVUz6dRhBv31R/mh3E6atQPh70xB2GvxhI0lJOsIgfsqEKHdOOzT4HPbqT9gwzJi\nKN6doRz25OIONOLL741i644HLcL1KZocDXLhbBhej6gYiHAI6FMKB2dAx1sQKY+jyPvw5e5BycyA\nSe/CkvcRgZsxGp6EA2+ARUEz9HVE7UyEJxFzu9V4cm3UVtRiLfkQzeMfoayYgMZiR5vUGmk6iHf3\nLbh/1OKyhuPMcWKLr8IRBa5WGRgTXBTmL0MftR1zt33sjbqSbFsZJTUeoiPgQLeBdJj3Crq1X0C/\nVCInd6GlSEXjyfd/zwDGK6F2GVR1h5B9II6zi8ZPCAFa0xlpmn861JiwynHpfuHPg3OhtdBxIBz9\nCso2Qlp/2L0dej8PQg8pHfxytQW4jZbfXKohvhBrXhRlKc9iCByJlmjoMhrTqrepGvgUgXE+dJoA\ntJWHkLUS3qrDN7AOeZ0AbwUCDR6LgmQnyufXYBBahHEj3nZmPL4qLDtLEHVaaP0otHwWj95B5bQk\nNNruGHbbsL20AKXjRoTVCsFe0AYwoLoT++vXsyrjBvq2qKFfq3h+mHwlbac8Ttj4qZRMnEjytBSU\n+PGw/mE8VffTcOvteEvrEUd2IH2x1LQIxaRtRU1uLo7ytRxJNPNC3lA6hqRzx00bCduuQNYmyK6D\nJCOMcMPGSojfR4BtO3UtXATGhsP2pYgwD3SfBQH9oeAt+L9n0Xo2I+0eMA2A/pPR7p+Pbv1BCOqA\n2HI7xPug0oPYvBvx8Ex88TF4C7/C+9BsHAedVAXF4XqzjrqL/k3cbaUErdpJ7aSbMVW+RlfbZJyr\n3ycmvCP6kqN0fH4RPPsBfDeDqJ25WCbNQvg04M3x92x/wvwo+CrA/iaYp5zhRvgXQY0JqxyXnxyw\nsxACw2DAZMjcB2E9wVQN7z0Eg9/6ZZ28VRQb2tPmmFNOMhGtO+KqzKWOBQQwwv84W/cEYthuAlcX\nIWo8cGEwfBwCWgfS5EJZD25vNM5uPsrSNNSmBhPgEugdXmJ+rEJTWI04WIum1TAcW77FOHwiIiQd\nlr+EhjjC4t5FICAKfNUDYcENyFgvIukIRCuw73FSfFOJ3PYxq2/qTrfttXQd2JUtM98ieNVbpKQl\no6zdAzXd8Epob51DyVgj7qldORyajcYyC1d5JSbFTdnlKeh8nYhfv4CLLd+ghHjZb0jm9nbTeaDV\no3RZmo3xukcQ9V9A1jY4GIHFVk5pnygs+WNh7yyE1QVxF8NDN8KdD8KhFWCbjfDaodXL0KCAUVCe\nEIZ591ZE90mQEAu+FVC1CWa/gjalG1q3EeXRrxC7J2B56j28W2YQUfQDHvpg7lVGcIUXYXsURAfi\nTVswFFqhXUdYXgGJ3VFkAzVdW2Fd/CqioRqCWoHmmMTrmiSwLgTP7jPdAv86nIUpak1BdcLnKnvv\nAncRxHUDMc3vnC3B0FDtH6D5ibpCOPwNxYb+v6hezUeEJE+hjs+JZA5m2R/sT4FrPiImDu270dj7\npqB8uB2uewHPJ7dSmGrFPWoAwd/sJCQ3j8AFGmRyHG6rhfp2kvL0vtj07al/exbOzZ8S3EePCGgD\nxbOg5FvEoAc5dpm8culVyM9vxLe3DuWqrxG5K+HQdNBOx5ragYFFtey7tgqpr6TDRdPZd9cyNm7L\nZuD0S9HaeiC+eY74oiLMNQFQmUZBkkKC8VY8RU+i/fQAvotT8fRpj8/pYKJ7PpVrw9g68iXahni4\nruJzvKPMLBB3kdpyPgHjFkDJ4+i/CsTVKQj7R3mY3bXI0dMQn7wH2Zvgn5ngLoHrdKD3wTsvQ8Im\nWG0hxOKiOtmCbdn7MLA7GFdDjw4wdy8yUouY9BU6rxnbo4+iHzwEUmaC7wL0kbPwZryFr+oplMSd\niOpVGBtqIHoYtIsEsQukD0/lfrzlBmonfkjQjMdgzZtQXwsPvP/LdqFNO3Nt7q/GORKOUAfmzmUS\nHvLvTdbimHwAtigoyv65XHUY9swlxJXz31NeqpDY0RJNEBMwMwi8e0CWg2EqHLgP4bBhXpiJfXwS\n9sxHqJ5yP7YZ1SQtTCIsuy1KlAculog7pqG/7yNsmlCsawqpv24q+vG3Y73hYgwTboXM5RB3P1gc\nUPOxP479E0KARY+s0eJ9/XUY9yToUyC4G9IZgZKznbaf19BqwyDCHlpI0rARVO7aTeaiSkjujQht\nS70nEN/NRiomaCH9KoT7KbTDv0KaDSjvvIFhzfsYWwYhNpgI3VvIsH0HeTZyONlxtWT57mF3zTDa\nHoqgY/HVfLuzD772PTAkDkCEroc9TmSeB/btgnmfQBcXJHig7xvQbz2MM8ON38C8tVg6XwamYIgW\nkLEZ9qfgq9BQFjkM92E7suIIvllvYPpyAa7JE5F1PSH+WzC0RJMQjwh9HKf3Znxlf8dWfRg63ggx\n/aBHIGgU5O0LUDw+LJYLYNpyaH0RxKec+Tb2V0bd6FPlpERdDRFj/Mc/hSikhNI8ePWmn+V0Zkge\nQ7Ex9b+naviUQK4EQKFxpFzbAQJnwgs/wvT74JrHIKwc8yebCOj1T8K32rBc0M6/S/QzCyEqDawN\n8OwEUMx4ht+Hd8QqAsdZMV9+Kca8HRDVGbp0gS0P+GOqZYFw5CP4YhhseQ1+/AARqkFz8w2I3v2R\nnzwCIx+CxFjElOUoo+ehqUzBtH0/4vqriFn7KZc90QFzck/qG56gocdBAieUojeHsNt3JXGuLNgf\nhchaCP3b4Rs9FJmbBUvzkNH3ImNjoGgH4l/tYOtjmFNe4qa2N5K35x7e+ORSckfGM13Xnpwf1uMY\nYfGHYmY8g+zihP0bwJMEIeHwwZ2w6R6I6gMhHcASjoiyUtC9BT5bC6TGjq/8IPbdRQSExKPJq8D9\nwAPIvCOI1inopr+MaPug/3ura3eozAAAEjxJREFUmA3Vn6ME3YRBOweXdTeOvlqkJQYq9sC2F6Du\nKLqY7ugGP4Hy08Npn3EwYtKZbmV/bdSNPlVOSuRxsmEJAUMnwhev/XzOFAqDX4Gv1gPgYj8ONhHM\nrb+t/9Vsf14GSwDEtQadC1GuhU/eg7F3oszdjk9KqNgLQWlgzIaWJnipA85rLkAfWI/oZ4R9U6Cs\nADQroTIC6o9A6gNQ5QRzF+h0Eex4FnJKwKRH7PsPmlaJUFwO+iI4+C0s7A0dzTBmNbhvgpVrIN6I\nsieT+KtfwiOqELur0QVp0aTdTlj9cnS6dNwtWlKcVohI74vt1dl4745GWVKN/rvncVyvxWBaAymv\not96AN6+BXwBsPd7+t77AW3CkzjS/S3kHUXUzx6M7Zsu+CZnYp9XivmeKDRV1ZDaAio3Q8b34MiD\nEMCUgrQvJmJza0q3N2AzG1EiAjBptRC9D9G6I5rDR5GPTEGEt/nlZ16zxL+YAoEQNrSFqbgjMvD4\nZqJLvA1sKWCwAhAddN3P9YaMB63utJqQyilQwxEqJ+VEyaB7jIa+V/xcDmoB1oT/Fit4DQ+FSBy/\nrTv8WujQC656Ap68ErzJcMMsuOtF6HkRCIGiKJDzjT8HgcYBoRaI7oSzZB98bIKUkTDgE7jlMRjx\nIXT6B1y8AVYvgy7XwZb3IH4YjFwO9hpIjgGPAH0c3LEaErZCy9bgcoJzJOjfAOulMKI9dFkOIeUY\nPqkm4NV6jNuD8bjMeBx7CHEcAdvf0A59iFg5lZjcLRgvlpiP9MOUokG5IxLzBgXthz70QaNg2MNQ\nWQaHPodxU6DdKMJpj4hIx5tkQLN+C4RGIEb1wDxrBg0Pv4QrcAjeglwwuKDdG/ClFQ4W4d13B97M\nfZjnfkX+hM7oRo1FO2AwyrMbUDQBCEsSlB1CvNkNDn33y89cEwIJn4NiAK8L7X4Ly1e8jCK6IhUt\n9HsV9EH+r5xjZkOoDvjMc47ME1ad8PmGEDD8xMtSfVQTzvMoHGeuqFYHHYbAui+h64Xw+HcwfCLE\ntf1ZpmAD7JkDgR0gaTrcsATZ+mocZge+xV7Ezhq/3C2PNuqjQHA0jHgQFj8DJhuUH4bPr/Evv059\nCrw+6PEA5K6Bhg4Qo0ByfxAucApwloLHC9YBiCseQNw+FVnmQzlQjumzKrw5n1MRMRXsBxA5T0Hu\nWGAXoioCjeMLFGdrNKVt0QxqjZJUCo/Ewcw+EBkFj+wGDbDkflj9Tzq4L6NyTBjlxhrExSMQ2osR\nprVYUmNxLX0XX3kBMvVv0GUsWILxzJhN3iOH8CRqMQ8LpdX67xFCC7a2/h1EWveEVR/ABQNAfxG4\nvOBr/NVK6d88VDH7y/+5EiI7AwKN0gshFEi4CLTm02kRKn+UcyQmrIYjzkeUE//vDOE+jKSfuO7I\nG/2vE+Guh/pCfOZQfLa7OeBbw+FBZaTvMaDt0g+xbgvEfOh/XD6WlH6QvQU8Dlg/E4oywRIO1laQ\nVwkrF8PNjyBD2kHFLkTJDGgIAns0eBrnClX9CNER+Mo3IsMiUKyB6A5lIF/Npr39cUjuhwwZA7Xb\noSIUoVRDgICDWqjaC46O0L077P8S8kKgcgPk9IKIlmB2QkwnNLs2E7PgACUPJlK850kiWi3G9/3f\nUYZdh3mUROavx53fDn3vaBwTXqH2n09g63UTSuw6hOyOYp2P3L0QEf6i/x/imMeg0yiYdxPklsB3\ni6DdCL89QoCmcWGFzwMHv4TUa+HIr7pW6kaczcM5Eo74w05YCBECfAK0BHKAK6WUVSeQ1QA/4t93\nafQfvafKqTHS+fQuoGjJHziJ7aZ5aNGRovRkqD2K+l3/QDNtNuz8Gg5ugSc/g2ETocdIfz29EYbd\nBzMvh6Mr/Vm+blkJphC8SWk4Nu5GbL0Tqdfjm3grrrKHUKoXodeuo3htKu4aM7HXTsDS8y5cT16M\nYUAIhO6lul80hy0X0THkLkjqgpASNraChjI48iNY6iFuPMQnQ2UB5B8BbRvoFA6vAOV2eO/v0KY9\nhMTgLSghyHU9B0ND2D0onCEaK8pX2cjneqJsWwkjD6N4jf7PMjUV47sL/fY9mQaL1uN5ugd1Rgj8\nYSuU/RvG3gYtO0GrdjDoapj39PE/17pC6D0N2l0J2+ed3nek8qfidMIRjwDLpJQpwIrG8om4F9hD\nExIcqzQfEh/bIopY0xYCCGY4k2hFV9wZr2PYWQn2arhgLAgHPLEAqkvhsdHw+CX+5ENCwE0fgLRB\n9ACcDVr2334nJWu3YF++AvvXX1AstVSvWoXP4UTT+ja0veeReKeeNv8YhGXkU+TVvod2iBHRYxqU\nP8CGjEnkdhuA0qrLz4pqBez/T+OodWuoOAyGEOhzN0z4FG5aCkdXQ1kdjNfAN/Pg0gGwNxN3SQkB\nEf3o83kkDq2X6vlTkFESH4/AwLlgCEGYjxMe6JMEye2pj29JTbAXHnobfF54YZJ/92y3HVqlwITp\n/mx4v8YYAv2e/O15lb88pxOOuAT4aUnPbGAVx3HEQog4YCTwLHD/adxP5SzQ2XAVXX61L6Ez+2us\nReEQ185/oqHKHxIZdTsYzLDhC5j5N7jzFTAFwuTF8NEkDONiafXW2/heKcaZPpmAJR8R2j0Vrp8E\nmmMGoeR8ZOE7bM77G+WRPSm+8HEuaOgMuQ/TIiSMwvor8Jk9KA25ENAK2uVBj8nw9RcQ2h+6BoFt\n4s/X278Kqhxwe1fomAnxD4LWBk/fi+/SSWgTkrDtzKbXtY9zOPRqOul7IHXOk4cFOgyAKxqIra/C\nVVQOXgeMuxMyNsBTE0G3GhKGQJ/Jx6+vP0m+B5W/NKfTE46UUhY3HhdzzL5Kv+IV4EHAdxr3UjkL\nCBT/kuNjcLCZht4+vFOm/Xyy3QDIWuM/vvB6eOJTeGAWmBrzV8SlweB7YOFUNBWH0bVsg2VgX8Ss\nBWALg1vHQeZOOLgPgHxRyesxidRGjWPY1scorZhHrrkcNpdhzTtK3JEVKFuvhdWdIHMKRLwLpmsg\nzAnaH2Hl6/5cu+AfDPv2dbhnE7SJgeSnoU1HeOo1+Hg1lUu+wJmdDT4fIfY4At3RVD30OEJ3zPSw\n42HuBAOjUHRByL4vgL5x/nWHXvD4bCiKhDkfHr8XrHKOcm6MzJ20JyyEWAZEHeetaccWpJRSCPGb\nUIMQYhRQIqXcLoQYeCplxo0b99/jdu3a0b59+1NV+UOsW7fujFy3OTlTNpmDj9JhgJ5FG8G70x/L\njC06TMcFz7Gy56PYjbbj1tO7ahm58W2O7tiMgg/jruGs7uxPPKPrfTF97rmB4MIjzHxzKlXRobTO\n0FPq9LFWfwWJlT/yXefX6Jw8iIj89Wzcfxl7G+qJ1gbhyXRQm/Evqrwt6OaNp8zWigssG/DMjWOn\n8wq8VUaEDOfw0o0YvANxrQtErvs5BpuwM4OGBgcObQmb589H6i/BlD+D+q09kfYTx2oNSi0dQhZy\nuLAfFVoL/PhL2TYt+pC48wcK7ruCXb2uPOln+mdsf3Bm7dqzZw979+79H1/1zIzMCSGewr9xZGnj\nqUellEtPWEFK+YdeQBYQ1XgcDWQdR+bvQB6QjX+P2HpgzgmuJ88Wc+fOPWv3OlucKZvcslBW+d76\n5cn8vVJOMEpZknPyyoX7pHxxiJQr3pDy6Z7/Pb1N5sg1GfPluhkTZfXUm6RsqP9N1VpflZxvf01u\neu5KKZfP+u21vW4pP0uQcuM9UpZMl/LNdCmfjZDyFrOUBVknVKng0UelMztbyinX+C8jnXK9vENu\nk0+e3BYppTxw9all9u+Q0uU8qcifsf1JeXbtavQXp+O/JFT/jlfT7wc8CdzfVPnTiQkvAW4AXmj8\nu+g4Dn4qMBVACDEAmCKlnHAa91Q5y2gII0hM/OXJ2LZw9XPgPcVjWlQK3PeNf9FGZQEAWRTyOitI\nSYviwbT3UDh+HNYirPQzjuHTy6vp9uUKRIchEHHMVu6KFtrfB4oOLKlwtRXmLPLv4hx14pwLYXff\njS46GgwmsDegmMy04y4yeeXktnjrweeE+m0Q0OXEcskdT34dlXMI+5m8eJPnHZ5OTPh54EIhxH5g\ncGMZIUSMEOKrE9RRZ0ecZwi0CAy/fWP4PWBrwrbqWh0EhsLoaXjwUUE9/8dYHmLECR3wT8QQj6kk\niC03XAZzpkD9r2ZAJt8E4b1AEwwN82HAlXDLZycdYNNFR4PH449NZ+0AIJj2tOdevLhOrIxQoG4j\nVJ34qVLlfOOMxoTvFkLsFEK8K4QIPpngH3bCUsoKKeVQKWWKlHKYbJwjLKUskFJefBz51VLKS/7o\n/VTOMRTFPzOiqehNaFHoTWviCPnNAOCJCMwJpdZmoiosAPloN/AdM76rs0BoJ0AB5yZoN7Bpumg0\nsHIJfDbrv6dspKFBf+I6igliHwN9bNPuoXIe8MfXLQshlgkhMo7zugR4E0gEOuEPw758Mi3UFXMq\n5zyDGMHyoRn03bYC84GN0Kb3LwX0aRB4mz9PQ1MQAq647eftg5pK+C3gPPz76qicw/zxWQ9Sygub\nIieEeAf44mQyau4IlXMeBQ1Bcb158+/jqHEWHF/INh2U48/UOC5jJ0KXPr9TET2Y2p5aTuU84cxk\n8BFCRB9TvBTIOJm82hNWOS/oyQBiLC04kF5E1+MJaMJ/3wWtNv9L5S/MGZv/+4IQohP+MbBs4PaT\nCatOWOW8oQWJxNOyudVQ+dNwZmZH/N4ZYKoTVjmvEGoETeV/xrmRRk11wioqKn9Rzo0l5qoTVlFR\n+Yui9oRVVFRUmhG1J6yioqLSjKg9YRUVFZVmRO0Jq6ioqDQjZzSBT5NRnbCKispfFLUnrKKiotKM\nqDFhFRUVlWZE7Qk3G3v27GluFf7n/Bltgj+nXX9Gm+B8tEvtCTcb//u9qpqfP6NN8Oe0689oE5yP\ndqk9YRUVFZVmRO0Jq6ioqDQj58YUNdG4O2izI4Q4NxRRUVE5L5BSNnkzzV/zR/zN6dzvpLqcK05Y\nRUVF5a+ImpxVRUVFpRlRnbCKiopKM/Knd8JCiJDG7an3CyG+E0IEn0RWI4TYLoQ46e6o5wJNsUsI\nES+EWCmEyBRC7BZC3NMcup4KIcRFQogsIcQBIcTDJ5D5V+P7O4UQnc+2jn+EU9klhBjfaM8uIcQ6\nIUR6c+j5e2nK99Uo100I4RFCXHY29Tvf+NM7YeARYJmUMgVY0Vg+EfcCe/Bv0Heu0xS73MB9UspU\noCcwWQjR7izqeEqEEBrgdeAioD1wza91FEKMBFpLKZOB24A3z7qiv5Om2AUcBvpLKdOBp4G3z66W\nv58m2vWT3AvAUuCMDGj9WfgrOOFLgNmNx7OBsccTEkLEASOBdzg/Gs0p7ZJSFkkpdzQe1wF7gZiz\npmHT6A4clFLmSCndwHxgzK9k/murlHITECyEiDy7av5uTmmXlHKDlLK6sbgJiDvLOv4RmvJ9AdwN\nLABKz6Zy5yN/BSccKaUsbjwuBk70430FeBDwnRWtTp+m2gWAECIB6Iz/x34uEQvkHVPObzx3Kplz\n3WE1xa5juRn4+oxq9L/hlHYJIWLxO+afnljOhyfLZuNPsVhDCLEMiDrOW9OOLUgp5fHmBwohRgEl\nUsrtQoiBZ0bL38/p2nXMdSz4eyX3NvaIzyWa+gP99dPJuf7DbrJ+QohBwE1AnzOnzv+Mptj1KvBI\nY7sUnB9Pls3Gn8IJSykvPNF7QohiIUSUlLJICBENlBxHrDdwSWPs0QgECSHmSCknnCGVm8T/wC6E\nEDpgIfCRlHLRGVL1dDgKxB9TjsffuzqZTFzjuXOZpthF42DcLOAiKWXlWdLtdGiKXV2B+X7/Sxgw\nQgjhllIuOTsqnl/8FcIRS4AbGo9vAH7jiKSUU6WU8VLKROBq4PvmdsBN4JR2NfZC3gX2SClfPYu6\n/R5+BJKFEAlCCD1wFX7bjmUJMAFACNETqDomFHOuckq7hBAtgM+B66SUB5tBxz/CKe2SUiZJKRMb\nf08LgDtUB3xi/gpO+HngQiHEfmBwYxkhRIwQ4qsT1DnXH3WhaXb1Aa4DBjVOvdsuhLioedQ9PlJK\nD3AX8C3+mSmfSCn3CiFuF0Lc3ijzNXBYCHEQ+DdwZ7Mp3ESaYhfwBGAD3mz8bjY3k7pNpol2qfwO\n1GXLKioqKs3IX6EnrKKionLOojphFRUVlWZEdcIqKioqzYjqhFVUVFSaEdUJq6ioqDQjqhNWUVFR\naUZUJ6yioqLSjKhOWEVFRaUZ+X/cacw9dGWH1wAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1113,7 +1123,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.9" + "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 2f32f3d9a..9460b8c32 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -342,7 +342,18 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Run openmc in plotting mode\n", "executor = openmc.Executor()\n", @@ -358,7 +369,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB98JFQMZGiFPL70AAALKSURBVGje7dpLcqQwDAbgHHE2\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/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDktMjFUMTA6MDg6\nNTcrMDc6MDALr51VAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTA5LTIxVDEwOjA4OjU3KzA3OjAw\nevIl6QAAAABJRU5ErkJggg==\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\nMTUtMTAtMDJUMjM6NDg6NTQtMDQ6MDDJCXMCAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAy\nVDIzOjQ4OjU0LTA0OjAwuFTLvgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -387,13 +398,12 @@ "cell_type": "code", "execution_count": 15, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()\n", - "tallies_file.tallies = []" + "tallies_file = openmc.TalliesFile()" ] }, { @@ -569,8 +579,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", - " Git SHA1: b167d70c877c516deca785801b9fa6f53fb0985b\n", - " Date/Time: 2015-09-21 10:25:26\n", + " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", + " Date/Time: 2015-10-02 23:48:55\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -625,20 +636,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 9.1800E-01 seconds\n", - " Reading cross sections = 6.5800E-01 seconds\n", - " Total time in simulation = 1.7037E+01 seconds\n", - " Time in transport only = 1.7024E+01 seconds\n", - " Time in inactive batches = 2.8600E+00 seconds\n", - " Time in active batches = 1.4177E+01 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", + " Total time for initialization = 5.7300E-01 seconds\n", + " Reading cross sections = 1.2700E-01 seconds\n", + " Total time in simulation = 2.1409E+01 seconds\n", + " Time in transport only = 2.1383E+01 seconds\n", + " Time in inactive batches = 2.7630E+00 seconds\n", + " Time in active batches = 1.8646E+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 = 0.0000E+00 seconds\n", " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 1.7971E+01 seconds\n", - " Calculation Rate (inactive) = 4370.63 neutrons/second\n", - " Calculation Rate (active) = 2645.13 neutrons/second\n", + " Total time elapsed = 2.1994E+01 seconds\n", + " Calculation Rate (inactive) = 4524.07 neutrons/second\n", + " Calculation Rate (active) = 2011.16 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -746,13 +757,6 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -767,9 +771,8 @@ "" ], "text/plain": [ - " nuclide score mean std. dev.\n", - "bin \n", - "0 total (nu-fission / absorption) 1.046353 0.00935" + " nuclide score mean std. dev.\n", + "0 total (nu-fission / absorption) 1.046353 0.00935" ] }, "execution_count": 26, @@ -809,22 +812,17 @@ " \n", " \n", " \n", + " energy [MeV]\n", " nuclide\n", " score\n", " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", + " (0.0e+00 - 6.2e-01)\n", " total\n", " absorption\n", " 0.95873\n", @@ -835,9 +833,8 @@ "" ], "text/plain": [ - " nuclide score mean std. dev.\n", - "bin \n", - "0 total absorption 0.95873 0.00774" + " energy [MeV] nuclide score mean std. dev.\n", + "0 (0.0e+00 - 6.2e-01) total absorption 0.95873 0.00774" ] }, "execution_count": 27, @@ -880,13 +877,6 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -901,9 +891,8 @@ "" ], "text/plain": [ - " nuclide score mean std. dev.\n", - "bin \n", - "0 total nu-fission 1.091622 0.011163" + " nuclide score mean std. dev.\n", + "0 total nu-fission 1.091622 0.011163" ] }, "execution_count": 28, @@ -949,20 +938,11 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", - " 0.0e+00 - 6.2e-01\n", + " (0.0e+00 - 6.2e-01)\n", " 10000\n", " total\n", " absorption\n", @@ -975,8 +955,7 @@ ], "text/plain": [ " energy [MeV] cell nuclide score mean std. dev.\n", - "bin \n", - "0 0.0e+00 - 6.2e-01 10000 total absorption 0.802012 0.006609" + "0 (0.0e+00 - 6.2e-01) 10000 total absorption 0.802012 0.006609" ] }, "execution_count": 29, @@ -1014,27 +993,16 @@ " \n", " \n", " energy [MeV]\n", - " cell\n", " nuclide\n", " score\n", " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", - " 0.0e+00 - 6.2e-01\n", - " 10000\n", + " (0.0e+00 - 6.2e-01)\n", " total\n", " (nu-fission / absorption)\n", " 1.246604\n", @@ -1045,13 +1013,8 @@ "" ], "text/plain": [ - " energy [MeV] cell nuclide score mean \\\n", - "bin \n", - "0 0.0e+00 - 6.2e-01 10000 total (nu-fission / absorption) 1.246604 \n", - "\n", - " std. dev. \n", - "bin \n", - "0 0.011825 " + " energy [MeV] nuclide score mean std. dev.\n", + "0 (0.0e+00 - 6.2e-01) total (nu-fission / absorption) 1.246604 0.011825" ] }, "execution_count": 30, @@ -1087,22 +1050,17 @@ " \n", " \n", " \n", + " energy [MeV]\n", " nuclide\n", " score\n", " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", + " (0.0e+00 - 6.2e-01)\n", " total\n", " (((absorption * nu-fission) * absorption) * (n...\n", " 1.046353\n", @@ -1113,13 +1071,11 @@ "" ], "text/plain": [ - " nuclide score mean \\\n", - "bin \n", - "0 total (((absorption * nu-fission) * absorption) * (n... 1.046353 \n", + " energy [MeV] nuclide \\\n", + "0 (0.0e+00 - 6.2e-01) total \n", "\n", - " std. dev. \n", - "bin \n", - "0 0.01894 " + " score mean std. dev. \n", + "0 (((absorption * nu-fission) * absorption) * (n... 1.046353 0.01894 " ] }, "execution_count": 31, @@ -1179,87 +1135,78 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " (U-238 / total)\n", " (nu-fission / flux)\n", - " 0.000001\n", + " 6.641746e-07\n", " 6.859257e-09\n", " \n", " \n", " 1\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " (U-238 / total)\n", " (scatter / flux)\n", - " 0.209986\n", + " 2.099861e-01\n", " 1.966887e-03\n", " \n", " \n", " 2\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " (U-235 / total)\n", " (nu-fission / flux)\n", - " 0.355667\n", + " 3.556665e-01\n", " 3.717881e-03\n", " \n", " \n", " 3\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " (U-235 / total)\n", " (scatter / flux)\n", - " 0.005555\n", + " 5.554650e-03\n", " 5.218094e-05\n", " \n", " \n", " 4\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " (U-238 / total)\n", " (nu-fission / flux)\n", - " 0.007165\n", + " 7.165057e-03\n", " 5.625590e-05\n", " \n", " \n", " 5\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " (U-238 / total)\n", " (scatter / flux)\n", - " 0.227653\n", + " 2.276535e-01\n", " 8.544314e-04\n", " \n", " \n", " 6\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " (U-235 / total)\n", " (nu-fission / flux)\n", - " 0.008089\n", + " 8.089493e-03\n", " 5.080374e-05\n", " \n", " \n", " 7\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " (U-235 / total)\n", " (scatter / flux)\n", - " 0.003370\n", + " 3.370111e-03\n", " 1.361116e-05\n", " \n", " \n", @@ -1267,27 +1214,25 @@ "" ], "text/plain": [ - " cell energy [MeV] nuclide score mean \\\n", - "bin \n", - "0 10000 0.0e+00 - 6.3e-07 (U-238 / total) (nu-fission / flux) 0.000001 \n", - "1 10000 0.0e+00 - 6.3e-07 (U-238 / total) (scatter / flux) 0.209986 \n", - "2 10000 0.0e+00 - 6.3e-07 (U-235 / total) (nu-fission / flux) 0.355667 \n", - "3 10000 0.0e+00 - 6.3e-07 (U-235 / total) (scatter / flux) 0.005555 \n", - "4 10000 6.3e-07 - 2.0e+01 (U-238 / total) (nu-fission / flux) 0.007165 \n", - "5 10000 6.3e-07 - 2.0e+01 (U-238 / total) (scatter / flux) 0.227653 \n", - "6 10000 6.3e-07 - 2.0e+01 (U-235 / total) (nu-fission / flux) 0.008089 \n", - "7 10000 6.3e-07 - 2.0e+01 (U-235 / total) (scatter / flux) 0.003370 \n", + " cell energy [MeV] nuclide score \\\n", + "0 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (nu-fission / flux) \n", + "1 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (scatter / flux) \n", + "2 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (nu-fission / flux) \n", + "3 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (scatter / flux) \n", + "4 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (nu-fission / flux) \n", + "5 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (scatter / flux) \n", + "6 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (nu-fission / flux) \n", + "7 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (scatter / flux) \n", "\n", - " std. dev. \n", - "bin \n", - "0 6.859257e-09 \n", - "1 1.966887e-03 \n", - "2 3.717881e-03 \n", - "3 5.218094e-05 \n", - "4 5.625590e-05 \n", - "5 8.544314e-04 \n", - "6 5.080374e-05 \n", - "7 1.361116e-05 " + " mean std. dev. \n", + "0 6.641746e-07 6.859257e-09 \n", + "1 2.099861e-01 1.966887e-03 \n", + "2 3.556665e-01 3.717881e-03 \n", + "3 5.554650e-03 5.218094e-05 \n", + "4 7.165057e-03 5.625590e-05 \n", + "5 2.276535e-01 8.544314e-04 \n", + "6 8.089493e-03 5.080374e-05 \n", + "7 3.370111e-03 1.361116e-05 " ] }, "execution_count": 33, @@ -1416,21 +1361,12 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " U-238\n", " nu-fission\n", " 0.000002\n", @@ -1439,7 +1375,7 @@ " \n", " 1\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " U-235\n", " nu-fission\n", " 0.867982\n", @@ -1448,7 +1384,7 @@ " \n", " 2\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " U-238\n", " nu-fission\n", " 0.082801\n", @@ -1457,7 +1393,7 @@ " \n", " 3\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " U-235\n", " nu-fission\n", " 0.093484\n", @@ -1468,12 +1404,11 @@ "" ], "text/plain": [ - " cell energy [MeV] nuclide score mean std. dev.\n", - "bin \n", - "0 10000 0.0e+00 - 6.3e-07 U-238 nu-fission 0.000002 1.284890e-08\n", - "1 10000 0.0e+00 - 6.3e-07 U-235 nu-fission 0.867982 7.022256e-03\n", - "2 10000 6.3e-07 - 2.0e+01 U-238 nu-fission 0.082801 6.087096e-04\n", - "3 10000 6.3e-07 - 2.0e+01 U-235 nu-fission 0.093484 5.275039e-04" + " cell energy [MeV] nuclide score mean std. dev.\n", + "0 10000 (0.0e+00 - 6.3e-07) U-238 nu-fission 0.000002 1.284890e-08\n", + "1 10000 (0.0e+00 - 6.3e-07) U-235 nu-fission 0.867982 7.022256e-03\n", + "2 10000 (6.3e-07 - 2.0e+01) U-238 nu-fission 0.082801 6.087096e-04\n", + "3 10000 (6.3e-07 - 2.0e+01) U-235 nu-fission 0.093484 5.275039e-04" ] }, "execution_count": 37, @@ -1509,21 +1444,12 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", " 10002\n", - " 1.0e-08 - 1.1e-07\n", + " (1.0e-08 - 1.1e-07)\n", " H-1\n", " scatter\n", " 4.620525\n", @@ -1532,7 +1458,7 @@ " \n", " 1\n", " 10002\n", - " 1.1e-07 - 1.2e-06\n", + " (1.1e-07 - 1.2e-06)\n", " H-1\n", " scatter\n", " 2.036841\n", @@ -1541,7 +1467,7 @@ " \n", " 2\n", " 10002\n", - " 1.2e-06 - 1.3e-05\n", + " (1.2e-06 - 1.3e-05)\n", " H-1\n", " scatter\n", " 1.659916\n", @@ -1550,7 +1476,7 @@ " \n", " 3\n", " 10002\n", - " 1.3e-05 - 1.4e-04\n", + " (1.3e-05 - 1.4e-04)\n", " H-1\n", " scatter\n", " 1.861546\n", @@ -1559,7 +1485,7 @@ " \n", " 4\n", " 10002\n", - " 1.4e-04 - 1.5e-03\n", + " (1.4e-04 - 1.5e-03)\n", " H-1\n", " scatter\n", " 2.049664\n", @@ -1568,7 +1494,7 @@ " \n", " 5\n", " 10002\n", - " 1.5e-03 - 1.6e-02\n", + " (1.5e-03 - 1.6e-02)\n", " H-1\n", " scatter\n", " 2.162157\n", @@ -1577,7 +1503,7 @@ " \n", " 6\n", " 10002\n", - " 1.6e-02 - 1.7e-01\n", + " (1.6e-02 - 1.7e-01)\n", " H-1\n", " scatter\n", " 2.224496\n", @@ -1586,7 +1512,7 @@ " \n", " 7\n", " 10002\n", - " 1.7e-01 - 1.9e+00\n", + " (1.7e-01 - 1.9e+00)\n", " H-1\n", " scatter\n", " 1.997585\n", @@ -1595,7 +1521,7 @@ " \n", " 8\n", " 10002\n", - " 1.9e+00 - 2.0e+01\n", + " (1.9e+00 - 2.0e+01)\n", " H-1\n", " scatter\n", " 0.373472\n", @@ -1606,17 +1532,16 @@ "" ], "text/plain": [ - " cell energy [MeV] nuclide score mean std. dev.\n", - "bin \n", - "0 10002 1.0e-08 - 1.1e-07 H-1 scatter 4.620525 0.038249\n", - "1 10002 1.1e-07 - 1.2e-06 H-1 scatter 2.036841 0.013203\n", - "2 10002 1.2e-06 - 1.3e-05 H-1 scatter 1.659916 0.010107\n", - "3 10002 1.3e-05 - 1.4e-04 H-1 scatter 1.861546 0.013328\n", - "4 10002 1.4e-04 - 1.5e-03 H-1 scatter 2.049664 0.008215\n", - "5 10002 1.5e-03 - 1.6e-02 H-1 scatter 2.162157 0.010245\n", - "6 10002 1.6e-02 - 1.7e-01 H-1 scatter 2.224496 0.013796\n", - "7 10002 1.7e-01 - 1.9e+00 H-1 scatter 1.997585 0.009161\n", - "8 10002 1.9e+00 - 2.0e+01 H-1 scatter 0.373472 0.003922" + " cell energy [MeV] nuclide score mean std. dev.\n", + "0 10002 (1.0e-08 - 1.1e-07) H-1 scatter 4.620525 0.038249\n", + "1 10002 (1.1e-07 - 1.2e-06) H-1 scatter 2.036841 0.013203\n", + "2 10002 (1.2e-06 - 1.3e-05) H-1 scatter 1.659916 0.010107\n", + "3 10002 (1.3e-05 - 1.4e-04) H-1 scatter 1.861546 0.013328\n", + "4 10002 (1.4e-04 - 1.5e-03) H-1 scatter 2.049664 0.008215\n", + "5 10002 (1.5e-03 - 1.6e-02) H-1 scatter 2.162157 0.010245\n", + "6 10002 (1.6e-02 - 1.7e-01) H-1 scatter 2.224496 0.013796\n", + "7 10002 (1.7e-01 - 1.9e+00) H-1 scatter 1.997585 0.009161\n", + "8 10002 (1.9e+00 - 2.0e+01) H-1 scatter 0.373472 0.003922" ] }, "execution_count": 38, @@ -1649,7 +1574,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.9" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/openmc/cross.py b/openmc/cross.py index e2281142c..f361313b3 100644 --- a/openmc/cross.py +++ b/openmc/cross.py @@ -14,7 +14,7 @@ TALLY_ARITHMETIC_OPS = ['+', '-', '*', '/', '^'] class CrossScore(object): """A special-purpose tally score used to encapsulate all combinations of two - tally's scores as a outer product for tally arithmetic. + tally's scores as an outer product for tally arithmetic. Parameters ---------- @@ -270,7 +270,6 @@ class CrossFilter(object): self._left_filter = None self._right_filter = None self._binary_op = None - self._num_bins = 0 if left_filter is not None: self.left_filter = left_filter @@ -281,9 +280,6 @@ class CrossFilter(object): if binary_op is not None: self.binary_op = binary_op - if self.left_filter is not None and self.right_filter is not None: - self._num_bins = left_filter.num_bins * right_filter.num_bins - def __hash__(self): return hash((self.left_filter, self.right_filter)) @@ -337,7 +333,10 @@ class CrossFilter(object): @property def num_bins(self): - return self._num_bins + if self.left_filter is not None and self.right_filter is not None: + return self.left_filter.num_bins * self.right_filter.num_bins + else: + return 0 @property def stride(self): @@ -356,11 +355,13 @@ class CrossFilter(object): def left_filter(self, left_filter): cv.check_type('left_filter', left_filter, (Filter, CrossFilter)) self._left_filter = left_filter + self._bins['left'] = left_filter.bins @right_filter.setter def right_filter(self, right_filter): cv.check_type('right_filter', right_filter, (Filter, CrossFilter)) self._right_filter = right_filter + self._bins['right'] = right_filter.bins @binary_op.setter def binary_op(self, binary_op): diff --git a/openmc/filter.py b/openmc/filter.py index 5dbf83fdd..9735d95bb 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -35,7 +35,7 @@ class Filter(object): ---------- type : str The type of the tally filter. - bins : Integral or Iterable of Integral or Iterable of float + bins : Integral or Iterable of Integral or Iterable of Real The bins for the filter num_bins : Integral The number of filter bins @@ -325,8 +325,8 @@ class Filter(object): elif self.type in ['energy', 'energyout']: return np.all(self.bins == other.bins) - for bin in self.bins: - if bin not in other.bins: + for bin in other.bins: + if bin not in self.bins: return False return True @@ -404,7 +404,7 @@ class Filter(object): The zero-based index into the filter's array of bins. The bin index for 'material', 'surface', 'cell', 'cellborn', and 'universe' filters corresponds to the ID in the filter's list of bins. For - 'distribcell' tallies the bin_index necessarily can only be zero + 'distribcell' tallies the bin index necessarily can only be zero since only one cell can be tracked per tally. The bin index for 'energy' and 'energyout' filters corresponds to the energy range of interest in the filter bins of energies. The bin index for 'mesh' @@ -434,22 +434,28 @@ class Filter(object): if self.type == 'mesh': + # Construct 3-tuple of x,y,z cell indices for a 3D mesh if (len(self.mesh.dimension) == 3): nx, ny, nz = self.mesh.dimension x = bin_index / (ny * nz) y = (bin_index - (x * ny * nz)) / nz z = bin_index - (x * ny * nz) - (y * nz) filter_bin = (x, y, z) + + # Construct 2-tuple of x,y cell indices for a 2D mesh else: nx, ny = self.mesh.dimension x = bin_index / ny y = bin_index - (x * ny) filter_bin = (x, y) + # Construct 2-tuple of lower, upper energies for energy(out) filters elif self.type in ['energy', 'energyout']: filter_bin = (self.bins[bin_index], self.bins[bin_index+1]) + # Construct 1-tuple of with the cell ID for distribcell filters elif self.type == 'distribcell': filter_bin = (self.bins[0],) + # Construct 1-tuple with domain ID (e.g., material) for other filters else: filter_bin = (self.bins[bin_index],) @@ -586,8 +592,8 @@ class Filter(object): openmc_geometry = summary.openmc_geometry # Use OpenCG to compute the number of regions - opencg_geometry.initializeCellOffsets() - num_regions = opencg_geometry._num_regions + opencg_geometry.initialize_cell_offsets() + num_regions = opencg_geometry.num_regions # Initialize a dictionary mapping OpenMC distribcell # offsets to OpenCG LocalCoords linked lists @@ -596,7 +602,7 @@ class Filter(object): # Use OpenCG to compute LocalCoords linked list for # each region and store in dictionary for region in range(num_regions): - coords = opencg_geometry.findRegion(region) + coords = opencg_geometry.find_region(region) path = opencg.get_path(coords) cell_id = path[-1] diff --git a/openmc/mesh.py b/openmc/mesh.py index 7c2a62583..e410c9910 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -151,7 +151,7 @@ class Mesh(object): @name.setter def name(self, name): if name is not None: - check_type('name for mesh ID="{0}"'.format(self._id), + cv.check_type('name for mesh ID="{0}"'.format(self._id), name, basestring) self._name = name else: diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index a989d27e9..9b85e9bfc 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -24,7 +24,7 @@ class EnergyGroups(object): Attributes ---------- - group_edges : NumPy array + group_edges : ndarray The energy group boundaries [MeV] num_groups : Integral The number of energy groups @@ -57,6 +57,20 @@ class EnergyGroups(object): else: return existing + def __eq__(self, other): + if not isinstance(other, EnergyGroups): + return False + elif self.group_edges != other.group_edges: + return False + else: + return True + + def __ne__(self, other): + return not self == other + + def __hash__(self): + return hash(tuple(self.group_edges)) + @property def group_edges(self): return self._group_edges @@ -72,20 +86,6 @@ class EnergyGroups(object): self._group_edges = np.array(edges) self._num_groups = len(edges)-1 - def __eq__(self, other): - if not isinstance(other, EnergyGroups): - return False - elif self.group_edges != other.group_edges: - return False - else: - return True - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash(tuple(self.group_edges)) - def generate_bin_edges(self, start, stop, num_groups, spacing='linear'): """Generate equally or logarithmically-spaced energy group boundaries. @@ -97,8 +97,8 @@ class EnergyGroups(object): The highest energy in MeV num_groups : Integral The number of energy groups - spacing : str - The spacing between groups ('linear' or 'logarithmic') + spacing : {'linear', 'logarithmic'} + The spacing between groups """ @@ -107,15 +107,15 @@ class EnergyGroups(object): cv.check_type('number of groups', num_groups, Integral) cv.check_type('spacing', spacing, basestring) cv.check_greater_than('first edge', start, 0, True) - cv.check_greater_than('first edge', stop, start, False) + cv.check_greater_than('last edge', stop, start, False) cv.check_greater_than('number of groups', num_groups, 0) cv.check_value('spacing', spacing, ('linear', 'logarithmic')) if spacing == 'linear': - self.group_edges = np.linspace(start, stop, num_groups+1) + self.group_edges = np.linspace(start, stop, num_groups + 1) elif spacing == 'logarithmic': self.group_edges = \ - np.logspace(np.log10(start), np.log10(stop), num_groups+1) + np.logspace(np.log10(start), np.log10(stop), num_groups + 1) self._num_groups = num_groups @@ -189,7 +189,7 @@ class EnergyGroups(object): Returns ------- ndarray - The NumPy array indices for each energy group of interest + The ndarray array indices for each energy group of interest Raises ------ diff --git a/openmc/statepoint.py b/openmc/statepoint.py index f58994b8c..5f0b5adbd 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -544,7 +544,7 @@ class StatePoint(object): contains_filters = False for test_filter in test_tally.filters: - if filter.is_subset(test_filter): + if test_filter.is_subset(filter): contains_filters = True break From 7bc104b21b8afc043ff7ad1a4afa9c17fbe03a47 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 00:08:16 -0400 Subject: [PATCH 70/91] Simplified EnergyGroups.get_condensed_groups(...) routine --- openmc/mgxs/groups.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index 9b85e9bfc..f0adc5101 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -227,11 +227,11 @@ class EnergyGroups(object): ---------- coarse_groups : Iterable of 2-tuple The energy groups of interest - a list of 2-tuples, each directly - corresponding to one of the new coarse groups. The values in the - 2-tuples are upper/lower energy groups used to construct a new - coarse group. For example, if [(1,2), (2,4)] was used as the coarse - groups, fine groups 1 and 2 would be merged into coarse group 1 - while fine groups 3 and 4 would be merged into coarse group 2. + corresponding to one of the new coarse groups. The values in the + 2-tuples are upper/lower energy groups used to construct a new + coarse group. For example, if [(1,2), (2,4)] was used as the coarse + groups, fine groups 1 and 2 would be merged into coarse group 1 + while fine groups 3 and 4 would be merged into coarse group 2. Returns ------- @@ -255,9 +255,7 @@ class EnergyGroups(object): cv.check_less_than('lower group', group[0], group[1], False) # Compute the group indices into the coarse group - group_bounds = list() - for group in coarse_groups: - group_bounds.append(group[0]) + group_bounds = [group[0] for group in coarse_groups] group_bounds.append(coarse_groups[-1][1]) # Determine the indices mapping the fine-to-coarse energy groups From 9c9eb446a103f815bd30a1e0acaa7f679c6a209d Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 00:48:14 -0400 Subject: [PATCH 71/91] Cleaning up docstrings for new tally arithmetic routines in tallies.py --- .../examples/pandas-dataframes.ipynb | 42 +-- .../pythonapi/examples/post-processing.ipynb | 44 +-- .../pythonapi/examples/tally-arithmetic.ipynb | 28 +- openmc/statepoint.py | 26 +- openmc/summary.py | 2 +- openmc/tallies.py | 303 +++++++++++------- 6 files changed, 252 insertions(+), 193 deletions(-) diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 34bb533cd..f84e9ec1a 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -385,7 +385,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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDAwOjAx\nOjMxLTA0OjAw4140mAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QwMDowMTozMS0wNDow\nMJIDjCQAAAAASUVORK5CYII=\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDAwOjQ2\nOjE5LTA0OjAwwJEVeQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QwMDo0NjoxOS0wNDow\nMLHMrcUAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -575,7 +575,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 00:01:31\n", + " Date/Time: 2015-10-03 00:46:19\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -643,20 +643,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.9000E-01 seconds\n", - " Reading cross sections = 1.2900E-01 seconds\n", - " Total time in simulation = 1.4684E+01 seconds\n", - " Time in transport only = 1.4653E+01 seconds\n", - " Time in inactive batches = 1.7680E+00 seconds\n", - " Time in active batches = 1.2916E+01 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", + " Total time for initialization = 3.9600E-01 seconds\n", + " Reading cross sections = 9.0000E-02 seconds\n", + " Total time in simulation = 1.2458E+01 seconds\n", + " Time in transport only = 1.2445E+01 seconds\n", + " Time in inactive batches = 1.2760E+00 seconds\n", + " Time in active batches = 1.1182E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-03 seconds\n", " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 2.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 = 1.5286E+01 seconds\n", - " Calculation Rate (inactive) = 7070.14 neutrons/second\n", - " Calculation Rate (active) = 2903.38 neutrons/second\n", + " Total time elapsed = 1.2865E+01 seconds\n", + " Calculation Rate (inactive) = 9796.24 neutrons/second\n", + " Calculation Rate (active) = 3353.60 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1086,7 +1086,7 @@ "data": { "image/png": "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\nBPCvjMC6bD6xSh4AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1109,7 +1109,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1120,7 +1120,7 @@ "data": { "image/png": "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\nefX/AdmeWI23zkQnAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2325,7 +2325,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2336,7 +2336,7 @@ "data": { "image/png": "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\norlkyRKeP3+erVp1IWCgqI78DIFVDAuLossVo41pQ4rqwy2ZmHgjbbYuFKvqVlBVI1i3bnMajRMo\nZofbaLNF+F0sBAtI4yGNR2kSSvozMzO5Zs0aLlmyxFtp9Vr1d+p0K4HV9ATQgXrU6XoQeJ6KUpuT\nJz9T+EEoTugNG7amw5FIp7Mbw8NjvUUbe/S4g6Jib87VvO+Vty8e/WFh0QS20RPstdsT+eGHH+bZ\nfvPmzbTbI+l01qfVGsYFCxbx6aefZnh4RZrN5Vi/fjMeOnTIu/2MGTNoMPhWEn6Fwp1zG1W1OgcO\nHMLGjdvSZqtB4f6qR1Ep+B1GR1fzHmfQoH9RBNQ9x9nJ6OjqHDz4Ier1U7TnXtBmEdna1buFgIF3\n331/ntldcnIyq1evR5OpEnW6kVTVBD722JMFjvfp06dpt0dSuKNI4FM6nVH866+/Cv1fpaamagH5\ntfQ013I6b+XUqVO928yf/xLNZjtVNZ7h4bHctWuX9n/0XTDxGZs06cixY59gtWpN2Lx5F37zzTdM\nSUlhixadaTCYGB5eievWrStUUyCANB6hbTwkocWQIcNpNI7TTgbrKPzkHjdOCo1Ga5FWy0yfPkOr\ntOqpwjuPN97YgyS5ePF/tF7tRyiqurbnlCkFNzM6cuQIq1Spr13lhtFqrcpu3frmWVKbkZGhXUF7\nakMdpF7vok7XjqKrYWMCbVmhQrw3nrN//35tietSAl9RUdry3nvv56pVq7h161a63W5mZmZy8uTJ\ntFq7Myf/xU293uTN5J816wXabN00N46bJtNY3nrrXdoJdixFwPlhiuCzZzx3sly52AI/d3Z2Nleu\nXMlp06YV2nHw66+/ptOZ6HMiJ53O+oW23RVFJQdTLCvvps3Q3qaiVMxTBTctLY0HDx70xnPuvXeY\nj2EkdboF7Nbt9qu+V0kCaTyk8ZCUHCdOnGB0dDXa7T1osTQh0NXnhJRJo9FapFav9933EP0bS33P\nuLi6JMVJZOLEKbTZXLRY7HzwwVFXNUgJCU1pMEzTTtxfetu65ubo0aNUlGif9/yGQGXm5FecI+Ck\n3d6aGzdu9O63fft2tmnTnbVrt+SkSc/kuxJo69atVNUqFKu1xFV2eHis94R45coVdu9+G222GNrt\nNVizZmOePHmSnTr1pEgMbEaxuEClwdCLOt0TVJQYLl/+Zp73uh6OHDmi9WPxFMg8SoslLE/9sNx8\n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\nRCKRSCSB5/8ByMyfADZGvh4AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2363,7 +2363,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2374,7 +2374,7 @@ "data": { "image/png": "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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 cea483f9d..b9bc809df 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -353,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\nMTUtMTAtMDJUMjM6NTE6MTQtMDQ6MDBw2InyAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAy\nVDIzOjUxOjE0LTA0OjAwAYUxTgAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMDA6Mjg6MjUtMDQ6MDB/woIeAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAwOjI4OjI1LTA0OjAwDp86ogAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -465,7 +465,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-02 23:51:14\n", + " Date/Time: 2015-10-03 00:28:25\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -601,20 +601,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7400E-01 seconds\n", - " Reading cross sections = 1.3400E-01 seconds\n", - " Total time in simulation = 3.5996E+02 seconds\n", - " Time in transport only = 3.5984E+02 seconds\n", - " Time in inactive batches = 1.0821E+01 seconds\n", - " Time in active batches = 3.4914E+02 seconds\n", - " Time synchronizing fission bank = 1.5000E-02 seconds\n", - " Sampling source sites = 7.0000E-03 seconds\n", - " SEND/RECV source sites = 8.0000E-03 seconds\n", - " Time accumulating tallies = 3.4000E-02 seconds\n", - " Total time for finalization = 2.5500E-01 seconds\n", - " Total time elapsed = 3.6081E+02 seconds\n", - " Calculation Rate (inactive) = 4620.64 neutrons/second\n", - " Calculation Rate (active) = 1288.87 neutrons/second\n", + " Total time for initialization = 3.9300E-01 seconds\n", + " Reading cross sections = 8.4000E-02 seconds\n", + " Total time in simulation = 2.4111E+02 seconds\n", + " Time in transport only = 2.4106E+02 seconds\n", + " Time in inactive batches = 8.4970E+00 seconds\n", + " Time in active batches = 2.3262E+02 seconds\n", + " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 3.1000E-02 seconds\n", + " Total time for finalization = 1.6600E-01 seconds\n", + " Total time elapsed = 2.4169E+02 seconds\n", + " Calculation Rate (inactive) = 5884.43 neutrons/second\n", + " Calculation Rate (active) = 1934.51 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -871,7 +871,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -882,7 +882,7 @@ "data": { "image/png": "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\ncPmIaKHPh5wAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -914,7 +914,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1028,7 +1028,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1039,7 +1039,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1090,7 +1090,7 @@ "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWEAAAD7CAYAAAC7dSVGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4FNXawH8z23ez6b1XEkIn9N4FkY6AXeyKHfXaxd4L\nXnsXFFCRJlKk9w4hJISEhPReN8n23Znvj+W7WNArgsjV/T3PeZ6dmVPeM3Pm3TPnvOc94MWLFy9e\nvHjx4sWLFy9evHjx4sWLFy9evHjx4sWLFy9evHjx4sWLFy9evPwpCH+1AP/P4MGD5S1btvzVYnjx\n4uV/gy3AkD+aWAuy7cySNAGBf7S83+KCUcKALMvyeSlozpw5zJkz57yUdb74O9YJ/p71+jvWCc5v\nvQRBgLPTX/IzZxD50ZPFnkV5v4ryz8jUixcvXi50VH+1ACfxKmEvXrz8I7lQlN+FIsd5ZciQIX+1\nCOecv2Od4O9Zr79jneB/r166v1qAk/wjx4S9ePHyv825GBP+8Awi33iy2LMo71f5R/aEvXjx4uVC\nUX7iXy2AFy9evPwVqM4gnIYYYBOQA2QDd/5ROS6UPwMvXrx4Oa+cpfJzAvcAmYAPcABYB+SeZzm8\nePHi5X+TszRRqz4ZANrwKN9IvErYixcvXn4f59BOOB7oBuz5I4m9StiLFy//SM6RiZoPsBi4C0+P\n+IzxKmEvXrz8I/kt5Zd5MvwXVMC3wBfAsj8qh9dO2Mufj6UF1FpQqn95zWmF0t2QNPT8y+Xlf5Zz\nYSe8/QwiDzhZ7I9FAD4HGvBM0P1hvCZqXv58lGp4oB2UZP3yWva3kL/2/Mvk5R+P8gzCaegPXAkM\nBQ6dDKP/qBxevPy5qLWg94e7u0LCOHht+alrBz4Dyf2T6DIywrn6SDMfB0PKucnLy9+Ks5yY2845\n6sR6e8Jezg9j7oOYSNi4EqZ2BYsF2qqh4xToc9tPou4lj1JqT59PW+N/Leo/w1oNW6D0nVMXnA3Q\nsu+P1sDL34yz7AmfM7xK2Mvv53Rj9rIMkv2/p+1/JbxwFHwV0Hocll0CphNQWwpBP+2pJhLBi3zN\nDxxA5mdlfnYHOH+jvG3LcMofI9sK4fDloPqRH25lIGRPA/Ox/y6vl789Z7li7pxxLpTwaOAYcBz4\n12/E6wm4gMnnoEwvfwbF/0U5fTvvl+cEAcoeAstpxnt/jlYHry+EflYo3udRvkW5sH31T6KF4Mcg\nOlFK7c9VMNSegE9nnf4PAeDAOuRja7CqHkT2y4Dgi05dcztBFQInHgFZ+u/yngG1mM5pfl7+fHRn\nEP5MzlYJK4C38CjidOAyoP2vxHsRWMOFZZHh5ce8chu4XKe/tv47mP+jT3t7y6nfPr0huyeYNv52\n/tVfgWkZhI+AZhusmQlOM8x7GsrzfxJ1GoPoRjLf/9z+vd9lYGv7xTjyf1CoEDbvwu3ahhw5EPx7\nIcsyrcXFsPk16Pg1yG7+0wxlGQ7sga2nZJdw4MLy23X5ETacLGDH747v5cLg79IT7gUUAMV41lIv\nAiacJt4deAya686yPC9/Fi4XHNoCa7/85TWnEz56HaLiTp07+AaUndwT0NoeWkZB2TIoP32P2O1u\nhZz7wEcPN/8AYT5QsRpUbujQH7SGn8QXEMggBTcSmRSeujD6ThBFcFhPX4+rHkFV3QF1sYzVX0Ki\nFUEQOPb03bhWP4esjoGA4dCwGlpbYeIwuGE6dOt5sl4b2MtsXPz+HcgWs4c6Wn93fC8XBn+XMeEo\noOxHx+Unz/08zgTg3ZPHXmPgCwXnj3p7disMuxRCfv74AKUSjL7w4kenzoX3hCWjoGQdRHaEXA28\n8jasnP3TtG3VIMtIc8fjFFsxRwUiI8H1OWAWQNoGGWmQffqe5Hj6sJc8qvnRhFy/ibBl7unr5B+C\nEJuEutgHV8OzVLunIWEmeWA7HC2tVCydD5E3QOWH8O6r4B8Ab34KRiMAtneuxlp/AC2ByMiYqPnN\nWygjY0BDX05jgeG1e7+gUSl/f/gzOdvsf08rewN48GRcgd8YjvjxJoFDhgz5n/PU/z+FLMPe56D/\nye0ODUYYdTk0n+ZjZfcW6D3Yo4j/n+jBEDQcqo5C3Ei4eT481hkOb4X1z8GwBz091tzFkL8H1Re5\nWAcnUNv2FWHMRC9qIa0nfLcbgt6CLfkwZNovihYRuYJhfMparmc0OjTQZRy8EAEj7waFzy/lTXcg\nFA1FqTyIXTxMq+U2/Ptraa1J59iCpUSOmIC4sQTSOsH93/40ra2V1M8raZ5dzQ4WkM4Q/Aj71dso\nIFBFMzcz/JcXa1ZA+Ok+DL2cKZs3b2bz5s3nNE/lmWi/XxmlOxecrRKuwONX8/+JwdMb/jEZeIYp\nAIKBMXiGLlb8PLO/4w60FyymE3DoTej1MKj0nnMpXeHbt2HUZZ7j2qNgroPF78Njb/80vbkNtuWD\nQQ2Wy0EfAhMeg7YKaPoK3twNU5+HrI9hfR3UmtBWO4lIvI1S3iRaOxN9SwHE+sBSO8QcgZq9ENbL\nk7/1GGhTobkaQ3EmV53YxZqMEiaY4xBTRkKMEw7OhJ7f/FQuyQWaBsgT0I6/msDmV3DK6xBa2uGb\nMY0O0QmYBncn4PN5oHjTM7G4aglc7JkvPnZ3Fzod7s0q5mOjlXi6/uZttOJAgxLFzz8qZQmO3gdB\nQ0Dl9wcekJcf8/NO2ZNPPnnWeaoUZ53FOeFshyP2Ayl4vAipgen8UrkmAgknw2Lg1tPE8XK+MZ0A\nSQslO0+dC4uBmtJTx4HJsOVV0C6Cwh8tsJBl5G8extW1CanzCOQN14HLCno/8I2Dke/BIAV8MRFq\nKiA5Gq4ahGBrQ7t3C0lf1VFVeRc2UY0z3A6Dr4VyJXx3D7x9MezqB80rPRNwXz0GL47DT2Vk3MLH\nEb+eCF9cBR3uhd15P62TZIbSR0CuAO1RFPVqVLXBYE3G2RIC1TYi1i6lfsw4Gt9/Cop0sPdzmOv5\nGqhmG9YenbGU7SVCTuEibkf4L69INmV0/Ek/5CR168FSAi1HzvDBeDlfKJW/P/ypcpxlehdwO7AW\njwXEx3j8ad588vr7Z5m/lz+LuJGgT4Knb4VnV0F0iqdXKMueIAie5catvaBLMjQWwtdXwID7ILIb\ngsUFU+7H6n8XukwdwjxfUE2DwnIo6INr70qUuCFlGGzfD+P6gX83mLAehVJNYtVBykZ8TL3zCF1z\n1Qi7gxEygaQ98GQzjEzCzUTco69BPeByOPQ8SnsrruRRKLXtYfVyKD0KT3SAlHTkdCvWeCv6OhsU\njoSe6XC4BVXEWPRr36K5ly8h247CR4dIVqkomt6bwNfWe/5gqvwBKORzjPJoGpNrySiIRUgJ/a+3\n8QhlzKDvLy+EjICIKeDb6Rw/OC/nCpXmr5bAw7nQ8atPhh/za8p35jkoz8u5IigC3DVQnO1RwgDB\nkdBQDcERUFEAa7+C77I8StlcD9tfhQ1Pg6BEjnwQhRREw+gC9LvfRX9gAUJiX9h8iN3Jw8m/ui8z\nrDHod5jAtxRaI/7jxMftsqM+Uk1LTwUFQTn4J8UTqpAgpAvoP4PqLHh5K408ht4uo85tpfK6bkT4\nPYLSbxDwDNzbg+am49S7nSTUlCNmaQADbPwa1L4QGo3y/k9wmuciSE7sM1PRFLyN0P5O4h57GPe7\nUxDsoYhxkdgtpZj0ZhzVB+jU/zGEjYsgpfsv71n+Vmg3CAAJCRtO9JzmbXa1gdLXOxRxIXOBOG3w\nrpj7J6PRwXuHYM0n4HJ6zqV0heOZcCILru8FGX08ChhA5wc9p+A2KTEFSOyaP4N/1TQyS+5D45EU\nbP00OMXjyKNtDOjblSHBV/NmUA0NbhuEKGDQHGyY+ZKn+TBmEZbOk1CICiiScXy/DKl8N2Qtg0Fu\noADx9dGEyW/gLPqMvIktCFF90PkNOiX/pQ+y+7beBPvUYk+XILQ3GIZDaD0YjkFdDmXfv4Ey+gZ8\ncs00pWSB5R04+jKKDuOxzdpG6VEt0sBknHMmErytjsGZ3yEcnQ4Fm05v3bDyaWgoAeAEtSTyK71l\nWwXoos/ds/Jy7rlAbNQukP8CL+eNiiKISvD8FtWg1cAlN8PXr0Cf3iDWQn4FyHZoluCmhwGwuGFz\nq4oVFSomtJg4eG1n3OZYpu7YRp/st2mwB9H6ni/Ge6bi7lhGWUkFBpeJ+0ps1EtmqtVqjhtO0Lx6\nIYFfZhJn9yNszkzC9/ki5+yivFlFjU8zwQ49rpQMLGmVKPaU4P/vQZiubCKwPh45oh4nJaiIA0mi\nNvN9NMNkjGlG3PRDuawaWrdB/yGQFoBc7mbblRlcIvdGJc9DdbAGm7s72so34chGDNooRH8dm7JV\nuJ6+nBEvrkUsr8MxsgWlNQLx2F5o3/un968yG9bPhemvcZgSMqRUDtXVcm9DKCoBRvjB3eGgtpaB\n1quEL2guEO13gYjh5byQuQMWvQUvLPQcq7Vw4GZodzuseR8UJyAkForykI9spHnApXwmJrDnOGhE\n6Kn8gceP34K9kx899+5Gb5mP0NaGUukiJLSG4/3j8D/2NaJ1ODFVS9BkLsKuTUfrZ8ZqMLBZHUTf\nMXcTKO/D/OQb2L95i8DoVOy6YsRRLugdQKOxDY0UQ2DhboRuM7DtOYLvVgmhXwW+a5XU974eo/ZG\nfDY72TsmjqHKvrjEZ1Cb70EYtRz5aCt2zQbsdh1acwz5FFHasIcUqS+uTRuoO1BCzMWN0C4FMKEd\nWkVa+/WELt6MonM8aDSwSMaEDf+dyxCSu4JKgyxDsVXCkT6NbSV6Nm86RkFwKKl6P9KqtpHgC0Mi\nQrk8GJQCYCsHXeype19eBJuWQ9d+0KnXX/DwvfyCC8Q6wquE/ylUlsA9E+DKHy2m0IaBjxY29oIZ\nH8FXq2HaB/BVT1rG3MKn4cPo7QOzwmXeEhpxSJ0JLYxH3KhGvH8ePJ+KrbkjBU92IybvANGtIs1+\nAoeT0+keko6maT/WhlSMfp/ir+nEo8IYPmE/H1ws8Yi6P76ffoy8tRX3KH+iOwahqzkOjq7Q2giN\nUN9+A+5xyYR94cIy5DbsI82El6fQUPwgDfvrCIhpjxjYhHisI0LhW1Cbh21sOM7Scgxb/VE2VPDY\n8EdondyDyoPR+PRTE5paDr39wPkt+H6IsHkHEZO+QIzvCrkfge051C4D4u5anPvn8oQqkGJjB1Dq\nibObGNHiZsSJr0nLzCI8opTkZ3dC5kLP18N1KzxWIrY6sJZBQD/Pfd75Hnx5K6T1gbiLfvFo3NJ2\nFOKA89QQvPyHC0T7XSBiePnTaaqFYZNhyMnFAy4naPwgsD9kfAQVS6FHb1j7KTz9OH66TtyLizaj\nxH3UMsVeymCpPXyQBxfHwbUdYVAPtM//QIwji6LOswkv78f3ERH4GCSCjq+Hvl8T8OKDEOYLLVoc\nRz6lX/P7DNlQQ1NQCHWdIwlPLkA/bR6yrKbt35fgExQI0nYaY32x12qIzD4Gs75B98q/aXo8FG3M\nKHyXp7DnkgAGZB1G3ViPOHAR8uCLaDXNQrAXoi0cgDI6FE58g9AuGs1BCfH7NTSLEYjuClR2C2L3\neDgwHcbcgpjSHxk3LmMxyjgFQm0iCk02y266jlur1xCb+y2M7Y/sU4lcm4vgH8DnZTO5df3l5Lw5\nnONXjMFpVTOmYg0+B57A2f5WVC1HQOGHvPZaBFM5jAiA7reDMe0Xj8bpfhWBEEQx9fy2iX86F4h1\nxIXkTMe7vdG5xnEc1CkgSTB7Mjz1ORhPzta/9QCMGQmBcRDQDhzNsP962FYGg5tBdRyTrQtHxUTS\nUeNHGcw7AsZw6FaPpFDTFj8Yo6MerAVIxo6URUSxMdwHl0nNjX73IWiCYXoXGGZBzm9EKm3DNTAM\n52gZddYw1M8vhOsS4bIVIEPhnY+QME6ilZ209OlB9K5QhLB+yG1LcIQPQ7VsPnUBJrQtzdjDFCg7\nWjHm2HANuRR7kg19gQl18hf8ULMWv0MfEyS2I8gaiTa3lEOdu6Ap3Udi7TLk9ToCLjUhSDpklw7b\ncH+snZrR56nRytXwvj+kjcPlb+ZghJV4RwihRdVIV96G5JOHct4OdiRNxV73DkXdk2iJ8eO63Xvw\nqzmKUwXV0f2JqSvFvSMQmzkZw6vvet40pQ9YGkAf9JPHZLEnoRDHolG9ef7byP8o52J7I7nHGZS3\nn7Mt71fxWkf8XbHnQsNznt8r58HQiaDRQo6nNWFtg1eeAXWE51jtD70XQJ9YOBzHKvszfBffnvQk\nJX7Rk2GdHZocoDXhFC/BpW9CU7Ia1u2A/ErEiGp2CH6E1FSRFFRKpvIl5KIdyP71yGsKkEP9EB54\nAFVwGgbDQtTKUZAaCNmR0NIMFbn4tGzCXLCJphQdYYcCsfSOpG6YneoBgUg7HsWSn49UZ2bdLcPJ\nvOYimtJisbX44TCU4LeuEnWxBIcvJc+nnCJtMpUBdrb0c7Lwcj3fjHOx+MZ08kd0o00wIVQLoLZD\nSAuSVIOqzRdtWwIcDvL8KU17EOXxnWR8n8/ylAysAQK8fw2iPYO8lASOD1NxoGE8V677llvWfY8x\n/ygtRgMvjXqWrb0fAe2dWDQjsDdIoPI5qYDrYO8rP3lMsiyjVFyFQhxy3pqGl5NcINYRXiV8ISL9\nDl+3LaVw+ENwO06T3g6Vl5+M1wzzXgGjP6z4HA5u85zvMsDjicz+Iyc+Cg0MWERdx2iiq7cz9oMm\n/J5aDzunQ+IBuETA3k7F8QEliKZOaIL0CH19oNsYXKELcaka2KDqgTb/OFbnBirqrkFOd4BChfh5\nEcLLC3FEKxFWvwPv3gZF9TjDm7GsHk1z2R0YO9qw57ei1abSEnMCteMzjPtWEvZOOYX5I3hx6LMU\nDuyBEOWD0sdEpKsOonvQUqoGZSV0vAhaCrl9+xKiXSUk5pYxsbUTV7V7mzvsg7jm8Hp6NexDlv2R\nGYi8XcI6djD6Ezp8Dnenpu9dWJXpyMbD4K4HgwGFSsHV73zCJyOn4hpgRnjzHmI73s1VO0QmW7NQ\n+9qwpY6jPCCU6uNGmpQC0WY7jJiFq7IGd2XlqZ0+9r0BtT9dQScIAgqxPzLNf6CheDkrFGcQ/kS8\nwxEXIuZWePJWMLfA6GnQww5Na8DQGaLugYJVsOsZaMyHdlN+mtZpgaKj4CuAJhG2bgUJCAkEcxOE\nRECHHuAwgaELNOph5qOn0ltakW6KR+zvALUIB2UoMSO30yINlSHKjax4C2XpBohJg+oPQRfJhgh/\nlO5A/DNLKKwIJb0on2CjkUCjGlGTA8GDIS0cadl8hCwHQnsldEmiVTsG29b9+LYdpvWAGYckETi8\nK9pp06HqcfgogNqOsTTFGghRZFGSGkWyOg7Bfz9qzQgqinYTuaeUoqsuJiV8Ngp1D1i/GMvmG8np\nm06P6gMITSngNuOOqAIpgKIXLehCoomMK0Z4aBLYuiNvehjLlSOo+KaJXQMHMKW+DZ+SXVBpRRY6\nsOfKWRTHbWfaejXur19DNgYjJJxgX1470ntUoAuA7O7JNDT7MXzfFpx19yCFp4HBB/2MGR6b4zU3\nAwKM+elaJkk6hkv6GrXy8T+9af1dOCfDEYPPoDyP19Yfl/cJMBaoBc5qWaR3Yu5CxGCEOe/DrPHw\n3ZdgmQA9O0HtF+A2QeJ9kJYFphLwiQDFya3kS3fB8nvheDHsd0HPNgiyQsjlYNOCowEufRTSu8PB\nByF+Grz5CtRVglYEawPkrUQMNoFxEtTtgHozstlA2eX9sEc5SGpORtH6FMRUQ6EL9yERW2MTCUIo\nQS4z5QMDSO0u4ULmu+tGcfWmJdDogpShsOhDhEQDLiEMZVwdQlArxvB8jDYBhmxEvmc0jYVtOG3+\nKL75CMVmN5UhOt4b+AaP1jzBzohukNoJ3ba5CI06hMYs4lqqoMqJMb+YHaFrGLDkIOK2tehsNqKK\nNXzZ7TIuy16Kok5gzYRnGEsvfLaNx2EyIfjqodAFk/9FY+QR/Ks7kZT3Blkz3KwIgilWGXVtGY7D\n0HPh8xy7bxJzNS3M6pSAougQDqeWMIeMQWFBGalle9hYblxhQgzZgjqqDFtjFwT9SedIggC6IOh6\nk+dYcnjstAFBiEGWy37ZDrz8uZyd9vsU+Ddwmu1mzqcYXs6Oho0QNOz01/QGeHclKFWwcTm8ugqG\n3w3t+kDBfWBWQ7uHTingzOWw6SNIuxQGDYcHPoXgOuTg2xHumgvrvoY3boYCAxQch8bDYCpBbm+C\nR3ogJTYiGJWIcX2Qu7TH5b8L0SqisFoxT4qgrpuKdnmxiKlzYd0mSO6E1D6fJpcaS4CG+tSBJGQf\npN3RUMSCXYiJdhIXvo6stiPbJZy7noCLw1AdrUeZWo+rXRxKXQpCph0GPQOx3dB+dAjdtb1QdBQQ\n1zfzbI/HGV61nqcCvsJ+aC/Bk96iY9kWhAFLkOQF2H0TkWr2ojJUElqoQlW1hFqHk9COXbDWJxNq\n2UtavZn3O1zFbdvdSAHBUPs1IZMEGuY7Qe8D5duQcj/FFSKjUPUBQ0+mmFbRmhOFS1uCtMeBZnAN\nQnE1nRaH89L0i+nfNZSOC41oHXbih0hYjypoCO5GRH04+rueQq6eiljyKXKNE1GnPfVMTSXgFwe2\nMs+XSOUiSH0SQTAgYz5tM5CwIKI/xw3PC3C22m8bHsdlf7EYXs6O4rkgqCHwV2xEtSd3txo1BYZP\nhO8XwF33QKcukBYC+ddD764QfT9EtoeIKBhzL1RcCi91Qb5jK/kLdpKwaQMKXRBSZTPuVxci9x+L\n2KzDuQHAB021HSEoEaHHeGQpE8sYM7K1DkPMElxpzWg/uYXuN5UjjOsGIYchuBSXRckLKY+SEmWg\nXeUKeh5dgLA2CGXvavCLx2VsQFvfiGyWkZqNSEojtS2t+PgGYDPo0NdnYDi4EaXJD+HgZdBjIkx9\nCr+p43EYPuPlB5eRezCcuxrewl5hwX35lXQ++CrUV4GuDsWYj9DpgyAQpPgK5PevQH9dP5o5QI5U\nQPJuB3KZntjWSkr8naz0rSJx/TcghyHaggjqX4bcYEawOJF3ziEALXywAFQKhK690VflIFVYEMNB\nLrQiZYh02Pgtj47Lp9i3Oz2bJIh24crsiWQuY0leey5dvRBnogm5pBhF6PdQk4faWgDuK+GiV0CW\naTmWh3T0Zvw7pkLVDmjJgoyvOd2XtZtmmniHYPvdUJkDFUcgdSiEnFzx2FQLR3ZAQgcIjfEsQ/fy\n+7lATNS8SvivRFBA3v3Qa90vnJPLshtB+NGMgEIB468CUwFs/QEOVIG/Fi5JhNKnAaWnd1W6AVQV\nyLHXYQ1TosreT/2iW/DXDkDhBoXBjaJjEkKnXmik7jB3Itz4AKz+HHpchUs7FKqmoSkyIiQdR6kO\nhuAusG8frLfhqvsem6ihtlMUt2tmIdXk4f/RVwgpXcE3B7M6CDGkiZbUYYR/vhS7VYO5ly+anABi\n1x8HjR1niIGG0TVow67BbduFRn0Xwqq34bkxCH0vxd2kIz1lK5d1j8L4US0tJjOGvb7QUgBmMwzU\nnTLzkmVEXRRoU/Fpuh99QBiBX2UgSJXIokyI0kJXcy4r+g7laIQ/SYFXo1XoENd0xbzegt0RiP15\nPeFV94L/0/D4v5H7jcA2sjOGWY1g9UH+3okrz0FL90DarTlGWmJnCJ8MhsWoroynZHUs6UcPo43S\noRgzDungPqR8E6qUTIRIN/jEwbI7QaFAqddTeTwJ//CvIGC0Z3LUbQXBYylxcqwTGYka9+0oXWHw\n7b9g01sw5SWwOmDJy9DY7HGwtO4byBgI1z0NXQbh5Qz4De23uc4Tzgde64i/ktQXQJcAzlwoHwIN\nj4Hz/8cG63C7Pv9lmqYqiAyAq8YgxxfinLcSvrXDnHlgXQ8LLoGqGtzvH0C3aClRviMxPR+P/soO\naG5ORzVIRExQISjiYf3bMPY6SC0Bv0rc26fjMF+L/mgLSrMMmffAymvAUABxao6FiXzWsycKi55E\nRUf8l3Yl8P0XEYPqQDcYxGQMu500BysI+XYFDB2I0Gs52pwRCOk2amdfg6VfDKrYSsJPVKD1z0bZ\n8yosfbfh/NeDoPejtfQbTGod7SzrCT+8CPeocMSEZJQBDmhzQ+8XoN0ssNXAkmdgxRxoKISO/ZHn\njsO1YDj6tn6o93fG0fdNmrslYBg+g6HVG1gXlc7GLYvh5usQ6tQY+kUgjkxFWGdCUOyGeyZD+z1I\nOdMo+iIMV5AROSEeucRFa88gGoYMpDUvDGHH19ChP8KApQhaHxKDa8lTTcHZUI1olFBeNRPxshjk\nkS3YhnRD7j8TItKh8DAqvZLWUh30zAffBGj3BOTcjUAA/MhCQmo8gc+Xuwh+7UPIzAHjQNifCRsW\nQF0OxPrDzKc9k65zFnsU8K9tfurl9PyGNcSQcJjT6VT4s8W4UJjzj9tZQx0EtSsh9ApQhUPT0yCo\nQN0LZAVOxzBExWQEIcRjtiYIIIgQnQapWciHy5ATklCMskDH6yDmOmTFDiwrEnE26VAP7ofSLwmT\nfSG6yu6oDDogE+oPQeUuGHoNRKihajVugwV7Uhu65e0RNkgIhVaI8gG/OFwttRzrFIfLN4AR64+i\nOVQFB+rApwrarFBfD8XHYNBoBO0eFG02ZLMb5YoKxLo6LPN3Yogfitu9ksZQLcaieMTxc0CbhdBy\nEKf6OE5DPpp+K1AG2fHdtoaQE00oBy3BlJ6Jj94Pi+SgXt8X4755UHYE1rwEcgPEd4KD70PaNFj8\nPIKjBlFjQ8g8gFrahDY1CrF+H9FrjpNaWsayi4Zw0bCrENRqBPNidNqjaIcbEBdvxOGyouw4Eymv\njKZIDSGfHUZYVIPpOT1qTQpR71TiHtAFp6sSzeCXEfJq4MAT2ILd9PpiNUpFPFLOB7gVuTiT1uAK\nb0VXkIqo7QJuO/jHIO58m5oCG+FTr4eAkaCJAHstkpyFoOuKKAXDrvkIL12D7OeHOqAcpr8D05+F\nQVOg21Co2QK5iyBiOOTuh94XgUEHB1+C6CF/caM+P5zcWeNstteYM6cLnm7o7whPZnO68vyByzm1\nf+YfwttL1ioPAAAgAElEQVQT/qsJHedRxK4YiM0CTU+ouRR23Q74IrlXeuI9f43HzMlph+AtSGIS\n7lwDqrhE2LMGLJ8jVd2Cs64eTdAujNPtCLnPQPVGoqqgIuRbWHEAyrtDlgtmHITmPZDzMZImGvtg\nN9rlNoScPEjSQooeVHboNJd373iKumEz6dT5XlSiGRI1oDDDV24wKWH299iTQpBqP6bFV4myzklj\nXyNSUjeEhmx04wZgtbbHOCCTiNXBWKOdsPEA+C1E8BuJvqoZVYMV6eh1UPk5yAngDsG99ibq1K08\nFdyd+zKuxqfDpTDwCTjRBMmDod0AGHg/6HVIISFIokRrgALJUQwOPWwQENYEYNhag1Am0mfVZp5+\n9hEa545C/uRx3AYtZksUSvFunIZQyNuPe+HVtOTlEHP7EezFWqqmRqL73oHhmAI+ysJY1ILxQAPS\nonFQXQqXfIdmhRs5KRJ1dTmSpRnlzo1otJ+hr7wNMX8FZD2EI/8DWgI7Iox5muSIDbD9HiheBnUn\nIHAqYnM1ctZceGcSKBQ0fjgL8c6FENgZrMU/bTOdL4PonpDSBdIyICoClg7zbKnk5fdzdos1FgI7\ngXZ4Njv+w77SvWPCfzUhoyH7Jqj4Bto/C8bRoOmJkBmFurwP7tgyUAFRyVCUA+rDoCvB+owbXWo7\n5MBeuFwDEFRZEK6kbfAI3MciCHF0hV43gCyjW76Itn5NNKlrCIi9ESoPwf6boU3AWWLAkbgb9So1\ncqwNZ5gDt74NlVHCvU7CVfocfWaYMW5w4lT6Is58GUXyRDix3uO4pmgLFH5DdncFe5KvxWzwp9w/\niI5tFQyZkUtKycWoNx7B+vZS9Gl61IZOqCv2Q+ZcSE6AyJ4I5WvQluxFTgzAqfBH3VqP3OcqatML\nWa3rgE3p4F+t+/AtzaDJsgWfJ1ajWvMkVOyDltfBZznisyspTw9Csvpywi+MzDtH0S84ldRVnyGH\nC0gBbSjdMr5tpThDA2mM9sen3ow+oQJqHkA9PBbH9ijq1tRh3luJdMtsfPVVBGxpojU2EOXALMS5\nqdDYAIFRuHpW4grWI0r7EOLacPTzQ6xvQf2diBg/kaZXHmZXz3fZvlFHYYUGlVrLHTcp6M029Akm\nODQPAkfAofmw4ikURl8YkAM35IMuBN22f6EZmA7Dv4Xcn3W0YnrBujZoqofAcLA1eBbtRHnHhM+I\nsxsHuOwcSeFdrHFBcPhqz4vkbIZ+m6F4Amw3Q1wsUtIGBOPzCEdMkL0M+mfhynoYe1YF+pBMzEI/\n3NnP4HubiNwWjFzcjBSSgapCAaOfg31vQlh76tTvkNsjkfRltQSvK4GJDyLveQ3rFX6UMZOE6n0I\nGY9B+UHE3Ddx+2Ugl5bQkqYks6eaI81dGKzZSkq9Bl3gi6gMwzw7bayZBVVLoVFErnews9cIFA4r\n6TXRmCccwydLh3F/K/bSBlxmLYaRRmitgDoX/OsTyLwdVFHQZxFy80xceYdQfmBm1/x/s9ZZx7X7\nFxMd0IgyU4Uj4U4ODlpHb2ElYlstvJUKjUChCpvdTt6sRLqkfgjrXsNWtIOdg8axLyYeY6CK3pZv\n6b7gKNZeN6FStLJjxCjaV9xA6JFGmtrfRGCZBvmudyBYRpqmw35MiyPIQeOdejRHZZyKaPQtjYgn\n2ijp0ZVATSG5iiRCKl3YFxXTfWIFuw/GsWR/OlPzysmM6E7AlbPo3yecpJobEPwGQt0eaDeT7Puf\nomPTfhiYDqUVENfTs4imJQek4zD9e/j0Q3jypAnqmolgHgEVeciihBwRjLjwVTA7IX0wjE6A7ndC\nYHvPcNU/gHOyWOOGMyjvI862vF/P+8/I9A/yz1TC29dDYj2Yj0PbcUi8G8rHA0rYp0PqpEXQWhGU\nBliRixyRgiu3BEVfPUKhA6eiE8quhUjaKErKYzCG5REcGI+42wGtJuTrl1OpXkWF4w0cWgXaMitJ\na+rREAfjWlH7v8dnLWu5QX8TGOOh4G3YfRgWroP5e5EDg9njnE6n1sd5TT7GFUvWkbj9B1AI0C4c\nukeAT0c4UIy8cR7ld4yE7Cqib/6BKvXDuIUGYliB7GjDNH4ofmMKEBqaIUYP0cMhbhQcngtR45D7\nP4O5dT5f5u5BmaFixp5V6OXLEL5/meb+/pSPG4OJavo3vAt3D4FYC+jAYRjGiaAc4qRwdJuroIMa\nyo6CDYjrRnE87BiZTJFPAmXKJKaY9jGiZSGSbEOuEHFF+6J6oRWaJERJQgiVcPlpqFvrh/T+TQSG\nfIWkisZ0JBVt92tRh7fHJufQ2PQ+b43y4Z1DQax8dgHduggoY30JTpoHD72EfNEE3GIxSuunkHYj\npN4OgsC+yy+n54O3wFePQnIQxPeFoQ94dqleexPkAbUqiOoPjW1QdxhqTUhGH2RdK6KuE0KkH8T2\nBz9/CCyB/s+D0vhXtuTzyjlRwrefQXlvcbbl/Sr/jL/N84Hb+cfSzX0K2tpB4yaoXgoHJoDcBqoy\n8OuA0BKH3CQjV9YjxduRDFkI6W0I+jDQuVF2PAFOLbbifOLyluESbIgl1RxMUyJr9Ai7PsOwQU3w\nu+UoawQklQ53UDsaQitRG/9No64zIYGDPQq46SBS4Q/Ib3+OXWjBHeCL4JZIVT6MIaADs11pfHnV\nFIpeXwEPzQF7HnzrhEMaGDsDOT0SJQcJO3acPUdeJHy3FWVDCfKuKxCyH0XTvxFHphbZLwh2KKAx\nBCQb2Ish/98Iu97AmdXA5JXLmCq50MU+iFCugGu3IvftjMtVRGyJiJz1GcyaDWMfRhJl2o7tJKSt\nGW3KbOh3A0yeCoMyILEzKLREl7qZMfd77ji8jm65Rzla4cvOLZ0Ql/giqy6lMGgGis7DcTaH4iqX\ncRqScVYr8XmlkYjVL6PxnYqhPJvIRgltaS2qBzrid/2NxD25gbl9c2i9600GWFoIVxsIjhiO7CjB\nltwd10N3IRQJMOQrsDWf2iZKEKDzIJjxLDSFQLcroGEelM4AU2/IVnisHo7uA0s1DJuKrHPj6NaG\nlOyP/OTrMGkWtNZA9UoIOOExd/RyZlwgviO8Y8LnAskNe66Fvl+cetF+L6YmmPsCXKPFrbkUqaQa\nVbtSsJ6AbnfCtjtw92lADg9ENgkI2wUUPsnQaRTy/leRk920GF/hi7p8ppq+pLhbHGHmkQSsXUhl\nZTXBB3bRWJ2A/3234V/0Hm2t7WnMCCblmR0I3SI5pjtBmpACm75EPnE/zs/M1I+PIqAuCM2mdVBa\nQMBHL0FqF/SjBjC7fDEvjxnDdPtBUoNEhNnz4bXbIXAGQlAH5IB8lEnd2NHjMiJJIwQLNb2XYGzU\noIzeR/OSvQR3FFHQGbauAH00FMaDbwEUfYN/eAiyQYNw53aEuc/D5Z493PxLIqkMicY/fjgV8d8S\nwkw0cgoVucvwaciFzlEINSZI6QRJo8C5E5KPQdArSOtexJaUiF/mZm6xHQWLjDz0IYRsGbVDh1Bb\nhtTUhvbZD7AoQrE+Nh6fGBnD5lCka+7GrSxB/WUd7uZFbBcc5EwaT6JJxcXbloOwD63LQuPEobhT\nBuOzdTnWN99Dc+unKPcVItx3AxxKBnXJfx65oFAguVyIaT2hPB/WLYDYzbC6H+w/jNzcAgPuQBgT\nCdZKKKhADlbBhJsgbSpOaRka8WbIvBEMSvCXIVkGneSZnBO9r/Xv4gK5Td6e8LnAbYO8r6B6yZmn\nfeA5SOsCUZfhLpdQRICsSsapicMe+Biu7tUoMiVw34b86Y2IazqjqPRHznwPwSIh7h2NrHajCB+C\nXqkhihuoXhpI87tONohDEDLCUI0LoMm9hgBnPTF17QgrlCkbGwuP96Vs/VwSJwxG3nknzR+0Upum\nofqGaPT6drB5IaR0pG3SBL5/rSsrRuRQObY7/6ox8XHqAJbM7EXVutEQqwfUEJiGQRGGOOl5bqQr\n/2Y/G2hDIyaRH/waddE2RH8d7lYH8sBjoFXD/qUw7CGoDAaVEWHQV8jTx0JII9zQGeo8rjebtFYC\n6IOR0UTwMo18ylHrbAKyTBgCwtEqU7EJX+POng9vzYb83iDOhgVTaetWjaOrDxxsBocEN85D2Pwe\nNB6D6FG0+2gfdlchrT3DaH3zDYxDOqHRC7SuVdE2/ROYvhq3vx6luY1hYjEJuhaOddaydGQfGgLV\nVE0PQtVYg+LKdxAsh/B5W4t60mQEUYLH74OFr3lsfKtW4WhupunAAYreew8+ngG5y3GtegwWHoUO\nk3HMnIotMpAj0jGykyYiu7Nxa/cjtQ9Ak/YagtgPWa5BCrCCUw+1NijSwKOD4ZZkeOw6+PRl2L0e\nmhs8bUyWoa3lnDX3vw0XiCtL75jwucDWAItCIWkQDNx0ZmklCe68HF5/D/vSHqgS3cixKkyWeKTm\nHLY03oAxOJ5e6+9DWG7AN6IWYZCA3OyHoAxBHlnByvRniXqhnETz25Tk9iT82lsIHdCeqsPvU6jP\nI7Khjfgf1Cju7Qm1/rD7a4rjLPjmiohl9fiXBSA/MIPGdz+i8rYk4jJuRGOYSumquyntFw9+QVga\nt9DN1otoezhsvQx7QAoPjbyRUdV76a4aRui+Y3B0M6bOJnzHF2KztvBN8RIMrQeYkuugSdiJvV0E\n1mQjvh+vQ3FJBv4/FECsCQq7g8MO/tFgyUO642Mk5QYU30Ug7NwJL7xHnu1iEvVfohJDcDccRVp1\nB4rCTUhqo0fJhKiR3HZUIRMQmo8gV2UhmFSg9MOllcBiQqlSwMCxUG6CjBuh5l7ch1po1WgpG5pA\n6Kc90fqvQtNoQapyIV0yCTnpCqpmjiDgsiSCLx2PsCoTl8uJ+cg+bD30FJVHoG2wER07ksB7b0E0\njYY2EyTPg+LDcOwZiL0JyqogygAdn2XLmGtIvmYSUaF1YIWD4j66HXThbu9Gai1ClaNEDvfH1NvJ\n1n6TGDX/A3RNdVgun8Th+Kvo5pqPLFegeyYOhrbBsmMwtQhi74HQOVCYC8eyIC8TTI2er7ND22HG\n7XDZ7aD73/dFcU7GhB8+g/I8rrm9E3MXLG4XZN4GqmDo/Nyvx2upAt+In6V1I08fjOvdUKTqzah9\nkhG0MyHiVjikR2oJpaUmjFU1kWiC3MRkVlFz87sMz1qOZv+bWHRd2FFUg3LecXrcG4XfhIEI/RZg\nKzvA0dKbOeo/jr6+dfjfuwO9QYvuut6wbRPSpBspODGP5Pv2I4wJprXZl/yZ3Uhr2U7m4Fk4jRHE\nOdKIeeYFVHe9g7QyDnHwNxA/BVoKYc1FtAl+vJxxE4HROgaVfUmHBRuRlAIurS8qXRfEQ8WYZsci\n2B8laNk38Oi7WE0fUC2uIHjHPhSNaejrCiDGD744Bn2ugh5JyJu+wD0tlpbwBAxv70GuNFM0V4lO\n2ZlI9ZtUkcuJ4hcIeK2OpDCQMyoQXTKGnb5w71Ksn7yLWJGNdkQvGPkEVc13Y3hqPiqLEl2QALVq\nCMlA6lOK82AF9uHdKBbjCNyWRUSXYbDhbfIevwhWnEA//Cniji2jKduCbtc2xEgnCpcTwWmneSkI\nZmj4rj2ZXSfjctUy3KQgtPl7cIZA3N2g0ELUVKQtfRA7fAgHb6GkaDLhEXY0YT6w9VOyh15GSKKM\nv/wwSsVaFPPmeKxPt5mwxlai3t+KZABpuExFv3eIDxqBzTkZ/SMKuGUI5BTCYQnuuAnq3/f4I4n/\nDBQnJ+pqK2HeaxAaCekZ0OMMfDheoJwTJXwGnkOFpzjb8n4V73DEuUChhOixULPjt+P98CA0n1yW\nLMvww1KYNQkhNhFhxzTcS6eAqgpqD3mi6G9E/tyGX8VeJpcuY1LLBjqmtyNm8YfMluKZ+MAJ7uk/\nA+ddb5DQOgFVNw32kGiaNs0mp/4h2p9wMFZ+nfdDx6NfsB6xcT+Wwx9jH3kCp+l1ghce5/CSfliE\nGAhrILTlAD711fQVZjCU60lU90d1/Uvw3HjEhCs9ChjANwmUCficyKF3aSPr1EZqY8IRpohU9Q7H\ndPcwGm6KQhhSQmBdJUGPzIJr7gNnLbrjzxFvvxKVLYJWXR7yh1WQ8BYYkmH/elhTjnDRWMQd+fit\nctMy1U311VbC760mdHUdarOREvsKMh7Jwr+kBVvfSkSfIegWmSC7COfU8UjvfIxq8EwY+wpo/ZCO\nZqNVGRC1TszpyTAsBueQUGx5tchTXoLtQYR9+QOmOy5CsXINosaPWDkA48WTKdRVUaOvJeDELjRJ\nPsgqGw5RRDquwhGiQz0tkKDOSYzzUTC67ABbjQLLY4Zj0ZWCucizp1ztRuTmAqSt18HW3cRV34/6\nyIfg3AGOIWhD/SlUrQBRQFw9BZr3wgY17tB0iib6IQhqrO260qQPwbZmMVVCIKL4CK7wMqRsC4xb\nChmXwLf7IPQesOVB4RSPu0zwKN/7XoGr7/1bKOBzxgUyHOFVwucK305gq/3tOKIK5l0Cm1bAbZOg\nvhreXAy3PAjfLUbVNw7UccjVK5HN9QipcxFv/gL3QR3OcD8kQw+0JSvpcugD3q0v4y6xkQx9CeVJ\nvfDPHYeQVUtZ/jZKNBvoEnAtWr8G9LKDWRWzqG/uCLOVqHLsKF80o36ojqVPX0zkGpnqzm3YMkRi\nlhaDPATFK7fB3BvAVAdx7aFdMqzbDLbGU3XpOBN0dsZs/5DHnDtwOuwg6hD99FRJdehNl+Popcdd\nqoDAQAgM9fjPNVciOFxoG00EWfywZOioybkbp7MJd4Ie8xUjcH2xk7buMtWdtxP8Qi4+RQYM3Yag\nv30bzjHhJL24BmNePb6X2XDnB1AulNB2ZQauVBVtwRkoXv8axeTrQRTBaUOXX4NCY0cVHoRjTwFm\ndyBSxfdo3Q40m59AZ95EWEQjsQs/w62sR4jsgCF0Pn4RDnqaswhbs4mKKUZsGU2oIgOQB4ZT8vpU\nVOlasJvwW7IVzaLnMdrrmVLVxOA6N20KH7BLsHwmfDkSoaAVl6YEuUWGKh+EVjfyNiXyhiW4d3yI\noLVCoYDsHwiHg+GeD3HMeoiYjy04/ZUcGdqfID8tyeYWsqRPaGm+BXuBFbm5C9RngyYHVBrYWgwd\nsiFhHrgbf6UhegE8XtR+b/gT8Srhc4UmCpQitJac/vqxLKj0gfW1cDwXXlsAl98KajWS3hd51xYU\nscug1Q6F9QjmAwAI/8fee8dXUeaL/++ZOb2f9N4ISQgJvfdeBEFBAbtiW7Gtupa14epid1Vce1mx\noCCggCBdeguEEpIQEtJ7L6efMzPfP7L3d+/uvXu/7lfvrnt/vl+v83rNzDMzn2dy5vmcJ8+njZyG\ntKoHdcxgWnOKCHjcCCNAjfiAqSUDuMO1hztamjHqIzjy4ACC9hj6JC/A//7deDLMqPiRBSOlpWmE\nuq5GWxeNWC/g9fnIOVyILLajim5CCZkoKU4ouAhGK9zyCtgje/u+4GFoboU9H4Lf23vMmQt2O0Jc\nDgkVeUz2xdIcO5H4zAfoq4RT5TxBW2cyT1Vez67Ji8BiA0EP0ddB8X0QnYvU3YB3xaPI6Y20LxlC\nKNWIK2wDnUsrqEm2INQE8P72PRSditaYQ2jiWKRuHZE9dbgejMDYk0DxvCSkrDiMh+MIeXU4H7se\no6McPr0eVl0Fb4zHcbYLMS4BwRmOJUHH6W2NeA1piP1yELwdaKfdClPfxVQSj+TwQGwLgiChO2hE\n7inGl+lAzpxAU2YmLbkODMZqHMEdaG4RME2TEdwBhCYr4h4Dyoa92D84TNT6ZihaCRdjUGqtCKdE\ndK+1QrkIsgi2AF0P9sOfJZF+1VYSQj6E6sH4ayPwjDcTOvgbxINfIkX2JyTAqIfeQfBnE5jTxsTq\nd3F858eU5aLO+TXql5MhCrj2ESg8CHk7e3ORaGP+59/7f2V+JjPhn4mTxv8CRD3YI6BhN1iX/mVb\nYT7cNB3sYfDoDEjJ+EvjiPY8YnYrqGHwkYx6eRjrLN1cCbSxnoDYTEeOhczf9tCzIIugUouuvQmp\nQEY8XoVgv4+SRSqJR1US3NGYtBmoJT4aI8YQ9WI5DfeNJfFMNdInnxNEjyZXwiub6bevlO6JUeji\nohCd0YhjY2DIH+DAJbA1HWYcAHsW2PvDNSvhqdvAkARTFoM9HbQBlLSxhDLq0deUoYTNRBKWYlJE\nYtuvJveh28hIKOauX3+Mmx2YxWmQ+CC0HIG4KQiyQkTcQ3iqNhAKFNM83UjMvvUE/WlYglF8HDaZ\nDmMboXEPoLEm4BvVnyTjMa6zroLDaVRP9WHxNpP0dj2uNV047xcRin8LnWFgHgHXvghvT0eMjEaN\nTaXNfBF7TxijRkwg/6Uv6DvQjIkRlJ3dxaoBkRhvW05Uy34ixVqiGr6hc9iNdBzu5JI54wnXnMd8\nwk/gRDu1S6KhSyLJnIHS/zDitiSQmxEtjYTGzMcXdgFD4jIEVz5MnkYo6ETaV4C4pQD52iFovitA\njspFKHkRUU1HlXcTofsNkm8HUstxWq+JxpNynIhPDuKr0BLmchOYOBDXgLNYL7ZjiN+E0vQaalgz\nceEp4CsAy8eQ74eUC/DRvVByHVz9cO9/A7/wX/Mz0X6/fEM/JbYoaDzwl8dCIagshfe3wqYzkOWG\n0tcBUJVW1PZbECqXEwxGIF4YgpAViRB2HVqpgJ1spZonaWIjiZszkDKvxmHoQW9NpnWmHSVSQ6jF\nhxzcy8CKZDKEJZg2roEjmxEUD7FvfYegFXGFtaCZOokmaxS1qWFQFcSVE4UUPx5do5cYh4QzEEJQ\nW0ATgIlfQ+p1cOJh2HMP7H0N9eu7UTNF1HWP9Xp06IzgSKQ7x4lVHoVfaMMpTkMQJEKBG3hwxXlu\nHfwhfxq1hRjjB3g4QqfwCZizYPBaUOuh2wOCBinxVurnGtHVuJFswzDO/JCkuDAeuvA1z7+0l1dm\n3sczz1zL0q3fMjuwleZ9/WkLs+ML1+Lc0ULXFgXnjekI0X4Qa6CgCubdD3tfALdIcPh42pLd6Iet\nQGuXkE4fY/DoCMq2q7izR5NtiuP5nS/wUH07U8KtRMW00OT8gp3qSVaNu4znrcOor6gi0FZExyQJ\nrE6kfgKqtAc54Kcl0ApSBOQuQjP2EQzFVoRXHyAQcKI2rkNOmEFLQwdCtAjpiaiuIGpLE9a2/uja\nO1DlDRika5GQID2ZSOtKIjrupHm6nmCCllCuSvCSOvwdEtpmLaGj99MRcZTuGZkExEqY8QQYukHt\ngPg4mCxB/qPw1Q29RuNf+K/5JVjjX5SD66GiACwOmHYDWJ3/3ibpIOjqNbr9W9CGRgNzFvduyx2o\ngX1gTYL2p8GzA3quR9gZQOc5DRe1MCkOoXsGc2ybeVqqJIsFXHEmB736HMztD9ui0TWeJPbEQNSk\nZoQbOhA7xoHWA4f+BGFxEJ4NsZFg9NCT6CD++/PEv3+Yj96fy0XPIJ5/59c4D7k5nxsk61wqXXGN\nhNcVQpYXDmZCvR5qtKhCOHLiOQJ96hCnGVD7XI5q/QYhdA/o4tHGQLvjKyxdVtotAWJVkbYLB7nl\nWQ33TFiLZlwXCQWTEJCIZDmdfEArzxL+XRRC1UqoVWHnNPQRcUSOlAgrqEcwBWHvO3CPGWl/DbI5\nQMH7l1A/SE/KyRayip9ENDhp+W456b+vJWj3E3zCjlBXBU160ETDNcm9PsA7noBgIs13TSDC8AT6\nIFDugcpONHPvZvD9Szk1cxBpo+041TBMxe+SmfUx6fm7kd07udQsoI++CfXEV7g/byCUk0r7DJWM\nxmmIcgVKfTSdERdxuL1w6Q3grwPPRwgZdQSTF6CUvI0iD0fctIITv8pm7koVqcgKDi1ij4uezHux\nyfcjhGIQ9HoQRIQ5T6Hod2LRPMIx736GzDhCqMqE5mAskZZUaqadwFBbR2CSGYtiwKAZg2CZDSwF\nNQS590GOBxLPw+Hfw4ZUSF0IQ17qtUn8wr/zM9F+v8yE/15Gz+9NJ7n2BXjvfjixDeQ/J9PWRYI9\nFToK/8tLVcEArTI0XYStv4NdZ1DXvQuhbYjRXhg8DPLbUL2diPd+yIyvvmK3LwFd160w/Xdwvj9E\njoexv0fMnoc0egOibgR0HoFTNTDlChgUBRtegHF3QepEXOF6Mp4thZV70SV5mF27iZNXLGHDI3PJ\n9J1CZ5dxbGjrTf04vQeifg+xvwZHfzB0ILlqMZwKoKn3oCvchNiioAQ+QqtOQjakoxVykerLMZ9t\nomH9q9zwYjQv3a5hstFLn9Ac9g7Nw0WvgcjIUPRCLs2LilCX/AnGjAJvDd2jGjGMHoEwQAtpEfDy\nxyiKRKC/i6L5ETT3c5C6yUv2Fbth/ZfQ00X4tEfRj+rAsKyHhpQ4iF0F3eNh1KMgD4BzV4LBAAY/\n8R2Xo9+xG569BoKNQCec3YVk0TN4kZmKPY2c3VyDkjYewb8WTb0f/XEBY/s0ROdMpJ4wLBEOqkbF\nkvS+C43zJKLqRU5ajLslHG1GOGj0UG+Ad0vA/DbaESvRZE5GqWqltl+Arhgzvnu/QWgPgVYBfyuV\nLWupvCIa8dvT8NE1UJWP8PmrqBVvc+bMEgYEj6KRjRhOmfG3N3N0ZBun7aOxfhgk1nCAsN0NiIMf\nhmA+6GdAIAgaI5y/BUZeA3cXw+wTKK4CAkUJ+L2LkJXT/6CB8i/AL2vC/6JIGlj6HFy6DAxm2L8W\nnl0EsX0gVwNRmVC/C8Jy/uIyVQ2B+3rwBCE0EMGXj6pkop5ohCgN6Mzw3fOoFc14y0rRZPRlbMFB\nOoc5CETHo4+aD7Pn/+f+BGbAyePw4GPgUeHEmxDWA4Z88J4nTvGjXqpBeGQ+0+L0HLx9IlbRwVVv\nH0VrdqHMqkTY0Q+h+zTKxWJEowqzVsBsqdcpMhhAeOlWxPbT0F2EIOqQg35U01W49dGEV12GYetb\n7DFO4Y9nH+Tj52KIWHc/LP2CmOo6TJtPcfieTxjAbMwUIREJXEFj9+fEivkEFtoJGEoJ962E5nUw\nKwujRKkAACAASURBVAx1XQw1ljQqF40gOaGUvt7bMe5+g673xuEaWkHc4b2I5z5FTQsh50pEVlph\nz7ew7FZwFcGYZ+F0P2i9ozfd46MToaGL0EtrCBjDMBgjEJtOwLoBSIEmEjI0nPxOxFGVRHL0F2Dp\nhLBM2PUYxGbA0Ntoq9qMY8SjiEffIXi6Bc0lH+HV3EWM3YWwKwN2PQmeVFh+EvQGKLyV0JYuOhGJ\nSBlLUqeAsHs5KAL+hAS0PTVEbqqh4OE0LC/EETH/NwidhxDiB9OV8D2+uhNYvhiGafbTeOPvxdXQ\nhdYBYfoeAm+G8LaNxZZ9PzqNATx5YLoV1G8ABbyl0LYNIuejaBWCYzMIBU+gP7kLyTYVbFWQ0vsu\nqV4v6rnTiMNH/w8PnJ8hP5N0Gz+TbgD/SpU1gj6whvcWVswYBhMXQ1Qy7NkOJ0+CXYK0Wf9+fqAN\nLv4B5NsQolsRUi0Q7kcYsITWs2VIXjfiwIUEZ4uUXD+LSDLRTQ5B1jwy8r5AimhDyNsL2nCwpfUa\nW1QVvn4eutth2Ew4sB1cByC+EPQyyAmg9IPVJxE6FNwT7mHdZYMw2VwsXL0RqbiKUHcs2txqxEA4\nSv+FiA3LEcKzIXr6v/ddkmD85TDSD7lNCIOLkIQZhNR3EP3J6PafpbVC4bHWj3jxFZmkXa/BhF9B\nZBqoIG3dSZ8Zj3OWrQQVB5rgl0QdKaSn+yiaSBuqEMQ28gjCU7eDtYX23OvJT23HbGhlQHEJ9i3T\nUZJL6HIew+ePQWOpwlxxBAQB1amCIwbL/lbUISeh4wuEsn3Q8yW0noetjZDlhLFhcP0fUbMXscca\n4uORAo6WLuK2n4HwKCzeEEkrl9KxeyWOgckIzYWgxIKuAw5tIFDXQv2kZlKKrOjmXkvgWAHeL5rp\nMtdht3UgGYugwA4GN0x7CKq2UVN2gHVzkxjU3I1hQC5OrQnr0PdQOorxdu3H22NGe7QJW76b7oR2\nIlfnQWsbtJdRlh1O1h/+hPaqRwjte47XZ02l/8ULdA1KIVVcgE7agSi5cAVKseQZIfo4uPtD62FI\nWgTaMFRzHEH/W8jit2g1D6DV/hrJdiWULIL6z0DfDAETyvIbQYlAHDoC1V2EumYa5H0ESAgxg//+\nXCj/IH6SyhpL+MEz4d+t58fK+5v8MhP+f2HLCzDvib+0PCdkQJsEpmaw/DmowXUBLjwKgU6Es0lQ\n/RQsa4IiIwVOA3viq0mZl8qsV7tpMuzD0mYke30VwqXXgb8M+eOjSI++BXnL4WItyG9DRRn0mQ2b\nn4MB02Do5fD6MkiJgDkPwoVxsPfR3rSYyWaE8WF0jJ/MJ5HNXBJ9MzVVD0JBGcKgoQTKc9CEvBB2\nAaH/o6j7P0NIuQkq9sLJ93qfQRBBHwR9OdTZIf4ZSI5E1zAM12CZe0+/RKTbw7rpO9lZe4HM6b9H\nsEUAoDocyEjo0DL2kJ+u1l/RNdpBkXEJjE7AL35A0roQQkQ8vofv4Fz9M0j+7xhRFEB3uBMWWiH6\nGNLRJtSjAo7BxxGPBwkk6NEa/CixKiFfK8ExNkQJRDRoHAqCvR1BLofFEeALh8hwaH4USUpitmk0\no7/9is6IaNpS+2BubcU77TIcxlrSf3cIGs+ANhE6vwVBRVV1VGQfIeVcN8Kx1yEyHeNVUQS+64M9\n52N8wevR5kbD/j9C32zo/C3Kc59y6N6phAd0OEY+h1J1C3oawLQHecp6miJ2k/LpWZoLZDjsQym9\ng45rpuH86BXYvZbc3WHIiV6kr//AhqkLKHdGEtfYSOSqPkjd9yIlJSNXNKMsa6Qr/U5stUkI8hZo\nP40KyAe2IH63HG2LCeHyO8C4EYxmVPkTlMk+1HZAXota+zbKWA1qeD2BDStQXS70LheBMaPR5eb8\nf0VH/9fyM9F+P5Nu/ItRsBViM2HEYsjb2pu5Kiy2N+l6pgbSkuD0IuSO/fgigpg+G4Ww5EZIyofa\n31HTmcKpAfMIx8DsU214zT1EbKtHynIiXL0IopJQX4W2/BKiLOMRssZCiQRCBmy9H5SPYNkHUHyK\n0GfLkSaPQMhbBauaoMAF1REwoT9dpha6RQ27Y2QuCa4nQm1ADS+j+wodOrUObXINvm4X3lEaAnH3\noo9Mxm6OQbJmQOqk3meVG6D5BhDehu7XQOmAxn0IkZfQtH4P1095htwOI/pZ7xPdvYbiNQ+QnTwd\npixGlDQQyIcdlyGcKMI2YCYnNu1DjvuUjCoNHbY+JPac5Xz+EtriGshZV4Fd7oHI/lAnQmtHbw6G\nmF9htPZAjx1Sh6KPmAylxwkFd6FbHUKavgClz+coXekIreEIVYUgx0H0eMg7DjExEGaF81dBWQyO\nxiYc1xSB5xbkHV+TN9qJKV8h+vhybL48bAW54JwAI0ppuDIT69HDGAxW0DbDic+gNBv3+a0YZ0r4\nXy5BO2Qyhth5MG4pnLyXsr5RxHkFhm5eDWNPoTozCBn7oO0OIR8aRLJHQmOOIuI3Mt6OK9Auy0d8\ntBlGLYbiYwiBelSioM5Iu7eFu9ftQvLIaPvaCF3iRn63A31tB7qyzwjID+PPqEQNnkcTNwRZvAPt\n4qcRTcuhexZMW4jsXQkdG1HbArj0V6Hr3IuuopFOUhDb/Ih1DromzKFlSDhZ8gysmv7/zNH1j+Nn\nsg7wUyjhWcBr9D7SB8ALf9V+DfAQvXHXPcAdwNmfQO4/D1EDpYdg5BJIHwIrFkD5GdTEIEJ0CJo+\nAzUcsSsVv7EU94uFOCUHQuc+vq8dgz9HYMnJvoizlyB0L8ZiSUQ+V4G47iJ0FcCKu/AawLuvFfXM\nfISovnDPBrglG+pUGOaBDx+CUfPwxVdjev0bhJAKY5LhjT/AqSOobU2snmei3lXC7V+9R2RDM/Ss\nI8FhRpQVDJe/TGN2COsVyzAlabD09EG4MAuh8z2ozAOtDm57HqS7Ieo9kFJgwSeQfynIEWBNod/w\nq3BrdXSM/i2Wqk8ZbC9lYeQS1p24BDXyHTRKHzTZdXC2H8x/lKZmF5W3fczYA7G07E6ma0g63Rnj\nsZpOk9maimAsg24N7CiFxEHQeAx8r0CcDWI8ENsFWjvor0U5uZ2ukbn4xwvEa4Yitm5DLEkG+1hI\nvQzSZsC530KFAA2jYdxv4Nxd0L0BFk2Fsw/AsW+QhsQwfmcn6vavqB86md0zhuBbPJzcoiqSrWV0\naqvJSuiCPLE3Sfzhs6hlJUQ6eujyzceSOZeuRYuQXr0Bbcl7tHsvcnzZInTVGsxjp4FwDm/8KHo6\ndiC2CrgHDSLV8DLC8RvQh2Wjv+dlrB2dBFcPpfvLr7EuuxbBBdr83fQkxjKg3UB2XwmCmVD9FXJ+\nBGVDTKTetBFTv5noTv+R0N5a3JfsJGCIwyLuQRISIDcDorvwua+iK7Eee0M7TRFX4jgqYyhtBlMS\nEYmJUH8c4Vg0zlnzSfFkgtn2zx5d/zh+vPb7v+m+H8SP9Y6QgD/+uTPZ9NZd6vdX55QDE4ABwDPA\nez9S5v88zaWQ9/nfLiF+zUoIS+zdDouF5/fCHctRjBJyTRIUHYAzfoQHjiL4LkHXHEtD12JWW4eT\natMx96vj6CbMR/PWI0hV55FueQIh2oLy/ffwwnMw+2EY/3sc03NRI58Hdx4Ea8CWA9GpcOgixNaA\n/wE0GwrwSRLKkkjosxWVx1EHfEh+51oCmjoWbDuFLdxOq+qgdbtKoNoMdSrqqzcSOLQS7VgzhjVO\n9J0FaMZNQ65uBqUHHN/CxoGwpgHyzoGrFQpuQgnWE8hNIBRhgiP3EKy6E0uEh5DjQcTO91EVH10j\nctC8ex7hkzNoxlWgGjSQPZyusosMfuhqIjJH0O+S28nUT6C8q5WITTtxr4tESc1EzUmBOSIMLexN\nkZnUB2wpYL8Lsi/AufFwyQiUa9LRO59CmPUYjJ4FfRbAoi2QPRvagvD2r2H5d6BVoc9A+HwZPTU7\nCIiJoLsVThRAgx8q41GP7EOelUP86DFcXuhiwdY8PJn17M8cR2xhFKJehdkvgqKFfC/uVD2aOhln\ncRLGa64k/OvFaCI/Q2ldy6mMURwyZJHuL4RAE0qPHu03H2HLr0MX04mzrQFv5yqY/TjUl4EoIYWH\nox+YjajT0LoqD/myBwk+9Sk7rprI0AtVCG+cQDh0Ebrs6Mq7CS83UZOV0Pv+BYqQdAHsZddj2Gan\nh7F41RfBmQYuFeGUxCnN5Ui+MJK/O4G9vRxxaghx3tPgaoMYGeYmwgs3/f9LAcOP9Y74IbrvB/Fj\nlfAIoAyoBILAl8Bfm/CPAF1/3j4GJPxImf/zRPWF45/AC4Oho+Y/t8fnQN25f9/X6qHxHELqNGrv\nSEPt8yzsOkTgchumEzuwraol5qMyFn25g/SLJ6E6Cu4ZBQMHQngkVK9FM3sqweUPobbug4YTGFZe\ngyXVhpQ0A/S5kDcfhmSC3QwfnYV7yqDvSyg3Z9P49lAY4Ie4yxB2yWCZTN+q49zT8DGD5o9EHDYP\n18gYpDgTnhoth1dMoP1uB05DC1KfMHx1sVDkRrB/jXqhGoZfBns6oa8XRglQtxoeS0Bd9TWhTjdB\n9xcoVZ/hBw46J6Cvj6REP46i+NV0K5N4P+cempZ/jqDVIETKoPmCwPJh1Lz/FEPGS0i+M7TFPEli\ncx3tE3rQjZ2CcayEvzAMr6YAb9l4lC2psF4BTR4kfwgZr+Gq6KHm4+dQZw9FjfKgiumAQJtvJ6p+\nLogSJA8Dx2DoscCsBTCuGQ4th9ptyDoXex4Op/jMXainT4FVDxYz/pULkS9NhhMvotYcQsg9yQDr\nVOZY3uVV8XLKXSMgciF4+6EM0aGObqd1eTL+NVtpbz2FJk4C950cTRrNhcSFTBWHMajfO6hiBZ41\n/QjNnocyw48/IQpr+Lvo6yN7Q8P9zdBeDfWboDUfy1A7zl9NJfDESOreWUK/8/lorliO8s7LqNOs\nqKoVIXko0W0mYr/ZAGf2IohBxLWDEOq16M0d2NY0ITe9hrd1A2rtAXwJpfSrH0VPZGzvd1lQB0U2\n+H4bVFai6uZAWSGk5fzn9/x/Oz8uWOOH6L4fxI9VwvH0lnv+N2r/fOxvcTOw9UfK/Mcw/yWU9ja8\nz0/Gvfejv2zT6nt9hVsqevc9naiVB2HerdiPWXD5v4OJmbQvHIzfnkJIDtA1IhX9uX1QVgMNJahN\nRQSVW/FPOkrnrmJafrcJOqpRa/zw1R/o9Icj5jbAG06UnmbUrbEw+gwMSQerCUp2g9eGyZtL5OFC\nBF04rmm/50BaBr5yCev4Z+H4daC1o9R8hitRh/2+mfhLmjDk2xF0EZi7Owj2acfnbkOtT0JofBVx\nUBGd9jjUJ/ZC892w0wjOTbAwAEvnIhmup2fVDKrW1CPJWsaKMqbwdPq1uynjEPkdDip7LLQ6VDAH\nUD/QQLVIWZ2OQYMGIOQp2I+PRvIqqBEXiSEDnxBEEgox3vEi2gFZ6EIaxPIClBg/qj6IqsvgwooV\n7Bs6BkemiDJhH2KLlkqfgWe6kvmTICDoxoOnB165EwqPwuMfg6ERSt3QfgT6CjguWU3aliCudCft\nCSZkP6hzbyJo2IgaykMdFoLZfjSVPgw12dBRw/2b3uMVdQnyc3fBXW8QCgvHlK5QM+W3bHkqC+MD\n8/A1b+cEpzjt6EOEL8RchuMt201baR+6RrZS5Uml2HwLZf5UDqjvscteymbzIcpHxcDXc+Cd+cgX\nusDQjWbPy+h+t52StngqDzshbgCqegZMDTDDCpcsRph7J7ZP34AHJkOFG25ZDmdFiP0DosmJZVcr\nhoqzqP4jGC76SWypo9mkhVAJxEVClQKbT6F2ZSHI34JhGNzxyj96hP3zMfwdn//M36v7/iY/dlXk\n70kAPBlYCoz9kTL/MSQMQHymFOWxNKTddxCquhtN7BSY/EVvvtby49BWDZGp8MIgZKNId9XD2PMa\naLdEoJfjQBtF5fT+dNOKbKgld1QTtgM9qLMklNFOFEeQwDOdyPUdhE1yIjU2EOx0oLvFQeidKsRu\nP5SBSyqj6xoFVaOBGU0QvAaNrS9aWxhaQz714gT0mkI+4i1mZU3GW78MY59P4M1XYfxLeNrfoGWi\nA21oKtEf70O5bTP2P8iIkhad8zF8Q/NoiztGuFZBtRTi3XAl5ier0OZOhIoDsPW3KEO9hNiBN2En\nzqwQ0X4NwkEnmqeDhCamoz9+mtb3tjOiT4h7YqeS9tggMLVDtYo310TYlEoiB+WB0Y504GuiXv8G\n1bWOfmOX4tZUYLQNho5ShKooxMp8uO1xRPFtCNYTqPqajgPfknbffVgnxRDM+CNSnYXfO9qoUvS8\n6v0evjgOxdVwyzOQPgD+eAVUngBJC1GpMO4GaL6SviVpqKPX4u7MYccrk7lo8XNjixvdJgeBIZ1o\nm3WIYWlQtwgqM3Fkl/LgytfYPWoUM86/huaSdmgbxJBV68i1mxEnGPFv0LP/+WF0Gkw02mrwnlxG\nrL8SOTyeWKWJqOOlkHeOE+NyyRUziPNuQmsuwSb7oecCSsZUmhxFRA/dhubAa7Rue5QPFv2Gm154\nF2XTOhi+A2QnQnk2qE+B6QG4712o3wbfv4e8dDeq+WvU4g1onR5oFlCDfkIWAbVag3L2baKMPtSE\nDISUVtjthJvvQt33PmKzDPEXIfQ3lt7+N/PjDHM/WfLzH6uE64DE/7CfSO8vwl8zAHif3vWTjr91\ns//oJzxp0iQmTZr0I7v3d/AfQ43/TFBbw8kVN5O+txHHkc24g2VY99+MWFsE3pre4p4Fm6CjCsmt\nwxCaSN0NRnR+maDnBNqyMJSqOsaeb0Qe0Il6JAAtKtqZfmqOm3GsqcFg0aLpLyBNWow6dh7iE1MJ\nHm9GlEX8DSPRlpdgPqciHk4HUUATVYv+umO4dzcRCvWgJkmIaS7cQyQWyhsIP78Fz6BWrNeMR2Ma\ni/DqA0SlmgnrjEWTdgUcvJ+kJQHkzRJS4nCCRafZn5TEyBd3cfKmMAb2ayNitRXZXIhWsaCmjKb6\nhjlItauJ7ASrmozgdaOGpaGGFWL6/cPs3vgOGclR3PxIDom2QaS3RaMLNUDSdSiLS1CteThPS/Dr\n+XDT1RBpRj9ZATUBoXAdRnMLwcZqtIfrEZvdKJclIlmPw/l0gh1BTi9bRM4bGzEpPaiF21CCFh4a\nvIIlnnrGfnsVxtpy8I6AFbuh+Qi8NR5qy6HffGhsgptWQagYWoII5XkIK2Zi1Rrol99MVMpKtvlG\nMWnUAez6CCiPR829FzIuRTgxFGQ3KdNqODjhFop76smyBxCq26CrHq0sQpiH87deQ3RPHMsW/YGg\nVYepfxeSO0DQloI3WmHrDSOQ7DlcznA01KI/NhViZhDIXUowN45GcT7Bxiq6o63Yxt6Afe0s3j/j\n5+WZc5i96beIrT4Qx8CsZ0AeBc3nUU+ugvpK/BlG2sLz0HX68Q4xEd3uo/yK24hv+Qjrag9KSEDS\nG6m/NgVzywV0gUbUoUkI4XnIbh2SbhyqdBrWrYDrXwSTCUH78wtv3rt3L3v37v1pb/rfaL+9J2Fv\n/n979Q/Vff9XfqwjoIbeAt1TgXrgOL0L1MX/4ZwkYA9wLXD0v7nXP7ayhqrC/jWw5xOoLoIlj0NC\nFkQm9uZf0GhpUM+zjWe5uuMLdAVX4jnfRXd5NQ6nGWNCHNSegebK3oCGvhNQEwahNL+GUKGhc3IY\nHcM1nNEOYEz1eZzbu9F90o2aFaC93o7B6ccYDCIGQwg39gf3RdQmFdw2XLu9qDE2LJmXI659E9Vm\nRLhvMYTaoPkCZMsQ7oGULRQrdeyPCDGz+R2S7C8g2/S4z9yK7dlzvYUvESE7klBsFkJkAkHdN2gz\nrDTc2Ibz5c+xTI5iefAIt930OLYbHZjT4lF2nEfo8VMzOZl14+4jWxrMdE8QbctLsC8MSIQ52agH\nHyE4bjQfdg6iq7CTm77/jAhLN6LPRyAyE/2ke2ipWQkR5UT4RiOcaYQGAdLaURMGIGS6UMvLqIiO\nx769nvAmAeWhh1A0O9FsPkSoOkD+JpV+94K1ORK6u5EtAV658QlGiwsYv/IJyD4DmnpIGwWJjWA8\nD/udEL4Ctq6AwXMh5IWa3SBE4tMVog7vi+pxoahm2lPasHZ4EAMqrY4EwhIsiJouvFYNNLTSddrC\nhbgceqIiCBptLGosxPjWKbgpG7oPUpW8gO9aorjx5o9RUpIx3b4YLj4NsVdSXx5k/xQDI8Nnkdr3\nBlRVRW06hfjVDZBlgxFvoVS9hdu0D7nHi6X/Hr6/uJYJ+99Co09gc1kcl874FjHPiJr4G0RrOJza\nDN79ECGiGnpoGe8gaE0i5uB1qPGPQ5sZnKnIJi/6nU4w6eDXuyjquZ6stT6w7SUUHqQzzIB+pwdL\n/4dQTpYjNH1MKK8/2hdfRxo+/GdvpPtJKmuc+DvkDeOv5f0Q3feD+LGecgpQCnwO3A18CnwN3A4M\nA04CrwCDgfHAr+hdF37/v7jXPzZiThAguT9EJoPPBelDoa4UTu+GvZ/Dwa9wV+2jPVwgfk8EBq8L\nrVKDyRCDp72NVo0Jm18L9gSQqyC+AqGlCcXiQBk9FlN7AE1SAy7tnYR1DaRHX4k3MoBHltAnm7Cd\n6cA9MZnKX0djK65BqPAgOq0IMQZ68juxxXcjes6CNRKuvgPh8kfAcAFc5TD9RdAsg7oanNmzGa7J\noimwg0g5Esmbhnz2S/SOKQi1VSgx4YTuMqLKCs3DyvDHGjFLfbGkdSAfWoW26k8MbM8jOCuSyCgD\nwsVS1JG3EywqRanUMHLsFHI045C6W6CqDOatgp4SSBiD0NmBZOzLsLzDDCk6hLm1DdEksfSxL4m0\nDiAx/y2UwAVsxSak7iAhdxVC6kCEbVV4F9xAV5YdU0UBzh0dKDECpVuDtB93Y8o4grg/gaaGVvrM\n1WNK6AcjJBp7ErhzwZvcfD7EsL6jYf2vwOaGaAPkKyhnXQiNMTD4eVj3NEQlQcoAiOrqDe2dM4qA\nWo4nx8DxrFTKMh1Y6jx4+jvRVKWxr/9w9lvSCLlj8Zj1tAX0iH1tDHBaGVy4m9iUvvzB8QDZ327E\n0p1LW3MnGwYNZ0apwvrnxjD4xi/ROoOE4iL4fsxsKgbFc+lLe4morIHYNoTC52h47SvExkIYcgNS\n5hKEuhJClSWEwhMQ7N9zQrAzqKAahFZOBZMZsKsEZA3CwZMItjqYFgOZM1A9e0ALQsICZE83YuUG\ngg6JBWPW0ifsIDHJ+9A2lIAhAOWv02UqxGzoRpOYS2O/aVjXncRa68I98jzigLmIrS60jgLEwoPQ\npx9EZfROVIJ1IFp/dpFzP0nE3DJ6rWI/4PO7d/hreX9L9/3d/Jz+sj/LGnN7lLeY0nEZtNSgNh6D\nfR8i9B2Bd8JSjGseh1QL6DrBdRzUCNTTbahKAAIy3psSuJg7Fm++lhGFOagx3+D+7iyebCtKspWI\nlh6o6CYoSpTcnEzG490Yc26j9dO1RGpLQA4g14DQtx/CM9cjen4L9SNgXwvUN8PqcxCTAsBZ92P0\nb5VQksbRpdyMqcWHrjuAFHChGATELTpUnx/0RgSnHzUynM7DLgyyG03OIN4ecgn3nvsjhBIg5Wno\nMwS2rodpCyEhFRUF4eAzcPgjiJoAjnzQtkJZAgx9GPY8hievHhYPRTPvHBtN7zJq29NoQq1EnmhH\ncqr4+s7Fb/LgqIpF/eILfPfbMHzZAtNtBC+YEIoaOXMqiqTX2il9CPrffgmOm16C/GdQdB1sbzQx\n9vhWbOYYsFpA9kDnRdSRIl5tHEy4EVN9BoGNjxOYlIQ2yomORITqTvx+NxVT76b25IuY0syY6+zE\nRSdQUbyLwtRk1MgYvIYcipUOQrKOy7UqEwPz0DXdiBD1BaHmMSgRdr6XcllfO4fX37qPj26/k6uE\narTdG3AdjqVr4eNUNB8lP0aDzRPiaPJwLH4vCzdtZVq5AenBPyEfuZmLN65BSBtL+ju/QajcSqdU\njEHTjhpvI9TVgeWtGujuoSw8jT7eMgQzMD4eoUiEpP4Qq0WNKYaCGuTN/RFGVuIp7kBjjcH3XDdb\nQ4vZX3EdL53diW3qTajtq6gwf4muRsVqbEdDOuZP8iBKRInuS8fldYgaJ471EoKvA26thPpbwX0A\n4t8Ex8J/5hD8L/lJZsIFf4e8XH6svL/JzyRmBPhn5o7o6oDTR3trvkXEgL03PaWqylQIO0jUVyJG\nzoKyPMidBXI9mo339tbwmpAC/jOg9yGERMh6mUD/HYhaFanRTdTZAoLxnZiDe9EeFtEXdmNZaMF8\naCjS8SKEIoWAy4jUHKBrtAHj6W5CmDBd1wLJ8QiR4xEffRqxbw/E3ws+H5y8gKrphInTkF0rCTU/\nhE5/CkFzDEGvR1F60JTJqIEBhJKiEesChAbNQcjQQ+pKKj7ZgWd7G9QG0HVHos8cT4PNjCVrBfbw\nw+DLgIMboPoLKN0P1WdQD71Cm+cCBtmC0LcI9gFxHSApkL8Jwu1onjyC59WdiNbRZMeV4W8pJ3zI\ns/idG9BoJGjooCdTg2tgG1a7Gc07zSgLbbROScQ6/QSSvobwx1fj7XwX+ZSKuyEZ/fgsNIOvInTu\nNOqgwzhbBXTJl8M1H8HIpdBpxj2yBG9uN1bj5wjhowgNn4k/Ppkuu4MSewed3x7n1MI0TGIXmdv3\nkJyymMijX3GqfzYl4UaM7XYmxg5hAJHEeRsIrz1HZtjNxIiphLoeQjy4Hyn1bTT2FeAbT8aLj3J0\n0SRacqex12LkgphBSXQEh6M9KFIn008cYLivDItZx3xjOCPL6xDDpsAntyHOuQNjWB2SLZP2D97A\nduenXHQ0EF1/kJC9EX3XdQhKJYJfwpuqYE12I8brENRL4abVsPtJ8FQgpL6AcK4TIb0WoaUR4aiA\nRu9FmB5DX9ttJHnepyXvIoVREn3qnqAiLoGuVDMpVQL61hroUVFj+iBMWY0u+gY0DccQqi8i1Iwx\ntgAAIABJREFUGHQI2v2gEyB6OTgu/+eMyf8LP8lM+B5++Ez4TX6svL/JL2HL0FuNdvt6+OYTOHMM\nNBpUVUYVyuFGG+qhY4QcXyKdv4g8MxORMsT5CpyqhuYasAlQq8DqAELqXegXx6AMrkfxWhAsHjRq\nEKm9Cy744YIH3pQh9jToU1HHO5AfthGn/4QapZYLdVeSZiyHdpHAzIFI2g4EfTNS9DI4sx02bIE3\nttHe9QRazVUYa4xovAnouxcjFL6APr4SX5oLbXEFksaAEPsmatPtCGILknCco2vvp/VYC8EOGL/x\nN5i7voaOWmac7MJTsAjqG2FOG1x9GMqyYMc90NWNGOqDNW8L7gwVs88D3RJq82Sk1n2gk2HgdQhh\nSZgfeIr20aOxPfk4MSPcKMs3IGUIyENkvAeChPvPUZcbRm1IRvtgX3QWLeaNFyHpRZBl6j9ciuPa\ncM5dP5FxI/ZQ+fQyUqRGSl/JwuizYNaWo7a8Q1FlOFnfvYeaWYcq67FV34iY3puzwtcTpNB/nqDc\nQ9auVmKeKyLbuARZ5yF0pAOx8i2E78vIfuhZMgQzYV9toodkqriOVKObDEsd4epzqKEmgkIXqvUE\nXsObGC9eoM8La0meaSR24K8ZIvSgP/0NTvtQPk9rZmjdBabX78Nq8ILZx0L/ZXRqTHiUPAzZTiT3\naFjxIaa4M5ja9tGti6Bicg71u+6gn+zGELEWNboA4Ts3gsVPRHgHakAA7ePg+xJ2TYTFqbCsGbY8\nCPM9CI0yLnsfDI8IqEdkdPdEY+y/nOExYai6k7gaTrI3azySNZbE3dVIb/pQrtZArhn/EA3GpCG9\n8Qi+CaA9BjFRkLcHFhaC/f8p9uBfh//h2nE/lF+WI/4jrp7epDwmM5Q+Ds657BO2MOasg9DRfRgj\nBoM7CE2bYMHjcPIVGJULe/fCmnpo06I+nUPDkvk4N76KrmICrbeUY95/gRJHLoNOBRC2n0EYr0Jk\nH4TuscgnN9LzjBf7dzEImia8VT5a4pOpmTKaQKiOnP3FmMYPxei/FT54HEZcQCyzE4wxUniHlajT\nLmLymmn/UIP+9iDWJgs9d16KvsCDLvVRVH0C6pbrUJOm0Na8kWNPljH85laMiTbskTMg9XKwfgDB\nU3zc8zuWnDyDLrQdoakHJXw0XlM/ggU7UOoF9KYKfNMlmnbqSDcqaEaMRCo7CrIWahshqy/q1Zvw\nrvoG/2cf4nxRAlcrqsFMcMoiAn4dlloJVc2lIOV5Ug9dxBqzFHQeMN8IW+4gGHmer6MWkdC3mUF5\nHow7mmnI9NNo02JvjUaaGcHBMCODy7z0Ky5GaDuPGqPBtSMMxqRhW3w9bk88nDmE2a+DtS9CXhDu\nvB+mRcGxp/BXxeJaX4us1WL/ZDulo44D63HgIUgPkWW5WCz3otqdKGfmIie1EDomoNmXgO+Bfui6\ny2nvP5L9GJmFHQ/R2LetwRjuRzw1A27+DdQsBZcefCeQjzTRHa3B4DJgKE1HqDgBD7wJ2ijcm1+n\ncPcpBuYE0MZqIDmE2NoDGnCHTPT4bcS4FQgLwqgwiK+ApqVw91dw/ShUxym6D2mxL30Qiv+IGrcS\n5Z5FcBu4+kNTdDg6x2Ws9i6mO17ibv1ATDuHYK8rJpCehKH+VhhSBCePwSUbwd8CZV+BzgHDVvxz\nx+N/w0+yHFH9d8hL4sfK+5v8MhP+NyoPQ2QG1J6Gi3uhdjN0r0C34Aa80QM5FhdN5rjxJB14Ha74\nGHY8Dx4RTuyHvVWQOgxlWC3+xDqclc10ZsXhGiiSfL4MjAFatHpUTT2CRgudXgSxA7TfIbn8hEpS\nIaeICvNALprDKQ1L5ap3t2G2hNPT6qA0rgmneA+xV3nQekMohh60bQFSP/XgjRFQmpPQJ1RjaAlA\nhwbp5FYUtw0chQj9ByIbp1M49wG8ybEMebI/+osnUUMSwXQH2uSFoExCrvuc8ZveQ9NUSGdHOsaF\nQfz5Ckb7CUxxLgRnA/hC6Cds5UDyx8hLt5MbUQwzn4SESaB1gHQS/A+g3j8D7XQNckcbktuHMO59\ndLp4/J7PoeAgQtFbGH93PY05rWhO5aEbdBmivZn9IwbTXJXNXNsaNG0BtOcG07nicbyBQwzanEBz\nZhbbatdhsbuIeeNbmu40YfoYjEIMhlQTGoMIeRsxh/aBToWIOSAH4IqJELWHQMUZulfrkQako/1y\nEL6cRkqNt6IniljuxdQ2jAbnPhosa0jfPRdh7jHQqGjfikJqCOF9Kw3/gRDB8X8ij3PMYDZWZExq\nDbK6AbUc0G+FI+NA1wKb+4K3P5KtCUdzJ55JmcjdR5BTneg+XAErTyAP/JwBSz6n9tevEp3ehfl4\nFwRrUG1u9LVeyjVpxGSfA7cFNrshYSqk7YWvR4H3Fmo3nSdq3l5o2AiFrQjlVyEuDNCZrqdocl8y\n1pQTXlzFo+aX6YiJ45URx8kIX8b8d+7Fcl0T1C6H3Ta46pHeWoIAUZOg9b/3z/pfwc9E+/2yJtxR\nA+tug80PQMsFsERC/3lgEcF7lpakaBxHC0k3mzjQU4F9/ttY7Umw/l64/BX44h3okAjl/h/23jtK\nqjLr9/8851ROnXNONN0N3eScM4iMoDgGHPMYRscxj2FUUDGPo5gDKmYQQQQkSM40qYGGbjrnWB2q\nunLVOfePnnXn/f3W6yzfq87MXd7PWuePOutZaz/dp/auffbZ57t19C6JxlrVjgYPrlQbusbTmDq6\n0HTIdIRHoAuZsG7rRmRq4aF2OL4Ll9FInV3i7EV3sjktnW8Hz2ZKyERh3Unk0bkY954jrqeLwMWL\nKMkYT6siMHc7MGj0GOwG5NTR9GYH0e70YKjyIjR5hBpbCMWo6Gra8W5aScvXG4keE4duhIFWEcI/\nRINB46E+vQWr24vWOgflXB047Xw0ZQrGCTeQPu4RDEMOohl7P8JaiDi+ARGtIJfVEjf7JS4UVZPx\nbQlSyoX+1rm0eai6NNx6F6L7IUy6NqQWPzinwcfPQfpslsnpHDWlUTR9GQ5bGenFLson9xGSO3j1\nsEBqc7HYcRZNnwmSQngtY2kxfk/WqjOoF3rYcc9gRkbkkfXs5+ieSSSsdBzaJd+gIYSmcC7iQF2/\n9rFdBV8KROeBpoagLoPe5/bjdJgJvmIkeFkK3Wkt2LVJpLeaSTKtQScNR3T3EXz/MZqmdmJrD6Kv\nq0KsPE3wN9MJVPdQHRtPmGMfrQNOIIkJ5IrR4F+NLA1Gu6UY4Q6ipp1C3fshpEYhLv0Ydf7FqGfe\nRgoo6DRRiM5uGmdb6BsxDOX9RxBiCJbaIGHOw7R8Vo6wmTFMugxRcYT2+Wkc1o1ksKUC0eAGUxzs\nOwNtsVCfhBpzAEIbMU36AOzHQCoFyU0gWdA0No7UQx2E14xCEWl4bkqH1FLmnNAx8LOXINqEbHEj\n5U1AJLX3Z76ps/pHdAGYEv71vvg/4GepCT/Ij68Jv8BPtfeD/GrLEUpXF95PP0E5+Cla+SQEZUK2\n0YScNhTZCiKApWArZwdlENvsI2HOB7SkjOQetZu37U5sj+RC0iw4coTACAXXwjTC2k5DzhqUk1fT\nNSOWiFUN7LhpGqagEW2fTLUtlqtmfgB/vBIuvQoevAp7UCU4xMi2CQupzhnGKIfErM33Ihss4IqD\nA+3wp9chfTjoIvEXX0ens5fYC3vQZMwErZ66llKMPUFih0+C75sInNuHagvQJ3IpTzRgn5RFTEsj\n6ZXnCfP00pEehabUT/iSXs6nDSLYPZzIyPkkxczlMXGImWeOMitpHoSuATmVssZbGbh6HvSmQF8I\n4jupkJKI1muI+O1DcGYpinkAQf0ZfFOWYjqwAdm2BSpiYH4p7LkPUtdCUGJj8GmeyryG4dr9vBwq\norJrLg1hEfTuXMTlgaegNwd1TCIh7VaammzE26PxpSdTmtRFolVPVHEIZXo6JvEnNOc8kD8Omo/A\npuUgYqDlMAyVIXIUisNKaOs7hJo8SK0K3neS8IZ5qTAMpFGN55IPK9BnDYF5K0D7977YJbNxxBym\nb9ZQEj8oR703iC//jxguewYGRtOzdBnCeDsG6RY0QSdqqBiNpQRevRpVG4E67RiSeoSQU4fiSQdv\nB21mHZrGIHH8BiLc+O1OGpPLaB9rxdimJ8owA2tPBMaqzfh907HOvR/2vYtbf5LQ1rXoqgPoFA/C\nqoKIhrSBqNUHUaIEJMlI0QHUJBuqbSyibjPoBFJwDpR/hxqcRs99NvzycaI5jByMgWMfE6q7ESVT\nRlOjwsCHEIMeA0n3L/O/n8rPUY5Q7D9+sRTFT7X3g/yHJOT/WlSXC8977+HftQs56Ee9egVS6W60\nO/agb29BGp6KKHKC34PJEktgYCdItcQxgjtD37G0W2G5XY+ufguO6WkE5w8nAiOhVEF76jMYXXrC\nPvLQXRtOpSmNma27SGj3UBucANlaGNAF9mtQAz5OzbuOihFBFnz3NQs6yghzAp7BMOMvULwaiqrB\nvQ+qdoLfjq5zH4ldIZQkP6rYDQl3YL5jJ317J+P/9Aheh526YUkcvSwP81E30zrCGKtfDP4N0FeB\nWpRPhLGC1qsLUexuUp+uo/GlIAm7P+VY1nxyht9Kn04m+P4cQtesJOi8g4Fb54IS0d+S7m+BzLHk\nOBupGmpFbdqMdvIlWNavQBuRiW7zcrBp4KAe8mcQ+vx65KzTIOKhzMKs7qWc9Uh8njWeRRVRsG0l\nf7nZzOSoh0CTAL/dj1BV5K5txPceQ1m7nO4H20gK/ZHkvx7B9fseDL4FaM5+ARfOw7JiKNCDYgHv\nSejRwqybaEq6jOA1FxM/OBpDZD0hvUAXkU6f2kRaWSrjth5CjLge5j/W/53oskOXHWZPw/baLiz7\nDsInXxLqvBP/7z9Cn5gC7mp2y3Zm6MoRobUoPZ8g++aDvRzcbkTSYITmFnrCV2JxfYbGEAKvg9iW\nMI4sysRd2ktG3rt0bZjDgVFLmKCZT1JiIorw4bTuwB4Vj9/0Plq2ET7+Nozr6qm5Lo0uIrDYu0nO\nW0783m2o9s2QEIQ4IGUK5G1BChyAE7/DY7NiDF0EmlMQMQP/zIUY9h4gLPtrpGAlxBshyooU9SgY\nl6McSSHY7kVf+CMCsBoCdyWYc3855/wXEvoPiX6/2kz4fxt9bCzivm/BFt0/sHPHRki3wPrZEEim\n3paKT+ojy1JC3wQTFpuX8tWDid5UT3Sena75iQQGJ2Js7OBs4XyCdScZc+Iw8loJX6IGzcL5BAuM\nhC58TffBUaSNnwdbP4YOJ2rBApbenI2px889Rzej6dsFrmkQNxZmL+vf4Ion4erbIDIaelrhubFw\n92ZCNa/RoT1L2FuRKNHpqMsv5nTwM9p6rBjONzD82x1w6XJKMzoZ9vka+mbfQVzqQtzaOlyHFxDT\n6EEz8jXUjCvofuq3NM89TUSNQte4e9G21JF46C3qk7J4P/EPTAq1sXDj3+B0D6RqoMcCL35IoOZJ\nGisbiRmSjuVCK7gaIDIESX+Fqg/g4rfx+uehN6xDlPdB6XPQVYZao1I3LYZDpYMxiyzmTxuJZG4D\naR+kvQYHPkYtmonLs5P9wRImPfwNRmMzvuEGxLhh6JVRYEqFow+DPQ2+qABLBHxVAk+Mgavf4usx\nY0g8+w6jzy1F+cpP0B6JHD0cjALh240UIQidjoC8qf3/50AAdf0aiLQij9AiTXfBzFtQ9Q24m3zo\n7t6JPDgeJXc6mrvfI+S9C8k5C177FLHtc4i1wqCROBZdSfHwz5lam4bU0g0HIuAKE17fbrr83QRO\nhGOraMGUMQb9km/6tS0Aek+g2r/HHumghW+wWzPwq71IwRCmQBwDi9sQTheBqCxiUn+Pv3YpWs0h\n1PR5yIkbwdkDnyTRnJNBYmIcVWYbmft8iLAr4PVH4PGHoP0sJCTDyZdg9D0o9ieRpLsJHvwSdcrH\naMf/E1mXkBfOXA2pd0HkpF/WKX8EP0cm7HX9+MUGMz/V3g/yqw/C3BbfP9Hg2lf+ca6nDg4/BZOe\nofHbdUjjc/BHPk/S5gNozg+Aj4/hv92A0xdL1LkslBkBTi0eghxIYuDWT9F1lkKphBgYQsQtRPGa\nCCqrkU/okQf9Bk6uA60EFwfoqsknIpCJ6N4ESV5Qc2DoE1B01f9nm6rzAsprc2FiLmLQvUhhUwk8\nm0fX1y5idpXRZrkJi3obnR33k658AXvvIzg8jlBgMw7bdQR2v8exRbcwybCYbvaS6p2DcqIGx+NP\no58yBeMDd1JRdTEJPVZsujk0xGVhO/IhK+Iv5q6KLwnz6aG0F1ynwOzoFy6Kn0Cg/RQn5lkZVV+F\naGuAoX+G3R/Aza+gKB/QHHacGGkzenUYbEmFuAX4W49yciLkvtpH+IUWiPJB7iDIz4dNx6H5PL45\nt7N+RiyTe/KJ12bAmw+jHt6FmHwlPLmq/1XkcyugbB1sqIBgCkSlwUWLoHYNy66+i/kn/kx2bQ1e\nNESXXoTw+xAiCGc3QVo2KCVQeCOMvBw1PBp12wZEzXbEZAfk/gnsD0DcVXg7v0L3oRXXGQnTtVMQ\n1+RDqBpJtwyohQ1XgnoOyk0EewQBWUJvNhJq9qDtC6HcEEPPiPXo14zDO8NKRGkHoiEMQhG4hkyh\nIy+LrugQqvM4lrBLUPp2Izz7EW0qWc/78P11G/rKVWgzr6Quzo2/9a+EbTqNZs7vkHRrsKoGpO+C\niM6TtOXkEjfsRZo0rfR6TpD/wHYI18F1N8HIW+GTKdAbhMJy1JJMxLhwVDEDzzsbMSzfgBQX99/7\nyYU/Q/0KmNb9H1G2+DmCcG/wx/8dYRr/T7X3g/y/B3NKCBJzIa3oH+fOfQopk+k+XINn5wHCFw5E\nfPQaxq6LkA/tRRTFoEnuplaXgjdFQpRVEFHVQXpPH9ruQ6gtibiuSkZjGYTkSEAp+QbvsDi8uiSk\nzk7Uu+9FmqxA+hqM2vGIkrPQWQvDfgc9zRC2GeKvBdnYvx+PE/H6bahL7iCoeQVVrUdyj0P9chMu\nbTf6SzPRH30G7acHkSMEPbYGDDXr8Q8/jjbmESzhD2I59DrJbR6qBrhIFb/BLdvwP/ECwbIywleu\nRO4pIapuKw3DrEjh2cQ2rMF49jRJWiuJl70PBzdByATZMyElBrJiYMsR5K5yYqrbwNaF1KXC2f0w\n0gWynlDZTAKaJkwfNyGtXQe5MmTfiBIzEk3jZqItsxHFR0EfBSY7tLfBHd+jLvgLXw9xMtV6BXFR\noyEiEUQvImM4fPUu5KRBQhqcWAEHfDDeDfYE8Lhg3jWQnUz28QdYPWAJ477dQ/DGW1HyZmBoDcIA\nJ1x1F8RaoNYJY3qhtQxR0or4+n1ESRlo82Dx06C+Cp/nQd8+5DYn2oJ03HtbkaI2ognsgMpd0FkE\nE5+A2jowD0R0n0JOKiR4qAdtjA/+5MFeJxPavA1rtBkSJaoTE4gwWKjPVOjKiiKi5gTJ7RZCllZU\ni40U/Z0k7H2XyFcaoNDNNncD+X2nwHmEcM8RzGoKh2Iiic65jh5tBtZTm5Fd5wnpx7L38svIsd2A\n7dhu2p0nCan1WG1m6HDCnhWgj4DFL6DGNhHKeQmpTUWkeJGNbXjffRFp0gGEchbkCQjx9/CgqtD0\nDuS+BOacf7WH/rf8HA/mHliqQ5WkH3U8tzT4U+39IP8hVZF/I1NugK8eh4nX/ONc/S4czny61q4l\n8/336ZDfwDpqGZolt8HsiZB1AbQDyG+X6AmvoXuMjVhfHuJoMeQPRlV70BeuoqfzRaK+6ezXqdWa\nsHRpcFxxAUPnR2j0i8B3BPKnQc5f4PtTUCZDRztkJ0L9s5D1PPi98Mb1cPky5OQipF2vgb8VZetE\nXAkTiRjrRFd+JUqvgdDY6wnf/QANVzfTlygTpj+FpBkINWch/XYsPTvwhRrYW/saSStbyB4zjfDn\nn0M6eS+0rUOytpPTvpwK7Qs0pkYxaPHn5Ox6pl8svaYe2l3wl5Xw0TUQfQlUr4V5WvQWF2qsBloU\nCAccwL4iNCkJCFsymssfA7MZ3psCEyah1ZuIqHkHUbEfppph0FME4vaxMTuHFN8+RpiWsJCr0apa\n8FWCYxccex7mFEJeMjxwA1xzP7iOQ4EfzkXDLIE64WV49wFEQRBN5lwGXjiOvjseU8xfOB75MIOr\nNqIfdSdi6FVwbh0UTINxE0CzG4JlEMiHsPlw5VIw+MBgA4sDJT0J9bwf0VqM8dFkPEutEN2GLu4o\nzL0PXqyBsGtwjx+Dr/YU5o1taAt0qMOsNJosiN5uwvQu5NN1WFq0xFw0FHd4HBm9Sfi0l9E49hBd\nISdJZ5yYQ4NQ48IhMAzZfY6gp5HRI/ag7tcjRCUos9AHBJOP7KK15wzNnmQaQzmEIguZ9vJmihZ1\noqzaglxymPy+IJ0T4gmKLjQ+M7S3g2YwvHErIXsvobapyK0uRLQZaUw0hvEJeN+8gP72YtTQBgKa\nZhRtEYb20ciRMyBq+r/HR38hQv8hOeh/xi76+fdkwnoz7P0Ixizu/9xTTeDcHpo+PkrmSy+gHvqW\nHs+HRL3dgUhKJSi7qXIIoqJSUKjHF+WlwpXHoWu+pKi9DnXNAejrRpPchv5vG0FuhUgnmkA3yvgO\n3O1mTF83INUcRVQegK5qaD8KZhfMfLFfDyG4APZshOoWsJ2H/JGQ0e8AQlER607Cwr/R98Ez6C/y\nIBd7cRfGIMbcgabDjm2XBoOtHmlfOAydDOEx8PwdhFrLsbSdJWXpfqKn3IrlplsQxx+Bhi/AFgOZ\nExDnNyPkwfRkJqJaI7E6osBth0/egz8+Cil5sGlZf3ZU1Alx3f0CMwu7oXYLdLdCIK1fW2JkBO5Y\nCZPlCtAZQE6GQx9DbhqayDzErnchyUPTQD1fpyukei2M8cVD3xHk1jfA/hn466HbAqSBQwtHSsHb\nC+VloE0ApQXm3Q3jl8G+Rai59XAqC5G6kbwXytFd/Rhi4BhUexmGI9/CzR8gSyZoOo4qJaLqixGW\nQ2D6EORXwWyHgrugaXi/VGl7OMGQE/mYB2wupIQ+dDMfwLexDbXZiube76GiGCKOEwxtQ7/Pg7a+\nGTHjekJz/djWOwi3t6DJ9HLqogk0NEYSscOESg/VC/Q0mlajFT2YRRheTSkOcy1OzWnYW48hYSGl\nyVFIWhe22BbwGhG9XgLt9dR0SrwZuZSNGb/nOv9REivPYqrpwLi/B2VTHWqLgrj4BnSDFtOaWIUp\nQoMc54WiKBhXT2fIiu/ibJQ2H7KcgHLbcOg7ha/DgmZYPVgeBtWB/qQTyXUYjJMQ4cP/9f75A/wc\nmfA9TxhRkH7U8dJS30+194P8emrCagiaX4O2j0HxQs6bYBkOsgneuwWueBZ6HARemEbzYSfJg8cj\nx8XTfmUQfVsGtqG3EooM5x32ccUnm4i88BL+QXo80YuxbKzGUdlF+J+fRH3nOsRJNyLFiJraB3aB\nepWKMngg0ssVnH/6JuL9U7GFT0br00LzWdh3O3gkCFpAyJA2HuILwKOBugcha2n/JF8g6NiC9OUn\nBLJuwLt9G1KMFu3JZ/CM1CIMk7HV1COSIxELIuGtXiirgnveok1uQ/vpI5h1LkINQUzzJoMa6A/0\ndzwLnW9AMBoyX4BvlqPqTTh+cwk2aRg8PhpRUUvwixL8UjWmKj3Kwb+ixn6DIlSUketRIqwoZ+5B\naTmP4ktBKmzHcKyH3nkDiHKOQACKkJBOn4CsKahyAqxcRd+ULmRtHxjB5POBZQQkPw3WcbD3AGxd\nBa5jYM0FdsF5FTpdYIuH7k5wB+G2FFAFaBTUUDtK0E8oR6B9GMSTy2DWn/GtHEcocySmhiAseQ3a\nzqBufwKlrRX5Rj2UXQ9BE2rHCtRxGUh962CzDnJ+D2PvRb1lIL4kN56xyYTFFlI16EZ6/vw8YRYZ\ni17BN/lSxFvPoZujQxqZjNHZitVnRkqPgAM9UHAHyhcPU5YbhTOikPj9h3DffxeJGYOQhRELE6B9\nEyg+WFcO+UOhuZUacxnayK0k6TWoLcfBIVg+eB15tSeYX/sFclQbmgs5+OzN+Lu7CD6WRth77ain\nHNjn/JHIxvcJbPPTesNkLANGE3N+A1ibqB1jJOZ8O3pnFoFdjWgv+TOa6bEodbGEcq+iXb6f9j1D\nGbrxIdSnn4G1tyGuuwCa/9+YCXcdnLwZ7AcgcREM/lt/eekX5ueoCTeqP36fycL+U+39IL+eTFhI\nYBsDhkxQPKD6oXUldHwBvbVQfxDf+i/x9Z0hcsGTaJ54GabPR1R54OrH8K14mT2uYxQlGkl1Hcfj\nb0Onc2FsqUI61o2REGpkGEFjE5plj0LHUcRluVDUgjM1GX34Fcgpk4k6WkX1sHpsPge6UCNoasB/\nBAaPh1O7YUg4pDaCr69/rIq+BD7cBFOuRTWY8egfQTfsfeSEFHSTJmOYNBtN31nERQMRbQeQjroJ\npjoJ9XXgC16EZtg5vKvWoB4/hB0rYToFQ54bIbdCUw80d0G6AoZkGPQW6G1QOA+hNaD/bDme9FKC\nnmJ8BdG0Dn4PL4fwRXTise7GFxUkgJZQynBUSQH7XlxhXizbojFG9OFYNRhlgQ6lrZnDKY+jt5ix\nRj+P+vanVEl9HBtuw+TqJaq9BzQm5NRFkPAw2KaDIsHj98Jz70LTEbjl9f568JSBYGkCRQ8hBQqC\nkOMGTzesDsLE+1Cz2qC8EzzxSCU7QW2ie6gO65gVSLoI+OohiEtD7FsGnjDINCLe2Qm5wxHtKsqo\nOETjfsRhL0x7CDUxFfYsR3Jn8+k6A/uPNdA5zsTBuYMZ8tIWNMVNFGcFaFo4maZQGC3WYUTHH0Mn\nedGGcmCrCdoPIdqbiS7rJDmqmtNXzED7zlHs23dSmZFMfFQeWlM+dPphy7fw+/uho42+vq94NXkR\ns8prwdVCb3ISs01vkefSIz9fgpwFBFW46wOCx1ZzZupI0taehVkmXrzuWqaqTQT+8DRONaS7AAAg\nAElEQVTlo0tpz/KQbi7DtbOITmsPEW4PfTGX0ji1kFPOGr6JLaDqXC2Fr3xHwFZP8iOfo4kKIS59\nCbHrQTDGQPxwsO+H6jeg5m3oK4eIUZCyBHIfBY3pl/Ph/8LPkQnf9YQVFelHHX9b6vqp9n6QX08m\n/M9oPo3rhRvpqLWTvNiIZuggkG2EbKORenJR1r5GU1Ml637/G67XlKJJuh71qcsx+T0In76/fyUz\nApoi6U3tJeyOEqgqANMFQkej8StODG4tYvAgaK5DiRtAU0KAGHkWhuJvIS0BYnPhlRVw/V0QpgXL\nQqj+ABzl8FEl3PEh/kFOFJoxcMs/9h70w5qbCEwoRHp6OX0vTsdcux/Z7EDpCoOWNtw7ZXbPnEh2\nRCWRjYKoE42IZAnJY0VEmfqz72AOzFwOlv6X5EO2IE7pEXSnOzB+sB+RNxrl6ncIWB3oz62Dc8vB\nJcNBT7+0dXQSjvs8KD1hhFdHQLKFnm2DCdx7jBixGHflm/T0monKvZdicwVJn67izD3zufjjN0An\n8FWZMFzzHIQ3g78K9gUgqEBNHTgaoc4OqSkQ2w4NHrjsNfhwJQw9D+MuB81oaP0ONAUEO19HnHSi\nusKRezygMeHOisXM32+n3T1QUwwaP2rAiXqdDrFORuTNheYy1OcPo5woRDoci/uq6wixE8Mze+m5\ncQKB2KGceWM1mkAnBUt8iLpwjH+uQU0JI/zya+D0epjT0l8f79CBRQcHzf3i6mOvhg/ehVlZ9M3s\nwZDyLf5VE/EtcNKSnsB+6Q/Eb2lhZtHNGBMy4dwZ1p1ez32LF3P0wdlEXawBOQbaGqEhCgxe8AdB\nToJ4E761RwjYorDMKOREoZ3mPVpm7NtF8Cj4H5yAkldNZHsTN3m+Yuyco7jqwxlXtZnIunRiu/Yh\nfD1Yb94K5ecJJT6F9JcGhCYPVn0PxU9D4iQ4+mcYeBnkXw+WrP92Is2/gp8jE65Wf/xbgZmi5afa\n+0H+XxAGfLW19F2TiXbWKKxLXiLk8SHnDGUTHzNT+3t0L92J+OI9/FdcjG58K4FtKcjbtyGN8MK8\nR0FeD6sqIU6iNy4Ky00fIPs+gQ4Ifb0aVXHhvXYsFp6HppNQ/AGBxbfREXibhHePIjr1/ZmfLwsy\nxkBKFiQlg3sFDF8IdSmobS24Fh3GLH+G4L+01jR8Ar3LUPVVhEJ63NEarPLTiNalKFt9BA0aAvjQ\n+/x0ThpK5J4T2DNskCEjwgTaqEswBaejv1CFdPZzsHoJdLrxZHZjqipCM02GNwSkSqjOGsR9e2Bp\nPrjNkNsFNVpIv47AFeOxK48RZ3wVUfkyfKOhT5eBd8p2ojV/gCN/xV6Qyo4JueStOUPe9nJEihHH\nRSrG0wGkviC6sATQpEF3PSTVQbSAwzIU26DdDZMyISIEbc3wche0lcOz18JT2/onQawfCV1nCeRE\n4DszAq0xC63yGaEWI+60kYSJOaAo/cfOFXC6EdUcQH3Ag+K1ItcnIaIHwIIXUGxVEDiAf/sBlNyL\n0b72NxzP/gmftQNbaBLes1/ha/wapUPFmhqL7ByCdfd+mNPRr0S2fQB07gWLCXJf7J/Hu+8TGKDF\nW23C/VA6Zg/oM14lUPY6vpjtNMdE0aSW4xGJDHFeSkLnFva1tfHssKd5+a4ryB2bAb9dBYEauPAA\ntDmgIh6mSqiHTqNsbEFMl5CmP02vYztuZyXm7h70B9zIYyci5e8hWAbHt8zG8rs2sj+MwanZj0kd\nRjA8BovhawL6dPTeRJDOg14gnZcgEAFjhkKkBOogOL4Xeu1QMBJUBdobYdLFMHkBxPxrXnf+OYLw\neTXtRy/OE3U/1d4P8uvrjvC64Pv3IC4TfC5ovkD36o1EZsSgU+pg85vsvyiBvC4tBqsNvdsBOjMU\nFqFDB831aPtcsHA6jLoY7GUwfSU0zoOjfszV7Th2LiZCuggubMA35RoaEo+RGDsedCPgxEfQcgzt\npnVEzfkDnQuriO5yIIa/AsIL+huhoQpOvgUNCpw8DO5jcHwT5g+siN+9B4tuBN3fdfiaO1C2R+Mb\nNp2e1O2EvAo2dR5sfRqJDNRQLyZXBb3ZEYTXnUIzKpeo2+uQlnmRg8kEFj2MhwM4RnWijBqLGjiL\nuaoG645cJPU0bPNBXzIU3UPb5yswbMhDo5mJ5cXP4e0U6JZRRw+g0/Q3YrSrEN0vQigc8q2Yuj9A\nezYc5gyh8sYPOaJ9j4ldh0nIrkONlpBRMcRbsU9wEfmND1XXjeit7Rer6UqB72uhAMiIhpGToOAE\naGeB/e3+7Ct+ILywrz9o77ka7AL8FkgNJxgYgEbKQbjDCcR3oe2shuzsfpW8jiqUwSMIuQxoak8g\njAL17Ey4/D6w2eDYe0hd1SjpregNgxDr10FJAxFns2gcVonlxCFMO1fh/yqcqtRwitsqmXWtFnwS\nWCJhWyyEW8A4BqX+BOLUdpTi3UgDu0HMoP4eH7HrHfinN6Pr3oE2/0403EEOkCIC9CnnUfbcjntS\nOFnt5aRpPGRffhO07Ojv0TWMgFAyVH4BcbH0WjLoiDpHhkmlI28WsUY9+p4qDM4OdEOegyF61N0r\nwC7Q7IQhabtoaoxBampE3JqOO6ydwBkb7vRoTFIv5zIHMHhzGJpsoLoVVXUgejPhfAnYWvt7ujOK\noKYCdq8Hgwm0OvD7/m1u/X9C6D8k/P26MuH6UvjoXig/CKMXwqiFkJSLGpNBYPcKuhwnsR7fhjbg\nR+PoQwlPQBOVAxfa4M7nISoJdNvBNgd8MfgOfoLrxLtEDrkWAuvAXYu6vxt/ZhTalDBUYy8ECmle\ndDfJ0jSEMPXfvlXvgfWPQYQbJbaWjqwBRA3chuaNcXDbERAGODYLIj0om3IJuhMI6V9BP+ElRM7F\niPB/ZBuhP42jo07DmV2nSVylQf06El1xNxGDE7AObQCLG0fmYvRRi9GevgyDXyL4pUxvr4RxxgCM\ni0ZCsBPv8GH4nF+hLzYTiDfhTS0HvJhbZ2B1z4V1z8GN8fheb6Gy3IpwV5Nx6yiMO3fTNdaCbnAW\nlqgy8E+Dik5oPIAiQUfKNPTzV7HZ8yRDy46Q0+tE7urFN6OVc77J9LX/hlEZKXSdfITo7l50ujTw\nNcCo++HDDyFzCSy+F1oPw5lXoFUPxVvggaOQnAptB+DQIyiuEPS1Elh4K5LjDZwRv0MfPgSj61m6\nNW3YjtegpiUgxXxBww0PUbvhJLIR4jLMJN8RILg/hDr3TYxjpqGLi0OoIdTvbkccfh81eTRiRzl8\nWIXr61GYTtdBpgEKxqEGS2nr0LPnxRamXxlDlKGPYMsMNMnbUQMKgQ1+9IM9KGcgcI+EOk7liGkU\n6dW9tGWEMbo0DvLfBn38P76nK1dAhATjjnN2WRNfvv4MtwS+JLzsXbS596E/44Kmz/Gf7mHfTZOR\nwscz6dJnoKmXwLYbcFlL0ZdaaQ0YyB61BqWxEeXrFUhVH6OabPjlTrw5EhFSD6hJNE0zkwC4u7s5\nFSpA7+tBT5CqkbdjFMlYi78i3DEEm76EsHEvYSs9DUe3QFMVnD8C4y4BdwiKd8OwifDQiv6g/Avy\nc2TCJeqAH724SFz4qfZ+kF9XEP6HJQj4UHU6GjlHBYcwtdkp/GQHpiPfE0rKoT3NSIIusb/lytkD\nBh20XehvF5t/PWTcxnZ6cXz1EJdqw8D1KnQrKC4/obkCOfsJxPc7EIfKUaf8HjHriX67PhfuvhfR\nN0cjVz8DI1fjP/4uLt8xwh6rQFp/H0RNgc6NULsC9fSl+DZsQp4gIw9xQ3QsQns5Ag20NcHRTZBq\nJZgxAa/0PZYmBbVb7e8QsIWod4/AmjwLT00bKco7SEkqoEU1mHFu9aObkYwht5xui41ww2qkzFmw\n7hmoexQ12kQoV0ZTeBjagNP3QvTNcHQf3lNv0m7Kx08lujlakt4UyIt90Ckg3AyGXnzOXBwhHVKc\nEZfSjGHiY8SebQLCCU2Podn7BC+Yr+aPWxrIOPYWwaFmvDlabL6BCMc9sPVhePLvcxP3Xg/efPj0\nKahwQMY8oBY1ugXCk1DDBuOPKCGUcgE1xkpvWCS2pHkYAwHsmhqigrORdr0Kkx9AensD3k4Fx9Fi\nwgZnEppqQ1O7i+aVUfhnXIu/rQ1VUWhSnCT1fk/qZV7CzANA6yZ0wYHkCCBueAYq9tK4wYSvow0R\n7KPqMgeatxoYdHkG0dmnUVrNeD9NQB6cii5qB94rMgkYPOxPHkWhVICdraSVTCcicA6Gru5/Oafi\nPLy+HO5vBjmW0kPjOTApjjENH1N4fhdq/gI6O/x4KktxDZlO8pilWHu9KNcNwJ+XhWtZAuEV5XSF\nrkDa8QVRVX64eGp/rd+aDiXPUZuqIWlnAlp9E7T3ofjtBGcb0GY5EadHcH7KlWTvfpDe/OsIdh+i\nNzedvnVxOKaE482Zw1zNzP5r0tMJ614DWQOZg6C6GpprISUbrryj/67jF+LnCMIn1B8vWj9MnP+p\n9n6Q/4x8/F+IEzttopIeXSud1JNMAeO5Gn2cieqbh+Nfch2huIEIBAkMg78sgTsfheMfwv4V4KuC\nnt3AbWyih/pxC7j0u7fAmoYyvgHV5CPYFoZ8tARh3w1XPotY+xaEF0H+JFj/BMZDb6COE6hdExAt\nz6OZcw9y1SHUUBDl+2+Qsl6A3KdhVyrK3QuQJ+5D+Ws6crQMk+ajaPYhdusQW2oQhQPBocfVsRl9\nwVhoPoqqDxEIE3TpC8nuKoXYYnBqCOljYHsvaowJEevHEuNDGn8B1+E4wqv1SH+ZDXs3QdtSCJcR\nmX9AU/IuHCkCy70w+k749ibI/CO+Mz4iBkyg9/IQ2kfKaIoVJB2PRE7vhuxYUAcgfDasB8/gvPRF\nUpw2xNd/hokPQ9EiZCGI1x3gL8eXo6vWoIxLIlgKphOddN3tJXzNe8gzh/39otX2B6iskZBmAJ0C\nCccgIwumPUPIuxZpVTn6b8oJ/caMu3AiWBQ02lsJqN9gRIss305IH4B3lqNmzMdw06MYHp0EUV1Q\nW0IgLZrEYT60SU2Ii+dB5jBeStBw54ZPMFmeQ1XDEedsIFvxTI7GlHMXFL9F8s1XwvCPKeUCVvpI\n035K48k30Y2LxNWsR/tgH1EzlhMq+Q3GtU2IwdPJbpcwZtQTEaXSlulC3luLbVs8jD4KTz8IL70F\n3mvBfAkFo7w0eJrx6jJojSzllE1PQks3RcfPg3k2HL4E1dNFMB/8Vw0iUnoH4VuE7synNBUtJqpg\nJMy4AkJBOPs4gak34dKtx1tRB+dMaDIHIFUfQ6534WmIwJTlJE9uxb/gLJ6Ti4kNVBBjLkDOuRR2\nrgFzeP/8dIDwaLj+iX8414R/oSP/DAR/ueawxcATwEBgJPBPxZl/uZ+q/0AaKWUtT3CQz0mlkDnq\nHQyq6EH//T2oX4zD3vkVAzSFVHsPkqsOhsZqsEVA0kBY8Cw83Q6RNnAcgKCT2b3nWNCxETU+A7r1\niLI+5E3p6Br9qH1VMOYdGHQ/LCqEz2+EipMwfDxiYQFl36XTXaRFrTmD9NIUrDs6CS4Zjk+yQsAE\nF2ww4TKU9j/hGzUe7Zf7EX0gffwy0qsHEMs2oOa3o6TWoGQk4h1jRf/VMZSuPjqHavDExJGY/zs4\n7oQNCvgzCV2yGn/2QETRnSgXFOSrZIR5FaY5JSidTtw3jEbdsQaGWUFKhW8boWYOHAwHo4Bn50HW\nFXDweWx+FfPx10l430tsQi5JSYNRDTbU6hC8dxaO69Ae3IuuoYWYF69DnP8UZo+AIZf+76fpsvIH\nIq0erGM1BGLfoGWlgcZrbkAyP0XPby/gC+vsv3DnVsDA26BkK6qnHbQumHATXH8QkbYATdjjSA3l\nKEuGI7QhtGUnkDSD8H/xJc6jq5G+OIDr1t8TOB1E1jqRtPVw/CEIi0O5Zw+VNz1D+5QCgvOeJ3TG\ni2qNQj26jitfvx/DhUNodtpQjDWoOU6klgu4orX4aIKECXDycSh7gxOOtQw9+goJceUMGRGH3u7G\nPLiLQChEyPMUGsd8Qr4I9GVbSdKMIXpfJJEVYzBZj9IxKZ+AToXnBkK+AHMtiHaw/hZH3FQK2neQ\n1r6HmoIUJp84QlGzBUb8FppPQdkBlMMtEBmJJeF+RO27cGgXlTOewpUnYGjH3zsYJNh1CLfLTUeU\nBt/MUYh5fagVBwhl+BCpCn3TVNRADax+G13xFGylYZyfcAWS6UHILYB3tsHekn+fA//MhPqVqH/U\n8T/kDLAQ2PtjFv9q+oQVQrhxUMBUiphDGLEIIYEtHQJ9OLoPEWYdTlvrBhKqThJ+fhti74uQKkHt\nRvBWQuJUiAsH/9dQuYmq0Cl0NSZyxz6AOPAiQidQBxipnHE5SqgaS8H7/QFHnwAH34GN66D7M9Rt\n7Si13eiONaIz+xE+gegLoOnrQ9PYhagNwLHvUNNO4PMZMOR+hSwiEa5KQvkzkc65EJEOsIQQUjye\ni31Imj701V14XXr8YfFEmiyIvZ+AEahXIHEAktdKsGUfmrDhEP89IvsWOP0mwtmBqJTQaA/hPluH\nJqAgukfAk19B0Rg48R3Bzlpq4uZTsraYeEMNPbdbUXo1GPWjEEXTkKRWpEHnEPk6yJZhaCJoCqGl\nFFE4D9TzMGAC2Cb2B4Wu84iauQifStCi0rYxk+pP1zDokZXUh54nYrcb3dHTSHmLEGfehc2bwHUe\ngh00zJ2OIWYqmvgh/WWl9+8i2CvjOliCZpqPUI0G/9tOxFWj8RSeJzx1KMZE0IZXInwmRFQ05N6C\n3XGQ4zn7ia2rImlvEzKTUV58DunRv6KMnMuhMbOxSL0kd2xEmeRBWtOJGq/F4+zELqqwdOxDdvXQ\nHmbCnjiS/IRrwN6O+P4gcqUXjdaHa1QCLwRvZpS3E13sJRwr6CTjy2OIvkT0tkwCUh1KVCttDgMi\nqGBq7IbgSohKwx4+m6Mtf6Lw+LeIEa+R5Qdt4rdwrBucdhg9AwZNpXT4QJyGbqI3v4so3g6BKCoH\nLSEicSExgQroeg2+PQJ7vkI6X459eDTZ69KQmYHIzEXsP4NaqWJQ3KgZMiJvHuJ4NYacJqwbK3GJ\nSIwD5kJdDWxbA9fc/ov56Y/l5+gTvv6JpB/dJ7xyacv/xF4nYAeuA7YBLf9s8a+mHCEhk0C/+Ij3\n2DH8Wi3a3Fwkg5H2/ImU5PYwszedMu8R5JibSXONhKP3wp3vgbsEetZB0AnR81Hb/kgwTItDzSdG\nU0JoYyayCmLos4iBEKfRU10oEQdwcAsUb4BGGWZ6oSyHwPixVJ3YQu6yz+ibvBXzvkPIygI48i5i\npx1SouB3HtS0F9FbEpDpb6VRw1LpDDyOeVgsuu4UykcNxBAEW98OojY56Br/W2oNTQzbvgcRcylo\nT0NSBqoxEXq1CCkOOeiCwSUob8qQNhMpJhmOP4QIl6FHQc0x0L7Gi2FEH+Hb3gKvG1QXJfqFHHz8\nGeauXQuGtfQO20PkKS9q8QWUqiaIqkKKdqP2alCSI9Bkv4GvYhc933xD9OhkNM7dsGtd/54AIi1w\nPAex6yTSbdEkXGTHZLegP3wruSMfozznEVJ8ZqxrhoG5CJY8D+EpiLfGEpN5G9XGL7B5giQ+8RoM\nCyHnp2IWU3AMqcdyyInthssIDswgEHQgXdgFaix4FdQMIwG1krOOZxETMhhrfopAzHaI2IA0/1pC\nLdUEGoshdgDJZw/SptShhuvgmyA0Qf34MUT2nMA5sAK1qBR23M6hWCPjO1Lg21nQYUUNmQj8tptA\njIb4vYVcMyWc+1JHcmvKKPrEV6geE2L/O5D4HBHm+QT8z5NUXUD75dNxKFYyLryMWO1AKnqF6W0H\nkdwKhlWfo8pBxGwNKK3QFwVnnkMd/w3dzW8RqbOC/jwkGiH9RuK++IyUuk7IKICJE2H0ahi7B+2a\nB8iMeRJx+0TwdcO+3yHmLUdacTdSDXhlUAvmo209BwOnYZz0Ab2+zYQ9vx9p2FA49E/jyf9V+Pll\nHx7+WH41Qfi/oklNpXnOHHxnz5Kw+3u+GbOKBc3VBLvrGeLvxeTNggsrYHYEnL0JAvshfA5U3wWd\n3yJw4dWeR2+OJ1t7Ab8ERh1w9HHI2o7N/RxpZ3Px7L0UQ6cDYUqFkbEQ9ht45F60D40lM8pJ9OQJ\nqDs/wZUVwpB1CZpgFnx2KaHrfQSz9fi+fJSuuAICYW8TNBtI2r6PyJvt1A1LJaRdRre2kkS7C0vp\nfjSzvkF4KyhqPgvhZwh9vwVi8lC9PQjNedST3QQ/KcH/rBW/uQXzfj2uKSuJ3t0MMTKkxiHiVSyB\nduR4hcCqXTQdryYsV+ZkKBeNVeLSfftInDCB7mA9yasFvm93EZrlQKo+j/ADfaAYBKH6m5GSQQrV\no3T6kDs+gcIhcK4OFr8Lh7bChq2QBVylRw7LQgQ2EZ4RBZnXIdtVcr+XKLvERtopN5YpH0FYTr/i\nXVQ6RutQ8r7bhb/pfUK15/FdsQRz9CzUpgr6Oj8g3NmJLqUB/4ntpHQ0IplDhDxNCMlDb1Qczdn5\nRDc0oEtOwq59Gr+uHL3hGC7faDR3D8fT/Q7WUyUYm7PZNfk28urbydxVgjrMQJohA8+YOaTsW4a2\naDdebwJORxvR2x+CiVWoYU8Q9K9C1QZxlmViGnAJA9e/yevuYxRHTCUwuwDXuDqsajaUP48YcTlq\nhBV/cg3Z97bjy2rEm6rB0NVJRNkK1FYPoWQdxbu/In3wOBLqLkHE7IV2Paw30ZdVwcjyOoxWPfyx\nHjbkg62Hww/+gZi+FExfvwvvvAa91XDJB4iwVKJLgzAwBMX3QPLt8PFbiEHjwSJhKN+PcuRmPM8m\ngP9r5P/F3ntHt3Vdad+/W1CJQoK9k2InRfUuUZLVm2Vbki0XWY4dN7nHVtySuPeSuMVyibstd1tW\ntSXL6qJEdRaRYu+dBAkQHbj3+4OZ981MkplknMz4nfmetbAWLtbBOgcH5zx33332fnZJgBhTB+5Z\nHZii10Pcp8O629JP6SH6P4d/zyd8Zu8AZ/YO/ntf3wXE/YXP7we2/D3j+N9JwjExJO7Zg+ONN+j9\n6A1GvVNN2N134Mt4DzXQhNJbg9TcBUtyQFsAu/eCpwkyBbCtgP4SzEPl5BdX0peWQqTaR59Og9Fn\nQ/7iAzRNnURMTWD/va+zr72U38yYi3BJIXhehcQMQrFawhuD8NHVNNZVEmieR/SIX2He3oz8CxMB\nw01INivmWd9giX8Of+VRxC9fQFGSUXebCVvSj2336+S0hhFo3oq6y4nffAWm7DGo8mFCMwWkJ72g\nVOM/Fo3U4MSHmYYnc4jK9xIqU7HemoYt9XLIswMhqH0TpHIEUwiDRof+kokY6ysIOu1I5S2YR0/C\nnJAAgNl3Fa64PNRlVXgHTqDPAbFVRBBVxLx3CdrN+D9+G7G6Cn12PCHjXESjCXGEF15YADXdkGqB\nyEhIm4FQ8CSCayeyeBu0tsCeJ5AumkbO6X2cK8ojzdBBGFnDam4XvwYn74aqTWjHFaI2+NA1fom3\nZBuesVqMO/0IM26CiJVIHz+GeFsxft3zeOtU+jWHEBLzyTK8hFz1MWLO3cMLQqmi3zmdOo3MlHe2\nkaj4EHSJyGt2YHCdIidtPlx2FXh3gf1rjImrUN7zooQv58TNDzPe0QZjEiFqOsJgL1KpHwXoHGkm\nyl6LXLsfOVbPhEPfMJg0B8Pbx2DUIhjdidj3OXGhafj15TBZQBfjxllhZuA8H6o2i4h8B5JvARPn\nfEFHMIeunbuISbMjlotgtGHOmgA/3AspS8EQAcuOQfE65NIyKK2Ai+8gZNYR2P17tE47YsMJqDgF\nZjP0t6M6dqNMz0C5NpNQUhDqBMRzOoRmB5oqK2K7hHDDGRyNRTRFvkVsbAJR7a2Q/LcnOvxU8e/5\nekfOjmLk7Kj/c/3hwy3/tsn8f9Q4/neGqP0JumnE3BJk6LmXCTkcWO9dSyD1dcTBneianMgdCsLX\nQL0KN+XBtJsh4Urw9/PaUCtXPrmQMJMLFahujyXm/LEopl4M9mZ04hS8YhjK3m+RG6MwXJ0AbYfw\nucM4ujWOaQ/cwnUvT+Ye/z2kT29CymtGtF8AZV7UsDrsNdU4ZJmYiQHCNCrBXiNOrQnrnAA+2YtR\nTUV1BhFK21BTCwi1nqM/zsypORdgVrvI27sHSZiF6cxeRI0HJvkJFWYg+HsRGhJhQjHCxyuhoR6S\n/RAvQfRs1ONttEaZCevdh6UpBbW7D48uHH9bCwT8qOMysFyoolpvpPfXT5J4eStUgyAsgdhUQte9\nyAGeYJx6DWH7boTy7Zw7mIucKZDdY4chO8y/Z1j/9/Q++M1GaHmPPvdWTNrz0DWUwoJF0C8RzFjE\nuaGbST+3BqO7ChwbwdUJRxXQJkJCO8y7D3fONXQOzSbyIxvMX4v1vc/gutfxZ6bQ5ZpBlTSLSe1d\nWDb1IiSOhslrIG0ShHxw7AlCVb/Fnp3O2VFmpvwgoV2yFVVjwd/3DTo1AMYi1M2jUdPGE/qskb79\nVQSeXsL3ozO46mwIUZDAdxY15CUknYWtAxCTiXOsgXCfCaGpCvWQB98jCtpP/QixCkKDAOVhhLIj\nCM2/Hk2CGcGwAaUlSH1WHnJXOSktTYQiFqJaHGjHfU/omzsRdr7JgD4cZdKjWA68RCgygJjuQp7/\nIlLMHNS+Uvp+czPi2JspvuVCnId+Q8KIlcy0e1F33owSk0IwsYZQcipiTApiiwuptA2xKwxBroEe\nEXXBYzC4E+p3Eryhk+OOC2lVYjncOI+4mDFcmzyOyP9GG+4fEaK2Vf3bpTmXCbv/M/3tAdYDJ/69\nRv8rLeE/RQxpkAyGF18k2N6O/fnncfX0EXNVFrLzGP4yAW2rgrBOhuhmaH0U2h6GjN/h6JRwZVkw\n1nkhUiLR2kPTx7vJe/QZhmYa6VB3En1yPNpr17Gprpy06iomp5QQqhkEfwjqNhgjoF4AACAASURB\nVPLWgqOIbV7UsfVQAf2uOga2NtBjjicycxpptl40rk6UKAGN0U64VwuHBvDnRqBvbERsjYYBC6Gl\nD9O/KB6XQWXK0RewHmkDkqBhG4gGOD8BvmlBMMkEfohD1+eD4lXgaYZ8PyROgZPbcXd0UlbdSe64\nISyaq+nsO4XPPwXzyFwsD09Dq/4W+o9B/iFCWpHoJb+EcFCFBEJT9AiH3ibUsBVTWxI/5B9l0cfV\nlC2cwuPZ9/Heks1gzB7OwPM9BC874ZdvwOAp6K3AZJrNUM9XKOESWk0S0ojFyG2V5Hxv5dyc90j7\neAhdrQs5YIJIB3R2Q3Ii6sdncZYtQvegHtOZMrpMT6MJD0efVUil+iGJR+KY7ClG7rUjfBuABflg\n3AE7HgVvNeQvRDJlEdXQTQY+jizNZJIcQI+ArvMQOP1QdgfEu6lOz0R/uoeQX+L4nIvpVez4pVr0\nDTsgcQpq06eInX4AxJQerHYHfbYkolz9CEMiUpUN36wExE4FXbgJritC3f8ewtkXEORJ0NyL2JlA\nZn0UgfQkfHGDaA8doG1RIh91vsuNe77HHJtFxKQa3LvuRyocREwVEd0WxIYboElBiTwf7eguxIL3\nSWzcwgj1DGa/nxAOfIsi0dgV5GINXdpwEj7cjSgaES/5FPvqZYT/fhTCyWMIgx2oHQdADeI+chvu\naQLzdjsZIb5JWEkRT61LIAqZa9UwIgUzKirCT8qm+4/xT9QTvgh4CYgCtgGngMV/rfFPadb++wR8\n/hRKkKEjS5D2lKOr7oELMlDz25EMyUAW2L8F7RSwBzjWFKCgrhyDw4NqFFBc4TRVQSDJRO5sD2q4\nGx73ELSNRNUZOKtR6FtqYXJbMae2K0z6uUDgcBRabS9SZBDvtyYqwyeR3H6YmJnTEfInQtkbYOyF\nqBSQ+kDxERJS8Y1soT86kcSSPlT3FESzFVVvJSjrkVteQW2XCKpRaA0deHrN+IJeTH4tsimeUIyA\nlFYELZshXw/5N4I6iuBn66hqaCf7pmy04hWw9zO4QAfHVMgNg0gdpGyAoAvaXwDDJYRKbiVgNiFX\n1qIEXWj2gGpMxTFPT8PcQlqEW/n00z7enLsWoyEfKk4PyyGOCkDgIzj5ILSVQcJs0MWiVu+CzAHc\nQ0ZErxVDKBai4nC7PJRd7CHGfDnpd38Ag8dB1qM8tovOWx8gsN5KbMp16D75OYGuCIKJZsSbNqEn\nDh9fE+QkYe0/h9jkf+3P7KqGHx6Hio/AptIXPwfnVC9NqRFMYANh59bB3hpQuyAyCUd9HT0fa0i9\n3M+Ha69hXtz9JCnR8NHsYQU0zwl6r70H6/vfIA814J09gdaiFqSgSOQHQcz72/A/YEFTM4QUoYEx\nx7E3PIb58OfINj30hYN+Cdi80NiAur8YdDrU6S7a9yfw3u3XMLbXztToT9A02dCaRVR7K65mM9L8\nhbTp+8jrD9K+vZ0/PLiBuxqa0Q8N0Le9B1/lWWLTWtFl6uHUUTy/2U5pzCvEsojUXX6GvtiFNmIf\nuph4UAdRbe2gqgScGoayL8QwWIBm12+RI+bAc59zyvMcjbpjIMYzzX0HsUPtqJHjESTdP32b/iMs\n4S/Vv8qLf4aVwo4f299fxf96S/hfwW+HA1cgH2hCq/Mh3hCE7FfBmgq960ENokRMQQ2VIAWWMHFw\nG8T7wJoNpW5IaiPNKHPy2yG6TotY4mR0YRqEjg4Ck+IIHxvEkwZ9GVYyZoUI7h5AX9lKpTsaa6Se\nBGcHY7sOIKR4ELJSYcXlMPQ+5C4EzQRInACRSUifF6ETAwx2OLGcc+CP7sR5Sk+E4SAG4wBqgow/\nZRqSV4/a7UDvd2IQU2HCfGj8GunCO4alH9V+FEYhKCMRNlyEnFtAwQIVIm9BFT6B8wfAGoRCEITF\nEH4naDNA8BOyaBFOXYoy9+d4HikmfM6NBPa+i5QxiFjVSnj+S4yuuZmGTB2vXGnD2OOHmtnQXwWx\nChAF3gdg7vlwNAXOew3qTiKcOkYoysjgiPHoq08ipM5Fn5qP0OlCu+0H2uZ/Qqy7Bb0mFsEwhHtn\nI16hHO8oC2qnCyFHh9YwGa0aRHEMEbAcxM9OTPweEv5CWLwtEcRmGLsChs4hDzaRcCQLU/gSSn+4\nkMLREZjGF8HuA6A7R7UjHc38cKTOoyx97zOiV14M+2+DhPmoq+/CtykWt/wNwUvNmH8wozvYREyv\njtZxWkwf1SBOtCC6DbimZyEetmEaisCS9RJDvSexGkZD3X74fBNkDMHCWIRxF4MpiVDxx0TcPMjI\nUSZ61HEcae9lfMHPMXVp4Oub0GiG6O34ll2pN5GuX4oU/zi/OXA3nD1F55FxWK59hNisQRi7Dlq2\nQc4qDPYQE2LepZvvqZ53lhF59zB06wF00Q4Y7EXNGQkDZfj9Ev5bv8R4g4QcbcDbd4Y278Pogh+T\nPRiOcMDCs4VfEeMdBEM4vzTn/T9hFfv5598s/hb8lI44/3sqa/wL+sth80I4EUPvpdmEjehFiBs9\nrF2rvwxMl4FxPl6xE3dFOPreTtBfA9p4KBiFEFGKMPIKFLmK8LsXc8wfRt9jczCPceGbGQRpEOtZ\nkeaRNkIZVxC9ZyelL/vR5lpIXTsVW8kZxNkqQpsNodEFo8cjZGyBMU/CnjqoOTosQD/+Eoj/BuGY\nD7Og0jvBQmxFA7YMCf3NHyDPvByhdTtydR9SWwVCQjKCD/jlN7D8Rji9Azp2gHgE1QFK5xDn0kuw\nRQ8gjO6CEWOhcRNUtIOQAEOJMOZdhOR1EBYDgkDww1/iUSqRZBNBpRBt/Rak+FTEJa/DyV2o3f28\n3zSCwoJTZLjqOZU1ncSqs4itZ6C5H2JESF89XEvvqxIoH4Bv34PEbFD8iBPSMAu3oK9xIdji8Ze8\nicdWQXLmXBLf2o4i2RG8gyD48TV8T/i4ZAzOaMxfVMHK2yBBgpLjeCP34o7fgpn3EPmjGLmqQmAI\nzn4AJ56DU8+jBrpRBzsJVQSQKhoRjtuRf/ATeKGEc7+2Yn69BbkjHqGhBs92N+2v3M6I0t0YOn04\nm5pRVj2Jx/M1AykHUEIdaJv7idpRh7ZMQLSY0TsEIip7qbl+BLqcK9CbV+C1fILD7MPSex5iQg5i\nQIu0dyNoPBCfDBELIaOT/rXv03fiVSpunssI8QC5xbsYc7qVJGGAHUmFlEWnkp22GM3x38FACF9B\nHlE7B5E02bh2HcE4YgDz+VPRmRKG04xnXgORuVDzOUy8HlHUYSYbUdDRqduA4YuD6NIsCENOgqlP\nEerbhNgjEzZlCsG7n6UhpwmH3ETCiRoSjJVE10wkpnAZCw7fTmnCat5OiKcj5GWWZEX8JxLxPyJO\n+KKHCv7mOOGvHq78sf39VfzPtoTVILheBnwgZYB+5XDm0L/F4Zfg1FOQ+zxcfhkOniDady9QDs4b\nwfALkPNBisZQGsIQPnN45jqaCE5MROipQ1pRRaDjFcRWH6YdXxFz1XK8TzRiefo4ss4Ivq+ozvqc\nsKFaqgmiTLiU6Q9uRuiKgJNOSJJBlRFMnaiJENr3EWJXLmLuFjj5DRj9qKMuRn1uHWqPgBgzEY24\nizC9GX/2PAy6ymHpxEPvoza3gltECAkQPQ/ieiF3Iqgq6sJ5qMXHUC1hiDV+pNHpeBLgeGoBYz4E\nXW48nClBbfch+MwoYw14fG8Spp8AQE/DB7SN/I4xJZV4rVEMaj/HmF6EdswtSCW3oCzMot4byfzS\nL6BDjz5eJO+zrZyccRmTOrTgeA1EBSrfAcUCbgc0dDGwZB2mrCkIYjOqby+ec0vxzrYiZ80nlOKh\nKmBmuvtB1CYtsiEFYjtQtCMoe7ERqbGFzHfOwD3PglYLgQdQoueidB3GwO8QGK5Xzreb4EwJLE6F\n6i+Gy0rNeBah5A1QB5HGyQgtIBoNdGZfQPCL7aR+MUTl+hTyytsIvGXCmumi216CO6jDbYuix9dG\n/C9nYRR1mF8KgtiHGi4gZIhgVcHrA6MdxRJDwvZGNN7XEO+vwmCox284DSlTYagX7faPQGmF2FUw\n8DmsvZegXyFwZhnxLgdJ/jhQ44YF7EUDBqWUyzq3UG44w7MmE3eYwgh26sg+cJih19/CenEREddf\nh5izBLw98N1FMGHd8EGkNRmC3uE4YTkGABsT0Mn3Elr5GUMnuzDrVcTP1yKlKzjM0LGoGW35fFIq\nJQy/bYf3HyFQ/RKVuUOE9G+RsPor1ukXcwMqbQRwEiL8J04v/8S05b8LP+1Z+rEQZDCuBfsKCHWA\n0guGtSD+cVOGglDxynCNtTFXwJQVwx/jRdRlg5oC1h3geRlcP4Ntl0PqYpj5BLhb4XQO6lA6fVMm\nEi3o0Kb9mkMRC8n4YC2j9uwiOD4fzw/PoVt4D8VjPkL3ZS1JLjdDkzKYkLMGvt8FnkEI6OHS50Hq\ngLbHoEJEqPURMNejyxJRM/SoniyUP7yHeroa6ZHH4epbkP8wH/3CSfj1szDYx6HeO5JQtgOpMBe2\n9oItBMuvgm9fQPU1QNN6VNs03IcjCWvsREgZD8lu4uVU2hx2xKguqNoC/X6EaathZBDRV4uxqRHy\neqG3l+hDZUS3N+PLzUDKXU+cJgk+vRjcFahTWzhQeQmJCWYS2ivoe9WC7b5OwuvBnNlOw+AZ0pMC\nqI0WhJXToCkZhDIYE8LeV4fwwnJq5hZCwErblN8y8tPPseatRXVuY0CcQrHXzLSevZAZgm494tLz\nGX9yN/Le8YRc0agX/wIh4AIhH2XyZAxfdiIuXguBADxzH+j0sP5RaN8HBisUXEnIdRwxaQqCIRL7\n6CJ6T95ASeFoTI4dZMyJQZ8WJLtOwSToaalPIP3pBhZu+gFvmoHIsJEM5BZg7RpALN4L7U2AFkHW\nQZQI+gAMRIDTg86chpQ2FU9/KerXjyFfcTOm0A5C/ZuQPn0TjAZwGeDkFlCB47chx8QQ+3I77QsW\nQ0czCXsyYU49RLSDJhlS3mGkMkBO1Xj2jzqf0kIb4z/cT3KLG6u8G6HMBaPXwqd3wPnfAw1wZDUN\nWfeQGJuBdvulEJUA4adAN0DYUAyhLCMdrw9ivDYHSSnDm5LBYL6HjNONiL0JyKu24r7mRXxJ22lK\nmINDbCdLv55YzSIARASSfyJJEP8RfipSlv/ztSPESLDtAtt3ICXD4DXguAdCzXDgM/BmQsZiaN8J\n+66H1l2g/vGkVzAM+2IdwPbzQNDAvFcg1A8NU8Ebh+ZUDlbhVnq5mwPUc84qE3vLWXyuaFomu+iL\nO03vzjzCXe2kbY4hamoRdeIZqgJfoN5+AkbGwJ0fQt5k+HonzDIijFMQchXEMgfB79sJ1Y5BzV2L\ntPEH5O+PIt5wF5w6AHGXYe4tx/TA63DbBNQwE/4cI4N+D46XMgjOd8CHa+DsFrxbFtD/pR3/3Q+g\nDfQjtMpQ2g+/qyD+vSPkfFFLjUmFE25oNsBvPoXfV4HmAoSofNBEQUwmnPoMBq0MTJxDT3YrGI3g\n8lKrjWTOp3twDJrIdHyJoBOxPfoMvhM6gtpycrZtomNCAqc7RVoCLihPhKOf0RzmomZKGHGLl6MX\nhhhn7SPTNomevk5eW/oUN7gjqQyOxqs6sLticYZH4o2eCu0BVEVFOn4KdYUR/bqHEAaq4JNfQ8Sb\nyJpsRG0knPgebrwEpp0H6x+GXfdA8YuQeRchqxHx9B+G3TN1z2HetppY5yBzdx8nr70JOTmJVlsq\npzMiONyeSNsVozk0bjzdUwoZVIyI9l6yNHmIA+2w5BbABDFmKPTBQQ+QDfcdh7n3Qf0+5Aufw/SL\nckKrf45TbcbZP4jw6a+HReBnXo+qt6Fkq5ATBwrgXgPBfvorTxJ/3QGo7QBU8DYARpB00HQL0tAs\nRh4owGgUObX2YuSfXYsncBO+CjvqhhGg7oWyR6DsAwilsiXUSXH8OPxOGUaZIU6B5Hth4nG8vmja\nJozA81Ur/pw4tPY2krpT8fVMwNU/yPH4j2i9fhymkJ4xx+xME18j/o8E/P8aQkh/8+ufiZ/GreCf\nDUELcvrwS78MAuUw9BSq/juc2efhtHaSOOoAKAHYtYzkM92QnghZa0AOg+9+AGcAVj4DzvfB+QHY\nHoe8NfDqGvShNGqUVBTNM/zM/STNm+5n07zZLMjYj0mtwOWPYxQL8T+zHMn/Gn2aMJqrt5N69iUM\nbSK47oYz5bD6ZtSeUtQACEcVRIuOQP4CHPc9S78hAruiYs8Op98T5M3M6egypvD4nk8Yfe4M4i2v\nIbibkXW7aZ3cTey+UoJdMlKgByxJ+Pa6iag4TKgvQECjwR1uwVLkQzwXjtAeiyUgIU/T4V86A+3Y\nVyAiCmKHkzPouROCrSAngTmfvsmVhH9+AN9yH6pzP8GsLC4/8xbnJx5lutgGDhNojAgPrkFrMCDe\nLuJ6WWV8TitNyWEkjYiHiq2QfDHRlz/IW/4N9MtNTHx5KjOqKsB/mLXvDBDIK8GXeojdebNJ39mE\nqbEWu1vkjM/FPLMeffXLaIZEVPEMiFfCUAVkLIHeBujuB30c3HkV3Pc0ZCbD0YfB3oBasguqv8W3\nPBvdlEeQ9j8MsgHH3NsJhnYTs/sUcSdX0x/6kJStXRgmRtK0cTJJn76KJ3gruo++5+DPR5O+uxjB\n2QNrNg0nkgRMsHsDflsEfee3E3WsAvXeGNxLk9GNTMRTuhbn+AsxSZvob4gh5kQvwcUhtGoFyN2Q\nqsBgkEGjGYM+lob8NAzphRQcP4swIx4e+AK6X4GBCuhsg22LoKgdMfETYpM2Up+TzlOHTAR/Pgre\nuQlNfweKJxyfIRNxyu10jz5LB19wJDCOMS3vEJjnx2M5D1m6Dm0wDrn0XmrDYjn3iwjSb27CILpo\nsk6jf0wmccl+bM1jGXMgB3mqARp6Yfy7yGGZf3nP/TeVPfp78FMpef+/g4T/BCp+XJoWhqwS1sMK\njDxIvD0Z9JvBcAkkz0Vb/wqIMuy9FnrLhg+kVr0J7lugtwISToBuzHClZFsx3tqRHM/8kBXE4Gj+\nGYGeUpK/LsQ4GIWYXU+qV0ZoLEE38C2qp5xr9Bp82zLouW8xrtaTZChxaA8ehmceofiCZQTHdZMg\nthPX1IXw/afsmjmR+mlXY5MlwrvqsLVVMC1lPCmtVYzmBG1Pp2ErfhhzuQsxppMRnyTTtdqA0uNF\n059OQOpFys7H3REgbEw3ikFCFoIEK7vQ9AXB3Iugk8ncHaKxaASpYiNS7Kj/O2mGIvAchP50SB9N\naIoPsbgEzTYV0qcyMOMG9pTdhj6wH1/5PJT+AbqOOYmNBenhj6F/DcZ5JkJ1dYxYaaQzYz2OC1sJ\n4UJTeT2zux0cmJ5Cc2cqzoFzmLWnCa5WcWV201WRistiJLm2H32zC9NQiGSpG+GyxTD/BZS3Z6Ce\nvx4CE+D7y0F/FjpegzMKVITBAgM0vArNXij6BV6pBX3Qgy8+Fo3mNiTTCFhTBQ2fILR8jnYsCB4X\nRItorQUEupwED/ZimhiFXLsf05licLoZvaWaoZGTMLU2IGy8FoK+YeLRDaDd20z8uAtg8iiChTcS\ntucrFEcHRpcdMasZQ0sZtoM91K9KZUhrY2RgLJJjAGEwnFByLy3562ju3MR5r69F6E+H5WnQ0gHW\neAh2QeE2aL0aRisQsx+kcHyTz4PgSYSKg2hOeHjvyivJOHOEAtII720l9OKVxIgi0St03JL5Bp1R\n6wnY4vHTi5Mz+KUt+KO/xdjjJHEwGXfIiMYcwhxuJO7OE2jjalGzliIGN6Km1CLEvwgRI//15go5\noKl02Pd+/ZMga/4rt/bfjf+fhP8L4eUUIXoY4hAKXYQxF2PPePryDuI13Uyj2onF+w2RQSOBxCjE\nPi2hqDgMpc2Q9sdYwuLHIcYHGc8MEzDQa3QTltdJadgqrmIGwqkPaI+vQ794iKLtR6makMbklx2I\nBckEqxXU0VchyE9iFbTIweMI+zW46htxH60hECtiDAaZGlaFMKMB5kSjHguCLsAVb99FT6GV5qp+\nJMfHWBs9THBNQgoeRhN0kXTAhWbk01RN34Nwoo70gXriD42i+fZK5M12uiOyST9yBOe0dQiBZ9Gl\njkNOmENvwQUY1i9B6TVhietGEHyEp91JbUYnOX86gfrp0P8wfd47iCwMYexKo2f6OCJ2NuGv2EJY\n8DuCNRoGfNF4KCEqRkQWbXDfs4Q2P0rrqhxc41zESj7cnQbCGquI8exH0PXg6h9ECZi4/KgfsTmW\nb+YuJO1MO+lTTmMwhojI7We5bjsWn4JHI1F742WklvajD2yGUi3YUlFaDiD1PA5payB2ObyxGDQt\nMKYV0i2QfAEcL4OMi9BXv0sIDXXpo8jOuwrQgqIQaDGAuRbL3nEoAyNBeRk5ax7eQyEUh0h40TaU\nUx+CTkVZVIC5N5x+pY+uA520PvMIs4VeMM2CwXawxMOXj0PzceS6pXBzB2z/A7xxJ7rWOpQEA8LK\njxjx/jX0L8vFL3ZisDwB+1fCtBCR3maSHzyD7qIg9jkxnM5OJLJVR+K2S9DPX42oDIH3AOjngmgF\n4JSjkktf+JBgYwvyzAtZ8fr7bF46l4hQLBHuDuQJrQS9Ev7nfcTmpJGdu5HwwkUwaiHYEgm0/Aql\n1YGzxslgZgxRmip8j4aIDN+LOGk8qjUB+r7CX+FHTNEiW/YiOKPg6G5wboOZ9XAuHF6pgfve+8kT\nMIDvJxKi9o8g4UXACwyHu/0BePovtHmJ4YwRN8Pybqf+Af3+h1BRGeQ9OngcB+kEiMNEJiF2I3uq\nicxdRQyzMAmpiIbhwwRn9FlqZuxi7BfroD8VlOdh9NMw4SuU2g855DtIkdIDqoTTeSfPZD7Mb7wL\nEN+ZjZo6i6qNSWQ9oCPiYCkTPVloHTIYq7CvGk8HG0jq6sPtu5j4zY0QKifMZCR000005XyL5pwT\n61knprPTES/cjJBzAlQPuE/j3nmK5os7MRk1nA2kMNgQwt93J7VjpzJgTMblLeXt8o3UJo8ldtoB\n8nThvCLNIb7mBHFhg9jrs7EtOAj9RpjzAoK9jv6GF8nImcjgrDGIpx8jVCdivHEjoa0XMnj2LqwN\njcPhTMmp4N6IqpcI6GXsz50jcJueYLiKsdeHGh2NqbARR9I64pUmqK0k6pOXEbZdjjoujIikQpLP\nHUds0mEbbQD3k8PcJxswJWciqjNh3zn8vQdZ9YGB06Onsdm8moua95H0XClKbA4hawvaPi9fXqTn\nukYt+klvQdlTCGosctcP0FIMHzdB130wMZWh/BHIxsnoYyaCRgZtGezIxz15MqJuDjlbTrJ3zqvM\n3BaB8O1DuG4foC2YgGAPx6Q7Tijdh7buO/RJKpqIWDQJ6xHyC1EdP0MSC5HfPIw5zkvkPWEEeu8G\n+w7Qj4SUl0BMhIt/A1uegT37ofsMXHg7xEXAN3ei5s6DXgVhxdPYar6gVzOE5vBCJF0UlZpCko6+\nhXbO9ajTRxFZey+RUzfhig/h7JmF/5P12JuexxLpwX/KiyCugaEywo1mdF+V4iyIxaBImE1hrDLP\noi2wkaE4L4ZTWnw2AePCK2BBE4JVBMdZ2HkUTDKa/AwYd4J+/10YpqxGjN2Od7MXV7KM3H8E/bVX\n4YvLRFtwDBwBgmIumrcuhrRumFYE+gVw0g5XrILZF/5XbO8fjf8plrAEvALMA9qAY8BmoPJP2iwB\nMoEsYDKwAZjyI/v9m6DgQEMeYb0/Rx6sQVUh3ugjlJCI9Ss/QkIbtGyAsXeCOQmAsEA6Md3xCHXH\nUVNBmXwPUvsx6NmHmHcDfUoMra57iBzoYEfMDdzkm4L5+Kvgc9JUL5EcNpnogwWI1jvRVx6By61w\nxEVk6iTkiBLs+4oI31ZOX1wi9WGxpOfqiOrYRHrYWHpDW2nPiMCkDxDvrUSxBFHoRF4jE1e6mbFO\nHzrN9US8vwH9iJ/B3J+B34297CkqND/gUNLIzHiA18KimakR0dutBKJ0uJExX3wlQrQTTlVD7HjE\n2PGYusx06q8ltngXim8ETUVXoSZtJ/mNd6m+MJKx7SmI/qrhysp6iaZANgnaduIye7HbNQgBmUCq\niFYNIaz5iPAv16OKcQijUsH+DFgMCOfCsOSvQ5VL8fVFoPmskqF5yXA0DEvuKggTYc/jhJAJJEdj\n6E7Eku9kao+Z7wPjGD1ST+HOcoTkNNTgWVIlAcfqUsKTrkBz0IoQLIbIBVDaCe4ImL8Kp+MsUt1J\ndLZwmD4NnG1wworfUkugsARL1DQI2cn9+CB7CnuZcHkfkrcQxenC2rgLYaEPsXkUQmEs/b9vJOn2\ncISDD8BBBRZmwtgHIHoRYc06SP+ATYGD5MU+CIZRwyni/4Lz74YwK3z4EFzxLBitBB9+GFHMgYYG\nKH4NobEdmymKmpWZtGS/QNorK1DHaTEsfA623j4s46mzEebaT9jEK8FfgmXCIZzyBKruLmJs+wH0\ndW2IyfMpv+59Zk+/BLHqe8h9AZ3jPlJ1d/JaVTlzxllIFiIRwi7gcOx48j0dREa2QtR3EGgHrQWU\nCnwTL8Xg+wTDEjP+U0Z0y6chtR6k+9vD6FJb0V3tgl0KcuptcIkJ+k2AGX6/D5ZNhhF+OFMwrBsd\ndSlELP7LYaE/AfxPIeFJQC3Q+MfrT4AL+NckvBx474/vjwLhQCzDVcv+qZCwEsZkwmwTUc++jvr1\nXYSyC9BETMNfW4KqFdDNfhtKfgWWNkjORXz6KxLG5IM2jUBeHYI1FimiALofhLoHmGfN5AudgUsi\n7+Im3TwQXJA6A8+E+6i44UYWf/YZ7qnjCMWoCLEjEF7tgVVFhD6+C2WZhrTH6iE/B+bOJ+L4cZyh\nAQbowdhegxUJg9FNx+IWvG8Wwew4/OO6UDUW1JEiMcIi5KpS5DFjUF0fIOx8H58rkoOaOKagJSp8\nEkLkHFb/8fcXDxjJyQN168UYjEdRZZGQ2YRj41r8jTKWnk/QaIJ4wrT0Ztal7AAAIABJREFU5GpJ\nkaoQlt5NT1wcKU0vUTtyiOyyZLDMhRN7sPr78Q0KBAdF/FuMaO65F8+5TzBNeAGDfjx0HkTofAfK\nPFAVDg8eB+UQVNyHV3SjHd2B8I4e4Ww6pvIDMPQl6MPhuj14PljJ4Oyx8OZukk5cjt9ZSoExmsPj\nU2jxDpGwsx1xpobl9aMZ4DAubsSiH4uYfTWcfgtmbobrpuO9YyVnL3ExoWYFQuo4iMiDtPm4LvkC\n+VQDlj1jESrPoYZ0RG7aQuT5OZzgfCYe7qTg9lMIH90I4geI2jyo/xpJmoNY9AV4b4L698DZAd/d\nAPoBqFIg6MMlWFB12Qii/s8X4ZwbQNLCg0XwYhOcW4N48MFh7RDNAvjZh0g1pzFa6zB++zQJs0W0\nkghfvwnFr8JFLwAQ7N+AI+EJbEtuQ9yXgDW6hel9Sagd+/Bnj0dj3sGEFDtBNYBsy0fwvI/6YTmB\n3h2sviCGQ1lF6NTbMRXfQbikEurcN/yEZ1kKgFK/F/XoK0RkVmIS6hF0EtYPdqIIXYQ+HSQ4pgmb\nJw3VXY6aLhOszkeTm0AwQo/86nbEVVfC9IcAL6gBME0E0/ifLAHDTydO+MeOYgoQzf/Vz0wD8oAd\nf9LmBoZFLP5FC+5CoIQ/V5v/p2XMeYWDDKZ+hzj1JsSCarp2NSD3DmEIORDObhwul9PbCn37INOL\nIJtR7Rr851vQ7WxGGPkURF4DTiva3g/pjLkBTXk7tuZm0BogbToH169nwn33YYyKQtAEEHfvQBDt\nCEtdoOnDMyuIZouM5t02WLEWZl6M+P1O9D/LwlDWgtDnQ0gCAT/KoBHLjFTUGCch+Uos5ZEYLb9D\nri9GdOxDMbpRVTdBTw8tNgn9KCspWc8hZV7/f35z6GwJ8iuP4xUD6FKWM9QeQd8bbzBY7UNylBKZ\nV4HB60Gy6dElxhCc/RA7swIo/hZGnNtHKHc+3e7TRO/Yg7j3Bej2YJ6xggOz8ihMVbDM3oAmbjqa\nfT/gzu3FeOZ1aD8CeffAkT1g0UDsKLyZ09kVVoG/zU34fgeS34uuuglfpJZQyIHc34S6/220VW7M\nm2uR5ACGskoMXzUgnraT6OpF29pJYMRYtGlhaLdsw7w7DM4bgcZ2EMFYBfUuSAsQlGs5PbWewgYR\nXd1nECqD7KkENfUMpD2H5oQObU0l6GT8BeHoKnqxHvMxcP5Kaj3NJHoL0C7WQcpHYFeh9jChoBP9\n4nUIlkTQJUO4F9RWhOxsOFFPyL+XqHNfcNAURkHEmD9ffM4B+OhaMAbg4LMI3Q2ISUGY/BQseQYs\n8aifP4Su2Ip72RC2pEik46WIG4/hHhtFw6wp1Gta+NrsYaw8H71jEOwvQo0E8lcIGg+k76Fb3E7M\nV0uRnn2eUMphQvJXqLsqkMqH8E6dQG7qQ3wsVpAcv5q44+vxDFYQHzEBjAkotTX4phShthupW5eK\n8VwienEiQm4mavfjVGMhpSWIxl6DoDmPUHEbrg8V/LsG0Xmqqb00k6acZnpCB/AaI1BtS9GGTUOU\nhv3V/wxxn39Extysh2b+zRlzex8+9GP7+6v4sZbw36q482//gb/4vT8l4dmzZzN79uz/1KD+FB72\n0MOlRPA0Q4ejcZ3rIumWMqS23yEcr4IVj8GZR+HYDmgHvAGQThOMlpBb8xH8MrSWQPoV+DfVoi24\nhtnOT/lw9FIy7r4bIRSkc/Hj6KOisOXno57bglT9K4TzVZQWPcLQRBR9IyFbON6UZgx/KAJlCKKT\noekonC6CcTOQnMVw2o+s9xNtGYGol5DCv8FQ9TwEuqHuSYTmHji/DlHW4nrnXr5NbCYuzUnBKyaC\n+XvRXDoWVVUZ+N3ldD70FZqwEKFoHeKlb2Kb9SrRsoCAjC9eIBTwIFkNSNJCmHgJtvbTXHj6aU40\nz6Ns4wFi0z4gP9OIaE1BjU1HTStFiPst5+0qgIO1MGsZcunVSIFiAlVlsN8EVc0wbzl4HoLwAFTv\nR68zsNi1G7d3CG/uhRj8+3CkhuP35hAuR4DNhuKuRuz/AWHuYsSjp8HRgpojIL5biXLiFowvfIra\nsR+SgVVmBFHEp/WgM61EOLsVJj6B2vQlFcYBsj6vwJg3EmYvg9Z22Ho13oVxRPRdia6qGiZGwegV\naD67CdUqYGh1k/H9OSoyAxx4qoCJ9hqstW8jnzyLumY34SVLEQ7dA5YjEDsBKluh2w7nbYDrH0Vy\nlTAy4Kc1dBK46l8vvtAAnHgElDY4N4jaA+rKMFRpPoJihWAfwY638J7tR7tgNJne+dQP3kd2/BTa\nbu6jeGYOo+XR7AttY4YaQ1jdHtj9NRg9sMMLJ0W6b1xOdMMviFZmIu75EkZOQE4cwP9+CN+cZfQ/\n3EX86xXwTQ7X3P0sb0X5mRWXwcjqT6DxfkL7LyX46RY0D92PkL4TrzeGQKML9Zp36PRVEesvIbs5\nEk2XAHe9hKKMQN1fjH5NOnJbG4Eilcxx3yC5+gkcuo/BRcn0SWU0sgWFADIG9EThppMcrsQ4XG/m\n78bevXvZu3fvjyODf4Ofijvix96epjBcVfRforXvYzjM/E8P514D9jLsqgCoAmbx5+6If7iKmoKL\nfu5EOzCL5nv3ok9MJv36K1C2r8En9eLa4MN4xR2ISeng6UCW7ydQnoTcp8W/ogLD3iD4RIgU0ARs\nOPc4MN15B8K0Uexr3EpP8iQubEin9bGbSSnSEljeiqiYkd/UItx/DDUoELp5FN7f6/A2jEGjTcR6\ntg06D0HRCjieBdPmQPC64WyuiA1w9AYYn4n3eDOqUoGECe3szbDjfljxLphjofEU/a/eiaTvQCrp\nRTN+GbpH/wCijLukBOfvlqEc6cEwZwHml2YwKL2I7VkXGEyw9G1ad99L+YIJLPzkK4jRoYx9izrT\nHjJrzIh1ZQwYNNQ3HyHcW4i/7gy6NC8RI/yYZhYgH+9jqOg2whruQAjK0L+CrsIzRH7rQC64Fi56\nCLZtgPINkDcdar6D6B5ImgdlAlx+L/ZTa1E+krBV9yA8+T6MnQD3FIHXD1fchfrxs4TaepBX/Qpl\noATl0HbkZD9M1qKaIgnGiwTSLiAkncS8rxZGROMwdGEc8iAfSYTLZ4NpHYRy4IHlqBYrwrqX4cV7\nYIQf9bJ3CL4zG825k6jBCXC8hO5No+nRhnPKmsCoyiZGVHbhvHg58S3jENpOQvtxiKtDbXTC2PUI\nGx+BRTdCxx9oj76MLms/Y/N+Dz4FDj0M8Xng3wBnRSAGmusINgxCuB9p+rMIF92OKgh4r0vDPlMi\nwbUS7H7a74pC9BzGNXCWztAUWuOns/i7L9A59PRcWouoiSNuSyOiTgYX1LelM8IbRC06jmCbD46d\nqF1jUWa8TmvEqyTwOKLaR7BuA/Iz3+ObsZRHr5jOrftfJr7tMIpuDGJePGr/fgKZQ+yLnUSu2ICl\nM5lgdT2Wrl40G0MIubEMPLUJjr5P6N1SzIkNeJa5MSQvQBv56fCG6ymHA7+GokchuhCAAC6a2EEH\nBzESSxaXYSHtR+/tf4SK2v3qb/7mxk8Ij/7Y/v4qfqwlfJzhA7c0hu3I1cBl/6bNZuAWhkl4CjDA\nf4E/GEBAi7J9OTWvvU7WY49hGTUKSrYR+uAYwqqpGBYVo9gbEWOTQBeL32bAMNRAMNuAqKYjhPkI\nFjchSBpIVJAMYSiVu5DOvYjWlsf+MaOYtvdWYp/0ElJj0ezSILTZ8N5yJXK4A7GnjNAEH0NDCrK3\nBtkhgrwDXBFwrg+664Yzq0bVQHQBqudXOEQzwvY9eHWxCL5wGiLjEHZex+gTNWiLs0Fnhd4OIiIj\nCdZ3IYzVIF+/cjiuGTBOmoRxlhY1H7ArcEqHxhhCHb8CoasZTr5BUvoyAsWHUE97IXoIoe4SetYt\nQTtpAWkXPIJBaAbuYETfnaiiCfcTM7Hv1tK5pxONw05cz10MTonEHC0idTVjTvglQ4sOED7uj4u6\ncBYMdEDdb6FQC6VjwNcO6cthqIZw7zlOFV2CxVWBpu4MzF4E+ePg6pehfC+4mvDOLyQs4EX47DuU\nK9NRO88hNAZQf/Y5VQlvkl9fitNQhmL30eyaTOikhxGG6WA5Bb49wwk55tvhsa0IAz3wyq2AdliR\n7A+FON/rwzZOQAjWoVplbJ9LhC85Tps0nuoUG8LIbjI8RQgJy6D5I9AboNQOI6eCfxsU5UHft3Bm\nIQl33I2x8lnoa/v/2Hvv6DrKa+//88zM6UXSUa+WZEmWZcmSe8c2tsHGxmCwAdM7hBaSkFwgFBMC\nFy4EQkhCL6YZMDYu4I5tjHuVLVmyZfXepSOdfs7M/P5Q3ptyL/fl/kKycvPez1rP0lpnZumZc87s\n79mzn/3sDfufAG8VJB6AlN9C6dvgD6Hf+wke66/xSauI2xnB+LMlBP0ulKLpiPO+JtCfhjlpEfGf\nr6BqSQPD+tsRB08yfhA2TZ3L+KK7iZZa6A0/T/fsehyVnVikEFowjpDXi+FUDHrCZgg76R5zM93G\nX5G53YWh5X2Iike++AV4Tca6bhVPLXqKiBpGv2chcmY+2M6hK0kYOofjspjwhVrwR9rQcqx0lgzD\nFe/GfjJAQ/hhQhPcuLw9WKsTsBmnoqiZfzS4+EIYuRzeLYErd0LGTAzYyGEpOSz9e5j8f4vgP8j2\n6r9WhCMMCexWhuLLbzG0KHfHH46/BmxiKEOiGvACN/2Vc/5f0XWd9tWr6dmxA3NGBmPWrEEy/CFv\n0WzDeOHlGK9Zit64Hy1xP1LcjwijED7rQrFA+HyBtTKC5GhFmTUP/EG48VGkO5fRkfMDAgt3kt1U\nypzAHqouHkmeIR4FO4wIIZ/9GtPGnxI2aoTnxyPND2HdqTJQ6MZ4ci/0jgLvOShYBuIQ2jvPoU+9\nAMmwjhNiCfGDJpIbZ+Ds/gaiE/DqYY6Mz6MuP4eE9n7GHSvHnppKsMyKKc+LcATh1CfQcwQiHggP\nomflgLEN1fUN8le7sIdViN4ENx2CqEw4+DvSd1ZDJAIhI2L6RYSSVdpN3WQKgUfbjb3JiP/Yesxt\nv8Uyczy2GdOh+hNCqh8pRqM2LZokvYf4KXOw9CWj5qcO7RoDSB4Ops8gbTicq4DUGNj7Ncy8Ep74\niP7ri0h25OAbU0bUO89D4ZDXhMMFUy4jdHIRoqUefd9rDLz+IeYNj8Bx0B+QGCy9lqSjPrRhuRhr\nBF0lMQx66klZ0Em7vYaElQ505wcotrF/vCESM+DRT+GRi+HIJsL1HvylEup9LyPvfBbtYhNKUxuC\ny5leexxPeRnnlufTc+yX2LLTYKASfP0w933wt0NgI7p2DGJcCOUsxI4kOhyAlElw8e+g5V5Ifw3W\nPQ+9rZCUg9j7Bs7pl2OLvpvAhY0oCU48gXeJe6mPaGcx/XNeJf53n3LkR5MYXVOPkh4mdVDFNHER\n44vP42OexaYJlvdDdPMFeAxfEtxjxLPQwbFJTsYfGkEk4uJIrY7S9iZSt0KpnI7EKRK3+MmoPIGY\nOI3wF+sR51+Koa8R8e5W9MkR9Lgy9Ixm5A1mxiky7G6Hq2aiBXcjRY1BD9cSabGTGb4D228fJ7Av\nE8vH2+Dkg7BnNViDMOMOcMRDzuKh2iqHnoH08/6hd839o9SO+D6uYjN/vhAHQ+L7p9zzPczznal+\n8kmqH3+c4o8+ImX5Xzjm0Qlwy6/A7EH4RyIFV6AF7sGjDsdqn45W0AShg0gjfwXKM9BaBoZ01OqX\n8cYITvje4Tw1AVNoOIu+nI338lt4jy+ZEIxn4qnnEKFogikZKCu/Qm30o6cJDEdD1F2Rim1lEP1n\nnyGcChx5n7pkGX/aMCzBcpI/T6G4aAZy72fg6gaTG3KmkG4z4Z24mEFep9WTwReKjYJXTuF+cDLp\njmySa3ZSOcmMMIcxSHZGeUCo90LlfpSpz6H9/nVCth70CVbk3i8wGpdCdQ8S8XjnhTF2y5i8NRQf\nNNCVUQebPsJs7iD7mB/JG0SflYBUVwNJ58AYh1FWwOlkZE077iIDtDyLqDDgyP2TDi7dx9H6W5F8\n7qFnntovwKPD1kfQ88djOOrGGtmI7m5DD2mI55+AGTmolDNY+i69NdVkHDwLU0ah2X7Bs7deys3u\nfhI3DmC824+QdZQ1J/HFOzAIH5l7O6kvSiOt7h6Cw6uJ2KpxMvbPv3chQWwfdAgUm4R5Qir0vQg3\nX4m26yMkk0y4pgUONRDTHYYlQUqnxhJ78l1sjgXgrAOzhvCWQ6AD3bQYff8GtPH9yAdGowcNuLsX\nEt3ZBE1dULsEKrtg+o9AkmDbs0it5UjpYzCULEE7/DTGcbmQlo6lsYIOBumZ20VWmaCvaCSJ55oI\nulLYbz+At/UEJfGZ5HW9j1ZthNgLMKwZT99NEuYcN3H1IaSExeg5t2GefC1qeBTpn2gk9m+gfXwm\nR6cWcGRVF4U3341xhkT44HEc3TZcDc2YjjSiX2tG6s+D3aWIjCj04gCo25F6JETnaUgGzyQnzi82\nIp9tRrVPBsUImdmQfzl0yPD5z4ayQGbeBXHTYfStEPKAyfE3t/f/v/yjxIT/MX4Kvkc8Z84gJIlp\npaU4Ro/+DyuzekYOKtWo+mn0GAO64XEClhRsza+hHM4klB/CeGA8FJbDtPfBewtB2yBK8xEMP4xm\nwkAfduNqSLGi/uY+nJfbmUwR75u+JH7Cm2STikQ7vanXYjVXYn7bg6rIRDcXEqUY8D/+GJa33qN7\ndA6hmt+jRxuJ2t2COWCFzb+EoAcyM1ELchEhDXnh64wSDtoDbzLq1U2wTkd8uJtDmV52hCoosDox\nRrsYbrwel54PNU+B7wmYYYXGXyA9vRnzc08QHvVjAgO/Ilz7KpYdjUipQcz5OQTLuzFW9eMId1Gb\nMQZ9Yi/mz/yIGNBzdeS9AYidCYYCmNAPnVWgRFBq4vDEZWE1f4PlWAAGHocrVqAn5hBs0vEfjkYe\no2FFQlc8DIwfRmxsAmzbS3hYNF3FdjIGNMKpCRhWluJ7qA3RrWF7dzPm3YMowzTauzNxvubmmqum\n0J67hajGANaqXiwjNfyLjRzOnU7RZ3tRCiDnixbM7j0Es/1I6qz/mPcT8oLaAX4jhktHIVZUIF9b\nQcTVgRrZij7YSOjAAaydPvTREtP6MvA0NDBgd2MtfAq8O+HMh4i+CtBBaCfhtE7zWBeRlF6iowaw\nt5ZBfTT4uuBk+9BTx6x7hkR43JVgj4OmE0P5wf1NmFe3oR+0IM6fSFgqoC9USZfVQHFVLe6ASldc\nkKK248S1V4N7AD2UT+d7Ad56Q+eqshziz8zCkjOPk6lvE3/q17j1BmzKWb42TKVpmpllZ2JIFXGo\nR3tpyW+l51fJJDmnk3XmVRSTAzkooS6cirSuHEQXXJ8AJBPYfRZzkhe6FMgMgwUsaamEG8sRviKk\n+Bjw74fBTyB8CDJfgex3oL8F1j0MRz6Ey1+A2ff+HS3/v8//ivDfCHt+PjmPPIJOhCCfEOJzFMai\nUo1OGIERmRxkRmLY7kPK8+NOuhctdBBbdj2RbAXj4RBsP0Ck/gQdRjPOznYUo4b9tIzneCpiNuBw\nEPQ20qZvoEQswMZSvuIwiRTRy9MkTXgGZe1SxB0v4Iuxk/TY7Yh4BdOUsairZxBvP0T8uDUwdi/s\nfhHSTOgPn0LbsBzvFcnIfg8W7RbQ6lF724gEKwiEfMQ+UoiU6GSOP4rZDaWclsIcVZOp7fuIsf2Q\nG0oE7TH45TK4zAbKW/AvNgx6JYbsT9A/vIvIiA68FrDvq0EymOm7YzQxTfFEDInovz6O9KMgWouR\nwZZYLAVjMN2/Ggx/iJ9t3wLhHjTVRFpTIaWzuhmRNwmb7R3Y+glapxERysZYYia4bZDATIjEWVHH\netAGatEusGA96YfJKl1yEdg6iWtKxTLgRH+tD71mFNINsWgNdUSbvXR6RtB3/nKKFvnpm59C77lk\nlEkXEBVcxaTju/FHXYF6QTd+XwTLT3dhdnegdtfBZWPBmTp0zSE3HLkbdDeQDpfsR3x+PbrVRYT1\nRIrr6Ou1kHzCjRaxop03A+mMB2skDcOIs+B7HbRNUDAN3foZQhkNpd8gxq4mfd97aEqYQKJGfeZE\n7MPyiCtPxHh6LTxQPiTAMCTAQkDGWGhvI9j9FoayEGJyGFJDxJ0KUDYxB09nFN3mWtLPtRN/+BjM\nvhQ99Rw0aOhd5ST0SVx0toeN00q4/MXt2BddTL1BJic5D9V9FKfdxwUnviFkXEqfJYTeGCJjWg7D\npMWES1+j1bmRU5eMwdo8QFqHjqNqL7pdIEU0SLCg627Ms30QDSJHgrYIIgTmcBl1ky4i9YgBeVgs\n9P0CAicg5V2Q7EPvMToVFv8SJl4DvY3QVQ0JuX9nBfju/KPkCf/TiTCAjkaQDwmxEx0PRhYgMxLB\nn+xn93VDKAZKW3Cdewg5L0TQpSA3hRFJdga8LtRAGS7TVMzJKqHhg5h+Y8CW3ABbJkPGMkyuKNpL\nf03HmH2M5UnMkTpOyfdTsP1agrUPoribYdp4HLUdDM65nP6cQ0QfPIkhdgCypqJb1xOauhMlIKHn\ndhHuH41xjBl7s4Tk6YaBGyHzXiKf1iBbPNidyUiZXjhxHVjsSL3nKNKbKOzcT3NbPkEP9I6fj2vr\nSlj+Cxj8V4j/Hegh8G2EqksQ2V0oqZdjO7Qf1dGOFIoiaus5UNrAakZ/cCl6sh+Jg0hP+uj93RSS\nDX9cwIgk3k147ysEvjmHc+o5snZZ6Bw1j4zoV5BzZiAPRJA2XoOxtR73iAL8D1ZhXByP2ZOBN+96\nzlx4KWeW7GWB/2maXS4qmUXB9GhGfLkL0ydbUV6bidIXhp4OzLd/RIo9Fdv0WfRuupveCcMY0Xcp\n/jVPExguiKnz4pz9CZ7gaCJWG3rmLNzLzFiiliJH/H/8ro1R4LoKZs+BDdtA15EzMlGbm5Fy0vCS\nQnxVHXKvBA9vRjm0HBYcQNq3G9Pdd+K5K4h50TEM4g8VNTqa4F+WwO1PUze6mCzLHswDkP7BUSLj\nJ9Ka04z2wFRig1twntbQ82cglW6FScuhbC988CxGkx9pGDD5ASi5mO7Gm+iPnsps612Y2sYTznsM\n5WQ/HF+Dvs4A1mhEcz9Ck0g5tYcFo8P0NG5HaNV4pArqkyYS27aBGMN56MXRZG44hIgpQA0dxKcd\nwnhsDobGyQzr8DBs7Vo8JfE05dsYTJ6CWqAyep+KbdRD8Oq16M0KnmoJx6/fQIReBHcLYuRY4twX\nEDQ/jtHRBPEfQPiHQ+2u/hRX+tD4H8DfMCb8HLAICAE1DK2Dub/t5H/c7Sx/BQIJMzfgZCVRfInC\n6D8KsK5D+6uw73kI9IDfiFSYg2T3ILtl+oZ9wZp5d2NM8BI9FiyxnWjhHsTRAbQT7Xhrc1HlNCh/\nDqlvOzkbnSjYcbe9T+JHtxHte5Btc6IRZV+jeiTUrjOE37iGvvkqHeN1/IU+NCkJveI0YW8a0pou\n9BgTnASPRUd1dqIFjqIdqwJPIXrCz9GlcRivuxbTssWwvxFsUyDlKpC70cd/yWB0NKHLH2X4/kEc\nb/4C94Jk1GU/A6sRzqwGyYx2aBDW2WDcZoThGMJeReAmG5KvAzlhKfSDwThAKLAf6Ss3wnMVapGG\nbfnT6LVbhj46TUN0bSAc8yCyZkIKCmKMHqLNHyKd2oZ6YD1q371oo5sg+hqSD1UTPzsBmz2K8OYo\nzKm3Mj52NMvUaKItnzN22xVM2VxGOGUPHXX9fPPBPfTlBsG2DUpC0LcZxeUidslC9EdjyW7tJyJt\nxNwewFZpZSAYy0BkIZq/Do1vCPzgEGpkH5ISAzFZf35TlG+AwsUwZykEA8jp6ahNTcgU4ZLfwTht\nFlz4Y8ShJ2H0NHBkIC64FjF1KfatEXytj+I7cxn6gUdh7TMw2APJ6cQXX8/xjhLCRw2YbC5sJz9k\n2Lls0vcmEzz6ItXafVR2TqWv/S148mo4tAU6qxA2UM97lPr8JCIfXUxu+Tmmla2DurswnFxLXUYs\ng7NTIWRC0sNIU4YhlDTwR1DXnsZTL3PmB4V81bECf8RBtP84Uv0g5k2NnNhyIaetOpGGI2gxCaix\nKeycl0ydoQ7e2AQ2gb2tg/yjMqOOGjAqWVQuHEfX9h8OlWz9/Sk0UzJi0iSwtIMlDSKncfbfCXV9\nqLm3g5L+Rw/4fyh/w3rC24BRQDFQxVDq7rfyj+GPD/H36THXUwNfvQitH8GF98Il7yFF1qL399Md\nyKF85EwubC3C9EEdYtoIiGwgNDUaLc2BctqIiDtJaDAZU/Q8+PowhlofSbHxnHV8SnTUZaRtXIc3\nQ6NyVAIpA500J5TjrNNxbe0mzlWIIdGJnFGGGAwg7TpAZMpojAW/QSr/FGuFH22PhNdgom9WJoPp\nvWjhM0iTRhPkGMb3SpEbGyErdqi8Zv92/Mo2rD31xPZNQ+xbi2SZQiD3HGVxx0k9UYNo2os3+kIM\nz1yEmLAYxl4KyoUEbWcI5fZiKE9Cb9qFcMr0JURhOOLBtqYM6lrRpnjoT3RhObML2bgHEepAaqvE\ntGARpmFfIk4nIWIL8aUk0D92NPbuF9HazyEeC0MRSHNHIMelYLjsMUzX38HgihVEPl+Jdc+XyHUd\niBEz8U2/gMakfSTmdzBGz8RiWQhR/TBhM5Tdh975NS37N9Fu8GC3OJDsbZj74jDWNRG5fSvvZJaQ\nIk5h0Tz4LUlEjP3Ym19FUn87FH5QCkA3wbFVMPF6yCoAxYDW3Y3a0oKpZBaSdArRXonQ42HumzCw\nAVyXD4UPZlyCiFYxv/Q2IldDnF6PThci3gBRvRg622mN8hJ3ogNDrRsRyEB3nEYM78DeOY+oNa1Y\n2mqJyL2Ep5VgPlwDynFwSLQbatHjihBxBzDXGzE6Y+lOdmFr6cebJlClKJx9o2hIKGFPxEGvbODA\n8vFUFqUwUFOJfWs/Kb+qIqGjDKO5i6ZrVWTHABm2csRFY4ntTUI/u0tNAAAgAElEQVTpNyGGOUji\nBOqRAU4vHk7yJ+3oxSMQ3i7k9LmkHBog9Y01WFwOxGPrkZ59kYivEpH4PproRR7ogRIBA3MJNafQ\nNTeWGPde6H8HopeAEve3t9u/4PvYMVew4rLvLMJlT2z478xXyx83pDkYSs1d+20n/1N6wn+GGhn6\n23ICPr4RvnkJ5v0WLroaTKeGmmcGWghXQqzWzAVPvo/xiZugfB2s/Boq0hB1HgztvUiFfQS3aoRO\nSBAzCfGj1yBlFOLYmxSdLqS6GAaX38iYj1/EkRnBn1CAtFMQSgiDPYJQo/DlOvGmX4Y6+kVEswtT\nZzl643vgc4AOSkQnar+BxFULSNgxCcNtq9FvuQ5ObYVNx9HmCchaDrqBsEOjLe5WpFodfvMgPLEd\nkeHE0dJA4f7P6JwyFZ0BKu68lPbhl8C1/zokLDYnuAcxtOUiHWulek48wToVV4VO/4VWtB89g37z\n7ZgzgxjG2PGe7EbrMcPXP4G+djj3MDjCcP7d4K0gpv0ckvF9mP4whj1XIPsiSCWHUJt2obccAPcp\n5NhYYm6YjWLy03tAJzz5Lhi/iDR5LknyIjRzLM1pYci7AzLvA//rUHAneu9Z6rIaye6sx9rYg8E7\njYg9hBojoQ3+lOs6nsMX9rP32FREdQi1OYz0mQ2avRBYOVQesmYP5Mz6s9vi/3jCutYOoY9wZxhh\n8lPQWwWeP6kBIUlQMAemqshfG9CuCBMYp9L34KX4Fl+JmPYjirPvpHN8Hl5rOuLoWUSbF3GgDH3/\nC8hSmKgjHuLKnTg/eRt9cCMDE9NoL8iiN8+G5ey7+CaCFvShYmQgox/3/EyyTk8lYLPRLHVwrqiX\nzqUZpMppXDzzZSbGeJkQK+G9ZCnpY304H47m+MTzmHbkK0bc/zDpqQdJFRcR1KuQpj2EaUcN9u2j\niP/hUnIu+4Dmxenwfhkhv0Zz0TH0o5+hTsxAvywPsfYSGLUa44gAvjQZLSEBpGIIJ4I5j4GZCWSc\nfAW8PeA3gYj9u5ny900E+TuPv4KbGUrT/Vb+KWPC/05gAD68Gkx2cGXBRc+AM2noWOzb4DsGVZeC\n14zJ3jdUHWvCCIh+Dy6Kh2Y3PNWELG9H1mdA81hcq8cS2NsCBz6Hxz9H7HwbPf3HKD01FD/bR+lD\nX5J2j50caQde2YV/nBHZE09woA3Tyl1Eue9Cb61AnH4VfcBDxBSP0rEO3aqhu0EkqWjhPkTOx4is\nC/GlGzClxSM8frSskYQ/khDeB9BEK56kaIZlVBJ+X0VZNAGRPgrufgf57gkYl/RiqW1GjYtQVRcg\n+tYr4MiXsG8N+AbRCkuxvDwcMX8JpqR6zv7IRHLgB7Q3HSEz9DiRwzGYMieRsPEgnWNcBH++EeMj\ny5ASXAjTQVjRD6NeQi/uRs8xY21JpiHfyXB7A4y2oLdE4R//Jp6zjyOt+wSnlIAycQmWWddj6u9n\n4OGHkb7cguGR24k15dGfexFq93aCvEqMfSKucBOcXU/Y34jSOpKo7n70Agv6gQbknmTErIk431+F\nXhxFZHoGw9e1Ytx1Fve9BkL2GMzrVECFBdcPtWSav+LPbg05PR21sRECr0JkD0IZB1tvB4MVjFPg\nnjwIeuGut6F4HizciGg6jbRGwzSyDclyMT3iRqSuTEz6dLIKbWinI+i35hDsbaZdScZ/3ywClgAl\nz57A09mJTdboWDCHkKuZ5FovZlccxpwRKB9/jB7rwrS3mZiiNLTo8xDyaRyJt2OepTL3nbvhVBzq\n4Uo++vptfvLqOh4bsZar5u1FvV3G+Qs/vStGYmt7AHKeh9EfYK38gs7cDIzV+1HqFeTz5uIX3zCg\nXUXUmHb8jekYfSHSVx2AyaCl1kBPBtK50YicxRhc+xkcnYSy/gT0NUHHJAJyFAFrM3LsDdCwBnQH\nDByHuAv/7qb9ffBfxYS7dlfQtbvyW48D24Gk/+T1h/ljLZ2fMxQX/ui/+kf/vOGIgTb4YDkEB2Hy\nHTDtniEx/j8IAcIJFW9DggvkTshaBO3rIP4qqHwT7NGwZzdi0r0Iqwsq6hH5t2CI2gqDQSj7GQTN\naHu7EKmZcPIDolI7MB3vQU0FR00fzoMD2OsaEYWDhIUHpMOEkxoQZ5vQYoCJBuSYBRBdiUgCvRdC\n7+hEypzooovAzDDyLhVtmoLztrMo8+LRZ62n8fwpJAemo61dhVol0EhFS8/E09SCp7EH3yft4C+j\n7sUgGfkjyLnvx4ioOJixDKpOERx2FKPrYcQFV2LwtRDRTuM6UEfmvu0EiyTUUTrGyEL0ilP4Judj\nivbgd4SxJBdD1wxoa0S3tqJnhpHO5WKuO0eYcux9Y+D2FxlI2IVm34PhxmlYCp6jceU66p58En9N\nDbELF2JZtIhBzwAVNz/GQFQnclYIs7uNjqhaPL1fkfJaK1qhyqcFV9PuMDJWvgNtjwdZO4M42YpY\nPAzhiyNQMhU9yY2zsBi5yoN0pgNj7iDSBAcUxYCaAUc+g84zQ+l/zlgwRSFMJgJr3sY85Qw02Qjq\nPRiV2xAHmuFEKUxcAhZlaKPq5pfgbBVE5yG8IxFHTyAVurFa3ydiFRiqn0eY8xHKIHTWMDDyGsxd\ndcQdKCW9OQkhNWNye/De9ArKB5/jah2PsWQallEPYAh9TDivFWNoANWsY20Jo/vqMOX9CnN4GO3x\nm4ipCsHhbYTnPkTqef/CvRfbGTNjAliewfR6COOpfryhGP7V8SaFHfdgDJZjbOjCUGYk5N2P8aaf\nQnUtBvlCrFENmCtlzIkRlPWNaIXD8V1wHYNJeXhyRiHvO4vxgTcRu9/FM13D3mVBDFsErtkMnHyZ\nxBBIBfdB8nToeBXSbgFL5vdnt9+R7yMcMWLFsm8t2GPJTCRu1qh/H2eeWPOX873PUFnevxxVfzh+\nI3AVQ1UlI//VhfzzirBihgk3wsRbICH/Px73tcKRn0Dhk+CaDeIcWGQwXwSDB+FoFRw3wM9fQLxw\nLxRNBT0A5zaB2wuD+8CeDlo7dNdAqJtAagC1xIEeoyEqIti+0ZDcKoZWDakwBbGoAHnEWYTqQ8oH\ncb5A1gYQSh2YE9H8XjSHjnKRwLDAi2HCEpTjNZgHugkszEVqDhOoXY3U0EDM4Ewi67agLehhIK+Y\nds8wPHX1IEkEZ54lrk7CHc7DcYmRuAX/gmn7R7B7HfT3oM2aTTi8m4pIDD7vILGeo8SUV+PTO/g4\n/hombm7HmD6AXu8kZIsQjO4kcF0E27tJyMOc+MMvEJrshYkS4kgIqUGFuxuxt9bBeXegOiQGUl9H\nd+hEv5WLce7VuObNQ607x2DlWZrq2vlNdxqftAeYuOgLSpyHSd+ZgutADwlbzqKGA8gVp6nakc0H\nS6bys0OvYjqzHmnWCvj6JBHLJKSvehBzZhI+/hb+MWasqpnwnAP0zo7CvCGM0uyDgmzoOgbZN8DC\nZ8DdAl/dAMe3Qm8z/vWbseQ3Q81ZurZo2GJHII+5CPZsgnAEKr6C+m4IHIHYGAhHweZXEXH50PoN\nkqEXU9K/IuKWQctG6KtBbIvBHJeBIS+I0t+GXFkLnX4iyakcvHwkefpplKlPw9rnQHWhm46ihntR\nhkdQowSSPwT+PvTjH2IINhBxyRhNOci15Sjp9dgPfY11xlJU4+eEbVaUxlNYGy1k9fSyZOECei1R\nOMvfJFJZR2ufg+CNCibTHPzD78G48ylExgSgFDlxLGhWpBOZmC5/AduaHTjq8jBu3gMdx6DrGN5J\nfdh9cVDyIzpTY+jITiGprAaOPgejr4fmDTDsFjAnf392+x35PkQ4d8WV37mKWtUTq/87883/w7kX\nMtQm+L/knzccIf9FexVdh68+gNIdQ3HijMOQMh5cxaBrEPcQtF4NOU9A9TUw5V749H7IHQ33/Rwe\nmQM5GqT6IXMZJGqQPJKeK5dguv5+rFVn8f3CgT3vNdStL6F27qKtUcKZ5MLsaMffNxLD2uOEGwWy\nVyFyUCO4bBi2shr83RkYcgLoaSqh/QLbZIFwKGjTE1G2dRCcawJHKjXBc5i7a8n2DaJZ2gjOuw/L\nwEskTFJIXPERCEGEZvppINy5lLg3fkFDgkTSUgss/N3QNuVju3AffwC5oZVQfj39h3aSKjViUiQU\nn0ZkYRixzo7Y6kVP2YtIjqNnqp1c28co8/8NdefbyIud9I1TcTR4CRbnY+voQOpwoxuXE2i4mUBh\nPoaeePTEbET2WPjdT5Euno42rJe3rNfh8Rv4oWU1JdeMBv1RBp1r8WVfTdNDNxLb3k2UNhVHey2j\nDLtZsj4Bu6MHkoyI3S8h4h10LLoeY8U2fJ+ewZQdRUPt3XyTORd50EVR2hY+e+hOUg4Op+j3n+HL\njmb7RTbGNZxiTu4scMwd6jpc24XjpiWEs0poWn091qs19C9+DbedD29uG/qsHp4CvU2Q7wWhQO17\n0BcCtwPRVIAW+x76zuMIRx6YDkJyEOYmQvX7RKJdGMREkHajOTUCURozj72GiEmH+E5Yej18fQ7x\n4zIM+Tb6Hyrm9EgT03afoLU4i6Z4K8b0Pkz+DtSzNSSZBtF3nkak1BPaMgd/QQ+m2lz8GUFsIzsw\nJF8Fz9xA3nMbYDAKIi3Y5v8AZ98PqAmv4McVC7DHvc5v/J3Exj6KzNWI8eMRKSH49TNgrQXrZrDK\naJ+vR70sF1wlULoNXXNTyTamme8A5+/BUAQbF0P8dAhY/lPz+5/A3zBP+GXAyFDIAuAAcNe3nfzP\n6wn/JUJAZhF4+uHQWmjphu4k6O0EzQdHfw8F50Hbc2AuAdNK8M5Bt65FbFgNhTmwrwJdDKKaGvAl\nGfEFj+L37kcfHEQtDOAMyhgOr0UcPUXnQYE+xoJh7k8I5hdg2/EJUrcfOSQh5cxGLp6MHOdBavCj\nLLuV4Fel+OdC79wkNF1G6Q4h/24nQmh4r3ahJocxaLUkRqVhSPYiRR3DnGNCLtMQhi4YNhNMyfTz\nEo7IlQQ/eAW9+hTWcArmnCpImgMYISkDbfgJrM8fpD/BQHZ7HY2mRE5NzcatxHE2O5/c6SrW5FlQ\ndQD9KtDkScQc3o2wtiNMrYQPqzhT0qk0xuMx5CCPNeOvfZaA/gGylIfDdwHmYyFCuYP4JDMNahUP\nb0zngGcy96z5JbdekEDy9tWw5BdgyUf1vIyp/0UsBSMI2ocTt6AIsfw9/s1lZqZkJbZeRR0xnx1F\nybyRN5mCHU/RW6jRckMhicZjWHdW0xdViu10GxZzEGviClJOfogzJY24UwHG/X4N2Vs+R9nwHOLL\nY9BhgTo7espEzj7zPuLm69GP92ISHgzvvQMJ5Yi4FAhZIDUNJCfYG6C9AC5xQu9JxLVPIqwz0aZV\nIIJehDUXDnggqxn3pTfQUGIgzj2HSP4x1D4dSw9oegApYxH0loMxBbJGohp3INrM+LISEPmXEneq\nEVdrF6mOO1EeOU7a/JfpMZQTs6GG1gkJ9Bfa6JlvJWj/CQ2O02Q1BVDMI0C0QqARTr4H4RZImI09\nK4jBsh9h0LlQ3ozDL5Pd+QCOxk6qXNW4spYgndwBe0/Dwb2Qm44+Pxbti2ZCt/ZBeh6Hvp5K8uCT\nxHiisB/+HPDChB+Bcg4OlwIK5M7929ntt/B9eMLZK675zp5wzRMf/3fme5mhlm+v/WF8+V+d/M/r\nCf9nSBJceDMUF0DCuKGim1VH4MQOKGuDvSehRIb8fSA1oC8eB3XvwyVfQ+NmsB4mfCaMCIUxDxiQ\no0bgbKpE+DrQ4nXkjhCaTyci60QX2+m8MYco62LaSndhjVeQQ3EozmiYmQRHBQx4wOulujCauIxB\nAksUomqX0Tj3CPG7AqRsOYhqjiJweASWuCKsyn7Unv14YmUkYxpS3CSkkl8hBSxI3SvRHDmo7IWT\nXeiHPqM7kkrmmSPg+xl8kom2KwORVoR+bRWyyUFhbTlsEYw0tJDX2sSa5Ys51lPCreVv0te9D+G1\nUiulE7PBS7AajMVHoUdD3yTBqNO4HeeR9lYltuIg/uviEA1uvJOTUGtXYlUH2Vm5jLWn55IUuIHH\nbfNJ+XoALW0kzLwYTu2Ft5+A23+Jak1ByuvFPkLGPrETNk1g36QnqZmyGMcTy/jVjEvoGVXC8obn\neEr6EGlxAI5Uwu4dMDMBofkZ9ssdENNL6GQqIx8dTdX58Qz71Wew7H60zlJ6EhJpOmPGNnkyCXfe\niX7sx/heeYrocZmYqxowrarG7usnEgDx0Bbk+zsRoWNw1g+XLoRgP7TuhrpBSFSg805EMIDU6EPL\nTUN61IuIxMNFU7A2voeTdHqiXiHR1E/d1eczWN3CiM19yO3vDPUNFGNg2iWIJpngIjfu9BB5kfMJ\ni1eRunQMGbNIHn8Y7w8vIXPUMAKZY0iZ9yQtGTcT0xKPJy0ed3wifUVVxO6sR9EK4adb4MfFkJMN\n82+HrGnQs5JI/O24Ez5nedODiIgR3aZiU4L80NfOL8LHcLkaoEKgyQHUT9tQrlaxvOwlnP4ZxlAO\nXsMArvYyqLShXzgHkTIbBjfAlFlQuhaC3TD+NkgZC/L/HEkJ/YNUUft/xxP+U+xpIOShql/x6TB6\nJkxZBDW/hXAIWkej2yZC2buEqycjX/4D2PMYRLegXWRHT+vGEB6GqGtBHPWhng4gNQuQcuiuK0HP\n9xGd4aa7SMbw6lO4KnahB2PwFo3HMvYSaN+DLh9H6wJvSQltgSa8yUFsZi/n8ifhHUwm5eXDBBbY\nqH0kG/wDJD77BeZz3RgaTRgOZSNvdyN6u9BjO1BjVcKxpwhYXkFSG4nYDmMQFuQaB7bhueD2Q2s9\nugW01jOoJR6MvnyEsxvx4EGo2UtgrImXp9zMuZ7hLC7dQEzAjc0Lcf1dyMEIckEfnuybMPd6GLx1\nNqaKCuLf7EG+c5BI0UwcDRdhW7+NvteN2OeN4Hisj77GLGZNOcZ11BA7aibClILuCcOYSYjyPRAV\nhWYK40teBSKIgSmg2Cjr/JrNCS1czm8YHB/FHMM+FnZVkFDRg+gahageQW9hN5a9HsReBQpTIG0i\nnHUhNzYj5t9Gd1wz9qlPoXy1DuF3Y/OW4po3g/Co2TQ89wZV7x/FMSGKVK8P21O7KN95mKQd2xAF\niciOg1BxhuChVGRJRcyZCZYqOFMI8fPBXwRNKeBqRKSWIKRr4KNNiDmzwG9CtVYS/UkXWqNEsCAd\ng7GfzM1OlNN1kJcAyVfC3J/A6geQ+nrwJY/EPtiEv3k1Eb8P2R1E7teRZl9P5LwbaHtvG+otZuT2\nA5jKPUSvihDjzCcnqgW70oh0LA8Spg/1s8udgf7lOwi5G4ovByUWa8ckbOtWowQLkbIM+G0RXF1d\nTJIPcHpkDtZiD9Y5PoS7H2mKCzH7IdTP9vDrAz/FObOdzAmzMe5tQPccJrCwBqVNQsRMg6yr0Ms+\nhsyxiLW3g78X8ub/X83v++D78ITTVtyAhvSdRuMT7/+1830r/2+K8H+G0Q4jl0HVZ7DwctiwAb20\ni0jWDSiuZvjmc/QZNxCcFY1pdwonG5eSFD2A2tBCZEoUsi7RU6lhVlUiP8nC3B1LMKGXhDOD6PU6\n8vU/xXd0E7auUugLwHlLCRTtx6iNJO2JDViLxmKo85M78i2yHnwOs68RY2wOZyY6ESkZBCYPEr2+\nDy1LIhLyos/NgZh2lLoQhsgkFOdSAt0+LE/1YP4qDsOGdjTnMEyf7h8qIJ8YQlgl9GNtSEf6kVrC\niAQdDm4nMngWERGcnjaF0B435+9Yj8Gm4LGYMK0OYB7tI9IUjfmNHeiVTYg1NehXWQgvFlh+P0h4\nq49ASzMi7KNj5xmCG3vI+bKWUdMvJzZvH9bjHyFsu2BUP8LUjGj8NcLVD9mpiN0foWZZUBiJIhez\nRoT4KqGJiepuSoSL4fWXYX39U8RZL2LUXYjihZDXRn06mN1TMLWXwrFW6GHoB/RALax7DUenge6R\nYZw762H2LIiLR2s9x66B/XS+e4ScN15Abj1CZ0U0A1s24R4MkD7iJFLrrxGLViLOmhDGfrTOXrTx\nv0SyF0PtVrjtc5hwEQQ/hIpYCI6E11+HfB/+8+cgbX+bspnTMRl6iX7PjbnUi7U3jGhSwaGDpxcS\niiDih/qd6IQ48cAVZBwrRag+lG4DhjgNteoUvZdbsA9fhKJY6T+4E/OkCTi70xBT7PDK8/BNA2QD\n+wdBscO659Dzx+FpOIC2oAx12++RTkaQ161CLr6VyMIrUUQLyge1iN94MFsCxNnTWNH/EJWVaUys\nr0RecC16bAjSj1OcfZgeRyxpjgb0gTIkXYA5gtzvR8+7C7XidaS9n9F/4WEiOfEorT6EkoiI+9vX\ni/g+RDh1xU3fORzR/MTKv3a+b+V/RfhPMUehHepAnH0HEmR8LXOwPP084pHnYUwWkcXzkeQslNyf\n8NCbVhZf30CotBRzTy99vRlIoxzYpysoZQ1obR2Q6ce6J4SeORxRdBaPz4JiykCZswLR6UX0H0e2\nTkN0WfDNDWFzj0fuD8KqlxEF8fRM66ZhRDwT+6YRHfEhzv8p0uEWgnUJCPs1mDKXIG35CGHzErQn\nYNm4FYPrEuRztYQ8fnRXDsb212HjTpAOg1iMlJQNp48S9LmRiiI0jYjG0jVIq+rE9fx+Lnj5Q0Jn\nI4RawB0QBMMa3l0xBHZ04e3xE7DJBFIljCVFOLtvo81p5cRvX6CkaSUGrQtXuo6l30uPwUSwrRlb\nlA2FRsTwn4FzKyS+jrbqIKG0fLzrD0CJGbnyHGr1McIHf0tax24u6vYgVXaQenIQUboFjA6w5MLs\nH4DnXdT6ZOpGnkOK9OL4sh9p6kQYOweOrwaXHXw68qQFeDp24TQUwPVPEgn10tV1GOeLZ4g9fxg5\n979IdHoDUVNqaVvZhC1cjnlYNKYFbwzlwI7JRurvRHJakObfBKufg8uiIeYagt/8KyLzfKTJ9xN8\n/A7OXB2HOceHfPQY4bY4EquDmKROlGwNvlBhX3DoPdx1AxgzoGMdeI/DMDtnxTBOxU+n6ORmjIZU\njFlz0EbNQz+yD4N8lpBegXtaN4mlX2FpO0Iku5yaCQLHwR6UUjfarDB83YPoqANVRQzWYpx3B1rb\nDtTLw3i3OwjV+zBVfYqxQwJjHaKuCUKCnqnRtKeO56r1J2iPMvH0+B8wvVnHOPoqgi+9zleVF3B+\nSjVKZyqh+fVEUhMxf+FFzfERSPOjxySi7NuLNv92LPtLkTOuQIy+5e9SQ/j7EOGUFTd/ZxFueeLd\nv3a+b+V/RfgPhAjxDp+zNa2NGO0Mq+ZcxriSWzG+9G+w9Bp0/ymC+fsI6wvxtS3hsy8nc0nH06gp\n0BlKxjvMj7QoF+MX5Sh1/YTtEtpwHYNXxZB+H9LklUgJZuSDqxAXX4HQ05A+fx3J3QRXjMcrV+A8\nlzeURiYFGPjxzzHHlmI2XYDdeRxj3CvIsbMR591I6LkXCW/5AtOihYgqN7r9FKHVLZim2BA7OqG+\nBmJTMd2/FJHWgD42HjVKQbrgBfA1INWWEc5MJrRvkPJ7biGcmc2IvhOkj8vgncueYlxfFYnmDoy3\nJJE4WsJ15QtEvfIh9sZNOMZmY7uhDUtbEPHOeqK6+1CqviS6uREhzUKzFdAT7SJteRqOlAkYHDqq\npQmBCdHSCv+2Af9AHg17PVgq6nDn3Y3UFoXuKyFSfA/2MTehjL4dl5oM21+HgAEmroCat+CrldAU\nhPhxhB31RA/U4dbtNBcY6F96PiIpB9O5SsTtdyPGT0f5eiviquVIRgt6+lhMWjRx/TUk7DyLdGYT\nXDcXKXiChAKZ3nAOcvYSbNOuRAxbPJRf3vo2+G2w7Tew/LfgOY6++/e0rSrl3G9WEWpZS3uJg5Vz\nr2ZW1TlapUL6lo8ioXoXsluFbhAJEqS60GcMB89uxJYeSOoE4wDEGpC63ezrKea1hFvYap6DTzMx\nkHCK2MoO6heMoi8ljoyda7CMDyDqddQNGt3jRuAeCxbTcIxRzQQLFqEUXgvaIDR8g7A4ketHIn92\nGuV6FcP4EJG2KHpfLUP1Z2G4tBGpMwXrhCCO3nMIQzJFjVsYEzjB/aOuI2n9B6S1VvCq+SUWqHtQ\nBo+h7LPC2HEYGrORZ76H0XQ1BmUSwpaAMfOnSJodyl+Dwjv+vcvL35LvQ4STVtz6nUW47Ym3/9r5\nvpX/OVH0vyFuBnmTz+iijwkDdWT3JnO/IRb2H4DM4TA8QqTnC5TjPqx6A5pmJ9E8iF7tJ5woY+mo\nI3WMBKXdiNYw+vQUuhNlYttBvvQ26K2AZ6/COukidGk6qu8r6lIPk7ngceT2OvSvdmGeHgBRBs0n\n6ZxioyvlVRwiSGLFKizv5CIMPwbT0EKCpSCLQF8j4plraYkpIR4JZXwvTeTROzGNBFnQMLKELUXL\nuKZ2F9F9h/AOqvTtuIR4k5O0iQJLajyR5GamrnoGY7KMHhXGd9VPaD+cwMCsWNJ7YvDXexlYmk9s\n/b/AQD4iIwPUFIThCFz4IUTvRrz9AorJBPtVKBlEfn0TgQlxcOl5sOY1eOxNQsEyDN37kHdJSMNz\nscx5iBHNjYidq4i5526kqGh44hooGA0pf3iUrauA8gicaILIHkhygLETqs8hXZMDug+H5XFcH/yQ\n5KXT8TiC9Jw/iaZRPegpElE7X8B7ZRrZfR+hHF7C/8fee0fHVV5t37/7nOkzmpFGvTfLsizJvfcC\nuIHpzRBKQjWBQEgChN5CCJhgIHTTuzHGxg1s3HBvwpZsS5bVe5mRNL2cOef7Q3m+5P2eJC9ZKfB8\nea617rWm7HP2lLP37NnlumXbHOR5ayAtDy3ul4hTbXD5PQTeXYYubQM2w2UEv12LWLkDCsvAPAO6\np0PjF4NphI/OR5ufS6SsFueASn3xOLCeyUd3zOO6Ay9hxUB/SSpjf7EKKUOGYgVk0GxFaLctxfPI\nU9iTHYgHl8Pxx0G3F3xunFGN82uqOK/qDZJWrGRNrJdhG3J1kw0AACAASURBVHdxNK2MtcfO5oLd\nG9CRRUODk+yO/Xg64ki8TSEupRDfK1ejeh9AV5GEtv0lRNY4+NUeKJqM6O1CvqsV6Q9dKJe7kC4z\nEpAuIe5UHf1PjMQSOoZp7hBMbcfQNm2GcXkUNLfzofwkD8x+kIa8MPMPfIRh5mz4QkE6fBTd3i1o\nt70C9uF/Mp4J1wwS5pffBHmLwNcK8YX/3ch+gPih8An/MF7FIL63SNiEkSmM5oxQEcP3vIKeKyAq\nYHsl3P0wWlwOYcvzGAzDEBk/RhSt4PC6k8QvOEpwshlTCVi+DkLQTESXgHayD4NqxWpuQetsQgRq\nEJIT4qsQ6RcQ6O5DH9Fh+fQZUF0EZg/B3DscKdCAho/mu1OJs6t4rTJJvYXoT/RDUwhuvAeuvR1x\nzuVoDauQ52Zg836LdlwhdvltJAUTSbPUYfnxh2S01DJh1hJMyWdgjp1CNLfhKr+XrNG/xtRtQ+xY\ng5wYRU6JQlQgzHp0rg3cnn0nC21rMc5M5pXM88l6dQv6MSkYHOOQmqrRmvQMnKXHnPwgvH4XtPVi\njfk4PTaXpCmLENoA3tXvYh0eh5ThA3U9ujEfEDv5DqLdg7D5EGOmoe38A9L4U4hvG2DrShARWLkM\nTh8BYpBVBjMWwNQsuPkJEF9CZzfYrdDdR9/kEhydCci2HsQvVmFc/gfix19HWuoVpDSnouz6iKYF\ncXRnJWJynIV1xxfEWg8Qensl0X49+hdXIA69xanDbradV4JPbEE7GU/GFReC+xn4bBX+AgWp9AKk\n+DLwVyDq+9CNT8cQnk6etZutJ2JkCT8GTwXpbx8izVWJyNeQssyow4eikU6ku5kaGui5vITMHRqM\nWgxl80HbBClXEWmqwXWsiaIiCbPRzqhgHBa/m1z9CYaYNLYFh/Ki4wr2OsvpMg1l9OzpGOOCGGdf\nhXjgPaxnJdE7aj66Q5sRvlqklFmwYRWsfguOHESUzkE2+IkYLiWa/AJxd7xOXHMvOs2LKDkJlQLR\nE4NJ46ClFjnaypyifZxISOe4K5MxK17E1NEBSXrIiCCGOCFpJJjiB43nz1MPRgeYnP8Wm/1nRMIJ\nD91CDN13Wr0Pv/KP6vur+F8n/OfofB3C+VBZCV9UwfIVoNOhaBsQNXuJZTWgkytBmsOxuu2M2b+f\nwkA7sQwZOV7gGhaH64rRnJyRSPswI/YcP9h7QDcf2b0VKhXUUB9q+zrijDPA14ia2UFgfDfmYcsY\naG7FL3WS3tmGqh+PEguRcO8B5BOtcN5lsOsAnD4J0Y3IPZvRmqNouxS001EM06YgdGYIb0MqXYp0\n/BDGifMxy3EYDt+MtamVrLz5GG058Nr1UFkHxTZE8Zko8k2E7t2PVNuH70wb0717SR97E1rBYtKU\nfdR9FU9uVhViIIJao9J5cTEJW76EXV/DkjLklCROWm1k7v8Mqa4D3egRyAU6ZF0PFN2O8Kmwfg2U\nKwhvFJHTgWitgH4Jobpg7nzIM0N1P7TVw5hZ0FoN9ccHuS76X4bNAVjVC6cUKBqAvAYs0bWIhB7Y\nKcFlN8ET90DZGNizDsvGdWQrieRa70H//l6C7x9EEanobp6PcW4GUtd6mGrE1q5nVe48IglR9G+v\nh1FbiFd6kJpT6FlYjN1jQ2x9g/5Ll2F88UtEsBOKz2Nz4SRMHZVk3Psmw0QdupF6lF6BZ245llA7\nkhukxH40nUBtUTEYPcTn9iBWn4ZxaeDahFc9A++xE+SUxpAuvR+aGmDPG9AYQo0rRA7VsrlgHIvi\n1zBF7KctbgLpDZtx58XRe+6t6OYEsEZfIrJCxVLfRu8YB6Lhc7TSCeiuXw7zL4HJxWBPI7ZpLS3v\nGHBeNQATMpE2nEbkKaDzwsyb4eIPIDkHUtcg0m9lxIO7sVpd1IwZy5Bjp+jPH88m8yxKtM/h0LLB\ndE3GZJCN34up/jOcsPOhpd85HeF6+OV/VN9fxf+mI/4LagQCW6B1I3TkwLK9YDCgaDuItTyNsXE4\n29NnM+XkNxj753FdUgzfqHRkXCTU+1EN2fgW3IDc/xljeqtpSs6kNiWPVMNCUgzt6BPSEFIzPgTS\nBR8g1lTBJAtCmYpj2V6EtAhfUgIDOhu2rR4cp3ehm2LFf1c58dva4KbfgCzDJ++i/WYt1PTD0w8j\naQ9CBVA8BNxmkGJQeRODVKaAEGj2eER+wWDU8s65kBaGDjuUnwt4kTMTEUNHET7+FT/ZtQ7j5Kug\n5Tiz0zcRnVGDtjWRqveNlI+ohWOJZDyiQksH5AKn96FaJpLb46EmZxil7u1YI3pIvRM6FDjdBBUv\nIi00Q61KNC8Hw8S9aK8sgBIdwrgO9t8HRuCCK+FEN6QmwdRBKkltgpPI6hcQ9W70SSrq7UVIdbW4\n+7OwuZORjS4oW4Goegm6AnDOOiK/1BN5QUXJ2gv7ZqCbWoIpOxFliYeY9gFCvhq99Bqi4RIsMzN4\n7OvHeb7kLjbN0VNSuY+2IQ4ytFq0ARUppEF8Ec1FM6j++b2M/GYNvuCXbHAs5KnwDtRrI1R/EKXw\nTifGQgcD7niSCp6EpuPgiNKYXUvu5x50mh5hqkG1dyCCW9EyI/i+Wk7q5JFITdvA/XNQpsCsUWi7\nd6HVNWGTYzzS/gSRWgkpqjJOfxDyBWqngS1aPvVxYWaWJfD5iImc0XGS3AodjEsjWvEC7uhWHHPW\nIO9ZDvoitNYOSsZ7MBiWowRXEL6zF+OhXMTxLpjfCrFatNTXUP9gQfOtQCcbmbCrDr5yQb8Pa+NR\n8rL0aOduRiQU/SkS/h+MH0o64v//VJbfFZIBsm6HcXdB8liQ2uDQ44i3z8b47jfQ9jVlVW00ZV4K\nc7bSGncXauIA2vRkNJ2EiLRQuNVH/sY+9I1RCr9uorS9GW/XZ3zbfpKOUw4aZk6ma2Yutkd/D1E/\nJHUScxwjao+DDj+JR93Yzr6BhpuGcnTpedh9k/FaOiC5H/bdAG1foS1ahJbeizhHj4gehvBoKD0b\nMfpm2PcVjHgceqsHdw75I47mz4L566D/NKSa4Lx74YqroOEdaD2EVDgJyxdfYr4yjTRHCGfBNbAz\nSvREMhis5D0awxjrw1NvgFKZzglmlCQH6nUjByfPpkwmrdRBbqwJLV+g6mTU/a+jBg6j7f0ETQWG\nTEcY49Bb69E2pCLS/MR6MlC3j0CxXkEkNYNg0WTCZ19IpPcDAl/PpfvjApq2vkz12Di6VphpePNC\n2vOLULAQSzQQCGlE6w3EIqAVFRC7pxztl1FEowPp7alY12Rg71AxVJ9GPunHKK/FbKjB8G0M7l+A\np7KOJn8FLaky1wQ2MX3gJM9PvxJLXQdhxUZIshOK9KJd+iTlSgIX6v047D6Oafk8/cpD4POBWSX3\nKkHdql58t5yDLtZGYGYi0c5thGqOEB0yG4PeiKRdAdbrEU0a/XclUPmkjrSzu3DLTWgjo3AqCq/t\nIPZsFdqXHjDlIk+cizRmDKYzUhg4Ix4lpEdqNGPUZbFo1q0s9nXgaC/gusABsv290HwCMeDGmDQU\nx4YTSB//GI5+Dl+8TkdfGrrRhbD7JXT7+zF85Ue194NDBsWOumU0m2uSiA6biy/OAWMngiULDn0B\nSghDeSlufxaxV26G6Pdko/9k/JuoLP+v+GH8FAzi+09HBF3QcB9s2QMp7ZA6nXBRO3Lez5AmPIRx\n7E/ZmOJmZOtRbFTwxM6VnDFGQuvfisgAYWiDysHpJV3YhhwsJ8FTgVPnpiM3Ba3Rje1YP8dnyRhM\nG7E1ZSOX3oA6qQRxugF54mziAxkonQO4hvWhM+QjzAEszRJSXyP0V8PRRxGjsiCSCaILLf4YYs5k\niBuPOL4bFj4KxGDrZzD7J1D7PKbalRi6jyCG3zwYDX/9DBjbwGaC6atgzQNw6EMkbxsiuw88m5Em\nPIDy2VME5iQh+WaT6NiBZ0cEc1jCvq4d7awi9F/rEMdbkK58AVltJGDsZcBaQtyF20EpQFTug4Ze\ntOJ8RK0TUVRGzBwimjYWvb+H/ske+qZa0H95AtecTHxDRxBwCGJ1fuS3D1JTnsDGKxbSmZOOJ2BD\nc8WwNAQwTJpPJMdIojQZvdeApBxHFWcS3nyCWFRDnhFGnj+AnHsR/ro+dANedKUSktGLMOVD92qE\nLYTxSy/ytMdpLS3AOuCmuH8vpTVH+F3Zzxmy9RRDPz2BVNlF7PBKlAPv0dR7nCMZhSw6VYs51IuI\nU9F0IFKMKGVj8S07SMuiqSQ3fI0ItmHY04Jj3nXoGqshbjck6tCSuqjYZmbInDBGxYRfNxoROIXU\nZUPUR1CMXmJFVsSvVyFZxkCXBAPHMPe5GSiz4bFZiOtzQk7yYLTttSOOrEZyFkF8OrGcGUiTbEjS\nXMShLRDVody6gcCXvyHe2AlHv4KeFkRzFCmWBePdYK1AvDUGz62P0TR9MvHLP8J6jgFsZ4L/FDQd\nhdFzecq/nBmLq9EvewApawwkpv9pD71/M/4Z6Yi4h27/zukIz8PP/6P6/ir+9Q193x2apmn/d6l/\nJfy1UDUNHI9DzkKwZKAqdUgfXADTn4SkoTRX/Ii0rOtAN4Gr7irlnfOmoB8+Bo69ghAKpAJNEjSZ\nofgcyPucyIFZRE27UIcIvAk2hBJBtkZJORxGO/dOMN+EIAmMZtj3Jp5dD9P5s1tp06+iuCYL89AL\nSegoGEwepYxHCzXBlwtBnAK3Ah4jImM+jLwb8suh5hPYcDeUj4aEfHpDR3CoxegVDYZdA+tWgNkA\n2noIG0Htg2ARZPiBesifBiE76hf19P6uDXtTCJEcQdKmodx0HF11P9qOgxh+eSnEu2FIP6RcTigY\noN14GHnE9eQW3AdPjofqQzByHHQeAhGH5vQR7s/AOO5uxPk/hWOr0Z64ERICMOt3iE1fw7jJaBNP\nIWyJRIrupyf0FAkrnsGdmU5w+ixsus+wGfvp9meiSjIOQxomwyjMUgnSx68jtHg4dJKoEkKcdxvy\nnFuQP/o5XPgYtDwJPV8QU9xoyTeh22qAgVaYUQLVT6IV5tAdLuMF+1ByTrcydt1RipQ22jITOVAw\nimBmAtfljEJ4Wohseo7wjOFY5TTk0FGqXsvGX3+I4RddRNvl8Qxd9gnyvMWw5CW4cyGxYi8Bx170\nMRVDkYTw61Htc2j7eiPhAzqG2BS0UhuSloHWEkPEpcPin8PAauoNLaTFT6M6YTvFLymIFAdmZwJc\n9R4i2As3X4zy4zvwmrw0H76Fkv1hDEQJOKxEYxrWNIHOYQAtD7qDkNsG1V643AG/DcPzKyHrbD5X\nVzH25YfIsnsQ8/bCxmfg9Ca44DHe7DiP9ESNaeV3Yl5+Eqk5hPj5czCk/N9uqmKwIPiP+C8tXav/\nzsIdouAf1fdX8b/piP9CLArrfwaJ3ZA3GiwZ4GlB2vQg9FXDtoWw9SKEcz6NRNn46i5SN9yKq96K\niDsfocUInBoO+4ugTgZfCNq2Q1sqwipoG52A7YSX9HAHcbYAvYVOgq4SRLAWYcwedMAAk66lY3Q6\nRW99wzjPkwRtiXjbX4C0sWiJTjT/7aDcC0wH+6+IbcmHWBmaYw3UXA0HloLigWob5F8D7m4iuixC\ncROhwwTv3gUVa+HgSqgIDfI7ySUQ7YXkDPBlgqkYWtchzbahP2YlaragF2vQxe2A2YvQ0nMxvLsU\nMlVYOBWK74XuLky1u0gLdBM4vAr/OwuJjpsGJh1kTBz8z2V3IEwCnaoSSfgjw1+nHpFVAN+G0J57\nAG3JObD0F4jC66H4CQyShcwTHswdgkRvC4X1o0hel0e/Fk/Q5OT3todxx73IUeMs6uT1tCS4EF8d\nJjjMiTy5AMPEy5Dl1MF/APoMsJ0N3e2g15D6l8NiKyxaCiueBUcJovxenJZ07vvyt2y6aDEPfvAK\nHXdMpOuuMrzjnVxx4gB8tpXQ6o+IuMzY3vMjrKOIDTGTeWkvQYuBkyMOMiBV0PK7pfTYT9H1VRku\naS/u7RWcGjmC0+On0LI/E/VAGBHaSEoGmEoVovkmtKl+tGtO0f/0JUR/+RrUfQtVW9kxsRx3/35G\ndk7jwK8K6Yn0ENz1Gf1PltP1+FQOnmyj4xeXIV5+nOROG9roErQMgTkZ7KVx6IoXwfRlsPgV8FfD\nBC/kZMKeHDjjWgishIpLWVi5BjU3hPdgGOKTYMrF4KqB+EwmDYd9JwRW81P4fyKIKcfhnksg4Pte\nTPYfxb9wj7m/C/+5hbkBFzxzG+xYDWNmwrA4mHEnWCTQ/7HP0Z4Nc5ZBcCvEVHBMIU1XQEP7e5R3\nfIukeki6YC18cjtBr4briw4st84GUwYMBEBqRIl0oq9porBDj0g0E2vMJniWH3skmdYiGNLaikiO\nDhbUiKFJFvqyh+IbtZS4Dx/DtvAROmz3Eq0Zii57AZhvQ8hFoLwO7z+NlJ6KmDGVULwFXdCPnDEd\nob8ITfc0NB1E9CeSuOFzhPkEpA8DrxFGXgDqYZi6DMpmwxuXwa2bwbMPCsxQ/R6k3QrmAI4jBwlN\nNkLjp4iBDzEpu/Ebm/HvifDGH96m2+LkkY9+idEyFVzbsPh0FNKFt7iP1tkjKN6UAse/hkVXwYqd\ncPsipA87UZrfQv20E6kyDBc/hLDeiGqcg/bZa0i+LsS5v/rTdxXzISacheHIaiI9T2Jasgm1/UpC\nOQpx+nqSw5+TZTSghCs5VFBKwuVdWBZ+gS5iHdyZevS7g1Smri3grkTROegrTkbX2EeCZzeEj8IV\n5bCzF7p2I3teRnPYuE9ay8lAIYfzhzE6/hD5w/YRtkh4xowhSBaGUAHq1g70B/6A+UQ3xrHJlF8H\ngb2tOOvCSA3Por/eim5TO90VEnGuKCm/H07Ggq0Ej8TBUBD9YDgqMdCt4ixTMBg1tDYJe+R52pxV\nxGbrcdaOYGi/jX7ZSOb2Nyg/acFfrGIIxDDEy8i37yP1mg547Xd03zYJa+0JjIfXo9kFeIJw2Wi0\nnTXw9TZEcjYM1cHbCgwL4dncif3xBEhaAkWTMey4gtRIPJ9dNI7Leg8gaWGYsQRCTRTHG6hpGQlI\nGJOvw/NqHXGtj6Nvb/heouF/FOHID4PA5z/XCTsS4aH34Mv3Yd9z0C7DOy/D+GEwwQ2Zf6z+amE4\npxLCx/FWXUXIdgxXfCFif4D0MhP6vEmonjY635fR51ihYTtE+iCqEUVP92gzjnk6LEetqEMjKAU9\nmNS7ML61nKx9/TBTgngDmMsh5T2EYQSjhj7PIe11hl5WTPKni0kYOQJP9rkkru6E8m8Jj8ogalex\nefuQbl4GYxYhsYl+7SISeo8Q6/uCtnsLyYxOwDB5Dk2Tp5H26xXosh1Itz0ALU2wYz9sX4Fy4E5k\n8wRU/3Zo/gyp/hAiaID0EqhYhRS1Ym5JJFruwJD+LGL7B1i3XYuiuLjorbdROw7TlJyMQVqLes1Q\nApnXM+TtV7GJbKqpJWtYItbuUxAGnPPA6UJyjKL/YgPG33SR0H8Y6oIwOg+5L46YGEnsm93oen8K\nF/waEjJAa4bGbqTseajlu4kZ+8j9QxN2xc7MnxzCrx5ENzQNPTeib9iAOC6jn58OBplQ2Y0Yqq5D\nwgyaFa3hPgKFqehcfcQsEuH2aoySC1wXwuwF0O+HXSpaeQirpOc833MYe/ORK11oniLCogL3mAqi\nTKHA9HvEQgFcCDO+wDqpmS7PB7SeXEf2c1+gdsSQXvdAdgnOkk50qo3M9N2I052YF3UhZwLNIEaq\nFOt07HpVMKvNgPjZTOTgIXI6txOrLyBQEcE6zMnAjA6qssoZtvokzWOdoCWTuSMRYYiH4iS47Cr6\n6u5myIkY5CqIGhmMiWif+2CcB+JdKFtcyH0yQrPC2yGa7lhEec4MiOwFXzO4DmMKjyHvYJgTPEVZ\nt25wYCUlHalo8eDulZrAKC7AwFlEsw4D//McMEBM+WG4v//swpymwr4XYO7NcMmDMOtCUOyw6V3Y\n+CwMPAtffwEP/RLWr0GfV05ME7gT85FW7iL94QR80hZIshLd3E7KeSAWPIGUdBQ6vdTXmJAHfCRO\nTUYadRX0bSU81IjS6kHO8WLI9UOGDfZE6S+9H0P8AgQSOoxkh3OR+u7n9NizSa1KI+I5iC6azmGx\nmi15Bwn0nkTIcbjPOxcAM8NApNBh3Y3cHSLNq6ErfghMCXg8J/EumETCO+vRegJIF90CU29FK5+B\nWvkoYuQtUHUfWtc3iG4X4WlOqGtBKxyNGDoS9g5HTmlGhGVYcQd0BpGMAuWUjfSzLCTpbMRf/AaW\n3jdwBedSk5RKdXwm/mYFbWwLVn0m+q1jEdfcBIHVYLsQ7/u7CRd3YO8YC4Xx0BcGrQ8pUI8WsKG6\nfEif3gGF42FoBKY+gRh2DlLLJ0RTP0OXcQfeQztIOT5AvM2JJ70PpDDiKzehhGScwTCBHIUeniRe\ndyNqzVNE+g8SKAKrp5+gQYeqM6Fv7kZ/MhuGRWDSo5BSiC+xB3NVGINRIZrVgz8xHcseGabdhdr9\nPgMlZ5MplmIkefA6iq2Cnckw6cfYt92FLc6JtSOCMPWgFTiRllyJnNAKUi2ROi+6Pg2pW0AA+AbY\nJyFnpxPZGEKTFKyJ58DUj8F4Bd49b+CpcJEeOs7x/PPZlDYa56SfMyIwlIN5ddgPZxPduw3zjHlo\nb16NlFSPtaMBiufDkEy4Yj9ixi0ofo1vW+Lw9ulJmrYU4dHAcArTGDcmw3sgjGD9Gbha4PhWUny9\ndMZFUYomY5v8BNKIa0DtJFO6D3PkfSwmC8IwHJm8f6/N/hH/jMKcfNc9aKr0nZby2yf/UX1/Ff+5\nOWF/H3y4FEaeC2ULBx+TZRgxBa48A845BSlNMNQIv98Gw0qRjhlxvBch58qPkK8pwdHRR/yJLvyU\nEJyWQsuSBGpHraOnKEw4WdC5O8Tx4GgknQRty9FMTkzHy9CSa5GcKmQIyPCCFKPTuxbCu0BpgvAu\nxOmfYEndSX4wQOvEA2hjH0V/wcuUp/yM8/fnMuZkLpnfhhFKjAb2cTD2U1oG3iOBMdjXmxHZj0Dr\n5RBpwZg1mnB6MvLN54CmEbvnDrT6/bByKYFzFKLjdMjnn0b2XIpYn4Hh4ySkg22oqh8tfg9UvYeQ\nz4C9V0JfN+Le3yEu/yXOoaeIVVagnfciVF+N0T6J8sqNzJn6OOcMW8qij9/DGDSwbWIJvYFaKC4F\ndxda6RSkCg17TTZEq/CUTuL0j38F594PhTFk6hFt1ahp0+Dj+0Hp+yOxejZyOBUNlVD5GfQNLyKt\nsQlbUwZJG3T4lTYSOtroHj0GNdJNp/cGLP4k6NuG0LvpLWphoKAEKSxhir8L4QkignFwSwVM+BAa\nL0BtnYlWVMP2ZZdTN66AoDXKKdNwoqEmYsKNIBlLl5c4SgavmYHtaNYRqFluQEPOOIe6+09R29WG\n1gmixIb64RZim+OIdEsYZsZgsURsghk6BDjtkK7CITdFpSGqjsRQP/k9fHoFvD0chxRBDfjRG6OM\nP7geZ3sfdT0b0dsTyGoO0jTSz8llrxGpPIgnR0cg+1z4JgHsYyDaBVVXQcXlBCueJqt2OxkJoxEj\nrwazFS1BT2/mUOgsgcN22HQrBDS0krHoxzdSHjlKNXv5xtYA/c+h9fyUbNuXPLvxXLD+eygr/5WI\nKfJ3Xv9K/Gc64e7T8FAx5IyBEef89+fjz4Kxp2Fy9+CW3uUT4aw0eHglgXuW0xXqw+b2ET2sw7Sz\nC90WJzkTDBTWNJJ9aDe0GhnIiie+xIJ+wXg0qQdUBa1DRW7uQTWegaT/FXyVTKwzn+DUK0jfcwop\n+C34Xoa+n4F9E7RMwpz4KJnWexD9t9AQ+QP60os4MBEOzPfTnyFI1skkKGsoqWxgWPhpHO4lqL5K\n1MQSyHgF6pdijGlEtAEA5KuuQMyci/bE1VC5E4Plx+iYDg17EOnpCIMVseso0Xsfw7OgAX+qHzJj\naD+9D34XD6nTobsPTrwC8T0oSiLuq0aj+Zpg12lY8PRg21JzPbqwgfw93Qzp76f6oWKCUhAMZyMy\n89FZwtj37QHDMOJM41FrniDW9CpYfwIuCTnWSEzORsktR+tYR7TyRpTQNpBz0ZtvpV95kH3T5uEf\nPxciiZhCCtk1J4jNlokW96LMXoI5VITWWIvW8gyqQ6CLVwkNNIMaxbp2JSGyMHzuQz2xEgyZqM4x\naOYAyiqNaVc+SekHNZiCeoafrEPkFxHxrKe9KJu0+sFzoGnQ/hyqsxfieyHcAPY8Ci6dQ+WbA7SH\nhqE+FkDxTaS1PZPA1FXEDuvpr7UOjgonGWCeAj8FRgSRcgUTLoVoEdCwDdQh4J9BypBZtPxOIm3T\naW6/81lM3hA7/btxdpxG17AP2SyIvPQI7jIzzqLbIaEQeodB1nsw8kNqdBdTZZ2Kf/HdOFq/hJqJ\nMPYY6sxMUt+ugf4QJFYN0mL69yDK56MlXkOsxUp+5DTO4HI0QxkibRV14gBHuy7+d1rrvwxKVP7O\n61+J/0wnvO5BKJ4Dw878y8//+Ty83gq+9sFhDtlA08sryX3qBcSZeqSlAm1eL6EtL2NKiiDcBqwn\nMkhOeZ2UziHg9zIz/D5+v56gLp62phn8duQt+EMBovGT+WDyLTyYeysn1TDhzElwoAvin4Ckz0B9\nCrzjQSShs84nIWMXiX1f0uK6gEyKCSXBsSXxuHzvk7trAMfQDxApkxFbbkfX5ifgug1NlwoNAqPk\nIDG4cvD9KH66pyajOPwon7oQzQ5ikUOw+Tew8FG0syeDTYehJg+HtgODfxHaaB14/ShTC+DM2+Gb\nA7A1gLpWg2YXluQQys5OVHcd+HdALAQ53ZCZj6ZLIZDYSm64hqauX0DZdShb3yC+5wh82wZjShHt\nd5NsmIF7awsM+OClPTBkPjpnOxG5gZixFd2BjcgVm4kJBUleQlywgcasPPSRdnA3w/44pNgEMp5x\nI4XbaFZ/giX5RqK5pahuQTDbSNBair3OjKYqaMY+UsHpAQAAIABJREFUspZWEZseQ9t6Pewej3Ry\nH/LX43Aer0c/YwKG/Chx/jCWQwfQa6C4qhDWJGT7PGh6Bfo3oVpUhH4IojoHzbMfTUrC6T3K5NlT\naezWoZx1Ib2na3Fccy0JZy1AGTEVoxQDdwwi46EhGSriQVhgqB1LJ9Ssh2inCvpGcFZiuvExDEnJ\nuOqNyCUxFh8+gW9AT8BRSq7dT864IIETh6CzHfPBQzDrLFpOvA1P3sGukIsXS8YzasFVZFhWEbXZ\n6Jv0OZoyAzXOhtQDTFoO6YWQ/2vozIS4KmRtC7rR8zn53FiMqe/QaykHITFzjINr/ucHwQCoMd13\nXn8nHgWOAt8CXwPZf0v4P69POBKAjhOQO+67yVc8C6ofHEOIWIsJb59HXIFAM0J/JIrnWz2WtQrJ\nS86EJAE91bC9iYjsob5Kh7R8CYbwZiJyMkPq7Vxw7gNMDaxG6rMxvi7E9IZ21t18Bosa85E+uw7K\nL4HZj4DOCEcuhBEvguoBwyC7WJvnXoyeF+lOTsRZdwbH0wIM0caiP72fjAGgdSvo+lEyxyH8fcha\nMq6EJGyRdei8Q5GjJrS+PgLNnZwedz7FVQPIZS70I55Ay8tEaZ0C9i6oSEMXPRvhqgTRifZCH9qP\ncpFuqIDazagnX2fgyS9IWPY0So8f7cD9RJr1GHvCcHEWuoWPwRsHIc6Ol130/CSBAvcI2LIB7f1K\nYsPGoVOb4EeTIOkWeP13nD7HQGbprzAnTEH97YWEr3Wgf2s92sgBok2Xor/gMmI7bkJvGYlveAZf\nZvQwe8VOkuuB072Qpwe3ga+W/4wR2z4j6a1GlOFOBn4SJanWg9Q2nejYIFLgCNFPIGxOJnamh1i/\nAXtiDqbki8GzA7RW8DXBtyGiF6WjX9cEhTKxQBbuUXk4lRLkmgNoGd2oZZci6R4nNjMNsVSD+HiE\nms5brg9pWfs+0ypeYUpJEubVu+Dk5/TtvJ/4zDroBPw6RL8ept4IBzfBgnZ4PkBvqoJ00ITziSvg\n2Bto/Q4iL3qoMlkZs3gWwrYNJcNKjTOJ+FAvCaf7aVwbZmiqhDzagpa3hH1TDBztDHByyhU85n0A\nv9lGYzhM7jdBxMXXktiSg/foJthSQ+LvN0K0B94ZD65kyMiDUTegDJ3JhuuvZ/E77/wfJqFp/xbK\n4L+Jf0afME1/x+hfrv7v0RcHeP94+1YGOQSu+2vC/3mFOVkP8RnfXT7YBtWvwfiH6f30dqzDU9AZ\nFUR9gEDRtQy8dIyUcR7k6nbE+ZeAtR5aE+lPaEU2FpKbUg0BL0aTlQORmZz9/nJC+gLmd26nOGUb\nIV8RXSPKKIxfDCOvhm2PQf06aN0NVjPEloNtHujSABBGM2FjFumnduA3Rxme+AgtoS3sz9ewFv2C\nBI+EiDciJn+M2vQc2tzX6MvIwGxbgycpDUxTMejM6BKqiE7RYx5VirDsQMtoQKtfj/R5HXKCipzk\nR3xeAataoXoAYdcj3EEQBki1El3zW8LNw7Hk9yCdfB05XkE/YMJ7Rg6tl5TRH6/D2G/GUPU+hjQj\n1lMGdEfXQp+E2z8W/bhats0pptaq4WtdS0qBjD53PN8m1RAnv4UatxFDSw1qsiDmc6IkjUc/8iIC\n7jWY3S5MlTWku5s4NmMISc1dGL2p0OpG80fJ/2IXWkDCaEvHu1Qi6gygrzMTKdIxkNyHx55EyFlC\n3wUK5qAPxaFi6LajzXgMnfMMCLsg4VzoqkYdNxy5/zJwJiLFjmD2g7R1C8T5wOiB+E9RrjkPqeM0\nWmYxdbM/w9vzMgVZa5gW3YY9dwaNVbWkb3uTaM0G/FOysOGA+D5i3TpEOITo2Tc49NJqgX4/lmHF\nuL6NYLn8OcS4X6F+9Sm6F9Yh791Hd4mFhKILkdr7MZuasdUOEE3V09mtI9EYQ9cYJmqppiYxh4/P\nWMBzp35GqOA24iyTcTbp6J5WjUFKJcFxI5FtTyOiKZhlBT5+BHyVIDpg2m9hxAJ6T54k6HaTM336\n/2ES37cDhn9OYY6bHwFF+m7rhb9LX+TPbs9lcDfLLX9N+IfRo/FDRvLEweb2wxNJmdiDOAaYLTD3\nHRIcc2i/+DDm5v1oU3shaoKmbliUifctSI5XkWJd2FJMeKMygQWTKDq0hpJv1tIwZyKcOEH7WRWk\ncsmgLksCzLoX6rdC217or0BzREHzglIFUjJx/gziNn5OY8L5iILN6FsuYqRyEVbbbHbonsacuod0\n7zhE6zbktFK8lmfI0N6hRXsbt+YiJfEQWn4LFl+M9EALkcrjRPIc2F5oQRgV6FOhOgZDHXBlMUgO\nOCsCfSOg0w9fv4p25DSxYyrWcA1UnYB4FS7dgjjVRfxjVxNvP4/whTfR67wR48hmWgsVEp+vxDBm\nOq2LBDULI7j1E+lKcVJWX0OhfAwRjSAsRjINbWjBOVib8hE6hXBbOv3XX4+Pk8R4Fl2ahK2lF2UA\n7KGZTHt8A1pAQQm50QlQE2SCeTr6p+jwFUwkbN5KZMCOkptERtcxLH0gRc6GnOsJNz+G1FlDyG4n\nNtBEQ+x8cqxPYY90QvoStNIwGI6gLvgFauevUBwhDAfqwaGiFfiIJMtIxxaik2uJ3uIgGj2N5cWZ\nJBsGUBtbUAvMJF61D52xleov4zAUJpGROA0+eQaRISOPscHmENoQM6JaQZPtaEWTEIUjyLr1CNrL\nS4m5E5F/vYbgEHC96yO85Gtcz+7AEp2IIedqAr7XON5ahHlqLz2VXrLDUVZk30hr0hRe2/MqZqMf\nTd6L1mvEk3gYuzyfNH6JgkLtmNGU7dsIv/0Arvw1bN0BF42A/EEvu+/pp3Hk5X1flvevh/IvPfvj\nwI8Y7IGZ9LcEfwC/af8vvv+x5b+E5o1wYilktkOLAyJWCIRh2hrIHkdH00JSvt2NXBeGUCHMmgFD\ncqi66T1KzzqNKMwDkwdPUjY1JSHMPitDOu/BtOJuBoa2IhIFocwFhLujZGxpR77zVXhjBsz8NYwq\nQ2v9CWQWQGwPdOVBvR++dNI1pZ/fzHuV5yyFUP8MZN/NJ5a1GF3bGN8dIbWpFynhBMGRP0amDn2o\nGS3aiWooQgtMRVq+HKn0R/h0bQQmVxLXeSPGlvVIgTqi6bOJBkuR/afQF+xF1BmRl5yEo2eBtxWO\n1dO/Jom41aeRl08B63C44+PBz6u3Bd6YD4vfgdsmEV4isXPRRFrtWVhcUbJ7WykKyCQ/uJfg9IuQ\n736IttDLWMKbiHP1IfVNIxbcg9X6W/jsTQg2wLPNUH8UNrxI+OD7+MaasO/0E81yYijrwduegKVv\nAFmJIvepdM/MQMxSsHqHY9qfgGzfCoeS0NJaIRpG1AIWHcQLYnIMVadDZJlRUycTGTMPiy+G1H4Q\n1RskesZmdIZXkdoT0VadjbJ4PrJvP6IqFWndCdQ2PSGrjepgAdabrPTPmU7JR2vxei4ibbaM3HAS\nPDvpi7XTujKGcFjInw1WgwmGF6F59hPzGZH1Q6DuOJpboHZpSH4bJDkQXi+xG66lo+wIXrWNtGea\n6duskDotm76Rk8lo+JZjw2z0tsSR/GINOTeoHEpbyOxvehDBSrruzUQr1IiE3KTHf4BJKkc07YDq\n1RyJHWTkY0eRM0phvBNGL4b5t0G4BkzDeGPCBIaeey7T7r33ezTAv4x/Sjri6N/hb0b+N32bgbS/\nIPlr4Is/u383UAxc+9dO/b+R8N+C+yPouR1yXMS67ciFN0PvKnBcCweehfrjWJPKaHHOJ++zNTCl\nHopfAd9yEsosaKN+TjDwFooWxFtYirG2mZJ37MiuZZAwDPNX9XTmJ5Fa8AUMeYCWH53CueFGLD/6\nFN2el2BYPaJtLtrKRhiRCOEumPY4FL1HcrSWn4buZ73pLAr1XsJqJ4nSJVQ7WphVd4RITjcmWxRf\nYCU1rvHEci+mta2FghY949oqiQ2Lp3l0BofLhpMkxQgUtBOv3Im9vYmsta9h96yjZcFPMYXGk2ja\njHz6AtDFQdrP0eJCRJ7+PbIWBV82FOqgrwkSciEpG+91z1Nz5G6aHl+ElAAFtXVM9Q5gds5DjHoD\n9m+Dxz/EXHgREd0xorYOYv6bsJx6C6Q1KAaJ8JG7MXY5YMJ08PRAbhmNw/vZvuQ8zlvXgH6eF/1F\nv0FzPUdYH6CvNYDtaBN2r5mUej1hVwRTyXZImgXWIWhPbYNP5yASqmDWg9C0AuL0aMYahKbSmT+K\nrM92oTfHI065IGELIjoaBRuxXjfmffcjJiYjN21CWmNB7DyBmqJjtX86y3qv5+uh1xDQF1Dc/g1q\n6RTsE64dHHJw1cPsxZwwVzLRX0GkPEzXugiGoIytbDgOtR1x0kDHL2aS/oKVSG87qs9DOBIjkuFG\nmmuA8NvE6mwUfaSiEwruoI6mOj05KW3IJRdSYjjAq/dcQnvNWjqPNTEv422iLdmoEQ/WZwWu+2Jk\nuW/A2PUiRPyQNwuKLyZ5zz5EATBwGua9C2PPG7zuTcMg6CVt1CjG33rr92V9/3r8rUj40HY4vP1v\nHf1Xqvr/DR8AG/6WwD8aCTuBjxlklm0ELgH6/z8y2cA7QAqgAa8Cz/2Fc/2wIuHQCaiZBN4gOBXY\nK8OIHBhdDbV3gGsNyD9GXf8xq+cWM6fBSoLzM+gaQ3DBMNr6DkBxHBkbGjGphUgzb6B353r0bXoc\nzpFw6e0c+nwu+b0J9BZmkaysI2HadoIHnkUJrCE4/WFSQhsQpt9B/3bUlhakibeA0UlH45t0eCoY\nHZRh7KUE2u6n0a7QoddIUcIMaT2KMVZOtTWDZ/IuJM7l40JnkMKqV4nTJREun4waeBW3eQJ54iVi\nnMYd242yvpH86hDuH93EzsRPSR6IMHLnRqTCa7Fs/wKWFIPtN0Qruhi443aSlkyBHDsc/A1cuwGG\nzoOOI1RFvsZcv4vc49vQbdbBhZlw5RGQ9H/6fDUVTl1Bf88J1kweyeUVbgzhBogfg6KGkKyrEC/a\nEWN/DEqYqK+ZDy51kNrSzvzVh2D2fSBehoIX0LZejrbTg2d2BqfmzSZXfxWpq1aD//3BfJ5Xh5Y7\nCgocCGkAzbUN7aQVaexlqKGVKI5RDITaSaqpheka+FMGW85UC0GbQHUr6JtVDNvCUAuMt4AcRXwR\nZdPsF4ib1suY957DnBiDdA8UlUHKJAgaUVWN/uQKXMlOipw3wf0/hbRmonlDadgOAW8pJdfUEtgo\nYyoLYzzRg2qKEbw6ir74HWJH9bTwKAWvHoOwCdnSR+02Kz31ISa/dju64pmQmIa/sIiVn/+SsgtX\nkPfmuXidNTgTEuhPrCfthS7U9lQMN7+MPGMuHPsENj+E6u9BCjuhrQ8umwnltw2Wk3a9DVll+CZe\nhy3eAmpsMFX2A8I/JRLe93f4m0l/l74iBq8UGCzMTWAwNfEX8Y+2qN3NYFg+lMFWjLv/gkwUuAMo\nZTA3cgv8V6f7Dxgtm6FpDPTLcAiYEINaF3yZN0ghmPgMSDVIUidGQ5Q3L8/Bn5JE3aJOuk3fkJEx\nlSH6L7FYhyF1uEHbjX22iYPTdEQX3wTfrCLrWC/Omz6nOJCH2p2Me/t8LK43iOtLxziwixba8Og7\nCeSdSeSbGME770Ht6aG3cx05w+5BjH0coZuENTidfN0LjDWvYfipLoRJI+qLo1RXwoq+oTy17jjT\nxTwyEkZgK1iJQ7sCc4dETzREM1fS37YcU8O7iLRcam6/Dmf6HCbob8Rl8rL/7BnIshWkOHi5Fyrn\nE9mxDEP5H79Cvw9GXzNIgAR4qn7E8G27Kdy/E50UBCUCJjvsXQYP3wiR4OBxrmaInYeIdXL+5s8x\nEIO4YTD8HeTSFbTEn0WkKAqpiWiGLr5ZlMN07TzyIr2g6aC/GdIKYf9LaAMRpLFgHX41Y+ujtFmq\nadDvhKMyTAmDcMD+Y0S7LfjXbUPrBQkv7HoNaftU9F+FSQr1oxZmwY5EvLYL8H2TTeyQgvwG+Fea\nES8qhMiBpFRE7m2Igej/w95bx8lRpfv/71NV7TbT4+4Snbg7MYhhwQkSfHHbxcOii+vitoQEggRI\nCBJCXCaeTJJJJhn3mR7r6e5prfr90fzu3rt3793lu7Cwd3m/Xuc11TWnquvVferpU8/znM8D8yWG\nRV4h3duEafJlcMsKGKVAswuQ4HgpTUVO2gMusvaXQaUDGh2gCnQ9VRQG6xhw1Rwato8llL2Pho8q\n0OiMhgCKJPQrP6c14wVyLb9BmTob3QAPYZeOvFPAe+VQfLkLYNQ8yBuJESuphVakeIEUPIwa78Fr\nOk7m8hYUswl9bgh55z3w9DRY8wAEVaSUhWAYBBY9bNwPR96FtZdCVxUUDMP66fnw3nlgsP4MN+A/\ngcgPaD+MR4AyoilqU4Bb/rfO/6g7Yj4w+fvtd4AN/HdD3PJ9A/AA5UDq939/mXia4Jv7wZEIs7ZC\n+8nQFob0LqiwADHg+hR8XZCgo1BqwR2y06e3kN3QgbxFgjwZxpRCzhlQvhQq69EXxhPs7qDx+QfI\n3vwsydc+Hy2SeOrtxG2KJ7LtOtQ0M9LgM4k5/jgW1xSOnbOW+qqdlHQESbr6SdruvAHl1EbilKTo\noojatRDwYf7gKcyDRoKtGl9kJsfNPQz3+6F1I7qCMdDVCg4nwpKMiOzAX22h/9HBxFZ00TPcT9uE\nBCx5VWRsqIKEE6SaU5juzaJhkJ1t/QRjHvFh2r8VRAlS4jr03QWwaDW8eDpcvyLqjmjagcljwKfr\nxKoFYcpyNNNNYGhFlL8M8Wnw4YLoY2B7I/Q14Bg+Ei24HsLdkH4haBqibh9xByyEdaA4BTumnEOa\nlEkaWTQyHmLfg4kqhEajzVmEeHUAmuREFzMBj34ZJftPojQ/CX9yNsXNm2FKMVyzBsT79JbaMTmN\nEPBBZxFaZiri5FnQ+BKybg5a3RPo9rwPDRHkqmQUQyxmcZTWOQkYtofRhIL5xF6YP56+xCpc2Yvp\nr7sSXGWQ0B+6kyA3Fvatgf5n0RnTQ1c4nsLS3bD+McjMA2cXVIVgRBjd+4tJH3sNnrpc4hY00XP0\nJOxp1ejkwUSKJpC07Ab0+laQ9hGe4US3ReAxBLGfn4jZM4fA8WEcyb0KT+cBRpeV0h4j4c7sRTUZ\nSf28Hc3kRJV06PrfCFV7wdINgxdC2jgIh2DjMjixDhKToawDTnsFyp6ArXdBxAwXvh/NKPq/yE8X\nmDvzh3T+R1PUHgDu+X7b+/3rP/wv/bOBO4g6r4N/8b+fX9QdokmQB1+BfhfA6HvAagf9+OjMbdQG\naHXDxOvAmQ91++DEURw1fVjS3dTYC8hsPoIoyiZ0sBWtZzVi9FNEvOsQ7V8hmsoJ1DgIyG0kTL8e\nMXEhmCwAiO1/wNPPju5oOVLHWjDpkLsGYi65ElN8HGX+BpK2H2TH7+aTU9WAcutLSOYapNJ7oKMJ\nqoIweivobsOQ/zjHmj4jfs92lFCYjhFzkNuWohx+H07U06ffiOGTMuxHm2HRi4QHmYk5OBh/zze4\nYl3oWveg3/cmXSP7kaK/iryr3yTc10ztJROQp9+D96w30ZkFSve7iPaDEKoCTz1Uf4JUq0dU70DM\nW0JLeAjG2teR7G2IviI49beQWQSZ2WBXwdgKTjdC+KCrHmrq4OAaIrLAOPZu2keeylHLh5j14xkg\nJuGniaA+jGPDF6gDnfgdY5G0dxD7QlFNXSETimnCnfEZdUmzSTzQjcmgIkJliOYIct5ULGOOE9rj\nQW4BkWzDe7uK6KxAat5JV3+VPucwrM0RlPowPLYbUQx6cxzWTeUYrV5qc/JYc/e3FMcn0OPuIEfU\ngHkcbL0eCEHfR9Dvbti0Cnr2406LY/CxKuTWHqjogbteg80fQ8YEUCIwbTJK7W4iKb1Ik+OJSagn\n0hHC2P+PyFVl6A+uRTP1EJ6VCC4/ytYediwYijspi47CmVTJzWQfWkq/yoNwzEXMCQ/KkDBuxygS\niq5F1VkIF2WgtIXgyDsw6WaYdSMkZ4K/Cnq3RIuPNh6AhQ9D837wiui+4EFo3w05C34ZeWn/iR8l\nRe3cJVFD/Pe0pf/w+/2P/D3uiLVEp9Z/2eb/RT/t+/Y/YQU+Am4gOiP+ZSIEjLwNis4CSyooKRA7\nC0Z+CIZ0mHYX6uY/EOg3Ht/Z16BJZhQpgYzyBpJVMzvyToavj6Cs3oO87Qi+awbTZvUSaTSixQ4h\nJQmcI44RKjgOUmvU6ANUrsNgGYR7gR5/jA5NGQj2JKwPLyJXPQfTvBvYZ2lkzGOPkNKXhMm4A3Hg\nEcKdFrSMfJhyBNKfg/ybQbJgZyjmhmrKY+vZGLcV44BXoH8hWl4Af81+DGZQs5yEzz0Z+cL7Maxz\nkWR+HUdaKmrzCRrGpWBdtwLl5ClwdDc6yyDSN8m0vP0gIU8EUp2Ej1rQrt0MJ78Kkx6FyjJEWQtM\n7kfXkCwsBjO1b3shRiXockDSqeA8HRwLYfw7YDWgFT0EY8ugPClaamfhctzjJtNu3UuXFEQzz6Ck\n8zMA3BxCjfhQrTGEPYdpU+7G3fQd2tYmKLoVYgeg+8RDly4GPMeInZcLx0PIb/ciTlUQxo1IzWnI\n+mLCTUD1EYy3liJfvhZ3+gAcfjNxE55FklPpKIhn/4arYOM+xOBLkF+tRbl9E/k9rZz01gSe79Tj\nMEyEhFeg5gxQTLD9FlBzoPwYLHgRevvI//IzlEwnkAHFbjDKhJ1FuOddQlf8YDztO+meNpLGhXb6\nOiQ0SxN9Di+1315Ia9sLBDIEkeJ8hKsDxRWk7MFiTszKxaJVM+Db5zhp7VbiToSIbGzDsK8dvRXM\nATNHCzNBbyA8aiAMGA8nPoGZD0HP9zrOZe9D2XIIZoJshqALXjsFQn1w9hsw6ArIPyuqrFZ675/H\n6f8l/l4D/NOmsv1d7oj/LQrYSjRNowVIAdr+h3464GNgKfDp/3Sy/zwTnjJlClOmTPk7Lu+fhMEO\ngMeisnemlSZxEcm2LDKXOImrAnutg3xF5lDqPDpzS3FmdEO/eCyGa1GGXkWgawDyluMoASi9bhyT\nddMwNH6MVn4vImYY5I9B501EF56LVLgezwfDsV40C7F9KZR/h7DuYdU1o5l80WuIPZ/BRbcgjIfQ\nUi4nfGguSjGw63rEpO0gGSgxn46qe5K+YJASbSKUbQFLKl2xWciSgoiZBi1bkebFozP0wYm3kZYd\nwFbrRmvRkfRWB6I3jBrbgXz5eORTnkexJpNx/110D6mlc5qO+L2d+J5Yivn++xDPTwHJANm96BIu\npVvdQMa9b5HbKPBfB4eLdjE0GEQ2WuCR0yG3lnC8FVdSGUlLtyEGFsCQB+DgzeiH3sw2sQQDp3KS\nciUoD4P3UzotWyHcich1ovTUkRwchK5qEZL9WfB7Yese9N1pVFfYGdBvF4aXD2PUjYP4CsTWACSa\nQC5GScmg2zwRQ/VmDM3liBF6zG0g5SyEskVQX8X2EbNoKY5h2KzrwZoFQIBeDtxwMoXBPM75+laW\nTp3Pqbv+QHxrFySWQ/p4tK6jEH4fCnbAhATY1ogWboPeNsjR4JWpdA0ewQnxNda0UrIP+Ym4jmAJ\n9iDtz8dva6Vv0mmEd+8noERo8zpI1R9E8qbTFGOm15pJdlUbQw+04rD0Q3PF0dNYTXypC9d5Duxr\nfLhV8Jvb6PU8BhEZw/4+vGfPRH/0KLqpD8K2p6I1CPtfDO/cCTE7Ic0PvVkw+4HoeBcSlNwQbWF/\nNJAqfr61XRs2bGDDhg0/7kl/YuP69/KPfqqZRINyW4nKkNTw31eGCOAtoI7/fTq/ZMOGDf9hfLN/\noUnieixk6WcTt+4DknNuIyLraNBXUZ0WS6NZIqnBxc4BORRVlSH16sDUjLKlFimYhFKxFxGrEvDp\n6BwUS6exl4acDMI6HXZFh1T9Bvqwg2BhBK15EuHDLehvfRmOrKGr7Wvcuf1Iye7FWmlBtHyHmHYP\n0og5aHf+nkhHApHdlUjyFwhDACnzJMSulTTGxTMg5RCiTIXS9bj9u3DUxCCb9iKOZhBpaoNjcUhx\nLoT5MHJOBp7fFKFfU4kyci7y7bciYrIQR56BsJvIN19hVduxxSYTsPcSGGJF/9u7EaekIzzAiEJE\n0SCwDML34QYs1+ahdMVjP1hF0wsvY6ytQic+QWtrRxppxNRcgVq/G7lTgSmPgLeG5sBeavxexqgT\nsBgKwTAeuu7Cb+xHbJ0Rs9KAplQh95Yg2U8HtQW8y2F8CiotdDhl8tf1EDo3Nuq7btwHpn6IWfHw\ndjksSMfQ+CXhfT34bxcYz52L6N4HX65HmE+HjCZWTLyIutg0Zu9+mu7sNGrFxxyT1pJeaaQhoQPJ\n38DNo+7E4TQzXOoEvQd8R6BLRPODxr8GBgVcu+CgD4p00BkASx/m4jrSw2Uk5gTQa+2YdtZhaPTj\n6JeGrroCqzEf56dbMcX5MSb3oAsYkYJm7JFqMjYPQJU7SNl9AM2dSu/mowgHNFwTg9CnoTeWYPU7\n8Mb4ia1rwVruQ1y0AV2jFf/md1DTDIRPrERp9EPvbgjvAjkFZt8NY+8Ce9J/H/SSEjXKPyPZ2dn/\nYRumTJny47gjFi6JrmX7e9qKn84d8WOkqK0gaoxr+HOKWirwGjAHmABsAg7yZ3fFHcBXf3GuX1aK\n2n8mEoKqzSDJIOvRMkciDq0EXwckD0X7Zj7keoikP0G3VEO5uQ6BG6HpKOpwEv/l1/BRM1qRQMNA\nw+U60ipVpHEvciS3jXDDIWKaFTI2f420+F0CTgsdymfY75OQUxyYkvbyQWGASQfWs3bmbKYHtpJ8\neS8icxji0jPQDt9IeI1Cy7lPEL9+L/pLhiG/8FvoktAcfnhqCSLutxzmCDGhm0hVViO+Wowmb6A7\nux+xa7wQPxl8Knz+KlpNJ4GhFnT3LEE2DIeuY9HZ4Irz0NrcYLMgNvXCxFhW3PAq83Y9hb7hGFJM\nCdSvR4xWUJWRtK/rIPHCsQj9vfDCFHz2UwglzAqSAAAgAElEQVS/vBTjPD36c05G27QR5jaj+fV0\np2ViSf4Cg5ZHh2cj+kbomTQX6/mX43j4YYTShqdzEea9BxApYVRFQuoYiohcBqW3QubJ0NZLo9hB\nZKAgU+0iHCNDOIJcZoLjSYi6DlgYA5/LYIoQyauh9ZswsbeOROl/DF8c+GqG4M8v4YCvCZ+UxnC5\nkXalB69OZcQHjTgiA/juNDO5t37Fpy9s5VOdmzVsxsZ1iA9tgBfkEbBgC6hhWDoJavbC8Pug7HEY\nMgu0I9BtRDvzXsKP3UX3BB0Je1xoiUbodCP6zYUn3iFYZIFFEXQnIoj0mbBnLWhJdPcEcLR2EgxA\ny9WZBCwRnAcj2Mr7I7f46brwPMT2ZcTPuY5e8Sesr2oIQ5j2U3owMwjv0HT6jA2kryxFnrcKAnp4\n4mq4+QWI/wFL+n9GfpQUtfd/gL055x9+v/+RfzQ7ohOY/lf2NxE1wABb+BdXa9NkhaBuJ8ryhyDo\nJzL9HLS4HKSNLyDZBiPNeRLR5UepqiK+7ysmJpwKk+6Hpl2oQ4ZB0ja07MVQfxyxoQ/HgxH8V8Ri\nVrMZMP26aPBvbC6MOR+ObuQp+2hOt5finKon+GwTgf5x6MaMISW2E8mfh+3TL2FYH6z7Fu2eb9HO\nzqEmbxyt+YVkTJ0NS86A9LFoA/eBLQSXv05kVpgDFydwmpSAQAEplWBnMrb0Bjj9TNhzEJxz0Crd\ntF+aiHplDNZjz2E9HA/dVdCTDN4UREk3BHqjP7PHVXKOVuKWY3EWP0d4z60oCXZkQwlClBI7MYdQ\nxUH0gbugxo25czXaG+MJq5uoW7qXDLcHPCOJnDYV3YaXcJ32NCntdxCXPgWKof23owl+vJ3Aju2o\nU+14LZ0oWRoG+hD1cWAqQyu/E2FWYFMpFDRi6s3AlJeNJk9E9pXjTW3C7O1C7N6PNl5AVQARUwjX\n3o28+mIMs8O0LizF/mgMxtNHYI85gFN3GS0+M2rNm/QOTCPBW8A443mITadC7CYyBpdQ2W3lysNv\nMX9AGi1KLIZ1V2PoyIX0Mug3D7beDLuqIbYsGuDd9TL0WwC+Csi8DM3YhFhxDZ0j4rAOnAf7tqPt\n3YDQD4DN76ANGYs6dDdKcz4avbDpS2hQUU1+dqScziD3esy3qSQHh9K5RcX37Fb8dd+gcxjpnZWF\niS644mwsWXbEhBEw6VosA7Pxit0kspgwPbSf8yZBnifRfAVGWyxcPQFWVP7ignA/GT889ewn4d9P\nwOeH0teGaFiL3FZFJCcd/0ALcmUd0vG9iFAf4dgOfEVB/OnN+CPv4c9wExicgSYC6GwzEJoAuhH5\nl8CxN9BiQ7RVK5jNIK15HylrOKT2wahiCPt4V2RwV9p5PJo9jy7TSkwbatmbYCONAhLNbdhTJrEv\nPkBBfCrCMgS+Kkd1eVlyzSLOfOBOLJ8/AIkWiNsTfUSO2FAHmVCPfMHA175A+BqRmvcj2ncQsR1D\nMeQjepdC4lC45xGIsyKV+LCWC/py3RhLQQQ7oVEHI86AkAaBBoiLB3kEKcY1NOt6SRg4HP97Mv4P\nytGdMhTvu62Ypko0F5Zgf8eOiOhgegRsEeQNYeyBeta5SrBe9CiWtXejHA3R2+XCPPIsJCWWICcI\njOnCd7EX7chb7C09TNz6DhyhDkTKQIJ9eSiiCnZ3IkwKxIVQC71ozl5EvzA6lwlh64fcm0yguRbd\n2gAYI5DSCwtuQHx4O5HzbiGYtxdtdQhdgwXbkFYw+JE7dyICJ2jNjpD70QHSghdESxFtfhqyC7BU\nV3BoXA5J69aSLn+Hc/NWlOV7EZkRCPnAIqBhFWQeBzULxo0Fmwbdh9FSGwjv3Ie6qg6cY+me3YCz\nZQfaF0a0uiakfgLOe53IbA/ahwdQJrWh2QLg0VDbHEg7u1BrXWihOBInlNO3tZneL1wYqoMkxgQx\njRhJ1803EwxoxHt8iGtfhIJ+0LAFxW/FlbSHGGYjYcTKWMwMwSXewT1MxbinETlrJCSk/dx33d/k\nR3FHLFjy97sjPv3p3BG/Llv+WyhWCLoR5cvQuerRJQ+BxCJI0IGmotTtwPjZAfB0Qq8HuBDt8rvR\nEhzR44WAE0vAnxVN0/JWYYxJpndaBr6x+7Dd2IBxTxO0nECrqWbnTSM5uakcJT4b46YufONd1Ayb\nTsHUBwm+kUCmeSvfDHuYA4NPomR8MqL5EBFpGLc+/yZxwTo0WcM/bRbG4/sg4whiQTvujxfgMFfi\nfTUf00cFiGXdhIe14xmeis1dhd7nRHV9jDRZQLcbQ4MdOW0M9lYXkfOuQ3nqMnh8P9gT4OEiMDsg\nPx/OuBNp1Tw8Wem0dz5G4vAhhAeeSfdl36KflYLWWkHabR/R+rupJDuuQKu+Bt8HczHq3cgnNzHJ\ncTab3nuRKVobWi9YCk6l3fgiIuDF2GLHKQ2G11/B1KUxVjTSI/yo+hCtjfEYHeXI2ckoRdVozi6E\nmkjEMYDIhOPovlMg1w8ZtyK/kIOxxo8a6kMadTt4n4WeD8DnQnLVo88KYn8uhd7tzYTih6E01tI4\nYjD7TfnE7zRh32NDHnwDnLBDuhmhDUU/6jxk20ZqE6eQumIFZI+G5GpQXZAfhu4MsFohXATTHkcz\n64igEak7gj6nB6VfJ8JlI9Qm4VQMaMf9aJUHkQsFXPw12ubr0WJ6oFqHiBOgD9PznB17oZugqrF2\n2mzGnbaYnISnsY9+Dvet95PkeRjppnPR5p3DvpjDJMwZS1H6yXB4C5x3LxSfjXj7NET/XFQ5gIQB\nAB0JpHE3AUs9bY8ZkHqWYvJ3YjeOR+b/6CKN/x//z30BUf6l3QT/FHTmqJZvymVw0nswfw3MXBHd\nnr4cLq4E5zAIB1Djp6PNXoy4+1qkA8eix7uqYH8ZdD8HjomIomKsw424/1iJp6OQitviCD98LuGL\nMiA/jyICLKufCq8VYS0swj2oGL3fR/w78wmsTCQSuQAvLvb3LYPuL+DGG+Ca2+nJTkUENLz1TpSl\nn6Ke7IJ+y0GS2H7mNRy7ZQ0GXxHy3npYHCFy3IPtziaCy7tp0DkpmzSXuhsfRJ01FzkdyKxFkTJQ\nPnkPTrs1aoABdAFIzwB0VBkOQuoUcg4MZV/wGrS0UuRd7yHCrVhma0jLZ+B95Sl8/atQvY/je9iL\nLqkX+dSrwGREyVvAaHcQSdUITyvEcGwLKYdnk7pkK8673sa88h0Uh0J4TD5m5xGSqUZqVrHZ6tHl\ndNIV8BDWFCgVaLszCRlCdL9jQMdw+OIIlB+CjxqQ0lwErgC1rRmBDdFTBxMlxLdvozABaeo22s4t\npCImg21jh9NZ72dI/SBym2rQuvciZXsg4IBTV6N5/Ci1AVKNWXTl6eCsF2F1DfjroG80GPQQWAUT\nS/GNuYW2tXfiuehBQjs19MYBiK+GIg4JOCgh23oIN7kIP2lEHikjrBpa+DDhrN3Iq4+gOFV4Jx66\nIziyu+ghHuWyOJouS6ageRfa5rX41UaMFCNZrTBpNmLWmSgoOHBC/zFQux9aa6LxjGm/w1zehI99\nAKiRCP72droPH6Zr/QnCHw+l51sbtZEb2LN7CNt/swhfU9PPcNP9k/gXSlH7lZxx0fbX6DoRjR5f\ncgD1662Ilg7kZz6AJdfA8uvB3wQjzoWCeBicAKVNmEQuasu3JLqrSAz70dJDaDFdCNnGNVXPoe3T\nwaRORNdyjrXMJf7LA+jePIDOcA6acxaX+3JZadsPnfdB/ByOxJ9CxbT+lIwYQejptzA2u5AynkQY\nZwEwSowiPsaJVn8QcXg12lcy6mAf4ozFWK5ajnFXE4H3svA6VtGU7yUtEIc0+EV47yaYfCmM+V6P\nOuyB7FBUqCeUzjprNbETbsVx8RkY1WK2XZvDwKAV+/gKJOMR+MMn2OypGEsfw3fnfvSZevRZMsy6\nEfXTV+DSgVjxI8ZkYkqYCzkz4bN7IUuBQ91oXbWIRU9Qn7yb3MpB0PgVmmk4kYePE7mshIS0bWgK\n7NWGUSjakExm+r7NQIz5Bipc8OajcOmjEPMZprcPwSwzRDog5WYYdDN0/w6973xISEYrnkttYC+m\nHpViWwqG755B9YXxyimQVI5IkAlecgrygvOQD3/OqKFXsTPFBbu64MRhmJ4Mp+ShdaiETozmePgO\nHt9/EgPTL+OWEY8hKr8FghCbDccNaNOyUAtr6PlsOH+441we3HYHwm6GuteQ/UPwVjdgHuJENMaj\nVnUipoZx5BYjHyvkzpXPY3mkg8hDBnzhjVh034/NU04Dg4F08ujPSDi0DMaOh3fvgZtepeKD5Zi9\ne6mvvBHfijwkScUWq5CuHMBiNGBMHIBl+IX0fBdPJKaR+KfGYTb8awTq/p/4haSo/WqE/1EcWTAv\nWnlAGugh8s1ypGnNcPtoePYgwjgPznoQVB8cXQy5k5G+/ZSkC17EkpNEW9NMLGHQOscigmtB7Ua7\n7kpUWwXhUDedWYJxy04gmrdCwQJE+jBsb4/k1HM+BfdQyF1ITNVZTNV8MO0zDidvYezKJjB8XwdM\n04jvbYPKOxG6AlhwOeqcU6HzXozOTvh8BlqHHWdrD7YD5+K9/lL6Rg/C/OUMxJiBkOgDzQOHdkDG\nILA6YNhzhDffTHvMUL4Ovc7kJy+n6LmVSCcm4JixDG1DEbRrcPsQtLMdBP6oQ3/xb9BnjYJPHiLy\n5uNEVBndq48h7roBEsZASwOMyoA7d6DuXgHrL8f9mQf18EpkuRyPQ4cWziGiT0YeMxj96BkEyqZD\nfoT8TCvBUAWdH1lxpYXIuqUc474b4J1WWHQ7hK5CVGTA6rfhAi8UXAiblkDNK4j9H8Dde5BiMxns\nTiKj9G5IioWxN6G9dR9yzhUIVxva09cSWL0Oo9+NfO0tSMUzGdFYDseegYESjO2PduIZgk2FfPl2\nHy9ceze/u8rH9JRpsPlDOHgAKvTQLwDZKpp6ENEkEdPUQfcZ8WibAzBoLGJbI+KmMkKfno102nXw\n+GzEQQmGnY4UewhtwDlYjr8OvwdZH8C45TFM1slwrAGa2mHWdEbIMrJYDwfeAHs2xCvw0Q0UpDVC\ncDSxtV9hnpaN0JkhPheaI5A6ACZdDRYnCZz0c91N/1x+NcL/R1AM/7EpCovQnq4DeTbI58EtyWhN\nBrjjNMQtz0cF35M+B+0Ysf2SQZ9Nc/YVOMNzUXbeAi+CtuRpAhndhD3LCPoSsVj8pC9S0couRPT0\nh3AC6G3YNy2BIafCtjK29QzknCwFjo0g22KA390WTeFZ/gxk1kPHy4TGvo8uYR4YDyI2rcBw8VpQ\nJVAc6IAIzxPaWIZ5pBnNfBytz4BWOAFJfRSa/wRJr9K36gKURBcVsa+QFWpgfMMkrOGBpIS66Xr4\nc4LHzyDkugG5ux9i3z60cX68D3oxzCxBN9gHA86CY18iff4U0kUeRMtTkO8gcunTdCw9hwR/D6Jq\nPVr5u4QHnIUu0YOy8GqkSdUYlr+ObuFaUKI6Bl4+pjacSubHboznudC5E/l2QiFV2/P42NzHwykF\nGKcVwcevw7zJYEpG6zqOcJvBmARKD6FZZ6K1HkT3+VRywx5UZzEUPQ++p6D7JcK1YRTjCqjIQuvp\nRjIoUF8O334E6z5GMVlhyzK4QIWuTfSWWrg9/R7sC5v4POZrTKn3AQJMC2FoHegbIC4Pze0gNKIC\n8aYf66LDPPfkIiSHF2xGGNwPtv0R57Pf1wRMWoSw7UUblgTWmyB4NnRlEnE0oqQPZ1dSNlP25MGa\n96BgFAy8B1kNQrAX/vQqpIehcCwoIUTSHMLFc6lXj+Os8ZJY9G5UF+KXUK/o5+AHVDf6KfnVCP+I\nCJ0OwmGEbiKa/UB0Bpl3BH7bhHZoEpAFlZsRsUHoawdHNg4K6S7fgvNDI76HMwjm3Ymk6JC6Jfzf\nSgyeHMIz04a9czzyib1RwZy0fhDYDLNfQ31kICMTkpHTZqO9omK/zYvUeg9UavDhY4Ru7U/VtPmk\nGpPRAX3OIKYTx0CK/S8RgTiuxn84DyVVDyWxRMasJLLsLHRjfXhGJeDX3YgptxWpPYX+PIqYVMfQ\nms1sdFYzfO2fsHlfRE7tJZxQjfqmSggIbdKhP0WPbmg3eN6Gaz6EqZcirrwFUptQ177BttOmUKG7\nk2mSF9bfhX9UG9K5V2AoL8FQc4hwv3os6x5AkVP/wwADyKRiPWFCqu9CDQYRpfWcUdBAW9IZpLq3\ngaiAMSo8+ibE34xW40G9TCA3Ctg6Aga9gy5+DKpw4eUpfJE92I4OQnfkT9DTBYYWpOQwUl427LgH\naewViFqB7qI5sPC26EX4euHgG7jcxRzsGMFTuWdz1+HnGduyHsp1UFMBfT44vBZypsADb8DmmSC7\nke8NITJB2hVBnOxBPSChVfahtG0F7QCEDDBwNowaAUosWuUnSHmXowVzUcdsRZL00FmGlDoUPvx9\n9Lu89GUwxEevzQQMmwoVTqiywzg/FJyMYszE2tUPrXY1mHdD9th/TwMMv5gUtV8Dcz82JhOa14uQ\nnAg5E6GfjUj8AMbuhxPNoIIWr6BF3Gj0Eas2ouXfRddTFYSTOjCK6ZhbBfbl7aR2eMnpK0HEOJDi\nM2DiChhdCNX1QC88NhKtx01mXRUodtA0KkIz8Dm/gWceQn1sFUfH5eO3KNh8KYTopdIXXfmGu+vP\n19zRgqgoxeANEbRrqA4HyuAS9DMmIVo8iJg7SDB/jC1ow3BUQax+GhKysI+8AF9WAQw6DSUBSrMm\n0paYgBrR8B/V0Bk1dJ16iBsAtnQYOw6aKqB8DZFBv2dPyWjcJVMYKS0kq7qXEBsIpdWi+2QXtOxE\nrVmH9OVlKHVdiLH3RJXgvsfIWByNNrQ5PRgrqhD9RyKaYokvWAuhbggIkIrg/Cfh5gDCBxGbEY0w\n2PwgbgSXBcl1A1bXHCLyKfgHtOKdXow67D7C2mL6vpUhwQzGXjTvG4j2w3DKlX/+3Pra2FM/miG2\njXyeNZzlp1zH2Hv+CLbvl/ge3AD714BHwJCJsOol6PBAMICmV5EcGbDdjFhlQzJpBOcegGkSDM5H\n2/gg6qsXwP5vYO/nSFsq0DZcA2VlBPeASIuAy0nR6rWQXgz3rYO8of91LM5/Fu5/BUpK4PGlcKQW\ngOTYZ9EXXwrVW366++BfAf8PaD8hv86Ef2RE/4Fo5YcRI0b91/3GOAIzXqbj0MuktB0mVHcBvWmF\n6MqasB1woCz6CHn9faj9vkQqjYVp94G1HZF+DiZKEJGVEFKgcCYUavDpSuitoq4gH0NMDKmOk8D+\newxxAwncdTmWi17Fk29ETzyy/wA10kLCnEJcykUQOB8+nAMjMwjtOIDUXYd80gzE0GZ0IUGoqQVZ\n0xC2LMCOLVIENZeArRMGOuGzR9CKpiNMYSZ8/QTqxIeRJl3P8ObvqHTaSBh8JXYD0H84YvAwGHgJ\n1N0I8ydBsJKW3fXsrVjMYIYzXNyAFPERHqBDak7HrH8AMU1FPbgc4V+L2iVozneQUHEL+tIUuOw1\nSMwEILLQg+mJfgjtMNz8Eb2hcvQHr0Uf+zIc7YCkNbAsDIl66JIQHj2azY2oc0LSFNgjQdUK0G3G\nZpEwulUkTUU0vISaYCVcqaHlJ8C4y9E+6UYEv4RQ4D++0+atpdx80ZPMTV3PtdphrPuNaK6nEOhg\nzELYWQa6CIydCpVvQECgxSWi7mlCnjgMccUfoOYreOVRtKNwsGMMI+w1aMGBeForsWUeR7ruQ1CC\nqN/mIAx5hD4rRxcvwB0kmCYIlavw2G4wWv77YLR9H1TrnwzzW+DrV+Drj1Bmn0VMyQMQ95f1F/7N\n+IX4hH+dCf/ISANLUMsOoEX+4llHCPSDZ9B+XgmtZ49Grusm5r7D2N+QMQ59HqXTAB07EXUC0gbA\nmFsh1AyJQ9GrJ0OfDg48A+aJUHkE9lWBloAp4ibBkQsnvkOc9iSG77YTnDaVwPSJNPAW+dxH7jon\n+o4QnZQRlFbQOyMddWM9HU/p6binDinpHhjyAWLjKMi4jKAlC+3YjVHxlswpaK4H0TxrUc2dhEUW\nasBM6JkJ+DecSe2k4bjtPWDNRVd0FcV1KeiGhNCMBsTd70br8ZlGgj6HYPyNbE2bTvX8xcy46VPS\nP1qJtOlMgt7poDYhtzQje9vRajYSFkdo7D+Jg2ePR3EnoOu/DBz5cOdM6G7HpzXjNcYgdRQQnnsx\nWu9xtG3LaA9dCZ2DIbYWvumA4TIs0iDLhKKzEc4Q4JKh/HOwzoeRj8CE+2DKDWhXrke69gTijgqk\n6XPQzwB39loi3ldRTR8inTYfrKbo99n1Oba6K1n74Uz+6K0k7603iKxpBHM89B8Hpy+GlGMwZwDM\nmAK37YUHKqBfEVLqFKRrn4PiyTD7EdQBaTRt0eEz386O2400Pb0L22/eQpEs8NlCRFUL0scKfL0Z\n3w6Besu7qC4DstyAGOCEry6C0sejmTp/DWseJA2Du5bBjDNg8QzEg9eD7a/oRPw7EfoB7SfkVyP8\nI6MdKyd072+h9QjUfQs1a8B1GABRXUHxc8001TYiVRcjjwjCo+ug5zC8OAwt3o4Y9AbCNBj6KsE+\nOHpccCP4suDoW7DsQXhtPQyIg0sXYZTM6AJqVMfiUD36bug8J0IlD5LHHcgYkXTxpJw4CR39yBQv\nI814kIi7hXDpUvRLb0U7+8qolm++hpSxGGuBHuq70DrvRE3aCx+8RKhTR+SEBfnlzxGmenT90wkm\ndzP01bcwvPEHtN9dBm8sgdfuRRRcgpYlg6RCMPosV2dLZF3kGQoYw9jemeiS8+HRVwip21DrZaQB\nL4Ixg2C3QlXuTg5NmYWu0s2QB7aRlDML4d8IKc3gUCESpEvdg1fuIshqwsNGQPwQ1B3vQd1uwv5R\nRLbHoA6AiLkLWs6AKUsQMbGo2RKafAQCYfB3wL4D0NKLteoIOjkR9CZIKEBJOQ/DWSn4r7LgyZ5K\npC0XqUSF+j/C5lSoewnr6iC6uAn4/WHa7s/Fc9gAO95HG38WrH8YnHkw+0lwNYJiBE8noucQ4pzH\nITf6pKR2tdK4tof4M6wMvec3RI41E5fbivLh+XD2E7DvKHz2EKSMQRytwjwyEa/vJaR1IfqOTuHw\nzFNgwQpInwAHXo1WMPlLDEkw4OGo73fYBHj9G3A4YfNfyrf8m/HTVdb4Qfzqjvgx0TSk8QORCsOI\njrXQ2wFfPwbH4qLaxMlpGOKPkKaNpfqWc8k9FoDProO+Xpj5MKJyPWL5YzDuamj+FFK/L7wY+A4O\nNUKDAvG7oH8GnJME9nYi9nioXAUZl8HHywms+T3d6pdkqSp6xRk9Pq4QT1oiNrwIZKQ1PoL1MglT\noXdkKs3G+1B6y3Hm+lEab0CLDaHqV6LapiPvGY3obEMZvxPp0fNR7T40/UDkRZ9jvz4btc4GnloC\nE1ppyuyPYZWb1LHTESfeRG39hkBeM5uazyCur4mZO0uRj/8e+uvhNB1sPBlF0XG8O5GAeBzjOAN+\n8Sope9vIWbULSUqAUQNg2oPQegAcXxMe1If/g2JcZ6eRdqIFnSsWqcwLGYep6zER+WYjmbs+IDhS\nj3DLhGONhK+7BJtuMiJyNbrqpwhnvYmSej1aeC3i9d0Q6ETENsDE6Cr+CF1ETBCJsRBe34n6yES0\ngBepsB8EPgHHJDTPMbTZNqpPSiJn9hKMsySab8lArgxhHjMLddd9eK/1o7O+hVkXhzi2FtY/AWPm\nQGYJAKrPR9Piq0lY8gAG9zNIiYMYmrcXqXgIlJwChldg/gj4ZCPBMc/i/6AUU34r1qUmvFPjIXku\nERqiCmdpY6PtryEEJM+Mbut0MHJytP278wtxR/yqHfGjoiGC5UiGrYju9XCsF75tj94kCzJB2Y5m\nUPGXq9Tam3AtL8Uw50wi0y8kEpOI3HgMQRDefxpsfbDrBGRkwdEH4fhQWPQ2fLgNntuIZkyjs30D\n3l0tOEQY1u6Bp35HpfMIbsnNoLZU/Mc/RF+vgPc1uu0unI1mwpub8N57M44l9yFV7sRYW4HdJWHu\n2YTkdOF1deKpHo5uZw4Gwyyk6i1ERvSjvecASrkLUi5ESdRg2144UoXIjUOkpuG55ml2DdvKgHG7\n0Yfeh7BANG+jW2ch0TQW0dIJKXmYllYjGkpg6BNo37hpKBjJOycXkNCvERM2Bj3fgG2nipSZBVWd\n0G5D+2Y9och3eAe3UDY8D8dXZrqzi4mVUzG/1wRNG6H/MfzdlST4JKwzrCgGgbCFwTwZufYzukIf\n0Ot6G9PmlYRH5SHq4gkk7EGtjtB+/2h6U5rojT1BL1/h4Rtazc/jSpbRPLno+vrQVW9APycJkfsS\nWtKZuJ0Kke71hBz1GEb2Rw6rWN70YzzrBqSWTiTnKETRJGSRRcj1Gqx9mXBERRp0FsI6APWLN2i6\n8ALiHnoC07SFiMYvkIddj6h4EeOgKyDzM4h7EVrjoelrNMMRdNYGtDgb+kvX4e9+Hf2g66g07aWQ\neT/3wP+n86NoRwxf8vdrR+z+5UpZ/pj8cqUsfyBaOIwItIA5LToLUSPQfTwatffV03d8J3tfXk7H\nYieOd9zYHjIhsgXJH/eRVBFLR4kHnS+AbVs8cuQInGmHwLWwaifMy0Y1leOK8dF7zIO8qZfsvTVw\n6hAouB6f+SAnCqwMvmEVariNvpV3Yt72DYjVaK1OOh8xEffZN4iMArhlCpj2w6xQNIAUmYK77SSq\nr3iMrMvH4TBupu46C0GDkaQHupBbSzAPGIhYvQIGZUTV39CgowbV10Bgng5Drkxv7I1I5W9jre9C\nrArACzvRXv4NoeJqWrVs0neUIe74GH9MGNeVtxOJ6yJhvhlTZxHipa/glvvB+QFql4lgvolwagNB\nbyHvJ87nZOM8cipb2ad7nIzcOOIXN8CiE5BzFE/jcwSDA3GOKYFv+oNPgr4BUDIHNt+Ef+Bc2oYn\nELt9HeTnYo1/GrHkPHjmCHx9Psx6D4rhJtMAACAASURBVIAQDXQF38Thv59XrBdz0pyPiY0z0LX0\nInQkImMh2FOD6fA6jDl2Yuq2oilxGG7zIvVZ4bzT4TfPQNc+Itv+QOdDqzFmRzCNMSJ/EiI4P5P2\nJyqIefZ5rGdfGx00my6A3N/h33o2xj4NznkPujxEHj+P5otHkty8G3VTG7q5byO+eI6Qdxe+SxS6\nPBlkDd+JMMREzxP2QM1bEDcBYgb/rELsPyU/ipTlZT/A3rz+//R+twCPA/FEFSf/Kr+6I34ChKKA\nkv7nHZIMzuLvX4zBlH0m49cspZ6R+FeMJ7lxKi2rfo+28VtaElpo1GeQ4Kmm40JQAulYtS7sxx5D\n54gllDUUV7cHZ08mhpZ9KK0ecCTD/D/B4hmYn3yMQc9fAnljENeswW/6LfRVoFSZoNlL3CuDELGd\n0FwK/fvwhcKYfBqeYjNK+qlYKo4w8P1TCG3eQc08I5bGPlJXOmkYHCZ7RQfi4AYojgCHoCURioeC\nIYuwYsKUWgVrVWwJbkTStQjHkzB0NOQORpz/CPqjZ+HMuImjWe9QcOMCQqZMkk5uQLEFEKsSoWUL\n5NjQmlYTTKwjPDEHqaoSd2URnxTP5ILQOGKsmUSKkhGH+hCdPsjvD5Z1YLkQy6hrsAgBXXsIOE8i\n6NiMrcUJNVtg1AMYVR/JlquI1H5KcNpOGhruJybDj7WvGiFHF90EWlpoWrYCoXyI/UyJTJGNcnYc\nxj9pFNXX4s64mnaO4gscJ8s4ib7ks3BbPia09zPic1wY8pJhz2H46D0YXkjgWC/uGj/26XkoIwvR\n2h00vbuWoy+dwQjfp8AOdJyEXtMQez4lVKKiV+YhfXcrfLmH5vwMvOEaIoqK3qdDdDwKk2OgVRDI\n02Hd24Z77yk4pJzvx5cGjSshYTLk/QZS5v775gH/LQJ/u8s/QAbRqkS1f6vjr0b456CnBTSVjJF3\ncYTV+OVS8vd3Ii56GRqaidn2OU0zg6i6XkyOTsTHQVpHWAidaqHHuY9cw8toPS46u+4m84gLLrgN\nKnaDuxuefAkx9fRoGaBQgJjLewi2NKLEhZH6XYbYH4GKhWjxMvTLp3VVPEnVQYwig86ch1EKS7Cs\n3Y8Ybye1byHBZ1eh9lUR12hAPPQsDDoNHp8JjkaozwTHQDhrEnr/76FnGex9COmmGbDij9DRAVnH\n4aGbID0H1ZKB4bnFFFjshIsdWJorwQXsUuBQD4wrguLBiIHz0Ndcjr6pnk2TptFkLODKhlJ0GZPA\n14zXsx5L2jTMH7wFAy+E1sngnI5QjoOtAPatxDPAg327HJXdtA6CMXfTy3a62u8iNW4hmtxMelkT\nwdRzaf/8W8LHuml7/RwUh4PU887DMSKMqN7K/JQ72Xp2OcqwMuyeTtbzBgp65v1/7Z13dFTV1sB/\n506flEkhPSGdkgRCkd6LKAiCYkcURQXFDjZ4Cs+un8/yxPJsiAryEJQiCEpHkCKdQAglhFTSy0ym\n3/v9MfhApEoLen9rzVr3nNn33rPnntlzZp9z9nYOQDLkYRYdwR2G46cvWPdaN5oEP0RkxV7ER6/j\nfDWf2shU4n/8Cs0vE5C37+bwhij2fno7rXN+hOWZeKwZaIfvQ5EPIbYuRYpT8O6YibRNghIH+eOC\nSHVX4gyLgnwremNPRGgndIsqCUwUZEc7SZ0BtOkGXW70TbW3/BeYoi5xJ78MuLA+4TeBJ4G5pxNU\njfCloLoIHlsILg+J76+npvwnKh/5glD/nrBkDObn55KycThKfStsBZOoaBOOHCaImlpIWEs7tZ3f\noNKShyezHvcSF5ppL0KtDiQdpKbBQRfkHoLdA5A216N0lHCV+WF07oDAntBoPAQ+giyVYe6poSDf\nSExlDYZ5QegOr6N+mAU/8QS6r6ehrz3M7gGpxMkFePbPQIsJ0vtA1nwoXQF7F6N0+BfO+KEYYhTE\nwO4QHAOTF0H2SpTiz/EUt8c9bSpSSDz69t2RgiMRd42h8rMu+Bfvxt0iAes/n6S6LIfatAyidE1o\nXNeZyupcAg9X01k7GZ3bCXu2gX87rJQT4FEwFEnQaA20vA10FsidDptmopjNeDR2dJWlMGQuyrLn\nKLW+ittPIXZLc6Q2vZCkVBx7H2fvp5MpPugk48E+pL18Pfq4/mDdjFdZh7DHIISGpqaJ7E17g+A9\nc2hWGElUzMtItcuoK/mZmrptxGbvQndYQ+adWZSkP0dAxqNYs1thStQRsXcLHPgCb2UZtRvrcfYB\nOXQHEUkalOWrqfrlJ+pXV6BrDUqFCc36ELyJenRBEvKQFjjiuqOVDmOufA7r/l7oF26GLgsgLAqD\nuSeSeTOM/wjWrYeXrvXlgnvuh0vbvy8XLtzSs8FAAb5sQqdFNcIXG0WBuKZgL4THh2K01VHy/vNU\nWLYQpKQhue0+f5cxGpE+FP93PqC2VSdCvp+Nd2Af/MvW4bd4HsXdW1AjJ+NoXYxhZj0i3gRXRoDH\nDDO/9KV/73s99vRF1AdJMCcK++tbCFw5Ga38CqLuJjSd3kOa2J3ITiW40rWYNsgo/kmY36mivs9Y\nvLcpaOoUHFcbMC+RsW+Zi2n1cjTX94T9O6G5CaW5FltiBiLUgqhPgdajYI0DJe193EsXQuk6HM06\nsHfOaEJ1ScjubMIKJlCWO4eim64iZkoNjphQWPkWFn0UcQGt8XN+j2LfiDk6k6RiB5+2vAtXdBvu\nrd6CqWwKdZZEYrfbkAbeC2v3QpobtrwD5XXgiMTepjGmw4vBFoC8/UVkzzLC5ixFCmkK+8zQ92kE\nAkoU4if0JikoBNOsLNyRc8EaiVL8LjQ2+TZdAOE0JYe+1AXPJ3X7Ljwb11F48AO0+6oJ3FqE0qsO\ne44BslyE/FxFafRTBLfKwDJ5BnwyBuW1LLxDDOjDA9k5OJPuS3MQrV9DtPySEJZRtcZM4Xt2wjtI\naIbfjtO9Gqy/UtZ0JGFkYOFFrC+Oxe++YYjtv0BOPETZEJ5c0rfXIoUHQcchvrmH3T/DzBdg2Itg\nMF3avt7QOdXSs7IVUL7iVGf/hC/J8fFMwJe+rd8xdaf0BzUkZ9FfZmLupCgKWP8L5WMhqwRMt0L7\n28HciWrNQRRexjhpDt5Jr+O3X4uwtEKe8y2eglXo0k2Id6tg2jeQP5YVjerolv0zmsoIOGQFTSh4\nbbA6CKXzlXgWfoacGoocVYnip8W0Nx7ZZkW21+NtZKcgowPVrQKJiF2N9oATnZ8Rb4keb+ZVeFKi\ncFd+TV2MBgu1yDYdiTOLENng1IXBXgl99yFIfdfircrEnb0QzV2z0LmSIKcnrPSDpOvxygK352eK\nhBOvuQxNRiv0UeMJsf6KqfRhxOooXCus6IrLEZFu6CdBh/dAY4Q1I+HaPWCOp3ZBfxYlNqcyMo2r\nRBuqA96lVWkBwrGVHHNfmkTNhC/agewPq1dRNjGUIElgneemctT1xOV2RL/8OWh5J2RtgdungTEM\nxt8Bkz6AqSGwLxPHC03xZnmoNy7BpYRgXKElNG0Erk0zsG2IprrjJnT9wPCdC1OTtphajEWKSkN8\nOwx5dSX2rGwq93uwv5SKMcBB4x1ayCtEHiph32+hJkmwr3dXuv+8CnZZQNMYcpfh0SsUfgkEBhK7\nZy3W1Z0JtD7Cr0NSacZVmPZUUf/22wTeczXMfA5y8qHfPdC9N0y7HTT1EDYM7noVAkIvdS+/KJyX\niblBZ2Fv5p/x/TKApUD9kXIsUAi05yTZ6FUjfCmQbWCbA/qW4FgPzg0g16AIP+R3fsI58Ua8Fb9i\n8GSi+9aD6BaJd88cxMR8eOYFPP36s9j9BK2+LiXMVIdIjsLg3A9he+CQBuXXplRX1LKhcxpN7fko\nJY1IOLSan/o9isbfTVjzNei8Vvzy7OjrJLDaMLS4Ea0uH23Hd9HunY0m999UREZRGWwnjAiEsY6A\nd7ehTbwVT+5epAEHEBkz8K66Cc0+oLkDkXoleA9D7UawBUOj5lAuw8e5YHWh9E1ADP0YwtPBdRCK\nBuOtcSCmFSPtr4MwCQx+ENsSpBKIvxbCU8ASgZy9Gufcz9h4Tz8Cdfk0av86Ydbp5NWtockKCaRQ\nKN+ILVCP9RpBqKOGQyKCuIO90OEPUiQ4zJDcFZKPxN996jZ4aQrcFQo9TcgBUQjrQZQYK1WmaPRK\nDX5GG3U5ARR1v43aAxtID9iFJ2YoQQcTIG0kGELhxyeoKmmL4+eVRMRL1BXZKR5hJWVJHdrmXrBt\nQylxMPfawfT/JQDDdxuhQyAEHYRgAywLxBVXR/5OF+EjZexXygRV9WBNoI5epRpqHlmD//1N0RSV\nw7LNsB9IjoCBD/uSiTILosN8AeUz3we/xJP1vL8M58UI9z8Le/PDn75fLtCWU6yOUI1wQ0Kug+eu\ng7F9USpXI1fuQP6mDleKE9cuF4fnRBMRH4G9Twabrqmmw/ICjJIbY20F+qgCCG4EjXpRVF1AxVoN\nZmMdOenNKL0uhaHvbcO/ah20NqIcjECelwW6WNyGGA5mdiLWlI9fUhGlPZ9Ae+gB5radQkbF02hC\nU2i1YTvC1oq65qVImij8DyxChI1Gtr2BKLYihMY3B3zbFLDuhUMvQFUKZL4KyBA2CAr3Q94CWDoH\nDCnQIRR0AmrKoWMVVBwGVydYa4K8bVB9EOrKoGkShAaArRKsZciuGiS7FZfewMZBN9Dp52+RNFrY\nXwdBRkontMNt3k3khnrEQpCcCgQBRr3va3DdQN8PxMFNMH87pCjgtkMLBUUGxWhEhHmgUWdo1BEh\nwLvxA1zVLqrd4RjS7Vh0ldjLwyhL641Wn4D/V7+g+F1H8EMPITxuHL0TMfzzdcT2pbBgEUil7H3t\nFepqV9Jm7a9gTABDPFAP6zdD7xjkoFR2frWSjM8mU+Z3N1rbNA7tnUva5D14Cirwu/kan5Fd8iHU\nh0BVDSwu9K18qC+GtSNBWw3uKui6FEx/4WDsnCcj3Pcs7M2SP32/A8AVqEvULhOkANBEQPDTiIAH\n0VQ9huT8CW1oHtorLTR6qC8BMT3wHnqXKJeXIMmErkkIQs4FuRMEJFDSuhmyuSctZnwAgdkkUoZd\nWkFFj2BEfn/8pq6k6NOONBr7GXaakHXfIPK7xrG6GCKSzXTJvoOiJm9wnb4DNcYI9muK8EjdMTiX\nYHm4GNdXMyC2Fcq8F5G7JKCtdoKrCjaFQ//WKIFdqS3dhEW7HHn5GGSRguaKRERgKLTsB5aZEHk7\nTLsfZasHOqQiNzEiQh2I1d8gfoiC7zdBdRXe55/Auj0fy513w7U3gRDY931DlXczscoQ0ucNZndy\nJiVd76Nb9gL0v2YjRAHhFTKa2vshYBvUrIR8D1gdOJroMGqmwesSuDRQ7YYiE4pbQdkZjHiwGmrd\nUCsQrZ+hNDScoE098dZ40OQHEtlyKN6SJRSkBBIUU0Zj+To8h3MR196PvvlQn0EsOki9FYwfvgbX\nWqFPBLnJ3diR4mHw1+W+kWu72+CLH6FqK1zfAVb9gNQh0Lem13wt/vID7Cv4F5ErorFuKCfohx8g\nNhZyNsA3L0LrATD7c18kPEsImKMg5hqfi6XxIHBVXOqefHlwYZeo/UbS6QRUI9zQ+G1Np9cJzlJE\nYjQk9sOwYz1awzAcmq+pj4W11iG0WvgV8rbDiEYBiJBd1MZDyNvL0ZdaoWtPUEqQNKH4bdmJ30YD\nHtt8dvaMJXTiTL68tylkuknIzKB9fh21G0ppZfkJHOWE/t9IiHyJmtdHkVa9HkNlMcwOhVut6LPG\nIEddiSfagm7aftguYKA/PP4B2K2sKZ+CpfdY4ovX4apy4iguJ2rrUjQVO5HDizlo243XcTeRA2VM\nD/RGFNkQP+5E7AlCFNbDmCwono/DkUHOT+tJeO896N4dAPnQITT7dASXxuBu5qDo3ttIL+iC5ud5\nLIqLZGBEAcHbDqBtOQGqd0BWAVQFQLAZLAUUDw8jVgHdv5rAri3wdTW0HwkaBU9QDKJwEnRxoVkX\ngHvz1xyQsihP60RVy9u58j/Ps7RpBamexpRFNqNb3sdsL3qe+F+q0flfgf6th8BtRDGYMCVKYKyG\nFYchOI9N/RrjLtmJPOATNO5qCGwMGybAU+2htg5sDtxJXvQxLuybhmGMb0llQBAJy+cjhychGfPA\n6YSkFOg1HAa0g8hIKMz1GWGApqNh+fXgroUm91ySrnvZ0UC2LatGuCHhcfuMcF01uPdD8Txf+iS/\nWyApHs2O/fhFTcIrP8XwsOFoPhsKi19BWTAd+0ET7lAbFtESRtwBmYPh2fvg/6bDgZV4XYL6964l\nIq4Qc5abke+OQ4Q0QknoiHveLMoz7NA4FXY4oHdv2LySsP/+jJ8lFdZ/AN1bQ1wMinUHzuq5GErb\nI/wlaGyHkRvAGEBh6S/MbRbKrdI0lOpuhO5aQE5MOPNa1jHki3WI/h8RvnU+a//xGfLH96H4OdCm\nJBPcaDiWcZ+gfeApKHof9o2kdEZ3POVlBHTuDB4bbB2NCExGU7gPsfFb3AQRVyjh2T+XJkFamhbE\nQ00l2tUOMP8Dej0CFge0+jcob8MHDjxhWoqLBY2n10JRIBTUQ/BWCHEiOkoIMRxiVuDq0hvbhHlc\n0a8aPLFI6V2RqjUMeycbJWMT3t5XUBXyIcmOhyE0FN2OHdD9IRh8P66D+djnf49J2Qi5WSjXWVCa\npjNk2h5096bDplXwTGdoHuoLvL43D9q1oLZFN6TiCGr2yWS3MmG1mVCiEgl6VodQ1kJlLXiroW89\nOJ+FzgqYg0HJBKEFxePLdZj9nmqEzxQ1s4bKH7DbYNVciG8GIyZASGdwHwJnNTQdANPeg6vvIkCW\nEDSGxlro/iRiQwHmg7sxR94JoUWwdR7s+AFKdqEUfYgI247mP99jukJC5wemblGQ2Ax2L0NE/Yz2\nnlKik0CRvYi290Gr16AsHz+XHT5/EfKdoN8DYjj2QUno5eZIY56DjStg+2LwC8Kb8wgB1V/x2DcJ\n6O+aQ2B4LKImmZiUBBy79uB0l6Fd/jH62hJazu+Gy28qupqrCBF3UzN1NLnvdsdr3oR/bX8CJ2dT\nW7WI9BlTEN5KyB4Hh6chqgS6Fkko/ReSHbSBeONwpB0r8W5aijc7CE3zbCS3GbEDxMEpIBth/SpE\ncCS0cBJSFYHbakEZ+QLiqxshsQXe8q1UPBSNO64CU5kDv7JmSEumYejYF5G6ElGgwbPxASiQ0RXu\nQpZDQP4PITdsRK65H611GuJfWaDzLQdzZS1Gv28ePPo8fPE+nv3pDGqchTEsAwqzYNED0EEHe6th\nTRVEm6H7s2j9AnCUHaL8jVl4b2xLTHk0llF3IcIc4JoH/u8fCdSjgCMLjM1/vyVZY4AeM2HDo2Av\nBVP4penDlxNqZg2VPxAQBJ36Q8suvrJ0NVj1UJ0DIWngsIFzLsI1D7w7ofgQPDjQF5axaTcY8jjc\n+AaM+i/c+SlKdw0u7UvgmocSacMxIB3dYRPOPoNhUw30+xZ+iIU3QJ5gQLwSC2vyYeo98FhPeGUE\nrFsNPRKgmw5v8QZ0cwrR6kf72pe9BU+XDtRoxuEwHSKgVCYq6iDBr9wA1mooS8LPL4gm9TVUdzNT\n0GYVZde3wmJ8mCDrf9h1cyG23r0Ij7ueVPPrNC28E8vcXzho0WH7JJmsHjOoMRRC5hcos+NQ8vpA\n8gtg/TcOsQmz4o+Umo7uqiSME19Ed1UGmm53I6rbQoYdJUVBsUVA2qvQNpiQwi44442I2SNgfwIY\natFIbsIWSYTu6YhlcXv0I5ahRBgxjemEFJuM48A1KPWFiMhq5BtuQ66ORzirkCem433nc7y2cOR1\n08FVBhXf4Zr5GnpPCcx+C0Y9h2721xgtI6ClB5Z+CgMC4ZEcbLcm463YTb2uMd6Ns9Dp0tC30+Ot\nshEkucnMbozQ6cEwAHS9wfYEeIt8/5RMGSeOCSFpoMO/QRdwMXrr5Y+a8l7lhAwaCWkdfMdVm2G3\nFZp5QGOCiESoaQoaLWjSoG4PfLMVgkLhuzt+fx2dAZeShqd6OPqo26nsPhpL2LtoMjbi/PUFNCM/\nQ/vKU2A7hNy1NcqWrXgGHUS7oRixvxKUMMS2g5BgAF1LlD5v4L5yGobDT8JHT6AEGLAmrEVO6YE/\nT6Op3Qwb9FC5HSViJ9YdzXBeHwYWI0ZbLmE5SYg1hazuUkRg9fu0avEO3fWF/FxhJ8PSgrBPxiHs\ndXgaDSEk+xABeyoRoe0QjXXIbju2vcH49++Ld1soBzx5uAOMyAWdkYLb40GLcM1Ec1CDMnsqXGVD\nVPZEOAR0KYN970DmPYgmzyIpjyHn7ULK2gGjP4V5UxABGzAaJsLe98BfQtN3MqLufYQnEXPzlXjy\ngqmrrMNS+iWaZ79CWnoHGn872qQUFNM+vDvvwf2rFpclDOdBJ8Fx1TgiwZW8A2OCi+KCn9BHbsHc\nbg+7I29ivzKPzgEeosJhb7uetJj+FrrV86FbOhFj2hAv0tF4CnzPGcB4E9T9BNXtIWQPiBNk0fgN\nIUCrbtI4IxqIT1hdotbQODbz7aq+kBsKhoXQ50fIrfTFKO7sBNO9R8+pK4INr0Gfd353qaof+mLR\n30NFn/UYaEEgd4OiIL85iOp7DARMs6ErzoaqKpRNteAAuSeQLsCrQSDw+OtR8CK5JLRCizAG4TWb\n8cjV6HeXIpJbQEoGxL+EZ/K9VI30oNE2wrAzGOPsWUiZDoTFAkHxUFAHzW4nx7qWQr86us7cg9D5\n8fPCEpqNe5ZGQ+9h/4gRpE7wR0oeBmufQrlqA7ZRo/Gs+4Wge9vhib2GbY2nok9JJm5lHg7/fRxK\nNPOaZgKZ+q3c7/2IRls8iGwP5FohyQj93VDWEuLSqAzegnZqCQFeI1h6Iuz5MOR+COgB42+DO6+D\n5IMotnUI5TYwZkDODKxrv8ccGoPQH0BYbLDdAQd08NT7eOKicRUvwPXkVCpXOglqE42r0op1biqx\nzk3YV7anbvRdROa+i0j8Cl3lAZy7v0U/ZSGiqjm8NBH5x3eo1eThP/hjRLQGzZzVkN4FmrXzPUzv\nAbA+AbpOYB53UbpiQ+a8LFFLOQt7s++c73dS1JFwQ+M3A+wshoBG0GMMZO2BRh3BVAOfPQm9P/z9\nOfkroHGv31U5yUKkZOKqysPKLPzo7/s7a30O0W8nAStLELUeuDIIvg4BrQPF5EJaC25vFM52MuUZ\nGurSg/BzCfQOL9G/VqMprkHsq0OT3A/HxsUYrxqBCGkJS95AQyyNYj/1bQmOBLmmJ8y6EyXGi0g6\nBFES7HmWJvJ4IjZ/zcq729NuSx1te7Zl4/sfErTiQ5pkpCKt3gW17fAqULXjXmqHVOAe35YDoblo\n/D/GVVGFSXJTfkMTdHIr4tbO4hr/H5BCvOQYUhnV/HnGJj9Dm0W5GG9/GmGbD9mbYV84/sEVlHWJ\nxL9gCOz+GGFxQew18ORd8MATsH8pBE9FeO2Q/C9fOEyjoCKhEeadmxDtR0NCDMhLoXo9TH0LbZN2\naN1GpGcWIHbegf+kz/BufIfwkp/x0AVzp3KCKr2I4GdAtICKNzAUV0DzTFhSCYntkZR6atsmY5n7\nNqK+BgKTQXNM4HVNElhmg2fnBe1+fysuzhK106L6hBsqux8Edz7EtoOMCT7j7B8E9TW+CZrfsBbD\ngR8g7veZEmr4Cv/UcTja+xPBF5iVPmD/AFwzENFGtMuicKX0Qf5SQr7lNdwtjOQPC2P/zBuoTfPD\nL6+axEnVtBjvT9xbEfiviKIiaSDu+EnULoii4vaZSOV2hF9TOPwxlE5D9Er1GeAjSNfdDJKEvNuK\n0m46eEfCfi/kP48l3UjPkjoKbqsm7+ocWsx7nnpzN9ZttuPpfh0kdEDkleK3cBUxS3aTsKaO4J0S\nLbfeyxUbbTR/eD2J03VE5qcR5HQwomoGg+Yux2Z/lGYhHm7Xf0vTgXvYKDZhi58BQ1+GTuvQ79fh\nCg3EviIfUVCH0n0c/PczyF0Pb46FWZ9Drg5KDPDMv+DLG+D1FYQsqqPG5A8/TYG9P4JhGXRIgl05\nKDVb4I5/oEtrQfAzz6Dv3QfTMB1S3BXor5iK1jMIuXoSiqU31KzwbUyJ6gBX3wRXdgZFxlOVg7di\nB3UjHvYlE131Acz79x/7hTbjwvS3vyMNxCesGuGGTMKTvtxkjW84WhccCSW5R8vVB2DXNDi85X9V\nXqpRsKMlikDuwEwv8O4CpQIM42HvYwhHMObZWdiHJWHPepqacY8T/E4NSbOTaJTbDCnSA9coiPsn\noH/sK4I1oVhWFWO7fTz6YaOw3HkNhjvuhawlEPs4+Dug9mufH/s3hAB/PUqtFu/kyTB0IuibQFA7\nFGc40sEtNPu2luRfetHoydkk9etP1fadZM2pgtTOiNBmKPoI5JFGKu/QQsubEe5JaK9agGI2IH3y\nHoZVUzDGByJ+MRG6u5h+e/bxUsRV5MbWkS0/zM7afjTbH07m4VtYvK0LcloHDIk9EKFrYZcTJd8D\ne7bD9P9CGxckeKDre9BtLQw1w10/wPTV+Le+HkxBECVgxwbIaYJcqaE8oh/uA3aUykPIH7+H6ftZ\nuMaMQLF2hLjFYIhHkxCHCH0Wp3ckcvnLKLmbIPMuiO4GHQJAI6GMmoXkkfH3vwImLIGUqyGuyUXo\nZH9jGkiiT9Un3FAp+QYib/x9naLAS0PBWgWvLvfVHd4Ca5+H6777n1gVH2EgAzOd/3jdCdfDlkXw\n1FcwaxiKx4G47zvYdwj5u89QWvdF8+grsLg92LbC4iCYnIeHLFxV/TC86o9mwgYY3hke+SdkGGDr\nf8Blhvo6XxD3QzshchDgD989jtJkOLIzFclSgEhsCoXz4frvIHcRzH0XFAm6DYMvZuJNq+CAYTjR\nNx+Cok/AY8Mo0liW9CA9K9egW7AD2vRH3vE9Srkfkm0XBFlR/MYiij5FRHUA63ZomQad3gNDFMwa\nw8+/bmPX2AyK1ofTz7SCZsZaAMSxCQAAEShJREFUgn88hLKqFvHgzYjE1rBkESi5oK+DVi0h6gZo\ndmQlyJcvkBXzI813lCPKs1GcEvaqcCT/wej3zMJrTIXoDNDq0D37AiL0SCCdyqlQ9SUkfo8i7Dgr\n0sEBhpgCxP7vYOGNcPsuCGlGUe1UogPv9J23+HPoPBgCgs9rt/qrcF58wsFnYW+qVJ/w34+IG/5Y\nJwT0HQHz3z1aZwqF3m/9r+giBwfrCeLeP56/YKovLoO/H8SmgM6FqND6/o4PeQBp2hZkRYHK3RCY\nAcZciDfBGy1w3noF+gAbopsR9oyD8iLQLIeqcLAdgvSxUO0EcxtodTVsfQkOloJJj9jzHZrkRDhc\nAfoS2LcYZneGTDMMXgnuu2H5KogzIu3KIu6WN/CIasTOGkxh/kipo2hkW4JO1xJ343gOZxQjWnYl\n+O2peB+KQppXg/7HV3EM12IwrYImb6PftBc+ugdkP9i9jK6PfE7TsCQOtf8Q5f4SbFN7E/xDG+Qx\nWdinl2F+OBJNdQ2kN4aqDbBjGTjyIQQwNUGxzyV8QwplW+oJNhuRwv0wabUQtQeRkonmQCHK0+MQ\nYU1//5nXzvNtpkAgRDDa4nRcSbl45PfRJd4HwU3AYAEgKvD2o+f1GQZa3Z/uPipnQANZHaEa4YbK\nyVLSdBgEVSVHy4GNf/d2Je/ioRgFB4LjlipddRvs/AlSOsDEmyA0Fe58GtI7Qqwv/ZIkBBz8wReD\nIPcbCA0HQ3OcpXvQf2+CXgOg1VS4ZyL0/6cviHjiOJg6Cu76CL4fB7d9BdG94F8JkBoNmypAHwt3\nfAs7e4I7BVxOcN4AQTeBuTH03wd7nwdbBYb/6jCstCE7gpD6+eFx7CJEPgQRn6HtCzHuMsi7GeUa\nBeVQN0STXJTkMMw/VSEKZaR3BkI/PbzcDcoXw9AXoflAwoD88JZ4kpajWbsRQq9EDPTH3Pt+6gfc\nimHw1WiKZqIJckHCezBnClhK8OrfQskqwrxsD9mv3ky4ownC5IWOb8KU0eAfBeWrEB+0g2GzIPmY\nULKaEGj8JUgG8LrQ5vijydiLrKxDEVpEt7dBH+h75Mfm3VUN8IWngRhh1Sd8uSEEXHXybakyNYTx\nKtLxBhh8X+wWfWDN99D2Snj2R7hqxP8MMABFv8CuLyCgBSQ9D3fOQ0m5BYfZgTzXi9hW65O755kj\n7ZEgKAr6PwFzXwRTMFQcgG9v9W2/Tp8EXhk6jIW8VVDfAqIlSO0OwgVOAc4y8HjB0gNx41jEqPEo\n5TLS3gr4ohjvwW+pDB8P9r2Ig5MgbwiwHVEdjsYxH8mZgqasGZpeKUhJZfB0LLzfBSIi4emdvpzi\n8x6HlW/Swn09VYMbUWGsRVzTH6G9BmFajX96DK5FnyJXFKGkPwpthoB/EJ53ppL/9H48iVrM/UJJ\nXrsMIbQQ3MyXQSSlI6z4HK7oAfqrweU9El4Sn/so+m2QzL7ydzdBRGuEEGikTgghQcLVoDWfU5dQ\n+ZOoPuE/oPqEzwMOtmCk9Z+/QN4SWHgr8ogsZEMAe+VVHNDm0HLXh0R/Eo3GuhtufMX3d1k67jd8\n8ZvgcYBcCQcXQL0dbv0exnaAPmNh5NMotXlQuR1R+g54A8EeBZ4ja4Wqf4GoAcgV1Sj71qJxB8D+\nHSh1Eq5RHTCkdkMJGQx1r0KlgnDVgF8VbDND9WEIyYSwGMj5HvKbQ9UWsLghPB7MTmjbClko7Pzy\nZ8qeSCRjl4bw3nORF12Lxno7sv47lIK1eCPeRH/T3Tiysqh78zn0LVphilmDvqA9tZYZBBQUIHq9\nDt2OZErO2wrT74Y8DzTvBI/854+fq+yB140weDo0v+nPPx8V4Dz5hDkbe3PhfMLnctEQ4L9APHAQ\nuAmoPomsBvgVX96lQSeRUY1wQyB/BQXWpWxpHooWHU3oSKxdi23uIEKuXAfbFsK+7ZB/EPqNgA4D\nfOfpjb6R3/s3QOFyX5SvYQvAFIL3n/1wHI5B6AJR9HrkEffiKipEqpmDXruWw6vTcdeaibktBf9e\nD+KYeA2GHl5E6G7QN2aL3JnMkAeRktv47rH4cagvh0NLwN8GscPAPxWqiqDqkC+0piUC3voRKmrh\ns2+haRqEROMuKqXw5eFsfjMEizaMPtoPUR5oDK8sQGx+BTpPRvEaEebjRqcTM2DOISpf6IDOmkdA\nXhdo1hGG3Of7dzJzGDS+Baa/AP/e8MfPtTYftn4C3f95oZ/g34K/khE+F3fE0/jyLDXBl87j6VPI\nPgLs4uy0VrnIKMhsDi9hVTPwI4irGE0ybXHvmIxhWxXYa+CKISAc8NwsqCmDfwyCZ6/1BR8SAu7+\nHJRgiOqBs15LzqgHKF29EfuSpdgXzuewoqVmxQpkhxNNyn1oO08n8QE9Tf+vF/4DJpFf9xnaPkZE\nhwlQMRbFfyp57Xr4DPBvaAXkfHckAEsKVB4AQwh0eQjumAl3L4LClVBuhWEa+GE6XNcDdmfhLi3F\nL7wbXb6NwKH1UjNjHEqkgszT0HMaGEL+aIABuiRBahq2uHhqg7zw5Ee+nG6vjfZlz3bbIbkJ3PG8\nLxre8RhDoNvEC/TkVC5nzmVi7lrgtx0CU4EVnNgQxwIDgJeAx8/hfioXgdaGm2lz3A++M3chlpIw\niG3uq6iv9rkiBo4Cgxl+mQ/vPwoPvAWmABgzF74ajWFoDMkffoT81mGcLcfgN+8rQtunw/DRoDlm\nEkqZgVL8CRvyH6UioiOHr3yWK+pbQ95TVOi3ExDbA9nsQarPA79kaJ4PHcbAwvkQ2h3aBkLwiKPX\ny1kB1Q4Y1RYysyDuCdAGwwuPIF83Gm1CEsHbcul027McCL2FVvoOKDrnySdDAVr0gBvribFV4yqp\nAK8Dhj4AO36BSSNAtxIS+kCXMSc+X3+KeA8qf2vOZSQcARw+cnz4SPlEvAU8AcjncC+Vi4BA+t2O\nNwAHG6jvLOMdN+FoZfMekL3Kd3zlcHhuJoz9GEz+vrrYDOj9MMwej6byALr4pvj37Ir4eJYvBdO9\nQyFrG+zbA0CBqGJydCJ1kUPpt+kflFVOJ89cARvKETuziD20FGnTbbCyFWSNg/BPfUlSGzlB+yss\nn+yLtQtH3BWT4eH10DQaUl+Appkw6V34eiVV8+bjzM0FWSbEHkuAO4rqJ59F6I5ZHnYizK2gZySS\nLhCl62ugPxKprEUneHYqlETAF1+eeBSs0kBpGDNzpxsJnyqt87EonNjVMBBfhtEtQM/TNWbSpEn/\nO+7Zsyc9e572FJULjMCMHG5GG3fMuuXQOPj8IRj/EwSfJJdZWh+Y8TjYqnyTUp/dDY/Oh8E3Q49+\n8NAw5F3bmDtvMnUx4YygKwFaLTR9n35l3/Gt35cED7gPzdbvCG82BewOCOsL2gCw5UBASzD2hJR2\nsOMh+CYJmr4AtgBoNRBCkqD3u7511P9TRuAuKUWXlOIryzIJvaayQ3qXZmLMidaTHMWcCVXfQcKd\nmMKv+P17IREw+CGY+xV8+k8Y9eKf+KRVTsWKFStYsWLFeb7qBVujNgm4Byg7Un4GWHQy4XNxNGfj\nM6wlQBSwHGh2nMzLwHB82hqBQGA2cFzcRUCdmGuQeCjBpszFIkYdrSzMhvGt4Y1sCIs/+cklOfDl\nA9D2elj7JfzjFwC2kId15zo0yxaRcVgi8B/vgun3flirUsMC55dc81MF/uYY6HPcsjzZA9+mQty1\nkNQIZs+CyhJf5LTnN0PUcZsmjlA8fjyh992H/r3x8H/TkXGxnkcxEk5rJp36w9h3K6R8fWqZvdsg\noTno9KeWUzknzs/EXM1ZiFvO5n4TgTrgzTMRPhd3xDzgyB5L7gTmnEBmPBAHJAK3AMs4sQFWaaBo\naESgGPH7yphmcMsr4D3N37TIJvDYD9DuZmjeB4BsipnMUtZmBNDx4c8IfOnTPxhgAH9hoZtxMMsG\nNkHZsRRKc38vIGkh7TGwNAP/HnDLSPBP963WiDx5zIVGDz2EPiEBDCaw1yOhpzkPUk/hqXXx2kB2\ngm3zqeVSM1UDfNlgP4vXWXPGPxDnukRtJtCY3y9RiwY+Bq45Tr4HMBbfhN6JUEfClxOyDG6Hb2Lu\nTHDZ8egNbOAAjQkhhuA/+J9PxHY24ag6QPtPZ8D9n4Jf0NE33Vao3QcBEpSPhrI7IHP06dvi8cA7\nE6D3YGjti69RxU4CaYKGkxhQ2Q5bkyHiQYgZfyYaq1xAzs9IOP8sxOPO5n4TgbvwDbV/xWf3TrZ8\nV92sodLwWcr3tP18JpbNvyDe3vPHTSKunVCYCTFZoD/eI3YCFAUGpUHLjvDylDNvyOH3QfKDsDtP\nL6tyQTk/Rjj39FL/I/H4+51qvmwdR/3BL+Bz14482ZXV2BEqDZ5e9GdJ3x103bwU89510PS46HD6\nDAi4zxen4UwQAm6872j6oDMl7B5wHji7c1QaMKdyp60/8jopV57hTT4B5p9KQB0Jq1wWrGMla6yz\nufdAdwJbniDCnLcMpCAQZxj4pqYKCnMhrc3pZVUaHOdnJLzrLMTTzuZ+UUDxkePHgHbAbScTVo2w\nymXDIXIpo4S2dLrUTVG5xJwfI7ztLMQzz+Z+XwCtfPcgFxjF0T0Vf0A1wiqXFQoyQg3+97fn/Bjh\ndWch3vFc73dSVJ+wymWFaoBVzh8NI6CwaoRVVFT+pjSMLeaqEVZRUfmboo6EVVRUVC4h6khYRUVF\n5RKijoRVVFRULiHqSFhFRUXlEvKnAvOcd1QjrKKi8jdFHQmrqKioXEJUn7CKiorKJaRhjIT/ltuP\nzn+alEvPX1En+Gvq9VfUCS5HvTxn8bpwqEb4L8JfUSf4a+r1V9QJLke9Lo9EnyoqKip/UVSfsIqK\nisolpGEsUWtIoSxX4MtDp6KionI6VuLL9v5nOdu4uVX48mqqqKioqKioqKioqKioqKioqDR8QvCl\np84BfgSCTiGrAbZwmuyoDYQz0SsOWA5kATuBhy9a686Oq4FsYC/w1Elk/n3k/W1A64vUrnPldHoN\nw6fPdmAN0PLiNe2cOJPnBb4Elx7g+ovRKJWGy+vAk0eOnwJePYXs48A0YN6FbtR54Ez0isSXcBDA\nH9gDNL/wTTsrNMA+IAHQAVv5YxsHAAuPHHfg7JKDXSrORK9OgOXI8dX8dfT6TW4Z8D0w9GI1TqVh\nkg1EHDmOPFI+EbHAEqAXl8dI+Ez1OpY5QJ8L1qI/Rydg0THlp4+8juVD4OZjysfq3lA5E72OJRgo\nuKAtOj+cqV6PAg8AU1CN8Cn5O+yYi+BouunDnPzL+xbwBCBfjEadB85Ur99IwPc3fv0FbNOfIQbI\nP6ZccKTudDKxF7hd58qZ6HUsIzk62m/InOnzGgx8cKSsplE/BX+VzRo/4RsNHs+E48oKJ+4QA4FS\nfP7gnue1ZefGuer1G/7ALOARwHp+mnbeONMv6PFr2hv6F/ts2tcLuBvocoHacj45E73exjc6VvA9\nt4a0H6HB8Vcxwlee4r3D+AxZCRCFz9geT2fgWny+RyMQCHwB3HF+m3nWnKte4PPbzQa+wueOaGgU\n4ptA/I04/vi3/HiZ2CN1DZkz0Qt8k3Ef4/MJV12Edp0rZ6JXW2DGkeNGQH98ARguh7kWlQvA6xyd\nwX2aU0/MgW/X3uXgEz4TvQS+H5O3Llaj/gRaYD8+d4me00/MdeTymMA6E70a45vk6nhRW3ZunIle\nxzIFdXXE354QfBNuxy/ligYWnEC+B5fHL/aZ6NUVn497Kz5XyxZ8I66GRn98Kzf2Ac8cqRt15PUb\nk4+8vw1oc1Fb9+c5nV6fABUcfTYbLnYD/yRn8rx+QzXCKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKioqKheP/wdfnzF8qVT/lAAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 9460b8c32..ca8b84245 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -369,7 +369,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\nMTUtMTAtMDJUMjM6NDg6NTQtMDQ6MDDJCXMCAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAy\nVDIzOjQ4OjU0LTA0OjAwuFTLvgAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMDA6MjQ6NTQtMDQ6MDDJTGA9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAwOjI0OjU0LTA0OjAwuBHYgQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -580,7 +580,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-02 23:48:55\n", + " Date/Time: 2015-10-03 00:24:54\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -636,20 +636,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7300E-01 seconds\n", - " Reading cross sections = 1.2700E-01 seconds\n", - " Total time in simulation = 2.1409E+01 seconds\n", - " Time in transport only = 2.1383E+01 seconds\n", - " Time in inactive batches = 2.7630E+00 seconds\n", - " Time in active batches = 1.8646E+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", + " Total time for initialization = 7.0100E-01 seconds\n", + " Reading cross sections = 1.5800E-01 seconds\n", + " Total time in simulation = 2.0485E+01 seconds\n", + " Time in transport only = 2.0465E+01 seconds\n", + " Time in inactive batches = 3.0920E+00 seconds\n", + " Time in active batches = 1.7393E+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 = 1.0000E-03 seconds\n", - " Total time elapsed = 2.1994E+01 seconds\n", - " Calculation Rate (inactive) = 4524.07 neutrons/second\n", - " Calculation Rate (active) = 2011.16 neutrons/second\n", + " Total time elapsed = 2.1200E+01 seconds\n", + " Calculation Rate (inactive) = 4042.69 neutrons/second\n", + " Calculation Rate (active) = 2156.04 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 5f0b5adbd..55abf010a 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -33,42 +33,42 @@ class StatePoint(object): each batch cmfd_src : ndarray CMFD fission source distribution over all mesh cells and energy groups. - current_batch : int + current_batch : Integral Number of batches simulated date_and_time : str Date and time when simulation began entropy : ndarray Shannon entropy of fission source at each batch - gen_per_batch : int + gen_per_batch : Integral Number of fission generations per batch global_tallies : 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 : float + k_col_abs : Real Cross-product of collision and absorption estimates of k-effective - k_col_tra : float + k_col_tra : Real Cross-product of collision and tracklength estimates of k-effective - k_abs_tra : float + k_abs_tra : Real Cross-product of absorption and tracklength estimates of k-effective k_generation : 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 : int + n_batches : Integral Number of batches - n_inactive : int + n_inactive : Integral Number of inactive batches - n_particles : int + n_particles : Integral Number of particles per generation - n_realizations : int + n_realizations : Integral Number of tally realizations path : str Working directory for simulation run_mode : str Simulation run mode, e.g. 'k-eigenvalue' - seed : int + seed : Integral Pseudorandom number generator seed source : ndarray of compound datatype Array of source sites. The compound datatype has fields 'wgt', 'xyz', @@ -80,7 +80,7 @@ class StatePoint(object): Dictionary whose keys are tally IDs and whose values are Tally objects tallies_present : bool Indicate whether user-defined tallies are present - version: tuple of int + version: tuple of Integral Version of OpenMC summary : None or openmc.summary.Summary A summary object if the statepoint has been linked with a summary file @@ -487,7 +487,7 @@ class StatePoint(object): A list of Nuclide objects (default is []). name : str, optional The name specified for the Tally (default is None). - id : int, optional + id : Integral, optional The id specified for the Tally (default is None). estimator: str, optional The type of estimator ('tracklength', 'analog'; default is None). @@ -543,6 +543,8 @@ class StatePoint(object): for filter in filters: contains_filters = False + # Test if requested filter is a subset of any of the test + # tally's filters and if so continue to next filter for test_filter in test_tally.filters: if test_filter.is_subset(filter): contains_filters = True diff --git a/openmc/summary.py b/openmc/summary.py index 35aa703f5..f572b48ef 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -82,7 +82,7 @@ class Summary(object): # Create the Material material = openmc.Material(material_id=material_id, name=name) - # Set the Material's density to g/cm3 - this is what is used in OpenMC + # Set the Material's density to atom/b-cm as used by OpenMC material.set_density(density=density, units='atom/b-cm') # Add all nuclides to the Material diff --git a/openmc/tallies.py b/openmc/tallies.py index 5ea0aa8ea..50afe6072 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -34,7 +34,7 @@ class Tally(object): Parameters ---------- - tally_id : int, optional + tally_id : Integral, optional Unique identifier for the tally. If none is specified, an identifier will automatically be assigned name : str, optional @@ -42,7 +42,7 @@ class Tally(object): Attributes ---------- - id : int + id : Integral Unique identifier for the tally name : str Name of the tally @@ -56,17 +56,17 @@ class Tally(object): Type of estimator for the tally triggers : list of openmc.trigger.Trigger List of tally triggers - num_score_bins : int + num_score_bins : Integral 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_scores : int + num_scores : Integral Total number of user-specified scores - num_filter_bins : int + num_filter_bins : Integral Total number of filter bins accounting for all filters - num_bins : int + num_bins : Integral Total number of bins for the tally - num_realizations : int + num_realizations : Integral Total number of realizations with_summary : bool Whether or not a Summary has been linked @@ -743,7 +743,7 @@ class Tally(object): filter_type : str The type of Filter (e.g., 'cell', 'energy', etc.) - filter_bin : int, tuple + filter_bin : Integral 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 @@ -842,11 +842,36 @@ class Tally(object): return score_index def get_filter_indices(self, filters=[], filter_bins=[]): - """ + """Get indices into the filter axis of this tally's data arrays. + + This is a helper routine for the Tally.get_values(...) routine to + extract tally data. This routine returns the indices into the filter + axis of the tally's data array (axis=0) for particular combinations + of filters and their corresponding bins. + + Parameters + ---------- + filters : list of str + A list of filter type strings + (e.g., ['mesh', 'energy']; default is []) + + filter_bins : list of Iterables + A list of the filter bins corresponding to the filter_types + parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin + in the list is the integer ID for 'material', 'surface', 'cell', + 'cellborn', and 'universe' Filters. Each bin is an integer for the + cell instance ID for 'distribcell' Filters. Each bin is a 2-tuple of + floats for 'energy' and 'energyout' filters corresponding to the + energy boundaries of the bin of interest. The bin is a (x,y,z) + 3-tuple for 'mesh' filters corresponding to the mesh cell of + interest. The order of the bins in the list must correspond to the + filter_types parameter. + + Returns + ------- + ndarray + A NumPy array of the filter indices - :param filters: - :param filter_bins: - :return: """ cv.check_iterable_type('filters', filters, basestring) @@ -882,10 +907,11 @@ class Tally(object): for k in range(filter.num_bins): bins.append((filter.bins[k], filter.bins[k+1])) + # Create list of cell instance IDs for distribcell Filters elif filter.type == 'distribcell': bins = np.arange(filter.num_bins) - # Create list of IDs for bins for all other Filter types + # Create list of IDs for bins for all other filter types else: bins = filter.bins @@ -911,10 +937,23 @@ class Tally(object): return filter_indices def get_nuclide_indices(self, nuclides): - """ + """Get indices into the nuclide axis of this tally's data arrays. + + This is a helper routine for the Tally.get_values(...) routine to + extract tally data. This routine returns the indices into the nuclide + axis of the tally's data array (axis=1) for one or more nuclides. + + Parameters + ---------- + nuclides : list of str + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is []) + + Returns + ------- + ndarray + A NumPy array of the nuclide indices - :param nuclides: - :return: """ cv.check_iterable_type('nuclides', nuclides, basestring) @@ -932,10 +971,23 @@ class Tally(object): return nuclide_indices def get_score_indices(self, scores): - """ + """Get indices into the score axis of this tally's data arrays. + + This is a helper routine for the Tally.get_values(...) routine to + extract tally data. This routine returns the indices into the score + axis of the tally's data array (axis=2) for one or more scores. + + Parameters + ---------- + scores : list of str + A list of one or more score strings + (e.g., ['absorption', 'nu-fission']; default is []) + + Returns + ------- + ndarray + A NumPy array of the score indices - :param scores: - :return: """ cv.check_iterable_type('scores', scores, basestring) @@ -954,19 +1006,20 @@ class Tally(object): def get_values(self, scores=[], filters=[], filter_bins=[], nuclides=[], value='mean'): - """Returns a tally score value given a list of filters to satisfy. + """Returns one or more tallied values given a list of scores, filters, + filter bins and nuclides. This method constructs a 3D NumPy array for the requested Tally data indexed by filter bin, nuclide bin, and score index. The method will - order the data in the array as specified in the parameter lists + order the data in the array as specified in the parameter lists. Parameters ---------- - scores : list + scores : list of str A list of one or more score strings (e.g., ['absorption', 'nu-fission']; default is []) - filters : list + filters : list of str A list of filter type strings (e.g., ['mesh', 'energy']; default is []) @@ -982,7 +1035,7 @@ class Tally(object): interest. The order of the bins in the list must correspond to the filter_types parameter. - nuclides : list + nuclides : list of str A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is []) @@ -1121,7 +1174,7 @@ class Tally(object): # Build DataFrame columns for filters if user requested them if filters: - # Append each Filter's DataFRame to the overall DataFrame + # Append each Filter's DataFrame to the overall DataFrame for filter in self.filters: filter_df = filter.get_pandas_dataframe(data_size, summary) @@ -1192,7 +1245,7 @@ class Tally(object): suppose this tally has arrays of data with shape (8,5,5) corresponding to two filters (2 and 4 bins, respectively), five nuclides and five scores. This routine will return a version of the data array with the - with a new shape of (2,4,5,5) such that the first two dimensions now + with a new shape of (2,4,5,5) such that the first two dimensions correspond directly to the two filters with two and four bins. Parameters @@ -1203,9 +1256,8 @@ class Tally(object): Returns ------- - float or ndarray - A scalar or NumPy array of the Tally data indexed in the order - each filter, nuclide and score is listed in the parameters. + ndarray + The tally data array indexed by filters, nuclides and scores. """ @@ -1388,7 +1440,7 @@ class Tally(object): Returns ------- Tally - A new Tally outer that is the outer product with this one. + A new Tally that is the outer product with this one. Raises ------ @@ -1408,15 +1460,17 @@ class Tally(object): new_tally.with_batch_statistics = True new_tally._derived = True + # Construct a combined derived name from the two tally operands if self.name != '' and other.name != '': new_name = '({0} {1} {2})'.format(self.name, binary_op, other.name) new_tally.name = new_name - # FIXME: Align filters + # Find any shared filters between the two tallies self_filters = set(self.filters) other_filters = set(other.filters) filter_intersect = self_filters.intersection(other_filters) + # Align the shared filters to follow in each tally operand for i, filter in enumerate(filter_intersect): self_index = self.filters.index(filter) other_filter = other.filters[self_index] @@ -1461,12 +1515,15 @@ class Tally(object): if self.num_realizations == other.num_realizations: new_tally.num_realizations = self.num_realizations - # Generate filter "outer products" + # If filters are identical, simply reuse them in derived tally if self.filters == other.filters: for self_filter in self.filters: new_tally.add_filter(self_filter) + + # Generate filter "outer products" for non-identical filters else: + # Find the common longest sequence of shared filters match = 0 for self_filter, other_filter in zip(self.filters, other.filters): if self_filter == other_filter: @@ -1477,11 +1534,11 @@ class Tally(object): match_filters = self.filters[:match] cross_filters = [self.filters[match:], other.filters[match:]] - # FIXME: This must be the common longest sequence of tallies at the beginning - + # Simply reuse shared filters in derived tally for filter in match_filters: new_tally.add_filter(filter) + # Use cross filters to combine non-shared filters in derived tally if len(self.filters) != match and len(other.filters) == match: for filter in cross_filters[0]: new_tally.add_filter(filter) @@ -1523,94 +1580,6 @@ class Tally(object): return new_tally - def swap_filters(self, filter1, filter2): - """ - - :param filter1: - :param filter2: - :return: - """ - - # Check that results have been read - if not self.derived and self.sum is None: - msg = 'Unable to use tally arithmetic with Tally ID="{0}" ' \ - 'since it does not contain any results.'.format(self.id) - raise ValueError(msg) - - cv.check_type('filter1', filter1, Filter) - cv.check_type('filter2', filter2, Filter) - - if filter1 == filter2: - msg = 'Unable to swap a filter with itself' - raise ValueError(msg) - elif filter1 not in self.filters: - msg = 'Unable to swap "{0}" filter1 in Tally ID="{1}" since it ' \ - 'does not contain such a filter'.format(filter1.type, self.id) - raise ValueError(msg) - elif filter2 not in self.filters: - msg = 'Unable to swap "{0}" filter2 in Tally ID="{1}" since it ' \ - 'does not contain such a filter'.format(filter2.type, self.id) - raise ValueError(msg) - - swap_tally = copy.deepcopy(self) - - # Swap the filters in the copied version of this Tally - filter1_index = swap_tally.filters.index(filter1) - filter2_index = swap_tally.filters.index(filter2) - swap_tally.filters[filter1_index] = filter2 - swap_tally.filters[filter2_index] = filter1 - - # Update the strides for each of the filters - stride = swap_tally.num_nuclides * swap_tally.num_score_bins - for filter in reversed(swap_tally.filters): - filter.stride = stride - stride *= filter.num_bins - - filters = [filter1.type, filter2.type] - if filter1.type == 'distribcell': - filter1_bins = np.arange(filter.num_bins) - else: - filter1_bins = [(filter1.get_bin(i)) for i in range(filter1.num_bins)] - - if filter1.type == 'distribcell': - filter2_bins = np.arange(filter2.num_bins) - else: - filter2_bins = [filter2.get_bin(i) for i in range(filter2.num_bins)] - - if self.sum is not None: - for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): - filter_bins = [(bin1,), (bin2,)] - data = self.get_values(filters=filters, - filter_bins=filter_bins, value='sum') - indices = swap_tally.get_filter_indices(filters, filter_bins) - swap_tally.sum[indices, :, :] = data - - if self.sum_sq is not None: - for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): - filter_bins = [(bin1,), (bin2,)] - data = self.get_values(filters=filters, - filter_bins=filter_bins, value='sum_sq') - indices = swap_tally.get_filter_indices(filters, filter_bins) - swap_tally.sum_sq[indices, :, :] = data - - if self.sum is not None: - for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): - filter_bins = [(bin1,), (bin2,)] - data = self.get_values(filters=filters, - filter_bins=filter_bins, value='mean') - indices = swap_tally.get_filter_indices(filters, filter_bins) - swap_tally._mean[indices, :, :] = data - - if self.sum is not None: - for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): - filter_bins = [(bin1,), (bin2,)] - data = self.get_values(filters=filters, - filter_bins=filter_bins, value='std_dev') - indices = swap_tally.get_filter_indices(filters, filter_bins) - swap_tally._std_dev[indices, :, :] = data - - return swap_tally - def _align_tally_data(self, other): """Aligns data from two tallies for tally arithmetic. @@ -1727,6 +1696,94 @@ class Tally(object): data['other']['std. dev.'] = other_std_dev return data + def swap_filters(self, filter1, filter2): + """ + + :param filter1: + :param filter2: + :return: + """ + + # Check that results have been read + if not self.derived and self.sum is None: + msg = 'Unable to use tally arithmetic with Tally ID="{0}" ' \ + 'since it does not contain any results.'.format(self.id) + raise ValueError(msg) + + cv.check_type('filter1', filter1, Filter) + cv.check_type('filter2', filter2, Filter) + + if filter1 == filter2: + msg = 'Unable to swap a filter with itself' + raise ValueError(msg) + elif filter1 not in self.filters: + msg = 'Unable to swap "{0}" filter1 in Tally ID="{1}" since it ' \ + 'does not contain such a filter'.format(filter1.type, self.id) + raise ValueError(msg) + elif filter2 not in self.filters: + msg = 'Unable to swap "{0}" filter2 in Tally ID="{1}" since it ' \ + 'does not contain such a filter'.format(filter2.type, self.id) + raise ValueError(msg) + + swap_tally = copy.deepcopy(self) + + # Swap the filters in the copied version of this Tally + filter1_index = swap_tally.filters.index(filter1) + filter2_index = swap_tally.filters.index(filter2) + swap_tally.filters[filter1_index] = filter2 + swap_tally.filters[filter2_index] = filter1 + + # Update the strides for each of the filters + stride = swap_tally.num_nuclides * swap_tally.num_score_bins + for filter in reversed(swap_tally.filters): + filter.stride = stride + stride *= filter.num_bins + + filters = [filter1.type, filter2.type] + if filter1.type == 'distribcell': + filter1_bins = np.arange(filter.num_bins) + else: + filter1_bins = [(filter1.get_bin(i)) for i in range(filter1.num_bins)] + + if filter1.type == 'distribcell': + filter2_bins = np.arange(filter2.num_bins) + else: + filter2_bins = [filter2.get_bin(i) for i in range(filter2.num_bins)] + + if self.sum is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(bin1,), (bin2,)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='sum') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally.sum[indices, :, :] = data + + if self.sum_sq is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(bin1,), (bin2,)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='sum_sq') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally.sum_sq[indices, :, :] = data + + if self.sum is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(bin1,), (bin2,)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='mean') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally._mean[indices, :, :] = data + + if self.sum is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(bin1,), (bin2,)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='std_dev') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally._std_dev[indices, :, :] = data + + return swap_tally + def __add__(self, other): """Adds this tally to another tally or scalar value. @@ -2422,7 +2479,7 @@ class Tally(object): Returns ------- Tally - A new Tally outer that is the outer product with this one. + A new Tally that is the outer product with this one. """ From 0eee99ee203f724007a1f96ccf4a62044ae33a12 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 01:04:42 -0400 Subject: [PATCH 72/91] Added docstring for Tally.swap_filter(...) routine --- docs/source/pythonapi/examples/geometry.xml | 38 + .../pythonapi/examples/materials-xy.png | Bin 0 -> 1271 bytes docs/source/pythonapi/examples/materials.xml | 20 + docs/source/pythonapi/examples/plots.xml | 8 + .../pythonapi/examples/post-processing.ipynb | 44 +- docs/source/pythonapi/examples/settings.xml | 21 + docs/source/pythonapi/examples/tallies.xml | 23 + .../pythonapi/examples/tally-arithmetic.ipynb | 665 ++---------------- openmc/tallies.py | 62 +- 9 files changed, 230 insertions(+), 651 deletions(-) create mode 100644 docs/source/pythonapi/examples/geometry.xml create mode 100644 docs/source/pythonapi/examples/materials-xy.png create mode 100644 docs/source/pythonapi/examples/materials.xml create mode 100644 docs/source/pythonapi/examples/plots.xml create mode 100644 docs/source/pythonapi/examples/settings.xml create mode 100644 docs/source/pythonapi/examples/tallies.xml diff --git a/docs/source/pythonapi/examples/geometry.xml b/docs/source/pythonapi/examples/geometry.xml new file mode 100644 index 000000000..8e9f1ef3d --- /dev/null +++ b/docs/source/pythonapi/examples/geometry.xml @@ -0,0 +1,38 @@ + + + + + + + + 1.26 1.26 + 17 17 + -10.71 -10.71 + +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 + + + + + + + + + + diff --git a/docs/source/pythonapi/examples/materials-xy.png b/docs/source/pythonapi/examples/materials-xy.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c31899516ea2a3f585861e65394dfd9bb9ba56 GIT binary patch literal 1271 zcmZ{jeN>Wn6vrPkJ7<=2={b=rqn489Of1U{1V#q}n*te4O4EEPU#Fg=BWn66nP%lQ z%d*gHT2}KUW3DVJX}+YDNot18hAAswP|-jI8;Sf3UDR*%Wz7LnSW-JU%%UB(!SR4hvzM^s*rhoir@GmO$*Ml{ z&2`TtWgqezYj0L}E4GHFu?t`QejA+>(5Q&uhIWHIyU;(Fv!AA#GLhebv>9u3daQKG zb9~sF+RY9j@Y8EF_x?+z;(~_UKFjm?-8HYC2%~MMR^QDrIg-^SYDCb<2Ncs)RkL3O zSQBH`WvP_us5ZgX?*ZVP4RiJYrJRJwLy_^-!wOwca=T{Hd+vlWUX;*VhSpV|3tN>c z1@Zp#CNIfpF6gtU_(P|11LhRd==}?5ou(ksykgT8G^$_5Aq3|H ze*F-nHFES8d=?7ni>Wa39jG)|im0GP zhkr4T?;hd)Eixdh%&7fQV05(Lj)G+m!Hz*i3wmmb*7|QQ;w1#0Hvnf44t`I7psfr3V?_BvpDY{UPKXSagSMB!Vr3NxNozK# zY>d*zxPS*V#}2r?QjxEOYetk&%BudEQKTRT4Uv~zL^IRP(g8T;FPd0K`*~g(`RT+0 zJc_iez7JOR!!hcr!g0mXT0j`G;O@ew)$mVbxXB6*EyLfXuIR?T-BrjG2%{r}2T4(f z4`KpsCVFr6^d@=|xA2MHB;pp54>tRdh{W^7w4(n2KPE@V9ZLUyV5FzO8v`JJCWleK H{ebu%i<^#J literal 0 HcmV?d00001 diff --git a/docs/source/pythonapi/examples/materials.xml b/docs/source/pythonapi/examples/materials.xml new file mode 100644 index 000000000..42c2e5029 --- /dev/null +++ b/docs/source/pythonapi/examples/materials.xml @@ -0,0 +1,20 @@ + + + 71c + + + + + + + + + + + + + + + + + diff --git a/docs/source/pythonapi/examples/plots.xml b/docs/source/pythonapi/examples/plots.xml new file mode 100644 index 000000000..512070a33 --- /dev/null +++ b/docs/source/pythonapi/examples/plots.xml @@ -0,0 +1,8 @@ + + + + 0 0 0 + 21.5 21.5 + 250 250 + + diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index b9bc809df..7c1269c67 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -353,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\nMTUtMTAtMDNUMDA6Mjg6MjUtMDQ6MDB/woIeAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAwOjI4OjI1LTA0OjAwDp86ogAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMDA6NTg6MTItMDQ6MDAd0a7wAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAwOjU4OjEyLTA0OjAwbIwWTAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -465,7 +465,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 00:28:25\n", + " Date/Time: 2015-10-03 00:58:12\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -601,20 +601,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.9300E-01 seconds\n", - " Reading cross sections = 8.4000E-02 seconds\n", - " Total time in simulation = 2.4111E+02 seconds\n", - " Time in transport only = 2.4106E+02 seconds\n", - " Time in inactive batches = 8.4970E+00 seconds\n", - " Time in active batches = 2.3262E+02 seconds\n", - " Time synchronizing fission bank = 7.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 3.1000E-02 seconds\n", - " Total time for finalization = 1.6600E-01 seconds\n", - " Total time elapsed = 2.4169E+02 seconds\n", - " Calculation Rate (inactive) = 5884.43 neutrons/second\n", - " Calculation Rate (active) = 1934.51 neutrons/second\n", + " Total time for initialization = 3.9800E-01 seconds\n", + " Reading cross sections = 9.2000E-02 seconds\n", + " Total time in simulation = 2.4145E+02 seconds\n", + " Time in transport only = 2.4139E+02 seconds\n", + " Time in inactive batches = 7.6900E+00 seconds\n", + " Time in active batches = 2.3376E+02 seconds\n", + " Time synchronizing fission bank = 1.2000E-02 seconds\n", + " Sampling source sites = 8.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 3.4000E-02 seconds\n", + " Total time for finalization = 1.7000E-01 seconds\n", + " Total time elapsed = 2.4203E+02 seconds\n", + " Calculation Rate (inactive) = 6501.95 neutrons/second\n", + " Calculation Rate (active) = 1925.07 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -871,7 +871,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -882,7 +882,7 @@ "data": { "image/png": "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\ncPmIaKHPh5wAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -914,7 +914,7 @@ "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEACAYAAACznAEdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFPNJREFUeJzt3XuMHVd9wPHvxhsXAl7sbYrjRyIbx65xHyJIMaiFMrTB\nNWnwuiA5Rmq1gKmqWg3pk9hBrbeqKE4qCq1QKrU8ukTYrQut5VTU2EkzfUitXSAOSZatH22ADXhD\ncIi3hRYbb/84Z72zd+/uzt29M/fu7PcjXd25M2dmzvHcvT+fc+bMAUmSJEmSJEmSJEmSJEmSJKkp\n7gaeAJ6MywDdwHHgNHAMWJpJvxc4AwwCW8rLpiSpSD9KCAYvAhYRgsA64H7gvTHNPcD+uLwJOAVc\nC6wBzgLXlJddSdJszfRjvRE4Afwv8H3gH4G3AduA/pimH9gel3uAg8Al4GlCQNjc1BxLkgoxU0B4\nEng9oYnoOuB2YDWwHBiOaYbjZ4CVwFBm/yFgVbMyK0kqTucM2weB+wj9BP9DaA76fk2a0fiaynTb\nJEltYqaAAPDx+AJ4P+F//cPADcB5YAXwbNz+DHBjZt/Vcd0E69atGz137twssyxJC9Y54OaiDp6n\nw/fl8f0m4K3AAeAI0BvX9wKH4/IRYCewGFgLrAdO1h7w3LlzjI6OVva1b9++lufB8lm+hVa2hVA+\nwk09hclTQ/g08IOEjuLdwAuEu4oOAbsIncc7YtqBuH4AuBzT22QkSfNAnoDwU3XWXQBumyL9H8SX\nJGkecYxAAZIkaXUWCmX55q8qlw2qX76idbTovKOxPUySlFNHRwcU+LttDUGSBBgQJEmRAUGSBBgQ\nJEmRAUGSBBgQJEmRAUGSBBgQJEmRAUGSBBgQJEmRAUGSBBgQJEmRAUGSBBgQJElRnoCwF3gKeIIw\nfeYPAN3AceA0cAxYWpP+DDAIbGlmZtV+urq66ejomPTq6upuddYkNWim52qvAf4BeCXwf8BfAZ8F\nfgR4DrgfuAdYBuwBNhGCxq3AKuBhYANwpea4zodQEeH57PWuZQf1rnFXVzcjI89PWr9kyTIuXrzQ\n/AxKFdLq+RAuEuZSvo4w3eZ1wNeBbUB/TNMPbI/LPcDBuM/TwFlgc1NzrHktBIPRSa96QUJSuWYK\nCBeADwJfJQSCbxOaipYDwzHNcPwMsBIYyuw/RKgpSJLaXOcM29cBv0ZoOnoB+GvgF2rSjP03byp1\nt/X19V1dTpLEuVAlqUaapqRpWtr5ZmqLuhN4E/Du+PkXgdcCPw28ETgPrAAeBTYS+hEA9sf3o8A+\n4ETNce1DqIhG+xAaTS9pXKv7EAYJAeDFMRO3AQPAQ0BvTNMLHI7LR4CdwGJgLbAeONncLGt+6Kx7\n95Gk9jVTk9HjwCeBzxPuFPoi8GfAEuAQsIvQebwjph+I6weAy8Bupm9OUmVdZqqagKT21Kq/TpuM\nKmK6JqBG1/udkKbX6iYjSdICYUCQJAEGBElSZECQJAEGBElSZECQJAEGBDWg3qOuJVWH4xCUW/0x\nB45DkMriOARJUikMCJIkwICgtlH/YXhOxSmVxz4E5VZ0H4J9C9L07EOQJJXCgCBJAgwIkqTIgCBJ\nAvIFhB8GHsu8XgDeA3QDx4HTwDFgaWafvcAZwhScW5qYX0lSQRrtrb4GeAbYDNwFPAfcD9wDLAP2\nAJuAA8CtwCrgYWADYQrOMd5lNA95l5HUWu12l9FtwFnga8A2oD+u7we2x+Ue4CBwiTDf8llCAJEk\ntbFGA8JOwo89wHJgOC4Px88AK4GhzD5DhJqCJKmNdTaQdjHwFkLzUK1R6tf3s9sn6Ovru7qcJAlJ\nkjSQFUmqvjRNSdO0tPM10hbVA/wKsDV+HgQS4DywAngU2EjoRwDYH9+PAvuAE5lj2YcwD9mHILVW\nO/UhvJ3x5iKAI0BvXO4FDmfW7yTUKNYC64GTc8umFq7Jzzjy+UZSMfJGmpcAXyH8wI/Edd3AIeAm\nQufxDuDbcdu9wLuAy8DdwOdqjmcNYR5qVQ2h3jn9/mghKrqG4MPtlJsBQWqtdmoykiRVmAFBkgQY\nECRJkQFBk3R1ddedvUxStdmprEnqdx7DVB28dipL5bBTWZJUCgOCJAkwIEiSIgOCJAkwIEiSIgOC\nJAkwIEiSIgOCJAkwIEiSIgOCJAkwIGhemjyLmjOpSXOXNyAsBT4NfBkYAF5DmDHtOHAaOBbTjNkL\nnCHMu7ylWZmVgsuE5xtNfI2MPN/SXEnzXd6A8MfAZ4FXAj9O+KHfQwgIG4BH4meATcCd8X0r8EAD\n55EktUieH+qXAa8HPh4/XwZeALYB/XFdP7A9LvcAB4FLhLmWzwKbm5NdSVJR8gSEtcA3gU8AXwT+\nHHgJsBwYjmmG42eAlcBQZv8hYFUzMitJKk5nzjSvBn4V+Hfgw4w3D40Za8idyqRtfX19V5eTJCFJ\nkhxZkaSFI01T0jQt7Xx5Jlq4AfhXQk0B4HWETuNXAG8EzgMrgEeBjYwHi/3x/SiwDziROaYT5LSx\n+TBBzlRp/V6pytphgpzzwNcInccAtwFPAQ8BvXFdL3A4Lh8BdgKLCUFkPXCySfmVJBUkT5MRwF3A\npwg/8ueAdwKLgEPALkLn8Y6YdiCuHyB0QO9m+uYkSVIbcE5lTWKTkdSe2qHJSJK0ABgQFrCuru66\nj4CQtDDZZLSANdY0NNV6m4yksthkJEkqhQFBkgQYECRJkQFBkgQYECRJkQFBkgQYECRJkQFBkgQY\nECRJkQFBkgQYECRJkQFBkgTkDwhPA18CHmN89rNu4DhwGjgGLM2k3wucAQaBLc3IqCSpWHkDwiiQ\nALcAm+O6PYSAsAF4hPG5lDcBd8b3rcADDZxHktQijfxQ1z5ydRvQH5f7ge1xuQc4CFwi1CzOMh5E\nJEltqpEawsPA54FfiuuWA8NxeTh+BlgJDGX2HQJWzS2bkqSideZM95PAN4AfIjQTDdZsH6X+jCXZ\n7ZKkNpY3IHwjvn8T+FtCE9AwcANwHlgBPBvTPAPcmNl3dVw3QV9f39XlJElIkiR/riVpAUjTlDRN\nSztfnqnYrgMWASPASwh3FP0ecBvwLeA+Qofy0vi+CThACBqrCE1NNzOxluAUmm3AKTSl+aXoKTTz\n1BCWE2oFY+k/RQgKnwcOAbsIncc7YpqBuH4AuAzsxiYjlaJz7A9mgiVLlnHx4oUW5EeaXwqLNDOw\nhtAGqlhDsOagKiu6huD4AEkSYECQJEUGBEkSYECQJEUGBEkSYECQJEUGBEkSYECQJEUGBEkSYECQ\nJEUGBEkSYECQJEUGBEkSYECQJEUGBEkSYEBYELq6uuno6Jj0kqSsvAFhEfAY8FD83A0cB04TZk9b\nmkm7FzgDDAJbmpNNzcXIyPOEiWNqX5I0Lm9AuJswJebYr8geQkDYADwSP0OYT/nO+L4VeKCBc0iS\nWijPj/Vq4Hbgo4xP3bYN6I/L/cD2uNwDHAQuEeZZPgtsblJeJUkFyhMQPgT8NnAls245MByXh+Nn\ngJXAUCbdELBqjnmUJJVgpoBwB/Asof9gql7ImRqkbayWpHmgc4btP0FoHrodeBHQBTxIqBXcAJwH\nVhCCBsAzwI2Z/VfHdZP09fVdXU6ShCRJGs27JFVamqakaVra+Rq59/ANwG8BbwHuB74F3EfoUF4a\n3zcBBwj9BquAh4GbmVxLGB0dteJQlnCLab1/72asL/LYzTun3zdVQbxdvLB7xmeqIdQa+6vaDxwC\ndhE6j3fE9QNx/QBwGdiNTUZquc664y6WLFnGxYsXWpAfqT21anSSNYQSWUOw5qBqKLqG4BgBSRJg\nQJAkRQYESRJgQJAkRQYESRJgQJAkRQYESRJgQJAkRQaEiqk3O5ok5eFI5YqpPyp5fowadqSyND1H\nKkuSSmFAkCQBBgRJUmRAkCQBBgRJUmRAkCQBMweEFwEngFOEWdA+ENd3A8eB08AxwhSaY/YCZ4BB\nYEszMytJKk6e+1mvA75DmG7zXwjzKm8DniPMrXwPsIyJcyrfyvicyhuAKzXHdBxCQRyH4DgEVVc7\njEP4TnxfDCwCnicEhP64vh/YHpd7gIPAJcJcy2eBzU3KqySpQHkCwjWEJqNh4FHgKWB5/Ex8Xx6X\nVwJDmX2HCDUFSVKb68yR5grwKuBlwOeAN9ZsH6V+fTy7fZK+vr6ry0mSkCRJjqxI0sKRpilpmpZ2\nvkbbon4H+C7wbiABzgMrCDWHjYR+BID98f0osI/QMZ1lH0JB7EOwD0HV1eo+hOsZv4PoxcCbgMeA\nI0BvXN8LHI7LR4CdhP6GtcB64GQT8ytJKshMTUYrCJ3G18TXg8AjhKBwCNhF6DzeEdMPxPUDwGVg\nN9M3J0kt1Dnp8eBLlizj4sULLcqP1Fo+/rpibDKa+7H9bqpdtbrJSJK0QBgQJEmAAUGSFBkQJEmA\nAUGSFBkQJEmAAUGSFBkQJEmAAWHe6urqpqOjY9JLkmbLkcrzVP0RydCKkb2OVJbK4UhlSVIpDAiS\nJMCAIEmKDAiSJMCAINXorHv3VldXd6szJhUuz5zK0gJymXp3JI2MeEuvqi9PDeFGwpzJTwFPAu+J\n67uB48Bp4BjjU20C7AXOAIPAlmZlVpJUnDz/7bkhvk4BLwW+AGwH3gk8B9wP3AMsA/YAm4ADwK3A\nKuBhYANwJXNMxyHMkeMQyj+231m1WjuMQzhPCAYA/w18mfBDv40w3zLxfXtc7gEOApcI8y2fBTY3\nJ7uSpKI02qm8BrgFOAEsB4bj+uH4GWAlMJTZZ4gQQCRJbayRTuWXAp8B7gZGaraNUr+end0+QV9f\n39XlJElIkqSBrEhS9aVpSpqmpZ0vb1vUtcDfAX8PfDiuGwQSQpPSCkLH80ZCPwLA/vh+FNhHqFWM\nsQ9hjuxDsA9BC0879CF0AB8DBhgPBgBHgN643AsczqzfCSwG1gLrgZPNyKwkqTh5Is3rgH8CvsT4\nf532En7kDwE3ETqPdwDfjtvvBd5FuKn7buBzNce0hjBH1hCsIWjhKbqG4OOv5ykDggFBC087NBlJ\nkhYAA0Kbc2Y0SWXxWUZtbmTkeaZu7pCk5rGGIEkCDAiSpMiAIEkCDAhSTk6co+qzU1nKxYlzVH3W\nECRJgAFBmiObklQdNhlJc2JTkqrDGoIkCTAgSJIiA4IkCTAgtA0fYiep1exUbhM+xE5Sq+WpIXwc\nGAaeyKzrBo4Dp4FjwNLMtr3AGcKcy1uak01JUtHyBIRPAFtr1u0hBIQNwCPxM8Am4M74vhV4IOc5\nJEktlufH+p+B52vWbQP643I/sD0u9wAHgUuEeZbPApvnnEtJUuFm+7/35YRmJOL78ri8EhjKpBsC\nVs3yHJKkEjWjU3mU+r2h2e2T9PX1XV1OkoQkSZqQFUmqjjRNSdO0tPPlvYVlDfAQ8GPx8yCQAOeB\nFcCjwEbG+xL2x/ejwD7gRM3xRkdHp4shC0+4xXSqu4zmun6+HrsV52zesf2Oq9nireiF3Xo42yaj\nI0BvXO4FDmfW7wQWA2uB9cDJuWRQklSOPE1GB4E3ANcDXwN+l1ADOATsInQe74hpB+L6AcJTv3Yz\nfXOSVFGdkwYWLlmyjIsXL7QoP9LMWjXqySajGjYZtcs5iz2233vNRbs2GUmSKsaA0AL1nlskSa3m\ns4xaoP5ziwwKklrLGoIkCTAgSJIiA4IkCTAgFMpJbzRRZ93vQ1dXd6szJgGOQyhUY2ML5u+99Y5D\nmOuxryWM45zIgWyqVfQ4BO8yklruMvUCxciItUmVyyYjSRJgQJAkRQYESRJgQJDamHclqVwGBKlt\njXU2T3yNjIwYJFQI7zKS5p3JdyV5R5KaoagawlbCNJtngHsKOkfbcACaWs/mJc1dEQFhEfARQlDY\nBLwdeGUB52kb408vHXs9SrUniktbnYGCpa3OwCzkb16qcqAoc0L6KioiIGwGzhKm1rwE/CXQU8B5\nSpe/JpCWnbWSpa3OQMHSVmegiWoDxT6mCxQdHYvndQAxIMxNEQFhFWHu5TFDcd28N7kmMPaS5pv6\nNYrwfzg7sheqIgJC4b+QV65cmeJ/Nx3cccfPN+UczmomZU0OII02R01Vw66XvpG0ap4ifuVeC/QR\n+hAA9gJXgPsyac4C6wo4tyRV2Tng5lZnohGdhEyvARYDp6h4p7IkaWpvBv6DUBPY2+K8SJIkSSpa\nnoFnfxK3Pw7ckmPfPwS+HNP/DfCyzLa9Mf0gsGXu2Z9RmeVbA3wXeCy+HmhGAWZQRPl+P6Y9BTwC\n3JjZVoXrN1X51lDu9SuibGN+k9Dfl+25rcK1G1NbvjVU42+vj3A351g53pzZVvj1W0RoClpDmOqp\nXh/B7cBn4/JrgH/Lse+bGL/raX98QRjcdiqmXxP3L/IZTGWXbw3wRPOyP6Oiyrcks/9dwEfjclWu\n31TlW0N516+oskEIcEeB/2L8B7Mq1w7ql28N1fjb2wf8Rp3zNXz9ZnNx8ww82wb0x+UTwFLghhn2\nPU6I3mP7rI7LPcDBmP7puP/mWeQ7r7LLV7aiyjeS2f+lwHNxuSrXb6rylamosgH8EfDemmNV5dpB\n/fKVrcjy1btjtOHrN5uAkGfg2VRpVubYF+BdjEfJlTHdTPs0S9nlA1hLqOqlwOtmk+kGFFm+9wNf\nBd4BfCCuq9L1GytfL+M1PCjv+hVVtp74+Us1x6rKtZuqfFCdv727CE1MHyMEEZjF9ZtNQMg78Gy2\nYxzeB3wPONCEPMxG2eX7OqE6ewuh2neAic0TzVZk+d4H3AR8AvhwE/IwG2WU7y+AD8V1ZV6/Isr2\nYuBeQrNDnv3n27WbrnxV+dv7U0JgexXwDeCDs83DbB5//QwTOwxvZGIUqpdmdUxz7Qz7voPQhvYz\nMxzrmVnkO6+yy/e9+AL4ImEMx/q4XIQiyzfmAOM1oCpdvzHZ8pV5/Yoo2zpC+/LjmfRfILRfV+Ha\nTVW+zcCzVONv79nM+o8CD01zrKZfvzwDz7IdI69lvGNkun23Ak8B19cca6xjZDEhCp6jmBHWY8ou\n3/WEDiOAVxAu8lKKU1T51mf2vwt4MC5X5fpNVb4yr19RZcuq16k8369dVrZ8VfnbW5HZ/9cZb30o\n7frVG3j2y/E15iNx++PAq2fYF8KtUV+h/i1g98b0g8DPNqsQ0yizfG8DnozrvgD8XBPLMZUiyvdp\nwh0bp4DPAC/PbKvC9ZuqfG+l3OtXRNmy/pOJt51W4dplZctX9rWDYsr3SUL/yOPAYWB5ZlvZ10+S\nJEmSJEmSJEmSJEmSJEmSJEmStJD8PzxAIwQKcNCwAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1028,7 +1028,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1039,7 +1039,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1090,7 +1090,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/settings.xml b/docs/source/pythonapi/examples/settings.xml new file mode 100644 index 000000000..26a23e942 --- /dev/null +++ b/docs/source/pythonapi/examples/settings.xml @@ -0,0 +1,21 @@ + + + + 2500 + 20 + 5 + + + + -10.71 -10.71 -10 10.71 10.71 10.0 + + + + false + true + + + true + 200 + + diff --git a/docs/source/pythonapi/examples/tallies.xml b/docs/source/pythonapi/examples/tallies.xml new file mode 100644 index 000000000..61873a91d --- /dev/null +++ b/docs/source/pythonapi/examples/tallies.xml @@ -0,0 +1,23 @@ + + + + 17 17 + -10.71 -10.71 + 1.26 1.26 + + + + + fission nu-fission + + + + U-235 U-238 + scatter-y2 + + + + absorption scatter + + + diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index ca8b84245..f3f2c52f1 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -369,7 +369,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\nMTUtMTAtMDNUMDA6MjQ6NTQtMDQ6MDDJTGA9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAwOjI0OjU0LTA0OjAwuBHYgQAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMDE6MDM6MjktMDQ6MDDFeHPZAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAxOjAzOjI5LTA0OjAwtCXLZQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -580,7 +580,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 00:24:54\n", + " Date/Time: 2015-10-03 01:03:29\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -636,20 +636,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 7.0100E-01 seconds\n", - " Reading cross sections = 1.5800E-01 seconds\n", - " Total time in simulation = 2.0485E+01 seconds\n", - " Time in transport only = 2.0465E+01 seconds\n", - " Time in inactive batches = 3.0920E+00 seconds\n", - " Time in active batches = 1.7393E+01 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", + " Total time for initialization = 4.1300E-01 seconds\n", + " Reading cross sections = 9.0000E-02 seconds\n", + " Total time in simulation = 2.1398E+01 seconds\n", + " Time in transport only = 2.1378E+01 seconds\n", + " Time in inactive batches = 2.0260E+00 seconds\n", + " Time in active batches = 1.9372E+01 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling 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.1200E+01 seconds\n", - " Calculation Rate (inactive) = 4042.69 neutrons/second\n", - " Calculation Rate (active) = 2156.04 neutrons/second\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 3.0000E-03 seconds\n", + " Total time elapsed = 2.1823E+01 seconds\n", + " Calculation Rate (inactive) = 6169.79 neutrons/second\n", + " Calculation Rate (active) = 1935.78 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -721,7 +721,20 @@ "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "ename": "KeyError", + "evalue": "10003", + "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 summary file and link with statepoint\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0msu\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSummary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'summary.h5'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0msp\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[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.0-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 610\u001b[0m \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[0;32m 611\u001b[0m \u001b[1;31m# Get the Tally name from the summary file\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 612\u001b[1;33m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\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[0mname\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 613\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwith_summary\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 614\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mKeyError\u001b[0m: 10003" + ] + } + ], "source": [ "# Load the summary file and link with statepoint\n", "su = Summary('summary.h5')\n", @@ -739,47 +752,11 @@ }, { "cell_type": "code", - "execution_count": 26, + "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", - "
nuclidescoremeanstd. dev.
0total(nu-fission / absorption)1.0463530.00935
\n", - "
" - ], - "text/plain": [ - " nuclide score mean std. dev.\n", - "0 total (nu-fission / absorption) 1.046353 0.00935" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Compute k-infinity using tally arithmetic\n", "fiss_rate = sp.get_tally(name='fiss. rate')\n", @@ -799,49 +776,11 @@ }, { "cell_type": "code", - "execution_count": 27, + "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", - "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)totalabsorption0.958730.00774
\n", - "
" - ], - "text/plain": [ - " energy [MeV] nuclide score mean std. dev.\n", - "0 (0.0e+00 - 6.2e-01) total absorption 0.95873 0.00774" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Compute resonance escape probability using tally arithmetic\n", "therm_abs_rate = sp.get_tally(name='therm. abs. rate')\n", @@ -859,47 +798,11 @@ }, { "cell_type": "code", - "execution_count": 28, + "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", - "
nuclidescoremeanstd. dev.
0totalnu-fission1.0916220.011163
\n", - "
" - ], - "text/plain": [ - " nuclide score mean std. dev.\n", - "0 total nu-fission 1.091622 0.011163" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Compute fast fission factor factor using tally arithmetic\n", "therm_fiss_rate = sp.get_tally(name='therm. fiss. rate')\n", @@ -918,51 +821,11 @@ }, { "cell_type": "code", - "execution_count": 29, + "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", - "
energy [MeV]cellnuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)10000totalabsorption0.8020120.006609
\n", - "
" - ], - "text/plain": [ - " energy [MeV] cell nuclide score mean std. dev.\n", - "0 (0.0e+00 - 6.2e-01) 10000 total absorption 0.802012 0.006609" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Compute thermal flux utilization factor using tally arithmetic\n", "fuel_therm_abs_rate = sp.get_tally(name='fuel therm. abs. rate')\n", @@ -979,49 +842,11 @@ }, { "cell_type": "code", - "execution_count": 30, + "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", - "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)total(nu-fission / absorption)1.2466040.011825
\n", - "
" - ], - "text/plain": [ - " energy [MeV] nuclide score mean std. dev.\n", - "0 (0.0e+00 - 6.2e-01) total (nu-fission / absorption) 1.246604 0.011825" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Compute neutrons produced per absorption (eta) using tally arithmetic\n", "eta = therm_fiss_rate / fuel_therm_abs_rate\n", @@ -1037,52 +862,11 @@ }, { "cell_type": "code", - "execution_count": 31, + "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", - "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)total(((absorption * nu-fission) * absorption) * (n...1.0463530.01894
\n", - "
" - ], - "text/plain": [ - " energy [MeV] nuclide \\\n", - "0 (0.0e+00 - 6.2e-01) total \n", - "\n", - " score mean std. dev. \n", - "0 (((absorption * nu-fission) * absorption) * (n... 1.046353 0.01894 " - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "keff = res_esc * fast_fiss * therm_util * eta\n", "keff.get_pandas_dataframe()" @@ -1099,7 +883,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true @@ -1115,131 +899,11 @@ }, { "cell_type": "code", - "execution_count": 33, + "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellenergy [MeV]nuclidescoremeanstd. dev.
010000(0.0e+00 - 6.3e-07)(U-238 / total)(nu-fission / flux)6.641746e-076.859257e-09
110000(0.0e+00 - 6.3e-07)(U-238 / total)(scatter / flux)2.099861e-011.966887e-03
210000(0.0e+00 - 6.3e-07)(U-235 / total)(nu-fission / flux)3.556665e-013.717881e-03
310000(0.0e+00 - 6.3e-07)(U-235 / total)(scatter / flux)5.554650e-035.218094e-05
410000(6.3e-07 - 2.0e+01)(U-238 / total)(nu-fission / flux)7.165057e-035.625590e-05
510000(6.3e-07 - 2.0e+01)(U-238 / total)(scatter / flux)2.276535e-018.544314e-04
610000(6.3e-07 - 2.0e+01)(U-235 / total)(nu-fission / flux)8.089493e-035.080374e-05
710000(6.3e-07 - 2.0e+01)(U-235 / total)(scatter / flux)3.370111e-031.361116e-05
\n", - "
" - ], - "text/plain": [ - " cell energy [MeV] nuclide score \\\n", - "0 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (nu-fission / flux) \n", - "1 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (scatter / flux) \n", - "2 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (nu-fission / flux) \n", - "3 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (scatter / flux) \n", - "4 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (nu-fission / flux) \n", - "5 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (scatter / flux) \n", - "6 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (nu-fission / flux) \n", - "7 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (scatter / flux) \n", - "\n", - " mean std. dev. \n", - "0 6.641746e-07 6.859257e-09 \n", - "1 2.099861e-01 1.966887e-03 \n", - "2 3.556665e-01 3.717881e-03 \n", - "3 5.554650e-03 5.218094e-05 \n", - "4 7.165057e-03 5.625590e-05 \n", - "5 2.276535e-01 8.544314e-04 \n", - "6 8.089493e-03 5.080374e-05 \n", - "7 3.370111e-03 1.361116e-05 " - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "fuel_xs = fuel_rxn_rates / flux\n", "fuel_xs.get_pandas_dataframe()" @@ -1254,23 +918,11 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[ 6.64174599e-07]\n", - " [ 3.55666541e-01]]\n", - "\n", - " [[ 7.16505734e-03]\n", - " [ 8.08949336e-03]]]\n" - ] - } - ], + "outputs": [], "source": [ "# Show how to use Tally.get_values(...) with a CrossScore\n", "nu_fiss_xs = fuel_xs.get_values(scores=['(nu-fission / flux)'])\n", @@ -1286,21 +938,11 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[ 0.00555465]]\n", - "\n", - " [[ 0.00337011]]]\n" - ] - } - ], + "outputs": [], "source": [ "# Show how to use Tally.get_values(...) with a CrossScore and CrossNuclide\n", "u235_scatter_xs = fuel_xs.get_values(nuclides=['(U-235 / total)'], \n", @@ -1310,20 +952,11 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[ 0.22765348]\n", - " [ 0.00337011]]]\n" - ] - } - ], + "outputs": [], "source": [ "# Show how to use Tally.get_values(...) with a CrossFilter and CrossScore\n", "fast_scatter_xs = fuel_xs.get_values(filters=['energy'], \n", @@ -1341,81 +974,11 @@ }, { "cell_type": "code", - "execution_count": 37, + "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", - "
cellenergy [MeV]nuclidescoremeanstd. dev.
010000(0.0e+00 - 6.3e-07)U-238nu-fission0.0000021.284890e-08
110000(0.0e+00 - 6.3e-07)U-235nu-fission0.8679827.022256e-03
210000(6.3e-07 - 2.0e+01)U-238nu-fission0.0828016.087096e-04
310000(6.3e-07 - 2.0e+01)U-235nu-fission0.0934845.275039e-04
\n", - "
" - ], - "text/plain": [ - " cell energy [MeV] nuclide score mean std. dev.\n", - "0 10000 (0.0e+00 - 6.3e-07) U-238 nu-fission 0.000002 1.284890e-08\n", - "1 10000 (0.0e+00 - 6.3e-07) U-235 nu-fission 0.867982 7.022256e-03\n", - "2 10000 (6.3e-07 - 2.0e+01) U-238 nu-fission 0.082801 6.087096e-04\n", - "3 10000 (6.3e-07 - 2.0e+01) U-235 nu-fission 0.093484 5.275039e-04" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# \"Slice\" the nu-fission data into a new derived Tally\n", "nu_fission_rates = fuel_rxn_rates.get_slice(scores=['nu-fission'])\n", @@ -1424,131 +987,11 @@ }, { "cell_type": "code", - "execution_count": 38, + "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellenergy [MeV]nuclidescoremeanstd. dev.
010002(1.0e-08 - 1.1e-07)H-1scatter4.6205250.038249
110002(1.1e-07 - 1.2e-06)H-1scatter2.0368410.013203
210002(1.2e-06 - 1.3e-05)H-1scatter1.6599160.010107
310002(1.3e-05 - 1.4e-04)H-1scatter1.8615460.013328
410002(1.4e-04 - 1.5e-03)H-1scatter2.0496640.008215
510002(1.5e-03 - 1.6e-02)H-1scatter2.1621570.010245
610002(1.6e-02 - 1.7e-01)H-1scatter2.2244960.013796
710002(1.7e-01 - 1.9e+00)H-1scatter1.9975850.009161
810002(1.9e+00 - 2.0e+01)H-1scatter0.3734720.003922
\n", - "
" - ], - "text/plain": [ - " cell energy [MeV] nuclide score mean std. dev.\n", - "0 10002 (1.0e-08 - 1.1e-07) H-1 scatter 4.620525 0.038249\n", - "1 10002 (1.1e-07 - 1.2e-06) H-1 scatter 2.036841 0.013203\n", - "2 10002 (1.2e-06 - 1.3e-05) H-1 scatter 1.659916 0.010107\n", - "3 10002 (1.3e-05 - 1.4e-04) H-1 scatter 1.861546 0.013328\n", - "4 10002 (1.4e-04 - 1.5e-03) H-1 scatter 2.049664 0.008215\n", - "5 10002 (1.5e-03 - 1.6e-02) H-1 scatter 2.162157 0.010245\n", - "6 10002 (1.6e-02 - 1.7e-01) H-1 scatter 2.224496 0.013796\n", - "7 10002 (1.7e-01 - 1.9e+00) H-1 scatter 1.997585 0.009161\n", - "8 10002 (1.9e+00 - 2.0e+01) H-1 scatter 0.373472 0.003922" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# \"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", diff --git a/openmc/tallies.py b/openmc/tallies.py index 50afe6072..63ba4df07 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1612,26 +1612,23 @@ class Tally(object): if self.filters != other.filters: - self_shape = list(self.mean.shape) - other_shape = list(other.mean.shape) - - # FIXME: # Determine the number of paired combinations of filter bins # between the two tallies and repeat arrays along filter axes diff1 = list(set(self.filters).difference(set(other.filters))) diff2 = list(set(other.filters).difference(set(self.filters))) - # + # Determine the factors by which each tally operands' data arrays + # must be tiled or repeated for the tally outer product other_tile_factor = 1 self_repeat_factor = 1 - - # for filter in diff1: other_tile_factor *= filter.num_bins for filter in diff2: self_repeat_factor *= filter.num_bins - # Replicate the data + # Tile / repeat the tally data for the tally outer product + self_shape = list(self.mean.shape) + other_shape = list(other.mean.shape) self_shape[0] *= self_repeat_factor self_mean = np.repeat(self_mean, self_repeat_factor) self_std_dev = np.repeat(self_std_dev, self_repeat_factor) @@ -1644,6 +1641,8 @@ class Tally(object): other_mean = np.tile(other_mean, (other_tile_factor, 1, 1)) other_std_dev = np.tile(other_std_dev, (other_tile_factor, 1, 1)) + # NumPy repeat and tile routines return 1D flattened arrays + # Reshape arrays as 3D with filters, nuclides and scores axes self_mean.shape = tuple(self_shape) self_std_dev.shape = tuple(self_shape) other_mean.shape = tuple(other_shape) @@ -1656,14 +1655,15 @@ class Tally(object): self_repeat_factor = other.num_nuclides other_tile_factor = self.num_nuclides - self_shape = list(self.mean.shape) - # Replicate the data self_mean = np.repeat(self_mean, self_repeat_factor, axis=1) other_mean = np.tile(other_mean, (1, other_tile_factor, 1)) self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=1) other_std_dev = np.tile(other_std_dev, (1, other_tile_factor, 1)) + # NumPy repeat and tile routines return 1D flattened arrays + # Reshape arrays as 3D with filters, nuclides and scores axes + self_shape = list(self.mean.shape) self_shape[1] *= self_repeat_factor self_mean.shape = tuple(self_shape) self_std_dev.shape = tuple(self_shape) @@ -1675,14 +1675,15 @@ class Tally(object): self_repeat_factor = other.num_score_bins other_tile_factor = self.num_score_bins - self_shape = list(self.mean.shape) - # Replicate the data self_mean = np.repeat(self_mean, self_repeat_factor, axis=2) other_mean = np.tile(other_mean, (1, 1, other_tile_factor)) self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=2) other_std_dev = np.tile(other_std_dev, (1, 1, other_tile_factor)) + # NumPy repeat and tile routines return 1D flattened arrays + # Reshape arrays as 3D with filters, nuclides and scores axes + self_shape = list(self.mean.shape) self_shape[2] *= self_repeat_factor self_mean.shape = tuple(self_shape) self_std_dev.shape = tuple(self_shape) @@ -1697,11 +1698,31 @@ class Tally(object): return data def swap_filters(self, filter1, filter2): - """ + """Reverse the ordering of two filters in this tally + + This is a helper routine for tally arithmetic which helps align the data + in two tallies with shared filters. This routine copies this tally and + reverses the order of the two filters. + + Parameters + ---------- + filter1 : Filter + The filter to swap with filter2 + + filter2 : Filter + The filter to swap with filter1 + + Returns + ------- + swap_tally + A copy of this tally with the filters swapped + + Raises + ------ + ValueError + If this is a derived tally or this method is called before the tally + is populated with data by the StatePoint.read_results() method. - :param filter1: - :param filter2: - :return: """ # Check that results have been read @@ -1739,6 +1760,7 @@ class Tally(object): filter.stride = stride stride *= filter.num_bins + # Construct lists of tuples for the bins in each of the two filters filters = [filter1.type, filter2.type] if filter1.type == 'distribcell': filter1_bins = np.arange(filter.num_bins) @@ -1750,6 +1772,7 @@ class Tally(object): else: filter2_bins = [filter2.get_bin(i) for i in range(filter2.num_bins)] + # Adjust the sum data array to relect the new filter order if self.sum is not None: for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): filter_bins = [(bin1,), (bin2,)] @@ -1758,6 +1781,7 @@ class Tally(object): indices = swap_tally.get_filter_indices(filters, filter_bins) swap_tally.sum[indices, :, :] = data + # Adjust the sum_sq data array to relect the new filter order if self.sum_sq is not None: for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): filter_bins = [(bin1,), (bin2,)] @@ -1766,7 +1790,8 @@ class Tally(object): indices = swap_tally.get_filter_indices(filters, filter_bins) swap_tally.sum_sq[indices, :, :] = data - if self.sum is not None: + # Adjust the mean data array to relect the new filter order + if self.mean is not None: for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): filter_bins = [(bin1,), (bin2,)] data = self.get_values(filters=filters, @@ -1774,7 +1799,8 @@ class Tally(object): indices = swap_tally.get_filter_indices(filters, filter_bins) swap_tally._mean[indices, :, :] = data - if self.sum is not None: + # Adjust the std_dev data array to relect the new filter order + if self.std_dev is not None: for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): filter_bins = [(bin1,), (bin2,)] data = self.get_values(filters=filters, From 5ee352bc95e1dfead88cfbd3aafa5a0cc0d580af Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 01:05:14 -0400 Subject: [PATCH 73/91] Removed IPython Notebook example XML files --- docs/source/pythonapi/examples/geometry.xml | 38 ------------------ .../pythonapi/examples/materials-xy.png | Bin 1271 -> 0 bytes docs/source/pythonapi/examples/materials.xml | 20 --------- docs/source/pythonapi/examples/plots.xml | 8 ---- docs/source/pythonapi/examples/settings.xml | 21 ---------- docs/source/pythonapi/examples/tallies.xml | 23 ----------- 6 files changed, 110 deletions(-) delete mode 100644 docs/source/pythonapi/examples/geometry.xml delete mode 100644 docs/source/pythonapi/examples/materials-xy.png delete mode 100644 docs/source/pythonapi/examples/materials.xml delete mode 100644 docs/source/pythonapi/examples/plots.xml delete mode 100644 docs/source/pythonapi/examples/settings.xml delete mode 100644 docs/source/pythonapi/examples/tallies.xml diff --git a/docs/source/pythonapi/examples/geometry.xml b/docs/source/pythonapi/examples/geometry.xml deleted file mode 100644 index 8e9f1ef3d..000000000 --- a/docs/source/pythonapi/examples/geometry.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - 1.26 1.26 - 17 17 - -10.71 -10.71 - -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 - - - - - - - - - - diff --git a/docs/source/pythonapi/examples/materials-xy.png b/docs/source/pythonapi/examples/materials-xy.png deleted file mode 100644 index f4c31899516ea2a3f585861e65394dfd9bb9ba56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1271 zcmZ{jeN>Wn6vrPkJ7<=2={b=rqn489Of1U{1V#q}n*te4O4EEPU#Fg=BWn66nP%lQ z%d*gHT2}KUW3DVJX}+YDNot18hAAswP|-jI8;Sf3UDR*%Wz7LnSW-JU%%UB(!SR4hvzM^s*rhoir@GmO$*Ml{ z&2`TtWgqezYj0L}E4GHFu?t`QejA+>(5Q&uhIWHIyU;(Fv!AA#GLhebv>9u3daQKG zb9~sF+RY9j@Y8EF_x?+z;(~_UKFjm?-8HYC2%~MMR^QDrIg-^SYDCb<2Ncs)RkL3O zSQBH`WvP_us5ZgX?*ZVP4RiJYrJRJwLy_^-!wOwca=T{Hd+vlWUX;*VhSpV|3tN>c z1@Zp#CNIfpF6gtU_(P|11LhRd==}?5ou(ksykgT8G^$_5Aq3|H ze*F-nHFES8d=?7ni>Wa39jG)|im0GP zhkr4T?;hd)Eixdh%&7fQV05(Lj)G+m!Hz*i3wmmb*7|QQ;w1#0Hvnf44t`I7psfr3V?_BvpDY{UPKXSagSMB!Vr3NxNozK# zY>d*zxPS*V#}2r?QjxEOYetk&%BudEQKTRT4Uv~zL^IRP(g8T;FPd0K`*~g(`RT+0 zJc_iez7JOR!!hcr!g0mXT0j`G;O@ew)$mVbxXB6*EyLfXuIR?T-BrjG2%{r}2T4(f z4`KpsCVFr6^d@=|xA2MHB;pp54>tRdh{W^7w4(n2KPE@V9ZLUyV5FzO8v`JJCWleK H{ebu%i<^#J diff --git a/docs/source/pythonapi/examples/materials.xml b/docs/source/pythonapi/examples/materials.xml deleted file mode 100644 index 42c2e5029..000000000 --- a/docs/source/pythonapi/examples/materials.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - 71c - - - - - - - - - - - - - - - - - diff --git a/docs/source/pythonapi/examples/plots.xml b/docs/source/pythonapi/examples/plots.xml deleted file mode 100644 index 512070a33..000000000 --- a/docs/source/pythonapi/examples/plots.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - 0 0 0 - 21.5 21.5 - 250 250 - - diff --git a/docs/source/pythonapi/examples/settings.xml b/docs/source/pythonapi/examples/settings.xml deleted file mode 100644 index 26a23e942..000000000 --- a/docs/source/pythonapi/examples/settings.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - 2500 - 20 - 5 - - - - -10.71 -10.71 -10 10.71 10.71 10.0 - - - - false - true - - - true - 200 - - diff --git a/docs/source/pythonapi/examples/tallies.xml b/docs/source/pythonapi/examples/tallies.xml deleted file mode 100644 index 61873a91d..000000000 --- a/docs/source/pythonapi/examples/tallies.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - 17 17 - -10.71 -10.71 - 1.26 1.26 - - - - - fission nu-fission - - - - U-235 U-238 - scatter-y2 - - - - absorption scatter - - - From dd50063e87cb19dbba6d0e82739e566386f3c853 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 01:08:37 -0400 Subject: [PATCH 74/91] Removed unused Tally.tile_filter(...) routine --- .../examples/pandas-dataframes.ipynb | 1424 +---------------- .../pythonapi/examples/post-processing.ipynb | 368 +---- openmc/tallies.py | 75 +- 3 files changed, 93 insertions(+), 1774 deletions(-) diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index f84e9ec1a..2267703c4 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -385,7 +385,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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDAwOjQ2\nOjE5LTA0OjAwwJEVeQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QwMDo0NjoxOS0wNDow\nMLHMrcUAAAAASUVORK5CYII=\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDAxOjAz\nOjQwLTA0OjAwlo8/jQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QwMTowMzo0MC0wNDow\nMOfShzEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -558,6 +558,7 @@ "name": "stdout", "output_type": "stream", "text": [ + "rm: cannot remove ‘statepoint.*’: No such file or directory\n", "\n", " .d88888b. 888b d888 .d8888b.\n", " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", @@ -575,7 +576,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 00:46:19\n", + " Date/Time: 2015-10-03 01:03:41\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -643,20 +644,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.9600E-01 seconds\n", - " Reading cross sections = 9.0000E-02 seconds\n", - " Total time in simulation = 1.2458E+01 seconds\n", - " Time in transport only = 1.2445E+01 seconds\n", - " Time in inactive batches = 1.2760E+00 seconds\n", - " Time in active batches = 1.1182E+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 initialization = 7.5300E-01 seconds\n", + " Reading cross sections = 1.6900E-01 seconds\n", + " Total time in simulation = 2.0057E+01 seconds\n", + " Time in transport only = 1.9977E+01 seconds\n", + " Time in inactive batches = 2.1180E+00 seconds\n", + " Time in active batches = 1.7939E+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 = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.2865E+01 seconds\n", - " Calculation Rate (inactive) = 9796.24 neutrons/second\n", - " Calculation Rate (active) = 3353.60 neutrons/second\n", + " Total time elapsed = 2.0825E+01 seconds\n", + " Calculation Rate (inactive) = 5901.79 neutrons/second\n", + " Calculation Rate (active) = 2090.42 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -717,7 +718,20 @@ "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "ename": "KeyError", + "evalue": "10003", + "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 summary file and link with statepoint\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0msu\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSummary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'summary.h5'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0msp\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[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.0-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 610\u001b[0m \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[0;32m 611\u001b[0m \u001b[1;31m# Get the Tally name from the summary file\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 612\u001b[1;33m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\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[0mname\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 613\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwith_summary\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 614\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mKeyError\u001b[0m: 10003" + ] + } + ], "source": [ "# Load the summary file and link with statepoint\n", "su = Summary('summary.h5')\n", @@ -733,28 +747,11 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Tally\n", - "\tID =\t10000\n", - "\tName =\tmesh tally\n", - "\tFilters =\t\n", - " \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", - "\tEstimator =\ttracklength\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "# Find the mesh tally with the StatePoint API\n", "tally = sp.get_tally(name='mesh tally')\n", @@ -772,25 +769,11 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[ 0.1127471 ]]\n", - "\n", - " [[ 0.06599162]]\n", - "\n", - " [[ 0.25310075]]\n", - "\n", - " [[ 0.10150973]]]\n" - ] - } - ], + "outputs": [], "source": [ "# Get the relative error for the thermal fission reaction \n", "# rates in the four corner pins \n", @@ -802,271 +785,11 @@ }, { "cell_type": "code", - "execution_count": 25, + "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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 1energy [MeV]scoremeanstd. dev.
xyz
0111(0.0e+00 - 6.3e-07)fission0.0002240.000025
1111(0.0e+00 - 6.3e-07)nu-fission0.0005460.000062
2111(6.3e-07 - 2.0e+01)fission0.0000710.000004
3111(6.3e-07 - 2.0e+01)nu-fission0.0001870.000010
4121(0.0e+00 - 6.3e-07)fission0.0003920.000045
5121(0.0e+00 - 6.3e-07)nu-fission0.0009550.000110
6121(6.3e-07 - 2.0e+01)fission0.0000960.000005
7121(6.3e-07 - 2.0e+01)nu-fission0.0002520.000014
8131(0.0e+00 - 6.3e-07)fission0.0005510.000053
9131(0.0e+00 - 6.3e-07)nu-fission0.0013430.000130
10131(6.3e-07 - 2.0e+01)fission0.0001310.000008
11131(6.3e-07 - 2.0e+01)nu-fission0.0003430.000019
12141(0.0e+00 - 6.3e-07)fission0.0006880.000063
13141(0.0e+00 - 6.3e-07)nu-fission0.0016760.000153
14141(6.3e-07 - 2.0e+01)fission0.0001510.000007
15141(6.3e-07 - 2.0e+01)nu-fission0.0003950.000019
16151(0.0e+00 - 6.3e-07)fission0.0007850.000065
17151(0.0e+00 - 6.3e-07)nu-fission0.0019140.000158
18151(6.3e-07 - 2.0e+01)fission0.0001870.000008
19151(6.3e-07 - 2.0e+01)nu-fission0.0004870.000019
\n", - "
" - ], - "text/plain": [ - " mesh 1 energy [MeV] score mean std. dev.\n", - " x y z \n", - "0 1 1 1 (0.0e+00 - 6.3e-07) fission 0.000224 0.000025\n", - "1 1 1 1 (0.0e+00 - 6.3e-07) nu-fission 0.000546 0.000062\n", - "2 1 1 1 (6.3e-07 - 2.0e+01) fission 0.000071 0.000004\n", - "3 1 1 1 (6.3e-07 - 2.0e+01) nu-fission 0.000187 0.000010\n", - "4 1 2 1 (0.0e+00 - 6.3e-07) fission 0.000392 0.000045\n", - "5 1 2 1 (0.0e+00 - 6.3e-07) nu-fission 0.000955 0.000110\n", - "6 1 2 1 (6.3e-07 - 2.0e+01) fission 0.000096 0.000005\n", - "7 1 2 1 (6.3e-07 - 2.0e+01) nu-fission 0.000252 0.000014\n", - "8 1 3 1 (0.0e+00 - 6.3e-07) fission 0.000551 0.000053\n", - "9 1 3 1 (0.0e+00 - 6.3e-07) nu-fission 0.001343 0.000130\n", - "10 1 3 1 (6.3e-07 - 2.0e+01) fission 0.000131 0.000008\n", - "11 1 3 1 (6.3e-07 - 2.0e+01) nu-fission 0.000343 0.000019\n", - "12 1 4 1 (0.0e+00 - 6.3e-07) fission 0.000688 0.000063\n", - "13 1 4 1 (0.0e+00 - 6.3e-07) nu-fission 0.001676 0.000153\n", - "14 1 4 1 (6.3e-07 - 2.0e+01) fission 0.000151 0.000007\n", - "15 1 4 1 (6.3e-07 - 2.0e+01) nu-fission 0.000395 0.000019\n", - "16 1 5 1 (0.0e+00 - 6.3e-07) fission 0.000785 0.000065\n", - "17 1 5 1 (0.0e+00 - 6.3e-07) nu-fission 0.001914 0.000158\n", - "18 1 5 1 (6.3e-07 - 2.0e+01) fission 0.000187 0.000008\n", - "19 1 5 1 (6.3e-07 - 2.0e+01) nu-fission 0.000487 0.000019" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Get a pandas dataframe for the mesh tally data\n", "df = tally.get_pandas_dataframe(nuclides=False)\n", @@ -1077,22 +800,11 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "image/png": "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\nBPCvjMC6bD6xSh4AAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create a boxplot to view the distribution of\n", "# fission and nu-fission rates in the pins\n", @@ -1101,32 +813,11 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nefX/AdmeWI23zkQnAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Extract thermal nu-fission rates from pandas\n", "fiss = df[df['score'] == 'nu-fission']\n", @@ -1151,27 +842,11 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Tally\n", - "\tID =\t10001\n", - "\tName =\tcell tally\n", - "\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", - "\tEstimator =\tanalog\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "# Find the cell Tally with the StatePoint API\n", "tally = sp.get_tally(name='cell tally')\n", @@ -1182,202 +857,11 @@ }, { "cell_type": "code", - "execution_count": 29, + "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellnuclidescoremeanstd. dev.
010000U-235scatter-Y0,00.0383300.001119
110000U-235scatter-Y1,-10.0000080.000341
210000U-235scatter-Y1,0-0.0003420.000342
310000U-235scatter-Y1,10.0002010.000262
410000U-235scatter-Y2,-20.0001360.000152
510000U-235scatter-Y2,-10.0000420.000131
610000U-235scatter-Y2,00.0003030.000185
710000U-235scatter-Y2,1-0.0004070.000184
810000U-235scatter-Y2,2-0.0001450.000120
910000U-238scatter-Y0,02.3193220.006166
1010000U-238scatter-Y1,-1-0.0236380.001940
1110000U-238scatter-Y1,0-0.0034630.001892
1210000U-238scatter-Y1,10.0250990.002270
1310000U-238scatter-Y2,-2-0.0006170.001197
1410000U-238scatter-Y2,-10.0025490.001187
1510000U-238scatter-Y2,00.0071210.001646
1610000U-238scatter-Y2,1-0.0000580.001323
1710000U-238scatter-Y2,2-0.0022350.000867
\n", - "
" - ], - "text/plain": [ - " cell nuclide score mean std. dev.\n", - "0 10000 U-235 scatter-Y0,0 0.038330 0.001119\n", - "1 10000 U-235 scatter-Y1,-1 0.000008 0.000341\n", - "2 10000 U-235 scatter-Y1,0 -0.000342 0.000342\n", - "3 10000 U-235 scatter-Y1,1 0.000201 0.000262\n", - "4 10000 U-235 scatter-Y2,-2 0.000136 0.000152\n", - "5 10000 U-235 scatter-Y2,-1 0.000042 0.000131\n", - "6 10000 U-235 scatter-Y2,0 0.000303 0.000185\n", - "7 10000 U-235 scatter-Y2,1 -0.000407 0.000184\n", - "8 10000 U-235 scatter-Y2,2 -0.000145 0.000120\n", - "9 10000 U-238 scatter-Y0,0 2.319322 0.006166\n", - "10 10000 U-238 scatter-Y1,-1 -0.023638 0.001940\n", - "11 10000 U-238 scatter-Y1,0 -0.003463 0.001892\n", - "12 10000 U-238 scatter-Y1,1 0.025099 0.002270\n", - "13 10000 U-238 scatter-Y2,-2 -0.000617 0.001197\n", - "14 10000 U-238 scatter-Y2,-1 0.002549 0.001187\n", - "15 10000 U-238 scatter-Y2,0 0.007121 0.001646\n", - "16 10000 U-238 scatter-Y2,1 -0.000058 0.001323\n", - "17 10000 U-238 scatter-Y2,2 -0.002235 0.000867" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Get a pandas dataframe for the cell tally data\n", "df = tally.get_pandas_dataframe()\n", @@ -1395,20 +879,11 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[ 0.00086668 0.0061658 ]\n", - " [ 0.00011981 0.00111862]]]\n" - ] - } - ], + "outputs": [], "source": [ "# Get the standard deviations for two of the spherical harmonic\n", "# scattering reaction rates \n", @@ -1426,27 +901,11 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Tally\n", - "\tID =\t10002\n", - "\tName =\tdistribcell tally\n", - "\tFilters =\t\n", - " \t\tdistribcell\t[10002]\n", - "\tNuclides =\ttotal \n", - "\tScores =\t[u'absorption', u'scatter']\n", - "\tEstimator =\ttracklength\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "# Find the distribcell Tally with the StatePoint API\n", "tally = sp.get_tally(name='distribcell tally')\n", @@ -1464,19 +923,11 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[ 0.03658762]]]\n" - ] - } - ], + "outputs": [], "source": [ "# Get the relative error for the scattering reaction rates in\n", "# the first 30 distribcell instances \n", @@ -1494,199 +945,11 @@ }, { "cell_type": "code", - "execution_count": 33, + "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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.
558279absorption0.0000810.000008
559279scatter0.0131090.000358
560280absorption0.0000880.000010
561280scatter0.0143950.000586
562281absorption0.0000970.000010
563281scatter0.0146370.000427
564282absorption0.0001070.000009
565282scatter0.0156830.000552
566283absorption0.0001100.000009
567283scatter0.0162930.000627
568284absorption0.0001110.000007
569284scatter0.0170320.000445
570285absorption0.0001120.000006
571285scatter0.0176660.000425
572286absorption0.0001230.000011
573286scatter0.0177060.000597
574287absorption0.0001080.000011
575287scatter0.0173390.000664
576288absorption0.0001290.000011
577288scatter0.0184520.000523
\n", - "
" - ], - "text/plain": [ - " distribcell score mean std. dev.\n", - "558 279 absorption 0.000081 0.000008\n", - "559 279 scatter 0.013109 0.000358\n", - "560 280 absorption 0.000088 0.000010\n", - "561 280 scatter 0.014395 0.000586\n", - "562 281 absorption 0.000097 0.000010\n", - "563 281 scatter 0.014637 0.000427\n", - "564 282 absorption 0.000107 0.000009\n", - "565 282 scatter 0.015683 0.000552\n", - "566 283 absorption 0.000110 0.000009\n", - "567 283 scatter 0.016293 0.000627\n", - "568 284 absorption 0.000111 0.000007\n", - "569 284 scatter 0.017032 0.000445\n", - "570 285 absorption 0.000112 0.000006\n", - "571 285 scatter 0.017666 0.000425\n", - "572 286 absorption 0.000123 0.000011\n", - "573 286 scatter 0.017706 0.000597\n", - "574 287 absorption 0.000108 0.000011\n", - "575 287 scatter 0.017339 0.000664\n", - "576 288 absorption 0.000129 0.000011\n", - "577 288 scatter 0.018452 0.000523" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Get a pandas dataframe for the distribcell tally data\n", "df = tally.get_pandas_dataframe(nuclides=False)\n", @@ -1704,415 +967,11 @@ }, { "cell_type": "code", - "execution_count": 34, + "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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
01000301000100010002100000absorption0.0001310.000014
11000301000100010002100000scatter0.0185820.000680
21000301000110010002100001absorption0.0002200.000023
31000301000110010002100001scatter0.0287110.001186
41000301000120010002100002absorption0.0002950.000022
51000301000120010002100002scatter0.0387820.001084
61000301000130010002100003absorption0.0003310.000022
71000301000130010002100003scatter0.0457720.001084
81000301000140010002100004absorption0.0004190.000026
91000301000140010002100004scatter0.0559750.001344
101000301000150010002100005absorption0.0005140.000024
111000301000150010002100005scatter0.0632890.001605
121000301000160010002100006absorption0.0005910.000027
131000301000160010002100006scatter0.0710110.002058
141000301000170010002100007absorption0.0006710.000036
151000301000170010002100007scatter0.0778910.001952
161000301000180010002100008absorption0.0007210.000031
171000301000180010002100008scatter0.0863930.001722
181000301000190010002100009absorption0.0007480.000033
191000301000190010002100009scatter0.0908610.001669
\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 0 0 10002 10000 0 absorption \n", - "1 10003 0 10001 0 0 0 10002 10000 0 scatter \n", - "2 10003 0 10001 1 0 0 10002 10000 1 absorption \n", - "3 10003 0 10001 1 0 0 10002 10000 1 scatter \n", - "4 10003 0 10001 2 0 0 10002 10000 2 absorption \n", - "5 10003 0 10001 2 0 0 10002 10000 2 scatter \n", - "6 10003 0 10001 3 0 0 10002 10000 3 absorption \n", - "7 10003 0 10001 3 0 0 10002 10000 3 scatter \n", - "8 10003 0 10001 4 0 0 10002 10000 4 absorption \n", - "9 10003 0 10001 4 0 0 10002 10000 4 scatter \n", - "10 10003 0 10001 5 0 0 10002 10000 5 absorption \n", - "11 10003 0 10001 5 0 0 10002 10000 5 scatter \n", - "12 10003 0 10001 6 0 0 10002 10000 6 absorption \n", - "13 10003 0 10001 6 0 0 10002 10000 6 scatter \n", - "14 10003 0 10001 7 0 0 10002 10000 7 absorption \n", - "15 10003 0 10001 7 0 0 10002 10000 7 scatter \n", - "16 10003 0 10001 8 0 0 10002 10000 8 absorption \n", - "17 10003 0 10001 8 0 0 10002 10000 8 scatter \n", - "18 10003 0 10001 9 0 0 10002 10000 9 absorption \n", - "19 10003 0 10001 9 0 0 10002 10000 9 scatter \n", - "\n", - " mean std. dev. \n", - " \n", - " \n", - "0 0.000131 0.000014 \n", - "1 0.018582 0.000680 \n", - "2 0.000220 0.000023 \n", - "3 0.028711 0.001186 \n", - "4 0.000295 0.000022 \n", - "5 0.038782 0.001084 \n", - "6 0.000331 0.000022 \n", - "7 0.045772 0.001084 \n", - "8 0.000419 0.000026 \n", - "9 0.055975 0.001344 \n", - "10 0.000514 0.000024 \n", - "11 0.063289 0.001605 \n", - "12 0.000591 0.000027 \n", - "13 0.071011 0.002058 \n", - "14 0.000671 0.000036 \n", - "15 0.077891 0.001952 \n", - "16 0.000721 0.000031 \n", - "17 0.086393 0.001722 \n", - "18 0.000748 0.000033 \n", - "19 0.090861 0.001669 " - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Get a pandas dataframe for the distribcell tally data\n", "df = tally.get_pandas_dataframe(summary=su, nuclides=False)\n", @@ -2123,97 +982,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.
count289.000000289.000000
mean0.0004170.000020
std0.0002380.000008
min0.0000200.000003
25%0.0002140.000014
50%0.0003940.000019
75%0.0006270.000025
max0.0009150.000049
\n", - "
" - ], - "text/plain": [ - " mean std. dev.\n", - " \n", - " \n", - "count 289.000000 289.000000\n", - "mean 0.000417 0.000020\n", - "std 0.000238 0.000008\n", - "min 0.000020 0.000003\n", - "25% 0.000214 0.000014\n", - "50% 0.000394 0.000019\n", - "75% 0.000627 0.000025\n", - "max 0.000915 0.000049" - ] - }, - "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", @@ -2232,19 +1005,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.498462484897\n" - ] - } - ], + "outputs": [], "source": [ "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", @@ -2270,19 +1035,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: 1.61253828675e-41\n" - ] - } - ], + "outputs": [], "source": [ "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", @@ -2306,43 +1063,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 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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\norlkyRKeP3+erVp1IWCgqI78DIFVDAuLossVo41pQ4rqwy2ZmHgjbbYuFKvqVlBVI1i3bnMajRMo\nZofbaLNF+F0sBAtI4yGNR2kSSvozMzO5Zs0aLlmyxFtp9Vr1d+p0K4HV9ATQgXrU6XoQeJ6KUpuT\nJz9T+EEoTugNG7amw5FIp7Mbw8NjvUUbe/S4g6Jib87VvO+Vty8e/WFh0QS20RPstdsT+eGHH+bZ\nfvPmzbTbI+l01qfVGsYFCxbx6aefZnh4RZrN5Vi/fjMeOnTIu/2MGTNoMPhWEn6Fwp1zG1W1OgcO\nHMLGjdvSZqtB4f6qR1Ep+B1GR1fzHmfQoH9RBNQ9x9nJ6OjqHDz4Ier1U7TnXtBmEdna1buFgIF3\n331/ntldcnIyq1evR5OpEnW6kVTVBD722JMFjvfp06dpt0dSuKNI4FM6nVH866+/Cv1fpaamagH5\ntfQ013I6b+XUqVO928yf/xLNZjtVNZ7h4bHctWuX9n/0XTDxGZs06cixY59gtWpN2Lx5F37zzTdM\nSUlhixadaTCYGB5eievWrStUUyCANB6hbTwkocWQIcNpNI7TTgbrKPzkHjdOCo1Ga5FWy0yfPkOr\ntOqpwjuPN97YgyS5ePF/tF7tRyiqurbnlCkFNzM6cuQIq1Spr13lhtFqrcpu3frmWVKbkZGhXUF7\nakMdpF7vok7XjqKrYWMCbVmhQrw3nrN//35tietSAl9RUdry3nvv56pVq7h161a63W5mZmZy8uTJ\ntFq7Myf/xU293uTN5J816wXabN00N46bJtNY3nrrXdoJdixFwPlhiuCzZzx3sly52AI/d3Z2Nleu\nXMlp06YV2nHw66+/ptOZ6HMiJ53O+oW23RVFJQdTLCvvps3Q3qaiVMxTBTctLY0HDx70xnPuvXeY\nj2EkdboF7Nbt9qu+V0kCaTyk8ZCUHCdOnGB0dDXa7T1osTQh0NXnhJRJo9FapFav9933EP0bS33P\nuLi6JMVJZOLEKbTZXLRY7HzwwVFXNUgJCU1pMEzTTtxfetu65ubo0aNUlGif9/yGQGXm5FecI+Ck\n3d6aGzdu9O63fft2tmnTnbVrt+SkSc/kuxJo69atVNUqFKu1xFV2eHis94R45coVdu9+G222GNrt\nNVizZmOePHmSnTr1pEgMbEaxuEClwdCLOt0TVJQYLl/+Zp73uh6OHDmi9WPxFMg8SoslLE/9sNx8\n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\nRCKRSCSB5/8ByMyfADZGvh4AAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Extract the scatter tally data from pandas\n", "scatter = df[df['score'] == 'scatter']\n", @@ -2355,32 +1080,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", diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 7c1269c67..22e9baf09 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -353,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\nMTUtMTAtMDNUMDA6NTg6MTItMDQ6MDAd0a7wAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAwOjU4OjEyLTA0OjAwbIwWTAAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMDE6MDM6MzQtMDQ6MDBoBRKHAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAxOjAzOjM0LTA0OjAwGViqOwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -419,7 +419,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": true }, @@ -438,7 +438,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true @@ -465,7 +465,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 00:58:12\n", + " Date/Time: 2015-10-03 01:03:34\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -525,116 +525,8 @@ " 31/1 1.02685 1.03706 +/- 0.00352\n", " 32/1 1.03458 1.03695 +/- 0.00335\n", " 33/1 1.05243 1.03762 +/- 0.00328\n", - " 34/1 1.05717 1.03843 +/- 0.00324\n", - " 35/1 1.07396 1.03985 +/- 0.00342\n", - " 36/1 1.01690 1.03897 +/- 0.00340\n", - " 37/1 1.03340 1.03877 +/- 0.00328\n", - " 38/1 1.04153 1.03886 +/- 0.00316\n", - " 39/1 1.01971 1.03820 +/- 0.00312\n", - " 40/1 1.01491 1.03743 +/- 0.00311\n", - " 41/1 1.02779 1.03712 +/- 0.00303\n", - " 42/1 1.03047 1.03691 +/- 0.00294\n", - " 43/1 1.02305 1.03649 +/- 0.00288\n", - " 44/1 1.07854 1.03773 +/- 0.00305\n", - " 45/1 1.04412 1.03791 +/- 0.00297\n", - " 46/1 1.05139 1.03828 +/- 0.00291\n", - " 47/1 1.05357 1.03870 +/- 0.00286\n", - " 48/1 1.06435 1.03937 +/- 0.00287\n", - " 49/1 1.02632 1.03904 +/- 0.00281\n", - " 50/1 1.05201 1.03936 +/- 0.00276\n", - " 51/1 1.04582 1.03952 +/- 0.00270\n", - " 52/1 1.02056 1.03907 +/- 0.00267\n", - " 53/1 1.06448 1.03966 +/- 0.00267\n", - " 54/1 1.03609 1.03958 +/- 0.00261\n", - " 55/1 1.02701 1.03930 +/- 0.00257\n", - " 56/1 1.04865 1.03950 +/- 0.00252\n", - " 57/1 1.06310 1.04000 +/- 0.00252\n", - " 58/1 1.02975 1.03979 +/- 0.00247\n", - " 59/1 1.03922 1.03978 +/- 0.00242\n", - " 60/1 1.07259 1.04043 +/- 0.00246\n", - " 61/1 1.04555 1.04053 +/- 0.00242\n", - " 62/1 1.01950 1.04013 +/- 0.00240\n", - " 63/1 1.04618 1.04024 +/- 0.00236\n", - " 64/1 1.02489 1.03996 +/- 0.00233\n", - " 65/1 1.06850 1.04048 +/- 0.00235\n", - " 66/1 1.03623 1.04040 +/- 0.00231\n", - " 67/1 0.99892 1.03967 +/- 0.00238\n", - " 68/1 1.05557 1.03995 +/- 0.00236\n", - " 69/1 1.01211 1.03948 +/- 0.00236\n", - " 70/1 1.04679 1.03960 +/- 0.00233\n", - " 71/1 1.03461 1.03952 +/- 0.00229\n", - " 72/1 1.01993 1.03920 +/- 0.00227\n", - " 73/1 1.04742 1.03933 +/- 0.00224\n", - " 74/1 1.05269 1.03954 +/- 0.00222\n", - " 75/1 1.05696 1.03981 +/- 0.00220\n", - " 76/1 1.05904 1.04010 +/- 0.00218\n", - " 77/1 1.05930 1.04039 +/- 0.00217\n", - " 78/1 1.03375 1.04029 +/- 0.00214\n", - " 79/1 1.07044 1.04073 +/- 0.00215\n", - " 80/1 1.04144 1.04074 +/- 0.00212\n", - " 81/1 1.06296 1.04105 +/- 0.00212\n", - " 82/1 1.04630 1.04112 +/- 0.00209\n", - " 83/1 1.03772 1.04108 +/- 0.00206\n", - " 84/1 1.03774 1.04103 +/- 0.00203\n", - " 85/1 1.03984 1.04101 +/- 0.00200\n", - " 86/1 1.03040 1.04087 +/- 0.00198\n", - " 87/1 1.03484 1.04080 +/- 0.00196\n", - " 88/1 1.03820 1.04076 +/- 0.00193\n", - " 89/1 1.04654 1.04084 +/- 0.00191\n", - " 90/1 1.03377 1.04075 +/- 0.00189\n", - " 91/1 1.03370 1.04066 +/- 0.00187\n", - " 92/1 1.04172 1.04067 +/- 0.00184\n", - " 93/1 1.04945 1.04078 +/- 0.00182\n", - " 94/1 1.03360 1.04069 +/- 0.00181\n", - " 95/1 1.06547 1.04099 +/- 0.00181\n", - " 96/1 1.04340 1.04101 +/- 0.00179\n", - " 97/1 1.07502 1.04140 +/- 0.00181\n", - " 98/1 1.05391 1.04155 +/- 0.00179\n", - " 99/1 1.05622 1.04171 +/- 0.00178\n", - " 100/1 1.01519 1.04142 +/- 0.00179\n", - " Creating state point statepoint.100.h5...\n", - "\n", - " ===========================================================================\n", - " ======================> SIMULATION FINISHED <======================\n", - " ===========================================================================\n", - "\n", - "\n", - " =======================> TIMING STATISTICS <=======================\n", - "\n", - " Total time for initialization = 3.9800E-01 seconds\n", - " Reading cross sections = 9.2000E-02 seconds\n", - " Total time in simulation = 2.4145E+02 seconds\n", - " Time in transport only = 2.4139E+02 seconds\n", - " Time in inactive batches = 7.6900E+00 seconds\n", - " Time in active batches = 2.3376E+02 seconds\n", - " Time synchronizing fission bank = 1.2000E-02 seconds\n", - " Sampling source sites = 8.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", - " Time accumulating tallies = 3.4000E-02 seconds\n", - " Total time for finalization = 1.7000E-01 seconds\n", - " Total time elapsed = 2.4203E+02 seconds\n", - " Calculation Rate (inactive) = 6501.95 neutrons/second\n", - " Calculation Rate (active) = 1925.07 neutrons/second\n", - "\n", - " ============================> RESULTS <============================\n", - "\n", - " k-effective (Collision) = 1.04100 +/- 0.00169\n", - " k-effective (Track-length) = 1.04142 +/- 0.00179\n", - " k-effective (Absorption) = 1.04380 +/- 0.00147\n", - " Combined k-effective = 1.04287 +/- 0.00130\n", - " Leakage Fraction = 0.00000 +/- 0.00000\n", - "\n" + " 34/1 1.05717 1.03843 +/- 0.00324\n" ] - }, - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ @@ -658,7 +550,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true @@ -678,27 +570,11 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Tally\n", - "\tID =\t10000\n", - "\tName =\t\n", - "\tFilters =\t\n", - " \t\tmesh\t[10000]\n", - "\tNuclides =\ttotal \n", - "\tScores =\t[u'flux', u'fission']\n", - "\tEstimator =\ttracklength\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "tally = sp.get_tally(scores=['flux'])\n", "print(tally)" @@ -713,33 +589,11 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[[ 0.41271426, 0. ]],\n", - "\n", - " [[ 0.40846766, 0. ]],\n", - "\n", - " [[ 0.4112029 , 0. ]],\n", - "\n", - " ..., \n", - " [[ 0.41437289, 0. ]],\n", - "\n", - " [[ 0.41376468, 0. ]],\n", - "\n", - " [[ 0.41312074, 0. ]]])" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tally.sum" ] @@ -753,52 +607,11 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(10000, 1, 2)\n" - ] - }, - { - "data": { - "text/plain": [ - "(array([[[ 0.00458571, 0. ]],\n", - " \n", - " [[ 0.00453853, 0. ]],\n", - " \n", - " [[ 0.00456892, 0. ]],\n", - " \n", - " ..., \n", - " [[ 0.00460414, 0. ]],\n", - " \n", - " [[ 0.00459739, 0. ]],\n", - " \n", - " [[ 0.00459023, 0. ]]]),\n", - " array([[[ 2.02702426e-05, 0.00000000e+00]],\n", - " \n", - " [[ 1.77108625e-05, 0.00000000e+00]],\n", - " \n", - " [[ 1.79568064e-05, 0.00000000e+00]],\n", - " \n", - " ..., \n", - " [[ 1.83114148e-05, 0.00000000e+00]],\n", - " \n", - " [[ 1.69970626e-05, 0.00000000e+00]],\n", - " \n", - " [[ 1.92143217e-05, 0.00000000e+00]]]))" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "print(tally.mean.shape)\n", "(tally.mean, tally.std_dev)" @@ -813,27 +626,11 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Tally\n", - "\tID =\t10000\n", - "\tName =\t\n", - "\tFilters =\t\n", - " \t\tmesh\t[10000]\n", - "\tNuclides =\ttotal \n", - "\tScores =\t[u'flux']\n", - "\tEstimator =\ttracklength\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "flux = tally.get_slice(scores=['flux'])\n", "fission = tally.get_slice(scores=['fission'])\n", @@ -849,7 +646,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false }, @@ -863,32 +660,11 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWwAAAC4CAYAAADHR9Y0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XeMpGdi3/nvm9+qt3Ku6px78gyHE5iWcXfJ5UZ5layF\nbVkG7oCzpPNBkA1JZ8gn38FnnXynBEE6SN41ZGl1CptJLldcZnI4M+Tk6enpnLtyTm+8P1o4CJZ0\nMkyNSGnrA/QfVaiq563uH379vvU+9bwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw\nMDAwMDDw98TTwB1gCfiXH/C2DAz8TRnkeuDvHQlYBsYBBbgKHPogN2hg4G/AINcDH1ri+3juWQ6C\nvQ5YwJeBz/wNbNPAwAdpkOuBD633U9hDwNafu739Z/cNDPxdNsj1wIeW/D6e6/11D0gPpbz8TuF9\nDDEw8FeLnBimdm1b+Bt+2b8215D2IP83POzAwJ+XBvJ/Idvvp7B3gJE/d3uEg72R/09+p4D6qZ8m\n8aX/Dk3q8gntOZ5RX+BX7J9gT8iS8ErcuHg/riAwdmSZvqTRlg0aYpAfkr+Mr9PjP+/8KMF0FVXv\nUSplafbCeI5HVtmi3o5RaaUQHBdcgZBW5+OHvs7+ezne+LlXGPvffpC+6mN3dRokEDoeQsnFOF/H\nU6F1M4oaMxFED7OgMfPQbQylye3fPkHoiQrGuSbFxRy9sh+nLMPmn72xIGAAKSDDwYHziwvwO29B\n7AbiP/0PSKM2blEklikx88wtZqS7KK7Ngn2YtuSnb+v0y36a70Zo3QjRb2hMPHmXySfvYvcUstIu\nR5RbPNF7lY7o4x35DF/a/GfsuENEY0XcgMiQus0ZLjHNMhvdMX7lZxv8h3/Z5If1L+MZDgvSHC/1\nnuI39n+SmFFkOLBOqx9kuz5CxYwyPrLK074XeJpvUydMD52ep3O3OUfNi4IGmLD6rQSv/PQ8yV8V\n8cUU7J/xE/6pMkc/e43P80f86s/Xkf/1v2LRnOOofJMz0iVG7S1m86tkqgVWJ4e5ZRximRmiXpUA\nTSTB4SLnuLl8ktW35og/sofnQfm1LCcfuURossq2O8RR8RbjwjoyNkGviY8uguBRIMkvCf/6fcT3\nvz3XB2X9KPDYvRj/v8IrH9DY32vjfpBj/5u/9N73U9iXgRkOTs7sAj8I/PB/+SDXEJG+JfDjT/06\nvkCHV4THmJDXGGUTu6ewfOEwe8UhllaO4KZFlNE+/pk6q8IEWd8+T408j6kqqKJJOvkCr7c+wns3\nTrP3f47gaCrCCRf5kx3cvoJQ9tBsE9+xNuJsn/xv29hh4B8cvFPJb6IHWpi/pmMvajAuMPH9S6hj\nJgvucc5ol8iltlj/wXEeyrzGUeMmLx36KMuleYr5DPg5mDewCAwDDeAWB592GmPwM1H4/TV8wRbJ\nh/ZomQFiapkxcYMOfgq9LAv7x0nF97jff4kvaF/m7fvP863sM9x+/gSC62F1NO5eOUQ+maM2H+WC\n/gBDbJNlDynax7otU/pWjtwnN1CmLHbJ0cXHvpPDs97jJeUJQnqNz3W/Tl/zU3YSOC2Z7eo4xXYG\nZ0Gin9cQfB72D2u0hwLsMMRzfAILhVSvwKUXH6RgZQ5OtS1Cr63Av/czfOoapyPvcu7XLnFneI4S\ncS5wDo2v84jwCqaq4hfa7Fk5vl34FPaKSrRa5XDuKnGjSMor8Lr5CKaoklQKlElgV2SE6y5zJxdx\nR+HCqSRmTKFphcg3slgBjT09yxA7VNwYnidwn/QeBSH5PqL7/nM9MPBBeD+FbQP/HPg2B2fWfxtY\n+AsDBG0ESWRM2qAr6pSJ4xc6CHi0vACuJ2E7Cm1TJuYrEQ5UCIg1disjFHtZQnKT/rpG3C1x4r6r\nJAJ5fEqHzn6E4HwD/0yLGmFM1cNJQF5JIfhdookqvZRKtx+EKrAPXkLEPqNiVzWcLRlEaBeCmMM9\n5IkepXAMwW+hz3So1BKsbM9g50QE14UmB4XdB6Hgoj7QI5hs4G90KBYydFU/YlgjnKqTmdyg0o0i\nxyxcHbbtYQypjV9qc8J3laododPzM6RvkQhN4JM6CKMuiUiJSXmFYixN2+dnsTtLsxAh49tjNrHA\nrP8OqmhzrXKGxl4ULyBR0ZMk/AXaVhD6Ai3XoCJHqLgR9sU0VSVCOFZBMl18agdrRKEkpmi6QXqy\nxioTeAgUSKJh0pYMWhmDtu1DCtqoGQttxCQ5adPdC5Fv5igfi1KRouyRZZ80Rd5mxZ6mUk8S9ddw\nFYFtOUcrHiQQiNPTBKKtGlRFloqH6Osa5UyK6eBdEokrjJzexlsTqLWjKJM9quU4YsXBjQqUlxKY\njo53WKAkJOi3dJy8SqsdfB/Rff+5Hhj4ILyfwgZ4/s9+/kqRjx7HP93G84lYrorlqdiiSUsIkBcz\n9DMakt9BHe+TmdsmligimS4LS8cpVDPIGQfnFYmx3hqHp29ixDsMJXfYOaYQf2CLyANFWoX76PtE\nzJzIsjDNmLvOoY8nWTrho7UQhXeAS+DkFJwhBfwmRE2wVRp7UXy1FtFDBdb8Y+xIWYKBJgurR7he\nOk0ysYNXExD2PIS0CxKIioN+oklydpd0o0hf0LHWVYQNl7lPJwnNbrBw+xijR5bxdIEb1jHmhEWO\nqLc4mr3J12ufZbM3xlYsR0vyoep9EjMlZpLLnNSvUDsSZr0/TqWegDWJ/egQ3bjGF9TfJeWrclU7\nSzGfpahmIeYxGl1B6Llw5DG0XhvLVbgtzbHYnaXkJIgkSuSUHVJugVo2wsLGEepVg67jY6F9hHV5\nkkllhahXAQSMB2uIYp+g10TMeLi2hCmrbD8/Qd7JkJ9N0hCDdD0fqmvReOgHeL71FNWdFIlEmXiq\nhBLsYvgc/LTZ0odZLB2mvRmGZRDDHigSj2kvMzG5Qm9U46u/9QOsrU2jDPco3kwjiB7GUzWsuz76\nNT+16Qg9Radej/L25VGEyvtM7vvM9cEO+Aflgxr7e23cD3rsv+j9FvZf68inYtxn/gk53zavtp7g\nUv1BfiT5JXq6yqo4hRMUSYbzzJ+8SSkYY70ySXshTOv3Qhhyi9zPblI4lmU/n+UPd36ET0lf4ZGh\nX+f5//ETLH+tzdr/3EH7Fxnc6BDdSoC9m6NoGZvRj5zDWvLjrcuwARwDJgDRg707IHvwI8f4sRO/\nyemxd1j2TxGW6lgovMtp2hMBpGGXiK/C9eETVI0QRrSNOOPiNkTMuMrWtXHKt7Okj+/iT7fZXJik\n8fCnqQoyguRxTrhISKzwhvYwBSeF7vY4pCwQN4r4vRY9UeMwC0wpa0TjHfqGzB4JfHT5TPubPFx/\nm/xsgsXgDHfFaSxBprodge8AASAJ9AQKl3MIrof3xAyXG0VW6zMEzBa11yPUy2HMp1WkGQ+3JnHn\nFw5TWpJxtT2ajyZoz0fxT7QR51fImzlW92aJjRc4FbrKCfsaX/vjz7O0fQh3SKS34UPJmuy4OUxL\nxezq2BUdNzWJsyDj2hK3OMGaM0VFD+K+IWPdNpj4R0to6S2cwzLOhERAbpIKFHE1gTvMU5WiRD9V\nZOyKysovzeLsyTDp0joVYPr+ZYalHXRfh7v9WcpmEnoCsfkipXsd3v9f49+DY3+vjftBj/0X3fPC\nntBXuV+9SKZXJGrVCHhNVq7MoET7ZKd30aZsuqafZidE9U6CTt+PGrEQNQef3GU0sE5ovkErHUIJ\nWsy173LOucD+fIbCl0dZu5jF6PpwezJuXqZ7PUDDDNMYCWO/qcK6eFBsYfBHWsRTRcqTLpLjkHtw\ngVOZy8wE7nJbOESLAF3LT7GeobegozZM+IhLT/Yh+VzCkRqWX6EhRbCKOr2Sgik6jKZWEWQXVehQ\nKKYxtDaHs9d52HqDsZ0NxhrbbKWGaYd9LAvTFIppxJ5HaSTBkLJDStkikyiyr6fZJYkHpJV97gu8\ny0ZsiJoW5JZ7iBvlkzT0CMcffg//bBch7WIZCqvlaSr9GAhQ6qUoFVIHn62/DbSABOxtDNMshti/\nmaPfNiHVxSrqoKmItoc5poIGuq+HIbWxTI21+gxFJ01HN9BjbaaNRbRUl5oYoo+AIlgk1QqlKylq\n7/lBtqnOhakeiSCO9vHqEsKejGmpqFoPSbPQox1E26bSi7C7MAS6hzrdIzWSJ9hpIS577NZHcAUY\nkVcJxRs4qoCFQliukxX32OuMETTqH3BhDwz87bvnhT3CJpPuKtF6kxl9mftCF3n+i58hNbTPJ+a/\niu/ou1zfO8Uf3vgRpBccookSoz+xzNrjc2hmj7SyT3ZkF2XYIqEUObx6m3ixxpi+ScQ5ieM8QKMa\nRJRFpKKDuybSD+tUq1GsbyqgAv8YhA2PqFvm6NgVbn3sJKprcWbiNXSpzYo3xQvW07iiRL/jY3nz\nEPYfKCibfcJHC5iiH7XmEko2qZVjdBbDeBURguCdcDADKhgu/mCd3jeDZPU8T3z6Bc6vvcOJtZs8\nvfoSyx8Z5dXEw/wO/5S1lVmi5RrbqRF8ShdB9qjFwwf/MPBhotIJ6lSCQfZJs+GNccc8xMbmLBND\nKzz7C18lShURhy5+vuL7PM3SCaySDwQOJjE8BxQBzYOLLnvVIagOQwK4z4CRKPg8BMdFyHs0W0GS\nkQKHh6/RQ2exNs9C/gQcgUC4Tnpumwfs19C8Hu/I53EdAZ/a5Xj0Gjeunab22yEw+/C0AooEcSAg\nYGckSkqChhdAcl3iYommFWKzOorwhkwuvsPR6SukyaPN9cnO7fDylz6O3VR4SHmT28IhVplEp0dO\n3CUkLNE044Tsxr2O7sDAh849L2wZG0eSuBo9wqo0ith2QQRTVKkSY40IO9Es8VO7nMxdw9sQee+3\n7qeVDuFN19kWhym/lma4vM2PfPz3yKdSPK8+w6s3HmdlewIEP4LqkBjOE03U2FImaOxE6P1HnZ7f\nB1MgpDz08RZGvIFf6PCZ+/6Eaj/K65XHqIfCSFWP9TdncUZk3LiI48ro39/C0BvoyR5TwhrhcJ0N\nbRQv5RET8jQuxLFFCTfkslGYwmsKODWJZ+e/wbnU28ywyFp6hIXgLOaUSiDeoE6YFga+ww10s8my\nPskY66iYvMHD1IjQR8NFRMKmi84tjnC9dpLNvRm6DT85ZY9HeJ2XeZwGIUbZ5NHgyyR2Snz35aex\nJ2Voc3CStAj0urC/CeNxmEnCGOCBILiIp03CqSoRp87O26Ns7U8gdl1cWaKb8cMsoEFMrXCGS9x5\n6yj5XprGeR9jvg18m30u/f5DVCcjSP+LhfNVDdab8Ad9XDUKaxLyRp9Ev0Sn7KdUymCMtBnX13gw\n8SazTy8hqi77pPHToYuPOiGs2wrFl9K8+NyzeD/h4nwcGl6IxjtRwhtNHn/yRUKjNa7d6/AODHzI\n3PPCbhBmV8hh6zIVovRUjWPHrpKKFhhihz2yqHqfB/U3OJG8xp40zMtXP4YjSwg+D1FwEVUHVxep\nCRGu+E/wp80nWLh5AjcpYHysR6+t4ZZEbEPGiwiY7ymY35XhqIg0Z6Fme4h+B8VvERUqxNMFPNND\na/YoCGk8UUTV+9Q7Bl3LD0XwsgJOXKZ31yCSqTGduUsPFdtT6PQCeMsQHSuTDO2xvTeBZaqE9SrG\ncANiLgVSbPuHaPkDqAmLBEUqToyGGWY2vEhO3iVPBqciE+/VcJMSutIj6RWZ6q8RlNpckU9x0T7L\nkj1DGz+uIdD3K5SJkydNiQQWCnZTxSzpUAISoAb6RJ6s0LoepLMrgS7ju6+HfLpOOxpAs3qExCrp\n2V20ZA/LUiiupOirPhQsekU/wXCT+fAtdlZGMBc0qhcSrK9PUUgm0c826NYDmHsGu1sjSCf7GIeb\neKpM/20bc1uCl2WwRVxVpLMbACAoNxAE8EldMvo+bloiKLS4j/doEmSdcSrE6NsqnbzBxtIkxlyD\nQKhO4FSdcjlDfz/A2LF1+kXtXkd3YOBD554X9jbD+Okwzx0sFOr+EJ/5zB8xzTIqFsveNCEaPMV3\nCAhtLqY0hCdcaEto/T5pd5/MQ/s4gsQf8nkWvTlWWtP0b6lEHythPFhn/49HKe3lKOVy0AHWbLhh\nwSMq6kyPYK5MPZ9EsEVSvgI7DNNVfTwce40OflrpANonuyzfPkTvlg9uQ3/boO8z8DYE7EdvEE+X\nOSrcpFsOsXzzCLwCY49scC74Ji+UgrSyBrmxDZaYZo0xPE8iQYGcsEeaAiYaZTtOsxbifOgdjso3\n+RV+Am9DIbtfZPahu4SUGjPOCqPNPC9pj/HFwBe40D1HRY6i5pqYXZ01bZSv8DkahKgR4Q7zFNaH\naW+HIAoIEBhrMPeDN1j701k618YhPU343DaBmW22CxNEjBKzsduc5wJVYlyVTyI92scnm0S0OoWX\nhhgytnhy9gWe+6PPsvz1WfYXc/AUqJ/uoaomK5tz9It+OAyB4SrhmQryjEX5ZAbzqyn4PWDKw3xc\nZfX2LKO+NabP3KYlBGkRYMsb5ZXaR3lAeov/Q/9J7jDHPhnKJOgP6QczoXeh/UIIrW4y8ou3sA0f\nG+IU3772SQYfYA98L7rnhS3issokd5mlSRATlTxpVrozXK6dZz0/gdcUuGMfZ+zoMk5Y4ujsFbY7\nQzTyBm/98WPQEvAiwHkX4i6+TpfOe2GagQhdRcX+RhlmAgjTIbTJNu4dCRMVvt7HbAg0GkmsusZ2\naphvGp/iIf1N/MUeL733cYSjFk5apNUNkEvuMXZ+jZ3DOQy1jWjBSmKOG5WT1F+MMHZuGcuSwQWO\nwHpoCmFB4L/v/ibD8Q1q+PkGn+JO7QidrRBaqMdQeAsrrKAIFjlll1+K/k8sy9N8k08yxA63xudZ\nSUzwTucBHhZfxWf0eTn0BFfEU1SFCF/w/S661yPfS/P8S5+mEYmy9OwMtVaUvqAdzDmfKBKPF+A0\nNOQQctDEkhWclAQ5oA7tth9daHEydpmqHWa5PoMW6BOR6mRaedb+ZIaaEcU6bWBu62yFR3i+/Cz7\nbubgpG0QfJ9pIh2yab8Qxd5QwAEOQ9sfwixoCA6YZd/BGndPANtb8Ce7oGcoXfPR3zqO+kiHbspH\nUwgSixawBYGv8lm66LQIMMIWxVNDVFsJuMjB7J6HOJgD7wAVYBmSZ/Yp3uvwDgx8yNzzwoaDvewg\nTWxk+mgsM8P67hRvXn2MeLREVt4l5lUoeUlUtceR+HXCwQqbtXE2V2YQNRsl3Ef2TBTLxOuKeF0B\nq6/giCrKWAUnrOKaHkqyj31UhXM+aILP7RL12tS1MB3Zx53ePEPmHqxIrH9rilx4HT3VxvQUXFtE\nUFwYc8np2yStIj6lx+YbE9y6dQw7IVLToggJG++MQFWJQnkKI9JiyL+NjxA59iiSxUGjgx+vKjG5\ntEFr3E8g2WRGX2KfDH67w/nmRZb1KV7TH+H65mkCYhNDbfLG7qM0DYNkqsBx5ToSDq4jMqats25N\nsLM7SisfxO0J6HIPMdRE0/pggB7ugAjlzSTdvh8pYuMPtpBDFrrY5az/bWq9KMv9afJuhroTRW3b\nWC0da0PH2tFhC9rzATa8UWzPd3CichyEkw6eDtbLOl5PODixGISwWkNv9Ni7PYy9qEAfmAMUD2wP\nVI9O26C3amAcr6LFeqiSRb/nstMc5vneJ5ETJnqgS1ipk57dwy90yET22Tw+SmfeR10O4ybAN9am\n1/fhy7X/NqI7MPChIt3j1//5Iz//WdaY4Fm+RZgG60ywwjQbb01iflHn9BPv8PkHvsxPjf0iO4Es\npqBylJuMSZvobZPFzUP4H2sQe7xAPFKi3Q1Q3UngLsnI5/poz3QJPutAyIe1oaFNdPEyEtaMDkcV\nxh7e5Nyjr9Od1egkdXo9nbXSHCtvz+H8jsS5By8wc3KRnu5j984YKytzNLQwR9VbnAtcYDa2SOvd\nIEuvz1NQszQTAcS5Pt6IB4aAZ0nUp/1spXLUhCjDbDOqbWAkm8gRk/uX3+Vnfv2XEIdtCuMJbnCc\nMTZ5uvUiz6x8ly15hHeUs5Q303RVjR1hiHefO0/GKvDoxMuEqbPMDBeVs4zPryH7HBaunMS5puJe\nVDBf02mXwtQLMeqbMfyJNpLjsP2dSbolA1+0w/Bja+i5LimpwPcLf8iDyltMqqtccs9yu3mctcYM\nvZQfbgjwi0AHtNkewcdrWK9rOIICz4KX8XBqEu5NBaaEg3ntHTibusAh8xYb//cU/bv6wV9+BDga\nhieG4BNRGNPwXAE7JzJurHFOvMjNxfu4fe0Eq+/OsBKcoBvSGNU3iQSrnBm9wI+d+S2aY342jWGK\nbhIpbeOb6tCNB/GNt2j+8i/DX7Xowj3O9Qe3tsXA94ZX4S/J9j3fw17dmqFcyLIxN4ERaDHmbZA3\n0xiHGkz9+DJjU2sExCY2Eme4RIISZRKc4j3iqTJXnzpJLrON0ra4unI/LTGCp8vwMYGhYzsk5X1W\nCzP0LQNPleg+F8RTRcSwS+BIleGhDY5LNzjBdVpagF1yvHLlY2z7Rgj8YoWN08PsO3FaUoDQRIWR\nzAYz4UWGfNvs21kuN89QOxNlIneXXW8Us6Uibgj4x9sYIyUi6TpaoAeCgILFMFsEhDbzwgKbjJHP\nZPnnT/8q8kgPhS4afQQ8tn1DPDf2LIv+GYJKg/umLmD6FNqKn8wj25zTL/BI521e1J7kbfNBFtuH\n6Id8yCmbU6feYX86Q60Yo7MbwgPEkIMy2qUlBzHcNnMP30QSXTSjS9q/z2p9mqX9I/zG2k+iSz1a\nvgAbnWn6ET9y2mF8ZJHuaYOtj47DOFijCq1aAHvNha4JigqSS3i4Rvb77pAOF5D9NvtOhmRkH7/T\nJvNjW9C06Uo6waEmfduPZ0scz11BmejT6frRkl2Cep1tKUd4rETC56ecTfCp3DeY8S3iIjIibJKT\n9hDwsJHB8wgLddq3w7T3AzBkUSdyr6M7MPChc88Le2NvklY9zJI1w2FuMuMucbl+BkeV0ee7yAGb\nfD/DdztPYfpkakRZ6B1l2r+CbFhoM21iYgmpBs1GiH7HB7YACZAEF2kXzE0/Vl6DfbA2dLThHtHx\nAiNjq4xG1zHoIJguKYqc1K+yrU1QGwvBgxaybBH0WkSoEUtUiVMmSpUoVSpmnIXOYSbGVzk8dZM/\nvRalXE2CK6FP9ZiO3uUwt2kQRMRFpU+AFiomXS8JHuRjaV548JOMxVYYZ5Use9jItBSDhcQsedJY\npkzA7GCoLQi4uHMSQ+Y2MatKFx+OKxNxGmieiW50UPwm9XaQejQCKQ/yAkFfg7GpJbYvT9ArGygz\nFnLGRNYt+gWdbjFAqZjivboPVTfBguZqFCZAm+wQiNTxjoL4rI2RbuHGBNrbfpAcCHvgdwloLeLR\nEumhXSLdBgG3xZh/haywh4tI7iNb9LoKbiWGvGxhll0EBPRkF1Xp4XgiWrVPux0ir+Ug7OJzOwhN\nj5y+Q1ItsMwMMSpEqVIghYBLVKhhCiq1ikqnEECc6tEt+u91dAcGPnTueWEXKlmkcZu72hzTLHHI\nuYO267K8NU61kUZ+zGZZmeXK8lm08RauINLaimJOqvgiLda74xhaB7+/izvlwCsu3JDABxubU2wF\nxrE7ysEqehvAKMRmSsyev8lp+V0CtFh2p/hu4ykOCwv8XPzfMPfQLTZ7OZbr03w2/DXO+d/BRiJK\njSpRvsZneJRXmWcBjT6nuMJj7su8236AspNE0Dw0sc8ZLvEP+c/8Pv+QJkFULDr4ueKd4ovuj2K7\nMqLqkh7aRhItmgTx08FEJccuz/Itvs3Hea3+KPXXkzw1820+cvq7LDJHUzFYUGaYEFZJ+/dxfSKe\nILDFCFe9k9R3E3S6QQjbEJDI6bt8Tv8K33zu+3jv9TPcfPAUwkctGHERrss4toIe7zD11B3iwSJe\nReLy2oOYkog/UWdXyNId9SGHOoxGljH3/CxdOgT3K5ByIWWRCe2S1Ap08bFYOEq2v89PTv4iE/Ia\nNSKsMkldD9Or+Kn9qyRWSYN5eMt5FEwP746AEPUgKUDGI3qygF1UcC8oXI3dx0psgm1GSJOnj84y\nBzOIZrnLVU5ix2Q8S8BBhhvv59obAwN/N93zwha2HaQZk8rXk7wWepK18Tl2F0ZwShJd0cdC7TBO\nW6LxZhhfCMKjVeZGb5Iy9vFECGsNqnKUvqcxH1tg+Mwu6oTFu/JpCntZOjtBaIF8qI/8mImp6liT\nIh3VR4PQwWG1ICMZNstM8avuj5NQSjwtPs+iNIetyiwzRYY87zJFFx8f4VV2bw/zduERMod3SfgK\nxCnzPxz6ZV6xH+eidpa0b5/F/hy/1v9xVL9FUi4QoMUK0ywJMwiiR0ooYFsyO50hKvsJPHY4OnWL\nS/nzfKf7DN6Qw76WwR/okDx1h15EZcWb4lH3Vabaa0S6DWLRCm9Yj/Cd2jO4DYGGE6KkJPH8HsnY\nHobWpOUPIcl9SmKCblTHUwXs6wrT55ZJZ3YxJZ2qFyPgb/BD4d9jV83xFg9jb0vIUQvVM6lX46j0\nySRWiaslqv0k7AgH35y0RKjK9IJ+Sr0UtVKCmh1G9ptcFs6wxgQKFtMss7s/wp29KPYRhUQ6T/Jc\nHuuQQssJ0J4wMPQWhq+N4W8jB0xsSSb5kQJqoketFmN7fYIXh58m2GtQvJzFUSS6AR/FaApTUsmM\nb/No7GXupI8Mvjgz8D3n3hf2LRemPNqLIZZzc2ylx+hYATDBdSR2d4cRLQfV6xEWaqT9+2RDuyQp\nYCMTUyuUmwl6tp+J8AoTcyto4yZ3irOEPB+abdEkhJBzkecOZhqIuku5kWTPn0WT+ySFAnFfkWVn\nhj/qfz+fV/8fJuR1kGGxN8+2NcK0vsTN4nE8E+Yyd7jSzHKzfowJfQmf2kXB5P6RC+x6Ka57h1GF\nPkvlWV4tPM7HR18gGSjQJMgN6zir/Sm8noSq2jgVhdrtOH6xh5jy8HttLvfOcb19Et1torh9DLlL\nYLhJUzlYmzrlFRi2d1BNh4YboOwkeKd3DqPVQXRcbFVC9vXxqR3CwRp2X6bnaKwyie9wh6HSNvur\nWSb8axyTd7NiAAAgAElEQVSLXaEeC7PYmMfti2TEfXYbQ+SLGQh4KAETwfOwugrD2jZnfW9TI0xN\nTBykQwVcAbYlGmqEFiHKC2nk6R5WQmRVmKBAkhANxllH6dtIssvIU5uEhqr4Rtv0ixqWX4IZl7P+\ndxhRtzCkFhYKRT3JWmwcy5XoFX1oDZM1cwKzrVFbTeIPdFASJrakQMBD03vknD2EnDgo7IHvOfd8\nlojX+QWcpor3kETq/B7jEys0IyH6tg5bArQF1KRJ6DNlDmUWSCglakQZZgc/XUokKN7OUd1O4GY8\nCnKK5eIsa9+YIxXJM3F2mbI/RW/dQH7XZebwIoIAuxtjKCGTWW2RJ/kuK0yx3R+hWE9RVhPsy1ls\nFG7vnWClMcduKMPWS+OUr6bZnhtCGHJITeSpG2HGhQ2G2OUyZ3jHPs+KNU1f0mhuRunfCBDJVugG\nfWx447xbO8Pq9gz12wmK3SzFyxns/11j/sxtph9ZRFEsSsE4/biMX2vTtzQqzQR7e2PoQo9sYBdH\nkGhrBq2An2VligX1EHuhNEdS1xnNrGPEm1SXUzRqEeycSPW1FJ2tAP0plbOjF5g+fJc7o0e4//Al\njkev4SGycmOOxTtH2c1luHr3NDu3xjCerqOc7GOrMpYg8Yj+Gj+qfJElZln1Zqj4kgdXMxSAJTAb\nPnoLBu63JMKzVXLz20yJyyQpomGywRi7gSxGrsknZ75Gr2Jw8fmHKf16mvpSnGCgy8+J/44flr/M\n/cpFzrvv4CLxsvgE+2YWWbW5f+gdtFAPS9GoB2JMnFxm/Ngy2nAHc91H6VaW2/Zxzqff5uL/9W0Y\nzBIZ+HvpL58lcs8Lmyd/HmYFOAyCDOauTvNWGOeKcrCiXFIAHbyKiBbuowRMQjQp2wmWrRm2zBEc\nQUKUXZq1ME0nRN2J0KqEUYZNGHKpSyHigSKT2WUC4w3GfeucUS9B0MMndzHcDm/mH2WtNk0PH1Ff\nBU0xaWMwzDbHtGsc9d1EEDzaQYOynqLxZpT62zFKRhpPE2hrfrYZoS6E0cU+h8QFDKFNUzLo3ghQ\neC/L/lKOkhYnGqpyJvwODTcCIsxM3mHo7BbT6SUec15BlhzaewH2vjRCkBbxWIXqYpJxbY1DiVs0\nhDBb4giL4hw7wjBVIYorifQEnXIzSWkjQ2M5Sn9Pw8qroAvIIyZy0qbTCNK0wgSzdfrobHQnyPuS\nbLYmKbYztBohqnaEfkTF02TMvo9+04/V0JkTFrnPeI+Xek9x99IkvS+54EhIEQ9tpo3rl3AaMqyA\nMApWUKPRjrK7P8p6aYJVcZKKFEfSHdJanqRUJCvvst8aopUOIo66hIaq5MNJNpRR0mIeUfSoC2GC\nQpMRaYvj6nXWXpulsRxh7tAdnkk8x0n/FVpygL6oQdgjmKrjODJrv/K7f2mo/xb8/KCwB+6tD2ha\nH8dBGHFRw336lkZrK4f3ugjbHoLkEki0EFQPc13FnNZwkNDos+TOsGdnMW2VoNZC7liU19J4fRcx\naiPMeDQiIXqWAmGbsFomZeYRdYecs8O4skFFCLFLloveOTaaEzRrYfAgYjQw/C2KJJkN3eU415gT\n7sI8NHohzLxBaSVBe8UgeLhJN2SQF3LsCVlUtc9h9TZJigg+WDUmyb+cpbfnP/hyiW4yf2KBj89+\nC2XDphaJMv3RBWTBJupWmfXu0sag0kzQfi9CdLiMfKRPyc2gWibY4Egi69YE6+YkYbdORKky4tti\nwTtEsZumXw5iWgpa1yS2UcN6VECZ7BEVK+x3svjtLvePXCCfz7HZGqMTU7DiCjGrjLmjEMw2yOW2\nkPYE6vUoFSWO7lrUrRjX2qeoGjHEcp/QnRZdYxgvqiHPmwiugN32sBIq3ZJB95pBXhpCVi3ksIkc\n6KFrXRTHYtme5f7kJR489zqL4iE8G/zJNi+Gn+CmPseMuESYOiEaPMQbNIgg4hKlgrOq4nYUjnz0\nOuf1twjSZJlpOsN+/EMtBNdjYWP+nkd3YODD5t4XtgxywSYd2MGMylTEGPZv+nFTAvJPdjkydAXZ\nb7Nlj3IqeBkVk9scxqd0GZM3aHpBypfSNJeiuAkJzy8h+sA31sBuqbR3I4SGyxRuZ2lcSfDRzz/P\nZn2cr1z/QdyP2ChZkwXRopnzoZZ79F8wCH1/k3isgoXKe859dPHxiPwG4BHWKvxw9jd4+QuPc61/\ngvORt/lE8UXSt0v8lPRLpLK7zA7d5XUeYXH5CIXnh7HfkA++9TcN3l2FiNfixMg1xrOblIlRFBIH\nS6eKPl4SnqQvaByeusln/+1XuBE6ysXAWYYfXmXTylFpPsE/Cv4nWtUoL2/NInVdjmauMj3zNnUp\njC/dww7LbI5NMORt88no17lsnMaUVI5znWo2huTZzEp3+VzqKzScEP9e+GnGwxtMBNfYG88yKa9w\nXLlONrjP694jfF34NGEa7L+R5te+/S+Y/yc3eOjpy1RORrjzVozySoDO7Qixzxdg3KM8ksHbF2EF\nqEPwH9SIHi8SVurIkkXf0rmZP4UXkDgSvUbyzC4z3m0y0j4vu48Rsho8pr3CO5wjSINHvDcY6Vyk\nL2jcDswgPuzi2QK2IlMgRYsAFgpD7BB26rzdeYBmxLjn0R0Y+LC554Udi5WIzRdwogJ224e7o+J5\nInjgVhT2q0NIhksrHiKuVoipZcrE2bNy2J7EiLrJ0Mgegk/AH+mwsHeU9aUJLMV3sLxpQ6Tz+0Hs\nRZV2V+Ba8T7kkIUxW6cZMNCEPllhj4xvn9ZwkNoDcc7GL5BjhyVmaIsGPjq8xkeoEAcBrqvH2NJH\n8SSJjL5PIlwgSIOEuM9oYJ0J1rjM/UQSZXyne2wJw8yrd/nU+HPklQSJbB4LhWuFUyy707SzOrYs\nMSzscFy4joVCWzdYGZnARmKUDbwgZMw9AnYbWbTB7+JPNfFZXaZDS5znAhUhRkfxg6ghND00ySQ5\nlecc72CiotNlUl3BQWKD8YMClW3G3HUQoCEGSehFRtgiwz6OLOIiIHcsKm/E6ZX92A9JNOMBWmqA\nff8QXdePpwt4oxJd00AQPJgUoAfUgV2IRcsk7CKFa1kiQxWGcjucDl6lpRnc8I6zbw9xyFric3yd\nhL+ELJmYqH+2lGyELWEEv9qjTpjLnCaQqxFbKXL9N+6jGM0i52w2xsaQBAdXAjnqMGxscedeh3dg\n4EPmnhd2KFojOVGgqMex91TsPR0ioPt7GPstCs0sggH+sTZ6rI/haxPqtth0FVxZYEjdRZs0MSba\nZJUd7JpMcTdFez+ASxc2u7S/EgRHhnm40ryf+ZGbnJh6l9scQeubZLoFJMOmPewnMNwk191luLuD\n5xOIi2WaBHiLB6l0YzTtEN/SnqVaSBFqtujP6bSiPrRohwR7ZNkmSRG/2yGZzRPIttHub/Ox0rf5\n2eK/5fL8CdZio6x747xYeZpr9ZOojTZarA/hy0T9VSxBoU6YC5xnlE2mvBWiTp2g2yJEgy4aarDL\nSHCNEA2O9a9ytnaRG4FjNOUgfTSKzRy63Eenz3Gu4yCxQ47j9Rv0HB8XI+foij4Mt0O406CkJqiq\nMWbsiwy7u+hen2V1mpKYwO4p7F4ZRR/pMPTZdRoEqdXi7NVGcbsShIGz0K6GDq5gE+Ng9ogNZF3C\nqRqJTpnKcoag1mJ2dJGPx77NyzzOW9Z5Sq0svY6ftFjkAeMCBTlBkSQqJjYyS8zgaQL7dobXW48S\n6jcw9lrcePEUC8NH8I4KiD4Xy1GRVYtMeIu4UL7X0R0Y+NC59+thu0Fa//EQE1+4ixdSqE0kYR7G\nRlc5+8xb3HYOIUsOM9pdRJ/Nreoxvnv744zNrDCSWccQWlwtnaFhRjg9dIHE8Txnht7mnd2HaP/x\nPrxRhJPH4HDgYMGhsEDCLXOUmzQIs7I7y8vXP0b67DaBbAPJc/ji8j8j6lU4dfQiU+IK0ywRosHv\nLf1jlipHsKbBuaVDSeTN0YcY19eIUKNGhCZB2q6ftc44TSnEEd9tfjT4OzyYv4i7IbE2Os6l2Gm2\nhGHqk36UN/t0/12Y3mMeS4/O89VTn2VE2ULBIkGJFAWmnFU+1niVQL6D1ZFYnR+la/gw0VAwGd7a\nI3O7yunzV5hMrRISG/zBiR9CESzS5JFwkHA4xB2mXtuk1Qgy/rl16v4w280RLl87z/joKg8Pv8oP\nVL7KUHMH01VojQTQfD1MQ8F9WkA3ekSpUiWKELAxRqt0/SGslnawbG0faHCwZ20DERfhmImThKSR\n54lnXiLiq2HQQsJBxCUoNmj4wzwvPckNYY6svMsYGwyzhYSDg0QXH7vkWKnOcOvOKcRlj4BUZ/Z/\nvUkrEMD0qxhGh73KMJVmir39MSpG4l5Hd2DgQ+eeF3YyXWR7fxy/3EUIFalPhmnZAYKJKtnkDnmS\naPSZZIU8abbWRyl/KYn+QBffmS7ho3Vsn0i9GeTqK/cTmK5jJlTcmgj1IP5qi7lzVxi9r4A/0eGS\ncj8NN8SlvQcoxZJYhow35DHtWyJF/uCEX6QFnkBBSFMkgYnKdY7TivjR6dIzI8yk7pKN7bKvJVhk\nDj9t4pRxkLjNEcpOgqRQ5BjXycj7EHMpzkQIB+oc5jaT3gpVf4xiPE0nF+YZ/Xkeqr/B6O1VkmIR\nzwDfSJeMsk/WzTPU30XSHNq6TkIuMsQOLQySFMkGd6kMh3E1gTA1JoR1ngz+KR4CiT9bGLqHTp0w\nGBD2GoyKW6wj0lKCzKQWeVB7iwest2lqBlXChJ06s9YKAgIpr8LXxj6LqvSY5S4GLfJSmuuBkxRO\nZlB7FmOZDZaMWUrBOELMw+vJeH4g5OEqIg07zPXGKR4U3yDcrvOdrz/DnbkZ1DMm7AoUxAy9mM6D\nvMl9vEuUGhc5Sx+NMHVMVJpqkH5UwepomIKCEjbpdzTsvoilycSDRRJ6iZKboI3vXkd34L+ZBoSA\nFGBwcDgGYHJwOaQ8B5dE6n8gW/d32X9NYY8A/4mD374H/BbwKxwcGP8BBxedWgd+AKj9l0+eHbtL\nQ48QDVYwDIWm38BJpHF70Nk3cBUZQezjeSL7RpZiMYn+epddawjLrxA5VEY2LMSuw8I3juL7RBMl\n08OOiGhDIeLzPY7dd4kzsxeJC2WKTpSrpdPcqhwnZuwTSDXIpjY5xjXiboV1Z4LhoW2aYoA1Jllj\nEgeJ53gWhiAV20ctOxyfv8p0eJELnGeHIRxEolRpWwFW+9M4yAyL2xz1bmJbCvlokn5KIUKFUW+N\ntFtgWZxhd2SY0Od7/BPti3y+84d4r0Av5KMwkcDOiiTcIuFug7Ibx0qIWCEBBZOMlQdbYEpbRky7\n3E1PUieEThfbk3i48waKZYMHlqGwrQ5xhzlGp3dJW0VScoGeq6PrfaYPLXG2+B6ZYpGXsw+Tiexy\n3LlBqlXlie5rnJavUgrEqMkhxlnnJFfZFEYpSGn6Myo5b49PG1/jTzrfh20dQhf/X/bePEiS7K7z\n/PgRHvd9ZmRm5J2VlVVZd3VVV1cf6lNS60AaBCyIcxi0xmoGMGZn19gdW3bGZlhkMhZmWGTAsCMQ\nQqNGAqmRaLX6vqq7jq47Kysr7ysyMu778PBj/4gKZXRL7PTQU6AW/MzcIsPf8xcebi+/7xvf3/Ga\ntJt2mnU7tYKNltXGujTEjbWD9LHNUGuVp778OOXH3Pj257CnVBSHTjywxYPmCxzgMlXcvGqepoEd\nNxW2av1UcGIbrWCclWjm7CSzCbQ1C3pbAEHjcPRN+nxJ9IaJqHtpvLu5/67m9T9cE0BWwGrH4lFx\nWOu4qSDWDIS6idmAluGhjRcIIxBGwIkJdPS0LJBBpoEilBEdgENAd4pUcNNoOVDLCrQaoKlw+8p/\ntI69E8BuA78CXAZcwJvAM8DP3n79DPC/AP/r7eMtdjB8kZA3zUH7JeaY4gbTGEgsvzlO+uuD1Eac\nSA6dq+oxmg9J2A7VOfCFCyzLo9T9NhblcQrrEQpzQfRNGbmm4VBqEIOBn9kk9FiOM9v38XrhPiz2\nNtvZPqpuJwzqSBYNPwXiJDnHXRTqIbYzCVyRAk5nBSc1dohiIiChky7ECbYK/NPQ51i3DnKTKX6K\nP+EiR3iFe3FRpbAVorzpZ9/0ZSLWNKv6MA+sv0ZdsXM2cQwBiAopdHGOYWGVn/L+MccOvcm+9jz6\nWah/AS7+s/2sHJpAtqoMzm5R33Hze4c/hcXRYi832M91BlNb7Nlaxpg2uObZx1lOMMIKGjKv6Pfx\nwde/zcjqFuiw9NAQ6+MJnuURjIjMXnOOhmTj7uo50AT+yvN+/ujMz5OZjyL8dJPh6AqL4jgeZ5UR\nlhlhmZ+QvsA1ZrjAMZxU2aaPrBam8M0I+9sLfOLhJyl7fIx4VpgWblBwBpjP7OXZz7+fzQeGUO5u\nIO9vIDlVZNqMfvYWV81DZLJ9nNz3GnsdswzZ18jIIb7NYxTxcU6/C0MQUVA5+/w9bAn9uD5Qpb3i\nxF5qkhhcYrueIJcKw6bMgrmHdWGI+gUP41PzpN/d3H9X8/ofpgmAFUITiPuOM/BjC5za9xof4zn8\nz1RQXlJpnYXrDZk1QwGcWLAgI6EBoCPSBmrEURlXNJynQH/AQvF9Lv6Sj3Fm9jArX9qDceMcpBbp\nsPB/BO2uvRPATt0+oLNEztHJf/sIcP/t838MvMj3mNjNho0DvssEyOGlTKBdoDQfoHzWT+mcjG+8\ngDlgkm0HaOsycaXB2IkFai07ddNBQlynlvTT2rCDAm0stNpWBNmgYXeQMWSS5wepOxwIIyayp4UY\n1LD5m8TkbawpldTyAPapKthNrPYGsqR9R/dNEUNDRkZjSFklLGRo2yU2zw5STnoRHjYRvQY2o8kp\n9SzXhIO85kxgUdoYokjeDCA7VAJynQhpFpigggtBgLGVFfqMFJMDc9iXNIQGyIegOuamLtmYubqM\nu16jGbTS59jCXakyVNwiLBbwt4o4HA20VQlCIul4hBIeoFPfQ7AJZAMhXlfuQnXI5AjipIbdVqeN\nzDoJ6pKLgFnioHqdOftBLgUPMygvEWWHuuCgIPsJZnNY8xoLA4NsOQao4aKIHystDnCFAhHqopOs\nNYBpEbBb6tip46BO1epGUkyqNRdaWSI4kCGthLkpTGE/WMNTLtKstRkOLuFVCmTMEIvaGEWts1tO\nRXATEdJ4KBMPJwkKWQalVV4YfJRi0E/YvYOZELG4WqgWhbrqwNpUeTj0DEfd57n27ub+u5rX/zBM\nBocDDg0xPbzMCcfriE9DubZBJr9JbG6LqfosQZZxLjeQ8xpWHWJ0oF2is/mQRGd1BBA7o+IHPAY4\nc2AsyYguG3s4R3u1TrRwg7g6jy+RQntM5Gz1JHNrI3B5Dep1uA3//xDtv1XDHgYOA2eBKB0xituv\n0e91QaYQ46TvdTKEETAZVNfZvDaKflNBUnUC+9LYHqhTtTjJrsWRquALFonZUgiYHOEi2WSc9e0R\niIPhENFqMrohsbWSoH3RhvaaBUIg2A2UqQbygIrd3mBQ2qS0GeD68/u4O/QSA+ObRIJpJEnHQEBD\nJkUM3ZQImVkOSldwCjXOc5yVF8YQzgrcOrYH1auwz7zBzza/wNPubRb8Q8hSG02z0JKsNMIKCVKc\nNM6yKoywLgyimgofW/wme7R5tEEBdVNBRMT4JRFhQMJbqHD4hes0TlhQD8OP8iVcWy1cy00Ui4o6\nJFIds6K8AGId1LiFNziBkxonxXM09thZm0rw+6GfYy9zRMwMp8zXOShcBcHkVe7hJcf9DGhJPlP9\n37g5dYBzkycIuzv6eHcDZFe6jm1e4xv+D7PuGCBOkgZ2wkaau403uD56lKQU469872dBHKWGEwGT\nBOvY/A1spxs0RRtiXsTW12RBm6Cg+2mIdrzOAj5PHjdlNhngModZbw9SNVxIosGYZYkEG4yIK8Tu\nTuGmwgjLrB6f4HLdh1zXCQYyWMN1ahYXmcU++pvb/Nx9f8CUfJNf/1tO+v8e8/oH12REWcLqUbGq\nJrJTQX1witMPrvI/R19CvlVh8+U2l/IgXeoA8E06u7dB532bDieW6QC3cfvVvP23COSArTZYLoJw\nUUOnSoBvcZJvcQC4R4ThgwqNX/Hw2dQ9bD2/B+tikrZo0lQE1LKCoen8QwPv/xbAdgFfBX6Jjseg\n10z+ht8t9f/0Gb5okVgGAg/E6L+njHS8CaKGEZLYXhkk7EsxeNcKLa+NvOnh+faDDMur+MQCS4xR\nXPPBJvAA3BU/x0Btnae++WG8Izk8R0ss//UkjTkHZlakueBCuNtAP22jFPTimShwl/9VSjEP66Uh\n8hsRbP1VrL46NqlJCyv72nP8Uvn/IfrXO+SKAZo/bUP5URXtMQuuSIUEazjFGtvOIAe1i3yu8Wl8\nSxVWvUPMD47jmW/gE+pYB0wMh0zD4kAVrFw7vJemKZOQV9k6Msi22k/OHWDT1o+vVEJXJTRdpo2C\niMnF+B7SvhgnhTew2hsUrH7m75piXtlDEztxtkmwzn7hGi97TyGi8yn+ABkNX7tMorpN2WmnYnXy\nMb7Gn/Hj1AwPZltkr/saH7M9wVH5PB7KWGizn+tUEy6+FXwIt7fEKJ0wwSRxLlePsLk9wkY7gSnC\nFwufxO/OY7M2yRPEThOPr8zJu17i6vpRtpoDpMsRyhkfloyB7pbwDBQI9u1wjRkU2sSEFHFrkiJe\nUkacrcIwLrnJdOA6U8xjp06OIC3BSmndz6VXTmAERbRBCX1cQpp9hvz5J/nDb6SoCIN0JOZ3bX+r\ned0h3l0bvn38INgo3uEAp37tKve+cY7JJ+Z484kncD+T4YpSgVmNFmCnA8LC7au6gKzRAeXuIdAB\naOvttjYd16MA2Nh9uFLPeQ+waUD2qkbrU2USrT/k08W/5C4tx81PTvPS8RO8/u9nKC7lgFt3/pH8\nndgq72Q+v1PAttCZ1F8Avnb73A6dXz8poA++t6T4gX93hFVzmK32B2iIBnUxiTtRopr2ULkRoH7e\nRakcwBMs0+ffptpysXZrFNlqUrb7KTm9iP06Y6fnsR1pYQs2yDcDqG0bo84lhvqW2I4M0mg7MF0C\nukuCmkxzXmRraIhGKIttuEZNdFDRXdRsdjTJxEGFUZZpYGdCXeRo5hIOqUbGF+SUeIZJYQE0kYH0\nJs5AFc0tsmZJEBTzjFeXGLy0g2egjBJv4N8pUbF6WEqM0BYs9KkpjtUv41cKOMUGtoaG6RMoym5u\nMYaPEgPODZjW0COdzWeXGKPicCM5VMo48W3rWHc0iuM+qi4ndhrESDHOIiMss6NEkdCY4FYn0qJe\nZXx1meuJSWRR50B5lpzwLAUjiKNWZ8S3TNMu0c8meQIUND8HirOkrSG2ov1MsICEjoU2OYJIokHG\nFiMc2aEg+FioT9FnbGPX6jSLdux9Tfr9GwQjGQJahmwqSHPBSX3dh1mQoA9Uq4Ls0og6MoSlJBHS\nBKQ8i4yTESKIFp286OcKB9nLTRTarDJMTXGhFqxk/zoCk0AGuAHD7zvA9D8xOUGURcZ55d+88g6n\n73//ef2DVUvEjycmMvG+JJ7ZefxFgz1btxjJX6e/OU9tERrGbjSnQOfBdcG2C8rG7fdyz7mudZm1\n5fZ76XY/lbcycJHOYlAHKjkD7RWVAHP4RBi2gZ4zKG9JONUy+QMC5ekWt17sp5wygMKdeTx/JzbM\nWxf9l75nr3cC2ALwR8AN4Ld7zj8J/DTwm7dfv/bdl8JTzQ9SNH0sN0dxKHUszjYhVxYNG5VkAC6a\nFHf8VIa8fPjUVxDKsPbtSWbthzECIsTh4IkL7InPEhDzvF45xZXaYYQDMrH+bSastzgz+QAMAAkT\n6WQbMyuiXbGwVN/DxlgCx0iJoCWL01NB9GigQz9bPMjzFPERV3cw8iL1e6wosRp3W8/gfFrFcaEN\nd8H2oRDz7jHWGGZNGiZvBHFcP0NfI0n4eBJXrc1VywxPuR+mhYWZ8iwfTz+JIJsgCxiiSCSQIy3n\nMRHYp1/nuO8C0iMtDJxUVRevWk4zI1zlbs51AHPBJPZGiphvh6rDiYMGY+IiA8YmHr3MiLRCW7RQ\nwYOEjlAz0ZYlNJ+MZDGIrBb4SfnLIINpCMStW7SdkJODLAoTlNp+Htp8lQFviobbhm5IOIQGHqGE\ngMmaK0HCtcYCE8zV9lFJ+8jlopg7Iu05C/X77Wz7okzrN7DHqnj0AtkX4pg7EsggugxqRQ+FnEpY\nfpVp243OZgykaSOjig/T59+giY1nzEe4RzhDxMwwq89QVHyd/+TrnX0zBcNEvqIRiewQO7JDCS8O\n6u9g6t65ef0DYbKAYJVQ1CiDY/Cx/2OOkc+9jP13Ztn5150VK00HQK3ssukuUPcCdC+rtrILzL2s\nWqHDqqEDzOLt9l6W3dW9u0xdun2dYcDlOuh/fpOJP7/JSaD+w9Msf+o0f/Zzh1jImahKBbOpg/6D\n66R8J9X6TgP/N+AAPgX8j3T2dvkyHWfM/07Hh/BLdBKWe+3XS97fIXlzgGrYyV7PHPcpr1DFRXY2\nTP7lEMonGsgfbSGMaxwMXybqTWFJqDSGFepBB4gSzdft7LwQZ3VjnO3tQXTdgmu0iDdcoCXbWRT2\n0sCBVW8xsn8Bm9minPJBBUxdRLdbkGw6kkVHMVXKc0GK2SCpcIQhYZ2IlOamZ5Kzvru4bt1PRXTj\ntDfxOcsIc3DOc4wXh+9HRidLmBuWaZKJPuSKwdgz68hDJqmJKLe8Y1ho45HKOO1V2i6RnNPHDcce\nlq0j5MQATupML90isbKNVdaxvalhvaTRGlCw2DQqeNimD8mp4x8oEDbzjFdWGWmuMafs5dnUo3zl\n7I+z5eln0TXGczxEmAw+S4lsKIA9VCdaSuN5o47YMGk7ZPKDbpRbGv7LFaQ+DdWmIIk6k8551jyD\nPCM8yl+lPs5Saxyrs0mIHGkivMQDmIh4xAr99g2Ou88RtadYk0fo79/EpVdZuLiPuuREqJtUv+7F\nkGbR5pcAACAASURBVCWUvS2iJzeZGp5lzLXErfpe6qaToDWHhwpF/GQIc5I3sKotLlcPk5L6uFA8\nwZuzJ0mXY7Q1BdwCSBAKZrjnn77E4ye/wWHvRdJESdHH7P/5NfjbV+t7V/P6B4FhW44EcX/mKD9W\nepGPXf0y4qWrCOdSGIUWTTqAqtw+ZDpg0etM7LZZ+G6NWuy5pttXYlc2MXvGUuiAfBfoe6UUs2c8\nkV1NvA40s02sZ7a579pVwvdZWP7X70NfaaAnm7z3I0v+9tX6XuWtv2567eH/2sVbVxNYjzUZk+YI\nyjkquHFSIxLdoXbKg/iIijTSRtY1NJuILoskplbYnOuHLSAFRkOiabdRsbpp1h2YbRHTJZKUBig4\ngjSHLSi2Bo5GFYevhiZYEAc1jBUJoyCh1RVkXcNJFTtNkGVappV1BpHQ8St5ikEvi4ySJ0ALK4H+\nMh6pglzWkQWN+MoOsfUdtvsKLE0OU5zxUJ71YHnaACt4gyUm47ewzrdRZJXVyUHGciuIGLQCMnXB\nTg0XTWwINQFbrg02kFotnGING00yhEgRQ0WhHVIwfAL7dm4R1jIURS81HKTEGGlLmKCYwkobHYmr\nrYOUBR/x/i1MBIK1PLbwFTz1GoWSjxcddzNlX2DSXESoGJiaTJYsBa+XlCVCQ7OhiRJZMcgcewmR\nJU+QLCESrDMob+CQO1ubtWUZv5BjwLOOTWtyS96HV8yj2JoIozrOaJnAgRyDiRX2Oa/ja5a4tnmI\nDXeCvNtPhhAyGpPcwkoLG00GxC0quEkWfKxfGMFMCEj9GpaPtGi/rCBYDOTTKppPpIGdFlZyrfA7\nmLp3bl6/d80D9HNq71n69m5RaqjMtN9gOHeelWc7YNiNfu6CpM5369UCbwXSLhvu1aW7gNxrXTB+\n+zjdxUBn12kp9lzfBX6DDuBXAWGxgmOxwiCrVNoWjjZjeCYXSZY9vH7rLjqOr9K7fF7fX3bnq/XZ\nwPVQhUfiz5C2BvkmH+QUZ5g8ehPn0QoNwY6VFj6KlPHQxEaUNPIV4FUZIWUS/YUtAo+kKQtudl4f\npHAxTGU5SGXGBzM6olPDc6iI11mkgpOazYZ4uIGZdmCaEpJkEBKyREliFVQG9mzSwM4OURzUiZPk\nhPkGS8IYc0yRJcS60o8l0cSZqLHv1g3uf/kMfAWK73exNRnmKgcIlHKYcyCUoV/b4pHpDJ5vtFi3\nD/LCxD2ML68TMbIIx3QMSSJNhGvMcNBxA9MmQAH0PdDos5J0xNhkgBY2FFTSRFiRRgjE8oSFNFnR\ng47AaP8Cx/vfIEwWNxUUWvxu5Zd5wXyYTyp/zMvifVgjLX7t8X/P+ItrbGX6+QP9U3ziwBPsGZ0n\nksoR28pRFDw8P32assXDtHyDQ7HLrDDCLPsIkaWEFxOhkzrPEgHyPM1jbNj7iQ+uMsYCkqlz9a79\n2MUacltD+DmVsDPJmKuzMe8e5vFpJRxbdYyISHPQxhb9OKmzlzme4RFqipP3WZ7HQGQpN8nq+UkI\ngrxfxTeUppwKUk57uCgcJoefuJnEQZ10OXbHp+4PnAkCAv0I5uP8T4//BXc7n+DpXwS9DivsShK9\n3LQLkDq7Ekh3ldPZZcjQARNLT394q5bdC8BdqeR7SSLdMECTXa1coCPNmHQWlDa7OvgNoP3sGT76\n+hk++M/hTOB/4OytD2MKT2JSBvO9zrZ37Y5vYOD73C8iDbdpO2T2iPN8VHuSCxt3c/Glu0g+MUiz\nz0YomOUIl9jPLF5KzDNFyJNhfPIWg8fXqKgeGjtO9keuobhbaB6ZVt2OoUvQEMGQ0KsKrayTWspL\no+RGK9kwvyUxJK9y7/ueZ9i+zKR4i+NcIEsICZ17eI0RVggV8sSvZumrZJg0l7HaGlw0D/OacRqr\noGJaBQyngL3dIjsVJDnSx2hhg9grW/BiA2kIxEMgHDSpR2ws7RnhfPA4i/YxVgND6A6RZWGMLCEc\nNJAVjbQ/xFJ4mFf893DDOs3R9iUOaVeZ0a9zoH2dg5XrzBRukCgmyRtBrjn2kyNMgAJT3GSLAeo4\niLNNWgozqq3yEztPsCNHKFvdWFGpOlyYfSZT/jlkSWNTHsDpqNH0KaQCEa66DoAIQ/V19r22QK3g\n4mLfYXQk2ih4KHOEizQMB19Uf4Ib7Wnyhh9RNtGQKAgB0kIEUxCxCw32WWZpL9lZuTpJUh3syCPO\nFha3StOvMCfvJSXEUAUrTmrUcZBdjnLpqRMspybYluLoR8CMiAw4NvmI72tUND+5cAjrSJ1K3k/y\n8hCbXxwmq4VofOmz8I8bGLwzk2W4727uHq7zG+nfwJM9S+pGifoOWM1djbo32qPLkLtOxq5s0SuD\ndB2JFna17K5W3WXe3cC7XsZusAvIXSdlF5i78kl3h7quFKLRAWut55zec51oQj0DtqUKD5fPs33v\nXrZGJ2BjuyOCv6fs72kDA9fBCrW2k6wQwk6Dg1zhjHE/WT1Cuy0TNzaIs4WBiIU2kXaWA7VZpFib\nVkIhRYz1l4YpZvw0W3YigR0ki0616kbfcMO6gOxvExRz+PQiWSNEdccD6yIeTwl3vIBsbVHNe0BO\nMRbo1Cwp4yFAHgUVAxHdkJmqLhCy5HnOf5ptMc4KIwyzStXtYn1ogNOnzlIJO2m27fStzuPUijRn\nBFqnZPQJmYZoY25qDzekvVRxUQ840BHw0XE2uqjiJ4/dVqeu2MkqAVJCDEelyejcKt5gkXq/jZrp\nwt1u4GnUSIshSngRDZOMGiEiZEhYN9hiAAETPwXukc5gk1RcRpVhcxUNkRpO6mEbXgpMCTd5LvsI\nL9X3Uo05GfUsI6OhIeIvVhjdWmewkGTTPkCAPE1s37nfONukTJOsGSJv+AEImAUqQmeX+GnhBiYC\nggmKpmHXWii6SsnwsW4O4pHzhGM75HQ/a9oUCm2SjX5KlQDFso+dq3GWzk3iO5FHirfBMMFp4LPk\nOcpF0iNxGm0rfkuGlNlPWoujVhREtf3/P/H+0b5jyrAdxyEvUWeOI9vnOSp8lbl5k7S2qzV3gaAX\nTHsljS57trILxF1poytXmHS05e54Em8FbOFth8Qu8JrssvJeABd7+rfZdWxKPffaXUBMDXJzEBTX\nOCKvc0RKUI4fJf3hALWLZVprb3dFvPfsjjPs0K/8IqV8mIRjlT45iVusMumd58DkZcbvnefxyDfx\nCBVe5H1sMki8ssOvrvxHdIdA0t7HKsMkywkyYpQtf4xxZYFJ5RYL3jEaG07ELXCcLHFi6DUeijxD\nI2qldtFJ86sORn9+nva9Em9Wj3Pz2gGkisHRgfPE2UZB5U2OESJH2JZBirdR2m2qqpsL/iOkLRFE\n0cQrlJhlH1ctBxjrX0QIGOg1ifiLaVx6C8v9IqUfdpE95GdLifPn4ie4wTQxdphkgWFWsdMgSI4g\nOSxoHKlcY6yxRtIWo0/cZiY5S+Lz27QUG8mZKFflGTAEfGaZlyN3g8tgrz7P/5v7Baqah0ed38JG\niyhp4iQ51rhClCxnI0dwWGsMCWsEKDBpLhAkz6Iwwdcv/DDfuvIhMsNBIvYd9nCLIj6GZzc4dO4G\nyoE21XEnTZuChI6KlSoujnKBsJilLSvkhSC6KDMsrQECUdJ8jL9kipsILYFvbX+EYDjLof3n0SMC\nol3DEERstCiLHuqyk5PCG5TSQb52/UdYeG2K9JUYQgH2PXYFb7vIxv81hjlmkNizwkP258Bh4ndn\nmRZv0HZaKEY9NKes6DEZ/sO/hX9k2P9V8348xsh/GONDf/47TDzzFRZUnaax+8/fC4q9LFahI0N0\nAfntgN2VOGQ6jFpml/HCrlTS/YzehaGXbXeZdm/on9lz9GrcXes6H012Gb3t9vmyCQs6xNcv0D+U\nofyfHqe+qFK/XP1bPsG/D/t7YtgOZ4VJyyzvtzyFlQavcxJTFDFFEGWDFjZUFPrNLa6mjvCV5hCL\nfeOsM8BWsp9cMkohGcLISTRnPVwcOMnScAkSAiPHFnFMNEg6o2CaSIJG1XDS8NoxRkSyjjCDllU+\n5P4r5L0Ghizyn/lZrLRQUcgT4LGbzxFSi6xPJ0iGdQpagIzcqeDXjX2OkcIiaISlDP4XS0jfFnBa\nGyzuHeXa8Wnc4SJN2UqGMPuYxU6DV7mHBjZEDIZZpX8rha7JXB/wIKgmgWyBu1cvUB5wUAp5+OYn\nHsUSbeOgikco49Eq6E2JkunloniIEl4Mn4lVrHONGdJEMBFIEmfcukRop8CxN64gr2pkPEFe/8hd\nlG1uDETe5BiNSYX98cuMOJdZZoxNBmlhJT8UIu8M0IjaWXMkWGKEKW5yvPkmoWoBxaOSV3zESXJc\nOo9Mm7s4zxx7qeFEQyJJnHXLIGJIxbQaNGUbDWxUFmOktwYoHlrH7q0zwS1sNNEkmba9k52Kz0Dw\na6w2RpEEHfunK2gTAobUKQZ0snGe08YblJxOdoQYRauPj0a/TtqI8OSdnrzvcbP54NCnTIa9l4j8\nylcJX5pF1lVM3hq90QVp4DttdjoA2Ct/CD3tNt6a3aj1tHW1aYG36tpdti2zGwFCz6uTXVDvBf4u\nOPfq4l0WDrux3L0OTxEwdRXPpVmO/vJvMzQ9xtq/CnPp9wVa72E/5B0H7BnrVcLWNEe5wAITXGOG\nNgo2mvgooqIgYtDGgqZZ2JZiLAUStFQFtWynVXJh5kTICugthXVlFNnWxkmReF+SYCJLpeWg0vKw\n2hrFtIjE4tvYT6wRkVNMqnPsd1+jbnew04ixtD3ODW2Gks2DI1RFbBnILY2U2YfV1URFwUmNPpJY\naDPCKl5KOPUa4XoOR66JUBSpHHCSGQ+wPRJmgRFaKJiIxEkiYLLFACOsoBsyoXaBcCuHXpaINjI4\nag3stSaj6hpr4TjbfVHmT0wgoRFvbzOTmcWpVlElmUChwFZzgE2nlwHbBkExQ8qMMVvcT1H3Y7O1\naNueY79wg1CtiFaQKZtetow4q0KCOk5uMYkt1mSMeaaZJUeQpfY4xYyfNVuZpalRDCSaWDFuf4eD\n9auMbm2ymBoi5wtiDggMi6tYmm20vILqstJw2KjIbuo4MGQBt6eIQ6hio0mILJaWgVAVGVQ3sRgt\nNFFGR8K0gz1URa3b0BEhBGrNitTWENwGLMvUS07WjyUYNdeJGBlq5hh61QKq2Mm4lN91HPYPtHmG\nYOCIzuGJFIlr13D86dnvMN5ufY/u0RsF0hv90dWXe8ERdgGza90xegEVdtPTLXRAtUUHsN/O0rvq\n8tsZvP62Pu2esXuTcHrrlHRfrbevd66nGf3TbxP75RN49++n+mCEzYsWimu93+i9Y3ccsD/JnxJl\nhwZ2ivjYoh/j9ka7Lawc4jJFfDwjPMpYfIkomyyI4+gWmZroJCsqmNsKKBI8YIIioGVlKn8VpHB3\nEccDNfps22xlE8wVDnFg4E3unXqZQ8NXOJl8E6XYYtMd5QLHmE7f5FfP/S6fqv4Bz/Q/iPCwTnHa\nRQ4PJYuHMdKEyRIkRxMbFtoMsIGDBlZVJbBapXzQSerhMGk5jFOpc4oz/Dt+jSI+DnOZV7iXDGHC\nZAiRI65uM1VaQouYGC2Bu79yAYtLhxEwD0E9ZKeBDT8FsoTYrsZ58JXXsA6qlGac3PfmGd5ne5Xq\nhJOnPQ9RED04jRpX549ytX4Y4iaD8Q3c0Qrn3n+M8sMeSqKPnN1PljAV3Ejo2Gjipcx+ZtGQcVdr\n/P5Ln6Y9KDN6ep4YKfrZZJhVBlnHXSkjLhqMzq1THAzw1E+NkhDW2cgO8ZlXf5rmXonE6AohV46w\nkEFBJScG6CPJBIuMsoy0xyA4kuch/XleV0/yJduPoqAiuVWi1g3SlUHqay6EVYnhB5YwlwRmf/0Q\nZkEkf0+UCzPHsDuaBMlyTZjh+voB5rL7WN47zGHvxTs9dd/TNvY4PPDpJn2/+gr2l1f4Xi43nU6A\nuUwnGL3LlLtsGDqg22YXeLvnuiDfZepdfVljV5vuyiW9MdT0/N0F5S4z13o+pzfEr3eB6Y3DlN42\nZrfP2zV5FRD+8BKD9+f46G89yjO/4+Pc5yy8F+2OA3ZfM42vVeEJ18O8nryH9EY/gek0dclFvhDF\nGa7TSDvYPp/Af7KEdyBPnCRrC2NUN/yYeQuCzyA8vs2JkbMIkkk+GOCWe5KRvmWG2quczZ0iU+5D\n0MFHkXHLImPSIs9F72fx1iTJ5/qJPpikz/s6rj1FxKsazayD/GKMG7H99DuSHK9epmh1k7TE8VPo\n7JjSNgiVStTsduasU7wePU3CtsYhz0UUVNrINPESIYOEgYbMEd5EwmCHKCuM8IzlYSSXyb7yDTxm\nmbUHwyzbRzC8IidCZwnqefpLO1xxHcYrFZipXsf7cgnrYAvBZdLoU0h5oqw7EzikKmvFBN/Y/hhb\n/j5G+uY57X4NxdbkurSfZWkEEKjhZNPop4UNDRldlxgUN6iJTs5wCj8F2jYZfRqyBGktHWBdHyPg\nzbAWXGbm5hyeW3VYAnlER57SEAUDAxF8JtZDVU4FzzNuXUBD4s3GUcq6hynHTWRRZ6k0xvrZUWID\n2yQmVvm9wqe5dWWKmwt7SH5gAM9wkWF5lYojSF11YS6IbMcGMe0mxichaEljGWhytXEQj6XMpHIL\nNxXC0R3S3jCCSyMub9/pqfueNDmqEPiZAWLO6/g/8yzy1STU1O+AWxfYupKExi4g9joZu9pxl+H2\nShRWdjVrbrf1Akmv07E7rsEu4MMuC+62dd+L8J06512NupuQ0xvrLfe09S4Qb0+X/84viZqKciVF\n/TdfJjryKNF/NUHu80m0dFcMem/YHQdsZ6GOPauSGY2Q2o5TPhfEaa+iSjYyW320+2WUgootqVKs\n+zANE7dYRqoZOIpNQtUcjVGFgYk1HnJ+m6ZoZcM/iG2gSrBRQCqZWGoGDuoojiY+sYiHzlZg39Ye\n5bXUfVTe9PH4kb+k2a9QHnfgyFdJFNboy+zQ9ils2+PEtSyblkFKuDjGBerYqZheBFWmZbEwbxvn\nz2w/xozlGm6zRL+6jYxGVXJxxLhMTgyiy524ZRc1YqQo1v2ohpWMNUip7aVqd3Jmz12sSUM4qTLG\nPAPFNOFmgZLTi5ci3maB+jUNWgZSw6CVkFn3xjnPEbzNMvOZaV5YeQTnwQJHIuf4pPAnzEuTXGM/\ny4xiRcVitvFQIXd7o1vRNFBup0MsME6ILFZri77JTSobHjIrfdhdq2g2hbLuRcno6EWFFWcf6oxC\nfszHIBt4KKO6FEanFtjDHEE1x6XMUa5xgLYiM2NeZ6cdYTYzw/yrMwwcWiM/5GNWP0Q+G8S4JWCc\nBptWxy1VEFsmoqAjeTVyt8IYPgGGdZSJJmbYJG1EyBlBVBQC5Dnov4zXKLEuDzAgbN7pqfveM78X\nZdzD8P4m8bMr2D9/+S3g2QWxXg25V7aAt0oj5tsOnV123JvI0uatEsXbAbtrvdEnvffRjTjpjbM2\ne/qaPX2knmu7konUM/7b476hx6m5VUX9z9cZ+PQeindNcHEsiqaWofjeEbXvOGBLazrO2RoPhF9i\nq5JgduUQ20IC0xQwMiI5MUpiepVjP/kiNyx7WW8n8FjL+PbmmBqfZa8xxy3rJIqlxaC4wRpDOKnz\nw3yV51KP8UL2Hu6feI6Gw0pOCOGRi1RxsdCaYP2NUYo7IcRjOlW/i7QUZsOeYOjEIhOleX4y82Uu\nW6a5Jk/zsude6oKDKNtMcIsVRnjTcoz5yB6mxJtEW2lKqyFe9D1EOe7h32T+LVPCPIZDZEadp2R1\nkfSF+RI/horC/bzEz299nr5WGlu0yUpggJetp/iS9ONMM8sIKxTx47dUETBQhBbLjNAwYKaWJepX\n8RzwETbTeNsV6qKDb6Y+xlJyArMEelPC16pwRLuGy1mlZrFzjuPUcLBXmOOnhD/hST7KeY4zLi8S\nE1K4qNDERh0HLdHGg7bncTZavLlzgp+d/APG453KZwPxTZb6hnky9gF27FH6LVu8n6doY2GdBCW8\nzLKP1fwYm6+OoOyrE9mzzZqYYKG0l7nkDOqawmpklHQlRCiUQfigSvO0lVPRV6lZnFyoHqe85MXi\naOH8Z0Wqvx1A/boN6hKZH41jf7hGcH+GAcsmMVKYCHyk/k3EtsDveX8er/Te+Sf7O7PD09iPRNn/\nW7/KyMq570RPdFO+u8kosBvrrNFx9nVrfLTYTUrpyiPwVpDusuAu61Z5K+Pu1ce74O/s6dsF8+59\ndPt076F7H115pQv0XV26y9a7Y6i3jwa7TtLe71DjrYk6e/70abyvFpi/77eoWbbh5TfeydP9vrA7\nDti/ufZrBIfy+GxpfGN57vrQa1TdLuqmA70pcdjoFNWdvz5NacxHMJThBGe5JU2SlYLkZT8CBg3s\nPM1jbGaHqDZc1GJONrQE6VaUG+Y0PimPRWhxqXGYOWEvATHP/ePPcc/Ay5TsPqb91/BT5IJwFNMO\ncSPJYGODlixSF6xsCIPs02aJsMM1aYYNYZC8EKAuO0gTRpAhHtmgbHfTEOwIVgMlryImAWcTQgZF\nnLubIbCGN5DHrlZxiA2slhZD6jo/s/qn9LOFy1lmMzJA3hoCWSAmptARsYdr7PyLGdSRBnG5QXQz\ny3hjlQ9Kz+BzVlkcHicbDtEOiMSUJBtynJfFe9mgn4/ydZ4tP8aiPsUV7yH6xG0e4EVagrUTl42D\nGNvsKS8SrudoBSUqfV4Ksh81aKEh2/HpRUS3QUO2kfJF2aIfEZ0KbjyUGWSDk7xBP5tcslVY7h+n\n1fZi3VYpRX2M2hcZHlol9YkY6b4wpgsetj7DcmOM1/V7qAgempIV83apNsFqIgZ1hD6jU8CrLqAZ\nFvSqhCRqpIQoEWLs5zqX5QPU2m4+lPoWQc+73G/mB8o8wD7uW93g/safY12cxV6pfpd00WWwvdEd\ndnbZtkwHFLvSQm86ejesr8tWu+DZm7giva1vd5xettx1ZPa29xaO6lq3jonMbuakpeczezMwe5No\nukk1vVmb3b+7YG4pVhleusE/V/4jz6RP8jJ3A9f57uq63392xwH7i9VPIk3p3Cc9y0hiifuHn+Wa\ndoCUGcMQJE5LL7J9a5CvP//DuCJ59kTmOM55luoTrBtxgt4cCFDDyUvcz05pAK2sUAvb2RHiNLFz\nQ9/LkLFKn7RNrh2kLjpw28o8vuez9AubbNPRpWs4WTZGCbdz9OW3YcWk35Kk7rCyKQ1wf/MVfHqB\nJ9w/gi5IBMhho9mJS7ZY6I+t48aD3WhQcHnZKPVDWSSiZxAdBoquEhDzWIQ2PopoQYGS5sBogi6K\nJOqbPLr0Mg2HjdXoIJdCB6goLhS5TR/b+IwSFrdG+p9EEEUFodWAqkjfeppYLsPIoWXmEpNcG9oP\nQKSWJp/xsWUdwHBInPa8ykprkqvaQS55jnC/+SIzXOOCcAxDl9ANmbrsJNpKc6h6jTc8R7GHawyF\nlxBUE7MhYTdaSKZBW1Co4O5ITajsEEVHxGeUOKRdISGt47LXWR8eorbtxZZs4Q5W2Ge/TnRoh1tD\nkywyTg0noyxRrAdppVysa8PgNhBFsLhUTAn0LQuhoSxti5WcGsTwSlhRCZMhrUeZbe6jr7jDm87D\nGLrMT859idKQ805P3feMOawCwxGFRwpneWT5j7hCh6H2Rnho7MYpdzfd6oIv7OrIvUWXuqnn8NYQ\nQAsdoO+ybJnvlkq6DL4LrN0Ijy5odll2F3x7I0C6EsvbdeneePFuerrWM1ZvOGBvKGL3OXRlGw1w\nVVIcO/dHEBDJJsZY3ZGot4SeT/v+tDsO2MNjS8xf38sbvhPElC0esjzHS5UHmG9PYZMb7LiiVOxu\nhD4TxaUiSxoaMq1tB0Zbwemq0ZYtNG/X2JDsOg3DQlqMUBVcCLKB3dqkLjuoCi4+7voLVMHChjBI\nQfBhoY2IwTZ9hIwsP9J+AmvKwP5CC+N3DWy/2qLvQxkOua4Qy2cINPJ83PEXZMQQFVzI6GzTSeBZ\nZRgBE0VUecN6F2cGT9IM2PnpuT9jNLdMXyjDAdt1CrKPFUY7GZySSMERYEvox6arGI1VbiQmuTY8\nTd3ioIQPGY19zDKurhAp5dHXZES7gRjRaQ1J1OesuL7cZOBWisL9AW48onOEi4zdWiXyxQLDiSQ7\nMyFW743zuP9JTpsvMStOM2BsMmhssCoPc7J+AaWl8Ru+f4nkN8Bt8PvmL1DWPEwxz2Op59lTX8Bi\ntrFXmtQCTrbDfXyUrzHIBkX8XOUgcTXFB3LPkvFF6ZNTfE74F8h1nZLq4aoxhY6IgEmcJFZapInw\nNI+xpO+hXbCw+vwEKGBMCvhmsugZmeoXfXzokS/CSYO/bH2cZtpNxJrmUeHbvNh4gBeXHuTCs6d5\n/+lv8KHgV/A8VebiAweAhTs9fd8TNhpd4bM/80Wk86tcf2qXjZp0wLkLhC12dd0ukKq8tRxqb3RH\nt703yqO7cUFX2ug6/7rstguUXeut4NdtU9iVR2AX0I2e893Pqfd8drNnbL3n6JVqWuwy9a6k870g\nuAKcB47f8xccO36Jf/lH9zK75vsben//2B0HbNVuoX/vGiPuRRqCnWeNh4kqO5RZZb2dQDclDEOA\nNvjNAglhnQluMeO/zHB5lR9aepLZ6B4u+w6yRT/9ng189hI+KcdGIMGOtY+4dQOnUMVDGVEysNMk\nxg4eysSKabyZKi/33QNOUCQVb72OTVIx98JaeICkJdapAOf207JZKIo+ivhIqnHms/sYcK5zyH2F\ng61ZNFFCUwQE0aRptdGQ7VwYPES56eJA9hpjkWWKcmd38ypudEMmquaQBQNLSUNa0YnKGUq2TWqD\nDsKWDEEjz0hrg+h6DsdOg2rITsunYAgWbOdapF/VuHrVZLqu0h/Z4q4HzqNLIplQCMspna1AH1eD\nB3g28zAP+b7NiH2ZNjJ2oUFZ9FASvCxYxmhiZ609hGERaFkV4nqSY1xgP9dxuKqYVXDvVNHCIq07\n2wAAIABJREFUAobHwGY2Gc2t46XExdARZhv7MZoSN+T9rDcHsMoqDzmf46h5hf3ZTdxzJb4Z/iDn\nfMfpc25RltxkCOOhTMiXpjTpw2sp0hYtVKMu/LEsLmcdsSpQS9jRwyIj+hKKXSdOEkk0wCLQstgp\n6REu7hzHqdQRT4lcG50GvnWnp+/3vVkfi2M97KK58lWk9dx3wBF2pY9e59/bS592GfXbK+f1Ovfo\nae/t3yuHyD39u5EfXWbfC8Zvd2bSM373fW/USq+kYb6tT/f7dBcAg7c6I7vtXTDvTbgx6SwA9dUc\nQtCG9ccHsV500Xp662961N8XdscBu1AKMHJkgUPuy2yLMV7S7+ej1icJCHnyZgCr0ETWNISqyYC2\nyQQL9LPFcGgJU5C5f+4VWm4LC75xdCT6XUtMcbNTwN5v0vaLDLJGlDReSkjotLFgpYWDBtFqhsRG\nkuf9D5B3BGgaDoxKC8EFwkcgOR5jzTqAXW9S8HooiU6yhMkSYlGb4NnCo/wQf8FB2zX66zuImkZN\ntLLl66dmsdOU7LwxeBI5r3EkeRV/oIhMCxGDrBZGb1sIqkWiZgaxZiCVoS+VxgiJZOJB7JY6A8YW\nsVYGIWdSzHqp7rfS8ikIGQHPizVqV9rMWWBQE+hrZXFpRV4XT7I5GIdBg1n2cLFyiOvJgxyyXmKf\neIPp+hwNu40l2xgpYmxJMnXDgUVvsWyOUpNc/Kjlv3C38DojxgpJTz+VghN/q0Qu6KEdlOg3t5DK\nJk0cqD4rc9lp5rU9fDv4MGrNQX97C1u4hsPRQDFVYskMecK8oZxiv/0yNclBAzvv4wVCvixWXwNl\nSqWFQs10orTbxO1JJh5b4Dr7qeJiXFzEHy5g0VTWakPUZCeyU0OIwMXCcZK2AQoPeWm773RVhe93\nkwArsUMu+o5qLP4XkcBqB7x6dd7eSni9RZq6RZV6NeBuv17nYW8Ux9tT0pu8NemlC4y9Gxz03ksX\n8N+eYNNbZKp3Uei9ny6T7zLmruTSZdhdh2p3VnTPiz1j8T3eZ65BuSrQ/1krecPJ6tMOOjxd5/vR\n7jhgl14MsLY0zsAPbRGJpXicv+bDzadYEMbY9sSISTs0cNPdcHeEZa5ygP+PvPcOsiw9z/t+J9+c\nQ+c83T0zPTluDrPYjAUIkSJokUXCVlGiaMm0ZJdUxT8s25Tlsi1KsmWxTDFYjCBYABfELrARG2Zm\nd2Z3J6ee6Zy7b+ib8wn+487ZPt1YGiCBAUb2W3Wq77n3fN85596vn+89z/e87/th/UHqqpuhA7Ms\nunsQMelgHZUGOUKs08Ga1UnNcqOJTXZziyNcIGTm+UQ4ytvCkwQokghk6R9Yxe2uotUbdG5mUG7o\n7aXjwxDxbqI16/QXVin6PFQ8LqJsEiKP11Whf3CRw80rdBdTqFYL4ZaFa86EZyHXGSFHiMeNd+hT\nVjGjIktqL2sk2jRH/jYRM8dGJEK0mscXrcEzMJ/oZiMRY496HZUmiqST8QVZ29dBYSzIeGCSeH0T\nd66Fmm8xsheSvwiuUZHagERTU+gXFqjfDX3fz1V2u27xC51/QLexQWShAJcsXj/4FB+NHWedDp5N\nv8WB0jXO9J7g1fLnuV3aQ6E7TNnlpWUp9GdWcUsNGrtVToceISXFeFD4gNe7TpFoZPj7ud/n1tWD\nzAqjBE6VKFRVQnqJk5znxtg4p/sfYr90BZdS5Kh2jpQcx0AkwUY7fS3neYJ3+B3z7xIW8jxrvsY3\n1r+MKauc6nqbOGlW6aKGCwFYL3Tz8c0HKcT81EUXZkKA25DNRPlO9+cZ7Ju+10P3PjcfMMqLf/Rt\nPv/ya6yvpT6lP2wwtkHSBjz33U1lK1+Ik4O2/zrNGfnoBHCD7wVW5wKlfZxzsVFnu/rDnlxsSsVZ\npcY2acdmn9u5X7/7nh3J6XyysL18p/Svfnffd/d1dC3Ff/3f/SteLj7H/85ztOtE3p8qpHsO2PpF\nhWI6zE32sdHTScSXg4JKoddP+bCPs40HKXmC9EzMM1PaRXXFg9jVZKaxi6rp4bXwM3SLbWmXzSHr\npsztxhiSZDCqTBFmE4AqbnqEZWopD5dXj7Ia7sfyKvTEV3FrVcKtAprVpHwdyIK/E5SeFh6zSvij\nPMp4HU9cRV3QKd+q4M+k2Dss0NeZwRVufEqwmaZIiiSXOcAtcw9d5Q32mdc5ELjKW+YpxIrBS/q3\nSTazeCoVhHUTIy6SD/uo+jyIkklnI0V4fZN0NEYqEsct1xH8Jj5KNFEwmiKCx2DxiS5Mj4B3vEIz\n0WLOM8DHwjF8lImTpodllunBW6/y8PKHaJpO3gpzo2ecm/5xVulCRyZkFRg1pzBEi3VXF6YlkZA2\nkNGpmF5CxTTWtSbpKS+zP9PLnb49mFWZulelt7lM361ldntvkomE6ZCXuePdTdxcp0tYYcXXybzU\nz/TyKIRNGi6VtWwvhgKC26KlKESFLF6jip7XKMsqgh8Cnjwd0ho9LDPJGJuNGDOFEQSvQVEMUoj6\nqW+4UAyd7oEVWl6FelOjFtKoyu57PXTvawv31dn3+SX6P7qD9PEsMluSPKdeGce+TRvA9tzUTnN6\nuzsryDg9cWdAy06VyF+l2Xbqo3fSE86FQdtzdhZRcF6XM1Ogfc1O+sQ+h+po7wydd6pgLMBoNDFu\nzdJ79DaPfX4PV79VI7f4GV/OfWD3voDBPDRMjTvLexB7TcQBg29nXiJ0LEvi8DJTzVH8/hJjR25w\n/s2TGKsS453XKBgRSnqAdxpP8NPqn5OQUpTwEyWL3lSY2xhiT+AGuyO3kNDZIEEDFb9QJpNJsnx9\nkNsDE3gHqpyMnyHYzJNopMGA4m1gDnxDIHWbSC4D64aAGRWRBIvQmQraX5bQZmH0afA/AkyAJYEe\nkCn1+ZmsjvNB8SHOuh+mVIhykg/5cugPeU1/mpHWLL31/0BD1jAbIqHJInm/l1ynnxxh+vNrdKQz\nMAU3x/dyOzLMOJOfUjplfLilBkq4xdQXB7BE6GINn1DmBnv5fb7COJMc5DI+ykyZo4TyJR67eY5a\nr4fp3iG+OfICK1IbrD1UaLlkiqYfr1hhV2ASIaAzwCwaTQqEiOsFmjctVr7hofSQi7mOYSaLEzyt\nvkpvdQljSWTwoWmMPoPx1m2CngKiZOKiRgcbBGtFvjP7EvGedcLSJvlslJpHRZANClKQquRGMXX0\ngkbF5WYl2E13bJFuFqjiJk2C5XovKxuD1BMiLY+IkqjRuqTirtTpOzFLbY+LvBWiovtofSbc/P/F\nNBLdNV78yk18jSVmPt5SgNiKC9heDNfWJDcd+zuldc7MeE4dttPDdvLWsAXOdlvY4qyd2fpsL9up\n/HBemx0AY2+2J27fgw3Y9n6L7elYbbpEdPQtO85lq0qcfdkh+DULbhrg3r/IC794hrULI+QW3Xev\n4v6yew/YCdr0wxHwPFzCd6TA5nKCRHSDk8I5mh4Vl1AnZOaZe32UlqCw69Qd6kEXC/lBspOdTPeM\nUYr70ZHJECOfj9B8y0thX5TFE32IGFTxYiG0c4AM1Pn5yO/xpvY5NHcFyTDYP32L6FIO0uDN0n4W\nWoKON9K0dknUviTyavIZsmsxvjL7J4z2FBkYA8840AJrHpoHBNY7YlzL7uflr/40V/snqH9ewyyL\nXFs5QDoTx3jQYr2rzL/y/0NSQpKBwDx/J/7HNAIqLSQCFNHkBpYKggKXxYN8wDEOcolVOtvFG8ig\ncJMIORR0PEaFTn2Nuqohiu2ozmFmcFHnHZ7gwcpH7M3fRinovD32GO9EH+OKuJ8kG4wxSYI0dwLD\nfOw7TFnxotIgQQoJkxJ+qrKXwECRyi+4WHx2kJ7RFF90fwMx8XVcSg1fskjqVIjNUBBvucqppdN0\nd66SiUTIEaaPBV7yv0zsWIbdS3fw3yjzr8dkFv09BJQCLVHmBnspy37kzioxsYBKg8NcpI6Lf8+v\nUsXDcfEj/gf1N/gz7ad4Z/1xpr+1G31So5HUWdeTWAhU614KazGKUuSeD93713ah3czT9StfQ19Z\nosgWWNrcrtOLddGmQmzvuskWl+3MH+KkUZxqDxfbKQ9n/g6n52rL8WzAdga92PlInIminNGLNsXi\nlPjZOmznguLOLH82p+1UodjetZ2LxKnNdhZT8DjOWQO0V5dRLosod04BQdra7PvL7jlgB4/kqE75\nSB5fJX5kncBAjkJwA1k3WMn2E/NvEFZz9OjLeIJVVuvdzC6PYiUEBj2zJPxZLFVgkT7ipEmygaSZ\nrPd2kQyt49FrTBb2kNeCCD4DE4F93uvs9V4jZcUQMTlrPcRxz0U0rUmwXsLdBfhACIHrVgOlKtB8\nUkLzNFGDTcxDFv4iaB6FjbEI3mYVzWoy7+uiFtRwS2W6h5ZYinSRN/qwBNC9MlXRg2GIrDV6+Njf\nlraFpRwuq4kkGyy0+jhbe5gBcZHe0BLaQJNKyI2XCov0kSLBAv2s0klBCrGk9LEmJBlgAVE0Uc0W\nAQp0iOuoNEkT5wJH6JHW6QmuEBmV2gUWNJUQefpYZJgZomR5q/U0F1uH2SPfwC+VsGh/px0rG3Ss\npSiN+rg9OMqlwcMc4hKD9ZvESpukAjFkrYEY10mK6+TMKNPeIZJWmmgjy4w6QHx1k1g1z1T/LgZ8\nc3Q31znsuYDXVcRCQEFnkyhLQg81t4tiOsC1lcNkkh3UQi4W3L0c5zxd6jKpSIRsM4bcMjna8xGG\nX0KPiZiqRTYTp7weorHiJtyZ+eHrpv8nav1PVtgVzGC+nsKqVrd5lTZw2ZSFXeDWzpjnDPN28s9O\nL9sGWCd94uS5bQmfM4ufc8HRDll30inCjg22e+o7Q8pFR3/O63JuO0uROScSW5a486nBuRDrXJCV\nAXO1ilFIMfx0hlJeZvGd7/3uf9J2zwE7+lgaXVAYevA23UPL+CjTiGjczu3hdOoJJqRL+KQSmthA\nPGmSXkvy3rUkuw7d4MGe03xp5Bu8zBe5qu9nuDrLsDmDIrXIPhGlV1wiVC+wstFP3uvHI5Uoi378\ncpkx6TYHhCvMMMwbwtMU+oLUJRehchFtfwOpYWKMiugzwAK48gb7teuUgx7kLzSwbkOt6Ob2viE6\nG2mi5Rx3PKPEhA3GfZO8+HN/QasJC5UeBBGCfTmGu28xszxOpeCn5nfzmPE+p8rv0rmWphkXuaFO\n8Dv5X2E0fIOJ6BWC0SI+Suwzr/FJ8xhVyU1DcZGzupmThlCkFlLDoCUq7FLu4NUrRMwcw+IMJiIr\nVjc3rL343GX0XvB3byKLTbpYJUGKblZIsoGXCvWKh1rFzyH3JRSpHQhzi934F2oc+egak4khJgPj\nXOAID5jnGNqcJ34nh7KriRmGgFliQrzBLXkPb/Y+zpcKr9CdW+WmbzfSNLhyOs2kC92j4DUqHOUT\nXGaFtBhHRqeFgmVJlE0/y8sDlM+GUY818Ct54u5Vhow5LFng38b/AZPz+4lqmzzzt/4MRWxRsIJM\nibsozkWo3vFj5QQ6Emtk7/XgvS9N4NBLkxwbnKV4tolc3Qrvhu3BITaoOrliG8CceadtgLeVFrZG\n20lz2BQKbC/TtTPUveXoz17cs2V3Tumek3d2RlU6QdumMnaqTb5fsS/bazc/Y9/uz9ao23m71bv7\nNX+TY790BWumyOI79pXfP/aDArYEfEK7DPHngQjwZ0A/MA/8bSD/WQ3TIzFaPoXlSC95ggimRSEX\nRbdkEl3LLKf6KJRCTHaPseTtbfdyBrRYE29PBR9ljvIx5rzM2T98jAubJxFjFrnnw0yG9uGVK3iS\nBVpLIvlLccSwydX+wwgDFge5xKO8z5PmO/z55peZkvawdjTJk6nTJI0N0k+GaO5TUMQWsa4sHVMp\nhE0Bd5eOmIJGXWXZ7CHrj9HlWWVEukOslsPdaNLlXycpbxBQSuTm3dQCLgo9Ab4Q/wZJYYMmMvvX\nbpC8lEF83UJ9wmT/kev8y9h/w4qrkyqeu1GELbL5GG9+8DxGv8DInjv8QvVPmZUHeNV8lsXTw9Si\nfvzHSoTlHAotHuYMGk2MlkS6EmfGO4xHrdIUVRaFXnRkxrhNligrdBMizxOBt/mi5xv45FI7YpE8\n5znB67uf4r3ORxiP38RDjX3mdfpLy4TOlxD/o0XyoU2sMQstYTFaXqBTy3J84BIdCylca3VOVU4j\n7WrCcYsvWK8QfDmP66Myj/zih5gTEqdjUZbpYb9+lccb7zOV200NP8reFg/0nsEfyJGxInw99bM0\n0ah0qtQ0F1XDzbwwyAvV1wgaRco+H6m+FeoRjWI9QDYY+iGH/g8/tn/81tZ6HPvjT3jcd4GLxfq2\nwBHnwp2TAqg6jrHrMjoXAZ15p20A1dgC0p0SQNu7dWb4cwbo7Exc6jzenjxsGaANok0ci4CO62g6\n2jk9ZCdVYtModiCOff8ux/3bvL49mbUcmzMIR83XOfI/vUezUuZbPEabLHHqVn6y9oMC9n9Fuzix\n/+7+PwPeBP4X4J/e3f9nn9Wwt2sBNW4w5L1DCR9L9OGXSshSE8nbolCKIsk6LUHB9AtEuzOM6rdI\nBFbxU6KGG40mqtVgQ++kVAzgU0rskm4TU9MoSpO1QJxGQCPoE9vAqkwxyBwKOk1ULEFHkxq4qRFq\nFlDkFmlfjPe7H2BX5zR9rSVEHXzVCnpdZVXtwJWsoxcFum+uke2LMNM1iNvsoE9YJiLlucp+5hrD\n6CWVYCCPGqzTFDT2uq9xQL9Kq+JicH0RoQIrvR2EhAKeSo1kzxqbcog8QUx87RzhYg+LWh+qUmeI\naUaYIkKGNTHBuq+HO/Iuvl1/nl3qFAcbVzlaukgl6MIvlhAlk0FhjhgZbgh7ma2O4DarjHlvExLy\n1HFRxkunukZMTZERYlTwUsNNH4tE/DlQJPrTK7RcEv54iZLoYy0TJ3luFXV/HXMNqt8FLyWCyVJ7\nDGeALHSX16jFVFpJiagrBwELvUPC5amRkDYYYJ4CITxCFUE08SplXJ5au8ivN0dQzVGx3BiySb3l\nJpProNFyUSDI1coBBqxFRsUpeoVlZtK7aM0qGBsSxZ4fGWD/jcf2j93iQdg7hrH8Xcxba6iNLQ8R\ntnvOO5UasFVKy+Z3naC7s/biTl20U9e9U9K3M6uefV4nT24DvbPYgBOInXy6zYU7PWQn/+2sbqM4\n9u3rwtEOtvPWztwkdht7spAAqa5jfrKK0X0IntgH1ychvbnzl/iJ2Q8C2D3A88C/AP7x3fdeAh67\n+/o/Au/yVwzqJyJvE6DASc5xnX28Lj7D7tAkOlI7crFnGT8lQlaebLgT/4kyP/vTf0iOMIIFq0IX\nq3SxGYsiPmMiLerElDTPD3+T48HzCJj8Jv+EypCX7qElPsdbnORDBpjnNeM5zgsnyIsh9oZu8GD1\nPE9ffwerJvBh4Dgv80V+tfLbdJUzn8bD5n1erveOEx3M0Lu0zCN//iGfHDnE212Pclk8yH73Vfa7\nr/J166e4kjlKY8PHrokbKIF2QYaYkWWsMkUwU0FYhXQkyuQXhxmdm6PecnGJw2SIUsFDE40sUVb9\nXYgPNAgoOXxiiZZLYK9wlbCcYeXhbj6oPcib5c9RC7jZVZqje36D6V19iGGTpLLBi7xCghR/zN9h\nMT+EW69Tcfs4JF3EQ5WPOcaK0M2a1UWBAFmiSBh83voWY80Zorki0lWDpUQn1xLj3PSPsqm5eaSx\nin836E3I/geIdot494Aome0VGxkIgHuxiVaH1iMgPC/Set7NfKAHSWpxgKuU8JOTwpxzn0BzVYiS\nYr3aQwk/Mk0UocVj8ffZKHbxOyv/AAGLmuThcu4wlYiHY76PeJo3kD6Gja/1wicgPfMjCWz4ocb2\nj9ukwQjq3z/J9O9+leT0VuImG3ycWe1sr9amS0zax2t3+6rdPcbLFmVRZDtY24uXtprCBjcbjJ0F\nDRRHv/YvY4eXw1agTZ0t9YizgK4t0qyzFfZue9I2MLtog3mNto5BZSsLoFP1YnvtNvjbE4htNugL\njmNVtmidmwbM7U7i/rsnaP5vKYz/xAD7XwP/Le2UYLYlgY27rzfu7n+mvcgraDQwEMlbIZatHlqC\ngiBYNNA4yTl6WcQlNOiILZMnzAXhKDPlYZqWxoBvjrwQouHTeHjPdykOBqkJLs56HiTBBge4Qj8L\nuKiTtDZ4pHEGj1hpP+5fe4EFTx/B8U1+pvwyB5rXsUICa71xclE/HeIanhvV9h30QDMmogar7G9d\nw32xiXe+hnzAxBiSkTAZ5zb9LNJlrPJPS7/JgjLA4kA3u103KVp+Js1xBq8sYp1uMPcdSPog2F9i\nX2qSyf2jpPpjDEqzHGlewDBlrml7WRZ6CIl5jrk+ZlCcY0CYJy3FEAQLhRZDzNKvLjAq3kGXZaLB\nFLO7erjsPYBGg1/nXxAnRROVQ1zi0chpfGYFWWzyIQ+QIkGEHEfrlwjqZf7Q82U2xTA9xgrRSpG0\nEOdi5CBHJi4ju5v4KbULFRxSCfw6CHtB1iDyO7AS7EU0JEZW5xH77lZxvQl0gzAIigV3lEFuqONM\ni8PUcaEjkSHGAAuMGDO8lnuRGh66B+eJedLESWEiUCSA5bH4XM8r7OUmkqBzTZwgoW4QJcMdRskI\n8fagqsCexDWu/fXH+490bP+4bX/4Mr989HXEv/wQ2PIo7ex3O7PzOUPL7eOdiZWceTlsoHdOAPbx\nTv22MzzcqfKwOXP7mmxv2smlw1bGPbsPmwuXHfs4zquxPe+J3daeiJzRljaHblMsdp9ODt25AAlt\nwLcVNPa9uYGn4u/xxKFf4beCXVzCx/1i3w+wXwRSwCXg8b/imJ1pAbbZK79+mZakINQg+JibE8/1\ncF2foCmqxOV0u8Bt1eD25l5KZpCS28+Me5iUkKDa8JJLR5H9TbxyBbfUxB8vEnWl2lVTkFmlk26W\naaFQtTxU8FLEzzS7MCWBgFggQhafUKLu0bjZOcpmIkjdqzLOJGgma744ll8kHQ5j+AX6W0t4pDqi\n36I6ptKMyQhYn2buEwWLAWGBHnGFw2j0lJfJaFFCrjySZFAq+xFv5xCCoBWaJLJZFvqqePeW6NWX\n6WykEHRQ9RYhrUBKiSPLOru4Qy/LXBP3YSDTwXo7OKaxysnKOV4NPkdWDTOsQEXwUL9bWixNAlez\nzrHyRVzeCi2PzBqd3LFGuckeRoUpjtcvkaynqGtuIuTYbUzSQqEpyuiayFTHEIrYRKFFF6t0RtNo\nB0AvQ1nzsf6FJNPaMHJOJ3JzE7HTQjYNfJkKeq+E3iOBZmE1BOSGgRQ0qMsaddyEydOvLzLYWCBm\nZVlp9GBWRVqqgqiYBClRxYMiN9njv0aAAqXNAPqkijyk00yqTJq72Uhfx5V7mYbbTf7Kwt9owP/o\nxva7jtcDd7d7aSLxTIpTp1/hznqZJb4XhGyP0Rk+bgPbTtrASWfY79kVYOx+7M+d1ISTFrHfw7Ev\nO67B9sydwTG2htru27no6JTv6Y73nZ85ZYfO6zf/itc4+tiZM8V+MrCliPYmAv2r8wydTvP17Bdo\nz+ffb6nzh7X5u9v/u30/wH6Q9iPi87Qn7wDwh7Q9jw5gHeikPfA/0375V7qZDg/yyIVzBCLvsmje\n5pdrv82GnGSXPEWcNLeyE/zWxX8EdfB15VEeqhP1ZvA2aty4c5ihodsYPpl35z/HeMd1nup4jV8S\n/m8uWoc5zSPsFiaZNwf52DpGSMvhE8pU8fLQwffQqGMhUvK5Oes7xgL9BCmQIMUJzlM76uYqu2kh\nc4MJTERekr9J/GgaCYOS6Kd29yEuTRwvFeJimqVgL4PZJQ6u3cAyBJSICb3XWDjQT72iceJWrr2M\nlQJWYP/zVzGaAnLLQmpYSA14SP+YeDjDleBeLnKICJuEKJAmjoGElwpeKoQ382hzFm9MPENHYI2X\n9G8RUzJMCyO8zjMMMM+DlXOcnLnImYHjTMZHsBBIW3EWrT5yUpgn6mcYK0/hDVc4aX3Ic8Z3OO87\nTsJIcbz5MV/VvowgmRzmIke4QLSehzTIFyEzkOSt0SfJCyEisU2Sj65hIuIt1dnVWqCcdFGOuxCx\n6JlZoS+7Qu/eRa7Je0kT52neZLC+RKvi5kj4I9bSHVz96DDxU2m8njJ+Sqg0kdHxU+I16zmuzB6i\n+O+iPPxL7xI+lebDxgMkf3mDiZf2cuOrh4gfu8bSK3/wfQf4vRvbj/8w5/4bmAwXwPpKBYPWZ8JH\ngy0+1tYw27SJ7Xk62znB2NZr29yx3c/OKEc7NSts12Y7803X2Ao50djizJ2Tiw2sTmmgDcYutgJd\nnIE+sJ3asHlvm0aB7RGUtkcOW3y6896dnLfElmcuAcZ3Dazv1tny/+91KbEBtk/6733mUd8vXOxt\n2o+N/5b2Snon8DNAHzAKnAX+S9pTw1uf0f6fT/zGF3hLOcVrwrNU/B72ea4SVvKIisktcTch8lQU\nH+vhBEpPA09nmbB3E1EwqWZ8ZC8kaJhu6pobT6xE/aaHxbNDfJI7wZm3HufGaweYVCe4Y+4hp0cx\nVQGvVGWkOcMjNz+kr7SCHpHYJEqKBGX8d//68FBDQcdEJE2cEAVGa9OMrsyxTC+n3Y/wF8KXMBE5\npF/mcP4a+zdv0p1fQ9UaBJQCgmbxZ6Gf5nTgQVJKghW6Ua+0GPmjGYQTIDwJHIVbJ8d4PfQM/674\na/jqVYZbsyDAFfc+Jl2j9LPIIPOE7wbL5AgzwzAdrBOVs9SDKpf8B1mSe7gm7ick5JAFgxmGOcxF\nDulX6a2tcS24h3PSSd7YfJ7b702gXjZ4ov8dHr18hrGPp+kJrrDo7uM197PExDRhIY8uyayI3UiC\njkaDixxmShmlGPPDkIE02EILNfBRpoaHjzlOGT+6JFNwB3DdbqLcMZlMjpPxRmkqKvHlTVJGkjuB\nXTRw4Wo18elVvuV6AcMt8HjyHbriy3Qpq/SwzPn6Seb1QXxyhZu/u4+1d3sxDsrU/F7IYskoAAAg\nAElEQVRSxU7y5RgH1Us87/kOP+f5Gif7zvHyv7kO8N//YP8QP9Kx/c9/vIAtwOBxYhE3g4W3KFv6\np4EpTk2zM6sdbIGbM4rR9rbv9vqpF+ukCWzv2ElVOL1ym4JxRg06FxidkY47g1uc3qz9vs2POz1w\n0fHavkdnBKezao2t4zB39Oe8bpvfFv+KY5xBNiZtjnxJ0nh311dYC++FzWV+vPYefMbY/uvqsO2x\n8D8DXwP+C7akT59pdY9KthXlI+EBCnqAQK1E1JslKW9whocp40PwGHR4VtBpUw8aDYqZIIX1MFZD\npJQKYnhFujvnyK53sPJRP5Olve2EtsvAhEV3ZJk9npuotHnYYWYIGkUMUyRA8dPSVi7qVGgnv88S\npUiAGm7W6eCIcZGxwh0CNypsjka5HR5jhmEiZHFTZcBaIpQqImYsaj6VVkhmTYkzKe1iWt+FUBaw\nTAFECYZeR39ApHbQTUEOcqdjFxelw7wpPcUjxTPUmi7WOpOsKp3kCaHSJE8ILJhrDbZ1x3KgnZnQ\nU0F3SRzJXmK+OkjVcpOIZhA9UJLa4gZDEVkLJ6hoXixLRLQs3HqNmJ7mpHUOXRG5o44wYk2zXOpi\nqjqCFRVJqXFadBMhSwONJfqYZgTDJ7LuS1LAh5cKm0Ta3DZQuiuoqMsal4L78RTr9C0so/QZ0ABh\n0yJsFIkFs4StHKqhUxCC1DUPm2IYV7DKcPA24l2aSaNBwQqyQZIIWSp1H7gslOMNsgsxzA9FqJv4\nnqzQc3CJ8fEZmtqPPDT9rz22f2wmgP+YH1n2s7os4Gp+tqdlZ+Fz0hk2l+tMyOT0dm3OGrZL/Xbq\nop1KFCdNYR/jlN3ZlIVTjWL3IQog3P2mnWlQHbf6qXrFnoScE42TP7eleM7rdCpI7O/AuTnziTgl\niuaOrQhUJQH1AR+BppfijOPkP0H76wD2e2z56ZvAUz9Io6PWJ+RbYW4sHeY18SU+0h/ib6t/TEsW\n8VDBTQ0LgQibRMliILFGJ9kbHaSWO7B6RCiAuG7i2tNOxUoVsMPLVQuCBg/ET/PToa8xKYzRzwJj\n6iTX902gCzJ+itRwYSISYRMLAQGLMj7usIt1OjCQOdK6TEcqhXTOouHRkHYZnORD3NSZlMcRIiaD\nVy1CF8uUxgLkIgHqoosO1rld3curG1+EOng7W0j/4/9JtVdlMdTBZQ6yLLQXWwcS0wRv5chmI7w2\ndoqq242IxTf5ImPcptdc4vfLX6Gpqkz42qGxXiporSY/f+WrKMsGGALCgzrfGniOeXc/k4zjdtVI\ndcSpoXJAuMTj8bc5/cIj1CwPh+ULvPPQ40ye3M3fk/8vHr32Pg8tnOP8w4e5HDlEhhg/x5+wQZIP\neAg/RepofMIRUsTRkZllmDFuM8QsT/JdBpgnR5i3OcWwb5F98i0euv4xnAVhzUL8VZPe8BKPWg3G\nqzPclnfxmv8UNcGNgcAMw5zkHG7qLNGL11VBFZrMMUjzPxfxGHlEzaQ6GaLxrgvebVLxaMwcHeJa\ncIJeYQm48NcYvj/6sf1jM8Gi+6UFerQ5rG+aGM3t8jVbc2xn4oPtNAN8L8DbHrSdMcOugWh7os58\n2XYgzE41ivM8Nqg6s/85PewmbbBWRRBMsKztHi20/51tb9imZGzgdwbZ2P3Z7W0Fie0Z23x8ne2e\nfMvRr923fe82eDsnL79qMPzSNKUKXP8q94Xd80jHDDGOqR9xadcRdjHJiGeKUWWSCFke510SpJEb\nJk+UzoDfYEHr5T0eYyk4jFeo0DWwQL3lot5ys7bQR6XPCy/p4JaQJlqoUo3AaIF+7ywdwhqv8AJN\nVAaY433pUVboIkCJOCk8VMmYMS589zia2eTUU6+jii18VNBosKD0cKbnATq+sI7RBR2sI6PjpoaH\nKiUhwPmxY2xGohQjXlzU8VGmjI8O9wpfTH4N1WgyyAxvSI/j8tQoij4yxJhYnuRo6zJH+j5hXJkk\nXC3w2IcfYGoiLbfCicRFZqP9TPmGGfTOsk4nmWYcX62OqIisix149UVcRhUEsHLQEUzzkPssEkZb\nVy0sMFpuoeV1XJt1+tzrlAI+rJiIR6qRlNZpIbPU20UhFCLtjREiTxcruKgzUpnjy8Wvsx6Jsaj1\nYiESoERXYZ3nFt9mrrePashNlihV2gu8QQq4izWEWQupYlAedFN53o01IrDo6WFe6MNwKWTEKAGj\nyM+n/pSy6mU51gEItFBwU+OIcIEkG8wzgOpaJMEGDwofcPXEIS6Jh7njGifaXyBMjklhnGuNfcDv\n3evhe1+YAJyS3+KIMkkD/VNgtXNh2LQEbKcenBpoG4icAG5TDran7FRKOANpnGlanWlS7T4MtqrZ\nmI73ymwvHmAAjbsncdIozgVKJz3yWZpym2eG7SHypuO1fe9Oftr+fnZOPjvD0+37a3+u85T8OhF5\nkRsM3A8O9r0H7DvCKGPybWIdGyi02G1dZ7Q5RZe1SkApkCOMaAr06aukrTCNpsoDpY8Q/RLz4X6s\nbp2a5CaXj7F8Ywgp2SCyJ01YL9LQZHCbjGjTeMUK63TQRGW12s2Z8mOcFx9gUe7DrdY4Ur9AWM5S\n9XmYKw6RtDYIWEVGCrO0zCXUUJ0NKUk6EuNQ5BKeep3hyhx5d4BQoUCoUqCacLPRFWeuc5BYI4sv\ntUkkl6eaXSce3iAwWqYhauiCzAI9hMlRw02OMJHmRXa1puizZolreVxqnb7qIrWmm6apkmymEMsG\nJdOP5NNJGimUuklALyGsmZgrwqclrq2KQMEKIGAywQ1Ew6SntkJvfoVQpYwr04IZ6BhIkfZEuGLt\nQaVJB+us04EeUShEApTx0W2sMWTMsSF3IBsW7lYTj1nFRQ0ZHRGTuJHm4dpZqoaLOfrQkbnOBHXL\nRZ+wiMtfoxjzYiJye/8wa48n6WGJIj4qeFlRO9CRietpjrYukBXDVHCRJYqOjI5Mkg38FHFTQxUb\nJNlgnNukR+JMyyOIawLeRBUfZeq4uNnYe6+H7n1jAhb7169xWLvJBbMNvTa47EzK5FzMcwKMkxaA\n7VGO9qKeuOO4nWHkTk7bWTrMqeBwAn2T7eBpWFvKDJm2F+zMB2K3txUlNk/uzMy3M+DHbmf/tQFb\n2LE5F0+dTwrOc9rX+imgmwYHVq/SqhrcexXQD2b3HLDP8hAXOEIVDxoNpsxRnsyfIayUmI4McoUD\nlF0+/GqJSXGcgfQif+/a7/P82Ld5v/NB/g/pHwICHmoIokXYm2MseoOHrbPMCEOsCN08LrzLJhH+\njJ/lGB9zc2Mf/+uNX6emuDHCEoWoxRtLnXiCJfyHsqjPtehnhiFplqGpJQKNEtXjMv9G+TUucYgI\nOR7d/ICOcoqP+g/SdXODoTsLrL4YpxFX8epVHkp/ROJKBuGsSeVtCethEH5D5KJ2iIIUJEgBF3XW\n6WhHM/YliZAiKBfQXA1q3RoLE10suPpIC3FEyWTP8hS/sPpVXht/km5zjWPVS1RDCtLLDYZ/8w6e\n39ChC8yLIrfiI8wme/FT4tHmGXYtzeL5oIEYsNqU0WUo9PpY6OjmujSBnxI+KpznJCImfkrItIjV\nN+mtbvAXwZ/iun8vplfgkHgJHZklettqk1CU5YNJWnJ7PaCDdd42T1EgyNPCG0jHm8we7KVpKnxN\n+1tcYz+/wm8RI4NGgwpe3NRwyzUyPUFyBAGLm+whTRwRk4NcZphpDnCFAEWW6ONP+M+4zRhLQj8t\nRcGQRARMwmzi1u/1qv19ZBYETtcIyFUE3drGx9peKGwPsbY9YoktusSpf3Zyxzbt4PRU4XspEWeO\nERtMbU/ZXrRzpjB1ap5toHQmhJJo11a0ddX2Pdj9OpUeTl7eNps+cbaxPemdtRydYOxMdmVfM47v\nzF7QRbfwfbeBp9W8L/hr+DEAdpJ2knyAMDl6xUUyvjAZKcQMA1xngmQzzbPlt4n5N5F9LdZHYoQL\neY41LvHzA39ETfIgSgJeT5Or6h4WxS4W6KOLVY5wgWFmkPIWZCV6m0uUmhHqnSq7A9c4LF3moHmN\n2Z4+Vv1J0kRQ3Dox2rI9l6+OrsncEnbjo8Sx5iecKFykJrm54xlmZHKBuJRCGa+TWMni3miRU0LM\nhga4tXsM1dtkInadVr/ElDrCRfEw080RNmsRnvN8B49SxUQkuFYmsZrDla2jRHUqvSo1n4uOj9L0\nT68ijFskbmXwT5d5+OQ5UqNxzncdRVYaxI9v0POPlzGHaqDrCJ0m3eoyuiVgIeJSakg+HTFpIgRp\ns7BNKFp+1qQkK3RzvPkJo+Y0RTVIVWzHlW2QZFodxhJgWepGF0S6pDWCFJDRUWgxYV2nS1ilonpI\nkcBEZIB5TglvsUkUC3AJdRRFZ0UdAaG9PvAqL+ClgoRBAw0L8FHmQelDFFpoNJBpUVgNszQ5QMfE\nBp5E+ylpTe/EROKgfJk4aZYii6w/1sXM5giZs3EChzYZ9Mxw614P3vvFLKhdsKiLFqKxFYxi0xAS\nWwEmzlJZdg4Q6+6xdjSfnfTJqa+2AcymMGwQtCcAe2JweqV2ZKDdHscxNvjtnFiclIvdxual7Tai\no09ngikb7J15SJw8uH1ex9f26Xdj89fOTIb2d+cM4tmmaNEh/4lF3rxP0JofA2AP3BWDa7Qfc4eE\nWWpelTQxZhhh2hwhoJcZa07hNsukPVFm+vvx30yibyokfBlqQTceucZYaIayS2ODKE1U/BQZYJ4O\n1kk0N4mUivhLZS4G5ujtnWckNMkDrdO8mH+N69FxbrrGmWScIgFUWjRQKUQD5I0wZ8SH8VFijzVJ\nrJHlamAvWSnMxNQraAM1ssNh0rMd6BWVulvjetcecskg7oEanuEaqDAv95Mn1I7obPay7OohQQqN\nBqFMkcjNIkxC7pkAm4kAiqATTJeJzBVwxesoizriLYvdPVMs9fXypvcJhpmhuU9G3d3CM7WKltMR\nvRZdhQ0Mj0g6EUdqGTQ0jeqwn6rXg+kV8QxVWQ50k7HiBK0CUWOTuJlmiBnSxChZAUJNlbLo4Y5n\nmBYSnawxwTUkDAJmmVFzmr2NG6hCgxVPF+5CHcky8QQrPFg7R84Mk/LGSJsJJNNkg467v/M6JcvP\nGp2UBR9NVGp1D0qjRcybpUtexUDGQqRS9bG83Ed52E8ZPzlCXLEOErWynOJt+lhkwD/P4v4+3n3z\nc1yeO8Kx0Q8Y8s3c66F7n1gbVjLzIhnHu7a3a4OVM8udDY47F+ts8NJ2tHX2YQOiU+9sg6kTPJ3e\nsxP8dwK2DfrO/NpOhYdTAeKkLpyUhZOise/N9qzta7GBG75XSqiyRas4E0iJO/adeVBEQDQhPQfp\nT3txLpH+ZOyeA3Y3K1Tx0M0KYXJEyeCnTIYYM9YwK61uOqQN5uNdVCQ3Vdys0skbQ89wbf0gxY+j\nBCeyhPozBLsKCJJFnDSP8y6zDPIWT/Elvk4rqjDn7eNI5hrDrimeib5KWkxwWx4lqOVpSTIeqgwx\nyyccJUOMIkGuRwLMWUO8Iz7BS/wlIXWTtzseYUXsxrdRwUhLZDuifBw4yB/s/UXSVhy/UGS3eosw\nm+iizOtdTxIjwyBz9LDMC+qruCM13hZPMc0IHazjlmrt0ZCCm/o4KSXCA81zZB6LsfJwB0OuWcJ6\nCbfVwjoGG30JrjPxKbVSb7qJfVjEv1GFBEgbIA8BCXCvtajpHi4O7uOWtJt60sXY4B3m3ANgwc81\nvkpd0ljUuhgQ51Bpsqk3eDH7BiuuTs5HDtPPAj2ssJtbvMMTKPoqj1Y+REs1qWka/oESz19/g3rL\nxdzDAwwvL+Kup7m1ezfvq4+RI3xXuQG7rUme0t/koniEb0vPs0mEQipMfinG2b2PMBSawke5nfe7\nw4f0eA1/rECSdaJkcMkNNBroyITJ4aWdtfFq8AjXKwc4U36YB4vn7vXQvU9MwyLAHCoxtmgNZ9pS\np+doqyac4enSjvfsvNgGW8oMJ21hA6PkON7mjm3Qc7MVkVhjO0e8E/Bh++KmDX11tgDYVn7A9ieD\nOtsnCTsQxzabzpHuXoet/Cg7rsUJws7rcEoB7QnLzZaO3ATWgA1UIEy7zmOdn6Tdew/bnEeyDObE\nQeaEQW6yBxmd241xLtcOU3J5cdfqxDM5IkKRmKtAZyjLJe0IWrRGeCSNGbQoCgFqipsnje/yePU9\ndhVm6fatkvFGGaotoSzrNNIq5qCFFGgSkzKUCNASZIqiHwkDLxViZFBp0kAjTRxVahKgwIu8wrHi\nRfrLSwQbNZYi/Vz2H+SDEzOsxDs523iAS3eOUhCChMM5hhKzdLrWGbAWEEoCgmQhBHQELBShhV8q\nkSFGigSDzHGh8yDZ/hgPXjhPQ9JYkzp533oEUTPxl8ooF0xE1aTwpIfrfRMYXoFneY0RpkhsZvGt\n1Fgd6eDKrn0s+3uYMK9jhaBAEL0h0zBd3FbHmBTHqeGipSkMV+fRNlv8cesXifpTDKtTJNlgsLZA\nT20dzV3DdLV/pwo+skTJEW5XrpdWabokzkQfIytF8JNH7BEwTZGmKGFpy0iCQUPQWKSPesvNT5W/\nRWQmh3u5xqg2z3nXI0z69lFNeCjWQuiKgiHchQELMs0YA9YCv+z7PZCNT6vVL1j9uKw6EWmTOGkE\nLPKEONZ3jog3y5ulp7njHb3XQ/c+sSCwmwpBymxVf3HK3Wx1BnwvYDoz1dncsu35SmznmJ2KEOdC\npvM89nu2Z76TOrEpBmfo+87Fy6ajnX0dGtspE9ucwG9fk3PycNIqiqONs0qOzVE7c57srFTjXLi0\nI0K3ElYFgT20E+f8fx2wFxfxKyWywRjXXfu4Iu8jSJFNI0qrrpBwp0joKaSMhUusEXEVcDUXOZq4\niOUHaVxnhR7W6aCEn3Fzkseb72GWVLxKmaZboqO5iSvVQF+UWBuNk3cHAAETgZIRYFHvo1dZwi+W\nkDDoY5EcYeYYpJsV+ljkGB8TbpTwlWpEKrd51/Mo68kk7x9+kCV6uV7YR241QtX0I7UErLBEwpXi\nYOsyoTtVUp4YN/aNImJSvJsRb5E+skTJEyIdTGB1S5wY+ASfq4LWaLEg9uOxqggNyM9FUJI6zW6Z\nhUovUSvLCd85LA3C5SLhdIU3DjzOR9EjTDNChiB+ymwSYUHtxzAl1uhAsEwkTOaEQfY1J/HWa7xp\nPMsh42OGjSnUSotwvYRhycxE+lhROikSZJkeCgTRaDDOJG6pypR7kCvuvZTwM8wMG/3tMl1drKJ7\nZCTVoiJ4yVZiCFWB3sYKY3NTaNcb5GMh1n1dbAQ70ZQGktdAjrVAtdr/pIZJcTpEp5Xmya53eYdH\nmGeANHHumKO4qdHFKiImgmVx2xxjf+IqPf5lLs4eJS/+yNKr3ucWAEbR8W8DmZ25r2EL/Jxg+VkL\njU7AVhz7dv8W3zsBOHlqu1+bSnDSLvZ5hB1t7L6c57GB3yYc7LYtx2un2kVwtGk4+nAustpA6yz/\nZT9FOLlx53dh35M9CRhsvz6TADBGO0rPzgv2k7F7T4n8bgqp1+TJo2dY7u/n9ejnOM5HdLrWaSoq\nLrmOK9zgjf1P0MkavekVhm8u8oh2mgnfZdzU+JAHOM2jnOUh8nKQDX+cFXcvVcmNKjVQAjqhfQVa\nIwpXQxPcYjfrdLBKN2vVHhqbXv5J/F9S92i8ygsotGihUCRAD8t4qZAiwUx4BMEPXeYyPeoCJzjP\ndSZQaLLXd43Gwyob2R6sqoAhSoiWiVapI75sUun0sr4vyQTXWaeTb/BTTDFCnjAFgvyj9L/neesN\ntM83mBAmGV6ax3BJXAzt40ZkjJnPD/PQxfOc+PNPeK7wNuKogXlc5ELfPhoBL4GBWVLuOB6qPME7\nvMHnSJMgRoaZnhH8lPCLBb6ofxMdmd+Xv8Kb/ifo8a7wJetPGZamGajME7+Up5j0MTfSxwXpMDfZ\nwxS7WDJ7CQhFGoLGHIN4qeChyqPm+/SzgCQaXGeCDZK0UDAtkZYps0I32dkEtU0v3zr0LNZ+6O9c\n4tuDT5F2BzkmnaVfWyQlxplmhA0lgY8Srlod/bddvOt9ktu/tgvJ0gmRp4dl3FIVEYs6LjQalA0f\n71cepeAK0udepGdkjqen3+DVez147wtTgSgS6qdA7OR2bf0wbFdWwHav2c6RYQOrxpZ3bVMQsOV9\nwtaEYHO7O+V0iuMz5/tOisHOAFhjey5sGzjtPj2Oz2zwbrEdmJ1PCU6zJwhnVKTd3lagmI7XNgVT\nZQvobVDXHG23yha0f4OtT39yds8B2xoUqPRq+BfKDErz7I9eI8omiFASfTTQ0OUyitykhJcFo4eN\ngSQ5bxCNKp2scax+EckUWXV3IwkmWSlCWrq78GiVECyTO94RLmhHObP5KJqrwUCoXcvwkniY9+Qn\n+U71BdRci5u5PfT3zuIJVijhJ1Qv4rJanHOdYESfY7g+R8jI42/V6GGD8dIMWrOBKBns7phkPdFJ\nuRqkrHqZZYjdrlvET24SMAtMTN4m2p2j4veRIMVJzlMgSJEAneYGfq3EZiIALVDqTcL1KnE9Q4cc\nQos02BwKctY6SX91nlgwhyq28ApV1HQD+abOoHcet6eCiYiLBnHSHOQyFc2LhyqDzFIRvUxnR/h/\nyHvvIMvO88zvd+LNOXbOcWa6JyDNIBCBBEQRYhBFkZS0pZXWCkV7Zdlrl81au6wt23/YVWvJXkmr\nTZIlUVqJoiiJJgmCIIEBkQeTU0/n3H379u2b8z3Bf9w+06cb2F1Y0AAo+a261ffkc29/9/ne83zP\n837zMxO0BlW83UWSVNs/3KKE9KqJd6RGIpxhInSHPSXMHcYxBJEifla0PpqLE4TULGP9MwT3SsSE\nLJloiKHNFSJGnq2uBClPnJruxi1U+An520TLWSa+f5NYxx7lPi9vx+/n5o0pcrMRag96Ke34KM0H\nCH0ix148QqrZQbYn2p6z0SMxLM1zonyT06lrfDNhclM+zqXdB9kq9lHfc7C91UvkVA5lvIXo0nHF\nKve66X5Eop1PS4iHABcOAOqoXRwOZHZ2MLay0dr+spW92ifgtZth7ICPbR/rvRVH9d3WeQVAEfYB\n0jysYLGyVzsAW5y5JQ2UaQO51UFZIGqBs7Xevu7d7sc+cGmfPk20vbd3ctb9H9A+dhvShxv3HLBX\nHu8hH/HS9b1dQsUsD/EmNbNduyMlJDER6GCLEHlK+NhQulkN9iOoJt2st+ckbNXo1rZIOHYomAFm\ntEl2W3G8ahm/UsTRajIrjfF18QusFYY5pV1iMLBEZ3Ubt17lmm+K85UnqW97MGYl3M0qib4tpLCO\no6lRNzxcc07T1dglWC7hbLXwOBp0mLuc27qA0RApOL10RdbJeQNknWFezj5OyfSTd4Rwf7JKaDVP\n8tIeJc1JudvLqeBVVJqU8bJOD6qzwarczYY3gSgaBOolBtIbBBpFxvOzdAjbXOi6nx8NPsQ5DPSS\nhK9cxSNXUAotqotuRifnCATzrOp9TIozeI0yZ5tvsOXpQFQM+o0VfiA8xevVh0nd7GLUO0u4I4cp\niugNBT2nUN9WcfvrdOe3CPvSlBQPywygCxK6KeFq1VnbSOJx1wj15XAVG2CK1LweunZ2CJsFip0e\nsm4/ZXwEhAIfC73GSddN6q86cZ6tsT7VTUpKsHx7kNT3ulG7GxgXJKS/1OnrXSXjjHO7MYn30TpJ\n7zadzi1Oild5pPYGZ7feZtnXx5qjj+u7Z7i6dh/aogK3oRryUh73ImCiBz78H88HE22okjDuKjLs\nag14J2dsByJrcNACyqPZtsXxWsBmDeDZiynZ+WZ7LY6jJhw4rKFm/9qy0K6Vbp3r6HbreLs+2hoI\nteqRWFZ0Ox9t3bPdrGMHWrvb0d7JWYOKdpemZVm3dzZWBT/9bnfx4SpE4AMA7N/t/BU2lQ6mnrpJ\nj7pO0MzzvP4MLUFhVJpjhwQrDFAghIcyqbkuXv2jx3n6y9+h774V5hjjVfejXDLPsE2St7LnEFMi\nrW2Fzwx+g6mha0joFAlQVdz8VO+/p1vawGyI9F7Z5qz7IqvT3+Ft54MsF4coNiLM/cUkrT6Vh/6z\nV7jhmUA3ZRqCkz9y/gx/oXyOY+It/GKJnuYGz5afp+x2czs0wpuuBxEx6C5s8ktf+wM66ykCYwWq\n52QaVQfu1Qqe2QbRyRzdX9gABGLsMsAy14PTfMP8LOtCN36KDKmLPJZ4hf4b64wtLqM6m0QmCgRH\nC1Rxc919jLLDR1LZRh+XuJV0c59+lfHlRQZKGzzovoxUNvCtlnA/VMPoEuhubhJS88SSuxz7ySs8\nK32XT1ReoOkW8S7UUDZ0dn45ihDTcQQbCA6DIZb4En/ObSaJt/Y43rzNhZP3IaktJsVbBLt2UYoN\nhpdWKXe42PUFqYgehrUFWobCgjrMViSBcJ/GzPAEU46bJIUdHuY10pMdZKU4fUOLlC/4Sa12c+Ot\n0+iiiNQp8KmBb9F0yLxYfoJO9xbRYAb1ZINB1yLPCN9DHDO44zpOWuuATYioGfpYbU/KMFu41033\nIxJ12sKyxl3+14INC8zsSgnJtk2hXaDfAinBdqxdHgcH9TfgsKvwqA3c2s+u1bYmAIDDMjkA02w7\nHC2wtToO65xHp+qywloHB5m1aDvGumf7/djle/YiV/BOZ6dMG6jtZh6LG7dTLO2Oof0/+LAHHOED\nAOwfLj9NKyYzFFiipcjUdSfru/1oqkQ8stM2r1DHTYUd4mwHkohTLVZDfVQ1F0ZNYtuRJKOGaZgq\n+XqcWtOLO1LiinEG126drO8VZKnFx2s/4Mm3XsYfLlCddJKORKg6HYyI81wrn0arqSCBNNiCPoOK\n6CYtxvb5bB9OpY5fLtCUFBrI1EQHO9EIs84Rbnom6dS3SBtxbqmTDI8s496p4K7WyBhJNLVFMFgl\n7/ajJ2X6KpuYtwXSYoybpyZoKTIhstRxsEuUVbGXmsOJUtXw5qowCIZDooWCjxtZPawAACAASURB\nVDI1yUVF8uChTMYbZc3dzfTeDTytKl61CkruLmHZmU9juMEn15jO3cIj1UnHI4y3buMpVIjNVdA0\nhVqPE3WwTsHlJyNEUGmSJka6kWB6/iaiarLS04fpNfFJRfwUqTsd1Kot4tUCRlggLOcZai4TF3ap\nSG7iQhpBNSiqPqoBJ1XNiVxs8vClNykJQfRpib29CHWPG+NJkWJHAARwl6v44kWcniqjzTn8YpGC\nFOCicppUsYusGabDv0m9w0VY2CPozvOE/zyTqVvMRofJBwL3uul+RKIEzGFQOmQMsQDNbjh5N6rE\nThsotvX2Qk/2sqV3qQwO66LhADThwAxzdJAT2/XsBhW7tM4aHDQBVdhfbx7QM9Znsjoou4PT7ni0\nPrfTdk/278C6F/ssOBZvbR80tbhri0ay7tt6GpD3/wft/8WHG/ccsG+/OUXi/h2C7gIosGb00sy5\nabokMpEocdJEyRBhj0UGKfe46P7iCqtKD5dKp8kvhBiOzBOJZDC9AjWhjuCBrsFV7myPM7s+QX1C\n5Zz4KudKbxI/n0Uc1imccHOp/wxl0UuHuY270ECqmyiBJt33rxDpSpMiCU0RTJOa6uK4eIsR5mmi\n4qKGTy6SiQSZYYwVo5/P1f+ai/IZLntPcevZMbxLJZxzKxQVP25nHSOeIftAAClgMJhdx7gokFHj\nXJ06yZg4y0muMsI8L/Mxynip40Q3pXZr6Qc9IiKYJnF9l7rooCUqCJjtehuCjOYR0WQByQeCZIII\nQgLCpQKsAy6YKC0w4FhBDxnsOBKs65303tymPOWidMyFw2xQw8UuMWQ05hlhs9HNI5feZjXRy1+P\nPkuEPcaYpa2GdqCJTkRVxtsq011O0Smk2uVlZZkRcx6lokETuuRt3FIVqaJz7MoMxqiIOKTxZ2/+\nHPWEC+kX2y5NUxcxiiKZRoxR1x1+XHkOWWiR14LcqJ/g7dw5EAUe8/2ADt8mSdcW/X0rnFq9xuDm\nMlpQ5MbA8XvddD8iUQRmkSgeAjr7oB0caLJ1Ds9PaJ9Wy16IyS7ls8DLPmhnDfzZZYKmbbvGwezr\nVsZrnct6abbzwuECS3d1z8J+Vm4enlLMus5RU4udhrE6Hvf+tiqHnyCse2hx0ElUbee2gNxSytjV\nK9ZxbaNRCbiz/7/4cOPvvKjwkfgNRv4H1DMasWCKLaWTWXEMvydPt2+dmJJBxCBHiHlG2xXq8gnW\n7wyjOpsoMzVKX5WpXfdTqQZRRpoovgYd/i0+5niZxpab8q6PJzte4JRwnaSR4cLIfVyaOMm62sPx\nq3OMF+eIJnYJOAs4QjX2uoJ8MvRdhuSFdu3nmQl2U0n64itkxCjr9ODY12mLmAyzSIIdhuuLjC4u\nkdDT9ATWSdFB1elGjjepBNx4VutEL+RxJev49CrKskZl1Ik41WTEN8+cMMaMMImPMu2ZDBMsMkRi\nN8NoeRF8oLobJNQUvZltFoxRnnP+GN8xPkUDBx8TfkRcTCMqOk2HgtQykUyz3VozwC3gB/BK/znu\nTI7QK6+xKvRxy3GM2a5hyh0eMo4of8LPUhNcDOyXR+0wt3ms8Qq9y1s0fCq1QQcyOgnSjDFLBS+3\n5Um+4ftJOrQ0HaUdxALUnA5Mp0lMy9DxvV06v7VL9/Y2icwekm6yNNmH219jrLyAq6eMPgD5Lj/B\ncBZJ1KnU/ezWEvSWNvnlyr8l44hwbfck519+hmZUxtFZRZdFFjdGWViYYGFxnDcr5zjvepylWB9l\n2cuNf/Yt+NtPYPD+2jWPf0CXMhBp8CWuc4o0RQ47/+ycMrb3R+3d9qzbbhk/2gFYNIDdafhuNITd\nkm7PWC0AtNf4sGfVdqC3OHnNPFCL2DsG+1OAPZO3dNZwAKyabdkC9pZt2W5dP/q92Qdf7VX8RKAH\nKBLlZYY4yL8/iHgZ/g4mMPj/HOOnbtEKOanKbjQkdEHiUc8rdLGJgMkrPMoWXTRwsFeMkb0RoPhN\nEKY9SJKBOC5Qi3po4UWfFejs22AgukScNFOBq4RbWWYLkzR1F92uDcpDLtxChVhjl6Avh8dVBkGj\n37lEyykRYwf/vnvwaV5g0TNKRfUQF7aZY4Q8QaJkSLBDnDRr9BIix6CwjFtq0BAdhFs5RraWcDsr\nyNEm0UwdTJG5sUG6dlLIFY10NIySaEJA3K8BLSGh46DB6dxVgrkS3yk9y1bjdfABM5CXAmyEuvGp\nVQxZwEcJl1AjT5DLnGZN6iUm7RI30gxubaDqGnt9QTx6BddaHdflJv7HCrRcAlnCbNHJomOQYocf\nxWyhmTKrQh+DLO3PiamQbO7Q31xnY6iL1UAPOhJB8uw1o3y9+mUGPQs4xToDyireuTLCPJAD9YSG\nNGKghprIFROpabZbfx7yRoCN8U5MU8JXqPAQb+FzFEkEtkiTIEOcopHFq1fobGzRV1pHCT9A3eGk\nEVUwnQbFqo9mapj8cpRywQd+g+1gEl+kQL/kwmVU73XT/YhEGzKjAwYRAeZWwDAOZ5gW5QAHgGeB\nj5U9WlmtlfEeVVLYtdT2rNY+zGanSKwsFOv8wv6dmu8sZWq3gNsNNpZ6xAQE4WCQUDQPrmcfXLQr\nQewqEbvaxM6fW/drH0Q9qm6xlptHlq0vJtkDccOA9Y9GsbF7DtiPfek8m0YXbqlCHScR9njK/CFj\n3KEk+HjdPEeRAA6zTiEVofimE35/m9yxJMIzbuR/WkPQRPQdmfKtMH7HHbqjG4gYnOy+yFBkjt9Z\n+K+pCk6GwzN8mm9xWr/EcfEmxUkfe2KA2r7Kc5w7PMor/EHrF6jg5SvK77I7EGODbtboJUWSGm40\nZPpYpc9c5ZvG5xnQl/HrZYoxHxvOLjYb3Tw28wbOaJViyEVko8yaq5uLnzqJ+xtv4KzWmX+0n9Hi\nMrWGl7fUBxEEkz5WibDHsd05RubW+NO1n2d3JE455EF5o8VccJQ3jj2A6m7ilss8wAV6jTWuCKf4\nY+EfECLHMW7xiP4aicU8TbnJ4lQf8eAOsdQezkKL6fI19lpB7jjHSNdiFDUfe94Ia0YfNcPFSeUK\ncWEHlUZ7+rFGAbMhc3NikjnnMCXTz5gww63qNH+8/Yv8Svdv86zj23y2+hzGDRHtFRlxS8eVa2K0\nJOonXNCpYbo0GANjTaRScrOrx1kJ9yI7dL5456/oaa4zEFjk+/ozbLqKiB6DDrY5lr2GuS6gI+KI\n1+mIr7K528PeZgxpS8RYkxBVHXmqhjNSxeUuo8kSW1rnvW66H50QwHFGQJUFGusmhnFQnvSoRM4O\n2BYNYu1b4zDwWcBr11vbeV1LG2F3PVqDlHC4/oe8D9g1850OQut6Vsat2bbLgCiAuI+UhgmCedik\ng+06lkzR4t2x7We/f/tntDo0q0M6Wj3Q+r7s9VQEwJQhfEYg2BLalONHIO45YD+x+yM6szvM9g1x\n2X2STbMbtaGTEyPMKOP8TPXrDJmr/Evll6gtuqDphM90wS0HzHBXOBpS9jj92AX8kfzd+slB8rRU\nFX//HlPKMs/wPfpYRRWbpIUYomiwQ4I7TBAlg4TOltnJjSunKJgB1PsbJMUdAhRIkrpbWfAENxAw\nudGa4oXdT1JfchEr7NL5wDox1w592iqNDgfb3gSX5CkeG3wVUWrb4R2nmuxICc7zOF5Hlai5y7Rw\njZd4nKLp43HzPPVOhe1gmMETd7jqOcZvSV/h/vBFeqQNxufniF3J0BiU4D74o/Q/YkeN0xXdZIcE\nAFPCNfyhAqqhcaJ4h6ZHRAyYMAWyH+QW4ISpP3ibUwuvo3/VA4aCVlEpdHvYdUT4Fp/BS5nj7ltM\nGTd56OZFprw3KY24mVHGOVG5we+v/yLPhZ/i+56PM+m+xdqnetHOyXQ3NvG462wGuvlm7NNM+GYY\nbs3T8ijsxSOktTg1n4MBlvGoFV4cepS67KCo+Xk9/RgV1U1HdJ0qbnp861QHZJKubca5Qx0npcUw\nZlmhf2qJzbd6MXdFTjxzCcnToiE5yQkhwlL2Pcwx/fckBCg+4qKoujH/porYasNYizYnC201iAU0\n1uznVnZ8tNCS3dqu0tY+2CkJbMfanZBHnZQWCDZov7EP2lm0iKUOsZd9tbLjOkdMO/uKEvs92GkN\nO1DbpwKzqBZ7WVhrMNXax/pOrNokFkhbhh5LIWPl0QYgyALlpxxUayp8mw+ODfmPxL2fcUaKEpIL\nLNSHWTRGKBCgLHrIi35e5EkeEC7TEhQMQWQgvIB6QqdxXGWr3kMRP0ZGQXLreCNFOrvW8cklFFos\nMISETktSOea7wSS3mKzfJjm7S83nYG2wj27WqeBhkSFc+wX5t80OMrtxUmaSS+Z9nOYyIgY6EulG\nAsMQGXPMYgoCy0IYUTbYNHtY0oY4Lqu45DICJreT4+yoMRbEYaLBDE7q5AmQ7/ZhCgYd5jYurYaH\nKn3GCk1RpVb3ENnJ05AcJN0pPtH9PTJSjIamoJgtupa26FhJY+iQU/yIgo4qNeiVVjnF26zSz2R9\nhq5iCpfQQs4bOM43qYw6aDhVMs+EUPub5OUAq/RhBFq4Y2VCUo1+cQOvUuWaMMk2SWq42nVVpAY4\nDDzuEsFWFjMFG/FuvGaVR/W3uMg0OgK6JFDrc1AZ8KBSJ3l1D2WxRaiZR060qEcUario+1QEdCLs\n4aeIJGnM+0fYooNMM85atp8aTkwDpgJX8TgqZJUgdRz4KDHJbdLeDrLOMKOxGeITaWoxN4qniV8u\nYlBqz3QjfvgDQB9UmAjcSB5HdUqY4tuI6IeMMnZpmr1anhWC7WV3EtozTLvCwwor27Rb0+1gal27\nQRtoj1Io9oHCowOGlh7c6kRE8wCwLU7cPnhp73Ds9I39aULi8Oe0Oi37cfb7s2fxdnrlbjYuSlzt\nPsHNygQflbjngP1XkU8TD6Q5v/cU6XKcqLTHTjRGSk3wN3yGK+5TCCaEzDyPPvAKcWGHPAFe2HyW\nwkIQfdGJerKII1FGEVt0sUkDlW/yeYr46GaTL/Fn9LOCo9Sk69s7LA/0sdLTT4e8hSbIpIlTwte2\nOePFEERMU6CGG8EwqeJiRpzkWuUksdYufaFVtuUODEXgVOItGobKRr6fMdccE8wQkTP8MPEYRcOP\n1NK4Ip9CEnQ0JCK+DMPmIp8z/gpPrYWAieDIIgomjaIT4YZCUskSThQY8C6xIXXRaji4b+M63ssV\nzE3QvixS6ndTlxycS/yIJCnOmBfJGyECxTK+1UY7NVgFXgPPjzdonHWy+IUefGKRHRJc4RSLPzdE\nE5VhFniclxhgmSUGMBAZYZ5p8xoJfQdR0kkdj+HeahJZLBDwlnCpNQibHFNuAjqCbuISa9RMF9tm\nB97Xm3TcSPGLD/4xu2cDZAN+DKS79T8aZnt63aLgx0eRFn0sGwPUSi4KxRB6TuFLx/49Q45FNuli\nhX4qeBhhjq1jHewRYUBYJvaFC2QJ822exUmdOGmK+PF/BEbsP6gwgRf1J8lq3TzEVeR9751dbWFR\nGyoHWffReiNWduuiXc2uzsFUXxaIWly4Xddt57yNI/uZ++exS+6sa9lreNipFut8lvbaNEEyD5/D\nyqzt7kXddryl6rDs69aUafbCTfawA7H1nVgDoJY13dp+UHZW5nX9Ga7pI5gs8VGIew7YN9bOEJEz\nnPZdJO2Ns212kJKSbGmdlJpeag4nWt7J5ko/G4MruEJVguRRo024DvweNJ9yE360wpdGvslKsIcZ\n1wjP8Dx7hNFQaKKSJ4js1NFOSvSvruP9VxVanxbI9oap4UJCp4qbW8IxOk6v84j2Mj9V/SaJjTSG\nCcdGZ+j0blMwAtyQT/Bq8xHuGGOcc75Of2gRvAb3qRfoZIs8QeYYZfHyCNLr8F9+5v/A2VfhCqfQ\nUNgWOrgsnmbKf5MABfakEOPCHW4FjvHfnv5fmZauMum8TUDJ4aeIz1GCribamEDD7+JaaAKU9qww\nZbwYdYVkPkd4uYza0MFLu4jbCO0WNwbFUIAbwgkCFJDQmWCGAZao4aJMu9b0Kv3MMYaIgWQYeKsN\nvGadguzlOfmT6BGZQecy875hIuYe7pEKq94eTAHuKOPUBSeuQp3hxVWWzgyw/EAf97uv8FrsYeYY\n5AnO46GC2mqSyGfZdiZI+RIUCeCixrCwwJo6TCEXQp+VWO/uRQuLbNPBOj20UIiQ4fbuFLou40i0\nGBPvcIZLjDNDkAI+StRwMcMEf32vG+9HJUyBjW8NEJJ1TrXEu5Xo7CoMixZo0AYfK6O0HHzwTk21\n5Xi0KzksMLTqb1j7cOQcdscgHHYVHuW/FdrN9Ggma4GjnSaxANX6fPbMHA4ybvvgqHXP9s6hyWEN\n93+IQjlqtLGbbepNieVvDbPWHID/vwC2r1FmQp3htPMtNuUurhtTbEqdFPQgPcIGOjIlwUtTVEgL\nceR8C9dKg0ZEwTlYpfG2C0erjiS3yAphZtfGWWoNcnb4Naqih8VGD5e1+4k50vQ5Vuia2CFCFnm9\nRU4IU8WDCfv1r/2kSCLWQdWaJAMpfEKZliATJMcJ9TqrzT5eyjzF681zlCUvT6ov4ZRr6IJASfSx\nZA6yavaxLSRRxSb94joj2UW8SpGm6SLhzNB0KWTcUWbVYZw0KOKnq7mNgMBccpRmTcXQRQoEcFJH\nljQqARdCTx1BNJFXDWjp6J0yS5VhWi0Xp7hOd2sLj1BtpxJlyEcCrHd20ePfxJTbj86OYouIlqXb\ns80NcZJ1sYddKUa3vonD2KMs+0i0dugrb+DfrlD0BpjpGG1XAHRFuOMcoyx46WeZhCPFFp0IGKSE\nJBFjj3AuT+xGjlQwSbHbS7nTTdHjo4ifAn6C9QKeWh3RMKkJTsp4CZNt28kliUR0C3e5QtxM099a\nQapqZN1hdkiQz4VYWhkm54rSo6xzbGmGsfACo+55xrV51EILpdFEcJu0fB9+IZ4PLEwoXqjQFMt0\nauYhhYZdYndQ++JgcM/O5Vqz0ljabOv4/UscUoHY6RL9yH4WYB+V4dlpGLtqxS4BtF9Lsb237t/q\nAOyAbpcMGkeW7Z9fP/Ky72v/ro6WZbXL/qws3g14dJP6GxWKevUjwV/DewfsIPBvgWO0b/0XgHng\nz4E+YAX4aSB/9MAn/S/wq8l/QQ0384zgEmts0o0qN3lSfrFtIgm7CIR2yQkBtq91svUn/US/uEXw\nUxnSO91En0xRPyvyz4V/zNqLQ0hzJv1fWeamPM2PMk9CSaAnvszJnrcJD+4RG8hQw4ksaGhIOKlz\ni2MUCFA3Hay8OkbJCNHzs6v0jK+h0GKHBN1sEKoU+c2ZL5MRYvSGV2iGVIqaj9VGH98JfIqS4GNb\nTxKX03zy1HP8zOSfMXxtDd/lMlP6LCRhsyvJtjvBdabZI4KEzhfKf8Nx/UXCkQwT6QV8lQpvjZ1i\nT42gCxIOuYEYyxIr57j/G1fZORnm8rPTXNw6y213BX9Xjs/K32Ggtdb+Yndhzd3N109+jp/e+Ss6\nm9uMMsfo1jIdpV3MPvgL50/z79SfxyHWeaBxhUltnhc8FabLt3h2/XmE6yavDJ3l+b6n2xy+meBF\n4yliYhpJ0NlmmTRxHDSo4yTRStOd3US8DVPzt6n2Odn+jQjdyhoOauyQpKOwh6eUZq0nybqjkyJ+\nznCZNXrZkROM9M0Q7s0yrV/jk6svUsp4MHpNynhIr3Sw9Yf9eL6c51jsBr/+4u/iPVmGXhOhTFtr\nngZ6IDD+d+I6+1u36w82TFi+RJhZHkJnGdjkcE0Oa/DOLl2zQNPKdmUOZh039pfttnKr7rU1eGjR\nLvbQbPtY19R5Z1hcuWWRtygOi1qxT1xg10LbOxPjyHGWPM/umrQ6DmsQ86g8z+qgLD237Rs9dKwd\nxA3atfkGdI3g7AU+9H+/Ld4rYP+fwHeBn9o/xgP8U+AF4H8H/jvgv99/HYrBwAIGIhU85AixRwSA\nieosT+df5GnxPDdcx/iR/xx3UsfJZuIYTpFS04+gGJhxgb2lBGXRhzCiUSkHkBrw/fLT7PmiCK4W\nqq9B0LvXLs/KOpKgkyFCmCxuarj1GpeWp6hLDrr61zj+8Aw95joJMcUavRiI9LFKkhR4BAbG55gW\nLnJKvcIjyqus1/twNHROGDdZoZdsK8SPS88xIc6wKXfRHU+TDsa47J7mnPAWHneZQZaQ0Fmjl3V6\nINMu2P+D0CeoxT2cKV7hxMoMWkSgEPFxk+O84QzgjVX5xMRLBJ1lJjYX+GLoTyl73fgpokham7ee\nAULgi5QYFWbb28wmIfI46g12mnFedT9I0yExzh0W6kN8V3yGDVcXddGBI1tH2DTBD7pfwkAkxi79\nwgrPit/mqjBNnhDf48cQMBjbmueBy1cJTOYwO0D/DOR/x6Rxp0nsdhZzXEQLy1zhJNHAHiF3BkMW\nMBEoEuA8j9NjrPOJxg/4rdV/wm33CVZ6+plPjDEmzHKGyzRw0hJcbMn91Pc8LIZH+IuPfZbhyDxh\nTxbNLYPDJFcPc8H9ANe8J4BX32fz/9u36w8+WphnTLSv+Gh+rUjzpbZewu7as4Dt6DRaFoBZGWud\nw+YV7cg+RzNTewEmC1wl2zUtm/ohDfO7hJXF2qkSa32Dw8BsdT7Y3tvpH+t+7Z/LonmsbdZ9Wk8Z\nFqdu7WepbCwKyfpsFcB8QiDwMxLK7+pw5aDQ6ocd7wWwA8CjwM/vL2u058r5NPCx/XV/CJznXRp2\nxeXimnmSLb2DXTEOIkTJEDX3cBk1guTxNKoYRYX+xipBb5HtY53kt33UcGP2tWdD0csiUX2bzq4d\nPEoV1BYNRaUuOtBMFVls4aSOiypurU69tYtXLWFIIgOs8Kb+CHtaDH+5SDy4185oBQOVJiLG3UEs\nr1zimcDzxOUUE8IMk7U7RFs5XHKdLmGTCi6cYh2PUKGGiyVxgP7wOmtSL897Po5YN+kTVvYbuIqn\nXmU8N4e3WaKhqIgYVLwuSqKbRGmPtBlljR7W6CWrhPEFyxSOedEMkaLpY9Q3Q9HlQzBNFtQBdFmm\nV1unHHRTDHnRkKk5HDhMJw1Utj1JqoaHWsHFcGgBv7NAt7aOKYlkjDDjG7MkSymaXgnNK+MNltrz\nacoVepobJKs75H0hLisR0sRJkiJUyNF7cxNdNjEHwZwAYwrq6yplEhQNH2W8ZAmTcYbZdYbZI0qB\nIC0UHEaDlilTMn1k9TArjQFSlQSLpRH21DBJzxYNzYHo1YkcT1P1eSg6fcx0jZASo8i6TlXzQAj2\nhDCvaY+QV953LZH31a4/+DBIR+P88GM/jvjiGxgsHHIV2jlfOKyksMAL2zprHzsI2l/Y9rf+6rZj\nrOzYAvejpU2PUjV2WsKuFrErPewmGAs8rdBt57LTKPbB0KOf3/45LEC3yqta3LX13lLOmPvL6119\nlJ84TeYvYkfO9OHGewHsAdqlqv4AmAYuAb8OJDiYfmFnf/kd8TIf40XzSVYbffRLK5xzvs4gSzTd\nIn/q+imucorZ/CSb6/38s+6vkuza4q9PfZa3/+dzrKf88J8DXoOQK8NjsZe5/+m36TdWaCoqrwqP\ncL7+BIsrE5QDAUoeHwWC9FRnGC2sko+5iUlpItIebwyfZa3Yw1sbj/J26RwnfNf40vgfcb/wNlEy\n7NI20LhaDX4999uIvhaGZOLfrOPxlnFFSyhSE69YwSk3OC88TogcSTFFl3+TJQa4JJwh5wzRyzpJ\nttmki6HsCr908Q/RThgUen18Ufqz9hOHy838sI9r4kkWGMJHiRi7JJw71I9J3OEEV4RTxIVdJDSq\ngotvuj/N9Mgt/mHya6z7O7jumOR1zhIL7tLBNsvCAJmhKJF0nk9fe47aqExlwIHibLEkDFLcDXD2\n5cu4hsoUzzkpC15662tMlmbJ+r04ci0cqwbKuI4v2L4fE+6mRfLF/ZbwFES/DGUpynPxp6kpLpoo\nNHBQw8U2HVxnmiJ+AmaBT+nf4Q3hIX7L9Wtkx/1IJY3sVoLc7QRSREB41ODN+kOU417GvnyDDbMH\nj1DALxZ4g7Ncq58mu51AF8EUBbSqg97Y+x4Eel/t+sOIG7lp/puLz/KT6f+KB1mgyUEm7eSAyhA4\n0D87aWfTVr0NgfaY9VFFiJXl2vlli245aqaxjrGDLxyW71lqFOue7EWq7FSO9C7nsGgSSytud2ja\nVSHY1lthV8PUOKBY7DSKxfVblI9F71hPHwbw8t4TfP/GP6de/DawyEcl3gtgy8Bp4L8A3gZ+i3dm\nHPaO+1Bc/vXvYZoCzYaK+lQ/mS9EqeJmN5dgdnOSDFHKDi+EWvzNK5/D7yqw82QE7SfAX93D2Vun\nVArga1WYFq5xJnuVaHWPma5RsrkYuVyckdAdJn036WOF1znHknOIPnGdouKhhI8CAfxSgWnPFYrJ\nIMuuAVA1/BSJ1vMkjD1wmW3OW1bYDCR4ufA4M41JxsMzSO4WP6N8jQeECzywe5GHspd4q+cMgtug\nh3WagkIXW/yC+fv07W1SF1zcjoy2a2EHujg/dZaNSBdFyUuAIh1st2d3kVQmS3c40bxNMyDSlFUE\nwQQJYuwywQxr9HK7Mcnt+iQ1l4sdtQMjKHJf8xIhs0jBHeS2MEkdJ0HyZMQohYCPnckwtaCTPH6q\ngotoM09SXmLlvm68oSIhLUtguYIr1URoQva+CJ5GlUQhi6dVxkFjv56KgeGSIAnf7X+aXF+AM8FL\nbNDNjDjOFeUkm+U+1FaTpwLPMyi1qaBrTLNJFxFhj+PSTTJEKQl+mqKC21UmEs8yrswgqAZXtFN4\n1TIJYYegkmfzQi9r6SG+FfkpUuEkml/mROQKu2/cZPeFGVprAdLvfwKD99Wu24m3Ff37r3sb+nKO\n6r96m8HlNNMOWGi2JXH2QThLh33XRchBBmoHKQswrXKi7/YhLY7Yem9x1iIHZhtodwoWWFudgl0f\nbdEgdj203dZuhT1Ltg+c2otCWdy7/R9jH/C0dyrwTnemBeZHqSCL2nEAvMWEDgAAIABJREFUkxKU\nbqf5q9+5CEsfFH+9sv/6j8d7AeyN/dfb+8vfAL4KpIDk/t8O2sNB7wjxK/8ThiGSKOfwkWHxSpaW\nrpAqdbKSGwYZJF8TNVzjza2zRANpps3LaPfLeMwSDrGO3NJRa02K5SCZShy9pZAykqRqHeQrIXq6\nlxjyzDNpzvAj4TE0QcYnllmni5apoBpNwmKWcDNHKJ/nqnuagCdPUkihGC1qhps8QXREGpLKdfcx\nrhRPcUefoBJwcFZ6g/v1i8TlFO5Wg6HaKltGnBYynWxRxY2AScTM0tlK0RBVcviYb4yyLAe52p9h\ni06qeAiRI1QukNB2Kfm9DGaW6Ntap6i42emOUuz0I6MRb+7iaja44jrFptlFsRUgXUtQcflo+SUC\nzSIlzctWq5NlaQCvWCZBu1xtxhnhpc7HSIjtRPEGJ5g2b+KX56n1utAVAaFlEK0Vydfc5PQgO2Yc\nv1pG8oEmywj7P4cgedy+CvlRP/MTg2TiIbpZYZMEaaJoyOzpEVStRYQsIiZpEqzQx6I+jM8o8bZ8\nP1tCJ03DQaPgIigXGA7O8UjwR6xne3nlxmMMupZwBnNISR19WyWzliRjJEAyidTTeHJ5xPFRPCfu\nx3hFQZ+EmX/9m++h+d6bdg2Pv59r/+1itwAvXUeZFlA7kwiXdjEaOi0OKzbgcJGno4BtZdHwTmke\ntm1HzTfWee00hwXAR6vzWQOIpm2bveiUdU47LWItwwHgWxmyXcFhLwlr7wSOgr/9fPaOy1pvt6Pf\n7fAcEp7pOM6KAD+4zsH8PPc6+jnc6b/8rnu9F8BO0XbSj9IuCvtx2uP1t2jzf//b/t93lcV2Dy7S\nNFXOma+z+d1+Xv/ao5hVAaOvbb3GD3pGof6SjPmoztCxOX5V/Je8KDzJbWGSFgqeaI1SOcDvbf4a\n/eEF+nsW8EplMr4wDVFmURniE+b3OW1epkCArtIOZ7JXea7z43jVIg803+brjp/Gs1bjS9/9S5af\n7aIWdxCgQNHl5jajXBTO0MUmMjpXOMVw7A6PRM+TlcJM1maZaCxQ9qnkEgG2okk0RUKlgUqTLTq5\nwQmuiyc4G3+TR3mVT/IcL+Q+xQJDHE/coE9YpYnKJt2E1gv0lLbZnkqgbcrIL+qErlRofV6FnwM3\nVfz5KkpGZK2vj4Q7zaf4Dr936dfIuCNkTkX5uuezZFsRrpWn6fRs0VRV6jgRMFk3evjD5s/zFeV3\nmZavcZPjZNQoFdPFE7uvkvWGWAoOkj+eY32ih0WG6HWsUjNdrEW6WFfaxbj8FDnJVXoiq8w8NEiX\nvEYX6zhpMMUN+lllhgk8/gpV04MpwUXu4zaTVHGjN0R26gme9z9DS1ZotBxUFwN0eXc4Nn6LHtbJ\nzsYo/98hboen2T2TZPjzt2mE1bb1bVRHcGsULrt57av3Yf6cm96f2+YfPvtvWHX1MvOefgj3pl1/\nOKEBZS79/AnUATfeX/kucvrgScMCaycHWa2dW7ZAtgaHtNxHHY1wWOJnXdmiKpy06Y46B4N5Ryv/\nWaDe2N/HXl/bnoXb5XQWH2+BtcUz27N/O8jbefKjxh44eNqo285hLzdrv9+7FEvIxZtffZRrS4Pw\nT8q8+7PHhxfvVSXyj4E/of1UtEhb/iQBXwf+EQfyp3fE7lonCCZLHUM0jjsJfXaX3PMxtAW5rU2a\nhsRoirGP32ZGnqRVdpInSA0Xpbqf1F4XPYFVImqGZecgMccOU/I1BKDi8dJwOGjKMiv08zYPMNpc\nIKzkyEe8xJQdolqWaL3AlHwDIy5QftSBERNQhCZuqvxIeIzLnKKwb+7wU6JAgH5phThpQuTwKCX2\nxAAbYieq2CChp/n44nlabplmp8QtjuGlzBOcp19awUuJPEEkX5Oa6eAtHuTzxjeYKt2ksuVnrLaI\n09vALxZxOBsIHhBaBs2WSrXuIb6cxZVpIOglnu54gbQnQl1xEelLU5EdpI04U+J17pMv8bjrJYJS\nngYO/obPsJofpNFy8HDgNYaFBVxmDadQZ3BjhZPpWwQ9RSpuNw3BwYvqE8RrezxUv8imkuCqPMUG\nPTy4cQlkk6XOPvrNFeqCk790fB4Bkz5W6GcFCR0ZDRc1ntRexmnUMURwCu3JKDxUSClJyoIXn1gi\nRZKWIGN4JXYcCd6sPcSdneMYksTZz72C4mxRCXlYSE9QMgLtX9lNEbIy+rKI1qNCSSZzK8b5hx4n\nuxl5fy3/fbbrDy9Mrn5nDDHg5yfKP8Ck0q7lwWEDipXpWj9wi/qAg8d/OOC87RI3u1LDvo91rkP2\n7SPns85j8eh2KZ9lYxePbLd3EhbnbQGrdW9wmH8+yl3bNdbWy1Ke2GWODQ5b9K3PIdCmQ1ollbe+\ndopr+STvhaL4oOO9AvY14P53Wf/x/9SBSklHEyVE3SAyvIs7XmGmpNL6oYx5R8I7USQWS5OY3mbp\nzgjZnRgX5Acx4wIBitysnGLMc4ewYxd/YIQe5yrHuYmEjugwwGGyQ4Iifm43Jrhv7gpuX5nNgQ78\nFAnWCqh5nYnGHBXVSXXCSdYVQtE1epubrKp9XJNOIpgGncI2ChoOGviqZWKtPRRvA1MRWFL6mGcE\nR7NJRynFQH6dBgprdOKmyjALjDCPiIGJwCJDBDxZYqTYJYbbqNHd3CSfb2AGoB5SidcyCD6DwoAf\n71wFUQWpaCBmQcgJuIQaD+lvsMAQt6VJEt1bNE0JzZQ5btzkhHgD0ylgGjBvjPKK+BhzjTFiWoYn\npRcZYhFdl+iSNumqbBMq5DECAjXFwZ4R5ZX6x3igfolzzbcoiF7KTh9L0iCfLX+HoJqjbip0lrdZ\nEga57D1NX6stUpQUDUXTEEyBiuxlqnaBodoKdzzDlJ0uXEoVDYWgkqeitCcI1pFYkgZxR8o0RYV5\nbZTCTpRu1zrnnnkZIyexWe2l2AjSKqqQbedp0VQGRWux83ASXZMoL3m5evIkWunvxDjzt27XH2as\n/NCHz68hTUQxtuq0tmt3AdXKYO3ZsZVtY9t+YL8+DGgW+FrWdCsjt88uo3PAYdtrSNs5b7sSxVq2\nrmmf3QUOBhjt+x0FZQuQre3WOjttY8+F381gAwdcut2uf5fe6XRjdsSYeyHGStHLRzGOWu7/ruM3\nPv+boziiVX7J8W84KVxDUjRSQwlKMT+mJHH8C1eR+nUurDxMXgtT3A4w9/wEP5H8FlNdV7nkO8W0\n8yr98goFR4BOZYtuYZMpruOkjomASpMgeRK7aab/rxk8hSrN+yWqeHDmm8RXs7iXGwS2yvirFWa8\n49RxcyI1yx11nCV1gBVzoE1FCCXi7PLgwiVOrN7GHSuzpXRynWnmGOX7mU/yzfQXkXqabMUTrEgD\nnOYyI8whAHtE2KKLNfqIk2aQJWJk6BXWWHP28HuxX6YQ8REkz9DaGrv+KGudXcS0LAFfCb+jTHHA\ng6kIOCotSl0eVHeDGBl2SBIU8pzlDR41XqFuOvmG+AWOtWaY0O8Ql9PoTpGwN8Mj8qt0aimcegND\nFtkLhFnt6MEXLjDnHObV1mO8vvYxdoUYzZDIw1sXiLRy7AVCtAISelCkT1ylf34LsyiRiYf52fzX\nebz+Kk2XRLyQo1Vz8kPX4/SktxhLLRIp5phVxnnNc44CQXaJUcbLOLM0UdkWO4g6d4k4M3jFCqVs\nEFMVkCNNbrx6hvRugo4TqzTOu6mn3PC4ySfPfZuTpy9zJ3iMZtGBR6swdHoOf2ee1P/y7+Dv/QQG\n7xYFwqczTP62ilGsoF3J3gVLe00QK1O2NNRHNdlWZmnnjy1Lt13JYc/OLWCt0dYw27Nvy55uXce1\nv69dbmevzW2Bvp2SOHpfR+ddtCtXLKC3BiftA6gGB4Ok9SPrrQ6sabtWFWh8sZ/i/3iGi5ck9jaK\ntrv+MOJl+DAmMFit9iOENTbpwkAkK0Zwhyv4xkpkm25aPTKqv0lQ2EMwWzT9Kk2/yMvVJ1Hn65ST\nHq5lT7Fl9GD2icSkXbrYxE2NOk6K+PHRrqBX8AZ57uOfwB0v36333PQo3OkZRIlolAUf254kPrWI\nLkp8N/A0i+oAitBighk0ZNbpoZ8VChEfOSNIaCZLpiPB9c4pGjg4XrlF1+6LdHSts6eGyNK2VYsY\nOKlTxssK/cwzwhCLaBmV6zMnKY0E0MMiF6rnUN0aLafC98I/Bn6TiJLB/1AJv1hCcJq4dmvUJCep\n0QSr7m68lAgYRTZ3+1iTe6hG3DwsvkZXdZtPFM5T87vIGWHuW79GxFUk4w2T8UXJSFFaokIZL3Gz\nbSwyZehubPF49RWKgSDd5U1OLtzgqn+ass/FhH6HkYVFEnKKQF8eb72MU260JYfskNzdwX3dS6o3\nyVYywQnhBs2AxG15hLiYZlYe4Y36WXrVNTrFLfwUmWcEHZHHeYmm1M6MdUHC0dkiJ4VIm3FyqRCt\nnAPTD/UFFywAKYHCPwjguL9K3L2J0x/ApxcZ9syzKXfd66b7EY4G6S0X/88fP8rHb2Q4zgI53lkD\n2/7jtrJoC/AsE4k1c4sFXBa42ikJezZqt6nbqQoLYO3mGnuWba/4Zx/otGuoTdt6e8Epu83dtG2z\nDxZa57XbzK0OxKI+dNuxVlhPI33Azet9vPC1h9ndKsBdoumjFfccsPOVEGOh29wUjt81VxiCiCtW\nxXGyBgETh7tK0r2OttiN5HbifbrMq688SnNRxRvKkskmqGgBnJ1F6hUXpZafjVA3i/IwW0YXx1s3\nqYoetn1J0p+O4aVMh7lNv7aG4RSY6xtEQyFFknlGeEr7IQ3dwdddP01R8qPSpFPYalvXcVLBw048\nRkqOEX0zR93lId8ZJEmKx/gRZ7nALEM0UAiaeep1F1pNxd/MIAd1dKdEE5UcIYqVIAvLYwhJA1eg\nilwxqKoe5r3DXEqcISHucFy6Scf4JnFjF2+lipGSyUaCbAwmKehBJEPHZ5TZLcfZUrrxRgo0mk46\nqin6C5u85H2EnB5ieu82A+IaKW+ClxNn2XJ3UlK9iILBMa0tH9x0xglqRca1WebCgwxWVxndW+Rf\nd/8CYkDjkcZrTK/dxO8oUuh2Y7qgJctoSNQUF42mA3nB5HbHOJveJCe4juZWSalx3GKJtBZjo9VN\nVMkQIUPS2OHF+lOEpSz3KxfYa8aQRA2XUmXPHaVcdpOaT9JsKLRaCnurCfSa1FZIX4WV4wOU+jy4\nhAp6v4hTqKGmNJqq8z/Z9v4+R3bVxYv/YpCRzjGmR5aQ1rbQG+1qztbgnV1xYddMW7SCHUitDNTa\n52hBf3u9DruL8CgNYZ+P0Z5V2xUiTQ7fi52XtksMBd4p4TtqyLGeBo7WHrFn6rLtOnYKRdq/l6ZD\nReztZG1jlPMXBoBZDs/h/tGJew7YX4j+Oee01/g9+VeZF0Yo4kczZGSPRu//y957BzmWX/e9n5sA\nXOSM7kbn3D3dPXl2dna5O7tckstdLoOYRFqirUDZVrD0Xj1btt8ryy679FzycylQyRYlW5ZEihIp\nxg3c4caZnZ2cuqenc0A3OgFo5Hhx731/9ICDGZJK1JhLSqcKNWjghwvgzq++9+B7vt9zbAuMKtMY\nCMzqQ5Q/ZcMiaPT8f8tUq05MXeSw6zwTozfQ6gp/pn+IPzn7CU5tP8W+919jxxdC1nRObpzlmnOc\n66EJnuErtLGJxajRlYmTk52UfA6ucIgN2qhg44vS+0kUIpxdO8l4+1XCvk1W6GaMKSJss00EDRnD\nLmCOQLt7nbdxmiNchKjA+dAh4vY2Wtji4foZ3EsV1LkK0rpO/mk34d5tnuGr3GCCWGsX3qfTPOR8\ng7CyzXJLDy4pjyAYdMox8oILifpeL5PaFn4jx1eGn6ZuFekw1jhRvIgg6cTsbXS1LzIoTPNu4zlG\n1+aQMMn32Oi0rFA3ZXbHHPiuQ+hWinetv0K1R2GzLcIb6nF0FUo2hZqoMGUf54LtGG+IJ+hrWyIZ\n8u1NXadIXZQx2wS2LBEuqvsZ7psjJrRykzG6HDFKg1ZyUTevOR9mg71eIY/vvM6B1CRWtcpAYJEJ\n7w06xBggEK+1s77Yw7RrnJut+8jH/LSrawy3TDE9tZ/1s51oF2TEj9awvTOH1V2laHqphVQwYW2z\nm83fiWJYJfRhEdFqsPNCO5WDf4+aP33b2Guu8uKPnGDzyDAP/qtfIbgSx8bdANzgiRu0QQNMG+7I\n5rUNi7nMt9IPDaBsKD6s3D3hsHEBsHG3c1LkzvCAxi+A5snkcAdYm3XY9+rKG7x5s+2+wh410/ge\nDZNNc1beKDQ2vofWdOzGxSjZGuKFX/4FJi/44L/cvH3kt2bcd8C2WctUTBv97PUU2aCNhBDCLpWI\nynEc7NEX+4Uymb4ALvI8KbxAuCdFuW5nwnqFEekWiqEhaxqnwu9i2dKLW0nSzQrD0iw2V4lu6zLv\n4BT7mKaCjTWhg6rNgV0qEmEbF3l69BUGa4uctxwhb3Xh9qfJWZ1ECvC+tWfxR5LU/DJZ3NSRKShO\nMmEnecWOqYm0pRIopoZqagTnMgTySTq1TSx2HS0oU3TbCLm2USlQv31qfZZdjgfeREJHqdd5rHya\nrM1JSvKBIOCqlfBpWZzkiS5u4Y4X2Nd7i3yLHdGic1MZJlhN0ZpI0ONdxmopE9XiOKZKVBUbGwNh\nkgSxlWu0phLIczrKbB2/lMEUQAnU2LV6sEhVFunlPA9gSgJd0goJM4jXmsawCaiUETEoSA6qLTJp\nyc28OEBJ3TMfuciTl1ysqVFyqhuJvSEFVqpkHB7itNKqbCLZ6tikMiYCHrIEpSQn/Ke5lDnKylQ3\nDk+RnMPJsthNJLyBuK/OsqUXs1Ok07vGO70vcGr8SWY9oxgFhXHhBh4pzVX5AHrrXpMs10MFLF3V\n71bW930eOlBk80aZgKTR/7CJZIed6bsLiXC3UaSZzmj0gm4GyOZCZQNUm40lYtOxzKZbAyDvFcE1\nm2Sai5rNBcpm3rvZHt8s1WsG98ZxGsdtpkWaM/Dmomjj/Zst8jrQOg6BQ/Clq3U2JyvsdRJ568b9\np0RELzMM00YcER3RMKgUVaz1Gi6pSMWuYpdLjIgzXHnHcTzkGROnqPZZyZluOsQ17JQImzsc0S4j\ntps81/YUilWjj0WOShfQPCJRcY0ulgCBKcaYYgx3Pc+Ifov98jVa5C28ep731p6jXLZRUBy4olm2\nacGZKPGh2BfJKk7mnT1sKK2UBTurUid1VWRO6CdRCSOkRNoqCVrrSarzFsQNA0upDg+BNiKRj9rw\nlDIo6TobeitFlwPRqjPILNc4QL7uZaI4S1FSqVn3XIQD9QVGKnOAgBg3EKYNHradJSn4WKp2ccb2\nMNHKFpFckpAjQd0ikjIDOHdqVC0WZsw+coKb1soOru0plJ069R2JsqlizVZxlUuMardIOIPM2Qe5\nwDEOc5mHOYNLyH/TzShTR0eiJNipuWQMTcDISCw5epFlnXF9CodUpCYo6Ii0soGia3SXYxQdKrO+\nXiwUqaJgIFLGjpUqnUqMw9ELbCbbmJ8eIfLEAjZ/iRxujvVdINflJv+ISj7vo72+ydM8y0pvN1ve\nCMQtHO8+Q2tkjW18VLChGhV8QxnsWunvOWDvReWFTSrTaTw/1oK+W6E+vXsXz9ygLyzcAbTmJlHN\ntEZzv5FmXrnBATca/jfbv+FbwfVeHtpoWtfc0KnBMTdTNM2KjmZFSLPqpZljp+kx4561zTz8vZm7\nCFgFcPf6qfVHKH96nfKq71vO71st7rtK5PC/f5IaFmYYYZIJbpVHiL/ezfaNKOtbXRT9dopOOxl8\nLJh9ZBwetu1hzlWPE9ej2KUyKSGIkZE4cPUW48vTjBVusdUSZt3STqIe5kTiEoYhMqMOc539zDBM\noejmqS+9yNGlazg9Zd60HadkVRmQ5uh6fZ2OWJxqr8KgOM+gZXZvlJaWxV0oknAGmRcHOGs8xHOV\np5hhBEXWOCG/ia+cQctbmB/roRa04NVzIIGpmog+HefVKu4LJQKXMlwNHWQh0L+nQcZCVbRwwzbG\noqWXhBgkhwebVEGw6uzavBTDVmpDMuUuC5ZbGq1fTjJUXWTD2cYfdXwMxVojL7o4Lx5nPtrPtcH9\nXHIepo0N+sUFguoOUqvJ7gE/599+CEuPhj+Twfa8RlW2Uo1a8JGmg3Wctwu1BRzEaWebFgRMQkaK\noY0lOmc2Gbi8TDlgI2RN8lT6G7TL6wTkBAF2qWHFnS7yyOVz2JUSgtfASo0VutmgDQmDPC5mGOYb\nPMF0eoxaTmWoa5pOxyrtrNNFDI+QwSPnUKw1sJmkJD81yUq7bY19/kn8riQVyUYNKxI6lbyDlZsD\nrF3rofJnvwJ/L1Uid0exEubC/I/iXqpzvHyVHHfUG81A1ug5YudO29MG/3uvU/Db3W+W2tm5G7Ab\nfT8arVSbeerGmmZXZDO/DHdMPo0bfGfuGu7IApsVLM20SuNXRvMFqWHkqQA2EY5Y4NXkx/gvN36e\n5a0qmv5WKjR+j1Qii/RhrdSYnxlmW46QdXqp7jjQ12XyhpuaJiPuMwkNJQi5dkiZfq7XD9ArLOLY\nKXPp+nEOjV1CCdbYCLawUBpktjREyEjQW1zGlSjx7NwzVNtlcl6VWX0IQxBplTfJdropZVValvPs\nV2+wa/UwKe+jrWUHr5mmR1ihiB1BMdjwtbJCLxnNR0xow08KGxXOSicYyC/yWO41PLkcwg7UyzJb\n+yLsumsookbgfAZls4Y9VUOpGZT9KmmfB5cjS29hmeHtebzODJJNJ4ebkmqlJKkUcHJLHGZK3IeF\nGvhM7L4yw8zQ17pMZCCJGTHJe+xsqmECJDAQyQsuIq3bqFRRKRMiQQYvv8XPcSx6kXbWCWq72K+W\nESdNLJt1fMEcZusawVAKW7yKfb2CL5QnE/GzEwhhp0SUOFFhnSuOAzhDJcLCDoYqYJXqCFYd/1wB\nXQxyY6QPl5SnXd4g6E5Stcok8HOO4yzQRwEnWWTWjXZyVQ9LqX40wUrbYIx99slvGm+SBKkINlqE\nLRKWINvlVs5sP0arfx2bWSGeaGdTaENVSwRCSVxSAa+cw+Urshrvvd9b9/skTIpVk6lYHV/vA+jD\nBv6p51By23dlvs0ZZgM8G6DXXLBrNszca4xpKDSaQR7ubnkKdwN1I5ttgO29F4ZmTXXjtfeCe+Px\nZmqlxp0RZ82F0WbjjNr0XRqyv0Yv8JQzwlcmnubU5nGmFpvLlG/tuO+APZ0aw5LWWLvUS1F1YXYL\nWJQqEga1DQvpfIiwkcA3lKZPXcCut7Fa7eKo5RJqusYfPPtTPOw8jacry/mRQ/xp6UeZ2x7m4+U/\n5Kh2GeuWzs8tfYq6Cj3Ms1LvJiJu02NbZuqxYVgweeDqFQ6XL7Okd/OydJKdQ3GcFPCTIkWAjOHD\nqZc453mARbEPH2new9foEZcpWVUe3X6D98aep7ZroVqyUrdIJIwQtbCMroj0PR/Dt5nFkq1hHtco\njqnEQm24pBxtiU0eWTyH2lJG9BrUBAsJycumJUycKM/VnuKSfhSfdRdNVFAp8zRfwzZaxjZSYl7o\nJiX4sFMmbfpQ0AgIKTqJYaOCjQohEszWR/l3uV/mZ0K/yseFz7A/fhPltTradYXsuBt7tkzXYpyc\nU0VZ0LGe16nss2GTa+gBiQ5iDDJHRNziz8Mfpu5XONx9hbJVBdlg3tvF0CvLlKtOLg8d5t3m8wxa\n56kNS9SsMml8vMpJdghRwk4BF0ktSCobojrnJBDeoW1slWFu0c0qFWzMMkQZlR6WcVEgllWZuzmG\nsU9ErmvcfOMAulUm2rrG29UXCDt2iNrjmIMzUIDN+715v28iB5zldN8JZg4d4+PlFbqWisjZwl2c\ndAPo4G4XZLNSw8qdyTTNRcAGnFm5U3xsUCMid9vIm4H9XpVJY32jANg86byZv252SzabZhqfqZFd\nV+85bvOEmsZ3bM6sNcD0OIj1jPKZYz9P4somLL75Nz3h37O475RIxfwVimfdWB8tIrYYkBUZG72G\nsy1P0haGFrB0VpE7q/SxxLhwg4PSVYqSAxzwgZEv0Nq/wYI0wJ9kPsH0/BjZVT+rmR6uOye42jtB\nqduKsz2HT03ztPgcB6RrqEKFLB6mbGO82PoEQsCgZrGQFvzMMkScdqzUmGIcihIfiH0Nn5whqCbo\nIkYXMSqoPMt78Foz+ANJTkdPoLVZcEcKvBB8J5tKC4YscqX7EMtHOtH2yzidJTzVPN50jhu2cW44\nx5kJDKGFJHZdHk47HiJm7SAn7g2tvXbzKDOzY3giafotC4wwQwk7FkHDRZ5dwc8C/Vw1DzJXHUQ3\nJAbkeWYZZppRdgijoLFe6eSN9CN0OGK0W+P0EkNur7P0YA+/9vDPIjpNwkaC821Hyba4KA3ZeH7g\nndSCMseVc/SzQAEn1znAAPOciJ3n4Bs3sflK4IIcHuSAhtBl4HLnGdmYR01rzPgHWFa6iQvtZPCR\nwUeSIEWc5PM+iptezHkJ0a4jde41iEoQZIoxCrjoZpVHOE0H6xATufrKEYpuJ5lFH7X/qkBaoIaN\nzUo7HjWLz7NLnCgZh5f4f/6f8A+UyJ3I5hEqu+g/M4LNL9By8dY3FRLN2uzmxlAN5YXStK6xtjmD\nbjapNGfecEcFAnf355C5A6yN55rbrcLdFEhjqEAjGtSG0PR8MyA3Pput6fuUuUOHNPqcNPqZNPLn\nhZ98D9c/9DSxL++gTa1D5a1EhTTie0SJ2DxVfO4EWq+IVrZgJsEIgCe0y6B9mo1kB7pTooINB0WG\njHm6azGmLKMUXSqtI3FuMcKsNoipQKRtk0K5SHyugx17GEdLFocnj6qUsdYrtEqb2IUSC/SzQRuL\n9j521DDtQoz92g0mijepqCoxuYMLHEPEICAlyatOOutrBEopttUgdmFvjtuj9dfRFIWXbI8hUyeg\nudiuh5CsdZJEWZejpHqD2PQKN7Qx3ld6lvHKFN5qFr+4i2JpJxaJo00SAAAgAElEQVRoJ6EFsJkV\nJEXHItQIailGc7McEy5i81ToE+foIIZKmSscIo2PsqDioIiLPDYqOMUC+yq3OJa9wrOeCDmrGwdF\nrrOfHSWCw5OjXdughW10p4nRKmArVeiSYsR8HcTlVq5Zx3gwfY7jqYuIYZ2SXSWNj05jjQxedvHz\nYPICw7k5XI4SO5IPu1EiUE+jB0VM0aCHZcoWGzPiANPyEFXRSh2ZFrbYxc9GJkr+vBe/J01Pyyob\n3W2UFDuZWIBc2E2LsE1rZRrNLtEur9FrLJESA9RkC9hBsypYInX8DyWRu3XU3goef5a04KNU3UfB\n4iRb8N7vrfv9F6kM1bkSC9PtBFt66PnEBHxjGWFjb5xas2W9MZy3+dZs/W6W09H0umbDS7NhRWj6\nu5lTbn5ds3yvmZtuUB/1e9bA3Tx5cwbf/HcznXLv882/FLSoC+2JbtYiPczfslNb2IT0W1Nv/Z3i\nvgN29IMxOnsWmVUG0VdFdEViR4zQ75/lbe6XeXP6JBXFgkINAxFbvUZfIYbLlWNdamWZXi5zmA2l\njWPec1QPWol726letlGKOyl2eEipASzOCqYTStgxJJGEsDeQYNuMUDQcpIQA9nKFx1NnkEN1Cg4n\nXxTezwf5Av3qPNc6Rzm+eYX+nWVy7Q5MGVqMHf5F9Tf5X8qP8rz0Ln6YP0URq8SlMBG2WKCPN3gY\nHYlq3cqZ8sMEXUlUb56u+irtwioVw8JNcR+v1E6iGzLvV75E1bRSrdoY3FrCHcxxNPgmfdIimLAu\nRLnMYWqmBcE0CIs7dLBGP0tMCDc4VrzMofgkt/qHqVj3Og5eZz+baiuR6DrHNi9wqHiNalCknhfo\n2Ijzs6Xf5XcGP8kf9P44KdFH//QKbZd2mGi5wRnnQ7xqnqRPX8Iq1LCaVQKxDC6hRPWYhZzDjazr\nTFSmmFaHyIsuwuxwKzLMHIOsm+20GluESOAUC2zRgiWpof+JlZ5HbjBx9Apnux5kZakfbVZFdyiM\nyHO8O3mK9ZYwmiAjVGHKHGfatg9xQscWLOIKZvAezGBXigTlJP0scDb9ELdSR2kJbJFbeOtX9L8X\nUd+usfOfl4j/jJ2tf/t2wjvPImYq1EvaXWaYhiPRw90A2TyZpUFbNIC34aIUmu43strGxJYGODaO\n2cjWm0d3NaiLZo14c1e+ex2SzeqO5uy++fvQtKbxPZr5bM2uUJ5oofBvH2fj1x1s/vbq3+zEvkXi\nvgO2P5fiyqnjGCcMTEVEsdfpElfYzzUOi1d5xv91pqURvsB7mWScRbGf/2H9MfqkOQaYZ4B5bjHC\nLn4ETAxEwpEdfuITv4vVWSNhCfH52Y+ihgsc8lxlInuLRUsPt1wjtBFHFcqsC+08nD3HodwNhJLJ\nWHEGXZKoqpbbU1UEImxjv1jC2BGpfNTGrstHTvTitBY4IF7BRZYOYrQsJpBWYP7IED5/mrfzEhVs\nlBQ7NacFQTJ5WXicSXmMf7L5x4wyR7rNx0dtn8Nv7rJPuMkf1X6UN3kQocNkcms/5U0nv9TyH5C9\nFdJ2H5u00l1ao6+0RsFro1NZ5QntFPsuztFe28BsFchLbtzkeJqvEWGbOFFEDNy+XQpbKs6XykgW\nk7pfIj9o4/HaK0SXNjjV+RidgTX0HoldWwAfaQ4K14hJnWQEL6JuILhNduQQ044BDElAFHSu2A/w\nsnSSAk4OcoVJxpnUx1ms9vFTxT9gzJzlzwMf4Ka5j3pA5B//wqdZF7v48tqHKEcUOiKrdLlXWXZ1\ncUMY5UTLGa7YDnAuc4Iry8dYO99JyWGj++k5Up8Ok1psIbc/iPxghbWBdhblXpLnW6nGXGwdVfC3\nJu/31v2+joVnBSpbdh764Ek6BwM4f2OPp23wug36ocDdKpAGbdJsbmnu89GcHTdAvtnC3qx7bsxK\nvFftoTQdq/E+jek4Dd763hasDRlis/Gl8ZkL3D3fscHVN/Pq1U8eJD42zhv/xkH8SrPf8fsr7jtg\nj/puUsmrlEWFrLNCKeKiIlqo1S3YpSIHPFcRBJ0vmU+zutNL0XBQ8KvE6lESRhDZUkcW6kSJ08YG\nNzfHKRadPNF3iu7SKqlkiPPqg3jsaUakaQqSg4LgxEOWfhaoYiUopAiKSZRdDa5A4GCadssmbbYN\ndEGiiIMw22x5wkhbJuGvpVg/1Eau2wU7In2VVSJmCsmiUS2qbKphiqIdCR0XeeyUMJIS6dUga/0d\nyD4NTbAgy3UCZophZslLTuwUCZDCLeSRFY2cxUE9L2FoEJfaEIUam6U21qe7iNs2SIaDuLaydJXi\nRLIp2mZ3sPmrlEetjNZvkS570FWJVjaQqZPGR8lmI2N6cC1VmBvsZ7WlHa1FpD2zwb7iTeqCSV94\nBcMU0GwKZfbUKmVRxUBEFctk/G5ykpOEEiBAijoyG3Ibcwyyiw8JnS1aSBt+YuVuDEPEL6Vwk8PP\nLopDQzxYx5nNEd5NsLDSS6e8znsdX+WseRwsJjfFEV6LP8Zruce4KY4TcCax20topoLNXcFAJnfF\nCzUHwqaHVCiCPm/B2FIotSv4g/8A2H9ZZFegkpFxDETJtCiEP+4ifPo68tr2XWOzityxsTcyYLib\n1mjmp5sbJjUrShp0RqXp+XudjM3Z9b2d/hrv3dCJ39sdsFFEbAC4eM/zDa5bazquCJQ6wsQf2U86\n0s/aYoiFlwSq2b/lSX0LxH0vOv7Mr3vp6VpAUA1EVQePyXqtHdMQabVsEbFukLF4mDb3sXa9j3za\nQ7B7i1i+m5VKDxnVg1Mo0M8iA+Y8ly8cZ256lOO9Z9kXnyW0nubqxBjdkWXGxSmmbPsoWBx7640F\n2o047eY6sq2GeMsk8PsZjC6J7WiYG84x0oIP3ZQIkWCma4iEHuTR/+dNqkELlUGV/msxfDM5vEt5\nPOki0y0jfOPISao2KwWc7BBGAGLXezj3+bch9el0hVd4D8/S6tjA4czTLuzx8Ou0EySJLsqEpCSD\nwjy97kWi4TXWna1sKK1sJqKc+Z+PURckXBMZeqfWiF7aJngxg6Vcp9ouUzxgYSwzg61W4wXnO7FR\nQUdigQG8Zo5AKk1oapfP7/sAnxn7CItSH4ZDwO9NMipN02bdwvRJbDoiTAujXDUOYxWq2IUSLiGP\nbhcpqnu91hyUqGFhy2xlUegjebsDn4SBXpNZzvRz2HWJQd80qljBJe4NPn5TeJAu2zJPCKe4+uZR\njq5c45+WP00ksImhilytHeZLZz7CXGEQx4E0YwdvoLZWuLlwiMiDG7i7M6RfC8KMiDgvIJUEhLyA\nYAXRY6L6SxR+61fhH4qO3zH0CsTPmGx2D5L/1fcQOD+DeyGOYBrfVIU0ym2NAQZW9uiNBmA2N5Fq\nrG8U8ZpNOQ3reJG7R281d+prFBibs9/GBaDx3tw+TnPxs5k+aZ7S3riQNOiXGne6+1kAq6SQevQw\nb/y3X+TKn9qY+1SBt5TU+i+Nb190vN+/Dcwn575Mej1I68EYqreEZOrY6yXSpo+kGORfSb9CXZD5\nI/MTnFi4iEvIs9wX5cuXP8hmrY2xo1d5VHkNZ63Ii9mnkIp17EIBoc1gf/kGoXKCL/rfh1fJMMgc\nedzYKdJRXeehy+cJZlJodhljzCRjeIjPdZDsDhIPtrFs62K+MkC24MWdKfER/2d5e/0UkRsJSt12\nilEVOWugV2Uqho2sxc2bruNcc+/nYc7goEgJFQ85NlNRJuMTHOi6TMVj4wLH+Jnsf2OcSbbcQRaF\nPkTD4Kh2iUrOTtxo51pwHE2SKODkCof2LjLleW4t7KPqtaK2FYnubnLs3GXedvpNGIXEfh+LBztZ\nqvQzyxA3bSO0s0YPywywQM/aGv50hrok8NnWj3LdP8FRLt7ucFgiRYBufZVOI0ZcbkNbtMGySO6w\nyk3/Pm4wwfv5En0sIlOnhB25auDNF9hwRliztrEqdPF66RGuJw+SWGxjvPcqIx1TuMUcE1zHR5rn\neWpvIISW47Xtk0g5gaixidqdI236WU70s7bZxZBrmg8Pf4bnl55h8uoBUq+FcOZ2EbYMCnMB9v3E\ndR541zkes55mUhpl0rqPostB/Nl2Fv7Z6P+OPfxt9zX80vfgbf92YelRsR/yEHR6ePv6RX729V9j\nVjfZuZ1GN/e+boBwM2A3APFevrgZ3Bsa52bDyr3Np2S+Vb5X5o6bsrk9a0M+eK+Ur7nVagPIm2WJ\nVSAgwIAo8N8f+T94tf0IO8UMhSs5aiv/u8Z9/V3Ef4Bvs7fvOyWyudWG3SiTTIfpkZcYcs4gKgbe\nehZfJYt3I8+u1YfWJTMQnGWgssDARpg1vZerVhNBgCRBEoSZZ4CwcxubtYQhiSTdfky3SYAUFmpU\nsdLKBh6y+EhTExREDFrNTXbwsxMOcil8EAORND52iLCLn4QQZk1QWaSPPv88iSdCaLqCWDFpq25h\nukB3CAgbEFpPMSLN0dGxjtOeR0NGQSNoT9HXuoTTluN8/QHerDzMI/U38cu7yGYZq7DH6FXZG7Qr\nCCYZvHjZpYUtwiSwUkVRNY6Pn6WyYycz52O308NGXwuJtB/HUBHcYItryIZO0eZgwdJPqhiiikq7\nM84ifWw6ywQ6t3DKebpZoYVNStjZIbxn0KkKaBWFdXc7ESFJn7DIGR5AQ6Ht9vlT0KhipYgDfyVL\n/+YyncFVwp4uMqoXTVAo4MLQJfKmizhRNmjDw97Q0joya6VOzIpIsCXBiqeHa4V3060soNUsbAlR\nKhY7pimh7dqoaCo1yQIWKGTdkDchJKBOFGl9YJ3DlfNEWSUkbvGa5W2sFP/BOPPXjdpymdq6RuZk\nH0HzGJf5IN6BC7SKMRJzYOh3G2waBpqGDb2Zt26eodgo/jX+bTa8wLdaUZopkOY1jUy7ds/rG0qV\nZtBuvP5eeZ8BmDK0DYJZ7+TK4jGumMeY2fDDa4tQbwgJv7/jvgN2X26JR0++zKem/0989Sw9A8tc\n4RCjxi0+XvwcyosGL3qfINEV4pavn0h8kxOXLxE70Im1o0hcaOMsJ6hYbERDK6yu97ObDPHTPb+G\nx5qmjMoRLlLDio0Kj/A6LvKkrV6mju8jqXt5sP4mMUsH8wyyTA9HuISDIpOME7Al8dt2qfhtvC48\nzDUmmOAGm1Ir7lKef3/m/yU4uIXWJaK+rHNi4xIVu5Wlj7STszsQUdjFTzS9zcmFc5wZPca6rZPt\nnSjPhZ9EdpT5mPFZNsw2tsQWJOsgKWuAbTNCTVDoZ5ExpjjGRabYxxate07H6VXsZ2u8/o+OUxmx\nMDPcS5ewSiCWYf/FW0xUZxDaRP7g2D9hZtPLjDDGal8X2+1hOonxc8Kn6GGZAEl0JCYZJ4+LT/J7\nDCRWSO8EeHHkSdp7Y2g9Il8S38cg8/w8v3579mSUWYaQqaMUDVgBS83ARGHL1oJVrRL0J6i0uzno\nusqQeJMXeJIXePKbmXky0Yq5o/DM8BeoWyTWHFEMScDmKhGxrrMV7+TK5hFuJA7QOz5DS8c6hRE3\n5qoM20AetgZbuSmNctUxwbHdK9jLVf7I9yNsD0Tu99b9wQqtDi+d5TyjXDL+F3/4rh/jhCPGS78G\nxfIeCKp8a9tSC3dPhmku+DUyXqnp+QZwm03rm+8396VupjUa4roGgNu4U+ysNj3WyLQb4C42vd60\nwsQPwdnCCf7Zr/0++utfA86C8dZ3MP51475z2P/8XwdZinQzaYxTc8qUVZULhQdIGGEqdhtFv53r\nrfv5qvheBuQFTKvAec9RXgs8yrylnypWBAxCJNjPDQJyClEyuJmcYIcINdVCFg9WalhMjVP6O/nq\nyvu4cPVhjsuXGLAsULLZmBGGWRL62CZCiAQdrPMA50kSwkTg3cLztzPLOhY0alixSDUivm0KLXaK\nqgOPVKLWLZMac5NrdeLMlIku7FC3SzjUIg57gc95P8LLq0+w+bV2SrtO0AVaQpucEx8kW/ZxcuMN\nrGINl5jnUHKSgZllxGW4GjhA3BKliIMSDtbVdmY7BliI9uLLZDk8O4knXUATFLY6gpxtO84brQ+y\n4uyi37rAhPM649YbrNzoI7vipyu8QlTcwE+aVaEbL1n6WMREZFnpZsq1jzVnlBZpizZhg2V6ibDN\nOJPY9AreaoGWYooNqQ3TEBmuLxBvbSHns9OprLIo9DOfHiZ/3UO/c56ewBKdxDARyOLFTnkvC7c4\n2BV8dIkx3mf7Cj45jV0ooepVdmNhJItO++gyJ70v8y7L1/mQ+ufsqIG9AQVlkSPdF2gRt3j14jt4\ntfI4LztOMisPUN51YPzhL8M/cNh//TABs4bBNtvZHOedY1z72Y/Sly8ysLxOij1wbM6mDfZ46QZt\ncW+m24jGYwJ3XIUNTrnWdL8hE2x8nMbFoNHXpNkZ2dzsCfb6lzQ+U+n24zYBBiVIvONB/uJf/iyn\nr3Xzyukwq8kymOtgvnVbpf7l8T0yzoz5p1iUuuj2L5Ip+zi39hBrxQ6KHhf+aIrF/h52KhGi5Q3c\nZhbdLhK3t7A418dKuQd7tEiXa4WoNb43pVypYlggZnSRKXjYMSKIuk6ktI1DK/GS/3EqFZW+6irF\nuoOVdA/za71U2xVUZ5lelhAxqSMTYZthfRYNmePSObpLK2wYUbJ2N2VRpWBzMtUzwkBhgUgxwaXO\ng3ikLA5rnh1bGDVXxVrV8eVzOM08elZkxdVNVnAzKk5R0h3s1v2sCN2kCGA1NVJ6EN0UcJoFvEYW\nq1ajVpWxajUCxi52cY9nnokMU/Q7GNhYoGUtQWhrl1q7TMrrZSXawXXGKOkqT2qnaLes4xazGAIE\ntF3Smp+Y2YVs1PGaGRxSEU1QqGIlRic4oOywYaGKxp6tvIdlwiTI4MNl5lHNKgEjhWJqFFUHsbYo\nV33jFFWVXhapVa3UawoBS4J03sf6TifDgZskpSBr1U6qWyqmTQCfznK6l+PieZ5wfoNLHGGqPk6i\nGsHuLqDIVWRHHa1oxS3nOOF5g9PyQ8wLA6TzYQK2FLZSjQuzJ8grDgRvHdlVwyjc9637AxpZIMsb\nM24srh5c7x2m3bqF6teoH9xBWd5FXirc5RJsZL8NCuJeQG/us93MNzdz1c0qkeYRZY1MHu7OmBuZ\n9neiXRyA1uem3B1gZTLApPU4l5xHyM84qd1KAVN/h+fsrRP3X4ctp9kn3qTTGePVtSd47vJ7MWQJ\nBuJU26x8ofxBokKcfx74TfqFBVzk6WeBi58/weZqJ8LHYGJ0knA4wVUOMlscoVRxMN55jXi8izdu\nPAYlE3HNRMgYaO8QeajnNZ7p/wpXpDGuXzrM5ecf4Cd++Hd42/BrtLHBRY4wxRivcpKP1T7HhDlJ\nWnUzmFhGr8hM9Q6xJbYwyxBWqgxsLOPbKvDv9v8CJ8rn+OHtP2eue4hUxE+rd4t3r75E9GaS8i0b\nyod1+gfmeLzrFZbEXkRJpyZaaGedvOris10fok9cICQkmI6MMhy6xVB9jse0V6loVjasLZzmbVzj\nAFulVn781B9zePcqRotAus3JZmuYGF2UUTlQu8HHs59HMnTmrH18wf8MXQcWaTHjJOUAr2qP4jFy\n/Cfp/+ZF3slLvJ0DXOMY59nHJpu0skUrAnCUi1iosUQPHjmHVaogqmATyuRMF6+0PMyrwqNk8DLE\nLFPZg9SxMHHyMquTfaxf68LyUIWaw4qUNVk6NYw5ZGA9VqRS9iBLJnZKBEhRrDi5lD1K78ACWsXG\n3Oo+ltJDzHpGqU9IuJ1ZhkKzXCwFqDtltKKMWQVeFjFXLWhBBQ5+/2pp3xphULuaYvcnzvFH1Qe4\ncOQYP/qbXyf6O2dRfmOOdfYy60YB0ORbZ7A0AFUH3OwBb5k7WutGEbJh0mnIB5sLhc09QxrA3WCb\nm7XajYsAtz9PF5B+povJn3qET/3kwyx83aT66jnMcjOz/YMXfx3A/jfAj7B3FiaBH2PvAvc59s7b\nCvARuF1tuie+4n6abULUBRladB448gbvyL3MqHUadzLDhhplRe/hsxv/mGhgBZutRNF0Mrd/CKNN\nAhdokkKu6GEhNoLDXWLAN0+vsoAzWELAZHWtj0pIxRnI82joVSxylReLT3LS+TLv7f4ijz31Mmqk\niGEKRMxtZEGnJNjZxU9M6aCClTeFB3i390XctTyfMz9K2NjmY+JnSePDCEPOqdKnLhBQEhimwSPL\nZ1nydLMVDZFvsbGqtLLV1cKByBVcUoZJdYyF5WFsZhlfd5q06CO+287y5ADnpTydgVUO9l9i2dJD\nVbIyIs3grhQJlTI4XUUOy5dx1op0zK+T9zuJHY8yHRjiSv0gl0tHkBx1NpUYuAX2mVPIkkafsMQD\ntUsUTSen5QcJSCkkSecbPIGCxtM8SycxWtnARYHHeJUMHnJ4eJWT2CnRSWwvUxK8ZPFwiSOkhAAu\nIU8NCwFSeMgiaxqabiGnuDG7DUo5Oy8l3kV1y0Y25aVccnDSOMWD8hlOhd/JhhLhf/BjbNLCbGkf\nWkIl73JTVxR0WUKvyMytDvPHr/042V43KVcQIydxdeEINqFCtd+2hwoZQBKgU/922+1vGt/V3v6+\nj7qBmTeosM3Kssjn/2MI19SH8HYY9P3kAhOTN+h6do75KhSMO639Ze7ui93c17rhkGzw1M3zHRsF\nxWYt970ZdUPf3exSNAGXAP0KrL5niMmJCb7++4MkXpFI7WjElpJUajrUmjuR/GDGXwXY3cAngRH2\nfh19DvhhYB9wCvgV4BeBf3379i3xqvYohbQLbOxN/x7YpCe+TI+2glWrEHSlmKzv55XcMIPumyi2\nChtGlEKLD9mpYQ8USWf8lEsqW5lWOu3L2Mwy5W0HNkeZrrYlnFqJjMeLVanwUPA060I7Z4sPETZ3\nOBy5hCVS4xs8QczspJM1ijiwUKOLVXbkEHHamGeAB9XzKBaNNdrpZZFRbrJEHymvj4rbwkR5kqi8\nju4TGNiap1q1EBOjZLwudr0eluglwhYFHFw2D7OU7EfW6ngiaWSbRrrqZ257mFrWynawlaHOaTTd\nQrVuo+RQsQsVxLqJaQr0ssSYeBOfM81s6wCn+k6SFIOsVrvY1f24zBwZxcOM3E+LFidoJlEpMVKc\nRaqZpEw/UXmTqmwljZ/9leuM1Gcw7FAXJTKGl2pJpYCHLbmNGcswLeIWXexZdg1EalhYo4NVulAp\n49wp0WGs4YlksRRqaBWZTNSLJVxBcWsUN10UKk4KmgvdJuGolAlu7eIUiqxKXcxVB6k7RaqCikMs\nUBckanULlEFQdFJagLOzbyPk2EGsG5CC1Uo3gs9AHNcRgzpGUoIKWNor3+3Uve96b//gxC7ZTTj3\nGTswgK/fT7nLR2DTwKVKrHT4sXoSdFgWMacNzLT5LU2evt3QgoYWu1E8bDSeanYu0rS+mTqxA4pP\nwBgVWar1sZkOoW7vshgc5UrXEc5a95O+noLrc8DfHxPVXwXYjV7odvYudnZgg73M5NHba/4QeJXv\nsKlXF3tZn+yGLnD1ZHC3prhUf4gh6y1ORF6nKKq46jkS9jD90gKyWSNutMOqgKNaoPfILMvP9ZJa\nD1F5l8Sy0sV6PIpwSSY6GmN0/w2e7v00KTNAXIjSLS/jYxfVWqJV3MBEJEWQG+wnLfjYESJk8dDO\nOk/yAs/yNEmCvJ2X6Kut4K4X+SHXX5AXXVzjIE4KzDBMsebk52K/S9izRalVIbdPJSl42SZMBh86\nEtu0UCJPCRU3WRSpxna5jW/sPMX7Ql9gyDPLlcNHqb1kwVgVqdUtDKUWGM/eJDdoI29XyaoeEmIQ\nlRIeVxbph3SuWQ/we7VP8g7LizxsPcNTlufYENqwU2KYGcays+RMD68EBxkorjKemeZHip/DcIgU\nnA6WXVHaEtu4cwWu942SsAVZrXXzp6ufYM3sQPWWeCz0IkPWWSJs46CIgkaUOPMMkCTIEr0U3/SS\nqc5x+AMXEeMGek6mMOigXVmn0xqjqyPGstnDzcwYsVwfLybezeunTlIW7dSdEmJIJzC+hc+fwurZ\noCZbyMRkWBIQh2oQFdD7bBztO4utXOVrpz+AfsBA6atg9VSp3HRSPeOACnjfk2Hnu9v73/Xe/sGM\nFbKrMV7+v2q8Ud2P4niU2g8/xscfe5aPB/8j9Z+usnVaZ5G7ddFwJ/OusUeNNKgQC3sKj0aRsZGR\nNw/2bRhfGsfqBTrHRfhtK6e2fpzPvPIUlt97Be2zGSp/UaaaucIPMvXxneKvAuxd4L8CMfb+D77O\nXvYRYU94xe1/v6PGyiEXqalWJF+VYs6BtqPgiBQo+azEpTYe4XX2W29wxv8wqViIlBak5Pbg6s0y\nYJ3jcdspvt7xHtaVLjAMapMy2hqYZYmSZidRD/P19FOINh2XO4NMfc+qLdUp4GSVTnRT5oniK9jM\nKl5ll6QSwCEVcJGjihWpZnA8e5mIuE3G6iEneEjh32tGdXsgp1POczl0gBbrJpJQ46rlEAWcBEmh\nIzFfGeK54vuYcF2hw7LKu4UXENsFdrQWuhyrFEQHs9oAGhaQBUTZwEKNVW8HO2qIVbkdr5jGSYEc\nbpR1HWe8Qrrdg8ezy7uUr3NUvIgo6KwJnXjI0l2KMZ6aIbCRwVGr8HbP60QcW5h2HddWgdWOdmZt\n/VwXxhjxzNJjW6YmW4jUdwjoaRZCQ7QK65hWSEghLnKEND5GmUZBY4cwOiIjTHOIK9RGbOQXPHzp\n0x8m2R3AM5pElyS2VqKoRY2H+t9g2xJCc8m0jMbJzPrZnQ7AEtAKiquGVa9SzylkkwEcbTlkTw3r\nYAG9KqNvyhCD5ZYeZJeG3iJivCYiXzCI/PgWyXgr1VsOaIOgkPpuAfu73ts/mKFhaFBKQglpT6T9\nyjynlwTq9rdjrIoU/K1kegYJPbLBSOfNvXFzk2WUG3XMmzBbhYxxt2OyeQRYDQgAXQo4hqG+XyF7\n2M6bPMD06igbr3ZyZnUGz8om/AacLQpkVuahUIeSCPlmj2JlUMwAACAASURBVObfr/irALsP+AX2\nfj5mgT9nj/Nrjr90VMPOp34X2Qhiu1CEnpMUhWfw7dtFF0USzhA+0viVXeJyG9fLh6nm7USVTTp6\nljjsusg79W+w1d3BureTZCWMkRSQMgZSSwXdIZIyAqyVe1D0Gm3yOglrkG5pbwRVkiDbRNCROVl/\ng6CeJCu4MGQBA4EUAcqoyLqOv5JFd4gkFR/bQpgiDgxE1ujAVqzgqeaY8/ajSxA0kswIw/graSaK\nU+y6/azqXaSrfooOJ3bKjDPJTjhMRVM5XjrP58wPkzDDeOQcaqRMl7aCV86w6Oxmk1bKqETZIHwb\nhoQiVJM2St0qIXWHh6UzdLBGkiAaCiESBOq7VAsqiYqMWi6zX7/Blj/ITcswbCnMKz1MWUe4ykG2\nbK3sKCHcYpaW+jZeIcvx4BkWtAE2alEWhF7yOKhiw0kBEYNleqihEGaHEW4hDRpc2TrM5//kw7j+\naQ7rsRLFspPseggpI5KMhMm6fdQtEj1dS3jKWdY2TfJZN0ZAxOKu4JEzVCoq21k31lAZVBDDdeqL\nVsQ0WMpF1modiBYDZ2ee8p/YYVdG+aCBdfHruNavoFQ1in+W+9vu+b+jvf1q0/3u27cftKhDMQun\nbzB5GiY5DFihbRAxeJTu8XmMURfDxNGreSybNaoSrCITQ8GJHQkFAfm2lV1HQCNPiSI1XEKduh/q\nA1ZSD3qY4wEuuR5ifnIEY+scxObhv9fZE/Hd+N6eivseK7dvf3n8VYB9BDgLpG7//RfAg8AW0HL7\n31b4zsmO+dgvMfD+bQ4qV1l5zc/Zz8vEX+ii8rhK/eclfp+fwESgKlgZGZ2iQ38Bn5yhQ1mlT1tm\nNLdAyvFV6haRv1j9KLVDEjZ3AZc9j6kK6LLIO1qfZyE5xM3VCc50bSPYX+MA18jhJouXVaELm6uK\nhsJV4QCaoOBj95sT1gUbnG85iEMskBF9VIW9wbRlVCYZZ3cxTGAtwycf+i3GnZO01TexWap41vJE\nbqX45eP/klpI5het/4mc5EbAYJUuosRpye7wtulz7AxEkMN1Mg4fI4FbDJpzBO0JXuEx4rTzPr6M\njQol7HSwRrVbYbJlhLHaDPZSlZQrgIUqQZK8ny/ipMCys4/f7v1Jwp079JmLHBSu8lXLM7whnCBx\nJIxPSSOgs0Y7U7v7OVN4nE90fBq3JUdedmIVa6wlu3h5652MD1wm7N7CQYkdwhiIVLGSw0UZlRoW\nnBTZLoQwZ6qkz3kRfQGMVhGjKrIhR/n09k8jiBo+f5IRbmH2iLTY41ysPEylQ8E/sUWXZYWaw4Lu\nFqlaLJR2XVRXXJiSiHMsR2tL7P9n7z2DZcnP875f5+nJOZyZk+NN5+a02Lt7N2KxWCwIwGAGZdkS\nXVLZJG1ViSyp5CpZX2SSlkqyTVqiYEuMIEgQALFIu9hdbLh79969OZ17cp5zJufUPd3tD2dNyhZl\nWAVfcUWcX1XXzIee+Vd1PfX09H/e930oChFkyWRiYpmVqWnySymW8gc4+d/UOfN3tjmk3efVzidY\n/99/5wcK/NFp++IPs/Z/ojhAD/IL2Jc22brX4xXN5m2eQWrZCC0Hpw1d249JApEp9h5QfB9+vgUU\nsJlDZhfNrCNdA2dOwPo3Eg1EOt3b2LWH0Gvz5wV9PwqM8H+/6b/1F571gwz7IfAP2GuC6gLPAlfZ\nu/J/DfgfP3z92r/vC3qDLgxJZX7zIMUHSZw7Aua2ysjUOi/xFW5xnDIhQlSouQJIWLhp8YCDLErT\nXNWrFLUQgmoxlXrAlpOhLvhp9iTi8g7D2jphqcRp/xWG2GChMsUr3U9z13eEruzCEQRcdJElg1R1\nl8RWEUcTqAYCrMZG8QgtBMHhmnKSMVbw0iRBjoyRpWu4ebf/JBnfJqfHruHSuohd8LU7+EINzJDM\n1niKHU8STeyiCj0O1+bw2k0k3ULoOQTKDQLVBnUzwI6UwpEEHMWhiZtFzrPGCE08LDGBiEXdCVCy\nI3iUFml1m3onQF+S6eLiGqeYYInn+B4dXKyZo7zW+AQf932Tw9I9/J0WuyS5Yx6lUEzyYvAVBpV1\nFpmkJIWxFYmm4GFVGMVB4IA5R9Qo0+z5CDo1jAUXi7cPcvTxG2ipDnV8VAgRokqUEl1cyJN9Jn5l\nmepMFHPMhervUXMH6PZ1ehEJx1CwNhLcbJ3hUOQOs/HbZD+WoeH3Etd3mGaebC3D9XIYT6LOiHuV\n8MAtHFnA424SD2a5YpzFRmJWvU3g+TpLR6dZdU1QDQYph0L0kaD1Q+9f/tDa/tHEgX4Xml2M5t72\nRg3//+Mc14evFf48eAz2zm5++N4NjrR3tVv8W7fF9ofHPn8RP8iwbwO/DVxjb4f/BvAv2btlfhn4\nL/nz0qe/EFNRqBdDFHMDdOtuBMFBj7YZCGwx279DX1LYFZL00LhpHWeLDEiwvDlAsR5BkjWCVg2P\n0CLsLlAsx8hXvXQRGB1bYdi3jopBwrtLWtjivWsXuKadRh9vEg6UGGCbse4qHbebSGeRw9l58MJN\n8ShvxR7ntHUNl9PlPfk8KXaIUcBPjYn+Mv2OC6clkQ5uccp3GVeth9FzUXOCdG0XW4EMa8oIu9Uk\nerfNQniKo5U5hqwtajE/nk4Lo6pxf/cQD9oH2CXJKKtU+hGKRpzb3aPYuoBL6PL+7jncvjaEYcUe\nwyV22RFTGG6VTH+bYKfOdfUkmmigWH1yUoBCP0a9GaKlemnJXurdEGUlQsmM0CgFCLsqjPjXcNFD\ntCwc08FyZPLE6KJz0r5ORC7i99YQJJtiPsHDm4cYnl3FHVHY7aaQ9T4epUmUIov1KcyYxuTfWWZH\n2JvilyDHRmOY3V4SzdWjuRqitJSkVE4SmK2Smd3A421gIaIV+siGjVF3UWuGGQytMxpYJuHKoYtt\nwkKZBDnaqocOOgeYw32+hdODRslPTQiw2J9kRFoj6Cn/sNr/obW9z7+P7ofHj071xn8s/r/UYf/q\nh8e/TZm9XyQ/kM5vehFfcpg5c4/KZyNsnBxjIvaQjXCaf1D/R/yE78uMKqu8zROU2hEMVHRfh43f\nbFB+rYcQPYhUFRBVG45Bt6ZDV4BBkD5powybuOhym2Ncr59i98tJLI+K+aKb0OwyzU6AVxdeYuXI\nBMvRCcpn38CRRO4rB3kozPBy81tM2wsUA1GGxXU8tNhgCNllY1sy3aKb+/oRIvUC//X3/iVGRuHN\n04/jV2rc2jzBl+58gcr7QdxTDbo/4+JC6wqOJPBd79Ocdn/AxvIov/ra36MxrnNg5i6/wD/n9ys/\nxyvbP0Z72U3kUB630qDwawPMXrzF4Z+8RUiuUPhwjKmIzVhtjUO5eXaHksSVAsFWmwWvl5Se5RdS\nv8632y9w3TrBieBNHkgzqHIP91idZdcIDjYJdikuJ2FDxB1po2ttKkKQy8p5agkPRyLXmdemaB31\nkhjZohINslEcZuHhQX7iyO8yFXtIkSiXrj5BxQhz4rmr9JQ/n92y6J7klnOCe2vHaH/PC5cAA27K\nJ1iJDFP4n1L0VY3N2T7LGzNYkwLej1c4676MYap8vfNpzrnfJ6oUGWSTT/M1DDTctFhnGFkxOR97\nm7nmIUrVOHKoz0viN/it/0Cx//+t7X32+Y/NI+90HDm2wpHR20yE52lEfWzHBgkHiqzujvHg5ily\nR5PgEXhYOUxlM4biMujNanTjProzYUh7YVnae7oqAk1QPT0is3lagpsbd8+yFKuxW0yys5pi6sgc\niXgeX6pOVfOxVhyjnI2yO5nghuskW6VhHE2g7dURVQtDlWnZOm1BJ0ccy5a4aR6nIfsJuyokw9tE\n3AUyzjbRcIkl/xgP1WliFNhYHib7vTT+sQqWX2b52jTf8T9PPJLjvjRDRtokp8Z5oBxCF2vsrA7w\nrVdeZvnoOPpIi8H+GiOBFVSpx+XHvHhGGwyQZVDY5Hr/JHP9A2TULWJanmZQZ0tMsyEM4dHa3JYO\ns2OkMGs6i84UliYwLK/hFtpkhC06Xp2SEKZWDVK9H6ZxJ4jfqCP1LcKUCVBFEGFdGCZLijp+BJ+D\n7utQJILpVgmlSuiuvcfTJl4qoSCNvhdZ7HOO9/diwWhyu3ecXG2AbtGNPtAm8PEKMSdPaKaEoNmU\nkik6mo6UMHH7m2SGNhjxL+GVmqxbw1TFIA3By5IxxXJjhrh3h4BWRcGkgQ9TVGiJHkRXH4/VQRBs\ntB+2Cnufff4T5JEb9onPXeP84DuEqKA6Bn1doijEaNV9qKsW2ck0TcHP8vYM7vUWnlANzemhPDGM\neDCJHZP2Hlbn2dv+coE62CPx8Szl3SgbK6MExDrGioq61uP0597nQPo+bjq8yvNYPRmnDP2cykp9\ngnc3nkGJGcQTO8z477CtJ6lZXla64zQUH21b53b1GG3Bw7i6Qjya5YA0x2HzHtqhLiUtzJI1TlvU\nqeRCCPdtvD9Ww/SqFK8n+fbzLxAJF7DbIjtaiqbfi3TIxBJlFh9Mc/9Lx0nEthl9YoGpoXkmWQRb\nZOFzU8hGH7skEQsUEFs2tXqQeDyP5m2z7s2w1h9imwzrnkEKxKi2wjQrITo+maSUxUsTF13CQpm+\nJLPKKMvNYao34zgVEX+8RlUIMtJdJWHm6LpdtFtu5mszDCY28Us1ZPp0cREMVpgN3CZEiY7lImck\nMUclJNHAFgVOcIMR1rjLEfK9JDvtNJrVI3i6SGJkmzFzlQEpi9MTmH/yCC3Ng3u4Tjq8zin1Kme4\nwjYZHASS2i6CCA/bB7mUf4qj8geMawsEqSKaDkG7xoo6SlCvMMD2XqiCpf0A5e2zz189Hrlhfyz8\nNtc4iYcW563LPN5/l5vqCbZHVjkcuYkUMmnXdcS+zeyJGyQiWXqiSmCqRDvkorkWwrHEvbYGCdDB\nHFUoqBG08S7H01f4vOuPWU2OcuvkUdLRLbKkucMsHXQEw8EpieS/NIATBuGgQyK8zUBsE6/Q4nWe\npdSIsbM4RGpoE0kxad0L8WD9OJvqGL6XKqSCO3RljXpUZ6E7zrXqaT7j/yre4Qb24xKF1QGcgIAz\nKFJyR6hWAtQWogxPb6IOdQl/IUf1jQhi1Wbq1x/gn6gSoIaFRJEo7aaP3O0MG/MTzHWOMPz5JbYL\ng3Tn/CxfnMAXb6BgckS6i4RNiQhHuU3Sk8M11OOSdJ6G7MMUFPzU8dBCp0MbnXwkjvpCExUD22Px\nzcCLxBZKHFhf5ovnP8eV3cdQFuDQYw8Yca3gpk2NAGP2Ck9bb6CLHd6uXeR/Wf8scqZL1J+jJ2gU\n2CvJjFJk1LdEUQsTSlRoujxUeyHeW30Sb6iOK9SiFg4Q8RQZDK/gk+sk2GWWO4yzwriwzIzykHVh\nmJIVhzbs9JMImAyyxX+W/RqT3SXujM3QVLzodJnhIcO17Uct3X32+cjxyA3bcUGeGDZJ/EIdv1Rn\nSRin6fEQ9JSJkSeuF0imcnhidWr5AEtfm8a8oKKGeggyOD6Qh03csSa9po7gdpBFCwuFnuhG1gys\nvER9O0TdG2BXTTDvTCNZFk7YIXNijeL3E3Tm3Qglh9hInuToDi66zK8dJFdN4fE1QbNxZAFfvMaQ\ns8GUtMCgsro3V1ooUVP94DhEhBIb4iDZWBqOOMhBA2+ggT9YY8C7ia/fRAiLuNQO5X6IbsONabqw\n3X1q4368gToaBhoGIaroTQPrukypGKOmBqm94qfr0enLGq9f+jgb48OEZ4usC8PEzQJP994m7CoQ\nkKt43U0ELEpESJBjrnGIpc4Mmt2j4/fgrzUovxPDDGnUIyHq74VYdE0xm7iLR2kQ8FXRUy2iWgEV\ngyoBhtgkLJRZE0bZbg3ygXGGnl/hCf11RuVlWnho4SHLACYKAbnKoLxG2R0hRZZxY5kF3wHamk5P\n1tATTQTJxLJFztuXmWSJvJigjZuqEMS0VY7fusOR9hznUlfJanEaeDBRiMoljkj3CbdLLLjHqShB\nACTlr8ZA+n32+Q/hkRv2mjRC2/HQFDxck06yKWaomSEMVBTZwGe1OOB6wPDIGu9ygbdXn2L5X00T\nT27j/ViLqt+BEMiyif94mc6KF2oCIbFMvj7AWmWCD6SzLM9PsvzBFBODC7T8OqatUDLChFIVRlML\nOAWR+rtBlOsmQy9tMMA2HXSsVQWlbTLz3D08ahMbCe1IhyeOvM1F3mKUFRwEWnipECKoVTmu3eAG\nJ9n2Z/BP1PGkqsT8uwxqG8wwT4YtwoEKC+YUa5ujVO7EsAMiBBXWSuO4pC7RQBFRsskIW8g9i8hm\niXbQgxWXKHwzhXNKgGcdXv3Si9wsn2BgdpUeGp82v8nfavwWG3KSmuzDRmSaedq2G4/Z5o3qC7xZ\neQarI3No+BaBXBXnjxTstIg1LCLcdch/PMH2kwkO6ffIe+LkBmJIQp88MTYY4gj3aAkeviF9iqut\nj9EVdEbH53mG1xhhjeucpIPOKqN719CQ0M0uK+I4GWmbk1zHHWyzIQ9SFGKo0R6djo7UsHnO8z1c\naofvCxfZNZN7hi0ovHT9u5y0rmMdsnlF+yRXOEOWNP2QhKmrxLoVlhWHqhJEwiLkrgA7j1q+++zz\nkeKRG/ZDa4asPUBCzmEIGvPmDPm5AXqShpgyWCwf5Gn9Df5m5jfQ6RA5lmfqn9zjxPh1eqKLP9EG\nsZoSRk6juJtianqOkeMrSLpJp+hjtZzitcaLdLxurKdl8sE4w8Iqn5C+zTvqBSpCiB0xxYkXrjJ6\ndpV0Z5v0+BYGCvNMEz26i9uqc0CeI0qRADUC1CgQ422e4BIf+zDCa69QVMEkwxZVQgwH19FFg3dv\nP8mmf5TuSReHhT2ze59zzG8cYrM6jH3YQvO2EDvQue9lszxGe8hHKRXhoHyfo8nbvPzzf0xOTlLs\nx3lXuEhj0IOc6GFMupGSfQLUOcptxrUFboQPoykdlhnnG3wKAYdGNcDW/CjNtE4kmqO4kkS0bOQR\nA+mXuxzz3+JE4AZqw+Cx1fc58if3+eCFYyTiOZ7kLVaFUQRsxlghTp4t0qwxQj8AwyzxCb7N21zg\nTS4ywjolInTRCFLl7v3jzK0epuIN8Xr8Ba7Jj9H8wEN3SMN7tM5Lga9zqnWTieIqSX2TkhQmZFV4\nde5FAmqNn5r5HYQXDPKFKAM3c+gHeowlV3mM98hqCX5D+Ru0HA8dScNGZIcUqU6evT829tnnR4dH\nbtjL5UlKzTiuZI++I1MpRakthDFtGblh4A1s0QlorDGy17QSznH3rE2YEmqvz3h4gdawB9OrYAoK\n6fgWCXWHhRsHaOQCGC2VrJ4BH2jhLrtSEjdNksIuCTmHjwZuoc1Qeo3B9DpRitTx0UMjQolMeJMS\nkT+b8xztlXhQOsyab5iskqK+EyRMhSgF5LyFJYh0vS52B+LIioWXNmnvFlGPgkwPE5XN3hAf1M+R\nq6Rpml4IWqQiWYJmlU7FRyUQoqW62RUS3GUWn6vBY+OX2BWTrBmjpB7bYdU7zHJojJ1Dg9ghMFHo\noFOSIqxII7TRKRIlQI0KIXLtBHfWj+Gt1/CFa4xH5om7dxFcNsIQDASznAjtRaPNNOcJFuuUnTAq\nBpO9Ra7dPIvgtxk9tEYPDTcdDgn3aMtu3LRIkOOt1lNstEcodBaoef3IHoNpdZ6eW6PvkzEdjR0z\nw07JhtcMwo+XiZ/cJSnsElQrKF6DshymL8ikhSyq2yAsljll3KQ24KMraojb4PRFagSoEmBJmqQm\nBUixg4SF9OHAzbvSEfbqB/fZ50eHR27YpXwcZ0elEgjRM93UtyOIOzZy20ZpOZx89gMy8XXucZhp\n5glTpkaAJl5SWpaj8WvUogEajo+W6CEq5GBD4P6rx6iaQZSwQT+q7CVSiBK5dpK26mJbSjMsrDEh\nLBKgjoJBjQAtPNzmKDJ9zjuXSTg5OoLOQ2GGk1yn29H5P1Z+nl5GQvYYlO4lEQSQ6WNdk+gLCv2M\niOtCA9sroXYdPnPky8TdO3u/zc0gS7Vplrdn9urFBaAtkulmmQjO039MYlUYZcceoNvXeZ9zWILE\n3zV/DbfcoefS+InDX+KKc4bf63+B8oEwhiBTboe5op6lIgURBZubHCdMmU/xDS5zjryZRGjY1BbD\n6MkOsz91CY+3SbkeQyjJKKqFJ9QiQA3iUDZDbEpDuK0m6eY23W966I9IdA+5yBMnyQ4v86d72ZNo\nmCh0a162dkdZK0wgDhokB7bIKFtEp3exhkWMXY226cXKO9j32qQOrnEg+AALiQeBGe75DxIX8mTY\nIiblGZ5cJm3sEm+VMV0KgujgBAQMVWOead7kKRRMJlhimnn67HV8uuhwWT8N/G+PWr777POR4pFn\nOv7SP3ZzIfoWT/jfxueq0wh4ODB0j+hMDnnK4KnYG5xQbjDJIlc4xzojzHKXEhE2GEYA1nYnWSuN\n03a5kaQ+tibTyrgZObzC6OAK5WoUOyygJLuYH7jo7HhpKCEKRgwTBY/a4iEzGKgc5h73OMID8xD3\nGoe53ziKbcg8qb1JUYiyJo0wE3hAy/CSa6VJZLJ8aujr/Gz6t5mYXKA/JlFOhTmVvkrcn6PvEelr\nEnkxzk4/xcMbh9nIj2AMSDjbIlRFcEFrzk8pG8HMyGTkLeLlIkvvHuS4cJNnIq8RFsusiGPcEWa5\nwQnebjzN7fxJms0g5g2d9td9NEI+LL+ErFjEKBKkSpkwmwyxI6XI+RPYUYl+QqEaCoAsIKkWllek\n7vdyXz7EDU7wvfwLfG3zc1zOPkbPcaGlupQzIRIzu4wGl/HRpIPODgMkxV2OSPcYEdZoKR46Lo2S\nGkYOmoTdJSbUJUJChbiYZ1JbRPW16bh1DL8H87iOMaQSFGocsh5wvH+LV8Xn+UA4wxojLDBNVQiS\nk+Jk1rMMtHbpjKpU/AGaspcaQZ7mTc5wlTZudDrYSLzNE/hocvsffhP2Mx33+SvJX1KmY1vzIIhw\nQLpPRQpyXztIMpSlUg2RL8Sp2CG2SbNLghvmCQxUnlFeZ4kJNjrDuAs9WqYXj9omLmzTrvtomkHC\nYwUG5CyuVo+skaZQiNG9pWG2NRyPgGGZOIJFVQyy46RYqU1SbCTwt9tsWiNsq4MYAQnb0LAdkRYe\n5o1p1L7J31S/iK3KGJLKdOIBKWULoyvTrrmRAyYhbwmrquDttxgNL7GTzdAyvQgqJOw8Sc8uBC0e\n9I9SaCXBhNJGlK5Lxf6YTYYtkuIu0645/HKNnfIAW+8Ms+IZZ3FokkoyQL49QKkR35t9UwNzXUX4\nbp/tDRvxkMCga5O4N0fQX6aLC4+7xfjIArlwmno3QLaZgb5I2F1C8ffIOzG2+ykGpS1y7hQ74QxR\nq8SOmMLsnKKyEabr1VkNT+LXGwiywxYZJsUFwlSo42fCtUBLcrMmD+FXa2TULQbYRqdDT3SRdQ8g\nWBZitI/+jMFAYJchNigQoyDEyAhbrDFCAx9u2uh0sESRRXWMKWWRlqozH54gJyQoEMNPjShFIpRw\nEIhRpEaALQZpN30/UHv77PNXjUdu2P+69V/gaXT5xcSvY0gqAg4O0Nn2svv+EO899zGue45TdGIU\n2jFS7FAMRGnhoVSNMX8jxfiReQ6lb3FYuMeb68+zWJ3k7JF38MpNHI/A4KkVjC8q1L48Dr/kIB0x\n0DxNUt5tNKXHpjVEcTPJ2uo0d7dP4XQFpMEe2jNNerZAQQrzuv0shXaUI80HnDJv0wnryIEOh7nP\n+845/k39r5N/I010MkfiTJY7V48zFZ3nnOdd1m7OsNMYRk+1+Zkjv8PR2E0MR+U3pV+k4CT/LLTO\nFFTKZpiCHSMaKvCJp/6Ueab50vWfZvGXD9IdciN81kK82AOXiOR8GIMVByYc7C/JlOJJSj+T5Fby\nDDPD9/mE/+tIWMTkAsOedW64TrBUn6KzGWDLGaXoTZAaXqfXV1H6fabcCwgRm6rHz8HALcp2mLdX\nn8D8VS/2iMydX2kxMJAlIJc/LBX0Y6KSI8EJbiDIDm/6LzIirnFIuM8ESzgIrDLGFfscO0aSviAT\nnCrwlPQ9znOZf8Xf4H3pHD1Jo46fCCUO8oAQFXpouIQuD8am2GSQb/JJbET81BllhR1SfxamkGEL\nFQMBmyuF849auvvs85HjkRv2jOc+fq3OHeUwOh0+xiXGWKExeJ9R9yreaJ2N+jD3dk/Su6mBr4D6\ngoEsmkRCecZPL5EvJ7l27TEW1UMo/h5HJm9wQHvADknWGcZFD+2QAZ8C3AJ+u0bGs8aEtGcmWTuN\nXLOIenJMPf+AuhUg6K5w1HOD15svsFiYZufWEJGxPF2/xi8W/hldXUYM9JCxWNsZp7SUoG8rVPph\n2h2N7qjCqjVKc9OHddDhrPo2p1zXCfirzDPNEhPskty7wl5gFvrzEo2/7ab8hRCrL4xxh1mqBKkQ\nxELCPVMn8HyZSKxARsqSDOcwUAnEa3jTTb7S/UlWeuMggRAyqQa83OIYFStEq+vDamokfVs87X0d\n/3CT29ZRKnKQE9INHpYOslyd4p3ARZqGD6uvU/cG0NQeEwNLdP97naoRo9qI8M3iywz3V8gE1smR\nJEaBWe7Qxk1eiBEWSwSEGiYKDzhIjQAb1RF2b2cIpsscydzhM9VvILlMVjyjuOgyySKP8y46HR4y\nwxs8xShrWEjMM42KQYUQJjJpsqTYIU6OKEWaePlDfpwR1glRYYaHtF1BHj5q8e6zz0eMR27YU+o8\nMTVPEx8RSoyyyhAblPwRun4NAYfsTobmWgDyIAkOXpqk2AFJoO/WaO762V2Jk130kDmfx3+sRq4w\nwMZ6ho18hlC0iakp6I836YkaGAJWSaVZDyB7TdSEgaDZBLxVDozfw0ImQolD3OfW7lnmVjUatkZq\nZIu+LvGa/jSj8jIz3Ef4v+bxykAIOoabzqoLmmDrIpZbJDxQIqiVsXsOC7vTWIqEmjIYSazg9AQ2\n740QnCgTGi8QvrKLXVXYKg4hhCyiUpFEKI/0vED7zP7vLAAAGMpJREFUlI4UsQi6a7hXW7ACwoxD\nIF5lOLxG6tktChtRGu0AotanKXhYzM7QrHpxHBF3uENEKDGtPiSmFtjpx2k5LlTBICNtY8sKZSGI\nLPXRhQoVM4Qut/H4W4w+ucp2aZDKToisMICHOuMsYKJQJcgmGUxUWnhJCTuk2cLz4XCmreIQ2d0M\nHcNNRlwnIe8iY2J+WNcRooyCScUK0yr56So6/ZCMSo9qN8xC4wC0wNHAk2oh2A6tupfdLYVewEPT\n7+ED1xnWuuOk7Sx+f4WUZ3vfsPf5keORG/Y4y4yyiosuOh08tIhRoEqQLAO4adFtuWALyIA6YhAR\nShylg9gS+MrKT9Ht61Cpw/+6zHZ5gKx2kcvtJ3F+u4XzmsHmE5P4f7pG6FM5SpUold0g1YdRHt6f\nJTm5xdiPLUDawSV1SLLLMBv4aGCiwH0H1oEL4HgEBN1GH20wLi1whquEqFBOhVnyj5NX0hjrLrgs\nwRIMnd/g3Pl3KQlhltsTvFr4OLyj8qT/+/x3L/9jNo4P8l7tAl/6Jz/H2N9d5PSLlzn97FW+dO/n\nuPdglqdOf5en9DeIjJb4g3/6k3yw9Rj51QFiUwVufWuI9d8ch78Phy/e4tzgO4TO50nr6zz8zhHE\nvkWv5mL7YQTnASTjWY7/zBUG1TXctP7sRtPGzSKTnIpe51z0Eu9zDhMVy5K4XZ/FFqJkvFs8z6sE\nPDUeDMwQ9+4SUQuI2PhosE2ar/BZTnKDAbKMsM4B5rCQuM0xVh9MUtqN4Xm2ijdYpySG+UfhX+G8\ncJkLvEMbN1tkuG0c4/07TzAcXOWTp76Giy7btWEePpyFVYjHdjjw4i3WzFHurh6l90d+mAXhkIWQ\n6JHLpVk2Zhg6tMRR/61HLd199vnI8cgNO0YBjR4VQpSIoGCyTRoRmyect/lq5fPcM49BBngIZSPM\n1aNnCApVvO46z458m9s7J9noJ6Afx/mOC2fbgmkZz/k++qcamAkbq6lQ/b04pssFEQknAM6ySOWS\nzsJ3wrQ+q6Kc6OOlxX0OUSJCAx/ra8N7Y+tNyNlpTFljLLhMNjvIH1a+gBruIYVMktoOrYwHuxxC\nE03OffJdXNMtHggHaOGhr0pMReZpnvezbab4pxu/TGvVTbPuZeCX16nPerjinGXRnmShNUOvoVKw\nY1QJItkWS61JimaMnqWxnh/n4Nn7vDD0LcKzFbphlR0rwdrWBDvNQRgSsGoaomQhT7WxdjQago95\nY4aupFOTgoSokJJ2UByTghDjg8ZZ+s29GSAJX5Yhzwover7Fqj1KrpsgruaJKkVabg93msfJyylS\n/iwmMpVemHItyY2HZ3lYboMm4DpiEMvkkOnzU1O/y8zgPIK3zwPhIFkG+HHhj5jlNnEKLDJJ1hlg\nQx4mdLBAVM3Rtjy8t/0ED98YQvijZQ58Ic/Q0TwRIc9Wb5Ce7MKaEvFN1PBmamh6i8r9BHZBRp9s\nY7oeuXT32ecjxyNXfYLc3j4yAxQqcbplN3ZA4IBnjuPaDUq9KDul1F5QawuqRoib5VOM+xZIaVlm\nIvfZWBph0xhAfsKDvaZgPXT2sgBjIlJIxhIcejsqxrKOPt1CH2yjhgxKVgyrKtKTZOyKQHPDx8ra\nJHORGbLaXlNLrRlGkvpoWod22wPbENvNka0PkusP4PHVGbcXCZNHcUwEwUH29Ekf26QW87PaGSek\nllC6JpRFIqlVyt0or688D3PgD1TIfH6FtuRm0xxkvjeNX28RpcBOP8W9/mECrRqbt4axNYFAsEq9\nG8IZE0id22KQTXIkWDOGKebi1FohiIDdU1AsA3+mSD0eRbT2Qn1z7RRVQkQ8RdxWB8m2EVWHgh2h\naQVQMXDbbSJCiWFtg2bXy2pvlJocYFDe5ILwDnIbWrYHwXHYrQ6w2x1AxKHeC1ApRGhXvIwPLGJk\nZAzUvdkrrBIQayzb41TtAGlxC0nYi0pr4KfciLBTH2A4ukYficXSNNl2mr4tkpTXmRhaI5zuUbUC\nSIKFHujQPSByYPAeY6EFRGzuek7QbPo4a17D6D/qitR99vno8cgNO80226RZZpzrC2dZf2cCjsPT\nU6+SzmxiuASERRPn1zT4JahPBnk4P4s22cMdb+OlBXMgdxx8/8yg86ZG520VZGj+YYDWoh8nDswK\nKI8bJJ/ZYmRghWizyFvjz2KdFhj6fI3l231WXptk8/Iw1gUJOynh1AQcv4D+covE57Yo7SRoPAhx\n84Mz2Ecl3GeaTAw8JKHtQFPEXHBj1jXMWJ8NZZBqO0ytGuV07AMam37ev3SBzz33B6T0PA9ax6EL\nli7RRUcVDHQ61HoBjkzdIiYW+Fbzk+xKCbSCQe33ogw9sUbic1nu5k7yUJihicYIa3hoYTsCNIW9\nII8PE5k8Spsh9yarA25CVoXnXK/x/Y3nmOsdxTtWptvS0foG45EFBv1raL4ecQqEhRI+GnRx0bI9\nNEwfbztP8DEucVa8wtnQFbKked8+x7X5x9gRUiRPb+COtOmkfKx8dYr5/hQFgnRw8/v8NN/iRS7w\nDjeNY6z0x7jiPkteiLPGCMNs0Nnw0rofoncxx5I5TX55gMcPvMmRn87T/JybtLtCwY7zdu9Joq4i\n6dQG2eAAn3J9jRf4NhXC/MEJg0I3wS+0f4PvdJ971NLdZ5+PHI/csP+Ul1EwyROnZXroNlxQhzsf\nHKP7iov8U0nUUQPjOZXQbBHiUNmKsn5pnJoS5sFUk63MEE4a7KCIMyIg9fvoQw1MQaO36YYgkAQ7\nLdJweVntjbFZHqOhBrHv9ti8F6IzrWB5JOwJFweP3EEd6bJhDNG8FsRApdSLQsTGNdGkm/PgIOKU\nBcy0jC2IiA0H5/sCiALGqMb8Vw9jjkjYxyxWpBHiiQIvnP8Gx0I3Wa2M70W41kHz9og5eXLzA1Rq\ncay4i21XhnojQPcNL9aAhNS36W8pFN+O0xY89A5q9Hoq2eow/nQDzd0jJJd5Zvq7bBsZFtVJvDQY\n0Vc5LlzjnVGT7K0Ib/+3B9g+GWHo5Dr/ufBbrLjHaNg+zovvsS2kWRCmWGeQEGWmPvxDsadqOKJA\nXfLzeuc5brZPc8B3D1OVWRAnMUcEJNugYXpxK23kuAFnoBiIkuxu8XPab3NNOEWRKIe4h6hY2D2Z\nG/fOYkdATNgsFA9SJoI22uYx17tIHpsHE4fo+0WSUoHnxDdZFEZpCl50tY1XbOAWOvjcdSxRZI6D\n3OMwc+YBepaL9zxnUNTuo5buPvt85Hjkhv2dlRdJp7cxFQUFEyxgGbZyQ2yvDaIfqiMGgWMg6wb0\nABuKd+IUjfheRGobFHcPcJAHDESXgxIxsCYVGLdA7CCGBIQhka6m0az4aa8H9pL6dgQ6t2MQ0tAO\ndfFl6oweXkLNdGngpl9T6NQ89C0Vb7iGV6vTaph0ezoiFgIOraIXc0mjvyMTSpXxe2rk7qUwbRHX\nZBPRa+MP1xgJrxIlTy6fghooQYNgvMKYsEqxOABVianEIl3DTaGUwFxzYZVkTAPIQ20nRK0RgpgD\nHoFaM0xRS6DHOrj1FiPpZWTDYLOTZtC9zpCySoAaI7FlmorA3asHsZQwg5EymUyWgK+GKcscYI5q\nNkS1HGbVP0EylMPwqbhpk5a3acke7nKEDXuIOeMI22YKsd+n3InQrruxKwLt+0E8cgPd12Hs0BIB\nvcSJ9k0+U/5TBD/MeWeYYhFBgoKY4GprAMlj4rY7ZHvDNDxevJEGmmDiU+tk0us08KIaBmGrQss6\nTLUZQsiK9FMKVr+BNr/FknuQzegwywNjZO00imOw4BonI209aunus89Hjkfeml6O/s9UpqPMuB5g\nFyW2FofhNWATSAn0R1T6bRVnWaS766FT9mLrItxjL2FmAvhjUD4w8T1bQ0+2UOhTfz2M0XGB34BL\nKygzLdw/JqB5utirMsYVNzQAlwyDOozKxCdzHL1wDV+wjiFqNPFhxUTU4S7RYIGIWiSkVQgkK9gJ\nEMMmQ54N8u8MMPfaLL1xnVMXrvDs8e+wZo1RtcK4qwY/Gf99It4iVzhHghzlSoSrG48RuFBi4uRD\nLmjvsNabwOtt8beH/zm5ygBzuaNYkgQLArwDLAMF9rY8jgoA2GWJqhmmpXgwQxIWMpulER4uzTLm\nW8LRBS7zGKOsElDbPBh5DPuOm/LDKG/NPE3Cs8uYa5mHzPD6n3yc93/vAvVGmKbXRykVxk2HDjo1\nAojY+JU6fr3KpjnIem6M8lyK5peDdH/HQ/+3XTS+AtH8Fj/+2a/ys/7f5dPlV0i9WWJDH6IT15hh\nnjo+WoqXRGIHJWRSl30IXht0m7ajM1c/yqo9huCxmGKRjujij7XP8Jb9JHN3jlD6FymaCS/FVdj8\nWzkWbp9h25glcLiM7RUJalXOSlexkPjuP7wG+63p+/yV5C+pNV061gfBYu7Vw9QuhZHv9kk9u4ky\n2qMb1SmH4zgy+J6tkhBzCC6HnD+Oqan0ai66ihenJtDfVGi8GkI738Zpt7G++xAnkoRUBIYTWI5E\nd1HDTGrYPhHtVJOgUMFsuyg3okhJg2CmxKRngWP92zT7HjqyTlLfxU2bqFBkjBUcQeD7rosMyhsk\nnBwRsczViXPk1ThDsQ0CqTLZYArteAvPYpPuhs47m09h9wU2XIMs+ZapGwGogCr3qAphvrv9Elv2\nEJYi8c36y7RdOlMj9+kmXJTaMeobob2ngRngCSAG1MHZEjAlFScmIpoOD+8fxrBURjJLVFxBGngA\nuPPwONWdCJZHg9MiQVeFU/ErbDoZ1lsZLF1iwzdMN65DCPx6gyS7OAisdUe53TuGx9PkROcmZ6vX\n+HLgs1zvnWFnM0DsxC76kRZOVaDU0skPDXKJxzi5eJPUVh5Z7XNYuUeyv81gc4ddbYBu18Xcu0eo\nDfkRj5pMyIts9zI86B2i19XwqzV0OmwwRLEaY3l9mtZVD72STn9WwQyp4IvS+/ETdHMp+g9dOF+E\n3gmN3oEyK+FxZuXbj1q6++zzkeORG7bcexVdOsjK1Um677rRql1Sf38L/bEmNStIc82PKNskh7dI\ns41pKNSbHsSRPlKrj6vTox33YlVlxCz0KwqWLeDslJFCOvJQAOlJN1rCQK40Mf0STsjGWXwL32MH\naWcdWATBbRFRipwwbnHBeIdtK813xBcZdq0RV3KoGEywRB+Za5wi0cwx2N7CcYnIHhNtrEPMn6PV\n87C1lcGfqtJtuNjZGGapPYne7OAWuixd3yI4GiPt20KVWxQ7Me5tn8SRBVDh2+WXOJC4w1B8GRAo\nNFLs1tIUS1GcMwLCMw5mV8XJinu16T5wNkXMnkZtI4SW7JJMb9LCg0qPcZZ5b/MiW/lhhNL3kJ+4\nSDhc4GziXd7qXOSmeYyAXqMaCyNOW7jGO/iDNdy0qBGgYMUp9mI0VQ/RTomX66+wFhykokboqyqn\nzl0lNFikIXspNSP0Ghq9rI61pUJVAF3g7vUyo0NutiojbAcy5IwkCyszWG6BQVY5ym10eiw4BzAN\nEMy9GvFt0uS7KeqFIP05GVG38b5UR0m20WUD/1+H6ntdarc0sleHcAdb+IYbrIZGmf5Lb5tZA0Z+\nxNb+UVv3L3vtf5dHbtj2B++gPzGCKNsQBSHqoLhNFPqIjo3QcPCoLTJskiNJvpiicH0A+7JIxF/g\nyM9fYf7lQ9RLAWaevkvBH2U3F4dPn8J9pEPg7DYBs86AvE1EK5JTEjQlL2uXvkc5+RT1rwXhDwSs\nl10MXCzy2ZOv4LFazLWP8kH1YwyObaFGDa5xihucQMFExeD6jXN8/f4wzhi01z108xqXT0Vw1gX0\n9TYX/qs30Px9KiNxXpj8JhPheRTR5FuXrjN1UWfk8yu8536Mheo0VNkb4qQBfoF6P0AXncPc5cyB\nD6hkQvzJ85/F8KtohkHhXwxgLLlABDJQ/G6c7n2d03/vMuKxPhsMcoj7HGCOA8yx7p1kV00i3fsO\n+tRhVKlNS3QTdFdIO9vUxAB9r4yW6jIysUQ7pHKZ8yj0Seg5nlFe453u41TkIELSYlRb4fTQFdLR\nDf6a+fvEWgVuBg6TcW8R3ykS/HYL57xNcShE8kqR37+cxvjU/8BGYwJHtxGiJtrPNkHb61p92n6D\nsKvMteBJCrk01W6AZcYJUiUW20U6b1CfCqCJPdKxbfqyxISwxGc9X+X16DO8c+Yiq3cnGTuwyEh6\niY7s4n3OAl981PL9f2GNHz0T+VFb9y977X+XR27YXrtJcSuFWVGJT+8ycGKTcjWKuurDPdxgILGJ\nWVJZuTRNNRaiMS9j/Otd0KNYpyRsXcAZhp6ksbuURh7tEQ7UyB0exJAVmqsSfa+LvqNRaiSoL/vo\nZVXa77nhGQXxlIFL7pKc3cUZs3jF8wKnnWu4tTrnXO8yq99Cp4WBQpQSCiZLTLB9L0Hue2F4VoF7\nXbjZoHnHgKoHSdDQGj00pYeUs0gf3OSQdpegXWeuuclgLstXfJ8hb8Uxd1WcS+zNE/EACtSWwmxm\nRvCcaNHXN+irMo7uMKSuMdlbIndxgM5RNx1JZ8U3RXPAgzEoERkt4Lgdlu1RVnamqFhRloKTTAzM\n4yvWeGtDpnvVi5RwyExuMyyvM8tt5jiINaBAQKDhdyPJfQLUmGKBqFhCUixiTo4JdYWskGDGWsAl\nGdwPzlDreFlfHeZ7f/Qsjz/1ffTwLaInyswPTdLwehmd3aB92w2qRC8hMeDZYUhewxXpUCNIy/Ly\n9frnWLk6SOP7Iv3CDvaoRuWJGMcP3SIR3qXjdWG5ZFp4qMghfNTRy11eW3iB4EiZn0j/AVoPBra3\nCC6X6UR11GiP33vU4t1nn48Yj9yw3f0O/2d7dxMbx1nGAfy367VdZxO7NXHij5jGMkloFZqCWvUL\nCJQGAYJcEOJDoEq9cCsICQq9I6FKVTkgLj2gUrVVpBZFyQUKLQ0flaqYNqHFaUloaOI6No6btNiN\n47W9HN6JElHRU2bGYZ+ftNqZOeyzM/rP7DvzvjN7fHKAs6y/ddrWL4078Jtd2izbMjKrf2DC9Jkh\n4y/cmK7hvnKafRPs7rK0oWauulaju91C2xpvjI3avOaoa64/4/TgoIXjXc6f7KKfqaVNaSjd7/Di\nCqfW6Vpo6rjzXbXPLPlg5+sW26r2+LIes/rM2OkZ271sTl27hmEn1Sz5o094+0SdQw121HhjgbEz\njM1R62N0rcr5psq5psrJpvrCnD4zBptThuamfODNs/4w8Cnt9XPMVDmIAWn4YYO5ZreV0aq26xsa\nV7XrsKih3ZBJN3WPmflCXzp4NXpNnxo0v3KVan1RvWfOsirNitdOXWd+sU5bw/0bfuxD7xzzzOsd\nzj/frbq9atPIhNHaMYs6dfu3NRvfVdH0J3fotGiLoz7raW2Wna6st73zFcuqTjX7bZ971bqVeWc7\n1vlH14ixqVvs/eVXuHZFx67z2j+56IhtZqw3f0OXpfqkwY5pCxs7fdgRN/irq53xTyP+snyzPe98\nw+yzdR54Cye4ude52rBrB074SO9hK6q6auecNOyAnYZMmj27wRMHv+7ba35m97b9dvQd0fHnRQ5j\nK7blndwQVp9Kzp//HHbmXCO0rgPKGa7xnMh1yFdZ2Q4hhBBCCCGEEEIIIYQQVp3P4VUcxX051hnG\n7/E36Yb2e7PlvdJN8H/H09IYjby04SXsL7D21XgSRzCOWwqqCz+StvfLeFwaYV7k9i5bq2S7jFxT\nXrZbNtdtOCaNOG/HIVyXU61+3JhNr8VrWa0H8INs+X34SU714Xt4DPuy+SJqP4J7sukaegqqu1l6\nenlnNr8HdxdUezVopWyXkWvKyfZmLZzr2/DrS+Z/mL2KsBd3SS2gjdmy/mw+D5uk0d+fdrElknft\nHilc/62Ide6VDhzXSDvTfuwqqPZq0CrZLiPXlJftKyLX1Zw+d0h6Ht8FE9myvG3GR/GCtJGns+XT\nLm70y+0hfF96fNMFedcekZ7t9wu8iIel+yiLWOe38CBOYFK68f63BdVeDVol22XkmvKyfUXkOq8D\ndjOnz30/a/EUviM9WPVSTfl8py/iX9J1vv91E1IetWv4GH6evc97bysvr3UexXelA8igtN2/WVDt\n1aAVsl1Wrikv21dErvM6YL8pdZhcMCy1RPLSLgX6Uem0kfRr2J9ND0gBvNxux24cxxO4M/sOedee\nyF4Hs/knpXBP5VwXbsLzmMUSfiVdJiii9mrQCtkuK9eUl+0rItd5HbDHsEX6terAV13suLjcKtJj\n28bx00uW75M6DWTve11+90s77Ai+hmfxrQJqT0mn5Vuz+buk3u39OdclXcO7VfovoEpWe7yg2qtB\nK2S7rFxTXrZbPdc+L13EPyYNl8nLx6XrbIekU7iXpGFXvVKnSVHDcXa6uOMWUXuH1Ao5LLUGegqq\nS+o1vzD86RGpFVj09i5TK2W76FxTXrZbPdchhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYTwf+c/\ncPmIaKHPh5wAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig = plt.subplot(121)\n", "fig.imshow(flux.mean)\n", @@ -905,22 +681,11 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Determine relative error\n", "relative_error = np.zeros_like(flux.std_dev)\n", @@ -947,29 +712,11 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ (1.0, [0.08159183470384083, 0.37187405724079425, -0.4569273259677805], [-0.5991379733562734, 0.6213299732428319, -0.5049581697849825], 1.4308796774550836),\n", - " (1.0, [0.08159183470384083, 0.37187405724079425, -0.4569273259677805], [0.6943502674814661, -0.18996972225593808, 0.694110373553384], 1.8499326750790277),\n", - " (1.0, [-0.2283457014858208, -0.3149356437736135, -0.6287339985223156], [0.22841158666373973, -0.9428738529578353, 0.24252225565130936], 2.8993105331976654),\n", - " ...,\n", - " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [0.871391386295745, 0.3866181159860615, 0.30199914615933615], 2.2329770939373517),\n", - " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [-0.4649777417907873, 0.38973845929247963, 0.7949211489119309], 1.6836109244016622),\n", - " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [-0.4649777417907873, 0.38973845929247963, 0.7949211489119309], 1.6836109244016622)], \n", - " dtype=[('wgt', '" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create log-spaced energy bins from 1 keV to 100 MeV\n", "energy_bins = np.logspace(-3,1)\n", @@ -1071,32 +778,11 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "(-0.5, 0.5)" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.quiver(sp.source['xyz'][:,0], sp.source['xyz'][:,1],\n", " sp.source['uvw'][:,0], sp.source['uvw'][:,1],\n", diff --git a/openmc/tallies.py b/openmc/tallies.py index 63ba4df07..dcf67b485 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2379,15 +2379,13 @@ class Tally(object): for filter_bin in filter_bins[i]: bin_index = filter.get_bin_index(filter_bin) if filter_type in ['energy', 'energyout']: - bin_indices.append(bin_index) - bin_indices.append(bin_index+1) + bin_indices.extend([bin_index, bin_index+1]) elif filter_type == 'distribcell': bin_indices.append(0) else: bin_indices.append(bin_index) - new_bins = filter.bins[bin_indices] - filter.bins = new_bins + filter.bins = filter.bins[bin_indices] filter.num_bins = len(filter_bins[i]) # Correct each Filter's stride @@ -2478,7 +2476,6 @@ class Tally(object): # Accumulate this Tally slice into the Tally sum tally_sum += tally_slice - # FIXME: test if this works for filter for filter_type in summed_filters: filters = summed_filters[filter_type] for i in range(1, len(filters)): @@ -2487,74 +2484,6 @@ class Tally(object): return tally_sum - def tile_filter(self, new_filter): - """Combines filters, scores and nuclides with another tally. - - This is a helper method for the tally arithmetic methods. The filters, - scores and nuclides from both tallies are enumerated into all possible - combinations and expressed as CrossFilter, CrossScore and - CrossNuclide objects in the new derived tally. - - Parameters - ---------- - other : Tally - The tally on the right hand side of the outer product - binary_op : {'+', '-', '*', '/', '^'} - The binary operation in the outer product - - Returns - ------- - Tally - A new Tally that is the outer product with this one. - - """ - - cv.check_type('new_filter', new_filter, Filter) - - if new_filter in self.filters: - msg = 'Unable to tile Tally ID="{0}" which already ' \ - 'contains a "{1}" filter'.format(self.id, new_filter.type) - raise ValueError(msg) - - new_tally = copy.deepcopy(self) - new_tally.add_filter(new_filter) - - num_filter_bins = new_tally.num_filter_bins - num_nuclides = new_tally.num_nuclides - num_score_bins = new_tally.num_score_bins - new_shape = (num_filter_bins, num_nuclides, num_score_bins) - - repeat_indices = np.arange(0, new_tally.num_bins, new_filter.num_bins) - repeat_factor = new_filter.num_bins - - if self.sum is not None: - new_tally._sum = np.zeros(new_shape, dtype=np.float64) - if self.sum_sq is not None: - new_tally._sum_sq = np.zeros(new_shape, dtype=np.float64) - if self.mean is not None: - new_tally._mean = np.zeros(new_shape, dtype=np.float64) - if self.std_dev is not None: - new_tally._std_dev = np.zeros(new_shape, dtype=np.float64) - - for i in range(repeat_factor): - if self.sum is not None: - new_tally._sum[repeat_indices+i, :, :] = self.sum - if self.sum_sq is not None: - new_tally._sum_sq[repeat_indices+i, :, :] = self.sum_sq - if self.mean is not None: - new_tally._mean[repeat_indices+i, :, :] = self.mean - if self.std_dev is not None: - new_tally._std_dev[repeat_indices+i, :, :] = self.std_dev - - # Correct each Filter's stride - stride = new_tally.num_nuclides * new_tally.num_score_bins - for filter in reversed(new_tally.filters): - filter.stride = stride - stride *= filter.num_bins - - return new_tally - - def diagonalize_filter(self, new_filter): """Combines filters, scores and nuclides with another tally. From 352c0e919f42c625923bda365586e470f2e351d6 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 01:45:51 -0400 Subject: [PATCH 75/91] Updated docstring for Tally.diagonalize_filter(...) routine --- .../examples/pandas-dataframes.ipynb | 28 +- .../pythonapi/examples/post-processing.ipynb | 364 ++++++++++++++++-- .../pythonapi/examples/tally-arithmetic.ipynb | 32 +- openmc/cross.py | 1 - openmc/filter.py | 1 - openmc/mgxs/mgxs.py | 36 -- openmc/tallies.py | 79 ++-- openmc/temp.py | 12 - 8 files changed, 405 insertions(+), 148 deletions(-) delete mode 100644 openmc/temp.py diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 2267703c4..70ff46406 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -385,7 +385,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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDAxOjAz\nOjQwLTA0OjAwlo8/jQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QwMTowMzo0MC0wNDow\nMOfShzEAAAAASUVORK5CYII=\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDAxOjE0\nOjM0LTA0OjAwS1fWPgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QwMToxNDozNC0wNDow\nMDoKboIAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -576,7 +576,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 01:03:41\n", + " Date/Time: 2015-10-03 01:14:34\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -644,20 +644,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 7.5300E-01 seconds\n", - " Reading cross sections = 1.6900E-01 seconds\n", - " Total time in simulation = 2.0057E+01 seconds\n", - " Time in transport only = 1.9977E+01 seconds\n", - " Time in inactive batches = 2.1180E+00 seconds\n", - " Time in active batches = 1.7939E+01 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Total time for initialization = 1.2000E+00 seconds\n", + " Reading cross sections = 2.5000E-01 seconds\n", + " Total time in simulation = 1.8967E+01 seconds\n", + " Time in transport only = 1.8921E+01 seconds\n", + " Time in inactive batches = 2.8760E+00 seconds\n", + " Time in active batches = 1.6091E+01 seconds\n", + " Time synchronizing fission bank = 3.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", + " 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.0825E+01 seconds\n", - " Calculation Rate (inactive) = 5901.79 neutrons/second\n", - " Calculation Rate (active) = 2090.42 neutrons/second\n", + " Total time elapsed = 2.0192E+01 seconds\n", + " Calculation Rate (inactive) = 4346.31 neutrons/second\n", + " Calculation Rate (active) = 2330.50 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 22e9baf09..7c5508e95 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -419,7 +419,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "collapsed": true }, @@ -438,7 +438,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "collapsed": false, "scrolled": true @@ -525,8 +525,116 @@ " 31/1 1.02685 1.03706 +/- 0.00352\n", " 32/1 1.03458 1.03695 +/- 0.00335\n", " 33/1 1.05243 1.03762 +/- 0.00328\n", - " 34/1 1.05717 1.03843 +/- 0.00324\n" + " 34/1 1.05717 1.03843 +/- 0.00324\n", + " 35/1 1.07396 1.03985 +/- 0.00342\n", + " 36/1 1.01690 1.03897 +/- 0.00340\n", + " 37/1 1.03340 1.03877 +/- 0.00328\n", + " 38/1 1.04153 1.03886 +/- 0.00316\n", + " 39/1 1.01971 1.03820 +/- 0.00312\n", + " 40/1 1.01491 1.03743 +/- 0.00311\n", + " 41/1 1.02779 1.03712 +/- 0.00303\n", + " 42/1 1.03047 1.03691 +/- 0.00294\n", + " 43/1 1.02305 1.03649 +/- 0.00288\n", + " 44/1 1.07854 1.03773 +/- 0.00305\n", + " 45/1 1.04412 1.03791 +/- 0.00297\n", + " 46/1 1.05139 1.03828 +/- 0.00291\n", + " 47/1 1.05357 1.03870 +/- 0.00286\n", + " 48/1 1.06435 1.03937 +/- 0.00287\n", + " 49/1 1.02632 1.03904 +/- 0.00281\n", + " 50/1 1.05201 1.03936 +/- 0.00276\n", + " 51/1 1.04582 1.03952 +/- 0.00270\n", + " 52/1 1.02056 1.03907 +/- 0.00267\n", + " 53/1 1.06448 1.03966 +/- 0.00267\n", + " 54/1 1.03609 1.03958 +/- 0.00261\n", + " 55/1 1.02701 1.03930 +/- 0.00257\n", + " 56/1 1.04865 1.03950 +/- 0.00252\n", + " 57/1 1.06310 1.04000 +/- 0.00252\n", + " 58/1 1.02975 1.03979 +/- 0.00247\n", + " 59/1 1.03922 1.03978 +/- 0.00242\n", + " 60/1 1.07259 1.04043 +/- 0.00246\n", + " 61/1 1.04555 1.04053 +/- 0.00242\n", + " 62/1 1.01950 1.04013 +/- 0.00240\n", + " 63/1 1.04618 1.04024 +/- 0.00236\n", + " 64/1 1.02489 1.03996 +/- 0.00233\n", + " 65/1 1.06850 1.04048 +/- 0.00235\n", + " 66/1 1.03623 1.04040 +/- 0.00231\n", + " 67/1 0.99892 1.03967 +/- 0.00238\n", + " 68/1 1.05557 1.03995 +/- 0.00236\n", + " 69/1 1.01211 1.03948 +/- 0.00236\n", + " 70/1 1.04679 1.03960 +/- 0.00233\n", + " 71/1 1.03461 1.03952 +/- 0.00229\n", + " 72/1 1.01993 1.03920 +/- 0.00227\n", + " 73/1 1.04742 1.03933 +/- 0.00224\n", + " 74/1 1.05269 1.03954 +/- 0.00222\n", + " 75/1 1.05696 1.03981 +/- 0.00220\n", + " 76/1 1.05904 1.04010 +/- 0.00218\n", + " 77/1 1.05930 1.04039 +/- 0.00217\n", + " 78/1 1.03375 1.04029 +/- 0.00214\n", + " 79/1 1.07044 1.04073 +/- 0.00215\n", + " 80/1 1.04144 1.04074 +/- 0.00212\n", + " 81/1 1.06296 1.04105 +/- 0.00212\n", + " 82/1 1.04630 1.04112 +/- 0.00209\n", + " 83/1 1.03772 1.04108 +/- 0.00206\n", + " 84/1 1.03774 1.04103 +/- 0.00203\n", + " 85/1 1.03984 1.04101 +/- 0.00200\n", + " 86/1 1.03040 1.04087 +/- 0.00198\n", + " 87/1 1.03484 1.04080 +/- 0.00196\n", + " 88/1 1.03820 1.04076 +/- 0.00193\n", + " 89/1 1.04654 1.04084 +/- 0.00191\n", + " 90/1 1.03377 1.04075 +/- 0.00189\n", + " 91/1 1.03370 1.04066 +/- 0.00187\n", + " 92/1 1.04172 1.04067 +/- 0.00184\n", + " 93/1 1.04945 1.04078 +/- 0.00182\n", + " 94/1 1.03360 1.04069 +/- 0.00181\n", + " 95/1 1.06547 1.04099 +/- 0.00181\n", + " 96/1 1.04340 1.04101 +/- 0.00179\n", + " 97/1 1.07502 1.04140 +/- 0.00181\n", + " 98/1 1.05391 1.04155 +/- 0.00179\n", + " 99/1 1.05622 1.04171 +/- 0.00178\n", + " 100/1 1.01519 1.04142 +/- 0.00179\n", + " Creating state point statepoint.100.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 4.1100E-01 seconds\n", + " Reading cross sections = 1.0300E-01 seconds\n", + " Total time in simulation = 2.6639E+02 seconds\n", + " Time in transport only = 2.6632E+02 seconds\n", + " Time in inactive batches = 1.0721E+01 seconds\n", + " Time in active batches = 2.5566E+02 seconds\n", + " Time synchronizing fission bank = 1.8000E-02 seconds\n", + " Sampling source sites = 1.0000E-02 seconds\n", + " SEND/RECV source sites = 6.0000E-03 seconds\n", + " Time accumulating tallies = 1.9000E-02 seconds\n", + " Total time for finalization = 2.1800E-01 seconds\n", + " Total time elapsed = 2.6703E+02 seconds\n", + " Calculation Rate (inactive) = 4663.74 neutrons/second\n", + " Calculation Rate (active) = 1760.12 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.04100 +/- 0.00169\n", + " k-effective (Track-length) = 1.04142 +/- 0.00179\n", + " k-effective (Absorption) = 1.04380 +/- 0.00147\n", + " Combined k-effective = 1.04287 +/- 0.00130\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -550,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false, "scrolled": true @@ -570,11 +678,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tally\n", + "\tID =\t10000\n", + "\tName =\t\n", + "\tFilters =\t\n", + " \t\tmesh\t[10000]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'flux', u'fission']\n", + "\tEstimator =\ttracklength\n", + "\n" + ] + } + ], "source": [ "tally = sp.get_tally(scores=['flux'])\n", "print(tally)" @@ -589,11 +713,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[[ 0.41271426, 0. ]],\n", + "\n", + " [[ 0.40846766, 0. ]],\n", + "\n", + " [[ 0.4112029 , 0. ]],\n", + "\n", + " ..., \n", + " [[ 0.41437289, 0. ]],\n", + "\n", + " [[ 0.41376468, 0. ]],\n", + "\n", + " [[ 0.41312074, 0. ]]])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tally.sum" ] @@ -607,11 +753,52 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(10000, 1, 2)\n" + ] + }, + { + "data": { + "text/plain": [ + "(array([[[ 0.00458571, 0. ]],\n", + " \n", + " [[ 0.00453853, 0. ]],\n", + " \n", + " [[ 0.00456892, 0. ]],\n", + " \n", + " ..., \n", + " [[ 0.00460414, 0. ]],\n", + " \n", + " [[ 0.00459739, 0. ]],\n", + " \n", + " [[ 0.00459023, 0. ]]]),\n", + " array([[[ 2.02702426e-05, 0.00000000e+00]],\n", + " \n", + " [[ 1.77108625e-05, 0.00000000e+00]],\n", + " \n", + " [[ 1.79568064e-05, 0.00000000e+00]],\n", + " \n", + " ..., \n", + " [[ 1.83114148e-05, 0.00000000e+00]],\n", + " \n", + " [[ 1.69970626e-05, 0.00000000e+00]],\n", + " \n", + " [[ 1.92143217e-05, 0.00000000e+00]]]))" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "print(tally.mean.shape)\n", "(tally.mean, tally.std_dev)" @@ -626,11 +813,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tally\n", + "\tID =\t10000\n", + "\tName =\t\n", + "\tFilters =\t\n", + " \t\tmesh\t[10000]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'flux']\n", + "\tEstimator =\ttracklength\n", + "\n" + ] + } + ], "source": [ "flux = tally.get_slice(scores=['flux'])\n", "fission = tally.get_slice(scores=['fission'])\n", @@ -646,7 +849,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -660,11 +863,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\ncPmIaKHPh5wAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig = plt.subplot(121)\n", "fig.imshow(flux.mean)\n", @@ -681,11 +905,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Determine relative error\n", "relative_error = np.zeros_like(flux.std_dev)\n", @@ -712,11 +947,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([ (1.0, [0.08159183470384083, 0.37187405724079425, -0.4569273259677805], [-0.5991379733562734, 0.6213299732428319, -0.5049581697849825], 1.4308796774550836),\n", + " (1.0, [0.08159183470384083, 0.37187405724079425, -0.4569273259677805], [0.6943502674814661, -0.18996972225593808, 0.694110373553384], 1.8499326750790277),\n", + " (1.0, [-0.2283457014858208, -0.3149356437736135, -0.6287339985223156], [0.22841158666373973, -0.9428738529578353, 0.24252225565130936], 2.8993105331976654),\n", + " ...,\n", + " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [0.871391386295745, 0.3866181159860615, 0.30199914615933615], 2.2329770939373517),\n", + " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [-0.4649777417907873, 0.38973845929247963, 0.7949211489119309], 1.6836109244016622),\n", + " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [-0.4649777417907873, 0.38973845929247963, 0.7949211489119309], 1.6836109244016622)], \n", + " dtype=[('wgt', '" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create log-spaced energy bins from 1 keV to 100 MeV\n", "energy_bins = np.logspace(-3,1)\n", @@ -778,11 +1071,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(-0.5, 0.5)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plt.quiver(sp.source['xyz'][:,0], sp.source['xyz'][:,1],\n", " sp.source['uvw'][:,0], sp.source['uvw'][:,1],\n", diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index f3f2c52f1..5960ac111 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -369,7 +369,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\nMTUtMTAtMDNUMDE6MDM6MjktMDQ6MDDFeHPZAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAxOjAzOjI5LTA0OjAwtCXLZQAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMDE6MTQ6MjctMDQ6MDC2Fcw9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAxOjE0OjI3LTA0OjAwx0h0gQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -580,7 +580,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 01:03:29\n", + " Date/Time: 2015-10-03 01:14:27\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -636,20 +636,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.1300E-01 seconds\n", - " Reading cross sections = 9.0000E-02 seconds\n", - " Total time in simulation = 2.1398E+01 seconds\n", - " Time in transport only = 2.1378E+01 seconds\n", - " Time in inactive batches = 2.0260E+00 seconds\n", - " Time in active batches = 1.9372E+01 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 0.0000E+00 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 3.0000E-03 seconds\n", - " Total time elapsed = 2.1823E+01 seconds\n", - " Calculation Rate (inactive) = 6169.79 neutrons/second\n", - " Calculation Rate (active) = 1935.78 neutrons/second\n", + " Total time for initialization = 6.7400E-01 seconds\n", + " Reading cross sections = 1.5200E-01 seconds\n", + " Total time in simulation = 2.4330E+01 seconds\n", + " Time in transport only = 2.4308E+01 seconds\n", + " Time in inactive batches = 2.4220E+00 seconds\n", + " Time in active batches = 2.1908E+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 = 0.0000E+00 seconds\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 2.5018E+01 seconds\n", + " Calculation Rate (inactive) = 5161.02 neutrons/second\n", + " Calculation Rate (active) = 1711.70 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", diff --git a/openmc/cross.py b/openmc/cross.py index f361313b3..975d5cb36 100644 --- a/openmc/cross.py +++ b/openmc/cross.py @@ -417,7 +417,6 @@ class CrossFilter(object): ---------- data_size : Integral The total number of bins in the tally corresponding to this filter - summary : None or Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric diff --git a/openmc/filter.py b/openmc/filter.py index 9735d95bb..3bc0c866e 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -476,7 +476,6 @@ class Filter(object): ---------- data_size : Integral The total number of bins in the tally corresponding to this filter - summary : None or Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index fd696ff72..e6ea7564c 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -326,13 +326,10 @@ class MultiGroupXS(object): ---------- scores : Iterable of str Scores for each tally - filters : Iterable of tuple of 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'} Type of estimator to use for each tally @@ -450,23 +447,18 @@ class MultiGroupXS(object): ---------- groups : Iterable of Integral or 'all' Energy groups of interest - subdomains : Iterable of Integral or 'all' Subdomain IDs of interest - nuclides : Iterable of str or 'all' or 'sum' A list of nuclide name strings (e.g., ['U-235', 'U-238']). The special string 'all' (default) 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. - xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns - order_groups: {'increasing', 'decreasing'} Return the cross section indexed according to increasing (default) or decreasing energy groups (decreasing or increasing energies) - value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted @@ -721,14 +713,12 @@ class MultiGroupXS(object): ---------- subdomains : Iterable of Integral or 'all' The subdomain IDs of the cross sections to include in the report - 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' (default) 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. - xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns @@ -820,13 +810,10 @@ class MultiGroupXS(object): ---------- filename : str Filename for the HDF5 file (default is 'mgxs') - directory : str Directory for the HDF5 file (default is 'mgxs') - xs_type: {'macro' or 'micro'} Store the macro or micro cross section in units of cm^-1 or barns - append : boolean If true, appends to an existing HDF5 file with the same filename directory (if one exists) @@ -940,16 +927,12 @@ class MultiGroupXS(object): ---------- filename : str Filename for the exported file (default is 'mgxs') - directory : str Directory for the exported file (default is 'mgxs') - format : {'csv', 'excel', 'pickle', 'latex'} The format for the exported data file - groups : Iterable of Integral or 'all' Energy groups of interest - xs_type: {'macro' or 'micro'} Store the macro or micro cross section in units of cm^-1 or barns @@ -1014,17 +997,14 @@ class MultiGroupXS(object): ---------- groups : Iterable of Integral or 'all' Energy groups of interest - 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' (default) 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. - xs_type: {'macro' or 'micro'} Return macro or micro cross section in units of cm^-1 or barns - summary : None or Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric @@ -1443,25 +1423,19 @@ class ScatterMatrixXS(MultiGroupXS): ---------- in_groups : Iterable of Integral or 'all' Incoming energy groups of interest - out_groups : Iterable of Integral or 'all' Outgoing energy groups of interest - subdomains : Iterable of Integral or 'all' Subdomain IDs of interest - nuclides : Iterable of str or 'all' or 'sum' A list of nuclide name strings (e.g., ['U-235', 'U-238']). The special string 'all' (default) 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. - xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns - xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns - value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted @@ -1576,14 +1550,12 @@ class ScatterMatrixXS(MultiGroupXS): ---------- subdomains : Iterable of Integral or 'all' The subdomain IDs of the cross sections to include in the report - 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' (default) 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. - xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns @@ -1756,23 +1728,18 @@ class Chi(MultiGroupXS): ---------- groups : Iterable of Integral or 'all' Energy groups of interest - subdomains : Iterable of Integral or 'all' Subdomain IDs of interest - nuclides : Iterable of str or 'all' or 'sum' A list of nuclide name strings (e.g., ['U-235', 'U-238']). The special string 'all' (default) 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. - xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns - xs_type: {'macro' or 'micro'} This parameter is not relevant for chi but is included here to mirror the parent MultiGroupXS.get_xs(...) class method - value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted @@ -1888,17 +1855,14 @@ class Chi(MultiGroupXS): ---------- groups : Iterable of Integral or 'all' Energy groups of interest - 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' (default) 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. - xs_type: {'macro' or 'micro'} Return macro or micro cross section in units of cm^-1 or barns - summary : None or Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric diff --git a/openmc/tallies.py b/openmc/tallies.py index dcf67b485..3e0d70409 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -742,7 +742,6 @@ class Tally(object): ---------- filter_type : str The type of Filter (e.g., 'cell', 'energy', etc.) - filter_bin : Integral or tuple The bin is an integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. The bin is an integer for the @@ -854,7 +853,6 @@ class Tally(object): filters : list of str A list of filter type strings (e.g., ['mesh', 'energy']; default is []) - filter_bins : list of Iterables A list of the filter bins corresponding to the filter_types parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin @@ -1018,11 +1016,9 @@ class Tally(object): scores : list of str A list of one or more score strings (e.g., ['absorption', 'nu-fission']; default is []) - filters : list of str A list of filter type strings (e.g., ['mesh', 'energy']; default is []) - filter_bins : list of Iterables A list of the filter bins corresponding to the filter_types parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin @@ -1034,11 +1030,9 @@ class Tally(object): 3-tuple for 'mesh' filters corresponding to the mesh cell of interest. The order of the bins in the list must correspond to the filter_types parameter. - nuclides : list of str A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is []) - value : str A string for the type of value to return - 'mean' (default), 'std_dev', 'rel_err', 'sum', or 'sum_sq' are accepted @@ -1112,13 +1106,10 @@ class Tally(object): ---------- filters : bool Include columns with filter bin information (default is True). - nuclides : bool Include columns with nuclide bin information (default is True). - scores : bool Include columns with score bin information (default is True). - summary : None or Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric @@ -1283,14 +1274,11 @@ class Tally(object): ---------- filename : str The name of the file for the results (default is 'tally-results') - directory : str The name of the directory for the results (default is '.') - format : str The format for the exported file - HDF5 ('hdf5', default) and Python pickle ('pkl') files are supported - append : bool Whether or not to append the results to the file (default is True) @@ -2274,14 +2262,12 @@ class Tally(object): Parameters ---------- - scores : list + scores : list of str A list of one or more score strings (e.g., ['absorption', 'nu-fission']; default is []) - - filters : list + filters : list of str A list of filter type strings (e.g., ['mesh', 'energy']; default is []) - filter_bins : list of Iterables A list of the filter bins corresponding to the filter_types parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin @@ -2293,8 +2279,7 @@ class Tally(object): 3-tuple for 'mesh' filters corresponding to the mesh cell of interest. The order of the bins in the list must correspond to the filter_types parameter. - - nuclides : list + nuclides : list of str A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is []) @@ -2398,25 +2383,24 @@ class Tally(object): def summation(self, scores=[], filter_type=None, filter_bins=[], nuclides=[]): - """Build a sliced tally for the specified filter bins, nuclides, scores. + """Vectorized sum of tally data across scores, filter bins and/or + nuclides using tally addition. - This method constructs a new tally to encapsulate a subset of the data - represented by this tally. The subset of data to include in the tally - slice is determined by the scores, filter bins and nuclides specified + This method constructs a new tally to encapsulate the sum of the data + represented by the summation of the data in this tally. The tally data + sum is determined by the scores, filter bins and nuclides specified in the input parameters. Parameters ---------- - scores : list + scores : list of str A list of one or more score strings to sum across (e.g., ['absorption', 'nu-fission']; default is []) - 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 - A list of the filter bins corresponding to the filters parameter + 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 for the cell instance ID for 'distribcell Filters. Each bin is a @@ -2424,8 +2408,7 @@ class Tally(object): to the energy boundaries of the bin of interest. Each bin is an (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of interest. - - nuclides : list + nuclides : list of str A list of nuclide name strings to sum across (e.g., ['U-235', 'U-238']; default is []) @@ -2476,6 +2459,7 @@ class Tally(object): # Accumulate this Tally slice into the Tally sum tally_sum += tally_slice + # Add back the filter(s) which were summed across to derived tally for filter_type in summed_filters: filters = summed_filters[filter_type] for i in range(1, len(filters)): @@ -2485,24 +2469,25 @@ class Tally(object): return tally_sum def diagonalize_filter(self, new_filter): - """Combines filters, scores and nuclides with another tally. + """Diagonalize the tally data array along a new axis of filter bins. - This is a helper method for the tally arithmetic methods. The filters, - scores and nuclides from both tallies are enumerated into all possible - combinations and expressed as CrossFilter, CrossScore and - CrossNuclide objects in the new derived tally. + This is a helper method for the tally arithmetic methods. This routine + adds the new filter to a derived tally constructed copied from this one. + The data in the derived tally arrays is "diagonalized" along the bins in + the new filter. This functionality is used by the openmc.mgxs module; to + transport-correct scattering matrices by subtracting a 'scatter-P1' + reaction rate tally with an energy filter from an 'scatter' reaction + rate tally with both energy and energyout filters. Parameters ---------- - other : Tally - The tally on the right hand side of the outer product - binary_op : {'+', '-', '*', '/', '^'} - The binary operation in the outer product + new_filter : Filter + The filter along which to diagonalize the data in the new Returns ------- Tally - A new Tally outer that is the outer product with this one. + A new derived Tally with data diagaonalized along the new filter. """ @@ -2513,35 +2498,42 @@ class Tally(object): 'contains a "{1}" filter'.format(self.id, new_filter.type) raise ValueError(msg) + # Add the new filter to a copy of this Tally new_tally = copy.deepcopy(self) new_tally.add_filter(new_filter) + # Determine the shape of data in the new diagonalized Tally num_filter_bins = new_tally.num_filter_bins num_nuclides = new_tally.num_nuclides num_score_bins = new_tally.num_score_bins new_shape = (num_filter_bins, num_nuclides, num_score_bins) - diag_factor = self.num_filter_bins / new_filter.num_bins + # Determine "base" indices along the new "diagonal", and the factor + # by which the "base" indices should be repeated to account for all + # other filter bins in the diagonalized tally indices = np.arange(0, new_filter.num_bins**2, new_filter.num_bins+1) + diag_factor = self.num_filter_bins / new_filter.num_bins diag_indices = np.zeros(self.num_filter_bins, dtype=np.int) + # Determine the filter indices along the new "diagonal" for i in range(diag_factor): start = i * new_filter.num_bins end = (i+1) * new_filter.num_bins diag_indices[start:end] = indices + (i * new_filter.num_bins**2) + # Inject this Tally's data along the diagonal of the diagonalized Tally if self.sum is not None: new_tally._sum = np.zeros(new_shape, dtype=np.float64) - new_tally._sum[diag_indices, :self.num_nuclides, :self.num_scores] = self.sum + new_tally._sum[diag_indices, :, :] = self.sum if self.sum_sq is not None: new_tally._sum_sq = np.zeros(new_shape, dtype=np.float64) - new_tally._sum_sq[diag_indices, :self.num_nuclides, :self.num_scores] = self.sum_sq + new_tally._sum_sq[diag_indices, :, :] = self.sum_sq if self.mean is not None: new_tally._mean = np.zeros(new_shape, dtype=np.float64) - new_tally._mean[diag_indices, :self.num_nuclides, :self.num_scores] = self.mean + new_tally._mean[diag_indices, :, :] = self.mean if self.std_dev is not None: new_tally._std_dev = np.zeros(new_shape, dtype=np.float64) - new_tally._std_dev[diag_indices, :self.num_nuclides, :self.num_scores] = self.std_dev + new_tally._std_dev[diag_indices, :, :] = self.std_dev # Correct each Filter's stride stride = new_tally.num_nuclides * new_tally.num_score_bins @@ -2579,6 +2571,7 @@ class TalliesFile(object): ---------- tally : Tally Tally to add to file + merge : bool Indicate whether the tally should be merged with an existing tally, if possible. Defaults to False. diff --git a/openmc/temp.py b/openmc/temp.py deleted file mode 100644 index 91f608299..000000000 --- a/openmc/temp.py +++ /dev/null @@ -1,12 +0,0 @@ -from checkvalue import * -from checkvalue import _isinstance - -import numpy as np - -zs = np.zeros((2,)) - -print _isinstance(zs[0], Integral) -print _isinstance(zs[0], Real) -print _isinstance(zs[0], (Integral, Real)) - -print check_iterable_type('thing', zs, (Real, Integral)) From 3baaacda9990215fdc2969f06101b2fd988f35c8 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 02:29:07 -0400 Subject: [PATCH 76/91] Cleaned up docstrings for MultiGroupXS class --- openmc/cross.py | 2 +- openmc/filter.py | 2 +- openmc/mgxs/mgxs.py | 110 +++++++++++++++++++++++++------------------- openmc/tallies.py | 24 +++++----- 4 files changed, 76 insertions(+), 62 deletions(-) diff --git a/openmc/cross.py b/openmc/cross.py index 975d5cb36..9b8a1d240 100644 --- a/openmc/cross.py +++ b/openmc/cross.py @@ -405,7 +405,7 @@ class CrossFilter(object): This method constructs a Pandas DataFrame object for the CrossFilter with columns annotated by filter bin information. This is a helper - method for the Tally.get_pandas_dataframe(...) routine. This method + method for the Tally.get_pandas_dataframe(...) method. This method recursively builds and concatenates Pandas DataFrames for the left and right filters and crossfilters. diff --git a/openmc/filter.py b/openmc/filter.py index 3bc0c866e..eaa30d30e 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -466,7 +466,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 the Tally.get_pandas_dataframe(...) routine. + for the Tally.get_pandas_dataframe(...) method. 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/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e6ea7564c..171718bc8 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -17,12 +17,14 @@ if sys.version_info[0] >= 3: # Supported domain types +# TODO: Implement Mesh domains DOMAIN_TYPES = ['cell', 'distribcell', 'universe', 'material'] -# Supported domain objects +# Supported domain classes +# TODO: Implement Mesh domains DOMAINS = [openmc.Cell, openmc.Universe, openmc.Material] @@ -48,7 +50,7 @@ class MultiGroupXS(object): If true, computes multi-group 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. + tallies in OpenMC 'tallies.xml' file. Attributes ---------- @@ -92,6 +94,7 @@ class MultiGroupXS(object): self.name = name self.by_nuclide = by_nuclide + if domain_type is not None: self.domain_type = domain_type if domain is not None: @@ -213,7 +216,7 @@ class MultiGroupXS(object): Returns ------- - nuclides : list of str + list of str A list of the string names for each nuclide in the problem domain (e.g., ['U-235', 'U-238', 'O-16']) @@ -241,7 +244,7 @@ class MultiGroupXS(object): Returns ------- - density : Real + Real The atomic number density (atom/b-cm) for the nuclide of interest Raises @@ -279,7 +282,7 @@ class MultiGroupXS(object): Returns ------- - densities : ndarray of float + ndarray of Real An array of the atomic number densities (atom/b-cm) for each of the nuclides in the problem domain @@ -300,14 +303,14 @@ class MultiGroupXS(object): for nuclide in nuclides: densities[0] += self.get_nuclide_density(nuclide) - # Sum the atomic number densities for all nuclides + # Tabulate the atomic number densities for all nuclides elif nuclides == 'all': nuclides = self.get_all_nuclides() densities = np.zeros(self.num_nuclides, dtype=np.float) for i, nuclide in enumerate(nuclides): densities[i] += self.get_nuclide_density(nuclide) - # Store each nuclide's atomic number density in an array + # Tabulate the atomic number densities for each specified nuclide else: densities = np.zeros(len(nuclides), dtype=np.float) for i, nuclide in enumerate(nuclides): @@ -321,6 +324,8 @@ class MultiGroupXS(object): This is a helper method for MultiGroupXS subclasses to create tallies for input file generation. The tallies are stored in the tallies dict. + This method is called by each subclass' create_tallies(...) method + which define the parameters given to this parent class method. Parameters ---------- @@ -343,8 +348,8 @@ class MultiGroupXS(object): # Create a domain Filter object domain_filter = openmc.Filter(self.domain_type, self.domain.id) - domain_filter.num_bins = 1 + # 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) @@ -355,7 +360,7 @@ class MultiGroupXS(object): for filter in filters: self.tallies[key].add_filter(filter) - # If this is a by nuclide cross-section, add all nuclides to Tally + # 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: @@ -366,7 +371,18 @@ class MultiGroupXS(object): @abc.abstractmethod def compute_xs(self): """Performs generic cleanup after a subclass' uses tally arithmetic to - compute a multi-group cross section as a derived tally.""" + compute a multi-group cross section as a derived tally. + + This method replaces CrossNuclides generated by tally arithmetic with + the original Nuclide objects in the xs_tally instance attribute. The + simple Nuclides allow for cleaner output through Pandas DataFrames as + well as simpler data access through the get_xs(...) class method. + + In addition, this routine resets NaNs in the multi group cross section + array to 0.0. This may be needed occur if no events were scored in + certain tally bins, which will lead to a divide-by-zero situation. + + """ # If computing xs for each nuclide, replace CrossNuclides with originals if self.by_nuclide: @@ -393,6 +409,12 @@ class MultiGroupXS(object): 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. + """ cv.check_type('statepoint', statepoint, openmc.statepoint.StatePoint) @@ -419,21 +441,13 @@ class MultiGroupXS(object): # Create Tallies to search for in StatePoint self.create_tallies() - if self.domain_type == 'distribcell': - filters = [] - filter_bins = [] - else: - filters = [self.domain_type] - filter_bins = [(self.domain.id,)] - # 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 = sp_tally.get_slice(tally.scores, nuclides=tally.nuclides) self.tallies[tally_type] = sp_tally def get_xs(self, groups='all', subdomains='all', nuclides='all', @@ -465,7 +479,7 @@ class MultiGroupXS(object): Returns ------- - xs : ndarray + ndarray A NumPy array of the multi-group cross section indexed in the order each group, subdomain and nuclide is listed in the parameters. @@ -502,8 +516,6 @@ class MultiGroupXS(object): filter_bins.append((self.energy_groups.get_group_bounds(group),)) # Construct a collection of the nuclides to retrieve from the xs tally - # NOTE: We must not override the "nuclides" parameter since it is used - # to retrieve atomic number densities for micro xs if self.by_nuclide: if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: query_nuclides = self.get_all_nuclides() @@ -512,14 +524,14 @@ class MultiGroupXS(object): else: query_nuclides = ['total'] - # Use tally summation if user requested the sum for all nuclides + # If user requested the sum for all nuclides, use tally summation 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) + nuclides=query_nuclides, value=value) # Divide by atom number densities for microscopic cross sections if xs_type == 'micro': @@ -533,11 +545,12 @@ class MultiGroupXS(object): # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies if order_groups == 'increasing': - # Reshape tally data array with separate axes for domain and energy if groups == 'all': num_groups = self.num_groups else: num_groups = len(groups) + + # Reshape tally data array with separate axes for domain and energy num_subdomains = xs.shape[0] / num_groups new_shape = (num_subdomains, num_groups) + xs.shape[1:] xs = np.reshape(xs, new_shape) @@ -583,7 +596,7 @@ class MultiGroupXS(object): condensed_xs = copy.deepcopy(self) condensed_xs.energy_groups = coarse_groups - # Build indices to sum up over + # Build energy indices to sum across energy_indices = [] for group in range(coarse_groups.num_groups, 0, -1): low, high = coarse_groups.get_group_bounds(group) @@ -629,9 +642,9 @@ class MultiGroupXS(object): def get_subdomain_avg_xs(self, subdomains='all'): """Construct a subdomain-averaged version of this cross section. - This is primarily useful for averaging across distribcell instances. - This routine performs spatial homogenization to compute the scalar - flux-weighted average cross section across the subdomains. + This method is useful for averaging cross sections across distribcell + instances. The method performs spatial homogenization to compute the + scalar flux-weighted average cross section across the subdomains. Parameters ---------- @@ -707,7 +720,7 @@ class MultiGroupXS(object): return avg_xs def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): - """Prints a string representation for the multi-group cross section. + """Print a string representation for the multi-group cross section. Parameters ---------- @@ -736,7 +749,7 @@ class MultiGroupXS(object): if self.by_nuclide: if nuclides == 'all': nuclides = self.get_all_nuclides() - if nuclides == 'sum': + elif nuclides == 'sum': nuclides = ['sum'] else: cv.check_iterable_type('nuclides', nuclides, basestring) @@ -784,9 +797,9 @@ class MultiGroupXS(object): average = self.get_xs([group], [subdomain], [nuclide], xs_type=xs_type, value='mean') rel_err = self.get_xs([group], [subdomain], [nuclide], - xs_type=xs_type, value='rel_err')*100 - average = np.nan_to_num(average.flatten())[0] - rel_err = np.nan_to_num(rel_err.flatten())[0] + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) string += '\n' string += '\n' @@ -796,13 +809,13 @@ class MultiGroupXS(object): def build_hdf5_store(self, filename='mgxs', directory='mgxs', xs_type='macro', append=True): - """Export the multi-group cross section data into an HDF5 binary file. + """Export the multi-group cross section data to an HDF5 binary file. - This routine constructs an HDF5 file which stores the multi-group - cross section data. The data is be stored in a hierarchy of HDF5 groups + This method constructs an HDF5 file which stores the multi-group + cross section data. The data is stored in a hierarchy of HDF5 groups from the domain type, domain id, subdomain id (for distribcell domains), - and cross section type. Two datasets for the mean and standard deviation - are stored for each subddomain entry in the HDF5 file. + nuclides and cross section type. Two datasets for the mean and standard + deviation are stored for each subdomain entry in the HDF5 file. NOTE: This requires the h5py Python package. @@ -892,9 +905,10 @@ class MultiGroupXS(object): for j, nuclide in enumerate(nuclides): if nuclide != 'sum': + density = densities[j] nuclide_group = rxn_group.require_group(nuclide) nuclide_group.require_dataset('density', dtype=np.float64, - data=[densities[j]], shape=(1,)) + data=[density], shape=(1,)) else: nuclide_group = rxn_group @@ -919,9 +933,9 @@ class MultiGroupXS(object): format='csv', groups='all', xs_type='macro'): """Export the multi-group cross section data to a file. - This routine leverages the functionality in the Pandas library to - export the multi-group cross section data in a variety of output - file formats for storage and/or post-processing. + This method leverages the functionality in the Pandas library to export + the multi-group cross section data in a variety of output file formats + for storage and/or post-processing. Parameters ---------- @@ -990,7 +1004,7 @@ class MultiGroupXS(object): xs_type='macro', summary=None): """Build a Pandas DataFrame for the MultiGroupXS data. - This routine leverages the Tally.get_pandas_dataframe(...) routine, but + This method leverages the Tally.get_pandas_dataframe(...) method, but renames the columns with terminology appropriate for cross section data. Parameters @@ -1799,7 +1813,7 @@ class Chi(MultiGroupXS): nu_fission_out = nu_fission_out.summation(nuclides=nuclides) # Compute chi and store it as the xs_tally attribute so we can use - # the generic get_xs routine + # the generic get_xs(...) method xs_tally = nu_fission_out / nu_fission_in xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) @@ -1848,7 +1862,7 @@ class Chi(MultiGroupXS): xs_type='macro', summary=None): """Build a Pandas DataFrame for the MultiGroupXS data. - This routine leverages the Tally.get_pandas_dataframe(...) routine, but + This method leverages the Tally.get_pandas_dataframe(...) method, but renames the columns with terminology appropriate for cross section data. Parameters @@ -1883,12 +1897,12 @@ class Chi(MultiGroupXS): """ - # Build the dataframe using the parent class routine + # Build the dataframe using the parent class method df = super(Chi, self).get_pandas_dataframe(groups, nuclides, xs_type, summary) # If user requested micro cross sections, multiply by the atom - # densities to cancel out division made by the parent class routine + # densities to cancel out division made by the parent class method if xs_type == 'micro': if self.by_nuclide: densities = self.get_nuclide_densities(nuclides) diff --git a/openmc/tallies.py b/openmc/tallies.py index 3e0d70409..dc58c2f6d 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -843,8 +843,8 @@ class Tally(object): def get_filter_indices(self, filters=[], filter_bins=[]): """Get indices into the filter axis of this tally's data arrays. - This is a helper routine for the Tally.get_values(...) routine to - extract tally data. This routine returns the indices into the filter + This is a helper method for the Tally.get_values(...) method to + extract tally data. This method returns the indices into the filter axis of the tally's data array (axis=0) for particular combinations of filters and their corresponding bins. @@ -937,8 +937,8 @@ class Tally(object): def get_nuclide_indices(self, nuclides): """Get indices into the nuclide axis of this tally's data arrays. - This is a helper routine for the Tally.get_values(...) routine to - extract tally data. This routine returns the indices into the nuclide + This is a helper method for the Tally.get_values(...) method to + extract tally data. This method returns the indices into the nuclide axis of the tally's data array (axis=1) for one or more nuclides. Parameters @@ -971,8 +971,8 @@ class Tally(object): def get_score_indices(self, scores): """Get indices into the score axis of this tally's data arrays. - This is a helper routine for the Tally.get_values(...) routine to - extract tally data. This routine returns the indices into the score + This is a helper method for the Tally.get_values(...) method to + extract tally data. This method returns the indices into the score axis of the tally's data array (axis=2) for one or more scores. Parameters @@ -1227,7 +1227,7 @@ 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(...) routine) since one must know how to properly use + Tally.get_values(...) method) since one must know how to properly use the number of bins and strides for each filter to index into the first (filter) dimension. @@ -1235,7 +1235,7 @@ class Tally(object): unique dimensions corresponding to each tally filter. For example, suppose this tally has arrays of data with shape (8,5,5) corresponding to two filters (2 and 4 bins, respectively), five nuclides and five - scores. This routine will return a version of the data array with the + scores. This method will return a version of the data array with the with a new shape of (2,4,5,5) such that the first two dimensions correspond directly to the two filters with two and four bins. @@ -1293,7 +1293,7 @@ class Tally(object): # Ensure that StatePoint.read_results() was called first if self._sum is None or self._sum_sq is None and not self.derived: msg = 'The Tally ID="{0}" has no data to export. Call the ' \ - 'StatePoint.read_results() routine before using ' \ + 'StatePoint.read_results() method before using ' \ 'Tally.export_results(...)'.format(self.id) raise KeyError(msg) @@ -1688,8 +1688,8 @@ class Tally(object): def swap_filters(self, filter1, filter2): """Reverse the ordering of two filters in this tally - This is a helper routine for tally arithmetic which helps align the data - in two tallies with shared filters. This routine copies this tally and + This is a helper method for tally arithmetic which helps align the data + in two tallies with shared filters. This method copies this tally and reverses the order of the two filters. Parameters @@ -2471,7 +2471,7 @@ class Tally(object): def diagonalize_filter(self, new_filter): """Diagonalize the tally data array along a new axis of filter bins. - This is a helper method for the tally arithmetic methods. This routine + This is a helper method for the tally arithmetic methods. This method adds the new filter to a derived tally constructed copied from this one. The data in the derived tally arrays is "diagonalized" along the bins in the new filter. This functionality is used by the openmc.mgxs module; to From 40f893e6d0c2ab8d319558aefff36a680464bf25 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 02:57:06 -0400 Subject: [PATCH 77/91] Updated docstrings for MultiGroupXS subclasses in Python API --- .../pythonapi/examples/post-processing.ipynb | 360 +--------- .../pythonapi/examples/tally-arithmetic.ipynb | 659 ++++++++++++++++-- openmc/mgxs/mgxs.py | 232 ++++-- 3 files changed, 813 insertions(+), 438 deletions(-) diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 7c5508e95..51ca6adcf 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -353,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\nMTUtMTAtMDNUMDE6MDM6MzQtMDQ6MDBoBRKHAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAxOjAzOjM0LTA0OjAwGViqOwAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMDI6NTE6MjktMDQ6MDANEGNoAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAyOjUxOjI5LTA0OjAwfE3b1AAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -419,7 +419,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": true }, @@ -438,7 +438,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true @@ -465,7 +465,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 01:03:34\n", + " Date/Time: 2015-10-03 02:51:29\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -533,108 +533,8 @@ " 39/1 1.01971 1.03820 +/- 0.00312\n", " 40/1 1.01491 1.03743 +/- 0.00311\n", " 41/1 1.02779 1.03712 +/- 0.00303\n", - " 42/1 1.03047 1.03691 +/- 0.00294\n", - " 43/1 1.02305 1.03649 +/- 0.00288\n", - " 44/1 1.07854 1.03773 +/- 0.00305\n", - " 45/1 1.04412 1.03791 +/- 0.00297\n", - " 46/1 1.05139 1.03828 +/- 0.00291\n", - " 47/1 1.05357 1.03870 +/- 0.00286\n", - " 48/1 1.06435 1.03937 +/- 0.00287\n", - " 49/1 1.02632 1.03904 +/- 0.00281\n", - " 50/1 1.05201 1.03936 +/- 0.00276\n", - " 51/1 1.04582 1.03952 +/- 0.00270\n", - " 52/1 1.02056 1.03907 +/- 0.00267\n", - " 53/1 1.06448 1.03966 +/- 0.00267\n", - " 54/1 1.03609 1.03958 +/- 0.00261\n", - " 55/1 1.02701 1.03930 +/- 0.00257\n", - " 56/1 1.04865 1.03950 +/- 0.00252\n", - " 57/1 1.06310 1.04000 +/- 0.00252\n", - " 58/1 1.02975 1.03979 +/- 0.00247\n", - " 59/1 1.03922 1.03978 +/- 0.00242\n", - " 60/1 1.07259 1.04043 +/- 0.00246\n", - " 61/1 1.04555 1.04053 +/- 0.00242\n", - " 62/1 1.01950 1.04013 +/- 0.00240\n", - " 63/1 1.04618 1.04024 +/- 0.00236\n", - " 64/1 1.02489 1.03996 +/- 0.00233\n", - " 65/1 1.06850 1.04048 +/- 0.00235\n", - " 66/1 1.03623 1.04040 +/- 0.00231\n", - " 67/1 0.99892 1.03967 +/- 0.00238\n", - " 68/1 1.05557 1.03995 +/- 0.00236\n", - " 69/1 1.01211 1.03948 +/- 0.00236\n", - " 70/1 1.04679 1.03960 +/- 0.00233\n", - " 71/1 1.03461 1.03952 +/- 0.00229\n", - " 72/1 1.01993 1.03920 +/- 0.00227\n", - " 73/1 1.04742 1.03933 +/- 0.00224\n", - " 74/1 1.05269 1.03954 +/- 0.00222\n", - " 75/1 1.05696 1.03981 +/- 0.00220\n", - " 76/1 1.05904 1.04010 +/- 0.00218\n", - " 77/1 1.05930 1.04039 +/- 0.00217\n", - " 78/1 1.03375 1.04029 +/- 0.00214\n", - " 79/1 1.07044 1.04073 +/- 0.00215\n", - " 80/1 1.04144 1.04074 +/- 0.00212\n", - " 81/1 1.06296 1.04105 +/- 0.00212\n", - " 82/1 1.04630 1.04112 +/- 0.00209\n", - " 83/1 1.03772 1.04108 +/- 0.00206\n", - " 84/1 1.03774 1.04103 +/- 0.00203\n", - " 85/1 1.03984 1.04101 +/- 0.00200\n", - " 86/1 1.03040 1.04087 +/- 0.00198\n", - " 87/1 1.03484 1.04080 +/- 0.00196\n", - " 88/1 1.03820 1.04076 +/- 0.00193\n", - " 89/1 1.04654 1.04084 +/- 0.00191\n", - " 90/1 1.03377 1.04075 +/- 0.00189\n", - " 91/1 1.03370 1.04066 +/- 0.00187\n", - " 92/1 1.04172 1.04067 +/- 0.00184\n", - " 93/1 1.04945 1.04078 +/- 0.00182\n", - " 94/1 1.03360 1.04069 +/- 0.00181\n", - " 95/1 1.06547 1.04099 +/- 0.00181\n", - " 96/1 1.04340 1.04101 +/- 0.00179\n", - " 97/1 1.07502 1.04140 +/- 0.00181\n", - " 98/1 1.05391 1.04155 +/- 0.00179\n", - " 99/1 1.05622 1.04171 +/- 0.00178\n", - " 100/1 1.01519 1.04142 +/- 0.00179\n", - " Creating state point statepoint.100.h5...\n", - "\n", - " ===========================================================================\n", - " ======================> SIMULATION FINISHED <======================\n", - " ===========================================================================\n", - "\n", - "\n", - " =======================> TIMING STATISTICS <=======================\n", - "\n", - " Total time for initialization = 4.1100E-01 seconds\n", - " Reading cross sections = 1.0300E-01 seconds\n", - " Total time in simulation = 2.6639E+02 seconds\n", - " Time in transport only = 2.6632E+02 seconds\n", - " Time in inactive batches = 1.0721E+01 seconds\n", - " Time in active batches = 2.5566E+02 seconds\n", - " Time synchronizing fission bank = 1.8000E-02 seconds\n", - " Sampling source sites = 1.0000E-02 seconds\n", - " SEND/RECV source sites = 6.0000E-03 seconds\n", - " Time accumulating tallies = 1.9000E-02 seconds\n", - " Total time for finalization = 2.1800E-01 seconds\n", - " Total time elapsed = 2.6703E+02 seconds\n", - " Calculation Rate (inactive) = 4663.74 neutrons/second\n", - " Calculation Rate (active) = 1760.12 neutrons/second\n", - "\n", - " ============================> RESULTS <============================\n", - "\n", - " k-effective (Collision) = 1.04100 +/- 0.00169\n", - " k-effective (Track-length) = 1.04142 +/- 0.00179\n", - " k-effective (Absorption) = 1.04380 +/- 0.00147\n", - " Combined k-effective = 1.04287 +/- 0.00130\n", - " Leakage Fraction = 0.00000 +/- 0.00000\n", - "\n" + " 42/1 1.03047 1.03691 +/- 0.00294\n" ] - }, - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ @@ -658,7 +558,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true @@ -678,27 +578,11 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Tally\n", - "\tID =\t10000\n", - "\tName =\t\n", - "\tFilters =\t\n", - " \t\tmesh\t[10000]\n", - "\tNuclides =\ttotal \n", - "\tScores =\t[u'flux', u'fission']\n", - "\tEstimator =\ttracklength\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "tally = sp.get_tally(scores=['flux'])\n", "print(tally)" @@ -713,33 +597,11 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[[ 0.41271426, 0. ]],\n", - "\n", - " [[ 0.40846766, 0. ]],\n", - "\n", - " [[ 0.4112029 , 0. ]],\n", - "\n", - " ..., \n", - " [[ 0.41437289, 0. ]],\n", - "\n", - " [[ 0.41376468, 0. ]],\n", - "\n", - " [[ 0.41312074, 0. ]]])" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tally.sum" ] @@ -753,52 +615,11 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(10000, 1, 2)\n" - ] - }, - { - "data": { - "text/plain": [ - "(array([[[ 0.00458571, 0. ]],\n", - " \n", - " [[ 0.00453853, 0. ]],\n", - " \n", - " [[ 0.00456892, 0. ]],\n", - " \n", - " ..., \n", - " [[ 0.00460414, 0. ]],\n", - " \n", - " [[ 0.00459739, 0. ]],\n", - " \n", - " [[ 0.00459023, 0. ]]]),\n", - " array([[[ 2.02702426e-05, 0.00000000e+00]],\n", - " \n", - " [[ 1.77108625e-05, 0.00000000e+00]],\n", - " \n", - " [[ 1.79568064e-05, 0.00000000e+00]],\n", - " \n", - " ..., \n", - " [[ 1.83114148e-05, 0.00000000e+00]],\n", - " \n", - " [[ 1.69970626e-05, 0.00000000e+00]],\n", - " \n", - " [[ 1.92143217e-05, 0.00000000e+00]]]))" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "print(tally.mean.shape)\n", "(tally.mean, tally.std_dev)" @@ -813,27 +634,11 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Tally\n", - "\tID =\t10000\n", - "\tName =\t\n", - "\tFilters =\t\n", - " \t\tmesh\t[10000]\n", - "\tNuclides =\ttotal \n", - "\tScores =\t[u'flux']\n", - "\tEstimator =\ttracklength\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "flux = tally.get_slice(scores=['flux'])\n", "fission = tally.get_slice(scores=['fission'])\n", @@ -849,7 +654,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false }, @@ -863,32 +668,11 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\ncPmIaKHPh5wAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig = plt.subplot(121)\n", "fig.imshow(flux.mean)\n", @@ -905,22 +689,11 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Determine relative error\n", "relative_error = np.zeros_like(flux.std_dev)\n", @@ -947,29 +720,11 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ (1.0, [0.08159183470384083, 0.37187405724079425, -0.4569273259677805], [-0.5991379733562734, 0.6213299732428319, -0.5049581697849825], 1.4308796774550836),\n", - " (1.0, [0.08159183470384083, 0.37187405724079425, -0.4569273259677805], [0.6943502674814661, -0.18996972225593808, 0.694110373553384], 1.8499326750790277),\n", - " (1.0, [-0.2283457014858208, -0.3149356437736135, -0.6287339985223156], [0.22841158666373973, -0.9428738529578353, 0.24252225565130936], 2.8993105331976654),\n", - " ...,\n", - " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [0.871391386295745, 0.3866181159860615, 0.30199914615933615], 2.2329770939373517),\n", - " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [-0.4649777417907873, 0.38973845929247963, 0.7949211489119309], 1.6836109244016622),\n", - " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [-0.4649777417907873, 0.38973845929247963, 0.7949211489119309], 1.6836109244016622)], \n", - " dtype=[('wgt', '" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create log-spaced energy bins from 1 keV to 100 MeV\n", "energy_bins = np.logspace(-3,1)\n", @@ -1071,32 +786,11 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "(-0.5, 0.5)" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.quiver(sp.source['xyz'][:,0], sp.source['xyz'][:,1],\n", " sp.source['uvw'][:,0], sp.source['uvw'][:,1],\n", diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 5960ac111..1196c27e1 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -369,7 +369,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\nMTUtMTAtMDNUMDE6MTQ6MjctMDQ6MDC2Fcw9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAxOjE0OjI3LTA0OjAwx0h0gQAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMDI6NTA6NDctMDQ6MDB0gnqMAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAyOjUwOjQ3LTA0OjAwBd/CMAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -580,7 +580,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 01:14:27\n", + " Date/Time: 2015-10-03 02:50:47\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -636,20 +636,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 6.7400E-01 seconds\n", - " Reading cross sections = 1.5200E-01 seconds\n", - " Total time in simulation = 2.4330E+01 seconds\n", - " Time in transport only = 2.4308E+01 seconds\n", - " Time in inactive batches = 2.4220E+00 seconds\n", - " Time in active batches = 2.1908E+01 seconds\n", + " Total time for initialization = 1.1480E+00 seconds\n", + " Reading cross sections = 2.9100E-01 seconds\n", + " Total time in simulation = 2.7345E+01 seconds\n", + " Time in transport only = 2.7286E+01 seconds\n", + " Time in inactive batches = 5.8310E+00 seconds\n", + " Time in active batches = 2.1514E+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 = 0.0000E+00 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 2.5018E+01 seconds\n", - " Calculation Rate (inactive) = 5161.02 neutrons/second\n", - " Calculation Rate (active) = 1711.70 neutrons/second\n", + " Total time for finalization = 2.0000E-03 seconds\n", + " Total time elapsed = 2.8526E+01 seconds\n", + " Calculation Rate (inactive) = 2143.71 neutrons/second\n", + " Calculation Rate (active) = 1743.05 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -721,20 +721,7 @@ "collapsed": false, "scrolled": true }, - "outputs": [ - { - "ename": "KeyError", - "evalue": "10003", - "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 summary file and link with statepoint\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0msu\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSummary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'summary.h5'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0msp\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[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.0-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 610\u001b[0m \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[0;32m 611\u001b[0m \u001b[1;31m# Get the Tally name from the summary file\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 612\u001b[1;33m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\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[0mname\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 613\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwith_summary\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 614\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mKeyError\u001b[0m: 10003" - ] - } - ], + "outputs": [], "source": [ "# Load the summary file and link with statepoint\n", "su = Summary('summary.h5')\n", @@ -752,11 +739,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "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", + "
nuclidescoremeanstd. dev.
0total(nu-fission / absorption)1.0463530.00935
\n", + "
" + ], + "text/plain": [ + " nuclide score mean std. dev.\n", + "0 total (nu-fission / absorption) 1.046353 0.00935" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Compute k-infinity using tally arithmetic\n", "fiss_rate = sp.get_tally(name='fiss. rate')\n", @@ -776,11 +799,49 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "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", + "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)totalabsorption0.958730.00774
\n", + "
" + ], + "text/plain": [ + " energy [MeV] nuclide score mean std. dev.\n", + "0 (0.0e+00 - 6.2e-01) total absorption 0.95873 0.00774" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Compute resonance escape probability using tally arithmetic\n", "therm_abs_rate = sp.get_tally(name='therm. abs. rate')\n", @@ -798,11 +859,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "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", + "
nuclidescoremeanstd. dev.
0totalnu-fission1.0916220.011163
\n", + "
" + ], + "text/plain": [ + " nuclide score mean std. dev.\n", + "0 total nu-fission 1.091622 0.011163" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Compute fast fission factor factor using tally arithmetic\n", "therm_fiss_rate = sp.get_tally(name='therm. fiss. rate')\n", @@ -821,11 +918,51 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "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", + "
energy [MeV]cellnuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)10000totalabsorption0.8020120.006609
\n", + "
" + ], + "text/plain": [ + " energy [MeV] cell nuclide score mean std. dev.\n", + "0 (0.0e+00 - 6.2e-01) 10000 total absorption 0.802012 0.006609" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Compute thermal flux utilization factor using tally arithmetic\n", "fuel_therm_abs_rate = sp.get_tally(name='fuel therm. abs. rate')\n", @@ -842,11 +979,49 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "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", + "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)total(nu-fission / absorption)1.2466040.011825
\n", + "
" + ], + "text/plain": [ + " energy [MeV] nuclide score mean std. dev.\n", + "0 (0.0e+00 - 6.2e-01) total (nu-fission / absorption) 1.246604 0.011825" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Compute neutrons produced per absorption (eta) using tally arithmetic\n", "eta = therm_fiss_rate / fuel_therm_abs_rate\n", @@ -862,11 +1037,52 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "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", + "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)total(((absorption * nu-fission) * absorption) * (n...1.0463530.01894
\n", + "
" + ], + "text/plain": [ + " energy [MeV] nuclide \\\n", + "0 (0.0e+00 - 6.2e-01) total \n", + "\n", + " score mean std. dev. \n", + "0 (((absorption * nu-fission) * absorption) * (n... 1.046353 0.01894 " + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "keff = res_esc * fast_fiss * therm_util * eta\n", "keff.get_pandas_dataframe()" @@ -883,7 +1099,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { "collapsed": false, "scrolled": true @@ -899,11 +1115,131 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "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", + "
cellenergy [MeV]nuclidescoremeanstd. dev.
010000(0.0e+00 - 6.3e-07)(U-238 / total)(nu-fission / flux)6.641746e-076.859257e-09
110000(0.0e+00 - 6.3e-07)(U-238 / total)(scatter / flux)2.099861e-011.966887e-03
210000(0.0e+00 - 6.3e-07)(U-235 / total)(nu-fission / flux)3.556665e-013.717881e-03
310000(0.0e+00 - 6.3e-07)(U-235 / total)(scatter / flux)5.554650e-035.218094e-05
410000(6.3e-07 - 2.0e+01)(U-238 / total)(nu-fission / flux)7.165057e-035.625590e-05
510000(6.3e-07 - 2.0e+01)(U-238 / total)(scatter / flux)2.276535e-018.544314e-04
610000(6.3e-07 - 2.0e+01)(U-235 / total)(nu-fission / flux)8.089493e-035.080374e-05
710000(6.3e-07 - 2.0e+01)(U-235 / total)(scatter / flux)3.370111e-031.361116e-05
\n", + "
" + ], + "text/plain": [ + " cell energy [MeV] nuclide score \\\n", + "0 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (nu-fission / flux) \n", + "1 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (scatter / flux) \n", + "2 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (nu-fission / flux) \n", + "3 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (scatter / flux) \n", + "4 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (nu-fission / flux) \n", + "5 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (scatter / flux) \n", + "6 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (nu-fission / flux) \n", + "7 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (scatter / flux) \n", + "\n", + " mean std. dev. \n", + "0 6.641746e-07 6.859257e-09 \n", + "1 2.099861e-01 1.966887e-03 \n", + "2 3.556665e-01 3.717881e-03 \n", + "3 5.554650e-03 5.218094e-05 \n", + "4 7.165057e-03 5.625590e-05 \n", + "5 2.276535e-01 8.544314e-04 \n", + "6 8.089493e-03 5.080374e-05 \n", + "7 3.370111e-03 1.361116e-05 " + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "fuel_xs = fuel_rxn_rates / flux\n", "fuel_xs.get_pandas_dataframe()" @@ -918,11 +1254,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[ 6.64174599e-07]\n", + " [ 3.55666541e-01]]\n", + "\n", + " [[ 7.16505734e-03]\n", + " [ 8.08949336e-03]]]\n" + ] + } + ], "source": [ "# Show how to use Tally.get_values(...) with a CrossScore\n", "nu_fiss_xs = fuel_xs.get_values(scores=['(nu-fission / flux)'])\n", @@ -938,11 +1286,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[ 0.00555465]]\n", + "\n", + " [[ 0.00337011]]]\n" + ] + } + ], "source": [ "# Show how to use Tally.get_values(...) with a CrossScore and CrossNuclide\n", "u235_scatter_xs = fuel_xs.get_values(nuclides=['(U-235 / total)'], \n", @@ -952,11 +1310,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[ 0.22765348]\n", + " [ 0.00337011]]]\n" + ] + } + ], "source": [ "# Show how to use Tally.get_values(...) with a CrossFilter and CrossScore\n", "fast_scatter_xs = fuel_xs.get_values(filters=['energy'], \n", @@ -974,11 +1341,81 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "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", + "
cellenergy [MeV]nuclidescoremeanstd. dev.
010000(0.0e+00 - 6.3e-07)U-238nu-fission0.0000021.284890e-08
110000(0.0e+00 - 6.3e-07)U-235nu-fission0.8679827.022256e-03
210000(6.3e-07 - 2.0e+01)U-238nu-fission0.0828016.087096e-04
310000(6.3e-07 - 2.0e+01)U-235nu-fission0.0934845.275039e-04
\n", + "
" + ], + "text/plain": [ + " cell energy [MeV] nuclide score mean std. dev.\n", + "0 10000 (0.0e+00 - 6.3e-07) U-238 nu-fission 0.000002 1.284890e-08\n", + "1 10000 (0.0e+00 - 6.3e-07) U-235 nu-fission 0.867982 7.022256e-03\n", + "2 10000 (6.3e-07 - 2.0e+01) U-238 nu-fission 0.082801 6.087096e-04\n", + "3 10000 (6.3e-07 - 2.0e+01) U-235 nu-fission 0.093484 5.275039e-04" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# \"Slice\" the nu-fission data into a new derived Tally\n", "nu_fission_rates = fuel_rxn_rates.get_slice(scores=['nu-fission'])\n", @@ -987,11 +1424,131 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "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", + "
cellenergy [MeV]nuclidescoremeanstd. dev.
010002(1.0e-08 - 1.1e-07)H-1scatter4.6205250.038249
110002(1.1e-07 - 1.2e-06)H-1scatter2.0368410.013203
210002(1.2e-06 - 1.3e-05)H-1scatter1.6599160.010107
310002(1.3e-05 - 1.4e-04)H-1scatter1.8615460.013328
410002(1.4e-04 - 1.5e-03)H-1scatter2.0496640.008215
510002(1.5e-03 - 1.6e-02)H-1scatter2.1621570.010245
610002(1.6e-02 - 1.7e-01)H-1scatter2.2244960.013796
710002(1.7e-01 - 1.9e+00)H-1scatter1.9975850.009161
810002(1.9e+00 - 2.0e+01)H-1scatter0.3734720.003922
\n", + "
" + ], + "text/plain": [ + " cell energy [MeV] nuclide score mean std. dev.\n", + "0 10002 (1.0e-08 - 1.1e-07) H-1 scatter 4.620525 0.038249\n", + "1 10002 (1.1e-07 - 1.2e-06) H-1 scatter 2.036841 0.013203\n", + "2 10002 (1.2e-06 - 1.3e-05) H-1 scatter 1.659916 0.010107\n", + "3 10002 (1.3e-05 - 1.4e-04) H-1 scatter 1.861546 0.013328\n", + "4 10002 (1.4e-04 - 1.5e-03) H-1 scatter 2.049664 0.008215\n", + "5 10002 (1.5e-03 - 1.6e-02) H-1 scatter 2.162157 0.010245\n", + "6 10002 (1.6e-02 - 1.7e-01) H-1 scatter 2.224496 0.013796\n", + "7 10002 (1.7e-01 - 1.9e+00) H-1 scatter 1.997585 0.009161\n", + "8 10002 (1.9e+00 - 2.0e+01) H-1 scatter 0.373472 0.003922" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# \"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", diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 171718bc8..919641f12 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1119,14 +1119,22 @@ class MultiGroupXS(object): class TotalXS(MultiGroupXS): + """A total multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(TotalXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + super(TotalXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) self._rxn_type = 'total' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """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. + + """ # Create a list of scores for each Tally to be created scores = ['flux', 'total'] @@ -1143,21 +1151,30 @@ class TotalXS(MultiGroupXS): def compute_xs(self): """Computes the multi-group total cross sections using OpenMC - tally arithmetic.""" + tally arithmetic. + """ self._xs_tally = self.tallies['total'] / self.tallies['flux'] super(TotalXS, self).compute_xs() class TransportXS(MultiGroupXS): + """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) + super(TransportXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) self._rxn_type = 'transport' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """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 + energy groups of interest. + + """ # Create a list of scores for each Tally to be created scores = ['flux', 'total', 'scatter-P1'] @@ -1171,10 +1188,35 @@ class TransportXS(MultiGroupXS): filters = [[energy_filter], [energy_filter], [energyout_filter]] # Initialize the Tallies - super(TransportXS, self).create_tallies(scores, filters, keys, estimator) + super(TransportXS, self).create_tallies(scores, filters, + keys, estimator) 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. + + """ + + # Load the tallies from the statepoint using the parent class method super(TransportXS, self).load_from_statepoint(statepoint) + + # Use tally slicing to remove scatter-P0 data from scatter-P1 tally scatter_p1 = self.tallies['scatter-P1'] self.tallies['scatter-P1'] = scatter_p1.get_slice(scores=['scatter-P1']) self.tallies['scatter-P1'].filters[-1].type = 'energy' @@ -1189,14 +1231,22 @@ class TransportXS(MultiGroupXS): class AbsorptionXS(MultiGroupXS): + """An absorption multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(AbsorptionXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + super(AbsorptionXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) self._rxn_type = 'absorption' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """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. + + """ # Create a list of scores for each Tally to be created scores = ['flux', 'absorption'] @@ -1209,7 +1259,8 @@ class AbsorptionXS(MultiGroupXS): filters = [[energy_filter], [energy_filter]] # Initialize the Tallies - super(AbsorptionXS, self).create_tallies(scores, filters, keys, estimator) + super(AbsorptionXS, self).create_tallies(scores, filters, + keys, estimator) def compute_xs(self): """Computes the multi-group absorption cross sections using OpenMC @@ -1220,14 +1271,22 @@ class AbsorptionXS(MultiGroupXS): class CaptureXS(MultiGroupXS): + """A capture multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(CaptureXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + super(CaptureXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) self._rxn_type = 'capture' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """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. + + """ # Create a list of scores for each Tally to be created scores = ['flux', 'absorption', 'fission'] @@ -1252,14 +1311,22 @@ class CaptureXS(MultiGroupXS): class FissionXS(MultiGroupXS): + """A fission multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(FissionXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + super(FissionXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) self._rxn_type = 'fission' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two tracklength tallies to compute the 'flux' + and 'fission' reaction rates in the spatial domain and energy + groups of interest. + + """ # Create a list of scores for each Tally to be created scores = ['flux', 'fission'] @@ -1283,14 +1350,22 @@ class FissionXS(MultiGroupXS): class NuFissionXS(MultiGroupXS): + """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__(domain, domain_type, groups, by_nuclide, name) + super(NuFissionXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) self._rxn_type = 'nu-fission' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two tracklength tallies to compute the 'flux' + and 'nu-fission' reaction rates in the spatial domain and energy + groups of interest. + + """ # Create a list of scores for each Tally to be created scores = ['flux', 'nu-fission'] @@ -1303,7 +1378,8 @@ class NuFissionXS(MultiGroupXS): filters = [[energy_filter], [energy_filter]] # Initialize the Tallies - super(NuFissionXS, self).create_tallies(scores, filters, keys, estimator) + super(NuFissionXS, self).create_tallies(scores, filters, + keys, estimator) def compute_xs(self): """Computes the multi-group nu-fission cross sections using OpenMC @@ -1314,14 +1390,22 @@ class NuFissionXS(MultiGroupXS): class ScatterXS(MultiGroupXS): + """A scatter multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(ScatterXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + super(ScatterXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) self._rxn_type = 'scatter' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """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. + + """ # Create a list of scores for each Tally to be created scores = ['flux', 'scatter'] @@ -1345,14 +1429,22 @@ class ScatterXS(MultiGroupXS): class NuScatterXS(MultiGroupXS): + """A nu-scatter multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(NuScatterXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + super(NuScatterXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) self._rxn_type = 'nu-scatter' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """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. + + """ # Create a list of scores for each Tally to be created scores = ['flux', 'nu-scatter'] @@ -1365,7 +1457,8 @@ class NuScatterXS(MultiGroupXS): filters = [[energy_filter], [energy_filter]] # Initialize the Tallies - super(NuScatterXS, self).create_tallies(scores, filters, keys, estimator) + super(NuScatterXS, self).create_tallies(scores, filters, + keys, estimator) def compute_xs(self): """Computes the nu-scattering multi-group cross section using OpenMC @@ -1376,14 +1469,22 @@ class NuScatterXS(MultiGroupXS): class ScatterMatrixXS(MultiGroupXS): + """A scattering matrix multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + super(ScatterMatrixXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) self._rxn_type = 'scatter matrix' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """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 + energy groups of interest. + + """ group_edges = self.energy_groups.group_edges energy = openmc.Filter('energy', group_edges) @@ -1397,7 +1498,8 @@ class ScatterMatrixXS(MultiGroupXS): keys = scores # Initialize the Tallies - super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) + super(ScatterMatrixXS, self).create_tallies(scores, filters, + keys, estimator) def compute_xs(self, correction='P0'): """Computes the multi-group scattering matrix using OpenMC @@ -1425,9 +1527,9 @@ class ScatterMatrixXS(MultiGroupXS): self._xs_tally = rxn_tally / self.tallies['flux'] super(ScatterMatrixXS, self).compute_xs() - def get_xs(self, in_groups='all', out_groups='all', subdomains='all', - nuclides='all', order_groups='increasing', - xs_type='macro', value='mean'): + def get_xs(self, in_groups='all', out_groups='all', + subdomains='all', nuclides='all', xs_type='macro', + order_groups='increasing', value='mean'): """Returns an array of multi-group cross sections. This method constructs a 2D NumPy array for the requested scattering @@ -1448,15 +1550,16 @@ class ScatterMatrixXS(MultiGroupXS): return the cross section summed over all nuclides. xs_type: {'macro' or 'micro'} Return the macro or micro cross section in units of cm^-1 or barns - xs_type: {'macro' or 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing (default) + or decreasing energy groups (decreasing or increasing energies) value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted Returns ------- - xs : ndarray + ndarray A NumPy array of the multi-group cross section indexed in the order each group and subdomain is listed in the parameters. @@ -1500,8 +1603,6 @@ class ScatterMatrixXS(MultiGroupXS): filter_bins.append((self.energy_groups.get_group_bounds(group),)) # Construct a collection of the nuclides to retrieve from the xs tally - # NOTE: We must not override the "nuclides" parameter since it is used - # to retrieve atomic number densities for micro xs if self.by_nuclide: if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: query_nuclides = self.get_all_nuclides() @@ -1516,8 +1617,9 @@ class ScatterMatrixXS(MultiGroupXS): 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 = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=query_nuclides, value=value) xs = np.nan_to_num(xs) @@ -1533,7 +1635,6 @@ class ScatterMatrixXS(MultiGroupXS): # Reverse data if user requested increasing energy groups since # tally data is stored in order of increasing energies if order_groups == 'increasing': - # Reshape tally data array with separate axes for domain and energy if in_groups == 'all': num_in_groups = self.num_groups else: @@ -1542,6 +1643,8 @@ class ScatterMatrixXS(MultiGroupXS): 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 = xs.shape[0] / (num_in_groups * num_out_groups) new_shape = (num_subdomains, num_in_groups, num_out_groups) new_shape += xs.shape[1:] @@ -1648,13 +1751,15 @@ class ScatterMatrixXS(MultiGroupXS): 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') + 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') * 100 - average = np.nan_to_num(average.flatten())[0] - rel_err = np.nan_to_num(rel_err.flatten())[0] + 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' @@ -1665,14 +1770,22 @@ class ScatterMatrixXS(MultiGroupXS): class NuScatterMatrixXS(ScatterMatrixXS): + """A scattering production matrix multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(NuScatterMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name) + super(NuScatterMatrixXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) self._rxn_type = 'nu-scatter matrix' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """Construct the OpenMC tallies needed to compute this cross section. + + 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. + + """ # Create a list of scores for each Tally to be created scores = ['flux', 'scatter', 'scatter-P1'] @@ -1686,9 +1799,11 @@ class NuScatterMatrixXS(ScatterMatrixXS): filters = [[energy], [energy, energyout], [energyout]] # Intialize the Tallies - super(ScatterMatrixXS, self).create_tallies(scores, filters, keys, estimator) + super(ScatterMatrixXS, self).create_tallies(scores, filters, + keys, estimator) class Chi(MultiGroupXS): + """The fission spectrum.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): @@ -1696,7 +1811,13 @@ class Chi(MultiGroupXS): self._rxn_type = 'chi' def create_tallies(self): - """Construct the OpenMC tallies needed to compute this cross section.""" + """Construct the OpenMC tallies needed to compute this cross section. + + 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. + + """ # Create a list of scores for each Tally to be created scores = ['nu-fission', 'nu-fission'] @@ -1732,8 +1853,8 @@ class Chi(MultiGroupXS): super(Chi, self).compute_xs() def get_xs(self, groups='all', subdomains='all', nuclides='all', - order_groups='increasing', xs_type='macro', value='mean'): - """Returns an array of multi-group cross sections. + xs_type='macro', order_groups='increasing', value='mean'): + """Returns an array of the fission spectrum. This method constructs a 2D NumPy array for the requested multi-group cross section data data for one or more energy groups and subdomains. @@ -1749,18 +1870,19 @@ class Chi(MultiGroupXS): special string 'all' (default) 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. - xs_type: {'macro' or 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns xs_type: {'macro' or 'micro'} This parameter is not relevant for chi but is included here to mirror the parent MultiGroupXS.get_xs(...) class method + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing (default) + or decreasing energy groups (decreasing or increasing energies) value : str A string for the type of value to return - 'mean' (default), 'std_dev' or 'rel_err' are accepted Returns ------- - xs : ndarray + ndarray A NumPy array of the multi-group cross section indexed in the order each group, subdomain and nuclide is listed in the parameters. @@ -1812,8 +1934,8 @@ class Chi(MultiGroupXS): nu_fission_in = nu_fission_in.summation(nuclides=nuclides) nu_fission_out = nu_fission_out.summation(nuclides=nuclides) - # Compute chi and store it as the xs_tally attribute so we can use - # the generic get_xs(...) method + # Compute chi and store it as the xs_tally attribute so we can + # use the generic get_xs(...) method xs_tally = nu_fission_out / nu_fission_in xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) @@ -1821,13 +1943,15 @@ class Chi(MultiGroupXS): # Get chi for all nuclides in the domain elif nuclides == 'all': nuclides = self.get_all_nuclides() - xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, nuclides=nuclides, value=value) # Get chi for user-specified nuclides in the domain else: cv.check_iterable_type('nuclides', nuclides, basestring) - xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, nuclides=nuclides, value=value) # If chi was computed as an average of nuclides in the domain From d58e9027847be50982815d5f28d1843f4c1cadbf Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 11:40:11 -0400 Subject: [PATCH 78/91] Corrected tally slicing for Python API MultiGroupXS --- docs/source/pythonapi/examples/geometry.xml | 8 + .../pythonapi/examples/materials-xy.png | Bin 0 -> 1271 bytes docs/source/pythonapi/examples/materials.xml | 12 + .../pythonapi/examples/mgxs/transport-xs.xls | Bin 0 -> 5632 bytes .../pythonapi/examples/openmc-mgxs.ipynb | 1112 +++++++++++++++++ .../examples/pandas-dataframes.ipynb | 22 +- docs/source/pythonapi/examples/plots.xml | 8 + .../pythonapi/examples/post-processing.ipynb | 360 +++++- docs/source/pythonapi/examples/settings.xml | 17 + docs/source/pythonapi/examples/tallies.xml | 39 + .../pythonapi/examples/tally-arithmetic.ipynb | 662 +--------- .../tracks/128_angles_0.1_cm_spacing.data | Bin 0 -> 71256 bytes openmc/mgxs/mgxs.py | 7 +- 13 files changed, 1597 insertions(+), 650 deletions(-) create mode 100644 docs/source/pythonapi/examples/geometry.xml create mode 100644 docs/source/pythonapi/examples/materials-xy.png create mode 100644 docs/source/pythonapi/examples/materials.xml create mode 100644 docs/source/pythonapi/examples/mgxs/transport-xs.xls create mode 100644 docs/source/pythonapi/examples/openmc-mgxs.ipynb create mode 100644 docs/source/pythonapi/examples/plots.xml create mode 100644 docs/source/pythonapi/examples/settings.xml create mode 100644 docs/source/pythonapi/examples/tallies.xml create mode 100644 docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data diff --git a/docs/source/pythonapi/examples/geometry.xml b/docs/source/pythonapi/examples/geometry.xml new file mode 100644 index 000000000..bfd99e0b9 --- /dev/null +++ b/docs/source/pythonapi/examples/geometry.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/source/pythonapi/examples/materials-xy.png b/docs/source/pythonapi/examples/materials-xy.png new file mode 100644 index 0000000000000000000000000000000000000000..cfed789b25a6f93030995c5645caee5dfd7cb7ac GIT binary patch literal 1271 zcmZ{jZ&Z?Z6vrPkJ7-pN={b=rqgImUOl%el1V#q}n*tF{O4IyPDmwKf9Z}Oq$uuj= zESH65)3TZ;8FOV(N%K!yS)^vzY?!iAK}7=g_T=jut|LAo=NqwkRjNcSz$gw?g&LSB%=tsu&h8 z1cEYg5R{w$3CuBzo5M`^5mOu9~ zF#3BY9XjUZ!LpmrQdzsx?D}zLLE9cDQXt6jbr7A#kJpS#Ny%FL7X{fxV|Tk36&E{) zdT-t!%CC?xxlx3PMnPpWlY7Q7Da!HoR`S;r&+XO(?&nFX9u}@T@~~oX@+_oNk*=kh=s!#L`ybsuCBRqUSDLXOxK(w%WNNM1uv}@4aZw66MG#PT#5 z5C+X!{G=y2px37651z;io>5Ms_s*kr+QKC3(hZl|>0>#A!& z*!pmV?K~Mte+ZM&B^tQFVbr7fmz<29#|=Zw_JPf%c?-*_a_ufazLnWe8j1A%6D5%V z3)w4qNhN}LR=-)R>@~a(c*HA`1FSOd2W#d)58Q8-cMrC{MfE%75uj2JJJ^ha2*w@$ z7Q`cMm+X06XyHucub@V+s+sfCVQDtZl&o(WOTI)fvyC=vHVPR}Q()vfP-(IiQ$ULW z`(hT`HO%>2Y(kb>QJ2HO>}JCp28$kmZ3D^{^uz?U_1|2?PXv6g1NHzM{sbL;gG7pe zy9R8V9f(oGW8z10BX-1cHp^_tHxf9Y?K%9%u + + 71c + + + + + + + + + diff --git a/docs/source/pythonapi/examples/mgxs/transport-xs.xls b/docs/source/pythonapi/examples/mgxs/transport-xs.xls new file mode 100644 index 0000000000000000000000000000000000000000..86a8cee39962fec9c37bb88dddedbafc034ce043 GIT binary patch literal 5632 zcmeI0YiJZ#6vzK}cJ@`0m>rXd5yCW}@r59zAhl-VqfPrEG0_hZ3FvADn!4`lb|YvZ zCdT;5R>4nNL8N{uz7c$oh>Aq~ASgZv2ufn1RivdY3L>W4bIxSeo&6BD6hf6b%bvOC z+H8-)4+{#UM=@r#RE`%u?~^vWrFIs@`AFoRRhL(uP38XQtru(hf41gO`BdZR zj*3&m)=|__EHLZ_jkpG&ABOLv(IH4IkxU$>%u;= zXvW3*Umpuw7xt&WpMF$+@*81u{tDUbbJW>V$5$6`{Y%&pVOK@# z+P4n%S@oKM^St2Dz-nBao#R^m)z5&R0Y3wN2K)^88JLs|@arW%mHBnedDU|M1K`&Q z{$FQ|zI^rN{mj5Br0A1@iO-OvYZ}{W=8Kmq1eKc^UQ5M@`+p&~ZKLREY{CW^$EISs md)m;?wOo82ho^EP!}%RIQHx^h{&oEP`!6=g1nvG){C@x;tuRIa literal 0 HcmV?d00001 diff --git a/docs/source/pythonapi/examples/openmc-mgxs.ipynb b/docs/source/pythonapi/examples/openmc-mgxs.ipynb new file mode 100644 index 000000000..2aedc3121 --- /dev/null +++ b/docs/source/pythonapi/examples/openmc-mgxs.ipynb @@ -0,0 +1,1112 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook demonstrates how to use the **``openmc.mgxs``** module to generate multi-group cross sections with OpenMC.\n", + "\n", + "**Note:** that 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, 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." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import openmc\n", + "import openmc.mgxs as mgxs\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Infinite Homogeneous Medium" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first construct a simple homogeneous infinite medium problem to illustrate use of the `openmc.mgxs` module to generate multi-group cross sections." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generate Inputs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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", + "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 a material for the homogeneous medium." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a Material and register the Nuclides\n", + "inf_medium = openmc.Material(name='moderator')\n", + "inf_medium.set_density('g/cc', 5.)\n", + "inf_medium.add_nuclide(h1, 0.028999667)\n", + "inf_medium.add_nuclide(o16, 0.01450188)\n", + "inf_medium.add_nuclide(u235, 0.000114142)\n", + "inf_medium.add_nuclide(u238, 0.006886019)\n", + "inf_medium.add_nuclide(zr90, 0.002116053)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our material, we can now create a materials file object that can be exported to an actual XML file." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a MaterialsFile, register all Materials, and export to XML\n", + "materials_file = openmc.MaterialsFile()\n", + "materials_file.default_xs = '71c'\n", + "materials_file.add_material(inf_medium)\n", + "materials_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's move on to the geometry. This problem will be a simple square cell with reflective boundary conditions to simulate an infinite homogeneous medium. The first step is to create the outer bounding surfaces of the problem." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate boundary Planes\n", + "min_x = openmc.XPlane(boundary_type='reflective', x0=-0.63)\n", + "max_x = openmc.XPlane(boundary_type='reflective', x0=0.63)\n", + "min_y = openmc.YPlane(boundary_type='reflective', y0=-0.63)\n", + "max_y = openmc.YPlane(boundary_type='reflective', y0=0.63)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the surfaces defined, we can now create a cell that is defined by intersections of half-spaces created by the surfaces." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a Cell\n", + "cell = openmc.Cell(cell_id=1, name='cell')\n", + "\n", + "# Register bounding Surfaces with the Cell\n", + "cell.add_surface(surface=min_x, halfspace=+1)\n", + "cell.add_surface(surface=max_x, halfspace=-1)\n", + "cell.add_surface(surface=min_y, halfspace=+1)\n", + "cell.add_surface(surface=max_y, halfspace=-1)\n", + "\n", + "# Fill the Cell with the Material\n", + "cell.fill = inf_medium" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "OpenMC requires that there is a \"root\" universe. Let us create a root universe and add our square cell to it." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate Universe\n", + "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", + "root_universe.add_cell(cell)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now must create a geometry that is assigned a root universe, put the geometry into a geometry file, and export it to XML." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create Geometry and set root Universe\n", + "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()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we must 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": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# OpenMC simulation parameters\n", + "batches = 50\n", + "inactive = 10\n", + "particles = 2500\n", + "\n", + "# Instantiate a SettingsFile\n", + "settings_file = openmc.SettingsFile()\n", + "settings_file.batches = batches\n", + "settings_file.inactive = inactive\n", + "settings_file.particles = particles\n", + "settings_file.output = {'tallies': True, 'summary': True}\n", + "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", + "settings_file.set_source_space('box', bounds)\n", + "\n", + "# Export to \"settings.xml\"\n", + "settings_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are finally ready to make use of the `openmc.mgxs` module to generate multi-group cross sections! First, let's define a \"fine\" 8-group and \"coarse\" 2-group structures using the built-in `EnergyGroups` class." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a \"fine\" 8-group EneryGroups object\n", + "fine_groups = mgxs.EnergyGroups()\n", + "fine_groups.group_edges = np.array([0., 0.058e-6, 0.14e-6, 0.28e-6,\n", + " 0.625e-6, 4.e-6, 5.53e-3, 821.e-3, 20.])\n", + "\n", + "# Instantiate a \"coarse\" 2-group EneryGroups object\n", + "coarse_groups = mgxs.EnergyGroups()\n", + "coarse_groups.group_edges = np.array([0., 0.625e-6, 20.])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use the fine and coarse `EnergyGroups` objects, along with our previously created materials and geometry, to instantiate some `MultiGroupXS` objects from the `openmc.mgxs` module. In particular, the following are subclasses of generic and abstract `MultiGroupXS` class:\n", + "\n", + "* `TotalXS`\n", + "* `TransportXS`\n", + "* `AbsorptionXS`\n", + "* `CaptureXS`\n", + "* `FissionXS`\n", + "* `NuFissionXS`\n", + "* `ScatterXS`\n", + "* `NuScatterXS`\n", + "* `ScatterMatrixXS`\n", + "* `NuScatterMatrixXS`\n", + "* `Chi`\n", + "\n", + "These classes provide us with an interface to generate the tally inputs as well as perform post-processing of OpenMC's tally data to compute the respective multi-group cross sections. 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 total, nu-fission, nu-scatter and chi cross sections for our infinite medium cell as the domain and our fine 8-group structure as our energy groups." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate cross sections needed for an OpenMOC simulation\n", + "transport = mgxs.TransportXS(domain=cell, domain_type='cell', groups=fine_groups)\n", + "nufission = mgxs.NuFissionXS(domain=cell, domain_type='cell', groups=fine_groups)\n", + "nuscatter = mgxs.NuScatterMatrixXS(domain=cell, domain_type='cell', groups=fine_groups)\n", + "chi = mgxs.Chi(domain=cell, domain_type='cell', groups=fine_groups)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we must instruct our multi-group cross section objects to generate the tallies needed to calculate each of them in OpenMC. This can be done with the `MultiGroupXS.create_tallies()` routine." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instruct each multi-group cross section to generate tallies\n", + "transport.create_tallies()\n", + "nufission.create_tallies()\n", + "nuscatter.create_tallies()\n", + "chi.create_tallies()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each multi-group cross section object stores its tallies in a Python dictionary called `tallies`. We can inspect the tallies in the dictionary for our `NuFission` object as follows. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'flux': Tally\n", + " \tID =\t10003\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 5.80000000e-08 1.40000000e-07 2.80000000e-07\n", + " 6.25000000e-07 4.00000000e-06 5.53000000e-03 8.21000000e-01\n", + " 2.00000000e+01]\n", + " \tNuclides =\ttotal \n", + " \tScores =\t['flux']\n", + " \tEstimator =\ttracklength, 'nu-fission': Tally\n", + " \tID =\t10004\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 5.80000000e-08 1.40000000e-07 2.80000000e-07\n", + " 6.25000000e-07 4.00000000e-06 5.53000000e-03 8.21000000e-01\n", + " 2.00000000e+01]\n", + " \tNuclides =\ttotal \n", + " \tScores =\t['nu-fission']\n", + " \tEstimator =\ttracklength}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nufission.tallies" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `NuFission` object includes tracklength tallies for the 'nu-fission' and 'flux' scores in the 8-group structure in cell 1. Now that each multi-group cross section 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." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate an empty TalliesFile\n", + "tallies_file = openmc.TalliesFile()\n", + "\n", + "# Add transport tallies to the tallies file\n", + "for tally in transport.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# Add nu-fission tallies to the tallies file\n", + "for tally in nufission.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# Add nu-scatter tallies to the tallies file\n", + "for tally in nuscatter.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# Add chi tallies to the tallies file \n", + "for tally in chi.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + " \n", + "# Export to \"tallies.xml\"\n", + "tallies_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we a have a complete set of inputs, so we can go ahead and run our simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Run OpenMC!\n", + "executor = openmc.Executor()\n", + "executor.run_simulation()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tally Data Processing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our simulation ran successfully and created a statepoint file with all the tally data in it. We begin our analysis here loading the statepoint file and 'reading' the results. By default, data from the statepoint file is only read into memory when it is requested. This helps keep the memory use to a minimum even when a statepoint file may be huge." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the last statepoint file\n", + "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 which 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)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The statepoint is now ready to be analyzed by our multi-group cross sections. The first step is to load the tallies from the statepoint into each object." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'tuple' object has no attribute '__name__'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\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 tallies from the statepoint into each MultiGroupXS object\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mtransport\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_from_statepoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mnufission\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_from_statepoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mnuscatter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_from_statepoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mchi\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_from_statepoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msp\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.0-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mload_from_statepoint\u001b[1;34m(self, statepoint)\u001b[0m\n\u001b[0;32m 1216\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1217\u001b[0m \u001b[1;31m# Load the tallies from the statepoint using the parent class method\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1218\u001b[1;33m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mTransportXS\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_from_statepoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstatepoint\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1219\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1220\u001b[0m \u001b[1;31m# Use tally slicing to remove scatter-P0 data from scatter-P1 tally\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.0-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mload_from_statepoint\u001b[1;34m(self, statepoint)\u001b[0m\n\u001b[0;32m 429\u001b[0m \u001b[1;31m# the isotopic number densities as computed by OpenMC\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 430\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain_type\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'cell'\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain_type\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'distribcell'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 431\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstatepoint\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msummary\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_cell_by_id\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mid\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 432\u001b[0m \u001b[1;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain_type\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'universe'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 433\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstatepoint\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msummary\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_universe_by_id\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mid\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.0-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mdomain\u001b[1;34m(self, domain)\u001b[0m\n\u001b[0;32m 198\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0mdomain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msetter\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 199\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mdomain\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdomain\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 200\u001b[1;33m \u001b[0mcv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcheck_type\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'domain'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdomain\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtuple\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mDOMAINS\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 201\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_domain\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdomain\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 202\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.0-py2.7.egg/openmc/checkvalue.pyc\u001b[0m in \u001b[0;36mcheck_type\u001b[1;34m(name, value, expected_type, expected_iter_type)\u001b[0m\n\u001b[0;32m 52\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0m_isinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexpected_type\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 53\u001b[0m msg = 'Unable to set \"{0}\" to \"{1}\" which is not of type \"{2}\"'.format(\n\u001b[1;32m---> 54\u001b[1;33m name, value, expected_type.__name__)\n\u001b[0m\u001b[0;32m 55\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 56\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mAttributeError\u001b[0m: 'tuple' object has no attribute '__name__'" + ] + } + ], + "source": [ + "# Load the tallies from the statepoint into each MultiGroupXS object\n", + "transport.load_from_statepoint(sp)\n", + "nufission.load_from_statepoint(sp)\n", + "nuscatter.load_from_statepoint(sp)\n", + "chi.load_from_statepoint(sp)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The multi-group cross section objects can now use OpenMC's [tally arithmetic](http://mit-crpg.github.io/openmc/pythonapi/examples/pandas-dataframes.html) to compute cross sections from the tally data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "transport.compute_xs()\n", + "nufission.compute_xs()\n", + "nuscatter.compute_xs()\n", + "chi.compute_xs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Voila! Our multi-group cross sections are now ready to rock 'n roll! Let's first inspect one of our cross sections by printing it to the screen." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nufission.print_xs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the `openmc.mgxs` module uses tally arithmetic under-the-hood, the cross section is stored as a \"derived\" tally. This means that it can be queried and manipulated using all of the same method supported for the `Tally` class in the OpenMC Python API. For example, we can construct a Pandas DataFrame of the multi-group cross section data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df = nuscatter.get_pandas_dataframe()\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each multi-group cross section object can be easily exported to a variety of file formats, including CSV, Excel, and LaTeX for storage or data processing." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "transport.export_xs_data(filename='transport-xs', format='excel')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following code snippet shows how to export all of four cross sections to the same HDF5 binary data store." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "transport.build_hdf5_store(filename='mgxs', append=True)\n", + "nufission.build_hdf5_store(filename='mgxs', append=True)\n", + "nuscatter.build_hdf5_store(filename='mgxs', append=True)\n", + "chi.build_hdf5_store(filename='mgxs', append=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Of course it is always a good idea to verify that one's cross sections are accurate. We can easily do so here with the deterministic transport code OpenMOC. First, we will use OpenCG to reconstruct our OpenMC geometry from the summary file into a equivalent OpenMOC geometry." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Import OpenMOC and the OpenMOC/OpenCG compatibility module\n", + "import openmoc\n", + "from openmoc.compatible import get_openmoc_geometry\n", + "\n", + "# Create an OpenCG Geometry from the OpenMC Geometry stored in the summary\n", + "su.make_opencg_geometry()\n", + "\n", + "# Create an OpenMOC Geometry from the OpenCG Geometry\n", + "openmoc_geometry = get_openmoc_geometry(su.opencg_geometry)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can inject the multi-group cross sections into the equivalent infinite homogeneous medium OpenMOC geometry." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Get all OpenMOC cells in the gometry\n", + "openmoc_cells = openmoc_geometry.getRootUniverse().getAllCells()\n", + "\n", + "# Inject multi-group cross sections into OpenMOC Materials\n", + "# NOTE: This code will work for 1, 10, or 1,000s of cells\n", + "# as is the case for a complicated geometry like BEAVRS\n", + "for cell_id, cell in openmoc_cells.items():\n", + " \n", + " # Get a reference to the Material filling this Cell\n", + " openmoc_material = cell.getFillMaterial()\n", + " \n", + " # Set the number of energy groups for the Material\n", + " openmoc_material.setNumEnergyGroups(fine_groups.num_groups)\n", + " \n", + " # Inject NumPy arrays of cross section data into the Material\n", + " openmoc_material.setSigmaT(transport.get_xs().flatten())\n", + " openmoc_material.setNuSigmaF(nufission.get_xs().flatten())\n", + " openmoc_material.setSigmaS(nuscatter.get_xs().flatten())\n", + " openmoc_material.setChi(chi.get_xs().flatten())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now ready to run OpenMOC to verify our cross-sections from OpenMC." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Generate tracks for OpenMOC\n", + "openmoc_geometry.initializeFlatSourceRegions()\n", + "track_generator = openmoc.TrackGenerator(openmoc_geometry, 128, 0.1)\n", + "track_generator.generateTracks()\n", + "\n", + "# Run OpenMOC\n", + "solver = openmoc.CPUSolver(track_generator)\n", + "solver.computeEigenvalue()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We report the eigenvalues computed by OpenMC and OpenMOC here together to summarize our results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Print report of keff and bias with OpenMC\n", + "openmoc_keff = solver.getKeff()\n", + "openmc_keff = sp.k_combined[0]\n", + "bias = (openmoc_keff - openmc_keff) * 1e5\n", + "\n", + "print('openmc keff = {0:1.6f}'.format(openmc_keff))\n", + "print('openmoc keff = {0:1.6f}'.format(openmoc_keff))\n", + "print('bias [pcm]: {0:1.1f}'.format(bias))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although there is a non-trivial bias, one can easily run the preceding code with more particle histories to show that both codes converge to the same eigenvalue with <10 pcm bias. It should be noted that this discrepancy is partially due to use of tracklength tallies for `NuFission`, while one must use more slowly converging analog tallies must be used for `TransportXS`, `NuScatterMatrixXS` and `Chi` (which require an 'energyout' filter)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fuel Pin Cell" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this section we show how to compute multi-group cross sections for a fuel pin cell. In addition, we will illustrate how to use some of the more advanced features in `openmc.mgxs` such as nuclide-by-nuclide microscopic cross section tallies and downstream energy group condensation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generate Inputs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "this time we separate our nuclides into three distinct materials for water, clad and fuel." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "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", + "\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 materials, we can now create a materials file object that can be exported to an actual XML file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a MaterialsFile, add Materials\n", + "materials_file = openmc.MaterialsFile()\n", + "materials_file.add_material(fuel)\n", + "materials_file.add_material(water)\n", + "materials_file.add_material(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. Our problem will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces -- in this case two cylinders and six reflective planes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "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", + "# Use both reflective and vacuum boundaries to make life interesting\n", + "min_x = openmc.XPlane(x0=-0.63, boundary_type='reflective')\n", + "max_x = openmc.XPlane(x0=+0.63, boundary_type='reflective')\n", + "min_y = openmc.YPlane(y0=-0.63, boundary_type='reflective')\n", + "max_y = openmc.YPlane(y0=+0.63, boundary_type='reflective')\n", + "min_z = openmc.ZPlane(z0=-0.63, boundary_type='reflective')\n", + "max_z = openmc.ZPlane(z0=+0.63, boundary_type='reflective')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the surfaces defined, we can now create cells that are defined by intersections of half-spaces created by the surfaces." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create a Universe to encapsulate a fuel pin\n", + "pin_cell_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.add_surface(fuel_outer_radius, halfspace=-1)\n", + "pin_cell_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.add_surface(fuel_outer_radius, halfspace=+1)\n", + "clad_cell.add_surface(clad_outer_radius, halfspace=-1)\n", + "pin_cell_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.add_surface(clad_outer_radius, halfspace=+1)\n", + "pin_cell_universe.add_cell(moderator_cell)" + ] + }, + { + "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": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create root Cell\n", + "root_cell = openmc.Cell(name='root cell')\n", + "root_cell.fill = pin_cell_universe\n", + "\n", + "# Add boundary planes\n", + "root_cell.add_surface(min_x, halfspace=+1)\n", + "root_cell.add_surface(max_x, halfspace=-1)\n", + "root_cell.add_surface(min_y, halfspace=+1)\n", + "root_cell.add_surface(max_y, halfspace=-1)\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, put the geometry into a geometry file, and export it to XML." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create Geometry and set root Universe\n", + "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()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will reuse our settings from the previous simulation. Now, we let's create transport, nu-fission, nu-scatter and chi multi-group cross sections for each cell." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Extract all Cells filled by Materials\n", + "openmc_cells = openmc_geometry.get_all_material_cells()\n", + "\n", + "# Create dictionary to store multi-group cross sections for all cells\n", + "xs_library = {}\n", + "\n", + "# Instantiate 8-group cross sections for each cell\n", + "for cell in openmc_cells:\n", + " xs_library[cell.id] = {}\n", + " xs_library[cell.id]['transport'] = mgxs.TransportXS(groups=fine_groups)\n", + " xs_library[cell.id]['nu-fission'] = mgxs.NuFissionXS(groups=fine_groups)\n", + " xs_library[cell.id]['nu-scatter'] = mgxs.NuScatterMatrixXS(groups=fine_groups)\n", + " xs_library[cell.id]['chi'] = mgxs.Chi(groups=fine_groups)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case, we did not give our cross sections a spatial domain in their constructors. Instead, we will loop over all cells to set each cross sections domain. In addition, we will set each cross section to tally cross sections on a per-nuclide basis through the use of the `by_nuclide` instance attribute. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate an empty TalliesFile\n", + "tallies_file = openmc.TalliesFile()\n", + "\n", + "# Iterate over all cells and cross section types\n", + "for cell in openmc_cells:\n", + " for rxn_type in xs_library[cell.id].keys():\n", + " print(cell.name, rxn_type)\n", + "\n", + " # Set the cross sections domain type 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 (e.g., micro cross sections)\n", + " xs_library[cell.id][rxn_type].by_nuclide = True\n", + " \n", + " # Create OpenMC tallies for this cross section\n", + " xs_library[cell.id][rxn_type].create_tallies()\n", + " \n", + " # Add OpenMC tallies to the tallies file for XML generation\n", + " for tally in xs_library[cell.id][rxn_type].tallies.values():\n", + " print(tally)\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# Export to \"tallies.xml\"\n", + "tallies_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we a have a complete set of inputs, so we can go ahead and run our simulation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Delete old HDF5 files\n", + "!rm *.h5\n", + "\n", + "# Run OpenMC!\n", + "executor = openmc.Executor()\n", + "executor.run_simulation()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tally Data Processing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our simulation ran successfully and created a statepoint file with all the tally data in it. As before, we begin our analysis here loading the statepoint file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the last statepoint and summary files\n", + "sp = openmc.StatePoint('statepoint.50.h5')\n", + "su = openmc.Summary('summary.h5')\n", + "sp.link_with_summary(su)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Iterate over all cells and cross section types\n", + "for cell in openmc_cells:\n", + " for rxn_type in xs_library[cell.id].keys():\n", + " xs_library[cell.id][rxn_type].load_from_statepoint(sp)\n", + " xs_library[cell.id][rxn_type].compute_xs()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 70ff46406..f227e2f71 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -385,7 +385,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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDAxOjE0\nOjM0LTA0OjAwS1fWPgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QwMToxNDozNC0wNDow\nMDoKboIAAAAASUVORK5CYII=\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDExOjE3\nOjA5LTA0OjAw0jfqaAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QxMToxNzowOS0wNDow\nMKNqUtQAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -576,7 +576,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 01:14:34\n", + " Date/Time: 2015-10-03 11:17:09\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -644,20 +644,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.2000E+00 seconds\n", - " Reading cross sections = 2.5000E-01 seconds\n", - " Total time in simulation = 1.8967E+01 seconds\n", - " Time in transport only = 1.8921E+01 seconds\n", - " Time in inactive batches = 2.8760E+00 seconds\n", - " Time in active batches = 1.6091E+01 seconds\n", + " Total time for initialization = 7.1300E-01 seconds\n", + " Reading cross sections = 1.5900E-01 seconds\n", + " Total time in simulation = 1.5700E+01 seconds\n", + " Time in transport only = 1.5659E+01 seconds\n", + " Time in inactive batches = 2.1510E+00 seconds\n", + " Time in active batches = 1.3549E+01 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", " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.0192E+01 seconds\n", - " Calculation Rate (inactive) = 4346.31 neutrons/second\n", - " Calculation Rate (active) = 2330.50 neutrons/second\n", + " Total time elapsed = 1.6427E+01 seconds\n", + " Calculation Rate (inactive) = 5811.25 neutrons/second\n", + " Calculation Rate (active) = 2767.73 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", diff --git a/docs/source/pythonapi/examples/plots.xml b/docs/source/pythonapi/examples/plots.xml new file mode 100644 index 000000000..512070a33 --- /dev/null +++ b/docs/source/pythonapi/examples/plots.xml @@ -0,0 +1,8 @@ + + + + 0 0 0 + 21.5 21.5 + 250 250 + + diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 51ca6adcf..de6234a72 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -353,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\nMTUtMTAtMDNUMDI6NTE6MjktMDQ6MDANEGNoAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAyOjUxOjI5LTA0OjAwfE3b1AAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMTE6MTc6MDItMDQ6MDDQML6SAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDExOjE3OjAyLTA0OjAwoW0GLgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -419,7 +419,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "collapsed": true }, @@ -438,7 +438,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "collapsed": false, "scrolled": true @@ -465,7 +465,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 02:51:29\n", + " Date/Time: 2015-10-03 11:17:02\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -533,8 +533,108 @@ " 39/1 1.01971 1.03820 +/- 0.00312\n", " 40/1 1.01491 1.03743 +/- 0.00311\n", " 41/1 1.02779 1.03712 +/- 0.00303\n", - " 42/1 1.03047 1.03691 +/- 0.00294\n" + " 42/1 1.03047 1.03691 +/- 0.00294\n", + " 43/1 1.02305 1.03649 +/- 0.00288\n", + " 44/1 1.07854 1.03773 +/- 0.00305\n", + " 45/1 1.04412 1.03791 +/- 0.00297\n", + " 46/1 1.05139 1.03828 +/- 0.00291\n", + " 47/1 1.05357 1.03870 +/- 0.00286\n", + " 48/1 1.06435 1.03937 +/- 0.00287\n", + " 49/1 1.02632 1.03904 +/- 0.00281\n", + " 50/1 1.05201 1.03936 +/- 0.00276\n", + " 51/1 1.04582 1.03952 +/- 0.00270\n", + " 52/1 1.02056 1.03907 +/- 0.00267\n", + " 53/1 1.06448 1.03966 +/- 0.00267\n", + " 54/1 1.03609 1.03958 +/- 0.00261\n", + " 55/1 1.02701 1.03930 +/- 0.00257\n", + " 56/1 1.04865 1.03950 +/- 0.00252\n", + " 57/1 1.06310 1.04000 +/- 0.00252\n", + " 58/1 1.02975 1.03979 +/- 0.00247\n", + " 59/1 1.03922 1.03978 +/- 0.00242\n", + " 60/1 1.07259 1.04043 +/- 0.00246\n", + " 61/1 1.04555 1.04053 +/- 0.00242\n", + " 62/1 1.01950 1.04013 +/- 0.00240\n", + " 63/1 1.04618 1.04024 +/- 0.00236\n", + " 64/1 1.02489 1.03996 +/- 0.00233\n", + " 65/1 1.06850 1.04048 +/- 0.00235\n", + " 66/1 1.03623 1.04040 +/- 0.00231\n", + " 67/1 0.99892 1.03967 +/- 0.00238\n", + " 68/1 1.05557 1.03995 +/- 0.00236\n", + " 69/1 1.01211 1.03948 +/- 0.00236\n", + " 70/1 1.04679 1.03960 +/- 0.00233\n", + " 71/1 1.03461 1.03952 +/- 0.00229\n", + " 72/1 1.01993 1.03920 +/- 0.00227\n", + " 73/1 1.04742 1.03933 +/- 0.00224\n", + " 74/1 1.05269 1.03954 +/- 0.00222\n", + " 75/1 1.05696 1.03981 +/- 0.00220\n", + " 76/1 1.05904 1.04010 +/- 0.00218\n", + " 77/1 1.05930 1.04039 +/- 0.00217\n", + " 78/1 1.03375 1.04029 +/- 0.00214\n", + " 79/1 1.07044 1.04073 +/- 0.00215\n", + " 80/1 1.04144 1.04074 +/- 0.00212\n", + " 81/1 1.06296 1.04105 +/- 0.00212\n", + " 82/1 1.04630 1.04112 +/- 0.00209\n", + " 83/1 1.03772 1.04108 +/- 0.00206\n", + " 84/1 1.03774 1.04103 +/- 0.00203\n", + " 85/1 1.03984 1.04101 +/- 0.00200\n", + " 86/1 1.03040 1.04087 +/- 0.00198\n", + " 87/1 1.03484 1.04080 +/- 0.00196\n", + " 88/1 1.03820 1.04076 +/- 0.00193\n", + " 89/1 1.04654 1.04084 +/- 0.00191\n", + " 90/1 1.03377 1.04075 +/- 0.00189\n", + " 91/1 1.03370 1.04066 +/- 0.00187\n", + " 92/1 1.04172 1.04067 +/- 0.00184\n", + " 93/1 1.04945 1.04078 +/- 0.00182\n", + " 94/1 1.03360 1.04069 +/- 0.00181\n", + " 95/1 1.06547 1.04099 +/- 0.00181\n", + " 96/1 1.04340 1.04101 +/- 0.00179\n", + " 97/1 1.07502 1.04140 +/- 0.00181\n", + " 98/1 1.05391 1.04155 +/- 0.00179\n", + " 99/1 1.05622 1.04171 +/- 0.00178\n", + " 100/1 1.01519 1.04142 +/- 0.00179\n", + " Creating state point statepoint.100.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 5.2900E-01 seconds\n", + " Reading cross sections = 9.6000E-02 seconds\n", + " Total time in simulation = 3.1874E+02 seconds\n", + " Time in transport only = 3.1866E+02 seconds\n", + " Time in inactive batches = 1.3286E+01 seconds\n", + " Time in active batches = 3.0545E+02 seconds\n", + " Time synchronizing fission bank = 1.1000E-02 seconds\n", + " Sampling source sites = 7.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 2.2000E-02 seconds\n", + " Total time for finalization = 1.7800E-01 seconds\n", + " Total time elapsed = 3.1947E+02 seconds\n", + " Calculation Rate (inactive) = 3763.36 neutrons/second\n", + " Calculation Rate (active) = 1473.24 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.04100 +/- 0.00169\n", + " k-effective (Track-length) = 1.04142 +/- 0.00179\n", + " k-effective (Absorption) = 1.04380 +/- 0.00147\n", + " Combined k-effective = 1.04287 +/- 0.00130\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -558,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false, "scrolled": true @@ -578,11 +678,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tally\n", + "\tID =\t10000\n", + "\tName =\t\n", + "\tFilters =\t\n", + " \t\tmesh\t[10000]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'flux', u'fission']\n", + "\tEstimator =\ttracklength\n", + "\n" + ] + } + ], "source": [ "tally = sp.get_tally(scores=['flux'])\n", "print(tally)" @@ -597,11 +713,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[[ 0.41271426, 0. ]],\n", + "\n", + " [[ 0.40846766, 0. ]],\n", + "\n", + " [[ 0.4112029 , 0. ]],\n", + "\n", + " ..., \n", + " [[ 0.41437289, 0. ]],\n", + "\n", + " [[ 0.41376468, 0. ]],\n", + "\n", + " [[ 0.41312074, 0. ]]])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tally.sum" ] @@ -615,11 +753,52 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(10000, 1, 2)\n" + ] + }, + { + "data": { + "text/plain": [ + "(array([[[ 0.00458571, 0. ]],\n", + " \n", + " [[ 0.00453853, 0. ]],\n", + " \n", + " [[ 0.00456892, 0. ]],\n", + " \n", + " ..., \n", + " [[ 0.00460414, 0. ]],\n", + " \n", + " [[ 0.00459739, 0. ]],\n", + " \n", + " [[ 0.00459023, 0. ]]]),\n", + " array([[[ 2.02702426e-05, 0.00000000e+00]],\n", + " \n", + " [[ 1.77108625e-05, 0.00000000e+00]],\n", + " \n", + " [[ 1.79568064e-05, 0.00000000e+00]],\n", + " \n", + " ..., \n", + " [[ 1.83114148e-05, 0.00000000e+00]],\n", + " \n", + " [[ 1.69970626e-05, 0.00000000e+00]],\n", + " \n", + " [[ 1.92143217e-05, 0.00000000e+00]]]))" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "print(tally.mean.shape)\n", "(tally.mean, tally.std_dev)" @@ -634,11 +813,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tally\n", + "\tID =\t10000\n", + "\tName =\t\n", + "\tFilters =\t\n", + " \t\tmesh\t[10000]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'flux']\n", + "\tEstimator =\ttracklength\n", + "\n" + ] + } + ], "source": [ "flux = tally.get_slice(scores=['flux'])\n", "fission = tally.get_slice(scores=['fission'])\n", @@ -654,7 +849,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -668,11 +863,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\ncPmIaKHPh5wAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig = plt.subplot(121)\n", "fig.imshow(flux.mean)\n", @@ -689,11 +905,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Determine relative error\n", "relative_error = np.zeros_like(flux.std_dev)\n", @@ -720,11 +947,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([ (1.0, [0.08159183470384083, 0.37187405724079425, -0.4569273259677805], [-0.5991379733562734, 0.6213299732428319, -0.5049581697849825], 1.4308796774550836),\n", + " (1.0, [0.08159183470384083, 0.37187405724079425, -0.4569273259677805], [0.6943502674814661, -0.18996972225593808, 0.694110373553384], 1.8499326750790277),\n", + " (1.0, [-0.2283457014858208, -0.3149356437736135, -0.6287339985223156], [0.22841158666373973, -0.9428738529578353, 0.24252225565130936], 2.8993105331976654),\n", + " ...,\n", + " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [0.871391386295745, 0.3866181159860615, 0.30199914615933615], 2.2329770939373517),\n", + " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [-0.4649777417907873, 0.38973845929247963, 0.7949211489119309], 1.6836109244016622),\n", + " (1.0, [-0.20844939420957254, 0.043779246455180054, -0.22209004880139005], [-0.4649777417907873, 0.38973845929247963, 0.7949211489119309], 1.6836109244016622)], \n", + " dtype=[('wgt', '" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create log-spaced energy bins from 1 keV to 100 MeV\n", "energy_bins = np.logspace(-3,1)\n", @@ -786,11 +1071,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(-0.5, 0.5)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plt.quiver(sp.source['xyz'][:,0], sp.source['xyz'][:,1],\n", " sp.source['uvw'][:,0], sp.source['uvw'][:,1],\n", diff --git a/docs/source/pythonapi/examples/settings.xml b/docs/source/pythonapi/examples/settings.xml new file mode 100644 index 000000000..b8d6b36e1 --- /dev/null +++ b/docs/source/pythonapi/examples/settings.xml @@ -0,0 +1,17 @@ + + + + 2500 + 50 + 10 + + + + -0.63 -0.63 -0.63 0.63 0.63 0.63 + + + + true + true + + diff --git a/docs/source/pythonapi/examples/tallies.xml b/docs/source/pythonapi/examples/tallies.xml new file mode 100644 index 000000000..f72c8ea83 --- /dev/null +++ b/docs/source/pythonapi/examples/tallies.xml @@ -0,0 +1,39 @@ + + + + + + total + scatter-P1 nu-fission + analog + + + + + total + flux total + analog + + + + + total + flux nu-fission + tracklength + + + + + + total + nu-scatter + analog + + + + + total + nu-fission + analog + + diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 1196c27e1..4ce764182 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -369,7 +369,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\nMTUtMTAtMDNUMDI6NTA6NDctMDQ6MDB0gnqMAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDAyOjUwOjQ3LTA0OjAwBd/CMAAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMTE6MTY6NTQtMDQ6MDAUwu7yAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDExOjE2OjU0LTA0OjAwZZ9WTgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -563,6 +563,7 @@ "name": "stdout", "output_type": "stream", "text": [ + "rm: cannot remove ‘statepoint.*’: No such file or directory\n", "\n", " .d88888b. 888b d888 .d8888b.\n", " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", @@ -580,7 +581,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 02:50:47\n", + " Date/Time: 2015-10-03 11:16:55\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -636,20 +637,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.1480E+00 seconds\n", - " Reading cross sections = 2.9100E-01 seconds\n", - " Total time in simulation = 2.7345E+01 seconds\n", - " Time in transport only = 2.7286E+01 seconds\n", - " Time in inactive batches = 5.8310E+00 seconds\n", - " Time in active batches = 2.1514E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 6.8600E-01 seconds\n", + " Reading cross sections = 1.5400E-01 seconds\n", + " Total time in simulation = 2.4023E+01 seconds\n", + " Time in transport only = 2.3994E+01 seconds\n", + " Time in inactive batches = 3.1010E+00 seconds\n", + " Time in active batches = 2.0922E+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 = 0.0000E+00 seconds\n", " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 2.8526E+01 seconds\n", - " Calculation Rate (inactive) = 2143.71 neutrons/second\n", - " Calculation Rate (active) = 1743.05 neutrons/second\n", + " Total time elapsed = 2.4724E+01 seconds\n", + " Calculation Rate (inactive) = 4030.96 neutrons/second\n", + " Calculation Rate (active) = 1792.37 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -721,7 +722,20 @@ "collapsed": false, "scrolled": true }, - "outputs": [], + "outputs": [ + { + "ename": "KeyError", + "evalue": "10003", + "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 summary file and link with statepoint\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0msu\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSummary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'summary.h5'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0msp\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[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.0-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 610\u001b[0m \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[0;32m 611\u001b[0m \u001b[1;31m# Get the Tally name from the summary file\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 612\u001b[1;33m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\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[0mname\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 613\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwith_summary\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 614\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mKeyError\u001b[0m: 10003" + ] + } + ], "source": [ "# Load the summary file and link with statepoint\n", "su = Summary('summary.h5')\n", @@ -739,47 +753,11 @@ }, { "cell_type": "code", - "execution_count": 26, + "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", - "
nuclidescoremeanstd. dev.
0total(nu-fission / absorption)1.0463530.00935
\n", - "
" - ], - "text/plain": [ - " nuclide score mean std. dev.\n", - "0 total (nu-fission / absorption) 1.046353 0.00935" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Compute k-infinity using tally arithmetic\n", "fiss_rate = sp.get_tally(name='fiss. rate')\n", @@ -799,49 +777,11 @@ }, { "cell_type": "code", - "execution_count": 27, + "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", - "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)totalabsorption0.958730.00774
\n", - "
" - ], - "text/plain": [ - " energy [MeV] nuclide score mean std. dev.\n", - "0 (0.0e+00 - 6.2e-01) total absorption 0.95873 0.00774" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Compute resonance escape probability using tally arithmetic\n", "therm_abs_rate = sp.get_tally(name='therm. abs. rate')\n", @@ -859,47 +799,11 @@ }, { "cell_type": "code", - "execution_count": 28, + "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", - "
nuclidescoremeanstd. dev.
0totalnu-fission1.0916220.011163
\n", - "
" - ], - "text/plain": [ - " nuclide score mean std. dev.\n", - "0 total nu-fission 1.091622 0.011163" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Compute fast fission factor factor using tally arithmetic\n", "therm_fiss_rate = sp.get_tally(name='therm. fiss. rate')\n", @@ -918,51 +822,11 @@ }, { "cell_type": "code", - "execution_count": 29, + "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", - "
energy [MeV]cellnuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)10000totalabsorption0.8020120.006609
\n", - "
" - ], - "text/plain": [ - " energy [MeV] cell nuclide score mean std. dev.\n", - "0 (0.0e+00 - 6.2e-01) 10000 total absorption 0.802012 0.006609" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Compute thermal flux utilization factor using tally arithmetic\n", "fuel_therm_abs_rate = sp.get_tally(name='fuel therm. abs. rate')\n", @@ -979,49 +843,11 @@ }, { "cell_type": "code", - "execution_count": 30, + "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", - "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)total(nu-fission / absorption)1.2466040.011825
\n", - "
" - ], - "text/plain": [ - " energy [MeV] nuclide score mean std. dev.\n", - "0 (0.0e+00 - 6.2e-01) total (nu-fission / absorption) 1.246604 0.011825" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Compute neutrons produced per absorption (eta) using tally arithmetic\n", "eta = therm_fiss_rate / fuel_therm_abs_rate\n", @@ -1037,52 +863,11 @@ }, { "cell_type": "code", - "execution_count": 31, + "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", - "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)total(((absorption * nu-fission) * absorption) * (n...1.0463530.01894
\n", - "
" - ], - "text/plain": [ - " energy [MeV] nuclide \\\n", - "0 (0.0e+00 - 6.2e-01) total \n", - "\n", - " score mean std. dev. \n", - "0 (((absorption * nu-fission) * absorption) * (n... 1.046353 0.01894 " - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "keff = res_esc * fast_fiss * therm_util * eta\n", "keff.get_pandas_dataframe()" @@ -1099,7 +884,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false, "scrolled": true @@ -1115,131 +900,11 @@ }, { "cell_type": "code", - "execution_count": 33, + "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellenergy [MeV]nuclidescoremeanstd. dev.
010000(0.0e+00 - 6.3e-07)(U-238 / total)(nu-fission / flux)6.641746e-076.859257e-09
110000(0.0e+00 - 6.3e-07)(U-238 / total)(scatter / flux)2.099861e-011.966887e-03
210000(0.0e+00 - 6.3e-07)(U-235 / total)(nu-fission / flux)3.556665e-013.717881e-03
310000(0.0e+00 - 6.3e-07)(U-235 / total)(scatter / flux)5.554650e-035.218094e-05
410000(6.3e-07 - 2.0e+01)(U-238 / total)(nu-fission / flux)7.165057e-035.625590e-05
510000(6.3e-07 - 2.0e+01)(U-238 / total)(scatter / flux)2.276535e-018.544314e-04
610000(6.3e-07 - 2.0e+01)(U-235 / total)(nu-fission / flux)8.089493e-035.080374e-05
710000(6.3e-07 - 2.0e+01)(U-235 / total)(scatter / flux)3.370111e-031.361116e-05
\n", - "
" - ], - "text/plain": [ - " cell energy [MeV] nuclide score \\\n", - "0 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (nu-fission / flux) \n", - "1 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (scatter / flux) \n", - "2 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (nu-fission / flux) \n", - "3 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (scatter / flux) \n", - "4 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (nu-fission / flux) \n", - "5 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (scatter / flux) \n", - "6 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (nu-fission / flux) \n", - "7 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (scatter / flux) \n", - "\n", - " mean std. dev. \n", - "0 6.641746e-07 6.859257e-09 \n", - "1 2.099861e-01 1.966887e-03 \n", - "2 3.556665e-01 3.717881e-03 \n", - "3 5.554650e-03 5.218094e-05 \n", - "4 7.165057e-03 5.625590e-05 \n", - "5 2.276535e-01 8.544314e-04 \n", - "6 8.089493e-03 5.080374e-05 \n", - "7 3.370111e-03 1.361116e-05 " - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "fuel_xs = fuel_rxn_rates / flux\n", "fuel_xs.get_pandas_dataframe()" @@ -1254,23 +919,11 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[ 6.64174599e-07]\n", - " [ 3.55666541e-01]]\n", - "\n", - " [[ 7.16505734e-03]\n", - " [ 8.08949336e-03]]]\n" - ] - } - ], + "outputs": [], "source": [ "# Show how to use Tally.get_values(...) with a CrossScore\n", "nu_fiss_xs = fuel_xs.get_values(scores=['(nu-fission / flux)'])\n", @@ -1286,21 +939,11 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[ 0.00555465]]\n", - "\n", - " [[ 0.00337011]]]\n" - ] - } - ], + "outputs": [], "source": [ "# Show how to use Tally.get_values(...) with a CrossScore and CrossNuclide\n", "u235_scatter_xs = fuel_xs.get_values(nuclides=['(U-235 / total)'], \n", @@ -1310,20 +953,11 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[ 0.22765348]\n", - " [ 0.00337011]]]\n" - ] - } - ], + "outputs": [], "source": [ "# Show how to use Tally.get_values(...) with a CrossFilter and CrossScore\n", "fast_scatter_xs = fuel_xs.get_values(filters=['energy'], \n", @@ -1341,81 +975,11 @@ }, { "cell_type": "code", - "execution_count": 37, + "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", - "
cellenergy [MeV]nuclidescoremeanstd. dev.
010000(0.0e+00 - 6.3e-07)U-238nu-fission0.0000021.284890e-08
110000(0.0e+00 - 6.3e-07)U-235nu-fission0.8679827.022256e-03
210000(6.3e-07 - 2.0e+01)U-238nu-fission0.0828016.087096e-04
310000(6.3e-07 - 2.0e+01)U-235nu-fission0.0934845.275039e-04
\n", - "
" - ], - "text/plain": [ - " cell energy [MeV] nuclide score mean std. dev.\n", - "0 10000 (0.0e+00 - 6.3e-07) U-238 nu-fission 0.000002 1.284890e-08\n", - "1 10000 (0.0e+00 - 6.3e-07) U-235 nu-fission 0.867982 7.022256e-03\n", - "2 10000 (6.3e-07 - 2.0e+01) U-238 nu-fission 0.082801 6.087096e-04\n", - "3 10000 (6.3e-07 - 2.0e+01) U-235 nu-fission 0.093484 5.275039e-04" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# \"Slice\" the nu-fission data into a new derived Tally\n", "nu_fission_rates = fuel_rxn_rates.get_slice(scores=['nu-fission'])\n", @@ -1424,131 +988,11 @@ }, { "cell_type": "code", - "execution_count": 38, + "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellenergy [MeV]nuclidescoremeanstd. dev.
010002(1.0e-08 - 1.1e-07)H-1scatter4.6205250.038249
110002(1.1e-07 - 1.2e-06)H-1scatter2.0368410.013203
210002(1.2e-06 - 1.3e-05)H-1scatter1.6599160.010107
310002(1.3e-05 - 1.4e-04)H-1scatter1.8615460.013328
410002(1.4e-04 - 1.5e-03)H-1scatter2.0496640.008215
510002(1.5e-03 - 1.6e-02)H-1scatter2.1621570.010245
610002(1.6e-02 - 1.7e-01)H-1scatter2.2244960.013796
710002(1.7e-01 - 1.9e+00)H-1scatter1.9975850.009161
810002(1.9e+00 - 2.0e+01)H-1scatter0.3734720.003922
\n", - "
" - ], - "text/plain": [ - " cell energy [MeV] nuclide score mean std. dev.\n", - "0 10002 (1.0e-08 - 1.1e-07) H-1 scatter 4.620525 0.038249\n", - "1 10002 (1.1e-07 - 1.2e-06) H-1 scatter 2.036841 0.013203\n", - "2 10002 (1.2e-06 - 1.3e-05) H-1 scatter 1.659916 0.010107\n", - "3 10002 (1.3e-05 - 1.4e-04) H-1 scatter 1.861546 0.013328\n", - "4 10002 (1.4e-04 - 1.5e-03) H-1 scatter 2.049664 0.008215\n", - "5 10002 (1.5e-03 - 1.6e-02) H-1 scatter 2.162157 0.010245\n", - "6 10002 (1.6e-02 - 1.7e-01) H-1 scatter 2.224496 0.013796\n", - "7 10002 (1.7e-01 - 1.9e+00) H-1 scatter 1.997585 0.009161\n", - "8 10002 (1.9e+00 - 2.0e+01) H-1 scatter 0.373472 0.003922" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# \"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", diff --git a/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data b/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data new file mode 100644 index 0000000000000000000000000000000000000000..b108b863c52d6d385677f2f730b589892ee66001 GIT binary patch literal 71256 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%0AB9)@AO7*7 znjeOawEDCBL;u4+q8=8f{ZEznEdRlyy@VdL_)LG`(OyCi8qf3(oul1xgdPSy_~bb| ze0kf!_cZ>&)_(?srnSQ{dzGyf6UE!I2OZvyY5_77bZ~FGV+YZiZ z^v~9h7WGZ~$2#g7pRXS;`;E#?`>?OB6rQc0E$W-%V;yycSJ&@GeGwn)s4F~MKOXHY z*U`s5EM8u&qaUv$3kSTsTt^@4sC#+2jy~2=_wsTbeJW4z^0B_nI#5_g-OJOu^#T2d zb>+v#H|ywQ9d$2{b@YXvwEC<0hjsL6+=o2Yc$WXjKhziFM*LkXf382AhjsMH|Im(F ze5QYz?~L-MBlPt7byNTR^QUY#_}<1p*!~r=-$nmb3eWb>5c925{Fo1`HD2An1LZ}0 z_=g_9**_BPC-skgoV>i$Km5bXOZ~$?yu8#u{KLyj{lh=Jyvzga!{Ftm{^1{E;~V`$ zPhKASNB+P+ygc;(xOjg<;nn;_c||)0g=hLf{zCs0Kj~lLnSQph)3q5(`OZ`GmULNt#ez=}`dBmglCU6~8>#yZM;_W4#f9mm@{hMXK zq5RO(2llz78oFxx!NW8C&Y0QkA5G^6oDUv)(s}#(N$pvAd8t3>$;;z>lplKX@;Dzn z^yKAnK6vQY%gcU*p1eHHM||jMY<#0X=*i3De8h*Iygbea4?TH#oDUv)^71%8_QUFQ z|6k`D{m6bpeCP>$dx0A4-`I=(I6rp%S-hn`i?{S=@s|E9-qN4N%YKBO^#1E?f1Hp0 zm-@5f<9zVYlQ%xj2M;}Yd7KX(dh+r(A3XHr<#B#Vf4uz~{k1i Date: Sat, 3 Oct 2015 11:40:52 -0400 Subject: [PATCH 79/91] Corrected tally slicing for Python API MultiGroupXS --- docs/source/pythonapi/examples/geometry.xml | 8 ---- .../pythonapi/examples/materials-xy.png | Bin 1271 -> 0 bytes docs/source/pythonapi/examples/materials.xml | 12 ------ docs/source/pythonapi/examples/plots.xml | 8 ---- docs/source/pythonapi/examples/settings.xml | 17 -------- docs/source/pythonapi/examples/tallies.xml | 39 ------------------ 6 files changed, 84 deletions(-) delete mode 100644 docs/source/pythonapi/examples/geometry.xml delete mode 100644 docs/source/pythonapi/examples/materials-xy.png delete mode 100644 docs/source/pythonapi/examples/materials.xml delete mode 100644 docs/source/pythonapi/examples/plots.xml delete mode 100644 docs/source/pythonapi/examples/settings.xml delete mode 100644 docs/source/pythonapi/examples/tallies.xml diff --git a/docs/source/pythonapi/examples/geometry.xml b/docs/source/pythonapi/examples/geometry.xml deleted file mode 100644 index bfd99e0b9..000000000 --- a/docs/source/pythonapi/examples/geometry.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/source/pythonapi/examples/materials-xy.png b/docs/source/pythonapi/examples/materials-xy.png deleted file mode 100644 index cfed789b25a6f93030995c5645caee5dfd7cb7ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1271 zcmZ{jZ&Z?Z6vrPkJ7-pN={b=rqgImUOl%el1V#q}n*tF{O4IyPDmwKf9Z}Oq$uuj= zESH65)3TZ;8FOV(N%K!yS)^vzY?!iAK}7=g_T=jut|LAo=NqwkRjNcSz$gw?g&LSB%=tsu&h8 z1cEYg5R{w$3CuBzo5M`^5mOu9~ zF#3BY9XjUZ!LpmrQdzsx?D}zLLE9cDQXt6jbr7A#kJpS#Ny%FL7X{fxV|Tk36&E{) zdT-t!%CC?xxlx3PMnPpWlY7Q7Da!HoR`S;r&+XO(?&nFX9u}@T@~~oX@+_oNk*=kh=s!#L`ybsuCBRqUSDLXOxK(w%WNNM1uv}@4aZw66MG#PT#5 z5C+X!{G=y2px37651z;io>5Ms_s*kr+QKC3(hZl|>0>#A!& z*!pmV?K~Mte+ZM&B^tQFVbr7fmz<29#|=Zw_JPf%c?-*_a_ufazLnWe8j1A%6D5%V z3)w4qNhN}LR=-)R>@~a(c*HA`1FSOd2W#d)58Q8-cMrC{MfE%75uj2JJJ^ha2*w@$ z7Q`cMm+X06XyHucub@V+s+sfCVQDtZl&o(WOTI)fvyC=vHVPR}Q()vfP-(IiQ$ULW z`(hT`HO%>2Y(kb>QJ2HO>}JCp28$kmZ3D^{^uz?U_1|2?PXv6g1NHzM{sbL;gG7pe zy9R8V9f(oGW8z10BX-1cHp^_tHxf9Y?K%9%u - - 71c - - - - - - - - - diff --git a/docs/source/pythonapi/examples/plots.xml b/docs/source/pythonapi/examples/plots.xml deleted file mode 100644 index 512070a33..000000000 --- a/docs/source/pythonapi/examples/plots.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - 0 0 0 - 21.5 21.5 - 250 250 - - diff --git a/docs/source/pythonapi/examples/settings.xml b/docs/source/pythonapi/examples/settings.xml deleted file mode 100644 index b8d6b36e1..000000000 --- a/docs/source/pythonapi/examples/settings.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - 2500 - 50 - 10 - - - - -0.63 -0.63 -0.63 0.63 0.63 0.63 - - - - true - true - - diff --git a/docs/source/pythonapi/examples/tallies.xml b/docs/source/pythonapi/examples/tallies.xml deleted file mode 100644 index f72c8ea83..000000000 --- a/docs/source/pythonapi/examples/tallies.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - total - scatter-P1 nu-fission - analog - - - - - total - flux total - analog - - - - - total - flux nu-fission - tracklength - - - - - - total - nu-scatter - analog - - - - - total - nu-fission - analog - - From a0d1c3b7c5fa3d97c2010512a9bcdab5e99dea05 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 12:41:07 -0400 Subject: [PATCH 80/91] Adding multi-group cross section generation IPython Notebook --- .gitignore | 5 +- .../examples/multi-group-cross-sections.ipynb | 2864 +++++++++++++++++ .../pythonapi/examples/openmc-mgxs.ipynb | 1112 ------- .../tracks/128_angles_0.1_cm_spacing.data | Bin 71256 -> 0 bytes 4 files changed, 2868 insertions(+), 1113 deletions(-) create mode 100644 docs/source/pythonapi/examples/multi-group-cross-sections.ipynb delete mode 100644 docs/source/pythonapi/examples/openmc-mgxs.ipynb delete mode 100644 docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data diff --git a/.gitignore b/.gitignore index 5634632fa..c5c4c729d 100644 --- a/.gitignore +++ b/.gitignore @@ -62,4 +62,7 @@ data/nndc .idea/* # IPython notebook checkpoints -.ipynb_checkpoints \ No newline at end of file +.ipynb_checkpoints + +# OpenMOC tracks +*.data \ No newline at end of file diff --git a/docs/source/pythonapi/examples/multi-group-cross-sections.ipynb b/docs/source/pythonapi/examples/multi-group-cross-sections.ipynb new file mode 100644 index 000000000..14392ec97 --- /dev/null +++ b/docs/source/pythonapi/examples/multi-group-cross-sections.ipynb @@ -0,0 +1,2864 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook demonstrates how to use the **``openmc.mgxs``** module to generate multi-group cross sections with OpenMC.\n", + "\n", + "**Note:** that 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, 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." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import openmc\n", + "import openmc.mgxs as mgxs\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Infinite Homogeneous Medium" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first construct a simple homogeneous infinite medium problem to illustrate use of the `openmc.mgxs` module to generate multi-group cross sections." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generate Inputs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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", + "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 a material for the homogeneous medium." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a Material and register the Nuclides\n", + "inf_medium = openmc.Material(name='moderator')\n", + "inf_medium.set_density('g/cc', 5.)\n", + "inf_medium.add_nuclide(h1, 0.028999667)\n", + "inf_medium.add_nuclide(o16, 0.01450188)\n", + "inf_medium.add_nuclide(u235, 0.000114142)\n", + "inf_medium.add_nuclide(u238, 0.006886019)\n", + "inf_medium.add_nuclide(zr90, 0.002116053)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our material, we can now create a materials file object that can be exported to an actual XML file." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a MaterialsFile, register all Materials, and export to XML\n", + "materials_file = openmc.MaterialsFile()\n", + "materials_file.default_xs = '71c'\n", + "materials_file.add_material(inf_medium)\n", + "materials_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's move on to the geometry. This problem will be a simple square cell with reflective boundary conditions to simulate an infinite homogeneous medium. The first step is to create the outer bounding surfaces of the problem." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate boundary Planes\n", + "min_x = openmc.XPlane(boundary_type='reflective', x0=-0.63)\n", + "max_x = openmc.XPlane(boundary_type='reflective', x0=0.63)\n", + "min_y = openmc.YPlane(boundary_type='reflective', y0=-0.63)\n", + "max_y = openmc.YPlane(boundary_type='reflective', y0=0.63)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the surfaces defined, we can now create a cell that is defined by intersections of half-spaces created by the surfaces." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a Cell\n", + "cell = openmc.Cell(cell_id=1, name='cell')\n", + "\n", + "# Register bounding Surfaces with the Cell\n", + "cell.add_surface(surface=min_x, halfspace=+1)\n", + "cell.add_surface(surface=max_x, halfspace=-1)\n", + "cell.add_surface(surface=min_y, halfspace=+1)\n", + "cell.add_surface(surface=max_y, halfspace=-1)\n", + "\n", + "# Fill the Cell with the Material\n", + "cell.fill = inf_medium" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "OpenMC requires that there is a \"root\" universe. Let us create a root universe and add our square cell to it." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate Universe\n", + "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", + "root_universe.add_cell(cell)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now must create a geometry that is assigned a root universe, put the geometry into a geometry file, and export it to XML." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create Geometry and set root Universe\n", + "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()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we must 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": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# OpenMC simulation parameters\n", + "batches = 50\n", + "inactive = 10\n", + "particles = 2500\n", + "\n", + "# Instantiate a SettingsFile\n", + "settings_file = openmc.SettingsFile()\n", + "settings_file.batches = batches\n", + "settings_file.inactive = inactive\n", + "settings_file.particles = particles\n", + "settings_file.output = {'tallies': True, 'summary': True}\n", + "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", + "settings_file.set_source_space('box', bounds)\n", + "\n", + "# Export to \"settings.xml\"\n", + "settings_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are finally ready to make use of the `openmc.mgxs` module to generate multi-group cross sections! First, let's define a \"fine\" 8-group and \"coarse\" 2-group structures using the built-in `EnergyGroups` class." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a \"fine\" 8-group EneryGroups object\n", + "fine_groups = mgxs.EnergyGroups()\n", + "fine_groups.group_edges = np.array([0., 0.058e-6, 0.14e-6, 0.28e-6,\n", + " 0.625e-6, 4.e-6, 5.53e-3, 821.e-3, 20.])\n", + "\n", + "# Instantiate a \"coarse\" 2-group EneryGroups object\n", + "coarse_groups = mgxs.EnergyGroups()\n", + "coarse_groups.group_edges = np.array([0., 0.625e-6, 20.])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use the fine and coarse `EnergyGroups` objects, along with our previously created materials and geometry, to instantiate some `MultiGroupXS` objects from the `openmc.mgxs` module. In particular, the following are subclasses of generic and abstract `MultiGroupXS` class:\n", + "\n", + "* `TotalXS`\n", + "* `TransportXS`\n", + "* `AbsorptionXS`\n", + "* `CaptureXS`\n", + "* `FissionXS`\n", + "* `NuFissionXS`\n", + "* `ScatterXS`\n", + "* `NuScatterXS`\n", + "* `ScatterMatrixXS`\n", + "* `NuScatterMatrixXS`\n", + "* `Chi`\n", + "\n", + "These classes provide us with an interface to generate the tally inputs as well as perform post-processing of OpenMC's tally data to compute the respective multi-group cross sections. 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 total, nu-fission, nu-scatter and chi cross sections for our infinite medium cell as the domain and our fine 8-group structure as our energy groups." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate cross sections needed for an OpenMOC simulation\n", + "transport = mgxs.TransportXS(domain=cell, domain_type='cell', groups=fine_groups)\n", + "nufission = mgxs.NuFissionXS(domain=cell, domain_type='cell', groups=fine_groups)\n", + "nuscatter = mgxs.NuScatterMatrixXS(domain=cell, domain_type='cell', groups=fine_groups)\n", + "chi = mgxs.Chi(domain=cell, domain_type='cell', groups=fine_groups)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we must instruct our multi-group cross section objects to generate the tallies needed to calculate each of them in OpenMC. This can be done with the `MultiGroupXS.create_tallies()` routine." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instruct each multi-group cross section to generate tallies\n", + "transport.create_tallies()\n", + "nufission.create_tallies()\n", + "nuscatter.create_tallies()\n", + "chi.create_tallies()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each multi-group cross section object stores its tallies in a Python dictionary called `tallies`. We can inspect the tallies in the dictionary for our `NuFission` object as follows. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'flux': Tally\n", + " \tID =\t10003\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 5.80000000e-08 1.40000000e-07 2.80000000e-07\n", + " 6.25000000e-07 4.00000000e-06 5.53000000e-03 8.21000000e-01\n", + " 2.00000000e+01]\n", + " \tNuclides =\ttotal \n", + " \tScores =\t['flux']\n", + " \tEstimator =\ttracklength, 'nu-fission': Tally\n", + " \tID =\t10004\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 5.80000000e-08 1.40000000e-07 2.80000000e-07\n", + " 6.25000000e-07 4.00000000e-06 5.53000000e-03 8.21000000e-01\n", + " 2.00000000e+01]\n", + " \tNuclides =\ttotal \n", + " \tScores =\t['nu-fission']\n", + " \tEstimator =\ttracklength}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nufission.tallies" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `NuFission` object includes tracklength tallies for the 'nu-fission' and 'flux' scores in the 8-group structure in cell 1. Now that each multi-group cross section 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." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate an empty TalliesFile\n", + "tallies_file = openmc.TalliesFile()\n", + "\n", + "# Add transport tallies to the tallies file\n", + "for tally in transport.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# Add nu-fission tallies to the tallies file\n", + "for tally in nufission.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# Add nu-scatter tallies to the tallies file\n", + "for tally in nuscatter.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# Add chi tallies to the tallies file \n", + "for tally in chi.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + " \n", + "# Export to \"tallies.xml\"\n", + "tallies_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we a have a complete set of inputs, so we can go ahead and run our simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "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.0\n", + " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", + " Date/Time: 2015-10-03 12:30:47\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: 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: 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.14249 \n", + " 2/1 1.18016 \n", + " 3/1 1.16083 \n", + " 4/1 1.09124 \n", + " 5/1 1.15214 \n", + " 6/1 1.13453 \n", + " 7/1 1.15552 \n", + " 8/1 1.18149 \n", + " 9/1 1.10404 \n", + " 10/1 1.15703 \n", + " 11/1 1.21224 \n", + " 12/1 1.14147 1.17686 +/- 0.03538\n", + " 13/1 1.12601 1.15991 +/- 0.02655\n", + " 14/1 1.11972 1.14986 +/- 0.02129\n", + " 15/1 1.15683 1.15125 +/- 0.01655\n", + " 16/1 1.15236 1.15144 +/- 0.01351\n", + " 17/1 1.17833 1.15528 +/- 0.01205\n", + " 18/1 1.13229 1.15241 +/- 0.01082\n", + " 19/1 1.22394 1.16035 +/- 0.01242\n", + " 20/1 1.15867 1.16019 +/- 0.01111\n", + " 21/1 1.13611 1.15800 +/- 0.01029\n", + " 22/1 1.14101 1.15658 +/- 0.00950\n", + " 23/1 1.20864 1.16059 +/- 0.00961\n", + " 24/1 1.13475 1.15874 +/- 0.00909\n", + " 25/1 1.10697 1.15529 +/- 0.00914\n", + " 26/1 1.20824 1.15860 +/- 0.00916\n", + " 27/1 1.16775 1.15914 +/- 0.00863\n", + " 28/1 1.15904 1.15913 +/- 0.00813\n", + " 29/1 1.16967 1.15969 +/- 0.00771\n", + " 30/1 1.12574 1.15799 +/- 0.00751\n", + " 31/1 1.16177 1.15817 +/- 0.00715\n", + " 32/1 1.18082 1.15920 +/- 0.00689\n", + " 33/1 1.19549 1.16078 +/- 0.00677\n", + " 34/1 1.18508 1.16179 +/- 0.00656\n", + " 35/1 1.17697 1.16240 +/- 0.00632\n", + " 36/1 1.16342 1.16244 +/- 0.00607\n", + " 37/1 1.17400 1.16286 +/- 0.00586\n", + " 38/1 1.19281 1.16393 +/- 0.00575\n", + " 39/1 1.15669 1.16368 +/- 0.00555\n", + " 40/1 1.17987 1.16422 +/- 0.00539\n", + " 41/1 1.14129 1.16348 +/- 0.00527\n", + " 42/1 1.18323 1.16410 +/- 0.00514\n", + " 43/1 1.13885 1.16334 +/- 0.00504\n", + " 44/1 1.17943 1.16381 +/- 0.00491\n", + " 45/1 1.20014 1.16485 +/- 0.00488\n", + " 46/1 1.16056 1.16473 +/- 0.00474\n", + " 47/1 1.20077 1.16570 +/- 0.00471\n", + " 48/1 1.15469 1.16541 +/- 0.00460\n", + " 49/1 1.18862 1.16601 +/- 0.00452\n", + " 50/1 1.18755 1.16655 +/- 0.00444\n", + " Creating state point statepoint.50.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 3.8800E-01 seconds\n", + " Reading cross sections = 8.8000E-02 seconds\n", + " Total time in simulation = 1.4079E+01 seconds\n", + " Time in transport only = 1.4061E+01 seconds\n", + " Time in inactive batches = 2.0330E+00 seconds\n", + " Time in active batches = 1.2046E+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 = 0.0000E+00 seconds\n", + " Total time for finalization = 3.0000E-03 seconds\n", + " Total time elapsed = 1.4478E+01 seconds\n", + " Calculation Rate (inactive) = 12297.1 neutrons/second\n", + " Calculation Rate (active) = 8301.51 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.16600 +/- 0.00432\n", + " k-effective (Track-length) = 1.16655 +/- 0.00444\n", + " k-effective (Absorption) = 1.16281 +/- 0.00314\n", + " Combined k-effective = 1.16367 +/- 0.00307\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Run OpenMC!\n", + "executor = openmc.Executor()\n", + "executor.run_simulation()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tally Data Processing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our simulation ran successfully and created a statepoint file with all the tally data in it. We begin our analysis here loading the statepoint file and 'reading' the results. By default, data from the statepoint file is only read into memory when it is requested. This helps keep the memory use to a minimum even when a statepoint file may be huge." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the last statepoint file\n", + "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 which 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)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The statepoint is now ready to be analyzed by our multi-group cross sections. The first step is to load the tallies from the statepoint into each object." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the tallies from the statepoint into each MultiGroupXS object\n", + "transport.load_from_statepoint(sp)\n", + "nufission.load_from_statepoint(sp)\n", + "nuscatter.load_from_statepoint(sp)\n", + "chi.load_from_statepoint(sp)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The multi-group cross section objects can now use OpenMC's [tally arithmetic](http://mit-crpg.github.io/openmc/pythonapi/examples/pandas-dataframes.html) to compute cross sections from the tally data." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python2.7/dist-packages/openmc-0.7.0-py2.7.egg/openmc/tallies.py:1485: RuntimeWarning: invalid value encountered in divide\n" + ] + } + ], + "source": [ + "transport.compute_xs()\n", + "nufission.compute_xs()\n", + "nuscatter.compute_xs()\n", + "chi.compute_xs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Voila! Our multi-group cross sections are now ready to rock 'n roll!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cross Section Data Visualization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's first inspect our fission production cross section by printing it to the screen." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "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 =\t1\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t1.11e-02 +/- 5.93e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t6.60e-04 +/- 3.04e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t9.00e-03 +/- 4.10e-01%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t1.44e-02 +/- 6.58e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t4.72e-02 +/- 9.80e-01%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t7.29e-02 +/- 8.59e-01%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t1.11e-01 +/- 7.92e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t2.39e-01 +/- 6.90e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "nufission.print_xs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the `openmc.mgxs` module uses tally arithmetic under-the-hood, the cross section is stored as a \"derived\" tally. This means that it can be queried and manipulated using all of the same method supported for the `Tally` class in the OpenMC Python API. For example, we can construct a Pandas DataFrame of the multi-group cross section data." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "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", + "
cellgroup ingroup outnuclidemeanstd. dev.
63111total0.0774600.000890
62112total0.0872760.000331
61113total0.0004500.000026
60114total0.0000000.000000
59115total0.0000000.000000
58116total0.0000000.000000
57117total0.0000000.000000
56118total0.0000000.000000
55121total0.0000000.000000
54122total0.2666510.001340
\n", + "
" + ], + "text/plain": [ + " cell group in group out nuclide mean std. dev.\n", + "63 1 1 1 total 0.077460 0.000890\n", + "62 1 1 2 total 0.087276 0.000331\n", + "61 1 1 3 total 0.000450 0.000026\n", + "60 1 1 4 total 0.000000 0.000000\n", + "59 1 1 5 total 0.000000 0.000000\n", + "58 1 1 6 total 0.000000 0.000000\n", + "57 1 1 7 total 0.000000 0.000000\n", + "56 1 1 8 total 0.000000 0.000000\n", + "55 1 2 1 total 0.000000 0.000000\n", + "54 1 2 2 total 0.266651 0.001340" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = nuscatter.get_pandas_dataframe()\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each multi-group cross section object can be easily exported to a variety of file formats, including CSV, Excel, and LaTeX for storage or data processing." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "transport.export_xs_data(filename='transport-xs', format='excel')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following code snippet shows how to export all of four cross sections to the same HDF5 binary data store." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "transport.build_hdf5_store(filename='mgxs', append=True)\n", + "nufission.build_hdf5_store(filename='mgxs', append=True)\n", + "nuscatter.build_hdf5_store(filename='mgxs', append=True)\n", + "chi.build_hdf5_store(filename='mgxs', append=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Verification with OpenMOC" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Of course it is always a good idea to verify that one's cross sections are accurate. We can easily do so here with the deterministic transport code OpenMOC. First, we will use OpenCG to reconstruct our OpenMC geometry from the summary file into a equivalent OpenMOC geometry." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "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", + "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 OpenMOC and the OpenMOC/OpenCG compatibility module\n", + "import openmoc\n", + "from openmoc.compatible import get_openmoc_geometry\n", + "\n", + "# Create an OpenCG Geometry from the OpenMC Geometry stored in the summary\n", + "su.make_opencg_geometry()\n", + "\n", + "# Create an OpenMOC Geometry from the OpenCG Geometry\n", + "openmoc_geometry = get_openmoc_geometry(su.opencg_geometry)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can inject the multi-group cross sections into the equivalent infinite homogeneous medium OpenMOC geometry." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Get all OpenMOC cells in the gometry\n", + "openmoc_cells = openmoc_geometry.getRootUniverse().getAllCells()\n", + "\n", + "# Inject multi-group cross sections into OpenMOC Materials\n", + "for cell_id, cell in openmoc_cells.items():\n", + " \n", + " # Get a reference to the Material filling this Cell\n", + " openmoc_material = cell.getFillMaterial()\n", + " \n", + " # Set the number of energy groups for the Material\n", + " openmoc_material.setNumEnergyGroups(fine_groups.num_groups)\n", + " \n", + " # Inject NumPy arrays of cross section data into the Material\n", + " openmoc_material.setSigmaT(transport.get_xs().flatten())\n", + " openmoc_material.setNuSigmaF(nufission.get_xs().flatten())\n", + " openmoc_material.setSigmaS(nuscatter.get_xs().flatten())\n", + " openmoc_material.setChi(chi.get_xs().flatten())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now ready to run OpenMOC to verify our cross-sections from OpenMC." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ NORMAL ] Ray tracing for track segmentation...\n", + "[ NORMAL ] Dumping tracks to file...\n", + "[ NORMAL ] Computing the eigenvalue...\n", + "[ NORMAL ] Iteration 0:\tk_eff = 0.685180\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.785704\tres = 3.148E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.750352\tres = 1.467E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.729115\tres = 4.499E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.696059\tres = 2.830E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.663970\tres = 4.534E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.633141\tres = 4.610E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.605167\tres = 4.643E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.580592\tres = 4.418E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.559758\tres = 4.061E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.542846\tres = 3.588E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.529901\tres = 3.021E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.520893\tres = 2.385E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.515699\tres = 1.700E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.514152\tres = 9.971E-03\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.516033\tres = 2.999E-03\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.521086\tres = 3.657E-03\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.529034\tres = 9.792E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.539585\tres = 1.525E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.552436\tres = 1.994E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.567286\tres = 2.382E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.583843\tres = 2.688E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.601819\tres = 2.918E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.620946\tres = 3.079E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.640969\tres = 3.178E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.661654\tres = 3.225E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.682785\tres = 3.227E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.704168\tres = 3.194E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.725628\tres = 3.132E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.747011\tres = 3.048E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.768182\tres = 2.947E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.789024\tres = 2.834E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.809439\tres = 2.713E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.829342\tres = 2.587E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.848666\tres = 2.459E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.867356\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.885370\tres = 2.202E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.902676\tres = 2.077E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.919253\tres = 1.955E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.935087\tres = 1.836E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.950174\tres = 1.723E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.964514\tres = 1.613E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.978114\tres = 1.509E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.990987\tres = 1.410E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 1.003145\tres = 1.316E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 1.014610\tres = 1.227E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 1.025401\tres = 1.143E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 1.035542\tres = 1.064E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 1.045058\tres = 9.890E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 1.053973\tres = 9.189E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.062316\tres = 8.531E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.070112\tres = 7.915E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.077389\tres = 7.339E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.084173\tres = 6.800E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.090490\tres = 6.297E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.096368\tres = 5.827E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.101830\tres = 5.390E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.106902\tres = 4.982E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.111608\tres = 4.603E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.115969\tres = 4.251E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.120009\tres = 3.924E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.123747\tres = 3.620E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.127204\tres = 3.338E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.130399\tres = 3.076E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.133349\tres = 2.834E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.136072\tres = 2.610E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.138584\tres = 2.403E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.140899\tres = 2.211E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.143032\tres = 2.033E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.144996\tres = 1.869E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.146803\tres = 1.718E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.148466\tres = 1.579E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.149995\tres = 1.450E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.151399\tres = 1.331E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.152690\tres = 1.222E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.153875\tres = 1.121E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.154963\tres = 1.028E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.155961\tres = 9.428E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.156876\tres = 8.642E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.157716\tres = 7.920E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.158485\tres = 7.256E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.159190\tres = 6.646E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.159836\tres = 6.085E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.160427\tres = 5.571E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.160969\tres = 5.098E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.161464\tres = 4.665E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.161917\tres = 4.268E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.162332\tres = 3.903E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.162711\tres = 3.570E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.163058\tres = 3.264E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.163375\tres = 2.982E-04\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.163664\tres = 2.725E-04\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.163929\tres = 2.490E-04\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.164171\tres = 2.275E-04\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.164392\tres = 2.077E-04\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.164593\tres = 1.897E-04\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.164777\tres = 1.733E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.164946\tres = 1.581E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.165099\tres = 1.444E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.165239\tres = 1.317E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.165367\tres = 1.202E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.165483\tres = 1.096E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.165590\tres = 1.000E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.165687\tres = 9.126E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.165775\tres = 8.326E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.165856\tres = 7.590E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.165929\tres = 6.924E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.165996\tres = 6.304E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.166057\tres = 5.745E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.166113\tres = 5.243E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.166164\tres = 4.776E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.166210\tres = 4.355E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.166252\tres = 3.962E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.166291\tres = 3.624E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.166326\tres = 3.295E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.166358\tres = 3.003E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.166387\tres = 2.737E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.166413\tres = 2.486E-05\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.166437\tres = 2.267E-05\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.166459\tres = 2.061E-05\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.166479\tres = 1.883E-05\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.166497\tres = 1.711E-05\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.166514\tres = 1.563E-05\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.166529\tres = 1.418E-05\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.166543\tres = 1.300E-05\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.166555\tres = 1.176E-05\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.166567\tres = 1.074E-05\n" + ] + } + ], + "source": [ + "# Generate tracks for OpenMOC\n", + "openmoc_geometry.initializeFlatSourceRegions()\n", + "track_generator = openmoc.TrackGenerator(openmoc_geometry, 128, 0.1)\n", + "track_generator.generateTracks()\n", + "\n", + "# Run OpenMOC\n", + "solver = openmoc.CPUSolver(track_generator)\n", + "solver.computeEigenvalue()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We report the eigenvalues computed by OpenMC and OpenMOC here together to summarize our results." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.163673\n", + "openmoc keff = 1.166567\n", + "bias [pcm]: 289.4\n" + ] + } + ], + "source": [ + "# Print report of keff and bias with OpenMC\n", + "openmoc_keff = solver.getKeff()\n", + "openmc_keff = sp.k_combined[0]\n", + "bias = (openmoc_keff - openmc_keff) * 1e5\n", + "\n", + "print('openmc keff = {0:1.6f}'.format(openmc_keff))\n", + "print('openmoc keff = {0:1.6f}'.format(openmoc_keff))\n", + "print('bias [pcm]: {0:1.1f}'.format(bias))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although there is a non-trivial bias, one can easily run the preceding code with more particle histories to show that both codes converge to the same eigenvalue with <10 pcm bias. It should be noted that this discrepancy is due to use of tracklength tallies for `NuFission`, while one must use more slowly converging analog tallies for `TransportXS`, `NuScatterMatrixXS` and `Chi` (which require an 'energyout' filter)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fuel Pin Cell" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this section we show how to compute multi-group cross sections for a fuel pin cell. In addition, we will illustrate how to use some of the more advanced features in `openmc.mgxs` such as nuclide-by-nuclide microscopic cross section tallies and downstream energy group condensation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generate Inputs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "this time we separate our nuclides into three distinct materials for water, clad and fuel." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "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", + "\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 materials, we can now create a materials file object that can be exported to an actual XML file." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a MaterialsFile, add Materials\n", + "materials_file = openmc.MaterialsFile()\n", + "materials_file.add_material(fuel)\n", + "materials_file.add_material(water)\n", + "materials_file.add_material(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. Our problem will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces -- in this case two cylinders and six reflective planes." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "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", + "# Use both reflective and vacuum boundaries to make life interesting\n", + "min_x = openmc.XPlane(x0=-0.63, boundary_type='reflective')\n", + "max_x = openmc.XPlane(x0=+0.63, boundary_type='reflective')\n", + "min_y = openmc.YPlane(y0=-0.63, boundary_type='reflective')\n", + "max_y = openmc.YPlane(y0=+0.63, boundary_type='reflective')\n", + "min_z = openmc.ZPlane(z0=-0.63, boundary_type='reflective')\n", + "max_z = openmc.ZPlane(z0=+0.63, boundary_type='reflective')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the surfaces defined, we can now create cells that are defined by intersections of half-spaces created by the surfaces." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create a Universe to encapsulate a fuel pin\n", + "pin_cell_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.add_surface(fuel_outer_radius, halfspace=-1)\n", + "pin_cell_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.add_surface(fuel_outer_radius, halfspace=+1)\n", + "clad_cell.add_surface(clad_outer_radius, halfspace=-1)\n", + "pin_cell_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.add_surface(clad_outer_radius, halfspace=+1)\n", + "pin_cell_universe.add_cell(moderator_cell)" + ] + }, + { + "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": 32, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create root Cell\n", + "root_cell = openmc.Cell(name='root cell')\n", + "root_cell.fill = pin_cell_universe\n", + "\n", + "# Add boundary planes\n", + "root_cell.add_surface(min_x, halfspace=+1)\n", + "root_cell.add_surface(max_x, halfspace=-1)\n", + "root_cell.add_surface(min_y, halfspace=+1)\n", + "root_cell.add_surface(max_y, halfspace=-1)\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, put the geometry into a geometry file, and export it to XML." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create Geometry and set root Universe\n", + "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()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will reuse our settings from the previous simulation. Now, we let's create transport, nu-fission, nu-scatter and chi multi-group cross sections for each cell." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Extract all Cells filled by Materials\n", + "openmc_cells = openmc_geometry.get_all_material_cells()\n", + "\n", + "# Create dictionary to store multi-group cross sections for all cells\n", + "xs_library = {}\n", + "\n", + "# Instantiate 8-group cross sections for each cell\n", + "for cell in openmc_cells:\n", + " xs_library[cell.id] = {}\n", + " xs_library[cell.id]['transport'] = mgxs.TransportXS(groups=fine_groups)\n", + " xs_library[cell.id]['nu-fission'] = mgxs.NuFissionXS(groups=fine_groups)\n", + " xs_library[cell.id]['nu-scatter'] = mgxs.NuScatterMatrixXS(groups=fine_groups)\n", + " xs_library[cell.id]['chi'] = mgxs.Chi(groups=fine_groups)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case, we did not give our cross sections a spatial domain in their constructors. Instead, we will loop over all cells to set each cross sections domain. In addition, we will set each cross section to tally cross sections on a per-nuclide basis through the use of the `by_nuclide` instance attribute. " + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate an empty TalliesFile\n", + "tallies_file = openmc.TalliesFile()\n", + "\n", + "# Iterate over all cells and cross section types\n", + "for cell in openmc_cells:\n", + " for rxn_type in xs_library[cell.id].keys():\n", + "\n", + " # Set the cross sections domain type 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 (e.g., micro cross sections)\n", + " xs_library[cell.id][rxn_type].by_nuclide = True\n", + " \n", + " # Create OpenMC tallies for this cross section\n", + " xs_library[cell.id][rxn_type].create_tallies()\n", + " \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", + "\n", + "# Export to \"tallies.xml\"\n", + "tallies_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we a have a complete set of inputs, so we can go ahead and run our simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "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.0\n", + " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", + " Date/Time: 2015-10-03 12:31: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: 92238.71c\n", + " Loading ACE cross section table: 8016.71c\n", + " Loading ACE cross section table: 92235.71c\n", + " Loading ACE cross section table: 1001.71c\n", + " Loading ACE cross section table: 40090.71c\n", + " Initializing source particles...\n", + "\n", + " ===========================================================================\n", + " ====================> K EIGENVALUE SIMULATION <====================\n", + " ===========================================================================\n", + "\n", + " Bat./Gen. k Average k \n", + " ========= ======== ==================== \n", + " 1/1 1.23064 \n", + " 2/1 1.18217 \n", + " 3/1 1.20248 \n", + " 4/1 1.20841 \n", + " 5/1 1.25078 \n", + " 6/1 1.26156 \n", + " 7/1 1.18239 \n", + " 8/1 1.24391 \n", + " 9/1 1.22294 \n", + " 10/1 1.20654 \n", + " 11/1 1.24695 \n", + " 12/1 1.26717 1.25706 +/- 0.01011\n", + " 13/1 1.26830 1.26080 +/- 0.00693\n", + " 14/1 1.25206 1.25862 +/- 0.00537\n", + " 15/1 1.23449 1.25379 +/- 0.00637\n", + " 16/1 1.13532 1.23405 +/- 0.02042\n", + " 17/1 1.25230 1.23666 +/- 0.01745\n", + " 18/1 1.17655 1.22914 +/- 0.01688\n", + " 19/1 1.26829 1.23349 +/- 0.01551\n", + " 20/1 1.26274 1.23642 +/- 0.01418\n", + " 21/1 1.19211 1.23239 +/- 0.01344\n", + " 22/1 1.23183 1.23234 +/- 0.01227\n", + " 23/1 1.22292 1.23162 +/- 0.01131\n", + " 24/1 1.21154 1.23018 +/- 0.01057\n", + " 25/1 1.21882 1.22943 +/- 0.00987\n", + " 26/1 1.22321 1.22904 +/- 0.00924\n", + " 27/1 1.20043 1.22736 +/- 0.00884\n", + " 28/1 1.20998 1.22639 +/- 0.00839\n", + " 29/1 1.26327 1.22833 +/- 0.00817\n", + " 30/1 1.26615 1.23022 +/- 0.00798\n", + " 31/1 1.21810 1.22964 +/- 0.00761\n", + " 32/1 1.23946 1.23009 +/- 0.00727\n", + " 33/1 1.25718 1.23127 +/- 0.00705\n", + " 34/1 1.21614 1.23064 +/- 0.00678\n", + " 35/1 1.23962 1.23100 +/- 0.00651\n", + " 36/1 1.24640 1.23159 +/- 0.00628\n", + " 37/1 1.24546 1.23210 +/- 0.00607\n", + " 38/1 1.21329 1.23143 +/- 0.00588\n", + " 39/1 1.24137 1.23177 +/- 0.00569\n", + " 40/1 1.27335 1.23316 +/- 0.00567\n", + " 41/1 1.24768 1.23363 +/- 0.00550\n", + " 42/1 1.19014 1.23227 +/- 0.00550\n", + " 43/1 1.24273 1.23259 +/- 0.00534\n", + " 44/1 1.20201 1.23169 +/- 0.00526\n", + " 45/1 1.24084 1.23195 +/- 0.00511\n", + " 46/1 1.25992 1.23273 +/- 0.00503\n", + " 47/1 1.19931 1.23182 +/- 0.00497\n", + " 48/1 1.24106 1.23207 +/- 0.00484\n", + " 49/1 1.28278 1.23337 +/- 0.00489\n", + " 50/1 1.26711 1.23421 +/- 0.00484\n", + " Creating state point statepoint.50.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 4.1100E-01 seconds\n", + " Reading cross sections = 1.1100E-01 seconds\n", + " Total time in simulation = 3.4700E+01 seconds\n", + " Time in transport only = 3.4683E+01 seconds\n", + " Time in inactive batches = 3.7780E+00 seconds\n", + " Time in active batches = 3.0922E+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", + " Total time for finalization = 9.0000E-03 seconds\n", + " Total time elapsed = 3.5131E+01 seconds\n", + " Calculation Rate (inactive) = 6617.26 neutrons/second\n", + " Calculation Rate (active) = 3233.94 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.23174 +/- 0.00461\n", + " k-effective (Track-length) = 1.23421 +/- 0.00484\n", + " k-effective (Absorption) = 1.23034 +/- 0.00239\n", + " Combined k-effective = 1.23109 +/- 0.00215\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Delete old HDF5 files\n", + "!rm *.h5\n", + "\n", + "# Run OpenMC!\n", + "executor = openmc.Executor()\n", + "executor.run_simulation()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tally Data Processing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our simulation ran successfully and created a statepoint file with all the tally data in it. As before, we begin our analysis here loading the statepoint file." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the last statepoint and summary files\n", + "sp = openmc.StatePoint('statepoint.50.h5')\n", + "su = openmc.Summary('summary.h5')\n", + "sp.link_with_summary(su)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The statepoint is now ready to be analyzed by our multi-group cross sections. Next, we load the tallies from the statepoint into each object and to compute the cross sections using tally arithmetic." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Iterate over all cells and cross section types\n", + "for cell in openmc_cells:\n", + " for rxn_type in xs_library[cell.id].keys():\n", + " xs_library[cell.id][rxn_type].load_from_statepoint(sp)\n", + " xs_library[cell.id][rxn_type].compute_xs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's it! Our multi-group cross sections are now ready for the big spotlight. This time we have cross sections in three distinct spatial zones - fuel, clad and moderator - on a per-nuclide basis." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cross Section Data Visualization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's first inspect one of our cross sections by printing it to the screen as a microscopic cross section in units of barns." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "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 +/- 6.20e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t3.96e+00 +/- 3.40e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t5.51e+01 +/- 5.07e-01%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t8.79e+01 +/- 7.27e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t2.90e+02 +/- 1.13e+00%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t4.49e+02 +/- 1.11e+00%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t6.88e+02 +/- 9.03e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t1.44e+03 +/- 6.88e-01%\n", + "\n", + "\tNuclide =\tU-238\n", + "\tCross Sections [barns]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t1.07e+00 +/- 6.51e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t1.22e-03 +/- 6.61e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t6.15e-04 +/- 9.95e+00%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t6.53e-06 +/- 6.29e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.07e-05 +/- 1.08e+00%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.55e-05 +/- 1.11e+00%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.30e-05 +/- 9.03e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t4.25e-05 +/- 6.86e-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'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our multi-group cross sections are capable of summing across all nuclides to provide us with macroscopic cross sections as well." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "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.54e-02 +/- 6.20e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t1.51e-03 +/- 3.34e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t2.07e-02 +/- 5.07e-01%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t3.30e-02 +/- 7.26e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.09e-01 +/- 1.13e+00%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.69e-01 +/- 1.11e+00%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.58e-01 +/- 9.03e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t5.41e-01 +/- 6.88e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "nufission = xs_library[fuel_cell.id]['nu-fission']\n", + "nufission.print_xs(xs_type='macro', nuclides='sum')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although a printed report is nice, it is not scalable or flexible. Let's extract the cross section data for the moderator as a Pandas DataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "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", + "
cellgroup ingroup outnuclidemeanstd. dev.
1261000211O-161.5704670.018506
1271000211H-10.2356740.009063
1241000212O-160.2883330.003932
1251000212H-11.5812950.008248
1221000213O-160.0000000.000000
1231000213H-10.0108280.000616
1201000214O-160.0000000.000000
1211000214H-10.0000000.000000
1181000215O-160.0000000.000000
1191000215H-10.0000000.000000
\n", + "
" + ], + "text/plain": [ + " cell group in group out nuclide mean std. dev.\n", + "126 10002 1 1 O-16 1.570467 0.018506\n", + "127 10002 1 1 H-1 0.235674 0.009063\n", + "124 10002 1 2 O-16 0.288333 0.003932\n", + "125 10002 1 2 H-1 1.581295 0.008248\n", + "122 10002 1 3 O-16 0.000000 0.000000\n", + "123 10002 1 3 H-1 0.010828 0.000616\n", + "120 10002 1 4 O-16 0.000000 0.000000\n", + "121 10002 1 4 H-1 0.000000 0.000000\n", + "118 10002 1 5 O-16 0.000000 0.000000\n", + "119 10002 1 5 H-1 0.000000 0.000000" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nuscatter = xs_library[moderator_cell.id]['nu-scatter']\n", + "df = nuscatter.get_pandas_dataframe(xs_type='micro')\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can easily use the Pandas DataFrame to extract the H-1 and O-16 scattering matrices separately." + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Slice DataFrame in two for each nuclide's mean values\n", + "h1 = df[df['nuclide'] == 'H-1']['mean']\n", + "o16 = df[df['nuclide'] == 'O-16']['mean']\n", + "\n", + "# Cast DataFrames as NumPy arrays\n", + "h1 = h1.as_matrix()\n", + "o16 = o16.as_matrix()\n", + "\n", + "# Reshape arrays to 2D matrix for plotting\n", + "h1.shape = (fine_groups.num_groups, fine_groups.num_groups)\n", + "o16.shape = (fine_groups.num_groups, fine_groups.num_groups)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Matplotlib's `imshow` routine can be used to plot the matrices to illustrate their sparsity structures." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create plot of the H-1 scattering matrix\n", + "fig = plt.subplot(121)\n", + "fig.imshow(h1, interpolation='nearest')\n", + "plt.title('H-1 Scattering Matrix')\n", + "\n", + "# Create plot of the O-16 scattering matrix\n", + "fig2 = plt.subplot(122)\n", + "fig2.imshow(o16, interpolation='nearest')\n", + "plt.title('O-16 Scattering Matrix')\n", + "\n", + "# Show the plot on screen\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we illustate how one can easily take multi-group cross sections and condense them down to a coarser energy group structure using. The `get_condensed_xs(...)` class method takes in as a parameter an `EnergyGroups` object with a coarse(r) group structure and returns a new multi-group cross section condensed to the coarse groups. We illustrate this process below using the 2-group structure created earlier." + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Extract the 16-group transport cross section for the fuel\n", + "fine_xs = xs_library[fuel_cell.id]['transport']\n", + "\n", + "# Condense to the 2-group structure\n", + "condense_xs = fine_xs.get_condensed_xs(coarse_groups)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Group condensation is as simple as that! We now have a new coarse 2-group cross section in addition to our original 16-group cross section. Let's inspect the 2-group cross section by printing it to the screen and extracting a Pandas DataFrame as we have already learned how to do." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "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-238\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t2.16e-01 +/- 3.77e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t2.54e-01 +/- 6.46e-01%\n", + "\n", + "\tNuclide =\tO-16\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t1.45e-01 +/- 4.03e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.75e-01 +/- 7.83e-01%\n", + "\n", + "\tNuclide =\tU-235\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t7.72e-03 +/- 1.13e+00%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.82e-01 +/- 5.18e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "condense_xs.print_xs()" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "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", + "
cellgroup innuclidemeanstd. dev.
3100001U-2389.5669470.036112
4100001O-163.1467800.012666
5100001U-23520.5912530.232675
0100002U-23811.2049120.072348
1100002O-163.7984070.029742
2100002U-235484.5296842.510940
\n", + "
" + ], + "text/plain": [ + " cell group in nuclide mean std. dev.\n", + "3 10000 1 U-238 9.566947 0.036112\n", + "4 10000 1 O-16 3.146780 0.012666\n", + "5 10000 1 U-235 20.591253 0.232675\n", + "0 10000 2 U-238 11.204912 0.072348\n", + "1 10000 2 O-16 3.798407 0.029742\n", + "2 10000 2 U-235 484.529684 2.510940" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = condense_xs.get_pandas_dataframe(xs_type='micro')\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Verification with OpenMOC" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let's verify our cross sections using OpenMOC. First, we use OpenCG construct an equivalent OpenMOC geometry just as we did before." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create an OpenCG Geometry from the OpenMC Geometry stored in the summary\n", + "su.make_opencg_geometry()\n", + "\n", + "# Create an OpenMOC Geometry from the OpenCG Geometry\n", + "openmoc_geometry = get_openmoc_geometry(su.opencg_geometry)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Likewise, we can inject the multi-group cross sections into the equivalent fuel pin cell OpenMOC geometry." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get all OpenMOC cells in the gometry\n", + "openmoc_cells = openmoc_geometry.getRootUniverse().getAllCells()\n", + "\n", + "# Inject multi-group cross sections into OpenMOC Materials\n", + "# NOTE: This code will work for 1, 10, or 1,000s of cells\n", + "# as is the case for a complicated geometry like BEAVRS\n", + "for cell_id, cell in openmoc_cells.items():\n", + " \n", + " # Ignore the root cell\n", + " if cell.getName() == 'root cell':\n", + " continue\n", + " \n", + " # Get a reference to the Material filling this Cell\n", + " openmoc_material = cell.getFillMaterial()\n", + " \n", + " # Set the number of energy groups for the Material\n", + " openmoc_material.setNumEnergyGroups(fine_groups.num_groups)\n", + " \n", + " # Extract the appropriate cross section objects for this cell\n", + " transport = xs_library[cell_id]['transport']\n", + " nufission = xs_library[cell_id]['nu-fission']\n", + " nuscatter = xs_library[cell_id]['nu-scatter']\n", + " chi = xs_library[cell_id]['chi']\n", + " \n", + " # Inject NumPy arrays of cross section data into the Material\n", + " # NOTE: In each case we must sum across nuclides to get the\n", + " # macroscopic cross sections needed by OpenMOC\n", + " openmoc_material.setSigmaT(transport.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setNuSigmaF(nufission.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setSigmaS(nuscatter.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setChi(chi.get_xs(nuclides='sum').flatten())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now ready to run OpenMOC to verify our cross-sections from OpenMC." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ NORMAL ] Ray tracing for track segmentation...\n", + "[ NORMAL ] Dumping tracks to file...\n", + "[ NORMAL ] Computing the eigenvalue...\n", + "[ NORMAL ] Iteration 0:\tk_eff = 0.574798\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.680220\tres = 4.252E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.661620\tres = 1.834E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.660063\tres = 2.734E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.644413\tres = 2.354E-03\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.627431\tres = 2.371E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.608477\tres = 2.635E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.589425\tres = 3.021E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.571080\tres = 3.131E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.553841\tres = 3.112E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.538232\tres = 3.019E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.524518\tres = 2.818E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.512887\tres = 2.548E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.503407\tres = 2.218E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.496149\tres = 1.848E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.491110\tres = 1.442E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.488262\tres = 1.016E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.487559\tres = 5.798E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.488929\tres = 1.441E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.492277\tres = 2.810E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.497495\tres = 6.848E-03\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.504468\tres = 1.060E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.513071\tres = 1.402E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.523171\tres = 1.705E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.534637\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.547332\tres = 2.192E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.561124\tres = 2.375E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.575881\tres = 2.520E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.591472\tres = 2.630E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.607776\tres = 2.707E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.624672\tres = 2.756E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.642047\tres = 2.780E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.659796\tres = 2.781E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.677818\tres = 2.764E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.696019\tres = 2.731E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.714314\tres = 2.685E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.732625\tres = 2.629E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.750879\tres = 2.563E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.769011\tres = 2.492E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.786963\tres = 2.415E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.804681\tres = 2.334E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.822119\tres = 2.251E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.839238\tres = 2.167E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.856002\tres = 2.082E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.872382\tres = 1.997E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.888351\tres = 1.913E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.903889\tres = 1.831E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.918979\tres = 1.749E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.933609\tres = 1.669E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.947768\tres = 1.592E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.961451\tres = 1.517E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.974653\tres = 1.444E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.987374\tres = 1.373E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.999614\tres = 1.305E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.011376\tres = 1.240E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.022667\tres = 1.177E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.033492\tres = 1.116E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.043858\tres = 1.058E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.053776\tres = 1.003E-02\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.063254\tres = 9.501E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.072304\tres = 8.994E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.080937\tres = 8.512E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.089165\tres = 8.051E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.097001\tres = 7.612E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.104457\tres = 7.194E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.111546\tres = 6.797E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.118282\tres = 6.419E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.124677\tres = 6.060E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.130743\tres = 5.719E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.136495\tres = 5.394E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.141946\tres = 5.087E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.147109\tres = 4.796E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.151994\tres = 4.520E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.156615\tres = 4.259E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.160984\tres = 4.011E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.165111\tres = 3.777E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.169010\tres = 3.555E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.172690\tres = 3.346E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.176162\tres = 3.148E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.179436\tres = 2.960E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.182522\tres = 2.784E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.185431\tres = 2.617E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.188170\tres = 2.460E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.190750\tres = 2.311E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.193177\tres = 2.171E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.195460\tres = 2.039E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.197609\tres = 1.914E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.199628\tres = 1.797E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.201525\tres = 1.685E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.203309\tres = 1.582E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.204983\tres = 1.484E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.206555\tres = 1.391E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.208032\tres = 1.305E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.209416\tres = 1.224E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.210716\tres = 1.146E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.211934\tres = 1.075E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.213078\tres = 1.006E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.214149\tres = 9.432E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.215152\tres = 8.828E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.216093\tres = 8.267E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.216974\tres = 7.742E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.217799\tres = 7.244E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.218572\tres = 6.782E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.219295\tres = 6.344E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.219972\tres = 5.932E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.220605\tres = 5.554E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.221198\tres = 5.190E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.221753\tres = 4.854E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.222271\tres = 4.540E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.222756\tres = 4.243E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.223210\tres = 3.967E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.223633\tres = 3.709E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.224029\tres = 3.461E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.224399\tres = 3.238E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.224746\tres = 3.022E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.225068\tres = 2.827E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.225369\tres = 2.633E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.225651\tres = 2.460E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.225914\tres = 2.299E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.226160\tres = 2.147E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.226390\tres = 2.007E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.226604\tres = 1.871E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.226803\tres = 1.741E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.226990\tres = 1.628E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.227164\tres = 1.522E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.227326\tres = 1.414E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.227478\tres = 1.322E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.227619\tres = 1.233E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.227751\tres = 1.150E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.227874\tres = 1.077E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.227988\tres = 1.001E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.228095\tres = 9.273E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.228195\tres = 8.720E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.228288\tres = 8.102E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.228374\tres = 7.574E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.228455\tres = 7.035E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.228530\tres = 6.542E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.228601\tres = 6.126E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.228666\tres = 5.717E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.228727\tres = 5.295E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.228783\tres = 4.953E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.228835\tres = 4.580E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.228885\tres = 4.264E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.228931\tres = 3.986E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.228973\tres = 3.729E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.229013\tres = 3.467E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.229051\tres = 3.219E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.229085\tres = 3.040E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.229118\tres = 2.835E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.229147\tres = 2.611E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.229174\tres = 2.401E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.229201\tres = 2.208E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.229225\tres = 2.135E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.229247\tres = 1.992E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.229268\tres = 1.797E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.229288\tres = 1.687E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.229306\tres = 1.559E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.229322\tres = 1.474E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.229338\tres = 1.351E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.229352\tres = 1.242E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.229366\tres = 1.182E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.229378\tres = 1.086E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.229390\tres = 1.005E-05\n" + ] + } + ], + "source": [ + "# Generate tracks for OpenMOC\n", + "openmoc_geometry.initializeFlatSourceRegions()\n", + "track_generator = openmoc.TrackGenerator(openmoc_geometry, 128, 0.1)\n", + "track_generator.generateTracks()\n", + "\n", + "# Run OpenMOC\n", + "solver = openmoc.CPUSolver(track_generator)\n", + "solver.computeEigenvalue()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We report the eigenvalues computed by OpenMC and OpenMOC here together to summarize our results." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.231090\n", + "openmoc keff = 1.229390\n", + "bias [pcm]: -170.1\n" + ] + } + ], + "source": [ + "# Print report of keff and bias with OpenMC\n", + "openmoc_keff = solver.getKeff()\n", + "openmc_keff = sp.k_combined[0]\n", + "bias = (openmoc_keff - openmc_keff) * 1e5\n", + "\n", + "print('openmc keff = {0:1.6f}'.format(openmc_keff))\n", + "print('openmoc keff = {0:1.6f}'.format(openmoc_keff))\n", + "print('bias [pcm]: {0:1.1f}'.format(bias))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As a sanity check, let's run a simulation with the coarse 2-group cross sections to ensure that they produce a reasonable result." + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "su.make_opencg_geometry()\n", + "openmoc_geometry = get_openmoc_geometry(su.opencg_geometry)\n", + "openmoc_cells = openmoc_geometry.getRootUniverse().getAllCells()\n", + "\n", + "# Inject multi-group cross sections into OpenMOC Materials\n", + "for cell_id, cell in openmoc_cells.items():\n", + " \n", + " # Ignore the root cell\n", + " if cell.getName() == 'root cell':\n", + " continue\n", + " \n", + " openmoc_material = cell.getFillMaterial()\n", + " openmoc_material.setNumEnergyGroups(coarse_groups.num_groups)\n", + " \n", + " # Extract the appropriate cross section objects for this cell\n", + " transport = xs_library[cell_id]['transport']\n", + " nufission = xs_library[cell_id]['nu-fission']\n", + " nuscatter = xs_library[cell_id]['nu-scatter']\n", + " chi = xs_library[cell_id]['chi']\n", + " \n", + " # Perform group condensation\n", + " transport = transport.get_condensed_xs(coarse_groups)\n", + " nufission = nufission.get_condensed_xs(coarse_groups)\n", + " nuscatter = nuscatter.get_condensed_xs(coarse_groups)\n", + " chi = chi.get_condensed_xs(coarse_groups)\n", + " \n", + " # Inject NumPy arrays of cross section data into the Material\n", + " openmoc_material.setSigmaT(transport.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setNuSigmaF(nufission.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setSigmaS(nuscatter.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setChi(chi.get_xs(nuclides='sum').flatten())" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "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.496342\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.558070\tres = 5.037E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.519062\tres = 1.244E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.510118\tres = 6.990E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.497533\tres = 1.723E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.489754\tres = 2.467E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.484192\tres = 1.564E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.481187\tres = 1.136E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.480359\tres = 6.206E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.481504\tres = 1.721E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.484422\tres = 2.384E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.488925\tres = 6.059E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.494842\tres = 9.295E-03\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.502013\tres = 1.210E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.510294\tres = 1.449E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.519552\tres = 1.650E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.529662\tres = 1.814E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.540514\tres = 1.946E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.552005\tres = 2.049E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.564041\tres = 2.126E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.576537\tres = 2.180E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.589414\tres = 2.215E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.602601\tres = 2.233E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.616034\tres = 2.237E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.629654\tres = 2.229E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.643407\tres = 2.211E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.657246\tres = 2.184E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.671127\tres = 2.151E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.685011\tres = 2.112E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.698862\tres = 2.069E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.712650\tres = 2.022E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.726345\tres = 1.973E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.739923\tres = 1.922E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.753361\tres = 1.869E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.766641\tres = 1.816E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.779744\tres = 1.763E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.792655\tres = 1.709E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.805362\tres = 1.656E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.817853\tres = 1.603E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.830119\tres = 1.551E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.842152\tres = 1.500E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.853945\tres = 1.450E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.865493\tres = 1.400E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.876791\tres = 1.352E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.887837\tres = 1.305E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.898630\tres = 1.260E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.909165\tres = 1.216E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.919445\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.929468\tres = 1.131E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.939236\tres = 1.090E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.948749\tres = 1.051E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.958010\tres = 1.013E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.967022\tres = 9.762E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.975787\tres = 9.406E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.984307\tres = 9.064E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.992586\tres = 8.731E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.000628\tres = 8.411E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.008438\tres = 8.102E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.016018\tres = 7.805E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.023372\tres = 7.517E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.030506\tres = 7.237E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.037423\tres = 6.971E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.044129\tres = 6.712E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.050628\tres = 6.464E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.056924\tres = 6.224E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.063023\tres = 5.993E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.068929\tres = 5.771E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.074647\tres = 5.555E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.080180\tres = 5.349E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.085536\tres = 5.149E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.090717\tres = 4.958E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.095728\tres = 4.773E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.100575\tres = 4.595E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.105261\tres = 4.424E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.109791\tres = 4.257E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.114171\tres = 4.099E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.118403\tres = 3.946E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.122493\tres = 3.799E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.126443\tres = 3.656E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.130259\tres = 3.519E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.133946\tres = 3.388E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.137505\tres = 3.262E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.140942\tres = 3.139E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.144260\tres = 3.021E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.147464\tres = 2.908E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.150556\tres = 2.799E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.153540\tres = 2.695E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.156419\tres = 2.593E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.159198\tres = 2.496E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.161878\tres = 2.403E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.164464\tres = 2.312E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.166959\tres = 2.225E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.169365\tres = 2.143E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.171685\tres = 2.061E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.173922\tres = 1.984E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.176080\tres = 1.910E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.178160\tres = 1.838E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.180166\tres = 1.769E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.182100\tres = 1.702E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.183965\tres = 1.639E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.185761\tres = 1.577E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.187493\tres = 1.517E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.189162\tres = 1.461E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.190771\tres = 1.405E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.192321\tres = 1.353E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.193815\tres = 1.302E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.195253\tres = 1.253E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.196640\tres = 1.205E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.197976\tres = 1.160E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.199263\tres = 1.116E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.200504\tres = 1.074E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.201698\tres = 1.034E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.202848\tres = 9.950E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.203957\tres = 9.570E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.205024\tres = 9.215E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.206052\tres = 8.863E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.207043\tres = 8.531E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.207995\tres = 8.214E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.208913\tres = 7.891E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.209798\tres = 7.597E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.210649\tres = 7.320E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.211469\tres = 7.034E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.212259\tres = 6.771E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.213019\tres = 6.521E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.213749\tres = 6.268E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.214455\tres = 6.023E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.215133\tres = 5.809E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.215786\tres = 5.588E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.216414\tres = 5.368E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.217020\tres = 5.168E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.217601\tres = 4.980E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.218162\tres = 4.780E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.218703\tres = 4.601E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219222\tres = 4.443E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.219722\tres = 4.260E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.220203\tres = 4.096E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220667\tres = 3.946E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.221113\tres = 3.800E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.221542\tres = 3.655E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.221954\tres = 3.510E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.222352\tres = 3.378E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.222734\tres = 3.251E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.223102\tres = 3.131E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.223457\tres = 3.009E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.223798\tres = 2.896E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.224127\tres = 2.791E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.224442\tres = 2.684E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.224746\tres = 2.578E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.225039\tres = 2.481E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.225320\tres = 2.392E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.225591\tres = 2.296E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.225852\tres = 2.208E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.226103\tres = 2.125E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.226344\tres = 2.047E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.226575\tres = 1.965E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.226799\tres = 1.888E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.227014\tres = 1.822E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.227221\tres = 1.750E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.227419\tres = 1.687E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.227611\tres = 1.619E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.227794\tres = 1.560E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.227972\tres = 1.495E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.228142\tres = 1.442E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.228307\tres = 1.391E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.228464\tres = 1.338E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.228616\tres = 1.283E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.228762\tres = 1.235E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.228902\tres = 1.183E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.229037\tres = 1.145E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.229167\tres = 1.099E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.229293\tres = 1.056E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.229413\tres = 1.022E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.229529\tres = 9.787E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.229641\tres = 9.401E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.229748\tres = 9.086E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.229851\tres = 8.685E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.229950\tres = 8.395E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.230046\tres = 8.088E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.230138\tres = 7.760E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.230226\tres = 7.451E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.230310\tres = 7.146E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.230392\tres = 6.878E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.230470\tres = 6.632E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.230546\tres = 6.372E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.230619\tres = 6.170E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.230689\tres = 5.908E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.230756\tres = 5.654E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.230821\tres = 5.487E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.230883\tres = 5.247E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.230943\tres = 5.058E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.231001\tres = 4.846E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.231056\tres = 4.672E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.231109\tres = 4.478E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.231161\tres = 4.334E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.231210\tres = 4.165E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.231258\tres = 4.022E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.231303\tres = 3.850E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.231347\tres = 3.721E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.231389\tres = 3.559E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.231430\tres = 3.425E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.231469\tres = 3.291E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.231507\tres = 3.174E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.231543\tres = 3.023E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.231577\tres = 2.923E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.231611\tres = 2.808E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.231643\tres = 2.711E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.231673\tres = 2.587E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.231703\tres = 2.481E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.231731\tres = 2.409E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.231759\tres = 2.301E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.231785\tres = 2.220E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.231811\tres = 2.139E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.231835\tres = 2.065E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.231859\tres = 1.999E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.231881\tres = 1.899E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.231903\tres = 1.825E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.231924\tres = 1.761E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.231944\tres = 1.696E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.231963\tres = 1.648E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.231982\tres = 1.564E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.232000\tres = 1.508E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.232017\tres = 1.450E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.232033\tres = 1.398E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.232050\tres = 1.344E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.232065\tres = 1.312E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.232080\tres = 1.233E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.232094\tres = 1.204E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.232108\tres = 1.156E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.232121\tres = 1.114E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.232134\tres = 1.064E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.232146\tres = 1.029E-05\n" + ] + } + ], + "source": [ + "# Generate tracks for OpenMOC\n", + "openmoc_geometry.initializeFlatSourceRegions()\n", + "track_generator = openmoc.TrackGenerator(openmoc_geometry, 128, 0.1)\n", + "track_generator.generateTracks()\n", + "\n", + "# Run OpenMOC\n", + "solver = openmoc.CPUSolver(track_generator)\n", + "solver.computeEigenvalue()" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.231090\n", + "openmoc keff = 1.232146\n", + "bias [pcm]: 105.6\n" + ] + } + ], + "source": [ + "# Print report of keff and bias with OpenMC\n", + "openmoc_keff = solver.getKeff()\n", + "openmc_keff = sp.k_combined[0]\n", + "bias = (openmoc_keff - openmc_keff) * 1e5\n", + "\n", + "print('openmc keff = {0:1.6f}'.format(openmc_keff))\n", + "print('openmoc keff = {0:1.6f}'.format(openmoc_keff))\n", + "print('bias [pcm]: {0:1.1f}'.format(bias))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There is a non-trivial bias in both the 2-group and 8-group cases. In the case of the pin cell, one can show that these biases do not converge to <100 pcm with more particle histories. In the case of heterogeneous geometries, additional measures must be taken to address the following three sources of bias:\n", + "\n", + "* Appropriate transport-corrected cross sections\n", + "* Spatial discretization of OpenMOC's mesh\n", + "* Constant-in-angle multi-group cross sections" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/docs/source/pythonapi/examples/openmc-mgxs.ipynb b/docs/source/pythonapi/examples/openmc-mgxs.ipynb deleted file mode 100644 index 2aedc3121..000000000 --- a/docs/source/pythonapi/examples/openmc-mgxs.ipynb +++ /dev/null @@ -1,1112 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This notebook demonstrates how to use the **``openmc.mgxs``** module to generate multi-group cross sections with OpenMC.\n", - "\n", - "**Note:** that 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, 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." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import openmc\n", - "import openmc.mgxs as mgxs\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Infinite Homogeneous Medium" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We first construct a simple homogeneous infinite medium problem to illustrate use of the `openmc.mgxs` module to generate multi-group cross sections." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Generate Inputs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "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", - "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 a material for the homogeneous medium." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Instantiate a Material and register the Nuclides\n", - "inf_medium = openmc.Material(name='moderator')\n", - "inf_medium.set_density('g/cc', 5.)\n", - "inf_medium.add_nuclide(h1, 0.028999667)\n", - "inf_medium.add_nuclide(o16, 0.01450188)\n", - "inf_medium.add_nuclide(u235, 0.000114142)\n", - "inf_medium.add_nuclide(u238, 0.006886019)\n", - "inf_medium.add_nuclide(zr90, 0.002116053)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With our material, we can now create a materials file object that can be exported to an actual XML file." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Instantiate a MaterialsFile, register all Materials, and export to XML\n", - "materials_file = openmc.MaterialsFile()\n", - "materials_file.default_xs = '71c'\n", - "materials_file.add_material(inf_medium)\n", - "materials_file.export_to_xml()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let's move on to the geometry. This problem will be a simple square cell with reflective boundary conditions to simulate an infinite homogeneous medium. The first step is to create the outer bounding surfaces of the problem." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Instantiate boundary Planes\n", - "min_x = openmc.XPlane(boundary_type='reflective', x0=-0.63)\n", - "max_x = openmc.XPlane(boundary_type='reflective', x0=0.63)\n", - "min_y = openmc.YPlane(boundary_type='reflective', y0=-0.63)\n", - "max_y = openmc.YPlane(boundary_type='reflective', y0=0.63)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With the surfaces defined, we can now create a cell that is defined by intersections of half-spaces created by the surfaces." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Instantiate a Cell\n", - "cell = openmc.Cell(cell_id=1, name='cell')\n", - "\n", - "# Register bounding Surfaces with the Cell\n", - "cell.add_surface(surface=min_x, halfspace=+1)\n", - "cell.add_surface(surface=max_x, halfspace=-1)\n", - "cell.add_surface(surface=min_y, halfspace=+1)\n", - "cell.add_surface(surface=max_y, halfspace=-1)\n", - "\n", - "# Fill the Cell with the Material\n", - "cell.fill = inf_medium" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "OpenMC requires that there is a \"root\" universe. Let us create a root universe and add our square cell to it." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Instantiate Universe\n", - "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", - "root_universe.add_cell(cell)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now must create a geometry that is assigned a root universe, put the geometry into a geometry file, and export it to XML." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Create Geometry and set root Universe\n", - "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()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we must 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": 9, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# OpenMC simulation parameters\n", - "batches = 50\n", - "inactive = 10\n", - "particles = 2500\n", - "\n", - "# Instantiate a SettingsFile\n", - "settings_file = openmc.SettingsFile()\n", - "settings_file.batches = batches\n", - "settings_file.inactive = inactive\n", - "settings_file.particles = particles\n", - "settings_file.output = {'tallies': True, 'summary': True}\n", - "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", - "settings_file.set_source_space('box', bounds)\n", - "\n", - "# Export to \"settings.xml\"\n", - "settings_file.export_to_xml()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we are finally ready to make use of the `openmc.mgxs` module to generate multi-group cross sections! First, let's define a \"fine\" 8-group and \"coarse\" 2-group structures using the built-in `EnergyGroups` class." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Instantiate a \"fine\" 8-group EneryGroups object\n", - "fine_groups = mgxs.EnergyGroups()\n", - "fine_groups.group_edges = np.array([0., 0.058e-6, 0.14e-6, 0.28e-6,\n", - " 0.625e-6, 4.e-6, 5.53e-3, 821.e-3, 20.])\n", - "\n", - "# Instantiate a \"coarse\" 2-group EneryGroups object\n", - "coarse_groups = mgxs.EnergyGroups()\n", - "coarse_groups.group_edges = np.array([0., 0.625e-6, 20.])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can now use the fine and coarse `EnergyGroups` objects, along with our previously created materials and geometry, to instantiate some `MultiGroupXS` objects from the `openmc.mgxs` module. In particular, the following are subclasses of generic and abstract `MultiGroupXS` class:\n", - "\n", - "* `TotalXS`\n", - "* `TransportXS`\n", - "* `AbsorptionXS`\n", - "* `CaptureXS`\n", - "* `FissionXS`\n", - "* `NuFissionXS`\n", - "* `ScatterXS`\n", - "* `NuScatterXS`\n", - "* `ScatterMatrixXS`\n", - "* `NuScatterMatrixXS`\n", - "* `Chi`\n", - "\n", - "These classes provide us with an interface to generate the tally inputs as well as perform post-processing of OpenMC's tally data to compute the respective multi-group cross sections. 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 total, nu-fission, nu-scatter and chi cross sections for our infinite medium cell as the domain and our fine 8-group structure as our energy groups." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Instantiate cross sections needed for an OpenMOC simulation\n", - "transport = mgxs.TransportXS(domain=cell, domain_type='cell', groups=fine_groups)\n", - "nufission = mgxs.NuFissionXS(domain=cell, domain_type='cell', groups=fine_groups)\n", - "nuscatter = mgxs.NuScatterMatrixXS(domain=cell, domain_type='cell', groups=fine_groups)\n", - "chi = mgxs.Chi(domain=cell, domain_type='cell', groups=fine_groups)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we must instruct our multi-group cross section objects to generate the tallies needed to calculate each of them in OpenMC. This can be done with the `MultiGroupXS.create_tallies()` routine." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Instruct each multi-group cross section to generate tallies\n", - "transport.create_tallies()\n", - "nufission.create_tallies()\n", - "nuscatter.create_tallies()\n", - "chi.create_tallies()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Each multi-group cross section object stores its tallies in a Python dictionary called `tallies`. We can inspect the tallies in the dictionary for our `NuFission` object as follows. " - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'flux': Tally\n", - " \tID =\t10003\n", - " \tName =\t\n", - " \tFilters =\t\n", - " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0.00000000e+00 5.80000000e-08 1.40000000e-07 2.80000000e-07\n", - " 6.25000000e-07 4.00000000e-06 5.53000000e-03 8.21000000e-01\n", - " 2.00000000e+01]\n", - " \tNuclides =\ttotal \n", - " \tScores =\t['flux']\n", - " \tEstimator =\ttracklength, 'nu-fission': Tally\n", - " \tID =\t10004\n", - " \tName =\t\n", - " \tFilters =\t\n", - " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0.00000000e+00 5.80000000e-08 1.40000000e-07 2.80000000e-07\n", - " 6.25000000e-07 4.00000000e-06 5.53000000e-03 8.21000000e-01\n", - " 2.00000000e+01]\n", - " \tNuclides =\ttotal \n", - " \tScores =\t['nu-fission']\n", - " \tEstimator =\ttracklength}" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "nufission.tallies" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `NuFission` object includes tracklength tallies for the 'nu-fission' and 'flux' scores in the 8-group structure in cell 1. Now that each multi-group cross section 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." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()\n", - "\n", - "# Add transport tallies to the tallies file\n", - "for tally in transport.tallies.values():\n", - " tallies_file.add_tally(tally, merge=True)\n", - "\n", - "# Add nu-fission tallies to the tallies file\n", - "for tally in nufission.tallies.values():\n", - " tallies_file.add_tally(tally, merge=True)\n", - "\n", - "# Add nu-scatter tallies to the tallies file\n", - "for tally in nuscatter.tallies.values():\n", - " tallies_file.add_tally(tally, merge=True)\n", - "\n", - "# Add chi tallies to the tallies file \n", - "for tally in chi.tallies.values():\n", - " tallies_file.add_tally(tally, merge=True)\n", - " \n", - "# Export to \"tallies.xml\"\n", - "tallies_file.export_to_xml()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we a have a complete set of inputs, so we can go ahead and run our simulation." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Run OpenMC!\n", - "executor = openmc.Executor()\n", - "executor.run_simulation()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Tally Data Processing" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Our simulation ran successfully and created a statepoint file with all the tally data in it. We begin our analysis here loading the statepoint file and 'reading' the results. By default, data from the statepoint file is only read into memory when it is requested. This helps keep the memory use to a minimum even when a statepoint file may be huge." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Load the last statepoint file\n", - "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 which 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)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The statepoint is now ready to be analyzed by our multi-group cross sections. The first step is to load the tallies from the statepoint into each object." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'tuple' object has no attribute '__name__'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAttributeError\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 tallies from the statepoint into each MultiGroupXS object\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mtransport\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_from_statepoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mnufission\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_from_statepoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mnuscatter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_from_statepoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mchi\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_from_statepoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msp\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.0-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mload_from_statepoint\u001b[1;34m(self, statepoint)\u001b[0m\n\u001b[0;32m 1216\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1217\u001b[0m \u001b[1;31m# Load the tallies from the statepoint using the parent class method\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1218\u001b[1;33m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mTransportXS\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_from_statepoint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstatepoint\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1219\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1220\u001b[0m \u001b[1;31m# Use tally slicing to remove scatter-P0 data from scatter-P1 tally\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.0-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mload_from_statepoint\u001b[1;34m(self, statepoint)\u001b[0m\n\u001b[0;32m 429\u001b[0m \u001b[1;31m# the isotopic number densities as computed by OpenMC\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 430\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain_type\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'cell'\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain_type\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'distribcell'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 431\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstatepoint\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msummary\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_cell_by_id\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mid\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 432\u001b[0m \u001b[1;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain_type\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'universe'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 433\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstatepoint\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msummary\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_universe_by_id\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdomain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mid\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.0-py2.7.egg/openmc/mgxs/mgxs.pyc\u001b[0m in \u001b[0;36mdomain\u001b[1;34m(self, domain)\u001b[0m\n\u001b[0;32m 198\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0mdomain\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msetter\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 199\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mdomain\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdomain\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 200\u001b[1;33m \u001b[0mcv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcheck_type\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'domain'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdomain\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtuple\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mDOMAINS\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 201\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_domain\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdomain\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 202\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.0-py2.7.egg/openmc/checkvalue.pyc\u001b[0m in \u001b[0;36mcheck_type\u001b[1;34m(name, value, expected_type, expected_iter_type)\u001b[0m\n\u001b[0;32m 52\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0m_isinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexpected_type\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 53\u001b[0m msg = 'Unable to set \"{0}\" to \"{1}\" which is not of type \"{2}\"'.format(\n\u001b[1;32m---> 54\u001b[1;33m name, value, expected_type.__name__)\n\u001b[0m\u001b[0;32m 55\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 56\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mAttributeError\u001b[0m: 'tuple' object has no attribute '__name__'" - ] - } - ], - "source": [ - "# Load the tallies from the statepoint into each MultiGroupXS object\n", - "transport.load_from_statepoint(sp)\n", - "nufission.load_from_statepoint(sp)\n", - "nuscatter.load_from_statepoint(sp)\n", - "chi.load_from_statepoint(sp)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The multi-group cross section objects can now use OpenMC's [tally arithmetic](http://mit-crpg.github.io/openmc/pythonapi/examples/pandas-dataframes.html) to compute cross sections from the tally data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "transport.compute_xs()\n", - "nufission.compute_xs()\n", - "nuscatter.compute_xs()\n", - "chi.compute_xs()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Voila! Our multi-group cross sections are now ready to rock 'n roll! Let's first inspect one of our cross sections by printing it to the screen." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "nufission.print_xs()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Since the `openmc.mgxs` module uses tally arithmetic under-the-hood, the cross section is stored as a \"derived\" tally. This means that it can be queried and manipulated using all of the same method supported for the `Tally` class in the OpenMC Python API. For example, we can construct a Pandas DataFrame of the multi-group cross section data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "df = nuscatter.get_pandas_dataframe()\n", - "df.head(10)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Each multi-group cross section object can be easily exported to a variety of file formats, including CSV, Excel, and LaTeX for storage or data processing." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "transport.export_xs_data(filename='transport-xs', format='excel')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The following code snippet shows how to export all of four cross sections to the same HDF5 binary data store." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "transport.build_hdf5_store(filename='mgxs', append=True)\n", - "nufission.build_hdf5_store(filename='mgxs', append=True)\n", - "nuscatter.build_hdf5_store(filename='mgxs', append=True)\n", - "chi.build_hdf5_store(filename='mgxs', append=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Of course it is always a good idea to verify that one's cross sections are accurate. We can easily do so here with the deterministic transport code OpenMOC. First, we will use OpenCG to reconstruct our OpenMC geometry from the summary file into a equivalent OpenMOC geometry." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Import OpenMOC and the OpenMOC/OpenCG compatibility module\n", - "import openmoc\n", - "from openmoc.compatible import get_openmoc_geometry\n", - "\n", - "# Create an OpenCG Geometry from the OpenMC Geometry stored in the summary\n", - "su.make_opencg_geometry()\n", - "\n", - "# Create an OpenMOC Geometry from the OpenCG Geometry\n", - "openmoc_geometry = get_openmoc_geometry(su.opencg_geometry)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we can inject the multi-group cross sections into the equivalent infinite homogeneous medium OpenMOC geometry." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Get all OpenMOC cells in the gometry\n", - "openmoc_cells = openmoc_geometry.getRootUniverse().getAllCells()\n", - "\n", - "# Inject multi-group cross sections into OpenMOC Materials\n", - "# NOTE: This code will work for 1, 10, or 1,000s of cells\n", - "# as is the case for a complicated geometry like BEAVRS\n", - "for cell_id, cell in openmoc_cells.items():\n", - " \n", - " # Get a reference to the Material filling this Cell\n", - " openmoc_material = cell.getFillMaterial()\n", - " \n", - " # Set the number of energy groups for the Material\n", - " openmoc_material.setNumEnergyGroups(fine_groups.num_groups)\n", - " \n", - " # Inject NumPy arrays of cross section data into the Material\n", - " openmoc_material.setSigmaT(transport.get_xs().flatten())\n", - " openmoc_material.setNuSigmaF(nufission.get_xs().flatten())\n", - " openmoc_material.setSigmaS(nuscatter.get_xs().flatten())\n", - " openmoc_material.setChi(chi.get_xs().flatten())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We are now ready to run OpenMOC to verify our cross-sections from OpenMC." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Generate tracks for OpenMOC\n", - "openmoc_geometry.initializeFlatSourceRegions()\n", - "track_generator = openmoc.TrackGenerator(openmoc_geometry, 128, 0.1)\n", - "track_generator.generateTracks()\n", - "\n", - "# Run OpenMOC\n", - "solver = openmoc.CPUSolver(track_generator)\n", - "solver.computeEigenvalue()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We report the eigenvalues computed by OpenMC and OpenMOC here together to summarize our results." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Print report of keff and bias with OpenMC\n", - "openmoc_keff = solver.getKeff()\n", - "openmc_keff = sp.k_combined[0]\n", - "bias = (openmoc_keff - openmc_keff) * 1e5\n", - "\n", - "print('openmc keff = {0:1.6f}'.format(openmc_keff))\n", - "print('openmoc keff = {0:1.6f}'.format(openmoc_keff))\n", - "print('bias [pcm]: {0:1.1f}'.format(bias))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Although there is a non-trivial bias, one can easily run the preceding code with more particle histories to show that both codes converge to the same eigenvalue with <10 pcm bias. It should be noted that this discrepancy is partially due to use of tracklength tallies for `NuFission`, while one must use more slowly converging analog tallies must be used for `TransportXS`, `NuScatterMatrixXS` and `Chi` (which require an 'energyout' filter)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Fuel Pin Cell" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this section we show how to compute multi-group cross sections for a fuel pin cell. In addition, we will illustrate how to use some of the more advanced features in `openmc.mgxs` such as nuclide-by-nuclide microscopic cross section tallies and downstream energy group condensation." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Generate Inputs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "this time we separate our nuclides into three distinct materials for water, clad and fuel." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "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", - "\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 materials, we can now create a materials file object that can be exported to an actual XML file." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Instantiate a MaterialsFile, add Materials\n", - "materials_file = openmc.MaterialsFile()\n", - "materials_file.add_material(fuel)\n", - "materials_file.add_material(water)\n", - "materials_file.add_material(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. Our problem will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces -- in this case two cylinders and six reflective planes." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "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", - "# Use both reflective and vacuum boundaries to make life interesting\n", - "min_x = openmc.XPlane(x0=-0.63, boundary_type='reflective')\n", - "max_x = openmc.XPlane(x0=+0.63, boundary_type='reflective')\n", - "min_y = openmc.YPlane(y0=-0.63, boundary_type='reflective')\n", - "max_y = openmc.YPlane(y0=+0.63, boundary_type='reflective')\n", - "min_z = openmc.ZPlane(z0=-0.63, boundary_type='reflective')\n", - "max_z = openmc.ZPlane(z0=+0.63, boundary_type='reflective')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With the surfaces defined, we can now create cells that are defined by intersections of half-spaces created by the surfaces." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Create a Universe to encapsulate a fuel pin\n", - "pin_cell_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.add_surface(fuel_outer_radius, halfspace=-1)\n", - "pin_cell_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.add_surface(fuel_outer_radius, halfspace=+1)\n", - "clad_cell.add_surface(clad_outer_radius, halfspace=-1)\n", - "pin_cell_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.add_surface(clad_outer_radius, halfspace=+1)\n", - "pin_cell_universe.add_cell(moderator_cell)" - ] - }, - { - "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": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Create root Cell\n", - "root_cell = openmc.Cell(name='root cell')\n", - "root_cell.fill = pin_cell_universe\n", - "\n", - "# Add boundary planes\n", - "root_cell.add_surface(min_x, halfspace=+1)\n", - "root_cell.add_surface(max_x, halfspace=-1)\n", - "root_cell.add_surface(min_y, halfspace=+1)\n", - "root_cell.add_surface(max_y, halfspace=-1)\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, put the geometry into a geometry file, and export it to XML." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# Create Geometry and set root Universe\n", - "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()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will reuse our settings from the previous simulation. Now, we let's create transport, nu-fission, nu-scatter and chi multi-group cross sections for each cell." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Extract all Cells filled by Materials\n", - "openmc_cells = openmc_geometry.get_all_material_cells()\n", - "\n", - "# Create dictionary to store multi-group cross sections for all cells\n", - "xs_library = {}\n", - "\n", - "# Instantiate 8-group cross sections for each cell\n", - "for cell in openmc_cells:\n", - " xs_library[cell.id] = {}\n", - " xs_library[cell.id]['transport'] = mgxs.TransportXS(groups=fine_groups)\n", - " xs_library[cell.id]['nu-fission'] = mgxs.NuFissionXS(groups=fine_groups)\n", - " xs_library[cell.id]['nu-scatter'] = mgxs.NuScatterMatrixXS(groups=fine_groups)\n", - " xs_library[cell.id]['chi'] = mgxs.Chi(groups=fine_groups)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this case, we did not give our cross sections a spatial domain in their constructors. Instead, we will loop over all cells to set each cross sections domain. In addition, we will set each cross section to tally cross sections on a per-nuclide basis through the use of the `by_nuclide` instance attribute. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()\n", - "\n", - "# Iterate over all cells and cross section types\n", - "for cell in openmc_cells:\n", - " for rxn_type in xs_library[cell.id].keys():\n", - " print(cell.name, rxn_type)\n", - "\n", - " # Set the cross sections domain type 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 (e.g., micro cross sections)\n", - " xs_library[cell.id][rxn_type].by_nuclide = True\n", - " \n", - " # Create OpenMC tallies for this cross section\n", - " xs_library[cell.id][rxn_type].create_tallies()\n", - " \n", - " # Add OpenMC tallies to the tallies file for XML generation\n", - " for tally in xs_library[cell.id][rxn_type].tallies.values():\n", - " print(tally)\n", - " tallies_file.add_tally(tally, merge=True)\n", - "\n", - "# Export to \"tallies.xml\"\n", - "tallies_file.export_to_xml()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we a have a complete set of inputs, so we can go ahead and run our simulation." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Delete old HDF5 files\n", - "!rm *.h5\n", - "\n", - "# Run OpenMC!\n", - "executor = openmc.Executor()\n", - "executor.run_simulation()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Tally Data Processing" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Our simulation ran successfully and created a statepoint file with all the tally data in it. As before, we begin our analysis here loading the statepoint file." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Load the last statepoint and summary files\n", - "sp = openmc.StatePoint('statepoint.50.h5')\n", - "su = openmc.Summary('summary.h5')\n", - "sp.link_with_summary(su)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "# Iterate over all cells and cross section types\n", - "for cell in openmc_cells:\n", - " for rxn_type in xs_library[cell.id].keys():\n", - " xs_library[cell.id][rxn_type].load_from_statepoint(sp)\n", - " xs_library[cell.id][rxn_type].compute_xs()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data b/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data deleted file mode 100644 index b108b863c52d6d385677f2f730b589892ee66001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71256 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%0AB9)@AO7*7 znjeOawEDCBL;u4+q8=8f{ZEznEdRlyy@VdL_)LG`(OyCi8qf3(oul1xgdPSy_~bb| ze0kf!_cZ>&)_(?srnSQ{dzGyf6UE!I2OZvyY5_77bZ~FGV+YZiZ z^v~9h7WGZ~$2#g7pRXS;`;E#?`>?OB6rQc0E$W-%V;yycSJ&@GeGwn)s4F~MKOXHY z*U`s5EM8u&qaUv$3kSTsTt^@4sC#+2jy~2=_wsTbeJW4z^0B_nI#5_g-OJOu^#T2d zb>+v#H|ywQ9d$2{b@YXvwEC<0hjsL6+=o2Yc$WXjKhziFM*LkXf382AhjsMH|Im(F ze5QYz?~L-MBlPt7byNTR^QUY#_}<1p*!~r=-$nmb3eWb>5c925{Fo1`HD2An1LZ}0 z_=g_9**_BPC-skgoV>i$Km5bXOZ~$?yu8#u{KLyj{lh=Jyvzga!{Ftm{^1{E;~V`$ zPhKASNB+P+ygc;(xOjg<;nn;_c||)0g=hLf{zCs0Kj~lLnSQph)3q5(`OZ`GmULNt#ez=}`dBmglCU6~8>#yZM;_W4#f9mm@{hMXK zq5RO(2llz78oFxx!NW8C&Y0QkA5G^6oDUv)(s}#(N$pvAd8t3>$;;z>lplKX@;Dzn z^yKAnK6vQY%gcU*p1eHHM||jMY<#0X=*i3De8h*Iygbea4?TH#oDUv)^71%8_QUFQ z|6k`D{m6bpeCP>$dx0A4-`I=(I6rp%S-hn`i?{S=@s|E9-qN4N%YKBO^#1E?f1Hp0 zm-@5f<9zVYlQ%xj2M;}Yd7KX(dh+r(A3XHr<#B#Vf4uz~{k1i Date: Sat, 3 Oct 2015 13:00:51 -0400 Subject: [PATCH 81/91] Updated Python API MultiGroupXS.load_from_statepoint(...) to properly handle tally slicing of distribcell tallies --- .../examples/multi-group-cross-sections.ipynb | 589 +----------------- .../examples/multi-group-cross-sections.rst | 11 + docs/source/pythonapi/index.rst | 1 + openmc/mgxs/mgxs.py | 14 +- openmc/tallies.py | 3 +- 5 files changed, 50 insertions(+), 568 deletions(-) create mode 100644 docs/source/pythonapi/examples/multi-group-cross-sections.rst diff --git a/docs/source/pythonapi/examples/multi-group-cross-sections.ipynb b/docs/source/pythonapi/examples/multi-group-cross-sections.ipynb index 14392ec97..e7820bca8 100644 --- a/docs/source/pythonapi/examples/multi-group-cross-sections.ipynb +++ b/docs/source/pythonapi/examples/multi-group-cross-sections.ipynb @@ -452,7 +452,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 12:30:47\n", + " Date/Time: 2015-10-03 12:56:30\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -537,20 +537,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.8800E-01 seconds\n", - " Reading cross sections = 8.8000E-02 seconds\n", - " Total time in simulation = 1.4079E+01 seconds\n", - " Time in transport only = 1.4061E+01 seconds\n", - " Time in inactive batches = 2.0330E+00 seconds\n", - " Time in active batches = 1.2046E+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", + " Total time for initialization = 6.4800E-01 seconds\n", + " Reading cross sections = 1.5500E-01 seconds\n", + " Total time in simulation = 1.6951E+01 seconds\n", + " Time in transport only = 1.6927E+01 seconds\n", + " Time in inactive batches = 3.1560E+00 seconds\n", + " Time in active batches = 1.3795E+01 seconds\n", + " Time synchronizing fission bank = 7.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 = 3.0000E-03 seconds\n", - " Total time elapsed = 1.4478E+01 seconds\n", - " Calculation Rate (inactive) = 12297.1 neutrons/second\n", - " Calculation Rate (active) = 8301.51 neutrons/second\n", + " Total time elapsed = 1.7614E+01 seconds\n", + " Calculation Rate (inactive) = 7921.42 neutrons/second\n", + " Calculation Rate (active) = 7249.00 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1492,137 +1492,6 @@ "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.0\n", - " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 12:31: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: 92238.71c\n", - " Loading ACE cross section table: 8016.71c\n", - " Loading ACE cross section table: 92235.71c\n", - " Loading ACE cross section table: 1001.71c\n", - " Loading ACE cross section table: 40090.71c\n", - " Initializing source particles...\n", - "\n", - " ===========================================================================\n", - " ====================> K EIGENVALUE SIMULATION <====================\n", - " ===========================================================================\n", - "\n", - " Bat./Gen. k Average k \n", - " ========= ======== ==================== \n", - " 1/1 1.23064 \n", - " 2/1 1.18217 \n", - " 3/1 1.20248 \n", - " 4/1 1.20841 \n", - " 5/1 1.25078 \n", - " 6/1 1.26156 \n", - " 7/1 1.18239 \n", - " 8/1 1.24391 \n", - " 9/1 1.22294 \n", - " 10/1 1.20654 \n", - " 11/1 1.24695 \n", - " 12/1 1.26717 1.25706 +/- 0.01011\n", - " 13/1 1.26830 1.26080 +/- 0.00693\n", - " 14/1 1.25206 1.25862 +/- 0.00537\n", - " 15/1 1.23449 1.25379 +/- 0.00637\n", - " 16/1 1.13532 1.23405 +/- 0.02042\n", - " 17/1 1.25230 1.23666 +/- 0.01745\n", - " 18/1 1.17655 1.22914 +/- 0.01688\n", - " 19/1 1.26829 1.23349 +/- 0.01551\n", - " 20/1 1.26274 1.23642 +/- 0.01418\n", - " 21/1 1.19211 1.23239 +/- 0.01344\n", - " 22/1 1.23183 1.23234 +/- 0.01227\n", - " 23/1 1.22292 1.23162 +/- 0.01131\n", - " 24/1 1.21154 1.23018 +/- 0.01057\n", - " 25/1 1.21882 1.22943 +/- 0.00987\n", - " 26/1 1.22321 1.22904 +/- 0.00924\n", - " 27/1 1.20043 1.22736 +/- 0.00884\n", - " 28/1 1.20998 1.22639 +/- 0.00839\n", - " 29/1 1.26327 1.22833 +/- 0.00817\n", - " 30/1 1.26615 1.23022 +/- 0.00798\n", - " 31/1 1.21810 1.22964 +/- 0.00761\n", - " 32/1 1.23946 1.23009 +/- 0.00727\n", - " 33/1 1.25718 1.23127 +/- 0.00705\n", - " 34/1 1.21614 1.23064 +/- 0.00678\n", - " 35/1 1.23962 1.23100 +/- 0.00651\n", - " 36/1 1.24640 1.23159 +/- 0.00628\n", - " 37/1 1.24546 1.23210 +/- 0.00607\n", - " 38/1 1.21329 1.23143 +/- 0.00588\n", - " 39/1 1.24137 1.23177 +/- 0.00569\n", - " 40/1 1.27335 1.23316 +/- 0.00567\n", - " 41/1 1.24768 1.23363 +/- 0.00550\n", - " 42/1 1.19014 1.23227 +/- 0.00550\n", - " 43/1 1.24273 1.23259 +/- 0.00534\n", - " 44/1 1.20201 1.23169 +/- 0.00526\n", - " 45/1 1.24084 1.23195 +/- 0.00511\n", - " 46/1 1.25992 1.23273 +/- 0.00503\n", - " 47/1 1.19931 1.23182 +/- 0.00497\n", - " 48/1 1.24106 1.23207 +/- 0.00484\n", - " 49/1 1.28278 1.23337 +/- 0.00489\n", - " 50/1 1.26711 1.23421 +/- 0.00484\n", - " Creating state point statepoint.50.h5...\n", - "\n", - " ===========================================================================\n", - " ======================> SIMULATION FINISHED <======================\n", - " ===========================================================================\n", - "\n", - "\n", - " =======================> TIMING STATISTICS <=======================\n", - "\n", - " Total time for initialization = 4.1100E-01 seconds\n", - " Reading cross sections = 1.1100E-01 seconds\n", - " Total time in simulation = 3.4700E+01 seconds\n", - " Time in transport only = 3.4683E+01 seconds\n", - " Time in inactive batches = 3.7780E+00 seconds\n", - " Time in active batches = 3.0922E+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", - " Total time for finalization = 9.0000E-03 seconds\n", - " Total time elapsed = 3.5131E+01 seconds\n", - " Calculation Rate (inactive) = 6617.26 neutrons/second\n", - " Calculation Rate (active) = 3233.94 neutrons/second\n", - "\n", - " ============================> RESULTS <============================\n", - "\n", - " k-effective (Collision) = 1.23174 +/- 0.00461\n", - " k-effective (Track-length) = 1.23421 +/- 0.00484\n", - " k-effective (Absorption) = 1.23034 +/- 0.00239\n", - " Combined k-effective = 1.23109 +/- 0.00215\n", - " Leakage Fraction = 0.00000 +/- 0.00000\n", - "\n" - ] - }, { "data": { "text/plain": [ @@ -1638,9 +1507,9 @@ "# Delete old HDF5 files\n", "!rm *.h5\n", "\n", - "# Run OpenMC!\n", + "# Run OpenMC with the output throttled!\n", "executor = openmc.Executor()\n", - "executor.run_simulation()" + "executor.run_simulation(output=False)" ] }, { @@ -1999,7 +1868,7 @@ "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2274,181 +2143,11 @@ "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ NORMAL ] Ray tracing for track segmentation...\n", - "[ NORMAL ] Dumping tracks to file...\n", - "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.574798\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.680220\tres = 4.252E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.661620\tres = 1.834E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.660063\tres = 2.734E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.644413\tres = 2.354E-03\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.627431\tres = 2.371E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.608477\tres = 2.635E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.589425\tres = 3.021E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.571080\tres = 3.131E-02\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.553841\tres = 3.112E-02\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.538232\tres = 3.019E-02\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.524518\tres = 2.818E-02\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.512887\tres = 2.548E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.503407\tres = 2.218E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.496149\tres = 1.848E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.491110\tres = 1.442E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.488262\tres = 1.016E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.487559\tres = 5.798E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.488929\tres = 1.441E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.492277\tres = 2.810E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.497495\tres = 6.848E-03\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.504468\tres = 1.060E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.513071\tres = 1.402E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.523171\tres = 1.705E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.534637\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.547332\tres = 2.192E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.561124\tres = 2.375E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.575881\tres = 2.520E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.591472\tres = 2.630E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.607776\tres = 2.707E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.624672\tres = 2.756E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.642047\tres = 2.780E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.659796\tres = 2.781E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.677818\tres = 2.764E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.696019\tres = 2.731E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.714314\tres = 2.685E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.732625\tres = 2.629E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.750879\tres = 2.563E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.769011\tres = 2.492E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.786963\tres = 2.415E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.804681\tres = 2.334E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.822119\tres = 2.251E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.839238\tres = 2.167E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.856002\tres = 2.082E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.872382\tres = 1.997E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.888351\tres = 1.913E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.903889\tres = 1.831E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.918979\tres = 1.749E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.933609\tres = 1.669E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.947768\tres = 1.592E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.961451\tres = 1.517E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.974653\tres = 1.444E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.987374\tres = 1.373E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.999614\tres = 1.305E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.011376\tres = 1.240E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.022667\tres = 1.177E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.033492\tres = 1.116E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.043858\tres = 1.058E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.053776\tres = 1.003E-02\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.063254\tres = 9.501E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.072304\tres = 8.994E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.080937\tres = 8.512E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.089165\tres = 8.051E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.097001\tres = 7.612E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.104457\tres = 7.194E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.111546\tres = 6.797E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.118282\tres = 6.419E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.124677\tres = 6.060E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.130743\tres = 5.719E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.136495\tres = 5.394E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.141946\tres = 5.087E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.147109\tres = 4.796E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.151994\tres = 4.520E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.156615\tres = 4.259E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.160984\tres = 4.011E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.165111\tres = 3.777E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.169010\tres = 3.555E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.172690\tres = 3.346E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.176162\tres = 3.148E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.179436\tres = 2.960E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.182522\tres = 2.784E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.185431\tres = 2.617E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.188170\tres = 2.460E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.190750\tres = 2.311E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.193177\tres = 2.171E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.195460\tres = 2.039E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.197609\tres = 1.914E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.199628\tres = 1.797E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.201525\tres = 1.685E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.203309\tres = 1.582E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.204983\tres = 1.484E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.206555\tres = 1.391E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.208032\tres = 1.305E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.209416\tres = 1.224E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.210716\tres = 1.146E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.211934\tres = 1.075E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.213078\tres = 1.006E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.214149\tres = 9.432E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.215152\tres = 8.828E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.216093\tres = 8.267E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.216974\tres = 7.742E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.217799\tres = 7.244E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.218572\tres = 6.782E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.219295\tres = 6.344E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.219972\tres = 5.932E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.220605\tres = 5.554E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.221198\tres = 5.190E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.221753\tres = 4.854E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.222271\tres = 4.540E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.222756\tres = 4.243E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.223210\tres = 3.967E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.223633\tres = 3.709E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.224029\tres = 3.461E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.224399\tres = 3.238E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.224746\tres = 3.022E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.225068\tres = 2.827E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.225369\tres = 2.633E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.225651\tres = 2.460E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.225914\tres = 2.299E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.226160\tres = 2.147E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.226390\tres = 2.007E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.226604\tres = 1.871E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.226803\tres = 1.741E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.226990\tres = 1.628E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.227164\tres = 1.522E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.227326\tres = 1.414E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.227478\tres = 1.322E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.227619\tres = 1.233E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.227751\tres = 1.150E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.227874\tres = 1.077E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.227988\tres = 1.001E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.228095\tres = 9.273E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.228195\tres = 8.720E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.228288\tres = 8.102E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.228374\tres = 7.574E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.228455\tres = 7.035E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.228530\tres = 6.542E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.228601\tres = 6.126E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.228666\tres = 5.717E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.228727\tres = 5.295E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.228783\tres = 4.953E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.228835\tres = 4.580E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.228885\tres = 4.264E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.228931\tres = 3.986E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.228973\tres = 3.729E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.229013\tres = 3.467E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.229051\tres = 3.219E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.229085\tres = 3.040E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.229118\tres = 2.835E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.229147\tres = 2.611E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.229174\tres = 2.401E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.229201\tres = 2.208E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.229225\tres = 2.135E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.229247\tres = 1.992E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.229268\tres = 1.797E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.229288\tres = 1.687E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.229306\tres = 1.559E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.229322\tres = 1.474E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.229338\tres = 1.351E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.229352\tres = 1.242E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.229366\tres = 1.182E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.229378\tres = 1.086E-05\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.229390\tres = 1.005E-05\n" - ] - } - ], + "outputs": [], "source": [ + "# Throttle OpenMOC output to screen\n", + "openmoc.log.set_log_level('WARNING')\n", + "\n", "# Generate tracks for OpenMOC\n", "openmoc_geometry.initializeFlatSourceRegions()\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, 128, 0.1)\n", @@ -2503,7 +2202,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 51, "metadata": { "collapsed": false }, @@ -2544,251 +2243,11 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 52, "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.496342\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.558070\tres = 5.037E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.519062\tres = 1.244E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.510118\tres = 6.990E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.497533\tres = 1.723E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.489754\tres = 2.467E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.484192\tres = 1.564E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.481187\tres = 1.136E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.480359\tres = 6.206E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.481504\tres = 1.721E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.484422\tres = 2.384E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.488925\tres = 6.059E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.494842\tres = 9.295E-03\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.502013\tres = 1.210E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.510294\tres = 1.449E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.519552\tres = 1.650E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.529662\tres = 1.814E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.540514\tres = 1.946E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.552005\tres = 2.049E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.564041\tres = 2.126E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.576537\tres = 2.180E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.589414\tres = 2.215E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.602601\tres = 2.233E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.616034\tres = 2.237E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.629654\tres = 2.229E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.643407\tres = 2.211E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.657246\tres = 2.184E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.671127\tres = 2.151E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.685011\tres = 2.112E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.698862\tres = 2.069E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.712650\tres = 2.022E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.726345\tres = 1.973E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.739923\tres = 1.922E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.753361\tres = 1.869E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.766641\tres = 1.816E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.779744\tres = 1.763E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.792655\tres = 1.709E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.805362\tres = 1.656E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.817853\tres = 1.603E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.830119\tres = 1.551E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.842152\tres = 1.500E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.853945\tres = 1.450E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.865493\tres = 1.400E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.876791\tres = 1.352E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.887837\tres = 1.305E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.898630\tres = 1.260E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.909165\tres = 1.216E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.919445\tres = 1.172E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.929468\tres = 1.131E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.939236\tres = 1.090E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.948749\tres = 1.051E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.958010\tres = 1.013E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.967022\tres = 9.762E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.975787\tres = 9.406E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.984307\tres = 9.064E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.992586\tres = 8.731E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.000628\tres = 8.411E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.008438\tres = 8.102E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.016018\tres = 7.805E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.023372\tres = 7.517E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.030506\tres = 7.237E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.037423\tres = 6.971E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.044129\tres = 6.712E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.050628\tres = 6.464E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.056924\tres = 6.224E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.063023\tres = 5.993E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.068929\tres = 5.771E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.074647\tres = 5.555E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.080180\tres = 5.349E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.085536\tres = 5.149E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.090717\tres = 4.958E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.095728\tres = 4.773E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.100575\tres = 4.595E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.105261\tres = 4.424E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.109791\tres = 4.257E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.114171\tres = 4.099E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.118403\tres = 3.946E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.122493\tres = 3.799E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.126443\tres = 3.656E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.130259\tres = 3.519E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.133946\tres = 3.388E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.137505\tres = 3.262E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.140942\tres = 3.139E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.144260\tres = 3.021E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.147464\tres = 2.908E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.150556\tres = 2.799E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.153540\tres = 2.695E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.156419\tres = 2.593E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.159198\tres = 2.496E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.161878\tres = 2.403E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.164464\tres = 2.312E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.166959\tres = 2.225E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.169365\tres = 2.143E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.171685\tres = 2.061E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.173922\tres = 1.984E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.176080\tres = 1.910E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.178160\tres = 1.838E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.180166\tres = 1.769E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.182100\tres = 1.702E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.183965\tres = 1.639E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.185761\tres = 1.577E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.187493\tres = 1.517E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.189162\tres = 1.461E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.190771\tres = 1.405E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.192321\tres = 1.353E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.193815\tres = 1.302E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.195253\tres = 1.253E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.196640\tres = 1.205E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.197976\tres = 1.160E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.199263\tres = 1.116E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.200504\tres = 1.074E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.201698\tres = 1.034E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.202848\tres = 9.950E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.203957\tres = 9.570E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.205024\tres = 9.215E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.206052\tres = 8.863E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.207043\tres = 8.531E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.207995\tres = 8.214E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.208913\tres = 7.891E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.209798\tres = 7.597E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.210649\tres = 7.320E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.211469\tres = 7.034E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.212259\tres = 6.771E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.213019\tres = 6.521E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.213749\tres = 6.268E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.214455\tres = 6.023E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.215133\tres = 5.809E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.215786\tres = 5.588E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.216414\tres = 5.368E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.217020\tres = 5.168E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.217601\tres = 4.980E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.218162\tres = 4.780E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.218703\tres = 4.601E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.219222\tres = 4.443E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.219722\tres = 4.260E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.220203\tres = 4.096E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.220667\tres = 3.946E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.221113\tres = 3.800E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.221542\tres = 3.655E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.221954\tres = 3.510E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.222352\tres = 3.378E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.222734\tres = 3.251E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.223102\tres = 3.131E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.223457\tres = 3.009E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.223798\tres = 2.896E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.224127\tres = 2.791E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.224442\tres = 2.684E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.224746\tres = 2.578E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.225039\tres = 2.481E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.225320\tres = 2.392E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.225591\tres = 2.296E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.225852\tres = 2.208E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.226103\tres = 2.125E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.226344\tres = 2.047E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.226575\tres = 1.965E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.226799\tres = 1.888E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.227014\tres = 1.822E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.227221\tres = 1.750E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.227419\tres = 1.687E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.227611\tres = 1.619E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.227794\tres = 1.560E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.227972\tres = 1.495E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.228142\tres = 1.442E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.228307\tres = 1.391E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.228464\tres = 1.338E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.228616\tres = 1.283E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.228762\tres = 1.235E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.228902\tres = 1.183E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.229037\tres = 1.145E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.229167\tres = 1.099E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.229293\tres = 1.056E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.229413\tres = 1.022E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.229529\tres = 9.787E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.229641\tres = 9.401E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.229748\tres = 9.086E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.229851\tres = 8.685E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.229950\tres = 8.395E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.230046\tres = 8.088E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.230138\tres = 7.760E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.230226\tres = 7.451E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.230310\tres = 7.146E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.230392\tres = 6.878E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.230470\tres = 6.632E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.230546\tres = 6.372E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.230619\tres = 6.170E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.230689\tres = 5.908E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.230756\tres = 5.654E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.230821\tres = 5.487E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.230883\tres = 5.247E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.230943\tres = 5.058E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.231001\tres = 4.846E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.231056\tres = 4.672E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.231109\tres = 4.478E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.231161\tres = 4.334E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.231210\tres = 4.165E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.231258\tres = 4.022E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.231303\tres = 3.850E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.231347\tres = 3.721E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.231389\tres = 3.559E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.231430\tres = 3.425E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.231469\tres = 3.291E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.231507\tres = 3.174E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.231543\tres = 3.023E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.231577\tres = 2.923E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.231611\tres = 2.808E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.231643\tres = 2.711E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.231673\tres = 2.587E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.231703\tres = 2.481E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.231731\tres = 2.409E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.231759\tres = 2.301E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.231785\tres = 2.220E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.231811\tres = 2.139E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.231835\tres = 2.065E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.231859\tres = 1.999E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.231881\tres = 1.899E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.231903\tres = 1.825E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.231924\tres = 1.761E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.231944\tres = 1.696E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.231963\tres = 1.648E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.231982\tres = 1.564E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.232000\tres = 1.508E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.232017\tres = 1.450E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.232033\tres = 1.398E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.232050\tres = 1.344E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.232065\tres = 1.312E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.232080\tres = 1.233E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.232094\tres = 1.204E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.232108\tres = 1.156E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.232121\tres = 1.114E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.232134\tres = 1.064E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.232146\tres = 1.029E-05\n" - ] - } - ], + "outputs": [], "source": [ "# Generate tracks for OpenMOC\n", "openmoc_geometry.initializeFlatSourceRegions()\n", @@ -2802,7 +2261,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 53, "metadata": { "collapsed": false }, diff --git a/docs/source/pythonapi/examples/multi-group-cross-sections.rst b/docs/source/pythonapi/examples/multi-group-cross-sections.rst new file mode 100644 index 000000000..b2da0e1bc --- /dev/null +++ b/docs/source/pythonapi/examples/multi-group-cross-sections.rst @@ -0,0 +1,11 @@ +==================================== +Multi-Group Cross Section Generation +==================================== + +.. only:: html + + .. notebook:: multi-group-cross-sections.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 12baf937d..09fbb3ac9 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -65,6 +65,7 @@ on a given module or class. examples/post-processing examples/pandas-dataframes examples/tally-arithmetic + examples/multi-group-cross-sections .. _Jupyter: https://jupyter.org/ .. _NumPy: http://www.numpy.org/ diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 445bdcabb..85b08362a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -441,14 +441,24 @@ class MultiGroupXS(object): # Create Tallies to search for in StatePoint self.create_tallies() + # Use tally "slicing" to ensure that tallies correspond to our domain + # NOTE: This is important if tally merging was used + if self.domain_type != 'distribcell': + filters = [self.domain_type] + filter_bins = [(self.domain.id,)] + # Distribcell filters only accept single cell - neglect it when slicing + else: + filters = [] + filter_bins = [] + # 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, [self.domain_type], - [(self.domain.id,)], tally.nuclides) + sp_tally = sp_tally.get_slice(tally.scores, filters, + filter_bins, tally.nuclides) self.tallies[tally_type] = sp_tally def get_xs(self, groups='all', subdomains='all', nuclides='all', diff --git a/openmc/tallies.py b/openmc/tallies.py index dc58c2f6d..0bfdc299a 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2366,7 +2366,8 @@ class Tally(object): if filter_type in ['energy', 'energyout']: bin_indices.extend([bin_index, bin_index+1]) elif filter_type == 'distribcell': - bin_indices.append(0) + indices = [(bin,) for bin in range(filter.num_bins)] + bin_indices.extend(indices) else: bin_indices.append(bin_index) From 9451b374ab794227d636a6fb81b6ba004c81adca Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 13:06:28 -0400 Subject: [PATCH 82/91] Updated .gitignore with MGXS IPython Notebook-generated files, re-ran other Notebook examples to update documentation --- .gitignore | 7 +- .../examples/pandas-dataframes.ipynb | 1422 ++++++++++++++++- .../pythonapi/examples/tally-arithmetic.ipynb | 660 +++++++- 3 files changed, 1972 insertions(+), 117 deletions(-) diff --git a/.gitignore b/.gitignore index c5c4c729d..7c6e6d9c2 100644 --- a/.gitignore +++ b/.gitignore @@ -64,5 +64,8 @@ data/nndc # IPython notebook checkpoints .ipynb_checkpoints -# OpenMOC tracks -*.data \ No newline at end of file +# Multi-group cross section IPython Notebook +docs/source/pythonapi/examples/*.xml +docs/source/pythonapi/examples/*.png +docs/source/pythonapi/examples/*.xls +docs/source/pythonapi/examples/tracks \ No newline at end of file diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index f227e2f71..c7da78a6e 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -385,7 +385,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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDExOjE3\nOjA5LTA0OjAw0jfqaAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QxMToxNzowOS0wNDow\nMKNqUtQAAAAASUVORK5CYII=\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDEzOjAz\nOjU5LTA0OjAwMu4u/QAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QxMzowMzo1OS0wNDow\nMEOzlkEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -558,7 +558,6 @@ "name": "stdout", "output_type": "stream", "text": [ - "rm: cannot remove ‘statepoint.*’: No such file or directory\n", "\n", " .d88888b. 888b d888 .d8888b.\n", " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", @@ -576,7 +575,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 11:17:09\n", + " Date/Time: 2015-10-03 13:03:59\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -644,20 +643,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 7.1300E-01 seconds\n", - " Reading cross sections = 1.5900E-01 seconds\n", - " Total time in simulation = 1.5700E+01 seconds\n", - " Time in transport only = 1.5659E+01 seconds\n", - " Time in inactive batches = 2.1510E+00 seconds\n", - " Time in active batches = 1.3549E+01 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 3.9400E-01 seconds\n", + " Reading cross sections = 8.8000E-02 seconds\n", + " Total time in simulation = 1.0755E+01 seconds\n", + " Time in transport only = 1.0746E+01 seconds\n", + " Time in inactive batches = 1.2680E+00 seconds\n", + " Time in active batches = 9.4870E+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 = 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.6427E+01 seconds\n", - " Calculation Rate (inactive) = 5811.25 neutrons/second\n", - " Calculation Rate (active) = 2767.73 neutrons/second\n", + " Total time elapsed = 1.1159E+01 seconds\n", + " Calculation Rate (inactive) = 9858.04 neutrons/second\n", + " Calculation Rate (active) = 3952.78 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -718,20 +717,7 @@ "collapsed": false, "scrolled": true }, - "outputs": [ - { - "ename": "KeyError", - "evalue": "10003", - "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 summary file and link with statepoint\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0msu\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSummary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'summary.h5'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0msp\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[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.0-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 610\u001b[0m \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[0;32m 611\u001b[0m \u001b[1;31m# Get the Tally name from the summary file\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 612\u001b[1;33m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\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[0mname\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 613\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwith_summary\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 614\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mKeyError\u001b[0m: 10003" - ] - } - ], + "outputs": [], "source": [ "# Load the summary file and link with statepoint\n", "su = Summary('summary.h5')\n", @@ -747,11 +733,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tally\n", + "\tID =\t10000\n", + "\tName =\tmesh tally\n", + "\tFilters =\t\n", + " \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", + "\tEstimator =\ttracklength\n", + "\n" + ] + } + ], "source": [ "# Find the mesh tally with the StatePoint API\n", "tally = sp.get_tally(name='mesh tally')\n", @@ -769,11 +772,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[ 0.1127471 ]]\n", + "\n", + " [[ 0.06599162]]\n", + "\n", + " [[ 0.25310075]]\n", + "\n", + " [[ 0.10150973]]]\n" + ] + } + ], "source": [ "# Get the relative error for the thermal fission reaction \n", "# rates in the four corner pins \n", @@ -785,11 +802,271 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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 1energy [MeV]scoremeanstd. dev.
xyz
0111(0.0e+00 - 6.3e-07)fission0.0002240.000025
1111(0.0e+00 - 6.3e-07)nu-fission0.0005460.000062
2111(6.3e-07 - 2.0e+01)fission0.0000710.000004
3111(6.3e-07 - 2.0e+01)nu-fission0.0001870.000010
4121(0.0e+00 - 6.3e-07)fission0.0003920.000045
5121(0.0e+00 - 6.3e-07)nu-fission0.0009550.000110
6121(6.3e-07 - 2.0e+01)fission0.0000960.000005
7121(6.3e-07 - 2.0e+01)nu-fission0.0002520.000014
8131(0.0e+00 - 6.3e-07)fission0.0005510.000053
9131(0.0e+00 - 6.3e-07)nu-fission0.0013430.000130
10131(6.3e-07 - 2.0e+01)fission0.0001310.000008
11131(6.3e-07 - 2.0e+01)nu-fission0.0003430.000019
12141(0.0e+00 - 6.3e-07)fission0.0006880.000063
13141(0.0e+00 - 6.3e-07)nu-fission0.0016760.000153
14141(6.3e-07 - 2.0e+01)fission0.0001510.000007
15141(6.3e-07 - 2.0e+01)nu-fission0.0003950.000019
16151(0.0e+00 - 6.3e-07)fission0.0007850.000065
17151(0.0e+00 - 6.3e-07)nu-fission0.0019140.000158
18151(6.3e-07 - 2.0e+01)fission0.0001870.000008
19151(6.3e-07 - 2.0e+01)nu-fission0.0004870.000019
\n", + "
" + ], + "text/plain": [ + " mesh 1 energy [MeV] score mean std. dev.\n", + " x y z \n", + "0 1 1 1 (0.0e+00 - 6.3e-07) fission 0.000224 0.000025\n", + "1 1 1 1 (0.0e+00 - 6.3e-07) nu-fission 0.000546 0.000062\n", + "2 1 1 1 (6.3e-07 - 2.0e+01) fission 0.000071 0.000004\n", + "3 1 1 1 (6.3e-07 - 2.0e+01) nu-fission 0.000187 0.000010\n", + "4 1 2 1 (0.0e+00 - 6.3e-07) fission 0.000392 0.000045\n", + "5 1 2 1 (0.0e+00 - 6.3e-07) nu-fission 0.000955 0.000110\n", + "6 1 2 1 (6.3e-07 - 2.0e+01) fission 0.000096 0.000005\n", + "7 1 2 1 (6.3e-07 - 2.0e+01) nu-fission 0.000252 0.000014\n", + "8 1 3 1 (0.0e+00 - 6.3e-07) fission 0.000551 0.000053\n", + "9 1 3 1 (0.0e+00 - 6.3e-07) nu-fission 0.001343 0.000130\n", + "10 1 3 1 (6.3e-07 - 2.0e+01) fission 0.000131 0.000008\n", + "11 1 3 1 (6.3e-07 - 2.0e+01) nu-fission 0.000343 0.000019\n", + "12 1 4 1 (0.0e+00 - 6.3e-07) fission 0.000688 0.000063\n", + "13 1 4 1 (0.0e+00 - 6.3e-07) nu-fission 0.001676 0.000153\n", + "14 1 4 1 (6.3e-07 - 2.0e+01) fission 0.000151 0.000007\n", + "15 1 4 1 (6.3e-07 - 2.0e+01) nu-fission 0.000395 0.000019\n", + "16 1 5 1 (0.0e+00 - 6.3e-07) fission 0.000785 0.000065\n", + "17 1 5 1 (0.0e+00 - 6.3e-07) nu-fission 0.001914 0.000158\n", + "18 1 5 1 (6.3e-07 - 2.0e+01) fission 0.000187 0.000008\n", + "19 1 5 1 (6.3e-07 - 2.0e+01) nu-fission 0.000487 0.000019" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Get a pandas dataframe for the mesh tally data\n", "df = tally.get_pandas_dataframe(nuclides=False)\n", @@ -800,11 +1077,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\nBPCvjMC6bD6xSh4AAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create a boxplot to view the distribution of\n", "# fission and nu-fission rates in the pins\n", @@ -813,11 +1101,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nefX/AdmeWI23zkQnAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Extract thermal nu-fission rates from pandas\n", "fiss = df[df['score'] == 'nu-fission']\n", @@ -842,11 +1151,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tally\n", + "\tID =\t10001\n", + "\tName =\tcell tally\n", + "\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", + "\tEstimator =\tanalog\n", + "\n" + ] + } + ], "source": [ "# Find the cell Tally with the StatePoint API\n", "tally = sp.get_tally(name='cell tally')\n", @@ -857,11 +1182,202 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cellnuclidescoremeanstd. dev.
010000U-235scatter-Y0,00.0383300.001119
110000U-235scatter-Y1,-10.0000080.000341
210000U-235scatter-Y1,0-0.0003420.000342
310000U-235scatter-Y1,10.0002010.000262
410000U-235scatter-Y2,-20.0001360.000152
510000U-235scatter-Y2,-10.0000420.000131
610000U-235scatter-Y2,00.0003030.000185
710000U-235scatter-Y2,1-0.0004070.000184
810000U-235scatter-Y2,2-0.0001450.000120
910000U-238scatter-Y0,02.3193220.006166
1010000U-238scatter-Y1,-1-0.0236380.001940
1110000U-238scatter-Y1,0-0.0034630.001892
1210000U-238scatter-Y1,10.0250990.002270
1310000U-238scatter-Y2,-2-0.0006170.001197
1410000U-238scatter-Y2,-10.0025490.001187
1510000U-238scatter-Y2,00.0071210.001646
1610000U-238scatter-Y2,1-0.0000580.001323
1710000U-238scatter-Y2,2-0.0022350.000867
\n", + "
" + ], + "text/plain": [ + " cell nuclide score mean std. dev.\n", + "0 10000 U-235 scatter-Y0,0 0.038330 0.001119\n", + "1 10000 U-235 scatter-Y1,-1 0.000008 0.000341\n", + "2 10000 U-235 scatter-Y1,0 -0.000342 0.000342\n", + "3 10000 U-235 scatter-Y1,1 0.000201 0.000262\n", + "4 10000 U-235 scatter-Y2,-2 0.000136 0.000152\n", + "5 10000 U-235 scatter-Y2,-1 0.000042 0.000131\n", + "6 10000 U-235 scatter-Y2,0 0.000303 0.000185\n", + "7 10000 U-235 scatter-Y2,1 -0.000407 0.000184\n", + "8 10000 U-235 scatter-Y2,2 -0.000145 0.000120\n", + "9 10000 U-238 scatter-Y0,0 2.319322 0.006166\n", + "10 10000 U-238 scatter-Y1,-1 -0.023638 0.001940\n", + "11 10000 U-238 scatter-Y1,0 -0.003463 0.001892\n", + "12 10000 U-238 scatter-Y1,1 0.025099 0.002270\n", + "13 10000 U-238 scatter-Y2,-2 -0.000617 0.001197\n", + "14 10000 U-238 scatter-Y2,-1 0.002549 0.001187\n", + "15 10000 U-238 scatter-Y2,0 0.007121 0.001646\n", + "16 10000 U-238 scatter-Y2,1 -0.000058 0.001323\n", + "17 10000 U-238 scatter-Y2,2 -0.002235 0.000867" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Get a pandas dataframe for the cell tally data\n", "df = tally.get_pandas_dataframe()\n", @@ -879,11 +1395,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[ 0.00086668 0.0061658 ]\n", + " [ 0.00011981 0.00111862]]]\n" + ] + } + ], "source": [ "# Get the standard deviations for two of the spherical harmonic\n", "# scattering reaction rates \n", @@ -901,11 +1426,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tally\n", + "\tID =\t10002\n", + "\tName =\tdistribcell tally\n", + "\tFilters =\t\n", + " \t\tdistribcell\t[10002]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'absorption', u'scatter']\n", + "\tEstimator =\ttracklength\n", + "\n" + ] + } + ], "source": [ "# Find the distribcell Tally with the StatePoint API\n", "tally = sp.get_tally(name='distribcell tally')\n", @@ -923,11 +1464,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[ 0.03658762]]]\n" + ] + } + ], "source": [ "# Get the relative error for the scattering reaction rates in\n", "# the first 30 distribcell instances \n", @@ -945,11 +1494,199 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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.
558279absorption0.0000810.000008
559279scatter0.0131090.000358
560280absorption0.0000880.000010
561280scatter0.0143950.000586
562281absorption0.0000970.000010
563281scatter0.0146370.000427
564282absorption0.0001070.000009
565282scatter0.0156830.000552
566283absorption0.0001100.000009
567283scatter0.0162930.000627
568284absorption0.0001110.000007
569284scatter0.0170320.000445
570285absorption0.0001120.000006
571285scatter0.0176660.000425
572286absorption0.0001230.000011
573286scatter0.0177060.000597
574287absorption0.0001080.000011
575287scatter0.0173390.000664
576288absorption0.0001290.000011
577288scatter0.0184520.000523
\n", + "
" + ], + "text/plain": [ + " distribcell score mean std. dev.\n", + "558 279 absorption 0.000081 0.000008\n", + "559 279 scatter 0.013109 0.000358\n", + "560 280 absorption 0.000088 0.000010\n", + "561 280 scatter 0.014395 0.000586\n", + "562 281 absorption 0.000097 0.000010\n", + "563 281 scatter 0.014637 0.000427\n", + "564 282 absorption 0.000107 0.000009\n", + "565 282 scatter 0.015683 0.000552\n", + "566 283 absorption 0.000110 0.000009\n", + "567 283 scatter 0.016293 0.000627\n", + "568 284 absorption 0.000111 0.000007\n", + "569 284 scatter 0.017032 0.000445\n", + "570 285 absorption 0.000112 0.000006\n", + "571 285 scatter 0.017666 0.000425\n", + "572 286 absorption 0.000123 0.000011\n", + "573 286 scatter 0.017706 0.000597\n", + "574 287 absorption 0.000108 0.000011\n", + "575 287 scatter 0.017339 0.000664\n", + "576 288 absorption 0.000129 0.000011\n", + "577 288 scatter 0.018452 0.000523" + ] + }, + "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", @@ -967,11 +1704,415 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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
01000301000100010002100000absorption0.0001310.000014
11000301000100010002100000scatter0.0185820.000680
21000301000110010002100001absorption0.0002200.000023
31000301000110010002100001scatter0.0287110.001186
41000301000120010002100002absorption0.0002950.000022
51000301000120010002100002scatter0.0387820.001084
61000301000130010002100003absorption0.0003310.000022
71000301000130010002100003scatter0.0457720.001084
81000301000140010002100004absorption0.0004190.000026
91000301000140010002100004scatter0.0559750.001344
101000301000150010002100005absorption0.0005140.000024
111000301000150010002100005scatter0.0632890.001605
121000301000160010002100006absorption0.0005910.000027
131000301000160010002100006scatter0.0710110.002058
141000301000170010002100007absorption0.0006710.000036
151000301000170010002100007scatter0.0778910.001952
161000301000180010002100008absorption0.0007210.000031
171000301000180010002100008scatter0.0863930.001722
181000301000190010002100009absorption0.0007480.000033
191000301000190010002100009scatter0.0908610.001669
\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 0 0 10002 10000 0 absorption \n", + "1 10003 0 10001 0 0 0 10002 10000 0 scatter \n", + "2 10003 0 10001 1 0 0 10002 10000 1 absorption \n", + "3 10003 0 10001 1 0 0 10002 10000 1 scatter \n", + "4 10003 0 10001 2 0 0 10002 10000 2 absorption \n", + "5 10003 0 10001 2 0 0 10002 10000 2 scatter \n", + "6 10003 0 10001 3 0 0 10002 10000 3 absorption \n", + "7 10003 0 10001 3 0 0 10002 10000 3 scatter \n", + "8 10003 0 10001 4 0 0 10002 10000 4 absorption \n", + "9 10003 0 10001 4 0 0 10002 10000 4 scatter \n", + "10 10003 0 10001 5 0 0 10002 10000 5 absorption \n", + "11 10003 0 10001 5 0 0 10002 10000 5 scatter \n", + "12 10003 0 10001 6 0 0 10002 10000 6 absorption \n", + "13 10003 0 10001 6 0 0 10002 10000 6 scatter \n", + "14 10003 0 10001 7 0 0 10002 10000 7 absorption \n", + "15 10003 0 10001 7 0 0 10002 10000 7 scatter \n", + "16 10003 0 10001 8 0 0 10002 10000 8 absorption \n", + "17 10003 0 10001 8 0 0 10002 10000 8 scatter \n", + "18 10003 0 10001 9 0 0 10002 10000 9 absorption \n", + "19 10003 0 10001 9 0 0 10002 10000 9 scatter \n", + "\n", + " mean std. dev. \n", + " \n", + " \n", + "0 0.000131 0.000014 \n", + "1 0.018582 0.000680 \n", + "2 0.000220 0.000023 \n", + "3 0.028711 0.001186 \n", + "4 0.000295 0.000022 \n", + "5 0.038782 0.001084 \n", + "6 0.000331 0.000022 \n", + "7 0.045772 0.001084 \n", + "8 0.000419 0.000026 \n", + "9 0.055975 0.001344 \n", + "10 0.000514 0.000024 \n", + "11 0.063289 0.001605 \n", + "12 0.000591 0.000027 \n", + "13 0.071011 0.002058 \n", + "14 0.000671 0.000036 \n", + "15 0.077891 0.001952 \n", + "16 0.000721 0.000031 \n", + "17 0.086393 0.001722 \n", + "18 0.000748 0.000033 \n", + "19 0.090861 0.001669 " + ] + }, + "execution_count": 34, + "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", @@ -982,11 +2123,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.
count289.000000289.000000
mean0.0004170.000020
std0.0002380.000008
min0.0000200.000003
25%0.0002140.000014
50%0.0003940.000019
75%0.0006270.000025
max0.0009150.000049
\n", + "
" + ], + "text/plain": [ + " mean std. dev.\n", + " \n", + " \n", + "count 289.000000 289.000000\n", + "mean 0.000417 0.000020\n", + "std 0.000238 0.000008\n", + "min 0.000020 0.000003\n", + "25% 0.000214 0.000014\n", + "50% 0.000394 0.000019\n", + "75% 0.000627 0.000025\n", + "max 0.000915 0.000049" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Show summary statistics for absorption distribcell tally data\n", "absorption = df[df['score'] == 'absorption']\n", @@ -1005,11 +2232,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: 0.498462484897\n" + ] + } + ], "source": [ "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", @@ -1035,11 +2270,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: 1.61253828675e-41\n" + ] + } + ], "source": [ "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", @@ -1063,11 +2306,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 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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\norlkyRKeP3+erVp1IWCgqI78DIFVDAuLossVo41pQ4rqwy2ZmHgjbbYuFKvqVlBVI1i3bnMajRMo\nZofbaLNF+F0sBAtI4yGNR2kSSvozMzO5Zs0aLlmyxFtp9Vr1d+p0K4HV9ATQgXrU6XoQeJ6KUpuT\nJz9T+EEoTugNG7amw5FIp7Mbw8NjvUUbe/S4g6Jib87VvO+Vty8e/WFh0QS20RPstdsT+eGHH+bZ\nfvPmzbTbI+l01qfVGsYFCxbx6aefZnh4RZrN5Vi/fjMeOnTIu/2MGTNoMPhWEn6Fwp1zG1W1OgcO\nHMLGjdvSZqtB4f6qR1Ep+B1GR1fzHmfQoH9RBNQ9x9nJ6OjqHDz4Ier1U7TnXtBmEdna1buFgIF3\n331/ntldcnIyq1evR5OpEnW6kVTVBD722JMFjvfp06dpt0dSuKNI4FM6nVH866+/Cv1fpaamagH5\ntfQ013I6b+XUqVO928yf/xLNZjtVNZ7h4bHctWuX9n/0XTDxGZs06cixY59gtWpN2Lx5F37zzTdM\nSUlhixadaTCYGB5eievWrStUUyCANB6hbTwkocWQIcNpNI7TTgbrKPzkHjdOCo1Ga5FWy0yfPkOr\ntOqpwjuPN97YgyS5ePF/tF7tRyiqurbnlCkFNzM6cuQIq1Spr13lhtFqrcpu3frmWVKbkZGhXUF7\nakMdpF7vok7XjqKrYWMCbVmhQrw3nrN//35tietSAl9RUdry3nvv56pVq7h161a63W5mZmZy8uTJ\ntFq7Myf/xU293uTN5J816wXabN00N46bJtNY3nrrXdoJdixFwPlhiuCzZzx3sly52AI/d3Z2Nleu\nXMlp06YV2nHw66+/ptOZ6HMiJ53O+oW23RVFJQdTLCvvps3Q3qaiVMxTBTctLY0HDx70xnPuvXeY\nj2EkdboF7Nbt9qu+V0kCaTyk8ZCUHCdOnGB0dDXa7T1osTQh0NXnhJRJo9FapFav9933EP0bS33P\nuLi6JMVJZOLEKbTZXLRY7HzwwVFXNUgJCU1pMEzTTtxfetu65ubo0aNUlGif9/yGQGXm5FecI+Ck\n3d6aGzdu9O63fft2tmnTnbVrt+SkSc/kuxJo69atVNUqFKu1xFV2eHis94R45coVdu9+G222GNrt\nNVizZmOePHmSnTr1pEgMbEaxuEClwdCLOt0TVJQYLl/+Zp73uh6OHDmi9WPxFMg8SoslLE/9sNx8\n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\nRCKRSCSB5/8ByMyfADZGvh4AAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Extract the scatter tally data from pandas\n", "scatter = df[df['score'] == 'scatter']\n", @@ -1080,11 +2355,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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\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/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 4ce764182..a0055b8b1 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -369,7 +369,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\nMTUtMTAtMDNUMTE6MTY6NTQtMDQ6MDAUwu7yAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDExOjE2OjU0LTA0OjAwZZ9WTgAAAABJRU5ErkJggg==\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\nMTUtMTAtMDNUMTM6MDI6MDItMDQ6MDCXyx9dAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDEzOjAyOjAyLTA0OjAw5pan4QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -563,7 +563,6 @@ "name": "stdout", "output_type": "stream", "text": [ - "rm: cannot remove ‘statepoint.*’: No such file or directory\n", "\n", " .d88888b. 888b d888 .d8888b.\n", " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", @@ -581,7 +580,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.0\n", " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", - " Date/Time: 2015-10-03 11:16:55\n", + " Date/Time: 2015-10-03 13:02:02\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -637,20 +636,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 6.8600E-01 seconds\n", - " Reading cross sections = 1.5400E-01 seconds\n", - " Total time in simulation = 2.4023E+01 seconds\n", - " Time in transport only = 2.3994E+01 seconds\n", - " Time in inactive batches = 3.1010E+00 seconds\n", - " Time in active batches = 2.0922E+01 seconds\n", + " Total time for initialization = 4.1600E-01 seconds\n", + " Reading cross sections = 9.1000E-02 seconds\n", + " Total time in simulation = 1.4793E+01 seconds\n", + " Time in transport only = 1.4785E+01 seconds\n", + " Time in inactive batches = 2.1450E+00 seconds\n", + " Time in active batches = 1.2648E+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 = 0.0000E+00 seconds\n", - " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 2.4724E+01 seconds\n", - " Calculation Rate (inactive) = 4030.96 neutrons/second\n", - " Calculation Rate (active) = 1792.37 neutrons/second\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 1.5219E+01 seconds\n", + " Calculation Rate (inactive) = 5827.51 neutrons/second\n", + " Calculation Rate (active) = 2964.90 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -722,20 +721,7 @@ "collapsed": false, "scrolled": true }, - "outputs": [ - { - "ename": "KeyError", - "evalue": "10003", - "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 summary file and link with statepoint\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0msu\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSummary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'summary.h5'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0msp\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[1;32m/usr/local/lib/python2.7/dist-packages/openmc-0.7.0-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 610\u001b[0m \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[0;32m 611\u001b[0m \u001b[1;31m# Get the Tally name from the summary file\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 612\u001b[1;33m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\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[0mname\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 613\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwith_summary\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 614\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mKeyError\u001b[0m: 10003" - ] - } - ], + "outputs": [], "source": [ "# Load the summary file and link with statepoint\n", "su = Summary('summary.h5')\n", @@ -753,11 +739,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "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", + "
nuclidescoremeanstd. dev.
0total(nu-fission / absorption)1.0463530.00935
\n", + "
" + ], + "text/plain": [ + " nuclide score mean std. dev.\n", + "0 total (nu-fission / absorption) 1.046353 0.00935" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Compute k-infinity using tally arithmetic\n", "fiss_rate = sp.get_tally(name='fiss. rate')\n", @@ -777,11 +799,49 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "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", + "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)totalabsorption0.958730.00774
\n", + "
" + ], + "text/plain": [ + " energy [MeV] nuclide score mean std. dev.\n", + "0 (0.0e+00 - 6.2e-01) total absorption 0.95873 0.00774" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Compute resonance escape probability using tally arithmetic\n", "therm_abs_rate = sp.get_tally(name='therm. abs. rate')\n", @@ -799,11 +859,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "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", + "
nuclidescoremeanstd. dev.
0totalnu-fission1.0916220.011163
\n", + "
" + ], + "text/plain": [ + " nuclide score mean std. dev.\n", + "0 total nu-fission 1.091622 0.011163" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Compute fast fission factor factor using tally arithmetic\n", "therm_fiss_rate = sp.get_tally(name='therm. fiss. rate')\n", @@ -822,11 +918,51 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "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", + "
energy [MeV]cellnuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)10000totalabsorption0.8020120.006609
\n", + "
" + ], + "text/plain": [ + " energy [MeV] cell nuclide score mean std. dev.\n", + "0 (0.0e+00 - 6.2e-01) 10000 total absorption 0.802012 0.006609" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Compute thermal flux utilization factor using tally arithmetic\n", "fuel_therm_abs_rate = sp.get_tally(name='fuel therm. abs. rate')\n", @@ -843,11 +979,49 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "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", + "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)total(nu-fission / absorption)1.2466040.011825
\n", + "
" + ], + "text/plain": [ + " energy [MeV] nuclide score mean std. dev.\n", + "0 (0.0e+00 - 6.2e-01) total (nu-fission / absorption) 1.246604 0.011825" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Compute neutrons produced per absorption (eta) using tally arithmetic\n", "eta = therm_fiss_rate / fuel_therm_abs_rate\n", @@ -863,11 +1037,52 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "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", + "
energy [MeV]nuclidescoremeanstd. dev.
0(0.0e+00 - 6.2e-01)total(((absorption * nu-fission) * absorption) * (n...1.0463530.01894
\n", + "
" + ], + "text/plain": [ + " energy [MeV] nuclide \\\n", + "0 (0.0e+00 - 6.2e-01) total \n", + "\n", + " score mean std. dev. \n", + "0 (((absorption * nu-fission) * absorption) * (n... 1.046353 0.01894 " + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "keff = res_esc * fast_fiss * therm_util * eta\n", "keff.get_pandas_dataframe()" @@ -884,7 +1099,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { "collapsed": false, "scrolled": true @@ -900,11 +1115,131 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "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", + "
cellenergy [MeV]nuclidescoremeanstd. dev.
010000(0.0e+00 - 6.3e-07)(U-238 / total)(nu-fission / flux)6.641746e-076.859257e-09
110000(0.0e+00 - 6.3e-07)(U-238 / total)(scatter / flux)2.099861e-011.966887e-03
210000(0.0e+00 - 6.3e-07)(U-235 / total)(nu-fission / flux)3.556665e-013.717881e-03
310000(0.0e+00 - 6.3e-07)(U-235 / total)(scatter / flux)5.554650e-035.218094e-05
410000(6.3e-07 - 2.0e+01)(U-238 / total)(nu-fission / flux)7.165057e-035.625590e-05
510000(6.3e-07 - 2.0e+01)(U-238 / total)(scatter / flux)2.276535e-018.544314e-04
610000(6.3e-07 - 2.0e+01)(U-235 / total)(nu-fission / flux)8.089493e-035.080374e-05
710000(6.3e-07 - 2.0e+01)(U-235 / total)(scatter / flux)3.370111e-031.361116e-05
\n", + "
" + ], + "text/plain": [ + " cell energy [MeV] nuclide score \\\n", + "0 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (nu-fission / flux) \n", + "1 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (scatter / flux) \n", + "2 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (nu-fission / flux) \n", + "3 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (scatter / flux) \n", + "4 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (nu-fission / flux) \n", + "5 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (scatter / flux) \n", + "6 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (nu-fission / flux) \n", + "7 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (scatter / flux) \n", + "\n", + " mean std. dev. \n", + "0 6.641746e-07 6.859257e-09 \n", + "1 2.099861e-01 1.966887e-03 \n", + "2 3.556665e-01 3.717881e-03 \n", + "3 5.554650e-03 5.218094e-05 \n", + "4 7.165057e-03 5.625590e-05 \n", + "5 2.276535e-01 8.544314e-04 \n", + "6 8.089493e-03 5.080374e-05 \n", + "7 3.370111e-03 1.361116e-05 " + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "fuel_xs = fuel_rxn_rates / flux\n", "fuel_xs.get_pandas_dataframe()" @@ -919,11 +1254,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[ 6.64174599e-07]\n", + " [ 3.55666541e-01]]\n", + "\n", + " [[ 7.16505734e-03]\n", + " [ 8.08949336e-03]]]\n" + ] + } + ], "source": [ "# Show how to use Tally.get_values(...) with a CrossScore\n", "nu_fiss_xs = fuel_xs.get_values(scores=['(nu-fission / flux)'])\n", @@ -939,11 +1286,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[ 0.00555465]]\n", + "\n", + " [[ 0.00337011]]]\n" + ] + } + ], "source": [ "# Show how to use Tally.get_values(...) with a CrossScore and CrossNuclide\n", "u235_scatter_xs = fuel_xs.get_values(nuclides=['(U-235 / total)'], \n", @@ -953,11 +1310,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[ 0.22765348]\n", + " [ 0.00337011]]]\n" + ] + } + ], "source": [ "# Show how to use Tally.get_values(...) with a CrossFilter and CrossScore\n", "fast_scatter_xs = fuel_xs.get_values(filters=['energy'], \n", @@ -975,11 +1341,81 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "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", + "
cellenergy [MeV]nuclidescoremeanstd. dev.
010000(0.0e+00 - 6.3e-07)U-238nu-fission0.0000021.284890e-08
110000(0.0e+00 - 6.3e-07)U-235nu-fission0.8679827.022256e-03
210000(6.3e-07 - 2.0e+01)U-238nu-fission0.0828016.087096e-04
310000(6.3e-07 - 2.0e+01)U-235nu-fission0.0934845.275039e-04
\n", + "
" + ], + "text/plain": [ + " cell energy [MeV] nuclide score mean std. dev.\n", + "0 10000 (0.0e+00 - 6.3e-07) U-238 nu-fission 0.000002 1.284890e-08\n", + "1 10000 (0.0e+00 - 6.3e-07) U-235 nu-fission 0.867982 7.022256e-03\n", + "2 10000 (6.3e-07 - 2.0e+01) U-238 nu-fission 0.082801 6.087096e-04\n", + "3 10000 (6.3e-07 - 2.0e+01) U-235 nu-fission 0.093484 5.275039e-04" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# \"Slice\" the nu-fission data into a new derived Tally\n", "nu_fission_rates = fuel_rxn_rates.get_slice(scores=['nu-fission'])\n", @@ -988,11 +1424,131 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "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", + "
cellenergy [MeV]nuclidescoremeanstd. dev.
010002(1.0e-08 - 1.1e-07)H-1scatter4.6205250.038249
110002(1.1e-07 - 1.2e-06)H-1scatter2.0368410.013203
210002(1.2e-06 - 1.3e-05)H-1scatter1.6599160.010107
310002(1.3e-05 - 1.4e-04)H-1scatter1.8615460.013328
410002(1.4e-04 - 1.5e-03)H-1scatter2.0496640.008215
510002(1.5e-03 - 1.6e-02)H-1scatter2.1621570.010245
610002(1.6e-02 - 1.7e-01)H-1scatter2.2244960.013796
710002(1.7e-01 - 1.9e+00)H-1scatter1.9975850.009161
810002(1.9e+00 - 2.0e+01)H-1scatter0.3734720.003922
\n", + "
" + ], + "text/plain": [ + " cell energy [MeV] nuclide score mean std. dev.\n", + "0 10002 (1.0e-08 - 1.1e-07) H-1 scatter 4.620525 0.038249\n", + "1 10002 (1.1e-07 - 1.2e-06) H-1 scatter 2.036841 0.013203\n", + "2 10002 (1.2e-06 - 1.3e-05) H-1 scatter 1.659916 0.010107\n", + "3 10002 (1.3e-05 - 1.4e-04) H-1 scatter 1.861546 0.013328\n", + "4 10002 (1.4e-04 - 1.5e-03) H-1 scatter 2.049664 0.008215\n", + "5 10002 (1.5e-03 - 1.6e-02) H-1 scatter 2.162157 0.010245\n", + "6 10002 (1.6e-02 - 1.7e-01) H-1 scatter 2.224496 0.013796\n", + "7 10002 (1.7e-01 - 1.9e+00) H-1 scatter 1.997585 0.009161\n", + "8 10002 (1.9e+00 - 2.0e+01) H-1 scatter 0.373472 0.003922" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# \"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", From bcf6428a57c885ff558625cdd3501d72687aecb3 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 13:09:55 -0400 Subject: [PATCH 83/91] Removed Excel file created by MGXS IPython Notebook from git tracking --- .gitignore | 1 + .../pythonapi/examples/mgxs/transport-xs.xls | Bin 5632 -> 0 bytes 2 files changed, 1 insertion(+) delete mode 100644 docs/source/pythonapi/examples/mgxs/transport-xs.xls diff --git a/.gitignore b/.gitignore index 7c6e6d9c2..08f7bd2e4 100644 --- a/.gitignore +++ b/.gitignore @@ -68,4 +68,5 @@ data/nndc docs/source/pythonapi/examples/*.xml docs/source/pythonapi/examples/*.png docs/source/pythonapi/examples/*.xls +docs/source/pythonapi/examples/mgxs docs/source/pythonapi/examples/tracks \ No newline at end of file diff --git a/docs/source/pythonapi/examples/mgxs/transport-xs.xls b/docs/source/pythonapi/examples/mgxs/transport-xs.xls deleted file mode 100644 index 86a8cee39962fec9c37bb88dddedbafc034ce043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 zcmeI0YiJZ#6vzK}cJ@`0m>rXd5yCW}@r59zAhl-VqfPrEG0_hZ3FvADn!4`lb|YvZ zCdT;5R>4nNL8N{uz7c$oh>Aq~ASgZv2ufn1RivdY3L>W4bIxSeo&6BD6hf6b%bvOC z+H8-)4+{#UM=@r#RE`%u?~^vWrFIs@`AFoRRhL(uP38XQtru(hf41gO`BdZR zj*3&m)=|__EHLZ_jkpG&ABOLv(IH4IkxU$>%u;= zXvW3*Umpuw7xt&WpMF$+@*81u{tDUbbJW>V$5$6`{Y%&pVOK@# z+P4n%S@oKM^St2Dz-nBao#R^m)z5&R0Y3wN2K)^88JLs|@arW%mHBnedDU|M1K`&Q z{$FQ|zI^rN{mj5Br0A1@iO-OvYZ}{W=8Kmq1eKc^UQ5M@`+p&~ZKLREY{CW^$EISs md)m;?wOo82ho^EP!}%RIQHx^h{&oEP`!6=g1nvG){C@x;tuRIa From 221f026470c1c5d67ed0694d57b6ea9261200051 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 14:30:16 -0400 Subject: [PATCH 84/91] Now using property decorators for surface coeffs in OpenCG compatibility module --- docs/source/pythonapi/examples/geometry.xml | 38 ++++++++ .../pythonapi/examples/materials-xy.png | Bin 0 -> 1271 bytes docs/source/pythonapi/examples/materials.xml | 20 +++++ docs/source/pythonapi/examples/plots.xml | 8 ++ docs/source/pythonapi/examples/settings.xml | 21 +++++ docs/source/pythonapi/examples/tallies.xml | 23 +++++ .../tracks/128_angles_0.1_cm_spacing.data | Bin 0 -> 108911 bytes openmc/opencg_compatible.py | 82 +++++++++--------- 8 files changed, 151 insertions(+), 41 deletions(-) create mode 100644 docs/source/pythonapi/examples/geometry.xml create mode 100644 docs/source/pythonapi/examples/materials-xy.png create mode 100644 docs/source/pythonapi/examples/materials.xml create mode 100644 docs/source/pythonapi/examples/plots.xml create mode 100644 docs/source/pythonapi/examples/settings.xml create mode 100644 docs/source/pythonapi/examples/tallies.xml create mode 100644 docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data diff --git a/docs/source/pythonapi/examples/geometry.xml b/docs/source/pythonapi/examples/geometry.xml new file mode 100644 index 000000000..8e9f1ef3d --- /dev/null +++ b/docs/source/pythonapi/examples/geometry.xml @@ -0,0 +1,38 @@ + + + + + + + + 1.26 1.26 + 17 17 + -10.71 -10.71 + +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 + + + + + + + + + + diff --git a/docs/source/pythonapi/examples/materials-xy.png b/docs/source/pythonapi/examples/materials-xy.png new file mode 100644 index 0000000000000000000000000000000000000000..534f7e5ff7251fbc6984a811cb22d37ea2df8c4e GIT binary patch literal 1271 zcmZ{kZB&wH7{_ljJ7-pN={b=rqgImUR4U5_0<%G2Qy`;BX__zP>(rBUL`@$h)2v)( zSr(d2%W9rv%#}qY&6l*Y$jq?WFlFTn3L2<@JkLE^pY~xNuIqRI&$<5p>(hM|aoNm; z_Fviq02T(Y=)qQ+Kh_*uYo8MRR&T}JSpOh@0Hi19TO#eO+9oZSxdqfeTQ*`9E23G! zK>%bD0Lab%WX>H1;2;rz(Y*kW$^pQoR>-#dS!Wk;19=Px;Q>d-k=#>3^43xR{MnCz zQQtG^;HaGo%PKxgW$j9{^5dHYwmwRv0$}?(fbP$WQ;mzs$!g*k1=&SocU~+gF18PG z-{d98uMjc0k-pkSeq}S0d&)K`()QLC%GXraZRU9H=SeFb6s|b@pkiR+G^_rHw?jut z6dudrtySi?t^H_2_@{)Ng59fQG6;jtxVF{XCLOvKrc*nUmt4Z|l$=?HpyMd2e!23XuuQ0( zxY4o}2C<#at8N@SA1D*uV=VIaC?2a$8({d?VU-=e*}`@cnTolIpLHdW2+1+<^_%xq zlpG(QI7dzbCNr$wlbM-X_g*q;$lAUf5!dz)GHD0wa9k)=?;^}Qd|}$hxo)aqysF21 zedQBz*@uG0+UwO_@{M8XtfE)H-^9lGG%Cu!rdcD)DGCT-@1ZHRCh|L&K52_hjFirM ziVuHNyWTMrd3=TD-g}``RM?Q$V|kjeqvq8kL5#h2+3j4D6IoTFLiwFMNHJYjHv3h; z<*{a6wo;LSX%b!i?m_nHa2F3)%1(^hAC*u&DAxt2w5#X5=ZqN>go)i{SY7p*@TF-I zm=G{y@)n=qz#fZ|H*h>Ja9Tcr-93lZsSA_Li@h#k(e28wo?PkP%@@zRBb|)s7PPBN zpzN~73k&Tu^b4ez#)Q?v`dE{hZ&-(^*DczTTGu+nynR3@M)LQ=~(jF`>b-&;BButEeKO>CGmk zol(*lA9#=E)Pb~D$_o@o&5$BmQPn#+j27l%p|X_KCPHV zhS8Q~cj1y=Bvw^bG%7z-3kd@j+->B93i*kQG}$0wW%%3F#a-6l?kZsL1u>C=eWd6E z`>X)#iR(6ct|NL9H}KYNAQ3l^Hg5JL`jCjk^;$3VKZYMuV&eB_{J-J5hO^cS20#FV KO|RdwSM(2?bdD_m literal 0 HcmV?d00001 diff --git a/docs/source/pythonapi/examples/materials.xml b/docs/source/pythonapi/examples/materials.xml new file mode 100644 index 000000000..42c2e5029 --- /dev/null +++ b/docs/source/pythonapi/examples/materials.xml @@ -0,0 +1,20 @@ + + + 71c + + + + + + + + + + + + + + + + + diff --git a/docs/source/pythonapi/examples/plots.xml b/docs/source/pythonapi/examples/plots.xml new file mode 100644 index 000000000..512070a33 --- /dev/null +++ b/docs/source/pythonapi/examples/plots.xml @@ -0,0 +1,8 @@ + + + + 0 0 0 + 21.5 21.5 + 250 250 + + diff --git a/docs/source/pythonapi/examples/settings.xml b/docs/source/pythonapi/examples/settings.xml new file mode 100644 index 000000000..26a23e942 --- /dev/null +++ b/docs/source/pythonapi/examples/settings.xml @@ -0,0 +1,21 @@ + + + + 2500 + 20 + 5 + + + + -10.71 -10.71 -10 10.71 10.71 10.0 + + + + false + true + + + true + 200 + + diff --git a/docs/source/pythonapi/examples/tallies.xml b/docs/source/pythonapi/examples/tallies.xml new file mode 100644 index 000000000..61873a91d --- /dev/null +++ b/docs/source/pythonapi/examples/tallies.xml @@ -0,0 +1,23 @@ + + + + 17 17 + -10.71 -10.71 + 1.26 1.26 + + + + + fission nu-fission + + + + U-235 U-238 + scatter-y2 + + + + absorption scatter + + + diff --git a/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data b/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data new file mode 100644 index 0000000000000000000000000000000000000000..bbe6462a6c3b6855689590a0aaa161a18abec43c GIT binary patch literal 108911 zcmd^od%RplnQcn~LQn~c3d+@EE8H;ot>xrj*6LB{#nijVu_ z`ntY&&PZkPlDnvjH(2Z3NGCV)XPB7%;<+^XKSYJcnNuTS^x(@peeB2)BL_`$ul+|ZI`^Y< z{ci^zvggS0pO|~${v&T6x#S}koj=e0(S7{(k$H2^yYyq1gkLZH)W!bWCmwbBai_lf zs1x=d`S3?Byl~_rAIj5nfKOcV;d9TM>k$X-kKf#P{2vYotSvcl-;_By=E8G7G_IUX zZ)QEuiTgd|E94|(q?sW{-jX2)kQqAhV;`D($+@l~#+55aGq)yE=!>Sxt0nN&B)IL}4JI!BbHtTBA4rg5Skx$OOWZv9nRNjl*=dwO0~ldrE;lMy7n6Xx-EH)`?vqu$^A?YKRb)}*SdeppVx)o{k#0}-@#|{`!X%0 z@43K>_hIqB!sW&PY~y~MRy2Pmx_AGxt^3(7{Jhe=`=9N@&kpY0|4b4;JGy`4=T+|C z^5@m=_aZ+M>;H{({k!BuK9Dcu6Z!UKKzUF;Usja6U7lVpe&l0V_3x^p^1shIFLCdU zHE%hs`TqPJA8fvV|L9Zw`^aHGJjK7))8C!x-%Eeq=KcP?_Ti_`_3w?vkDlE8{K6xf zf3M&7=jMB*@vf8n-$&-W@vocT-}tZ1_r@pBIidOcW4C1Kg!lOO@IBy=4$`d$9`GU` z$QSa7d^bWl8YovNC(4cY|6j}Rny6IT=j^ZD^T(;1((s<__4S!we(t)B=>wlS>e^F( z@PB=KHT#TvYs@%wQ?m2k{x3NW-v>U~I>G(-%QpCDTk!Zk@YCzp&;7%LYYFfBuX|M| z-rIRdF_GA7f3HbMD_V1MzKgEx)w}SCU@e6+Nfj{(bi=X^atr9J*2;9rk|94&?l##t@?-Wd%jX>^(>?#<1@$S z`kQ?}#&zu9&|}~+&T!xFNxvE2n*UDv?eT-uZ=XK&V;K4^_$mH<`xNXy)c+7)o%CDq zQ~!7LMfHR92mGD%TkwOb?3_WCXODSjM((fFhI z1%D^~7W_leZ_htS{r2hmANT4>zZswF_rA?>_b7b1MZb@mdtGJ1mH&}o&g%JZo;#|> zH>1GeJ%Juu_|IScw8C#n;TNI36O6wt{LOPa>p#Z35)XYYUH53@cjXyL4__?DcjY(}S?=lH94+`i@(cwD6<6;CJO}z6}1_jb$F+U;73c-#1pD zN#pCf`n(2>~_D6Y9{!kx@!B6>j zI9b^JQMJHL252$q)Uu^b7f&#(GTc2fU@9;CoAkk2-Ag=lZkp@?CCu z*M@Zo%7OetkH2}_xBmIAS1wJww*~&vl<)jJ_J8;1=1b#4c~S#ky=H#yKY<_l#e39$ z17BWs#P1_Nc#&V^KdX|CG0ul)u3F6$@omkxh0zy9O+D@RVI>o<+7 zCT)`Z`ty;6H{Boe4}R@0%|bv%r zp!bQv-`MGyJpZ15b4vPN`q>ut7ybE`y>ov+`L(}5-wpnf#P`5Y`3HYi-*KKDu8*#? z%1`yzL;X|xfnWOz^v)WAak`a=4H^iiKmkEwlw{+jxS`fz;iRg2eeWc~u4^cVan&$`SHq7EB)(tnlTh=U#j z@9%+)$3Fy~^53n02)tQ;$Zx2RMEi%w57Iw;`or`O!B73qWvgiarT&lj>f|4SpY+G^ zzbyVC_(^{~zxIbg_=n&hihl_Hq4MfE<50{+Go+ zeEA3IA3pu@_=mug{-S<6`G>%he;he!%?%eH@fg~r#XmND^q6C=d(%USZ<~<+#+`3m z9LJYaoAaGTEqILAE&TO2{8Hn=i}yJHFz}U|&)E|3A^*VPJ^F`%FW-CVGZBya)Bcl< z2bQD~AL6t2^Zn@lbNv^q@0Rn6@^&9zF30!!^Xga96)pUzFZ2)0FAVt64b5*#|8gG9FZAcN11@Og*Yg|9FAV;Xiyx->jlMqB z>G~DnQU7{=6Y3)|_$mKAl%MJk{JyRI3-O2Xu)$C5=ODU$JGDQ>5BT-`2L531Q~dfo z7mR=EKg^%cZ=k0ZzwEz`Uia@#{h#y${FvVy&3a7j5C5?A3+=T(>#>C={RBVidrF3n zIx5Q#{g?U;JnHMvEdOKTrGK>ZpTF~$#V+5NZurN&Zur_&qlsV77x+isR_^RS@C5^3 zKd8~!f4=zCDGT57g*6s`b)TnKIkUxw( zGJ~#v>CYSAKBd(k(4OGOxX0ix@AGWF{>qns>pgV+t2}Qr`IG*ci(r@PX@3Z_jfWv!& zc98g>kJXKf^YyVV>y=Y3A^&N-?LBu%f6$+gY_qC${(|}r?U`&1{$TN+w~p@rSFia4 z&0lKwu4zbq{ds-${MPvk+6(;4GycTjZzS)h^}XeFx6%BiK7R$@e^;NEW^UW6&)T2% z2;(q=zk2vhdHuQiuYY(q@~7I=Q^_A%K40-)t^9}=l>dRIU@W)FU-{?N9`L~7Jz19NM{3|lR{ZyT{*%>T>-sb3fy9ULN$G^g z>H1Z9#c8YM{G@u^hw}9ip?;AsyhneL=?8zSzcS6|Pp;alyI#fj|F1ij?*Hr0OHY10 z*GCl}kstnI@K?6~H1XF@nZWa(#c!hf|N8Ul*S56kJK`baCxO2h{N?A;e0`iNfBlYs zA%7{|a3Rfq^yech|F-k|3;ts8mzI2r{H=5i-~X?cpCW&2`TWtXt@W?{4gO;AS0&z+ zza{++{FHyRKjInne^|IqWAIb`^-%xRe&E;s2E8))DSkYE!T6*2Rs6|=OIdl$;wb1@DIhmJpUm5%cnmc{}Oo8U&L1@ z{}Oo8f8aa$m%x*Mxtm1(PEmq%5Z|YLZq}YlPTQFN=wpwa^!+It6TfFfD1Y^clYSQG zU(I3Mq%|%0Q~%+BRS%!K-olSu^mqCEWP87S!ri~o{4dPhIOpvzt+McyFYZkDe_YO5 zuOGg*$-mUX*U#AeM9lxIGJg0L-jmr){GEgk@l~6CMm~S^-0Jz(`t(=j^M_DBNEh$T z{Q&$tUDj{#uX1f}j(5oyeSWub)DQFV|Lm-N!Hf5#l9ewp`0Iy1_i(HqU%rCRUzRRE zwDtPp=^>sFUuS3SWAQhB`g`Ip`ut_-HOJ@WM_irO0y*wIBFT&f+aS zhV{nem+|BHi^dSlUWZfJn1j+LGKf#cNU)XANb%mN${f>r&6CR z|LNAh{JuvPzFYqic*=jb{w45Kf6eA{|3f{5_eA@b!1v@|9zRI`^63xLzXU(^e_y{Z zhkprv(mzLER6j|75f`2OOY%$oclf^XUis*TV_&5#AHbzYKhJ%1`q3U9*}7xU2>LVi>O)`0}Qy`TDr*y7Gb+JjR;_ zzVy(8`TC83hu`BpL4Pyw^@Df(O)P&lZ(ar*-oyN=RFZi3)0Io}@_T(Kxc+?P>fhz- zr<>J(@WbH6JMy0x{I&N#O7n}N>u+ll=j6{Xe=mz4@Zvr2FSYnf`+SDxS4Gz!mp}eo z>-q<82mMv ze;0p6%TM(Oe)Kn`CszAY`#Jui?N9Loe)LzRM;1TDuj4Nq|FZvp->2hWO3y5Q>c0+B zwEvf-et;kIJEe!j5C4+-1w7_&+4{i+u^-F$33$>^;L+cd9$NgQ-@v24g!UVYpZo)O z#CwRpvGC+yDqbV*u77&dU#;I`WBSc46HdAOs?CYtXEv0-QC@Ld)PEIk5x?@p4^BSo zosU}h`qs1a=WkTJMEu^(^=G3NzP4ma{``_^?}-1;(aV0l*Fj4xe0|re9*_BN>wnF4 zK=TP7##bXBc!;hKmRC$$D%XFMUvpFbxr&FFzige+{6yAo@W<*q#Pe0I+H03QbB9d7 z^qFnf%Jqf%^UAhYERE%B=Z|g?kgp$$zww@fNuMi!{v@scsD1UzwEkUxUOBs-`%^oA z%~9QsSLI*U(>zq-R@;;+o$_3xG2 z9;fvm`t$Nfx6A7f{qv#FAHaWi*1s%%!n^j@>38C%{DVJxA5B$%xA;e7{rUJSSpU?1 z;D0If#{-)I8OO^OKgEwPf5G^p_yvFHZ)x^?PaJQX{IdV_(Eq6aD*j~Grmn^DI`Id6 zA^mXtT3<+ikp2r<{U%D!D1G>!)IZ?SAG7uOaXfF~Nq>P4dY>r0vGAn-z^9=-ht7MVxlev5f3@-EeE!yM|B2DiUk!Za$zAgK%hOH% z6$#1_-oyI!(bT}#)=qgW>ho`!_`6&1L7y#rD|f zPa&QS{?gyir1g3AUEf3N?Kk@q0xjU0TmcB8E{Hd%yuP>dM z=O1ya{qfGw9}WJ>AOAx9MdxpX2S5B#^=GU8DgQqHRQWoVU)CS^v-i>T@#gLLxSyHD zPwm%3`&0aYAO4udL(~(CpW@f?>-g>%|FZvpAO5(N^~mC<{_E?%VE?a5{ZRbzx>5K$ z@k76*egO~vdy@6c!jpai5C04GAN!$<|G-cB4Ltg5wjMC*iODbh19rdG9C zxNc?fL%%Km%i`zm1lP^Rz>|K0AJ_5r3-_JIz>|Ih552&3!!hvWAHZWChk4r=_@4aF zpW})8>&5>Bp7P(V{|P+RU$_1z@YH_Y`k%n}kj_$W1oNDr+@sL#Gh#$>W}Ups_|yLeu{NC2A=L;w(~!?$&0(yzAQEHbpN!S|KUEa zfv5E=?ffs`6N&HT{&KtdVJIJ^4}a|E{quJ7L##WJ}oo{aMe?jP|GXCyu}9`W0$F=o8j8sQzk| zpVpuB5P!7(1^ie?rsroy`Dy)$FaLPfkAWY0r1XHw-^=r4@ScS9(iLYcId=UXPbaT)4H@!J z>o>7(RO8`a2ApN)kl|7z!d$A^70j{W25KmOt5t;sH~p+f%Y z`Mq}j7oICm4Lm(R*v|j3FNuMt=NDCfi{%b+c!zeSLma^@mtL$Ax_;41U_b#OJ@@^W*gVx%NlxPZq!2zr@iOeSVytU)KJp z{mJ0(>+{>%AF=NW^uge#{YzZ=$MyWW_Q%X0mL_BI4`Tlr?8Bq|$tXX?PY>}&@e6%~ z9{Kd#kR$F7Z1B_mCGN{b_dlWj3x4Ps_Eoa#Kj;hXZ{l;S_CF#0LHhoC{-ym(mJj}C z?SBHj)Ba`PNq@l~>Nh@jZIv(Zll}vbeN41}8T{lw-TK$-UEPewzXYE0->rWMJk?*f z{w44|`IpBJ(!YHA!}Kq~PyOFz>t*pT$v+JL68uB)FTp<)|C0Q}@GrqX6#o+ZL-8-q zKS=-b>5s?11fKL4{?p071fKLC_)h*M@Z?|Ew-V`u_i%noBR%%6r@pb_*54;@$jeXr zS7!6>*7G;9j>f>#{+ZZ!TJwi}l`VeSzZ3gjx4|a{Kkc8K&Aa1yL2-VvSGEp_@FBiv ze}7jkWA4wLmE%T?cVqfL5BreI{00B&>;A2QAH1n*Zz^Bl@9X}x+5OQ)kzd7&#oyQc zd)2uoE!Du*ZqstxjJb$mjdx%m7n%McJVc?{hLF5$NJajD;nkR>;Bat-Xedt zKYi>ER{00Ae>e7(59eMWKNdgj-|wow=>GrIe_5AC({S#E$shEE_V+jRh4csMLob6K zn(1Ty(|Z2NrZnJ_pvPn3Nq@ng>F8*ZU59*ZEIjEy@Yu&+#S67h$Upgy(zD2m_C|ca z(N&~{S9%oj+P?&z^53n02|U$bxBeyYJ^7c%57NJU`or`u!9NuL68uB)FTp<){}TK| z@h`zY6#o+ZL-8-cKNSD+{Dbr_pZ<9KOW;X=;Xj@HOW;ZWf$!vB0^gN?;T*T`oVVTT zEz6%tcFoIA=eM=-|l9 zBa!&vFMU1#PtVUjm7Uw2gm$&~`+EMNo}b}dlQH=Fdj6xHpW$4xG5Gs>{$Pe^UIY z@pf8j{^3TnhZX;Hey8Ivdj2Q%pHR*edKb=b9+Q6%=l^E>%hT+9xEPOA{@_2PU&z0! zhvw@`*}1W1{xScM=O+Un_!AWm7C-4X@Hj_WwWozA|7bUVLOv>Axcq;<@r6GmySdWA zf8SPK9QTiE=RY{V*}&8J+3oxX=Xe`0|ygdrH2) zldHCIou97#3FQjyZt?f^{CMq8`udqs{>HaYxi7|tD}Uvj2WWq)kw<3G{*C(c#_0C> z{%YEvRC`#`3()yg!!ye4l6Y{VTOUsd%vX%M#xMKjmNhlZpq6 zpX#rd`j_no9e~cLc(C}Z?>v5uZ2$7}SJVEXm50uw{X_NV6u(N(QWXyte|gR}`Tppx z{6+g;N%miq8}*>#f%tKK<$=|7K344(cfQtZ_m28W`h)aCT&1eLDgB_oq<;$E;vceq z!oLn`&OQ|4W9`Ujp(-sBo0@Hg&! zqwtTd6OyeHe%XS@by5p|{SA5kr`NBa`-cbDw&2lE4SeP1bMo___h{ySWeYyr2lKJS zz?bj6^qCmn)0+HCB3{)8;cwl5o z$AW)B2W0;V@lWmNzFM^XDSn)Ic>Rd{p+DevtNvT!_rtr<{-LE?eoFg?>i$uc{U@vc zjo?eO_+NtGEq?01uKY#&e^u%S;vW8#>CZ}&Kj<&%7x3_((0|9mlYT0E67***d_(Ft z@bDj1pHzRAe<;0;yz8=kJk!U&y>oTKXaAVI*;RDFm!^CtKfgoiWyHI$yVv|#2EKaD z{7q5+mEJ`>o`*K@%a7~Ei`}8pEq`TCa*v3Pinki@e|&czaT&5U;C444~w7buZQ}l_S62P z+QZ`4@uTCbQ~Xi5qeIe;9~=2!7IE&tFi#N&ma` z55Z6P9{4H$-TH^%ABuknejPtW0!(KLh3{4e?##PU;aV*hfjYz{vq(Bzuo$W zz<1>zZw~tiURqiog_?o>_e!i6})<}BzVmUr7&pCIo9G~mYtEKB6jr?jnoF156Pe?+$ zQ2xQc_XYX&7sp?{<5r%(&)9|L@A~ul`t^DJtMPEE>cir%zT+0Yzp&p;bpA*AOOJ1s zN9zMpgynNSkABisqt_+HM^cRR{fWz z?M(BNqSvnoul=Q28Kqi0Ki!Bw%D?-5U6rrVq5M@@f7)MEeOUFc+fTP|r}n4#vF9iG z^&_MF6u++gI=)LC;=e5WkM@_T+4a+?Lk2(fU&pWecc=beminQ_>uDAb`TRlh2mN>Y znd=wyJ9{5Z%X~eM+7EcCpTKALl|~bl9}_S2Tj_1Aw=9kuvp)U$+P+_W;`!t)?hoLf zacF-1NbA2!FR}4?`L+J5^avmPxwiS3^-+I)KGpNR)rt4!_ZO5Nw&=6WAM|;rH_-K$ zqR%f^ufJe*%%9T3bc(vZZ}3-_F3<1Z`tlXrKcI2W{kcACf7m~}-XHbR;4iOzhV-%M z{sEP1m*)EH^Y34XQ?1Vif93p{<$nHP64&!!*lHuFnQP;obL(@>Bk`KdAgr ze24hc^;fk1sr|G+9Fnzv?B_=LDSmu?6^uWMU+oWCpACNMKaRd=|0~P>tNlUiv*gG1 z1*spt{7PR)f0W*)M=AZ5>F4^H>mT}s=kYI<9>qtF&-GX7ZEV*pwOqg7>i%HimENW* zy~xk_JpbM5x5p1szkT|{)NjF0@$cKAVE>{1*R6gFe(L{@zNmg^{qaTUsNaI0^v^+y z>L=;1(#y1&88N;_{}TL!?}4B4->rTNeqDb>>z~@MTm2UN6hFSc3dSGBZ@2m__=lq3 zo_~<~?bFZoGuOXv^_%gzek;9)ey6_ON~K3+ZzxDVsn}5Xhj#U0$^jnQr)1%e(Us=9fKXd&< z9AbJ)aQonur!_;rVPx0^DwP63D z{@1O33;v<#x8NU&ehdDg=(ph4{#VpLsr|auZ^2LT(?k4G{C2C~f`2Ib?fD0(-#-0U z_{wz8L(Did*S~J{oAI6XdrG+fS-<9e^~1mUmt=|~2EV+1uJs%9fpWP2Y2oGdd#&Gk z{BGgp{R2I|4);If_)g-X&+`6-D^}6_A9VjjkFWLk-r|?{ZybNo`#*I5Nb9p6-y8gN z|H|H~8uPrQ;vh{ZBo<_I2Uc z9iv|w{FHz9<)Y=M`=45$_4wZ4*X>ud{V9I5KF?D3R}6lNUswL3@lW?Z_4rzk?+t$H zzmC6X|EK$(di<@&_mV%?&sP1;;$^gD{BGf;ej?6r|5K0OExgq4cH{T#Il*=5dlr3i z>L2cTA$hy2sE~hJKhsYC-Phe~;Vc7B>vy#N!#}oU>;Dr2PwOYO{%ik`c=)qi|LQWS z*T>TOS*`C!sOv*A{opUOe%Ga6bp0=_|I+$?P_uvK_ty=6T7TyFi>_bO>)%`wxxT+$ ztuHY6`?`Ko>wD&}xxX0vwEoa#eO&7&wZ4b@w{d)7@b`87q}KOlV~G974gS8apVayu z;xU2l82mbZipC$suh#d_AIIXS{^RPaX#b=BtMxtTjmaPMh4jPmYkjfS-zQjqul+;T zZ_r=TKeR&@7p0QE{$t=te}Tt(b?qMpp7g(4|JcK2a6JAY@Ra{<{X^iX{<`%Kj~}Fe z`1FVAAA+CypUYO!{;T`HOQN%X2>zk?hu|NIe+d4e_=n&hihl@x9Y00mkK(sm{}B8` z@ej{GNdNHZkHb=tp-_CHhmwWVQy)v@^d zx_=(_!9rYx{Z+@}r~T)A`St#IMfT5A`}MV)e_*tKU-!?``%CKc9}NCM?4OsQ{=@#N z_}z*>ik}|hkK$MDSD9j58uDZDQ~&9q|55)14|HyMGa#0m<;V3AsUMDC>kH`*(uaTO z{V8Sp2K^=dQ~2lu_`888{l)jNf03$hs$Wb0+xbV>&o#aFxzDcLao&F=Zu>y^2kqaA zdJXwNzfMoe_TRSfw0~?n|8R8fRi9<>)BfM>{NsOw{l5)7?Vqdt0p<8W*#BGNgFX*p z|L<6Dmu35ZLDNv02D)j#du?aE(t{z7=|4$r^&hk+ z=|{kmegd!d{~ilZ`VG9=|9dPv`A0kd$#lJuK6m1>E3Z7hRG#Wehx~u`)py0`bKCh( zmakC@Pv>W}^Pfx?Z@2Jten&h13HZdwKb@b{&VMpp93?!)C&ztgG?w30OE>5Lp+Cp> zP`{Ku=08tYz`1^W(lJ=J{K14fM{Czz?N&8DU z|8Fe*L7bnI1f57RPKIvC{t@DD5a%aF{t%C2m46WDC&lwjRe!MBpZbsM-$nbMb^c!{ z|0wDo^+EhWUwS$JF9~|ra=xT&U(7#@^Z$TP^!&-dll~%(pqH2j;qL~X^dH}Y9;)#O z)sN*rO3x5isrIjZ#_3-IPx0fqxMS0)6{B(Z%Y5#D*s)tWqA8{c+X*f^b!qfTj zFU{OI=j|`8YQb;6=7x)pm~@|or}OJiZSpT|!Mp6bS8bM&|N0r5pNR9PlbiTETkw-J z{zT$KeATDFiuNCD*HPc^1=?DL69Q8w*e-++8r#3gwUnpM! zUcA3MYhR1MborsY|5L%|FYAXt_i(J=)3f%8{HJlenf$Lgp2}bJ`M<_bf1mS*_=@~l zyu^65_{*=mJ>P%JwO`Ta=NsSsQ9eHpe34(pyTwoV9{4H$p}r%3Xpc0+fypoH&+!+n z|B`G!@IX&ybAPk=DSmwaDHwkgzu<=+`SiRl;P0}3WBw`okNa}b{zv^6JXwFgFFh+O zKiY%JAM~ZB^+WAnMf!vEo5gbfQ~iz75B^2^2Yk@mMD-U7Px=ddsNY1zyM-tH2mW0_ zk5s%`c=Dfa{cAs0H=+E5@7BKrp7O8yGx}Ak{Y&7f{<`%qfv5KC*1tS{kpAV8((k?T zwG$Ry{fhGbdHE|>{B~g+U$^tG83+5*>&Fin-{OZ80{w@C6#5wu-Uq0^z*WcFO|7bqH(Efya@Uv$ZKNf%a}`w zyc(~j+Z;mIGtByz`FH$9%TM(O{efQS`JGjM*?x|{X!}$AfWH~;PH)2e2K~?~KgF-( zFC71}|A0Tc@3SoIyO{3}ZIqw-ucI&8|4Bc5le>CDkdD0od{|x@x zk}3KA^e>HG_UpY4iqG@MbS5{~5iKzJcfIQInE$hy>kQ{d9QbEv_(bxD@m2XXH|5v& zT(y)}Oj|0?KNL&9z<+j~{HgNiPty5|wXc4e&hOTrH{Nq_uJ71a1m(v2&A}fH z{*lu^Nd8p2>>fJbWMt2y==??fd427q+@Drv@fpj18^^m<|K*Qvm*?Nre`N-rA78oc zaXMc`e_q{Ta?YP-e3AcN?k^TU;d|hx{D=BZ;7_|Z<2v>?i=XPx$6vwvr}hIs{OL*V zuNFVWk1v10_^ZhH1wZ_08uxdLpZbq4f5HAo{TKZ3r;9Uw!~^jMeIfmD{90c~e^mO( z_N$tDXr>SUlllid{A>R#KE}e6{sIsGTFw29$_M^d{oj-3{OdQTEPTrs zp4yOp`l`2&{`{lcln-H|O)WcK(I^Gz@&@$zAgKM^^sWpVCkt>2I6-D=hxn z+9{7keQ)PqPdD**TlmU{cFpH+?flCX*S%_Y82PWB{nn=;DAGUHDq9{zCj{rUN} zj--PZ|FTi@$W!v*eHUUEf3Je^u6hj?VwmpO^lA z=89PUcK-BO*gwiBf8!JXk>}r)zq0$+>HM#eS+9OvmS2Bf`^wR|zi59#{QNqLU#tA} zr89H9um8C_lRuWeF^Bv~e_mhpr~LeA)!)+aJL1^lul(^ZIo=1^Uf-wliAOHq?bovW z`g6iVKhR%;evHLW`R}Ftvi`uI-TqjY2K^h0pW3g7_NVv(e{ocWL}H;W~+d zr}lHja<90aDwZGDISf4cAI43Z|FUqMLgIt}^)>zxcbb2fa2>d_ z;P0#cVce(rH-_sd2LC|xAN>XSSRAff8vFzCKU{~|oXvX?$5#FK)&E0zlk9yoU7gMQ z$Kvnn_y_zL2REAKUojScU&nvo$2j`YFb~Avt@fAmHzz(t=YOOh;K97FDQ9lq3H)91 zkL7=u_dT2CKeXp2il2Zd{R9u@ea~d|KNg15$$@juTG{kG?c=(Cj{C}* ze{z@~8vK1-KY;tvntyt@Pj2uJWc`GmpFI}lhX(&Z){kI*hI+vK(BP-_C$9bV`j|rN zX98b{@6q(1!n$ny-QcJ7CqDiPu3w?{0}tkBdxdpv_`AVR>rZ_73$9G^|p{^Y95z2?u7 z{K234y8gJGKmARX|HR<$>-y_<{#428-{Pm|2V5ofW&JtgHN<_oUA7M2;x7+k{k?t; z=dYXPUvKf#^8>E@MepAc9{pTD$Me4IISh-Ro*!`hMV~*Q`U5|n1JeFz#2-CB&_nxE z{D2?N5$&t|(ctgv^EcpkG=T%D*F5Z=?D1n+`+EOA0G^N34|D&W)>qc%ol4Ii=+DjlH?%*6=hUq7_x1VhP+mNj6x%;Mr)Tl^_4#%1 z!=F(9@JFNmss4JXe`-JQ!=H}HZup}ftn$wQ(EcVq&uae@(jTM`|MK6L=U2=2h5yO@pMZydVc#eG-N2Ln z;(PEfrFYc6fuHmrc=(snD+^El)2)BabhR=b{}Oo0f4BZ6@Kk@z=5qfF^?2A=ls4ERLjan6;2r~Q+&>yM)?c$~i`@gcqn?az&UL3RG>;hYbde( z?B9y^L_ToNhrvIP{cE%9%#X$R!Z{xXe_!|S4dqSrKHWIy!{G1h{>9+e`+Q#+&IvL2 z`?`NK__O;Xi(>sB-5e-CmKgkf-M;Bz}Ke@koAVdTCu=r{J zekXfH_y4E<3;s-J7A2XkM7<>bpfA-T=ZheHoO6+#Z+E*{KFoit{r_=J#gk24x;;U< zGCtsc7cbcupP$9|LjO(<4EM$HcLPuQkMCjMf2EgHKY^e8r(6Ge$2k2<;3@yz`j^1> zqApOgyKTQ7;{6q0C!9NuL68uB)FTp<){}TK|@h`zY6#o+ZL-8-qKS=-b z>5s?11fKL4{?p071fKLC_)h*M@Z?`O_b#LZ-%c@Jf8XpqUqA29+m;W_%TMRG;oLfn z$9UVo)A?~O+2%{*aZZ+jr}OJ@Zk@*CoGSxQ=jY+vI*rf95sOlZ5B^de#QA@yZ{%ZZ zn4ekv=dF7*j(=R`6+QpcJpT~w1^#RtcVlAk_x1e8z}GTA+M_v+TV(O~_54fl>-kZb zzgzrtey6MdqU$#Z4}LvA3g>iN{Cz$D6#ROA1U)j^pU&@e9}zxj0R|G;DZhGHFe|e-plk_Evgo@soZ75C2hmYT?O0wC;rT(EjPH_y2Ov4qw}@{7zRY`0v}w zi(~miyP>|~JFfp3csf5D?G9eNhx)Ym>HKcg8*q64d9y*66CUG}Ud|WS{*bNjUqtES z{?nXo^8J}zwKeX!^G@0y>n|^?mir^=&&NDJ9pwxDVDb0${P@7v;t#hs!^1xs4^wLgUMjm1xRSN@{>lz)_8`vcBtwCZ2hUoZ79+fVUFe?Y%8`0J;faDS{n zU;gK>ru{=J51mK*hw9HMe!;JG0(xigQ~z=Nx_>n~^uMy~zu<>I9F|=-h0am?2Yso3 z>3~OM`D?dKx=;51s?;B(5C2elO6dpvCH(^)?UC*Kz6kAP;YojiM|~n4{9V?srT^jk zsE_!**Vku$`MK*hre~**JoSUSwksdz8Y18ucfPT+e;m1WLb7$jFHQXQH{|-N<09lc zonF6w?jIgpYvC(5pR*;lk1B7>{~pc!ue9*xdoO(^;!#g1FZic5`Iitr=wt2Y`{nx= zyJ{)A{;O7qs%v2*VM0| zmr0oSBaSRQ=_mM6-?(mozsvpy{g?WU@9i1tEBGtw(c&ln2>WdyzwsS<{Fx2=UhtVy zURgfeRdnDlP5BO=|KVdGQdx%Vf7 zzkKeAw7+rvi67DYrSZM4A7^h}c2DZs1A(yY-J*E?4964}qurck3Sl-;;lM z{2=|qr$0>p5d75tT(*k#U+VveqfY)I_(^{pe^LD+{R4j|{}BA7zn=f)@DIU16#o$X zRDV6xKeZp~zmtCmeu|$S;*a8&`P=)4;2(;Ac>Y29hfjYz{vq(Bzo_3%{vq(>9~nNb z=ZoWijOQ19^02pj;McD#ACc$3ar4~#{08h>5%Ll7<#0X6!hini*85N3Lpm65Tlkyj zKHD-r)$;@Box}%yua>T(``;t!;fv+`pgiZ?#d3V!^7-tY^7FA!|Hv=$54|(^>+9F& z_2;U!ddIDF{zqxXE_D8f{=B^R1^M+K@T0uo$9UP`Z#=(yKEHAN<^67=^FPX8dVI4i zzy7@Xj$2yqFQB~Ocj>xU?GA&#c4Ile{^q_^zxEA0KUsYy&kxk+)n%8r&QDNY@Q3+X zV(^!y?VQgqd?pL-e@=MRzb~zSfgke|gP-#6AVteh^#^{f?;#$n@>Bace%-#E+MnWw z`Ez~8c-kmG#joSn@!cu@ssDgq&kryjxApc{Qy788-7or$C5wjzthiF z{X%}jzFg2zYCqsD{RH1z)cR$cpY+F7K_0irKlJ!LZ@VO|e}4P&k?uR-pK)k@{Rrj9 z_ko8V+xXV<^UFKE zA;12^^^;%Uhh7@|jdSiNeJ=X^Wp(ND{Qfcc!H4>VUK;$BYnQS<7u-Lfy!M$~U%?MP z@cWqa{$TJ|U!0ob-It0!e_1(yW~)Cm>D>Ro54|+_3Eu-hSbJNlyfLHYy!PWmnQ zN&g)G%c9?ce<=Db_^JMSsDEld)PLq5?e$ymQ~WsoqVY%Z3;s^}E%=9`-=2Sv`t8%t z^|Mv~I_Wp#bN%&s-rN10@!ofzIda6vw2{L`!aon1=3egCV~#uF1ouhv*U~obt3Q6= z(eo~zaBq6iHx8Mz;H#_CogKdGB&K)&)q|P^F8{-K=im0}pQRJ`J%68LKmKU?+9GTR lbx6l9p literal 0 HcmV?d00001 diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 000801ca2..a6f90818f 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -213,42 +213,42 @@ def get_opencg_surface(openmc_surface): opencg_surface = None if openmc_surface.type == 'plane': - A = openmc_surface.coeffs['A'] - B = openmc_surface.coeffs['B'] - C = openmc_surface.coeffs['C'] - D = openmc_surface.coeffs['D'] + A = openmc_surface.a + B = openmc_surface.b + C = openmc_surface.c + D = openmc_surface.d opencg_surface = opencg.Plane(surface_id, name, boundary, A, B, C, D) elif openmc_surface.type == 'x-plane': - x0 = openmc_surface.coeffs['x0'] + x0 = openmc_surface.y0 opencg_surface = opencg.XPlane(surface_id, name, boundary, x0) elif openmc_surface.type == 'y-plane': - y0 = openmc_surface.coeffs['y0'] + y0 = openmc_surface.y0 opencg_surface = opencg.YPlane(surface_id, name, boundary, y0) elif openmc_surface.type == 'z-plane': - z0 = openmc_surface.coeffs['z0'] + z0 = openmc_surface.z0 opencg_surface = opencg.ZPlane(surface_id, name, boundary, z0) elif openmc_surface.type == 'x-cylinder': - y0 = openmc_surface.coeffs['y0'] - z0 = openmc_surface.coeffs['z0'] - R = openmc_surface.coeffs['R'] + y0 = openmc_surface.y0 + z0 = openmc_surface.z0 + R = openmc_surface.r opencg_surface = opencg.XCylinder(surface_id, name, boundary, y0, z0, R) elif openmc_surface.type == 'y-cylinder': - x0 = openmc_surface.coeffs['x0'] - z0 = openmc_surface.coeffs['z0'] - R = openmc_surface.coeffs['R'] + x0 = openmc_surface.x0 + z0 = openmc_surface.z0 + R = openmc_surface.r opencg_surface = opencg.YCylinder(surface_id, name, boundary, x0, z0, R) elif openmc_surface.type == 'z-cylinder': - x0 = openmc_surface.coeffs['x0'] - y0 = openmc_surface.coeffs['y0'] - R = openmc_surface.coeffs['R'] + x0 = openmc_surface.x0 + y0 = openmc_surface.y0 + R = openmc_surface.r opencg_surface = opencg.ZCylinder(surface_id, name, boundary, x0, y0, R) @@ -297,40 +297,40 @@ def get_openmc_surface(opencg_surface): boundary = 'transmission' if opencg_surface.type == 'plane': - A = opencg_surface.coeffs['A'] - B = opencg_surface.coeffs['B'] - C = opencg_surface.coeffs['C'] - D = opencg_surface.coeffs['D'] + A = opencg_surface.a + B = opencg_surface.b + C = opencg_surface.c + D = opencg_surface.d openmc_surface = openmc.Plane(surface_id, boundary, A, B, C, D, name) elif opencg_surface.type == 'x-plane': - x0 = opencg_surface.coeffs['x0'] + x0 = opencg_surface.x0 openmc_surface = openmc.XPlane(surface_id, boundary, x0, name) elif opencg_surface.type == 'y-plane': - y0 = opencg_surface.coeffs['y0'] + y0 = opencg_surface.y0 openmc_surface = openmc.YPlane(surface_id, boundary, y0, name) elif opencg_surface.type == 'z-plane': - z0 = opencg_surface.coeffs['z0'] + z0 = opencg_surface.z0 openmc_surface = openmc.ZPlane(surface_id, boundary, z0, name) elif opencg_surface.type == 'x-cylinder': - y0 = opencg_surface.coeffs['y0'] - z0 = opencg_surface.coeffs['z0'] - R = opencg_surface.coeffs['R'] + y0 = opencg_surface.y0 + z0 = opencg_surface.z0 + R = opencg_surface.r openmc_surface = openmc.XCylinder(surface_id, boundary, y0, z0, R, name) elif opencg_surface.type == 'y-cylinder': - x0 = opencg_surface.coeffs['x0'] - z0 = opencg_surface.coeffs['z0'] - R = opencg_surface.coeffs['R'] + x0 = opencg_surface.x0 + z0 = opencg_surface.z0 + R = opencg_surface.r openmc_surface = openmc.YCylinder(surface_id, boundary, x0, z0, R, name) elif opencg_surface.type == 'z-cylinder': - x0 = opencg_surface.coeffs['x0'] - y0 = opencg_surface.coeffs['y0'] - R = opencg_surface.coeffs['R'] + x0 = opencg_surface.x0 + y0 = opencg_surface.y0 + R = opencg_surface.r openmc_surface = openmc.ZCylinder(surface_id, boundary, x0, y0, R, name) else: @@ -384,9 +384,9 @@ def get_compatible_opencg_surfaces(opencg_surface): boundary = opencg_surface.boundary_type if opencg_surface.type == 'x-squareprism': - y0 = opencg_surface.coeffs['y0'] - z0 = opencg_surface.coeffs['z0'] - R = opencg_surface.coeffs['R'] + y0 = opencg_surface.y0 + z0 = opencg_surface.z0 + R = opencg_surface.r # Create a list of the four planes we need left = opencg.YPlane(name=name, boundary=boundary, y0=y0-R) @@ -396,9 +396,9 @@ def get_compatible_opencg_surfaces(opencg_surface): surfaces = [left, right, bottom, top] elif opencg_surface.type == 'y-squareprism': - x0 = opencg_surface.coeffs['x0'] - z0 = opencg_surface.coeffs['z0'] - R = opencg_surface.coeffs['R'] + x0 = opencg_surface.x0 + z0 = opencg_surface.z0 + R = opencg_surface.r # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) @@ -408,9 +408,9 @@ def get_compatible_opencg_surfaces(opencg_surface): surfaces = [left, right, bottom, top] elif opencg_surface.type == 'z-squareprism': - x0 = opencg_surface.coeffs['x0'] - y0 = opencg_surface.coeffs['y0'] - R = opencg_surface.coeffs['R'] + x0 = opencg_surface.x0['x0'] + y0 = opencg_surface.y0['y0'] + R = opencg_surface.r['R'] # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) From 02d6b99d782d2e125bed15235ffe0870ef9cf9b8 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 14:30:53 -0400 Subject: [PATCH 85/91] Removed accidental commit of Python API generated xml files --- docs/source/pythonapi/examples/geometry.xml | 38 ------------------ .../pythonapi/examples/materials-xy.png | Bin 1271 -> 0 bytes docs/source/pythonapi/examples/materials.xml | 20 --------- docs/source/pythonapi/examples/plots.xml | 8 ---- docs/source/pythonapi/examples/settings.xml | 21 ---------- docs/source/pythonapi/examples/tallies.xml | 23 ----------- .../tracks/128_angles_0.1_cm_spacing.data | Bin 108911 -> 0 bytes 7 files changed, 110 deletions(-) delete mode 100644 docs/source/pythonapi/examples/geometry.xml delete mode 100644 docs/source/pythonapi/examples/materials-xy.png delete mode 100644 docs/source/pythonapi/examples/materials.xml delete mode 100644 docs/source/pythonapi/examples/plots.xml delete mode 100644 docs/source/pythonapi/examples/settings.xml delete mode 100644 docs/source/pythonapi/examples/tallies.xml delete mode 100644 docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data diff --git a/docs/source/pythonapi/examples/geometry.xml b/docs/source/pythonapi/examples/geometry.xml deleted file mode 100644 index 8e9f1ef3d..000000000 --- a/docs/source/pythonapi/examples/geometry.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - 1.26 1.26 - 17 17 - -10.71 -10.71 - -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 - - - - - - - - - - diff --git a/docs/source/pythonapi/examples/materials-xy.png b/docs/source/pythonapi/examples/materials-xy.png deleted file mode 100644 index 534f7e5ff7251fbc6984a811cb22d37ea2df8c4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1271 zcmZ{kZB&wH7{_ljJ7-pN={b=rqgImUR4U5_0<%G2Qy`;BX__zP>(rBUL`@$h)2v)( zSr(d2%W9rv%#}qY&6l*Y$jq?WFlFTn3L2<@JkLE^pY~xNuIqRI&$<5p>(hM|aoNm; z_Fviq02T(Y=)qQ+Kh_*uYo8MRR&T}JSpOh@0Hi19TO#eO+9oZSxdqfeTQ*`9E23G! zK>%bD0Lab%WX>H1;2;rz(Y*kW$^pQoR>-#dS!Wk;19=Px;Q>d-k=#>3^43xR{MnCz zQQtG^;HaGo%PKxgW$j9{^5dHYwmwRv0$}?(fbP$WQ;mzs$!g*k1=&SocU~+gF18PG z-{d98uMjc0k-pkSeq}S0d&)K`()QLC%GXraZRU9H=SeFb6s|b@pkiR+G^_rHw?jut z6dudrtySi?t^H_2_@{)Ng59fQG6;jtxVF{XCLOvKrc*nUmt4Z|l$=?HpyMd2e!23XuuQ0( zxY4o}2C<#at8N@SA1D*uV=VIaC?2a$8({d?VU-=e*}`@cnTolIpLHdW2+1+<^_%xq zlpG(QI7dzbCNr$wlbM-X_g*q;$lAUf5!dz)GHD0wa9k)=?;^}Qd|}$hxo)aqysF21 zedQBz*@uG0+UwO_@{M8XtfE)H-^9lGG%Cu!rdcD)DGCT-@1ZHRCh|L&K52_hjFirM ziVuHNyWTMrd3=TD-g}``RM?Q$V|kjeqvq8kL5#h2+3j4D6IoTFLiwFMNHJYjHv3h; z<*{a6wo;LSX%b!i?m_nHa2F3)%1(^hAC*u&DAxt2w5#X5=ZqN>go)i{SY7p*@TF-I zm=G{y@)n=qz#fZ|H*h>Ja9Tcr-93lZsSA_Li@h#k(e28wo?PkP%@@zRBb|)s7PPBN zpzN~73k&Tu^b4ez#)Q?v`dE{hZ&-(^*DczTTGu+nynR3@M)LQ=~(jF`>b-&;BButEeKO>CGmk zol(*lA9#=E)Pb~D$_o@o&5$BmQPn#+j27l%p|X_KCPHV zhS8Q~cj1y=Bvw^bG%7z-3kd@j+->B93i*kQG}$0wW%%3F#a-6l?kZsL1u>C=eWd6E z`>X)#iR(6ct|NL9H}KYNAQ3l^Hg5JL`jCjk^;$3VKZYMuV&eB_{J-J5hO^cS20#FV KO|RdwSM(2?bdD_m diff --git a/docs/source/pythonapi/examples/materials.xml b/docs/source/pythonapi/examples/materials.xml deleted file mode 100644 index 42c2e5029..000000000 --- a/docs/source/pythonapi/examples/materials.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - 71c - - - - - - - - - - - - - - - - - diff --git a/docs/source/pythonapi/examples/plots.xml b/docs/source/pythonapi/examples/plots.xml deleted file mode 100644 index 512070a33..000000000 --- a/docs/source/pythonapi/examples/plots.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - 0 0 0 - 21.5 21.5 - 250 250 - - diff --git a/docs/source/pythonapi/examples/settings.xml b/docs/source/pythonapi/examples/settings.xml deleted file mode 100644 index 26a23e942..000000000 --- a/docs/source/pythonapi/examples/settings.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - 2500 - 20 - 5 - - - - -10.71 -10.71 -10 10.71 10.71 10.0 - - - - false - true - - - true - 200 - - diff --git a/docs/source/pythonapi/examples/tallies.xml b/docs/source/pythonapi/examples/tallies.xml deleted file mode 100644 index 61873a91d..000000000 --- a/docs/source/pythonapi/examples/tallies.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - 17 17 - -10.71 -10.71 - 1.26 1.26 - - - - - fission nu-fission - - - - U-235 U-238 - scatter-y2 - - - - absorption scatter - - - diff --git a/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data b/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data deleted file mode 100644 index bbe6462a6c3b6855689590a0aaa161a18abec43c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108911 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 lbx6l9p From d193a1eb0b44c5430ea709a9133e69e3d6fa40c1 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 14:33:28 -0400 Subject: [PATCH 86/91] Removed Cel.fill property in place of Cell.fill_type --- openmc/universe.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openmc/universe.py b/openmc/universe.py index 951619280..ef89780e1 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -85,8 +85,15 @@ class Cell(object): return self._fill @property - def type(self): - return self._fill + 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 surfaces(self): From 81c00627f984e767193da01f2497da7e1ff094e3 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 14:53:55 -0400 Subject: [PATCH 87/91] Fixed minor issues with OpenCG surface coefficient properties in compatibility module --- openmc/opencg_compatible.py | 2 +- openmc/surface.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index a6f90818f..1cdf8e875 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -220,7 +220,7 @@ def get_opencg_surface(openmc_surface): opencg_surface = opencg.Plane(surface_id, name, boundary, A, B, C, D) elif openmc_surface.type == 'x-plane': - x0 = openmc_surface.y0 + x0 = openmc_surface.x0 opencg_surface = opencg.XPlane(surface_id, name, boundary, x0) elif openmc_surface.type == 'y-plane': diff --git a/openmc/surface.py b/openmc/surface.py index 164bbd09b..063787ce3 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -275,7 +275,7 @@ class XPlane(Plane): @property def x0(self): - return self.coeff['x0'] + return self.coeffs['x0'] @x0.setter def x0(self, x0): From e7cba5b22c39834869290e1c88da8c0e085485be Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 14:54:46 -0400 Subject: [PATCH 88/91] Fixed minor issues with OpenCG surface coefficient properties in compatibility module --- openmc/opencg_compatible.py | 2 +- openmc/surface.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index a6f90818f..1cdf8e875 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -220,7 +220,7 @@ def get_opencg_surface(openmc_surface): opencg_surface = opencg.Plane(surface_id, name, boundary, A, B, C, D) elif openmc_surface.type == 'x-plane': - x0 = openmc_surface.y0 + x0 = openmc_surface.x0 opencg_surface = opencg.XPlane(surface_id, name, boundary, x0) elif openmc_surface.type == 'y-plane': diff --git a/openmc/surface.py b/openmc/surface.py index 164bbd09b..063787ce3 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -275,7 +275,7 @@ class XPlane(Plane): @property def x0(self): - return self.coeff['x0'] + return self.coeffs['x0'] @x0.setter def x0(self, x0): From e02a9114897532abd2e247f740719caac4a94cfa Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sat, 3 Oct 2015 16:01:37 -0400 Subject: [PATCH 89/91] Fix PyAPI summary S(alpha,beta) bug Material needs to be instantiated before trying to add sab to it --- openmc/summary.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openmc/summary.py b/openmc/summary.py index 2ae746484..f3952f9b4 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -72,6 +72,9 @@ class Summary(object): nuc_densities = self._f['materials'][key]['nuclide_densities'][...] nuclides = self._f['materials'][key]['nuclides'].value + # Create the Material + material = openmc.Material(material_id=material_id, name=name) + # Read the names of the S(a,b) tables for this Material and add them if 'sab_names' in self._f['materials'][key]: sab_tables = self._f['materials'][key]['sab_names'].value @@ -79,10 +82,8 @@ class Summary(object): name, xs = sab_table.decode().split('.') material.add_s_alpha_beta(name, xs) - # Create the Material - material = openmc.Material(material_id=material_id, name=name) - - # Set the Material's density to g/cm3 - this is what is used in OpenMC + # Set the Material's density to g/cm3 - this is what is used in + # OpenMC material.set_density(density=density, units='g/cm3') # Add all nuclides to the Material From b4a92883f246d0588f9b08fa443108ee8745dc2b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sun, 4 Oct 2015 10:32:15 +0700 Subject: [PATCH 90/91] Allow run_tests.py to work even without MPI installed --- 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 70ea4c3dc..338732c14 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -128,10 +128,8 @@ class Test(object): if self.mpi: if os.path.exists(os.path.join(MPI_DIR, 'bin', 'mpifort')): self.fc = os.path.join(MPI_DIR, 'bin', 'mpifort') - elif os.path.exists(os.path.join(MPI_DIR, 'bin', 'mpif90')): - self.fc = os.path.join(MPI_DIR, 'bin', 'mpif90') else: - raise RuntimeError('Cannot find an MPI Fortran compiler') + self.fc = os.path.join(MPI_DIR, 'bin', 'mpif90') else: self.fc = FC From 23535afa1c69644bb299bde18a094c3b99d53ae0 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 4 Oct 2015 16:43:42 -0400 Subject: [PATCH 91/91] Made NuScatterXS tallies tracklength per comments from @nelsonag --- 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 85b08362a..a41dcb5b2 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -331,7 +331,7 @@ class MultiGroupXS(object): ---------- scores : Iterable of str Scores for each tally - filters : Iterable of tuple of Filter + all_filters : Iterable of tuple of 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 @@ -1459,7 +1459,7 @@ class NuScatterXS(MultiGroupXS): # Create a list of scores for each Tally to be created scores = ['flux', 'nu-scatter'] - estimator = 'analog' + estimator = 'tracklength' keys = scores # Create the non-domain specific Filters for the Tallies