From 5f2e900222bac780fe2b3ff4244bc6f661950a5f Mon Sep 17 00:00:00 2001 From: Miriam Date: Fri, 10 Jul 2020 20:10:39 +0000 Subject: [PATCH 001/122] Added imports. Added current to list of MGXS_TYPES --- openmc/mgxs/mgxs.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 78828c9de..9ad5e1c38 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1,3 +1,4 @@ +from abc import ABCMeta from collections import OrderedDict import copy from numbers import Integral @@ -6,6 +7,7 @@ import warnings import h5py import numpy as np +from six import string_types import openmc import openmc.checkvalue as cv @@ -36,7 +38,8 @@ MGXS_TYPES = ( 'chi-prompt', 'inverse-velocity', 'prompt-nu-fission', - 'prompt-nu-fission matrix' + 'prompt-nu-fission matrix', + 'current' ) # Supported domain types From 860b494f14a0e3300368f26ccd999c290324a426 Mon Sep 17 00:00:00 2001 From: Miriam Date: Fri, 10 Jul 2020 21:14:35 +0000 Subject: [PATCH 002/122] Added SurfaceMGXS and Current classes to mgxs.py Sam Shaner wrote classes to include current in the mgxs file. Since that code was never merged, it fell severely out of date with the OpenMC develop branch. I have restored compatibility of the code and tested the current mgxs class. I would like someone to confirm whether _divide_by_density should be True for the SurfaceMGXS class. --- openmc/mgxs/mgxs.py | 470 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 468 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 9ad5e1c38..443f2b904 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -510,7 +510,8 @@ class MGXS: self._tallies[key] = openmc.Tally(name=self.name) self._tallies[key].scores = [score] self._tallies[key].estimator = estimator - self._tallies[key].filters = [domain_filter] + if score != 'current': + self._tallies[key].filters = [domain_filter] # If a tally trigger was specified, add it to each tally if self.tally_trigger: @@ -694,7 +695,7 @@ class MGXS: Parameters ---------- - mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', 'chi', 'chi-prompt', 'inverse-velocity', 'prompt-nu-fission', 'prompt-nu-fission matrix'} + mgxs_type : {'total', 'transport', 'nu-transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'multiplicity matrix', 'nu-fission matrix', 'chi', 'chi-prompt', 'inverse-velocity', 'prompt-nu-fission', 'prompt-nu-fission matrix', 'current'} The type of multi-group cross section object to return domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.RegularMesh The domain for spatial homogenization @@ -772,6 +773,8 @@ class MGXS: elif mgxs_type == 'prompt-nu-fission matrix': mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups, prompt=True) + elif mgxs_type == 'current': + mgxs = Current(domain, domain_type, energy_groups) mgxs.by_nuclide = by_nuclide mgxs.name = name @@ -5894,3 +5897,466 @@ class InverseVelocity(MGXS): else: raise ValueError('Unable to return the units of InverseVelocity' ' for xs_type other than "macro"') + +class SurfaceMGXS(MGXS,metaclass=ABCMeta): + """An abstract multi-group cross section for some energy group structure + on the surfaces of a mesh domain. + This class can be used for both OpenMC input generation and tally data + post-processing to compute surface- and energy-integrated multi-group cross + section for multi-group neutronics calculations. + NOTE: Users should instantiate the subclasses of this abstract class. + Parameters + ---------- + domain : openmc.RegularMesh + The domain for spatial homogenization + domain_type : {'mesh'} + The domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Mesh + Domain for spatial homogenization + domain_type : {'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section + rxn_rate_tally : openmc.Tally + Derived tally for the reaction rate tally used in the numerator to + compute the multi-group cross section. This attribute is None + unless the multi-group cross section has been computed. + xs_tally : openmc.Tally + Derived tally for the multi-group cross section. This attribute + is None unless the multi-group cross section has been computed. + num_subdomains : int + The number of subdomains is equal to the number of mesh surfaces times + two to account for both the incoming and outgoing current from the + mesh cell surfaces. + num_nuclides : int + The number of nuclides for which the multi-group cross section is + being tracked. This is unity if the by_nuclide attribute is False. + nuclides : Iterable of str or 'sum' + The optional user-specified nuclides for which to compute cross + sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides + are not specified by the user, all nuclides in the spatial domain + are included. This attribute is 'sum' if by_nuclide is false. + sparse : bool + Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format + for compressed data storage + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + """ + + # Store whether or not the number density should be removed for microscopic + # values of this data + _divide_by_density = True + + def __init__(self, domain=None, domain_type=None, energy_groups=None, + by_nuclide=False, name=''): + super(SurfaceMGXS, self).__init__(domain, domain_type, energy_groups, + by_nuclide, name) + + + @property + def scores(self): + return [self.rxn_type] + + @property + def domain(self): + return self._domain + + @property + def domain_type(self): + return self._domain_type + + @domain.setter + def domain(self, domain): + cv.check_type('domain', domain, openmc.RegularMesh) + self._domain = domain + + # Assign a domain type + if self.domain_type is None: + self._domain_type = 'mesh' + + @domain_type.setter + def domain_type(self, domain_type): + cv.check_value('domain type', domain_type, 'mesh') + self._domain_type = domain_type + + @property + def filters(self): + group_edges = self.energy_groups.group_edges + energy_filter = openmc.EnergyFilter(group_edges) + mesh = _DOMAIN_TO_FILTER[self.domain_type](self.domain).mesh + meshsurface_filter = openmc.MeshSurfaceFilter(mesh) + filters = [[meshsurface_filter, energy_filter]] + + return self._add_angle_filters(filters) + + + @property + def xs_tally(self): + if self._xs_tally is None: + if self.tallies is None: + msg = 'Unable to get xs_tally since tallies have ' \ + 'not been loaded from a statepoint' + raise ValueError(msg) + + self._xs_tally = self.rxn_rate_tally + self._compute_xs() + + return self._xs_tally + + 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. + """ + + cv.check_type('statepoint', statepoint, openmc.statepoint.StatePoint) + + if statepoint.summary is None: + 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 + geom = statepoint.summary.geometry + if self.domain_type in ('cell', 'distribcell'): + self.domain = geom.get_all_cells()[self.domain.id] + elif self.domain_type == 'universe': + self.domain = geom.get_all_universes()[self.domain.id] + elif self.domain_type == 'material': + self.domain = geom.get_all_materials()[self.domain.id] + elif self.domain_type == 'mesh': + self.domain = statepoint.meshes[self.domain.id] + else: + msg = 'Unable to load data from a statepoint for domain type {0} ' \ + 'which is not yet supported'.format(self.domain_type) + raise ValueError(msg) + + # Use tally "slicing" to ensure that tallies correspond to our domain + # NOTE: This is important if tally merging was used + if self.domain_type == 'mesh': + filters = [] + filter_bins = [] + elif self.domain_type != 'distribcell': + filters = [_DOMAIN_TO_FILTER[self.domain_type]] + filter_bins = [(self.domain.id,)] + # Distribcell filters only accept single cell - neglect it when slicing + else: + filters = [] + filter_bins = [] + + # Clear any tallies previously loaded from a statepoint + if self.loaded_sp: + self._tallies = None + self._xs_tally = None + self._rxn_rate_tally = None + self._loaded_sp = False + + # Make a list of the surface bins + #surface_bins = list(range(1, 4 * self.domain.n_dimension + 1)) + + # 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(): + #surface_filter = openmc.SurfaceFilter(surface_bins) + #tally.filters.append(surface_filter) + sp_tally = statepoint.get_tally( + tally.scores, tally.filters, tally.nuclides, + estimator=tally.estimator, exact_filters=True) + sp_tally = sp_tally.get_slice( + tally.scores, filters, filter_bins, tally.nuclides) + sp_tally.sparse = self.sparse + self.tallies[tally_type] = sp_tally + + self._loaded_sp = True + + def get_xs(self, groups='all', subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', + value='mean', squeeze=True, **kwargs): + r"""Returns an array of multi-group cross sections. + This method constructs a 3D NumPy array for the requested + multi-group cross section data for one or more subdomains + (1st dimension), energy groups (2nd dimension), and nuclides + (3rd dimension). + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest. Defaults to 'all'. + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U235', 'U238']). The + special string 'all' will return the cross sections for all nuclides + in the spatial domain. The special string 'sum' will return the + cross section summed over all nuclides. Defaults to 'all'. + xs_type: {'macro', 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing or + decreasing energy groups (decreasing or increasing energies). + Defaults to 'increasing'. + value : {'mean', 'std_dev', 'rel_err'} + A string for the type of value to return. Defaults to 'mean'. + squeeze : bool + A boolean representing whether to eliminate the extra dimensions + of the multi-dimensional array to be returned. Defaults to True. + Returns + ------- + numpy.ndarray + A NumPy array of the multi-group cross section indexed in the order + each group, subdomain and nuclide is listed in the parameters. + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + """ + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # FIXME: Unable to get microscopic xs for mesh domain because the mesh + # cells do not know the nuclide densities in each mesh cell. + if self.domain_type == 'mesh' and xs_type == 'micro': + msg = 'Unable to get micro xs for mesh domain since the mesh ' \ + 'cells do not know the nuclide densities in each mesh cell.' + raise ValueError(msg) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if not isinstance(subdomains, string_types): + cv.check_iterable_type('subdomains', subdomains, Integral, + max_depth=3) + + filters.append(_DOMAIN_TO_FILTER[self.domain_type]) + subdomain_bins = [] + for subdomain in subdomains: + subdomain_bins.append(subdomain) + filter_bins.append(tuple(subdomain_bins)) + + # Construct list of energy group bounds tuples for all requested groups + if not isinstance(groups, string_types): + cv.check_iterable_type('groups', groups, Integral) + filters.append(openmc.EnergyFilter) + energy_bins = [] + for group in groups: + energy_bins.append( + (self.energy_groups.get_group_bounds(group),)) + filter_bins.append(tuple(energy_bins)) + + # Construct a collection of the nuclides to retrieve from the xs tally + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: + query_nuclides = self.get_nuclides() + else: + query_nuclides = nuclides + else: + query_nuclides = ['total'] + + # 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) + + # Divide by atom number densities for microscopic cross sections + if xs_type == 'micro' and self._divide_by_density: + 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] + + # Eliminate the trivial score dimension + xs = np.squeeze(xs, axis=len(xs.shape) - 1) + xs = np.nan_to_num(xs) + + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + + # Reshape tally data array with separate axes for domain and energy + # Accomodate the polar and azimuthal bins if needed + num_surfaces = 4 * self.domain.n_dimension + num_subdomains = int(xs.shape[0] / (num_groups * self.num_polar * + self.num_azimuthal * num_surfaces)) + if self.num_polar > 1 or self.num_azimuthal > 1: + new_shape = (self.num_polar, self.num_azimuthal, num_subdomains, + num_groups, num_surfaces) + else: + new_shape = (num_subdomains, num_groups, num_surfaces) + new_shape += xs.shape[1:] + new_xs = np.zeros(new_shape) + for cell in range(num_subdomains): + for g in range(num_groups): + for s in range(num_surfaces): + new_xs[cell,g,s] = \ + xs[cell*num_surfaces*num_groups+s*num_groups+g] + xs = new_xs + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + xs = xs[..., ::-1, :, :] + + if squeeze: + # We want to squeeze out everything but the polar, azimuthal, + # and energy group data. + xs = self._squeeze_xs(xs) + + return xs + + +class Current(SurfaceMGXS): + r"""A current multi-group cross section. + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group total cross sections for multi-group neutronics calculations. At + a minimum, one needs to set the :attr:`TotalXS.energy_groups` and + :attr:`TotalXS.domain` properties. Tallies for the flux and appropriate + reaction rates over the specified domain are generated automatically via the + :attr:`TotalXS.tallies` property, which can then be appended to a + :class:`openmc.Tallies` instance. + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the + necessary data to compute multi-group cross sections from a + :class:`openmc.StatePoint` instance. The derived multi-group cross section + can then be obtained from the :attr:`TotalXS.xs_tally` property. + For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + total cross section is calculated as: + .. math:: + \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; + \sigma_t (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} + d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. + Parameters + ---------- + domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.RegularMesh + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + The domain type for spatial homogenization + groups : openmc.mgxs.EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes cross sections for each nuclide in domain + domain : Material or Cell or Universe or Mesh + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + Domain type for spatial homogenization + energy_groups : openmc.mgxs.EnergyGroups + Energy group structure for energy condensation + tally_trigger : openmc.Trigger + An (optional) tally precision trigger given to each tally used to + compute the cross section + scores : list of str + The scores in each tally used to compute the multi-group cross section + filters : list of openmc.Filter + The filters in each tally used to compute the multi-group cross section + tally_keys : list of str + The keys into the tallies dictionary for each tally used to compute + the multi-group cross section + estimator : {'tracklength', 'analog'} + The tally estimator used to compute the multi-group cross section + tallies : collections.OrderedDict + OpenMC tallies needed to compute the multi-group cross section. The keys + are strings listed in the :attr:`TotalXS.tally_keys` property and values + are instances of :class:`openmc.Tally`. + rxn_rate_tally : openmc.Tally + Derived tally for the reaction rate tally used in the numerator to + compute the multi-group cross section. This attribute is None + unless the multi-group cross section has been computed. + xs_tally : openmc.Tally + Derived tally for the multi-group cross section. This attribute + is None unless the multi-group cross section has been computed. + num_subdomains : int + The number of subdomains is unity for 'material', 'cell' and 'universe' + domain types. This is equal to the number of cell instances + for 'distribcell' domain types (it is equal to unity prior to loading + tally data from a statepoint file). + num_nuclides : int + The number of nuclides for which the multi-group cross section is + being tracked. This is unity if the by_nuclide attribute is False. + nuclides : Iterable of str or 'sum' + The optional user-specified nuclides for which to compute cross + sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides + are not specified by the user, all nuclides in the spatial domain + are included. This attribute is 'sum' if by_nuclide is false. + sparse : bool + Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format + for compressed data storage + loaded_sp : bool + Whether or not a statepoint file has been loaded with tally data + derived : bool + Whether or not the MGXS is merged from one or more other MGXS + hdf5_key : str + The key used to index multi-group cross sections in an HDF5 data store + """ + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(Current, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'current' From 69778fde51d403bc350623c0db4cbe326740ac29 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Tue, 14 Jul 2020 11:22:28 -0600 Subject: [PATCH 003/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- openmc/mgxs/mgxs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 443f2b904..c9e09c4b1 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6022,7 +6022,6 @@ class SurfaceMGXS(MGXS,metaclass=ABCMeta): return self._add_angle_filters(filters) - @property def xs_tally(self): if self._xs_tally is None: From d5cebe407803f86ca70b7c48129f0066da63ca70 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Tue, 14 Jul 2020 11:22:54 -0600 Subject: [PATCH 004/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- openmc/mgxs/mgxs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c9e09c4b1..f163335e9 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5905,6 +5905,7 @@ class SurfaceMGXS(MGXS,metaclass=ABCMeta): post-processing to compute surface- and energy-integrated multi-group cross section for multi-group neutronics calculations. NOTE: Users should instantiate the subclasses of this abstract class. + Parameters ---------- domain : openmc.RegularMesh From f584c95d748463ec6e4baa587e9ede8fc344dc62 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Tue, 14 Jul 2020 11:23:03 -0600 Subject: [PATCH 005/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- openmc/mgxs/mgxs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f163335e9..39020f710 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5919,6 +5919,7 @@ class SurfaceMGXS(MGXS,metaclass=ABCMeta): name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. + Attributes ---------- name : str, optional From b860d7af9cbcfe325555879d4f790ef7186e57d7 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Tue, 14 Jul 2020 11:23:13 -0600 Subject: [PATCH 006/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- openmc/mgxs/mgxs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 39020f710..e5e72a923 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6282,6 +6282,7 @@ class Current(SurfaceMGXS): \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \sigma_t (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. + Parameters ---------- domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.RegularMesh From 69715c7a15e5eb7006376b163d5c8e100a4ceb79 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Tue, 14 Jul 2020 11:23:46 -0600 Subject: [PATCH 007/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- openmc/mgxs/mgxs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e5e72a923..70db0bf7f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6296,6 +6296,7 @@ class Current(SurfaceMGXS): name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. + Attributes ---------- name : str, optional From 47241b334d1705b9bb072556accbb20c7c1a5bf1 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Tue, 14 Jul 2020 11:46:25 -0600 Subject: [PATCH 008/122] Update openmc/mgxs/mgxs.py Co-authored-by: Giud --- 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 70db0bf7f..98a4eea8c 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5898,7 +5898,7 @@ class InverseVelocity(MGXS): raise ValueError('Unable to return the units of InverseVelocity' ' for xs_type other than "macro"') -class SurfaceMGXS(MGXS,metaclass=ABCMeta): +class SurfaceMGXS(MGXS): """An abstract multi-group cross section for some energy group structure on the surfaces of a mesh domain. This class can be used for both OpenMC input generation and tally data From 66224aaf4c1aa03e7ee717896ec534c46929c931 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Tue, 14 Jul 2020 11:50:12 -0600 Subject: [PATCH 009/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- 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 98a4eea8c..5b28b806c 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6173,7 +6173,7 @@ class SurfaceMGXS(MGXS): filter_bins = [] # Construct a collection of the domain filter bins - if not isinstance(subdomains, string_types): + if not isinstance(subdomains, str): cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) From 27d002e0d42eff4653927d5fd58fdb3b041f0cde Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Tue, 14 Jul 2020 11:51:33 -0600 Subject: [PATCH 010/122] Update openmc/mgxs/mgxs.py Co-authored-by: Giud --- 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 5b28b806c..90b5df5dc 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5944,7 +5944,7 @@ class SurfaceMGXS(MGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section From 488ff739bcfc0794cad344f48e64860c04d4af4b Mon Sep 17 00:00:00 2001 From: Miriam Date: Tue, 14 Jul 2020 18:13:25 +0000 Subject: [PATCH 011/122] Making updates based on comments from pull request Set _divide_by_density = False Removed some imports Added lines Changed some wording, variable names --- openmc/mgxs/mgxs.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 70db0bf7f..de70d46a6 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1,4 +1,3 @@ -from abc import ABCMeta from collections import OrderedDict import copy from numbers import Integral @@ -7,7 +6,6 @@ import warnings import h5py import numpy as np -from six import string_types import openmc import openmc.checkvalue as cv @@ -5898,7 +5896,8 @@ class InverseVelocity(MGXS): raise ValueError('Unable to return the units of InverseVelocity' ' for xs_type other than "macro"') -class SurfaceMGXS(MGXS,metaclass=ABCMeta): + +class SurfaceMGXS(MGXS): """An abstract multi-group cross section for some energy group structure on the surfaces of a mesh domain. This class can be used for both OpenMC input generation and tally data @@ -5980,7 +5979,7 @@ class SurfaceMGXS(MGXS,metaclass=ABCMeta): # Store whether or not the number density should be removed for microscopic # values of this data - _divide_by_density = True + _divide_by_density = False def __init__(self, domain=None, domain_type=None, energy_groups=None, by_nuclide=False, name=''): @@ -6173,7 +6172,7 @@ class SurfaceMGXS(MGXS,metaclass=ABCMeta): filter_bins = [] # Construct a collection of the domain filter bins - if not isinstance(subdomains, string_types): + if not isinstance(subdomains, str): cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=3) From e3835aa5822c5687e390e7c234ad429c321a2351 Mon Sep 17 00:00:00 2001 From: Miriam Date: Tue, 14 Jul 2020 20:49:53 +0000 Subject: [PATCH 012/122] Updating based on pull request comments Removed domain & domain_type since those are inherited from MGXS --- openmc/mgxs/mgxs.py | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b8a370898..26b429052 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5991,28 +5991,6 @@ class SurfaceMGXS(MGXS): def scores(self): return [self.rxn_type] - @property - def domain(self): - return self._domain - - @property - def domain_type(self): - return self._domain_type - - @domain.setter - def domain(self, domain): - cv.check_type('domain', domain, openmc.RegularMesh) - self._domain = domain - - # Assign a domain type - if self.domain_type is None: - self._domain_type = 'mesh' - - @domain_type.setter - def domain_type(self, domain_type): - cv.check_value('domain type', domain_type, 'mesh') - self._domain_type = domain_type - @property def filters(self): group_edges = self.energy_groups.group_edges From 7b149cf6cc165a18c7f8f70a06c8a3ca53c9f398 Mon Sep 17 00:00:00 2001 From: Miriam Date: Tue, 14 Jul 2020 22:29:43 +0000 Subject: [PATCH 013/122] Updates based on comments in pull request Changed a type --- 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 26b429052..2c2ea8d65 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6161,7 +6161,7 @@ class SurfaceMGXS(MGXS): filter_bins.append(tuple(subdomain_bins)) # Construct list of energy group bounds tuples for all requested groups - if not isinstance(groups, string_types): + if not isinstance(groups, str): cv.check_iterable_type('groups', groups, Integral) filters.append(openmc.EnergyFilter) energy_bins = [] From 62309029c3525fcbb9fdc29d7cdb457856a650e6 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Tue, 14 Jul 2020 20:09:14 -0600 Subject: [PATCH 014/122] Update openmc/mgxs/mgxs.py Co-authored-by: Giud --- openmc/mgxs/mgxs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2c2ea8d65..59777af71 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5986,7 +5986,6 @@ class SurfaceMGXS(MGXS): super(SurfaceMGXS, self).__init__(domain, domain_type, energy_groups, by_nuclide, name) - @property def scores(self): return [self.rxn_type] From c9dece6eb2e1c23f1172f47c44849ba736f9e10a Mon Sep 17 00:00:00 2001 From: Miriam Date: Thu, 16 Jul 2020 03:02:48 +0000 Subject: [PATCH 015/122] Removed a comment that is outdated. --- openmc/mgxs/mgxs.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2c2ea8d65..20b641225 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6075,9 +6075,6 @@ class SurfaceMGXS(MGXS): self._rxn_rate_tally = None self._loaded_sp = False - # Make a list of the surface bins - #surface_bins = list(range(1, 4 * self.domain.n_dimension + 1)) - # 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(): From 33358fed96aec4578f83383f3aece33ff2e1429a Mon Sep 17 00:00:00 2001 From: Miriam Date: Thu, 16 Jul 2020 15:54:17 +0000 Subject: [PATCH 016/122] Removed oudated comments. --- openmc/mgxs/mgxs.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 1a79d6591..c1fb2827b 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6077,8 +6077,6 @@ class SurfaceMGXS(MGXS): # 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(): - #surface_filter = openmc.SurfaceFilter(surface_bins) - #tally.filters.append(surface_filter) sp_tally = statepoint.get_tally( tally.scores, tally.filters, tally.nuclides, estimator=tally.estimator, exact_filters=True) From 69e9884a027424062de7ea225b5742be5b767c5d Mon Sep 17 00:00:00 2001 From: Miriam Date: Fri, 17 Jul 2020 00:08:14 +0000 Subject: [PATCH 017/122] Updated docstring for current --- openmc/mgxs/mgxs.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c1fb2827b..e99e8a611 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5902,7 +5902,7 @@ class SurfaceMGXS(MGXS): on the surfaces of a mesh domain. This class can be used for both OpenMC input generation and tally data post-processing to compute surface- and energy-integrated multi-group cross - section for multi-group neutronics calculations. + sections for multi-group neutronics calculations. NOTE: Users should instantiate the subclasses of this abstract class. Parameters @@ -6236,23 +6236,22 @@ class SurfaceMGXS(MGXS): class Current(SurfaceMGXS): r"""A current multi-group cross section. This class can be used for both OpenMC input generation and tally data - post-processing to compute spatially-homogenized and energy-integrated - multi-group total cross sections for multi-group neutronics calculations. At - a minimum, one needs to set the :attr:`TotalXS.energy_groups` and - :attr:`TotalXS.domain` properties. Tallies for the flux and appropriate + post-processing to compute surface- and energy-integrated + multi-group current cross sections for multi-group neutronics calculations. At + a minimum, one needs to set the :attr:`Current.energy_groups` and + :attr:`Current.domain` properties. Tallies for the appropriate reaction rates over the specified domain are generated automatically via the - :attr:`TotalXS.tallies` property, which can then be appended to a + :attr:`Current.tallies` property, which can then be appended to a :class:`openmc.Tallies` instance. For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the necessary data to compute multi-group cross sections from a :class:`openmc.StatePoint` instance. The derived multi-group cross section - can then be obtained from the :attr:`TotalXS.xs_tally` property. - For a spatial domain :math:`V` and energy group :math:`[E_g,E_{g-1}]`, the + can then be obtained from the :attr:`Current.xs_tally` property. + For a spatial domain :math:`S` and energy group :math:`[E_g,E_{g-1}]`, the total cross section is calculated as: .. math:: - \frac{\int_{r \in V} dr \int_{4\pi} d\Omega \int_{E_g}^{E_{g-1}} dE \; - \sigma_t (r, E) \psi (r, E, \Omega)}{\int_{r \in V} dr \int_{4\pi} - d\Omega \int_{E_g}^{E_{g-1}} dE \; \psi (r, E, \Omega)}. + \frac{\int_{r \in S} dS \int_{E_g}^{E_{g-1}} dE \; + J(r, E)}{\int_{r \in S} dS \int_{E_g}^{E_{g-1}} dE}. Parameters ---------- From 2e706e5088f3fc1ab266fe45b837b0a0a517bc44 Mon Sep 17 00:00:00 2001 From: Miriam Date: Fri, 17 Jul 2020 03:37:59 +0000 Subject: [PATCH 018/122] Updated certain tests to circumvent current MGXS when calling all MGXS_TYPES These tests had to skip 'current' because current operates only with a mesh domain. However, these tests impose a material domain. Therefore, they should not be run with current. --- tests/regression_tests/mgxs_library_condense/test.py | 2 +- tests/regression_tests/mgxs_library_hdf5/test.py | 2 +- tests/regression_tests/mgxs_library_no_nuclides/test.py | 2 +- tests/regression_tests/mgxs_library_nuclides/test.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/regression_tests/mgxs_library_condense/test.py b/tests/regression_tests/mgxs_library_condense/test.py index 167772e2f..15a4ff827 100644 --- a/tests/regression_tests/mgxs_library_condense/test.py +++ b/tests/regression_tests/mgxs_library_condense/test.py @@ -19,7 +19,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.by_nuclide = False # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES[:-1] + \ openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.num_delayed_groups = 6 diff --git a/tests/regression_tests/mgxs_library_hdf5/test.py b/tests/regression_tests/mgxs_library_hdf5/test.py index 9811ab215..37d30516f 100644 --- a/tests/regression_tests/mgxs_library_hdf5/test.py +++ b/tests/regression_tests/mgxs_library_hdf5/test.py @@ -23,7 +23,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.by_nuclide = False # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES[:-1] + \ openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.num_delayed_groups = 6 diff --git a/tests/regression_tests/mgxs_library_no_nuclides/test.py b/tests/regression_tests/mgxs_library_no_nuclides/test.py index 506ac238f..65b24d78f 100644 --- a/tests/regression_tests/mgxs_library_no_nuclides/test.py +++ b/tests/regression_tests/mgxs_library_no_nuclides/test.py @@ -20,7 +20,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.by_nuclide = False # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES[:-1] + \ openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.num_delayed_groups = 6 diff --git a/tests/regression_tests/mgxs_library_nuclides/test.py b/tests/regression_tests/mgxs_library_nuclides/test.py index c64c27709..521373eb7 100644 --- a/tests/regression_tests/mgxs_library_nuclides/test.py +++ b/tests/regression_tests/mgxs_library_nuclides/test.py @@ -18,7 +18,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib = openmc.mgxs.Library(self._model.geometry) self.mgxs_lib.by_nuclide = True # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES[:-1] self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' From 43456ea2d66c0b690d2b735e6f85937a165606ac Mon Sep 17 00:00:00 2001 From: Miriam Date: Fri, 17 Jul 2020 22:07:15 +0000 Subject: [PATCH 019/122] Made Current class consistent with mesh domain type 1) Kept by_nuclide, num_nuclides, and nuclides in the docstrings because when building a mgxs library for all mgxs_types, the variables should be the same accross all classes. However, I noted that they were unused for a SurfaceMGXS. 2) Removed all code related to nuclides and micro xs since they were unused anyway. 3) Removed the possibility of computing a Current with any domain other than mesh. Included an error message if a current mgxs object is instantiated with any domain other than mesh. Since mesh domains and by_nuclide features are uncompatible, an existing message is already raised when mesh and by_nuclide are used together. 4) Changed estimator type to analog. --- openmc/mgxs/mgxs.py | 113 ++++-------------- .../mgxs_library_distribcell/test.py | 2 +- 2 files changed, 27 insertions(+), 88 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index e99e8a611..a29c0e2a4 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5914,7 +5914,7 @@ class SurfaceMGXS(MGXS): energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool - If true, computes cross sections for each nuclide in domain + Unused for SurfacMGXS name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. @@ -5926,7 +5926,7 @@ class SurfaceMGXS(MGXS): rxn_type : str Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool - If true, computes cross sections for each nuclide in domain + Unused for SurfaceMGXS domain : Mesh Domain for spatial homogenization domain_type : {'mesh'} @@ -5959,13 +5959,9 @@ class SurfaceMGXS(MGXS): two to account for both the incoming and outgoing current from the mesh cell surfaces. num_nuclides : int - The number of nuclides for which the multi-group cross section is - being tracked. This is unity if the by_nuclide attribute is False. + Unused n SurfaceMGXS nuclides : Iterable of str or 'sum' - The optional user-specified nuclides for which to compute cross - sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides - are not specified by the user, all nuclides in the spatial domain - are included. This attribute is 'sum' if by_nuclide is false. + Unused in SurfaceMGXS sparse : bool Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format for compressed data storage @@ -5977,14 +5973,17 @@ class SurfaceMGXS(MGXS): The key used to index multi-group cross sections in an HDF5 data store """ - # Store whether or not the number density should be removed for microscopic - # values of this data - _divide_by_density = False - def __init__(self, domain=None, domain_type=None, energy_groups=None, by_nuclide=False, name=''): super(SurfaceMGXS, self).__init__(domain, domain_type, energy_groups, by_nuclide, name) + self._estimator = ['analog'] + self._valid_estimators = ['analog'] + if domain_type != 'mesh': + msg = 'Unable to compute a SurfaceMGXS for domain type {0} ' \ + 'which is not a mesh type'.format(domain_type) + raise ValueError(msg) + @property def scores(self): @@ -6037,23 +6036,6 @@ class SurfaceMGXS(MGXS): '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 - geom = statepoint.summary.geometry - if self.domain_type in ('cell', 'distribcell'): - self.domain = geom.get_all_cells()[self.domain.id] - elif self.domain_type == 'universe': - self.domain = geom.get_all_universes()[self.domain.id] - elif self.domain_type == 'material': - self.domain = geom.get_all_materials()[self.domain.id] - elif self.domain_type == 'mesh': - self.domain = statepoint.meshes[self.domain.id] - else: - msg = 'Unable to load data from a statepoint for domain type {0} ' \ - 'which is not yet supported'.format(self.domain_type) - raise ValueError(msg) - # Use tally "slicing" to ensure that tallies correspond to our domain # NOTE: This is important if tally merging was used if self.domain_type == 'mesh': @@ -6102,13 +6084,10 @@ class SurfaceMGXS(MGXS): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' - A list of nuclide name strings (e.g., ['U235', 'U238']). The - special string 'all' will return the cross sections for all nuclides - in the spatial domain. The special string 'sum' will return the - cross section summed over all nuclides. Defaults to 'all'. - xs_type: {'macro', 'micro'} - Return the macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. + Unused in SurfaceMGXS + xs_type: {'macro'} + The 'macro'/'micro' distinction does not apply to SurfaceMGXS. + The calculation of a 'micro' xs_type is omited in this class. order_groups: {'increasing', 'decreasing'} Return the cross section indexed according to increasing or decreasing energy groups (decreasing or increasing energies). @@ -6131,14 +6110,7 @@ class SurfaceMGXS(MGXS): """ cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) - cv.check_value('xs_type', xs_type, ['macro', 'micro']) - - # FIXME: Unable to get microscopic xs for mesh domain because the mesh - # cells do not know the nuclide densities in each mesh cell. - if self.domain_type == 'mesh' and xs_type == 'micro': - msg = 'Unable to get micro xs for mesh domain since the mesh ' \ - 'cells do not know the nuclide densities in each mesh cell.' - raise ValueError(msg) + cv.check_value('xs_type', xs_type, ['macro']) filters = [] filter_bins = [] @@ -6164,34 +6136,6 @@ class SurfaceMGXS(MGXS): (self.energy_groups.get_group_bounds(group),)) filter_bins.append(tuple(energy_bins)) - # Construct a collection of the nuclides to retrieve from the xs tally - if self.by_nuclide: - if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: - query_nuclides = self.get_nuclides() - else: - query_nuclides = nuclides - else: - query_nuclides = ['total'] - - # 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) - - # Divide by atom number densities for microscopic cross sections - if xs_type == 'micro' and self._divide_by_density: - 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] - # Eliminate the trivial score dimension xs = np.squeeze(xs, axis=len(xs.shape) - 1) xs = np.nan_to_num(xs) @@ -6262,7 +6206,7 @@ class Current(SurfaceMGXS): groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool - If true, computes cross sections for each nuclide in domain + Unused in SurfaceMGXS name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. @@ -6274,10 +6218,10 @@ class Current(SurfaceMGXS): rxn_type : str Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool - If true, computes cross sections for each nuclide in domain - domain : Material or Cell or Universe or Mesh + Unused for SurfaceMGXS + domain : Mesh Domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + domain_type : {'mesh'} Domain type for spatial homogenization energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation @@ -6291,7 +6235,7 @@ class Current(SurfaceMGXS): tally_keys : list of str The keys into the tallies dictionary for each tally used to compute the multi-group cross section - estimator : {'tracklength', 'analog'} + estimator : {'analog'} The tally estimator used to compute the multi-group cross section tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section. The keys @@ -6305,18 +6249,13 @@ class Current(SurfaceMGXS): Derived tally for the multi-group cross section. This attribute is None unless the multi-group cross section has been computed. num_subdomains : int - The number of subdomains is unity for 'material', 'cell' and 'universe' - domain types. This is equal to the number of cell instances - for 'distribcell' domain types (it is equal to unity prior to loading - tally data from a statepoint file). + The number of subdomains is equal to the number of mesh surfaces times + two to account for both the incoming and outgoing current from the + mesh cell surfaces. num_nuclides : int - The number of nuclides for which the multi-group cross section is - being tracked. This is unity if the by_nuclide attribute is False. + Unused in SurfaceMGXS nuclides : Iterable of str or 'sum' - The optional user-specified nuclides for which to compute cross - sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides - are not specified by the user, all nuclides in the spatial domain - are included. This attribute is 'sum' if by_nuclide is false. + Unused in SurfaceMGXS sparse : bool Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format for compressed data storage diff --git a/tests/regression_tests/mgxs_library_distribcell/test.py b/tests/regression_tests/mgxs_library_distribcell/test.py index 9fe567388..d6e0a6de0 100644 --- a/tests/regression_tests/mgxs_library_distribcell/test.py +++ b/tests/regression_tests/mgxs_library_distribcell/test.py @@ -23,7 +23,7 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.by_nuclide = False # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES[:-1] + \ openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.num_delayed_groups = 6 From 676bcefb1e9551562beec4643cccc62fb3965406 Mon Sep 17 00:00:00 2001 From: Miriam Date: Sun, 19 Jul 2020 04:40:31 +0000 Subject: [PATCH 020/122] Finalized check for mesh & made progress on regression test I had to put domain properties back into the SurfaceMGXS class to perform a checktype on the domain_type. I updated the regression test mgxs_library_mesh to expect the correct input. However, now the test fails for a 2-dimensional mesh. In 3D, the Current MGXS fails because it does not contain a 'z' dimension. Meanwhile, all the other classes contain a 'z' dimension, equal to 1. I need to figure out why the mesh used by SurfaceMGXS doesn't contain the same information as the other classes, even though it is the same mesh used in all. --- openmc/mgxs/mgxs.py | 45 +++++++++------- .../mgxs_library_mesh/inputs_true.dat | 51 +++++++++++-------- 2 files changed, 58 insertions(+), 38 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index a29c0e2a4..1b3e107f8 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1964,6 +1964,7 @@ class MGXS: # energy groups such that data is from fast to thermal if self.domain_type == 'mesh': mesh_str = 'mesh {0}'.format(self.domain.id) + print("HELLO WORLD", mesh_str) df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), (mesh_str, 'z')] + columns, inplace=True) else: @@ -5979,16 +5980,33 @@ class SurfaceMGXS(MGXS): by_nuclide, name) self._estimator = ['analog'] self._valid_estimators = ['analog'] - if domain_type != 'mesh': - msg = 'Unable to compute a SurfaceMGXS for domain type {0} ' \ - 'which is not a mesh type'.format(domain_type) - raise ValueError(msg) - @property def scores(self): return [self.rxn_type] + @property + def domain(self): + return self._domain + + @property + def domain_type(self): + return self._domain_type + + @domain.setter + def domain(self, domain): + cv.check_type('domain', domain, openmc.RegularMesh) + self._domain = domain + + # Assign a domain type + if self.domain_type is None: + self._domain_type = 'mesh' + + @domain_type.setter + def domain_type(self, domain_type): + cv.check_value('domain type', domain_type, 'mesh') + self._domain_type = domain_type + @property def filters(self): group_edges = self.energy_groups.group_edges @@ -6036,18 +6054,8 @@ class SurfaceMGXS(MGXS): 'linked with a summary file' raise ValueError(msg) - # Use tally "slicing" to ensure that tallies correspond to our domain - # NOTE: This is important if tally merging was used - if self.domain_type == 'mesh': - filters = [] - filter_bins = [] - elif self.domain_type != 'distribcell': - filters = [_DOMAIN_TO_FILTER[self.domain_type]] - filter_bins = [(self.domain.id,)] - # Distribcell filters only accept single cell - neglect it when slicing - else: - filters = [] - filter_bins = [] + filters= [] + filter_bins = [] # Clear any tallies previously loaded from a statepoint if self.loaded_sp: @@ -6126,6 +6134,9 @@ class SurfaceMGXS(MGXS): subdomain_bins.append(subdomain) filter_bins.append(tuple(subdomain_bins)) + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + # Construct list of energy group bounds tuples for all requested groups if not isinstance(groups, str): cv.check_iterable_type('groups', groups, Integral) diff --git a/tests/regression_tests/mgxs_library_mesh/inputs_true.dat b/tests/regression_tests/mgxs_library_mesh/inputs_true.dat index f0f93d43c..1f3c1ff6e 100644 --- a/tests/regression_tests/mgxs_library_mesh/inputs_true.dat +++ b/tests/regression_tests/mgxs_library_mesh/inputs_true.dat @@ -53,7 +53,10 @@ 3 - + + 1 + + 1 2 3 4 5 6 @@ -363,61 +366,67 @@ analog + 66 2 + total + current + analog + + 1 2 total flux tracklength - - 1 65 2 + + 1 69 2 total delayed-nu-fission tracklength - - 1 65 2 - total - delayed-nu-fission - analog - - 1 65 5 + 1 69 2 total delayed-nu-fission analog + 1 69 5 + total + delayed-nu-fission + analog + + 1 2 total nu-fission tracklength - - 1 65 2 - total - delayed-nu-fission - tracklength - - 1 65 2 + 1 69 2 total delayed-nu-fission tracklength - 1 65 2 + 1 69 2 + total + delayed-nu-fission + tracklength + + + 1 69 2 total decay-rate tracklength - + 1 2 total flux analog - - 1 65 2 5 + + 1 69 2 5 total delayed-nu-fission analog From 1c7e7fe3f16ba9b1f0cc5ec3ee5af6f68794e49a Mon Sep 17 00:00:00 2001 From: Miriam Date: Sun, 19 Jul 2020 14:00:21 +0000 Subject: [PATCH 021/122] Test passes after modifying get_pandas_dataframe Since the inherted get_pandas_dataframe sorted values by x, y, z, and the current has a different labelling system (doesn't include z if only 2 dimensional, and then also includes x-in, x-out, y-in, y-out, z-in z-out...) I had to redefine get_pandas_dataframe in the SurfaceMGXS class and remove the sorting. --- openmc/mgxs/mgxs.py | 98 ++++++++++++++++++- .../mgxs_library_mesh/results_true.dat | 34 +++++++ 2 files changed, 131 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 1b3e107f8..95dc749c3 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1964,7 +1964,6 @@ class MGXS: # energy groups such that data is from fast to thermal if self.domain_type == 'mesh': mesh_str = 'mesh {0}'.format(self.domain.id) - print("HELLO WORLD", mesh_str) df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), (mesh_str, 'z')] + columns, inplace=True) else: @@ -6187,6 +6186,103 @@ class SurfaceMGXS(MGXS): return xs + def get_pandas_dataframe(self, groups='all', nuclides='all', + xs_type='macro', paths=True): + """Build a Pandas DataFrame for the MGXS data. + This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but + renames the columns with terminology appropriate for cross section data. + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest. Defaults to 'all'. + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the dataframe. This + may be a list of nuclide name strings (e.g., ['U235', 'U238']). + The special string 'all' will include the cross sections for all + nuclides in the spatial domain. The special string 'sum' will + include the cross sections summed over all nuclides. Defaults + to 'all'. + xs_type: {'macro', 'micro'} + Return macro or micro cross section in units of cm^-1 or barns. + Defaults to 'macro'. + paths : bool, optional + Construct columns for distribcell tally filters (default is True). + The geometric information in the Summary object is embedded into + a Multi-index column with a geometric "path" to each distribcell + instance. + Returns + ------- + 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 not isinstance(groups, str): + cv.check_iterable_type('groups', groups, Integral) + if nuclides != 'all' and nuclides != 'sum': + cv.check_iterable_type('nuclides', nuclides, str) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Get a Pandas DataFrame from the derived xs tally + if self.by_nuclide and nuclides == 'sum': + + # Use tally summation to sum across all nuclides + xs_tally = self.xs_tally.summation(nuclides=self.get_nuclides()) + df = xs_tally.get_pandas_dataframe(paths=paths) + + # Remove nuclide column since it is homogeneous and redundant + if self.domain_type == 'mesh': + df.drop('sum(nuclide)', axis=1, level=0, inplace=True) + else: + df.drop('sum(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(paths=paths) + + # If the user requested all nuclides, keep nuclide column in dataframe + else: + df = self.xs_tally.get_pandas_dataframe(paths=paths) + + # Remove the score column since it is homogeneous and redundant + if self.domain_type == 'mesh': + df = df.drop('score', axis=1, level=0) + else: + df = df.drop('score', axis=1) + + # Convert azimuthal, polar, energy in and energy out bin values in to + # bin indices + columns = self._df_convert_columns_to_bins(df) + + # Select out those groups the user requested + if not isinstance(groups, str): + if 'group in' in df: + df = df[df['group in'].isin(groups)] + if 'group out' in df: + df = df[df['group out'].isin(groups)] + + # If user requested micro cross sections, divide out the atom densities + if xs_type == 'micro' and self._divide_by_density: + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + densities = np.repeat(densities, len(self.rxn_rate_tally.scores)) + tile_factor = int(df.shape[0] / len(densities)) + df['mean'] /= np.tile(densities, tile_factor) + df['std. dev.'] /= np.tile(densities, tile_factor) + + # Replace NaNs by zeros (happens if nuclide density is zero) + df['mean'].replace(np.nan, 0.0, inplace=True) + df['std. dev.'].replace(np.nan, 0.0, inplace=True) + + return df + class Current(SurfaceMGXS): r"""A current multi-group cross section. diff --git a/tests/regression_tests/mgxs_library_mesh/results_true.dat b/tests/regression_tests/mgxs_library_mesh/results_true.dat index f1ff29d6c..40ea8c215 100644 --- a/tests/regression_tests/mgxs_library_mesh/results_true.dat +++ b/tests/regression_tests/mgxs_library_mesh/results_true.dat @@ -178,6 +178,40 @@ 2 1 2 1 1 1 total 0.032188 0.002420 1 2 1 1 1 1 total 0.032304 0.002073 3 2 2 1 1 1 total 0.031336 0.001614 + mesh 1 group in nuclide mean std. dev. + x y surf +0 1 1 x-min out 1 total 0.0000 0.000000 +1 1 1 x-min in 1 total 0.0000 0.000000 +2 1 1 x-max out 1 total 0.2738 0.093735 +3 1 1 x-max in 1 total 0.1892 0.011302 +4 1 1 y-min out 1 total 0.0000 0.000000 +5 1 1 y-min in 1 total 0.0000 0.000000 +6 1 1 y-max out 1 total 0.2358 0.041204 +7 1 1 y-max in 1 total 0.1724 0.009114 +8 2 1 x-min out 1 total 0.1892 0.011302 +9 2 1 x-min in 1 total 0.2738 0.093735 +10 2 1 x-max out 1 total 0.0000 0.000000 +11 2 1 x-max in 1 total 0.0000 0.000000 +12 2 1 y-min out 1 total 0.0000 0.000000 +13 2 1 y-min in 1 total 0.0000 0.000000 +14 2 1 y-max out 1 total 0.2290 0.038756 +15 2 1 y-max in 1 total 0.1894 0.012331 +16 1 2 x-min out 1 total 0.0000 0.000000 +17 1 2 x-min in 1 total 0.0000 0.000000 +18 1 2 x-max out 1 total 0.1778 0.010514 +19 1 2 x-max in 1 total 0.1822 0.011922 +20 1 2 y-min out 1 total 0.1724 0.009114 +21 1 2 y-min in 1 total 0.2358 0.041204 +22 1 2 y-max out 1 total 0.0000 0.000000 +23 1 2 y-max in 1 total 0.0000 0.000000 +24 2 2 x-min out 1 total 0.1822 0.011922 +25 2 2 x-min in 1 total 0.1778 0.010514 +26 2 2 x-max out 1 total 0.0244 0.024400 +27 2 2 x-max in 1 total 0.0000 0.000000 +28 2 2 y-min out 1 total 0.1894 0.012331 +29 2 2 y-min in 1 total 0.2290 0.038756 +30 2 2 y-max out 1 total 0.0236 0.023600 +31 2 2 y-max in 1 total 0.0000 0.000000 mesh 1 delayedgroup group in nuclide mean std. dev. x y z 0 1 1 1 1 1 total 0.000007 4.734745e-07 From b903775c466bdf9c5721efacf139c91aa10caa9d Mon Sep 17 00:00:00 2001 From: Miriam Date: Sun, 19 Jul 2020 18:10:23 +0000 Subject: [PATCH 022/122] Ordered the pandas dataframe In the get_pandas_dataframe function of SurfaceMGXS, I removed all by_nuclide and micro options. I also ordered the dataframe so that results would be ordered reliably. This was necessary for tests to pass. Since the domain object is a little different for current than for the other classes, I had to treat the reorder uniquely for the SurfaceMGXS class because of the presence of the mesh surface filter. While other classes assume all meshes have a x, y, and z component, regardless of the dimension, this is not true in SurfaceMGXS. Therefore, I added an if statement for each dimension. --- openmc/mgxs/mgxs.py | 61 +++++-------------- .../mgxs_library_mesh/results_true.dat | 16 ++--- 2 files changed, 22 insertions(+), 55 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 95dc749c3..9081fcc9e 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6196,15 +6196,9 @@ class SurfaceMGXS(MGXS): groups : Iterable of Integral or 'all' Energy groups of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' - The nuclides of the cross-sections to include in the dataframe. This - may be a list of nuclide name strings (e.g., ['U235', 'U238']). - The special string 'all' will include the cross sections for all - nuclides in the spatial domain. The special string 'sum' will - include the cross sections summed over all nuclides. Defaults - to 'all'. - xs_type: {'macro', 'micro'} - Return macro or micro cross section in units of cm^-1 or barns. - Defaults to 'macro'. + Unused in SurfaceMGXS + xs_type: {'macro'} + 'micro' unused in SurfaceMGXS. paths : bool, optional Construct columns for distribcell tally filters (default is True). The geometric information in the Summary object is embedded into @@ -6223,31 +6217,9 @@ class SurfaceMGXS(MGXS): if not isinstance(groups, str): cv.check_iterable_type('groups', groups, Integral) - if nuclides != 'all' and nuclides != 'sum': - cv.check_iterable_type('nuclides', nuclides, str) - cv.check_value('xs_type', xs_type, ['macro', 'micro']) + cv.check_value('xs_type', xs_type, ['macro']) - # Get a Pandas DataFrame from the derived xs tally - if self.by_nuclide and nuclides == 'sum': - - # Use tally summation to sum across all nuclides - xs_tally = self.xs_tally.summation(nuclides=self.get_nuclides()) - df = xs_tally.get_pandas_dataframe(paths=paths) - - # Remove nuclide column since it is homogeneous and redundant - if self.domain_type == 'mesh': - df.drop('sum(nuclide)', axis=1, level=0, inplace=True) - else: - df.drop('sum(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(paths=paths) - - # If the user requested all nuclides, keep nuclide column in dataframe - else: - df = self.xs_tally.get_pandas_dataframe(paths=paths) + df = self.xs_tally.get_pandas_dataframe(paths=paths) # Remove the score column since it is homogeneous and redundant if self.domain_type == 'mesh': @@ -6266,20 +6238,15 @@ class SurfaceMGXS(MGXS): if 'group out' in df: df = df[df['group out'].isin(groups)] - # If user requested micro cross sections, divide out the atom densities - if xs_type == 'micro' and self._divide_by_density: - if self.by_nuclide: - densities = self.get_nuclide_densities(nuclides) - else: - densities = self.get_nuclide_densities('sum') - densities = np.repeat(densities, len(self.rxn_rate_tally.scores)) - tile_factor = int(df.shape[0] / len(densities)) - df['mean'] /= np.tile(densities, tile_factor) - df['std. dev.'] /= np.tile(densities, tile_factor) - - # Replace NaNs by zeros (happens if nuclide density is zero) - df['mean'].replace(np.nan, 0.0, inplace=True) - df['std. dev.'].replace(np.nan, 0.0, inplace=True) + mesh_str = 'mesh {0}'.format(self.domain.id) + if len(self.domain.dimension) == 1: + df.sort_values(by=[(mesh_str, 'x')] + columns, inplace=True) + elif len(self.domain.dimension) == 2: + df.sort_values(by=[(mesh_str, 'x'), + (mesh_str, 'y')] + columns, inplace=True) + elif len(self.domain.dimension) == 3: + df.sort_values(by=[(mesh_str, 'x'), + (mesh_str, 'y'), (mesh_str, 'z')] + columns, inplace=True) return df diff --git a/tests/regression_tests/mgxs_library_mesh/results_true.dat b/tests/regression_tests/mgxs_library_mesh/results_true.dat index 40ea8c215..1af47cf76 100644 --- a/tests/regression_tests/mgxs_library_mesh/results_true.dat +++ b/tests/regression_tests/mgxs_library_mesh/results_true.dat @@ -188,14 +188,6 @@ 5 1 1 y-min in 1 total 0.0000 0.000000 6 1 1 y-max out 1 total 0.2358 0.041204 7 1 1 y-max in 1 total 0.1724 0.009114 -8 2 1 x-min out 1 total 0.1892 0.011302 -9 2 1 x-min in 1 total 0.2738 0.093735 -10 2 1 x-max out 1 total 0.0000 0.000000 -11 2 1 x-max in 1 total 0.0000 0.000000 -12 2 1 y-min out 1 total 0.0000 0.000000 -13 2 1 y-min in 1 total 0.0000 0.000000 -14 2 1 y-max out 1 total 0.2290 0.038756 -15 2 1 y-max in 1 total 0.1894 0.012331 16 1 2 x-min out 1 total 0.0000 0.000000 17 1 2 x-min in 1 total 0.0000 0.000000 18 1 2 x-max out 1 total 0.1778 0.010514 @@ -204,6 +196,14 @@ 21 1 2 y-min in 1 total 0.2358 0.041204 22 1 2 y-max out 1 total 0.0000 0.000000 23 1 2 y-max in 1 total 0.0000 0.000000 +8 2 1 x-min out 1 total 0.1892 0.011302 +9 2 1 x-min in 1 total 0.2738 0.093735 +10 2 1 x-max out 1 total 0.0000 0.000000 +11 2 1 x-max in 1 total 0.0000 0.000000 +12 2 1 y-min out 1 total 0.0000 0.000000 +13 2 1 y-min in 1 total 0.0000 0.000000 +14 2 1 y-max out 1 total 0.2290 0.038756 +15 2 1 y-max in 1 total 0.1894 0.012331 24 2 2 x-min out 1 total 0.1822 0.011922 25 2 2 x-min in 1 total 0.1778 0.010514 26 2 2 x-max out 1 total 0.0244 0.024400 From 979317f6145f56ea95e3d76f81077b81a8a9cd6b Mon Sep 17 00:00:00 2001 From: Miriam Date: Sun, 19 Jul 2020 20:52:25 +0000 Subject: [PATCH 023/122] Added surfaces to the reordering of pandas dataframe --- openmc/mgxs/mgxs.py | 11 +++-- .../mgxs_library_mesh/results_true.dat | 48 +++++++++---------- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 9081fcc9e..fb72cc9fc 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6240,13 +6240,14 @@ class SurfaceMGXS(MGXS): mesh_str = 'mesh {0}'.format(self.domain.id) if len(self.domain.dimension) == 1: - df.sort_values(by=[(mesh_str, 'x')] + columns, inplace=True) + df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'surf')] + + columns, inplace=True) elif len(self.domain.dimension) == 2: - df.sort_values(by=[(mesh_str, 'x'), - (mesh_str, 'y')] + columns, inplace=True) + df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), + (mesh_str, 'surf')] + columns, inplace=True) elif len(self.domain.dimension) == 3: - df.sort_values(by=[(mesh_str, 'x'), - (mesh_str, 'y'), (mesh_str, 'z')] + columns, inplace=True) + df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), + (mesh_str, 'z'), (mesh_str, 'surf')] + columns, inplace=True) return df diff --git a/tests/regression_tests/mgxs_library_mesh/results_true.dat b/tests/regression_tests/mgxs_library_mesh/results_true.dat index 1af47cf76..cbcbcb239 100644 --- a/tests/regression_tests/mgxs_library_mesh/results_true.dat +++ b/tests/regression_tests/mgxs_library_mesh/results_true.dat @@ -180,38 +180,38 @@ 3 2 2 1 1 1 total 0.031336 0.001614 mesh 1 group in nuclide mean std. dev. x y surf -0 1 1 x-min out 1 total 0.0000 0.000000 -1 1 1 x-min in 1 total 0.0000 0.000000 -2 1 1 x-max out 1 total 0.2738 0.093735 3 1 1 x-max in 1 total 0.1892 0.011302 -4 1 1 y-min out 1 total 0.0000 0.000000 -5 1 1 y-min in 1 total 0.0000 0.000000 -6 1 1 y-max out 1 total 0.2358 0.041204 +2 1 1 x-max out 1 total 0.2738 0.093735 +1 1 1 x-min in 1 total 0.0000 0.000000 +0 1 1 x-min out 1 total 0.0000 0.000000 7 1 1 y-max in 1 total 0.1724 0.009114 -16 1 2 x-min out 1 total 0.0000 0.000000 -17 1 2 x-min in 1 total 0.0000 0.000000 -18 1 2 x-max out 1 total 0.1778 0.010514 +6 1 1 y-max out 1 total 0.2358 0.041204 +5 1 1 y-min in 1 total 0.0000 0.000000 +4 1 1 y-min out 1 total 0.0000 0.000000 19 1 2 x-max in 1 total 0.1822 0.011922 -20 1 2 y-min out 1 total 0.1724 0.009114 -21 1 2 y-min in 1 total 0.2358 0.041204 -22 1 2 y-max out 1 total 0.0000 0.000000 +18 1 2 x-max out 1 total 0.1778 0.010514 +17 1 2 x-min in 1 total 0.0000 0.000000 +16 1 2 x-min out 1 total 0.0000 0.000000 23 1 2 y-max in 1 total 0.0000 0.000000 -8 2 1 x-min out 1 total 0.1892 0.011302 -9 2 1 x-min in 1 total 0.2738 0.093735 -10 2 1 x-max out 1 total 0.0000 0.000000 +22 1 2 y-max out 1 total 0.0000 0.000000 +21 1 2 y-min in 1 total 0.2358 0.041204 +20 1 2 y-min out 1 total 0.1724 0.009114 11 2 1 x-max in 1 total 0.0000 0.000000 -12 2 1 y-min out 1 total 0.0000 0.000000 -13 2 1 y-min in 1 total 0.0000 0.000000 -14 2 1 y-max out 1 total 0.2290 0.038756 +10 2 1 x-max out 1 total 0.0000 0.000000 +9 2 1 x-min in 1 total 0.2738 0.093735 +8 2 1 x-min out 1 total 0.1892 0.011302 15 2 1 y-max in 1 total 0.1894 0.012331 -24 2 2 x-min out 1 total 0.1822 0.011922 -25 2 2 x-min in 1 total 0.1778 0.010514 -26 2 2 x-max out 1 total 0.0244 0.024400 +14 2 1 y-max out 1 total 0.2290 0.038756 +13 2 1 y-min in 1 total 0.0000 0.000000 +12 2 1 y-min out 1 total 0.0000 0.000000 27 2 2 x-max in 1 total 0.0000 0.000000 -28 2 2 y-min out 1 total 0.1894 0.012331 -29 2 2 y-min in 1 total 0.2290 0.038756 -30 2 2 y-max out 1 total 0.0236 0.023600 +26 2 2 x-max out 1 total 0.0244 0.024400 +25 2 2 x-min in 1 total 0.1778 0.010514 +24 2 2 x-min out 1 total 0.1822 0.011922 31 2 2 y-max in 1 total 0.0000 0.000000 +30 2 2 y-max out 1 total 0.0236 0.023600 +29 2 2 y-min in 1 total 0.2290 0.038756 +28 2 2 y-min out 1 total 0.1894 0.012331 mesh 1 delayedgroup group in nuclide mean std. dev. x y z 0 1 1 1 1 1 total 0.000007 4.734745e-07 From 4aa478f17b27880070a3be3e4cd4f300bb4938f7 Mon Sep 17 00:00:00 2001 From: Miriam Date: Mon, 20 Jul 2020 00:54:20 +0000 Subject: [PATCH 024/122] Imposed order on pandas dataframe The Travis CI test on Python 3.5 kept reordering the dataframe so that the results wouldn't match. For that reason, I had to impose the order of the columns with a clunky process: -drop the column of surfaces from whatever location it's in -reinsert the column of surfaces where I want it to be --- openmc/mgxs/mgxs.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index fb72cc9fc..80a858073 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6239,14 +6239,17 @@ class SurfaceMGXS(MGXS): df = df[df['group out'].isin(groups)] mesh_str = 'mesh {0}'.format(self.domain.id) + surfaces = df[(mesh_str,'surf')] + df.drop(columns=[(mesh_str,'surf')],inplace=True) + df.insert(len(self.domain.dimension),(mesh_str,'surf'),surfaces) if len(self.domain.dimension) == 1: df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'surf')] + columns, inplace=True) elif len(self.domain.dimension) == 2: - df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), + df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), (mesh_str, 'surf')] + columns, inplace=True) elif len(self.domain.dimension) == 3: - df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), + df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'y'), (mesh_str, 'z'), (mesh_str, 'surf')] + columns, inplace=True) return df From 187ef2edcca6119ded2c186ce866f9294794205a Mon Sep 17 00:00:00 2001 From: Miriam Date: Tue, 21 Jul 2020 20:01:50 +0000 Subject: [PATCH 025/122] Renamed SurfaceMGXS class to MeshSurfaceMGXS --- openmc/mgxs/mgxs.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 80a858073..7c6da1af7 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5897,7 +5897,7 @@ class InverseVelocity(MGXS): ' for xs_type other than "macro"') -class SurfaceMGXS(MGXS): +class MeshSurfaceMGXS(MGXS): """An abstract multi-group cross section for some energy group structure on the surfaces of a mesh domain. This class can be used for both OpenMC input generation and tally data @@ -5926,7 +5926,7 @@ class SurfaceMGXS(MGXS): rxn_type : str Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool - Unused for SurfaceMGXS + Unused for MeshSurfaceMGXS domain : Mesh Domain for spatial homogenization domain_type : {'mesh'} @@ -5959,9 +5959,9 @@ class SurfaceMGXS(MGXS): two to account for both the incoming and outgoing current from the mesh cell surfaces. num_nuclides : int - Unused n SurfaceMGXS + Unused in MeshSurfaceMGXS nuclides : Iterable of str or 'sum' - Unused in SurfaceMGXS + Unused in MeshSurfaceMGXS sparse : bool Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format for compressed data storage @@ -5975,7 +5975,7 @@ class SurfaceMGXS(MGXS): def __init__(self, domain=None, domain_type=None, energy_groups=None, by_nuclide=False, name=''): - super(SurfaceMGXS, self).__init__(domain, domain_type, energy_groups, + super(MeshSurfaceMGXS, self).__init__(domain, domain_type, energy_groups, by_nuclide, name) self._estimator = ['analog'] self._valid_estimators = ['analog'] @@ -6091,9 +6091,9 @@ class SurfaceMGXS(MGXS): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' - Unused in SurfaceMGXS + Unused in MeshSurfaceMGXS xs_type: {'macro'} - The 'macro'/'micro' distinction does not apply to SurfaceMGXS. + The 'macro'/'micro' distinction does not apply to MeshSurfaceMGXS. The calculation of a 'micro' xs_type is omited in this class. order_groups: {'increasing', 'decreasing'} Return the cross section indexed according to increasing or @@ -6196,9 +6196,9 @@ class SurfaceMGXS(MGXS): groups : Iterable of Integral or 'all' Energy groups of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' - Unused in SurfaceMGXS + Unused in MeshSurfaceMGXS xs_type: {'macro'} - 'micro' unused in SurfaceMGXS. + 'micro' unused in MeshSurfaceMGXS. paths : bool, optional Construct columns for distribcell tally filters (default is True). The geometric information in the Summary object is embedded into @@ -6255,7 +6255,7 @@ class SurfaceMGXS(MGXS): return df -class Current(SurfaceMGXS): +class Current(MeshSurfaceMGXS): r"""A current multi-group cross section. This class can be used for both OpenMC input generation and tally data post-processing to compute surface- and energy-integrated @@ -6284,7 +6284,7 @@ class Current(SurfaceMGXS): groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool - Unused in SurfaceMGXS + Unused in MeshSurfaceMGXS name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. @@ -6296,7 +6296,7 @@ class Current(SurfaceMGXS): rxn_type : str Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool - Unused for SurfaceMGXS + Unused for MeshSurfaceMGXS domain : Mesh Domain for spatial homogenization domain_type : {'mesh'} @@ -6331,9 +6331,9 @@ class Current(SurfaceMGXS): two to account for both the incoming and outgoing current from the mesh cell surfaces. num_nuclides : int - Unused in SurfaceMGXS + Unused in MeshSurfaceMGXS nuclides : Iterable of str or 'sum' - Unused in SurfaceMGXS + Unused in MeshSurfaceMGXS sparse : bool Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format for compressed data storage From 0bcc9f2c06f5673a95027fd493528f38ba4d7310 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 23 Jul 2020 13:47:57 -0500 Subject: [PATCH 026/122] Making sure score data is removed from the unstructured mesh. --- include/openmc/mesh.h | 3 +++ src/mesh.cpp | 24 ++++++++++++++++++++++++ src/state_point.cpp | 4 ++++ 3 files changed, 31 insertions(+) diff --git a/include/openmc/mesh.h b/include/openmc/mesh.h index a7160b0c8..d17f82023 100644 --- a/include/openmc/mesh.h +++ b/include/openmc/mesh.h @@ -298,6 +298,9 @@ public: //! Add a score to the mesh instance void add_score(std::string score) const; + //! Remove a score from the mesh instance + void remove_score(std::string score) const; + //! Set data for a score void set_score_data(const std::string& score, std::vector values, diff --git a/src/mesh.cpp b/src/mesh.cpp index b76be1ee8..5acfee44e 100644 --- a/src/mesh.cpp +++ b/src/mesh.cpp @@ -2015,6 +2015,30 @@ UnstructuredMesh::add_score(std::string score) const { auto score_tags = this->get_score_tags(score); } +void UnstructuredMesh::remove_score(std::string score) const { + moab::ErrorCode rval; + moab::Tag tag; + auto value_name = score + "_mean"; + rval = mbi_->tag_get_handle(value_name.c_str(), tag); + if (rval != moab::MB_SUCCESS) return; + + rval = mbi_->tag_delete(tag); + if (rval != moab::MB_SUCCESS) { + auto msg = fmt::format("Failed to delete mesh tag for the score {}" + " on unstructured mesh {}", score, id_); + fatal_error(msg); + } + + auto std_dev_name = score + "_std_dev"; + rval = mbi_->tag_get_handle(std_dev_name.c_str(), tag); + if (rval != moab::MB_SUCCESS) { + auto msg = fmt::format("Std. Dev. mesh tag does not exist for the score {}" + " on unstructured mesh {}", score, id_); + } + + +} + void UnstructuredMesh::set_score_data(const std::string& score, std::vector values, diff --git a/src/state_point.cpp b/src/state_point.cpp index bf249aa98..faf8071e7 100644 --- a/src/state_point.cpp +++ b/src/state_point.cpp @@ -687,6 +687,8 @@ void read_source_bank(hid_t group_id) void write_unstructured_mesh_results() { for (auto& tally : model::tallies) { + + std::vector tally_scores; for (auto filter_idx : tally->filters()) { auto& filter = model::tally_filters[filter_idx]; if (filter->type() != "mesh") continue; @@ -754,6 +756,8 @@ void write_unstructured_mesh_results() { w); // Write the unstructured mesh and data to file umesh->write(filename); + + for (const auto& score : tally_scores) { umesh->remove_score(score); } } } } From 7dbd211c534d2ad4044c68efb635343d7de5ec71 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 23 Jul 2020 16:31:47 -0500 Subject: [PATCH 027/122] Ensuring the data is deleted and scores for a given tally are tracked when writing the vtk file. --- src/mesh.cpp | 7 ++++++- src/state_point.cpp | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/mesh.cpp b/src/mesh.cpp index 5acfee44e..0cdd85631 100644 --- a/src/mesh.cpp +++ b/src/mesh.cpp @@ -2036,7 +2036,12 @@ void UnstructuredMesh::remove_score(std::string score) const { " on unstructured mesh {}", score, id_); } - + rval = mbi_->tag_delete(tag); + if (rval != moab::MB_SUCCESS) { + auto msg = fmt::format("Failed to delete mesh tag for the score {}" + " on unstructured mesh {}", score, id_); + fatal_error(msg); + } } void diff --git a/src/state_point.cpp b/src/state_point.cpp index faf8071e7..409a6ba7d 100644 --- a/src/state_point.cpp +++ b/src/state_point.cpp @@ -743,6 +743,7 @@ void write_unstructured_mesh_results() { std::string score_name = tally->score_name(i_score); auto score_str = fmt::format("{}_{}", score_name, nuclide_name); + tally_scores.push_back(score_str); umesh->set_score_data(score_str, mean_vec, std_dev_vec); } } From 61cf4f71a900ab52bc2d083c9244cceca1a1f78c Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 10:26:33 +0100 Subject: [PATCH 028/122] Add a serialization attribute to Source Adds serialization as an optional attribute to Source objects. This attribute represents the path to the file containing the serialized representation of the source. --- openmc/source.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/openmc/source.py b/openmc/source.py index cc749c324..8ede50581 100644 --- a/openmc/source.py +++ b/openmc/source.py @@ -22,6 +22,8 @@ class Source: Source file from which sites should be sampled library : str Path to a custom source library + serialization : str + Path to the serialized representation of the custom source .. versionadded:: 0.12 strength : float @@ -41,6 +43,8 @@ class Source: Source file from which sites should be sampled library : str or None Path to a custom source library + serialization : str + Path to the serialized representation of the custom source strength : float Strength of the source particle : {'neutron', 'photon'} @@ -49,12 +53,13 @@ class Source: """ def __init__(self, space=None, angle=None, energy=None, filename=None, - library=None, strength=1.0, particle='neutron'): + library=None, serialization=None, strength=1.0, particle='neutron'): self._space = None self._angle = None self._energy = None self._file = None self._library = None + self._serialization = None if space is not None: self.space = space @@ -66,6 +71,8 @@ class Source: self.file = filename if library is not None: self.library = library + if serialization is not None: + self.serialization = serialization self.strength = strength self.particle = particle @@ -77,6 +84,10 @@ class Source: def library(self): return self._library + @property + def serialization(self): + return self._serialization + @property def space(self): return self._space @@ -107,6 +118,11 @@ class Source: cv.check_type('library', library_name, str) self._library = library_name + @serialization.setter + def serialization(self, serialization_path): + cv.check_type('serialization', serialization_path, str) + self._serialization = serialization_path + @space.setter def space(self, space): cv.check_type('spatial distribution', space, Spatial) @@ -150,6 +166,8 @@ class Source: element.set("file", self.file) if self.library is not None: element.set("library", self.library) + if self.serialization is not None: + element.set("serialization", self.serialization) if self.space is not None: element.append(self.space.to_xml_element()) if self.angle is not None: @@ -191,6 +209,10 @@ class Source: if library is not None: source.library = library + serialization = get_text(elem, 'serialization') + if serialization is not None: + source.serialization = serialization + space = elem.find('space') if space is not None: source.space = Spatial.from_xml_element(space) From 1b60181ddbb86e9c68672dc70759b85adbe92a42 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 10:29:23 +0100 Subject: [PATCH 029/122] Update build_xml to use serialization File is largely based on the existing custom_source example. Uses the serialization attribute on the source to point to an XML file containing the serialized representation of the source. Also builds the serialized_source.xml file with some default values. Uses a new name for the library containing the serializable source. --- .../serialized_custom_source/build_xml.py | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 examples/serialized_custom_source/build_xml.py diff --git a/examples/serialized_custom_source/build_xml.py b/examples/serialized_custom_source/build_xml.py new file mode 100644 index 000000000..fba545959 --- /dev/null +++ b/examples/serialized_custom_source/build_xml.py @@ -0,0 +1,46 @@ +import openmc + +# Define the serialised source +serialized_source = """ + 1.5 + 1e3 + +""" +with open('serialized_source.xml', 'w') as f: + f.write(serialized_source) + +# Create a single material +iron = openmc.Material() +iron.set_density('g/cm3', 5.0) +iron.add_element('Fe', 1.0) +mats = openmc.Materials([iron]) +mats.export_to_xml() + +# Create a 5 cm x 5 cm box filled with iron +box = openmc.model.rectangular_prism(10.0, 10.0, boundary_type='vacuum') +cell = openmc.Cell(fill=iron, region=box) +geometry = openmc.Geometry([cell]) +geometry.export_to_xml() + +# Tell OpenMC we're going to use our custom source +settings = openmc.Settings() +settings.run_mode = 'fixed source' +settings.batches = 10 +settings.particles = 1000 +source = openmc.Source() +source.library = 'build/libserialized_source.so' +source.serialization = 'serialized_source.xml' +settings.source = source +settings.export_to_xml() + +# Finally, define a mesh tally so that we can see the resulting flux +mesh = openmc.RegularMesh() +mesh.lower_left = (-5.0, -5.0) +mesh.upper_right = (5.0, 5.0) +mesh.dimension = (50, 50) + +tally = openmc.Tally() +tally.filters = [openmc.MeshFilter(mesh)] +tally.scores = ['flux'] +tallies = openmc.Tallies([tally]) +tallies.export_to_xml() From 6b193882c3f40b3590675f6342c411043f62ebfa Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 11:41:43 +0100 Subject: [PATCH 030/122] Class and sampling function of serialized source Generates a source ring in a similar manner to the existing custom_source example. Allows the radius and energy to be defined via a serialized representation of the source. Builds using CMake. --- .../serialized_custom_source/CMakeLists.txt | 8 +++ .../serialized_source_ring.cpp | 58 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 examples/serialized_custom_source/CMakeLists.txt create mode 100644 examples/serialized_custom_source/serialized_source_ring.cpp diff --git a/examples/serialized_custom_source/CMakeLists.txt b/examples/serialized_custom_source/CMakeLists.txt new file mode 100644 index 000000000..9d76718e5 --- /dev/null +++ b/examples/serialized_custom_source/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.3 FATAL_ERROR) +project(openmc_sources CXX) +add_library(serialized_source SHARED serialized_source_ring.cpp) +find_package(OpenMC REQUIRED) +if (OpenMC_FOUND) + message(STATUS "Found OpenMC: ${OpenMC_DIR}") +endif() +target_link_libraries(serialized_source OpenMC::libopenmc) diff --git a/examples/serialized_custom_source/serialized_source_ring.cpp b/examples/serialized_custom_source/serialized_source_ring.cpp new file mode 100644 index 000000000..560a99345 --- /dev/null +++ b/examples/serialized_custom_source/serialized_source_ring.cpp @@ -0,0 +1,58 @@ +#include // for M_PI + +#include "openmc/random_lcg.h" +#include "openmc/source.h" +#include "openmc/particle.h" +#include "pugixml.hpp" + +class SerialisedSource { + protected: + double radius_; + double energy_; + + // Protect the constructor so that the class can only be created by serialisation. + SerialisedSource(double radius, double energy) { + radius_ = radius; + energy_ = energy; + } + + public: + // Getters for the values that we want to use in sampling. + double radius() { return radius_; } + double energy() { return energy_; } + + // The deserialisation routine populates the constructor from well defined elements + // in the input XML document. + static SerialisedSource from_xml(char* serialised_source) { + pugi::xml_document doc; + doc.load_file(serialised_source); + pugi::xml_node root_node = doc.root().child("Source"); + double radius = root_node.child("Radius").text().as_double(); + double energy = root_node.child("Energy").text().as_double(); + return SerialisedSource(radius, energy); + } +}; + +// you must have external C linkage here otherwise +// dlopen will not find the file +extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, char* serialised_source) +{ + SerialisedSource source = SerialisedSource::from_xml(serialised_source); + + openmc::Particle::Bank particle; + // wgt + particle.particle = openmc::Particle::Type::neutron; + particle.wgt = 1.0; + // position + double angle = 2. * M_PI * openmc::prn(seed); + double radius = source.radius(); + particle.r.x = radius * std::cos(angle); + particle.r.y = radius * std::sin(angle); + particle.r.z = 0.0; + // angle + particle.u = {1.0, 0.0, 0.0}; + particle.E = source.energy(); + particle.delayed_group = 0; + + return particle; +} From 67e846c4d53e8ee3d350421a68674415ce349c0e Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 11:48:00 +0100 Subject: [PATCH 031/122] Load new serializable form of source function Updates the SourceDistribution to optionally look for a function template accepting char* as the second argument. If serialization is defined as an attribute on the source element provided in the settings.xml then the new form with serialization will be used. Otherwise the existing form to load the custom source as-is from the library will be used. --- src/source.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/source.cpp b/src/source.cpp index 3f31541db..86dac6b3f 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -46,6 +46,9 @@ namespace { using sample_t = Particle::Bank (*)(uint64_t* seed); sample_t custom_source_function; +std::string serialization; +using serialized_sample_t = Particle::Bank (*)(uint64_t* seed, const char* serialization); +serialized_sample_t custom_serialized_source_function; void* custom_source_library; } @@ -94,6 +97,10 @@ SourceDistribution::SourceDistribution(pugi::xml_node node) fatal_error(fmt::format("Source library '{}' does not exist.", settings::path_source_library)); } + + if (check_for_node(node, "serialization")) { + serialization = get_node_value(node, "serialization", false, true); + } } else { // Spatial distribution for external source @@ -367,9 +374,15 @@ void load_custom_source_library() // reset errors dlerror(); - // get the function from the library - using sample_t = Particle::Bank (*)(uint64_t* seed); - custom_source_function = reinterpret_cast(dlsym(custom_source_library, "sample_source")); + if (serialization.empty()) { + // get the function from the library + using sample_t = Particle::Bank (*)(uint64_t* seed); + custom_source_function = reinterpret_cast(dlsym(custom_source_library, "sample_source")); + } else { + // get the function from the library using the provided serialization + using sample_t = Particle::Bank (*)(uint64_t* seed, const char* serialization); + custom_serialized_source_function = reinterpret_cast(dlsym(custom_source_library, "sample_source")); + } // check for any dlsym errors auto dlsym_error = dlerror(); @@ -396,7 +409,11 @@ void close_custom_source_library() Particle::Bank sample_custom_source_library(uint64_t* seed) { - return custom_source_function(seed); + if (serialization.empty()) { + return custom_source_function(seed); + } else { + return custom_serialized_source_function(seed, serialization.c_str()); + } } void fill_source_bank_custom_source() From 62e194e0d669e44b4e83f6109ded5a34045ac9b2 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 11:48:32 +0100 Subject: [PATCH 032/122] Add README to describe usage of serialized source --- examples/serialized_custom_source/README.md | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 examples/serialized_custom_source/README.md diff --git a/examples/serialized_custom_source/README.md b/examples/serialized_custom_source/README.md new file mode 100644 index 000000000..52c003074 --- /dev/null +++ b/examples/serialized_custom_source/README.md @@ -0,0 +1,22 @@ +# Building a Serialised Custom Source + +To run this example, you first need to compile the custom source library, which +requires headers from OpenMC. A CMakeLists.txt file has been set up for you that +will search for OpenMC and build the custom library. To build the source +library, you can run: + + mkdir build && cd build + OPENMC_ROOT= cmake .. + make + +After this, you can build the model by running `python build_xml.py`. In the XML +files that are created, you should see a reference to build/libserialised_source.so, +the custom source library that was built by CMake. The model is also set up with a +mesh tally of the flux, so once you run `openmc`, you will get a statepoint file +with the tally results in it. Running `python show_flux.py` will pull in the +results from the statepoint file and display them. If all worked well, you +should see a ring "imprint" as well as a higher flux to the right side (since +the custom source has all particles moving in the positive x direction). + +Once built, you can edit the serialised_source.xml file to change the radius of the +sampled ring or the energy of the sampled particles. From 59594fea70ae73eecab172b656e695d958d9a5dd Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 11:48:53 +0100 Subject: [PATCH 033/122] Add copy of existing show_flux.py --- examples/serialized_custom_source/show_flux.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 examples/serialized_custom_source/show_flux.py diff --git a/examples/serialized_custom_source/show_flux.py b/examples/serialized_custom_source/show_flux.py new file mode 100644 index 000000000..6f5494301 --- /dev/null +++ b/examples/serialized_custom_source/show_flux.py @@ -0,0 +1,14 @@ +import matplotlib.pyplot as plt +import openmc + +# Get the flux from the statepoint +with openmc.StatePoint('statepoint.10.h5') as sp: + flux = sp.tallies[1].mean + flux.shape = (50, 50) + +# Plot the flux +fig, ax = plt.subplots() +ax.imshow(flux, origin='lower', extent=(-5.0, 5.0, -5.0, 5.0)) +ax.set_xlabel('x [cm]') +ax.set_ylabel('y [cm]') +plt.show() From d4e7fa5d87050eea456121faa3e7ad078ff2d3a4 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 13:22:29 +0100 Subject: [PATCH 034/122] Add description of serialized XML file to README --- examples/serialized_custom_source/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/serialized_custom_source/README.md b/examples/serialized_custom_source/README.md index 52c003074..2ebc1ecc2 100644 --- a/examples/serialized_custom_source/README.md +++ b/examples/serialized_custom_source/README.md @@ -11,7 +11,8 @@ library, you can run: After this, you can build the model by running `python build_xml.py`. In the XML files that are created, you should see a reference to build/libserialised_source.so, -the custom source library that was built by CMake. The model is also set up with a +the custom source library that was built by CMake, and the path to the serialized +representation of the source in serialized_source.xml. The model is also set up with a mesh tally of the flux, so once you run `openmc`, you will get a statepoint file with the tally results in it. Running `python show_flux.py` will pull in the results from the statepoint file and display them. If all worked well, you From 175d57c1266a37f01fae7ae64370eb75e2e12566 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 13:25:46 +0100 Subject: [PATCH 035/122] Load the serialized representation from file once The previous implementation had each sampling run reading from the serialized file. This introduced a large I/O overhead and the performance was much slower than the equivalent run with the unserialized source. --- .../serialized_custom_source/serialized_source_ring.cpp | 4 +++- src/source.cpp | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/examples/serialized_custom_source/serialized_source_ring.cpp b/examples/serialized_custom_source/serialized_source_ring.cpp index 560a99345..7e19bc579 100644 --- a/examples/serialized_custom_source/serialized_source_ring.cpp +++ b/examples/serialized_custom_source/serialized_source_ring.cpp @@ -23,9 +23,11 @@ class SerialisedSource { // The deserialisation routine populates the constructor from well defined elements // in the input XML document. + // Note that the source will have already been read from file, so what will be passed + // in here is a string-like serialized value (not the path to the serialized value). static SerialisedSource from_xml(char* serialised_source) { pugi::xml_document doc; - doc.load_file(serialised_source); + doc.load_string(serialised_source); pugi::xml_node root_node = doc.root().child("Source"); double radius = root_node.child("Radius").text().as_double(); double energy = root_node.child("Energy").text().as_double(); diff --git a/src/source.cpp b/src/source.cpp index 86dac6b3f..d7bcf726b 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -99,7 +99,13 @@ SourceDistribution::SourceDistribution(pugi::xml_node node) } if (check_for_node(node, "serialization")) { - serialization = get_node_value(node, "serialization", false, true); + // If the source is serialized then make sure we only load it from file once, otherwise there will + // be a significant I/O overhead. + pugi::xml_document doc; + doc.load_file(get_node_value(node, "serialization", false, true).c_str()); + std::stringstream ss; + doc.print(ss); + serialization = ss.str(); } } else { From 4e896ae06ffe6bc6f0153565cbefa9e175ff3afd Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Fri, 31 Jul 2020 08:22:00 -0600 Subject: [PATCH 036/122] Update openmc/mgxs/mgxs.py Co-authored-by: Giud --- 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 7c6da1af7..dfe3fecaf 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6239,7 +6239,7 @@ class MeshSurfaceMGXS(MGXS): df = df[df['group out'].isin(groups)] mesh_str = 'mesh {0}'.format(self.domain.id) - surfaces = df[(mesh_str,'surf')] + surfaces = df[(mesh_str, 'surf')] df.drop(columns=[(mesh_str,'surf')],inplace=True) df.insert(len(self.domain.dimension),(mesh_str,'surf'),surfaces) if len(self.domain.dimension) == 1: From 7770010cf1375d39c04baa839cea153f4b3c405d Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 16:55:00 +0100 Subject: [PATCH 037/122] Formatting updates Use American English consistently. A small tweak to a brace in the SerializedSource. --- examples/serialized_custom_source/README.md | 6 +++--- examples/serialized_custom_source/build_xml.py | 2 +- .../serialized_source_ring.cpp | 15 +++++++-------- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/examples/serialized_custom_source/README.md b/examples/serialized_custom_source/README.md index 2ebc1ecc2..d7c1e0542 100644 --- a/examples/serialized_custom_source/README.md +++ b/examples/serialized_custom_source/README.md @@ -1,4 +1,4 @@ -# Building a Serialised Custom Source +# Building a Serialized Custom Source To run this example, you first need to compile the custom source library, which requires headers from OpenMC. A CMakeLists.txt file has been set up for you that @@ -10,7 +10,7 @@ library, you can run: make After this, you can build the model by running `python build_xml.py`. In the XML -files that are created, you should see a reference to build/libserialised_source.so, +files that are created, you should see a reference to build/libserialized_source.so, the custom source library that was built by CMake, and the path to the serialized representation of the source in serialized_source.xml. The model is also set up with a mesh tally of the flux, so once you run `openmc`, you will get a statepoint file @@ -19,5 +19,5 @@ results from the statepoint file and display them. If all worked well, you should see a ring "imprint" as well as a higher flux to the right side (since the custom source has all particles moving in the positive x direction). -Once built, you can edit the serialised_source.xml file to change the radius of the +Once built, you can edit the serialized_source.xml file to change the radius of the sampled ring or the energy of the sampled particles. diff --git a/examples/serialized_custom_source/build_xml.py b/examples/serialized_custom_source/build_xml.py index fba545959..7c6d5f61d 100644 --- a/examples/serialized_custom_source/build_xml.py +++ b/examples/serialized_custom_source/build_xml.py @@ -1,6 +1,6 @@ import openmc -# Define the serialised source +# Define the serialized source serialized_source = """ 1.5 1e3 diff --git a/examples/serialized_custom_source/serialized_source_ring.cpp b/examples/serialized_custom_source/serialized_source_ring.cpp index 7e19bc579..bf398ce83 100644 --- a/examples/serialized_custom_source/serialized_source_ring.cpp +++ b/examples/serialized_custom_source/serialized_source_ring.cpp @@ -5,13 +5,13 @@ #include "openmc/particle.h" #include "pugixml.hpp" -class SerialisedSource { +class SerializedSource { protected: double radius_; double energy_; // Protect the constructor so that the class can only be created by serialisation. - SerialisedSource(double radius, double energy) { + SerializedSource(double radius, double energy) { radius_ = radius; energy_ = energy; } @@ -25,21 +25,20 @@ class SerialisedSource { // in the input XML document. // Note that the source will have already been read from file, so what will be passed // in here is a string-like serialized value (not the path to the serialized value). - static SerialisedSource from_xml(char* serialised_source) { + static SerializedSource from_xml(char* serialized_source) { pugi::xml_document doc; - doc.load_string(serialised_source); + doc.load_string(serialized_source); pugi::xml_node root_node = doc.root().child("Source"); double radius = root_node.child("Radius").text().as_double(); double energy = root_node.child("Energy").text().as_double(); - return SerialisedSource(radius, energy); + return SerializedSource(radius, energy); } }; // you must have external C linkage here otherwise // dlopen will not find the file -extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, char* serialised_source) -{ - SerialisedSource source = SerialisedSource::from_xml(serialised_source); +extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, char* serialized_source) { + SerializedSource source = SerializedSource::from_xml(serialized_source); openmc::Particle::Bank particle; // wgt From b5de1fce2d71617cbfa0308ad85a327272c0fcd3 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 17:10:32 +0100 Subject: [PATCH 038/122] Add documentation This describes the general concept of serialization and gives an example of how to write a source_sampling function that deserializes the input and uses values set via the serialized form. --- docs/source/io_formats/settings.rst | 13 ++++++++ docs/source/usersguide/settings.rst | 50 +++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/docs/source/io_formats/settings.rst b/docs/source/io_formats/settings.rst index 52b52f68c..71a6a4f25 100644 --- a/docs/source/io_formats/settings.rst +++ b/docs/source/io_formats/settings.rst @@ -468,6 +468,19 @@ attributes/sub-elements: *Default*: None + :serialization: + If this attribute is given, it indicates that the source is to be + instantiated from an externally compiled source function, with parameters + defined by a serialized form of the source. The serialized source will be + read from a file in the location provided by this attribute. In this case, + the ``sample_source()`` function must take as input an additional character + array containing the serialization that OpenMC will have read from the + provided file. If the library attribute is not provided then this attribute + will be ignored. More documentation on how to build serialized sources can + be found in :ref:`serialized_custom_source`. + + *Default*: None + :space: An element specifying the spatial distribution of source sites. This element has the following attributes: diff --git a/docs/source/usersguide/settings.rst b/docs/source/usersguide/settings.rst index a879fe6d1..ea7d7298a 100644 --- a/docs/source/usersguide/settings.rst +++ b/docs/source/usersguide/settings.rst @@ -235,6 +235,56 @@ file in your build directory. Setting the :attr:`openmc.Source.library` attribute to the path of this shared library will indicate that it should be used for sampling source particles at runtime. +.. _serialized_custom_source: + +Custom Serialized Sources +------------------------- + +If the custom source may be used with parameters at a variety of values then it +may be necessary to serialize the source to an appropriate format (XML, JSON, +etc.) in order to avoid recompiling the source library for each run. This is +supported by defining the ``source_sampling`` function with an additional +parameter that receives the serialized form of the source: + +.. code-block:: c++ + + // you must have external C linkage here + extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, char* serialized_source) { + // function to deserialize the source + SerializedSource source = SerializedSource::from_xml(serialized_source); + + openmc::Particle::Bank particle; + // wgt + particle.particle = openmc::Particle::Type::neutron; + particle.wgt = 1.0; + // position + double angle = 2. * M_PI * openmc::prn(seed); + + // get the radius from the serialized form of the source + double radius = source.radius(); + particle.r.x = radius * std::cos(angle); + particle.r.y = radius * std::sin(angle); + particle.r.z = 0.0; + // angle + particle.u = {1.0, 0.0, 0.0}; + + // get the energy from the serialized form of the source + particle.E = source.energy(); + particle.delayed_group = 0; + + return particle; + } + +The details of the serialization routine, in particular the schema of the source +are to be defined by the implementation of the serializable source class. The +location of the serialized representation of the source to be used must be +provided via the :attr:`openmc.Source.serialization` attribute, along with the +custom source library location in :attr:`openmc.Source.library`. + +When defining a class to be implemented via this deserialization approach, care +must be taken to ensure that unique symbols in the resulting binary are +discoverable when the ``sample_source`` function is loaded via ``dlsym``. + --------------- Shannon Entropy --------------- From 1de3d9ddf9abf395f8b192c723b2af472eb45043 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 31 Jul 2020 17:32:50 +0100 Subject: [PATCH 039/122] Write a test for a serialized source Heavily based off of the existing custom source test. Creates a simple class that can be deserialized from XML as use a serialized XML representation to provide the energy value in the source. Builds the source and runs the model in the test routine. --- .../source_serialized_dlopen/__init__.py | 0 .../source_serialized_dlopen/inputs_true.dat | 23 ++++++ .../source_serialized_dlopen/results_true.dat | 0 .../serialized_source.xml | 3 + .../serialized_source_sampling.cpp | 47 ++++++++++++ .../source_serialized_dlopen/test.py | 75 +++++++++++++++++++ 6 files changed, 148 insertions(+) create mode 100644 tests/regression_tests/source_serialized_dlopen/__init__.py create mode 100644 tests/regression_tests/source_serialized_dlopen/inputs_true.dat create mode 100644 tests/regression_tests/source_serialized_dlopen/results_true.dat create mode 100644 tests/regression_tests/source_serialized_dlopen/serialized_source.xml create mode 100644 tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp create mode 100644 tests/regression_tests/source_serialized_dlopen/test.py diff --git a/tests/regression_tests/source_serialized_dlopen/__init__.py b/tests/regression_tests/source_serialized_dlopen/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/regression_tests/source_serialized_dlopen/inputs_true.dat b/tests/regression_tests/source_serialized_dlopen/inputs_true.dat new file mode 100644 index 000000000..a60d90759 --- /dev/null +++ b/tests/regression_tests/source_serialized_dlopen/inputs_true.dat @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + fixed source + 1000 + 10 + 0 + + diff --git a/tests/regression_tests/source_serialized_dlopen/results_true.dat b/tests/regression_tests/source_serialized_dlopen/results_true.dat new file mode 100644 index 000000000..e69de29bb diff --git a/tests/regression_tests/source_serialized_dlopen/serialized_source.xml b/tests/regression_tests/source_serialized_dlopen/serialized_source.xml new file mode 100644 index 000000000..ec5b2c8c0 --- /dev/null +++ b/tests/regression_tests/source_serialized_dlopen/serialized_source.xml @@ -0,0 +1,3 @@ + + 1e3 + diff --git a/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp b/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp new file mode 100644 index 000000000..1b1c31184 --- /dev/null +++ b/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp @@ -0,0 +1,47 @@ +#include "openmc/random_lcg.h" +#include "openmc/source.h" +#include "openmc/particle.h" +#include "pugixml.hpp" + +class SerializedSource { + protected: + double energy_; + + // Protect the constructor so that the class can only be created by serialisation. + SerializedSource(double energy) { + energy_ = energy; + } + + public: + // Getters for the values that we want to use in sampling. + double energy() { return energy_; } + + static SerializedSource from_xml(char* serialized_source) { + pugi::xml_document doc; + doc.load_string(serialized_source); + pugi::xml_node root_node = doc.root().child("Source"); + double energy = root_node.child("Energy").text().as_double(); + return SerializedSource(energy); + } +}; + +// you must have external C linkage here otherwise +// dlopen will not find the file +extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, char* serialized_source) { + SerializedSource source = SerializedSource::from_xml(serialized_source); + + openmc::Particle::Bank particle; + // wgt + particle.particle = openmc::Particle::Type::neutron; + particle.wgt = 1.0; + // position + particle.r.x = 0.0; + particle.r.y = 0.0; + particle.r.z = 0.0; + // angle + particle.u = {1.0, 0.0, 0.0}; + particle.E = source.energy(); + particle.delayed_group = 0; + + return particle; +} diff --git a/tests/regression_tests/source_serialized_dlopen/test.py b/tests/regression_tests/source_serialized_dlopen/test.py new file mode 100644 index 000000000..194e00c84 --- /dev/null +++ b/tests/regression_tests/source_serialized_dlopen/test.py @@ -0,0 +1,75 @@ +from pathlib import Path +import os +import shutil +import subprocess +import textwrap + +import openmc +import pytest + +from tests.testing_harness import PyAPITestHarness + + +@pytest.fixture +def compile_source(request): + """Compile the external source""" + + # Get build directory and write CMakeLists.txt file + openmc_dir = Path(str(request.config.rootdir)) / 'build' + with open('CMakeLists.txt', 'w') as f: + f.write(textwrap.dedent(""" + cmake_minimum_required(VERSION 3.3 FATAL_ERROR) + project(openmc_sources CXX) + add_library(serialized_source SHARED serialized_source_sampling.cpp) + find_package(OpenMC REQUIRED HINTS {}) + target_link_libraries(serialized_source OpenMC::libopenmc) + """.format(openmc_dir))) + + # Create temporary build directory and change to there + local_builddir = Path('build') + local_builddir.mkdir(exist_ok=True) + os.chdir(str(local_builddir)) + + # Run cmake/make to build the shared libary + subprocess.run(['cmake', os.path.pardir], check=True) + subprocess.run(['make'], check=True) + os.chdir(os.path.pardir) + + yield + + # Remove local build directory when test is complete + shutil.rmtree('build') + os.remove('CMakeLists.txt') + + +@pytest.fixture +def model(): + model = openmc.model.Model() + natural_lead = openmc.Material(name="natural_lead") + natural_lead.add_element('Pb', 1.0) + natural_lead.set_density('g/cm3', 11.34) + model.materials.append(natural_lead) + + # geometry + surface_sph1 = openmc.Sphere(r=100, boundary_type='vacuum') + cell_1 = openmc.Cell(fill=natural_lead, region=-surface_sph1) + model.geometry = openmc.Geometry([cell_1]) + + # settings + model.settings.batches = 10 + model.settings.inactive = 0 + model.settings.particles = 1000 + model.settings.run_mode = 'fixed source' + + # custom source from shared library + source = openmc.Source() + source.library = 'build/libserialized_source.so' + source.serialization = 'serialized_source.xml' + model.settings.source = source + + return model + + +def test_dlopen_source(compile_source, model): + harness = PyAPITestHarness('statepoint.10.h5', model) + harness.main() From 8bb10563c1efd8e39a14980e73dd09f8df4ebf54 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Mon, 3 Aug 2020 14:24:17 +0100 Subject: [PATCH 040/122] Pass serialization as parameter attribute Changes the implementation of the serialization to be on an attribute of the source XML element within settings.xml. This removes the need for a new file containing the serialization. Parameters are provided as a key-value string, separated by a comma and a space, although the implementation can change this is required. Change example values to align with existing custom_source to make comparisons easier. Update documentation to be consistent. --- docs/source/io_formats/settings.rst | 11 +++--- docs/source/usersguide/settings.rst | 14 +++---- examples/serialized_custom_source/README.md | 18 ++++----- .../serialized_custom_source/build_xml.py | 11 +----- .../serialized_source_ring.cpp | 30 ++++++++------- openmc/source.py | 38 +++++++++---------- src/source.cpp | 22 ++++------- .../source_serialized_dlopen/inputs_true.dat | 2 +- .../serialized_source.xml | 3 -- .../serialized_source_sampling.cpp | 25 ++++++++---- .../source_serialized_dlopen/test.py | 2 +- 11 files changed, 84 insertions(+), 92 deletions(-) delete mode 100644 tests/regression_tests/source_serialized_dlopen/serialized_source.xml diff --git a/docs/source/io_formats/settings.rst b/docs/source/io_formats/settings.rst index 71a6a4f25..7a356ffa1 100644 --- a/docs/source/io_formats/settings.rst +++ b/docs/source/io_formats/settings.rst @@ -468,14 +468,13 @@ attributes/sub-elements: *Default*: None - :serialization: + :parameters: If this attribute is given, it indicates that the source is to be instantiated from an externally compiled source function, with parameters - defined by a serialized form of the source. The serialized source will be - read from a file in the location provided by this attribute. In this case, - the ``sample_source()`` function must take as input an additional character - array containing the serialization that OpenMC will have read from the - provided file. If the library attribute is not provided then this attribute + defined by the string provided in this attribute. In this case, the + ``sample_source()`` function must take as input an additional character + array containing the serialization that OpenMC will have read from this + attribute. If the library attribute is not provided then this attribute will be ignored. More documentation on how to build serialized sources can be found in :ref:`serialized_custom_source`. diff --git a/docs/source/usersguide/settings.rst b/docs/source/usersguide/settings.rst index ea7d7298a..ebab37122 100644 --- a/docs/source/usersguide/settings.rst +++ b/docs/source/usersguide/settings.rst @@ -241,17 +241,17 @@ Custom Serialized Sources ------------------------- If the custom source may be used with parameters at a variety of values then it -may be necessary to serialize the source to an appropriate format (XML, JSON, -etc.) in order to avoid recompiling the source library for each run. This is -supported by defining the ``source_sampling`` function with an additional -parameter that receives the serialized form of the source: +may be necessary to serialize the source to an appropriate format in order to +avoid recompiling the source library for each run. This is supported by defining +the ``source_sampling`` function with an additional parameter that receives the +parameters used to build the source: .. code-block:: c++ // you must have external C linkage here - extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, char* serialized_source) { + extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, const char* parameters) { // function to deserialize the source - SerializedSource source = SerializedSource::from_xml(serialized_source); + SerializedSource source = SerializedSource::from_string(parameters); openmc::Particle::Bank particle; // wgt @@ -278,7 +278,7 @@ parameter that receives the serialized form of the source: The details of the serialization routine, in particular the schema of the source are to be defined by the implementation of the serializable source class. The location of the serialized representation of the source to be used must be -provided via the :attr:`openmc.Source.serialization` attribute, along with the +provided via the :attr:`openmc.Source.parameters` attribute, along with the custom source library location in :attr:`openmc.Source.library`. When defining a class to be implemented via this deserialization approach, care diff --git a/examples/serialized_custom_source/README.md b/examples/serialized_custom_source/README.md index d7c1e0542..d5c5ee120 100644 --- a/examples/serialized_custom_source/README.md +++ b/examples/serialized_custom_source/README.md @@ -11,13 +11,13 @@ library, you can run: After this, you can build the model by running `python build_xml.py`. In the XML files that are created, you should see a reference to build/libserialized_source.so, -the custom source library that was built by CMake, and the path to the serialized -representation of the source in serialized_source.xml. The model is also set up with a -mesh tally of the flux, so once you run `openmc`, you will get a statepoint file -with the tally results in it. Running `python show_flux.py` will pull in the -results from the statepoint file and display them. If all worked well, you -should see a ring "imprint" as well as a higher flux to the right side (since -the custom source has all particles moving in the positive x direction). +the custom source library that was built by CMake, and the serialized representation +of the source in the parameters attribute. The model is also set up with a mesh tally +of the flux, so once you run `openmc`, you will get a statepoint file with the tally +results in it. Running `python show_flux.py` will pull in the results from the +statepoint file and display them. If all worked well, you should see a ring "imprint" +as well as a higher flux to the right side (since the custom source has all particles +moving in the positive x direction). -Once built, you can edit the serialized_source.xml file to change the radius of the -sampled ring or the energy of the sampled particles. +Once built, you can edit the parameters attribute on the source to change the radius of +the sampled ring or the energy of the sampled particles. diff --git a/examples/serialized_custom_source/build_xml.py b/examples/serialized_custom_source/build_xml.py index 7c6d5f61d..31ba2ac3e 100644 --- a/examples/serialized_custom_source/build_xml.py +++ b/examples/serialized_custom_source/build_xml.py @@ -1,14 +1,5 @@ import openmc -# Define the serialized source -serialized_source = """ - 1.5 - 1e3 - -""" -with open('serialized_source.xml', 'w') as f: - f.write(serialized_source) - # Create a single material iron = openmc.Material() iron.set_density('g/cm3', 5.0) @@ -29,7 +20,7 @@ settings.batches = 10 settings.particles = 1000 source = openmc.Source() source.library = 'build/libserialized_source.so' -source.serialization = 'serialized_source.xml' +source.parameters = 'radius=3.0, energy=14.08e6' settings.source = source settings.export_to_xml() diff --git a/examples/serialized_custom_source/serialized_source_ring.cpp b/examples/serialized_custom_source/serialized_source_ring.cpp index bf398ce83..4b93d2c76 100644 --- a/examples/serialized_custom_source/serialized_source_ring.cpp +++ b/examples/serialized_custom_source/serialized_source_ring.cpp @@ -1,9 +1,9 @@ #include // for M_PI +#include #include "openmc/random_lcg.h" #include "openmc/source.h" #include "openmc/particle.h" -#include "pugixml.hpp" class SerializedSource { protected: @@ -21,24 +21,26 @@ class SerializedSource { double radius() { return radius_; } double energy() { return energy_; } - // The deserialisation routine populates the constructor from well defined elements - // in the input XML document. - // Note that the source will have already been read from file, so what will be passed - // in here is a string-like serialized value (not the path to the serialized value). - static SerializedSource from_xml(char* serialized_source) { - pugi::xml_document doc; - doc.load_string(serialized_source); - pugi::xml_node root_node = doc.root().child("Source"); - double radius = root_node.child("Radius").text().as_double(); - double energy = root_node.child("Energy").text().as_double(); - return SerializedSource(radius, energy); + static SerializedSource from_string(const char* parameters) { + std::unordered_map parameter_mapping; + + std::stringstream ss(parameters); + std::string parameter; + while (std::getline(ss, parameter, ',')) { + parameter.erase(0, parameter.find_first_not_of(' ')); + std::string key = parameter.substr(0, parameter.find_first_of('=')); + std::string value = parameter.substr(parameter.find_first_of('=') + 1, parameter.length()); + parameter_mapping[key] = value; + } + + return SerializedSource(std::stod(parameter_mapping["radius"]), std::stod(parameter_mapping["energy"])); } }; // you must have external C linkage here otherwise // dlopen will not find the file -extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, char* serialized_source) { - SerializedSource source = SerializedSource::from_xml(serialized_source); +extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, const char* parameters) { + SerializedSource source = SerializedSource::from_string(parameters); openmc::Particle::Bank particle; // wgt diff --git a/openmc/source.py b/openmc/source.py index 8ede50581..78ca9dad0 100644 --- a/openmc/source.py +++ b/openmc/source.py @@ -22,8 +22,8 @@ class Source: Source file from which sites should be sampled library : str Path to a custom source library - serialization : str - Path to the serialized representation of the custom source + parameters : str + Parameters to be provided to the custom source .. versionadded:: 0.12 strength : float @@ -43,8 +43,8 @@ class Source: Source file from which sites should be sampled library : str or None Path to a custom source library - serialization : str - Path to the serialized representation of the custom source + parameters : str + Parameters to be provided to the custom source strength : float Strength of the source particle : {'neutron', 'photon'} @@ -53,13 +53,13 @@ class Source: """ def __init__(self, space=None, angle=None, energy=None, filename=None, - library=None, serialization=None, strength=1.0, particle='neutron'): + library=None, parameters=None, strength=1.0, particle='neutron'): self._space = None self._angle = None self._energy = None self._file = None self._library = None - self._serialization = None + self._parameters = None if space is not None: self.space = space @@ -71,8 +71,8 @@ class Source: self.file = filename if library is not None: self.library = library - if serialization is not None: - self.serialization = serialization + if parameters is not None: + self.parameters = parameters self.strength = strength self.particle = particle @@ -85,8 +85,8 @@ class Source: return self._library @property - def serialization(self): - return self._serialization + def parameters(self): + return self._parameters @property def space(self): @@ -118,10 +118,10 @@ class Source: cv.check_type('library', library_name, str) self._library = library_name - @serialization.setter - def serialization(self, serialization_path): - cv.check_type('serialization', serialization_path, str) - self._serialization = serialization_path + @parameters.setter + def parameters(self, parameters_path): + cv.check_type('parameters', parameters_path, str) + self._parameters = parameters_path @space.setter def space(self, space): @@ -166,8 +166,8 @@ class Source: element.set("file", self.file) if self.library is not None: element.set("library", self.library) - if self.serialization is not None: - element.set("serialization", self.serialization) + if self.parameters is not None: + element.set("parameters", self.parameters) if self.space is not None: element.append(self.space.to_xml_element()) if self.angle is not None: @@ -209,9 +209,9 @@ class Source: if library is not None: source.library = library - serialization = get_text(elem, 'serialization') - if serialization is not None: - source.serialization = serialization + parameters = get_text(elem, 'parameters') + if parameters is not None: + source.parameters = parameters space = elem.find('space') if space is not None: diff --git a/src/source.cpp b/src/source.cpp index d7bcf726b..0650b5737 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -46,8 +46,8 @@ namespace { using sample_t = Particle::Bank (*)(uint64_t* seed); sample_t custom_source_function; -std::string serialization; -using serialized_sample_t = Particle::Bank (*)(uint64_t* seed, const char* serialization); +std::string custom_source_parameters; +using serialized_sample_t = Particle::Bank (*)(uint64_t* seed, const char* parameters); serialized_sample_t custom_serialized_source_function; void* custom_source_library; @@ -98,14 +98,8 @@ SourceDistribution::SourceDistribution(pugi::xml_node node) settings::path_source_library)); } - if (check_for_node(node, "serialization")) { - // If the source is serialized then make sure we only load it from file once, otherwise there will - // be a significant I/O overhead. - pugi::xml_document doc; - doc.load_file(get_node_value(node, "serialization", false, true).c_str()); - std::stringstream ss; - doc.print(ss); - serialization = ss.str(); + if (check_for_node(node, "parameters")) { + custom_source_parameters = get_node_value(node, "parameters", false, true); } } else { @@ -380,13 +374,13 @@ void load_custom_source_library() // reset errors dlerror(); - if (serialization.empty()) { + if (custom_source_parameters.empty()) { // get the function from the library using sample_t = Particle::Bank (*)(uint64_t* seed); custom_source_function = reinterpret_cast(dlsym(custom_source_library, "sample_source")); } else { // get the function from the library using the provided serialization - using sample_t = Particle::Bank (*)(uint64_t* seed, const char* serialization); + using sample_t = Particle::Bank (*)(uint64_t* seed, const char* parameters); custom_serialized_source_function = reinterpret_cast(dlsym(custom_source_library, "sample_source")); } @@ -415,10 +409,10 @@ void close_custom_source_library() Particle::Bank sample_custom_source_library(uint64_t* seed) { - if (serialization.empty()) { + if (custom_source_parameters.empty()) { return custom_source_function(seed); } else { - return custom_serialized_source_function(seed, serialization.c_str()); + return custom_serialized_source_function(seed, custom_source_parameters.c_str()); } } diff --git a/tests/regression_tests/source_serialized_dlopen/inputs_true.dat b/tests/regression_tests/source_serialized_dlopen/inputs_true.dat index a60d90759..c7765d20a 100644 --- a/tests/regression_tests/source_serialized_dlopen/inputs_true.dat +++ b/tests/regression_tests/source_serialized_dlopen/inputs_true.dat @@ -19,5 +19,5 @@ 1000 10 0 - + diff --git a/tests/regression_tests/source_serialized_dlopen/serialized_source.xml b/tests/regression_tests/source_serialized_dlopen/serialized_source.xml deleted file mode 100644 index ec5b2c8c0..000000000 --- a/tests/regression_tests/source_serialized_dlopen/serialized_source.xml +++ /dev/null @@ -1,3 +0,0 @@ - - 1e3 - diff --git a/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp b/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp index 1b1c31184..d4c5d8024 100644 --- a/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp +++ b/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp @@ -1,3 +1,5 @@ +#include + #include "openmc/random_lcg.h" #include "openmc/source.h" #include "openmc/particle.h" @@ -16,19 +18,26 @@ class SerializedSource { // Getters for the values that we want to use in sampling. double energy() { return energy_; } - static SerializedSource from_xml(char* serialized_source) { - pugi::xml_document doc; - doc.load_string(serialized_source); - pugi::xml_node root_node = doc.root().child("Source"); - double energy = root_node.child("Energy").text().as_double(); - return SerializedSource(energy); + static SerializedSource from_string(const char* parameters) { + std::unordered_map parameter_mapping; + + std::stringstream ss(parameters); + std::string parameter; + while (std::getline(ss, parameter, ',')) { + parameter.erase(0, parameter.find_first_not_of(' ')); + std::string key = parameter.substr(0, parameter.find_first_of('=')); + std::string value = parameter.substr(parameter.find_first_of('=') + 1, parameter.length()); + parameter_mapping[key] = value; + } + + return SerializedSource(std::stod(parameter_mapping["energy"])); } }; // you must have external C linkage here otherwise // dlopen will not find the file -extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, char* serialized_source) { - SerializedSource source = SerializedSource::from_xml(serialized_source); +extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, const char* parameters) { + SerializedSource source = SerializedSource::from_string(parameters); openmc::Particle::Bank particle; // wgt diff --git a/tests/regression_tests/source_serialized_dlopen/test.py b/tests/regression_tests/source_serialized_dlopen/test.py index 194e00c84..09ed11be3 100644 --- a/tests/regression_tests/source_serialized_dlopen/test.py +++ b/tests/regression_tests/source_serialized_dlopen/test.py @@ -64,7 +64,7 @@ def model(): # custom source from shared library source = openmc.Source() source.library = 'build/libserialized_source.so' - source.serialization = 'serialized_source.xml' + source.parameters = 'energy=1e3' model.settings.source = source return model From 9c1b318e785b4ecbdbba9d58b50222e076cb50ec Mon Sep 17 00:00:00 2001 From: Dan Short Date: Mon, 3 Aug 2020 17:38:12 +0100 Subject: [PATCH 041/122] Only instantiate custom source once In the existing custom_source implementation, the source will only be created once. This is much more efficient than the custom serialized source, where each sampling will create a new instance of the class. As there could be many samples, this introduces an overhead, particularly if the operations to instantiate the class are not trivial. This implementation defines an abstract class, which is then used by the custom classes to allow the custom serialized class to be created based on the plugin, sampled from, and then destroyed. Update documentation and test to reflect this. --- docs/source/io_formats/settings.rst | 12 +- docs/source/usersguide/settings.rst | 109 +++++++++++++----- .../serialized_source_ring.cpp | 61 ++++++---- include/openmc/source.h | 10 ++ src/source.cpp | 24 ++-- .../serialized_source_sampling.cpp | 52 +++++---- 6 files changed, 181 insertions(+), 87 deletions(-) diff --git a/docs/source/io_formats/settings.rst b/docs/source/io_formats/settings.rst index 7a356ffa1..511140290 100644 --- a/docs/source/io_formats/settings.rst +++ b/docs/source/io_formats/settings.rst @@ -472,9 +472,15 @@ attributes/sub-elements: If this attribute is given, it indicates that the source is to be instantiated from an externally compiled source function, with parameters defined by the string provided in this attribute. In this case, the - ``sample_source()`` function must take as input an additional character - array containing the serialization that OpenMC will have read from this - attribute. If the library attribute is not provided then this attribute + custom source library must define a class that inherits from the + ``openmc::CustomSource`` abstract class. This class must implement a + ``sample_source()`` function, which takes an array of integers as an + argument. The custom source library must also contain a ``create`` method, + which takes a serialized form of the source (as provided to the parameters + attribute) as an argument and returns a pointer to an instance of the custom + source, and a ``destroy`` method, which takes a pointer to an instance of + the custom source as an argument and deletes the memory allocated to the + custom source. If the library attribute is not provided then this attribute will be ignored. More documentation on how to build serialized sources can be found in :ref:`serialized_custom_source`. diff --git a/docs/source/usersguide/settings.rst b/docs/source/usersguide/settings.rst index ebab37122..064803694 100644 --- a/docs/source/usersguide/settings.rst +++ b/docs/source/usersguide/settings.rst @@ -243,47 +243,92 @@ Custom Serialized Sources If the custom source may be used with parameters at a variety of values then it may be necessary to serialize the source to an appropriate format in order to avoid recompiling the source library for each run. This is supported by defining -the ``source_sampling`` function with an additional parameter that receives the -parameters used to build the source: +a class inheriting from ``openmc::CustomSource`` that implements a +``sample_source`` function. The class should also have logic to deserialise +the parameters provided via the settings.xml file in the +:attr:``openmc.Source.parameters`` attribute: .. code-block:: c++ - // you must have external C linkage here - extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, const char* parameters) { - // function to deserialize the source - SerializedSource source = SerializedSource::from_string(parameters); + #include - openmc::Particle::Bank particle; - // wgt - particle.particle = openmc::Particle::Type::neutron; - particle.wgt = 1.0; - // position - double angle = 2. * M_PI * openmc::prn(seed); + #include "openmc/random_lcg.h" + #include "openmc/source.h" + #include "openmc/particle.h" - // get the radius from the serialized form of the source - double radius = source.radius(); - particle.r.x = radius * std::cos(angle); - particle.r.y = radius * std::sin(angle); - particle.r.z = 0.0; - // angle - particle.u = {1.0, 0.0, 0.0}; + class SerializedSource : public openmc::CustomSource { + protected: + double energy_; - // get the energy from the serialized form of the source - particle.E = source.energy(); - particle.delayed_group = 0; + // Protect the constructor so that the class can only be created by serialisation. + SerializedSource(double energy) { + energy_ = energy; + } - return particle; - } + public: + // Getters for the values that we want to use in sampling. + double energy() { return energy_; } -The details of the serialization routine, in particular the schema of the source -are to be defined by the implementation of the serializable source class. The -location of the serialized representation of the source to be used must be -provided via the :attr:`openmc.Source.parameters` attribute, along with the -custom source library location in :attr:`openmc.Source.library`. + // Defines a function that can create a pointer to a new instance of this class + // by deserializing from the provided string. + static SerializedSource* from_string(const char* parameters) { + std::unordered_map parameter_mapping; -When defining a class to be implemented via this deserialization approach, care -must be taken to ensure that unique symbols in the resulting binary are -discoverable when the ``sample_source`` function is loaded via ``dlsym``. + std::stringstream ss(parameters); + std::string parameter; + while (std::getline(ss, parameter, ',')) { + parameter.erase(0, parameter.find_first_not_of(' ')); + std::string key = parameter.substr(0, parameter.find_first_of('=')); + std::string value = parameter.substr(parameter.find_first_of('=') + 1, parameter.length()); + parameter_mapping[key] = value; + } + + return new SerializedSource(std::stod(parameter_mapping["energy"])); + } + + // Samples from an instance of this class. + openmc::Particle::Bank sample_source(uint64_t* seed) { + openmc::Particle::Bank particle; + // wgt + particle.particle = openmc::Particle::Type::neutron; + particle.wgt = 1.0; + // position + particle.r.x = 0.0; + particle.r.y = 0.0; + particle.r.z = 0.0; + // angle + particle.u = {1.0, 0.0, 0.0}; + particle.E = this->energy(); + particle.delayed_group = 0; + + return particle; + } + }; + +The custom source library function in this case must also define a ``create`` +method and a ``destroy`` method. The ``create`` method will be used to +generate an instance of the custom source, based on the value supplied in +the :attr:``openmc.Source.parameters`` attribute. The ``destroy`` method +will be used to destroy that instance once the sampling has completed. Both +must be defined with ``extern "C"``: + +.. code-block:: c++ + + // you must have external C linkage here otherwise + // dlopen will not find the file + extern "C" SerializedSource* create(const char* serialized_source) { + return SerializedSource::from_string(serialized_source); + } + + // you must have external C linkage here otherwise + // dlopen will not find the file + extern "C" void destroy(SerializedSource* source) { + delete source; + } + +As with the basic custom source functionality, the custom source library +location must also be provided in the :attr:`openmc.Source.library` +attribute. --------------- Shannon Entropy diff --git a/examples/serialized_custom_source/serialized_source_ring.cpp b/examples/serialized_custom_source/serialized_source_ring.cpp index 4b93d2c76..7584b152c 100644 --- a/examples/serialized_custom_source/serialized_source_ring.cpp +++ b/examples/serialized_custom_source/serialized_source_ring.cpp @@ -5,7 +5,7 @@ #include "openmc/source.h" #include "openmc/particle.h" -class SerializedSource { +class SerializedSource : public openmc::CustomSource { protected: double radius_; double energy_; @@ -21,7 +21,9 @@ class SerializedSource { double radius() { return radius_; } double energy() { return energy_; } - static SerializedSource from_string(const char* parameters) { + // Defines a function that can create a pointer to a new instance of this class + // by deserializing from the provided string. + static SerializedSource* from_string(const char* parameters) { std::unordered_map parameter_mapping; std::stringstream ss(parameters); @@ -33,29 +35,40 @@ class SerializedSource { parameter_mapping[key] = value; } - return SerializedSource(std::stod(parameter_mapping["radius"]), std::stod(parameter_mapping["energy"])); + return new SerializedSource(std::stod(parameter_mapping["radius"]), std::stod(parameter_mapping["energy"])); + } + + // Samples from an instance of this class. + openmc::Particle::Bank sample_source(uint64_t* seed) { + openmc::Particle::Bank particle; + // wgt + particle.particle = openmc::Particle::Type::neutron; + particle.wgt = 1.0; + // position + double angle = 2. * M_PI * openmc::prn(seed); + double radius = this->radius(); + particle.r.x = radius * std::cos(angle); + particle.r.y = radius * std::sin(angle); + particle.r.z = 0.0; + // angle + particle.u = {1.0, 0.0, 0.0}; + particle.E = this->energy(); + particle.delayed_group = 0; + + return particle; } }; -// you must have external C linkage here otherwise -// dlopen will not find the file -extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, const char* parameters) { - SerializedSource source = SerializedSource::from_string(parameters); - - openmc::Particle::Bank particle; - // wgt - particle.particle = openmc::Particle::Type::neutron; - particle.wgt = 1.0; - // position - double angle = 2. * M_PI * openmc::prn(seed); - double radius = source.radius(); - particle.r.x = radius * std::cos(angle); - particle.r.y = radius * std::sin(angle); - particle.r.z = 0.0; - // angle - particle.u = {1.0, 0.0, 0.0}; - particle.E = source.energy(); - particle.delayed_group = 0; - - return particle; +// A function to create a pointer to an instance of this class when generated +// via a plugin call using dlopen/dlsym. +// You must have external C linkage here otherwise dlopen will not find the file +extern "C" SerializedSource* create(const char* parameters) { + return SerializedSource::from_string(parameters); +} + +// A function to destroy a pointer to an instance of this class when generated +// via a plugin call using dlopen/dlsym. +// You must have external C linkage here otherwise dlopen will not find the file +extern "C" void destroy(SerializedSource* source) { + delete source; } diff --git a/include/openmc/source.h b/include/openmc/source.h index 78e4043b9..bd24f093f 100644 --- a/include/openmc/source.h +++ b/include/openmc/source.h @@ -59,6 +59,16 @@ private: UPtrDist energy_; //!< Energy distribution }; +class CustomSource { + public: + virtual ~CustomSource() {} + + virtual Particle::Bank sample_source(uint64_t* seed) = 0; +}; + +typedef CustomSource* create_custom_source_t(const char* serialized_source); +typedef void destroy_custom_source_t(CustomSource*); + //============================================================================== // Functions //============================================================================== diff --git a/src/source.cpp b/src/source.cpp index 0650b5737..fc184dc4e 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -44,12 +44,13 @@ std::vector external_sources; namespace { +void* custom_source_library; using sample_t = Particle::Bank (*)(uint64_t* seed); sample_t custom_source_function; + std::string custom_source_parameters; -using serialized_sample_t = Particle::Bank (*)(uint64_t* seed, const char* parameters); -serialized_sample_t custom_serialized_source_function; -void* custom_source_library; +CustomSource* custom_source; +destroy_custom_source_t* destroy_custom_source; } @@ -379,9 +380,12 @@ void load_custom_source_library() using sample_t = Particle::Bank (*)(uint64_t* seed); custom_source_function = reinterpret_cast(dlsym(custom_source_library, "sample_source")); } else { - // get the function from the library using the provided serialization - using sample_t = Particle::Bank (*)(uint64_t* seed, const char* parameters); - custom_serialized_source_function = reinterpret_cast(dlsym(custom_source_library, "sample_source")); + // get the functions to create and destroy the CustomSource from the library + create_custom_source_t* create_custom_source = (create_custom_source_t*) dlsym(custom_source_library, "create"); + destroy_custom_source = (destroy_custom_source_t*) dlsym(custom_source_library, "destroy"); + + // create a pointer to an instance of the CustomSource + custom_source = create_custom_source(custom_source_parameters.c_str()); } // check for any dlsym errors @@ -399,6 +403,11 @@ void load_custom_source_library() void close_custom_source_library() { + if (custom_source) { + // destroy the CustomSource if it exists + destroy_custom_source(custom_source); + } + #ifdef HAS_DYNAMIC_LINKING dlclose(custom_source_library); #else @@ -412,7 +421,8 @@ Particle::Bank sample_custom_source_library(uint64_t* seed) if (custom_source_parameters.empty()) { return custom_source_function(seed); } else { - return custom_serialized_source_function(seed, custom_source_parameters.c_str()); + // sample from the instance of the CustomSource + return custom_source->sample_source(seed); } } diff --git a/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp b/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp index d4c5d8024..a951ef3cd 100644 --- a/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp +++ b/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp @@ -3,9 +3,8 @@ #include "openmc/random_lcg.h" #include "openmc/source.h" #include "openmc/particle.h" -#include "pugixml.hpp" -class SerializedSource { +class SerializedSource : public openmc::CustomSource { protected: double energy_; @@ -18,7 +17,9 @@ class SerializedSource { // Getters for the values that we want to use in sampling. double energy() { return energy_; } - static SerializedSource from_string(const char* parameters) { + // Defines a function that can create a pointer to a new instance of this class + // by deserializing from the provided string. + static SerializedSource* from_string(const char* parameters) { std::unordered_map parameter_mapping; std::stringstream ss(parameters); @@ -30,27 +31,36 @@ class SerializedSource { parameter_mapping[key] = value; } - return SerializedSource(std::stod(parameter_mapping["energy"])); + return new SerializedSource(std::stod(parameter_mapping["energy"])); + } + + // Samples from an instance of this class. + openmc::Particle::Bank sample_source(uint64_t* seed) { + openmc::Particle::Bank particle; + // wgt + particle.particle = openmc::Particle::Type::neutron; + particle.wgt = 1.0; + // position + particle.r.x = 0.0; + particle.r.y = 0.0; + particle.r.z = 0.0; + // angle + particle.u = {1.0, 0.0, 0.0}; + particle.E = this->energy(); + particle.delayed_group = 0; + + return particle; } }; // you must have external C linkage here otherwise // dlopen will not find the file -extern "C" openmc::Particle::Bank sample_source(uint64_t* seed, const char* parameters) { - SerializedSource source = SerializedSource::from_string(parameters); - - openmc::Particle::Bank particle; - // wgt - particle.particle = openmc::Particle::Type::neutron; - particle.wgt = 1.0; - // position - particle.r.x = 0.0; - particle.r.y = 0.0; - particle.r.z = 0.0; - // angle - particle.u = {1.0, 0.0, 0.0}; - particle.E = source.energy(); - particle.delayed_group = 0; - - return particle; +extern "C" SerializedSource* create(const char* serialized_source) { + return SerializedSource::from_string(serialized_source); +} + +// you must have external C linkage here otherwise +// dlopen will not find the file +extern "C" void destroy(SerializedSource* source) { + delete source; } From 64a4c96a946230ef435c3aa44386404bea44f15a Mon Sep 17 00:00:00 2001 From: Dan Short Date: Wed, 5 Aug 2020 15:53:48 +0100 Subject: [PATCH 042/122] Rename serialized -> parameterized Updates to examples and tests to refer to parameterized sources rather than serialized sources. Small update to source.h to remove reference to serialized parameters. --- .../CMakeLists.txt | 4 ++-- .../parameterized_custom_source/README.md | 23 +++++++++++++++++++ .../build_xml.py | 2 +- .../parameterized_source_ring.cpp} | 14 +++++------ .../show_flux.py | 0 examples/serialized_custom_source/README.md | 23 ------------------- include/openmc/source.h | 2 +- .../__init__.py | 0 .../inputs_true.dat | 2 +- .../parameterized_source_sampling.cpp} | 14 +++++------ .../results_true.dat | 0 .../test.py | 6 ++--- 12 files changed, 45 insertions(+), 45 deletions(-) rename examples/{serialized_custom_source => parameterized_custom_source}/CMakeLists.txt (57%) create mode 100644 examples/parameterized_custom_source/README.md rename examples/{serialized_custom_source => parameterized_custom_source}/build_xml.py (95%) rename examples/{serialized_custom_source/serialized_source_ring.cpp => parameterized_custom_source/parameterized_source_ring.cpp} (81%) rename examples/{serialized_custom_source => parameterized_custom_source}/show_flux.py (100%) delete mode 100644 examples/serialized_custom_source/README.md rename tests/regression_tests/{source_serialized_dlopen => source_parameterized_dlopen}/__init__.py (100%) rename tests/regression_tests/{source_serialized_dlopen => source_parameterized_dlopen}/inputs_true.dat (87%) rename tests/regression_tests/{source_serialized_dlopen/serialized_source_sampling.cpp => source_parameterized_dlopen/parameterized_source_sampling.cpp} (79%) rename tests/regression_tests/{source_serialized_dlopen => source_parameterized_dlopen}/results_true.dat (100%) rename tests/regression_tests/{source_serialized_dlopen => source_parameterized_dlopen}/test.py (90%) diff --git a/examples/serialized_custom_source/CMakeLists.txt b/examples/parameterized_custom_source/CMakeLists.txt similarity index 57% rename from examples/serialized_custom_source/CMakeLists.txt rename to examples/parameterized_custom_source/CMakeLists.txt index 9d76718e5..3024e90cf 100644 --- a/examples/serialized_custom_source/CMakeLists.txt +++ b/examples/parameterized_custom_source/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.3 FATAL_ERROR) project(openmc_sources CXX) -add_library(serialized_source SHARED serialized_source_ring.cpp) +add_library(parameterized_source SHARED parameterized_source_ring.cpp) find_package(OpenMC REQUIRED) if (OpenMC_FOUND) message(STATUS "Found OpenMC: ${OpenMC_DIR}") endif() -target_link_libraries(serialized_source OpenMC::libopenmc) +target_link_libraries(parameterized_source OpenMC::libopenmc) diff --git a/examples/parameterized_custom_source/README.md b/examples/parameterized_custom_source/README.md new file mode 100644 index 000000000..9116fadea --- /dev/null +++ b/examples/parameterized_custom_source/README.md @@ -0,0 +1,23 @@ +# Building a Parameterized Custom Source + +To run this example, you first need to compile the custom source library, which +requires headers from OpenMC. A CMakeLists.txt file has been set up for you that +will search for OpenMC and build the custom library. To build the source +library, you can run: + + mkdir build && cd build + OPENMC_ROOT= cmake .. + make + +After this, you can build the model by running `python build_xml.py`. In the XML +files that are created, you should see a reference to build/libparameterized_source.so, +the custom source library that was built by CMake, and values in the parameters +attribute. The model is also set up with a mesh tally of the flux, so once you run +`openmc`, you will get a statepoint file with the tally results in it. Running +`python show_flux.py` will pull in the results from the statepoint file and display +them. If all worked well, you should see a ring "imprint" as well as a higher flux to +the right side (since the custom source has all particles moving in the positive x +direction). + +Once built, you can edit the parameters attribute on the source to change the radius of +the sampled ring or the energy of the sampled particles. diff --git a/examples/serialized_custom_source/build_xml.py b/examples/parameterized_custom_source/build_xml.py similarity index 95% rename from examples/serialized_custom_source/build_xml.py rename to examples/parameterized_custom_source/build_xml.py index 31ba2ac3e..5edb204df 100644 --- a/examples/serialized_custom_source/build_xml.py +++ b/examples/parameterized_custom_source/build_xml.py @@ -19,7 +19,7 @@ settings.run_mode = 'fixed source' settings.batches = 10 settings.particles = 1000 source = openmc.Source() -source.library = 'build/libserialized_source.so' +source.library = 'build/libparameterized_source.so' source.parameters = 'radius=3.0, energy=14.08e6' settings.source = source settings.export_to_xml() diff --git a/examples/serialized_custom_source/serialized_source_ring.cpp b/examples/parameterized_custom_source/parameterized_source_ring.cpp similarity index 81% rename from examples/serialized_custom_source/serialized_source_ring.cpp rename to examples/parameterized_custom_source/parameterized_source_ring.cpp index 7584b152c..7b0089090 100644 --- a/examples/serialized_custom_source/serialized_source_ring.cpp +++ b/examples/parameterized_custom_source/parameterized_source_ring.cpp @@ -5,13 +5,13 @@ #include "openmc/source.h" #include "openmc/particle.h" -class SerializedSource : public openmc::CustomSource { +class ParameterizedSource : public openmc::CustomSource { protected: double radius_; double energy_; // Protect the constructor so that the class can only be created by serialisation. - SerializedSource(double radius, double energy) { + ParameterizedSource(double radius, double energy) { radius_ = radius; energy_ = energy; } @@ -23,7 +23,7 @@ class SerializedSource : public openmc::CustomSource { // Defines a function that can create a pointer to a new instance of this class // by deserializing from the provided string. - static SerializedSource* from_string(const char* parameters) { + static ParameterizedSource* from_string(const char* parameters) { std::unordered_map parameter_mapping; std::stringstream ss(parameters); @@ -35,7 +35,7 @@ class SerializedSource : public openmc::CustomSource { parameter_mapping[key] = value; } - return new SerializedSource(std::stod(parameter_mapping["radius"]), std::stod(parameter_mapping["energy"])); + return new ParameterizedSource(std::stod(parameter_mapping["radius"]), std::stod(parameter_mapping["energy"])); } // Samples from an instance of this class. @@ -62,13 +62,13 @@ class SerializedSource : public openmc::CustomSource { // A function to create a pointer to an instance of this class when generated // via a plugin call using dlopen/dlsym. // You must have external C linkage here otherwise dlopen will not find the file -extern "C" SerializedSource* create(const char* parameters) { - return SerializedSource::from_string(parameters); +extern "C" ParameterizedSource* create(const char* parameters) { + return ParameterizedSource::from_string(parameters); } // A function to destroy a pointer to an instance of this class when generated // via a plugin call using dlopen/dlsym. // You must have external C linkage here otherwise dlopen will not find the file -extern "C" void destroy(SerializedSource* source) { +extern "C" void destroy(ParameterizedSource* source) { delete source; } diff --git a/examples/serialized_custom_source/show_flux.py b/examples/parameterized_custom_source/show_flux.py similarity index 100% rename from examples/serialized_custom_source/show_flux.py rename to examples/parameterized_custom_source/show_flux.py diff --git a/examples/serialized_custom_source/README.md b/examples/serialized_custom_source/README.md deleted file mode 100644 index d5c5ee120..000000000 --- a/examples/serialized_custom_source/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# Building a Serialized Custom Source - -To run this example, you first need to compile the custom source library, which -requires headers from OpenMC. A CMakeLists.txt file has been set up for you that -will search for OpenMC and build the custom library. To build the source -library, you can run: - - mkdir build && cd build - OPENMC_ROOT= cmake .. - make - -After this, you can build the model by running `python build_xml.py`. In the XML -files that are created, you should see a reference to build/libserialized_source.so, -the custom source library that was built by CMake, and the serialized representation -of the source in the parameters attribute. The model is also set up with a mesh tally -of the flux, so once you run `openmc`, you will get a statepoint file with the tally -results in it. Running `python show_flux.py` will pull in the results from the -statepoint file and display them. If all worked well, you should see a ring "imprint" -as well as a higher flux to the right side (since the custom source has all particles -moving in the positive x direction). - -Once built, you can edit the parameters attribute on the source to change the radius of -the sampled ring or the energy of the sampled particles. diff --git a/include/openmc/source.h b/include/openmc/source.h index bd24f093f..2492cb2b7 100644 --- a/include/openmc/source.h +++ b/include/openmc/source.h @@ -66,7 +66,7 @@ class CustomSource { virtual Particle::Bank sample_source(uint64_t* seed) = 0; }; -typedef CustomSource* create_custom_source_t(const char* serialized_source); +typedef CustomSource* create_custom_source_t(const char* parameters); typedef void destroy_custom_source_t(CustomSource*); //============================================================================== diff --git a/tests/regression_tests/source_serialized_dlopen/__init__.py b/tests/regression_tests/source_parameterized_dlopen/__init__.py similarity index 100% rename from tests/regression_tests/source_serialized_dlopen/__init__.py rename to tests/regression_tests/source_parameterized_dlopen/__init__.py diff --git a/tests/regression_tests/source_serialized_dlopen/inputs_true.dat b/tests/regression_tests/source_parameterized_dlopen/inputs_true.dat similarity index 87% rename from tests/regression_tests/source_serialized_dlopen/inputs_true.dat rename to tests/regression_tests/source_parameterized_dlopen/inputs_true.dat index c7765d20a..a7462ae7f 100644 --- a/tests/regression_tests/source_serialized_dlopen/inputs_true.dat +++ b/tests/regression_tests/source_parameterized_dlopen/inputs_true.dat @@ -19,5 +19,5 @@ 1000 10 0 - + diff --git a/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp similarity index 79% rename from tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp rename to tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp index a951ef3cd..b50c9d284 100644 --- a/tests/regression_tests/source_serialized_dlopen/serialized_source_sampling.cpp +++ b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp @@ -4,12 +4,12 @@ #include "openmc/source.h" #include "openmc/particle.h" -class SerializedSource : public openmc::CustomSource { +class ParameterizedSource : public openmc::CustomSource { protected: double energy_; // Protect the constructor so that the class can only be created by serialisation. - SerializedSource(double energy) { + ParameterizedSource(double energy) { energy_ = energy; } @@ -19,7 +19,7 @@ class SerializedSource : public openmc::CustomSource { // Defines a function that can create a pointer to a new instance of this class // by deserializing from the provided string. - static SerializedSource* from_string(const char* parameters) { + static ParameterizedSource* from_string(const char* parameters) { std::unordered_map parameter_mapping; std::stringstream ss(parameters); @@ -31,7 +31,7 @@ class SerializedSource : public openmc::CustomSource { parameter_mapping[key] = value; } - return new SerializedSource(std::stod(parameter_mapping["energy"])); + return new ParameterizedSource(std::stod(parameter_mapping["energy"])); } // Samples from an instance of this class. @@ -55,12 +55,12 @@ class SerializedSource : public openmc::CustomSource { // you must have external C linkage here otherwise // dlopen will not find the file -extern "C" SerializedSource* create(const char* serialized_source) { - return SerializedSource::from_string(serialized_source); +extern "C" ParameterizedSource* create(const char* parameters) { + return ParameterizedSource::from_string(parameters); } // you must have external C linkage here otherwise // dlopen will not find the file -extern "C" void destroy(SerializedSource* source) { +extern "C" void destroy(ParameterizedSource* source) { delete source; } diff --git a/tests/regression_tests/source_serialized_dlopen/results_true.dat b/tests/regression_tests/source_parameterized_dlopen/results_true.dat similarity index 100% rename from tests/regression_tests/source_serialized_dlopen/results_true.dat rename to tests/regression_tests/source_parameterized_dlopen/results_true.dat diff --git a/tests/regression_tests/source_serialized_dlopen/test.py b/tests/regression_tests/source_parameterized_dlopen/test.py similarity index 90% rename from tests/regression_tests/source_serialized_dlopen/test.py rename to tests/regression_tests/source_parameterized_dlopen/test.py index 09ed11be3..6c88c37c2 100644 --- a/tests/regression_tests/source_serialized_dlopen/test.py +++ b/tests/regression_tests/source_parameterized_dlopen/test.py @@ -20,9 +20,9 @@ def compile_source(request): f.write(textwrap.dedent(""" cmake_minimum_required(VERSION 3.3 FATAL_ERROR) project(openmc_sources CXX) - add_library(serialized_source SHARED serialized_source_sampling.cpp) + add_library(parameterized_source SHARED parameterized_source_sampling.cpp) find_package(OpenMC REQUIRED HINTS {}) - target_link_libraries(serialized_source OpenMC::libopenmc) + target_link_libraries(parameterized_source OpenMC::libopenmc) """.format(openmc_dir))) # Create temporary build directory and change to there @@ -63,7 +63,7 @@ def model(): # custom source from shared library source = openmc.Source() - source.library = 'build/libserialized_source.so' + source.library = 'build/libparameterized_source.so' source.parameters = 'energy=1e3' model.settings.source = source From 651c8825f3fc4a8901cb81894b3b36314ad27eac Mon Sep 17 00:00:00 2001 From: Dan Short Date: Wed, 5 Aug 2020 15:55:18 +0100 Subject: [PATCH 043/122] Updates to documentation Accounts for serialized -> parameterized change. Simplifies some of the examples to be more appropriate for documentation. Removes use of external destroy method. --- docs/source/io_formats/settings.rst | 16 +++---- docs/source/usersguide/settings.rst | 74 ++++++++--------------------- 2 files changed, 27 insertions(+), 63 deletions(-) diff --git a/docs/source/io_formats/settings.rst b/docs/source/io_formats/settings.rst index 511140290..6bd5c3bc1 100644 --- a/docs/source/io_formats/settings.rst +++ b/docs/source/io_formats/settings.rst @@ -474,15 +474,13 @@ attributes/sub-elements: defined by the string provided in this attribute. In this case, the custom source library must define a class that inherits from the ``openmc::CustomSource`` abstract class. This class must implement a - ``sample_source()`` function, which takes an array of integers as an - argument. The custom source library must also contain a ``create`` method, - which takes a serialized form of the source (as provided to the parameters - attribute) as an argument and returns a pointer to an instance of the custom - source, and a ``destroy`` method, which takes a pointer to an instance of - the custom source as an argument and deletes the memory allocated to the - custom source. If the library attribute is not provided then this attribute - will be ignored. More documentation on how to build serialized sources can - be found in :ref:`serialized_custom_source`. + ``sample_source()`` function, which takes an unsigned integer pointer as an + argument. The custom source library must also contain an + ``openmc_create_source`` method, which takes the value provided to the + parameters attribute as an argument and returns a pointer to an instance of + the custom source. If the library attribute is not provided then this + attribute will be ignored. More documentation on how to build parametrized + sources can be found in :ref:`parameterized_custom_source`. *Default*: None diff --git a/docs/source/usersguide/settings.rst b/docs/source/usersguide/settings.rst index 064803694..7bb8875be 100644 --- a/docs/source/usersguide/settings.rst +++ b/docs/source/usersguide/settings.rst @@ -235,55 +235,28 @@ file in your build directory. Setting the :attr:`openmc.Source.library` attribute to the path of this shared library will indicate that it should be used for sampling source particles at runtime. -.. _serialized_custom_source: +.. _parameterized_custom_source: -Custom Serialized Sources -------------------------- +Custom Parameterized Sources +---------------------------- If the custom source may be used with parameters at a variety of values then it -may be necessary to serialize the source to an appropriate format in order to -avoid recompiling the source library for each run. This is supported by defining -a class inheriting from ``openmc::CustomSource`` that implements a -``sample_source`` function. The class should also have logic to deserialise -the parameters provided via the settings.xml file in the -:attr:``openmc.Source.parameters`` attribute: +may be necessary to represent those parameters as a string in order to avoid +recompiling the source library for each run. This is supported by defining a +class inheriting from ``openmc::CustomSource`` that implements a +``sample_source`` function: .. code-block:: c++ - #include - - #include "openmc/random_lcg.h" #include "openmc/source.h" #include "openmc/particle.h" - class SerializedSource : public openmc::CustomSource { - protected: - double energy_; - - // Protect the constructor so that the class can only be created by serialisation. - SerializedSource(double energy) { - energy_ = energy; - } - + class ParameterizedSource : public openmc::CustomSource { public: - // Getters for the values that we want to use in sampling. - double energy() { return energy_; } - - // Defines a function that can create a pointer to a new instance of this class - // by deserializing from the provided string. - static SerializedSource* from_string(const char* parameters) { - std::unordered_map parameter_mapping; - - std::stringstream ss(parameters); - std::string parameter; - while (std::getline(ss, parameter, ',')) { - parameter.erase(0, parameter.find_first_not_of(' ')); - std::string key = parameter.substr(0, parameter.find_first_of('=')); - std::string value = parameter.substr(parameter.find_first_of('=') + 1, parameter.length()); - parameter_mapping[key] = value; - } - - return new SerializedSource(std::stod(parameter_mapping["energy"])); + double energy; + + ParameterizedSource(double energy) { + this->energy = energy; } // Samples from an instance of this class. @@ -298,32 +271,25 @@ the parameters provided via the settings.xml file in the particle.r.z = 0.0; // angle particle.u = {1.0, 0.0, 0.0}; - particle.E = this->energy(); + particle.E = this->energy; particle.delayed_group = 0; return particle; } }; -The custom source library function in this case must also define a ``create`` -method and a ``destroy`` method. The ``create`` method will be used to -generate an instance of the custom source, based on the value supplied in -the :attr:``openmc.Source.parameters`` attribute. The ``destroy`` method -will be used to destroy that instance once the sampling has completed. Both -must be defined with ``extern "C"``: +The custom source library function in this case must also define an +``openmc_create_source`` method, which will be used to generate an instance of +the custom source, based on the value supplied in the +:attr:``openmc.Source.parameters`` attribute. The +``openmc_create_source`` method must be defined with ``extern "C"``: .. code-block:: c++ // you must have external C linkage here otherwise // dlopen will not find the file - extern "C" SerializedSource* create(const char* serialized_source) { - return SerializedSource::from_string(serialized_source); - } - - // you must have external C linkage here otherwise - // dlopen will not find the file - extern "C" void destroy(SerializedSource* source) { - delete source; + extern "C" ParameterizedSource* openmc_create_source(const char* parameterized_source) { + return new ParameterizedSource(std::stod(parameters)); } As with the basic custom source functionality, the custom source library From fae474869c563e27e3624ae56cfab4b5f16994c7 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Wed, 5 Aug 2020 16:00:49 +0100 Subject: [PATCH 044/122] Remove external destroy method OpenMC will call delete directly on the CustomSource. --- .../parameterized_source_ring.cpp | 7 ------- include/openmc/source.h | 1 - src/source.cpp | 8 +++----- .../parameterized_source_sampling.cpp | 6 ------ 4 files changed, 3 insertions(+), 19 deletions(-) diff --git a/examples/parameterized_custom_source/parameterized_source_ring.cpp b/examples/parameterized_custom_source/parameterized_source_ring.cpp index 7b0089090..bd7bb1f6f 100644 --- a/examples/parameterized_custom_source/parameterized_source_ring.cpp +++ b/examples/parameterized_custom_source/parameterized_source_ring.cpp @@ -65,10 +65,3 @@ class ParameterizedSource : public openmc::CustomSource { extern "C" ParameterizedSource* create(const char* parameters) { return ParameterizedSource::from_string(parameters); } - -// A function to destroy a pointer to an instance of this class when generated -// via a plugin call using dlopen/dlsym. -// You must have external C linkage here otherwise dlopen will not find the file -extern "C" void destroy(ParameterizedSource* source) { - delete source; -} diff --git a/include/openmc/source.h b/include/openmc/source.h index 2492cb2b7..5bc2901b4 100644 --- a/include/openmc/source.h +++ b/include/openmc/source.h @@ -67,7 +67,6 @@ class CustomSource { }; typedef CustomSource* create_custom_source_t(const char* parameters); -typedef void destroy_custom_source_t(CustomSource*); //============================================================================== // Functions diff --git a/src/source.cpp b/src/source.cpp index fc184dc4e..4ddd3eb2a 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -50,7 +50,6 @@ sample_t custom_source_function; std::string custom_source_parameters; CustomSource* custom_source; -destroy_custom_source_t* destroy_custom_source; } @@ -380,9 +379,8 @@ void load_custom_source_library() using sample_t = Particle::Bank (*)(uint64_t* seed); custom_source_function = reinterpret_cast(dlsym(custom_source_library, "sample_source")); } else { - // get the functions to create and destroy the CustomSource from the library + // get the function to create the CustomSource from the library create_custom_source_t* create_custom_source = (create_custom_source_t*) dlsym(custom_source_library, "create"); - destroy_custom_source = (destroy_custom_source_t*) dlsym(custom_source_library, "destroy"); // create a pointer to an instance of the CustomSource custom_source = create_custom_source(custom_source_parameters.c_str()); @@ -404,8 +402,8 @@ void load_custom_source_library() void close_custom_source_library() { if (custom_source) { - // destroy the CustomSource if it exists - destroy_custom_source(custom_source); + // delete the CustomSource if it exists + delete custom_source; } #ifdef HAS_DYNAMIC_LINKING diff --git a/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp index b50c9d284..3eda071e8 100644 --- a/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp +++ b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp @@ -58,9 +58,3 @@ class ParameterizedSource : public openmc::CustomSource { extern "C" ParameterizedSource* create(const char* parameters) { return ParameterizedSource::from_string(parameters); } - -// you must have external C linkage here otherwise -// dlopen will not find the file -extern "C" void destroy(ParameterizedSource* source) { - delete source; -} From 0bb5030ee093c69b90b396c694181bf689314839 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Wed, 5 Aug 2020 16:02:52 +0100 Subject: [PATCH 045/122] Rename create -> openmc_create_source --- .../parameterized_custom_source/parameterized_source_ring.cpp | 2 +- src/source.cpp | 2 +- .../parameterized_source_sampling.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/parameterized_custom_source/parameterized_source_ring.cpp b/examples/parameterized_custom_source/parameterized_source_ring.cpp index bd7bb1f6f..51218e1b3 100644 --- a/examples/parameterized_custom_source/parameterized_source_ring.cpp +++ b/examples/parameterized_custom_source/parameterized_source_ring.cpp @@ -62,6 +62,6 @@ class ParameterizedSource : public openmc::CustomSource { // A function to create a pointer to an instance of this class when generated // via a plugin call using dlopen/dlsym. // You must have external C linkage here otherwise dlopen will not find the file -extern "C" ParameterizedSource* create(const char* parameters) { +extern "C" ParameterizedSource* openmc_create_source(const char* parameters) { return ParameterizedSource::from_string(parameters); } diff --git a/src/source.cpp b/src/source.cpp index 4ddd3eb2a..673ee8804 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -380,7 +380,7 @@ void load_custom_source_library() custom_source_function = reinterpret_cast(dlsym(custom_source_library, "sample_source")); } else { // get the function to create the CustomSource from the library - create_custom_source_t* create_custom_source = (create_custom_source_t*) dlsym(custom_source_library, "create"); + create_custom_source_t* create_custom_source = (create_custom_source_t*) dlsym(custom_source_library, "openmc_create_source"); // create a pointer to an instance of the CustomSource custom_source = create_custom_source(custom_source_parameters.c_str()); diff --git a/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp index 3eda071e8..9fcb841d0 100644 --- a/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp +++ b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp @@ -55,6 +55,6 @@ class ParameterizedSource : public openmc::CustomSource { // you must have external C linkage here otherwise // dlopen will not find the file -extern "C" ParameterizedSource* create(const char* parameters) { +extern "C" ParameterizedSource* openmc_create_source(const char* parameters) { return ParameterizedSource::from_string(parameters); } From 475656e6e030cc7e9a77ecab8a255f5986a8a8ec Mon Sep 17 00:00:00 2001 From: Dan Short Date: Wed, 5 Aug 2020 16:10:04 +0100 Subject: [PATCH 046/122] Simplify test and fix typos in documentation --- docs/source/usersguide/settings.rst | 4 +- .../parameterized_source_sampling.cpp | 37 +++---------------- 2 files changed, 8 insertions(+), 33 deletions(-) diff --git a/docs/source/usersguide/settings.rst b/docs/source/usersguide/settings.rst index 7bb8875be..30bf71132 100644 --- a/docs/source/usersguide/settings.rst +++ b/docs/source/usersguide/settings.rst @@ -288,8 +288,8 @@ the custom source, based on the value supplied in the // you must have external C linkage here otherwise // dlopen will not find the file - extern "C" ParameterizedSource* openmc_create_source(const char* parameterized_source) { - return new ParameterizedSource(std::stod(parameters)); + extern "C" ParameterizedSource* openmc_create_source(const char* parameter) { + return new ParameterizedSource(atof(parameter)); } As with the basic custom source functionality, the custom source library diff --git a/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp index 9fcb841d0..b3e9ca9cd 100644 --- a/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp +++ b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp @@ -1,37 +1,12 @@ -#include - -#include "openmc/random_lcg.h" #include "openmc/source.h" #include "openmc/particle.h" class ParameterizedSource : public openmc::CustomSource { - protected: - double energy_; - - // Protect the constructor so that the class can only be created by serialisation. - ParameterizedSource(double energy) { - energy_ = energy; - } - public: - // Getters for the values that we want to use in sampling. - double energy() { return energy_; } + double energy; - // Defines a function that can create a pointer to a new instance of this class - // by deserializing from the provided string. - static ParameterizedSource* from_string(const char* parameters) { - std::unordered_map parameter_mapping; - - std::stringstream ss(parameters); - std::string parameter; - while (std::getline(ss, parameter, ',')) { - parameter.erase(0, parameter.find_first_not_of(' ')); - std::string key = parameter.substr(0, parameter.find_first_of('=')); - std::string value = parameter.substr(parameter.find_first_of('=') + 1, parameter.length()); - parameter_mapping[key] = value; - } - - return new ParameterizedSource(std::stod(parameter_mapping["energy"])); + ParameterizedSource(double energy) { + this->energy = energy; } // Samples from an instance of this class. @@ -46,7 +21,7 @@ class ParameterizedSource : public openmc::CustomSource { particle.r.z = 0.0; // angle particle.u = {1.0, 0.0, 0.0}; - particle.E = this->energy(); + particle.E = this->energy; particle.delayed_group = 0; return particle; @@ -55,6 +30,6 @@ class ParameterizedSource : public openmc::CustomSource { // you must have external C linkage here otherwise // dlopen will not find the file -extern "C" ParameterizedSource* openmc_create_source(const char* parameters) { - return ParameterizedSource::from_string(parameters); +extern "C" ParameterizedSource* openmc_create_source(const char* parameter) { + return new ParameterizedSource(atof(parameter)); } From 4e4c5596165d9cee483ebe52f8f4bd915e4fd3ad Mon Sep 17 00:00:00 2001 From: Miriam Date: Wed, 5 Aug 2020 22:57:02 +0000 Subject: [PATCH 047/122] Updated documentation Added current to mgxs.rst and cleaned up descriptions in Current & MeshSurfaceCurrent class --- docs/source/pythonapi/mgxs.rst | 1 + openmc/mgxs/mgxs.py | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/source/pythonapi/mgxs.rst b/docs/source/pythonapi/mgxs.rst index f890bb469..6dc35e66d 100644 --- a/docs/source/pythonapi/mgxs.rst +++ b/docs/source/pythonapi/mgxs.rst @@ -33,6 +33,7 @@ Multi-group Cross Sections openmc.mgxs.AbsorptionXS openmc.mgxs.CaptureXS openmc.mgxs.Chi + openmc.mgxs.Current openmc.mgxs.FissionXS openmc.mgxs.InverseVelocity openmc.mgxs.KappaFissionXS diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index dfe3fecaf..bd9ff91dc 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5914,7 +5914,7 @@ class MeshSurfaceMGXS(MGXS): energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool - Unused for SurfacMGXS + Unused in MeshSurfacMGXS name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. @@ -5926,7 +5926,7 @@ class MeshSurfaceMGXS(MGXS): rxn_type : str Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool - Unused for MeshSurfaceMGXS + Unused in MeshSurfaceMGXS domain : Mesh Domain for spatial homogenization domain_type : {'mesh'} @@ -6296,7 +6296,7 @@ class Current(MeshSurfaceMGXS): rxn_type : str Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool - Unused for MeshSurfaceMGXS + Unused in MeshSurfaceMGXS domain : Mesh Domain for spatial homogenization domain_type : {'mesh'} From 45e2808207921a225d7ea962910d0283590b53e4 Mon Sep 17 00:00:00 2001 From: Miriam Date: Fri, 7 Aug 2020 00:38:59 +0000 Subject: [PATCH 048/122] Exception for current in domain_to_filter build_hdf5_store fails for current unless domain_to_filter is circumvented. Because current is a 'mesh' domain, domain_to_filter would assign a mesh filter. However, current uses a meshsurface filter instead, so domain_to_filter must allow for that exception. --- openmc/mgxs/mgxs.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index bd9ff91dc..1552067e7 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -560,7 +560,10 @@ class MGXS: domain_type = self.domain_type[4:-1] else: domain_type = self.domain_type - filter_type = _DOMAIN_TO_FILTER[domain_type] + if self._rxn_type == 'current': + filter_type = openmc.MeshSurfaceFilter + else: + filter_type = _DOMAIN_TO_FILTER[domain_type] domain_filter = self.xs_tally.find_filter(filter_type) return domain_filter.num_bins From f673ae605282286b3048c0bb2798361280b7c3d4 Mon Sep 17 00:00:00 2001 From: Miriam Date: Fri, 7 Aug 2020 16:56:54 +0000 Subject: [PATCH 049/122] Extended tests to include current Changed the domain from 'material' to 'mesh' in mgxs_library_condense and mgxs_library_hdf5. This way, current can be tested for those functionalities. The other tests were not relevant to current. The test mgxs_library_mesh was already includes current. --- .../mgxs_library_condense/inputs_true.dat | 794 +----------------- .../mgxs_library_condense/results_true.dat | 617 ++++++++------ .../mgxs_library_condense/test.py | 12 +- .../mgxs_library_hdf5/inputs_true.dat | 794 +----------------- .../mgxs_library_hdf5/results_true.dat | 655 ++++----------- .../mgxs_library_hdf5/test.py | 16 +- 6 files changed, 590 insertions(+), 2298 deletions(-) diff --git a/tests/regression_tests/mgxs_library_condense/inputs_true.dat b/tests/regression_tests/mgxs_library_condense/inputs_true.dat index 5aedd383d..8e649ea82 100644 --- a/tests/regression_tests/mgxs_library_condense/inputs_true.dat +++ b/tests/regression_tests/mgxs_library_condense/inputs_true.dat @@ -50,7 +50,12 @@ - + + 2 2 + -100.0 -100.0 + 100.0 100.0 + + 1 @@ -68,15 +73,12 @@ 0.0 20000000.0 - + + 1 + + 1 2 3 4 5 6 - - 2 - - - 3 - 1 2 total @@ -384,793 +386,67 @@ analog + 66 2 + total + current + analog + + 1 2 total flux tracklength - - 1 65 2 + + 1 69 2 total delayed-nu-fission tracklength - - 1 65 52 - total - delayed-nu-fission - analog - - 1 65 5 + 1 69 52 total delayed-nu-fission analog + 1 69 5 + total + delayed-nu-fission + analog + + 1 2 total nu-fission tracklength - - 1 65 2 - total - delayed-nu-fission - tracklength - - 1 65 2 + 1 69 2 total delayed-nu-fission tracklength - 1 65 2 + 1 69 2 + total + delayed-nu-fission + tracklength + + + 1 69 2 total decay-rate tracklength - + 1 2 total flux analog - - 1 65 2 5 - total - delayed-nu-fission - analog - - 80 2 - total - flux - tracklength - - - 80 2 - total - total - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - total - tracklength - - - 80 2 - total - flux - analog - - - 80 5 6 - total - scatter - analog - - - 80 2 - total - flux - tracklength - - - 80 2 - total - total - tracklength - - - 80 2 - total - flux - analog - - - 80 5 6 - total - nu-scatter - analog - - - 80 2 - total - flux - tracklength - - - 80 2 - total - absorption - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - absorption - tracklength - - - 80 2 - total - fission - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - fission - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - nu-fission - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - kappa-fission - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - scatter - tracklength - - - 80 2 - total - flux - analog - - - 80 2 - total - nu-scatter - analog - - - 80 2 - total - flux - analog - - - 80 2 5 28 - total - scatter - analog - - - 80 2 - total - flux - analog - - - 80 2 5 28 - total - nu-scatter - analog - - - 80 2 5 - total - nu-scatter - analog - - - 80 2 5 - total - scatter - analog - - - 80 2 - total - flux - analog - - - 80 2 5 - total - nu-fission - analog - - - 80 2 5 - total - scatter - analog - - - 80 2 - total - flux - tracklength - - - 80 2 - total - scatter - tracklength - - - 80 2 5 28 - total - scatter - analog - - - 80 2 - total - flux - tracklength - - - 80 2 - total - scatter - tracklength - - - 80 2 5 28 - total - scatter - analog - - - 80 2 5 - total - nu-scatter - analog - - - 80 52 - total - nu-fission - analog - - - 80 5 - total - nu-fission - analog - - - 80 52 - total - prompt-nu-fission - analog - - - 80 5 - total - prompt-nu-fission - analog - - - 80 2 - total - flux - tracklength - - - 80 2 - total - inverse-velocity - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - prompt-nu-fission - tracklength - - - 80 2 - total - flux - analog - - - 80 2 5 - total - prompt-nu-fission - analog - - - 80 2 - total - flux - tracklength - - - 80 65 2 - total - delayed-nu-fission - tracklength - - - 80 65 52 - total - delayed-nu-fission - analog - - - 80 65 5 - total - delayed-nu-fission - analog - - - 80 2 - total - nu-fission - tracklength - - - 80 65 2 - total - delayed-nu-fission - tracklength - - - 80 65 2 - total - delayed-nu-fission - tracklength - - - 80 65 2 - total - decay-rate - tracklength - - - 80 2 - total - flux - analog - - - 80 65 2 5 - total - delayed-nu-fission - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - total - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - total - tracklength - - - 159 2 - total - flux - analog - - - 159 5 6 - total - scatter - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - total - tracklength - - - 159 2 - total - flux - analog - - - 159 5 6 - total - nu-scatter - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - absorption - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - absorption - tracklength - - - 159 2 - total - fission - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - fission - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - nu-fission - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - kappa-fission - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - scatter - tracklength - - - 159 2 - total - flux - analog - - - 159 2 - total - nu-scatter - analog - - - 159 2 - total - flux - analog - - - 159 2 5 28 - total - scatter - analog - - - 159 2 - total - flux - analog - - - 159 2 5 28 - total - nu-scatter - analog - - - 159 2 5 - total - nu-scatter - analog - - - 159 2 5 - total - scatter - analog - - - 159 2 - total - flux - analog - - - 159 2 5 - total - nu-fission - analog - - - 159 2 5 - total - scatter - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - scatter - tracklength - - - 159 2 5 28 - total - scatter - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - scatter - tracklength - - - 159 2 5 28 - total - scatter - analog - - - 159 2 5 - total - nu-scatter - analog - - - 159 52 - total - nu-fission - analog - - - 159 5 - total - nu-fission - analog - - - 159 52 - total - prompt-nu-fission - analog - - - 159 5 - total - prompt-nu-fission - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - inverse-velocity - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - prompt-nu-fission - tracklength - - - 159 2 - total - flux - analog - - - 159 2 5 - total - prompt-nu-fission - analog - - - 159 2 - total - flux - tracklength - - - 159 65 2 - total - delayed-nu-fission - tracklength - - - 159 65 52 - total - delayed-nu-fission - analog - - - 159 65 5 - total - delayed-nu-fission - analog - - - 159 2 - total - nu-fission - tracklength - - - 159 65 2 - total - delayed-nu-fission - tracklength - - - 159 65 2 - total - delayed-nu-fission - tracklength - - - 159 65 2 - total - decay-rate - tracklength - - - 159 2 - total - flux - analog - - - 159 65 2 5 + 1 69 2 5 total delayed-nu-fission analog diff --git a/tests/regression_tests/mgxs_library_condense/results_true.dat b/tests/regression_tests/mgxs_library_condense/results_true.dat index d4aa6b811..55c8c834a 100644 --- a/tests/regression_tests/mgxs_library_condense/results_true.dat +++ b/tests/regression_tests/mgxs_library_condense/results_true.dat @@ -1,273 +1,344 @@ - material group in nuclide mean std. dev. -0 1 1 total 0.453624 0.021053 - material group in nuclide mean std. dev. -0 1 1 total 0.4074 0.021863 - material group in nuclide mean std. dev. -0 1 1 total 0.4074 0.021863 - material group in nuclide mean std. dev. -0 1 1 total 0.064903 0.004313 - material group in nuclide mean std. dev. -0 1 1 total 0.028048 0.00458 - material group in nuclide mean std. dev. -0 1 1 total 0.036855 0.002622 - material group in nuclide mean std. dev. -0 1 1 total 0.090649 0.00641 - material group in nuclide mean std. dev. -0 1 1 total 7.137954e+06 507363.467231 - material group in nuclide mean std. dev. -0 1 1 total 0.388721 0.01783 - material group in nuclide mean std. dev. -0 1 1 total 0.389304 0.023076 - material group in group out legendre nuclide mean std. dev. -0 1 1 1 P0 total 0.389304 0.023146 -1 1 1 1 P1 total 0.046224 0.005907 -2 1 1 1 P2 total 0.017984 0.002883 -3 1 1 1 P3 total 0.006628 0.002457 - material group in group out legendre nuclide mean std. dev. -0 1 1 1 P0 total 0.389304 0.023146 -1 1 1 1 P1 total 0.046224 0.005907 -2 1 1 1 P2 total 0.017984 0.002883 -3 1 1 1 P3 total 0.006628 0.002457 - material group in group out nuclide mean std. dev. -0 1 1 1 total 1.0 0.066111 - material group in group out nuclide mean std. dev. -0 1 1 1 total 0.085835 0.005592 - material group in group out nuclide mean std. dev. -0 1 1 1 total 1.0 0.066111 - material group in group out legendre nuclide mean std. dev. -0 1 1 1 P0 total 0.388721 0.031279 -1 1 1 1 P1 total 0.046155 0.006407 -2 1 1 1 P2 total 0.017957 0.003039 -3 1 1 1 P3 total 0.006618 0.002480 - material group in group out legendre nuclide mean std. dev. -0 1 1 1 P0 total 0.388721 0.040482 -1 1 1 1 P1 total 0.046155 0.007097 -2 1 1 1 P2 total 0.017957 0.003262 -3 1 1 1 P3 total 0.006618 0.002518 - material group out nuclide mean std. dev. -0 1 1 total 1.0 0.046071 - material group out nuclide mean std. dev. -0 1 1 total 1.0 0.051471 - material group in nuclide mean std. dev. -0 1 1 total 4.996730e-07 3.650633e-08 - material group in nuclide mean std. dev. -0 1 1 total 0.090004 0.006367 - material group in group out nuclide mean std. dev. -0 1 1 1 total 0.084542 0.005716 - material delayedgroup group in nuclide mean std. dev. -0 1 1 1 total 0.000021 0.000001 -1 1 2 1 total 0.000110 0.000008 -2 1 3 1 total 0.000107 0.000007 -3 1 4 1 total 0.000249 0.000017 -4 1 5 1 total 0.000112 0.000007 -5 1 6 1 total 0.000046 0.000003 - material delayedgroup group out nuclide mean std. dev. -0 1 1 1 total 0.0 0.000000 -1 1 2 1 total 1.0 0.869128 -2 1 3 1 total 1.0 1.414214 -3 1 4 1 total 1.0 0.360359 -4 1 5 1 total 0.0 0.000000 -5 1 6 1 total 0.0 0.000000 - material delayedgroup group in nuclide mean std. dev. -0 1 1 1 total 0.000227 0.000020 -1 1 2 1 total 0.001214 0.000108 -2 1 3 1 total 0.001184 0.000104 -3 1 4 1 total 0.002752 0.000240 -4 1 5 1 total 0.001231 0.000105 -5 1 6 1 total 0.000512 0.000044 - material delayedgroup group in nuclide mean std. dev. -0 1 1 1 total 0.013355 0.001207 -1 1 2 1 total 0.032600 0.002866 -2 1 3 1 total 0.121083 0.010442 -3 1 4 1 total 0.305910 0.025627 -4 1 5 1 total 0.861934 0.068281 -5 1 6 1 total 2.895065 0.230223 - material delayedgroup group in group out nuclide mean std. dev. -0 1 1 1 1 total 0.000000 0.000000 -1 1 2 1 1 total 0.000384 0.000236 -2 1 3 1 1 total 0.000179 0.000180 -3 1 4 1 1 total 0.000730 0.000188 -4 1 5 1 1 total 0.000000 0.000000 -5 1 6 1 1 total 0.000000 0.000000 - material group in nuclide mean std. dev. -0 2 1 total 0.311594 0.013793 - material group in nuclide mean std. dev. -0 2 1 total 0.280977 0.015683 - material group in nuclide mean std. dev. -0 2 1 total 0.280977 0.015683 - material group in nuclide mean std. dev. -0 2 1 total 0.00221 0.000286 - material group in nuclide mean std. dev. -0 2 1 total 0.00221 0.000286 - material group in nuclide mean std. dev. -0 2 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 2 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 2 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 2 1 total 0.309384 0.013551 - material group in nuclide mean std. dev. -0 2 1 total 0.307987 0.029308 - material group in group out legendre nuclide mean std. dev. -0 2 1 1 P0 total 0.307987 0.029308 -1 2 1 1 P1 total 0.030617 0.007464 -2 2 1 1 P2 total 0.018911 0.004323 -3 2 1 1 P3 total 0.006235 0.003338 - material group in group out legendre nuclide mean std. dev. -0 2 1 1 P0 total 0.307987 0.029308 -1 2 1 1 P1 total 0.030617 0.007464 -2 2 1 1 P2 total 0.018911 0.004323 -3 2 1 1 P3 total 0.006235 0.003338 - material group in group out nuclide mean std. dev. -0 2 1 1 total 1.0 0.095039 - material group in group out nuclide mean std. dev. -0 2 1 1 total 0.0 0.0 - material group in group out nuclide mean std. dev. -0 2 1 1 total 1.0 0.095039 - material group in group out legendre nuclide mean std. dev. -0 2 1 1 P0 total 0.309384 0.032376 -1 2 1 1 P1 total 0.030756 0.007617 -2 2 1 1 P2 total 0.018997 0.004420 -3 2 1 1 P3 total 0.006263 0.003364 - material group in group out legendre nuclide mean std. dev. -0 2 1 1 P0 total 0.309384 0.043735 -1 2 1 1 P1 total 0.030756 0.008159 -2 2 1 1 P2 total 0.018997 0.004775 -3 2 1 1 P3 total 0.006263 0.003417 - material group out nuclide mean std. dev. -0 2 1 total 0.0 0.0 - material group out nuclide mean std. dev. -0 2 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 2 1 total 5.454762e-07 4.949807e-08 - material group in nuclide mean std. dev. -0 2 1 total 0.0 0.0 - material group in group out nuclide mean std. dev. -0 2 1 1 total 0.0 0.0 - material delayedgroup group in nuclide mean std. dev. -0 2 1 1 total 0.0 0.0 -1 2 2 1 total 0.0 0.0 -2 2 3 1 total 0.0 0.0 -3 2 4 1 total 0.0 0.0 -4 2 5 1 total 0.0 0.0 -5 2 6 1 total 0.0 0.0 - material delayedgroup group out nuclide mean std. dev. -0 2 1 1 total 0.0 0.0 -1 2 2 1 total 0.0 0.0 -2 2 3 1 total 0.0 0.0 -3 2 4 1 total 0.0 0.0 -4 2 5 1 total 0.0 0.0 -5 2 6 1 total 0.0 0.0 - material delayedgroup group in nuclide mean std. dev. -0 2 1 1 total 0.0 0.0 -1 2 2 1 total 0.0 0.0 -2 2 3 1 total 0.0 0.0 -3 2 4 1 total 0.0 0.0 -4 2 5 1 total 0.0 0.0 -5 2 6 1 total 0.0 0.0 - material delayedgroup group in nuclide mean std. dev. -0 2 1 1 total 0.0 0.0 -1 2 2 1 total 0.0 0.0 -2 2 3 1 total 0.0 0.0 -3 2 4 1 total 0.0 0.0 -4 2 5 1 total 0.0 0.0 -5 2 6 1 total 0.0 0.0 - material delayedgroup group in group out nuclide mean std. dev. -0 2 1 1 1 total 0.0 0.0 -1 2 2 1 1 total 0.0 0.0 -2 2 3 1 1 total 0.0 0.0 -3 2 4 1 1 total 0.0 0.0 -4 2 5 1 1 total 0.0 0.0 -5 2 6 1 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 3 1 total 0.904999 0.043964 - material group in nuclide mean std. dev. -0 3 1 total 0.494581 0.046763 - material group in nuclide mean std. dev. -0 3 1 total 0.494581 0.046763 - material group in nuclide mean std. dev. -0 3 1 total 0.00606 0.000555 - material group in nuclide mean std. dev. -0 3 1 total 0.00606 0.000555 - material group in nuclide mean std. dev. -0 3 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 3 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 3 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 3 1 total 0.898938 0.043493 - material group in nuclide mean std. dev. -0 3 1 total 0.903415 0.043959 - material group in group out legendre nuclide mean std. dev. -0 3 1 1 P0 total 0.903415 0.043586 -1 3 1 1 P1 total 0.410417 0.015877 -2 3 1 1 P2 total 0.143301 0.007187 -3 3 1 1 P3 total 0.008739 0.003571 - material group in group out legendre nuclide mean std. dev. -0 3 1 1 P0 total 0.903415 0.043586 -1 3 1 1 P1 total 0.410417 0.015877 -2 3 1 1 P2 total 0.143301 0.007187 -3 3 1 1 P3 total 0.008739 0.003571 - material group in group out nuclide mean std. dev. -0 3 1 1 total 1.0 0.056867 - material group in group out nuclide mean std. dev. -0 3 1 1 total 0.0 0.0 - material group in group out nuclide mean std. dev. -0 3 1 1 total 1.0 0.056867 - material group in group out legendre nuclide mean std. dev. -0 3 1 1 P0 total 0.898938 0.067118 -1 3 1 1 P1 total 0.408384 0.028127 -2 3 1 1 P2 total 0.142591 0.010824 -3 3 1 1 P3 total 0.008696 0.003588 - material group in group out legendre nuclide mean std. dev. -0 3 1 1 P0 total 0.898938 0.084369 -1 3 1 1 P1 total 0.408384 0.036475 -2 3 1 1 P2 total 0.142591 0.013525 -3 3 1 1 P3 total 0.008696 0.003622 - material group out nuclide mean std. dev. -0 3 1 total 0.0 0.0 - material group out nuclide mean std. dev. -0 3 1 total 0.0 0.0 - material group in nuclide mean std. dev. -0 3 1 total 5.773007e-07 5.322133e-08 - material group in nuclide mean std. dev. -0 3 1 total 0.0 0.0 - material group in group out nuclide mean std. dev. -0 3 1 1 total 0.0 0.0 - material delayedgroup group in nuclide mean std. dev. -0 3 1 1 total 0.0 0.0 -1 3 2 1 total 0.0 0.0 -2 3 3 1 total 0.0 0.0 -3 3 4 1 total 0.0 0.0 -4 3 5 1 total 0.0 0.0 -5 3 6 1 total 0.0 0.0 - material delayedgroup group out nuclide mean std. dev. -0 3 1 1 total 0.0 0.0 -1 3 2 1 total 0.0 0.0 -2 3 3 1 total 0.0 0.0 -3 3 4 1 total 0.0 0.0 -4 3 5 1 total 0.0 0.0 -5 3 6 1 total 0.0 0.0 - material delayedgroup group in nuclide mean std. dev. -0 3 1 1 total 0.0 0.0 -1 3 2 1 total 0.0 0.0 -2 3 3 1 total 0.0 0.0 -3 3 4 1 total 0.0 0.0 -4 3 5 1 total 0.0 0.0 -5 3 6 1 total 0.0 0.0 - material delayedgroup group in nuclide mean std. dev. -0 3 1 1 total 0.0 0.0 -1 3 2 1 total 0.0 0.0 -2 3 3 1 total 0.0 0.0 -3 3 4 1 total 0.0 0.0 -4 3 5 1 total 0.0 0.0 -5 3 6 1 total 0.0 0.0 - material delayedgroup group in group out nuclide mean std. dev. -0 3 1 1 1 total 0.0 0.0 -1 3 2 1 1 total 0.0 0.0 -2 3 3 1 1 total 0.0 0.0 -3 3 4 1 1 total 0.0 0.0 -4 3 5 1 1 total 0.0 0.0 -5 3 6 1 1 total 0.0 0.0 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.689569 0.031419 +2 1 2 1 1 total 0.699649 0.037450 +1 2 1 1 1 total 0.714582 0.039410 +3 2 2 1 1 total 0.703950 0.032472 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.439891 0.034895 +2 1 2 1 1 total 0.439954 0.039793 +1 2 1 1 1 total 0.464255 0.041680 +3 2 2 1 1 total 0.448543 0.035418 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.439891 0.034895 +2 1 2 1 1 total 0.439954 0.039793 +1 2 1 1 1 total 0.464255 0.041680 +3 2 2 1 1 total 0.448543 0.035418 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.022628 0.001277 +2 1 2 1 1 total 0.023156 0.001846 +1 2 1 1 1 total 0.025056 0.002068 +3 2 2 1 1 total 0.023894 0.001806 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.011639 0.001313 +2 1 2 1 1 total 0.011902 0.001887 +1 2 1 1 1 total 0.013610 0.002138 +3 2 2 1 1 total 0.012379 0.001964 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.010989 0.000600 +2 1 2 1 1 total 0.011254 0.000888 +1 2 1 1 1 total 0.011446 0.000917 +3 2 2 1 1 total 0.011515 0.001091 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.027048 0.001467 +2 1 2 1 1 total 0.027679 0.002173 +1 2 1 1 1 total 0.028152 0.002239 +3 2 2 1 1 total 0.028305 0.002664 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 2.128551e+06 116174.136443 +2 1 2 1 1 total 2.179625e+06 171863.153028 +1 2 1 1 1 total 2.216815e+06 177355.380518 +3 2 2 1 1 total 2.229909e+06 211056.365380 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.666941 0.030331 +2 1 2 1 1 total 0.676493 0.035733 +1 2 1 1 1 total 0.689526 0.037499 +3 2 2 1 1 total 0.680056 0.031192 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.666776 0.041465 +2 1 2 1 1 total 0.681119 0.037897 +1 2 1 1 1 total 0.680135 0.040329 +3 2 2 1 1 total 0.673685 0.034317 + mesh 1 group in group out legendre nuclide mean std. dev. + x y z +0 1 1 1 1 1 P0 total 0.666776 0.040502 +1 1 1 1 1 1 P1 total 0.249678 0.015165 +2 1 1 1 1 1 P2 total 0.084904 0.007439 +3 1 1 1 1 1 P3 total 0.004671 0.003362 +8 1 2 1 1 1 P0 total 0.681119 0.037746 +9 1 2 1 1 1 P1 total 0.259694 0.013458 +10 1 2 1 1 1 P2 total 0.093376 0.006988 +11 1 2 1 1 1 P3 total 0.009055 0.004266 +4 2 1 1 1 1 P0 total 0.680135 0.039913 +5 2 1 1 1 1 P1 total 0.250326 0.013593 +6 2 1 1 1 1 P2 total 0.094891 0.008015 +7 2 1 1 1 1 P3 total 0.012214 0.002309 +12 2 2 1 1 1 P0 total 0.673685 0.034716 +13 2 2 1 1 1 P1 total 0.255408 0.014000 +14 2 2 1 1 1 P2 total 0.087139 0.006220 +15 2 2 1 1 1 P3 total 0.005092 0.005661 + mesh 1 group in group out legendre nuclide mean std. dev. + x y z +0 1 1 1 1 1 P0 total 0.666776 0.040502 +1 1 1 1 1 1 P1 total 0.249678 0.015165 +2 1 1 1 1 1 P2 total 0.084904 0.007439 +3 1 1 1 1 1 P3 total 0.004671 0.003362 +8 1 2 1 1 1 P0 total 0.681119 0.037746 +9 1 2 1 1 1 P1 total 0.259694 0.013458 +10 1 2 1 1 1 P2 total 0.093376 0.006988 +11 1 2 1 1 1 P3 total 0.009055 0.004266 +4 2 1 1 1 1 P0 total 0.680135 0.039913 +5 2 1 1 1 1 P1 total 0.250326 0.013593 +6 2 1 1 1 1 P2 total 0.094891 0.008015 +7 2 1 1 1 1 P3 total 0.012214 0.002309 +12 2 2 1 1 1 P0 total 0.673685 0.034716 +13 2 2 1 1 1 P1 total 0.255408 0.014000 +14 2 2 1 1 1 P2 total 0.087139 0.006220 +15 2 2 1 1 1 P3 total 0.005092 0.005661 + mesh 1 group in group out nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 1.0 0.070099 +2 1 2 1 1 1 total 1.0 0.062344 +1 2 1 1 1 1 total 1.0 0.062771 +3 2 2 1 1 1 total 1.0 0.049705 + mesh 1 group in group out nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.028673 0.004228 +2 1 2 1 1 1 total 0.026964 0.003732 +1 2 1 1 1 1 total 0.026070 0.003550 +3 2 2 1 1 1 total 0.024753 0.003145 + mesh 1 group in group out nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 1.0 0.070099 +2 1 2 1 1 1 total 1.0 0.062344 +1 2 1 1 1 1 total 1.0 0.062771 +3 2 2 1 1 1 total 1.0 0.049705 + mesh 1 group in group out legendre nuclide mean std. dev. + x y z +0 1 1 1 1 1 P0 total 0.666941 0.055729 +1 1 1 1 1 1 P1 total 0.249740 0.020867 +2 1 1 1 1 1 P2 total 0.084925 0.008895 +3 1 1 1 1 1 P3 total 0.004673 0.003374 +8 1 2 1 1 1 P0 total 0.676493 0.055277 +9 1 2 1 1 1 P1 total 0.257931 0.020458 +10 1 2 1 1 1 P2 total 0.092742 0.008898 +11 1 2 1 1 1 P3 total 0.008994 0.004272 +4 2 1 1 1 1 P0 total 0.689526 0.057267 +5 2 1 1 1 1 P1 total 0.253783 0.020306 +6 2 1 1 1 1 P2 total 0.096202 0.009899 +7 2 1 1 1 1 P3 total 0.012383 0.002451 +12 2 2 1 1 1 P0 total 0.680056 0.045995 +13 2 2 1 1 1 P1 total 0.257823 0.018090 +14 2 2 1 1 1 P2 total 0.087963 0.007367 +15 2 2 1 1 1 P3 total 0.005140 0.005719 + mesh 1 group in group out legendre nuclide mean std. dev. + x y z +0 1 1 1 1 1 P0 total 0.666941 0.072742 +1 1 1 1 1 1 P1 total 0.249740 0.027238 +2 1 1 1 1 1 P2 total 0.084925 0.010703 +3 1 1 1 1 1 P3 total 0.004673 0.003390 +8 1 2 1 1 1 P0 total 0.676493 0.069529 +9 1 2 1 1 1 P1 total 0.257931 0.026022 +10 1 2 1 1 1 P2 total 0.092742 0.010612 +11 1 2 1 1 1 P3 total 0.008994 0.004308 +4 2 1 1 1 1 P0 total 0.689526 0.071784 +5 2 1 1 1 1 P1 total 0.253783 0.025809 +6 2 1 1 1 1 P2 total 0.096202 0.011596 +7 2 1 1 1 1 P3 total 0.012383 0.002571 +12 2 2 1 1 1 P0 total 0.680056 0.057080 +13 2 2 1 1 1 P1 total 0.257823 0.022170 +14 2 2 1 1 1 P2 total 0.087963 0.008567 +15 2 2 1 1 1 P3 total 0.005140 0.005725 + mesh 1 group out nuclide mean std. dev. + x y z +0 1 1 1 1 total 1.0 0.121554 +2 1 2 1 1 total 1.0 0.216579 +1 2 1 1 1 total 1.0 0.183339 +3 2 2 1 1 total 1.0 0.153219 + mesh 1 group out nuclide mean std. dev. + x y z +0 1 1 1 1 total 1.0 0.115075 +2 1 2 1 1 total 1.0 0.214629 +1 2 1 1 1 total 1.0 0.193610 +3 2 2 1 1 total 1.0 0.149674 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 5.326584e-07 4.351904e-08 +2 1 2 1 1 total 5.450392e-07 5.612731e-08 +1 2 1 1 1 total 5.715661e-07 6.214803e-08 +3 2 2 1 1 total 5.509404e-07 4.361226e-08 + mesh 1 group in nuclide mean std. dev. + x y z +0 1 1 1 1 total 0.026854 0.001457 +2 1 2 1 1 total 0.027482 0.002158 +1 2 1 1 1 total 0.027951 0.002224 +3 2 2 1 1 total 0.028105 0.002647 + mesh 1 group in group out nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.028472 0.004077 +2 1 2 1 1 1 total 0.026236 0.003570 +1 2 1 1 1 1 total 0.025851 0.003683 +3 2 2 1 1 1 total 0.024301 0.002974 + mesh 1 group in nuclide mean std. dev. + x y surf +3 1 1 x-max in 1 total 4.570 0.073566 +2 1 1 x-max out 1 total 4.566 0.097365 +1 1 1 x-min in 1 total 0.000 0.000000 +0 1 1 x-min out 1 total 0.000 0.000000 +7 1 1 y-max in 1 total 4.544 0.163303 +6 1 1 y-max out 1 total 4.524 0.143457 +5 1 1 y-min in 1 total 0.000 0.000000 +4 1 1 y-min out 1 total 0.000 0.000000 +19 1 2 x-max in 1 total 4.446 0.192083 +18 1 2 x-max out 1 total 4.448 0.134907 +17 1 2 x-min in 1 total 0.000 0.000000 +16 1 2 x-min out 1 total 0.000 0.000000 +23 1 2 y-max in 1 total 0.000 0.000000 +22 1 2 y-max out 1 total 0.000 0.000000 +21 1 2 y-min in 1 total 4.524 0.143457 +20 1 2 y-min out 1 total 4.544 0.163303 +11 2 1 x-max in 1 total 0.000 0.000000 +10 2 1 x-max out 1 total 0.000 0.000000 +9 2 1 x-min in 1 total 4.566 0.097365 +8 2 1 x-min out 1 total 4.570 0.073566 +15 2 1 y-max in 1 total 4.422 0.100270 +14 2 1 y-max out 1 total 4.424 0.145141 +13 2 1 y-min in 1 total 0.000 0.000000 +12 2 1 y-min out 1 total 0.000 0.000000 +27 2 2 x-max in 1 total 0.000 0.000000 +26 2 2 x-max out 1 total 0.000 0.000000 +25 2 2 x-min in 1 total 4.448 0.134907 +24 2 2 x-min out 1 total 4.446 0.192083 +31 2 2 y-max in 1 total 0.000 0.000000 +30 2 2 y-max out 1 total 0.000 0.000000 +29 2 2 y-min in 1 total 4.424 0.145141 +28 2 2 y-min out 1 total 4.422 0.100270 + mesh 1 delayedgroup group in nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.000006 3.337014e-07 +1 1 1 1 2 1 total 0.000033 1.744448e-06 +2 1 1 1 3 1 total 0.000032 1.680053e-06 +3 1 1 1 4 1 total 0.000075 3.832256e-06 +4 1 1 1 5 1 total 0.000034 1.657860e-06 +5 1 1 1 6 1 total 0.000014 6.911218e-07 +12 1 2 1 1 1 total 0.000006 4.935854e-07 +13 1 2 1 2 1 total 0.000034 2.586377e-06 +14 1 2 1 3 1 total 0.000033 2.493442e-06 +15 1 2 1 4 1 total 0.000076 5.693867e-06 +16 1 2 1 5 1 total 0.000034 2.461606e-06 +17 1 2 1 6 1 total 0.000014 1.026406e-06 +6 2 1 1 1 1 total 0.000006 5.092712e-07 +7 2 1 1 2 1 total 0.000034 2.652677e-06 +8 2 1 1 3 1 total 0.000033 2.547698e-06 +9 2 1 1 4 1 total 0.000077 5.777683e-06 +10 2 1 1 5 1 total 0.000035 2.451184e-06 +11 2 1 1 6 1 total 0.000014 1.023674e-06 +18 2 2 1 1 1 total 0.000006 6.058589e-07 +19 2 2 1 2 1 total 0.000034 3.154428e-06 +20 2 2 1 3 1 total 0.000033 3.028038e-06 +21 2 2 1 4 1 total 0.000077 6.857868e-06 +22 2 2 1 5 1 total 0.000034 2.893043e-06 +23 2 2 1 6 1 total 0.000014 1.208895e-06 + mesh 1 delayedgroup group out nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.0 0.000000 +1 1 1 1 2 1 total 0.0 0.000000 +2 1 1 1 3 1 total 0.0 0.000000 +3 1 1 1 4 1 total 1.0 1.414214 +4 1 1 1 5 1 total 0.0 0.000000 +5 1 1 1 6 1 total 0.0 0.000000 +12 1 2 1 1 1 total 0.0 0.000000 +13 1 2 1 2 1 total 1.0 1.414214 +14 1 2 1 3 1 total 0.0 0.000000 +15 1 2 1 4 1 total 1.0 0.867638 +16 1 2 1 5 1 total 0.0 0.000000 +17 1 2 1 6 1 total 0.0 0.000000 +6 2 1 1 1 1 total 0.0 0.000000 +7 2 1 1 2 1 total 0.0 0.000000 +8 2 1 1 3 1 total 1.0 1.414214 +9 2 1 1 4 1 total 0.0 0.000000 +10 2 1 1 5 1 total 0.0 0.000000 +11 2 1 1 6 1 total 0.0 0.000000 +18 2 2 1 1 1 total 0.0 0.000000 +19 2 2 1 2 1 total 1.0 1.414214 +20 2 2 1 3 1 total 0.0 0.000000 +21 2 2 1 4 1 total 1.0 1.414214 +22 2 2 1 5 1 total 0.0 0.000000 +23 2 2 1 6 1 total 0.0 0.000000 + mesh 1 delayedgroup group in nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.000227 0.000016 +1 1 1 1 2 1 total 0.001217 0.000083 +2 1 1 1 3 1 total 0.001189 0.000081 +3 1 1 1 4 1 total 0.002771 0.000185 +4 1 1 1 5 1 total 0.001247 0.000082 +5 1 1 1 6 1 total 0.000518 0.000034 +12 1 2 1 1 1 total 0.000227 0.000023 +13 1 2 1 2 1 total 0.001215 0.000119 +14 1 2 1 3 1 total 0.001185 0.000115 +15 1 2 1 4 1 total 0.002755 0.000266 +16 1 2 1 5 1 total 0.001234 0.000117 +17 1 2 1 6 1 total 0.000513 0.000049 +6 2 1 1 1 1 total 0.000227 0.000024 +7 2 1 1 2 1 total 0.001213 0.000124 +8 2 1 1 3 1 total 0.001183 0.000120 +9 2 1 1 4 1 total 0.002748 0.000275 +10 2 1 1 5 1 total 0.001228 0.000119 +11 2 1 1 6 1 total 0.000511 0.000050 +18 2 2 1 1 1 total 0.000227 0.000028 +19 2 2 1 2 1 total 0.001210 0.000149 +20 2 2 1 3 1 total 0.001179 0.000144 +21 2 2 1 4 1 total 0.002732 0.000330 +22 2 2 1 5 1 total 0.001214 0.000143 +23 2 2 1 6 1 total 0.000505 0.000059 + mesh 1 delayedgroup group in nuclide mean std. dev. + x y z +0 1 1 1 1 1 total 0.013357 0.000929 +1 1 1 1 2 1 total 0.032589 0.002199 +2 1 1 1 3 1 total 0.121106 0.008007 +3 1 1 1 4 1 total 0.306140 0.019650 +4 1 1 1 5 1 total 0.862764 0.052685 +5 1 1 1 6 1 total 2.897892 0.177498 +12 1 2 1 1 1 total 0.013356 0.001330 +13 1 2 1 2 1 total 0.032598 0.003165 +14 1 2 1 3 1 total 0.121086 0.011554 +15 1 2 1 4 1 total 0.305948 0.028460 +16 1 2 1 5 1 total 0.862070 0.076649 +17 1 2 1 6 1 total 2.895530 0.258195 +6 2 1 1 1 1 total 0.013355 0.001389 +7 2 1 1 2 1 total 0.032601 0.003293 +8 2 1 1 3 1 total 0.121079 0.011980 +9 2 1 1 4 1 total 0.305874 0.029310 +10 2 1 1 5 1 total 0.861802 0.077464 +11 2 1 1 6 1 total 2.894617 0.261360 +18 2 2 1 1 1 total 0.013354 0.001670 +19 2 2 1 2 1 total 0.032610 0.003972 +20 2 2 1 3 1 total 0.121059 0.014468 +21 2 2 1 4 1 total 0.305680 0.035462 +22 2 2 1 5 1 total 0.861087 0.093863 +23 2 2 1 6 1 total 2.892185 0.316700 + mesh 1 delayedgroup group in group out nuclide mean std. dev. + x y z +0 1 1 1 1 1 1 total 0.000000 0.000000 +1 1 1 1 2 1 1 total 0.000000 0.000000 +2 1 1 1 3 1 1 total 0.000000 0.000000 +3 1 1 1 4 1 1 total 0.000201 0.000201 +4 1 1 1 5 1 1 total 0.000000 0.000000 +5 1 1 1 6 1 1 total 0.000000 0.000000 +12 1 2 1 1 1 1 total 0.000000 0.000000 +13 1 2 1 2 1 1 total 0.000250 0.000250 +14 1 2 1 3 1 1 total 0.000000 0.000000 +15 1 2 1 4 1 1 total 0.000477 0.000293 +16 1 2 1 5 1 1 total 0.000000 0.000000 +17 1 2 1 6 1 1 total 0.000000 0.000000 +6 2 1 1 1 1 1 total 0.000000 0.000000 +7 2 1 1 2 1 1 total 0.000000 0.000000 +8 2 1 1 3 1 1 total 0.000220 0.000220 +9 2 1 1 4 1 1 total 0.000000 0.000000 +10 2 1 1 5 1 1 total 0.000000 0.000000 +11 2 1 1 6 1 1 total 0.000000 0.000000 +18 2 2 1 1 1 1 total 0.000000 0.000000 +19 2 2 1 2 1 1 total 0.000226 0.000226 +20 2 2 1 3 1 1 total 0.000000 0.000000 +21 2 2 1 4 1 1 total 0.000226 0.000226 +22 2 2 1 5 1 1 total 0.000000 0.000000 +23 2 2 1 6 1 1 total 0.000000 0.000000 diff --git a/tests/regression_tests/mgxs_library_condense/test.py b/tests/regression_tests/mgxs_library_condense/test.py index 15a4ff827..a7e60617f 100644 --- a/tests/regression_tests/mgxs_library_condense/test.py +++ b/tests/regression_tests/mgxs_library_condense/test.py @@ -19,12 +19,20 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.by_nuclide = False # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES[:-1] + \ + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.num_delayed_groups = 6 self.mgxs_lib.legendre_order = 3 - self.mgxs_lib.domain_type = 'material' + self.mgxs_lib.domain_type = 'mesh' + + # Instantiate a tally mesh + mesh = openmc.RegularMesh(mesh_id=1) + mesh.dimension = [2, 2] + mesh.lower_left = [-100., -100.] + mesh.width = [100., 100.] + + self.mgxs_lib.domains = [mesh] self.mgxs_lib.build_library() # Add tallies diff --git a/tests/regression_tests/mgxs_library_hdf5/inputs_true.dat b/tests/regression_tests/mgxs_library_hdf5/inputs_true.dat index 5aedd383d..8e649ea82 100644 --- a/tests/regression_tests/mgxs_library_hdf5/inputs_true.dat +++ b/tests/regression_tests/mgxs_library_hdf5/inputs_true.dat @@ -50,7 +50,12 @@ - + + 2 2 + -100.0 -100.0 + 100.0 100.0 + + 1 @@ -68,15 +73,12 @@ 0.0 20000000.0 - + + 1 + + 1 2 3 4 5 6 - - 2 - - - 3 - 1 2 total @@ -384,793 +386,67 @@ analog + 66 2 + total + current + analog + + 1 2 total flux tracklength - - 1 65 2 + + 1 69 2 total delayed-nu-fission tracklength - - 1 65 52 - total - delayed-nu-fission - analog - - 1 65 5 + 1 69 52 total delayed-nu-fission analog + 1 69 5 + total + delayed-nu-fission + analog + + 1 2 total nu-fission tracklength - - 1 65 2 - total - delayed-nu-fission - tracklength - - 1 65 2 + 1 69 2 total delayed-nu-fission tracklength - 1 65 2 + 1 69 2 + total + delayed-nu-fission + tracklength + + + 1 69 2 total decay-rate tracklength - + 1 2 total flux analog - - 1 65 2 5 - total - delayed-nu-fission - analog - - 80 2 - total - flux - tracklength - - - 80 2 - total - total - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - total - tracklength - - - 80 2 - total - flux - analog - - - 80 5 6 - total - scatter - analog - - - 80 2 - total - flux - tracklength - - - 80 2 - total - total - tracklength - - - 80 2 - total - flux - analog - - - 80 5 6 - total - nu-scatter - analog - - - 80 2 - total - flux - tracklength - - - 80 2 - total - absorption - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - absorption - tracklength - - - 80 2 - total - fission - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - fission - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - nu-fission - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - kappa-fission - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - scatter - tracklength - - - 80 2 - total - flux - analog - - - 80 2 - total - nu-scatter - analog - - - 80 2 - total - flux - analog - - - 80 2 5 28 - total - scatter - analog - - - 80 2 - total - flux - analog - - - 80 2 5 28 - total - nu-scatter - analog - - - 80 2 5 - total - nu-scatter - analog - - - 80 2 5 - total - scatter - analog - - - 80 2 - total - flux - analog - - - 80 2 5 - total - nu-fission - analog - - - 80 2 5 - total - scatter - analog - - - 80 2 - total - flux - tracklength - - - 80 2 - total - scatter - tracklength - - - 80 2 5 28 - total - scatter - analog - - - 80 2 - total - flux - tracklength - - - 80 2 - total - scatter - tracklength - - - 80 2 5 28 - total - scatter - analog - - - 80 2 5 - total - nu-scatter - analog - - - 80 52 - total - nu-fission - analog - - - 80 5 - total - nu-fission - analog - - - 80 52 - total - prompt-nu-fission - analog - - - 80 5 - total - prompt-nu-fission - analog - - - 80 2 - total - flux - tracklength - - - 80 2 - total - inverse-velocity - tracklength - - - 80 2 - total - flux - tracklength - - - 80 2 - total - prompt-nu-fission - tracklength - - - 80 2 - total - flux - analog - - - 80 2 5 - total - prompt-nu-fission - analog - - - 80 2 - total - flux - tracklength - - - 80 65 2 - total - delayed-nu-fission - tracklength - - - 80 65 52 - total - delayed-nu-fission - analog - - - 80 65 5 - total - delayed-nu-fission - analog - - - 80 2 - total - nu-fission - tracklength - - - 80 65 2 - total - delayed-nu-fission - tracklength - - - 80 65 2 - total - delayed-nu-fission - tracklength - - - 80 65 2 - total - decay-rate - tracklength - - - 80 2 - total - flux - analog - - - 80 65 2 5 - total - delayed-nu-fission - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - total - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - total - tracklength - - - 159 2 - total - flux - analog - - - 159 5 6 - total - scatter - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - total - tracklength - - - 159 2 - total - flux - analog - - - 159 5 6 - total - nu-scatter - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - absorption - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - absorption - tracklength - - - 159 2 - total - fission - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - fission - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - nu-fission - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - kappa-fission - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - scatter - tracklength - - - 159 2 - total - flux - analog - - - 159 2 - total - nu-scatter - analog - - - 159 2 - total - flux - analog - - - 159 2 5 28 - total - scatter - analog - - - 159 2 - total - flux - analog - - - 159 2 5 28 - total - nu-scatter - analog - - - 159 2 5 - total - nu-scatter - analog - - - 159 2 5 - total - scatter - analog - - - 159 2 - total - flux - analog - - - 159 2 5 - total - nu-fission - analog - - - 159 2 5 - total - scatter - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - scatter - tracklength - - - 159 2 5 28 - total - scatter - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - scatter - tracklength - - - 159 2 5 28 - total - scatter - analog - - - 159 2 5 - total - nu-scatter - analog - - - 159 52 - total - nu-fission - analog - - - 159 5 - total - nu-fission - analog - - - 159 52 - total - prompt-nu-fission - analog - - - 159 5 - total - prompt-nu-fission - analog - - - 159 2 - total - flux - tracklength - - - 159 2 - total - inverse-velocity - tracklength - - - 159 2 - total - flux - tracklength - - - 159 2 - total - prompt-nu-fission - tracklength - - - 159 2 - total - flux - analog - - - 159 2 5 - total - prompt-nu-fission - analog - - - 159 2 - total - flux - tracklength - - - 159 65 2 - total - delayed-nu-fission - tracklength - - - 159 65 52 - total - delayed-nu-fission - analog - - - 159 65 5 - total - delayed-nu-fission - analog - - - 159 2 - total - nu-fission - tracklength - - - 159 65 2 - total - delayed-nu-fission - tracklength - - - 159 65 2 - total - delayed-nu-fission - tracklength - - - 159 65 2 - total - decay-rate - tracklength - - - 159 2 - total - flux - analog - - - 159 65 2 5 + 1 69 2 5 total delayed-nu-fission analog diff --git a/tests/regression_tests/mgxs_library_hdf5/results_true.dat b/tests/regression_tests/mgxs_library_hdf5/results_true.dat index 7ef172574..b479c139a 100644 --- a/tests/regression_tests/mgxs_library_hdf5/results_true.dat +++ b/tests/regression_tests/mgxs_library_hdf5/results_true.dat @@ -1,366 +1,212 @@ domain=1 type=total -[4.14825464e-01 6.60169863e-01] -[2.27929104e-02 4.75189000e-02] +[5.38564635e-01 1.45554552e+00] +[2.15102394e-02 1.74671506e-01] domain=1 type=transport -[3.63092031e-01 6.44850709e-01] -[2.38384842e-02 4.76746410e-02] +[3.10133076e-01 1.09725336e+00] +[2.65671384e-02 1.80883943e-01] domain=1 type=nu-transport -[3.63092031e-01 6.44850709e-01] -[2.38384842e-02 4.76746410e-02] +[3.10133076e-01 1.09725336e+00] +[2.65671384e-02 1.80883943e-01] domain=1 type=absorption -[2.74078431e-02 2.64510714e-01] -[2.69249666e-03 2.33670618e-02] +[8.45377250e-03 9.45269817e-02] +[7.33458615e-04 9.19713128e-03] domain=1 type=capture -[1.98445482e-02 7.17193458e-02] -[2.64330389e-03 2.52078411e-02] +[6.06155218e-03 3.99297631e-02] +[7.22875857e-04 7.50886804e-03] domain=1 type=fission -[7.56329484e-03 1.92791369e-01] -[5.08483893e-04 1.71059103e-02] +[2.39222032e-03 5.45972186e-02] +[8.69881114e-05 5.15800900e-03] domain=1 type=nu-fission -[1.94317397e-02 4.69774728e-01] -[1.32297610e-03 4.16819717e-02] +[6.15310797e-03 1.33037043e-01] +[2.31371327e-04 1.25685205e-02] domain=1 type=kappa-fission -[1.47456979e+06 3.72868925e+07] -[9.92353624e+04 3.30837549e+06] +[4.66497048e+05 1.05593971e+07] +[1.70456489e+04 9.97586814e+05] domain=1 type=scatter -[3.87417621e-01 3.95659148e-01] -[2.06257342e-02 2.51250448e-02] +[5.30110862e-01 1.36101853e+00] +[2.09707684e-02 1.66399963e-01] domain=1 type=nu-scatter -[3.85188361e-01 4.12389370e-01] -[2.69456191e-02 1.54252759e-02] +[5.26423506e-01 1.38428396e+00] +[3.53738379e-02 1.81243556e-01] domain=1 type=scatter matrix -[[[3.84199430e-01 5.18702806e-02 2.00688439e-02 9.47771502e-03] - [9.88930322e-04 -2.07234582e-04 -1.03366173e-04 2.34290606e-04]] +[[[5.09394630e-01 2.28431559e-01 8.87144474e-02 9.90358757e-03] + [1.70288754e-02 5.08756263e-03 -1.29619140e-03 -2.29397464e-03]] - [[9.24639842e-04 -7.67704913e-04 4.93788836e-04 -1.71497217e-04] - [4.11464730e-01 1.64817268e-02 6.37149004e-03 -1.04991213e-02]]] -[[[2.70010116e-02 6.98254837e-03 2.84649498e-03 2.23351961e-03] - [4.82419410e-04 1.49010765e-04 1.84316299e-04 1.28173102e-04]] + [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [1.38428396e+00 3.32283490e-01 7.20522379e-02 -1.03495292e-02]]] +[[[3.32592286e-02 1.55923841e-02 8.46899584e-03 3.36789772e-03] + [2.33802794e-03 1.01739476e-03 6.77938532e-04 7.77067821e-04]] - [[9.24883397e-04 7.67907131e-04 4.93918903e-04 1.71542390e-04] - [1.52449343e-02 4.50172764e-03 1.05507486e-02 1.04381870e-02]]] + [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [1.81243556e-01 4.54455205e-02 1.40301767e-02 1.06726205e-02]]] domain=1 type=nu-scatter matrix -[[[3.84199430e-01 5.18702806e-02 2.00688439e-02 9.47771502e-03] - [9.88930322e-04 -2.07234582e-04 -1.03366173e-04 2.34290606e-04]] +[[[5.09394630e-01 2.28431559e-01 8.87144474e-02 9.90358757e-03] + [1.70288754e-02 5.08756263e-03 -1.29619140e-03 -2.29397464e-03]] - [[9.24639842e-04 -7.67704913e-04 4.93788836e-04 -1.71497217e-04] - [4.11464730e-01 1.64817268e-02 6.37149004e-03 -1.04991213e-02]]] -[[[2.70010116e-02 6.98254837e-03 2.84649498e-03 2.23351961e-03] - [4.82419410e-04 1.49010765e-04 1.84316299e-04 1.28173102e-04]] + [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [1.38428396e+00 3.32283490e-01 7.20522379e-02 -1.03495292e-02]]] +[[[3.32592286e-02 1.55923841e-02 8.46899584e-03 3.36789772e-03] + [2.33802794e-03 1.01739476e-03 6.77938532e-04 7.77067821e-04]] - [[9.24883397e-04 7.67907131e-04 4.93918903e-04 1.71542390e-04] - [1.52449343e-02 4.50172764e-03 1.05507486e-02 1.04381870e-02]]] + [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [1.81243556e-01 4.54455205e-02 1.40301767e-02 1.06726205e-02]]] domain=1 type=multiplicity matrix [[1.00000000e+00 1.00000000e+00] - [1.00000000e+00 1.00000000e+00]] -[[7.85164550e-02 6.87184271e-01] - [1.41421356e+00 4.11303488e-02]] + [0.00000000e+00 1.00000000e+00]] +[[7.36409657e-02 1.86006410e-01] + [0.00000000e+00 1.52524077e-01]] domain=1 type=nu-fission matrix -[[2.01424221e-02 0.00000000e+00] - [4.54366342e-01 0.00000000e+00]] -[[3.14909051e-03 0.00000000e+00] - [2.74255160e-02 0.00000000e+00]] +[[6.38661278e-03 0.00000000e+00] + [1.42604897e-01 0.00000000e+00]] +[[1.95163368e-03 0.00000000e+00] + [2.53807844e-02 0.00000000e+00]] domain=1 type=scatter probability matrix -[[9.97432606e-01 2.56739409e-03] - [2.24215247e-03 9.97757848e-01]] -[[7.82243018e-02 1.25560869e-03] - [2.24310192e-03 4.10531468e-02]] +[[9.67651757e-01 3.23482428e-02] + [0.00000000e+00 1.00000000e+00]] +[[7.02365009e-02 4.55825691e-03] + [0.00000000e+00 1.52524077e-01]] domain=1 type=consistent scatter matrix -[[[3.86422967e-01 5.21704775e-02 2.01849914e-02 9.53256688e-03] - [9.94653712e-04 -2.08433942e-04 -1.03964400e-04 2.35646553e-04]] +[[[5.12962708e-01 2.30031618e-01 8.93358517e-02 9.97295769e-03] + [1.71481549e-02 5.12319869e-03 -1.30527063e-03 -2.31004289e-03]] - [[8.87128136e-04 -7.36559899e-04 4.73756321e-04 -1.64539748e-04] - [3.94772020e-01 1.58130798e-02 6.11300510e-03 -1.00731826e-02]]] -[[[3.66286904e-02 7.76748967e-03 3.13767805e-03 2.32683668e-03] - [4.89318749e-04 1.50458419e-04 1.85500930e-04 1.29783343e-04]] + [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [1.36101853e+00 3.26698857e-01 7.08412681e-02 -1.01755864e-02]]] +[[[4.24038637e-02 1.95589805e-02 9.65642635e-03 3.42897188e-03] + [2.50979721e-03 1.05693435e-03 6.85887105e-04 7.91226772e-04]] - [[8.89289900e-04 7.38354757e-04 4.74910776e-04 1.64940700e-04] - [2.98710065e-02 4.44330993e-03 1.01307463e-02 1.00367467e-02]]] + [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [2.66048427e-01 6.51550937e-02 1.72051955e-02 1.05966869e-02]]] domain=1 type=consistent nu-scatter matrix -[[[3.86422967e-01 5.21704775e-02 2.01849914e-02 9.53256688e-03] - [9.94653712e-04 -2.08433942e-04 -1.03964400e-04 2.35646553e-04]] +[[[5.12962708e-01 2.30031618e-01 8.93358517e-02 9.97295769e-03] + [1.71481549e-02 5.12319869e-03 -1.30527063e-03 -2.31004289e-03]] - [[8.87128136e-04 -7.36559899e-04 4.73756321e-04 -1.64539748e-04] - [3.94772020e-01 1.58130798e-02 6.11300510e-03 -1.00731826e-02]]] -[[[4.75627021e-02 8.78140568e-03 3.51522199e-03 2.44425169e-03] - [8.40606499e-04 2.07733706e-04 1.98782933e-04 2.07523215e-04]] + [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [1.36101853e+00 3.26698857e-01 7.08412681e-02 -1.01755864e-02]]] +[[[5.67894665e-02 2.58748694e-02 1.16844724e-02 3.50673899e-03] + [4.05870125e-03 1.42310215e-03 7.27590183e-04 9.00370534e-04]] - [[1.53780011e-03 1.27679627e-03 8.21237084e-04 2.85222881e-04] - [3.39988353e-02 4.49065920e-03 1.01338659e-02 1.00452944e-02]]] + [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] + [3.37453083e-01 8.20253589e-02 2.03166620e-02 1.07097407e-02]]] domain=1 type=chi [1.00000000e+00 0.00000000e+00] -[4.60705491e-02 0.00000000e+00] +[1.21553680e-01 0.00000000e+00] domain=1 type=chi-prompt [1.00000000e+00 0.00000000e+00] -[5.14714842e-02 0.00000000e+00] +[1.15074880e-01 0.00000000e+00] domain=1 type=inverse-velocity -[5.70932437e-08 2.85573948e-06] -[4.68793809e-09 2.44216369e-07] +[5.82407705e-08 2.93916338e-06] +[3.57468034e-09 3.31327050e-07] domain=1 type=prompt-nu-fission -[1.92392209e-02 4.66718979e-01] -[1.30950644e-03 4.14108425e-02] +[6.09158918e-03 1.32171675e-01] +[2.28563531e-04 1.24867659e-02] domain=1 type=prompt-nu-fission matrix -[[2.01424221e-02 0.00000000e+00] - [4.45819054e-01 0.00000000e+00]] -[[3.14909051e-03 0.00000000e+00] - [2.86750876e-02 0.00000000e+00]] +[[6.38661278e-03 0.00000000e+00] + [1.41378615e-01 0.00000000e+00]] +[[1.95163368e-03 0.00000000e+00] + [2.44103846e-02 0.00000000e+00]] +domain=1 type=current +[[[0.00000000e+00 0.00000000e+00 3.85400000e+00 3.80400000e+00 + 0.00000000e+00 0.00000000e+00 3.74600000e+00 3.80200000e+00] + [0.00000000e+00 0.00000000e+00 7.12000000e-01 7.66000000e-01 + 0.00000000e+00 0.00000000e+00 7.78000000e-01 7.42000000e-01]] + + [[3.80400000e+00 3.85400000e+00 0.00000000e+00 0.00000000e+00 + 0.00000000e+00 0.00000000e+00 3.70400000e+00 3.65000000e+00] + [7.66000000e-01 7.12000000e-01 0.00000000e+00 0.00000000e+00 + 0.00000000e+00 0.00000000e+00 7.20000000e-01 7.72000000e-01]] + + [[0.00000000e+00 0.00000000e+00 3.70600000e+00 3.74600000e+00 + 3.80200000e+00 3.74600000e+00 0.00000000e+00 0.00000000e+00] + [0.00000000e+00 0.00000000e+00 7.42000000e-01 7.00000000e-01 + 7.42000000e-01 7.78000000e-01 0.00000000e+00 0.00000000e+00]] + + [[3.74600000e+00 3.70600000e+00 0.00000000e+00 0.00000000e+00 + 3.65000000e+00 3.70400000e+00 0.00000000e+00 0.00000000e+00] + [7.00000000e-01 7.42000000e-01 0.00000000e+00 0.00000000e+00 + 7.72000000e-01 7.20000000e-01 0.00000000e+00 0.00000000e+00]]] +[[[0.00000000e+00 0.00000000e+00 8.57088093e-02 5.04579032e-02 + 0.00000000e+00 0.00000000e+00 1.33551488e-01 1.58789168e-01] + [0.00000000e+00 0.00000000e+00 4.61952378e-02 5.35350353e-02 + 0.00000000e+00 0.00000000e+00 5.23832034e-02 3.81313519e-02]] + + [[5.04579032e-02 8.57088093e-02 0.00000000e+00 0.00000000e+00 + 0.00000000e+00 0.00000000e+00 1.39089899e-01 8.87693641e-02] + [5.35350353e-02 4.61952378e-02 0.00000000e+00 0.00000000e+00 + 0.00000000e+00 0.00000000e+00 4.14728827e-02 4.66261729e-02]] + + [[0.00000000e+00 0.00000000e+00 1.32838248e-01 1.90383823e-01 + 1.58789168e-01 1.33551488e-01 0.00000000e+00 0.00000000e+00] + [0.00000000e+00 0.00000000e+00 2.35372046e-02 2.54950976e-02 + 3.81313519e-02 5.23832034e-02 0.00000000e+00 0.00000000e+00]] + + [[1.90383823e-01 1.32838248e-01 0.00000000e+00 0.00000000e+00 + 8.87693641e-02 1.39089899e-01 0.00000000e+00 0.00000000e+00] + [2.54950976e-02 2.35372046e-02 0.00000000e+00 0.00000000e+00 + 4.66261729e-02 4.14728827e-02 0.00000000e+00 0.00000000e+00]]] domain=1 type=delayed-nu-fission -[[4.31687649e-06 1.06974147e-04] - [2.69760050e-05 5.52167849e-04] - [2.84366794e-05 5.27147626e-04] - [7.42603126e-05 1.18190938e-03] - [4.14908415e-05 4.84567103e-04] - [1.70015984e-05 2.02983424e-04]] -[[2.89748551e-07 9.49155602e-06] - [1.85003750e-06 4.89925096e-05] - [1.97097929e-06 4.67725252e-05] - [5.22610328e-06 1.04867938e-04] - [2.99830754e-06 4.29944540e-05] - [1.22654681e-06 1.80102229e-05]] +[[1.36657452e-06 3.02943589e-05] + [8.57921019e-06 1.56370222e-04] + [9.06240193e-06 1.49284664e-04] + [2.37319215e-05 3.34708794e-04] + [1.33192402e-05 1.37226149e-04] + [5.45629246e-06 5.74835423e-05]] +[[5.09659449e-08 2.86202444e-06] + [3.58145203e-07 1.47728954e-05] + [3.99793526e-07 1.41034954e-05] + [1.12997191e-06 3.16212248e-05] + [7.16321720e-07 1.29642809e-05] + [2.91301483e-07 5.43069083e-06]] domain=1 type=chi-delayed [[0.00000000e+00 0.00000000e+00] - [1.00000000e+00 0.00000000e+00] - [1.00000000e+00 0.00000000e+00] + [0.00000000e+00 0.00000000e+00] + [0.00000000e+00 0.00000000e+00] [1.00000000e+00 0.00000000e+00] [0.00000000e+00 0.00000000e+00] [0.00000000e+00 0.00000000e+00]] [[0.00000000e+00 0.00000000e+00] - [8.69127748e-01 0.00000000e+00] + [0.00000000e+00 0.00000000e+00] + [0.00000000e+00 0.00000000e+00] [1.41421356e+00 0.00000000e+00] - [3.60359016e-01 0.00000000e+00] [0.00000000e+00 0.00000000e+00] [0.00000000e+00 0.00000000e+00]] domain=1 type=beta -[[2.22155945e-04 2.27713711e-04] - [1.38824446e-03 1.17538858e-03] - [1.46341397e-03 1.12212853e-03] - [3.82159878e-03 2.51590670e-03] - [2.13520982e-03 1.03148823e-03] - [8.74939592e-04 4.32086725e-04]] -[[1.80847601e-05 2.46946655e-05] - [1.14688936e-04 1.27466313e-04] - [1.21787671e-04 1.21690467e-04] - [3.21434951e-04 2.72840272e-04] - [1.82980530e-04 1.11860871e-04] - [7.48900063e-05 4.68581181e-05]] +[[2.22095001e-04 2.27713713e-04] + [1.39428891e-03 1.17538859e-03] + [1.47281699e-03 1.12212855e-03] + [3.85689990e-03 2.51590676e-03] + [2.16463619e-03 1.03148827e-03] + [8.86753895e-04 4.32086742e-04]] +[[9.07215649e-06 1.93631017e-05] + [6.26713584e-05 9.99464126e-05] + [6.94548765e-05 9.54175694e-05] + [1.94563984e-04 2.13934228e-04] + [1.21876271e-04 8.77101834e-05] + [4.95946084e-05 3.67414816e-05]] domain=1 type=decay-rate -[[1.34450193e-02 1.33360001e-02] - [3.20638663e-02 3.27389978e-02] - [1.22136025e-01 1.20780007e-01] - [3.15269336e-01 3.02780066e-01] - [8.89232587e-01 8.49490287e-01] - [2.98940409e+00 2.85300088e+00]] -[[1.08439455e-03 1.44623725e-03] - [2.65795038e-03 3.55041661e-03] - [1.02955036e-02 1.30981202e-02] - [2.71748571e-02 3.28353145e-02] - [7.93682889e-02 9.21238900e-02] - [2.66253283e-01 3.09396760e-01]] +[[1.34479215e-02 1.33360001e-02] + [3.20491028e-02 3.27389978e-02] + [1.22162808e-01 1.20780007e-01] + [3.15480592e-01 3.02780066e-01] + [8.89723658e-01 8.49490289e-01] + [2.99112795e+00 2.85300089e+00]] +[[5.47700122e-04 1.13399549e-03] + [1.53954980e-03 2.78388383e-03] + [6.44048392e-03 1.02702443e-02] + [1.86178714e-02 2.57461915e-02] + [6.12200714e-02 7.22344077e-02] + [2.04036637e-01 2.42598218e-01]] domain=1 type=delayed-nu-fission matrix [[[0.00000000e+00 0.00000000e+00] [0.00000000e+00 0.00000000e+00]] [[0.00000000e+00 0.00000000e+00] - [2.53814444e-03 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [1.18579136e-03 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [4.82335163e-03 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]]] -[[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [1.56094521e-03 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [1.18610370e-03 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [1.23402593e-03 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]]] -domain=2 type=total -[3.13737667e-01 3.00821380e-01] -[1.55819228e-02 2.80524816e-02] -domain=2 type=transport -[2.75508079e-01 3.12035015e-01] -[1.77418859e-02 3.23843473e-02] -domain=2 type=nu-transport -[2.75508079e-01 3.12035015e-01] -[1.77418859e-02 3.23843473e-02] -domain=2 type=absorption -[1.57499139e-03 5.40037825e-03] -[3.22547917e-04 6.18139027e-04] -domain=2 type=capture -[1.57499139e-03 5.40037825e-03] -[3.22547917e-04 6.18139027e-04] -domain=2 type=fission -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=2 type=nu-fission -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=2 type=kappa-fission -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=2 type=scatter -[3.12162675e-01 2.95421002e-01] -[1.53219435e-02 2.74455213e-02] -domain=2 type=nu-scatter -[3.10120713e-01 2.96264249e-01] -[3.37881037e-02 4.37922226e-02] -domain=2 type=scatter matrix -[[[3.10120713e-01 3.82295876e-02 2.07449405e-02 7.96429620e-03] - [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [2.96264249e-01 -1.12136353e-02 8.83656566e-03 -3.27006707e-03]]] -[[[3.37881037e-02 8.48399649e-03 4.69561034e-03 3.73162234e-03] - [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [4.37922226e-02 1.61803653e-02 1.15039636e-02 7.32884528e-03]]] -domain=2 type=nu-scatter matrix -[[[3.10120713e-01 3.82295876e-02 2.07449405e-02 7.96429620e-03] - [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [2.96264249e-01 -1.12136353e-02 8.83656566e-03 -3.27006707e-03]]] -[[[3.37881037e-02 8.48399649e-03 4.69561034e-03 3.73162234e-03] - [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [4.37922226e-02 1.61803653e-02 1.15039636e-02 7.32884528e-03]]] -domain=2 type=multiplicity matrix -[[1.00000000e+00 0.00000000e+00] - [0.00000000e+00 1.00000000e+00]] -[[1.08778697e-01 0.00000000e+00] - [0.00000000e+00 1.42427173e-01]] -domain=2 type=nu-fission matrix -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=2 type=scatter probability matrix -[[1.00000000e+00 0.00000000e+00] - [0.00000000e+00 1.00000000e+00]] -[[1.08778697e-01 0.00000000e+00] - [0.00000000e+00 1.42427173e-01]] -domain=2 type=consistent scatter matrix -[[[3.12162675e-01 3.84813069e-02 2.08815337e-02 8.01673640e-03] - [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [2.95421002e-01 -1.11817183e-02 8.81141444e-03 -3.26075959e-03]]] -[[[3.72534020e-02 8.74305414e-03 4.83468236e-03 3.77642683e-03] - [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [5.02358893e-02 1.61616720e-02 1.14951123e-02 7.31312479e-03]]] -domain=2 type=consistent nu-scatter matrix -[[[3.12162675e-01 3.84813069e-02 2.08815337e-02 8.01673640e-03] - [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [2.95421002e-01 -1.11817183e-02 8.81141444e-03 -3.26075959e-03]]] -[[[5.04070429e-02 9.69345878e-03 5.34169556e-03 3.87580585e-03] - [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [6.55288678e-02 1.62399493e-02 1.15634161e-02 7.32785650e-03]]] -domain=2 type=chi -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=2 type=chi-prompt -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=2 type=inverse-velocity -[5.99597928e-08 2.98549016e-06] -[4.55308451e-09 3.41701982e-07] -domain=2 type=prompt-nu-fission -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=2 type=prompt-nu-fission matrix -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=2 type=delayed-nu-fission -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=2 type=chi-delayed -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=2 type=beta -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=2 type=decay-rate -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=2 type=delayed-nu-fission matrix -[[[0.00000000e+00 0.00000000e+00] [0.00000000e+00 0.00000000e+00]] [[0.00000000e+00 0.00000000e+00] [0.00000000e+00 0.00000000e+00]] [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] + [1.22628106e-03 0.00000000e+00]] [[0.00000000e+00 0.00000000e+00] [0.00000000e+00 0.00000000e+00]] @@ -377,200 +223,7 @@ domain=2 type=delayed-nu-fission matrix [0.00000000e+00 0.00000000e+00]] [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]]] -domain=3 type=total -[6.64572194e-01 2.05238389e+00] -[3.12147473e-02 2.24342890e-01] -domain=3 type=transport -[2.83322749e-01 1.49973953e+00] -[3.52061127e-02 2.30902118e-01] -domain=3 type=nu-transport -[2.83322749e-01 1.49973953e+00] -[3.52061127e-02 2.30902118e-01] -domain=3 type=absorption -[6.90399488e-04 3.16872537e-02] -[4.41475703e-05 3.74655812e-03] -domain=3 type=capture -[6.90399488e-04 3.16872537e-02] -[4.41475703e-05 3.74655812e-03] -domain=3 type=fission -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=3 type=nu-fission -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=3 type=kappa-fission -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=3 type=scatter -[6.63881795e-01 2.02069663e+00] -[3.11726794e-02 2.20604438e-01] -domain=3 type=nu-scatter -[6.71269157e-01 2.03538818e+00] -[2.61863693e-02 2.58060310e-01] -domain=3 type=scatter matrix -[[[6.39901439e-01 3.81167422e-01 1.52391887e-01 9.14802163e-03] - [3.13677176e-02 8.75772258e-03 -2.56790088e-03 -3.78480261e-03]] - - [[4.43343102e-04 3.99960385e-04 3.19562684e-04 2.13846954e-04] - [2.03494484e+00 5.09940476e-01 1.11174601e-01 2.49884339e-02]]] -[[[2.47091210e-02 1.62432637e-02 8.15627711e-03 3.88856186e-03] - [1.72811278e-03 9.25670435e-04 1.01398468e-03 8.17075512e-04]] - - [[4.44850361e-04 4.01320154e-04 3.20649120e-04 2.14573982e-04] - [2.57799870e-01 5.12359026e-02 1.30198161e-02 8.31235196e-03]]] -domain=3 type=nu-scatter matrix -[[[6.39901439e-01 3.81167422e-01 1.52391887e-01 9.14802163e-03] - [3.13677176e-02 8.75772258e-03 -2.56790088e-03 -3.78480261e-03]] - - [[4.43343102e-04 3.99960385e-04 3.19562684e-04 2.13846954e-04] - [2.03494484e+00 5.09940476e-01 1.11174601e-01 2.49884339e-02]]] -[[[2.47091210e-02 1.62432637e-02 8.15627711e-03 3.88856186e-03] - [1.72811278e-03 9.25670435e-04 1.01398468e-03 8.17075512e-04]] - - [[4.44850361e-04 4.01320154e-04 3.20649120e-04 2.14573982e-04] - [2.57799870e-01 5.12359026e-02 1.30198161e-02 8.31235196e-03]]] -domain=3 type=multiplicity matrix -[[1.00000000e+00 1.00000000e+00] - [1.00000000e+00 1.00000000e+00]] -[[3.86091908e-02 6.76673480e-02] - [1.41421356e+00 1.35929207e-01]] -domain=3 type=nu-fission matrix -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=3 type=scatter probability matrix -[[9.53271028e-01 4.67289720e-02] - [2.17817469e-04 9.99782183e-01]] -[[3.60184962e-02 2.54736726e-03] - [2.18820864e-04 1.35884974e-01]] -domain=3 type=consistent scatter matrix -[[[6.32859281e-01 3.76972649e-01 1.50714804e-01 9.04734705e-03] - [3.10225138e-02 8.66134326e-03 -2.53964096e-03 -3.74315061e-03]] - - [[4.40143026e-04 3.97073448e-04 3.17256062e-04 2.12303394e-04] - [2.02025649e+00 5.06259696e-01 1.10372136e-01 2.48080660e-02]]] -[[[3.81421848e-02 2.37145043e-02 1.06635009e-02 3.86848985e-03] - [2.23201039e-03 9.99377011e-04 1.00968851e-03 8.26439590e-04]] - - [[4.44773843e-04 4.01251123e-04 3.20593966e-04 2.14537073e-04] - [3.52193929e-01 7.91402819e-02 1.84875925e-02 8.77085752e-03]]] -domain=3 type=consistent nu-scatter matrix -[[[6.32859281e-01 3.76972649e-01 1.50714804e-01 9.04734705e-03] - [3.10225138e-02 8.66134326e-03 -2.53964096e-03 -3.74315061e-03]] - - [[4.40143026e-04 3.97073448e-04 3.17256062e-04 2.12303394e-04] - [2.02025649e+00 5.06259696e-01 1.10372136e-01 2.48080660e-02]]] -[[[4.52974133e-02 2.78247077e-02 1.21478698e-02 3.88422859e-03] - [3.06407542e-03 1.15855774e-03 1.02420876e-03 8.64382873e-04]] - - [[7.65033031e-04 6.90171798e-04 5.51437493e-04 3.69014387e-04] - [4.46600759e-01 1.04874946e-01 2.38091367e-02 9.39676938e-03]]] -domain=3 type=chi -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=3 type=chi-prompt -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=3 type=inverse-velocity -[6.02207835e-08 3.04495548e-06] -[3.78043705e-09 3.60007679e-07] -domain=3 type=prompt-nu-fission -[0.00000000e+00 0.00000000e+00] -[0.00000000e+00 0.00000000e+00] -domain=3 type=prompt-nu-fission matrix -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=3 type=delayed-nu-fission -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=3 type=chi-delayed -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=3 type=beta -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=3 type=decay-rate -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] -domain=3 type=delayed-nu-fission matrix -[[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]]] -[[[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] - - [[0.00000000e+00 0.00000000e+00] - [0.00000000e+00 0.00000000e+00]] + [1.22965527e-03 0.00000000e+00]] [[0.00000000e+00 0.00000000e+00] [0.00000000e+00 0.00000000e+00]] diff --git a/tests/regression_tests/mgxs_library_hdf5/test.py b/tests/regression_tests/mgxs_library_hdf5/test.py index 37d30516f..418cdcc83 100644 --- a/tests/regression_tests/mgxs_library_hdf5/test.py +++ b/tests/regression_tests/mgxs_library_hdf5/test.py @@ -23,12 +23,20 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.by_nuclide = False # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES[:-1] + \ + self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES + \ openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.num_delayed_groups = 6 self.mgxs_lib.legendre_order = 3 - self.mgxs_lib.domain_type = 'material' + self.mgxs_lib.domain_type = 'mesh' + + # Instantiate a tally mesh + mesh = openmc.RegularMesh(mesh_id=1) + mesh.dimension = [2, 2] + mesh.lower_left = [-100., -100.] + mesh.width = [100., 100.] + + self.mgxs_lib.domains = [mesh] self.mgxs_lib.build_library() # Add tallies @@ -54,8 +62,8 @@ class MGXSTestHarness(PyAPITestHarness): for domain in self.mgxs_lib.domains: for mgxs_type in self.mgxs_lib.mgxs_types: outstr += 'domain={0} type={1}\n'.format(domain.id, mgxs_type) - avg_key = 'material/{0}/{1}/average'.format(domain.id, mgxs_type) - std_key = 'material/{0}/{1}/std. dev.'.format(domain.id, mgxs_type) + avg_key = 'mesh/{0}/{1}/average'.format(domain.id, mgxs_type) + std_key = 'mesh/{0}/{1}/std. dev.'.format(domain.id, mgxs_type) outstr += '{}\n{}\n'.format(f[avg_key][...], f[std_key][...]) # Hash the results if necessary From 8def35f300e8187a7b56fbbe583d32ea57d687c4 Mon Sep 17 00:00:00 2001 From: Miriam Date: Fri, 7 Aug 2020 20:05:27 +0000 Subject: [PATCH 050/122] Made explicit loop to exclude current from certain mgxs tests Previously used MGXS_TYPES[:-1] but to be explicit, I instead looped over all MGXS_TYPES and excluded current. These tests cannot run with current because: -distribcell is not a valid domain for current -nuclide/no_nuclides option is not relevant for current --- tests/regression_tests/mgxs_library_distribcell/test.py | 8 ++++++-- tests/regression_tests/mgxs_library_no_nuclides/test.py | 8 ++++++-- tests/regression_tests/mgxs_library_nuclides/test.py | 9 +++++++-- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/tests/regression_tests/mgxs_library_distribcell/test.py b/tests/regression_tests/mgxs_library_distribcell/test.py index d6e0a6de0..a4fd63f27 100644 --- a/tests/regression_tests/mgxs_library_distribcell/test.py +++ b/tests/regression_tests/mgxs_library_distribcell/test.py @@ -22,8 +22,12 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib = openmc.mgxs.Library(self._model.geometry) self.mgxs_lib.by_nuclide = False - # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES[:-1] + \ + # Test all relevant MGXS types + relevant_MGXS_TYPES = [] + for item in openmc.mgxs.MGXS_TYPES: + if item != 'current': + relevant_MGXS_TYPES = relevant_MGXS_TYPES + [item] + self.mgxs_lib.mgxs_types = tuple(relevant_MGXS_TYPES) + \ openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.num_delayed_groups = 6 diff --git a/tests/regression_tests/mgxs_library_no_nuclides/test.py b/tests/regression_tests/mgxs_library_no_nuclides/test.py index 65b24d78f..d06c5954c 100644 --- a/tests/regression_tests/mgxs_library_no_nuclides/test.py +++ b/tests/regression_tests/mgxs_library_no_nuclides/test.py @@ -19,8 +19,12 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib = openmc.mgxs.Library(self._model.geometry) self.mgxs_lib.by_nuclide = False - # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES[:-1] + \ + # Test all relevant MGXS types + relevant_MGXS_TYPES = [] + for item in openmc.mgxs.MGXS_TYPES: + if item != 'current': + relevant_MGXS_TYPES = relevant_MGXS_TYPES + [item] + self.mgxs_lib.mgxs_types = tuple(relevant_MGXS_TYPES) + \ openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.num_delayed_groups = 6 diff --git a/tests/regression_tests/mgxs_library_nuclides/test.py b/tests/regression_tests/mgxs_library_nuclides/test.py index 521373eb7..a08cb826d 100644 --- a/tests/regression_tests/mgxs_library_nuclides/test.py +++ b/tests/regression_tests/mgxs_library_nuclides/test.py @@ -17,8 +17,13 @@ class MGXSTestHarness(PyAPITestHarness): # Initialize MGXS Library for a few cross section types self.mgxs_lib = openmc.mgxs.Library(self._model.geometry) self.mgxs_lib.by_nuclide = True - # Test all MGXS types - self.mgxs_lib.mgxs_types = openmc.mgxs.MGXS_TYPES[:-1] + + # Test relevant all MGXS types + relevant_MGXS_TYPES = [] + for item in openmc.mgxs.MGXS_TYPES: + if item != 'current': + relevant_MGXS_TYPES = relevant_MGXS_TYPES + [item] + self.mgxs_lib.mgxs_types = tuple(relevant_MGXS_TYPES) self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 self.mgxs_lib.domain_type = 'material' From 404b1aa688fd7d9f7dee11a217d7acc643545081 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 12 Aug 2020 09:39:40 -0500 Subject: [PATCH 051/122] Update recognized thermal scattering names for JEFF 3.3 --- openmc/data/thermal.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index b940994e0..e9e503fbe 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -29,14 +29,14 @@ from .thermal_angle_energy import (CoherentElasticAE, IncoherentElasticAE, _THERMAL_NAMES = { 'c_Al27': ('al', 'al27', 'al-27'), - 'c_Al_in_Sapphire': ('asap00',), + 'c_Al_in_Sapphire': ('asap00', 'asap'), 'c_Be': ('be', 'be-metal', 'be-met', 'be00'), 'c_BeO': ('beo',), 'c_Be_in_BeO': ('bebeo', 'be-beo', 'be-o', 'be/o', 'bbeo00'), 'c_Be_in_Be2C': ('bebe2c',), 'c_C6H6': ('benz', 'c6h6'), 'c_C_in_SiC': ('csic', 'c-sic'), - 'c_Ca_in_CaH2': ('cah', 'cah00'), + 'c_Ca_in_CaH2': ('cah', 'cah00', 'cacah2'), 'c_D_in_D2O': ('dd2o', 'd-d2o', 'hwtr', 'hw', 'dhw00'), 'c_D_in_D2O_ice': ('dice',), 'c_Fe56': ('fe', 'fe56', 'fe-56'), @@ -51,20 +51,20 @@ _THERMAL_NAMES = { 'c_H_in_H2O': ('hh2o', 'h-h2o', 'lwtr', 'lw', 'lw00'), 'c_H_in_H2O_solid': ('hice', 'h-ice', 'ice00'), 'c_H_in_C5O2H8': ('lucite', 'c5o2h8', 'h-luci'), - 'c_H_in_Mesitylene': ('mesi00',), - 'c_H_in_Toluene': ('tol00',), + 'c_H_in_Mesitylene': ('mesi00', 'mesi'), + 'c_H_in_Toluene': ('tol00', 'tol'), 'c_H_in_YH2': ('hyh2', 'h-yh2'), 'c_H_in_ZrH': ('hzrh', 'h-zrh', 'h-zr', 'h/zr', 'hzr', 'hzr00'), 'c_Mg24': ('mg', 'mg24', 'mg00'), - 'c_O_in_Sapphire': ('osap00',), + 'c_O_in_Sapphire': ('osap00', 'osap'), 'c_O_in_BeO': ('obeo', 'o-beo', 'o-be', 'o/be', 'obeo00'), 'c_O_in_D2O': ('od2o', 'o-d2o', 'ohw00'), 'c_O_in_H2O_ice': ('oice', 'o-ice'), 'c_O_in_UO2': ('ouo2', 'o-uo2', 'o2-u', 'o2/u', 'ouo200'), 'c_N_in_UN': ('n-un',), - 'c_ortho_D': ('orthod', 'orthoD', 'dortho', 'od200'), - 'c_ortho_H': ('orthoh', 'orthoH', 'hortho', 'oh200'), - 'c_Si28': ('si00',), + 'c_ortho_D': ('orthod', 'orthoD', 'dortho', 'od200', 'ortod'), + 'c_ortho_H': ('orthoh', 'orthoH', 'hortho', 'oh200', 'ortoh'), + 'c_Si28': ('si00', 'sili'), 'c_Si_in_SiC': ('sisic', 'si-sic'), 'c_SiO2_alpha': ('sio2', 'sio2a'), 'c_SiO2_beta': ('sio2b',), From c0c2f1ccb712790a267fa55fd59bec54060b5683 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 12 Aug 2020 10:03:52 -0500 Subject: [PATCH 052/122] Add check for inconsistent URR inelastic flag --- src/nuclide.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/nuclide.cpp b/src/nuclide.cpp index 59c631167..d388ed4ab 100644 --- a/src/nuclide.cpp +++ b/src/nuclide.cpp @@ -237,6 +237,16 @@ Nuclide::Nuclide(hid_t group, const std::vector& temperature) // section should be determined from a normal reaction cross section, we // need to get the index of the reaction. if (temps_to_read.size() > 0) { + // Make sure inelastic flags are consistent for different temperatures + for (int i = 0; i < urr_data_.size() - 1; ++i) { + if (urr_data_[i].inelastic_flag_ != urr_data_[i+1].inelastic_flag_) { + fatal_error(fmt::format("URR inelastic flag is not consistent for " + "multiple temperatures in nuclide {}. This most likely indicates " + "a problem in how the data was processed.", name_)); + } + } + + if (urr_data_[0].inelastic_flag_ > 0) { for (int i = 0; i < reactions_.size(); i++) { if (reactions_[i]->mt_ == urr_data_[0].inelastic_flag_) { From 6d90853d0ba6c6fd27eb0af13337dec408d91f1e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 14 Aug 2020 15:04:45 -0500 Subject: [PATCH 053/122] Add function for getting naturally-occurring isotopes --- docs/source/pythonapi/data.rst | 2 ++ openmc/data/data.py | 48 +++++++++++++++++++++++++----- openmc/data/thermal.py | 9 +++--- openmc/element.py | 8 ++--- tests/unit_tests/test_data_misc.py | 12 ++++++++ 5 files changed, 61 insertions(+), 18 deletions(-) diff --git a/docs/source/pythonapi/data.rst b/docs/source/pythonapi/data.rst index 9631f055f..95fdfeca9 100644 --- a/docs/source/pythonapi/data.rst +++ b/docs/source/pythonapi/data.rst @@ -60,8 +60,10 @@ Core Functions :template: myfunction.rst atomic_mass + atomic_weight dose_coefficients gnd_name + isotopes linearize thin water_density diff --git a/openmc/data/data.py b/openmc/data/data.py index 4a3ebbf32..db9972afe 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -236,10 +236,8 @@ def atomic_mass(isotope): for element in ['C', 'Zn', 'Pt', 'Os', 'Tl']: isotope_zero = element.lower() + '0' _ATOMIC_MASS[isotope_zero] = 0. - for iso, abundance in NATURAL_ABUNDANCE.items(): - if re.match(r'{}\d+'.format(element), iso): - _ATOMIC_MASS[isotope_zero] += abundance * \ - _ATOMIC_MASS[iso.lower()] + for iso, abundance in isotopes(element): + _ATOMIC_MASS[isotope_zero] += abundance * _ATOMIC_MASS[iso.lower()] # Get rid of metastable information if '_' in isotope: @@ -257,7 +255,7 @@ def atomic_weight(element): Parameters ---------- element : str - Name of element, e.g. 'H', 'U' + Element symbol (e.g., 'H') or name (e.g., 'helium') Returns ------- @@ -266,9 +264,8 @@ def atomic_weight(element): """ weight = 0. - for nuclide, abundance in NATURAL_ABUNDANCE.items(): - if re.match(r'{}\d+'.format(element), nuclide): - weight += atomic_mass(nuclide) * abundance + for nuclide, abundance in isotopes(element): + weight += atomic_mass(nuclide) * abundance if weight > 0.: return weight else: @@ -404,6 +401,41 @@ def gnd_name(Z, A, m=0): return '{}{}'.format(ATOMIC_SYMBOL[Z], A) +def isotopes(element): + """Return naturally-occurring isotopes and their abundances + + Parameters + ---------- + element : str + Element symbol (e.g., 'H') or name (e.g., 'helium') + + Returns + ------- + list + A list of tuples of (isotope, abundance) + + Raises + ------ + ValueError + If the element name is not recognized + + """ + # Convert name to symbol if needed + if len(element) > 2: + symbol = ELEMENT_SYMBOL.get(element.lower()) + if symbol is None: + raise ValueError('Element name "{}" not recognised'.format(element)) + element = symbol + + # Get the nuclides present in nature + result = [] + for kv in sorted(NATURAL_ABUNDANCE.items()): + if re.match(r'{}\d+'.format(element), kv[0]): + result.append(kv) + + return result + + def zam(name): """Return tuple of (atomic number, mass number, metastable state) diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index b940994e0..9c30634d0 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -16,7 +16,7 @@ import openmc.checkvalue as cv from openmc.mixin import EqualityMixin from openmc.stats import Discrete, Tabular from . import HDF5_VERSION, HDF5_VERSION_MAJOR, endf -from .data import K_BOLTZMANN, ATOMIC_SYMBOL, EV_PER_MEV, NATURAL_ABUNDANCE +from .data import K_BOLTZMANN, ATOMIC_SYMBOL, EV_PER_MEV, isotopes from .ace import Table, get_table, Library from .angle_energy import AngleEnergy from .function import Tabulated1D, Function1D @@ -722,10 +722,9 @@ class ThermalScattering(EqualityMixin): else: if element + '0' not in table.nuclides: table.nuclides.append(element + '0') - for isotope in sorted(NATURAL_ABUNDANCE): - if re.match(r'{}\d+'.format(element), isotope): - if isotope not in table.nuclides: - table.nuclides.append(isotope) + for isotope, _ in isotopes(element): + if isotope not in table.nuclides: + table.nuclides.append(isotope) return table diff --git a/openmc/element.py b/openmc/element.py index 1a258715f..6a808df62 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -4,7 +4,8 @@ import re from xml.etree import ElementTree as ET import openmc.checkvalue as cv -from openmc.data import NATURAL_ABUNDANCE, atomic_mass +from openmc.data import NATURAL_ABUNDANCE, atomic_mass, \ + isotopes as natural_isotopes class Element(str): @@ -119,10 +120,7 @@ class Element(str): cv.check_greater_than('enrichment', enrichment, 0., equality=True) # Get the nuclides present in nature - natural_nuclides = set() - for nuclide in sorted(NATURAL_ABUNDANCE.keys()): - if re.match(r'{}\d+'.format(self), nuclide): - natural_nuclides.add(nuclide) + natural_nuclides = {name for name, abundance in natural_isotopes(self)} # Create dict to store the expanded nuclides and abundances abundances = OrderedDict() diff --git a/tests/unit_tests/test_data_misc.py b/tests/unit_tests/test_data_misc.py index 8244ca7f0..6a81fb1e0 100644 --- a/tests/unit_tests/test_data_misc.py +++ b/tests/unit_tests/test_data_misc.py @@ -84,6 +84,7 @@ def test_atomic_mass(): def test_atomic_weight(): assert openmc.data.atomic_weight('C') == 12.011115164864455 + assert openmc.data.atomic_weight('carbon') == 12.011115164864455 with pytest.raises(ValueError): openmc.data.atomic_weight('Qt') @@ -106,6 +107,17 @@ def test_gnd_name(): assert openmc.data.gnd_name(95, 242, 10) == ('Am242_m10') +def test_isotopes(): + hydrogen_isotopes = [('H1', 0.99984426), ('H2', 0.00015574)] + assert openmc.data.isotopes('H') == hydrogen_isotopes + assert openmc.data.isotopes('hydrogen') == hydrogen_isotopes + assert openmc.data.isotopes('Al') == [('Al27', 1.0)] + assert openmc.data.isotopes('Aluminum') == [('Al27', 1.0)] + assert openmc.data.isotopes('aluminium') == [('Al27', 1.0)] + with pytest.raises(ValueError): + openmc.data.isotopes('Чорнобиль') + + def test_zam(): assert openmc.data.zam('H1') == (1, 1, 0) assert openmc.data.zam('Zr90') == (40, 90, 0) From e7b7c402fc6d940349efbdb0cc2fbac216cdada1 Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Sat, 15 Aug 2020 06:53:12 +0100 Subject: [PATCH 054/122] Add files via upload --- examples/jupyter/pincell.ipynb | 425 ++++++++++++++++----------------- 1 file changed, 212 insertions(+), 213 deletions(-) diff --git a/examples/jupyter/pincell.ipynb b/examples/jupyter/pincell.ipynb index 7d0f4e65a..06ac8dc58 100644 --- a/examples/jupyter/pincell.ipynb +++ b/examples/jupyter/pincell.ipynb @@ -173,7 +173,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/sam/openmc/openmc/openmc/mixin.py:71: IDWarning: Another Material instance already exists with id=2.\n", + "/home/master/anaconda3/envs/OMC/lib/python3.8/site-packages/openmc/mixin.py:68: IDWarning: Another Material instance already exists with id=2.\n", " warn(msg, IDWarning)\n" ] } @@ -218,7 +218,7 @@ "metadata": {}, "outputs": [], "source": [ - "mats = openmc.Materials([uo2, zirconium, water])" + "materials = openmc.Materials([uo2, zirconium, water])" ] }, { @@ -245,10 +245,10 @@ } ], "source": [ - "mats = openmc.Materials()\n", - "mats.append(uo2)\n", - "mats += [zirconium, water]\n", - "isinstance(mats, list)" + "materials = openmc.Materials()\n", + "materials.append(uo2)\n", + "materials += [zirconium, water]\n", + "isinstance(materials, list)" ] }, { @@ -294,7 +294,7 @@ } ], "source": [ - "mats.export_to_xml()\n", + "materials.export_to_xml()\n", "!cat materials.xml" ] }, @@ -353,7 +353,7 @@ "water.remove_nuclide('O16')\n", "water.add_element('O', 1.0)\n", "\n", - "mats.export_to_xml()\n", + "materials.export_to_xml()\n", "!cat materials.xml" ] }, @@ -386,14 +386,14 @@ "text": [ "\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " ...\n", " \n", " \n", @@ -493,7 +493,7 @@ "metadata": {}, "outputs": [], "source": [ - "sph = openmc.Sphere(r=1.0)" + "sphere = openmc.Sphere(r=1.0)" ] }, { @@ -511,8 +511,8 @@ "metadata": {}, "outputs": [], "source": [ - "inside_sphere = -sph\n", - "outside_sphere = +sph" + "inside_sphere = -sphere\n", + "outside_sphere = +sphere" ] }, { @@ -555,7 +555,7 @@ "outputs": [], "source": [ "z_plane = openmc.ZPlane(z0=0)\n", - "northern_hemisphere = -sph & +z_plane" + "northern_hemisphere = -sphere & +z_plane" ] }, { @@ -663,7 +663,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -672,7 +672,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -702,7 +702,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 25, @@ -711,7 +711,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -741,7 +741,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 26, @@ -750,7 +750,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -787,9 +787,9 @@ "metadata": {}, "outputs": [], "source": [ - "fuel_or = openmc.ZCylinder(r=0.39)\n", - "clad_ir = openmc.ZCylinder(r=0.40)\n", - "clad_or = openmc.ZCylinder(r=0.46)" + "fuel_outer_radius = openmc.ZCylinder(r=0.39)\n", + "clad_inner_radius = openmc.ZCylinder(r=0.40)\n", + "clad_outer_radius = openmc.ZCylinder(r=0.46)" ] }, { @@ -805,9 +805,9 @@ "metadata": {}, "outputs": [], "source": [ - "fuel_region = -fuel_or\n", - "gap_region = +fuel_or & -clad_ir\n", - "clad_region = +clad_ir & -clad_or" + "fuel_region = -fuel_outer_radius\n", + "gap_region = +fuel_outer_radius & -clad_inner_radius\n", + "clad_region = +clad_inner_radius & -clad_outer_radius" ] }, { @@ -826,9 +826,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/sam/openmc/openmc/openmc/mixin.py:71: IDWarning: Another Cell instance already exists with id=1.\n", + "/home/master/anaconda3/envs/OMC/lib/python3.8/site-packages/openmc/mixin.py:68: IDWarning: Another Cell instance already exists with id=1.\n", " warn(msg, IDWarning)\n", - "/home/sam/openmc/openmc/openmc/mixin.py:71: IDWarning: Another Cell instance already exists with id=2.\n", + "/home/master/anaconda3/envs/OMC/lib/python3.8/site-packages/openmc/mixin.py:68: IDWarning: Another Cell instance already exists with id=2.\n", " warn(msg, IDWarning)\n" ] } @@ -879,7 +879,7 @@ "metadata": {}, "outputs": [], "source": [ - "water_region = +left & -right & +bottom & -top & +clad_or\n", + "water_region = +left & -right & +bottom & -top & +clad_outer_radius\n", "\n", "moderator = openmc.Cell(4, 'moderator')\n", "moderator.fill = water\n", @@ -928,7 +928,7 @@ "metadata": {}, "outputs": [], "source": [ - "water_region = box & +clad_or" + "water_region = box & +clad_outer_radius" ] }, { @@ -965,14 +965,14 @@ } ], "source": [ - "root = openmc.Universe(cells=(fuel, gap, clad, moderator))\n", + "root_universe = openmc.Universe(cells=(fuel, gap, clad, moderator))\n", "\n", - "geom = openmc.Geometry()\n", - "geom.root_universe = root\n", + "geometry = openmc.Geometry()\n", + "geometry.root_universe = root_universe\n", "\n", "# or...\n", - "geom = openmc.Geometry(root)\n", - "geom.export_to_xml()\n", + "geometry = openmc.Geometry(root_universe)\n", + "geometry.export_to_xml()\n", "!cat geometry.xml" ] }, @@ -991,8 +991,9 @@ "metadata": {}, "outputs": [], "source": [ + "# Create a point source\n", "point = openmc.stats.Point((0, 0, 0))\n", - "src = openmc.Source(space=point)" + "source = openmc.Source(space=point)" ] }, { @@ -1008,11 +1009,16 @@ "metadata": {}, "outputs": [], "source": [ + "# OpenMC simulation parameters\n", + "batches = 100\n", + "inactive = 10\n", + "particles = 1000\n", + "\n", + "# Instantiate a Settings object\n", "settings = openmc.Settings()\n", - "settings.source = src\n", - "settings.batches = 100\n", - "settings.inactive = 10\n", - "settings.particles = 1000" + "settings.batches = batches\n", + "settings.inactive = inactive\n", + "settings.particles = particles" ] }, { @@ -1030,11 +1036,6 @@ " 1000\r\n", " 100\r\n", " 10\r\n", - " \r\n", - " \r\n", - " 0 0 0\r\n", - " \r\n", - " \r\n", "\r\n" ] } @@ -1065,8 +1066,8 @@ "source": [ "cell_filter = openmc.CellFilter(fuel)\n", "\n", - "t = openmc.Tally(1)\n", - "t.filters = [cell_filter]" + "tally = openmc.Tally(1)\n", + "tally.filters = [cell_filter]" ] }, { @@ -1082,8 +1083,8 @@ "metadata": {}, "outputs": [], "source": [ - "t.nuclides = ['U235']\n", - "t.scores = ['total', 'fission', 'absorption', '(n,gamma)']" + "tally.nuclides = ['U235']\n", + "tally.scores = ['total', 'fission', 'absorption', '(n,gamma)']" ] }, { @@ -1117,7 +1118,7 @@ } ], "source": [ - "tallies = openmc.Tallies([t])\n", + "tallies = openmc.Tallies([tally])\n", "tallies.export_to_xml()\n", "!cat tallies.xml" ] @@ -1168,165 +1169,164 @@ "\n", " | The OpenMC Monte Carlo Code\n", " Copyright | 2011-2020 MIT and OpenMC contributors\n", - " License | http://openmc.readthedocs.io/en/latest/license.html\n", - " Version | 0.12.0-dev\n", - " Git SHA1 | dd74b2f43f1d2060486de2823ee30058b8971dbd\n", - " Date/Time | 2020-03-03 13:58:53\n", - " MPI Processes | 1\n", - " OpenMP Threads | 8\n", + " License | https://docs.openmc.org/en/latest/license.html\n", + " Version | 0.12.0\n", + " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", + " Date/Time | 2020-08-15 06:49:11\n", + " OpenMP Threads | 4\n", "\n", " Reading settings XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", " Reading geometry XML file...\n", - " Reading U235 from /home/sam/openmc/libs/nndc_hdf5/U235.h5\n", - " Reading U238 from /home/sam/openmc/libs/nndc_hdf5/U238.h5\n", - " Reading O16 from /home/sam/openmc/libs/nndc_hdf5/O16.h5\n", - " Reading Zr90 from /home/sam/openmc/libs/nndc_hdf5/Zr90.h5\n", - " Reading Zr91 from /home/sam/openmc/libs/nndc_hdf5/Zr91.h5\n", - " Reading Zr92 from /home/sam/openmc/libs/nndc_hdf5/Zr92.h5\n", - " Reading Zr94 from /home/sam/openmc/libs/nndc_hdf5/Zr94.h5\n", - " Reading Zr96 from /home/sam/openmc/libs/nndc_hdf5/Zr96.h5\n", - " Reading H1 from /home/sam/openmc/libs/nndc_hdf5/H1.h5\n", - " Reading O17 from /home/sam/openmc/libs/nndc_hdf5/O17.h5\n", - " Reading c_H_in_H2O from /home/sam/openmc/libs/nndc_hdf5/c_H_in_H2O.h5\n", - " Maximum neutron transport energy: 20000000.000000 eV for U235\n", + " Reading U235 from /home/master/data/nuclear/endfb71_hdf5/U235.h5\n", + " Reading U238 from /home/master/data/nuclear/endfb71_hdf5/U238.h5\n", + " Reading O16 from /home/master/data/nuclear/endfb71_hdf5/O16.h5\n", + " Reading Zr90 from /home/master/data/nuclear/endfb71_hdf5/Zr90.h5\n", + " Reading Zr91 from /home/master/data/nuclear/endfb71_hdf5/Zr91.h5\n", + " Reading Zr92 from /home/master/data/nuclear/endfb71_hdf5/Zr92.h5\n", + " Reading Zr94 from /home/master/data/nuclear/endfb71_hdf5/Zr94.h5\n", + " Reading Zr96 from /home/master/data/nuclear/endfb71_hdf5/Zr96.h5\n", + " Reading H1 from /home/master/data/nuclear/endfb71_hdf5/H1.h5\n", + " Reading O17 from /home/master/data/nuclear/endfb71_hdf5/O17.h5\n", + " Reading c_H_in_H2O from /home/master/data/nuclear/endfb71_hdf5/c_H_in_H2O.h5\n", " Minimum neutron data temperature: 294.000000 K\n", " Maximum neutron data temperature: 294.000000 K\n", " Reading tallies XML file...\n", " Preparing distributed cell instances...\n", " Writing summary.h5 file...\n", + " Maximum neutron transport energy: 20000000.000000 eV for U235\n", " Initializing source particles...\n", "\n", " ====================> K EIGENVALUE SIMULATION <====================\n", "\n", " Bat./Gen. k Average k\n", " ========= ======== ====================\n", - " 1/1 1.32572\n", - " 2/1 1.46138\n", - " 3/1 1.46068\n", - " 4/1 1.39592\n", - " 5/1 1.37519\n", - " 6/1 1.38777\n", - " 7/1 1.50242\n", - " 8/1 1.42042\n", - " 9/1 1.47458\n", - " 10/1 1.49148\n", - " 11/1 1.39339\n", - " 12/1 1.40637 1.39988 +/- 0.00649\n", - " 13/1 1.42972 1.40983 +/- 0.01063\n", - " 14/1 1.46319 1.42317 +/- 0.01531\n", - " 15/1 1.41538 1.42161 +/- 0.01196\n", - " 16/1 1.38163 1.41494 +/- 0.01182\n", - " 17/1 1.41257 1.41461 +/- 0.01000\n", - " 18/1 1.43455 1.41710 +/- 0.00901\n", - " 19/1 1.33136 1.40757 +/- 0.01241\n", - " 20/1 1.41560 1.40837 +/- 0.01113\n", - " 21/1 1.38911 1.40662 +/- 0.01021\n", - " 22/1 1.28621 1.39659 +/- 0.01370\n", - " 23/1 1.45693 1.40123 +/- 0.01343\n", - " 24/1 1.46839 1.40603 +/- 0.01333\n", - " 25/1 1.46738 1.41012 +/- 0.01306\n", - " 26/1 1.43977 1.41197 +/- 0.01236\n", - " 27/1 1.44066 1.41366 +/- 0.01173\n", - " 28/1 1.39358 1.41254 +/- 0.01112\n", - " 29/1 1.39142 1.41143 +/- 0.01057\n", - " 30/1 1.38525 1.41012 +/- 0.01012\n", - " 31/1 1.38025 1.40870 +/- 0.00973\n", - " 32/1 1.45348 1.41074 +/- 0.00949\n", - " 33/1 1.35893 1.40848 +/- 0.00935\n", - " 34/1 1.32332 1.40493 +/- 0.00963\n", - " 35/1 1.46285 1.40725 +/- 0.00952\n", - " 36/1 1.33760 1.40457 +/- 0.00953\n", - " 37/1 1.41117 1.40482 +/- 0.00917\n", - " 38/1 1.45574 1.40664 +/- 0.00903\n", - " 39/1 1.43472 1.40760 +/- 0.00876\n", - " 40/1 1.30110 1.40405 +/- 0.00918\n", - " 41/1 1.41765 1.40449 +/- 0.00889\n", - " 42/1 1.45300 1.40601 +/- 0.00874\n", - " 43/1 1.40491 1.40597 +/- 0.00847\n", - " 44/1 1.42053 1.40640 +/- 0.00823\n", - " 45/1 1.38805 1.40588 +/- 0.00801\n", - " 46/1 1.34293 1.40413 +/- 0.00798\n", - " 47/1 1.35441 1.40279 +/- 0.00787\n", - " 48/1 1.29370 1.39991 +/- 0.00818\n", - " 49/1 1.48467 1.40209 +/- 0.00826\n", - " 50/1 1.41759 1.40248 +/- 0.00806\n", - " 51/1 1.37151 1.40172 +/- 0.00790\n", - " 52/1 1.42403 1.40225 +/- 0.00773\n", - " 53/1 1.38826 1.40193 +/- 0.00755\n", - " 54/1 1.48944 1.40392 +/- 0.00764\n", - " 55/1 1.41452 1.40415 +/- 0.00747\n", - " 56/1 1.47337 1.40566 +/- 0.00746\n", - " 57/1 1.35700 1.40462 +/- 0.00738\n", - " 58/1 1.40305 1.40459 +/- 0.00722\n", - " 59/1 1.41608 1.40482 +/- 0.00708\n", - " 60/1 1.47254 1.40618 +/- 0.00706\n", - " 61/1 1.36847 1.40544 +/- 0.00696\n", - " 62/1 1.34103 1.40420 +/- 0.00694\n", - " 63/1 1.39510 1.40403 +/- 0.00681\n", - " 64/1 1.40228 1.40399 +/- 0.00668\n", - " 65/1 1.29401 1.40200 +/- 0.00686\n", - " 66/1 1.42693 1.40244 +/- 0.00675\n", - " 67/1 1.36447 1.40177 +/- 0.00666\n", - " 68/1 1.37498 1.40131 +/- 0.00656\n", - " 69/1 1.36958 1.40077 +/- 0.00647\n", - " 70/1 1.38585 1.40053 +/- 0.00637\n", - " 71/1 1.42133 1.40087 +/- 0.00627\n", - " 72/1 1.44900 1.40164 +/- 0.00622\n", - " 73/1 1.37696 1.40125 +/- 0.00613\n", - " 74/1 1.48851 1.40261 +/- 0.00619\n", - " 75/1 1.38933 1.40241 +/- 0.00610\n", - " 76/1 1.41780 1.40264 +/- 0.00601\n", - " 77/1 1.41054 1.40276 +/- 0.00592\n", - " 78/1 1.38194 1.40246 +/- 0.00584\n", - " 79/1 1.38446 1.40219 +/- 0.00576\n", - " 80/1 1.37504 1.40181 +/- 0.00569\n", - " 81/1 1.40550 1.40186 +/- 0.00561\n", - " 82/1 1.49785 1.40319 +/- 0.00569\n", - " 83/1 1.35613 1.40255 +/- 0.00565\n", - " 84/1 1.41786 1.40275 +/- 0.00557\n", - " 85/1 1.38444 1.40251 +/- 0.00550\n", - " 86/1 1.40459 1.40254 +/- 0.00543\n", - " 87/1 1.39923 1.40249 +/- 0.00536\n", - " 88/1 1.44540 1.40304 +/- 0.00532\n", - " 89/1 1.45962 1.40376 +/- 0.00530\n", - " 90/1 1.37057 1.40335 +/- 0.00525\n", - " 91/1 1.38115 1.40307 +/- 0.00519\n", - " 92/1 1.35758 1.40252 +/- 0.00516\n", - " 93/1 1.34508 1.40182 +/- 0.00514\n", - " 94/1 1.31471 1.40079 +/- 0.00519\n", - " 95/1 1.41434 1.40095 +/- 0.00513\n", - " 96/1 1.33895 1.40023 +/- 0.00512\n", - " 97/1 1.44716 1.40077 +/- 0.00509\n", - " 98/1 1.38455 1.40058 +/- 0.00503\n", - " 99/1 1.52127 1.40194 +/- 0.00516\n", - " 100/1 1.35488 1.40141 +/- 0.00513\n", + " 1/1 1.42066\n", + " 2/1 1.39831\n", + " 3/1 1.46207\n", + " 4/1 1.44888\n", + " 5/1 1.42595\n", + " 6/1 1.35549\n", + " 7/1 1.36717\n", + " 8/1 1.45095\n", + " 9/1 1.36061\n", + " 10/1 1.36554\n", + " 11/1 1.36973\n", + " 12/1 1.44276 1.40625 +/- 0.03652\n", + " 13/1 1.35512 1.38920 +/- 0.02711\n", + " 14/1 1.54216 1.42744 +/- 0.04277\n", + " 15/1 1.39353 1.42066 +/- 0.03382\n", + " 16/1 1.38650 1.41497 +/- 0.02820\n", + " 17/1 1.38760 1.41106 +/- 0.02415\n", + " 18/1 1.38413 1.40769 +/- 0.02118\n", + " 19/1 1.39088 1.40582 +/- 0.01877\n", + " 20/1 1.47468 1.41271 +/- 0.01815\n", + " 21/1 1.45695 1.41673 +/- 0.01690\n", + " 22/1 1.40308 1.41559 +/- 0.01547\n", + " 23/1 1.40821 1.41503 +/- 0.01424\n", + " 24/1 1.32301 1.40845 +/- 0.01473\n", + " 25/1 1.36702 1.40569 +/- 0.01399\n", + " 26/1 1.30968 1.39969 +/- 0.01440\n", + " 27/1 1.38099 1.39859 +/- 0.01357\n", + " 28/1 1.42103 1.39984 +/- 0.01285\n", + " 29/1 1.39741 1.39971 +/- 0.01216\n", + " 30/1 1.36548 1.39800 +/- 0.01166\n", + " 31/1 1.41573 1.39884 +/- 0.01112\n", + " 32/1 1.39788 1.39880 +/- 0.01061\n", + " 33/1 1.35942 1.39709 +/- 0.01028\n", + " 34/1 1.40483 1.39741 +/- 0.00985\n", + " 35/1 1.39418 1.39728 +/- 0.00944\n", + " 36/1 1.41492 1.39796 +/- 0.00910\n", + " 37/1 1.49392 1.40151 +/- 0.00945\n", + " 38/1 1.45114 1.40329 +/- 0.00928\n", + " 39/1 1.42619 1.40408 +/- 0.00899\n", + " 40/1 1.35249 1.40236 +/- 0.00885\n", + " 41/1 1.35401 1.40080 +/- 0.00870\n", + " 42/1 1.40220 1.40084 +/- 0.00842\n", + " 43/1 1.36437 1.39974 +/- 0.00824\n", + " 44/1 1.33642 1.39787 +/- 0.00821\n", + " 45/1 1.36953 1.39706 +/- 0.00801\n", + " 46/1 1.30034 1.39438 +/- 0.00824\n", + " 47/1 1.44097 1.39564 +/- 0.00811\n", + " 48/1 1.37981 1.39522 +/- 0.00790\n", + " 49/1 1.34870 1.39403 +/- 0.00779\n", + " 50/1 1.41247 1.39449 +/- 0.00761\n", + " 51/1 1.33382 1.39301 +/- 0.00756\n", + " 52/1 1.37043 1.39247 +/- 0.00740\n", + " 53/1 1.38754 1.39236 +/- 0.00723\n", + " 54/1 1.40160 1.39257 +/- 0.00707\n", + " 55/1 1.37511 1.39218 +/- 0.00692\n", + " 56/1 1.38589 1.39204 +/- 0.00677\n", + " 57/1 1.40630 1.39234 +/- 0.00663\n", + " 58/1 1.29944 1.39041 +/- 0.00677\n", + " 59/1 1.40019 1.39061 +/- 0.00663\n", + " 60/1 1.42384 1.39127 +/- 0.00653\n", + " 61/1 1.36502 1.39076 +/- 0.00643\n", + " 62/1 1.37042 1.39037 +/- 0.00631\n", + " 63/1 1.42295 1.39098 +/- 0.00622\n", + " 64/1 1.40042 1.39116 +/- 0.00611\n", + " 65/1 1.36382 1.39066 +/- 0.00602\n", + " 66/1 1.31659 1.38934 +/- 0.00606\n", + " 67/1 1.36101 1.38884 +/- 0.00597\n", + " 68/1 1.46359 1.39013 +/- 0.00601\n", + " 69/1 1.41012 1.39047 +/- 0.00591\n", + " 70/1 1.27411 1.38853 +/- 0.00613\n", + " 71/1 1.45399 1.38960 +/- 0.00612\n", + " 72/1 1.40455 1.38984 +/- 0.00603\n", + " 73/1 1.33020 1.38890 +/- 0.00601\n", + " 74/1 1.44599 1.38979 +/- 0.00598\n", + " 75/1 1.34985 1.38917 +/- 0.00592\n", + " 76/1 1.36183 1.38876 +/- 0.00584\n", + " 77/1 1.41080 1.38909 +/- 0.00576\n", + " 78/1 1.43991 1.38984 +/- 0.00573\n", + " 79/1 1.35613 1.38935 +/- 0.00566\n", + " 80/1 1.31659 1.38831 +/- 0.00568\n", + " 81/1 1.51344 1.39007 +/- 0.00587\n", + " 82/1 1.38404 1.38999 +/- 0.00579\n", + " 83/1 1.39613 1.39007 +/- 0.00571\n", + " 84/1 1.43037 1.39061 +/- 0.00566\n", + " 85/1 1.47316 1.39172 +/- 0.00569\n", + " 86/1 1.39220 1.39172 +/- 0.00561\n", + " 87/1 1.44400 1.39240 +/- 0.00558\n", + " 88/1 1.42419 1.39281 +/- 0.00552\n", + " 89/1 1.30930 1.39175 +/- 0.00556\n", + " 90/1 1.46976 1.39273 +/- 0.00557\n", + " 91/1 1.38334 1.39261 +/- 0.00550\n", + " 92/1 1.35260 1.39212 +/- 0.00546\n", + " 93/1 1.38505 1.39204 +/- 0.00539\n", + " 94/1 1.38290 1.39193 +/- 0.00533\n", + " 95/1 1.42597 1.39233 +/- 0.00528\n", + " 96/1 1.41624 1.39261 +/- 0.00523\n", + " 97/1 1.42053 1.39293 +/- 0.00518\n", + " 98/1 1.36268 1.39258 +/- 0.00513\n", + " 99/1 1.39175 1.39258 +/- 0.00507\n", + " 100/1 1.38148 1.39245 +/- 0.00502\n", " Creating state point statepoint.100.h5...\n", "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 9.7663e-01 seconds\n", - " Reading cross sections = 8.7037e-01 seconds\n", - " Total time in simulation = 1.8046e+00 seconds\n", - " Time in transport only = 1.7523e+00 seconds\n", - " Time in inactive batches = 2.0849e-01 seconds\n", - " Time in active batches = 1.5961e+00 seconds\n", - " Time synchronizing fission bank = 6.7422e-03 seconds\n", - " Sampling source sites = 4.9715e-03 seconds\n", - " SEND/RECV source sites = 1.1323e-03 seconds\n", - " Time accumulating tallies = 5.3810e-04 seconds\n", - " Total time for finalization = 5.1810e-04 seconds\n", - " Total time elapsed = 2.7828e+00 seconds\n", - " Calculation Rate (inactive) = 47962.8 particles/second\n", - " Calculation Rate (active) = 56386.7 particles/second\n", + " Total time for initialization = 6.9980e-01 seconds\n", + " Reading cross sections = 6.8788e-01 seconds\n", + " Total time in simulation = 1.9251e+00 seconds\n", + " Time in transport only = 1.9072e+00 seconds\n", + " Time in inactive batches = 1.5794e-01 seconds\n", + " Time in active batches = 1.7672e+00 seconds\n", + " Time synchronizing fission bank = 4.2579e-03 seconds\n", + " Sampling source sites = 3.4948e-03 seconds\n", + " SEND/RECV source sites = 5.9671e-04 seconds\n", + " Time accumulating tallies = 7.9162e-05 seconds\n", + " Total time for finalization = 5.7305e-05 seconds\n", + " Total time elapsed = 2.6291e+00 seconds\n", + " Calculation Rate (inactive) = 63313.6 particles/second\n", + " Calculation Rate (active) = 50928.0 particles/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.39737 +/- 0.00470\n", - " k-effective (Track-length) = 1.40141 +/- 0.00513\n", - " k-effective (Absorption) = 1.39596 +/- 0.00308\n", - " Combined k-effective = 1.39719 +/- 0.00286\n", + " k-effective (Collision) = 1.39516 +/- 0.00457\n", + " k-effective (Track-length) = 1.39245 +/- 0.00502\n", + " k-effective (Absorption) = 1.40443 +/- 0.00333\n", + " Combined k-effective = 1.40145 +/- 0.00319\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -1356,10 +1356,10 @@ "\r\n", " Cell 1\r\n", " U235\r\n", - " Total Reaction Rate 0.731003 +/- 0.00253759\r\n", - " Fission Rate 0.547587 +/- 0.00210114\r\n", - " Absorption Rate 0.657406 +/- 0.0024539\r\n", - " (n,gamma) 0.109821 +/- 0.000368054\r\n" + " Total Reaction Rate 0.726151 +/- 0.00251702\r\n", + " Fission Rate 0.543836 +/- 0.00205084\r\n", + " Absorption Rate 0.652874 +/- 0.002424\r\n", + " (n,gamma) 0.10904 +/- 0.000385793\r\n" ] } ], @@ -1382,12 +1382,12 @@ "metadata": {}, "outputs": [], "source": [ - "p = openmc.Plot()\n", - "p.filename = 'pinplot'\n", - "p.width = (pitch, pitch)\n", - "p.pixels = (200, 200)\n", - "p.color_by = 'material'\n", - "p.colors = {uo2: 'yellow', water: 'blue'}" + "plot = openmc.Plot()\n", + "plot.filename = 'pinplot'\n", + "plot.width = (pitch, pitch)\n", + "plot.pixels = (200, 200)\n", + "plot.color_by = 'material'\n", + "plot.colors = {uo2: 'yellow', water: 'blue'}" ] }, { @@ -1420,7 +1420,7 @@ } ], "source": [ - "plots = openmc.Plots([p])\n", + "plots = openmc.Plots([plot])\n", "plots.export_to_xml()\n", "!cat plots.xml" ] @@ -1467,12 +1467,11 @@ "\n", " | The OpenMC Monte Carlo Code\n", " Copyright | 2011-2020 MIT and OpenMC contributors\n", - " License | http://openmc.readthedocs.io/en/latest/license.html\n", - " Version | 0.12.0-dev\n", - " Git SHA1 | dd74b2f43f1d2060486de2823ee30058b8971dbd\n", - " Date/Time | 2020-03-03 13:58:56\n", - " MPI Processes | 1\n", - " OpenMP Threads | 8\n", + " License | https://docs.openmc.org/en/latest/license.html\n", + " Version | 0.12.0\n", + " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", + " Date/Time | 2020-08-15 06:49:14\n", + " OpenMP Threads | 4\n", "\n", " Reading settings XML file...\n", " Reading cross sections XML file...\n", @@ -1534,7 +1533,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QDAw06OBFn074AAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTAzLTAzVDEzOjU4OjU2KzAwOjAw73cO+QAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wMy0wM1QxMzo1ODo1NiswMDowMJ4qtkUAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QIDwcxDg24lJMAAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE1VDA2OjQ5OjE0KzAxOjAwlLKpXwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xNVQwNjo0OToxNCswMTowMOXvEeMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -1563,7 +1562,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QDAw06OBFn074AAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTAzLTAzVDEzOjU4OjU2KzAwOjAw73cO+QAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wMy0wM1QxMzo1ODo1NiswMDowMJ4qtkUAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QIDwcxDg24lJMAAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE1VDA2OjQ5OjE0KzAxOjAwlLKpXwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xNVQwNjo0OToxNCswMTowMOXvEeMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -1574,7 +1573,7 @@ } ], "source": [ - "p.to_ipython_image()" + "plot.to_ipython_image()" ] } ], @@ -1595,7 +1594,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.9" + "version": "3.8.5" } }, "nbformat": 4, From 8f6caffcf2f2885cde92dad35ac7a6bc309a5c49 Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Sat, 15 Aug 2020 06:55:49 +0100 Subject: [PATCH 055/122] Add files via upload --- examples/jupyter/post-processing.ipynb | 364 ++++++++++++------------- 1 file changed, 182 insertions(+), 182 deletions(-) diff --git a/examples/jupyter/post-processing.ipynb b/examples/jupyter/post-processing.ipynb index 889e16877..45bba7c61 100644 --- a/examples/jupyter/post-processing.ipynb +++ b/examples/jupyter/post-processing.ipynb @@ -17,7 +17,6 @@ "from IPython.display import Image\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", - "\n", "import openmc" ] }, @@ -75,10 +74,10 @@ "outputs": [], "source": [ "# Instantiate a Materials collection\n", - "materials_file = openmc.Materials([fuel, water, zircaloy])\n", + "materials = openmc.Materials([fuel, water, zircaloy])\n", "\n", "# Export to \"materials.xml\"\n", - "materials_file.export_to_xml()" + "materials.export_to_xml()" ] }, { @@ -213,18 +212,18 @@ "particles = 5000\n", "\n", "# Instantiate a Settings object\n", - "settings_file = openmc.Settings()\n", - "settings_file.batches = batches\n", - "settings_file.inactive = inactive\n", - "settings_file.particles = particles\n", + "settings = openmc.Settings()\n", + "settings.batches = batches\n", + "settings.inactive = inactive\n", + "settings.particles = particles\n", "\n", "# Create an initial uniform spatial source distribution over fissionable zones\n", "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", - "settings_file.source = openmc.Source(space=uniform_dist)\n", + "settings.source = openmc.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", - "settings_file.export_to_xml()" + "settings.export_to_xml()" ] }, { @@ -241,7 +240,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEXpgJFyEhJNv8T///9xF1FxAAAAAWJLR0QDEQxM8gAAAAd0SU1FB+MHEwEWFzIBvcoAAAKlSURBVGje7ZrBscIwDETxwSWkn5TAgXCgBPqhBA6kyj/fDhCIJa2zZAwz0pmHpZWdSazd7Tw8PDw8PDw8vinCMBzW03HIsRLvhnv0HL7qD+IwjzXKzaNaxeEt9kz21RWEBV5XQbfka3pQWL4qgdLyNQkUcbwFT/FP4zjWt+D+++OY4laZQJgtnqNOwe5l9XkGmIIL/PEHUAGTeuc5P15wBbu34ucSIAXkX77h4xUtIBSXnxIAOhCLy98TANNfLj8lYBYQCuLPWmAWEBe9f90DUPdKy08JWB0U1HsoaAgQxPSnAgwBopz+VABQvoDnAnqTP0r8zealzfPcQqqAQSs/C6AKGLX0pwKs8uX0cwGaAHr6uYC9wSt46qDCB4RXBDTkMwWMhnxZQF3+s8pf1AZY5VsCWuVnAUQ+YPxB43X5koAiH035soCa/AaeBOw34m359AaQPCK/1oAAyJ8aIPBI+7QGRkD+3IBt+A6QPzeg34SH2pcauN+Kt9uXGljkse0jb6BP8AD+vwGKPLZ95A0UofbnDbAFj20/eQN+gD8h/LgRD25/8QCA2088AD/Oo8dPOoDo8ZMOoPPNeej4pwdAgUcfX9IDzHnnf5lnz88XnH/nSf4M8cIL7I+/P3yCP0G88P7W+v2z9ft36+8P9vuJ/X5r/f3Jfj83//5vff/R+v6Hvb9i78/Y+7vW94/N71/Z+2P2/pq9P2fv7+n5ATu/YOcn7PyGnR+x8yt6ftYN3PzOENCcH7LzS3Z+Ss9vO62DV5uPmgAXSz5+fs7O72n/QBQLwPwLrH+C9W/Q/hHWv8L6Z2j/ThZgvX+I9S/R/inWv8X6x2j/Guufo/17rH+Q9S/S/knWv0n7R2n/Kuufpf27tH+Y9i/vWP+0h4eHh4eHh8cW8QcxLJDBvLKoigAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0wNy0xOVQwNjoyMjoyMy0wNTowMKrH6zcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDctMTlUMDY6MjI6MjMtMDU6MDDbmlOLAAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEXpgJFyEhJNv8T///9xF1FxAAAAAWJLR0QDEQxM8gAAAAd0SU1FB+QIDwc1MzG8HYYAAAKlSURBVGje7ZrBscIwDETxwSWkn5TAgXCgBPqhBA6kyj/fDhCIJa2zZAwz0pmHpZWdSazd7Tw8PDw8PDw8vinCMBzW03HIsRLvhnv0HL7qD+IwjzXKzaNaxeEt9kz21RWEBV5XQbfka3pQWL4qgdLyNQkUcbwFT/FP4zjWt+D+++OY4laZQJgtnqNOwe5l9XkGmIIL/PEHUAGTeuc5P15wBbu34ucSIAXkX77h4xUtIBSXnxIAOhCLy98TANNfLj8lYBYQCuLPWmAWEBe9f90DUPdKy08JWB0U1HsoaAgQxPSnAgwBopz+VABQvoDnAnqTP0r8zealzfPcQqqAQSs/C6AKGLX0pwKs8uX0cwGaAHr6uYC9wSt46qDCB4RXBDTkMwWMhnxZQF3+s8pf1AZY5VsCWuVnAUQ+YPxB43X5koAiH035soCa/AaeBOw34m359AaQPCK/1oAAyJ8aIPBI+7QGRkD+3IBt+A6QPzeg34SH2pcauN+Kt9uXGljkse0jb6BP8AD+vwGKPLZ95A0UofbnDbAFj20/eQN+gD8h/LgRD25/8QCA2088AD/Oo8dPOoDo8ZMOoPPNeej4pwdAgUcfX9IDzHnnf5lnz88XnH/nSf4M8cIL7I+/P3yCP0G88P7W+v2z9ft36+8P9vuJ/X5r/f3Jfj83//5vff/R+v6Hvb9i78/Y+7vW94/N71/Z+2P2/pq9P2fv7+n5ATu/YOcn7PyGnR+x8yt6ftYN3PzOENCcH7LzS3Z+Ss9vO62DV5uPmgAXSz5+fs7O72n/QBQLwPwLrH+C9W/Q/hHWv8L6Z2j/ThZgvX+I9S/R/inWv8X6x2j/Guufo/17rH+Q9S/S/knWv0n7R2n/Kuufpf27tH+Y9i/vWP+0h4eHh4eHh8cW8QcxLJDBvLKoigAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wOC0xNVQwNjo1Mzo1MSswMTowMJRsxwsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDgtMTVUMDY6NTM6NTErMDE6MDDlMX+3AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] @@ -271,7 +270,7 @@ "outputs": [], "source": [ "# Instantiate an empty Tallies object\n", - "tallies_file = openmc.Tallies()" + "tallies = openmc.Tallies()" ] }, { @@ -293,7 +292,7 @@ "tally = openmc.Tally(name='flux')\n", "tally.filters = [mesh_filter]\n", "tally.scores = ['flux', 'fission']\n", - "tallies_file.append(tally)" + "tallies.append(tally)" ] }, { @@ -303,7 +302,7 @@ "outputs": [], "source": [ "# Export to \"tallies.xml\"\n", - "tallies_file.export_to_xml()" + "tallies.export_to_xml()" ] }, { @@ -349,157 +348,160 @@ " %%%%%%%%%%%\n", "\n", " | The OpenMC Monte Carlo Code\n", - " Copyright | 2011-2019 MIT and OpenMC contributors\n", - " License | http://openmc.readthedocs.io/en/latest/license.html\n", - " Version | 0.11.0-dev\n", - " Git SHA1 | 61c911cffdae2406f9f4bc667a9a6954748bb70c\n", - " Date/Time | 2019-07-19 06:22:24\n", + " Copyright | 2011-2020 MIT and OpenMC contributors\n", + " License | https://docs.openmc.org/en/latest/license.html\n", + " Version | 0.12.0\n", + " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", + " Date/Time | 2020-08-15 06:53:51\n", " OpenMP Threads | 4\n", "\n", " Reading settings XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", " Reading geometry XML file...\n", - " Reading U235 from /opt/data/hdf5/nndc_hdf5_v15/U235.h5\n", - " Reading U238 from /opt/data/hdf5/nndc_hdf5_v15/U238.h5\n", - " Reading O16 from /opt/data/hdf5/nndc_hdf5_v15/O16.h5\n", - " Reading H1 from /opt/data/hdf5/nndc_hdf5_v15/H1.h5\n", - " Reading B10 from /opt/data/hdf5/nndc_hdf5_v15/B10.h5\n", - " Reading Zr90 from /opt/data/hdf5/nndc_hdf5_v15/Zr90.h5\n", - " Maximum neutron transport energy: 20000000.000000 eV for U235\n", + " Reading U235 from /home/master/data/nuclear/endfb71_hdf5/U235.h5\n", + " Reading U238 from /home/master/data/nuclear/endfb71_hdf5/U238.h5\n", + " Reading O16 from /home/master/data/nuclear/endfb71_hdf5/O16.h5\n", + " Reading H1 from /home/master/data/nuclear/endfb71_hdf5/H1.h5\n", + " Reading B10 from /home/master/data/nuclear/endfb71_hdf5/B10.h5\n", + " Reading Zr90 from /home/master/data/nuclear/endfb71_hdf5/Zr90.h5\n", + " Minimum neutron data temperature: 294.000000 K\n", + " Maximum neutron data temperature: 294.000000 K\n", " Reading tallies XML file...\n", + " Preparing distributed cell instances...\n", " Writing summary.h5 file...\n", + " Maximum neutron transport energy: 20000000.000000 eV for U235\n", " Initializing source particles...\n", "\n", " ====================> K EIGENVALUE SIMULATION <====================\n", "\n", " Bat./Gen. k Average k\n", " ========= ======== ====================\n", - " 1/1 1.04359\n", - " 2/1 1.04323\n", - " 3/1 1.04711\n", - " 4/1 1.03892\n", - " 5/1 1.02459\n", - " 6/1 1.03936\n", - " 7/1 1.03529\n", - " 8/1 1.01590\n", - " 9/1 1.03060\n", - " 10/1 1.02892\n", - " 11/1 1.03987\n", - " 12/1 1.04395 1.04191 +/- 0.00204\n", - " 13/1 1.04971 1.04451 +/- 0.00285\n", - " 14/1 1.03880 1.04308 +/- 0.00247\n", - " 15/1 1.03091 1.04065 +/- 0.00310\n", - " 16/1 1.03618 1.03990 +/- 0.00264\n", - " 17/1 1.04109 1.04007 +/- 0.00223\n", - " 18/1 1.02978 1.03879 +/- 0.00232\n", - " 19/1 1.06363 1.04155 +/- 0.00344\n", - " 20/1 1.06549 1.04394 +/- 0.00390\n", - " 21/1 1.03469 1.04310 +/- 0.00362\n", - " 22/1 1.01925 1.04111 +/- 0.00386\n", - " 23/1 1.03268 1.04046 +/- 0.00361\n", - " 24/1 1.03906 1.04036 +/- 0.00334\n", - " 25/1 1.02632 1.03943 +/- 0.00325\n", - " 26/1 1.03906 1.03940 +/- 0.00304\n", - " 27/1 1.05058 1.04006 +/- 0.00293\n", - " 28/1 1.03248 1.03964 +/- 0.00279\n", - " 29/1 1.04076 1.03970 +/- 0.00264\n", - " 30/1 1.00994 1.03821 +/- 0.00292\n", - " 31/1 1.04785 1.03867 +/- 0.00281\n", - " 32/1 1.03080 1.03831 +/- 0.00270\n", - " 33/1 1.01862 1.03746 +/- 0.00272\n", - " 34/1 1.05370 1.03813 +/- 0.00269\n", - " 35/1 1.02226 1.03750 +/- 0.00266\n", - " 36/1 1.02862 1.03716 +/- 0.00258\n", - " 37/1 1.04790 1.03755 +/- 0.00251\n", - " 38/1 1.03762 1.03756 +/- 0.00242\n", - " 39/1 1.02255 1.03704 +/- 0.00239\n", - " 40/1 1.06094 1.03784 +/- 0.00245\n", - " 41/1 1.03842 1.03786 +/- 0.00237\n", - " 42/1 1.00628 1.03687 +/- 0.00249\n", - " 43/1 1.04916 1.03724 +/- 0.00245\n", - " 44/1 1.06237 1.03798 +/- 0.00248\n", - " 45/1 1.08153 1.03922 +/- 0.00271\n", - " 46/1 1.05649 1.03970 +/- 0.00268\n", - " 47/1 1.06265 1.04032 +/- 0.00268\n", - " 48/1 1.05728 1.04077 +/- 0.00265\n", - " 49/1 1.07343 1.04161 +/- 0.00271\n", - " 50/1 1.04640 1.04173 +/- 0.00265\n", - " 51/1 1.05143 1.04196 +/- 0.00259\n", - " 52/1 1.03639 1.04183 +/- 0.00253\n", - " 53/1 1.04846 1.04199 +/- 0.00248\n", - " 54/1 1.02435 1.04158 +/- 0.00245\n", - " 55/1 1.04806 1.04173 +/- 0.00240\n", - " 56/1 1.04798 1.04186 +/- 0.00235\n", - " 57/1 1.06621 1.04238 +/- 0.00236\n", - " 58/1 1.05734 1.04269 +/- 0.00233\n", - " 59/1 1.04581 1.04276 +/- 0.00228\n", - " 60/1 1.02682 1.04244 +/- 0.00226\n", - " 61/1 1.05971 1.04278 +/- 0.00224\n", - " 62/1 1.02357 1.04241 +/- 0.00223\n", - " 63/1 1.02645 1.04211 +/- 0.00221\n", - " 64/1 1.00711 1.04146 +/- 0.00226\n", - " 65/1 1.06171 1.04183 +/- 0.00225\n", - " 66/1 1.03444 1.04170 +/- 0.00221\n", - " 67/1 1.05875 1.04199 +/- 0.00219\n", - " 68/1 1.04640 1.04207 +/- 0.00216\n", - " 69/1 1.04376 1.04210 +/- 0.00212\n", - " 70/1 1.07078 1.04258 +/- 0.00214\n", - " 71/1 1.03916 1.04252 +/- 0.00210\n", - " 72/1 1.01843 1.04213 +/- 0.00211\n", - " 73/1 1.03666 1.04205 +/- 0.00207\n", - " 74/1 1.04625 1.04211 +/- 0.00204\n", - " 75/1 1.05277 1.04228 +/- 0.00202\n", - " 76/1 1.04944 1.04238 +/- 0.00199\n", - " 77/1 1.01898 1.04203 +/- 0.00199\n", - " 78/1 1.03283 1.04190 +/- 0.00197\n", - " 79/1 1.02304 1.04163 +/- 0.00196\n", - " 80/1 1.01539 1.04125 +/- 0.00196\n", - " 81/1 1.03988 1.04123 +/- 0.00194\n", - " 82/1 1.02138 1.04096 +/- 0.00193\n", - " 83/1 1.02473 1.04073 +/- 0.00192\n", - " 84/1 1.03810 1.04070 +/- 0.00189\n", - " 85/1 1.07438 1.04115 +/- 0.00192\n", - " 86/1 1.03048 1.04101 +/- 0.00190\n", - " 87/1 1.06778 1.04135 +/- 0.00191\n", - " 88/1 1.07341 1.04177 +/- 0.00192\n", - " 89/1 1.06729 1.04209 +/- 0.00193\n", - " 90/1 1.05069 1.04220 +/- 0.00191\n", - " 91/1 1.07675 1.04262 +/- 0.00193\n", - " 92/1 1.06470 1.04289 +/- 0.00193\n", - " 93/1 1.02609 1.04269 +/- 0.00191\n", - " 94/1 1.04761 1.04275 +/- 0.00189\n", - " 95/1 1.08802 1.04328 +/- 0.00194\n", - " 96/1 1.04162 1.04326 +/- 0.00192\n", - " 97/1 1.04573 1.04329 +/- 0.00190\n", - " 98/1 1.03232 1.04317 +/- 0.00188\n", - " 99/1 1.03473 1.04307 +/- 0.00186\n", - " 100/1 1.04505 1.04309 +/- 0.00184\n", + " 1/1 1.06227\n", + " 2/1 1.01195\n", + " 3/1 1.03639\n", + " 4/1 1.04914\n", + " 5/1 1.03064\n", + " 6/1 1.04195\n", + " 7/1 1.00884\n", + " 8/1 1.02835\n", + " 9/1 1.03221\n", + " 10/1 1.03582\n", + " 11/1 1.04925\n", + " 12/1 1.08792 1.06859 +/- 0.01933\n", + " 13/1 1.02809 1.05509 +/- 0.01752\n", + " 14/1 1.06848 1.05843 +/- 0.01283\n", + " 15/1 1.03111 1.05297 +/- 0.01134\n", + " 16/1 1.04506 1.05165 +/- 0.00935\n", + " 17/1 1.07306 1.05471 +/- 0.00848\n", + " 18/1 1.05490 1.05473 +/- 0.00734\n", + " 19/1 1.04172 1.05329 +/- 0.00663\n", + " 20/1 1.01989 1.04995 +/- 0.00681\n", + " 21/1 1.05584 1.05048 +/- 0.00618\n", + " 22/1 1.01345 1.04740 +/- 0.00643\n", + " 23/1 1.05132 1.04770 +/- 0.00592\n", + " 24/1 1.05944 1.04854 +/- 0.00555\n", + " 25/1 1.04176 1.04809 +/- 0.00519\n", + " 26/1 1.05255 1.04836 +/- 0.00486\n", + " 27/1 1.06039 1.04907 +/- 0.00462\n", + " 28/1 1.01259 1.04705 +/- 0.00480\n", + " 29/1 1.07706 1.04863 +/- 0.00481\n", + " 30/1 1.04735 1.04856 +/- 0.00456\n", + " 31/1 1.04396 1.04834 +/- 0.00435\n", + " 32/1 1.08646 1.05007 +/- 0.00449\n", + " 33/1 1.02153 1.04883 +/- 0.00447\n", + " 34/1 1.04064 1.04849 +/- 0.00429\n", + " 35/1 1.04707 1.04844 +/- 0.00412\n", + " 36/1 1.03148 1.04778 +/- 0.00401\n", + " 37/1 1.08468 1.04915 +/- 0.00409\n", + " 38/1 1.05295 1.04929 +/- 0.00395\n", + " 39/1 1.01312 1.04804 +/- 0.00401\n", + " 40/1 1.04195 1.04784 +/- 0.00388\n", + " 41/1 1.05267 1.04799 +/- 0.00375\n", + " 42/1 1.01480 1.04695 +/- 0.00378\n", + " 43/1 1.05585 1.04722 +/- 0.00367\n", + " 44/1 1.06288 1.04768 +/- 0.00359\n", + " 45/1 1.07661 1.04851 +/- 0.00358\n", + " 46/1 1.05277 1.04863 +/- 0.00348\n", + " 47/1 1.04078 1.04842 +/- 0.00340\n", + " 48/1 1.08151 1.04929 +/- 0.00342\n", + " 49/1 1.04320 1.04913 +/- 0.00333\n", + " 50/1 1.04634 1.04906 +/- 0.00325\n", + " 51/1 1.06277 1.04940 +/- 0.00319\n", + " 52/1 1.02976 1.04893 +/- 0.00314\n", + " 53/1 1.03343 1.04857 +/- 0.00309\n", + " 54/1 1.01412 1.04779 +/- 0.00312\n", + " 55/1 1.04377 1.04770 +/- 0.00305\n", + " 56/1 1.04291 1.04759 +/- 0.00299\n", + " 57/1 1.07484 1.04817 +/- 0.00298\n", + " 58/1 1.07670 1.04877 +/- 0.00298\n", + " 59/1 1.05094 1.04881 +/- 0.00292\n", + " 60/1 1.00995 1.04803 +/- 0.00296\n", + " 61/1 1.04516 1.04798 +/- 0.00290\n", + " 62/1 1.03550 1.04774 +/- 0.00286\n", + " 63/1 1.02405 1.04729 +/- 0.00284\n", + " 64/1 1.06253 1.04757 +/- 0.00280\n", + " 65/1 1.06091 1.04781 +/- 0.00276\n", + " 66/1 1.04728 1.04781 +/- 0.00271\n", + " 67/1 1.06461 1.04810 +/- 0.00268\n", + " 68/1 1.05355 1.04819 +/- 0.00263\n", + " 69/1 1.06375 1.04846 +/- 0.00260\n", + " 70/1 1.04041 1.04832 +/- 0.00256\n", + " 71/1 1.04634 1.04829 +/- 0.00252\n", + " 72/1 1.02352 1.04789 +/- 0.00251\n", + " 73/1 1.08586 1.04849 +/- 0.00254\n", + " 74/1 1.04945 1.04851 +/- 0.00250\n", + " 75/1 1.06026 1.04869 +/- 0.00247\n", + " 76/1 1.05078 1.04872 +/- 0.00243\n", + " 77/1 1.02991 1.04844 +/- 0.00241\n", + " 78/1 1.01146 1.04790 +/- 0.00244\n", + " 79/1 1.05221 1.04796 +/- 0.00240\n", + " 80/1 1.01754 1.04752 +/- 0.00241\n", + " 81/1 1.05725 1.04766 +/- 0.00238\n", + " 82/1 1.03596 1.04750 +/- 0.00235\n", + " 83/1 1.04586 1.04748 +/- 0.00232\n", + " 84/1 1.02739 1.04721 +/- 0.00230\n", + " 85/1 1.04171 1.04713 +/- 0.00227\n", + " 86/1 1.05118 1.04719 +/- 0.00224\n", + " 87/1 1.03029 1.04697 +/- 0.00222\n", + " 88/1 1.07150 1.04728 +/- 0.00222\n", + " 89/1 1.02603 1.04701 +/- 0.00221\n", + " 90/1 1.00046 1.04643 +/- 0.00225\n", + " 91/1 1.06313 1.04664 +/- 0.00224\n", + " 92/1 1.09268 1.04720 +/- 0.00228\n", + " 93/1 1.00632 1.04670 +/- 0.00230\n", + " 94/1 1.03899 1.04661 +/- 0.00228\n", + " 95/1 1.05496 1.04671 +/- 0.00225\n", + " 96/1 1.01837 1.04638 +/- 0.00225\n", + " 97/1 1.04465 1.04636 +/- 0.00223\n", + " 98/1 1.04925 1.04639 +/- 0.00220\n", + " 99/1 1.03492 1.04627 +/- 0.00218\n", + " 100/1 1.02914 1.04608 +/- 0.00216\n", " Creating state point statepoint.100.h5...\n", "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 6.4445e-01 seconds\n", - " Reading cross sections = 6.1129e-01 seconds\n", - " Total time in simulation = 2.0000e+02 seconds\n", - " Time in transport only = 1.9970e+02 seconds\n", - " Time in inactive batches = 2.9966e+00 seconds\n", - " Time in active batches = 1.9701e+02 seconds\n", - " Time synchronizing fission bank = 4.0040e-02 seconds\n", - " Sampling source sites = 3.1522e-02 seconds\n", - " SEND/RECV source sites = 8.3459e-03 seconds\n", - " Time accumulating tallies = 9.3582e-03 seconds\n", - " Total time for finalization = 4.6582e-02 seconds\n", - " Total time elapsed = 2.0072e+02 seconds\n", - " Calculation Rate (inactive) = 16685.4 particles/second\n", - " Calculation Rate (active) = 2284.19 particles/second\n", + " Total time for initialization = 2.8826e-01 seconds\n", + " Reading cross sections = 2.7725e-01 seconds\n", + " Total time in simulation = 5.6710e+01 seconds\n", + " Time in transport only = 5.6647e+01 seconds\n", + " Time in inactive batches = 8.7405e-01 seconds\n", + " Time in active batches = 5.5836e+01 seconds\n", + " Time synchronizing fission bank = 2.2260e-02 seconds\n", + " Sampling source sites = 1.7941e-02 seconds\n", + " SEND/RECV source sites = 4.1545e-03 seconds\n", + " Time accumulating tallies = 3.7878e-03 seconds\n", + " Total time for finalization = 1.2434e-02 seconds\n", + " Total time elapsed = 5.7021e+01 seconds\n", + " Calculation Rate (inactive) = 57205.0 particles/second\n", + " Calculation Rate (active) = 8059.38 particles/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.04342 +/- 0.00159\n", - " k-effective (Track-length) = 1.04309 +/- 0.00184\n", - " k-effective (Absorption) = 1.04107 +/- 0.00140\n", - " Combined k-effective = 1.04195 +/- 0.00117\n", + " k-effective (Collision) = 1.04543 +/- 0.00195\n", + " k-effective (Track-length) = 1.04608 +/- 0.00216\n", + " k-effective (Absorption) = 1.04242 +/- 0.00147\n", + " Combined k-effective = 1.04347 +/- 0.00134\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -556,10 +558,9 @@ "\tID =\t1\n", "\tName =\tflux\n", "\tFilters =\tMeshFilter\n", - "\tNuclides =\ttotal \n", + "\tNuclides =\ttotal\n", "\tScores =\t['flux', 'fission']\n", - "\tEstimator =\ttracklength\n", - "\n" + "\tEstimator =\ttracklength\n" ] } ], @@ -583,19 +584,19 @@ { "data": { "text/plain": [ - "array([[[0.40767451, 0. ]],\n", + "array([[[0.41112167, 0. ]],\n", "\n", - " [[0.40933814, 0. ]],\n", + " [[0.41090482, 0. ]],\n", "\n", - " [[0.4119165 , 0. ]],\n", + " [[0.410451 , 0. ]],\n", "\n", " ...,\n", "\n", - " [[0.40854327, 0. ]],\n", + " [[0.41289992, 0. ]],\n", "\n", - " [[0.40970805, 0. ]],\n", + " [[0.41195517, 0. ]],\n", "\n", - " [[0.40948065, 0. ]]])" + " [[0.41092952, 0. ]]])" ] }, "execution_count": 17, @@ -629,32 +630,32 @@ { "data": { "text/plain": [ - "(array([[[0.00452972, 0. ]],\n", + "(array([[[0.00456802, 0. ]],\n", " \n", - " [[0.0045482 , 0. ]],\n", + " [[0.00456561, 0. ]],\n", " \n", - " [[0.00457685, 0. ]],\n", + " [[0.00456057, 0. ]],\n", " \n", " ...,\n", " \n", - " [[0.00453937, 0. ]],\n", + " [[0.00458778, 0. ]],\n", " \n", - " [[0.00455231, 0. ]],\n", + " [[0.00457728, 0. ]],\n", " \n", - " [[0.00454978, 0. ]]]),\n", - " array([[[2.03553236e-05, 0.00000000e+00]],\n", + " [[0.00456588, 0. ]]]),\n", + " array([[[1.98396826e-05, 0.00000000e+00]],\n", " \n", - " [[1.83847389e-05, 0.00000000e+00]],\n", + " [[1.81394159e-05, 0.00000000e+00]],\n", " \n", - " [[1.68647098e-05, 0.00000000e+00]],\n", + " [[1.52107867e-05, 0.00000000e+00]],\n", " \n", " ...,\n", " \n", - " [[1.71606078e-05, 0.00000000e+00]],\n", + " [[1.93971958e-05, 0.00000000e+00]],\n", " \n", - " [[1.87645811e-05, 0.00000000e+00]],\n", + " [[1.97108386e-05, 0.00000000e+00]],\n", " \n", - " [[1.94447454e-05, 0.00000000e+00]]]))" + " [[2.17053017e-05, 0.00000000e+00]]]))" ] }, "execution_count": 18, @@ -687,10 +688,9 @@ "\tID =\t2\n", "\tName =\tflux\n", "\tFilters =\tMeshFilter\n", - "\tNuclides =\ttotal \n", + "\tNuclides =\ttotal\n", "\tScores =\t['flux']\n", - "\tEstimator =\ttracklength\n", - "\n" + "\tEstimator =\ttracklength\n" ] } ], @@ -727,7 +727,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 21, @@ -736,7 +736,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -768,7 +768,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -811,14 +811,14 @@ { "data": { "text/plain": [ - "array([((-0.28690552, -0.23731283, 0.51447853), ( 0.02705364, -0.14292142, 0.98936422), 1780128.70101981, 1., 0, 0),\n", - " ((-0.28690552, -0.23731283, 0.51447853), (-0.16786951, 0.86432444, -0.47409186), 1553436.10501094, 1., 0, 0),\n", - " (( 0.17162994, 0.134092 , 0.42932363), ( 0.25199134, -0.11168216, 0.96126347), 829530.02360943, 1., 0, 0),\n", + "array([(( 0.26027228, 0.00233217, -0.57490767), (-0.35985969, -0.93061847, -0.06671029), 588560.32314432, 1., 0, 0),\n", + " (( 0.26027228, 0.00233217, -0.57490767), (-0.80078048, 0.18073397, 0.57103927), 1645182.36442112, 1., 0, 0),\n", + " (( 0.22481461, -0.27048948, 0.21306308), ( 0.10752921, -0.09751817, 0.98940774), 1485102.87429902, 1., 0, 0),\n", " ...,\n", - " ((-0.24444068, -0.01351615, -0.41772172), ( 0.10437178, -0.86754673, 0.486281 ), 807617.55637656, 1., 0, 0),\n", - " ((-0.2146841 , 0.14307096, 0.07419328), ( 0.89645066, -0.35557279, -0.26446968), 6036005.44157462, 1., 0, 0),\n", - " ((-0.2146841 , 0.14307096, 0.07419328), (-0.95287644, -0.25857878, 0.15863005), 4923751.04163063, 1., 0, 0)],\n", - " dtype=[('r', [('x', '" ] @@ -940,7 +940,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -977,7 +977,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.0" + "version": "3.8.5" } }, "nbformat": 4, From 3cb21a6f03028b455dbb70db21c42bf9e485be91 Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Sat, 15 Aug 2020 07:04:17 +0100 Subject: [PATCH 056/122] Get rid of warnings --- examples/jupyter/pincell.ipynb | 170 +++++++++++++++------------------ 1 file changed, 75 insertions(+), 95 deletions(-) diff --git a/examples/jupyter/pincell.ipynb b/examples/jupyter/pincell.ipynb index 06ac8dc58..9e8775805 100644 --- a/examples/jupyter/pincell.ipynb +++ b/examples/jupyter/pincell.ipynb @@ -166,18 +166,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/master/anaconda3/envs/OMC/lib/python3.8/site-packages/openmc/mixin.py:68: IDWarning: Another Material instance already exists with id=2.\n", - " warn(msg, IDWarning)\n" - ] - } - ], + "outputs": [], "source": [ "zirconium = openmc.Material(2, \"zirconium\")\n", "zirconium.add_element('Zr', 1.0)\n", @@ -198,7 +189,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -214,7 +205,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -230,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -239,7 +230,7 @@ "True" ] }, - "execution_count": 10, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -260,7 +251,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -315,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -377,7 +368,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -425,7 +416,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -446,7 +437,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -489,7 +480,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -507,7 +498,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -524,7 +515,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -550,7 +541,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -567,7 +558,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -576,7 +567,7 @@ "(array([-1., -1., 0.]), array([1., 1., 1.]))" ] }, - "execution_count": 20, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -594,7 +585,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -614,7 +605,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -637,7 +628,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -657,22 +648,22 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 24, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -696,22 +687,22 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 25, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -735,16 +726,16 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 26, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, @@ -783,7 +774,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -801,7 +792,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -819,20 +810,9 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 33, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/master/anaconda3/envs/OMC/lib/python3.8/site-packages/openmc/mixin.py:68: IDWarning: Another Cell instance already exists with id=1.\n", - " warn(msg, IDWarning)\n", - "/home/master/anaconda3/envs/OMC/lib/python3.8/site-packages/openmc/mixin.py:68: IDWarning: Another Cell instance already exists with id=2.\n", - " warn(msg, IDWarning)\n" - ] - } - ], + "outputs": [], "source": [ "fuel = openmc.Cell(1, 'fuel')\n", "fuel.fill = uo2\n", @@ -855,7 +835,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -875,7 +855,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ @@ -895,7 +875,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -904,7 +884,7 @@ "openmc.region.Intersection" ] }, - "execution_count": 32, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -924,7 +904,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -940,7 +920,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -987,7 +967,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -1005,7 +985,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ @@ -1023,7 +1003,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -1060,7 +1040,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 42, "metadata": {}, "outputs": [], "source": [ @@ -1079,7 +1059,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 43, "metadata": {}, "outputs": [], "source": [ @@ -1096,7 +1076,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 44, "metadata": {}, "outputs": [ { @@ -1134,7 +1114,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 45, "metadata": { "scrolled": true }, @@ -1172,7 +1152,7 @@ " License | https://docs.openmc.org/en/latest/license.html\n", " Version | 0.12.0\n", " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", - " Date/Time | 2020-08-15 06:49:11\n", + " Date/Time | 2020-08-15 07:03:19\n", " OpenMP Threads | 4\n", "\n", " Reading settings XML file...\n", @@ -1306,20 +1286,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 6.9980e-01 seconds\n", - " Reading cross sections = 6.8788e-01 seconds\n", - " Total time in simulation = 1.9251e+00 seconds\n", - " Time in transport only = 1.9072e+00 seconds\n", - " Time in inactive batches = 1.5794e-01 seconds\n", - " Time in active batches = 1.7672e+00 seconds\n", - " Time synchronizing fission bank = 4.2579e-03 seconds\n", - " Sampling source sites = 3.4948e-03 seconds\n", - " SEND/RECV source sites = 5.9671e-04 seconds\n", - " Time accumulating tallies = 7.9162e-05 seconds\n", - " Total time for finalization = 5.7305e-05 seconds\n", - " Total time elapsed = 2.6291e+00 seconds\n", - " Calculation Rate (inactive) = 63313.6 particles/second\n", - " Calculation Rate (active) = 50928.0 particles/second\n", + " Total time for initialization = 6.9749e-01 seconds\n", + " Reading cross sections = 6.8627e-01 seconds\n", + " Total time in simulation = 1.9684e+00 seconds\n", + " Time in transport only = 1.9468e+00 seconds\n", + " Time in inactive batches = 1.5675e-01 seconds\n", + " Time in active batches = 1.8117e+00 seconds\n", + " Time synchronizing fission bank = 4.5360e-03 seconds\n", + " Sampling source sites = 3.6973e-03 seconds\n", + " SEND/RECV source sites = 6.8224e-04 seconds\n", + " Time accumulating tallies = 1.0140e-04 seconds\n", + " Total time for finalization = 5.5400e-05 seconds\n", + " Total time elapsed = 2.6701e+00 seconds\n", + " Calculation Rate (inactive) = 63796.4 particles/second\n", + " Calculation Rate (active) = 49677.1 particles/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1345,7 +1325,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 46, "metadata": {}, "outputs": [ { @@ -1378,7 +1358,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -1399,7 +1379,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 48, "metadata": {}, "outputs": [ { @@ -1434,7 +1414,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 49, "metadata": {}, "outputs": [ { @@ -1470,7 +1450,7 @@ " License | https://docs.openmc.org/en/latest/license.html\n", " Version | 0.12.0\n", " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", - " Date/Time | 2020-08-15 06:49:14\n", + " Date/Time | 2020-08-15 07:03:32\n", " OpenMP Threads | 4\n", "\n", " Reading settings XML file...\n", @@ -1510,7 +1490,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 50, "metadata": {}, "outputs": [], "source": [ @@ -1526,19 +1506,19 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 51, "metadata": { "scrolled": false }, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QIDwcxDg24lJMAAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE1VDA2OjQ5OjE0KzAxOjAwlLKpXwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xNVQwNjo0OToxNCswMTowMOXvEeMAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QIDwgDIDdCihAAAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE1VDA3OjAzOjMyKzAxOjAwzyqh1gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xNVQwNzowMzozMiswMTowML53GWoAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, - "execution_count": 47, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } @@ -1557,17 +1537,17 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 52, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QIDwcxDg24lJMAAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE1VDA2OjQ5OjE0KzAxOjAwlLKpXwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xNVQwNjo0OToxNCswMTowMOXvEeMAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QIDwgDItlM6zwAAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE1VDA3OjAzOjM0KzAxOjAwrPqU7AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xNVQwNzowMzozNCswMTowMN2nLFAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, - "execution_count": 48, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } From b2412adb740d959a3c1eff421cb6409ed9da418b Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Sat, 15 Aug 2020 07:11:22 +0100 Subject: [PATCH 057/122] Add files via upload --- examples/jupyter/pandas-dataframes.ipynb | 1785 ++++++++++++---------- 1 file changed, 982 insertions(+), 803 deletions(-) diff --git a/examples/jupyter/pandas-dataframes.ipynb b/examples/jupyter/pandas-dataframes.ipynb index 7cc2d92e9..ddc8ee429 100644 --- a/examples/jupyter/pandas-dataframes.ipynb +++ b/examples/jupyter/pandas-dataframes.ipynb @@ -14,13 +14,11 @@ "outputs": [], "source": [ "import glob\n", - "\n", "from IPython.display import Image\n", "import matplotlib.pyplot as plt\n", "import scipy.stats\n", "import numpy as np\n", "import pandas as pd\n", - "\n", "import openmc\n", "%matplotlib inline" ] @@ -79,10 +77,10 @@ "outputs": [], "source": [ "# Instantiate a Materials collection\n", - "materials_file = openmc.Materials([fuel, water, zircaloy])\n", + "materials = openmc.Materials([fuel, water, zircaloy])\n", "\n", "# Export to \"materials.xml\"\n", - "materials_file.export_to_xml()" + "materials.export_to_xml()" ] }, { @@ -256,7 +254,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98iBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+MHEhEuBAW6hPoAAAOeSURBVGje7ZtLkqowFIZPrAsDRz247YAluIosgYEO2h20q3AJDFyAA6wSVnkDCAnkBAK/lH0bTpVVX1mCmsfJRx5E7w6hXn/U64PFWKNkkaIriXNMQWajpNDAO9HJQqJzRmGeUpRLHkVeYOJAEnkut+qT5zxpI/EYtZE26qJI3Uy9x2NY4sOBFDafvNWYD2NSo/H9t6FbJRY+qv///E0GbnowNZGqgkxpX1xf4XkYLzWq+rureyRVpfGYUuBEok/VxI6SxJHFQ4MBi2sEsSoIKktqAlJREUVNhZmscTeMzWVN+4l084h082h6atHApG4/DTrar9AtVdiN1my/Rv9huxLXafJ5+u/G/lIOH1b/3fb9aWdRUKv/GiU9BlUi1vVfYlwm7V5s6j8u2p9UnfHZpsbjGnVOO07CcvxsMm2m06uB93rQbGHajJ++Sb+LW91/s6FBp4sh038njX8hcn3WP/7zP7o9/hf/P9ROEfb7R2ZiVI2fRZletfQkXiieSLSrRCq4u7Dwr28XriGkNt02/rWRLKylN8xaeHKjNJH6pJdHT/+Vbun9f/z3zHbamf13PyS9nP/uLOnlsczKGeO/h0m4RimycrT/fsZt//WQXg55/zWa0oWR3tV/u/7L5S/Wf6389Rr/9ZBeHrXIHliMtfSyuMZOldZX5bS7eBQKheSSXt6fLBWmjrR5Se/qvz7+6y4023/9pJfB0nTpW0uvNyar/5YhZJOpOmj7b2AjRanW29TDf3MD1T08pdelwqv/9viDS3pn89+0i6b/Zl2s/Nfwt9H+++6+8xOi678WPkuKR2IqbVB6o37/3Tv89zLWf33aL9p/5vHf/vzxSv8lxH9v1E7abWSk99pFznRH4eKj8Jevp5McWKxMl8HSX4alt0+Fnf7r4W9bdvwc478v8NeX++/I34+WH1p/cPtZeqD5C82fYP5Gxw90/Pot/jvVX1B/gv1t6YE+P4DPL+jz0+/x32nPz+jzOzp/AM9fCInNnyw90Pk7cP4Qnb9E509f56/T5o/R+Wt0/hydv4fXD5Ye6PoVuH6Grt/N47/+65ezzB+NWL9F14/R9Wt0/Rxev196oPtHwP0r8/iv//6d1X+x/WPw/jUhsf1zSw90/+YZ2z+K7l9d/RfbP43u34b3jy890PMLJ+z8xGv8d/r5kdV/sfNL6Pkp+PzW0gM9PwieX0TPT87rv5P2D/4M//U8v4ueH4bPL6Pnp98b/wAXomzv5H3x5AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0wNy0xOFQyMjo0NjowNC0wNTowMEOkh1cAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDctMThUMjI6NDY6MDQtMDU6MDAy+T/rAAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98iBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+QIDwgKFMc0xewAAAOeSURBVGje7ZtLkqowFIZPrAsDRz247YAluIosgYEO2h20q3AJDFyAA6wSVnkDCAnkBAK/lH0bTpVVX1mCmsfJRx5E7w6hXn/U64PFWKNkkaIriXNMQWajpNDAO9HJQqJzRmGeUpRLHkVeYOJAEnkut+qT5zxpI/EYtZE26qJI3Uy9x2NY4sOBFDafvNWYD2NSo/H9t6FbJRY+qv///E0GbnowNZGqgkxpX1xf4XkYLzWq+rureyRVpfGYUuBEok/VxI6SxJHFQ4MBi2sEsSoIKktqAlJREUVNhZmscTeMzWVN+4l084h082h6atHApG4/DTrar9AtVdiN1my/Rv9huxLXafJ5+u/G/lIOH1b/3fb9aWdRUKv/GiU9BlUi1vVfYlwm7V5s6j8u2p9UnfHZpsbjGnVOO07CcvxsMm2m06uB93rQbGHajJ++Sb+LW91/s6FBp4sh038njX8hcn3WP/7zP7o9/hf/P9ROEfb7R2ZiVI2fRZletfQkXiieSLSrRCq4u7Dwr28XriGkNt02/rWRLKylN8xaeHKjNJH6pJdHT/+Vbun9f/z3zHbamf13PyS9nP/uLOnlsczKGeO/h0m4RimycrT/fsZt//WQXg55/zWa0oWR3tV/u/7L5S/Wf6389Rr/9ZBeHrXIHliMtfSyuMZOldZX5bS7eBQKheSSXt6fLBWmjrR5Se/qvz7+6y4023/9pJfB0nTpW0uvNyar/5YhZJOpOmj7b2AjRanW29TDf3MD1T08pdelwqv/9viDS3pn89+0i6b/Zl2s/Nfwt9H+++6+8xOi678WPkuKR2IqbVB6o37/3Tv89zLWf33aL9p/5vHf/vzxSv8lxH9v1E7abWSk99pFznRH4eKj8Jevp5McWKxMl8HSX4alt0+Fnf7r4W9bdvwc478v8NeX++/I34+WH1p/cPtZeqD5C82fYP5Gxw90/Pot/jvVX1B/gv1t6YE+P4DPL+jz0+/x32nPz+jzOzp/AM9fCInNnyw90Pk7cP4Qnb9E509f56/T5o/R+Wt0/hydv4fXD5Ye6PoVuH6Grt/N47/+65ezzB+NWL9F14/R9Wt0/Rxev196oPtHwP0r8/iv//6d1X+x/WPw/jUhsf1zSw90/+YZ2z+K7l9d/RfbP43u34b3jy890PMLJ+z8xGv8d/r5kdV/sfNL6Pkp+PzW0gM9PwieX0TPT87rv5P2D/4M//U8v4ueH4bPL6Pnp98b/wAXomzv5H3x5AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wOC0xNVQwNzoxMDoyMCswMTowML6m1KIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDgtMTVUMDc6MTA6MjArMDE6MDDP+2weAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] @@ -436,645 +434,829 @@ " %%%%%%%%%%%\n", "\n", " | The OpenMC Monte Carlo Code\n", - " Copyright | 2011-2019 MIT and OpenMC contributors\n", - " License | http://openmc.readthedocs.io/en/latest/license.html\n", - " Version | 0.11.0-dev\n", - " Git SHA1 | 61c911cffdae2406f9f4bc667a9a6954748bb70c\n", - " Date/Time | 2019-07-18 22:46:04\n", + " Copyright | 2011-2020 MIT and OpenMC contributors\n", + " License | https://docs.openmc.org/en/latest/license.html\n", + " Version | 0.12.0\n", + " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", + " Date/Time | 2020-08-15 07:10:20\n", " OpenMP Threads | 4\n", "\n", " Reading settings XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", " Reading geometry XML file...\n", - " Reading U235 from /opt/data/hdf5/nndc_hdf5_v15/U235.h5\n", - " Reading U238 from /opt/data/hdf5/nndc_hdf5_v15/U238.h5\n", - " Reading O16 from /opt/data/hdf5/nndc_hdf5_v15/O16.h5\n", - " Reading H1 from /opt/data/hdf5/nndc_hdf5_v15/H1.h5\n", - " Reading B10 from /opt/data/hdf5/nndc_hdf5_v15/B10.h5\n", - " Reading Zr90 from /opt/data/hdf5/nndc_hdf5_v15/Zr90.h5\n", - " Maximum neutron transport energy: 20000000.000000 eV for U235\n", + " Reading U235 from /home/master/data/nuclear/endfb71_hdf5/U235.h5\n", + " Reading U238 from /home/master/data/nuclear/endfb71_hdf5/U238.h5\n", + " Reading O16 from /home/master/data/nuclear/endfb71_hdf5/O16.h5\n", + " Reading H1 from /home/master/data/nuclear/endfb71_hdf5/H1.h5\n", + " Reading B10 from /home/master/data/nuclear/endfb71_hdf5/B10.h5\n", + " Reading Zr90 from /home/master/data/nuclear/endfb71_hdf5/Zr90.h5\n", + " Minimum neutron data temperature: 294.000000 K\n", + " Maximum neutron data temperature: 294.000000 K\n", " Reading tallies XML file...\n", + " Preparing distributed cell instances...\n", " Writing summary.h5 file...\n", + " Maximum neutron transport energy: 20000000.000000 eV for U235\n", " Initializing source particles...\n", "\n", " ====================> K EIGENVALUE SIMULATION <====================\n", "\n", " Bat./Gen. k Average k\n", " ========= ======== ====================\n", - " 1/1 0.55921\n", - " 2/1 0.63816\n", - " 3/1 0.68834\n", - " 4/1 0.71192\n", - " 5/1 0.67935\n", - " 6/1 0.68254\n", - " 7/1 0.65804 0.67029 +/- 0.01225\n", - " 8/1 0.66225 0.66761 +/- 0.00756\n", - " 9/1 0.66336 0.66655 +/- 0.00545\n", - " 10/1 0.70686 0.67461 +/- 0.00910\n", - " 11/1 0.71753 0.68176 +/- 0.01031\n", - " 12/1 0.66967 0.68004 +/- 0.00889\n", - " 13/1 0.67800 0.67978 +/- 0.00770\n", - " 14/1 0.65634 0.67718 +/- 0.00727\n", - " 15/1 0.66891 0.67635 +/- 0.00656\n", - " 16/1 0.66281 0.67512 +/- 0.00606\n", - " 17/1 0.68160 0.67566 +/- 0.00556\n", - " 18/1 0.63835 0.67279 +/- 0.00586\n", - " 19/1 0.66200 0.67202 +/- 0.00548\n", - " 20/1 0.67156 0.67199 +/- 0.00510\n", - " Triggers unsatisfied, max unc./thresh. is 68.3537 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 70089 --- greater than max batches\n", + " 1/1 0.53544\n", + " 2/1 0.62631\n", + " 3/1 0.63917\n", + " 4/1 0.67203\n", + " 5/1 0.69300\n", + " 6/1 0.64862\n", + " 7/1 0.63937 0.64399 +/- 0.00463\n", + " 8/1 0.67696 0.65498 +/- 0.01131\n", + " 9/1 0.63216 0.64928 +/- 0.00982\n", + " 10/1 0.70996 0.66141 +/- 0.01433\n", + " 11/1 0.69761 0.66745 +/- 0.01316\n", + " 12/1 0.68662 0.67019 +/- 0.01146\n", + " 13/1 0.64374 0.66688 +/- 0.01046\n", + " 14/1 0.69121 0.66958 +/- 0.00961\n", + " 15/1 0.72125 0.67475 +/- 0.01003\n", + " 16/1 0.72706 0.67950 +/- 0.01024\n", + " 17/1 0.69623 0.68090 +/- 0.00945\n", + " 18/1 0.70953 0.68310 +/- 0.00897\n", + " 19/1 0.69026 0.68361 +/- 0.00832\n", + " 20/1 0.68633 0.68379 +/- 0.00775\n", + " Triggers unsatisfied, max unc./thresh. is 75.24758750489383 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 84938 --- greater than max batches\n", " Creating state point statepoint.020.h5...\n", - " 21/1 0.67469 0.67216 +/- 0.00478\n", - " Triggers unsatisfied, max unc./thresh. is 63.9814 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 65503 --- greater than max batches\n", - " 22/1 0.69218 0.67334 +/- 0.00464\n", - " Triggers unsatisfied, max unc./thresh. is 64.4829 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 70692 --- greater than max batches\n", - " 23/1 0.72838 0.67639 +/- 0.00534\n", - " Triggers unsatisfied, max unc./thresh. is 65.1347 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 76371 --- greater than max batches\n", - " 24/1 0.68472 0.67683 +/- 0.00507\n", - " Triggers unsatisfied, max unc./thresh. is 61.6163 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 72140 --- greater than max batches\n", - " 25/1 0.66664 0.67632 +/- 0.00483\n", - " Triggers unsatisfied, max unc./thresh. is 59.0208 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 69675 --- greater than max batches\n", - " 26/1 0.65315 0.67522 +/- 0.00473\n", - " Triggers unsatisfied, max unc./thresh. is 56.5216 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 67094 --- greater than max batches\n", - " 27/1 0.63865 0.67356 +/- 0.00480\n", - " Triggers unsatisfied, max unc./thresh. is 53.8991 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 63918 --- greater than max batches\n", - " 28/1 0.68053 0.67386 +/- 0.00460\n", - " Triggers unsatisfied, max unc./thresh. is 51.504 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61017 --- greater than max batches\n", - " 29/1 0.71585 0.67561 +/- 0.00474\n", - " Triggers unsatisfied, max unc./thresh. is 49.3115 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58364 --- greater than max batches\n", - " 30/1 0.67268 0.67549 +/- 0.00455\n", - " Triggers unsatisfied, max unc./thresh. is 47.3457 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 56046 --- greater than max batches\n", - " 31/1 0.67027 0.67529 +/- 0.00437\n", - " Triggers unsatisfied, max unc./thresh. is 48.2456 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60524 --- greater than max batches\n", - " 32/1 0.67324 0.67522 +/- 0.00421\n", - " Triggers unsatisfied, max unc./thresh. is 47.1077 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59922 --- greater than max batches\n", - " 33/1 0.66398 0.67481 +/- 0.00408\n", - " Triggers unsatisfied, max unc./thresh. is 45.4352 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57807 --- greater than max batches\n", - " 34/1 0.66373 0.67443 +/- 0.00395\n", - " Triggers unsatisfied, max unc./thresh. is 44.8243 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58273 --- greater than max batches\n", - " 35/1 0.68412 0.67476 +/- 0.00383\n", - " Triggers unsatisfied, max unc./thresh. is 43.7412 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57404 --- greater than max batches\n", - " 36/1 0.66026 0.67429 +/- 0.00374\n", - " Triggers unsatisfied, max unc./thresh. is 43.0549 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57471 --- greater than max batches\n", - " 37/1 0.67283 0.67424 +/- 0.00362\n", - " Triggers unsatisfied, max unc./thresh. is 42.9634 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59073 --- greater than max batches\n", - " 38/1 0.69507 0.67487 +/- 0.00356\n", - " Triggers unsatisfied, max unc./thresh. is 41.6527 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57259 --- greater than max batches\n", - " 39/1 0.68681 0.67522 +/- 0.00347\n", - " Triggers unsatisfied, max unc./thresh. is 40.4174 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 55547 --- greater than max batches\n", - " 40/1 0.65886 0.67476 +/- 0.00340\n", - " Triggers unsatisfied, max unc./thresh. is 39.424 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 54404 --- greater than max batches\n", - " 41/1 0.63736 0.67372 +/- 0.00347\n", - " Triggers unsatisfied, max unc./thresh. is 40.094 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57877 --- greater than max batches\n", - " 42/1 0.71800 0.67491 +/- 0.00358\n", - " Triggers unsatisfied, max unc./thresh. is 39.0603 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 56457 --- greater than max batches\n", - " 43/1 0.67193 0.67484 +/- 0.00348\n", - " Triggers unsatisfied, max unc./thresh. is 38.8448 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57344 --- greater than max batches\n", - " 44/1 0.66680 0.67463 +/- 0.00340\n", - " Triggers unsatisfied, max unc./thresh. is 38.227 for absorption in tally 3\n" + " 21/1 0.68310 0.68375 +/- 0.00725\n", + " Triggers unsatisfied, max unc./thresh. is 71.20148627325992 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 81120 --- greater than max batches\n", + " 22/1 0.68679 0.68393 +/- 0.00681\n", + " Triggers unsatisfied, max unc./thresh. is 66.94650483064697 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 76197 --- greater than max batches\n", + " 23/1 0.67440 0.68340 +/- 0.00644\n", + " Triggers unsatisfied, max unc./thresh. is 63.553590826021285 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 72709 --- greater than max batches\n", + " 24/1 0.67483 0.68295 +/- 0.00611\n", + " Triggers unsatisfied, max unc./thresh. is 60.37873858685279 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 69272 --- greater than max batches\n", + " 25/1 0.71558 0.68458 +/- 0.00602\n", + " Triggers unsatisfied, max unc./thresh. is 60.34535216026281 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 72837 --- greater than max batches\n", + " 26/1 0.71853 0.68620 +/- 0.00595\n", + " Triggers unsatisfied, max unc./thresh. is 59.60875760463032 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 74623 --- greater than max batches\n", + " 27/1 0.67455 0.68567 +/- 0.00570\n", + " Triggers unsatisfied, max unc./thresh. is 57.228951643423976 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 72059 --- greater than max batches\n", + " 28/1 0.69435 0.68605 +/- 0.00546\n", + " Triggers unsatisfied, max unc./thresh. is 56.194065573871285 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 72634 --- greater than max batches\n", + " 29/1 0.67706 0.68567 +/- 0.00524\n", + " Triggers unsatisfied, max unc./thresh. is 53.86022066923874 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 69628 --- greater than max batches\n", + " 30/1 0.69294 0.68596 +/- 0.00504\n", + " Triggers unsatisfied, max unc./thresh. is 51.73413206858763 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 66916 --- greater than max batches\n", + " 31/1 0.69108 0.68616 +/- 0.00484\n", + " Triggers unsatisfied, max unc./thresh. is 49.71174462484801 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64258 --- greater than max batches\n", + " 32/1 0.68089 0.68596 +/- 0.00466\n", + " Triggers unsatisfied, max unc./thresh. is 50.80993117627794 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 69710 --- greater than max batches\n", + " 33/1 0.67698 0.68564 +/- 0.00450\n", + " Triggers unsatisfied, max unc./thresh. is 50.46659333785448 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 71318 --- greater than max batches\n", + " 34/1 0.68167 0.68551 +/- 0.00435\n", + " Triggers unsatisfied, max unc./thresh. is 48.852656603250665 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 69216 --- greater than max batches\n", + " 35/1 0.67760 0.68524 +/- 0.00421\n", + " Triggers unsatisfied, max unc./thresh. is 48.5685583427197 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 70773 --- greater than max batches\n", + " 36/1 0.67628 0.68495 +/- 0.00408\n", + " Triggers unsatisfied, max unc./thresh. is 47.77661998216646 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 70766 --- greater than max batches\n", + " 37/1 0.66736 0.68440 +/- 0.00399\n", + " Triggers unsatisfied, max unc./thresh. is 46.57810773879176 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 69430 --- greater than max batches\n", + " 38/1 0.71026 0.68519 +/- 0.00395\n", + " Triggers unsatisfied, max unc./thresh. is 45.876107560616674 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 69458 --- greater than max batches\n", + " 39/1 0.67674 0.68494 +/- 0.00384\n", + " Triggers unsatisfied, max unc./thresh. is 45.30341918376721 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 69787 --- greater than max batches\n", + " 40/1 0.69360 0.68519 +/- 0.00373\n", + " Triggers unsatisfied, max unc./thresh. is 44.018056562863386 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 67821 --- greater than max batches\n", + " 41/1 0.70987 0.68587 +/- 0.00369\n", + " Triggers unsatisfied, max unc./thresh. is 42.781078099052785 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 65893 --- greater than max batches\n", + " 42/1 0.68780 0.68592 +/- 0.00359\n", + " Triggers unsatisfied, max unc./thresh. is 41.60877069209228 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64063 --- greater than max batches\n", + " 43/1 0.69223 0.68609 +/- 0.00350\n", + " Triggers unsatisfied, max unc./thresh. is 42.44932759168626 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 68479 --- greater than max batches\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - " WARNING: The estimated number of batches is 56996 --- greater than max batches\n", - " 45/1 0.65956 0.67425 +/- 0.00334\n", - " Triggers unsatisfied, max unc./thresh. is 37.2591 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 55535 --- greater than max batches\n", - " 46/1 0.64705 0.67359 +/- 0.00332\n", - " Triggers unsatisfied, max unc./thresh. is 37.802 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58594 --- greater than max batches\n", - " 47/1 0.67729 0.67368 +/- 0.00324\n", - " Triggers unsatisfied, max unc./thresh. is 36.9727 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57419 --- greater than max batches\n", - " 48/1 0.68259 0.67389 +/- 0.00317\n", - " Triggers unsatisfied, max unc./thresh. is 36.3752 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 56901 --- greater than max batches\n", - " 49/1 0.64395 0.67320 +/- 0.00317\n", - " Triggers unsatisfied, max unc./thresh. is 35.7676 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 56296 --- greater than max batches\n", - " 50/1 0.68839 0.67354 +/- 0.00312\n", - " Triggers unsatisfied, max unc./thresh. is 34.977 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 55058 --- greater than max batches\n", - " 51/1 0.71108 0.67436 +/- 0.00316\n", - " Triggers unsatisfied, max unc./thresh. is 34.453 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 54608 --- greater than max batches\n", - " 52/1 0.66286 0.67411 +/- 0.00310\n", - " Triggers unsatisfied, max unc./thresh. is 33.9781 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 54268 --- greater than max batches\n", - " 53/1 0.62666 0.67313 +/- 0.00319\n", - " Triggers unsatisfied, max unc./thresh. is 33.4946 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 53856 --- greater than max batches\n", - " 54/1 0.67124 0.67309 +/- 0.00313\n", - " Triggers unsatisfied, max unc./thresh. is 32.8639 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 52927 --- greater than max batches\n", - " 55/1 0.67741 0.67317 +/- 0.00306\n", - " Triggers unsatisfied, max unc./thresh. is 32.2922 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 52145 --- greater than max batches\n", - " 56/1 0.67182 0.67315 +/- 0.00300\n", - " Triggers unsatisfied, max unc./thresh. is 31.9136 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 51948 --- greater than max batches\n", - " 57/1 0.68764 0.67343 +/- 0.00296\n", - " Triggers unsatisfied, max unc./thresh. is 31.3059 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 50969 --- greater than max batches\n", - " 58/1 0.72310 0.67436 +/- 0.00305\n", - " Triggers unsatisfied, max unc./thresh. is 30.8841 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 50558 --- greater than max batches\n", - " 59/1 0.67689 0.67441 +/- 0.00299\n", - " Triggers unsatisfied, max unc./thresh. is 30.5895 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 50534 --- greater than max batches\n", - " 60/1 0.65890 0.67413 +/- 0.00295\n", - " Triggers unsatisfied, max unc./thresh. is 30.0567 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 49693 --- greater than max batches\n", - " 61/1 0.69128 0.67443 +/- 0.00291\n", - " Triggers unsatisfied, max unc./thresh. is 29.8144 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 49784 --- greater than max batches\n", - " 62/1 0.65469 0.67409 +/- 0.00288\n", - " Triggers unsatisfied, max unc./thresh. is 29.3138 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 48986 --- greater than max batches\n", - " 63/1 0.71839 0.67485 +/- 0.00293\n", - " Triggers unsatisfied, max unc./thresh. is 28.9465 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 48604 --- greater than max batches\n", - " 64/1 0.69556 0.67520 +/- 0.00291\n", - " Triggers unsatisfied, max unc./thresh. is 29.1602 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 50174 --- greater than max batches\n", - " 65/1 0.70067 0.67563 +/- 0.00289\n", - " Triggers unsatisfied, max unc./thresh. is 28.9248 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 50204 --- greater than max batches\n", - " 66/1 0.67994 0.67570 +/- 0.00284\n", - " Triggers unsatisfied, max unc./thresh. is 28.7841 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 50545 --- greater than max batches\n", - " 67/1 0.74539 0.67682 +/- 0.00301\n", - " Triggers unsatisfied, max unc./thresh. is 28.4946 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 50346 --- greater than max batches\n", - " 68/1 0.67753 0.67683 +/- 0.00296\n", - " Triggers unsatisfied, max unc./thresh. is 28.1166 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 49810 --- greater than max batches\n", - " 69/1 0.69595 0.67713 +/- 0.00293\n", - " Triggers unsatisfied, max unc./thresh. is 28.0441 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 50340 --- greater than max batches\n", - " 70/1 0.70621 0.67758 +/- 0.00292\n", - " Triggers unsatisfied, max unc./thresh. is 27.708 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 49908 --- greater than max batches\n", - " 71/1 0.71027 0.67807 +/- 0.00292\n", - " Triggers unsatisfied, max unc./thresh. is 27.2979 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 49187 --- greater than max batches\n", - " 72/1 0.63710 0.67746 +/- 0.00294\n", - " Triggers unsatisfied, max unc./thresh. is 27.3359 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 50071 --- greater than max batches\n", - " 73/1 0.70979 0.67794 +/- 0.00294\n", - " Triggers unsatisfied, max unc./thresh. is 29.5308 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59306 --- greater than max batches\n", - " 74/1 0.65957 0.67767 +/- 0.00291\n", - " Triggers unsatisfied, max unc./thresh. is 29.2344 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58976 --- greater than max batches\n", - " 75/1 0.66611 0.67751 +/- 0.00287\n", - " Triggers unsatisfied, max unc./thresh. is 28.8289 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58183 --- greater than max batches\n", - " 76/1 0.66033 0.67726 +/- 0.00284\n", - " Triggers unsatisfied, max unc./thresh. is 28.4986 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57670 --- greater than max batches\n", - " 77/1 0.68535 0.67738 +/- 0.00280\n", - " Triggers unsatisfied, max unc./thresh. is 28.2548 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57486 --- greater than max batches\n", - " 78/1 0.71920 0.67795 +/- 0.00282\n", - " Triggers unsatisfied, max unc./thresh. is 28.2853 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58410 --- greater than max batches\n", - " 79/1 0.67645 0.67793 +/- 0.00278\n", - " Triggers unsatisfied, max unc./thresh. is 27.9534 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57829 --- greater than max batches\n", - " 80/1 0.68300 0.67800 +/- 0.00275\n", - " Triggers unsatisfied, max unc./thresh. is 27.5813 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57060 --- greater than max batches\n", - " 81/1 0.69810 0.67826 +/- 0.00272\n", - " Triggers unsatisfied, max unc./thresh. is 27.2164 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 56301 --- greater than max batches\n", - " 82/1 0.68213 0.67831 +/- 0.00269\n", - " Triggers unsatisfied, max unc./thresh. is 26.8628 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 55570 --- greater than max batches\n", - " 83/1 0.68745 0.67843 +/- 0.00265\n", - " Triggers unsatisfied, max unc./thresh. is 26.5172 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 54852 --- greater than max batches\n", - " 84/1 0.65239 0.67810 +/- 0.00264\n", - " Triggers unsatisfied, max unc./thresh. is 26.2016 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 54241 --- greater than max batches\n" + " 44/1 0.69561 0.68633 +/- 0.00342\n", + " Triggers unsatisfied, max unc./thresh. is 41.34743776753899 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 66680 --- greater than max batches\n", + " 45/1 0.67503 0.68605 +/- 0.00334\n", + " Triggers unsatisfied, max unc./thresh. is 40.97332186124358 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 67158 --- greater than max batches\n", + " 46/1 0.67290 0.68573 +/- 0.00328\n", + " Triggers unsatisfied, max unc./thresh. is 40.24678448931756 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 66417 --- greater than max batches\n", + " 47/1 0.67355 0.68544 +/- 0.00321\n", + " Triggers unsatisfied, max unc./thresh. is 40.42620640829592 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 68645 --- greater than max batches\n", + " 48/1 0.71383 0.68610 +/- 0.00320\n", + " Triggers unsatisfied, max unc./thresh. is 39.90662320308606 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 68485 --- greater than max batches\n", + " 49/1 0.68389 0.68605 +/- 0.00313\n", + " Triggers unsatisfied, max unc./thresh. is 39.075369568753906 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 67188 --- greater than max batches\n", + " 50/1 0.73148 0.68706 +/- 0.00322\n", + " Triggers unsatisfied, max unc./thresh. is 38.57054567218653 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 66951 --- greater than max batches\n", + " 51/1 0.69796 0.68730 +/- 0.00316\n", + " Triggers unsatisfied, max unc./thresh. is 38.21572703507316 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 67186 --- greater than max batches\n", + " 52/1 0.70691 0.68771 +/- 0.00312\n", + " Triggers unsatisfied, max unc./thresh. is 37.50971908717773 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 66134 --- greater than max batches\n", + " 53/1 0.69104 0.68778 +/- 0.00306\n", + " Triggers unsatisfied, max unc./thresh. is 36.824732312223716 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 65096 --- greater than max batches\n", + " 54/1 0.74368 0.68892 +/- 0.00320\n", + " Triggers unsatisfied, max unc./thresh. is 36.20814737643575 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64246 --- greater than max batches\n", + " 55/1 0.67371 0.68862 +/- 0.00315\n", + " Triggers unsatisfied, max unc./thresh. is 35.48607231512293 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62969 --- greater than max batches\n", + " 56/1 0.67846 0.68842 +/- 0.00310\n", + " Triggers unsatisfied, max unc./thresh. is 35.34421893287461 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63715 --- greater than max batches\n", + " 57/1 0.66351 0.68794 +/- 0.00307\n", + " Triggers unsatisfied, max unc./thresh. is 34.67062652878957 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62512 --- greater than max batches\n", + " 58/1 0.67049 0.68761 +/- 0.00303\n", + " Triggers unsatisfied, max unc./thresh. is 34.22135922543247 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62074 --- greater than max batches\n", + " 59/1 0.66967 0.68728 +/- 0.00299\n", + " Triggers unsatisfied, max unc./thresh. is 33.66881484408945 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 61219 --- greater than max batches\n", + " 60/1 0.70271 0.68756 +/- 0.00295\n", + " Triggers unsatisfied, max unc./thresh. is 33.19914799505717 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60626 --- greater than max batches\n", + " 61/1 0.70035 0.68779 +/- 0.00291\n", + " Triggers unsatisfied, max unc./thresh. is 32.65594936729897 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59725 --- greater than max batches\n", + " 62/1 0.66274 0.68735 +/- 0.00289\n", + " Triggers unsatisfied, max unc./thresh. is 32.15622046485561 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 58945 --- greater than max batches\n", + " 63/1 0.68607 0.68733 +/- 0.00284\n", + " Triggers unsatisfied, max unc./thresh. is 31.601225649282494 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57926 --- greater than max batches\n", + " 64/1 0.66518 0.68695 +/- 0.00282\n", + " Triggers unsatisfied, max unc./thresh. is 31.12129365572805 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57149 --- greater than max batches\n", + " 65/1 0.65999 0.68650 +/- 0.00281\n", + " Triggers unsatisfied, max unc./thresh. is 30.641988019531464 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56341 --- greater than max batches\n", + " 66/1 0.67843 0.68637 +/- 0.00276\n", + " Triggers unsatisfied, max unc./thresh. is 30.320463443580458 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56085 --- greater than max batches\n", + " 67/1 0.69295 0.68648 +/- 0.00272\n", + " Triggers unsatisfied, max unc./thresh. is 30.06051080038397 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56031 --- greater than max batches\n", + " 68/1 0.69158 0.68656 +/- 0.00268\n", + " Triggers unsatisfied, max unc./thresh. is 29.7400907913873 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 55727 --- greater than max batches\n", + " 69/1 0.69825 0.68674 +/- 0.00264\n", + " Triggers unsatisfied, max unc./thresh. is 29.278619659445805 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 54869 --- greater than max batches\n", + " 70/1 0.73637 0.68750 +/- 0.00271\n", + " Triggers unsatisfied, max unc./thresh. is 28.945044018568716 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 54464 --- greater than max batches\n", + " 71/1 0.64301 0.68683 +/- 0.00275\n", + " Triggers unsatisfied, max unc./thresh. is 28.73677928804667 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 54508 --- greater than max batches\n", + " 72/1 0.71506 0.68725 +/- 0.00274\n", + " Triggers unsatisfied, max unc./thresh. is 29.20796537704291 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57164 --- greater than max batches\n", + " 73/1 0.69203 0.68732 +/- 0.00270\n", + " Triggers unsatisfied, max unc./thresh. is 29.56297016014581 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59435 --- greater than max batches\n", + " 74/1 0.69208 0.68739 +/- 0.00267\n", + " Triggers unsatisfied, max unc./thresh. is 29.545241442413783 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60237 --- greater than max batches\n", + " 75/1 0.65717 0.68696 +/- 0.00266\n", + " Triggers unsatisfied, max unc./thresh. is 29.284013224166248 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60034 --- greater than max batches\n", + " 76/1 0.70992 0.68728 +/- 0.00265\n", + " Triggers unsatisfied, max unc./thresh. is 29.00034584995327 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59718 --- greater than max batches\n", + " 77/1 0.65590 0.68685 +/- 0.00264\n", + " Triggers unsatisfied, max unc./thresh. is 28.867967845905174 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60007 --- greater than max batches\n", + " 78/1 0.64439 0.68626 +/- 0.00267\n", + " Triggers unsatisfied, max unc./thresh. is 29.016012595317935 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 61466 --- greater than max batches\n", + " 79/1 0.66295 0.68595 +/- 0.00265\n", + " Triggers unsatisfied, max unc./thresh. is 28.626245464278142 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60646 --- greater than max batches\n", + " 80/1 0.66672 0.68569 +/- 0.00263\n", + " Triggers unsatisfied, max unc./thresh. is 28.24218910063624 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59827 --- greater than max batches\n", + " 81/1 0.69110 0.68576 +/- 0.00260\n", + " Triggers unsatisfied, max unc./thresh. is 27.917349908027763 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59238 --- greater than max batches\n", + " 82/1 0.67481 0.68562 +/- 0.00257\n", + " Triggers unsatisfied, max unc./thresh. is 28.01946018168837 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60457 --- greater than max batches\n", + " 83/1 0.72216 0.68609 +/- 0.00258\n", + " Triggers unsatisfied, max unc./thresh. is 27.931394620754766 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60858 --- greater than max batches\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - " 85/1 0.64990 0.67775 +/- 0.00263\n", - " Triggers unsatisfied, max unc./thresh. is 25.9705 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 53963 --- greater than max batches\n", - " 86/1 0.68586 0.67785 +/- 0.00260\n", - " Triggers unsatisfied, max unc./thresh. is 25.7908 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 53884 --- greater than max batches\n", - " 87/1 0.63453 0.67732 +/- 0.00262\n", - " Triggers unsatisfied, max unc./thresh. is 25.5271 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 53439 --- greater than max batches\n", - " 88/1 0.65402 0.67704 +/- 0.00261\n", - " Triggers unsatisfied, max unc./thresh. is 25.321 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 53221 --- greater than max batches\n", - " 89/1 0.69063 0.67720 +/- 0.00258\n", - " Triggers unsatisfied, max unc./thresh. is 25.8769 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 56253 --- greater than max batches\n", - " 90/1 0.65729 0.67697 +/- 0.00256\n", - " Triggers unsatisfied, max unc./thresh. is 25.7648 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 56431 --- greater than max batches\n", - " 91/1 0.72355 0.67751 +/- 0.00259\n", - " Triggers unsatisfied, max unc./thresh. is 25.5034 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 55942 --- greater than max batches\n", - " 92/1 0.63010 0.67696 +/- 0.00262\n", - " Triggers unsatisfied, max unc./thresh. is 25.2708 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 55565 --- greater than max batches\n", - " 93/1 0.68610 0.67707 +/- 0.00259\n", - " Triggers unsatisfied, max unc./thresh. is 24.9941 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 54980 --- greater than max batches\n", - " 94/1 0.67618 0.67706 +/- 0.00256\n", - " Triggers unsatisfied, max unc./thresh. is 24.7139 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 54365 --- greater than max batches\n", - " 95/1 0.68946 0.67719 +/- 0.00253\n", - " Triggers unsatisfied, max unc./thresh. is 25.4371 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58240 --- greater than max batches\n", - " 96/1 0.70557 0.67751 +/- 0.00252\n", - " Triggers unsatisfied, max unc./thresh. is 25.5082 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59216 --- greater than max batches\n", - " 97/1 0.64689 0.67717 +/- 0.00252\n", - " Triggers unsatisfied, max unc./thresh. is 25.2374 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58603 --- greater than max batches\n", - " 98/1 0.70194 0.67744 +/- 0.00251\n", - " Triggers unsatisfied, max unc./thresh. is 25.393 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59972 --- greater than max batches\n", - " 99/1 0.68278 0.67750 +/- 0.00248\n", - " Triggers unsatisfied, max unc./thresh. is 25.5651 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61441 --- greater than max batches\n", - " 100/1 0.67066 0.67742 +/- 0.00246\n", - " Triggers unsatisfied, max unc./thresh. is 25.3552 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61079 --- greater than max batches\n", - " 101/1 0.64907 0.67713 +/- 0.00245\n", - " Triggers unsatisfied, max unc./thresh. is 25.3463 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61679 --- greater than max batches\n", - " 102/1 0.69810 0.67735 +/- 0.00243\n", - " Triggers unsatisfied, max unc./thresh. is 25.1877 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61544 --- greater than max batches\n", - " 103/1 0.70659 0.67764 +/- 0.00242\n", - " Triggers unsatisfied, max unc./thresh. is 24.9371 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60948 --- greater than max batches\n", - " 104/1 0.64152 0.67728 +/- 0.00243\n", - " Triggers unsatisfied, max unc./thresh. is 24.6848 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60330 --- greater than max batches\n", - " 105/1 0.68117 0.67732 +/- 0.00240\n", - " Triggers unsatisfied, max unc./thresh. is 24.4368 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59721 --- greater than max batches\n", - " 106/1 0.71963 0.67774 +/- 0.00242\n", - " Triggers unsatisfied, max unc./thresh. is 24.2091 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59200 --- greater than max batches\n", - " 107/1 0.69488 0.67790 +/- 0.00240\n", - " Triggers unsatisfied, max unc./thresh. is 23.9711 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58616 --- greater than max batches\n", - " 108/1 0.65697 0.67770 +/- 0.00238\n", - " Triggers unsatisfied, max unc./thresh. is 23.8071 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58384 --- greater than max batches\n", - " 109/1 0.70032 0.67792 +/- 0.00237\n", - " Triggers unsatisfied, max unc./thresh. is 23.5788 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57825 --- greater than max batches\n", - " 110/1 0.66571 0.67780 +/- 0.00235\n", - " Triggers unsatisfied, max unc./thresh. is 23.5035 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58009 --- greater than max batches\n", - " 111/1 0.69676 0.67798 +/- 0.00234\n", - " Triggers unsatisfied, max unc./thresh. is 23.3157 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57629 --- greater than max batches\n", - " 112/1 0.68219 0.67802 +/- 0.00231\n", - " Triggers unsatisfied, max unc./thresh. is 23.1525 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57361 --- greater than max batches\n", - " 113/1 0.69025 0.67813 +/- 0.00230\n", - " Triggers unsatisfied, max unc./thresh. is 23.0036 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57156 --- greater than max batches\n", - " 114/1 0.69241 0.67826 +/- 0.00228\n", - " Triggers unsatisfied, max unc./thresh. is 22.792 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 56628 --- greater than max batches\n", - " 115/1 0.68646 0.67834 +/- 0.00226\n", - " Triggers unsatisfied, max unc./thresh. is 22.6864 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 56620 --- greater than max batches\n", - " 116/1 0.69601 0.67850 +/- 0.00224\n", - " Triggers unsatisfied, max unc./thresh. is 22.5007 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 56203 --- greater than max batches\n", - " 117/1 0.68761 0.67858 +/- 0.00222\n", - " Triggers unsatisfied, max unc./thresh. is 22.3093 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 55749 --- greater than max batches\n", - " 118/1 0.71356 0.67889 +/- 0.00223\n", - " Triggers unsatisfied, max unc./thresh. is 22.6651 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58054 --- greater than max batches\n", - " 119/1 0.69850 0.67906 +/- 0.00221\n", - " Triggers unsatisfied, max unc./thresh. is 22.4712 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57570 --- greater than max batches\n", - " 120/1 0.70957 0.67933 +/- 0.00221\n", - " Triggers unsatisfied, max unc./thresh. is 22.3266 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57331 --- greater than max batches\n", - " 121/1 0.69643 0.67947 +/- 0.00220\n", - " Triggers unsatisfied, max unc./thresh. is 22.6029 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59269 --- greater than max batches\n", - " 122/1 0.67717 0.67945 +/- 0.00218\n", - " Triggers unsatisfied, max unc./thresh. is 22.4667 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59062 --- greater than max batches\n", - " 123/1 0.68419 0.67949 +/- 0.00216\n", - " Triggers unsatisfied, max unc./thresh. is 22.3764 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59089 --- greater than max batches\n", - " 124/1 0.69221 0.67960 +/- 0.00214\n", - " Triggers unsatisfied, max unc./thresh. is 22.3341 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59364 --- greater than max batches\n", - " 125/1 0.73940 0.68010 +/- 0.00218\n", - " Triggers unsatisfied, max unc./thresh. is 22.1478 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58868 --- greater than max batches\n", - " 126/1 0.66908 0.68001 +/- 0.00217\n", - " Triggers unsatisfied, max unc./thresh. is 22.0085 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58615 --- greater than max batches\n" + " 84/1 0.68429 0.68607 +/- 0.00254\n", + " Triggers unsatisfied, max unc./thresh. is 27.713137470531738 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60679 --- greater than max batches\n", + " 85/1 0.65458 0.68567 +/- 0.00254\n", + " Triggers unsatisfied, max unc./thresh. is 27.364539968246927 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59911 --- greater than max batches\n", + " 86/1 0.69966 0.68585 +/- 0.00252\n", + " Triggers unsatisfied, max unc./thresh. is 27.178113974435043 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59836 --- greater than max batches\n", + " 87/1 0.64776 0.68538 +/- 0.00253\n", + " Triggers unsatisfied, max unc./thresh. is 26.941566345072534 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59525 --- greater than max batches\n", + " 88/1 0.62737 0.68468 +/- 0.00259\n", + " Triggers unsatisfied, max unc./thresh. is 26.73959660667411 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59351 --- greater than max batches\n", + " 89/1 0.69779 0.68484 +/- 0.00257\n", + " Triggers unsatisfied, max unc./thresh. is 26.490234865810894 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 58951 --- greater than max batches\n", + " 90/1 0.67312 0.68470 +/- 0.00254\n", + " Triggers unsatisfied, max unc./thresh. is 26.24036001465229 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 58533 --- greater than max batches\n", + " 91/1 0.69289 0.68480 +/- 0.00251\n", + " Triggers unsatisfied, max unc./thresh. is 25.936795778335345 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57859 --- greater than max batches\n", + " 92/1 0.69884 0.68496 +/- 0.00249\n", + " Triggers unsatisfied, max unc./thresh. is 25.695465963215582 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57448 --- greater than max batches\n", + " 93/1 0.71351 0.68528 +/- 0.00248\n", + " Triggers unsatisfied, max unc./thresh. is 25.49001212499821 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57183 --- greater than max batches\n", + " 94/1 0.65602 0.68495 +/- 0.00248\n", + " Triggers unsatisfied, max unc./thresh. is 25.350859463183905 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57203 --- greater than max batches\n", + " 95/1 0.72223 0.68537 +/- 0.00248\n", + " Triggers unsatisfied, max unc./thresh. is 25.157803279393637 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56968 --- greater than max batches\n", + " 96/1 0.67930 0.68530 +/- 0.00246\n", + " Triggers unsatisfied, max unc./thresh. is 24.92205849077747 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56526 --- greater than max batches\n", + " 97/1 0.66201 0.68505 +/- 0.00244\n", + " Triggers unsatisfied, max unc./thresh. is 24.653967027285237 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 55925 --- greater than max batches\n", + " 98/1 0.71110 0.68533 +/- 0.00243\n", + " Triggers unsatisfied, max unc./thresh. is 24.566957281211884 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56134 --- greater than max batches\n", + " 99/1 0.69409 0.68542 +/- 0.00241\n", + " Triggers unsatisfied, max unc./thresh. is 24.581943149247135 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56807 --- greater than max batches\n", + " 100/1 0.71197 0.68570 +/- 0.00240\n", + " Triggers unsatisfied, max unc./thresh. is 24.444112571967217 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56769 --- greater than max batches\n", + " 101/1 0.71713 0.68603 +/- 0.00240\n", + " Triggers unsatisfied, max unc./thresh. is 24.18957776896016 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56179 --- greater than max batches\n", + " 102/1 0.68143 0.68598 +/- 0.00237\n", + " Triggers unsatisfied, max unc./thresh. is 23.97797098066553 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 55775 --- greater than max batches\n", + " 103/1 0.69936 0.68612 +/- 0.00235\n", + " Triggers unsatisfied, max unc./thresh. is 24.253000406602812 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57650 --- greater than max batches\n", + " 104/1 0.65247 0.68578 +/- 0.00235\n", + " Triggers unsatisfied, max unc./thresh. is 24.593482483379837 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59885 --- greater than max batches\n", + " 105/1 0.66517 0.68557 +/- 0.00234\n", + " Triggers unsatisfied, max unc./thresh. is 24.37904760701804 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59439 --- greater than max batches\n", + " 106/1 0.67814 0.68550 +/- 0.00232\n", + " Triggers unsatisfied, max unc./thresh. is 24.142311084988883 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 58873 --- greater than max batches\n", + " 107/1 0.67788 0.68542 +/- 0.00229\n", + " Triggers unsatisfied, max unc./thresh. is 23.935477435724106 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 58442 --- greater than max batches\n", + " 108/1 0.68016 0.68537 +/- 0.00227\n", + " Triggers unsatisfied, max unc./thresh. is 24.532504688648594 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 61995 --- greater than max batches\n", + " 109/1 0.66963 0.68522 +/- 0.00226\n", + " Triggers unsatisfied, max unc./thresh. is 24.354532539671386 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 61692 --- greater than max batches\n", + " 110/1 0.67556 0.68513 +/- 0.00224\n", + " Triggers unsatisfied, max unc./thresh. is 24.16165322902175 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 61303 --- greater than max batches\n", + " 111/1 0.68273 0.68511 +/- 0.00222\n", + " Triggers unsatisfied, max unc./thresh. is 24.00069508298176 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 61065 --- greater than max batches\n", + " 112/1 0.69505 0.68520 +/- 0.00220\n", + " Triggers unsatisfied, max unc./thresh. is 23.791656279909404 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60572 --- greater than max batches\n", + " 113/1 0.69385 0.68528 +/- 0.00218\n", + " Triggers unsatisfied, max unc./thresh. is 23.667941020219764 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60504 --- greater than max batches\n", + " 114/1 0.65352 0.68499 +/- 0.00218\n", + " Triggers unsatisfied, max unc./thresh. is 23.469658485546123 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 60045 --- greater than max batches\n", + " 115/1 0.68339 0.68497 +/- 0.00216\n", + " Triggers unsatisfied, max unc./thresh. is 23.259123161328624 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59514 --- greater than max batches\n", + " 116/1 0.65854 0.68474 +/- 0.00215\n", + " Triggers unsatisfied, max unc./thresh. is 23.06250977653337 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59044 --- greater than max batches\n", + " 117/1 0.66907 0.68460 +/- 0.00214\n", + " Triggers unsatisfied, max unc./thresh. is 22.874382198219536 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 58608 --- greater than max batches\n", + " 118/1 0.68165 0.68457 +/- 0.00212\n", + " Triggers unsatisfied, max unc./thresh. is 22.709602691165983 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 58283 --- greater than max batches\n", + " 119/1 0.70967 0.68479 +/- 0.00211\n", + " Triggers unsatisfied, max unc./thresh. is 22.509869996658225 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57769 --- greater than max batches\n", + " 120/1 0.65543 0.68453 +/- 0.00211\n", + " Triggers unsatisfied, max unc./thresh. is 22.422104322874098 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57822 --- greater than max batches\n", + " 121/1 0.67305 0.68444 +/- 0.00209\n", + " Triggers unsatisfied, max unc./thresh. is 22.32834321567902 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57838 --- greater than max batches\n", + " 122/1 0.68206 0.68441 +/- 0.00207\n", + " Triggers unsatisfied, max unc./thresh. is 22.155196965032374 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57435 --- greater than max batches\n", + " 123/1 0.71125 0.68464 +/- 0.00207\n", + " Triggers unsatisfied, max unc./thresh. is 21.96683678913398 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56945 --- greater than max batches\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - " 127/1 0.66041 0.67985 +/- 0.00216\n", - " Triggers unsatisfied, max unc./thresh. is 21.8274 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58131 --- greater than max batches\n", - " 128/1 0.69395 0.67996 +/- 0.00214\n", - " Triggers unsatisfied, max unc./thresh. is 21.6537 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57678 --- greater than max batches\n", - " 129/1 0.68665 0.68002 +/- 0.00212\n", - " Triggers unsatisfied, max unc./thresh. is 21.7739 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58794 --- greater than max batches\n", - " 130/1 0.64849 0.67976 +/- 0.00212\n", - " Triggers unsatisfied, max unc./thresh. is 21.7492 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59134 --- greater than max batches\n", - " 131/1 0.69734 0.67990 +/- 0.00211\n", - " Triggers unsatisfied, max unc./thresh. is 21.59 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58738 --- greater than max batches\n", - " 132/1 0.69482 0.68002 +/- 0.00210\n", - " Triggers unsatisfied, max unc./thresh. is 21.4249 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58302 --- greater than max batches\n", - " 133/1 0.68884 0.68009 +/- 0.00208\n", - " Triggers unsatisfied, max unc./thresh. is 21.2587 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57853 --- greater than max batches\n", - " 134/1 0.63042 0.67971 +/- 0.00210\n", - " Triggers unsatisfied, max unc./thresh. is 21.1851 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57902 --- greater than max batches\n", - " 135/1 0.69209 0.67980 +/- 0.00209\n", - " Triggers unsatisfied, max unc./thresh. is 21.0525 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57623 --- greater than max batches\n", - " 136/1 0.69873 0.67995 +/- 0.00208\n", - " Triggers unsatisfied, max unc./thresh. is 20.9996 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57774 --- greater than max batches\n", - " 137/1 0.70270 0.68012 +/- 0.00207\n", - " Triggers unsatisfied, max unc./thresh. is 20.8455 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 57364 --- greater than max batches\n", - " 138/1 0.67295 0.68006 +/- 0.00205\n", - " Triggers unsatisfied, max unc./thresh. is 21.3716 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60752 --- greater than max batches\n", - " 139/1 0.63853 0.67975 +/- 0.00206\n", - " Triggers unsatisfied, max unc./thresh. is 21.2124 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60301 --- greater than max batches\n", - " 140/1 0.66645 0.67966 +/- 0.00205\n", - " Triggers unsatisfied, max unc./thresh. is 21.1279 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60268 --- greater than max batches\n", - " 141/1 0.70730 0.67986 +/- 0.00204\n", - " Triggers unsatisfied, max unc./thresh. is 20.9845 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59893 --- greater than max batches\n", - " 142/1 0.68838 0.67992 +/- 0.00203\n", - " Triggers unsatisfied, max unc./thresh. is 20.8774 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59719 --- greater than max batches\n", - " 143/1 0.64900 0.67970 +/- 0.00203\n", - " Triggers unsatisfied, max unc./thresh. is 21.3772 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 63069 --- greater than max batches\n", - " 144/1 0.64490 0.67945 +/- 0.00203\n", - " Triggers unsatisfied, max unc./thresh. is 21.2531 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 62791 --- greater than max batches\n", - " 145/1 0.69221 0.67954 +/- 0.00201\n", - " Triggers unsatisfied, max unc./thresh. is 21.2049 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 62956 --- greater than max batches\n", - " 146/1 0.69481 0.67965 +/- 0.00200\n", - " Triggers unsatisfied, max unc./thresh. is 21.0645 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 62569 --- greater than max batches\n", - " 147/1 0.70394 0.67982 +/- 0.00200\n", - " Triggers unsatisfied, max unc./thresh. is 20.9156 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 62125 --- greater than max batches\n", - " 148/1 0.69482 0.67992 +/- 0.00198\n", - " Triggers unsatisfied, max unc./thresh. is 20.7699 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61694 --- greater than max batches\n", - " 149/1 0.63886 0.67964 +/- 0.00199\n", - " Triggers unsatisfied, max unc./thresh. is 20.6366 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61331 --- greater than max batches\n", - " 150/1 0.69377 0.67973 +/- 0.00198\n", - " Triggers unsatisfied, max unc./thresh. is 20.5819 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61430 --- greater than max batches\n", - " 151/1 0.71045 0.67994 +/- 0.00198\n", - " Triggers unsatisfied, max unc./thresh. is 20.5417 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61612 --- greater than max batches\n", - " 152/1 0.66093 0.67982 +/- 0.00197\n", - " Triggers unsatisfied, max unc./thresh. is 20.4124 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61256 --- greater than max batches\n", - " 153/1 0.68564 0.67985 +/- 0.00196\n", - " Triggers unsatisfied, max unc./thresh. is 20.3025 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61010 --- greater than max batches\n", - " 154/1 0.66961 0.67979 +/- 0.00194\n", - " Triggers unsatisfied, max unc./thresh. is 20.2239 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60948 --- greater than max batches\n", - " 155/1 0.67099 0.67973 +/- 0.00193\n", - " Triggers unsatisfied, max unc./thresh. is 20.0962 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60584 --- greater than max batches\n", - " 156/1 0.72742 0.68004 +/- 0.00194\n", - " Triggers unsatisfied, max unc./thresh. is 19.9753 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60256 --- greater than max batches\n", - " 157/1 0.66458 0.67994 +/- 0.00193\n", - " Triggers unsatisfied, max unc./thresh. is 19.8852 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60109 --- greater than max batches\n", - " 158/1 0.69052 0.68001 +/- 0.00192\n", - " Triggers unsatisfied, max unc./thresh. is 19.7963 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59965 --- greater than max batches\n", - " 159/1 0.70643 0.68018 +/- 0.00192\n", - " Triggers unsatisfied, max unc./thresh. is 19.6991 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59766 --- greater than max batches\n", - " 160/1 0.68576 0.68022 +/- 0.00191\n", - " Triggers unsatisfied, max unc./thresh. is 19.6197 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59670 --- greater than max batches\n", - " 161/1 0.69854 0.68034 +/- 0.00190\n", - " Triggers unsatisfied, max unc./thresh. is 19.8287 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61341 --- greater than max batches\n", - " 162/1 0.65983 0.68020 +/- 0.00189\n", - " Triggers unsatisfied, max unc./thresh. is 20.0243 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 62958 --- greater than max batches\n", - " 163/1 0.66316 0.68010 +/- 0.00188\n", - " Triggers unsatisfied, max unc./thresh. is 19.8975 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 62560 --- greater than max batches\n", - " 164/1 0.66179 0.67998 +/- 0.00187\n", - " Triggers unsatisfied, max unc./thresh. is 19.895 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 62940 --- greater than max batches\n", - " 165/1 0.70881 0.68016 +/- 0.00187\n", - " Triggers unsatisfied, max unc./thresh. is 19.8013 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 62740 --- greater than max batches\n", - " 166/1 0.70729 0.68033 +/- 0.00187\n", - " Triggers unsatisfied, max unc./thresh. is 19.6876 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 62410 --- greater than max batches\n", - " 167/1 0.71073 0.68052 +/- 0.00186\n", - " Triggers unsatisfied, max unc./thresh. is 19.5695 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 62046 --- greater than max batches\n" + " 124/1 0.65918 0.68443 +/- 0.00206\n", + " Triggers unsatisfied, max unc./thresh. is 21.78216358933223 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56467 --- greater than max batches\n", + " 125/1 0.68122 0.68440 +/- 0.00205\n", + " Triggers unsatisfied, max unc./thresh. is 21.681928420505304 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56418 --- greater than max batches\n", + " 126/1 0.66900 0.68427 +/- 0.00203\n", + " Triggers unsatisfied, max unc./thresh. is 21.60631058168512 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56492 --- greater than max batches\n", + " 127/1 0.66742 0.68414 +/- 0.00202\n", + " Triggers unsatisfied, max unc./thresh. is 21.468291123480988 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56234 --- greater than max batches\n", + " 128/1 0.66971 0.68402 +/- 0.00201\n", + " Triggers unsatisfied, max unc./thresh. is 21.313238544974386 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 55879 --- greater than max batches\n", + " 129/1 0.68183 0.68400 +/- 0.00199\n", + " Triggers unsatisfied, max unc./thresh. is 21.314008888585132 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56337 --- greater than max batches\n", + " 130/1 0.68403 0.68400 +/- 0.00197\n", + " Triggers unsatisfied, max unc./thresh. is 21.159444482258046 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 55971 --- greater than max batches\n", + " 131/1 0.69137 0.68406 +/- 0.00196\n", + " Triggers unsatisfied, max unc./thresh. is 21.24931160989673 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56899 --- greater than max batches\n", + " 132/1 0.67481 0.68399 +/- 0.00195\n", + " Triggers unsatisfied, max unc./thresh. is 21.164512281281944 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56893 --- greater than max batches\n", + " 133/1 0.70390 0.68414 +/- 0.00194\n", + " Triggers unsatisfied, max unc./thresh. is 21.084176856795946 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 56907 --- greater than max batches\n", + " 134/1 0.67961 0.68411 +/- 0.00192\n", + " Triggers unsatisfied, max unc./thresh. is 21.48684646255342 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59563 --- greater than max batches\n", + " 135/1 0.65362 0.68387 +/- 0.00192\n", + " Triggers unsatisfied, max unc./thresh. is 21.41235779526348 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59609 --- greater than max batches\n", + " 136/1 0.63946 0.68353 +/- 0.00194\n", + " Triggers unsatisfied, max unc./thresh. is 21.30299014546295 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59456 --- greater than max batches\n", + " 137/1 0.64818 0.68327 +/- 0.00194\n", + " Triggers unsatisfied, max unc./thresh. is 21.159761745415484 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 59107 --- greater than max batches\n", + " 138/1 0.68975 0.68331 +/- 0.00193\n", + " Triggers unsatisfied, max unc./thresh. is 21.000094566393475 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 58659 --- greater than max batches\n", + " 139/1 0.67280 0.68324 +/- 0.00191\n", + " Triggers unsatisfied, max unc./thresh. is 20.853656171297644 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 58279 --- greater than max batches\n", + " 140/1 0.66857 0.68313 +/- 0.00190\n", + " Triggers unsatisfied, max unc./thresh. is 20.709591767033707 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57905 --- greater than max batches\n", + " 141/1 0.68175 0.68312 +/- 0.00189\n", + " Triggers unsatisfied, max unc./thresh. is 20.560813068689416 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57499 --- greater than max batches\n", + " 142/1 0.72210 0.68340 +/- 0.00190\n", + " Triggers unsatisfied, max unc./thresh. is 20.54814917791921 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57851 --- greater than max batches\n", + " 143/1 0.67361 0.68333 +/- 0.00188\n", + " Triggers unsatisfied, max unc./thresh. is 20.4177880049802 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 57536 --- greater than max batches\n", + " 144/1 0.65862 0.68315 +/- 0.00188\n", + " Triggers unsatisfied, max unc./thresh. is 21.229890183572195 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62654 --- greater than max batches\n", + " 145/1 0.69713 0.68325 +/- 0.00187\n", + " Triggers unsatisfied, max unc./thresh. is 21.34513800240435 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63792 --- greater than max batches\n", + " 146/1 0.72980 0.68358 +/- 0.00188\n", + " Triggers unsatisfied, max unc./thresh. is 21.60165210412777 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 65801 --- greater than max batches\n", + " 147/1 0.70004 0.68370 +/- 0.00187\n", + " Triggers unsatisfied, max unc./thresh. is 21.596734424310384 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 66237 --- greater than max batches\n", + " 148/1 0.68882 0.68374 +/- 0.00186\n", + " Triggers unsatisfied, max unc./thresh. is 21.447240534346236 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 65783 --- greater than max batches\n", + " 149/1 0.70401 0.68388 +/- 0.00185\n", + " Triggers unsatisfied, max unc./thresh. is 21.424993974056104 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 66106 --- greater than max batches\n", + " 150/1 0.72110 0.68413 +/- 0.00186\n", + " Triggers unsatisfied, max unc./thresh. is 21.27792348945665 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 65654 --- greater than max batches\n", + " 151/1 0.65918 0.68396 +/- 0.00185\n", + " Triggers unsatisfied, max unc./thresh. is 21.378637401006184 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 66734 --- greater than max batches\n", + " 152/1 0.67751 0.68392 +/- 0.00184\n", + " Triggers unsatisfied, max unc./thresh. is 21.25974745003047 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 66446 --- greater than max batches\n", + " 153/1 0.69302 0.68398 +/- 0.00183\n", + " Triggers unsatisfied, max unc./thresh. is 21.16055371271148 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 66275 --- greater than max batches\n", + " 154/1 0.67102 0.68389 +/- 0.00182\n", + " Triggers unsatisfied, max unc./thresh. is 21.0227808264386 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 65857 --- greater than max batches\n", + " 155/1 0.64427 0.68363 +/- 0.00183\n", + " Triggers unsatisfied, max unc./thresh. is 20.882547322553506 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 65418 --- greater than max batches\n", + " 156/1 0.68488 0.68364 +/- 0.00181\n", + " Triggers unsatisfied, max unc./thresh. is 20.797424126850476 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 65318 --- greater than max batches\n", + " 157/1 0.67337 0.68357 +/- 0.00180\n", + " Triggers unsatisfied, max unc./thresh. is 20.67015745584828 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64948 --- greater than max batches\n", + " 158/1 0.66662 0.68346 +/- 0.00180\n", + " Triggers unsatisfied, max unc./thresh. is 20.568519956722266 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64734 --- greater than max batches\n", + " 159/1 0.62697 0.68309 +/- 0.00182\n", + " Triggers unsatisfied, max unc./thresh. is 20.47085213159483 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64540 --- greater than max batches\n", + " 160/1 0.68300 0.68309 +/- 0.00181\n", + " Triggers unsatisfied, max unc./thresh. is 20.34586209866351 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64168 --- greater than max batches\n", + " 161/1 0.68918 0.68313 +/- 0.00180\n", + " Triggers unsatisfied, max unc./thresh. is 20.23505377614212 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63881 --- greater than max batches\n", + " 162/1 0.70939 0.68330 +/- 0.00179\n", + " Triggers unsatisfied, max unc./thresh. is 20.21114215977674 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64138 --- greater than max batches\n", + " 163/1 0.69681 0.68338 +/- 0.00179\n", + " Triggers unsatisfied, max unc./thresh. is 20.163170350438893 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64241 --- greater than max batches\n", + " 164/1 0.66454 0.68326 +/- 0.00178\n", + " Triggers unsatisfied, max unc./thresh. is 20.109882525638955 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64306 --- greater than max batches\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - " 168/1 0.69610 0.68061 +/- 0.00185\n", - " Triggers unsatisfied, max unc./thresh. is 19.4797 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61857 --- greater than max batches\n", - " 169/1 0.67141 0.68056 +/- 0.00184\n", - " Triggers unsatisfied, max unc./thresh. is 19.438 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61970 --- greater than max batches\n", - " 170/1 0.67727 0.68054 +/- 0.00183\n", - " Triggers unsatisfied, max unc./thresh. is 19.3208 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61599 --- greater than max batches\n", - " 171/1 0.64150 0.68030 +/- 0.00184\n", - " Triggers unsatisfied, max unc./thresh. is 19.2066 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61242 --- greater than max batches\n", - " 172/1 0.68758 0.68035 +/- 0.00183\n", - " Triggers unsatisfied, max unc./thresh. is 19.114 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61018 --- greater than max batches\n", - " 173/1 0.67126 0.68029 +/- 0.00182\n", - " Triggers unsatisfied, max unc./thresh. is 19.1545 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61644 --- greater than max batches\n", - " 174/1 0.65933 0.68017 +/- 0.00181\n", - " Triggers unsatisfied, max unc./thresh. is 19.0415 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 61281 --- greater than max batches\n", - " 175/1 0.70572 0.68032 +/- 0.00181\n", - " Triggers unsatisfied, max unc./thresh. is 18.9347 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60954 --- greater than max batches\n", - " 176/1 0.66175 0.68021 +/- 0.00180\n", - " Triggers unsatisfied, max unc./thresh. is 18.8337 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60660 --- greater than max batches\n", - " 177/1 0.68714 0.68025 +/- 0.00179\n", - " Triggers unsatisfied, max unc./thresh. is 18.7329 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60364 --- greater than max batches\n", - " 178/1 0.70181 0.68037 +/- 0.00178\n", - " Triggers unsatisfied, max unc./thresh. is 18.6297 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 60048 --- greater than max batches\n", - " 179/1 0.66700 0.68030 +/- 0.00177\n", - " Triggers unsatisfied, max unc./thresh. is 18.5239 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59711 --- greater than max batches\n", - " 180/1 0.68980 0.68035 +/- 0.00176\n", - " Triggers unsatisfied, max unc./thresh. is 18.4186 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59374 --- greater than max batches\n", - " 181/1 0.69586 0.68044 +/- 0.00176\n", - " Triggers unsatisfied, max unc./thresh. is 18.3816 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59473 --- greater than max batches\n", - " 182/1 0.68689 0.68048 +/- 0.00175\n", - " Triggers unsatisfied, max unc./thresh. is 18.2781 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59139 --- greater than max batches\n", - " 183/1 0.69257 0.68054 +/- 0.00174\n", - " Triggers unsatisfied, max unc./thresh. is 18.1773 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58819 --- greater than max batches\n", - " 184/1 0.69926 0.68065 +/- 0.00173\n", - " Triggers unsatisfied, max unc./thresh. is 18.2191 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59422 --- greater than max batches\n", - " 185/1 0.67801 0.68063 +/- 0.00172\n", - " Triggers unsatisfied, max unc./thresh. is 18.1184 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59096 --- greater than max batches\n", - " 186/1 0.67049 0.68058 +/- 0.00171\n", - " Triggers unsatisfied, max unc./thresh. is 18.0484 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58965 --- greater than max batches\n", - " 187/1 0.68164 0.68058 +/- 0.00170\n", - " Triggers unsatisfied, max unc./thresh. is 17.9808 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58848 --- greater than max batches\n", - " 188/1 0.66856 0.68052 +/- 0.00170\n", - " Triggers unsatisfied, max unc./thresh. is 17.9146 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58736 --- greater than max batches\n", - " 189/1 0.71850 0.68073 +/- 0.00170\n", - " Triggers unsatisfied, max unc./thresh. is 17.8551 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58665 --- greater than max batches\n", - " 190/1 0.67095 0.68067 +/- 0.00169\n", - " Triggers unsatisfied, max unc./thresh. is 17.8953 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59250 --- greater than max batches\n", - " 191/1 0.70857 0.68082 +/- 0.00169\n", - " Triggers unsatisfied, max unc./thresh. is 17.8197 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59068 --- greater than max batches\n", - " 192/1 0.65322 0.68067 +/- 0.00169\n", - " Triggers unsatisfied, max unc./thresh. is 17.8199 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59387 --- greater than max batches\n", - " 193/1 0.67888 0.68066 +/- 0.00168\n", - " Triggers unsatisfied, max unc./thresh. is 17.8072 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59620 --- greater than max batches\n", - " 194/1 0.72890 0.68092 +/- 0.00169\n", - " Triggers unsatisfied, max unc./thresh. is 17.7152 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59319 --- greater than max batches\n", - " 195/1 0.64688 0.68074 +/- 0.00169\n", - " Triggers unsatisfied, max unc./thresh. is 17.6252 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59029 --- greater than max batches\n", - " 196/1 0.68906 0.68078 +/- 0.00168\n", - " Triggers unsatisfied, max unc./thresh. is 17.5465 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58810 --- greater than max batches\n", - " 197/1 0.69381 0.68085 +/- 0.00167\n", - " Triggers unsatisfied, max unc./thresh. is 17.4939 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58764 --- greater than max batches\n", - " 198/1 0.70057 0.68095 +/- 0.00167\n", - " Triggers unsatisfied, max unc./thresh. is 17.4414 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58717 --- greater than max batches\n", - " 199/1 0.67868 0.68094 +/- 0.00166\n", - " Triggers unsatisfied, max unc./thresh. is 17.4394 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 59008 --- greater than max batches\n", - " 200/1 0.69190 0.68100 +/- 0.00165\n", - " Triggers unsatisfied, max unc./thresh. is 17.3511 for absorption in tally 3\n", - " WARNING: The estimated number of batches is 58712 --- greater than max batches\n", + " 165/1 0.68804 0.68329 +/- 0.00177\n", + " Triggers unsatisfied, max unc./thresh. is 20.033653897136055 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 64221 --- greater than max batches\n", + " 166/1 0.66078 0.68315 +/- 0.00176\n", + " Triggers unsatisfied, max unc./thresh. is 19.916131324861123 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63867 --- greater than max batches\n", + " 167/1 0.65762 0.68300 +/- 0.00176\n", + " Triggers unsatisfied, max unc./thresh. is 19.85097950868946 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63843 --- greater than max batches\n", + " 168/1 0.69267 0.68306 +/- 0.00175\n", + " Triggers unsatisfied, max unc./thresh. is 19.729436003984436 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63453 --- greater than max batches\n", + " 169/1 0.67859 0.68303 +/- 0.00174\n", + " Triggers unsatisfied, max unc./thresh. is 19.61178427698242 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63084 --- greater than max batches\n", + " 170/1 0.66545 0.68292 +/- 0.00173\n", + " Triggers unsatisfied, max unc./thresh. is 19.495197332905757 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62716 --- greater than max batches\n", + " 171/1 0.66716 0.68283 +/- 0.00172\n", + " Triggers unsatisfied, max unc./thresh. is 19.47044861415963 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62936 --- greater than max batches\n", + " 172/1 0.70008 0.68293 +/- 0.00172\n", + " Triggers unsatisfied, max unc./thresh. is 19.382801191970024 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62746 --- greater than max batches\n", + " 173/1 0.69417 0.68300 +/- 0.00171\n", + " Triggers unsatisfied, max unc./thresh. is 19.270038663528165 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62390 --- greater than max batches\n", + " 174/1 0.66458 0.68289 +/- 0.00170\n", + " Triggers unsatisfied, max unc./thresh. is 19.281533726364312 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62836 --- greater than max batches\n", + " 175/1 0.65867 0.68275 +/- 0.00170\n", + " Triggers unsatisfied, max unc./thresh. is 19.234847030404104 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62902 --- greater than max batches\n", + " 176/1 0.69631 0.68283 +/- 0.00169\n", + " Triggers unsatisfied, max unc./thresh. is 19.13381099709457 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62609 --- greater than max batches\n", + " 177/1 0.71142 0.68299 +/- 0.00169\n", + " Triggers unsatisfied, max unc./thresh. is 19.022563643493143 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62245 --- greater than max batches\n", + " 178/1 0.68640 0.68301 +/- 0.00168\n", + " Triggers unsatisfied, max unc./thresh. is 19.03176453708651 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62667 --- greater than max batches\n", + " 179/1 0.70448 0.68313 +/- 0.00167\n", + " Triggers unsatisfied, max unc./thresh. is 19.088395456136563 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63405 --- greater than max batches\n", + " 180/1 0.70538 0.68326 +/- 0.00167\n", + " Triggers unsatisfied, max unc./thresh. is 18.98864751831452 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63105 --- greater than max batches\n", + " 181/1 0.65591 0.68311 +/- 0.00166\n", + " Triggers unsatisfied, max unc./thresh. is 18.911017891051518 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62948 --- greater than max batches\n", + " 182/1 0.72818 0.68336 +/- 0.00167\n", + " Triggers unsatisfied, max unc./thresh. is 18.808510226366458 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62621 --- greater than max batches\n", + " 183/1 0.67896 0.68334 +/- 0.00167\n", + " Triggers unsatisfied, max unc./thresh. is 18.825142861337717 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63086 --- greater than max batches\n", + " 184/1 0.65442 0.68317 +/- 0.00166\n", + " Triggers unsatisfied, max unc./thresh. is 18.79514029258707 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63239 --- greater than max batches\n", + " 185/1 0.68885 0.68321 +/- 0.00165\n", + " Triggers unsatisfied, max unc./thresh. is 18.76276176864163 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63373 --- greater than max batches\n", + " 186/1 0.68893 0.68324 +/- 0.00165\n", + " Triggers unsatisfied, max unc./thresh. is 18.690155368597363 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63233 --- greater than max batches\n", + " 187/1 0.68918 0.68327 +/- 0.00164\n", + " Triggers unsatisfied, max unc./thresh. is 18.590144288270153 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62904 --- greater than max batches\n", + " 188/1 0.69854 0.68335 +/- 0.00163\n", + " Triggers unsatisfied, max unc./thresh. is 18.61460656150607 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63416 --- greater than max batches\n", + " 189/1 0.66324 0.68324 +/- 0.00162\n", + " Triggers unsatisfied, max unc./thresh. is 18.518608099237504 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 63106 --- greater than max batches\n", + " 190/1 0.69450 0.68331 +/- 0.00162\n", + " Triggers unsatisfied, max unc./thresh. is 18.425351661292233 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62812 --- greater than max batches\n", + " 191/1 0.68953 0.68334 +/- 0.00161\n", + " Triggers unsatisfied, max unc./thresh. is 18.328779429843646 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62491 --- greater than max batches\n", + " 192/1 0.66621 0.68325 +/- 0.00160\n", + " Triggers unsatisfied, max unc./thresh. is 18.28094973389564 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62500 --- greater than max batches\n", + " 193/1 0.71102 0.68339 +/- 0.00160\n", + " Triggers unsatisfied, max unc./thresh. is 18.19949730061142 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62275 --- greater than max batches\n", + " 194/1 0.65341 0.68324 +/- 0.00160\n", + " Triggers unsatisfied, max unc./thresh. is 18.159054737369345 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62328 --- greater than max batches\n", + " 195/1 0.70061 0.68333 +/- 0.00159\n", + " Triggers unsatisfied, max unc./thresh. is 18.082465954324594 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62131 --- greater than max batches\n", + " 196/1 0.69339 0.68338 +/- 0.00159\n", + " Triggers unsatisfied, max unc./thresh. is 18.043133483791827 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62186 --- greater than max batches\n", + " 197/1 0.64411 0.68318 +/- 0.00159\n", + " Triggers unsatisfied, max unc./thresh. is 18.019303623546417 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62347 --- greater than max batches\n", + " 198/1 0.66626 0.68309 +/- 0.00159\n", + " Triggers unsatisfied, max unc./thresh. is 17.968092739058083 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62316 --- greater than max batches\n", + " 199/1 0.67839 0.68306 +/- 0.00158\n", + " Triggers unsatisfied, max unc./thresh. is 17.91968515142146 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 62302 --- greater than max batches\n", + " 200/1 0.66459 0.68297 +/- 0.00157\n", + " Triggers unsatisfied, max unc./thresh. is 17.82970764669685 for absorption in\n", + " tally 3\n", + " WARNING: The estimated number of batches is 61996 --- greater than max batches\n", " Creating state point statepoint.200.h5...\n", "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 9.3777e-01 seconds\n", - " Reading cross sections = 8.7757e-01 seconds\n", - " Total time in simulation = 4.0652e+01 seconds\n", - " Time in transport only = 3.9022e+01 seconds\n", - " Time in inactive batches = 9.1120e-01 seconds\n", - " Time in active batches = 3.9741e+01 seconds\n", - " Time synchronizing fission bank = 4.0496e-02 seconds\n", - " Sampling source sites = 3.3700e-02 seconds\n", - " SEND/RECV source sites = 6.4404e-03 seconds\n", - " Time accumulating tallies = 2.0272e-03 seconds\n", - " Total time for finalization = 4.0896e-03 seconds\n", - " Total time elapsed = 4.1621e+01 seconds\n", - " Calculation Rate (inactive) = 13718.1 particles/second\n", - " Calculation Rate (active) = 12267.1 particles/second\n", + " Total time for initialization = 2.9309e-01 seconds\n", + " Reading cross sections = 2.8108e-01 seconds\n", + " Total time in simulation = 1.1321e+01 seconds\n", + " Time in transport only = 1.1242e+01 seconds\n", + " Time in inactive batches = 1.6721e-01 seconds\n", + " Time in active batches = 1.1153e+01 seconds\n", + " Time synchronizing fission bank = 2.2958e-02 seconds\n", + " Sampling source sites = 1.8701e-02 seconds\n", + " SEND/RECV source sites = 3.9403e-03 seconds\n", + " Time accumulating tallies = 9.9349e-04 seconds\n", + " Total time for finalization = 5.2200e-07 seconds\n", + " Total time elapsed = 1.1620e+01 seconds\n", + " Calculation Rate (inactive) = 74758.2 particles/second\n", + " Calculation Rate (active) = 43708.5 particles/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 0.68122 +/- 0.00150\n", - " k-effective (Track-length) = 0.68100 +/- 0.00165\n", - " k-effective (Absorption) = 0.68224 +/- 0.00159\n", - " Combined k-effective = 0.68162 +/- 0.00134\n", - " Leakage Fraction = 0.34047 +/- 0.00082\n", + " k-effective (Collision) = 0.68198 +/- 0.00141\n", + " k-effective (Track-length) = 0.68297 +/- 0.00157\n", + " k-effective (Absorption) = 0.68161 +/- 0.00145\n", + " Combined k-effective = 0.68209 +/- 0.00118\n", + " Leakage Fraction = 0.34033 +/- 0.00074\n", "\n" ] } @@ -1128,10 +1310,9 @@ "\tID =\t1\n", "\tName =\tmesh tally\n", "\tFilters =\tMeshFilter, EnergyFilter\n", - "\tNuclides =\ttotal \n", + "\tNuclides =\ttotal\n", "\tScores =\t['fission', 'nu-fission']\n", - "\tEstimator =\ttracklength\n", - "\n" + "\tEstimator =\ttracklength\n" ] } ], @@ -1159,13 +1340,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[0.16617932]]\n", + "[[[0.04508259]]\n", "\n", - " [[0.06455926]]\n", + " [[0.0221707 ]]\n", "\n", - " [[0.32266365]]\n", + " [[0.10763375]]\n", "\n", - " [[0.13355528]]]\n" + " [[0.05107401]]]\n" ] } ], @@ -1233,8 +1414,8 @@ " 0.00e+00\n", " 6.25e-01\n", " fission\n", - " 1.76e-04\n", - " 2.92e-05\n", + " 2.27e-04\n", + " 1.02e-05\n", " \n", " \n", " 1\n", @@ -1244,8 +1425,8 @@ " 0.00e+00\n", " 6.25e-01\n", " nu-fission\n", - " 4.28e-04\n", - " 7.12e-05\n", + " 5.54e-04\n", + " 2.50e-05\n", " \n", " \n", " 2\n", @@ -1255,8 +1436,8 @@ " 6.25e-01\n", " 2.00e+07\n", " fission\n", - " 6.67e-05\n", - " 6.94e-06\n", + " 7.19e-05\n", + " 1.82e-06\n", " \n", " \n", " 3\n", @@ -1266,8 +1447,8 @@ " 6.25e-01\n", " 2.00e+07\n", " nu-fission\n", - " 1.75e-04\n", - " 1.71e-05\n", + " 1.89e-04\n", + " 4.69e-06\n", " \n", " \n", " 4\n", @@ -1277,8 +1458,8 @@ " 0.00e+00\n", " 6.25e-01\n", " fission\n", - " 2.04e-04\n", - " 3.80e-05\n", + " 2.35e-04\n", + " 9.82e-06\n", " \n", " \n", " 5\n", @@ -1288,8 +1469,8 @@ " 0.00e+00\n", " 6.25e-01\n", " nu-fission\n", - " 4.96e-04\n", - " 9.27e-05\n", + " 5.71e-04\n", + " 2.39e-05\n", " \n", " \n", " 6\n", @@ -1299,8 +1480,8 @@ " 6.25e-01\n", " 2.00e+07\n", " fission\n", - " 5.76e-05\n", - " 6.97e-06\n", + " 6.88e-05\n", + " 1.61e-06\n", " \n", " \n", " 7\n", @@ -1310,8 +1491,8 @@ " 6.25e-01\n", " 2.00e+07\n", " nu-fission\n", - " 1.52e-04\n", - " 1.91e-05\n", + " 1.81e-04\n", + " 4.15e-06\n", " \n", " \n", " 8\n", @@ -1321,8 +1502,8 @@ " 0.00e+00\n", " 6.25e-01\n", " fission\n", - " 1.80e-04\n", - " 3.15e-05\n", + " 2.31e-04\n", + " 1.13e-05\n", " \n", " \n", " 9\n", @@ -1332,8 +1513,8 @@ " 0.00e+00\n", " 6.25e-01\n", " nu-fission\n", - " 4.38e-04\n", - " 7.68e-05\n", + " 5.63e-04\n", + " 2.76e-05\n", " \n", " \n", " 10\n", @@ -1343,8 +1524,8 @@ " 6.25e-01\n", " 2.00e+07\n", " fission\n", - " 7.19e-05\n", - " 9.68e-06\n", + " 6.95e-05\n", + " 1.76e-06\n", " \n", " \n", " 11\n", @@ -1354,8 +1535,8 @@ " 6.25e-01\n", " 2.00e+07\n", " nu-fission\n", - " 1.89e-04\n", - " 2.49e-05\n", + " 1.83e-04\n", + " 4.53e-06\n", " \n", " \n", " 12\n", @@ -1365,8 +1546,8 @@ " 0.00e+00\n", " 6.25e-01\n", " fission\n", - " 1.91e-04\n", - " 3.67e-05\n", + " 2.07e-04\n", + " 9.85e-06\n", " \n", " \n", " 13\n", @@ -1376,8 +1557,8 @@ " 0.00e+00\n", " 6.25e-01\n", " nu-fission\n", - " 4.66e-04\n", - " 8.93e-05\n", + " 5.04e-04\n", + " 2.40e-05\n", " \n", " \n", " 14\n", @@ -1387,8 +1568,8 @@ " 6.25e-01\n", " 2.00e+07\n", " fission\n", - " 6.78e-05\n", - " 9.81e-06\n", + " 6.48e-05\n", + " 1.45e-06\n", " \n", " \n", " 15\n", @@ -1398,8 +1579,8 @@ " 6.25e-01\n", " 2.00e+07\n", " nu-fission\n", - " 1.76e-04\n", - " 2.44e-05\n", + " 1.71e-04\n", + " 3.81e-06\n", " \n", " \n", " 16\n", @@ -1409,8 +1590,8 @@ " 0.00e+00\n", " 6.25e-01\n", " fission\n", - " 1.56e-04\n", - " 2.32e-05\n", + " 2.20e-04\n", + " 1.07e-05\n", " \n", " \n", " 17\n", @@ -1420,8 +1601,8 @@ " 0.00e+00\n", " 6.25e-01\n", " nu-fission\n", - " 3.81e-04\n", - " 5.65e-05\n", + " 5.37e-04\n", + " 2.60e-05\n", " \n", " \n", " 18\n", @@ -1431,8 +1612,8 @@ " 6.25e-01\n", " 2.00e+07\n", " fission\n", - " 6.28e-05\n", - " 8.06e-06\n", + " 6.76e-05\n", + " 1.78e-06\n", " \n", " \n", " 19\n", @@ -1442,8 +1623,8 @@ " 6.25e-01\n", " 2.00e+07\n", " nu-fission\n", - " 1.62e-04\n", - " 2.05e-05\n", + " 1.78e-04\n", + " 4.63e-06\n", " \n", " \n", "\n", @@ -1452,49 +1633,49 @@ "text/plain": [ " mesh 1 energy low [eV] energy high [eV] score mean \\\n", " x y z \n", - "0 1 1 1 0.00e+00 6.25e-01 fission 1.76e-04 \n", - "1 1 1 1 0.00e+00 6.25e-01 nu-fission 4.28e-04 \n", - "2 1 1 1 6.25e-01 2.00e+07 fission 6.67e-05 \n", - "3 1 1 1 6.25e-01 2.00e+07 nu-fission 1.75e-04 \n", - "4 2 1 1 0.00e+00 6.25e-01 fission 2.04e-04 \n", - "5 2 1 1 0.00e+00 6.25e-01 nu-fission 4.96e-04 \n", - "6 2 1 1 6.25e-01 2.00e+07 fission 5.76e-05 \n", - "7 2 1 1 6.25e-01 2.00e+07 nu-fission 1.52e-04 \n", - "8 3 1 1 0.00e+00 6.25e-01 fission 1.80e-04 \n", - "9 3 1 1 0.00e+00 6.25e-01 nu-fission 4.38e-04 \n", - "10 3 1 1 6.25e-01 2.00e+07 fission 7.19e-05 \n", - "11 3 1 1 6.25e-01 2.00e+07 nu-fission 1.89e-04 \n", - "12 4 1 1 0.00e+00 6.25e-01 fission 1.91e-04 \n", - "13 4 1 1 0.00e+00 6.25e-01 nu-fission 4.66e-04 \n", - "14 4 1 1 6.25e-01 2.00e+07 fission 6.78e-05 \n", - "15 4 1 1 6.25e-01 2.00e+07 nu-fission 1.76e-04 \n", - "16 5 1 1 0.00e+00 6.25e-01 fission 1.56e-04 \n", - "17 5 1 1 0.00e+00 6.25e-01 nu-fission 3.81e-04 \n", - "18 5 1 1 6.25e-01 2.00e+07 fission 6.28e-05 \n", - "19 5 1 1 6.25e-01 2.00e+07 nu-fission 1.62e-04 \n", + "0 1 1 1 0.00e+00 6.25e-01 fission 2.27e-04 \n", + "1 1 1 1 0.00e+00 6.25e-01 nu-fission 5.54e-04 \n", + "2 1 1 1 6.25e-01 2.00e+07 fission 7.19e-05 \n", + "3 1 1 1 6.25e-01 2.00e+07 nu-fission 1.89e-04 \n", + "4 2 1 1 0.00e+00 6.25e-01 fission 2.35e-04 \n", + "5 2 1 1 0.00e+00 6.25e-01 nu-fission 5.71e-04 \n", + "6 2 1 1 6.25e-01 2.00e+07 fission 6.88e-05 \n", + "7 2 1 1 6.25e-01 2.00e+07 nu-fission 1.81e-04 \n", + "8 3 1 1 0.00e+00 6.25e-01 fission 2.31e-04 \n", + "9 3 1 1 0.00e+00 6.25e-01 nu-fission 5.63e-04 \n", + "10 3 1 1 6.25e-01 2.00e+07 fission 6.95e-05 \n", + "11 3 1 1 6.25e-01 2.00e+07 nu-fission 1.83e-04 \n", + "12 4 1 1 0.00e+00 6.25e-01 fission 2.07e-04 \n", + "13 4 1 1 0.00e+00 6.25e-01 nu-fission 5.04e-04 \n", + "14 4 1 1 6.25e-01 2.00e+07 fission 6.48e-05 \n", + "15 4 1 1 6.25e-01 2.00e+07 nu-fission 1.71e-04 \n", + "16 5 1 1 0.00e+00 6.25e-01 fission 2.20e-04 \n", + "17 5 1 1 0.00e+00 6.25e-01 nu-fission 5.37e-04 \n", + "18 5 1 1 6.25e-01 2.00e+07 fission 6.76e-05 \n", + "19 5 1 1 6.25e-01 2.00e+07 nu-fission 1.78e-04 \n", "\n", " std. dev. \n", " \n", - "0 2.92e-05 \n", - "1 7.12e-05 \n", - "2 6.94e-06 \n", - "3 1.71e-05 \n", - "4 3.80e-05 \n", - "5 9.27e-05 \n", - "6 6.97e-06 \n", - "7 1.91e-05 \n", - "8 3.15e-05 \n", - "9 7.68e-05 \n", - "10 9.68e-06 \n", - "11 2.49e-05 \n", - "12 3.67e-05 \n", - "13 8.93e-05 \n", - "14 9.81e-06 \n", - "15 2.44e-05 \n", - "16 2.32e-05 \n", - "17 5.65e-05 \n", - "18 8.06e-06 \n", - "19 2.05e-05 " + "0 1.02e-05 \n", + "1 2.50e-05 \n", + "2 1.82e-06 \n", + "3 4.69e-06 \n", + "4 9.82e-06 \n", + "5 2.39e-05 \n", + "6 1.61e-06 \n", + "7 4.15e-06 \n", + "8 1.13e-05 \n", + "9 2.76e-05 \n", + "10 1.76e-06 \n", + "11 4.53e-06 \n", + "12 9.85e-06 \n", + "13 2.40e-05 \n", + "14 1.45e-06 \n", + "15 3.81e-06 \n", + "16 1.07e-05 \n", + "17 2.60e-05 \n", + "18 1.78e-06 \n", + "19 4.63e-06 " ] }, "execution_count": 20, @@ -1520,7 +1701,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEcCAYAAAAP5CkrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XucF/V97/HXOyCLUYuKdotAhQRMstQG7QbbR5MeBI1oLthGKrY1JuVIyEOIKSYBPD0mWmlC0oaTQ1UOViMxOUFq4nEjRHOBjc2Ni4oXUJItYFm8RW66RlYhn/PHfDcdfv6W/e0yu79deD8fj3kw873Nd2aH3+f3nZnfjCICMzOzIryp2h0wM7Mjh4OKmZkVxkHFzMwK46BiZmaFcVAxM7PCOKiYmVlhHFSsz5J0h6Qbq92PajvUfpD0EUk/7uk+2dHLQcUOm6Rtkl6V1CJpt6QVkoZXu195kkLSqGr3w+xI56BiRflARBwPDAGeBxZVuT/dRhn/3ymYpH7V7oMdPv/HsEJFxD7gbqCuLU3SIElfk/QrSU9L+vu2D2VJt0j6Vq7sAkk/TB/c4yU1S7pW0otpRPTX7a1b0pWSmiTtktQg6bSU/mAq8mgaTV1apm4/Sf+c1rNV0sw0uumf8hslzZf0E+DXwFsknZbWsyut98pcewedkmrbltzyNknzJG1Ko7uvShqYy3+/pA2S9kj6qaQ/zOWdJelhSS9Lugv4bb32d43+RdJeSU9JmpgSp0h6qKTgbEn3ttPIRyRtSevdmv9bpH3/ZMrbJOnslP6OtO/2SNoo6YMl++gWSSslvQKcK6lG0j9J+k9Jz0taLOnYDrbPepOI8OTpsCZgG3Bemn8zsBT4Wi7/a8C9wAnACOAXwLRc+V8AHwHeA7wIDEt544H9wJeBGuC/Aa8Ab0v5dwA3pvkJqe7Zqewi4MFcHwIYdYhtmAFsAoYBJwE/SHX6p/xG4D+BMUB/4BjgQeBmsg/1scCvgAmlfcttS3PJPnsCGA6cDPwkty1nAS8A5wD9gCtS+RpgAPA08HepD5cAr+fXVbJdH0n7sK38pcDetM4aYBfwjlz5R4APlWnnOOCl3L4fAoxJ81OAHcC7AAGjgNPT+pqAa1O/JwAvl/z99gJ/SvYFdyCwEGhI/TsB+A7w+Wof45468XlQ7Q546vtT+sBrAfakD7hngDNTXj/gNaAuV/5jQGNu+Zz04fY0cFkufXz6QDwul7Yc+J9p/rcf3MBtwBdz5Y5PfRmRljsKKquAj+WWz+ONQeWGXP5w4ABwQi7t88AdpX3LbUtpUJmRW74I+I80fwvwDyX920wWVP8s7V/l8n7KoYNKafm1wOW5dc1P82OA3UBNmXaOS3/fDwHHluQ9AFxdps57gOeAN+XSvgl8LreP8l8+RPal4a25tD8Btlb7GPdU+eTTX1aUiyPiRLJvmzOBH0n6PeAUsm+sT+fKPg0MbVuIiDXAFrIPleUl7e6OiFdK6p5WZv2n5dcRES3Azvx6OnAasD23vL1MmXzaacCuiHi5pG+Vrq+0vfx2nQ5ck04Z7ZG0hyyInZamHZE+cXN1D6Vc+bZ1LQX+SpKAy4HlEdFa2kD6G1xKNqJ7Nt2M8faUPRz4jzLrPQ3YHhG/KVl3fh/l98GpZCPXh3LbfX9Ktz7CQcUKFREHIuLbZN/i3012Sup1sg/KNr9PdroEAElXkZ2KeQb4TEmTJ0k6rqTuM2VW/Ux+HanO4Px6OvAs2amvNuXuXst/MD8DnCzphJK+ta3vFbIPyDa/V6a9/Dry27WdbPRwYm56c0R8M/VzaAoC+bqHUq78MwAR8XOykeR7gL8C7myvkYh4ICLOJzv19RRwa66/by1T5RlgeMlNDQf97Tl4n74IvEp2Wq1tuwdFdgOI9REOKlaodIF9Mtl1iScj4gDZ6GO+pBMknQ7MBr6eyp8B3Aj8Ddk35c9IGlvS7PWSBkh6D/B+4N/KrPqbwEcljZVUA/wjsCYitqX854G3HKLry4GrJQ2VdCIw51DbGRHbyU47fV7SwHQhfVrbdgEbgIsknZxGbJ8s08xVkoZJOhn4H8BdKf1WYIakc9L+PE7S+1IA+xnZKcFPSDpG0l8A4w7VV+B3c+WnAO8AVubyvwb8C/B6RJT9TYukWkmTU7BuJTvd2TYC+VfgU5L+KPV3VPo7ryG7qeEzad3jgQ8Ay8qtI41obgUWSvrdtN6hki7oYPusN6n2+TdPfX8iuz7wKtkHzctkF6D/Opd/EtmH7a/IvtVeR/aFpj/Z+f25ubIfBx4nG7mMB5rJPnBfJLtQfnmu7B0cfN1iBtlpmF3AfaQL/rm8Z8muC/xlmW3oT3aReCewlezC9uukaxFk11T+e0mdYWk9u9J689dIBpIFiZeAx1J7pddU5pHdHLCH7DTUm3P5k4B1Ke9ZskB6QsqrJ7ug/nJax10c+prKT8iCxl6ymyLeW1Lm98kCxPWH+BsPAX6U2tiT9kddyf7dnI6BJ4CzUvqYXL1NwJ+39/fL7bd/JDsd+hLwJPCJah/jniqfqt4BT57amyi5uN3D674QePoQ+duAT6eA8QrZjQK1wHfTh/0PgJNS2T8mG9XsAR5N27WN7GaAj6YPzpfTB2n+ZoHxZEH1GrK7wZ4FPtoN23psWv/oav/NPfX9yae/zABJx0q6SFJ/SUOBzwL3dFDtQ8D5wBlkp3W+S3b77KlkI7FPpLZWkJ3iOxn4FPAt/uvU8wtkp/R+hyzALGz7jUfye8Agsovb04CbJJ10mJtb6uPAuoj4ZcHt2lGof7U7YNZLCLie7FTSq2SB4LoO6iyKiOcBJP078EJEPJKW7wEmkl0rWhkRbdcwvi9pPdnvaYiIFbn2fiTpe2QXzR9Oaa+T3cq8H1gpqQV4G/Dzw9nYNpK2kW37xUW0Z+agYr1WRDRy8B1Z3bmuX5P9eK8zns/Nv1pm+XiyO9KmSPpALu8Yst+h/EDShWSjojPIRi9vJrum1GZnCihtfp3aLUREjCiqLTNwUDHrbtuBOyPiytKMdJfat4APA/dGxOuS/h/ZyMGsT/I1FbPu9XXgA5IuUPZ8sYHKngM2jOzRJTVkd8XtT6OW91azs2aHy0HFrBtF9nuWyWQX8Ntuqf402aNLXgY+QfYbmd1kPz5sqFJXzQrRdg++mZnZYfNIxczMCuOgYmZmhXFQMTOzwjiomJlZYRxUzMysMEfEjx9POeWUGDFiRLW7ccR55ZVXOO644zouaNZL+JjtPg899NCLEdHhC9OOiKAyYsQI1q9fX+1uHHEaGxsZP358tbthVjEfs91HUkdvGAV8+svMzArkoGJmZoWpKKhImiRps6QmSXPL5NdIuivlr5E0Ipc3L6VvLn0taHoW0iOS7suljUxtNKU2B3R988zMrCd1GFQk9QNuInsTXh1wmaS6kmLTgN0RMYrslawLUt06YCrZK0UnATen9tpcTfbWu7wFwMLU1u7UtpmZ9QGVjFTGAU0RsSUiXgOWkT0gL28y2Tu2Ae4GJkpSSl8WEa0RsRVoSu2RntL6PuBf2xpJdSakNkht+uVBZmZ9RCVBZSjZk1XbNKe0smXSC4X2AoM7qPu/gM8Av8nlDwb25F5KVG5dZmYHmTVrFgMHDuTcc89l4MCBzJo1q9pdOmpV5ZZiSe8ne/XqQ5LGd7GN6cB0gNraWhobG4vroAHQ0tLi/Wq93le+8hW+853vMH36dCZMmMCqVau45ZZbaG5u5uqrr6529446lQSVHcDw3PKwlFauTLOk/sAgYOch6n4Q+KCki4CBwO9I+jpwOXCipP5ptFJuXQBExBJgCUB9fX343vTi+Z5/6wsmTZrEF7/4RWbPnk1jYyM333wzo0aN4tprr+Wee+6pdveOOpWc/loHjE53ZQ0gu/Be+iKhBuCKNH8JsCqyF7U0AFPT3WEjgdHA2oiYFxHD0vuxp6byf5PqrE5tkNq89zC2z8yOcK2trcyYMeOgtBkzZtDa2lqlHh3dOgwqacQwE3iA7E6t5RGxUdINkj6Yit0GDJbUBMwG5qa6G8nearcJuB+4KiIOdLDKOcDs1Nbg1LaZWVk1NTUsXrz4oLTFixdTU1NTpR4d3Sq6phIRK4GVJWnX5eb3AVPaqTsfmH+IthuBxtzyFtIdYmZmHbnyyiuZM2cOAHV1dXz5y19mzpw5bxi9WM84Ip79ZWZHr0WLFgFw7bXX0traSk1NDTNmzPhtuvUsP6bFzPq8RYsWsW/fPlavXs2+ffscUKrIIxUz63Oy30l3XnYvkHUnj1TMrM+JiLLT6XPuazfPAaVnOKiYmVlhHFTMzKwwDipmZlYYBxUzMyuMg4qZmRXGQcXMzArjoGJmZoVxUDEzs8I4qJiZWWEcVMzMrDAOKmZmVhgHFTMzK0xFQUXSJEmbJTVJmlsmv0bSXSl/jaQRubx5KX2zpAtS2kBJayU9KmmjpOtz5e+QtFXShjSNPfzNNDOzntDho+8l9QNuAs4HmoF1khoiYlOu2DRgd0SMkjQVWABcKqmO7B30Y4DTgB9IOgNoBSZERIukY4AfS/puRPw8tffpiLi7qI00M7OeUclIZRzQFBFbIuI1YBkwuaTMZGBpmr8bmKjshQeTgWUR0RoRW4EmYFxkWlL5Y9Lk51KbmfVxlQSVocD23HJzSitbJiL2A3uBwYeqK6mfpA3AC8D3I2JNrtx8SY9JWiipphPbY2ZmVVS1Nz9GxAFgrKQTgXsk/UFEPAHMA54DBgBLgDnADaX1JU0HpgPU1tbS2NjYU10/arS0tHi/Wp/jY7a6KgkqO4DhueVhKa1cmWZJ/YFBwM5K6kbEHkmrgUnAExHxbMpqlfRV4FPlOhURS8iCDvX19TF+/PgKNsU6o7GxEe9X61PuX+FjtsoqOf21DhgtaaSkAWQX3htKyjQAV6T5S4BVkb27swGYmu4OGwmMBtZKOjWNUJB0LNlNAE+l5SHpXwEXA08czgaamVnP6XCkEhH7Jc0EHgD6AbdHxEZJNwDrI6IBuA24U1ITsIss8JDKLQc2AfuBqyLiQAocS9OdZW8ClkfEfWmV35B0KiBgAzCjyA02M7PuU9E1lYhYCawsSbsuN78PmNJO3fnA/JK0x4Cz2ik/oZI+mZlZ7+Nf1JuZWWEcVMzMrDAOKmZmVhgHFTMzK4yDipmZFcZBxczMCuOgYmZmhXFQMTOzwjiomJlZYRxUzMysMA4qZmZWGAcVMzMrjIOKmZkVxkHFzMwK46BiZmaFcVAxM7PCVBRUJE2StFlSk6S5ZfJrJN2V8tdIGpHLm5fSN0u6IKUNlLRW0qOSNkq6Pld+ZGqjKbU54PA308zMekKHQSW98vcm4EKgDrhMUl1JsWnA7ogYBSwEFqS6dWSvFh4DTAJuTu21AhMi4p3AWGCSpD9ObS0AFqa2dqe2zcysD6hkpDIOaIqILRHxGrAMmFxSZjKwNM3fDUyUpJS+LCJaI2Ir0ASMi0xLKn9MmiLVmZDaILV5cRe3zczMelgl76gfCmzPLTcD57RXJiL2S9oLDE7pPy+pOxR+OwJ6CBgF3BQRaySdAuyJiP2l5UtJmg5MB6itraWxsbGCTbHOaGlp8X61PsfHbHVVElS6RUQcAMZKOhG4R9IfAM91ov4SYAlAfX19jB8/vlv6eTRrbGzE+9X6lPtX+JitskpOf+0AhueWh6W0smUk9QcGATsrqRsRe4DVZNdcdgInpjbaW5eZmfVSlQSVdcDodFfWALIL7w0lZRqAK9L8JcCqiIiUPjXdHTYSGA2slXRqGqEg6VjgfOCpVGd1aoPU5r1d3zwzM+tJHZ7+StdIZgIPAP2A2yNio6QbgPUR0QDcBtwpqQnYRRZ4SOWWA5uA/cBVEXFA0hBgabqu8iZgeUTcl1Y5B1gm6UbgkdS2mZn1ARVdU4mIlcDKkrTrcvP7gCnt1J0PzC9Jeww4q53yW8juODMzsz7Gv6g3M7PCOKiYmVlhHFTMzKwwDipmZlYYBxUzMyuMg4qZmRXGQcXMzArjoGJmZoVxUDEzs8I4qJiZWWEcVMzMrDAOKmZmVhgHFTMzK4yDipmZFcZBxczMCuOgYmZmhakoqEiaJGmzpCZJc8vk10i6K+WvkTQilzcvpW+WdEFKGy5ptaRNkjZKujpX/nOSdkjakKaLDn8zzcysJ3T45sf0yt+byN4j3wysk9QQEZtyxaYBuyNilKSpwALgUkl1ZK8WHgOcBvxA0hlkrxa+JiIelnQC8JCk7+faXBgR/1TURpqZWc+oZKQyDmiKiC0R8RqwDJhcUmYysDTN3w1MlKSUviwiWiNiK9AEjIuIZyPiYYCIeBl4Ehh6+JtjZmbVVMk76ocC23PLzcA57ZWJiP2S9gKDU/rPS+oeFDzSqbKzgDW55JmSPgysJxvR7C7tlKTpwHSA2tpaGhsbK9gU64yWlhbvV+tzfMxWVyVBpdtIOh74FvDJiHgpJd8C/AMQ6d9/Bv62tG5ELAGWANTX18f48eN7ostHlcbGRrxfrU+5f4WP2Sqr5PTXDmB4bnlYSitbRlJ/YBCw81B1JR1DFlC+ERHfbisQEc9HxIGI+A1wK9npNzMz6wMqCSrrgNGSRkoaQHbhvaGkTANwRZq/BFgVEZHSp6a7w0YCo4G16XrLbcCTEfHlfEOShuQW/xx4orMbZWZm1dHh6a90jWQm8ADQD7g9IjZKugFYHxENZAHiTklNwC6ywEMqtxzYRHbH11URcUDSu4HLgcclbUirujYiVgJflDSW7PTXNuBjBW6vmZl1o4quqaQP+5Uladfl5vcBU9qpOx+YX5L2Y0DtlL+8kj6ZmVnv41/Um5lZYRxUzMysMA4qZmZWGAcVMzMrjIOKmZkVxkHFzMwK46BiZmaFcVAxM7PCOKiYmVlhHFTMzKwwDipmZlYYBxUzMyuMg4qZmRXGQcXMzArjoGJmZoVxUDEzs8JUFFQkTZK0WVKTpLll8msk3ZXy10gakcubl9I3S7ogpQ2XtFrSJkkbJV2dK3+ypO9L+mX696TD30wzM+sJHQYVSf2Am4ALgTrgMkl1JcWmAbsjYhSwEFiQ6taRvVp4DDAJuDm1tx+4JiLqgD8Grsq1ORf4YUSMBn6Yls3MrA+oZKQyDmiKiC0R8RqwDJhcUmYysDTN3w1MlKSUviwiWiNiK9AEjIuIZyPiYYCIeBl4Ehhapq2lwMVd2zQzM+tplbyjfiiwPbfcDJzTXpmI2C9pLzA4pf+8pO7QfMV0quwsYE1Kqo2IZ9P8c0BtuU5Jmg5MB6itraWxsbGCTbHOaGlp8X61PsfHbHVVElS6jaTjgW8Bn4yIl0rzIyIkRbm6EbEEWAJQX18f48eP786uHpUaGxvxfrU+5f4VPmarrJLTXzuA4bnlYSmtbBlJ/YFBwM5D1ZV0DFlA+UZEfDtX5nlJQ1KZIcALlW6MmZlVVyVBZR0wWtJISQPILrw3lJRpAK5I85cAqyIiUvrUdHfYSGA0sDZdb7kNeDIivnyItq4A7u3sRpmZWXV0ePorXSOZCTwA9ANuj4iNkm4A1kdEA1mAuFNSE7CLLPCQyi0HNpHd8XVVRByQ9G7gcuBxSRvSqq6NiJXAF4DlkqYBTwN/WeQGm5lZ96nomkr6sF9ZknZdbn4fMKWduvOB+SVpPwbUTvmdwMRK+mVmZr2Lf1FvZmaFcVAxM7PCOKiYmVlhHFTMzKwwVf3xo5lZe955/ffY++rrna43Yu6KTpUfdOwxPPrZ93Z6PVaeg4qZ9Up7X32dbV94X6fqdOUpEJ0NQnZoPv1lZmaFcVAxM7PCOKiYmVlhHFTMzKwwDir2BrNmzWLgwIGce+65DBw4kFmzZlW7S2bWR/juLzvIrFmzWLx4MQsWLKCuro5NmzYxZ84cABYtWlTl3plZb+eRih3k1ltvZcGCBcyePZuBAwcye/ZsFixYwK233lrtrplZH+CgYgdpbW1lxowZB6XNmDGD1tbWKvXIzPoSBxU7SE1NDYsXLz4obfHixdTU1FSpR2bWl1QUVCRNkrRZUpOkuWXyayTdlfLXSBqRy5uX0jdLuiCXfrukFyQ9UdLW5yTtkLQhTRd1ffOsEpJ+O7W2tnLNNdcgiXPPPRdJXHPNNbS2th5ULnt5p5nZwToMKpL6ATcBFwJ1wGWS6kqKTQN2R8QoYCGwINWtI3sL5BhgEnBzag/gjpRWzsKIGJumle2UsYJExEHTzJkzfzsyqampYebMmW8ok70t2szsYJWMVMYBTRGxJSJeA5YBk0vKTAaWpvm7gYnpPfSTgWUR0RoRW4Gm1B4R8SDZq4etl1m0aBH79u3j9Dn3sW/fPt/1ZWYVqySoDAW255abU1rZMhGxH9gLDK6wbjkzJT2WTpGdVEF5MzPrBXrj71RuAf4BiPTvPwN/W1pI0nRgOkBtbS2NjY092MWjh/erVVNnj7+WlpYuHbM+zotTSVDZAQzPLQ9LaeXKNEvqDwwCdlZY9yAR8XzbvKRbgfvaKbcEWAJQX18fnX3ctVXg/hWdfoy4WWG6cPx15dH3Ps6LVcnpr3XAaEkjJQ0gu/DeUFKmAbgizV8CrIrsSm4DMDXdHTYSGA2sPdTKJA3JLf458ER7Zc3MrHfpcKQSEfslzQQeAPoBt0fERkk3AOsjogG4DbhTUhPZxfepqe5GScuBTcB+4KqIOAAg6ZvAeOAUSc3AZyPiNuCLksaSnf7aBnysyA02M7PuU9E1lXRb78qStOty8/uAKe3UnQ/ML5N+WTvlL6+kT2Zm1vv4F/VmZlYYBxUzMyuMg4qZmRXGQcXMzArjoGJmZoVxUDEzs8I4qJiZWWEcVMzMrDAOKmZmVhgHFTMzK4yDipmZFcZBxczMCuOgYmZmhXFQMTOzwjiomJlZYRxUzMysMBUFFUmTJG2W1CRpbpn8Gkl3pfw1kkbk8ual9M2SLsil3y7pBUlPlLR1sqTvS/pl+vekrm+emZn1pA6DiqR+wE3AhUAdcJmkupJi04DdETEKWAgsSHXryF4tPAaYBNyc2gO4I6WVmgv8MCJGAz9My2Zm1gdUMlIZBzRFxJaIeA1YBkwuKTMZWJrm7wYmSlJKXxYRrRGxFWhK7RERD5K9z75Uvq2lwMWd2B4zM6uiSoLKUGB7brk5pZUtExH7gb3A4ArrlqqNiGfT/HNAbQV9NDOzXqB/tTtwKBERkqJcnqTpwHSA2tpaGhsbe7JrRw3vV6umzh5/LS0tXTpmfZwXp5KgsgMYnlseltLKlWmW1B8YBOyssG6p5yUNiYhnJQ0BXihXKCKWAEsA6uvrY/z48RVsinXK/SvwfrWq6cLx19jY2Plj1sd5oSo5/bUOGC1ppKQBZBfeG0rKNABXpPlLgFURESl9aro7bCQwGljbwfrybV0B3FtBH83MrBfoMKikayQzgQeAJ4HlEbFR0g2SPpiK3QYMltQEzCbdsRURG4HlwCbgfuCqiDgAIOmbwM+At0lqljQttfUF4HxJvwTOS8tmZtYHVHRNJSJWAitL0q7Lze8DprRTdz4wv0z6Ze2U3wlMrKRfZmbWu/gX9WZmVhgHFTMzK4yDipmZFcZBxczMCuOgYmZmhXFQMTOzwjiomJlZYRxUzMysMMqeptK31dfXx/r166vdjV7tndd/j72vvt7t6xl07DE8+tn3dvt67Mh35tIze2xdj1/xeI+tq6+S9FBE1HdUrlc/pdiKs/fV19n2hfd1qk5XHs43Yu6KTpU3a8/LT37Bx2wf5NNfZmZWGAcVMzMrjIOKmZkVxkHFzMwK46BiZmaFcVAxM7PCVBRUJE2StFlSk6S5ZfJrJN2V8tdIGpHLm5fSN0u6oKM2Jd0haaukDWkae3ibaGZmPaXD36lI6gfcBJwPNAPrJDVExKZcsWnA7ogYJWkqsAC4VFId2TvtxwCnAT+QdEaqc6g2Px0RdxewfWZm1oMqGamMA5oiYktEvAYsAyaXlJkMLE3zdwMTJSmlL4uI1ojYCjSl9ipp08zM+phKgspQYHtuuTmllS0TEfuBvcDgQ9TtqM35kh6TtFBSTQV9NDOzXqA3PqZlHvAcMABYAswBbigtJGk6MB2gtraWxsbGHuxi39TZfdTS0tKl/eq/hRXFx2zfU0lQ2QEMzy0PS2nlyjRL6g8MAnZ2ULdsekQ8m9JaJX0V+FS5TkXEErKgQ319fXT2eT9HnftXdPqZSF15jlJX1mNWlo/ZPqmS01/rgNGSRkoaQHbhvaGkTANwRZq/BFgV2eOPG4Cp6e6wkcBoYO2h2pQ0JP0r4GLgicPZQDMz6zkdjlQiYr+kmcADQD/g9ojYKOkGYH1ENAC3AXdKagJ2kQUJUrnlwCZgP3BVRBwAKNdmWuU3JJ0KCNgAzChuc83MrDtVdE0lIlYCK0vSrsvN7wOmtFN3PjC/kjZT+oRK+mRmZr1Pb7xQb2YGdPFdJ/d3rs6gY4/p/DqsXQ4qZtYrdfYFXZAFoa7Us+L42V9mZlYYBxUzMyuMg4qZmRXG11SOEie8Yy5nLn3DA6Y7trTjIgevB8DntM2OVg4qR4mXn/xCpy9gduXXyV26W8fMjhg+/WVmZoVxUDEzs8I4qJiZWWEcVMzMrDAOKmZmVhjf/XUU8XOUzKy7OagcJfwcJTPrCT79ZWZmhXFQMTOzwlQUVCRNkrRZUpOkNzzrI70u+K6Uv0bSiFzevJS+WdIFHbWZXjG8JqXflV43bGZmfUCHQUVSP+Am4EKgDrhMUl1JsWnA7ogYBSwEFqS6dWSvFh4DTAJultSvgzYXAAtTW7tT22Zm1gdUMlIZBzRFxJaIeA1YBkwuKTOZ/3r04N3ARElK6csiojUitgJNqb2ybaY6E1IbpDYv7vrmmdmRSFLZ6ekF7283L/t4se5WSVAZCmzPLTentLJlImI/sBcYfIi67aUPBvakNtpblxXM/0Gtr4mIstPq1avbzYuIanf7qNBnbymWNB2YDlBbW0tjY2N1O9SHrV69umx6S0sLxx9/fLv1vM+tt2lpafFxWWWVBJUdwPDc8rCUVq5Ms6T+wCBgZwd1y6XvBE6U1D+NVsqtC4CIWAIsAaivr4/OPqLdOtaVR9+bVZOP2eqr5PTXOmB0uitrANmF94aSMg3AFWn+EmBVZGPNBmAwGHNVAAAFnElEQVRqujtsJDAaWNtem6nO6tQGqc17u755ZmbWkzocqUTEfkkzgQeAfsDtEbFR0g3A+ohoAG4D7pTUBOwiCxKkcsuBTcB+4KqIOABQrs20yjnAMkk3Ao+kts3MrA+o6JpKRKwEVpakXZeb3wdMaafufGB+JW2m9C1kd4eZmVkf41/Um5lZYRxUzMysMA4qZmZWGAcVMzMrjI6EX5lK+hXwdLX7cQQ6BXix2p0w6wQfs93n9Ig4taNCR0RQse4haX1E1Fe7H2aV8jFbfT79ZWZmhXFQMTOzwjio2KEsqXYHzDrJx2yV+ZqKmZkVxiMVMzMrjIPKEU7SJyQ9KWm3pLldqP/T7uiXWVdJerukDZIekfTWrhyjkm6QdF539O9o59NfRzhJTwHnRURztftiVoT05ah/RNxY7b7YG3mkcgSTtBh4C/BdSX8n6V9S+hRJT0h6VNKDKW2MpLXpG+Bjkkan9Jb0ryR9KdV7XNKlKX28pEZJd0t6StI35HcN2yFIGpFGz7dK2ijpe5KOTcdRfSpziqRtZepeBHwS+Lik1Smt7RgdIunBdAw/Iek9kvpJuiN33P5dKnuHpEvS/MQ06nlc0u2SalL6NknXS3o45b29R3ZQH+egcgSLiBnAM8C5wO5c1nXABRHxTuCDKW0G8JWIGAvUA6Ujm78AxgLvBM4DviRpSMo7i+w/eh1ZEPvT4rfGjjCjgZsiYgywB/hQJZXSKzMWAwsj4tyS7L8CHkjH8DuBDWTH7NCI+IOIOBP4ar6CpIHAHcClKb8/8PFckRcj4mzgFuBTndvEo5ODytHpJ8Adkq4ke0kawM+AayXNIXscw6sldd4NfDMiDkTE88CPgHelvLUR0RwRvyH7jzyi27fA+rqtEbEhzT9EMcfMOuCjkj4HnBkRLwNbgLdIWiRpEvBSSZ23pb78Ii0vBf4sl//tgvt4xHNQOQqlEczfA8OBhyQNjoj/SzZqeRVYKWlCJ5pszc0foMKXv9lRrdwxs5//+kwa2JYp6avplNYbXuqXFxEPkgWEHWRfmj4cEbvJRi2NZKPxf+1iP31cV8hB5Sgk6a0RsSa9vfNXwHBJbwG2RMT/Bu4F/rCk2r8Dl6Zz1KeS/edd26MdtyPdNuCP0vwlbYkR8dGIGBsRFx2qsqTTgecj4lay4HG2pFOAN0XEt8i+SJ1dUm0zMELSqLR8Odko3LrIkffo9KV0IV7AD4FHgTnA5ZJeB54D/rGkzj3An6SyAXwmIp7zxUsr0D8ByyVNB1Z0of544NPpGG4BPgwMBb4qqe0L9Lx8hYjYJ+mjwL9J6k92Cm1xF/tv+JZiMzMrkE9/mZlZYRxUzMysMA4qZmZWGAcVMzMrjIOKmZkVxkHFzMwK46Bi1ouk30qY9VkOKmaHSdJxklakpz4/IelSSe+S9NOUtlbSCZIGpkeOPJ6eintuqv8RSQ2SVpH9GBVJn5a0Lj0x+vqqbqBZJ/hbkdnhmwQ8ExHvA5A0CHiE7Mm36yT9Dtkz1a4GIiLOTE8i+J6kM1IbZwN/GBG7JL2X7Cm+48ieetAg6c/Ss63MejWPVMwO3+PA+ZIWSHoP8PvAsxGxDiAiXoqI/WRPev56SnsKeBpoCyrfj4hdaf69aXoEeBh4O1mQMev1PFIxO0wR8QtJZwMXATcCq7rQzCu5eQGfj4j/U0T/zHqSRypmh0nSacCvI+LrwJeAc4Ahkt6V8k9IF+D/HfjrlHYG2Yhmc5kmHwD+VtLxqexQSb/b/Vtidvg8UjE7fGeSPfn5N8DrZG8OFLBI0rFk11POA24GbpH0ONm7Qz4SEa2lb1+OiO9Jegfws5TXAvwN8EIPbY9Zl/kpxWZmVhif/jIzs8I4qJiZWWEcVMzMrDAOKmZmVhgHFTMzK4yDipmZFcZBxczMCuOgYmZmhfn/wyREWmq3K80AAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1545,7 +1726,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 22, @@ -1554,7 +1735,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1600,10 +1781,9 @@ "\tID =\t2\n", "\tName =\tcell tally\n", "\tFilters =\tCellFilter\n", - "\tNuclides =\tU235 U238 \n", + "\tNuclides =\tU235 U238\n", "\tScores =\t['scatter']\n", - "\tEstimator =\ttracklength\n", - "\n" + "\tEstimator =\ttracklength\n" ] } ], @@ -1654,16 +1834,16 @@ " 1\n", " U235\n", " scatter\n", - " 3.80e-02\n", - " 1.33e-04\n", + " 3.81e-02\n", + " 4.13e-05\n", " \n", " \n", " 1\n", " 1\n", " U238\n", " scatter\n", - " 2.33e+00\n", - " 8.12e-03\n", + " 2.34e+00\n", + " 2.41e-03\n", " \n", " \n", "\n", @@ -1671,8 +1851,8 @@ ], "text/plain": [ " cell nuclide score mean std. dev.\n", - "0 1 U235 scatter 3.80e-02 1.33e-04\n", - "1 1 U238 scatter 2.33e+00 8.12e-03" + "0 1 U235 scatter 3.81e-02 4.13e-05\n", + "1 1 U238 scatter 2.34e+00 2.41e-03" ] }, "execution_count": 24, @@ -1704,8 +1884,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[0.00811746]\n", - " [0.00013266]]]\n" + "[[[2.41367509e-03]\n", + " [4.12533801e-05]]]\n" ] } ], @@ -1736,10 +1916,9 @@ "\tID =\t3\n", "\tName =\tdistribcell tally\n", "\tFilters =\tDistribcellFilter\n", - "\tNuclides =\ttotal \n", + "\tNuclides =\ttotal\n", "\tScores =\t['absorption', 'scatter']\n", - "\tEstimator =\ttracklength\n", - "\n" + "\tEstimator =\ttracklength\n" ] } ], @@ -1767,25 +1946,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[0.04347272]]\n", + "[[[0.0131914 ]]\n", "\n", - " [[0.04671736]]\n", + " [[0.01252949]]\n", "\n", - " [[0.04878286]]\n", + " [[0.01241481]]\n", "\n", - " [[0.03059582]]\n", + " [[0.01194961]]\n", "\n", - " [[0.04548096]]\n", + " [[0.01186091]]\n", "\n", - " [[0.04288085]]\n", + " [[0.0127257 ]]\n", "\n", - " [[0.02557663]]\n", + " [[0.01358576]]\n", "\n", - " [[0.0419826 ]]\n", + " [[0.0130368 ]]\n", "\n", - " [[0.05878954]]\n", + " [[0.014031 ]]\n", "\n", - " [[0.04217666]]]\n" + " [[0.0141883 ]]]\n" ] } ], @@ -1877,8 +2056,8 @@ " 3\n", " 279\n", " absorption\n", - " 6.26e-04\n", - " 4.62e-05\n", + " 7.11e-04\n", + " 1.10e-05\n", " \n", " \n", " 559\n", @@ -1891,8 +2070,8 @@ " 3\n", " 279\n", " scatter\n", - " 8.73e-02\n", - " 2.14e-03\n", + " 8.91e-02\n", + " 6.60e-04\n", " \n", " \n", " 560\n", @@ -1905,8 +2084,8 @@ " 3\n", " 280\n", " absorption\n", - " 6.15e-04\n", - " 3.12e-05\n", + " 6.75e-04\n", + " 1.02e-05\n", " \n", " \n", " 561\n", @@ -1919,8 +2098,8 @@ " 3\n", " 280\n", " scatter\n", - " 8.06e-02\n", - " 1.85e-03\n", + " 8.35e-02\n", + " 6.11e-04\n", " \n", " \n", " 562\n", @@ -1933,8 +2112,8 @@ " 3\n", " 281\n", " absorption\n", - " 6.36e-04\n", - " 4.24e-05\n", + " 6.10e-04\n", + " 1.02e-05\n", " \n", " \n", " 563\n", @@ -1947,8 +2126,8 @@ " 3\n", " 281\n", " scatter\n", - " 7.59e-02\n", - " 1.93e-03\n", + " 7.75e-02\n", + " 6.10e-04\n", " \n", " \n", " 564\n", @@ -1961,8 +2140,8 @@ " 3\n", " 282\n", " absorption\n", - " 5.30e-04\n", - " 2.75e-05\n", + " 5.67e-04\n", + " 9.88e-06\n", " \n", " \n", " 565\n", @@ -1975,8 +2154,8 @@ " 3\n", " 282\n", " scatter\n", - " 6.82e-02\n", - " 1.02e-03\n", + " 7.11e-02\n", + " 5.99e-04\n", " \n", " \n", " 566\n", @@ -1989,8 +2168,8 @@ " 3\n", " 283\n", " absorption\n", - " 4.67e-04\n", - " 2.84e-05\n", + " 5.06e-04\n", + " 9.35e-06\n", " \n", " \n", " 567\n", @@ -2003,8 +2182,8 @@ " 3\n", " 283\n", " scatter\n", - " 6.42e-02\n", - " 1.81e-03\n", + " 6.39e-02\n", + " 5.53e-04\n", " \n", " \n", " 568\n", @@ -2017,8 +2196,8 @@ " 3\n", " 284\n", " absorption\n", - " 4.52e-04\n", - " 2.13e-05\n", + " 4.35e-04\n", + " 8.22e-06\n", " \n", " \n", " 569\n", @@ -2031,8 +2210,8 @@ " 3\n", " 284\n", " scatter\n", - " 5.64e-02\n", - " 1.20e-03\n", + " 5.62e-02\n", + " 5.18e-04\n", " \n", " \n", " 570\n", @@ -2045,8 +2224,8 @@ " 3\n", " 285\n", " absorption\n", - " 3.85e-04\n", - " 1.99e-05\n", + " 3.73e-04\n", + " 7.90e-06\n", " \n", " \n", " 571\n", @@ -2059,8 +2238,8 @@ " 3\n", " 285\n", " scatter\n", - " 4.86e-02\n", - " 1.58e-03\n", + " 4.76e-02\n", + " 4.92e-04\n", " \n", " \n", " 572\n", @@ -2073,8 +2252,8 @@ " 3\n", " 286\n", " absorption\n", - " 2.84e-04\n", - " 2.16e-05\n", + " 2.98e-04\n", + " 7.30e-06\n", " \n", " \n", " 573\n", @@ -2087,8 +2266,8 @@ " 3\n", " 286\n", " scatter\n", - " 3.91e-02\n", - " 1.66e-03\n", + " 3.82e-02\n", + " 4.17e-04\n", " \n", " \n", " 574\n", @@ -2101,8 +2280,8 @@ " 3\n", " 287\n", " absorption\n", - " 2.17e-04\n", - " 2.15e-05\n", + " 2.05e-04\n", + " 5.96e-06\n", " \n", " \n", " 575\n", @@ -2115,8 +2294,8 @@ " 3\n", " 287\n", " scatter\n", - " 3.02e-02\n", - " 1.71e-03\n", + " 2.86e-02\n", + " 3.72e-04\n", " \n", " \n", " 576\n", @@ -2129,8 +2308,8 @@ " 3\n", " 288\n", " absorption\n", - " 1.50e-04\n", - " 1.42e-05\n", + " 1.22e-04\n", + " 4.12e-06\n", " \n", " \n", " 577\n", @@ -2143,8 +2322,8 @@ " 3\n", " 288\n", " scatter\n", - " 1.89e-02\n", - " 9.31e-04\n", + " 1.82e-02\n", + " 2.59e-04\n", " \n", " \n", "\n", @@ -2178,26 +2357,26 @@ " mean std. dev. \n", " \n", " \n", - "558 6.26e-04 4.62e-05 \n", - "559 8.73e-02 2.14e-03 \n", - "560 6.15e-04 3.12e-05 \n", - "561 8.06e-02 1.85e-03 \n", - "562 6.36e-04 4.24e-05 \n", - "563 7.59e-02 1.93e-03 \n", - "564 5.30e-04 2.75e-05 \n", - "565 6.82e-02 1.02e-03 \n", - "566 4.67e-04 2.84e-05 \n", - "567 6.42e-02 1.81e-03 \n", - "568 4.52e-04 2.13e-05 \n", - "569 5.64e-02 1.20e-03 \n", - "570 3.85e-04 1.99e-05 \n", - "571 4.86e-02 1.58e-03 \n", - "572 2.84e-04 2.16e-05 \n", - "573 3.91e-02 1.66e-03 \n", - "574 2.17e-04 2.15e-05 \n", - "575 3.02e-02 1.71e-03 \n", - "576 1.50e-04 1.42e-05 \n", - "577 1.89e-02 9.31e-04 " + "558 7.11e-04 1.10e-05 \n", + "559 8.91e-02 6.60e-04 \n", + "560 6.75e-04 1.02e-05 \n", + "561 8.35e-02 6.11e-04 \n", + "562 6.10e-04 1.02e-05 \n", + "563 7.75e-02 6.10e-04 \n", + "564 5.67e-04 9.88e-06 \n", + "565 7.11e-02 5.99e-04 \n", + "566 5.06e-04 9.35e-06 \n", + "567 6.39e-02 5.53e-04 \n", + "568 4.35e-04 8.22e-06 \n", + "569 5.62e-02 5.18e-04 \n", + "570 3.73e-04 7.90e-06 \n", + "571 4.76e-02 4.92e-04 \n", + "572 2.98e-04 7.30e-06 \n", + "573 3.82e-02 4.17e-04 \n", + "574 2.05e-04 5.96e-06 \n", + "575 2.86e-02 3.72e-04 \n", + "576 1.22e-04 4.12e-06 \n", + "577 1.82e-02 2.59e-04 " ] }, "execution_count": 28, @@ -2261,38 +2440,38 @@ " \n", " \n", " mean\n", - " 4.15e-04\n", - " 2.29e-05\n", + " 4.19e-04\n", + " 6.86e-06\n", " \n", " \n", " std\n", - " 2.33e-04\n", - " 9.14e-06\n", + " 2.41e-04\n", + " 2.51e-06\n", " \n", " \n", " min\n", - " 1.84e-05\n", - " 3.31e-06\n", + " 1.68e-05\n", + " 1.07e-06\n", " \n", " \n", " 25%\n", - " 2.08e-04\n", - " 1.58e-05\n", + " 2.06e-04\n", + " 5.09e-06\n", " \n", " \n", " 50%\n", - " 4.10e-04\n", - " 2.24e-05\n", + " 3.98e-04\n", + " 6.90e-06\n", " \n", " \n", " 75%\n", - " 6.25e-04\n", - " 2.93e-05\n", + " 6.17e-04\n", + " 8.44e-06\n", " \n", " \n", " max\n", - " 8.87e-04\n", - " 5.06e-05\n", + " 8.70e-04\n", + " 1.52e-05\n", " \n", " \n", "\n", @@ -2303,13 +2482,13 @@ " \n", " \n", "count 2.89e+02 2.89e+02\n", - "mean 4.15e-04 2.29e-05\n", - "std 2.33e-04 9.14e-06\n", - "min 1.84e-05 3.31e-06\n", - "25% 2.08e-04 1.58e-05\n", - "50% 4.10e-04 2.24e-05\n", - "75% 6.25e-04 2.93e-05\n", - "max 8.87e-04 5.06e-05" + "mean 4.19e-04 6.86e-06\n", + "std 2.41e-04 2.51e-06\n", + "min 1.68e-05 1.07e-06\n", + "25% 2.06e-04 5.09e-06\n", + "50% 3.98e-04 6.90e-06\n", + "75% 6.17e-04 8.44e-06\n", + "max 8.70e-04 1.52e-05" ] }, "execution_count": 29, @@ -2342,7 +2521,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.3531165056829588\n" + "Mann-Whitney Test p-value: 0.47449458604689265\n" ] } ], @@ -2378,7 +2557,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 2.835784441937541e-42\n" + "Mann-Whitney Test p-value: 2.499381683224802e-42\n" ] } ], @@ -2412,18 +2591,18 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/romano/.pyenv/versions/3.7.0/lib/python3.7/site-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: \n", + ":4: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", - "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", - " after removing the cwd from sys.path.\n" + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " scatter['rel. err.'] = scatter['std. dev.'] / scatter['mean']\n" ] }, { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 32, @@ -2432,7 +2611,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -2461,7 +2640,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 33, @@ -2470,7 +2649,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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3bs333zzDQBffPEF3bt3p2vXrtx88807H1I0bdo0TjjhBM4//3zat28PwOmnn07nzp057LDDGDVq1M5Y6tevz5/+9Cc6d+5Mnz59mDVrFj179qRNmzaMH1/2y7Y6gxARKWTLli106tRp5/yPP/7Iqaee+otyd9xxB1999RW1atXip59+omHDhlx++eXUr19/50OFTjnlFC6++GKGDBnC6NGjufrqq3nllVe45ppruOaaaxg8eDAjR4782XZnzZrFwoULad26NQCjR4+mUaNGbNmyha5du3LWWWfRuHFjNm3aRM+ePfn73//OGWecwZ///GfefPNNFi1axJAhQ5LGXBI6gxARKaROnTrMmzdv5+vWW29NWq5Dhw5ccMEFPPXUU2RmJv++PWPGDM4//3wALrroIt5///2dy8855xyAnet36Nat287kAMGZSseOHenevTvLly/n888/ByA7O5t+/foB0L59e44//niysrJo3749y5YtK/0BCClBiIiU0oQJE7jiiiuYM2cOnTt3Jj8/f5d1gjsAilevXr2d09OmTWPq1KnMmDGD+fPnc/jhh7N161YgeG7Fju1lZGRQq1atndOpxLIrShAiIqWQSCRYvnw5J5xwAnfeeSc//fQTGzdupEGDBmzYsGFnuR49evDMM88AwcOEjjnmGAC6d+/Oiy++CLBzfTLr1q1jjz32oG7duixevJiZM2em8V39nK5BiEillkq31CjE43EuvPBC1q1bh7tz3XXX0bBhQ0455RTOPvtsXn31VR544AFGjBjBpZdeyl133UXTpk157LHHALjvvvu48MILueeeexg4cCC777570v3069ePkSNH0qFDBw4++GC6d+9eYe/RCj8uryrr0qWL5+TkRB2GlEBRfdwr6z8FSb9PP/2UQw45JOow0m7z5s3UqVMHM+OZZ55h3LhxvPpqsoElyk+yY2tmc9w96SPxdAYhIhKBOXPmcOWVV+LuNGzYkNGjR0cd0i8oQYiIRODYY49l/vz5UYdRLF2kFpFKpzo1fVcWpTmmShAiUqnUrl2bNWvWKEmUI3dnzZo11K5du0T11MQkIpVKy5Ytyc3NRQ8AK1+1a9emZcuWJaqjBCEilUpWVtbP7iKW6ChBSJWibrEiFUfXIEREJKm0nUGY2WjgZGCVu7cLlz0LHBwWaQj85O6dktRdBmwA4kB+UTdx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\n", "text/plain": [ "
" ] @@ -2508,7 +2687,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.0" + "version": "3.8.5" } }, "nbformat": 4, From 407093c0e70a9e9154a0c229a6f4497234a1324c Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Sat, 15 Aug 2020 07:20:11 +0100 Subject: [PATCH 058/122] Add files via upload --- tally-arithmetic.ipynb | 1746 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1746 insertions(+) create mode 100644 tally-arithmetic.ipynb diff --git a/tally-arithmetic.ipynb b/tally-arithmetic.ipynb new file mode 100644 index 000000000..6aed6e757 --- /dev/null +++ b/tally-arithmetic.ipynb @@ -0,0 +1,1746 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook shows the how tallies can be combined (added, subtracted, multiplied, etc.) using the Python API in order to create derived tallies. Since no covariance information is obtained, it is assumed that tallies are completely independent of one another when propagating uncertainties. The target problem is a simple pin cell." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import glob\n", + "\n", + "from IPython.display import Image\n", + "import numpy as np\n", + "import openmc" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate Input Files" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we need to define materials that will be used in the problem. We'll create three materials for the fuel, water, and cladding of the fuel pin." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# 1.6 enriched fuel\n", + "fuel = openmc.Material(name='1.6% Fuel')\n", + "fuel.set_density('g/cm3', 10.31341)\n", + "fuel.add_nuclide('U235', 3.7503e-4)\n", + "fuel.add_nuclide('U238', 2.2625e-2)\n", + "fuel.add_nuclide('O16', 4.6007e-2)\n", + "\n", + "# borated water\n", + "water = openmc.Material(name='Borated Water')\n", + "water.set_density('g/cm3', 0.740582)\n", + "water.add_nuclide('H1', 4.9457e-2)\n", + "water.add_nuclide('O16', 2.4732e-2)\n", + "water.add_nuclide('B10', 8.0042e-6)\n", + "\n", + "# zircaloy\n", + "zircaloy = openmc.Material(name='Zircaloy')\n", + "zircaloy.set_density('g/cm3', 6.55)\n", + "zircaloy.add_nuclide('Zr90', 7.2758e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our three materials, we can now create a materials file object that can be exported to an actual XML file." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Instantiate a Materials collection\n", + "materials = openmc.Materials([fuel, water, zircaloy])\n", + "\n", + "# Export to \"materials.xml\"\n", + "materials.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 planes." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "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=-100., boundary_type='vacuum')\n", + "max_z = openmc.ZPlane(z0=+100., boundary_type='vacuum')" + ] + }, + { + "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": 5, + "metadata": {}, + "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.region = -fuel_outer_radius\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.region = +fuel_outer_radius & -clad_outer_radius\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.region = +clad_outer_radius\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": 6, + "metadata": {}, + "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.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n", + "\n", + "# Create root Universe\n", + "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", + "root_universe.add_cell(root_cell)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now must create a geometry that is assigned a root universe, put the geometry into a geometry file, and export it to XML." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Create Geometry and set root Universe\n", + "geometry = openmc.Geometry(root_universe)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Export to \"geometry.xml\"\n", + "geometry.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 5 inactive batches and 15 active batches each with 2500 particles." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# OpenMC simulation parameters\n", + "batches = 20\n", + "inactive = 5\n", + "particles = 2500\n", + "\n", + "# Instantiate a Settings object\n", + "settings = openmc.Settings()\n", + "settings.batches = batches\n", + "settings.inactive = inactive\n", + "settings.particles = particles\n", + "settings.output = {'tallies': True}\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", + "bounds = [-0.63, -0.63, -100., 0.63, 0.63, 100.]\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings.source = openmc.Source(space=uniform_dist)\n", + "\n", + "# Export to \"settings.xml\"\n", + "settings.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us also create a plot file that we can use to verify that our pin cell geometry was created successfully." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98iBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+QIDwgMOKO2DokAAAKlSURBVGje7ZrBscIwDETxwSWkn5TAgXCgBPqhBA6kyj/fDhCIJa2zZAwz0pmHpZWdSazd7Tw8PDw8PDw8vinCMBzW03HIsRLvhnv0HL7qD+IwjzXKzaNaxeEt9kz21RWEBV5XQbfka3pQWL4qgdLyNQkUcbwFT/FP4zjWt+D+++OY4laZQJgtnqNOwe5l9XkGmIIL/PEHUAGTeuc5P15wBbu34ucSIAXkX77h4xUtIBSXnxIAOhCLy98TANNfLj8lYBYQCuLPWmAWEBe9f90DUPdKy08JWB0U1HsoaAgQxPSnAgwBopz+VABQvoDnAnqTP0r8zealzfPcQqqAQSs/C6AKGLX0pwKs8uX0cwGaAHr6uYC9wSt46qDCB4RXBDTkMwWMhnxZQF3+s8pf1AZY5VsCWuVnAUQ+YPxB43X5koAiH035soCa/AaeBOw34m359AaQPCK/1oAAyJ8aIPBI+7QGRkD+3IBt+A6QPzeg34SH2pcauN+Kt9uXGljkse0jb6BP8AD+vwGKPLZ95A0UofbnDbAFj20/eQN+gD8h/LgRD25/8QCA2088AD/Oo8dPOoDo8ZMOoPPNeej4pwdAgUcfX9IDzHnnf5lnz88XnH/nSf4M8cIL7I+/P3yCP0G88P7W+v2z9ft36+8P9vuJ/X5r/f3Jfj83//5vff/R+v6Hvb9i78/Y+7vW94/N71/Z+2P2/pq9P2fv7+n5ATu/YOcn7PyGnR+x8yt6ftYN3PzOENCcH7LzS3Z+Ss9vO62DV5uPmgAXSz5+fs7O72n/QBQLwPwLrH+C9W/Q/hHWv8L6Z2j/ThZgvX+I9S/R/inWv8X6x2j/Guufo/17rH+Q9S/S/knWv0n7R2n/Kuufpf27tH+Y9i/vWP+0h4eHh4eHh8cW8QcxLJDBvLKoigAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wOC0xNVQwNzoxMjo1NiswMTowMNNGOLwAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDgtMTVUMDc6MTI6NTYrMDE6MDCiG4AAAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Instantiate a Plot\n", + "plot = openmc.Plot(plot_id=1)\n", + "plot.filename = 'materials-xy'\n", + "plot.origin = [0, 0, 0]\n", + "plot.width = [1.26, 1.26]\n", + "plot.pixels = [250, 250]\n", + "plot.color_by = 'material'\n", + "\n", + "# Show plot\n", + "openmc.plot_inline(plot)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we can see from the plot, we have a nice pin cell with fuel, cladding, and water! Before we run our simulation, we need to tell the code what we want to tally. The following code shows how to create a variety of tallies." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Instantiate an empty Tallies object\n", + "tallies = openmc.Tallies()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Create Tallies to compute microscopic multi-group cross-sections\n", + "\n", + "# Instantiate energy filter for multi-group cross-section Tallies\n", + "energy_filter = openmc.EnergyFilter([0., 0.625, 20.0e6])\n", + "\n", + "# Instantiate flux Tally in moderator and fuel\n", + "tally = openmc.Tally(name='flux')\n", + "tally.filters = [openmc.CellFilter([fuel_cell, moderator_cell])]\n", + "tally.filters.append(energy_filter)\n", + "tally.scores = ['flux']\n", + "tallies.append(tally)\n", + "\n", + "# Instantiate reaction rate Tally in fuel\n", + "tally = openmc.Tally(name='fuel rxn rates')\n", + "tally.filters = [openmc.CellFilter(fuel_cell)]\n", + "tally.filters.append(energy_filter)\n", + "tally.scores = ['nu-fission', 'scatter']\n", + "tally.nuclides = ['U238', 'U235']\n", + "tallies.append(tally)\n", + "\n", + "# Instantiate reaction rate Tally in moderator\n", + "tally = openmc.Tally(name='moderator rxn rates')\n", + "tally.filters = [openmc.CellFilter(moderator_cell)]\n", + "tally.filters.append(energy_filter)\n", + "tally.scores = ['absorption', 'total']\n", + "tally.nuclides = ['O16', 'H1']\n", + "tallies.append(tally)\n", + "\n", + "# Instantiate a tally mesh\n", + "mesh = openmc.RegularMesh(mesh_id=1)\n", + "mesh.dimension = [1, 1, 1]\n", + "mesh.lower_left = [-0.63, -0.63, -100.]\n", + "mesh.width = [1.26, 1.26, 200.]\n", + "meshsurface_filter = openmc.MeshSurfaceFilter(mesh)\n", + "\n", + "# Instantiate thermal, fast, and total leakage tallies\n", + "leak = openmc.Tally(name='leakage')\n", + "leak.filters = [meshsurface_filter]\n", + "leak.scores = ['current']\n", + "tallies.append(leak)\n", + "\n", + "thermal_leak = openmc.Tally(name='thermal leakage')\n", + "thermal_leak.filters = [meshsurface_filter, openmc.EnergyFilter([0., 0.625])]\n", + "thermal_leak.scores = ['current']\n", + "tallies.append(thermal_leak)\n", + "\n", + "fast_leak = openmc.Tally(name='fast leakage')\n", + "fast_leak.filters = [meshsurface_filter, openmc.EnergyFilter([0.625, 20.0e6])]\n", + "fast_leak.scores = ['current']\n", + "tallies.append(fast_leak)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# K-Eigenvalue (infinity) tallies\n", + "fiss_rate = openmc.Tally(name='fiss. rate')\n", + "abs_rate = openmc.Tally(name='abs. rate')\n", + "fiss_rate.scores = ['nu-fission']\n", + "abs_rate.scores = ['absorption']\n", + "tallies += (fiss_rate, abs_rate)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# Resonance Escape Probability tallies\n", + "therm_abs_rate = openmc.Tally(name='therm. abs. rate')\n", + "therm_abs_rate.scores = ['absorption']\n", + "therm_abs_rate.filters = [openmc.EnergyFilter([0., 0.625])]\n", + "tallies.append(therm_abs_rate)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Thermal Flux Utilization tallies\n", + "fuel_therm_abs_rate = openmc.Tally(name='fuel therm. abs. rate')\n", + "fuel_therm_abs_rate.scores = ['absorption']\n", + "fuel_therm_abs_rate.filters = [openmc.EnergyFilter([0., 0.625]),\n", + " openmc.CellFilter([fuel_cell])]\n", + "tallies.append(fuel_therm_abs_rate)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# Fast Fission Factor tallies\n", + "therm_fiss_rate = openmc.Tally(name='therm. fiss. rate')\n", + "therm_fiss_rate.scores = ['nu-fission']\n", + "therm_fiss_rate.filters = [openmc.EnergyFilter([0., 0.625])]\n", + "tallies.append(therm_fiss_rate)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Instantiate energy filter to illustrate Tally slicing\n", + "fine_energy_filter = openmc.EnergyFilter(np.logspace(np.log10(1e-2), np.log10(20.0e6), 10))\n", + "\n", + "# Instantiate flux Tally in moderator and fuel\n", + "tally = openmc.Tally(name='need-to-slice')\n", + "tally.filters = [openmc.CellFilter([fuel_cell, moderator_cell])]\n", + "tally.filters.append(fine_energy_filter)\n", + "tally.scores = ['nu-fission', 'scatter']\n", + "tally.nuclides = ['H1', 'U238']\n", + "tallies.append(tally)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# Export to \"tallies.xml\"\n", + "tallies.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": 19, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " %%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", + " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", + " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%%%%%%\n", + " ##################### %%%%%%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%%\n", + " ####################### %%%%%%%%%%%%%%%%%\n", + " ###################### %%%%%%%%%%%%%%%%%\n", + " #################### %%%%%%%%%%%%%%%%%\n", + " ################# %%%%%%%%%%%%%%%%%\n", + " ############### %%%%%%%%%%%%%%%%\n", + " ############ %%%%%%%%%%%%%%%\n", + " ######## %%%%%%%%%%%%%%\n", + " %%%%%%%%%%%\n", + "\n", + " | The OpenMC Monte Carlo Code\n", + " Copyright | 2011-2020 MIT and OpenMC contributors\n", + " License | https://docs.openmc.org/en/latest/license.html\n", + " Version | 0.12.0\n", + " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", + " Date/Time | 2020-08-15 07:12:56\n", + " OpenMP Threads | 4\n", + "\n", + " Reading settings XML file...\n", + " Reading cross sections XML file...\n", + " Reading materials XML file...\n", + " Reading geometry XML file...\n", + " Reading U235 from /home/master/data/nuclear/endfb71_hdf5/U235.h5\n", + " Reading U238 from /home/master/data/nuclear/endfb71_hdf5/U238.h5\n", + " Reading O16 from /home/master/data/nuclear/endfb71_hdf5/O16.h5\n", + " Reading H1 from /home/master/data/nuclear/endfb71_hdf5/H1.h5\n", + " Reading B10 from /home/master/data/nuclear/endfb71_hdf5/B10.h5\n", + " Reading Zr90 from /home/master/data/nuclear/endfb71_hdf5/Zr90.h5\n", + " Minimum neutron data temperature: 294.000000 K\n", + " Maximum neutron data temperature: 294.000000 K\n", + " Reading tallies XML file...\n", + " Preparing distributed cell instances...\n", + " Writing summary.h5 file...\n", + " Maximum neutron transport energy: 20000000.000000 eV for U235\n", + " Initializing source particles...\n", + "\n", + " ====================> K EIGENVALUE SIMULATION <====================\n", + "\n", + " Bat./Gen. k Average k\n", + " ========= ======== ====================\n", + " 1/1 0.99100\n", + " 2/1 1.00834\n", + " 3/1 1.06764\n", + " 4/1 1.02113\n", + " 5/1 0.99556\n", + " 6/1 1.02501\n", + " 7/1 1.03920 1.03210 +/- 0.00709\n", + " 8/1 1.00744 1.02388 +/- 0.00918\n", + " 9/1 1.04889 1.03014 +/- 0.00902\n", + " 10/1 1.07235 1.03858 +/- 0.01096\n", + " 11/1 1.04400 1.03948 +/- 0.00899\n", + " 12/1 1.02556 1.03749 +/- 0.00786\n", + " 13/1 1.00755 1.03375 +/- 0.00776\n", + " 14/1 1.02346 1.03261 +/- 0.00694\n", + " 15/1 1.03215 1.03256 +/- 0.00621\n", + " 16/1 1.01060 1.03057 +/- 0.00596\n", + " 17/1 1.01665 1.02941 +/- 0.00556\n", + " 18/1 1.04273 1.03043 +/- 0.00522\n", + " 19/1 0.98780 1.02739 +/- 0.00571\n", + " 20/1 1.04402 1.02849 +/- 0.00543\n", + " Creating state point statepoint.20.h5...\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 2.8516e-01 seconds\n", + " Reading cross sections = 2.7562e-01 seconds\n", + " Total time in simulation = 1.6686e+00 seconds\n", + " Time in transport only = 1.6528e+00 seconds\n", + " Time in inactive batches = 2.2163e-01 seconds\n", + " Time in active batches = 1.4469e+00 seconds\n", + " Time synchronizing fission bank = 2.4642e-03 seconds\n", + " Sampling source sites = 1.9299e-03 seconds\n", + " SEND/RECV source sites = 5.0275e-04 seconds\n", + " Time accumulating tallies = 3.8964e-05 seconds\n", + " Total time for finalization = 2.0000e-04 seconds\n", + " Total time elapsed = 1.9609e+00 seconds\n", + " Calculation Rate (inactive) = 56401.3 particles/second\n", + " Calculation Rate (active) = 25917.0 particles/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.02606 +/- 0.00624\n", + " k-effective (Track-length) = 1.02849 +/- 0.00543\n", + " k-effective (Absorption) = 1.02154 +/- 0.00530\n", + " Combined k-effective = 1.02503 +/- 0.00501\n", + " Leakage Fraction = 0.01557 +/- 0.00106\n", + "\n" + ] + } + ], + "source": [ + "# Remove old HDF5 (summary, statepoint) files\n", + "!rm statepoint.*\n", + "\n", + "# Run OpenMC!\n", + "openmc.run()" + ] + }, + { + "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, the tally results are not read into memory because they might be large, even large enough to exceed the available memory on a computer." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Load the statepoint file\n", + "sp = openmc.StatePoint('statepoint.20.h5')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have a tally of the total fission rate and the total absorption rate, so we can calculate k-eff as:\n", + "$$k_{eff} = \\frac{\\langle \\nu \\Sigma_f \\phi \\rangle}{\\langle \\Sigma_a \\phi \\rangle + \\langle L \\rangle}$$\n", + "In this notation, $\\langle \\cdot \\rangle^a_b$ represents an OpenMC that is integrated over region $a$ and energy range $b$. If $a$ or $b$ is not reported, it means the value represents an integral over all space or all energy, respectively." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "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", + "
nuclidescoremeanstd. dev.
0total(nu-fission / (absorption + current))1.0226610.006992
\n", + "
" + ], + "text/plain": [ + " nuclide score mean std. dev.\n", + "0 total (nu-fission / (absorption + current)) 1.02e+00 6.99e-03" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get the fission and absorption rate tallies\n", + "fiss_rate = sp.get_tally(name='fiss. rate')\n", + "abs_rate = sp.get_tally(name='abs. rate')\n", + "\n", + "# Get the leakage tally\n", + "leak = sp.get_tally(name='leakage')\n", + "leak = leak.summation(filter_type=openmc.MeshSurfaceFilter, remove_filter=True)\n", + "\n", + "# Compute k-infinity using tally arithmetic\n", + "keff = fiss_rate / (abs_rate + leak)\n", + "keff.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that even though the neutron production rate, absorption rate, and current are separate tallies, we still get a first-order estimate of the uncertainty on the quotient of them automatically!\n", + "\n", + "Often in textbooks you'll see k-eff represented using the six-factor formula $$k_{eff} = p \\epsilon f \\eta P_{FNL} P_{TNL}.$$ Let's analyze each of these factors, starting with the resonance escape probability which is defined as $$p=\\frac{\\langle\\Sigma_a\\phi\\rangle_T + \\langle L \\rangle_T}{\\langle\\Sigma_a\\phi\\rangle + \\langle L \\rangle_T}$$ where the subscript $T$ means thermal energies." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "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", + "
energy low [eV]energy high [eV]nuclidescoremeanstd. dev.
00.00.625total((absorption + current) / (absorption + current))0.6933880.005475
\n", + "
" + ], + "text/plain": [ + " energy low [eV] energy high [eV] nuclide \\\n", + "0 0.00e+00 6.25e-01 total \n", + "\n", + " score mean std. dev. \n", + "0 ((absorption + current) / (absorption + current)) 6.93e-01 5.47e-03 " + ] + }, + "execution_count": 22, + "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", + "thermal_leak = sp.get_tally(name='thermal leakage')\n", + "thermal_leak = thermal_leak.summation(filter_type=openmc.MeshSurfaceFilter, remove_filter=True)\n", + "res_esc = (therm_abs_rate + thermal_leak) / (abs_rate + thermal_leak)\n", + "res_esc.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The fast fission factor can be calculated as\n", + "$$\\epsilon=\\frac{\\langle\\nu\\Sigma_f\\phi\\rangle}{\\langle\\nu\\Sigma_f\\phi\\rangle_T}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "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", + "
energy low [eV]energy high [eV]nuclidescoremeanstd. dev.
00.00.625total(nu-fission / nu-fission)1.2037180.010102
\n", + "
" + ], + "text/plain": [ + " energy low [eV] energy high [eV] nuclide score \\\n", + "0 0.00e+00 6.25e-01 total (nu-fission / nu-fission) \n", + "\n", + " mean std. dev. \n", + "0 1.20e+00 1.01e-02 " + ] + }, + "execution_count": 23, + "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", + "fast_fiss = fiss_rate / therm_fiss_rate\n", + "fast_fiss.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The thermal flux utilization is calculated as\n", + "$$f=\\frac{\\langle\\Sigma_a\\phi\\rangle^F_T}{\\langle\\Sigma_a\\phi\\rangle_T}$$\n", + "where the superscript $F$ denotes fuel." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "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", + "
energy low [eV]energy high [eV]cellnuclidescoremeanstd. dev.
00.00.6251total(absorption / absorption)0.7486130.006949
\n", + "
" + ], + "text/plain": [ + " energy low [eV] energy high [eV] cell nuclide score \\\n", + "0 0.00e+00 6.25e-01 1 total (absorption / absorption) \n", + "\n", + " mean std. dev. \n", + "0 7.49e-01 6.95e-03 " + ] + }, + "execution_count": 24, + "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", + "therm_util = fuel_therm_abs_rate / therm_abs_rate\n", + "therm_util.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The next factor is the number of fission neutrons produced per absorption in fuel, calculated as $$\\eta = \\frac{\\langle \\nu\\Sigma_f\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle^F_T}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "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", + "
energy low [eV]energy high [eV]cellnuclidescoremeanstd. dev.
00.00.6251total(nu-fission / absorption)1.6635490.015328
\n", + "
" + ], + "text/plain": [ + " energy low [eV] energy high [eV] cell nuclide score \\\n", + "0 0.00e+00 6.25e-01 1 total (nu-fission / absorption) \n", + "\n", + " mean std. dev. \n", + "0 1.66e+00 1.53e-02 " + ] + }, + "execution_count": 25, + "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", + "eta.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are two leakage factors to account for fast and thermal leakage. The fast non-leakage probability is computed as $$P_{FNL} = \\frac{\\langle \\Sigma_a\\phi \\rangle + \\langle L \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle + \\langle L \\rangle}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "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", + "
energy low [eV]energy high [eV]nuclidescoremeanstd. dev.
00.00.625total((absorption + current) / (absorption + current))0.9859730.006036
\n", + "
" + ], + "text/plain": [ + " energy low [eV] energy high [eV] nuclide \\\n", + "0 0.00e+00 6.25e-01 total \n", + "\n", + " score mean std. dev. \n", + "0 ((absorption + current) / (absorption + current)) 9.86e-01 6.04e-03 " + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_fnl = (abs_rate + thermal_leak) / (abs_rate + leak)\n", + "p_fnl.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The final factor is the thermal non-leakage probability and is computed as $$P_{TNL} = \\frac{\\langle \\Sigma_a\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle_T + \\langle L \\rangle_T}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "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", + "
energy low [eV]energy high [eV]nuclidescoremeanstd. dev.
00.00.625total(absorption / (absorption + current))0.9978670.009335
\n", + "
" + ], + "text/plain": [ + " energy low [eV] energy high [eV] nuclide \\\n", + "0 0.00e+00 6.25e-01 total \n", + "\n", + " score mean std. dev. \n", + "0 (absorption / (absorption + current)) 9.98e-01 9.33e-03 " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_tnl = therm_abs_rate / (therm_abs_rate + thermal_leak)\n", + "p_tnl.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can calculate $k_{eff}$ using the product of the factors form the four-factor formula." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "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", + "
energy low [eV]energy high [eV]cellnuclidescoremeanstd. dev.
00.00.6251total(((((((absorption + current) / (absorption + c...1.0226610.021177
\n", + "
" + ], + "text/plain": [ + " energy low [eV] energy high [eV] cell nuclide \\\n", + "0 0.00e+00 6.25e-01 1 total \n", + "\n", + " score mean std. dev. \n", + "0 (((((((absorption + current) / (absorption + c... 1.02e+00 2.12e-02 " + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "keff = res_esc * fast_fiss * therm_util * eta * p_fnl * p_tnl\n", + "keff.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the value we've obtained here has exactly the same mean as before. However, because of the way it was calculated, the standard deviation appears to be larger.\n", + "\n", + "Let's move on to a more complicated example now. Before we set up tallies to get reaction rates in the fuel and moderator in two energy groups for two different nuclides. We can use tally arithmetic to divide each of these reaction rates by the flux to get microscopic multi-group cross sections." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Compute microscopic multi-group cross-sections\n", + "flux = sp.get_tally(name='flux')\n", + "flux = flux.get_slice(filters=[openmc.CellFilter], filter_bins=[(fuel_cell.id,)])\n", + "fuel_rxn_rates = sp.get_tally(name='fuel rxn rates')\n", + "mod_rxn_rates = sp.get_tally(name='moderator rxn rates')" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "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", + "
cellenergy low [eV]energy high [eV]nuclidescoremeanstd. dev.
010.0006.250000e-01(U238 / total)(nu-fission / flux)6.656489e-076.107780e-09
110.0006.250000e-01(U238 / total)(scatter / flux)2.099890e-011.936009e-03
210.0006.250000e-01(U235 / total)(nu-fission / flux)3.563899e-013.286347e-03
310.0006.250000e-01(U235 / total)(scatter / flux)5.554974e-035.124024e-05
410.6252.000000e+07(U238 / total)(nu-fission / flux)7.166537e-037.141716e-05
510.6252.000000e+07(U238 / total)(scatter / flux)2.275268e-019.822400e-04
610.6252.000000e+07(U235 / total)(nu-fission / flux)8.007796e-035.184629e-05
710.6252.000000e+07(U235 / total)(scatter / flux)3.366335e-031.396517e-05
\n", + "
" + ], + "text/plain": [ + " cell energy low [eV] energy high [eV] nuclide \\\n", + "0 1 0.00e+00 6.25e-01 (U238 / total) \n", + "1 1 0.00e+00 6.25e-01 (U238 / total) \n", + "2 1 0.00e+00 6.25e-01 (U235 / total) \n", + "3 1 0.00e+00 6.25e-01 (U235 / total) \n", + "4 1 6.25e-01 2.00e+07 (U238 / total) \n", + "5 1 6.25e-01 2.00e+07 (U238 / total) \n", + "6 1 6.25e-01 2.00e+07 (U235 / total) \n", + "7 1 6.25e-01 2.00e+07 (U235 / total) \n", + "\n", + " score mean std. dev. \n", + "0 (nu-fission / flux) 6.66e-07 6.11e-09 \n", + "1 (scatter / flux) 2.10e-01 1.94e-03 \n", + "2 (nu-fission / flux) 3.56e-01 3.29e-03 \n", + "3 (scatter / flux) 5.55e-03 5.12e-05 \n", + "4 (nu-fission / flux) 7.17e-03 7.14e-05 \n", + "5 (scatter / flux) 2.28e-01 9.82e-04 \n", + "6 (nu-fission / flux) 8.01e-03 5.18e-05 \n", + "7 (scatter / flux) 3.37e-03 1.40e-05 " + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fuel_xs = fuel_rxn_rates / flux\n", + "fuel_xs.get_pandas_dataframe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that when the two tallies with multiple bins were divided, the derived tally contains the outer product of the combinations. If the filters/scores are the same, no outer product is needed. The `get_values(...)` method allows us to obtain a subset of tally scores. In the following example, we obtain just the neutron production microscopic cross sections." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[6.65648937e-07]\n", + " [3.56389890e-01]]\n", + "\n", + " [[7.16653669e-03]\n", + " [8.00779649e-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", + "print(nu_fiss_xs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The same idea can be used not only for scores but also for filters and nuclides." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[0.00555497]]\n", + "\n", + " [[0.00336633]]]\n" + ] + } + ], + "source": [ + "# Show how to use Tally.get_values(...) with a CrossScore and CrossNuclide\n", + "u235_scatter_xs = fuel_xs.get_values(nuclides=['(U235 / total)'], \n", + " scores=['(scatter / flux)'])\n", + "print(u235_scatter_xs)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[[0.22752681]\n", + " [0.00336633]]]\n" + ] + } + ], + "source": [ + "# Show how to use Tally.get_values(...) with a CrossFilter and CrossScore\n", + "fast_scatter_xs = fuel_xs.get_values(filters=[openmc.EnergyFilter], \n", + " filter_bins=[((0.625, 20.0e6),)], \n", + " scores=['(scatter / flux)'])\n", + "print(fast_scatter_xs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A more advanced method is to use `get_slice(...)` to create a new derived tally that is a subset of an existing tally. This has the benefit that we can use `get_pandas_dataframe()` to see the tallies in a more human-readable format." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "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", + "
cellenergy low [eV]energy high [eV]nuclidescoremeanstd. dev.
010.0006.250000e-01U238nu-fission0.0000021.030465e-08
110.0006.250000e-01U235nu-fission0.8544305.572280e-03
210.6252.000000e+07U238nu-fission0.0822067.786594e-04
310.6252.000000e+07U235nu-fission0.0918565.222837e-04
\n", + "
" + ], + "text/plain": [ + " cell energy low [eV] energy high [eV] nuclide score mean \\\n", + "0 1 0.00e+00 6.25e-01 U238 nu-fission 1.60e-06 \n", + "1 1 0.00e+00 6.25e-01 U235 nu-fission 8.54e-01 \n", + "2 1 6.25e-01 2.00e+07 U238 nu-fission 8.22e-02 \n", + "3 1 6.25e-01 2.00e+07 U235 nu-fission 9.19e-02 \n", + "\n", + " std. dev. \n", + "0 1.03e-08 \n", + "1 5.57e-03 \n", + "2 7.79e-04 \n", + "3 5.22e-04 " + ] + }, + "execution_count": 34, + "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", + "nu_fission_rates.get_pandas_dataframe()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "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", + "
cellenergy low [eV]energy high [eV]nuclidescoremeanstd. dev.
031.000000e-021.080060e-01H1scatter4.5542610.038132
131.080060e-011.166529e+00H1scatter2.0090360.012481
231.166529e+001.259921e+01H1scatter1.6325360.009018
331.259921e+011.360790e+02H1scatter1.8456690.011216
431.360790e+021.469734e+03H1scatter2.0474760.011371
531.469734e+031.587401e+04H1scatter2.1266120.012823
631.587401e+041.714488e+05H1scatter2.2117440.012935
731.714488e+051.851749e+06H1scatter2.0149320.007407
831.851749e+062.000000e+07H1scatter0.3723360.003747
\n", + "
" + ], + "text/plain": [ + " cell energy low [eV] energy high [eV] nuclide score mean \\\n", + "0 3 1.00e-02 1.08e-01 H1 scatter 4.55e+00 \n", + "1 3 1.08e-01 1.17e+00 H1 scatter 2.01e+00 \n", + "2 3 1.17e+00 1.26e+01 H1 scatter 1.63e+00 \n", + "3 3 1.26e+01 1.36e+02 H1 scatter 1.85e+00 \n", + "4 3 1.36e+02 1.47e+03 H1 scatter 2.05e+00 \n", + "5 3 1.47e+03 1.59e+04 H1 scatter 2.13e+00 \n", + "6 3 1.59e+04 1.71e+05 H1 scatter 2.21e+00 \n", + "7 3 1.71e+05 1.85e+06 H1 scatter 2.01e+00 \n", + "8 3 1.85e+06 2.00e+07 H1 scatter 3.72e-01 \n", + "\n", + " std. dev. \n", + "0 3.81e-02 \n", + "1 1.25e-02 \n", + "2 9.02e-03 \n", + "3 1.12e-02 \n", + "4 1.14e-02 \n", + "5 1.28e-02 \n", + "6 1.29e-02 \n", + "7 7.41e-03 \n", + "8 3.75e-03 " + ] + }, + "execution_count": 35, + "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", + "slice_test = need_to_slice.get_slice(scores=['scatter'], nuclides=['H1'],\n", + " filters=[openmc.CellFilter], filter_bins=[(moderator_cell.id,)])\n", + "slice_test.get_pandas_dataframe()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From b83558e631d997e0ef0fddae1dec37753230c630 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Sat, 15 Aug 2020 22:25:19 -0600 Subject: [PATCH 059/122] Update test mgxs_library_nuclides Co-authored-by: Paul Romano --- tests/regression_tests/mgxs_library_nuclides/test.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/regression_tests/mgxs_library_nuclides/test.py b/tests/regression_tests/mgxs_library_nuclides/test.py index a08cb826d..87a65723c 100644 --- a/tests/regression_tests/mgxs_library_nuclides/test.py +++ b/tests/regression_tests/mgxs_library_nuclides/test.py @@ -19,10 +19,8 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.by_nuclide = True # Test relevant all MGXS types - relevant_MGXS_TYPES = [] - for item in openmc.mgxs.MGXS_TYPES: - if item != 'current': - relevant_MGXS_TYPES = relevant_MGXS_TYPES + [item] + relevant_MGXS_TYPES = [item for item in openmc.mgxs.MGXS_TYPES + if item != 'current'] self.mgxs_lib.mgxs_types = tuple(relevant_MGXS_TYPES) self.mgxs_lib.energy_groups = energy_groups self.mgxs_lib.legendre_order = 3 From a71056548a602364890db4c878efba7cbcb51b5f Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Sat, 15 Aug 2020 22:25:43 -0600 Subject: [PATCH 060/122] Update test mgxs_library_no_nuclides Co-authored-by: Paul Romano --- tests/regression_tests/mgxs_library_no_nuclides/test.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/regression_tests/mgxs_library_no_nuclides/test.py b/tests/regression_tests/mgxs_library_no_nuclides/test.py index d06c5954c..f005c095e 100644 --- a/tests/regression_tests/mgxs_library_no_nuclides/test.py +++ b/tests/regression_tests/mgxs_library_no_nuclides/test.py @@ -20,10 +20,8 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.by_nuclide = False # Test all relevant MGXS types - relevant_MGXS_TYPES = [] - for item in openmc.mgxs.MGXS_TYPES: - if item != 'current': - relevant_MGXS_TYPES = relevant_MGXS_TYPES + [item] + relevant_MGXS_TYPES = [item for item in openmc.mgxs.MGXS_TYPES + if item != 'current'] self.mgxs_lib.mgxs_types = tuple(relevant_MGXS_TYPES) + \ openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups From 77f88db72ea1ae6998fbcfc0a2fcbb3073e17130 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Sat, 15 Aug 2020 22:26:09 -0600 Subject: [PATCH 061/122] Update test mgxs_library_distribcell/ Co-authored-by: Paul Romano --- tests/regression_tests/mgxs_library_distribcell/test.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/regression_tests/mgxs_library_distribcell/test.py b/tests/regression_tests/mgxs_library_distribcell/test.py index a4fd63f27..3b601161a 100644 --- a/tests/regression_tests/mgxs_library_distribcell/test.py +++ b/tests/regression_tests/mgxs_library_distribcell/test.py @@ -23,10 +23,8 @@ class MGXSTestHarness(PyAPITestHarness): self.mgxs_lib.by_nuclide = False # Test all relevant MGXS types - relevant_MGXS_TYPES = [] - for item in openmc.mgxs.MGXS_TYPES: - if item != 'current': - relevant_MGXS_TYPES = relevant_MGXS_TYPES + [item] + relevant_MGXS_TYPES = [item for item in openmc.mgxs.MGXS_TYPES + if item != 'current'] self.mgxs_lib.mgxs_types = tuple(relevant_MGXS_TYPES) + \ openmc.mgxs.MDGXS_TYPES self.mgxs_lib.energy_groups = energy_groups From f9072d1e96dfadee63a97f5fa9a5b8d3980851d6 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Sat, 15 Aug 2020 22:28:44 -0600 Subject: [PATCH 062/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- openmc/mgxs/mgxs.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 1552067e7..d3d39605a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6260,6 +6260,7 @@ class MeshSurfaceMGXS(MGXS): class Current(MeshSurfaceMGXS): r"""A current multi-group cross section. + This class can be used for both OpenMC input generation and tally data post-processing to compute surface- and energy-integrated multi-group current cross sections for multi-group neutronics calculations. At @@ -6268,12 +6269,14 @@ class Current(MeshSurfaceMGXS): reaction rates over the specified domain are generated automatically via the :attr:`Current.tallies` property, which can then be appended to a :class:`openmc.Tallies` instance. + For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the necessary data to compute multi-group cross sections from a :class:`openmc.StatePoint` instance. The derived multi-group cross section can then be obtained from the :attr:`Current.xs_tally` property. For a spatial domain :math:`S` and energy group :math:`[E_g,E_{g-1}]`, the total cross section is calculated as: + .. math:: \frac{\int_{r \in S} dS \int_{E_g}^{E_{g-1}} dE \; J(r, E)}{\int_{r \in S} dS \int_{E_g}^{E_{g-1}} dE}. From 7ad63241d794a205a3bc932d28b3ffb6b5ccd1cc Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Sat, 15 Aug 2020 22:29:05 -0600 Subject: [PATCH 063/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- 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 d3d39605a..e74c2ab42 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5917,7 +5917,7 @@ class MeshSurfaceMGXS(MGXS): energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool - Unused in MeshSurfacMGXS + Unused in MeshSurfaceMGXS name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. From 160f5f07e3401e59e0dff39510680543e7a58497 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Sat, 15 Aug 2020 22:29:34 -0600 Subject: [PATCH 064/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- 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 e74c2ab42..9d02a2195 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6035,9 +6035,13 @@ class MeshSurfaceMGXS(MGXS): 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. + + .. note:: The statepoint must first be linked with a :class:`openmc.Summary` + object. + Parameters ---------- statepoint : openmc.StatePoint From 9d28cc9b8e24d08e5c6bc042cb8021a8411643dd Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Sat, 15 Aug 2020 22:31:02 -0600 Subject: [PATCH 065/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- openmc/mgxs/mgxs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 9d02a2195..cbda0c94d 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6087,10 +6087,12 @@ class MeshSurfaceMGXS(MGXS): xs_type='macro', order_groups='increasing', value='mean', squeeze=True, **kwargs): r"""Returns an array of multi-group cross sections. + This method constructs a 3D NumPy array for the requested multi-group cross section data for one or more subdomains (1st dimension), energy groups (2nd dimension), and nuclides (3rd dimension). + Parameters ---------- groups : Iterable of Integral or 'all' From 4c0b6282f65c025c95c76d2ceb9c2ac037db697f Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Sat, 15 Aug 2020 22:31:23 -0600 Subject: [PATCH 066/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- 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 cbda0c94d..62b9d11d3 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -5903,10 +5903,12 @@ class InverseVelocity(MGXS): class MeshSurfaceMGXS(MGXS): """An abstract multi-group cross section for some energy group structure on the surfaces of a mesh domain. + This class can be used for both OpenMC input generation and tally data post-processing to compute surface- and energy-integrated multi-group cross sections for multi-group neutronics calculations. - NOTE: Users should instantiate the subclasses of this abstract class. + + .. note:: Users should instantiate the subclasses of this abstract class. Parameters ---------- From 5665b4a90bd22e1f7715a2b1130fb951e604ed09 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Sat, 15 Aug 2020 22:32:35 -0600 Subject: [PATCH 067/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- openmc/mgxs/mgxs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 62b9d11d3..abeec20eb 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6200,8 +6200,10 @@ class MeshSurfaceMGXS(MGXS): def get_pandas_dataframe(self, groups='all', nuclides='all', xs_type='macro', paths=True): """Build a Pandas DataFrame for the MGXS data. + This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but renames the columns with terminology appropriate for cross section data. + Parameters ---------- groups : Iterable of Integral or 'all' From eaa266e6d766b6a572d08de6965cf20952ed2899 Mon Sep 17 00:00:00 2001 From: "Miriam (Rathbun) Kreher" Date: Sat, 15 Aug 2020 22:33:18 -0600 Subject: [PATCH 068/122] Update openmc/mgxs/mgxs.py Co-authored-by: Paul Romano --- openmc/mgxs/mgxs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index abeec20eb..04bebe7e4 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6217,10 +6217,12 @@ class MeshSurfaceMGXS(MGXS): The geometric information in the Summary object is embedded into a Multi-index column with a geometric "path" to each distribcell instance. + Returns ------- pandas.DataFrame A Pandas DataFrame for the cross section data. + Raises ------ ValueError From caa43a3794c3de90ccf6ba02f2eb72761386fc06 Mon Sep 17 00:00:00 2001 From: AI-Pranto Date: Sun, 16 Aug 2020 14:33:34 +0600 Subject: [PATCH 069/122] discourse user forum --- docs/source/index.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 198a9429e..2aafdf4a8 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -15,8 +15,7 @@ OpenMC was originally developed by members of the `Computational Reactor Physics Group `_ at the `Massachusetts Institute of Technology `_ starting in 2011. Various universities, laboratories, and other organizations now contribute to the development of OpenMC. For more -information on OpenMC, feel free to send a message to the User's Group `mailing -list `_. +information on OpenMC, feel free to send a message to the User's Group `OpenMC Discourse Forum `_. .. admonition:: Recommended publication for citing :class: tip From 49194f05adaa78c8955f9073d46f2b5615f0b526 Mon Sep 17 00:00:00 2001 From: AI-Pranto Date: Sun, 16 Aug 2020 14:47:37 +0600 Subject: [PATCH 070/122] update install.rst --- docs/source/usersguide/install.rst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/source/usersguide/install.rst b/docs/source/usersguide/install.rst index cbd1669fd..992ef520f 100644 --- a/docs/source/usersguide/install.rst +++ b/docs/source/usersguide/install.rst @@ -40,6 +40,26 @@ It is possible to list all of the versions of OpenMC available on your platform conda search openmc --channel conda-forge +To list the versions of OpenMC that are available on the `conda-forge` channel, +in your terminal window or an Anaconda Prompt run: + +.. code-block:: sh + + conda search openmc + +OpenMC can then be installed with: + +.. code-block:: sh + + conda create -n openmc-env openmc + +This will install OpenMC in a conda environment called `openmc-env`. To activate +the environment, run: + +.. code-block:: sh + + conda activate openmc-env + .. _install_ppa: ----------------------------- From 5830456d1f5e4ede364cf00e1f0735117ae0339a Mon Sep 17 00:00:00 2001 From: AI-Pranto Date: Sun, 16 Aug 2020 16:03:53 +0600 Subject: [PATCH 071/122] user-forum link in troubleshoot.rst --- docs/source/usersguide/troubleshoot.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/usersguide/troubleshoot.rst b/docs/source/usersguide/troubleshoot.rst index 2be94f6a8..de1aa1d7d 100644 --- a/docs/source/usersguide/troubleshoot.rst +++ b/docs/source/usersguide/troubleshoot.rst @@ -31,7 +31,7 @@ on. Create a new build directory and type the following commands: Now when you re-run your problem, it should report exactly where the program failed. If after reading the debug output, you are still unsure why the program -failed, send an email to the OpenMC User's Group `mailing list`_. +failed, send an email to the OpenMC User's Group `OpenMC Discourse Forum `_. ERROR: No cross_sections.xml file was specified in settings.xml or in the OPENMC_CROSS_SECTIONS environment variable. ********************************************************************************************************************* From ed5ddf047b518aa1af4fb6bb08682bcfa1cc4854 Mon Sep 17 00:00:00 2001 From: Ariful Islam Pranto Date: Mon, 17 Aug 2020 19:45:33 +0600 Subject: [PATCH 072/122] update install.rst --- docs/source/usersguide/install.rst | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/docs/source/usersguide/install.rst b/docs/source/usersguide/install.rst index 992ef520f..bc7a2214b 100644 --- a/docs/source/usersguide/install.rst +++ b/docs/source/usersguide/install.rst @@ -12,34 +12,16 @@ Installation and Configuration Installing on Linux/Mac with conda-forge ---------------------------------------- -Conda_ is an open source package management system and environment management -system for installing multiple versions of software packages and their -dependencies and switching easily between them. `conda-forge -`_ is a community-led conda channel of -installable packages. For instructions on installing conda, please consult their -`documentation -`_. - -Once you have `conda` installed on your system, add the `conda-forge` channel to -your configuration with: +`Conda `_ is an open source package management +system and environment management system for installing multiple versions of +software packages and their dependencies and switching easily between them. If +you have `conda` installed on your system, OpenMC can be installed via the +`conda-forge` channel. First, add the `conda-forge` channel with: .. code-block:: sh conda config --add channels conda-forge -Once the `conda-forge` channel has been enabled, OpenMC can then be installed -with: - -.. code-block:: sh - - conda install openmc - -It is possible to list all of the versions of OpenMC available on your platform with: - -.. code-block:: sh - - conda search openmc --channel conda-forge - To list the versions of OpenMC that are available on the `conda-forge` channel, in your terminal window or an Anaconda Prompt run: From 3c2f36cd466fb722425bbf5aa4c62dab7a14a31d Mon Sep 17 00:00:00 2001 From: Ariful Islam Pranto Date: Mon, 17 Aug 2020 19:47:46 +0600 Subject: [PATCH 073/122] Update user forum Co-authored-by: Paul Romano --- docs/source/index.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 2aafdf4a8..ce3c5f77e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -15,7 +15,8 @@ OpenMC was originally developed by members of the `Computational Reactor Physics Group `_ at the `Massachusetts Institute of Technology `_ starting in 2011. Various universities, laboratories, and other organizations now contribute to the development of OpenMC. For more -information on OpenMC, feel free to send a message to the User's Group `OpenMC Discourse Forum `_. +information on OpenMC, feel free to post a message on the `OpenMC Discourse +Forum `_. .. admonition:: Recommended publication for citing :class: tip From d67b9416585b5efb37a2511d9d10035d9afed249 Mon Sep 17 00:00:00 2001 From: Ariful Islam Pranto Date: Mon, 17 Aug 2020 19:48:31 +0600 Subject: [PATCH 074/122] Update troubleshoot.rst Co-authored-by: Paul Romano --- docs/source/usersguide/troubleshoot.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/usersguide/troubleshoot.rst b/docs/source/usersguide/troubleshoot.rst index de1aa1d7d..f8ec70ebd 100644 --- a/docs/source/usersguide/troubleshoot.rst +++ b/docs/source/usersguide/troubleshoot.rst @@ -31,7 +31,8 @@ on. Create a new build directory and type the following commands: Now when you re-run your problem, it should report exactly where the program failed. If after reading the debug output, you are still unsure why the program -failed, send an email to the OpenMC User's Group `OpenMC Discourse Forum `_. +failed, post a message on the `OpenMC Discourse Forum +`_. ERROR: No cross_sections.xml file was specified in settings.xml or in the OPENMC_CROSS_SECTIONS environment variable. ********************************************************************************************************************* From 8f3dc3b8c223717ca434cb7b2d455b2a5c0d52f6 Mon Sep 17 00:00:00 2001 From: Miriam Date: Mon, 17 Aug 2020 16:25:32 +0000 Subject: [PATCH 075/122] Updated mgxs and tests Doc string updates to exclusively list openmc.RegularMesh as a domain type. I removed an if-statement related to domain == mesh, since mesh is the only allowable domain. Other minor edits. --- openmc/mgxs/mgxs.py | 17 +++++++---------- .../regression_tests/mgxs_library_hdf5/test.py | 4 ++-- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 04bebe7e4..3951f6d78 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6237,10 +6237,7 @@ class MeshSurfaceMGXS(MGXS): df = self.xs_tally.get_pandas_dataframe(paths=paths) # Remove the score column since it is homogeneous and redundant - if self.domain_type == 'mesh': - df = df.drop('score', axis=1, level=0) - else: - df = df.drop('score', axis=1) + df = df.drop('score', axis=1, level=0) # Convert azimuthal, polar, energy in and energy out bin values in to # bin indices @@ -6254,9 +6251,9 @@ class MeshSurfaceMGXS(MGXS): df = df[df['group out'].isin(groups)] mesh_str = 'mesh {0}'.format(self.domain.id) - surfaces = df[(mesh_str, 'surf')] - df.drop(columns=[(mesh_str,'surf')],inplace=True) - df.insert(len(self.domain.dimension),(mesh_str,'surf'),surfaces) + col_key = (mesh_str, 'surf') + surfaces = df.pop(col_key) + df.insert(len(self.domain.dimension), col_key, surfaces) if len(self.domain.dimension) == 1: df.sort_values(by=[(mesh_str, 'x'), (mesh_str, 'surf')] + columns, inplace=True) @@ -6295,9 +6292,9 @@ class Current(MeshSurfaceMGXS): Parameters ---------- - domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.RegularMesh + domain : openmc.RegularMesh The domain for spatial homogenization - domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'} + domain_type : ('mesh'} The domain type for spatial homogenization groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation @@ -6315,7 +6312,7 @@ class Current(MeshSurfaceMGXS): Reaction type (e.g., 'total', 'nu-fission', etc.) by_nuclide : bool Unused in MeshSurfaceMGXS - domain : Mesh + domain : openmc.RegularMesh Domain for spatial homogenization domain_type : {'mesh'} Domain type for spatial homogenization diff --git a/tests/regression_tests/mgxs_library_hdf5/test.py b/tests/regression_tests/mgxs_library_hdf5/test.py index 418cdcc83..2f3c9d149 100644 --- a/tests/regression_tests/mgxs_library_hdf5/test.py +++ b/tests/regression_tests/mgxs_library_hdf5/test.py @@ -62,8 +62,8 @@ class MGXSTestHarness(PyAPITestHarness): for domain in self.mgxs_lib.domains: for mgxs_type in self.mgxs_lib.mgxs_types: outstr += 'domain={0} type={1}\n'.format(domain.id, mgxs_type) - avg_key = 'mesh/{0}/{1}/average'.format(domain.id, mgxs_type) - std_key = 'mesh/{0}/{1}/std. dev.'.format(domain.id, mgxs_type) + avg_key = 'mesh/{}/{}/average'.format(domain.id, mgxs_type) + std_key = 'mesh/{}/{}/std. dev.'.format(domain.id, mgxs_type) outstr += '{}\n{}\n'.format(f[avg_key][...], f[std_key][...]) # Hash the results if necessary From 1ebcbd5d2d6738f08c02a95e38032b0a3c51d1c4 Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Tue, 18 Aug 2020 02:44:58 +0100 Subject: [PATCH 076/122] Delete tally-arithmetic.ipynb Wrong directory --- tally-arithmetic.ipynb | 1746 ---------------------------------------- 1 file changed, 1746 deletions(-) delete mode 100644 tally-arithmetic.ipynb diff --git a/tally-arithmetic.ipynb b/tally-arithmetic.ipynb deleted file mode 100644 index 6aed6e757..000000000 --- a/tally-arithmetic.ipynb +++ /dev/null @@ -1,1746 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This notebook shows the how tallies can be combined (added, subtracted, multiplied, etc.) using the Python API in order to create derived tallies. Since no covariance information is obtained, it is assumed that tallies are completely independent of one another when propagating uncertainties. The target problem is a simple pin cell." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import glob\n", - "\n", - "from IPython.display import Image\n", - "import numpy as np\n", - "import openmc" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Generate Input Files" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "First we need to define materials that will be used in the problem. We'll create three materials for the fuel, water, and cladding of the fuel pin." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# 1.6 enriched fuel\n", - "fuel = openmc.Material(name='1.6% Fuel')\n", - "fuel.set_density('g/cm3', 10.31341)\n", - "fuel.add_nuclide('U235', 3.7503e-4)\n", - "fuel.add_nuclide('U238', 2.2625e-2)\n", - "fuel.add_nuclide('O16', 4.6007e-2)\n", - "\n", - "# borated water\n", - "water = openmc.Material(name='Borated Water')\n", - "water.set_density('g/cm3', 0.740582)\n", - "water.add_nuclide('H1', 4.9457e-2)\n", - "water.add_nuclide('O16', 2.4732e-2)\n", - "water.add_nuclide('B10', 8.0042e-6)\n", - "\n", - "# zircaloy\n", - "zircaloy = openmc.Material(name='Zircaloy')\n", - "zircaloy.set_density('g/cm3', 6.55)\n", - "zircaloy.add_nuclide('Zr90', 7.2758e-3)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With our three materials, we can now create a materials file object that can be exported to an actual XML file." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# Instantiate a Materials collection\n", - "materials = openmc.Materials([fuel, water, zircaloy])\n", - "\n", - "# Export to \"materials.xml\"\n", - "materials.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 planes." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "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=-100., boundary_type='vacuum')\n", - "max_z = openmc.ZPlane(z0=+100., boundary_type='vacuum')" - ] - }, - { - "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": 5, - "metadata": {}, - "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.region = -fuel_outer_radius\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.region = +fuel_outer_radius & -clad_outer_radius\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.region = +clad_outer_radius\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": 6, - "metadata": {}, - "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.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n", - "\n", - "# Create root Universe\n", - "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", - "root_universe.add_cell(root_cell)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now must create a geometry that is assigned a root universe, put the geometry into a geometry file, and export it to XML." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "# Create Geometry and set root Universe\n", - "geometry = openmc.Geometry(root_universe)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "# Export to \"geometry.xml\"\n", - "geometry.export_to_xml()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 5 inactive batches and 15 active batches each with 2500 particles." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "# OpenMC simulation parameters\n", - "batches = 20\n", - "inactive = 5\n", - "particles = 2500\n", - "\n", - "# Instantiate a Settings object\n", - "settings = openmc.Settings()\n", - "settings.batches = batches\n", - "settings.inactive = inactive\n", - "settings.particles = particles\n", - "settings.output = {'tallies': True}\n", - "\n", - "# Create an initial uniform spatial source distribution over fissionable zones\n", - "bounds = [-0.63, -0.63, -100., 0.63, 0.63, 100.]\n", - "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", - "settings.source = openmc.Source(space=uniform_dist)\n", - "\n", - "# Export to \"settings.xml\"\n", - "settings.export_to_xml()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us also create a plot file that we can use to verify that our pin cell geometry was created successfully." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98iBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+QIDwgMOKO2DokAAAKlSURBVGje7ZrBscIwDETxwSWkn5TAgXCgBPqhBA6kyj/fDhCIJa2zZAwz0pmHpZWdSazd7Tw8PDw8PDw8vinCMBzW03HIsRLvhnv0HL7qD+IwjzXKzaNaxeEt9kz21RWEBV5XQbfka3pQWL4qgdLyNQkUcbwFT/FP4zjWt+D+++OY4laZQJgtnqNOwe5l9XkGmIIL/PEHUAGTeuc5P15wBbu34ucSIAXkX77h4xUtIBSXnxIAOhCLy98TANNfLj8lYBYQCuLPWmAWEBe9f90DUPdKy08JWB0U1HsoaAgQxPSnAgwBopz+VABQvoDnAnqTP0r8zealzfPcQqqAQSs/C6AKGLX0pwKs8uX0cwGaAHr6uYC9wSt46qDCB4RXBDTkMwWMhnxZQF3+s8pf1AZY5VsCWuVnAUQ+YPxB43X5koAiH035soCa/AaeBOw34m359AaQPCK/1oAAyJ8aIPBI+7QGRkD+3IBt+A6QPzeg34SH2pcauN+Kt9uXGljkse0jb6BP8AD+vwGKPLZ95A0UofbnDbAFj20/eQN+gD8h/LgRD25/8QCA2088AD/Oo8dPOoDo8ZMOoPPNeej4pwdAgUcfX9IDzHnnf5lnz88XnH/nSf4M8cIL7I+/P3yCP0G88P7W+v2z9ft36+8P9vuJ/X5r/f3Jfj83//5vff/R+v6Hvb9i78/Y+7vW94/N71/Z+2P2/pq9P2fv7+n5ATu/YOcn7PyGnR+x8yt6ftYN3PzOENCcH7LzS3Z+Ss9vO62DV5uPmgAXSz5+fs7O72n/QBQLwPwLrH+C9W/Q/hHWv8L6Z2j/ThZgvX+I9S/R/inWv8X6x2j/Guufo/17rH+Q9S/S/knWv0n7R2n/Kuufpf27tH+Y9i/vWP+0h4eHh4eHh8cW8QcxLJDBvLKoigAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wOC0xNVQwNzoxMjo1NiswMTowMNNGOLwAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDgtMTVUMDc6MTI6NTYrMDE6MDCiG4AAAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Instantiate a Plot\n", - "plot = openmc.Plot(plot_id=1)\n", - "plot.filename = 'materials-xy'\n", - "plot.origin = [0, 0, 0]\n", - "plot.width = [1.26, 1.26]\n", - "plot.pixels = [250, 250]\n", - "plot.color_by = 'material'\n", - "\n", - "# Show plot\n", - "openmc.plot_inline(plot)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As we can see from the plot, we have a nice pin cell with fuel, cladding, and water! Before we run our simulation, we need to tell the code what we want to tally. The following code shows how to create a variety of tallies." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "# Instantiate an empty Tallies object\n", - "tallies = openmc.Tallies()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "# Create Tallies to compute microscopic multi-group cross-sections\n", - "\n", - "# Instantiate energy filter for multi-group cross-section Tallies\n", - "energy_filter = openmc.EnergyFilter([0., 0.625, 20.0e6])\n", - "\n", - "# Instantiate flux Tally in moderator and fuel\n", - "tally = openmc.Tally(name='flux')\n", - "tally.filters = [openmc.CellFilter([fuel_cell, moderator_cell])]\n", - "tally.filters.append(energy_filter)\n", - "tally.scores = ['flux']\n", - "tallies.append(tally)\n", - "\n", - "# Instantiate reaction rate Tally in fuel\n", - "tally = openmc.Tally(name='fuel rxn rates')\n", - "tally.filters = [openmc.CellFilter(fuel_cell)]\n", - "tally.filters.append(energy_filter)\n", - "tally.scores = ['nu-fission', 'scatter']\n", - "tally.nuclides = ['U238', 'U235']\n", - "tallies.append(tally)\n", - "\n", - "# Instantiate reaction rate Tally in moderator\n", - "tally = openmc.Tally(name='moderator rxn rates')\n", - "tally.filters = [openmc.CellFilter(moderator_cell)]\n", - "tally.filters.append(energy_filter)\n", - "tally.scores = ['absorption', 'total']\n", - "tally.nuclides = ['O16', 'H1']\n", - "tallies.append(tally)\n", - "\n", - "# Instantiate a tally mesh\n", - "mesh = openmc.RegularMesh(mesh_id=1)\n", - "mesh.dimension = [1, 1, 1]\n", - "mesh.lower_left = [-0.63, -0.63, -100.]\n", - "mesh.width = [1.26, 1.26, 200.]\n", - "meshsurface_filter = openmc.MeshSurfaceFilter(mesh)\n", - "\n", - "# Instantiate thermal, fast, and total leakage tallies\n", - "leak = openmc.Tally(name='leakage')\n", - "leak.filters = [meshsurface_filter]\n", - "leak.scores = ['current']\n", - "tallies.append(leak)\n", - "\n", - "thermal_leak = openmc.Tally(name='thermal leakage')\n", - "thermal_leak.filters = [meshsurface_filter, openmc.EnergyFilter([0., 0.625])]\n", - "thermal_leak.scores = ['current']\n", - "tallies.append(thermal_leak)\n", - "\n", - "fast_leak = openmc.Tally(name='fast leakage')\n", - "fast_leak.filters = [meshsurface_filter, openmc.EnergyFilter([0.625, 20.0e6])]\n", - "fast_leak.scores = ['current']\n", - "tallies.append(fast_leak)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "# K-Eigenvalue (infinity) tallies\n", - "fiss_rate = openmc.Tally(name='fiss. rate')\n", - "abs_rate = openmc.Tally(name='abs. rate')\n", - "fiss_rate.scores = ['nu-fission']\n", - "abs_rate.scores = ['absorption']\n", - "tallies += (fiss_rate, abs_rate)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "# Resonance Escape Probability tallies\n", - "therm_abs_rate = openmc.Tally(name='therm. abs. rate')\n", - "therm_abs_rate.scores = ['absorption']\n", - "therm_abs_rate.filters = [openmc.EnergyFilter([0., 0.625])]\n", - "tallies.append(therm_abs_rate)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "# Thermal Flux Utilization tallies\n", - "fuel_therm_abs_rate = openmc.Tally(name='fuel therm. abs. rate')\n", - "fuel_therm_abs_rate.scores = ['absorption']\n", - "fuel_therm_abs_rate.filters = [openmc.EnergyFilter([0., 0.625]),\n", - " openmc.CellFilter([fuel_cell])]\n", - "tallies.append(fuel_therm_abs_rate)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "# Fast Fission Factor tallies\n", - "therm_fiss_rate = openmc.Tally(name='therm. fiss. rate')\n", - "therm_fiss_rate.scores = ['nu-fission']\n", - "therm_fiss_rate.filters = [openmc.EnergyFilter([0., 0.625])]\n", - "tallies.append(therm_fiss_rate)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "# Instantiate energy filter to illustrate Tally slicing\n", - "fine_energy_filter = openmc.EnergyFilter(np.logspace(np.log10(1e-2), np.log10(20.0e6), 10))\n", - "\n", - "# Instantiate flux Tally in moderator and fuel\n", - "tally = openmc.Tally(name='need-to-slice')\n", - "tally.filters = [openmc.CellFilter([fuel_cell, moderator_cell])]\n", - "tally.filters.append(fine_energy_filter)\n", - "tally.scores = ['nu-fission', 'scatter']\n", - "tally.nuclides = ['H1', 'U238']\n", - "tallies.append(tally)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [], - "source": [ - "# Export to \"tallies.xml\"\n", - "tallies.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": 19, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " %%%%%%%%%%%%%%%\n", - " %%%%%%%%%%%%%%%%%%%%%%%%\n", - " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", - " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", - " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", - " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", - " %%%%%%%%%%%%%%%%%%%%%%%%\n", - " %%%%%%%%%%%%%%%%%%%%%%%%\n", - " ############### %%%%%%%%%%%%%%%%%%%%%%%%\n", - " ################## %%%%%%%%%%%%%%%%%%%%%%%\n", - " ################### %%%%%%%%%%%%%%%%%%%%%%%\n", - " #################### %%%%%%%%%%%%%%%%%%%%%%\n", - " ##################### %%%%%%%%%%%%%%%%%%%%%\n", - " ###################### %%%%%%%%%%%%%%%%%%%%\n", - " ####################### %%%%%%%%%%%%%%%%%%\n", - " ####################### %%%%%%%%%%%%%%%%%\n", - " ###################### %%%%%%%%%%%%%%%%%\n", - " #################### %%%%%%%%%%%%%%%%%\n", - " ################# %%%%%%%%%%%%%%%%%\n", - " ############### %%%%%%%%%%%%%%%%\n", - " ############ %%%%%%%%%%%%%%%\n", - " ######## %%%%%%%%%%%%%%\n", - " %%%%%%%%%%%\n", - "\n", - " | The OpenMC Monte Carlo Code\n", - " Copyright | 2011-2020 MIT and OpenMC contributors\n", - " License | https://docs.openmc.org/en/latest/license.html\n", - " Version | 0.12.0\n", - " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", - " Date/Time | 2020-08-15 07:12:56\n", - " OpenMP Threads | 4\n", - "\n", - " Reading settings XML file...\n", - " Reading cross sections XML file...\n", - " Reading materials XML file...\n", - " Reading geometry XML file...\n", - " Reading U235 from /home/master/data/nuclear/endfb71_hdf5/U235.h5\n", - " Reading U238 from /home/master/data/nuclear/endfb71_hdf5/U238.h5\n", - " Reading O16 from /home/master/data/nuclear/endfb71_hdf5/O16.h5\n", - " Reading H1 from /home/master/data/nuclear/endfb71_hdf5/H1.h5\n", - " Reading B10 from /home/master/data/nuclear/endfb71_hdf5/B10.h5\n", - " Reading Zr90 from /home/master/data/nuclear/endfb71_hdf5/Zr90.h5\n", - " Minimum neutron data temperature: 294.000000 K\n", - " Maximum neutron data temperature: 294.000000 K\n", - " Reading tallies XML file...\n", - " Preparing distributed cell instances...\n", - " Writing summary.h5 file...\n", - " Maximum neutron transport energy: 20000000.000000 eV for U235\n", - " Initializing source particles...\n", - "\n", - " ====================> K EIGENVALUE SIMULATION <====================\n", - "\n", - " Bat./Gen. k Average k\n", - " ========= ======== ====================\n", - " 1/1 0.99100\n", - " 2/1 1.00834\n", - " 3/1 1.06764\n", - " 4/1 1.02113\n", - " 5/1 0.99556\n", - " 6/1 1.02501\n", - " 7/1 1.03920 1.03210 +/- 0.00709\n", - " 8/1 1.00744 1.02388 +/- 0.00918\n", - " 9/1 1.04889 1.03014 +/- 0.00902\n", - " 10/1 1.07235 1.03858 +/- 0.01096\n", - " 11/1 1.04400 1.03948 +/- 0.00899\n", - " 12/1 1.02556 1.03749 +/- 0.00786\n", - " 13/1 1.00755 1.03375 +/- 0.00776\n", - " 14/1 1.02346 1.03261 +/- 0.00694\n", - " 15/1 1.03215 1.03256 +/- 0.00621\n", - " 16/1 1.01060 1.03057 +/- 0.00596\n", - " 17/1 1.01665 1.02941 +/- 0.00556\n", - " 18/1 1.04273 1.03043 +/- 0.00522\n", - " 19/1 0.98780 1.02739 +/- 0.00571\n", - " 20/1 1.04402 1.02849 +/- 0.00543\n", - " Creating state point statepoint.20.h5...\n", - "\n", - " =======================> TIMING STATISTICS <=======================\n", - "\n", - " Total time for initialization = 2.8516e-01 seconds\n", - " Reading cross sections = 2.7562e-01 seconds\n", - " Total time in simulation = 1.6686e+00 seconds\n", - " Time in transport only = 1.6528e+00 seconds\n", - " Time in inactive batches = 2.2163e-01 seconds\n", - " Time in active batches = 1.4469e+00 seconds\n", - " Time synchronizing fission bank = 2.4642e-03 seconds\n", - " Sampling source sites = 1.9299e-03 seconds\n", - " SEND/RECV source sites = 5.0275e-04 seconds\n", - " Time accumulating tallies = 3.8964e-05 seconds\n", - " Total time for finalization = 2.0000e-04 seconds\n", - " Total time elapsed = 1.9609e+00 seconds\n", - " Calculation Rate (inactive) = 56401.3 particles/second\n", - " Calculation Rate (active) = 25917.0 particles/second\n", - "\n", - " ============================> RESULTS <============================\n", - "\n", - " k-effective (Collision) = 1.02606 +/- 0.00624\n", - " k-effective (Track-length) = 1.02849 +/- 0.00543\n", - " k-effective (Absorption) = 1.02154 +/- 0.00530\n", - " Combined k-effective = 1.02503 +/- 0.00501\n", - " Leakage Fraction = 0.01557 +/- 0.00106\n", - "\n" - ] - } - ], - "source": [ - "# Remove old HDF5 (summary, statepoint) files\n", - "!rm statepoint.*\n", - "\n", - "# Run OpenMC!\n", - "openmc.run()" - ] - }, - { - "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, the tally results are not read into memory because they might be large, even large enough to exceed the available memory on a computer." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# Load the statepoint file\n", - "sp = openmc.StatePoint('statepoint.20.h5')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have a tally of the total fission rate and the total absorption rate, so we can calculate k-eff as:\n", - "$$k_{eff} = \\frac{\\langle \\nu \\Sigma_f \\phi \\rangle}{\\langle \\Sigma_a \\phi \\rangle + \\langle L \\rangle}$$\n", - "In this notation, $\\langle \\cdot \\rangle^a_b$ represents an OpenMC that is integrated over region $a$ and energy range $b$. If $a$ or $b$ is not reported, it means the value represents an integral over all space or all energy, respectively." - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "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", - "
nuclidescoremeanstd. dev.
0total(nu-fission / (absorption + current))1.0226610.006992
\n", - "
" - ], - "text/plain": [ - " nuclide score mean std. dev.\n", - "0 total (nu-fission / (absorption + current)) 1.02e+00 6.99e-03" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Get the fission and absorption rate tallies\n", - "fiss_rate = sp.get_tally(name='fiss. rate')\n", - "abs_rate = sp.get_tally(name='abs. rate')\n", - "\n", - "# Get the leakage tally\n", - "leak = sp.get_tally(name='leakage')\n", - "leak = leak.summation(filter_type=openmc.MeshSurfaceFilter, remove_filter=True)\n", - "\n", - "# Compute k-infinity using tally arithmetic\n", - "keff = fiss_rate / (abs_rate + leak)\n", - "keff.get_pandas_dataframe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Notice that even though the neutron production rate, absorption rate, and current are separate tallies, we still get a first-order estimate of the uncertainty on the quotient of them automatically!\n", - "\n", - "Often in textbooks you'll see k-eff represented using the six-factor formula $$k_{eff} = p \\epsilon f \\eta P_{FNL} P_{TNL}.$$ Let's analyze each of these factors, starting with the resonance escape probability which is defined as $$p=\\frac{\\langle\\Sigma_a\\phi\\rangle_T + \\langle L \\rangle_T}{\\langle\\Sigma_a\\phi\\rangle + \\langle L \\rangle_T}$$ where the subscript $T$ means thermal energies." - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "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", - "
energy low [eV]energy high [eV]nuclidescoremeanstd. dev.
00.00.625total((absorption + current) / (absorption + current))0.6933880.005475
\n", - "
" - ], - "text/plain": [ - " energy low [eV] energy high [eV] nuclide \\\n", - "0 0.00e+00 6.25e-01 total \n", - "\n", - " score mean std. dev. \n", - "0 ((absorption + current) / (absorption + current)) 6.93e-01 5.47e-03 " - ] - }, - "execution_count": 22, - "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", - "thermal_leak = sp.get_tally(name='thermal leakage')\n", - "thermal_leak = thermal_leak.summation(filter_type=openmc.MeshSurfaceFilter, remove_filter=True)\n", - "res_esc = (therm_abs_rate + thermal_leak) / (abs_rate + thermal_leak)\n", - "res_esc.get_pandas_dataframe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The fast fission factor can be calculated as\n", - "$$\\epsilon=\\frac{\\langle\\nu\\Sigma_f\\phi\\rangle}{\\langle\\nu\\Sigma_f\\phi\\rangle_T}$$" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "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", - "
energy low [eV]energy high [eV]nuclidescoremeanstd. dev.
00.00.625total(nu-fission / nu-fission)1.2037180.010102
\n", - "
" - ], - "text/plain": [ - " energy low [eV] energy high [eV] nuclide score \\\n", - "0 0.00e+00 6.25e-01 total (nu-fission / nu-fission) \n", - "\n", - " mean std. dev. \n", - "0 1.20e+00 1.01e-02 " - ] - }, - "execution_count": 23, - "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", - "fast_fiss = fiss_rate / therm_fiss_rate\n", - "fast_fiss.get_pandas_dataframe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The thermal flux utilization is calculated as\n", - "$$f=\\frac{\\langle\\Sigma_a\\phi\\rangle^F_T}{\\langle\\Sigma_a\\phi\\rangle_T}$$\n", - "where the superscript $F$ denotes fuel." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "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", - "
energy low [eV]energy high [eV]cellnuclidescoremeanstd. dev.
00.00.6251total(absorption / absorption)0.7486130.006949
\n", - "
" - ], - "text/plain": [ - " energy low [eV] energy high [eV] cell nuclide score \\\n", - "0 0.00e+00 6.25e-01 1 total (absorption / absorption) \n", - "\n", - " mean std. dev. \n", - "0 7.49e-01 6.95e-03 " - ] - }, - "execution_count": 24, - "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", - "therm_util = fuel_therm_abs_rate / therm_abs_rate\n", - "therm_util.get_pandas_dataframe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The next factor is the number of fission neutrons produced per absorption in fuel, calculated as $$\\eta = \\frac{\\langle \\nu\\Sigma_f\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle^F_T}$$" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "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", - "
energy low [eV]energy high [eV]cellnuclidescoremeanstd. dev.
00.00.6251total(nu-fission / absorption)1.6635490.015328
\n", - "
" - ], - "text/plain": [ - " energy low [eV] energy high [eV] cell nuclide score \\\n", - "0 0.00e+00 6.25e-01 1 total (nu-fission / absorption) \n", - "\n", - " mean std. dev. \n", - "0 1.66e+00 1.53e-02 " - ] - }, - "execution_count": 25, - "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", - "eta.get_pandas_dataframe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There are two leakage factors to account for fast and thermal leakage. The fast non-leakage probability is computed as $$P_{FNL} = \\frac{\\langle \\Sigma_a\\phi \\rangle + \\langle L \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle + \\langle L \\rangle}$$" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "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", - "
energy low [eV]energy high [eV]nuclidescoremeanstd. dev.
00.00.625total((absorption + current) / (absorption + current))0.9859730.006036
\n", - "
" - ], - "text/plain": [ - " energy low [eV] energy high [eV] nuclide \\\n", - "0 0.00e+00 6.25e-01 total \n", - "\n", - " score mean std. dev. \n", - "0 ((absorption + current) / (absorption + current)) 9.86e-01 6.04e-03 " - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "p_fnl = (abs_rate + thermal_leak) / (abs_rate + leak)\n", - "p_fnl.get_pandas_dataframe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The final factor is the thermal non-leakage probability and is computed as $$P_{TNL} = \\frac{\\langle \\Sigma_a\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle_T + \\langle L \\rangle_T}$$" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "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", - "
energy low [eV]energy high [eV]nuclidescoremeanstd. dev.
00.00.625total(absorption / (absorption + current))0.9978670.009335
\n", - "
" - ], - "text/plain": [ - " energy low [eV] energy high [eV] nuclide \\\n", - "0 0.00e+00 6.25e-01 total \n", - "\n", - " score mean std. dev. \n", - "0 (absorption / (absorption + current)) 9.98e-01 9.33e-03 " - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "p_tnl = therm_abs_rate / (therm_abs_rate + thermal_leak)\n", - "p_tnl.get_pandas_dataframe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can calculate $k_{eff}$ using the product of the factors form the four-factor formula." - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "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", - "
energy low [eV]energy high [eV]cellnuclidescoremeanstd. dev.
00.00.6251total(((((((absorption + current) / (absorption + c...1.0226610.021177
\n", - "
" - ], - "text/plain": [ - " energy low [eV] energy high [eV] cell nuclide \\\n", - "0 0.00e+00 6.25e-01 1 total \n", - "\n", - " score mean std. dev. \n", - "0 (((((((absorption + current) / (absorption + c... 1.02e+00 2.12e-02 " - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "keff = res_esc * fast_fiss * therm_util * eta * p_fnl * p_tnl\n", - "keff.get_pandas_dataframe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We see that the value we've obtained here has exactly the same mean as before. However, because of the way it was calculated, the standard deviation appears to be larger.\n", - "\n", - "Let's move on to a more complicated example now. Before we set up tallies to get reaction rates in the fuel and moderator in two energy groups for two different nuclides. We can use tally arithmetic to divide each of these reaction rates by the flux to get microscopic multi-group cross sections." - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# Compute microscopic multi-group cross-sections\n", - "flux = sp.get_tally(name='flux')\n", - "flux = flux.get_slice(filters=[openmc.CellFilter], filter_bins=[(fuel_cell.id,)])\n", - "fuel_rxn_rates = sp.get_tally(name='fuel rxn rates')\n", - "mod_rxn_rates = sp.get_tally(name='moderator rxn rates')" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "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", - "
cellenergy low [eV]energy high [eV]nuclidescoremeanstd. dev.
010.0006.250000e-01(U238 / total)(nu-fission / flux)6.656489e-076.107780e-09
110.0006.250000e-01(U238 / total)(scatter / flux)2.099890e-011.936009e-03
210.0006.250000e-01(U235 / total)(nu-fission / flux)3.563899e-013.286347e-03
310.0006.250000e-01(U235 / total)(scatter / flux)5.554974e-035.124024e-05
410.6252.000000e+07(U238 / total)(nu-fission / flux)7.166537e-037.141716e-05
510.6252.000000e+07(U238 / total)(scatter / flux)2.275268e-019.822400e-04
610.6252.000000e+07(U235 / total)(nu-fission / flux)8.007796e-035.184629e-05
710.6252.000000e+07(U235 / total)(scatter / flux)3.366335e-031.396517e-05
\n", - "
" - ], - "text/plain": [ - " cell energy low [eV] energy high [eV] nuclide \\\n", - "0 1 0.00e+00 6.25e-01 (U238 / total) \n", - "1 1 0.00e+00 6.25e-01 (U238 / total) \n", - "2 1 0.00e+00 6.25e-01 (U235 / total) \n", - "3 1 0.00e+00 6.25e-01 (U235 / total) \n", - "4 1 6.25e-01 2.00e+07 (U238 / total) \n", - "5 1 6.25e-01 2.00e+07 (U238 / total) \n", - "6 1 6.25e-01 2.00e+07 (U235 / total) \n", - "7 1 6.25e-01 2.00e+07 (U235 / total) \n", - "\n", - " score mean std. dev. \n", - "0 (nu-fission / flux) 6.66e-07 6.11e-09 \n", - "1 (scatter / flux) 2.10e-01 1.94e-03 \n", - "2 (nu-fission / flux) 3.56e-01 3.29e-03 \n", - "3 (scatter / flux) 5.55e-03 5.12e-05 \n", - "4 (nu-fission / flux) 7.17e-03 7.14e-05 \n", - "5 (scatter / flux) 2.28e-01 9.82e-04 \n", - "6 (nu-fission / flux) 8.01e-03 5.18e-05 \n", - "7 (scatter / flux) 3.37e-03 1.40e-05 " - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fuel_xs = fuel_rxn_rates / flux\n", - "fuel_xs.get_pandas_dataframe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We see that when the two tallies with multiple bins were divided, the derived tally contains the outer product of the combinations. If the filters/scores are the same, no outer product is needed. The `get_values(...)` method allows us to obtain a subset of tally scores. In the following example, we obtain just the neutron production microscopic cross sections." - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[6.65648937e-07]\n", - " [3.56389890e-01]]\n", - "\n", - " [[7.16653669e-03]\n", - " [8.00779649e-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", - "print(nu_fiss_xs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The same idea can be used not only for scores but also for filters and nuclides." - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[0.00555497]]\n", - "\n", - " [[0.00336633]]]\n" - ] - } - ], - "source": [ - "# Show how to use Tally.get_values(...) with a CrossScore and CrossNuclide\n", - "u235_scatter_xs = fuel_xs.get_values(nuclides=['(U235 / total)'], \n", - " scores=['(scatter / flux)'])\n", - "print(u235_scatter_xs)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[[0.22752681]\n", - " [0.00336633]]]\n" - ] - } - ], - "source": [ - "# Show how to use Tally.get_values(...) with a CrossFilter and CrossScore\n", - "fast_scatter_xs = fuel_xs.get_values(filters=[openmc.EnergyFilter], \n", - " filter_bins=[((0.625, 20.0e6),)], \n", - " scores=['(scatter / flux)'])\n", - "print(fast_scatter_xs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A more advanced method is to use `get_slice(...)` to create a new derived tally that is a subset of an existing tally. This has the benefit that we can use `get_pandas_dataframe()` to see the tallies in a more human-readable format." - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "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", - "
cellenergy low [eV]energy high [eV]nuclidescoremeanstd. dev.
010.0006.250000e-01U238nu-fission0.0000021.030465e-08
110.0006.250000e-01U235nu-fission0.8544305.572280e-03
210.6252.000000e+07U238nu-fission0.0822067.786594e-04
310.6252.000000e+07U235nu-fission0.0918565.222837e-04
\n", - "
" - ], - "text/plain": [ - " cell energy low [eV] energy high [eV] nuclide score mean \\\n", - "0 1 0.00e+00 6.25e-01 U238 nu-fission 1.60e-06 \n", - "1 1 0.00e+00 6.25e-01 U235 nu-fission 8.54e-01 \n", - "2 1 6.25e-01 2.00e+07 U238 nu-fission 8.22e-02 \n", - "3 1 6.25e-01 2.00e+07 U235 nu-fission 9.19e-02 \n", - "\n", - " std. dev. \n", - "0 1.03e-08 \n", - "1 5.57e-03 \n", - "2 7.79e-04 \n", - "3 5.22e-04 " - ] - }, - "execution_count": 34, - "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", - "nu_fission_rates.get_pandas_dataframe()" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "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", - "
cellenergy low [eV]energy high [eV]nuclidescoremeanstd. dev.
031.000000e-021.080060e-01H1scatter4.5542610.038132
131.080060e-011.166529e+00H1scatter2.0090360.012481
231.166529e+001.259921e+01H1scatter1.6325360.009018
331.259921e+011.360790e+02H1scatter1.8456690.011216
431.360790e+021.469734e+03H1scatter2.0474760.011371
531.469734e+031.587401e+04H1scatter2.1266120.012823
631.587401e+041.714488e+05H1scatter2.2117440.012935
731.714488e+051.851749e+06H1scatter2.0149320.007407
831.851749e+062.000000e+07H1scatter0.3723360.003747
\n", - "
" - ], - "text/plain": [ - " cell energy low [eV] energy high [eV] nuclide score mean \\\n", - "0 3 1.00e-02 1.08e-01 H1 scatter 4.55e+00 \n", - "1 3 1.08e-01 1.17e+00 H1 scatter 2.01e+00 \n", - "2 3 1.17e+00 1.26e+01 H1 scatter 1.63e+00 \n", - "3 3 1.26e+01 1.36e+02 H1 scatter 1.85e+00 \n", - "4 3 1.36e+02 1.47e+03 H1 scatter 2.05e+00 \n", - "5 3 1.47e+03 1.59e+04 H1 scatter 2.13e+00 \n", - "6 3 1.59e+04 1.71e+05 H1 scatter 2.21e+00 \n", - "7 3 1.71e+05 1.85e+06 H1 scatter 2.01e+00 \n", - "8 3 1.85e+06 2.00e+07 H1 scatter 3.72e-01 \n", - "\n", - " std. dev. \n", - "0 3.81e-02 \n", - "1 1.25e-02 \n", - "2 9.02e-03 \n", - "3 1.12e-02 \n", - "4 1.14e-02 \n", - "5 1.28e-02 \n", - "6 1.29e-02 \n", - "7 7.41e-03 \n", - "8 3.75e-03 " - ] - }, - "execution_count": 35, - "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", - "slice_test = need_to_slice.get_slice(scores=['scatter'], nuclides=['H1'],\n", - " filters=[openmc.CellFilter], filter_bins=[(moderator_cell.id,)])\n", - "slice_test.get_pandas_dataframe()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} From 45dc955be6f7f30fa5cba8a1d9437a53147da79d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 18 Aug 2020 22:02:40 -0500 Subject: [PATCH 077/122] Ensure replace_missing replaces neutron with nothing --- openmc/deplete/chain.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/deplete/chain.py b/openmc/deplete/chain.py index 8293273d4..d59c3a8ee 100644 --- a/openmc/deplete/chain.py +++ b/openmc/deplete/chain.py @@ -147,9 +147,9 @@ def replace_missing(product, decay_data): Z, A, state = openmc.data.zam(product) symbol = openmc.data.ATOMIC_SYMBOL[Z] - # Replace neutron with proton - if Z == 0 and A == 1: - return 'H1' + # Replace neutron with nothing + if Z == 0: + return None # First check if ground state is available if state: From aba8af458c67c1ef0b281cee7d10c0a8fa314dc2 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Tue, 14 Jul 2020 23:02:07 -0500 Subject: [PATCH 078/122] Label DAG cells as simple to avoid superfluous surface normal calls. --- src/dagmc.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dagmc.cpp b/src/dagmc.cpp index 29c10dc13..2a8064a42 100644 --- a/src/dagmc.cpp +++ b/src/dagmc.cpp @@ -196,6 +196,7 @@ void load_dagmc_geometry() // set cell ids using global IDs DAGCell* c = new DAGCell(); c->dag_index_ = i+1; + c->simple_ = true; c->id_ = model::DAG->id_by_index(3, c->dag_index_); c->dagmc_ptr_ = model::DAG; c->universe_ = dagmc_univ_id; // set to zero for now From 6d41c669b0f6d3c2f9c627a317c33f5ebfeb0f05 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Tue, 14 Jul 2020 23:02:52 -0500 Subject: [PATCH 079/122] Pass particle history into DAGMC for more efficient normal calls. --- include/openmc/position.h | 8 ++++++++ src/surface.cpp | 12 ++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/include/openmc/position.h b/include/openmc/position.h index 2be72b27c..aaf63d000 100644 --- a/include/openmc/position.h +++ b/include/openmc/position.h @@ -63,6 +63,14 @@ struct Position { return std::sqrt(x*x + y*y + z*z); } + inline Position reflect(Position n) { + const double projection = n.dot(*this); + const double magnitude = n.dot(n); + + n *= (2.0 * projection / magnitude); + return *this -= n; + } + //! Rotate the position based on a rotation matrix Position rotate(const std::vector& rotation) const; diff --git a/src/surface.cpp b/src/surface.cpp index f5a7f9f5f..f2faa3efe 100644 --- a/src/surface.cpp +++ b/src/surface.cpp @@ -172,11 +172,9 @@ Surface::reflect(Position r, Direction u, Particle* p) const // Determine projection of direction onto normal and squared magnitude of // normal. Direction n = normal(r); - const double projection = n.dot(u); - const double magnitude = n.dot(n); // Reflect direction according to normal. - return u -= (2.0 * projection / magnitude) * n; + return u.reflect(n); } Direction @@ -279,7 +277,13 @@ Direction DAGSurface::reflect(Position r, Direction u, Particle* p) const { Expects(p); p->history_.reset_to_last_intersection(); - p->last_dir_ = Surface::reflect(r, u, p); + moab::ErrorCode rval; + moab::EntityHandle surf = dagmc_ptr_->entity_by_index(2, dag_index_); + double pnt[3] = {r.x, r.y, r.z}; + double dir[3]; + rval = dagmc_ptr_->get_angle(surf, pnt, dir, &p->history_); + MB_CHK_ERR_CONT(rval); + p->last_dir_ = u.reflect(dir); return p->last_dir_; } From 4fa6fd4b8f1b421a71216c87882b5fb533aeeaf2 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Wed, 19 Aug 2020 23:32:15 -0500 Subject: [PATCH 080/122] Moving setting of simple attribute into the DAGCell constructor. --- src/cell.cpp | 2 +- src/dagmc.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/cell.cpp b/src/cell.cpp index 6c2bbf6bd..6ca39749f 100644 --- a/src/cell.cpp +++ b/src/cell.cpp @@ -779,7 +779,7 @@ CSGCell::contains_complex(Position r, Direction u, int32_t on_surface) const // DAGMC Cell implementation //============================================================================== #ifdef DAGMC -DAGCell::DAGCell() : Cell{} {}; +DAGCell::DAGCell() : Cell{} { simple_ = true; }; std::pair DAGCell::distance(Position r, Direction u, int32_t on_surface, Particle* p) const diff --git a/src/dagmc.cpp b/src/dagmc.cpp index 2a8064a42..29c10dc13 100644 --- a/src/dagmc.cpp +++ b/src/dagmc.cpp @@ -196,7 +196,6 @@ void load_dagmc_geometry() // set cell ids using global IDs DAGCell* c = new DAGCell(); c->dag_index_ = i+1; - c->simple_ = true; c->id_ = model::DAG->id_by_index(3, c->dag_index_); c->dagmc_ptr_ = model::DAG; c->universe_ = dagmc_univ_id; // set to zero for now From 1bdc9ca87719dd1a702307f4a55fae495ea48fb0 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Wed, 19 Aug 2020 23:32:27 -0500 Subject: [PATCH 081/122] Removing blank line. --- include/openmc/position.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/openmc/position.h b/include/openmc/position.h index aaf63d000..b27a0f10c 100644 --- a/include/openmc/position.h +++ b/include/openmc/position.h @@ -66,7 +66,6 @@ struct Position { inline Position reflect(Position n) { const double projection = n.dot(*this); const double magnitude = n.dot(n); - n *= (2.0 * projection / magnitude); return *this -= n; } From afbf0e6216fa72b6e398f9af41de6b94bb70f4a7 Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Fri, 21 Aug 2020 07:25:34 +0100 Subject: [PATCH 082/122] Add files via upload --- examples/jupyter/post-processing.ipynb | 352 ++++++++++++------------- 1 file changed, 173 insertions(+), 179 deletions(-) diff --git a/examples/jupyter/post-processing.ipynb b/examples/jupyter/post-processing.ipynb index 45bba7c61..44a2c2d4e 100644 --- a/examples/jupyter/post-processing.ipynb +++ b/examples/jupyter/post-processing.ipynb @@ -207,15 +207,10 @@ "outputs": [], "source": [ "# OpenMC simulation parameters\n", - "batches = 100\n", - "inactive = 10\n", - "particles = 5000\n", - "\n", - "# Instantiate a Settings object\n", "settings = openmc.Settings()\n", - "settings.batches = batches\n", - "settings.inactive = inactive\n", - "settings.particles = particles\n", + "settings.batches = 100\n", + "settings.inactive = 10\n", + "settings.particles = 5000\n", "\n", "# Create an initial uniform spatial source distribution over fissionable zones\n", "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", @@ -240,7 +235,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEXpgJFyEhJNv8T///9xF1FxAAAAAWJLR0QDEQxM8gAAAAd0SU1FB+QIDwc1MzG8HYYAAAKlSURBVGje7ZrBscIwDETxwSWkn5TAgXCgBPqhBA6kyj/fDhCIJa2zZAwz0pmHpZWdSazd7Tw8PDw8PDw8vinCMBzW03HIsRLvhnv0HL7qD+IwjzXKzaNaxeEt9kz21RWEBV5XQbfka3pQWL4qgdLyNQkUcbwFT/FP4zjWt+D+++OY4laZQJgtnqNOwe5l9XkGmIIL/PEHUAGTeuc5P15wBbu34ucSIAXkX77h4xUtIBSXnxIAOhCLy98TANNfLj8lYBYQCuLPWmAWEBe9f90DUPdKy08JWB0U1HsoaAgQxPSnAgwBopz+VABQvoDnAnqTP0r8zealzfPcQqqAQSs/C6AKGLX0pwKs8uX0cwGaAHr6uYC9wSt46qDCB4RXBDTkMwWMhnxZQF3+s8pf1AZY5VsCWuVnAUQ+YPxB43X5koAiH035soCa/AaeBOw34m359AaQPCK/1oAAyJ8aIPBI+7QGRkD+3IBt+A6QPzeg34SH2pcauN+Kt9uXGljkse0jb6BP8AD+vwGKPLZ95A0UofbnDbAFj20/eQN+gD8h/LgRD25/8QCA2088AD/Oo8dPOoDo8ZMOoPPNeej4pwdAgUcfX9IDzHnnf5lnz88XnH/nSf4M8cIL7I+/P3yCP0G88P7W+v2z9ft36+8P9vuJ/X5r/f3Jfj83//5vff/R+v6Hvb9i78/Y+7vW94/N71/Z+2P2/pq9P2fv7+n5ATu/YOcn7PyGnR+x8yt6ftYN3PzOENCcH7LzS3Z+Ss9vO62DV5uPmgAXSz5+fs7O72n/QBQLwPwLrH+C9W/Q/hHWv8L6Z2j/ThZgvX+I9S/R/inWv8X6x2j/Guufo/17rH+Q9S/S/knWv0n7R2n/Kuufpf27tH+Y9i/vWP+0h4eHh4eHh8cW8QcxLJDBvLKoigAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wOC0xNVQwNjo1Mzo1MSswMTowMJRsxwsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDgtMTVUMDY6NTM6NTErMDE6MDDlMX+3AAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEXpgJFyEhJNv8T///9xF1FxAAAAAWJLR0QDEQxM8gAAAAd0SU1FB+MHEwEWFzIBvcoAAAKlSURBVGje7ZrBscIwDETxwSWkn5TAgXCgBPqhBA6kyj/fDhCIJa2zZAwz0pmHpZWdSazd7Tw8PDw8PDw8vinCMBzW03HIsRLvhnv0HL7qD+IwjzXKzaNaxeEt9kz21RWEBV5XQbfka3pQWL4qgdLyNQkUcbwFT/FP4zjWt+D+++OY4laZQJgtnqNOwe5l9XkGmIIL/PEHUAGTeuc5P15wBbu34ucSIAXkX77h4xUtIBSXnxIAOhCLy98TANNfLj8lYBYQCuLPWmAWEBe9f90DUPdKy08JWB0U1HsoaAgQxPSnAgwBopz+VABQvoDnAnqTP0r8zealzfPcQqqAQSs/C6AKGLX0pwKs8uX0cwGaAHr6uYC9wSt46qDCB4RXBDTkMwWMhnxZQF3+s8pf1AZY5VsCWuVnAUQ+YPxB43X5koAiH035soCa/AaeBOw34m359AaQPCK/1oAAyJ8aIPBI+7QGRkD+3IBt+A6QPzeg34SH2pcauN+Kt9uXGljkse0jb6BP8AD+vwGKPLZ95A0UofbnDbAFj20/eQN+gD8h/LgRD25/8QCA2088AD/Oo8dPOoDo8ZMOoPPNeej4pwdAgUcfX9IDzHnnf5lnz88XnH/nSf4M8cIL7I+/P3yCP0G88P7W+v2z9ft36+8P9vuJ/X5r/f3Jfj83//5vff/R+v6Hvb9i78/Y+7vW94/N71/Z+2P2/pq9P2fv7+n5ATu/YOcn7PyGnR+x8yt6ftYN3PzOENCcH7LzS3Z+Ss9vO62DV5uPmgAXSz5+fs7O72n/QBQLwPwLrH+C9W/Q/hHWv8L6Z2j/ThZgvX+I9S/R/inWv8X6x2j/Guufo/17rH+Q9S/S/knWv0n7R2n/Kuufpf27tH+Y9i/vWP+0h4eHh4eHh8cW8QcxLJDBvLKoigAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0wNy0xOVQwNjoyMjoyMy0wNTowMKrH6zcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDctMTlUMDY6MjI6MjMtMDU6MDDbmlOLAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] @@ -348,160 +343,157 @@ " %%%%%%%%%%%\n", "\n", " | The OpenMC Monte Carlo Code\n", - " Copyright | 2011-2020 MIT and OpenMC contributors\n", - " License | https://docs.openmc.org/en/latest/license.html\n", - " Version | 0.12.0\n", - " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", - " Date/Time | 2020-08-15 06:53:51\n", + " Copyright | 2011-2019 MIT and OpenMC contributors\n", + " License | http://openmc.readthedocs.io/en/latest/license.html\n", + " Version | 0.11.0-dev\n", + " Git SHA1 | 61c911cffdae2406f9f4bc667a9a6954748bb70c\n", + " Date/Time | 2019-07-19 06:22:24\n", " OpenMP Threads | 4\n", "\n", " Reading settings XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", " Reading geometry XML file...\n", - " Reading U235 from /home/master/data/nuclear/endfb71_hdf5/U235.h5\n", - " Reading U238 from /home/master/data/nuclear/endfb71_hdf5/U238.h5\n", - " Reading O16 from /home/master/data/nuclear/endfb71_hdf5/O16.h5\n", - " Reading H1 from /home/master/data/nuclear/endfb71_hdf5/H1.h5\n", - " Reading B10 from /home/master/data/nuclear/endfb71_hdf5/B10.h5\n", - " Reading Zr90 from /home/master/data/nuclear/endfb71_hdf5/Zr90.h5\n", - " Minimum neutron data temperature: 294.000000 K\n", - " Maximum neutron data temperature: 294.000000 K\n", - " Reading tallies XML file...\n", - " Preparing distributed cell instances...\n", - " Writing summary.h5 file...\n", + " Reading U235 from /opt/data/hdf5/nndc_hdf5_v15/U235.h5\n", + " Reading U238 from /opt/data/hdf5/nndc_hdf5_v15/U238.h5\n", + " Reading O16 from /opt/data/hdf5/nndc_hdf5_v15/O16.h5\n", + " Reading H1 from /opt/data/hdf5/nndc_hdf5_v15/H1.h5\n", + " Reading B10 from /opt/data/hdf5/nndc_hdf5_v15/B10.h5\n", + " Reading Zr90 from /opt/data/hdf5/nndc_hdf5_v15/Zr90.h5\n", " Maximum neutron transport energy: 20000000.000000 eV for U235\n", + " Reading tallies XML file...\n", + " Writing summary.h5 file...\n", " Initializing source particles...\n", "\n", " ====================> K EIGENVALUE SIMULATION <====================\n", "\n", " Bat./Gen. k Average k\n", " ========= ======== ====================\n", - " 1/1 1.06227\n", - " 2/1 1.01195\n", - " 3/1 1.03639\n", - " 4/1 1.04914\n", - " 5/1 1.03064\n", - " 6/1 1.04195\n", - " 7/1 1.00884\n", - " 8/1 1.02835\n", - " 9/1 1.03221\n", - " 10/1 1.03582\n", - " 11/1 1.04925\n", - " 12/1 1.08792 1.06859 +/- 0.01933\n", - " 13/1 1.02809 1.05509 +/- 0.01752\n", - " 14/1 1.06848 1.05843 +/- 0.01283\n", - " 15/1 1.03111 1.05297 +/- 0.01134\n", - " 16/1 1.04506 1.05165 +/- 0.00935\n", - " 17/1 1.07306 1.05471 +/- 0.00848\n", - " 18/1 1.05490 1.05473 +/- 0.00734\n", - " 19/1 1.04172 1.05329 +/- 0.00663\n", - " 20/1 1.01989 1.04995 +/- 0.00681\n", - " 21/1 1.05584 1.05048 +/- 0.00618\n", - " 22/1 1.01345 1.04740 +/- 0.00643\n", - " 23/1 1.05132 1.04770 +/- 0.00592\n", - " 24/1 1.05944 1.04854 +/- 0.00555\n", - " 25/1 1.04176 1.04809 +/- 0.00519\n", - " 26/1 1.05255 1.04836 +/- 0.00486\n", - " 27/1 1.06039 1.04907 +/- 0.00462\n", - " 28/1 1.01259 1.04705 +/- 0.00480\n", - " 29/1 1.07706 1.04863 +/- 0.00481\n", - " 30/1 1.04735 1.04856 +/- 0.00456\n", - " 31/1 1.04396 1.04834 +/- 0.00435\n", - " 32/1 1.08646 1.05007 +/- 0.00449\n", - " 33/1 1.02153 1.04883 +/- 0.00447\n", - " 34/1 1.04064 1.04849 +/- 0.00429\n", - " 35/1 1.04707 1.04844 +/- 0.00412\n", - " 36/1 1.03148 1.04778 +/- 0.00401\n", - " 37/1 1.08468 1.04915 +/- 0.00409\n", - " 38/1 1.05295 1.04929 +/- 0.00395\n", - " 39/1 1.01312 1.04804 +/- 0.00401\n", - " 40/1 1.04195 1.04784 +/- 0.00388\n", - " 41/1 1.05267 1.04799 +/- 0.00375\n", - " 42/1 1.01480 1.04695 +/- 0.00378\n", - " 43/1 1.05585 1.04722 +/- 0.00367\n", - " 44/1 1.06288 1.04768 +/- 0.00359\n", - " 45/1 1.07661 1.04851 +/- 0.00358\n", - " 46/1 1.05277 1.04863 +/- 0.00348\n", - " 47/1 1.04078 1.04842 +/- 0.00340\n", - " 48/1 1.08151 1.04929 +/- 0.00342\n", - " 49/1 1.04320 1.04913 +/- 0.00333\n", - " 50/1 1.04634 1.04906 +/- 0.00325\n", - " 51/1 1.06277 1.04940 +/- 0.00319\n", - " 52/1 1.02976 1.04893 +/- 0.00314\n", - " 53/1 1.03343 1.04857 +/- 0.00309\n", - " 54/1 1.01412 1.04779 +/- 0.00312\n", - " 55/1 1.04377 1.04770 +/- 0.00305\n", - " 56/1 1.04291 1.04759 +/- 0.00299\n", - " 57/1 1.07484 1.04817 +/- 0.00298\n", - " 58/1 1.07670 1.04877 +/- 0.00298\n", - " 59/1 1.05094 1.04881 +/- 0.00292\n", - " 60/1 1.00995 1.04803 +/- 0.00296\n", - " 61/1 1.04516 1.04798 +/- 0.00290\n", - " 62/1 1.03550 1.04774 +/- 0.00286\n", - " 63/1 1.02405 1.04729 +/- 0.00284\n", - " 64/1 1.06253 1.04757 +/- 0.00280\n", - " 65/1 1.06091 1.04781 +/- 0.00276\n", - " 66/1 1.04728 1.04781 +/- 0.00271\n", - " 67/1 1.06461 1.04810 +/- 0.00268\n", - " 68/1 1.05355 1.04819 +/- 0.00263\n", - " 69/1 1.06375 1.04846 +/- 0.00260\n", - " 70/1 1.04041 1.04832 +/- 0.00256\n", - " 71/1 1.04634 1.04829 +/- 0.00252\n", - " 72/1 1.02352 1.04789 +/- 0.00251\n", - " 73/1 1.08586 1.04849 +/- 0.00254\n", - " 74/1 1.04945 1.04851 +/- 0.00250\n", - " 75/1 1.06026 1.04869 +/- 0.00247\n", - " 76/1 1.05078 1.04872 +/- 0.00243\n", - " 77/1 1.02991 1.04844 +/- 0.00241\n", - " 78/1 1.01146 1.04790 +/- 0.00244\n", - " 79/1 1.05221 1.04796 +/- 0.00240\n", - " 80/1 1.01754 1.04752 +/- 0.00241\n", - " 81/1 1.05725 1.04766 +/- 0.00238\n", - " 82/1 1.03596 1.04750 +/- 0.00235\n", - " 83/1 1.04586 1.04748 +/- 0.00232\n", - " 84/1 1.02739 1.04721 +/- 0.00230\n", - " 85/1 1.04171 1.04713 +/- 0.00227\n", - " 86/1 1.05118 1.04719 +/- 0.00224\n", - " 87/1 1.03029 1.04697 +/- 0.00222\n", - " 88/1 1.07150 1.04728 +/- 0.00222\n", - " 89/1 1.02603 1.04701 +/- 0.00221\n", - " 90/1 1.00046 1.04643 +/- 0.00225\n", - " 91/1 1.06313 1.04664 +/- 0.00224\n", - " 92/1 1.09268 1.04720 +/- 0.00228\n", - " 93/1 1.00632 1.04670 +/- 0.00230\n", - " 94/1 1.03899 1.04661 +/- 0.00228\n", - " 95/1 1.05496 1.04671 +/- 0.00225\n", - " 96/1 1.01837 1.04638 +/- 0.00225\n", - " 97/1 1.04465 1.04636 +/- 0.00223\n", - " 98/1 1.04925 1.04639 +/- 0.00220\n", - " 99/1 1.03492 1.04627 +/- 0.00218\n", - " 100/1 1.02914 1.04608 +/- 0.00216\n", + " 1/1 1.04359\n", + " 2/1 1.04323\n", + " 3/1 1.04711\n", + " 4/1 1.03892\n", + " 5/1 1.02459\n", + " 6/1 1.03936\n", + " 7/1 1.03529\n", + " 8/1 1.01590\n", + " 9/1 1.03060\n", + " 10/1 1.02892\n", + " 11/1 1.03987\n", + " 12/1 1.04395 1.04191 +/- 0.00204\n", + " 13/1 1.04971 1.04451 +/- 0.00285\n", + " 14/1 1.03880 1.04308 +/- 0.00247\n", + " 15/1 1.03091 1.04065 +/- 0.00310\n", + " 16/1 1.03618 1.03990 +/- 0.00264\n", + " 17/1 1.04109 1.04007 +/- 0.00223\n", + " 18/1 1.02978 1.03879 +/- 0.00232\n", + " 19/1 1.06363 1.04155 +/- 0.00344\n", + " 20/1 1.06549 1.04394 +/- 0.00390\n", + " 21/1 1.03469 1.04310 +/- 0.00362\n", + " 22/1 1.01925 1.04111 +/- 0.00386\n", + " 23/1 1.03268 1.04046 +/- 0.00361\n", + " 24/1 1.03906 1.04036 +/- 0.00334\n", + " 25/1 1.02632 1.03943 +/- 0.00325\n", + " 26/1 1.03906 1.03940 +/- 0.00304\n", + " 27/1 1.05058 1.04006 +/- 0.00293\n", + " 28/1 1.03248 1.03964 +/- 0.00279\n", + " 29/1 1.04076 1.03970 +/- 0.00264\n", + " 30/1 1.00994 1.03821 +/- 0.00292\n", + " 31/1 1.04785 1.03867 +/- 0.00281\n", + " 32/1 1.03080 1.03831 +/- 0.00270\n", + " 33/1 1.01862 1.03746 +/- 0.00272\n", + " 34/1 1.05370 1.03813 +/- 0.00269\n", + " 35/1 1.02226 1.03750 +/- 0.00266\n", + " 36/1 1.02862 1.03716 +/- 0.00258\n", + " 37/1 1.04790 1.03755 +/- 0.00251\n", + " 38/1 1.03762 1.03756 +/- 0.00242\n", + " 39/1 1.02255 1.03704 +/- 0.00239\n", + " 40/1 1.06094 1.03784 +/- 0.00245\n", + " 41/1 1.03842 1.03786 +/- 0.00237\n", + " 42/1 1.00628 1.03687 +/- 0.00249\n", + " 43/1 1.04916 1.03724 +/- 0.00245\n", + " 44/1 1.06237 1.03798 +/- 0.00248\n", + " 45/1 1.08153 1.03922 +/- 0.00271\n", + " 46/1 1.05649 1.03970 +/- 0.00268\n", + " 47/1 1.06265 1.04032 +/- 0.00268\n", + " 48/1 1.05728 1.04077 +/- 0.00265\n", + " 49/1 1.07343 1.04161 +/- 0.00271\n", + " 50/1 1.04640 1.04173 +/- 0.00265\n", + " 51/1 1.05143 1.04196 +/- 0.00259\n", + " 52/1 1.03639 1.04183 +/- 0.00253\n", + " 53/1 1.04846 1.04199 +/- 0.00248\n", + " 54/1 1.02435 1.04158 +/- 0.00245\n", + " 55/1 1.04806 1.04173 +/- 0.00240\n", + " 56/1 1.04798 1.04186 +/- 0.00235\n", + " 57/1 1.06621 1.04238 +/- 0.00236\n", + " 58/1 1.05734 1.04269 +/- 0.00233\n", + " 59/1 1.04581 1.04276 +/- 0.00228\n", + " 60/1 1.02682 1.04244 +/- 0.00226\n", + " 61/1 1.05971 1.04278 +/- 0.00224\n", + " 62/1 1.02357 1.04241 +/- 0.00223\n", + " 63/1 1.02645 1.04211 +/- 0.00221\n", + " 64/1 1.00711 1.04146 +/- 0.00226\n", + " 65/1 1.06171 1.04183 +/- 0.00225\n", + " 66/1 1.03444 1.04170 +/- 0.00221\n", + " 67/1 1.05875 1.04199 +/- 0.00219\n", + " 68/1 1.04640 1.04207 +/- 0.00216\n", + " 69/1 1.04376 1.04210 +/- 0.00212\n", + " 70/1 1.07078 1.04258 +/- 0.00214\n", + " 71/1 1.03916 1.04252 +/- 0.00210\n", + " 72/1 1.01843 1.04213 +/- 0.00211\n", + " 73/1 1.03666 1.04205 +/- 0.00207\n", + " 74/1 1.04625 1.04211 +/- 0.00204\n", + " 75/1 1.05277 1.04228 +/- 0.00202\n", + " 76/1 1.04944 1.04238 +/- 0.00199\n", + " 77/1 1.01898 1.04203 +/- 0.00199\n", + " 78/1 1.03283 1.04190 +/- 0.00197\n", + " 79/1 1.02304 1.04163 +/- 0.00196\n", + " 80/1 1.01539 1.04125 +/- 0.00196\n", + " 81/1 1.03988 1.04123 +/- 0.00194\n", + " 82/1 1.02138 1.04096 +/- 0.00193\n", + " 83/1 1.02473 1.04073 +/- 0.00192\n", + " 84/1 1.03810 1.04070 +/- 0.00189\n", + " 85/1 1.07438 1.04115 +/- 0.00192\n", + " 86/1 1.03048 1.04101 +/- 0.00190\n", + " 87/1 1.06778 1.04135 +/- 0.00191\n", + " 88/1 1.07341 1.04177 +/- 0.00192\n", + " 89/1 1.06729 1.04209 +/- 0.00193\n", + " 90/1 1.05069 1.04220 +/- 0.00191\n", + " 91/1 1.07675 1.04262 +/- 0.00193\n", + " 92/1 1.06470 1.04289 +/- 0.00193\n", + " 93/1 1.02609 1.04269 +/- 0.00191\n", + " 94/1 1.04761 1.04275 +/- 0.00189\n", + " 95/1 1.08802 1.04328 +/- 0.00194\n", + " 96/1 1.04162 1.04326 +/- 0.00192\n", + " 97/1 1.04573 1.04329 +/- 0.00190\n", + " 98/1 1.03232 1.04317 +/- 0.00188\n", + " 99/1 1.03473 1.04307 +/- 0.00186\n", + " 100/1 1.04505 1.04309 +/- 0.00184\n", " Creating state point statepoint.100.h5...\n", "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 2.8826e-01 seconds\n", - " Reading cross sections = 2.7725e-01 seconds\n", - " Total time in simulation = 5.6710e+01 seconds\n", - " Time in transport only = 5.6647e+01 seconds\n", - " Time in inactive batches = 8.7405e-01 seconds\n", - " Time in active batches = 5.5836e+01 seconds\n", - " Time synchronizing fission bank = 2.2260e-02 seconds\n", - " Sampling source sites = 1.7941e-02 seconds\n", - " SEND/RECV source sites = 4.1545e-03 seconds\n", - " Time accumulating tallies = 3.7878e-03 seconds\n", - " Total time for finalization = 1.2434e-02 seconds\n", - " Total time elapsed = 5.7021e+01 seconds\n", - " Calculation Rate (inactive) = 57205.0 particles/second\n", - " Calculation Rate (active) = 8059.38 particles/second\n", + " Total time for initialization = 6.4445e-01 seconds\n", + " Reading cross sections = 6.1129e-01 seconds\n", + " Total time in simulation = 2.0000e+02 seconds\n", + " Time in transport only = 1.9970e+02 seconds\n", + " Time in inactive batches = 2.9966e+00 seconds\n", + " Time in active batches = 1.9701e+02 seconds\n", + " Time synchronizing fission bank = 4.0040e-02 seconds\n", + " Sampling source sites = 3.1522e-02 seconds\n", + " SEND/RECV source sites = 8.3459e-03 seconds\n", + " Time accumulating tallies = 9.3582e-03 seconds\n", + " Total time for finalization = 4.6582e-02 seconds\n", + " Total time elapsed = 2.0072e+02 seconds\n", + " Calculation Rate (inactive) = 16685.4 particles/second\n", + " Calculation Rate (active) = 2284.19 particles/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.04543 +/- 0.00195\n", - " k-effective (Track-length) = 1.04608 +/- 0.00216\n", - " k-effective (Absorption) = 1.04242 +/- 0.00147\n", - " Combined k-effective = 1.04347 +/- 0.00134\n", + " k-effective (Collision) = 1.04342 +/- 0.00159\n", + " k-effective (Track-length) = 1.04309 +/- 0.00184\n", + " k-effective (Absorption) = 1.04107 +/- 0.00140\n", + " Combined k-effective = 1.04195 +/- 0.00117\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -558,9 +550,10 @@ "\tID =\t1\n", "\tName =\tflux\n", "\tFilters =\tMeshFilter\n", - "\tNuclides =\ttotal\n", + "\tNuclides =\ttotal \n", "\tScores =\t['flux', 'fission']\n", - "\tEstimator =\ttracklength\n" + "\tEstimator =\ttracklength\n", + "\n" ] } ], @@ -584,19 +577,19 @@ { "data": { "text/plain": [ - "array([[[0.41112167, 0. ]],\n", + "array([[[0.40767451, 0. ]],\n", "\n", - " [[0.41090482, 0. ]],\n", + " [[0.40933814, 0. ]],\n", "\n", - " [[0.410451 , 0. ]],\n", + " [[0.4119165 , 0. ]],\n", "\n", " ...,\n", "\n", - " [[0.41289992, 0. ]],\n", + " [[0.40854327, 0. ]],\n", "\n", - " [[0.41195517, 0. ]],\n", + " [[0.40970805, 0. ]],\n", "\n", - " [[0.41092952, 0. ]]])" + " [[0.40948065, 0. ]]])" ] }, "execution_count": 17, @@ -630,32 +623,32 @@ { "data": { "text/plain": [ - "(array([[[0.00456802, 0. ]],\n", + "(array([[[0.00452972, 0. ]],\n", " \n", - " [[0.00456561, 0. ]],\n", + " [[0.0045482 , 0. ]],\n", " \n", - " [[0.00456057, 0. ]],\n", + " [[0.00457685, 0. ]],\n", " \n", " ...,\n", " \n", - " [[0.00458778, 0. ]],\n", + " [[0.00453937, 0. ]],\n", " \n", - " [[0.00457728, 0. ]],\n", + " [[0.00455231, 0. ]],\n", " \n", - " [[0.00456588, 0. ]]]),\n", - " array([[[1.98396826e-05, 0.00000000e+00]],\n", + " [[0.00454978, 0. ]]]),\n", + " array([[[2.03553236e-05, 0.00000000e+00]],\n", " \n", - " [[1.81394159e-05, 0.00000000e+00]],\n", + " [[1.83847389e-05, 0.00000000e+00]],\n", " \n", - " [[1.52107867e-05, 0.00000000e+00]],\n", + " [[1.68647098e-05, 0.00000000e+00]],\n", " \n", " ...,\n", " \n", - " [[1.93971958e-05, 0.00000000e+00]],\n", + " [[1.71606078e-05, 0.00000000e+00]],\n", " \n", - " [[1.97108386e-05, 0.00000000e+00]],\n", + " [[1.87645811e-05, 0.00000000e+00]],\n", " \n", - " [[2.17053017e-05, 0.00000000e+00]]]))" + " [[1.94447454e-05, 0.00000000e+00]]]))" ] }, "execution_count": 18, @@ -688,9 +681,10 @@ "\tID =\t2\n", "\tName =\tflux\n", "\tFilters =\tMeshFilter\n", - "\tNuclides =\ttotal\n", + "\tNuclides =\ttotal \n", "\tScores =\t['flux']\n", - "\tEstimator =\ttracklength\n" + "\tEstimator =\ttracklength\n", + "\n" ] } ], @@ -727,7 +721,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 21, @@ -736,7 +730,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -768,7 +762,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -811,14 +805,14 @@ { "data": { "text/plain": [ - "array([(( 0.26027228, 0.00233217, -0.57490767), (-0.35985969, -0.93061847, -0.06671029), 588560.32314432, 1., 0, 0),\n", - " (( 0.26027228, 0.00233217, -0.57490767), (-0.80078048, 0.18073397, 0.57103927), 1645182.36442112, 1., 0, 0),\n", - " (( 0.22481461, -0.27048948, 0.21306308), ( 0.10752921, -0.09751817, 0.98940774), 1485102.87429902, 1., 0, 0),\n", + "array([((-0.28690552, -0.23731283, 0.51447853), ( 0.02705364, -0.14292142, 0.98936422), 1780128.70101981, 1., 0, 0),\n", + " ((-0.28690552, -0.23731283, 0.51447853), (-0.16786951, 0.86432444, -0.47409186), 1553436.10501094, 1., 0, 0),\n", + " (( 0.17162994, 0.134092 , 0.42932363), ( 0.25199134, -0.11168216, 0.96126347), 829530.02360943, 1., 0, 0),\n", " ...,\n", - " ((-0.07232371, -0.28288686, -0.2581105 ), (-0.49005738, -0.59262383, 0.63925016), 2617904.82211744, 1., 0, 0),\n", - " (( 0.17472471, 0.30363992, 0.06326372), ( 0.44605056, -0.74173304, 0.50087024), 3441057.29123247, 1., 0, 0),\n", - " ((-0.02764188, 0.3507789 , 0.58564293), ( 0.80161327, 0.54845284, 0.23794043), 1252291.98671741, 1., 0, 0)],\n", - " dtype={'names':['r','u','E','wgt','delayed_group','particle'], 'formats':[[('x', '" ] @@ -940,7 +934,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] From 821e7d98251e484aec94856b38e78f5bfac8c3ba Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 21 Aug 2020 12:05:43 +0100 Subject: [PATCH 083/122] Remove old source_sampling custom source method Custom sources are now created only through the new class-based method, which supports parameterization. New method also slightly adjusted to create the source as managed by a unique_ptr. Examples and tests updated to align with this approach. Documentation updated. --- docs/source/io_formats/settings.rst | 28 ++-- docs/source/usersguide/settings.rst | 137 +++++++++--------- examples/custom_source/source_ring.cpp | 46 +++--- .../parameterized_source_ring.cpp | 32 ++-- include/openmc/source.h | 2 +- src/source.cpp | 36 ++--- .../source_dlopen/source_sampling.cpp | 18 ++- .../inputs_true.dat | 2 +- .../parameterized_source_sampling.cpp | 19 ++- .../source_parameterized_dlopen/test.py | 8 +- 10 files changed, 177 insertions(+), 151 deletions(-) diff --git a/docs/source/io_formats/settings.rst b/docs/source/io_formats/settings.rst index 6bd5c3bc1..33674ca32 100644 --- a/docs/source/io_formats/settings.rst +++ b/docs/source/io_formats/settings.rst @@ -462,25 +462,23 @@ attributes/sub-elements: :library: If this attribute is given, it indicates that the source is to be instantiated from an externally compiled source function. This source can be - as complex as is required to define the source for your problem. The only - requirement is that there is a function called ``sample_source()``. More - documentation on how to build sources can be found in :ref:`custom_source`. + as complex as is required to define the source for your problem. The library + has a few basic requirements: + + * It must contain a class that inherits from ``openmc::CustomSource``; + * The class must implement a function called ``sample_source()``; + * There must be a ``create_openmc_source()`` function that creates the source + as a unique pointer. This function can be used to pass parameters through to + the source from the XML, if needed. + + More documentation on how to build sources can be found in :ref:`custom_source`. *Default*: None :parameters: - If this attribute is given, it indicates that the source is to be - instantiated from an externally compiled source function, with parameters - defined by the string provided in this attribute. In this case, the - custom source library must define a class that inherits from the - ``openmc::CustomSource`` abstract class. This class must implement a - ``sample_source()`` function, which takes an unsigned integer pointer as an - argument. The custom source library must also contain an - ``openmc_create_source`` method, which takes the value provided to the - parameters attribute as an argument and returns a pointer to an instance of - the custom source. If the library attribute is not provided then this - attribute will be ignored. More documentation on how to build parametrized - sources can be found in :ref:`parameterized_custom_source`. + If this attribute is given, it provides the parameters to pass through to the + class generated using the ``library`` parameter . More documentation on how to + build parametrized sources can be found in :ref:`parameterized_custom_source`. *Default*: None diff --git a/docs/source/usersguide/settings.rst b/docs/source/usersguide/settings.rst index 30bf71132..b992ed2ae 100644 --- a/docs/source/usersguide/settings.rst +++ b/docs/source/usersguide/settings.rst @@ -182,42 +182,55 @@ Custom Sources It is often the case that one may wish to simulate a complex source distribution that is not possible to represent with the classes described above. For these -situations, it is possible to define a complex source with an externally defined -source function that is loaded at runtime. A simple example source is shown +situations, it is possible to define a complex source class containing an externally +defined source function that is loaded at runtime. A simple example source is shown below. .. code-block:: c++ - #include "openmc/random_lcg.h" - #include "openmc/source.h" - #include "openmc/particle.h" + #include // for unique_ptr - // you must have external C linkage here - extern "C" openmc::Particle::Bank sample_source(uint64_t* seed) { - openmc::Particle::Bank particle; - // weight - particle.particle = openmc::Particle::Type::neutron; - particle.wgt = 1.0; - // position - double angle = 2.0 * M_PI * openmc::prn(seed); - double radius = 3.0; - particle.r.x = radius * std::cos(angle); - particle.r.y = radius * std::sin(angle); - particle.r.z = 0.0; - // angle - particle.u = {1.0, 0.0, 0.0}; - particle.E = 14.08e6; - particle.delayed_group = 0; - return particle; + #include "openmc/random_lcg.h" + #include "openmc/source.h" + #include "openmc/particle.h" + + class Source : public openmc::CustomSource + { + openmc::Particle::Bank sample_source(uint64_t* seed) + { + openmc::Particle::Bank particle; + // weight + particle.particle = openmc::Particle::Type::neutron; + particle.wgt = 1.0; + // position + double angle = 2.0 * M_PI * openmc::prn(seed); + double radius = 3.0; + particle.r.x = radius * std::cos(angle); + particle.r.y = radius * std::sin(angle); + particle.r.z = 0.0; + // angle + particle.u = {1.0, 0.0, 0.0}; + particle.E = 14.08e6; + particle.delayed_group = 0; + return particle; + } + }; + + extern "C" std::unique_ptr openmc_create_source() { + return std::unique_ptr (new Source()); } The above source creates monodirectional 14.08 MeV neutrons that are distributed in a ring with a 3 cm radius. This routine is not particularly complex, but should serve as an example upon which to build more complicated sources. - .. note:: The function signature must be declared ``extern "C"``. + .. note:: The source class must inherit from ``openmc::CustomSource`` and + implement a ``sample_source()`` function. - .. note:: You should only use the openmc::prn() random number generator + .. note:: The ``openmc_create_source()`` function signature must be declared + ``extern "C"``. + + .. note:: You should only use the ``openmc::prn()`` random number generator. In order to build your external source, you will need to link it against the OpenMC shared library. This can be done by writing a CMakeLists.txt file: @@ -240,61 +253,53 @@ used for sampling source particles at runtime. Custom Parameterized Sources ---------------------------- -If the custom source may be used with parameters at a variety of values then it -may be necessary to represent those parameters as a string in order to avoid -recompiling the source library for each run. This is supported by defining a -class inheriting from ``openmc::CustomSource`` that implements a -``sample_source`` function: +Some custom sources may have values (parameters) that can be changed between +runs. This is supported by using the ``create_custom_source()`` function to +pass parameters defined in the :attr:`openmc.Source.parameters` attribute to +the source class when it is created: .. code-block:: c++ + #include // for unique_ptr + #include "openmc/source.h" #include "openmc/particle.h" - class ParameterizedSource : public openmc::CustomSource { - public: - double energy; - - ParameterizedSource(double energy) { - this->energy = energy; - } + class Source : public openmc::CustomSource + { + double energy; - // Samples from an instance of this class. - openmc::Particle::Bank sample_source(uint64_t* seed) { - openmc::Particle::Bank particle; - // wgt - particle.particle = openmc::Particle::Type::neutron; - particle.wgt = 1.0; - // position - particle.r.x = 0.0; - particle.r.y = 0.0; - particle.r.z = 0.0; - // angle - particle.u = {1.0, 0.0, 0.0}; - particle.E = this->energy; - particle.delayed_group = 0; + Source(double energy) + { + this->energy = energy; + } - return particle; - } + // Samples from an instance of this class. + openmc::Particle::Bank sample_source(uint64_t* seed) + { + openmc::Particle::Bank particle; + // weight + particle.particle = openmc::Particle::Type::neutron; + particle.wgt = 1.0; + // position + particle.r.x = 0.0; + particle.r.y = 0.0; + particle.r.z = 0.0; + // angle + particle.u = {1.0, 0.0, 0.0}; + particle.E = this->energy; + particle.delayed_group = 0; + + return particle; + } }; -The custom source library function in this case must also define an -``openmc_create_source`` method, which will be used to generate an instance of -the custom source, based on the value supplied in the -:attr:``openmc.Source.parameters`` attribute. The -``openmc_create_source`` method must be defined with ``extern "C"``: - -.. code-block:: c++ - - // you must have external C linkage here otherwise - // dlopen will not find the file - extern "C" ParameterizedSource* openmc_create_source(const char* parameter) { - return new ParameterizedSource(atof(parameter)); + extern "C" std::unique_ptr openmc_create_source(const char* parameter) { + return std::unique_ptr (new Source(atof(parameter))); } As with the basic custom source functionality, the custom source library -location must also be provided in the :attr:`openmc.Source.library` -attribute. +location must be provided in the :attr:`openmc.Source.library` attribute. --------------- Shannon Entropy diff --git a/examples/custom_source/source_ring.cpp b/examples/custom_source/source_ring.cpp index d68122dd7..5b7bb837c 100644 --- a/examples/custom_source/source_ring.cpp +++ b/examples/custom_source/source_ring.cpp @@ -1,26 +1,36 @@ #include // for M_PI +#include // for unique_ptr #include "openmc/random_lcg.h" #include "openmc/source.h" #include "openmc/particle.h" -// you must have external C linkage here otherwise -// dlopen will not find the file -extern "C" openmc::Particle::Bank sample_source(uint64_t* seed) +class Source : public openmc::CustomSource { - openmc::Particle::Bank particle; - // wgt - particle.particle = openmc::Particle::Type::neutron; - particle.wgt = 1.0; - // position - double angle = 2. * M_PI * openmc::prn(seed); - double radius = 3.0; - particle.r.x = radius * std::cos(angle); - particle.r.y = radius * std::sin(angle); - particle.r.z = 0.0; - // angle - particle.u = {1.0, 0.0, 0.0}; - particle.E = 14.08e6; - particle.delayed_group = 0; - return particle; + openmc::Particle::Bank sample_source(uint64_t* seed) + { + openmc::Particle::Bank particle; + // wgt + particle.particle = openmc::Particle::Type::neutron; + particle.wgt = 1.0; + // position + double angle = 2.0 * M_PI * openmc::prn(seed); + double radius = 3.0; + particle.r.x = radius * std::cos(angle); + particle.r.y = radius * std::sin(angle); + particle.r.z = 0.0; + // angle + particle.u = {1.0, 0.0, 0.0}; + particle.E = 14.08e6; + particle.delayed_group = 0; + return particle; + } +}; + +// A function to create a unique pointer to an instance of this class when generated +// via a plugin call using dlopen/dlsym. +// You must have external C linkage here otherwise dlopen will not find the file +extern "C" std::unique_ptr openmc_create_source() +{ + return std::unique_ptr (new Source()); } diff --git a/examples/parameterized_custom_source/parameterized_source_ring.cpp b/examples/parameterized_custom_source/parameterized_source_ring.cpp index 51218e1b3..abcaa975a 100644 --- a/examples/parameterized_custom_source/parameterized_source_ring.cpp +++ b/examples/parameterized_custom_source/parameterized_source_ring.cpp @@ -1,17 +1,20 @@ #include // for M_PI +#include // for unique_ptr #include #include "openmc/random_lcg.h" #include "openmc/source.h" #include "openmc/particle.h" -class ParameterizedSource : public openmc::CustomSource { +class Source : public openmc::CustomSource +{ protected: double radius_; double energy_; - // Protect the constructor so that the class can only be created by serialisation. - ParameterizedSource(double radius, double energy) { + // Protect the constructor as we only want the class to be created by the from_string method. + Source(double radius, double energy) + { radius_ = radius; energy_ = energy; } @@ -21,9 +24,10 @@ class ParameterizedSource : public openmc::CustomSource { double radius() { return radius_; } double energy() { return energy_; } - // Defines a function that can create a pointer to a new instance of this class - // by deserializing from the provided string. - static ParameterizedSource* from_string(const char* parameters) { + // Defines a function that can create a unique pointer to a new instance of this class + // by extracting the parameters from the provided string. + static std::unique_ptr from_string(const char* parameters) + { std::unordered_map parameter_mapping; std::stringstream ss(parameters); @@ -35,17 +39,20 @@ class ParameterizedSource : public openmc::CustomSource { parameter_mapping[key] = value; } - return new ParameterizedSource(std::stod(parameter_mapping["radius"]), std::stod(parameter_mapping["energy"])); + return std::unique_ptr ( + new Source(std::stod(parameter_mapping["radius"]), std::stod(parameter_mapping["energy"])) + ); } // Samples from an instance of this class. - openmc::Particle::Bank sample_source(uint64_t* seed) { + openmc::Particle::Bank sample_source(uint64_t* seed) + { openmc::Particle::Bank particle; // wgt particle.particle = openmc::Particle::Type::neutron; particle.wgt = 1.0; // position - double angle = 2. * M_PI * openmc::prn(seed); + double angle = 2.0 * M_PI * openmc::prn(seed); double radius = this->radius(); particle.r.x = radius * std::cos(angle); particle.r.y = radius * std::sin(angle); @@ -59,9 +66,10 @@ class ParameterizedSource : public openmc::CustomSource { } }; -// A function to create a pointer to an instance of this class when generated +// A function to create a unique pointer to an instance of this class when generated // via a plugin call using dlopen/dlsym. // You must have external C linkage here otherwise dlopen will not find the file -extern "C" ParameterizedSource* openmc_create_source(const char* parameters) { - return ParameterizedSource::from_string(parameters); +extern "C" std::unique_ptr openmc_create_source(const char* parameters) +{ + return Source::from_string(parameters); } diff --git a/include/openmc/source.h b/include/openmc/source.h index 5bc2901b4..460e7eca3 100644 --- a/include/openmc/source.h +++ b/include/openmc/source.h @@ -66,7 +66,7 @@ class CustomSource { virtual Particle::Bank sample_source(uint64_t* seed) = 0; }; -typedef CustomSource* create_custom_source_t(const char* parameters); +typedef std::unique_ptr create_custom_source_t(const char* parameters); //============================================================================== // Functions diff --git a/src/source.cpp b/src/source.cpp index 673ee8804..7c40147ce 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -5,6 +5,7 @@ #endif #include // for move +#include // for unique_ptr #ifdef HAS_DYNAMIC_LINKING #include // for dlopen, dlsym, dlclose, dlerror @@ -45,11 +46,8 @@ std::vector external_sources; namespace { void* custom_source_library; -using sample_t = Particle::Bank (*)(uint64_t* seed); -sample_t custom_source_function; - -std::string custom_source_parameters; -CustomSource* custom_source; +std::string custom_source_parameters = ""; +std::unique_ptr custom_source; } @@ -374,17 +372,11 @@ void load_custom_source_library() // reset errors dlerror(); - if (custom_source_parameters.empty()) { - // get the function from the library - using sample_t = Particle::Bank (*)(uint64_t* seed); - custom_source_function = reinterpret_cast(dlsym(custom_source_library, "sample_source")); - } else { - // get the function to create the CustomSource from the library - create_custom_source_t* create_custom_source = (create_custom_source_t*) dlsym(custom_source_library, "openmc_create_source"); + // get the function to create the CustomSource from the library + create_custom_source_t* create_custom_source = (create_custom_source_t*) dlsym(custom_source_library, "openmc_create_source"); - // create a pointer to an instance of the CustomSource - custom_source = create_custom_source(custom_source_parameters.c_str()); - } + // create a pointer to an instance of the CustomSource + custom_source = create_custom_source(custom_source_parameters.c_str()); // check for any dlsym errors auto dlsym_error = dlerror(); @@ -401,9 +393,9 @@ void load_custom_source_library() void close_custom_source_library() { - if (custom_source) { - // delete the CustomSource if it exists - delete custom_source; + if (custom_source.get()) { + // Make sure the custom source is destroyed before we close it's libary. + custom_source.reset(); } #ifdef HAS_DYNAMIC_LINKING @@ -416,12 +408,8 @@ void close_custom_source_library() Particle::Bank sample_custom_source_library(uint64_t* seed) { - if (custom_source_parameters.empty()) { - return custom_source_function(seed); - } else { - // sample from the instance of the CustomSource - return custom_source->sample_source(seed); - } + // sample from the instance of the CustomSource + return custom_source->sample_source(seed); } void fill_source_bank_custom_source() diff --git a/tests/regression_tests/source_dlopen/source_sampling.cpp b/tests/regression_tests/source_dlopen/source_sampling.cpp index eaf8b74d9..529e3a547 100644 --- a/tests/regression_tests/source_dlopen/source_sampling.cpp +++ b/tests/regression_tests/source_dlopen/source_sampling.cpp @@ -1,11 +1,14 @@ #include +#include + #include "openmc/random_lcg.h" #include "openmc/source.h" #include "openmc/particle.h" -// you must have external C linkage here otherwise -// dlopen will not find the file -extern "C" openmc::Particle::Bank sample_source(uint64_t *seed) { +class Source : openmc::CustomSource +{ + openmc::Particle::Bank sample_source(uint64_t *seed) + { openmc::Particle::Bank particle; // wgt particle.particle = openmc::Particle::Type::neutron; @@ -20,4 +23,13 @@ extern "C" openmc::Particle::Bank sample_source(uint64_t *seed) { particle.E = 14.08e6; particle.delayed_group = 0; return particle; + } +}; + +// A function to create a unique pointer to an instance of this class when generated +// via a plugin call using dlopen/dlsym. +// You must have external C linkage here otherwise dlopen will not find the file +extern "C" std::unique_ptr openmc_create_source() +{ + return std::unique_ptr (new Source()); } diff --git a/tests/regression_tests/source_parameterized_dlopen/inputs_true.dat b/tests/regression_tests/source_parameterized_dlopen/inputs_true.dat index a7462ae7f..f4a0eba73 100644 --- a/tests/regression_tests/source_parameterized_dlopen/inputs_true.dat +++ b/tests/regression_tests/source_parameterized_dlopen/inputs_true.dat @@ -19,5 +19,5 @@ 1000 10 0 - + diff --git a/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp index b3e9ca9cd..162164f01 100644 --- a/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp +++ b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp @@ -1,16 +1,19 @@ #include "openmc/source.h" #include "openmc/particle.h" -class ParameterizedSource : public openmc::CustomSource { +class Source : public openmc::CustomSource +{ public: double energy; - ParameterizedSource(double energy) { + Source(double energy) + { this->energy = energy; } // Samples from an instance of this class. - openmc::Particle::Bank sample_source(uint64_t* seed) { + openmc::Particle::Bank sample_source(uint64_t* seed) + { openmc::Particle::Bank particle; // wgt particle.particle = openmc::Particle::Type::neutron; @@ -28,8 +31,10 @@ class ParameterizedSource : public openmc::CustomSource { } }; -// you must have external C linkage here otherwise -// dlopen will not find the file -extern "C" ParameterizedSource* openmc_create_source(const char* parameter) { - return new ParameterizedSource(atof(parameter)); +// A function to create a unique pointer to an instance of this class when generated +// via a plugin call using dlopen/dlsym. +// You must have external C linkage here otherwise dlopen will not find the file +extern "C" std::unique_ptr openmc_create_source(const char* parameter) +{ + return std::unique_ptr (new Source(atof(parameter))); } diff --git a/tests/regression_tests/source_parameterized_dlopen/test.py b/tests/regression_tests/source_parameterized_dlopen/test.py index 6c88c37c2..c613cde4b 100644 --- a/tests/regression_tests/source_parameterized_dlopen/test.py +++ b/tests/regression_tests/source_parameterized_dlopen/test.py @@ -20,9 +20,9 @@ def compile_source(request): f.write(textwrap.dedent(""" cmake_minimum_required(VERSION 3.3 FATAL_ERROR) project(openmc_sources CXX) - add_library(parameterized_source SHARED parameterized_source_sampling.cpp) + add_library(source SHARED parameterized_source_sampling.cpp) find_package(OpenMC REQUIRED HINTS {}) - target_link_libraries(parameterized_source OpenMC::libopenmc) + target_link_libraries(source OpenMC::libopenmc) """.format(openmc_dir))) # Create temporary build directory and change to there @@ -63,8 +63,8 @@ def model(): # custom source from shared library source = openmc.Source() - source.library = 'build/libparameterized_source.so' - source.parameters = 'energy=1e3' + source.library = 'build/libsource.so' + source.parameters = '1e3' model.settings.source = source return model From 739af93a9afa1766b10a9fa87cabf7640b9e8604 Mon Sep 17 00:00:00 2001 From: Miriam Date: Fri, 21 Aug 2020 15:48:07 +0000 Subject: [PATCH 084/122] Modified doc strings related to 'nuclides' in get_xs and get_pandas_dataframe --- openmc/mgxs/mgxs.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 3951f6d78..c336cb50d 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -6102,7 +6102,8 @@ class MeshSurfaceMGXS(MGXS): subdomains : Iterable of Integral or 'all' Subdomain IDs of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' - Unused in MeshSurfaceMGXS + Unused in MeshSurfaceMGXS, its value will be ignored. The nuclides + dimension of the resultant array will always have a length of 1. xs_type: {'macro'} The 'macro'/'micro' distinction does not apply to MeshSurfaceMGXS. The calculation of a 'micro' xs_type is omited in this class. @@ -6209,7 +6210,8 @@ class MeshSurfaceMGXS(MGXS): groups : Iterable of Integral or 'all' Energy groups of interest. Defaults to 'all'. nuclides : Iterable of str or 'all' or 'sum' - Unused in MeshSurfaceMGXS + Unused in MeshSurfaceMGXS, its value will be ignored. The nuclides + dimension of the resultant array will always have a length of 1. xs_type: {'macro'} 'micro' unused in MeshSurfaceMGXS. paths : bool, optional From f879c3c596e0612a93ee8a66d15c551dce96ff6f Mon Sep 17 00:00:00 2001 From: Ronald Rahaman Date: Fri, 21 Aug 2020 11:03:57 -0500 Subject: [PATCH 085/122] Fix call to superclass constructor in `MeshPlotter --- scripts/openmc-plot-mesh-tally | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/openmc-plot-mesh-tally b/scripts/openmc-plot-mesh-tally index 6716b6609..fad2df418 100755 --- a/scripts/openmc-plot-mesh-tally +++ b/scripts/openmc-plot-mesh-tally @@ -26,7 +26,7 @@ _COMBOBOX_SELECTED = '<>' class MeshPlotter(tk.Frame): def __init__(self, parent, filename): - super().__init__(self, parent) + super().__init__(parent) self.labels = { 'Cell': 'Cell:', From ebca9a489d2d232f804cf04bfa24af46b0ecd3dd Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Mon, 24 Aug 2020 09:07:59 -0500 Subject: [PATCH 086/122] Update include/openmc/position.h Co-authored-by: Paul Romano --- include/openmc/position.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/openmc/position.h b/include/openmc/position.h index b27a0f10c..643447ac2 100644 --- a/include/openmc/position.h +++ b/include/openmc/position.h @@ -67,7 +67,7 @@ struct Position { const double projection = n.dot(*this); const double magnitude = n.dot(n); n *= (2.0 * projection / magnitude); - return *this -= n; + return *this - n; } //! Rotate the position based on a rotation matrix From d99b7aab51d16dd6548c0e033a5de03b5beb2266 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Mon, 24 Aug 2020 10:09:24 -0500 Subject: [PATCH 087/122] Moving definition of reflect method. --- include/openmc/position.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/include/openmc/position.h b/include/openmc/position.h index 643447ac2..3046f6163 100644 --- a/include/openmc/position.h +++ b/include/openmc/position.h @@ -63,12 +63,10 @@ struct Position { return std::sqrt(x*x + y*y + z*z); } - inline Position reflect(Position n) { - const double projection = n.dot(*this); - const double magnitude = n.dot(n); - n *= (2.0 * projection / magnitude); - return *this - n; - } + //! Reflect a direction across a normal vector + //! \param[in] other Vector to reflect across + //! \result Reflected vector + Position reflect(Position n) const; //! Rotate the position based on a rotation matrix Position rotate(const std::vector& rotation) const; @@ -96,6 +94,13 @@ inline Position operator/(Position a, Position b) { return a /= b; } inline Position operator/(Position a, double b) { return a /= b; } inline Position operator/(double a, Position b) { return b /= a; } +inline Position Position::reflect(Position n) const { + const double projection = n.dot(*this); + const double magnitude = n.dot(n); + n *= (2.0 * projection / magnitude); + return *this - n; +} + inline bool operator==(Position a, Position b) {return a.x == b.x && a.y == b.y && a.z == b.z;} From f76c58f62ef638dfbc24016f628747d267147fba Mon Sep 17 00:00:00 2001 From: Miriam Date: Tue, 25 Aug 2020 03:08:44 +0000 Subject: [PATCH 088/122] Create compatability with lattice cells Previously, create_mg_mode assigned a new material to all cells in the geometry. However, in certain cases, cells are filled with a lattice instead of a material. Therefore, checking if a cell if filled with a material determines whether it is appropriate to assign it a new multi group material or not. --- openmc/mgxs/library.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index e1c44c352..99da0af55 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -1402,12 +1402,12 @@ class Library: if self.domain_type == 'material': # Fill all appropriate Cells with new Material for cell in all_cells: - if cell.fill.id == domain.id: + if isinstance(cell.fill, openmc.Material) and cell.fill.id == domain.id: cell.fill = material elif self.domain_type == 'cell': for cell in all_cells: - if cell.id == domain.id: + if isinstance(cell.fill, openmc.Material) and cell.id == domain.id: cell.fill = material return mgxs_file, materials, geometry From a2134ffa10ceed87687cd6b6d3506e6d0319c1a9 Mon Sep 17 00:00:00 2001 From: Miriam Date: Tue, 25 Aug 2020 03:18:34 +0000 Subject: [PATCH 089/122] Clearly a typo: beta pointed to 'nu-fission' instead of 'beta' Fixed so it now points to 'beta' I also noticed there seems to be no test to cover delayed mgxs library --- openmc/mgxs/library.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 99da0af55..2c4423c25 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -1090,7 +1090,7 @@ class Library: subdomain=subdomain) if 'beta' in self.mgxs_types: - mymgxs = self.get_mgxs(domain, 'nu-fission') + mymgxs = self.get_mgxs(domain, 'beta') xsdata.set_beta_mgxs(mymgxs, xs_type=xs_type, nuclide=[nuclide], subdomain=subdomain) From 8f0629b133bcdff6aacd7c3d2d58f95b54566d41 Mon Sep 17 00:00:00 2001 From: Miriam Date: Tue, 25 Aug 2020 03:23:28 +0000 Subject: [PATCH 090/122] Attributes listed in doc strings but missing from properties After getting an error "XSdata has no attribute 'beta'", I saw that beta, decay_rate, and inverse_velocity were listed as attributes in XSdata, but were not included in the @properties. Just added them. Also noticed there doesn't seem to be a test for this class. --- openmc/mgxs_library.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index c8eafd4a1..c2a4a9db7 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -349,6 +349,18 @@ class XSdata: def chi_delayed(self): return self._chi_delayed + @property + def beta(self): + return self._beta + + @property + def decay_rate(self): + return self._decay_rate + + @property + def inverse_velocity(self): + return self._inverse_velocity + @property def num_orders(self): if self._order is None: From 3aff054f38111d3d858fd02384d1cacfaea123bf Mon Sep 17 00:00:00 2001 From: Miriam Date: Tue, 25 Aug 2020 03:34:25 +0000 Subject: [PATCH 091/122] Fixed error in warning message Previously, the warning message for setting a legendre order greater than 0 mistakenly said "order 0 is greater than zero" because the wrong legendre order was referenced. With the fix, the correct variable is referenced, and the warning is now correct. E.g "order 3 is greater than zero" --- openmc/mgxs/library.py | 2 +- openmc/mgxs/mgxs.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 2c4423c25..aca46958d 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -412,7 +412,7 @@ class Library: if self.correction == 'P0' and legendre_order > 0: msg = 'The P0 correction will be ignored since the ' \ 'scattering order {} is greater than '\ - 'zero'.format(self.legendre_order) + 'zero'.format(legendre_order) warn(msg, RuntimeWarning) self.correction = None elif self.scatter_format == 'histogram': diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index c336cb50d..5525a6da0 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -4160,7 +4160,7 @@ class ScatterMatrixXS(MatrixMGXS): if self.correction == 'P0' and legendre_order > 0: msg = 'The P0 correction will be ignored since the ' \ 'scattering order {} is greater than '\ - 'zero'.format(self.legendre_order) + 'zero'.format(legendre_order) warnings.warn(msg, RuntimeWarning) self.correction = None elif self.scatter_format == SCATTER_HISTOGRAM: From 284871e0ba1aa25103e203a3aaf089ec8f85dede Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Tue, 25 Aug 2020 12:19:44 +0100 Subject: [PATCH 092/122] cleanup hexagonal lattice --- examples/jupyter/hexagonal-lattice.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/jupyter/hexagonal-lattice.ipynb b/examples/jupyter/hexagonal-lattice.ipynb index e0a48e236..2a4f549ac 100644 --- a/examples/jupyter/hexagonal-lattice.ipynb +++ b/examples/jupyter/hexagonal-lattice.ipynb @@ -364,7 +364,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.0" + "version": "3.8.5" } }, "nbformat": 4, From befc9e6fe90041d0cd7502854f81313dc907461e Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Tue, 25 Aug 2020 12:40:41 +0100 Subject: [PATCH 093/122] Clean up criticality search (pls read comment) Did a bit more for this one: a) Got rid of warning messages that came from setting the root universe's ID to 0. b) Moved source building to above the settings definition (rather than in the middle of it.) c) Removed `bracketed_method='bisect'` as this is the default argument. Perhaps there should be a default tolerance as well? And is there a good reason to default `print_iterations` to false? --- examples/jupyter/search.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/jupyter/search.ipynb b/examples/jupyter/search.ipynb index bfdc20695..efcfac3cc 100644 --- a/examples/jupyter/search.ipynb +++ b/examples/jupyter/search.ipynb @@ -344,7 +344,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.0" + "version": "3.8.5" } }, "nbformat": 4, From 59ce6d1a7b7535d0f354d50eff349e6be36c8932 Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Tue, 25 Aug 2020 13:35:54 +0100 Subject: [PATCH 094/122] Mistake: Uploaded the correct files for hexagonal and search --- examples/jupyter/hexagonal-lattice.ipynb | 48 +++---- examples/jupyter/search.ipynb | 157 +++-------------------- 2 files changed, 42 insertions(+), 163 deletions(-) diff --git a/examples/jupyter/hexagonal-lattice.ipynb b/examples/jupyter/hexagonal-lattice.ipynb index 2a4f549ac..a390dd5fa 100644 --- a/examples/jupyter/hexagonal-lattice.ipynb +++ b/examples/jupyter/hexagonal-lattice.ipynb @@ -36,8 +36,8 @@ "water.add_nuclide('O16', 1.0)\n", "water.set_density('g/cm3', 1.0)\n", "\n", - "mats = openmc.Materials((fuel, fuel2, water))\n", - "mats.export_to_xml()" + "materials = openmc.Materials((fuel, fuel2, water))\n", + "materials.export_to_xml()" ] }, { @@ -80,7 +80,7 @@ "metadata": {}, "outputs": [], "source": [ - "lat = openmc.HexLattice()" + "lattice = openmc.HexLattice()" ] }, { @@ -96,9 +96,9 @@ "metadata": {}, "outputs": [], "source": [ - "lat.center = (0., 0.)\n", - "lat.pitch = (1.25,)\n", - "lat.outer = outer_universe" + "lattice.center = (0., 0.)\n", + "lattice.pitch = (1.25,)\n", + "lattice.outer = outer_universe" ] }, { @@ -130,7 +130,7 @@ } ], "source": [ - "print(lat.show_indices(num_rings=3))" + "print(lattice.show_indices(num_rings=3))" ] }, { @@ -175,8 +175,8 @@ "outer_ring = [big_pin_universe] + [pin_universe]*11\n", "middle_ring = [big_pin_universe] + [pin_universe]*5\n", "inner_ring = [big_pin_universe]\n", - "lat.universes = [outer_ring, middle_ring, inner_ring]\n", - "print(lat)" + "lattice.universes = [outer_ring, middle_ring, inner_ring]\n", + "print(lattice)" ] }, { @@ -193,9 +193,9 @@ "outputs": [], "source": [ "outer_surface = openmc.ZCylinder(r=4.0, boundary_type='vacuum')\n", - "main_cell = openmc.Cell(fill=lat, region=-outer_surface)\n", - "geom = openmc.Geometry([main_cell])\n", - "geom.export_to_xml()" + "main_cell = openmc.Cell(fill=lattice, region=-outer_surface)\n", + "geometry = openmc.Geometry([main_cell])\n", + "geometry.export_to_xml()" ] }, { @@ -223,14 +223,14 @@ } ], "source": [ - "p = openmc.Plot.from_geometry(geom)\n", - "p.color_by = 'material'\n", - "p.colors = colors = {\n", + "plot = openmc.Plot.from_geometry(geometry)\n", + "plot.color_by = 'material'\n", + "plot.colors = colors = {\n", " water: 'blue',\n", " fuel: 'olive',\n", " fuel2: 'yellow'\n", "}\n", - "p.to_ipython_image()" + "plot.to_ipython_image()" ] }, { @@ -268,11 +268,11 @@ ], "source": [ "# Change the orientation of the lattice and re-export the geometry\n", - "lat.orientation = 'x'\n", - "geom.export_to_xml()\n", + "lattice.orientation = 'x'\n", + "geometry.export_to_xml()\n", "\n", "# Run OpenMC in plotting mode\n", - "p.to_ipython_image()" + "plot.to_ipython_image()" ] }, { @@ -304,7 +304,7 @@ } ], "source": [ - "print(lat.show_indices(3, orientation='x'))" + "print(lattice.show_indices(3, orientation='x'))" ] }, { @@ -335,15 +335,15 @@ ], "source": [ "main_cell.region = openmc.model.hexagonal_prism(\n", - " edge_length=3*lat.pitch[0],\n", + " edge_length=3*lattice.pitch[0],\n", " orientation='x',\n", " boundary_type='vacuum'\n", ")\n", - "geom.export_to_xml()\n", + "geometry.export_to_xml()\n", "\n", "# Run OpenMC in plotting mode\n", - "p.color_by = 'cell'\n", - "p.to_ipython_image()" + "plot.color_by = 'cell'\n", + "plot.to_ipython_image()" ] } ], diff --git a/examples/jupyter/search.ipynb b/examples/jupyter/search.ipynb index efcfac3cc..74de8f82b 100644 --- a/examples/jupyter/search.ipynb +++ b/examples/jupyter/search.ipynb @@ -95,22 +95,22 @@ " moderator_cell.region = +clad_outer_radius & (+min_x & -max_x & +min_y & -max_y)\n", "\n", " # Create root Universe\n", - " root_universe = openmc.Universe(name='root universe', universe_id=0)\n", + " root_universe = openmc.Universe(name='root universe')\n", " root_universe.add_cells([fuel_cell, clad_cell, moderator_cell])\n", "\n", " # Create Geometry and set root universe\n", " geometry = openmc.Geometry(root_universe)\n", " \n", + " # Create an initial uniform spatial source distribution over fissionable zones\n", + " bounds = [-0.63, -0.63, -10, 0.63, 0.63, 10.]\n", + " uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + " \n", " # Finish with the settings file\n", " settings = openmc.Settings()\n", " settings.batches = 300\n", " settings.inactive = 20\n", " settings.particles = 1000\n", " settings.run_mode = 'eigenvalue'\n", - "\n", - " # Create an initial uniform spatial source distribution over fissionable zones\n", - " bounds = [-0.63, -0.63, -10, 0.63, 0.63, 10.]\n", - " uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", " settings.source = openmc.source.Source(space=uniform_dist)\n", "\n", " # We dont need a tallies file so dont waste the disk input/output time\n", @@ -129,7 +129,7 @@ "\n", "To perform the search we imply call the `openmc.search_for_keff` function and pass in the relvant arguments. For our purposes we will be passing in the model building function (`build_model` defined above), a bracketed range for the expected critical Boron concentration (1,000 to 2,500 ppm), the tolerance, and the method we wish to use. \n", "\n", - "Instead of the bracketed range we could have used a single initial guess, but have elected not to in this example. Finally, due to the high noise inherent in using as few histories as are used in this example, our tolerance on the final keff value will be rather large (1.e-2) and a bisection method will be used for the search." + "Instead of the bracketed range we could have used a single initial guess, but have elected not to in this example. Finally, due to the high noise inherent in using as few histories as are used in this example, our tolerance on the final keff value will be rather large (1.e-2) and the default 'bisection' method will be used for the search." ] }, { @@ -137,148 +137,27 @@ "execution_count": 3, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/romano/openmc/openmc/mixin.py:71: IDWarning: Another Universe instance already exists with id=0.\n", - " warn(msg, IDWarning)\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "Iteration: 1; Guess of 1.00e+03 produced a keff of 1.08853 +/- 0.00158\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/romano/openmc/openmc/mixin.py:71: IDWarning: Another Universe instance already exists with id=0.\n", - " warn(msg, IDWarning)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration: 2; Guess of 2.50e+03 produced a keff of 0.95372 +/- 0.00148\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/romano/openmc/openmc/mixin.py:71: IDWarning: Another Universe instance already exists with id=0.\n", - " warn(msg, IDWarning)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration: 3; Guess of 1.75e+03 produced a keff of 1.01328 +/- 0.00169\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/romano/openmc/openmc/mixin.py:71: IDWarning: Another Universe instance already exists with id=0.\n", - " warn(msg, IDWarning)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration: 4; Guess of 2.12e+03 produced a keff of 0.98150 +/- 0.00158\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/romano/openmc/openmc/mixin.py:71: IDWarning: Another Universe instance already exists with id=0.\n", - " warn(msg, IDWarning)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration: 5; Guess of 1.94e+03 produced a keff of 0.99886 +/- 0.00146\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/romano/openmc/openmc/mixin.py:71: IDWarning: Another Universe instance already exists with id=0.\n", - " warn(msg, IDWarning)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration: 6; Guess of 1.84e+03 produced a keff of 1.00759 +/- 0.00162\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/romano/openmc/openmc/mixin.py:71: IDWarning: Another Universe instance already exists with id=0.\n", - " warn(msg, IDWarning)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration: 7; Guess of 1.89e+03 produced a keff of 1.00063 +/- 0.00166\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/romano/openmc/openmc/mixin.py:71: IDWarning: Another Universe instance already exists with id=0.\n", - " warn(msg, IDWarning)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration: 8; Guess of 1.91e+03 produced a keff of 0.99970 +/- 0.00150\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/romano/openmc/openmc/mixin.py:71: IDWarning: Another Universe instance already exists with id=0.\n", - " warn(msg, IDWarning)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration: 9; Guess of 1.90e+03 produced a keff of 0.99935 +/- 0.00164\n", - "Critical Boron Concentration: 1902 ppm\n" + "Iteration: 1; Guess of 1.00e+03 produced a keff of 1.08504 +/- 0.00169\n", + "Iteration: 2; Guess of 2.50e+03 produced a keff of 0.95243 +/- 0.00158\n", + "Iteration: 3; Guess of 1.75e+03 produced a keff of 1.01269 +/- 0.00163\n", + "Iteration: 4; Guess of 2.12e+03 produced a keff of 0.98165 +/- 0.00155\n", + "Iteration: 5; Guess of 1.94e+03 produced a keff of 0.99773 +/- 0.00158\n", + "Iteration: 6; Guess of 1.84e+03 produced a keff of 1.00872 +/- 0.00170\n", + "Iteration: 7; Guess of 1.89e+03 produced a keff of 1.00462 +/- 0.00154\n", + "Iteration: 8; Guess of 1.91e+03 produced a keff of 1.00202 +/- 0.00154\n", + "Iteration: 9; Guess of 1.93e+03 produced a keff of 0.99816 +/- 0.00155\n", + "Critical Boron Concentration: 1926 ppm\n" ] } ], "source": [ "# Perform the search\n", "crit_ppm, guesses, keffs = openmc.search_for_keff(build_model, bracket=[1000., 2500.],\n", - " tol=1e-2, bracketed_method='bisect',\n", - " print_iterations=True)\n", + " tol=1e-2, print_iterations=True)\n", "\n", "print('Critical Boron Concentration: {:4.0f} ppm'.format(crit_ppm))" ] @@ -297,7 +176,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfgAAAEyCAYAAAAWW8KtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAmWklEQVR4nO3df5wcVZnv8c+XJMjwM2gCkgkSQIwGBIIDgigi7DXAVcl1XSHiRhDN6gVWUeMS8C64rrtoUIFVwSwgZGFBZUNkFQ0KQtAVcEICAUIk8iuTBBjUBIQRkvjcP+o0VDrdM53MVHq65vt+vfo1VefUj+d09/TTdep0lSICMzMzK5etmh2AmZmZDTwneDMzsxJygjczMyshJ3gzM7MScoI3MzMrISd4MzOzEnKCt0FD0kmSbm52HL2RdJukjzU7DrNGSPqTpL2aHYc1hxO8bVGSHpPUkz54Ko9vAkTENRHx7mbHaH1LX3T+nF6/NZLmS3pzs+OqkDQpxfScpG5Jt0t6X7PjqkdSSHp9P7ex0ZfPiNg+Ih7pX3TWqpzgrRnemz54Ko/Tmx1QWUgavgV3d3pEbA+8BrgN+I/N2chAxyzpA8APgNnAWGBX4B+B9w7kfrakLfy6Wkk4wdugIelkSb/Mzb9b0tJ0hPjtdBT2sVz9RyUtkfRHSfMk7ZGrC0mfkPRwqv+WMq+StFrSfrllR6dehV0k7SzpR+mo749pemydeM+TdHVuflza7/A0v5OkyyWtkrRC0j9LGlZjO2PS/l+dK5so6RlJIxps62mSHgYeTu38hqSn03N3X6W91Ud5+ee8t/V6ExHrgOuACbntvkrShZJWpseFkl6V6o6U1CXpHyQ9CXy3weU/m2JbJemUOq+JgK8DX4qIyyJiTUT8JSJuj4iPp2W2kvQFSY+n7c2WtFPVa/gRSU+k1+Cc3PaHSTpb0u+U9Q4skLR7qnujpJ9J+oOy9+0Hc+tdmd6DP07r3SVp71Q3Py12r7IekRPqPEd135uSvgy8A/imcr1iyvUMpPfj7LT+4+k52Cr/PpB0Qdr2o5KO7eu1t8HNCd4GJUmjgOuBGWRHiEuBt+XqJwNnA+8HRgN3ANdWbeY9wMHAAcAHgUkR8SIwB5iSW+6DwO0R8TTZ/8R3gT2A1wE9wDc3sxlXAeuA1wMTgXcDG52/j4iVwK+Bv84Vfwi4PiLWNtjWycBbyZLsu4EjgDcAI4ETgN83EO9mrSdpa+Ak4M5c8TnAocCBZM//IcAXcvWvBV5N9jxPa3D5nYB24FTgW5J2rhHOeGB3svdOPSenx7uAvYDt2fg1fnva1tHAP0p6Uyr/DNl75zhgR+CjwAuStgN+BvwnsEta5tuS9s1tcwrwRWBnYBnwZYCIOCLVH5B6tL6Xa3P+Oar73oyIc8jeF6f30iv2b2TP4V7AO4GpQP6L0lvJ/s9GAV8FLk9fmKxVRYQffmyxB/AY8Cdgde7x8VR3MvDLND0V+HVuPQHLgY+l+Z8Ap+bqtwJeAPZI8wG8PVf/feCsNP1XwCO5ul8BU+vEeyDwx9z8bbkYzgOuztWNS/sdTtYt/CLQlqufAvyizn4+Btxa1dYjNqGtR+XqjwJ+S5Ywt6raz8vx13jO665XI97bUgyrgZeANcDRufrfAcfl5icBj6XpI9M622zC8j3A8Fz908ChNeI6PD0f2/QS+y3A/83NjwfWptet8hqOzdXfDZyYppcCx9fY5gnAHVVl3wHOTdNXApfl6o4DHsrNB/D63PxGz9GmvDertwsMS+/HCbm6vwNuy70PluXqtk3rvnZz/9f9aP7DR/DWDJMjYmTu8e81lhlDluQAiOxTpytXvwdwkbLu9tXAH8gSY3tumSdz0y+QHakB3Aq0SXqrsq7uA4EbACRtK+k7qQvzWWA+MFI1utb7sAcwAliVi/E7ZEd3tVwPHCZpDNlRdJAdkTXa1vxzdSvZkd23gKckzZK0Y18Bb8Z6fx8RI4FtyHpLrpe0f6obAzyeW/bxVFbRHRF/zs33tfzvIzsVUJF/PfMqPQ679RJ3rX1VvpRV1Hvv7E72ZaTaHsBbK69Rep1OIjsK72ub9WzwHPXzvTkK2JqN213z/yUiXkiTfcVog5gTvA1Wq8gGSAEvn1vNnwtfDvxd1ReFtoj4n742HBF/ITuin0LWFf6jiHguVX+W7IjurRGxI1myhSyhVnue7EinIv9hvpzsiGlULr4dI2JfaoiI1cDNZKcLPgRcm77UNNrWqNrexRHxFmBfsi736Q3E3Nt6dUV2jvsOsm7nyq8gVpIlvYrXpbKa8TawfKOWkj1ff93LMrX2tQ54qoHtLwf2rlN+e9VrtH1EfLLBuGupfo76em/2dmvQZ8h6KarbvaIf8dkg5wRvg9WPgTdLmqxs0NppbJiMLgVmVM5xpgFEf7MJ2/9Psm7Vk9J0xQ5k3cGrlQ16O7eXbSwCjpD0ujRIa0alIiJWkSXsr0naMQ3s2lvSO/uIaSpZcsrHtEltlXRw6p0YQZbQ/wysz8X8/nQ0+Hqy89mNrNcrSYeRnf9/IBVdC3xB2QDGUWSj2K+ut/5mLF9T+lL0GeD/STol99y/XdKs3L7OlLSnpO2BfwG+V9VDUM9lwJck7aPM/pJeA/wIeIOkv5U0Ij0Ozp2778tTZOfGe9PXe7PuNiJiPdmX2i9L2iH1XH2GzXiOrXU4wVsz/Lc2/B38DdULRMQzwN+QDfb5PVny6CQ7KiYibgC+AlyXuivvBxoe9RsRd5ElsTFk57grLgTayI547gR+2ss2fgZ8D7gPWED2IZ83laxb9EHgj2Td8L11Hd8I7AM8FRH35vazqW3dEfj3tM/HyZ6/C1LdN8jO7T5FNgjwmgbXq6UyYvtPZD+R+0JEVJ7LfyZ7ve4DFgP3pLJ6NnX5uiLierIvbx8lO1p/Km3rh2mRK1K884FHyb7InNHg5r9OlihvBp4FLicbZ/EcWe/FiWmfT5K9Zq9qcLvnAVel7v0P1lnmQnp/b14EfCCNgr+4xvpnkL3nHwF+SfYl8ooG47MWpFd6Ac0Gr/Rzni7gpIj4RbPjMTMb7HwEb4OWsquRjVT2e+izyc413tnHamZmhhO8DW6HkY1YfobsKmSTI6KnuSGZmbUGd9GbmZmVkI/gzczMSsgJ3szMrIRKdYeiUaNGxbhx45odhpmZ2RaxYMGCZyJidK26UiX4cePG0dnZ2ewwzMzMtghJj9ercxe9mZlZCTnBm5mZlZATvJmZWQk5wZuZmZWQE7yZmVkJOcGbmZmVUKl+JjdQ5i5cwcx5S1m5uocxI9uYPmk8kye2NzssMzOzhjnBV5m7cAUz5iymZ+16AFas7mHGnMUATvJmZtYy3EVfZea8pS8n94qeteuZOW9pkyIyMzPbdE7wVVaurn030nrlZmZmg5ETfJUxI9s2qdzMzGwwcoKvMn3SeNpGDNugrG3EMKZPGt+kiMzMzDadB9lVqQyk8yh6MzNrZU7wNUye2O6EbmZmLa2wLnpJV0h6WtL9deol6WJJyyTdJ+mgXN2Zkh6QdL+kayVtU1ScZmZmZVTkOfgrgWN6qT8W2Cc9pgGXAEhqB/4e6IiI/YBhwIkFxmlmZlY6hSX4iJgP/KGXRY4HZkfmTmCkpN1S3XCgTdJwYFtgZVFxmpmZlVEzR9G3A8tz811Ae0SsAC4AngBWAWsi4uYmxGdmZtaympngVaMsJO1MdnS/JzAG2E7Sh+tuRJomqVNSZ3d3d0GhmpmZtZZmJvguYPfc/Fiyrvi/Ah6NiO6IWAvMAd5WbyMRMSsiOiKiY/To0YUGbGZm1iqameBvBKam0fSHknXFryLrmj9U0raSBBwNLGlinGZmZi2nsN/BS7oWOBIYJakLOBcYARARlwI3AccBy4AXgFNS3V2SrgfuAdYBC4FZRcVpZmZWRoqIZscwYDo6OqKzs7PZYZiZmW0RkhZEREetOl+L3szMrISc4M3MzErICd7MzKyEnODNzMxKyAnezMyshJzgzczMSsgJ3szMrISc4M3MzErICd7MzKyEnODNzMxKyAnezMyshJzgzczMSsgJ3szMrISc4M3MzErICd7MzKyEnODNzMxKyAnezMyshJzgzczMSsgJ3szMrISc4M3MzErICd7MzKyEnODNzMxKyAnezMyshJzgzczMSqiwBC/pCklPS7q/Tr0kXSxpmaT7JB2Uqxsp6XpJD0laIumwouI0MzMroyKP4K8Ejuml/lhgn/SYBlySq7sI+GlEvBE4AFhSUIxmZmalNLyoDUfEfEnjelnkeGB2RARwZzpq3w14HjgCODlt5yXgpaLiNDMzK6NmnoNvB5bn5rtS2V5AN/BdSQslXSZpu2YEaGZm1qqameBVoyzIehUOAi6JiIlkR/Rn1d2INE1Sp6TO7u7uYiI1MzNrMc1M8F3A7rn5scDKVN4VEXel8uvJEn5NETErIjoiomP06NGFBWtmZtZKmpngbwSmptH0hwJrImJVRDwJLJc0Pi13NPBg06I0MzNrQYUNspN0LXAkMEpSF3AuMAIgIi4FbgKOA5YBLwCn5FY/A7hG0tbAI1V1ZmZm1ociR9FP6aM+gNPq1C0COgoIy8zMbEjwlezMzMxKyAnezMyshJzgzczMSsgJ3szMrISc4M3MzErICd7MzKyEnODNzMxKyAnezMyshJzgzczMSsgJ3szMrISc4M3MzErICd7MzKyEnODNzMxKyAnezMyshJzgzczMSsgJ3szMrISc4M3MzErICd7MzKyEnODNzMxKyAnezMyshJzgzczMSsgJ3szMrISc4M3MzErICd7MzKyEnODNzMxKqLAEL+kKSU9Lur9OvSRdLGmZpPskHVRVP0zSQkk/KipGMzOzsiryCP5K4Jhe6o8F9kmPacAlVfWfApYUEpmZmVnJFZbgI2I+8IdeFjkemB2ZO4GRknYDkDQW+N/AZUXFZ2ZmVmbNPAffDizPzXelMoALgc8Df9nCMZmZmZVCMxO8apSFpPcAT0fEgoY2Ik2T1Cmps7u7e2AjNDMza1HNTPBdwO65+bHASuBw4H2SHgOuA46SdHW9jUTErIjoiIiO0aNHFxmvmZlZy2hmgr8RmJpG0x8KrImIVRExIyLGRsQ44ETg1oj4cBPjNDMzaznDi9qwpGuBI4FRkrqAc4ERABFxKXATcBywDHgBOKWoWMzMzIaawhJ8REzpoz6A0/pY5jbgtoGLyszMbGjwlezMzMxKyAnezMyshJzgzczMSsgJ3szMrISc4M3MzEqooQQvaVdJl0v6SZqfIOnUYkMzMzOzzdXoEfyVwDxgTJr/LfDpAuIxMzOzAdBogh8VEd8n3fwlItYB6wuLyszMzPql0QT/vKTXAAFQubRsYVGZmZlZvzR6JbvPkF07fm9JvwJGAx8oLCozMzPrl4YSfETcI+mdwHiy27wujYi1hUZmZmZmm62hBC9palXRQZKIiNkFxGRmZmb91GgX/cG56W2Ao4F7ACd4MzOzQajRLvoz8vOSdgL+o5CIzMzMrN8290p2LwD7DGQgZmZmNnAaPQf/36SfyJF9KZgAfL+ooMzMzKx/Gj0Hf0Fueh3weER0FRCPmZmZDYBGz8HfXnQgZmZmNnB6TfCSnuOVrvkNqoCIiB0LicrMzMz6pdcEHxE7bKlAzMzMbOA0eg4eAEm7kP0OHoCIeGLAIzIzM7N+a/R+8O+T9DDwKHA78BjwkwLjMjMzs35o9HfwXwIOBX4bEXuSXcnuV4VFZWZmZv3SaIJfGxG/B7aStFVE/AI4sLiwzMzMrD8aTfCrJW0PzAeukXQR2e/h65J0haSnJd1fp16SLpa0TNJ9kg5K5btL+oWkJZIekPSpTWmQmZmZNZ7gjye7PO2ZwE+B3wHv7WOdK4Fjeqk/luxyt/sA04BLUvk64LMR8Say0wKnSZrQYJxmZmZG46PopwE/SFevu6qRFSJivqRxvSxyPDA7IgK4U9JISbtFxCpgVdrGc5KWAO3Agw3GamZmNuQ1egS/IzBP0h2STpO06wDsux1YnpvvSmUvS18QJgJ3DcD+zMzMhoyGEnxEfDEi9gVOA8YAt0v6eT/3rVq7erkyO+f/X8CnI+LZuhuRpknqlNTZ3d3dz5DMzMzKYVNvF/s08CTwe2CXfu67C9g9Nz8WWAkgaQRZcr8mIub0tpGImBURHRHRMXr06H6GZGZmVg6NXujmk5JuA24BRgEfj4j9+7nvG4GpaTT9ocCaiFglScDlwJKI+Ho/92FmZjYkNTrIbg+yrvJFjW5Y0rXAkcAoSV3AucAIgIi4FLgJOA5YRjZC/5S06uHA3wKLJVX2d3ZE3NTovs3MzIa6Rm8Xe5akYZLG5Nfp7Vr0ETGlj20G2Tn96vJfUvv8vJmZmTWooQQv6XTgPOAp4C+pOID+dtObmZlZARrtov80MD5drtbMzMwGuUZH0S8H1hQZiJmZmQ2cRo/gHwFuk/Rj4MVKoUe5m5mZDU6NJvgn0mPr9DAzM7NBrNFR9F8EkLRdRDxfbEhm1irmLlzBzHlLWbm6hzEj25g+aTyTJ7b3vaKZFa7RC90cJulBYEmaP0DStwuNzMwGtbkLVzBjzmJWrO4hgBWre5gxZzFzF65odmhmRuOD7C4EJpFdopaIuBc4oqCYzKwFzJy3lJ616zco61m7npnzljYpIjPLa/ha9BGxvKpofc0FzWxIWLm6Z5PKzWzLavhncpLeBoSkrSV9jtRdb2ZD05iRbZtUbmZbVqMJ/hNkl5VtJ7sL3IHUuMysmQ0d0yeNp23EsA3K2kYMY/qk8U2KyMzyGh1F/wxwUsGxmFkLqYyWL3oUvUfqm22eRq9Ff3GN4jVAZ0T8cGBDMrNWMXlie6HJtjJSvzKYrzJSv7JvM6uv0S76bci65R9Oj/2BVwOnSrqwkMjMbMjzSH2zzdfolexeDxwVEesAJF0C3Az8L2BxQbGZ2RDnkfpmm6/RI/h2YLvc/HbAmIhYT+7a9GZmA8kj9c02X6MJ/qvAIknflXQlsBC4QNJ2wM+LCs7MhjaP1DfbfI2Oor9c0k3AIYCAsyNiZaqeXlRwZja0bamR+mZl1GuCl/TGiHhI0kGpqHI1u9dKem1E3FNseGY21G3OSH3/tM6s7yP4zwIfB75Woy6AowY8IjOzfvBP68wyvSb4iPh4+vuuLROOmVn/9PbTOid4G0p6HWQn6fO56b+pqvuXooIyM9tc/mmdWaavUfQn5qZnVNUdM8CxmJn1m39aZ5bpK8GrznSteTOzpuvtp3VzF67g8PNvZc+zfszh59/K3IUrmhSlWfH6GmQXdaZrzZuZNV29n9YBHnxnQ4oi6udpSeuB58mO1tuAFypVwDYRMaKXda8A3gM8HRH71agXcBFwXNruyZWf3Uk6JtUNAy6LiPMbaUxHR0d0dnY2sqiZDTGHn38rK2qch28f2cavzvIPgqw1SVoQER216nrtoo+IYRGxY0TsEBHD03Rlvm5yT66k9/P0xwL7pMc04JIU7DDgW6l+AjBF0oQ+9mVm1isPvrOhptFL1W6yiJgP/KGXRY4HZkfmTmCkpN3Irpa3LCIeiYiXgOvSsmZmm82D72yoKSzBN6CdV66MB9CVyuqVm5ltNl/X3oaaZib4WqPwo5fy2huRpknqlNTZ3d09YMGZWblMntjOv77/zbSPbEPAyLYRbDNiK8783iKPqLdSavR+8EXoAnbPzY8FVgJb1ymvKSJmAbMgG2Q38GGaWVlUrmtf63K206+/l/NufIA1PWt9/XorhWYewd8ITFXmUGBNRKwCfgPsI2lPSVuTXWznxibGaWYlU+tytmvXB6t71hK88hM6H9VbKyvsCF7StcCRwChJXcC5wAiAiLgUuInsJ3LLyH4md0qqWyfpdGAe2c/kroiIB4qK08yGnkZGzvv69dbqCkvwETGlj/oATqtTdxPZFwAzswE3ZmRbzd/EV/NP6KyVNbOL3sysKWqNqK/FP6GzVuYEb2ZDTvWI+p23HcGIrTb8AY9/Qmetrpmj6M3MmqYyor5i7sIVG12/3uffrZU5wZuZsXHCN2t17qI3MzMrISd4MzOzEnKCNzMzKyEneDMzsxJygjczMyshJ3gzM7MScoI3MzMrISd4MzOzEnKCNzMzKyEneDMzsxJygjczMyshJ3gzM7MScoI3MzMrISd4MzOzEnKCNzMzKyEneDMzsxJygjczMyshJ3gzM7MScoI3MzMroeHNDsDMzAbO3IUrmDlvKStX9zBmZBvTJ41n8sT2ZodlTVDoEbykYyQtlbRM0lk16neWdIOk+yTdLWm/XN2Zkh6QdL+kayVtU2SsZmatbu7CFcyYs5gVq3sIYMXqHmbMWczchSuaHZo1QWEJXtIw4FvAscAEYIqkCVWLnQ0sioj9ganARWndduDvgY6I2A8YBpxYVKxmZmUwc95Setau36CsZ+16Zs5b2qSIrJmKPII/BFgWEY9ExEvAdcDxVctMAG4BiIiHgHGSdk11w4E2ScOBbYGVBcZqZtbyVq7u2aRyK7ciE3w7sDw335XK8u4F3g8g6RBgD2BsRKwALgCeAFYBayLi5gJjNTNreWNGtm1SuZVbkQleNcqiav58YGdJi4AzgIXAOkk7kx3t7wmMAbaT9OGaO5GmSeqU1Nnd3T1gwZuZtZrpk8bTNmLYBmVtI4YxfdL4JkVkzVTkKPouYPfc/Fiqutkj4lngFABJAh5Nj0nAoxHRnermAG8Drq7eSUTMAmYBdHR0VH+BMDMbMiqj5T2K3qDYBP8bYB9JewIryAbJfSi/gKSRwAvpHP3HgPkR8aykJ4BDJW0L9ABHA50FxmpmVgqTJ7Y7oRtQYIKPiHWSTgfmkY2CvyIiHpD0iVR/KfAmYLak9cCDwKmp7i5J1wP3AOvIuu5nFRWrmZlZ2SiiPL3aHR0d0dnpA30zMxsaJC2IiI5adb5UrZmZWQk5wZuZmZWQE7yZmVkJOcGbmZmVkBO8mZlZCTnBm5mZlZATvJmZWQk5wZuZmZWQE7yZmVkJOcGbmZmVkBO8mZlZCTnBm5mZlZATvJmZWQk5wZuZmZWQE7yZmVkJOcGbmZmVkBO8mZlZCTnBm5mZlZATvJmZWQk5wZuZmZWQE7yZmVkJOcGbmZmVkBO8mZlZCTnBm5mZlZATvJmZWQkVmuAlHSNpqaRlks6qUb+zpBsk3Sfpbkn75epGSrpe0kOSlkg6rMhYzczMyqSwBC9pGPAt4FhgAjBF0oSqxc4GFkXE/sBU4KJc3UXATyPijcABwJKiYjUzMyubIo/gDwGWRcQjEfEScB1wfNUyE4BbACLiIWCcpF0l7QgcAVye6l6KiNUFxmpmZlYqRSb4dmB5br4rleXdC7wfQNIhwB7AWGAvoBv4rqSFki6TtF2BsZqZmZVKkQleNcqiav58YGdJi4AzgIXAOmA4cBBwSURMBJ4HNjqHDyBpmqROSZ3d3d0DFbuZmVlLKzLBdwG75+bHAivzC0TEsxFxSkQcSHYOfjTwaFq3KyLuSoteT5bwNxIRsyKiIyI6Ro8ePcBNMDMza01FJvjfAPtI2lPS1sCJwI35BdJI+a3T7MeA+SnpPwkslzQ+1R0NPFhgrGZmZqUyvKgNR8Q6SacD84BhwBUR8YCkT6T6S4E3AbMlrSdL4KfmNnEGcE36AvAIcEpRsZqZmZWNIqpPi7eujo6O6OzsbHYYZmZmW4SkBRHRUavOV7IzMzMrISd4MzOzEnKCNzMzKyEneDMzsxJygjczMyuhwn4mZ2ZmZpm5C1cwc95SVq7uYczINqZPGs/kidVXbx9YTvBmZmYFmrtwBTPmLKZn7XoAVqzuYcacxQCFJnl30ZuZmRVo5rylLyf3ip6165k5b2mh+3WCNzMzK9DK1T2bVD5QnODNzMwKNGZk2yaVDxQneDMzswJNnzSethHDNihrGzGM6ZPG11ljYHiQnZmZWYEqA+k8it7MzKxkJk9sLzyhV3MXvZmZWQk5wZuZmZWQE7yZmVkJOcGbmZmVkBO8mZlZCTnBm5mZlZAiotkxDBhJ3cDjA7jJUcAzA7i9wcLtai1uV2spa7ugvG1r5XbtERGja1WUKsEPNEmdEdHR7DgGmtvVWtyu1lLWdkF521bWdrmL3szMrISc4M3MzErICb53s5odQEHcrtbidrWWsrYLytu2UrbL5+DNzMxKyEfwZmZmJTSkErykKyQ9Len+XNmrJf1M0sPp7865uhmSlklaKmlSrvwtkhanuoslaUu3Ja9Ou2ZKekjSfZJukDQyV9ey7crVfU5SSBqVK2uJdqWYarZN0hkp/gckfTVX3hJtq/NePFDSnZIWSeqUdEiubtC3S9Lukn4haUl6XT6Vysvw2VGvbS39+VGvXbn6lv78aFhEDJkHcARwEHB/ruyrwFlp+izgK2l6AnAv8CpgT+B3wLBUdzdwGCDgJ8Cxg7Bd7waGp+mvlKVdqXx3YB7ZNQ9GtVq7ennN3gX8HHhVmt+l1dpWp103V+ICjgNua6V2AbsBB6XpHYDfptjL8NlRr20t/flRr11pvuU/Pxp9DKkj+IiYD/yhqvh44Ko0fRUwOVd+XUS8GBGPAsuAQyTtBuwYEb+O7NWfnVunKWq1KyJujoh1afZOYGyabul2Jd8APg/kB5C0TLugbts+CZwfES+mZZ5O5S3TtjrtCmDHNL0TsDJNt0S7ImJVRNyTpp8DlgDtlOOzo2bbWv3zo5fXDErw+dGoIZXg69g1IlZB9qYAdknl7cDy3HJdqaw9TVeXD2YfJfvmCS3eLknvA1ZExL1VVS3druQNwDsk3SXpdkkHp/JWb9ungZmSlgMXADNSecu1S9I4YCJwFyX77KhqW15Lf37k21Xyz4+NDG92AINYrfMs0Uv5oCTpHGAdcE2lqMZiLdEuSdsC55B1H25UXaOsJdqVMxzYGTgUOBj4vqS9aP22fRI4MyL+S9IHgcuBv6LF2iVpe+C/gE9HxLO9nIptqXbBxm3Llbf050e+XWTtKPPnx0Z8BA9PpW4Y0t9Kt2gX2bmairFkXYtdvNJdlS8fdCR9BHgPcFLqXoLWbtfeZOfH7pX0GFmM90h6La3droouYE5k7gb+QnaN7FZv20eAOWn6B0BlkF3LtEvSCLJEcU1EVNpSis+OOm1r+c+PGu0q++fHxpo9CGBLP4BxbDgAaCYbDpT5aprelw0HXTzCK4MufkN2lFUZdHHcIGzXMcCDwOiq5Vq6XVV1j/HKIJmWaled1+wTwD+l6TeQdRmq1dpWo11LgCPT9NHAglZ6zVIMs4ELq8pb/rOjl7a19OdHvXZVLdPSnx8NPQ/NDmALv+jXAquAtWTfzE4FXgPcAjyc/r46t/w5ZKMpl5IbOQl0APenum+SLhg0yNq1jCxBLEqPS8vQrqr6l/9BW6ldvbxmWwNXp1jvAY5qtbbVadfbgQXpA/Qu4C2t1K4UfwD35f6fjivJZ0e9trX050e9dlUt07KfH40+fCU7MzOzEvI5eDMzsxJygjczMyshJ3gzM7MScoI3MzMrISd4MzOzEnKCN9tMktanO6TdK+keSW/bwvsfIen8dDez+yXdLenYLRlDjZgmS5qwGesdmX/+JH1C0tQBiOdISWsk3dTfbfWxn7b0Xngpf4cys2bypWrNNl9PRBwIkG4v+a/AOxtZUdKwiFjfz/1/ieyuWftFxIuSdm10/wWaDPyI7CIpG5A0PF65gUm1I4E/Af8DEBGXDmBMd0TEewZwexuJiB7gwHSFNLNBwUfwZgNjR+CPAMrMTEfViyWdkMqPTPeo/k9gsaRtJH03LbNQ0rvScidLmiPpp+no/KvVO0vX5f84cEa8cve5pyLi+6l+Stru/ZK+klvvT5K+nHod7kxfCpC0q7L7ft+bHm9L5R9OPQOLJH1H0rB620nrvI/sxjKLJO0t6TZJ/yLpduBTkt6bbqazUNLP03rjyK7id2Za7x2SzpP0ubSvyv3kK/cm3zmV3ybpKym+30p6R18vUnoN5qftPCjpUklb5dr0tdQbc4uk0bn9fCOtt0TSwen1eVjSP2/a28Rsy3GCN9t8lW7Zh4DLyI6oAd4PHAgcQHZTlZlK1ywnuw77ORExATgNICLeDEwBrpK0TVruQOAE4M3ACZLy18kGeD3wRORuDFIhaQzZPbyPSts5WNLkVL0dcGdEHADMJ/uSAHAxcHsqPwh4QNKbUgyHp56K9cBJ9bYTEf8D3AhMj4gDI+J3admREfHOiPga8Evg0IiYCFwHfD4iHgMuBb6R1rujqkmzgX+IiP2BxcC5ubrhEXEI2c1EzqUxhwCfJXtu9yZ7vSptuiciDgJur9reSxFxRIrzh2Sv3X7AyZJe0+B+zbYoJ3izzdeTEtIbya7dPVuSyC6TeW1ErI+Ip8iSReXWr3dHdr9p0nL/ARARDwGPk12DHuCWiFgTEX8m6+7eYxPiOhi4LSK6U5f4NcARqe4lsi50yC4fOy5NHwVckmJZHxFryK4b/xbgN5IWpfm9+thOLd/LTY8F5klaDEwnuwZ4XZJ2IvuCcHsquirXFnjlJjZ9xZB3d0Q8kk6RXEv2OkB2c59KrFfnyiH74gLZF4wHIrvf+Itk1yyv/vJlNij4HLzZAIiIX6fBVaOpfYvJiudz070t92Juej0b/68uA14naYeIeK6qrrftro1Xrk9da7vV27kqImbUqNuU7eTb/G/A1yPiRklHAuf1sl4jKs9TXzHkVV+fu971uvPllf38hQ1fm79swn7NtigfwZsNAElvBIYBvyfrsj5B0rB0HvcI4O4aq80ndXlLegPwOrIbXfQpIl4gu6/6xZK2TtvYTdKHyW7o8k5Jo9I58ylkvQi9uYXsvu2kuHdMZR+QtEsqf7WkvnoSngN26KV+J2BFmv5IX+ulnoQ/5s6v/20DbenLIZL2TOfeTyA7bQDZ5+EH0vSHcuVmLckJ3mzzVc7BLyLr2v1I6va9gewuVvcCt5KdZ36yxvrfBoal7urvASdXBsw16AtAN/CgpPuBuUB3RKwCZgC/SDHcExE/7GNbnwLelWJZAOwbEQ+mfdws6T7gZ2Sj9ntzHTA9DaLbu0b9ecAPJN0BPJMr/2/g/1QG2VWt8xGycQz3kY0p+Kc+YujLr4Hzye4Q9ijZ6wVZT8O+khaQnbLo737Mmsp3kzOz0kqnAT5X+Zlc9XzVsn+KiO37ub/HgI6IeKavZc2K5iN4Myuzl4D9tIUudAOMIDsvb9Z0PoI3MzMrIR/Bm5mZlZATvJmZWQk5wZuZmZWQE7yZmVkJOcGbmZmVkBO8mZlZCf1/lR+VpNA88i8AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] From 148ca44c4505bdd087b0e42cbf148eac0131cc43 Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Tue, 25 Aug 2020 15:11:46 +0100 Subject: [PATCH 095/122] Incorporate feedback on settings definition Also got rid of warnings by removing manually set ID's for cells. The ID for zirconium, for example was set to 2 which conflicted with an already defined material with an automatically generated ID of 2. Same for some others. There is a part of the notebook that talks about ID's so I left that one alone. After the central point about ID's is made there's little point in keeping them in for the cells (unless you like looking at pink warning messages). --- examples/jupyter/pincell.ipynb | 198 ++++++++++++++++----------------- 1 file changed, 99 insertions(+), 99 deletions(-) diff --git a/examples/jupyter/pincell.ipynb b/examples/jupyter/pincell.ipynb index 9e8775805..0f11ca655 100644 --- a/examples/jupyter/pincell.ipynb +++ b/examples/jupyter/pincell.ipynb @@ -166,15 +166,15 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "zirconium = openmc.Material(2, \"zirconium\")\n", + "zirconium = openmc.Material(name=\"zirconium\")\n", "zirconium.add_element('Zr', 1.0)\n", "zirconium.set_density('g/cm3', 6.6)\n", "\n", - "water = openmc.Material(3, \"h2o\")\n", + "water = openmc.Material(name=\"h2o\")\n", "water.add_nuclide('H1', 2.0)\n", "water.add_nuclide('O16', 1.0)\n", "water.set_density('g/cm3', 1.0)" @@ -189,7 +189,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -205,7 +205,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -221,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -230,7 +230,7 @@ "True" ] }, - "execution_count": 12, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -251,7 +251,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -266,7 +266,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -274,7 +274,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -306,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -321,7 +321,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -329,7 +329,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -368,7 +368,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -416,7 +416,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -437,7 +437,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -480,7 +480,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -498,7 +498,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -515,7 +515,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -541,7 +541,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -558,7 +558,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -567,7 +567,7 @@ "(array([-1., -1., 0.]), array([1., 1., 1.]))" ] }, - "execution_count": 22, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -585,7 +585,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -605,7 +605,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -628,7 +628,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -648,22 +648,22 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 26, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -687,22 +687,22 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 27, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -726,16 +726,16 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 28, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, @@ -774,7 +774,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -792,7 +792,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -810,18 +810,18 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ - "fuel = openmc.Cell(1, 'fuel')\n", + "fuel = openmc.Cell(name='fuel')\n", "fuel.fill = uo2\n", "fuel.region = fuel_region\n", "\n", - "gap = openmc.Cell(2, 'air gap')\n", + "gap = openmc.Cell(name='air gap')\n", "gap.region = gap_region\n", "\n", - "clad = openmc.Cell(3, 'clad')\n", + "clad = openmc.Cell(name='clad')\n", "clad.fill = zirconium\n", "clad.region = clad_region" ] @@ -835,7 +835,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -855,13 +855,13 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "water_region = +left & -right & +bottom & -top & +clad_outer_radius\n", "\n", - "moderator = openmc.Cell(4, 'moderator')\n", + "moderator = openmc.Cell(name='moderator')\n", "moderator.fill = water\n", "moderator.region = water_region" ] @@ -875,7 +875,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -884,7 +884,7 @@ "openmc.region.Intersection" ] }, - "execution_count": 36, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -904,7 +904,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -920,7 +920,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 34, "metadata": {}, "outputs": [ { @@ -929,10 +929,10 @@ "text": [ "\r\n", "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -967,7 +967,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ @@ -985,25 +985,20 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ - "# OpenMC simulation parameters\n", - "batches = 100\n", - "inactive = 10\n", - "particles = 1000\n", - "\n", - "# Instantiate a Settings object\n", "settings = openmc.Settings()\n", - "settings.batches = batches\n", - "settings.inactive = inactive\n", - "settings.particles = particles" + "settings.source = source\n", + "settings.batches = 100\n", + "settings.inactive = 10\n", + "settings.particles = 1000" ] }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -1016,6 +1011,11 @@ " 1000\r\n", " 100\r\n", " 10\r\n", + " \r\n", + " \r\n", + " 0 0 0\r\n", + " \r\n", + " \r\n", "\r\n" ] } @@ -1040,7 +1040,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -1059,7 +1059,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -1076,7 +1076,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -1086,7 +1086,7 @@ "\r\n", "\r\n", " \r\n", - " 1\r\n", + " 3\r\n", " \r\n", " \r\n", " 1\r\n", @@ -1114,7 +1114,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 41, "metadata": { "scrolled": true }, @@ -1152,7 +1152,7 @@ " License | https://docs.openmc.org/en/latest/license.html\n", " Version | 0.12.0\n", " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", - " Date/Time | 2020-08-15 07:03:19\n", + " Date/Time | 2020-08-25 14:58:51\n", " OpenMP Threads | 4\n", "\n", " Reading settings XML file...\n", @@ -1286,20 +1286,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 6.9749e-01 seconds\n", - " Reading cross sections = 6.8627e-01 seconds\n", - " Total time in simulation = 1.9684e+00 seconds\n", - " Time in transport only = 1.9468e+00 seconds\n", - " Time in inactive batches = 1.5675e-01 seconds\n", - " Time in active batches = 1.8117e+00 seconds\n", - " Time synchronizing fission bank = 4.5360e-03 seconds\n", - " Sampling source sites = 3.6973e-03 seconds\n", - " SEND/RECV source sites = 6.8224e-04 seconds\n", - " Time accumulating tallies = 1.0140e-04 seconds\n", - " Total time for finalization = 5.5400e-05 seconds\n", - " Total time elapsed = 2.6701e+00 seconds\n", - " Calculation Rate (inactive) = 63796.4 particles/second\n", - " Calculation Rate (active) = 49677.1 particles/second\n", + " Total time for initialization = 6.9022e-01 seconds\n", + " Reading cross sections = 6.7913e-01 seconds\n", + " Total time in simulation = 1.7892e+00 seconds\n", + " Time in transport only = 1.7650e+00 seconds\n", + " Time in inactive batches = 1.5005e-01 seconds\n", + " Time in active batches = 1.6391e+00 seconds\n", + " Time synchronizing fission bank = 4.2308e-03 seconds\n", + " Sampling source sites = 3.4593e-03 seconds\n", + " SEND/RECV source sites = 6.2601e-04 seconds\n", + " Time accumulating tallies = 9.5555e-05 seconds\n", + " Total time for finalization = 7.4948e-05 seconds\n", + " Total time elapsed = 2.4836e+00 seconds\n", + " Calculation Rate (inactive) = 66645.8 particles/second\n", + " Calculation Rate (active) = 54907.5 particles/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1325,7 +1325,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 42, "metadata": {}, "outputs": [ { @@ -1334,7 +1334,7 @@ "text": [ " ============================> TALLY 1 <============================\r\n", "\r\n", - " Cell 1\r\n", + " Cell 3\r\n", " U235\r\n", " Total Reaction Rate 0.726151 +/- 0.00251702\r\n", " Fission Rate 0.543836 +/- 0.00205084\r\n", @@ -1358,7 +1358,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 43, "metadata": {}, "outputs": [], "source": [ @@ -1379,7 +1379,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 44, "metadata": {}, "outputs": [ { @@ -1393,7 +1393,7 @@ " 1.26 1.26\r\n", " 200 200\r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", "\r\n" ] @@ -1414,7 +1414,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 45, "metadata": {}, "outputs": [ { @@ -1450,7 +1450,7 @@ " License | https://docs.openmc.org/en/latest/license.html\n", " Version | 0.12.0\n", " Git SHA1 | 3d90a9f857ec72eae897e054d4225180f1fa4d93\n", - " Date/Time | 2020-08-15 07:03:32\n", + " Date/Time | 2020-08-25 14:58:54\n", " OpenMP Threads | 4\n", "\n", " Reading settings XML file...\n", @@ -1490,7 +1490,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ @@ -1506,19 +1506,19 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 47, "metadata": { "scrolled": false }, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QIDwgDIDdCihAAAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE1VDA3OjAzOjMyKzAxOjAwzyqh1gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xNVQwNzowMzozMiswMTowML53GWoAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QIGQ86Nr0vrD0AAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTI1VDE0OjU4OjU0KzAxOjAwkH0c4gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0yNVQxNDo1ODo1NCswMTowMOEgpF4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, - "execution_count": 51, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -1537,17 +1537,17 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 48, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QIDwgDItlM6zwAAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE1VDA3OjAzOjM0KzAxOjAwrPqU7AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xNVQwNzowMzozNCswMTowMN2nLFAAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEUAAP9yEhL//////wAZPRNOAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+QIGQ86Nr0vrD0AAAI7SURBVGje7ZmxkcIwEEUhcAnuhxIIEIGvAwioxiU4QASU4GougA4gsM6SfNxh766sfx7N3Ix+zJv9X7KxtLtaZWVlZWWl1Fr12sQQpXLaRRMRTKFe2kbk+Na8POpNkbbmWlMqtkwxRsJllIotMxQ56F7neWX8LmrdGtNpPWc//Z4cLsbpfp6xN85XNRA904Sd2V/stXlJ16EFcL4O7Q/SnUPOrK/9xfzSvQ44K0dFhjLCmq0nRYYyvDPrq2rfka4RnVlfoyJ9GdGZ9XUdI89aWGYbpTITNUKYgvLlnXFhSsqXd7bjEcKXc8YhvYEjhdzY/Db9lUKebP4+/b6lkK7m8nNRhDAlE8WFoREuig/DpKej+DAbGmGiuDAUUsgItWR8ejZ/yaZ3+SmET+/zL4JIC8Ys2VpI7/JPkSKEbCnkyiNPCilDyI5A+AVzSzZFVAhRBCKssVvlBRB5W8iNwZCThDymiLyT5F5iSCsh3RSRN5/cfgwxoiikkpFmgqgwopZAPmTkcxnkKCO3BZDQs088/RhykpFHRjLyP5AE70uadz/Z/1iK/2TgYwF9klJ8K4GPeJrTBXDsSXMeS3O2RA69wNEaOMAD1wTgMgJceYCLVZobH3IVBS68wLUauLwDLQKgEYG0O4CmCtC6ARpEQBsKaXYBLTWgcQe0B4EmJNLqBBqqQNsWaA4jLWig0Q2005GmPTAaAAYQyJgDGKYgIxtgMISMn4AhFzJKAwZ2yFgQGT4iI86srKysrD/rC4LWcCSWwIp+AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTI1VDE0OjU4OjU0KzAxOjAwkH0c4gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0yNVQxNDo1ODo1NCswMTowMOEgpF4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, - "execution_count": 52, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } From 0dd1448a561ca012e27cc1cbbedf61a0814afc25 Mon Sep 17 00:00:00 2001 From: Miriam Date: Tue, 25 Aug 2020 21:40:30 +0000 Subject: [PATCH 096/122] Replaced cell fix with a UserWarning in create_mg_mode Since lattice or universe cells should still be able to have mgxs generated, I repealed the requirement for the cell to be filled by a material. Instead, if a non-material filled cell is used in the library domain, a UserWarning warns the user not to include a consistuent cell along with that lattice/universe cell. --- openmc/mgxs/library.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index aca46958d..d9518e78d 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -1407,7 +1407,11 @@ class Library: elif self.domain_type == 'cell': for cell in all_cells: - if isinstance(cell.fill, openmc.Material) and cell.id == domain.id: + if not isinstance(cell.fill, openmc.Material): + warn('If the library domain includes a lattice or universe cell ' + 'in conjunction with a consituent cell of that lattice/universe, ' + 'the multi-group simulation will fail') + if cell.id == domain.id: cell.fill = material return mgxs_file, materials, geometry From b1d309faaa92e416c3df41cab5fed0dbfc7600de Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Wed, 26 Aug 2020 05:16:47 +0100 Subject: [PATCH 097/122] Clearer naming in candu and triso There is a loop in candu that isn't incredibly readable, although I'm not quite sure how/if it can be improved: `for i, (r, n, a) in enumerate(zip(ring_radii, num_pins, angles)): for j in range(n):` Also de-abbreviated some of triso, e.g: `trisos = [openmc.model.TRISO(outer_radius, triso_univ, c) for c in centers]` Became: `trisos = [openmc.model.TRISO(outer_radius, triso_univ, center) for center in centers]` Let me know if you don't like it and it'll be changed. --- examples/jupyter/candu.ipynb | 22 +++++++++++----------- examples/jupyter/triso.ipynb | 26 +++++++++++++------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/examples/jupyter/candu.ipynb b/examples/jupyter/candu.ipynb index 672d56f89..b078d8ac6 100644 --- a/examples/jupyter/candu.ipynb +++ b/examples/jupyter/candu.ipynb @@ -304,11 +304,11 @@ "metadata": {}, "outputs": [], "source": [ - "geom = openmc.Geometry(root_universe)\n", - "geom.export_to_xml()\n", + "geometry = openmc.Geometry(root_universe)\n", + "geometry.export_to_xml()\n", "\n", - "mats = openmc.Materials(geom.get_all_materials().values())\n", - "mats.export_to_xml()" + "materials = openmc.Materials(geometry.get_all_materials().values())\n", + "materials.export_to_xml()" ] }, { @@ -329,14 +329,14 @@ } ], "source": [ - "p = openmc.Plot.from_geometry(geom)\n", - "p.color_by = 'material'\n", - "p.colors = {\n", + "plot = openmc.Plot.from_geometry(geometry)\n", + "plot.color_by = 'material'\n", + "plot.colors = {\n", " fuel: 'black',\n", " clad: 'silver',\n", " heavy_water: 'blue'\n", "}\n", - "p.to_ipython_image()" + "plot.to_ipython_image()" ] }, { @@ -1078,8 +1078,8 @@ } ], "source": [ - "t = sp.get_tally()\n", - "t.get_pandas_dataframe()" + "output_tally = sp.get_tally()\n", + "output_tally.get_pandas_dataframe()" ] }, { @@ -1107,7 +1107,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.0" + "version": "3.8.5" } }, "nbformat": 4, diff --git a/examples/jupyter/triso.ipynb b/examples/jupyter/triso.ipynb index 1934433e9..882463efc 100644 --- a/examples/jupyter/triso.ipynb +++ b/examples/jupyter/triso.ipynb @@ -143,7 +143,7 @@ "metadata": {}, "outputs": [], "source": [ - "trisos = [openmc.model.TRISO(outer_radius, triso_univ, c) for c in centers]" + "trisos = [openmc.model.TRISO(outer_radius, triso_univ, center) for center in centers]" ] }, { @@ -199,7 +199,7 @@ } ], "source": [ - "centers = np.vstack([t.center for t in trisos])\n", + "centers = np.vstack([triso.center for triso in trisos])\n", "print(centers.min(axis=0))\n", "print(centers.max(axis=0))" ] @@ -293,20 +293,20 @@ } ], "source": [ - "univ = openmc.Universe(cells=[box])\n", + "universe = openmc.Universe(cells=[box])\n", "\n", - "geom = openmc.Geometry(univ)\n", - "geom.export_to_xml()\n", + "geometry = openmc.Geometry(universe)\n", + "geometry.export_to_xml()\n", "\n", - "mats = list(geom.get_all_materials().values())\n", - "openmc.Materials(mats).export_to_xml()\n", + "materials = list(geometry.get_all_materials().values())\n", + "openmc.Materials(materials).export_to_xml()\n", "\n", "settings = openmc.Settings()\n", "settings.run_mode = 'plot'\n", "settings.export_to_xml()\n", "\n", - "p = openmc.Plot.from_geometry(geom)\n", - "p.to_ipython_image()" + "plot = openmc.Plot.from_geometry(geometry)\n", + "plot.to_ipython_image()" ] }, { @@ -334,9 +334,9 @@ } ], "source": [ - "p.color_by = 'material'\n", - "p.colors = {graphite: 'gray'}\n", - "p.to_ipython_image()" + "plot.color_by = 'material'\n", + "plot.colors = {graphite: 'gray'}\n", + "plot.to_ipython_image()" ] } ], @@ -357,7 +357,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.0" + "version": "3.8.5" } }, "nbformat": 4, From 6a446b6be5dcc58434c42da52362c4c6c1322188 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Wed, 26 Aug 2020 09:38:43 -0500 Subject: [PATCH 098/122] Apply suggestions from code review Including suggested change from @paulromano Co-authored-by: Paul Romano --- src/mesh.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/mesh.cpp b/src/mesh.cpp index 0cdd85631..2cd0fd77e 100644 --- a/src/mesh.cpp +++ b/src/mesh.cpp @@ -2016,10 +2016,9 @@ UnstructuredMesh::add_score(std::string score) const { } void UnstructuredMesh::remove_score(std::string score) const { - moab::ErrorCode rval; - moab::Tag tag; auto value_name = score + "_mean"; - rval = mbi_->tag_get_handle(value_name.c_str(), tag); + moab::Tag tag; + moab::ErrorCode rval = mbi_->tag_get_handle(value_name.c_str(), tag); if (rval != moab::MB_SUCCESS) return; rval = mbi_->tag_delete(tag); From 70d463d46ccb663b14fdaad4794f634176bbd2d4 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 27 Aug 2020 10:28:11 -0500 Subject: [PATCH 099/122] Make sure all reaction names are recognized as valid tally scores --- include/openmc/reaction.h | 10 ++ src/reaction.cpp | 163 ++++++++++++++++++++++++++++----- src/tallies/tally.cpp | 187 +------------------------------------- 3 files changed, 151 insertions(+), 209 deletions(-) diff --git a/include/openmc/reaction.h b/include/openmc/reaction.h index dd6de245f..2bf6d6e96 100644 --- a/include/openmc/reaction.h +++ b/include/openmc/reaction.h @@ -44,8 +44,18 @@ public: // Non-member functions //============================================================================== +//! Return reaction name given an ENDF MT value +// +//! \param[in] mt ENDF MT value +//! \return Name of the corresponding reaction std::string reaction_name(int mt); +//! Return reaction type (MT value) given a reaction name +// +//! \param[in] name Reaction name +//! \return Corresponding reaction type (MT value) +int reaction_type(std::string name); + } // namespace openmc #endif // OPENMC_REACTION_H diff --git a/src/reaction.cpp b/src/reaction.cpp index 3b80aa10d..1543517e8 100644 --- a/src/reaction.cpp +++ b/src/reaction.cpp @@ -87,7 +87,7 @@ Reaction::Reaction(hid_t group, const std::vector& temperatures) // Non-member functions //============================================================================== -const std::unordered_map REACTION_NAME_MAP { +std::unordered_map REACTION_NAME_MAP { {SCORE_FLUX, "flux"}, {SCORE_TOTAL, "total"}, {SCORE_SCATTER, "scatter"}, @@ -150,6 +150,55 @@ const std::unordered_map REACTION_NAME_MAP { {N_PD, "(n,pd)"}, {N_PT, "(n,pt)"}, {N_DA, "(n,da)"}, + {N_5N, "(n,5n)"}, + {N_6N, "(n,6n)"}, + {N_2NT, "(n,2nt)"}, + {N_TA, "(n,ta)"}, + {N_4NP, "(n,4np)"}, + {N_3ND, "(n,3nd)"}, + {N_NDA, "(n,nda)"}, + {N_2NPA, "(n,2npa)"}, + {N_7N, "(n,7n)"}, + {N_8N, "(n,8n)"}, + {N_5NP, "(n,5np)"}, + {N_6NP, "(n,6np)"}, + {N_7NP, "(n,7np)"}, + {N_4NA, "(n,4na)"}, + {N_5NA, "(n,5na)"}, + {N_6NA, "(n,6na)"}, + {N_7NA, "(n,7na)"}, + {N_4ND, "(n,4nd)"}, + {N_5ND, "(n,5nd)"}, + {N_6ND, "(n,6nd)"}, + {N_3NT, "(n,3nt)"}, + {N_4NT, "(n,4nt)"}, + {N_5NT, "(n,5nt)"}, + {N_6NT, "(n,6nt)"}, + {N_2N3HE, "(n,2n3He)"}, + {N_3N3HE, "(n,3n3He)"}, + {N_4N3HE, "(n,4n3He)"}, + {N_3N2P, "(n,3n2p)"}, + {N_3N3A, "(n,3n3a)"}, + {N_3NPA, "(n,3npa)"}, + {N_DT, "(n,dt)"}, + {N_NPD, "(n,npd)"}, + {N_NPT, "(n,npt)"}, + {N_NDT, "(n,ndt)"}, + {N_NP3HE, "(n,np3He)"}, + {N_ND3HE, "(n,nd3He)"}, + {N_NT3HE, "(n,nt3He)"}, + {N_NTA, "(n,nta)"}, + {N_2N2P, "(n,2n2p)"}, + {N_P3HE, "(n,p3He)"}, + {N_D3HE, "(n,d3He)"}, + {N_3HEA, "(n,3Hea)"}, + {N_4N2P, "(n,4n2p)"}, + {N_4N2A, "(n,4n2a)"}, + {N_4NPA, "(n,4npa)"}, + {N_3P, "(n,3p)"}, + {N_N3P, "(n,n3p)"}, + {N_3N2PA, "(n,3n2pa)"}, + {N_5N2P, "(n,5n2p)"}, {201, "(n,Xn)"}, {202, "(n,Xgamma)"}, {N_XP, "(n,Xp)"}, @@ -174,32 +223,98 @@ const std::unordered_map REACTION_NAME_MAP { {HEATING_LOCAL, "heating-local"}, }; -std::string reaction_name(int mt) +std::unordered_map REACTION_TYPE_MAP; + +void initialize_maps() { - if (N_N1 <= mt && mt <= N_N40) { - return fmt::format("(n,n{})", mt - 50); - } else if (534 <= mt && mt <= 572) { - return fmt::format("photoelectric, {} subshell", SUBSHELLS[mt - 534]); - } else if (N_P0 <= mt && mt < N_PC) { - return fmt::format("(n,p{})", mt - N_P0); - } else if (N_D0 <= mt && mt < N_DC) { - return fmt::format("(n,d{})", mt - N_D0); - } else if (N_T0 <= mt && mt < N_TC) { - return fmt::format("(n,t{})", mt - N_T0); - } else if (N_3HE0 <= mt && mt < N_3HEC) { - return fmt::format("(n,3He{})", mt - N_3HE0); - } else if (N_A0 <= mt && mt < N_AC) { - return fmt::format("(n,a{})", mt - N_A0); - } else if (N_2N0 <= mt && mt < N_2NC) { - return fmt::format("(n,2n{})", mt - N_2N0); - } else { - auto it = REACTION_NAME_MAP.find(mt); - if (it != REACTION_NAME_MAP.end()) { - return it->second; - } else { - return fmt::format("MT={}", mt); + // Add level reactions to name map + for (int level = 0; level <= 48; ++level) { + if (level >= 1 && level <= 40) { + REACTION_NAME_MAP[50 + level] = fmt::format("(n,n{})", level); } + REACTION_NAME_MAP[600 + level] = fmt::format("(n,p{})", level); + REACTION_NAME_MAP[650 + level] = fmt::format("(n,d{})", level); + REACTION_NAME_MAP[700 + level] = fmt::format("(n,t{})", level); + REACTION_NAME_MAP[750 + level] = fmt::format("(n,3He{})", level); + REACTION_NAME_MAP[800 + level] = fmt::format("(n,a{})", level); + if (level <= 15) { + REACTION_NAME_MAP[875 + level] = fmt::format("(n,a{})", level); + } + } + + // Create photoelectric subshells + for (int mt = 534; mt <= 572; ++mt) { + REACTION_NAME_MAP[mt] = fmt::format("photoelectric, {} subshell", + SUBSHELLS[mt - 534]); + } + + // Invert name map to create type map + for (const auto& kv : REACTION_NAME_MAP) { + REACTION_TYPE_MAP[kv.second] = kv.first; } } +std::string reaction_name(int mt) +{ + // Initialize remainder of name map and all of type map + if (REACTION_TYPE_MAP.empty()) initialize_maps(); + + // Get reaction name from map + auto it = REACTION_NAME_MAP.find(mt); + if (it != REACTION_NAME_MAP.end()) { + return it->second; + } else { + return fmt::format("MT={}", mt); + } +} + +int reaction_type(std::string name) +{ + // Initialize remainder of name map and all of type map + if (REACTION_TYPE_MAP.empty()) initialize_maps(); + + // Check if type map has an entry for this reaction name + auto it = REACTION_TYPE_MAP.find(name); + if (it != REACTION_TYPE_MAP.end()) { + return it->second; + } + + // Alternate names for several reactions + if (name == "(n,total)") { + return SCORE_TOTAL; + } else if (name == "elastic") { + return ELASTIC; + } else if (name == "n2n") { + return N_2N; + } else if (name == "n3n") { + return N_3N; + } else if (name == "n4n") { + return N_4N; + } else if (name == "H1-production") { + return N_XP; + } else if (name == "H2-production") { + return N_XD; + } else if (name == "H3-production") { + return N_XT; + } else if (name == "He3-production") { + return N_X3HE; + } else if (name == "He4-production") { + return N_XA; + } + + // Assume the given string is a reaction MT number. Make sure it's a natural + // number then return. + int MT = 0; + try { + MT = std::stoi(name); + } catch (const std::invalid_argument& ex) { + throw std::invalid_argument("Invalid tally score \"" + name + "\". See the docs " + "for details: https://docs.openmc.org/en/stable/usersguide/tallies.html#scores"); + } + if (MT < 1) + throw std::invalid_argument("Invalid tally score \"" + name + "\". See the docs " + "for details: https://docs.openmc.org/en/stable/usersguide/tallies.html#scores"); + return MT; +} + } // namespace openmc diff --git a/src/tallies/tally.cpp b/src/tallies/tally.cpp index 5619c669c..0131592f8 100644 --- a/src/tallies/tally.cpp +++ b/src/tallies/tally.cpp @@ -65,190 +65,6 @@ double global_tally_collision; double global_tally_tracklength; double global_tally_leakage; -int -score_str_to_int(std::string score_str) -{ - if (score_str == "flux") - return SCORE_FLUX; - - if (score_str == "total" || score_str == "(n,total)") - return SCORE_TOTAL; - - if (score_str == "scatter") - return SCORE_SCATTER; - - if (score_str == "nu-scatter") - return SCORE_NU_SCATTER; - - if (score_str == "absorption") - return SCORE_ABSORPTION; - - if (score_str == "fission" || score_str == "18") - return SCORE_FISSION; - - if (score_str == "nu-fission") - return SCORE_NU_FISSION; - - if (score_str == "decay-rate") - return SCORE_DECAY_RATE; - - if (score_str == "delayed-nu-fission") - return SCORE_DELAYED_NU_FISSION; - - if (score_str == "prompt-nu-fission") - return SCORE_PROMPT_NU_FISSION; - - if (score_str == "kappa-fission") - return SCORE_KAPPA_FISSION; - - if (score_str == "inverse-velocity") - return SCORE_INVERSE_VELOCITY; - - if (score_str == "fission-q-prompt") - return SCORE_FISS_Q_PROMPT; - - if (score_str == "fission-q-recoverable") - return SCORE_FISS_Q_RECOV; - - if (score_str == "heating") - return HEATING; - - if (score_str == "heating-local") - return HEATING_LOCAL; - - if (score_str == "current") - return SCORE_CURRENT; - - if (score_str == "events") - return SCORE_EVENTS; - - if (score_str == "elastic" || score_str == "(n,elastic)") - return ELASTIC; - - if (score_str == "n2n" || score_str == "(n,2n)") - return N_2N; - - if (score_str == "n3n" || score_str == "(n,3n)") - return N_3N; - - if (score_str == "n4n" || score_str == "(n,4n)") - return N_4N; - - if (score_str == "(n,2nd)") - return N_2ND; - if (score_str == "(n,na)") - return N_2NA; - if (score_str == "(n,n3a)") - return N_N3A; - if (score_str == "(n,2na)") - return N_2NA; - if (score_str == "(n,3na)") - return N_3NA; - if (score_str == "(n,np)") - return N_NP; - if (score_str == "(n,n2a)") - return N_N2A; - if (score_str == "(n,2n2a)") - return N_2N2A; - if (score_str == "(n,nd)") - return N_ND; - if (score_str == "(n,nt)") - return N_NT; - if (score_str == "(n,n3He)") - return N_N3HE; - if (score_str == "(n,nd2a)") - return N_ND2A; - if (score_str == "(n,nt2a)") - return N_NT2A; - if (score_str == "(n,3nf)") - return N_3NF; - if (score_str == "(n,2np)") - return N_2NP; - if (score_str == "(n,3np)") - return N_3NP; - if (score_str == "(n,n2p)") - return N_N2P; - if (score_str == "(n,npa)") - return N_NPA; - if (score_str == "(n,n1)") - return N_N1; - if (score_str == "(n,nc)") - return N_NC; - if (score_str == "(n,gamma)") - return N_GAMMA; - if (score_str == "(n,p)") - return N_P; - if (score_str == "(n,d)") - return N_D; - if (score_str == "(n,t)") - return N_T; - if (score_str == "(n,3He)") - return N_3HE; - if (score_str == "(n,a)") - return N_A; - if (score_str == "(n,2a)") - return N_2A; - if (score_str == "(n,3a)") - return N_3A; - if (score_str == "(n,2p)") - return N_2P; - if (score_str == "(n,pa)") - return N_PA; - if (score_str == "(n,t2a)") - return N_T2A; - if (score_str == "(n,d2a)") - return N_D2A; - if (score_str == "(n,pd)") - return N_PD; - if (score_str == "(n,pt)") - return N_PT; - if (score_str == "(n,da)") - return N_DA; - if (score_str == "(n,Xp)" || score_str == "H1-production") - return N_XP; - if (score_str == "(n,Xd)" || score_str == "H2-production") - return N_XD; - if (score_str == "(n,Xt)" || score_str == "H3-production") - return N_XT; - if (score_str == "(n,X3He)" || score_str == "He3-production") - return N_X3HE; - if (score_str == "(n,Xa)" || score_str == "He4-production") - return N_XA; - if (score_str == "damage-energy") - return DAMAGE_ENERGY; - if (score_str == "coherent-scatter") - return COHERENT; - if (score_str == "incoherent-scatter") - return INCOHERENT; - if (score_str == "pair-production") - return PAIR_PROD; - if (score_str == "photoelectric") - return PHOTOELECTRIC; - - // So far we have not identified this score string. Check to see if it is a - // deprecated score. - if (score_str.rfind("scatter-", 0) == 0 - || score_str.rfind("nu-scatter-", 0) == 0 - || score_str.rfind("total-y", 0) == 0 - || score_str.rfind("flux-y", 0) == 0) - fatal_error(score_str + " is no longer an available score"); - - - // Assume the given string is a reaction MT number. Make sure it's a natural - // number then return. - int MT; - try { - MT = std::stoi(score_str); - } catch (const std::invalid_argument& ex) { - throw std::invalid_argument("Invalid tally score \"" + score_str + "\". See the docs " - "for details: https://docs.openmc.org/en/stable/usersguide/tallies.html#scores"); - } - if (MT < 1) - throw std::invalid_argument("Invalid tally score \"" + score_str + "\". See the docs " - "for details: https://docs.openmc.org/en/stable/usersguide/tallies.html#scores"); - return MT; -} - //============================================================================== // Tally object implementation //============================================================================== @@ -594,7 +410,8 @@ Tally::set_scores(const std::vector& scores) fatal_error("Cannot tally " + score_str + "with a delayedgroup filter"); } - auto score = score_str_to_int(score_str); + // Determine integer code for score + int score = reaction_type(score_str); switch (score) { case SCORE_FLUX: From 798b66a52766de2274aaf8d776e74f01f0fe3b99 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 28 Aug 2020 08:17:55 +0100 Subject: [PATCH 100/122] Fix typo in settings.rst create_openmc_source -> openmc_create_source --- docs/source/io_formats/settings.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/io_formats/settings.rst b/docs/source/io_formats/settings.rst index 33674ca32..0e7cacadd 100644 --- a/docs/source/io_formats/settings.rst +++ b/docs/source/io_formats/settings.rst @@ -467,7 +467,7 @@ attributes/sub-elements: * It must contain a class that inherits from ``openmc::CustomSource``; * The class must implement a function called ``sample_source()``; - * There must be a ``create_openmc_source()`` function that creates the source + * There must be an ``openmc_create_source()`` function that creates the source as a unique pointer. This function can be used to pass parameters through to the source from the XML, if needed. From 7eab3055f52b329303964ab3be5567814b540e5c Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Fri, 28 Aug 2020 08:55:12 +0100 Subject: [PATCH 101/122] Another iteration on hexagonal lattice. In the original example the rings were constructed as 'inner_ring', 'outer_ring' and 'middle_ring'. This naming convention only really works for 3-ringed lattices. The example has been slightly modified to contain a fourth ring. The lattice is constructed as: `lattice.universes = [outer_ring, ring_1, ring_2, inner_ring]` Which is much more translatable to lattices of any size. This commit also incorporates feedback on the criticality search tutorial changes. --- examples/jupyter/hexagonal-lattice.ipynb | 126 +++++++++++++++-------- examples/jupyter/search.ipynb | 16 +-- 2 files changed, 91 insertions(+), 51 deletions(-) diff --git a/examples/jupyter/hexagonal-lattice.ipynb b/examples/jupyter/hexagonal-lattice.ipynb index a390dd5fa..ff1e5d692 100644 --- a/examples/jupyter/hexagonal-lattice.ipynb +++ b/examples/jupyter/hexagonal-lattice.ipynb @@ -117,33 +117,63 @@ "name": "stdout", "output_type": "stream", "text": [ - " (0, 0)\n", - " (0,11) (0, 1)\n", - "(0,10) (1, 0) (0, 2)\n", - " (1, 5) (1, 1)\n", - "(0, 9) (2, 0) (0, 3)\n", - " (1, 4) (1, 2)\n", - "(0, 8) (1, 3) (0, 4)\n", - " (0, 7) (0, 5)\n", - " (0, 6)\n" + " (0, 0)\n", + " (0,17) (0, 1)\n", + " (0,16) (1, 0) (0, 2)\n", + "(0,15) (1,11) (1, 1) (0, 3)\n", + " (1,10) (2, 0) (1, 2)\n", + "(0,14) (2, 5) (2, 1) (0, 4)\n", + " (1, 9) (3, 0) (1, 3)\n", + "(0,13) (2, 4) (2, 2) (0, 5)\n", + " (1, 8) (2, 3) (1, 4)\n", + "(0,12) (1, 7) (1, 5) (0, 6)\n", + " (0,11) (1, 6) (0, 7)\n", + " (0,10) (0, 8)\n", + " (0, 9)\n" ] } ], "source": [ - "print(lattice.show_indices(num_rings=3))" + "print(lattice.show_indices(num_rings=4))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Let's set up a lattice where the first element in each ring is the big pin universe and all other elements are regular pin universes. From the diagram above, we see that the outer ring has 12 elements, the middle ring has 6, and the innermost degenerate ring has a single element." + "Let's set up a lattice where the first element in each ring is the big pin universe and all other elements are regular pin universes. \n", + "\n", + "From the diagram above, we see that the outer ring has 18 elements, the first ring has 12, and the second ring has 6 elements. The innermost ring of any hexagonal lattice will have only a single element. \n", + "\n", + "We build these rings though 'list concatenation' as folows: " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, + "outputs": [], + "source": [ + "outer_ring = [big_pin_universe] + [pin_universe]*17 # Adds up to 18\n", + "\n", + "ring_1 = [big_pin_universe] + [pin_universe]*11 # Adds up to 12\n", + "\n", + "ring_2 = [big_pin_universe] + [pin_universe]*5 # Adds up to 6\n", + "\n", + "inner_ring = [big_pin_universe]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now assign the rings (and the universes they contain) to our lattice. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -153,29 +183,33 @@ "\tID =\t4\n", "\tName =\t\n", "\tOrientation =\ty\n", - "\t# Rings =\t3\n", + "\t# Rings =\t4\n", "\t# Axial =\tNone\n", "\tCenter =\t(0.0, 0.0)\n", "\tPitch =\t(1.25,)\n", "\tOuter =\t3\n", "\tUniverses \n", - " 2\n", - " 1 1\n", - "1 2 1\n", - " 1 1\n", - "1 2 1\n", - " 1 1\n", - "1 1 1\n", - " 1 1\n", - " 1\n" + " 2\n", + " 1 1\n", + " 1 2 1\n", + "1 1 1 1\n", + " 1 2 1\n", + "1 1 1 1\n", + " 1 2 1\n", + "1 1 1 1\n", + " 1 1 1\n", + "1 1 1 1\n", + " 1 1 1\n", + " 1 1\n", + " 1\n" ] } ], "source": [ - "outer_ring = [big_pin_universe] + [pin_universe]*11\n", - "middle_ring = [big_pin_universe] + [pin_universe]*5\n", - "inner_ring = [big_pin_universe]\n", - "lattice.universes = [outer_ring, middle_ring, inner_ring]\n", + "lattice.universes = [outer_ring, \n", + " ring_1, \n", + " ring_2,\n", + " inner_ring]\n", "print(lattice)" ] }, @@ -188,11 +222,11 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ - "outer_surface = openmc.ZCylinder(r=4.0, boundary_type='vacuum')\n", + "outer_surface = openmc.ZCylinder(r=5.0, boundary_type='vacuum')\n", "main_cell = openmc.Cell(fill=lattice, region=-outer_surface)\n", "geometry = openmc.Geometry([main_cell])\n", "geometry.export_to_xml()" @@ -207,17 +241,17 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQAgMAAAD90d5fAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///8AAP///wCAgACerKf2AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+MGCAIxFif9eE4AAAhVSURBVHja7Z3LdeM4EEXlBUJgPgyBC9E8xxvtlQSj6BBmMc5HoWjZR2OLlkVK9Xn1IeRRd626DdDXVQ8ECiAIbjYmK/3ZOttVJutnVgGxEualv7M2m1F6wrpcRtOTtq3ASKWUnrW0iAmMNMpLL1qbAukVy2A0GiRB/KIxMmTRGfGAqcFKCNgLwoi2MIwRCxigelx7lBFxBXYk4grO8LticMTvioXhdcXkiNcVG8PnitERnyuNFeLowcBea27t+o44XHE4YnfFLLtHeg/D2opd0bLGyyH7p9mk9zFs8SpeiEV6Z7RM8XLK/mm49O5oWeLljpYhXoFo4fEKRAuPVyBacLxC0ULjFYoWGq9QtNB4xRhY/xWUBBMlGC0sXlEGEi8tWq/v77/C8SoqQ6XojViRZP8J+TcqCuCI6kpQkrcJ8k9MFEWS9y+LiSJL8nqByPHSRIGipcYrJMn+AlHalywKKElMlCYHIosiX/t6hfzyi4LdJcE7pWRBJFEUSfZXSKD76rMggijaWPL+jjYvQZSSB+FFafIgvCh9HqT3Ql7nkF9OCJBD4BBO+ZIJ4ZRvMiGc8n0mhBFFTYJtkPZxkJILoZVvciG08tpVRkjvg5i6FRoCzLBsEEr5kg2hlG+yIVsfxDD8MhD9KiOEUB6ZWeMp0dnax0AKcBWepp7tvnk1wFVwwj3Z9jEQ5Cp4EvRlHt3x6dyXtS4IODHlIEWouzsdL/+8lWRWRNht82r4qsPpdLqJ13e0PooO/JVbHLL7+E2Xv/dm2WNeBEAEp8eP3/T78p/9om0tigjDIafTLF7LpahFkQoRGtew/E2LRbVzkSBKa4McjEUUpPAVdxrkyF+7bMONBjkaiybb1ofw9c7NVITAbbgGROoeQ5C2NqQI9SLCL9pwFUizFmQLQiLdygIiVItBehBy05/v56mK1tXPIXIWsWimb4vRd1QhLQgZ5+Le5hHybTKHFLHeMIv7TSIxaJLM2rAM6W+H+OUgL1/bQS34/Pd+//MuFVYcmbVhBXI1Ywa5gKBXWHPhT7NDjFm9D2Kbnywg8NNe43TubG1NSLkvou9jbfY7EjdNx0J29CihQMireAjTJSkrEiPVW3bcvTgwnasCIQeXLQfZMWORvEo0kGPxlrtNRmboliE7Oj8SIb+tkNEGOfkhJwbyQkPuqyurqcxV7QMhQwRyoCFlXUj3ZJBmXciWSSNSW1dFSE9Xz7rjewaS2neJkKMVsrNBMseTCfLCVL//sWtknPqVF7p61hjPQxKzlQlSiJ8n5l1Tv0JCaPNkkD8T4snqJ0hjqL+XGhdnWyPkTdQ9CWKfM8KQyOwXhkTm8V8QwJHAisSnIZDQ2goKCa0SWSDu9S4QElu5myDq/DoOaXVIaDX1z4OE1uq/IGV9SPcnQeLC/yzIgSpSnzPCkHi3AkO+/2t69nuBNFqVyFPsybYAZDy5n8fjkN3Ju7PAAPHvkTBA/Ls9LJCruTJIK8SVC1shrqzeCnHNT2pBLLV907mPxMtSWZv92iADfY8pkIG7M2nI6F2RoDsyGuJfW8Ehg3+ViIwXCdn517uO1O8jIbmLahIkbXmQgTA5m7KaOrKDMQ/JWrJlILkr3H8hfyFEdR+E+n2PuxmrdCtVOsgqXX2VQavK8FsnkaiSEjGWm9wx5k5TG0ttqXHx9hOnDnupcWVB3ly6/5yJaY0pdpXFgirLHlUWcBKWoopWJWNRDYQcjEVGSJWFzudZF36etfoMSJWHND/jcdPzQDIeZlZ5LGt9wIwWOSBMMx3TICMv7g4aGa3bF/CiJaQB4sX+tSO4EUOHDMIvSttSErTngpS1Idb9Xf9DiHAfj0IRu7HPsEXRV2TcbDn9tVKRYbPlwHeugzCCMEWtbQNsL603iRtgDVt5ZQi3qGbclOwrMm6vBiDc9uqGhtDK24uMu9FTIUMEcqAhZV2I8V0HiJ8AcXsCv+Tigxhf1/EVVYTgr1D1njve+jKYq8j6Wlvv6YWtL+j1jvGEfQswc2S8QApVnRvIhWkPOcabX//0FPEQKe8SZiTSi6zhU54lM7/3G4EkHPPM2+b5IM16DPhN/8js9wopcsXIPL4DIaEViSvEcFjF0vS1lRaEhFaJrhDLASJo0ZdtMEjaUSjNWhD05JjzgJtxPE1ZC9LVhjzPCUvPc+rVE51EVjTIgSoyHtxW5Qg6/DC9hdkg8LGAcNHZNjBklActwwGHDV9zJw+/R/5Kw3mQgxASWZJbSBGcFrZ02I7PXCWzbx8BWSXpvmWskXQ7z7KNQko+pLuDrKB864YMyJNFDoI2rxF5RjrZPQNVXk2xv815DncvL+AAkAJduVMG3Jl1BARTftSSoKsRuoPKGyAbN+SkjbgKpMmF0Mf7l1xIR0Ig5XFI+zgIpDwOoRmQ8jCE+6BHyYR0DAQRBYYwkkCiwJBNAAJ3KyykyYPwn/Ap+sVoV9+xEEB5dNBidYeVB6rxDFCUkCSQKFhK1AmQtAxPkCQvt5cYWWm3/Em4kgPpREiSKKIkWaLIjBxRtE8nlgxIp0BSRFEkyRFFY2SIon9itMQhmiQpoqiS1PmAbZ1P8Vb5qHCVzyPX+dBziUH0BpwgCiRJnc+I1/kgepVPu1f5SH0kXmi0QvGCoxWIFx6tQLzwaG38/ZeF4Y2XJVpu6Q2y++NlY/ikN8nujZcxWi7pbbI7XTE74nDF7ohDeqvsZ7NCPAyrKy5HrK74GDZXnI7YXPEyLK64HbG44mfgrgQcwV2JMNAerA1BsB7M02uZAxZlINp3YYgesHCwkIBlMLQW1qZAZFm6HIZISWMI4qeIrlBSGUzEEmM1GdHG2mzG5v5+WQFxi1kJ8WnFJcZ/bkPEpRmBEaUAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMDYtMDhUMDc6NDk6MjItMDU6MDA/X9I4AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTA2LTA4VDA3OjQ5OjIyLTA1OjAwTgJqhAAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ "" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -251,17 +285,17 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "" ] }, - "execution_count": 10, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -284,27 +318,31 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " (0, 8) (0, 9) (0,10)\n", + " (0,12) (0,13) (0,14) (0,15)\n", "\n", - " (0, 7) (1, 4) (1, 5) (0,11)\n", + " (0,11) (1, 8) (1, 9) (1,10) (0,16)\n", "\n", - "(0, 6) (1, 3) (2, 0) (1, 0) (0, 0)\n", + " (0,10) (1, 7) (2, 4) (2, 5) (1,11) (0,17)\n", "\n", - " (0, 5) (1, 2) (1, 1) (0, 1)\n", + "(0, 9) (1, 6) (2, 3) (3, 0) (2, 0) (1, 0) (0, 0)\n", "\n", - " (0, 4) (0, 3) (0, 2)\n" + " (0, 8) (1, 5) (2, 2) (2, 1) (1, 1) (0, 1)\n", + "\n", + " (0, 7) (1, 4) (1, 3) (1, 2) (0, 2)\n", + "\n", + " (0, 6) (0, 5) (0, 4) (0, 3)\n" ] } ], "source": [ - "print(lattice.show_indices(3, orientation='x'))" + "print(lattice.show_indices(4, orientation='x'))" ] }, { @@ -318,24 +356,24 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQBAMAAABykSv/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAElBMVEX///+TUVD//wCAgAA4vPIAAP/pte6jAAAAAWJLR0QAiAUdSAAAAAd0SU1FB+QIHAkpLvz/+XkAAAiBSURBVHja7Z3rddw6DISNDkR3ICkVrCpwjtNB3H8rNznxPkQBu3xgCAqX83fOMfkJszJFUtTb29DQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQULlCA7XgoBYgk5OCNCmJFxBqAzINkFS14WiQLS8g1ApkclIQeEm8gFA7kGmApKgdBzhbXkAoaut9mflOaBhTu4K8LwvfLx2jGcjfxtl+KRk4jihZyz8du6VkTI1AlkXol5aBA+Ebj/ulZzQpyLIIzSsaqJI8grzvWp8hBgxE5HhoXtHAZUvmuDWvaOBA6AnHd/OKBjBbd5CFk7IBBHnO8bd5RQOYLXrBoSpkSdyAvEoWBASRLS8gZAOiny0WZNs2viO1BhAkMCDbJvSr2sD9cycGZNuEftUbuIEjA7J+t36Je6Vg4ECCFYh2thiQbROSomDAQMgORDdb4Qiy3lqPkqJhBFRJvICQJYhmttyABEsQzWx5ASEOpNXtVzNbwRZEryQ8yBrFYVE0MCBkDaKVLQGkzTBeEyQIIE0erDSzJYI0eNTVBCEZBKaoSZ1sBXsQnZJ4AaEeQDSy5QbEggOSregvvrcBmdVByITjQFKfLSMO/Y0pVhwxiW6yWnIoP12RHYfuFIQlh+b0FplyKE6dPoC8W4DMWiDGHHobU6w5Hkl0kmXFobQuSvYcOrsgzIP1V3N9tqgvkPKSuAGxv2ftQMqzxYKsF6FBlFEPQgzIys7dQo07SGm2OBBp8hZo1IMw45NVmE5HGtWjFG7AKK3UII3qgSMDclvsi68j0qgGCf2BlGWLAbmt9cWBQBq1INQjSEm23ICEHkEKskV9guSXxA1I6BMkP1ssyHpt4xK1jjTqQKhXkNxsBRbEeqxVUBIBZOWvYqvRbz4ICSC2zyMF2RJBFqFxoFEFEkSQ9opA8rLlBYR6BsnJVugZJKckXkDiZJlOxtdsTKGuOCq2oXXGUb4zsKMfyD/NZSDUG0fpCLg/jsKHkg45iqYgdsmy7v9d+dmiLjkKtnN0ypH/cmKHP5B/mvNAqFeO3LWrfjky10U75sjaBXFLlnWfeaVnyw1Ip7feGORltugsIK9K4gaE+6++bvxWCwsj+X8iA7IKc7QmRioIMSDSrLmJkTpwZECu6xWHy2VipIIwI9/rcgXi3eJ8I3EETGcCmf4PIOEIst7+1mXfho0R0rLlBYTOBTL5BwnnAglJBTkDyJQD0u/tVwYJZwMJWSDX8l7iRkyMFBDiQXod/crZCgLIyl8s6+cRuSQSCPDUkHwjAYREkD+X5bKwam9EnZzyQDpSAkg4I0hwDELnBJleFuRdr/EfP/WMj5clARbk81PReAUCvGd9fgr9KjNeZIugHGy/So3nIGAOpl/lxtNswX7o19Z/6hkfT0AIzRH3q8rYkUxiQTAc+35VGh9iScA/kEPoaw0JhJAcX38U9aveELJFOI6vbz32S8PgQfAcj/3SMdhswX7ov+6t/77+fJWMDwaEGnDc+qVmfByzBbvxfu30cNdRMT4OJWlSkO/r+KlnHEBgyfqKJFzeUuOQLTcgqHvWr7j133xOSo34vkUcyCrsqEg1fjBX8XaBlYw7yCSCrMIMZrJhAcKMe1dhcjzd+MHE4ZoULeNhDCyBSMsV6YYBCHkAmd5Qp4YYgAQUyBcj4ZdbZjyABNgZFa1BJj8gwQdI8APiJlpuQNzcfv38Q3QzRHEzaPQzjKcjyDkfrDiQUz7qupl88DMd5AbEzZSpn0lsWLZ+Ha4idlnBzUKPn6U3wpPce4VcDH0AOffytJsNA362cBCe5KeesePYb6pxs83Jz8YzApMoGvueTs9Bzrs50812WT8bmAlYEkXFvTwky88mfz8gwPsWDmTKAznXq0luXhbz8/oeCSDSBHy3L1S6ecXVz0vHdDaQKQdkvf2tqO42RhKIm6MS/Bxe4QbEzQEvfkDoCNLv7Xf6P4C4OSjMz9FtDEivo9/nIG6ON/Rz4CQxID0pNVl+QNwck+vn4GI3IG4O9/Zz3Dr1S3LnSEiWn08S+PlIBHVKkvoowoJ0RBKyQdx82sbPx4aoP5I9R2Ky/HyQy88n0qgzkqg7ycnqbRdEKAZx82FHPyDUM0hGsvx8jtYPCIkg/Mwm0ohAspLl5yPabj5r7udD88SCXJcrKt5Gzjf2IJnJEh5KOgDJ5eBBtpuEOCCMShDqEyQ7WX5AUMdzVILkc6BOtagDKSiIH5C3HkFKOEDnjOQb1SDUH0hRskDnjOQb1SCY4znyjbkyWfzalXAV2zyPFBYEc85IvlEPwq+LrlzbSGOuTVYvC7wKINQXSHGy/ID0sQtirk5WJxtTFArSxe6t+pvvY7bswqVwz9qBWJHUj0/ibNmQ1A8YjyAmP5OgBYI6ZySfoy5ZxhtTgl5BhDfh2nNUgxhuTJl3Tddy2G3n2HPUg5ARScRRnSyrddGIo74gVkcoBH0QsiCJ21RIlh8Qk2wBkuUIhOxBVJL1bGfgJuzBqDYQBTE5ZwQDQgKINJ3e6rANLZDrQsYl7pWCgQExOGcEkiyLc0ZAIGQLopYsg+M5MAVxBEKWIIrJ8gPS/HgOULIcgdARpIvDNqpK0hhEl4MDWaM4LIoGDoSsQJST1fqcERwIezyH0CvVByttDn5ddIM/6qoXpPECLxCk7fEcuGQ5AiELEECy/IC8zJaqgUvWy/uWsoEryItzRmZlAwjydGPKrG7AksXuMT80rmjgQEgkmSEGKllPtnOADBQIO70VN65poDikjSkhBIgBK4iwvhCC0K9aAwfCbkyZj91SMnAc3HYOpldaBhCEDs2zvdIxJiDIW2goJIcfEGrHMQ2QJLUDwXL4AaFWHBMYpFlJ0Bx+QKgNxzRAktUGBM/hB4RacEwNQJqUpAXH0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0JBb/Qdzkh5bG3T0BgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wOC0yOFQwODo0MTo0NiswMTowMPgs44sAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDgtMjhUMDg6NDE6NDYrMDE6MDCJcVs3AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, - "execution_count": 12, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "main_cell.region = openmc.model.hexagonal_prism(\n", - " edge_length=3*lattice.pitch[0],\n", + " edge_length=4*lattice.pitch[0],\n", " orientation='x',\n", " boundary_type='vacuum'\n", ")\n", diff --git a/examples/jupyter/search.ipynb b/examples/jupyter/search.ipynb index 74de8f82b..6c3e2169e 100644 --- a/examples/jupyter/search.ipynb +++ b/examples/jupyter/search.ipynb @@ -47,6 +47,7 @@ "# Create the model. `ppm_Boron` will be the parametric variable.\n", "\n", "def build_model(ppm_Boron):\n", + " \n", " # Create the pin materials\n", " fuel = openmc.Material(name='1.6% Fuel')\n", " fuel.set_density('g/cm3', 10.31341)\n", @@ -101,18 +102,19 @@ " # Create Geometry and set root universe\n", " geometry = openmc.Geometry(root_universe)\n", " \n", - " # Create an initial uniform spatial source distribution over fissionable zones\n", - " bounds = [-0.63, -0.63, -10, 0.63, 0.63, 10.]\n", - " uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", - " \n", - " # Finish with the settings file\n", + " # Instantiate a Settings object\n", " settings = openmc.Settings()\n", + " \n", + " # Set simulation parameters\n", " settings.batches = 300\n", " settings.inactive = 20\n", " settings.particles = 1000\n", - " settings.run_mode = 'eigenvalue'\n", + " \n", + " # Create an initial uniform spatial source distribution over fissionable zones\n", + " bounds = [-0.63, -0.63, -10, 0.63, 0.63, 10.]\n", + " uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", " settings.source = openmc.source.Source(space=uniform_dist)\n", - "\n", + " \n", " # We dont need a tallies file so dont waste the disk input/output time\n", " settings.output = {'tallies': False}\n", " \n", From cf656032f7c1864fe7f33e851056324d2f6104f2 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 28 Aug 2020 09:37:28 +0100 Subject: [PATCH 102/122] Simplify sampling function name in doc sample_source -> sample --- docs/source/io_formats/settings.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/io_formats/settings.rst b/docs/source/io_formats/settings.rst index 0e7cacadd..09d7db123 100644 --- a/docs/source/io_formats/settings.rst +++ b/docs/source/io_formats/settings.rst @@ -466,7 +466,7 @@ attributes/sub-elements: has a few basic requirements: * It must contain a class that inherits from ``openmc::CustomSource``; - * The class must implement a function called ``sample_source()``; + * The class must implement a function called ``sample()``; * There must be an ``openmc_create_source()`` function that creates the source as a unique pointer. This function can be used to pass parameters through to the source from the XML, if needed. From 94350201979e6c4a313666da05ce8bcaac7bd0f2 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 28 Aug 2020 09:38:38 +0100 Subject: [PATCH 103/122] Update docstring custom source -> custom source library --- openmc/source.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/source.py b/openmc/source.py index 78ca9dad0..22952b4a5 100644 --- a/openmc/source.py +++ b/openmc/source.py @@ -23,7 +23,7 @@ class Source: library : str Path to a custom source library parameters : str - Parameters to be provided to the custom source + Parameters to be provided to the custom source library .. versionadded:: 0.12 strength : float @@ -44,7 +44,7 @@ class Source: library : str or None Path to a custom source library parameters : str - Parameters to be provided to the custom source + Parameters to be provided to the custom source library strength : float Strength of the source particle : {'neutron', 'photon'} From 21e8d91e9074538f743c8cd9ee3000065af89525 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 28 Aug 2020 09:49:36 +0100 Subject: [PATCH 104/122] Requested updates to source Rename sample_source -> sample. Use std::string as type of argument to openmc_create_source. Use reinterpret_cast when accessing dlsym. Also moves check for dlerror to be before the attempt to create the source (avoids null reference if fails) and capture error message before dlclose, so that the error message is still available. Formatting updates and some refactoring for examples and tests. --- examples/custom_source/source_ring.cpp | 6 ++-- .../parameterized_source_ring.cpp | 35 +++++++------------ include/openmc/source.h | 4 +-- src/source.cpp | 16 +++++---- .../source_dlopen/source_sampling.cpp | 6 ++-- .../parameterized_source_sampling.cpp | 22 ++++++------ 6 files changed, 40 insertions(+), 49 deletions(-) diff --git a/examples/custom_source/source_ring.cpp b/examples/custom_source/source_ring.cpp index 5b7bb837c..bc8a8a7f8 100644 --- a/examples/custom_source/source_ring.cpp +++ b/examples/custom_source/source_ring.cpp @@ -7,7 +7,7 @@ class Source : public openmc::CustomSource { - openmc::Particle::Bank sample_source(uint64_t* seed) + openmc::Particle::Bank sample(uint64_t* seed) { openmc::Particle::Bank particle; // wgt @@ -30,7 +30,7 @@ class Source : public openmc::CustomSource // A function to create a unique pointer to an instance of this class when generated // via a plugin call using dlopen/dlsym. // You must have external C linkage here otherwise dlopen will not find the file -extern "C" std::unique_ptr openmc_create_source() +extern "C" std::unique_ptr openmc_create_source(std::string parameters) { - return std::unique_ptr (new Source()); + return std::make_unique(); } diff --git a/examples/parameterized_custom_source/parameterized_source_ring.cpp b/examples/parameterized_custom_source/parameterized_source_ring.cpp index abcaa975a..c88333e15 100644 --- a/examples/parameterized_custom_source/parameterized_source_ring.cpp +++ b/examples/parameterized_custom_source/parameterized_source_ring.cpp @@ -8,25 +8,12 @@ class Source : public openmc::CustomSource { - protected: - double radius_; - double energy_; - - // Protect the constructor as we only want the class to be created by the from_string method. - Source(double radius, double energy) - { - radius_ = radius; - energy_ = energy; - } - public: - // Getters for the values that we want to use in sampling. - double radius() { return radius_; } - double energy() { return energy_; } + Source(double radius, double energy) : radius_(radius), energy_(energy) { } // Defines a function that can create a unique pointer to a new instance of this class // by extracting the parameters from the provided string. - static std::unique_ptr from_string(const char* parameters) + static std::unique_ptr from_string(std::string parameters) { std::unordered_map parameter_mapping; @@ -39,13 +26,13 @@ class Source : public openmc::CustomSource parameter_mapping[key] = value; } - return std::unique_ptr ( - new Source(std::stod(parameter_mapping["radius"]), std::stod(parameter_mapping["energy"])) - ); + double radius = std::stod(parameter_mapping["radius"]); + double energy = std::stod(parameter_mapping["energy"]); + return std::make_unique(radius, energy); } // Samples from an instance of this class. - openmc::Particle::Bank sample_source(uint64_t* seed) + openmc::Particle::Bank sample(uint64_t* seed) { openmc::Particle::Bank particle; // wgt @@ -53,23 +40,27 @@ class Source : public openmc::CustomSource particle.wgt = 1.0; // position double angle = 2.0 * M_PI * openmc::prn(seed); - double radius = this->radius(); + double radius = this->radius_; particle.r.x = radius * std::cos(angle); particle.r.y = radius * std::sin(angle); particle.r.z = 0.0; // angle particle.u = {1.0, 0.0, 0.0}; - particle.E = this->energy(); + particle.E = this->energy_; particle.delayed_group = 0; return particle; } + + private: + double radius_; + double energy_; }; // A function to create a unique pointer to an instance of this class when generated // via a plugin call using dlopen/dlsym. // You must have external C linkage here otherwise dlopen will not find the file -extern "C" std::unique_ptr openmc_create_source(const char* parameters) +extern "C" std::unique_ptr openmc_create_source(std::string parameters) { return Source::from_string(parameters); } diff --git a/include/openmc/source.h b/include/openmc/source.h index 460e7eca3..529cb1836 100644 --- a/include/openmc/source.h +++ b/include/openmc/source.h @@ -63,10 +63,10 @@ class CustomSource { public: virtual ~CustomSource() {} - virtual Particle::Bank sample_source(uint64_t* seed) = 0; + virtual Particle::Bank sample(uint64_t* seed) = 0; }; -typedef std::unique_ptr create_custom_source_t(const char* parameters); +typedef std::unique_ptr create_custom_source_t(std::string parameters); //============================================================================== // Functions diff --git a/src/source.cpp b/src/source.cpp index 7c40147ce..b80a2ce7a 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -46,7 +46,7 @@ std::vector external_sources; namespace { void* custom_source_library; -std::string custom_source_parameters = ""; +std::string custom_source_parameters; std::unique_ptr custom_source; } @@ -373,18 +373,20 @@ void load_custom_source_library() dlerror(); // get the function to create the CustomSource from the library - create_custom_source_t* create_custom_source = (create_custom_source_t*) dlsym(custom_source_library, "openmc_create_source"); - - // create a pointer to an instance of the CustomSource - custom_source = create_custom_source(custom_source_parameters.c_str()); + auto create_custom_source = reinterpret_cast( + dlsym(custom_source_library, "openmc_create_source")); // check for any dlsym errors auto dlsym_error = dlerror(); if (dlsym_error) { + std::string error_msg = fmt::format("Couldn't open the openmc_create_source symbol: {}", dlsym_error); dlclose(custom_source_library); - fatal_error(fmt::format("Couldn't open the sample_source symbol: {}", dlsym_error)); + fatal_error(error_msg); } + // create a pointer to an instance of the CustomSource + custom_source = create_custom_source(custom_source_parameters); + #else fatal_error("Custom source libraries have not yet been implemented for " "non-POSIX systems"); @@ -409,7 +411,7 @@ void close_custom_source_library() Particle::Bank sample_custom_source_library(uint64_t* seed) { // sample from the instance of the CustomSource - return custom_source->sample_source(seed); + return custom_source->sample(seed); } void fill_source_bank_custom_source() diff --git a/tests/regression_tests/source_dlopen/source_sampling.cpp b/tests/regression_tests/source_dlopen/source_sampling.cpp index 529e3a547..ea74afdd9 100644 --- a/tests/regression_tests/source_dlopen/source_sampling.cpp +++ b/tests/regression_tests/source_dlopen/source_sampling.cpp @@ -7,7 +7,7 @@ class Source : openmc::CustomSource { - openmc::Particle::Bank sample_source(uint64_t *seed) + openmc::Particle::Bank sample(uint64_t *seed) { openmc::Particle::Bank particle; // wgt @@ -29,7 +29,7 @@ class Source : openmc::CustomSource // A function to create a unique pointer to an instance of this class when generated // via a plugin call using dlopen/dlsym. // You must have external C linkage here otherwise dlopen will not find the file -extern "C" std::unique_ptr openmc_create_source() +extern "C" std::unique_ptr openmc_create_source(std::string parameters) { - return std::unique_ptr (new Source()); + return std::make_unique(); } diff --git a/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp index 162164f01..3b0875bb0 100644 --- a/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp +++ b/tests/regression_tests/source_parameterized_dlopen/parameterized_source_sampling.cpp @@ -1,18 +1,12 @@ #include "openmc/source.h" #include "openmc/particle.h" -class Source : public openmc::CustomSource -{ +class Source : public openmc::CustomSource { public: - double energy; - - Source(double energy) - { - this->energy = energy; - } + Source(double energy) : energy_(energy) { } // Samples from an instance of this class. - openmc::Particle::Bank sample_source(uint64_t* seed) + openmc::Particle::Bank sample(uint64_t* seed) { openmc::Particle::Bank particle; // wgt @@ -24,17 +18,21 @@ class Source : public openmc::CustomSource particle.r.z = 0.0; // angle particle.u = {1.0, 0.0, 0.0}; - particle.E = this->energy; + particle.E = this->energy_; particle.delayed_group = 0; return particle; } + + private: + double energy_; }; // A function to create a unique pointer to an instance of this class when generated // via a plugin call using dlopen/dlsym. // You must have external C linkage here otherwise dlopen will not find the file -extern "C" std::unique_ptr openmc_create_source(const char* parameter) +extern "C" std::unique_ptr openmc_create_source(std::string parameter) { - return std::unique_ptr (new Source(atof(parameter))); + double energy = std::stod(parameter); + return std::make_unique(energy); } From 0245d3356206dc512ff8c1c543ae56b6cd6ce583 Mon Sep 17 00:00:00 2001 From: Dan Short Date: Fri, 28 Aug 2020 09:50:05 +0100 Subject: [PATCH 105/122] Update doc to align with latest changes --- docs/source/usersguide/settings.rst | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/source/usersguide/settings.rst b/docs/source/usersguide/settings.rst index b992ed2ae..340d4af00 100644 --- a/docs/source/usersguide/settings.rst +++ b/docs/source/usersguide/settings.rst @@ -196,7 +196,7 @@ below. class Source : public openmc::CustomSource { - openmc::Particle::Bank sample_source(uint64_t* seed) + openmc::Particle::Bank sample(uint64_t* seed) { openmc::Particle::Bank particle; // weight @@ -216,8 +216,9 @@ below. } }; - extern "C" std::unique_ptr openmc_create_source() { - return std::unique_ptr (new Source()); + extern "C" std::unique_ptr openmc_create_source(std::string parameters) + { + return std::make_unique(); } The above source creates monodirectional 14.08 MeV neutrons that are distributed @@ -225,7 +226,7 @@ in a ring with a 3 cm radius. This routine is not particularly complex, but should serve as an example upon which to build more complicated sources. .. note:: The source class must inherit from ``openmc::CustomSource`` and - implement a ``sample_source()`` function. + implement a ``sample()`` function. .. note:: The ``openmc_create_source()`` function signature must be declared ``extern "C"``. @@ -254,7 +255,7 @@ Custom Parameterized Sources ---------------------------- Some custom sources may have values (parameters) that can be changed between -runs. This is supported by using the ``create_custom_source()`` function to +runs. This is supported by using the ``openmc_create_source()`` function to pass parameters defined in the :attr:`openmc.Source.parameters` attribute to the source class when it is created: @@ -265,17 +266,12 @@ the source class when it is created: #include "openmc/source.h" #include "openmc/particle.h" - class Source : public openmc::CustomSource - { - double energy; - - Source(double energy) - { - this->energy = energy; - } + class Source : public openmc::CustomSource { + public: + Source(double energy) : energy_{energy} { } // Samples from an instance of this class. - openmc::Particle::Bank sample_source(uint64_t* seed) + openmc::Particle::Bank sample(uint64_t* seed) { openmc::Particle::Bank particle; // weight @@ -287,15 +283,19 @@ the source class when it is created: particle.r.z = 0.0; // angle particle.u = {1.0, 0.0, 0.0}; - particle.E = this->energy; + particle.E = this->energy_; particle.delayed_group = 0; return particle; } + + private: + double energy_; }; - extern "C" std::unique_ptr openmc_create_source(const char* parameter) { - return std::unique_ptr (new Source(atof(parameter))); + extern "C" std::unique_ptr openmc_create_source(std::string parameter) { + double energy = std::stod(parameter); + return std::make_unique(energy); } As with the basic custom source functionality, the custom source library From 111ab1e72c777ba651f1458c69ecc00928b02f59 Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Sun, 30 Aug 2020 17:09:31 +0100 Subject: [PATCH 106/122] Update README.md Changed links to mailing list to links to discourse. --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 57197c363..a47fe227c 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,7 @@ project started under the Computational Reactor Physics Group at MIT. Complete documentation on the usage of OpenMC is hosted on Read the Docs (both for the [latest release](http://openmc.readthedocs.io/en/stable/) and [developmental](http://openmc.readthedocs.io/en/latest/) version). If you are -interested in the project or would like to help and contribute, please send a -message to the OpenMC User's Group [mailing -list](https://groups.google.com/forum/?fromgroups=#!forum/openmc-users). +interested in the project or would like to help and contribute, please get in touch on the OpenMC [discussion forum](https://openmc.discourse.group/). ## Installation @@ -35,11 +33,9 @@ citing the following publication: ## Troubleshooting If you run into problems compiling, installing, or running OpenMC, first check -the [Troubleshooting -section](http://openmc.readthedocs.io/en/stable/usersguide/troubleshoot.html) in +the [Troubleshooting section](http://openmc.readthedocs.io/en/stable/usersguide/troubleshoot.html) in the User's Guide. If you are not able to find a solution to your problem there, -please send a message to the User's Group [mailing -list](https://groups.google.com/forum/?fromgroups=#!forum/openmc-users). +please post to the [discussion forum](https://openmc.discourse.group/). ## Reporting Bugs From 6fa8086d0e3b1218b2c8b458540b487f3bb6e666 Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Sun, 30 Aug 2020 17:11:17 +0100 Subject: [PATCH 107/122] Update README.md comma --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a47fe227c..f0bb67989 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ project started under the Computational Reactor Physics Group at MIT. Complete documentation on the usage of OpenMC is hosted on Read the Docs (both for the [latest release](http://openmc.readthedocs.io/en/stable/) and [developmental](http://openmc.readthedocs.io/en/latest/) version). If you are -interested in the project or would like to help and contribute, please get in touch on the OpenMC [discussion forum](https://openmc.discourse.group/). +interested in the project, or would like to help and contribute, please get in touch on the OpenMC [discussion forum](https://openmc.discourse.group/). ## Installation From 2800542116028ac9768d399e80787502116d1f42 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 31 Aug 2020 06:45:38 -0500 Subject: [PATCH 108/122] Small fixes in reaction.cpp (thanks @GiudGiud) --- src/reaction.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/reaction.cpp b/src/reaction.cpp index 1543517e8..5d3e85b5b 100644 --- a/src/reaction.cpp +++ b/src/reaction.cpp @@ -238,7 +238,7 @@ void initialize_maps() REACTION_NAME_MAP[750 + level] = fmt::format("(n,3He{})", level); REACTION_NAME_MAP[800 + level] = fmt::format("(n,a{})", level); if (level <= 15) { - REACTION_NAME_MAP[875 + level] = fmt::format("(n,a{})", level); + REACTION_NAME_MAP[875 + level] = fmt::format("(n,2n{})", level); } } @@ -273,6 +273,10 @@ int reaction_type(std::string name) // Initialize remainder of name map and all of type map if (REACTION_TYPE_MAP.empty()) initialize_maps(); + // (n,total) exists in REACTION_TYPE_MAP for MT=1, but we need this to return + // the special SCORE_TOTAL score + if (name == "(n,total)") return SCORE_TOTAL; + // Check if type map has an entry for this reaction name auto it = REACTION_TYPE_MAP.find(name); if (it != REACTION_TYPE_MAP.end()) { @@ -280,9 +284,7 @@ int reaction_type(std::string name) } // Alternate names for several reactions - if (name == "(n,total)") { - return SCORE_TOTAL; - } else if (name == "elastic") { + if (name == "elastic") { return ELASTIC; } else if (name == "n2n") { return N_2N; From e6aada59753afbff03f7d3c3aea96fa044244500 Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Mon, 31 Aug 2020 14:07:03 +0100 Subject: [PATCH 109/122] Update examples/jupyter/hexagonal-lattice.ipynb Co-authored-by: Paul Romano --- examples/jupyter/hexagonal-lattice.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/jupyter/hexagonal-lattice.ipynb b/examples/jupyter/hexagonal-lattice.ipynb index ff1e5d692..f47b3bc60 100644 --- a/examples/jupyter/hexagonal-lattice.ipynb +++ b/examples/jupyter/hexagonal-lattice.ipynb @@ -145,7 +145,7 @@ "\n", "From the diagram above, we see that the outer ring has 18 elements, the first ring has 12, and the second ring has 6 elements. The innermost ring of any hexagonal lattice will have only a single element. \n", "\n", - "We build these rings though 'list concatenation' as folows: " + "We build these rings through 'list concatenation' as follows: " ] }, { From 5dd2165df8632bb493e71529d372283055187c3c Mon Sep 17 00:00:00 2001 From: Cyrus Wyett <34195737+cjwyett@users.noreply.github.com> Date: Mon, 31 Aug 2020 14:13:41 +0100 Subject: [PATCH 110/122] quick typo fix in publications.rst --- docs/source/publications.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/publications.rst b/docs/source/publications.rst index 5691fd218..b4f4e6aeb 100644 --- a/docs/source/publications.rst +++ b/docs/source/publications.rst @@ -81,7 +81,7 @@ Coupling and Multi-physics 264-274 (2017). - Tianliang Hu, Liangzhu Cao, Hongchun Wu, Xianan Du, and Mingtao He, "`Coupled - neutrons and thermal-hydraulics simulation of molten salt reactors based on + neutronics and thermal-hydraulics simulation of molten salt reactors based on OpenMC/TANSY `_," *Ann. Nucl. Energy*, **109**, 260-276 (2017). From d183a2537682b65c283c1e0683b2e48b1029c945 Mon Sep 17 00:00:00 2001 From: Guillaume Giudicelli Date: Mon, 31 Aug 2020 16:07:32 -0600 Subject: [PATCH 111/122] Fix documentation on particle restart flag --- docs/source/usersguide/troubleshoot.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/usersguide/troubleshoot.rst b/docs/source/usersguide/troubleshoot.rst index f8ec70ebd..19ce301ec 100644 --- a/docs/source/usersguide/troubleshoot.rst +++ b/docs/source/usersguide/troubleshoot.rst @@ -98,8 +98,8 @@ has a collision. For example, if you received this error at cycle 5, generation 5 1 4032 For large runs it is often advantageous to run only the offending particle by -using particle restart mode with the ``-s``, ``-particle``, or ``--particle`` -command-line options in conjunction with the particle restart files that are -created when particles are lost with this error. +using particle restart mode with the ``-r`` command-line options in conjunction +with the particle restart files that are created when particles are lost with +this error. .. _mailing list: https://groups.google.com/forum/?fromgroups=#!forum/openmc-users From 8dfbc0662b34f1200426ec211f6c2d8d5018cdcb Mon Sep 17 00:00:00 2001 From: Guillaume Giudicelli Date: Mon, 31 Aug 2020 16:23:49 -0600 Subject: [PATCH 112/122] Set log level when confusion occurs with the templated log params --- docs/source/usersguide/troubleshoot.rst | 2 +- src/particle.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/source/usersguide/troubleshoot.rst b/docs/source/usersguide/troubleshoot.rst index 19ce301ec..7fb5723d9 100644 --- a/docs/source/usersguide/troubleshoot.rst +++ b/docs/source/usersguide/troubleshoot.rst @@ -98,7 +98,7 @@ has a collision. For example, if you received this error at cycle 5, generation 5 1 4032 For large runs it is often advantageous to run only the offending particle by -using particle restart mode with the ``-r`` command-line options in conjunction +using particle restart mode with the ``-r`` command-line option in conjunction with the particle restart files that are created when particles are lost with this error. diff --git a/src/particle.cpp b/src/particle.cpp index a983b6600..0b5067165 100644 --- a/src/particle.cpp +++ b/src/particle.cpp @@ -410,7 +410,7 @@ Particle::cross_surface() // TODO: off-by-one const auto& surf {model::surfaces[i_surface - 1].get()}; if (settings::verbosity >= 10 || trace_) { - write_message(" Crossing surface {}", surf->id_); + write_message(1, " Crossing surface {}", surf->id_); } if (surf->bc_ == Surface::BoundaryType::VACUUM && (settings::run_mode != RunMode::PLOTTING)) { @@ -437,7 +437,7 @@ Particle::cross_surface() // Display message if (settings::verbosity >= 10 || trace_) { - write_message(" Leaked out of surface {}", surf->id_); + write_message(1, " Leaked out of surface {}", surf->id_); } return; @@ -502,7 +502,7 @@ Particle::cross_surface() // Diagnostic message if (settings::verbosity >= 10 || trace_) { - write_message(" Reflected from surface {}", surf->id_); + write_message(1, " Reflected from surface {}", surf->id_); } return; @@ -556,7 +556,7 @@ Particle::cross_surface() // Diagnostic message if (settings::verbosity >= 10 || trace_) { - write_message(" Hit periodic boundary on surface {}", surf->id_); + write_message(1, " Hit periodic boundary on surface {}", surf->id_); } return; } From 2ace13378cc532a96ef2e9912256f5cf38154135 Mon Sep 17 00:00:00 2001 From: Yue JIN Date: Thu, 3 Sep 2020 11:09:02 +0800 Subject: [PATCH 113/122] Examine if the region exists before removing redundant surfaces --- openmc/geometry.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openmc/geometry.py b/openmc/geometry.py index 3becde9a7..e7d981d7b 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -568,7 +568,8 @@ class Geometry: # Iterate through all cells contained in the geometry for cell in self.get_all_cells().values(): # Recursively remove redundant surfaces from regions - cell.region.remove_redundant_surfaces(redundant_surfaces) + if cell.region: + cell.region.remove_redundant_surfaces(redundant_surfaces) def determine_paths(self, instances_only=False): """Determine paths through CSG tree for cells and materials. From e0689fda07faefca0502dbd8c421b7a280a5adfa Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Wed, 2 Sep 2020 15:41:03 -0500 Subject: [PATCH 114/122] Updates to enable plotting of individual universe levels. --- include/openmc/geometry.h | 2 +- include/openmc/plot.h | 2 +- openmc/lib/__init__.py | 5 ++++- src/plot.cpp | 26 +++++++++++++++++--------- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/include/openmc/geometry.h b/include/openmc/geometry.h index 6fd0d1ad9..0ad891269 100644 --- a/include/openmc/geometry.h +++ b/include/openmc/geometry.h @@ -18,7 +18,7 @@ namespace openmc { namespace model { extern int root_universe; //!< Index of root universe -extern int n_coord_levels; //!< Number of CSG coordinate levels +extern "C" int n_coord_levels; //!< Number of CSG coordinate levels extern std::vector overlap_check_count; diff --git a/include/openmc/plot.h b/include/openmc/plot.h index 76fc462c3..e7682d7d5 100644 --- a/include/openmc/plot.h +++ b/include/openmc/plot.h @@ -184,7 +184,7 @@ T PlotBase::get_map() const { // local variables bool found_cell = find_cell(p, 0); j = p.n_coord_ - 1; - if (level >=0) {j = level + 1;} + if (level >= 0) {j = level;} if (found_cell) { data.set_value(y, x, p, j); } diff --git a/openmc/lib/__init__.py b/openmc/lib/__init__.py index 92fd1730d..8a2d3cf7b 100644 --- a/openmc/lib/__init__.py +++ b/openmc/lib/__init__.py @@ -12,7 +12,7 @@ functions or objects in :mod:`openmc.lib`, for example: """ -from ctypes import CDLL, c_bool +from ctypes import CDLL, c_bool, c_int import os import sys @@ -42,6 +42,9 @@ else: def _dagmc_enabled(): return c_bool.in_dll(_dll, "dagmc_enabled").value +def _coord_levels(): + return c_int.in_dll(_dll, "n_coord_levels").value + from .error import * from .core import * from .nuclide import * diff --git a/src/plot.cpp b/src/plot.cpp index 283207a42..2baf0e74c 100644 --- a/src/plot.cpp +++ b/src/plot.cpp @@ -41,14 +41,21 @@ IdData::IdData(size_t h_res, size_t v_res) void IdData::set_value(size_t y, size_t x, const Particle& p, int level) { - Cell* c = model::cells[p.coord_[level].cell].get(); - data_(y,x,0) = c->id_; + // set cell data + if (p.n_coord_ <= level) { + data_(y, x, 0) = NOT_FOUND; + } else { + data_(y, x, 0) = model::cells[p.coord_[level].cell]->id_; + } + + // set material data + Cell* c = model::cells[p.coord_[p.n_coord_ - 1].cell].get(); if (p.material_ == MATERIAL_VOID) { - data_(y,x,1) = MATERIAL_VOID; + data_(y, x, 1) = MATERIAL_VOID; return; - } else if (c->type_ != Fill::UNIVERSE) { + } else if (c->type_ == Fill::MATERIAL) { Material* m = model::materials[p.material_].get(); - data_(y,x,1) = m->id_; + data_(y, x, 1) = m->id_; } } @@ -62,7 +69,7 @@ PropertyData::PropertyData(size_t h_res, size_t v_res) void PropertyData::set_value(size_t y, size_t x, const Particle& p, int level) { - Cell* c = model::cells[p.coord_[level].cell].get(); + Cell* c = model::cells[p.coord_[p.n_coord_ - 1].cell].get(); data_(y,x,0) = (p.sqrtkT_ * p.sqrtkT_) / K_BOLTZMANN; if (c->type_ != Fill::UNIVERSE && p.material_ != MATERIAL_VOID) { Material* m = model::materials[p.material_].get(); @@ -80,8 +87,8 @@ void PropertyData::set_overlap(size_t y, size_t x) { namespace model { -std::unordered_map plot_map; std::vector plots; +std::unordered_map plot_map; uint64_t plotter_seed = 1; } // namespace model @@ -94,7 +101,8 @@ extern "C" int openmc_plot_geometry() { for (auto pl : model::plots) { - write_message(5, "Processing plot {}: {}...", pl.id_, pl.path_plot_); + write_message(fmt::format("Processing plot {}: {}...", + pl.id_, pl.path_plot_), 5); if (PlotType::slice == pl.type_) { // create 2D image @@ -113,7 +121,7 @@ void read_plots_xml() // Check if plots.xml exists std::string filename = settings::path_input + "plots.xml"; if (!file_exists(filename)) { - fatal_error(fmt::format("Plots XML file '{}' does not exist!", filename)); + fatal_error("Plots XML file '" + filename + "' does not exist!"); } write_message("Reading plot XML file...", 5); From 9c62259645cf6f1e8977f67f4bd17c6e96613039 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Wed, 2 Sep 2020 23:27:43 -0500 Subject: [PATCH 115/122] Adjusting the level value. --- include/openmc/plot.h | 2 +- src/plot.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/openmc/plot.h b/include/openmc/plot.h index e7682d7d5..c5397a3e3 100644 --- a/include/openmc/plot.h +++ b/include/openmc/plot.h @@ -184,7 +184,7 @@ T PlotBase::get_map() const { // local variables bool found_cell = find_cell(p, 0); j = p.n_coord_ - 1; - if (level >= 0) {j = level;} + if (level >= 0) {j = level + 1;} if (found_cell) { data.set_value(y, x, p, j); } diff --git a/src/plot.cpp b/src/plot.cpp index 2baf0e74c..e1261e44e 100644 --- a/src/plot.cpp +++ b/src/plot.cpp @@ -42,7 +42,7 @@ IdData::IdData(size_t h_res, size_t v_res) void IdData::set_value(size_t y, size_t x, const Particle& p, int level) { // set cell data - if (p.n_coord_ <= level) { + if (p.n_coord_ < level) { data_(y, x, 0) = NOT_FOUND; } else { data_(y, x, 0) = model::cells[p.coord_[level].cell]->id_; From 77c911be0530019f5a39ac97c19da8e99c145dc8 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 3 Sep 2020 08:26:19 -0500 Subject: [PATCH 116/122] Using std::vector accessors. --- src/plot.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plot.cpp b/src/plot.cpp index e1261e44e..6a2024d93 100644 --- a/src/plot.cpp +++ b/src/plot.cpp @@ -45,16 +45,16 @@ IdData::set_value(size_t y, size_t x, const Particle& p, int level) { if (p.n_coord_ < level) { data_(y, x, 0) = NOT_FOUND; } else { - data_(y, x, 0) = model::cells[p.coord_[level].cell]->id_; + data_(y, x, 0) = model::cells.at(p.coord_.at(level).cell)->id_; } // set material data - Cell* c = model::cells[p.coord_[p.n_coord_ - 1].cell].get(); + Cell* c = model::cells.at(p.coord_.at(p.n_coord_ - 1).cell).get(); if (p.material_ == MATERIAL_VOID) { data_(y, x, 1) = MATERIAL_VOID; return; } else if (c->type_ == Fill::MATERIAL) { - Material* m = model::materials[p.material_].get(); + Material* m = model::materials.at(p.material_).get(); data_(y, x, 1) = m->id_; } } @@ -69,10 +69,10 @@ PropertyData::PropertyData(size_t h_res, size_t v_res) void PropertyData::set_value(size_t y, size_t x, const Particle& p, int level) { - Cell* c = model::cells[p.coord_[p.n_coord_ - 1].cell].get(); + Cell* c = model::cells.at(p.coord_.at(p.n_coord_ - 1).cell).get(); data_(y,x,0) = (p.sqrtkT_ * p.sqrtkT_) / K_BOLTZMANN; if (c->type_ != Fill::UNIVERSE && p.material_ != MATERIAL_VOID) { - Material* m = model::materials[p.material_].get(); + Material* m = model::materials.at(p.material_).get(); data_(y,x,1) = m->density_gpcc_; } } From c1006b34e3d74d5e3fa599e88b536e47dce74ec9 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 3 Sep 2020 08:29:19 -0500 Subject: [PATCH 117/122] Correcting message output. --- src/plot.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plot.cpp b/src/plot.cpp index 6a2024d93..481ed20fb 100644 --- a/src/plot.cpp +++ b/src/plot.cpp @@ -121,7 +121,7 @@ void read_plots_xml() // Check if plots.xml exists std::string filename = settings::path_input + "plots.xml"; if (!file_exists(filename)) { - fatal_error("Plots XML file '" + filename + "' does not exist!"); + fatal_error(fmt::format("Plots XML file '{}' does not exist!", filename)); } write_message("Reading plot XML file...", 5); From 53108e345926437e6aa4c07c9e1ac5f11411e53c Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 3 Sep 2020 08:33:02 -0500 Subject: [PATCH 118/122] Corrections after rebase. --- src/plot.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/plot.cpp b/src/plot.cpp index 481ed20fb..f52c2b03f 100644 --- a/src/plot.cpp +++ b/src/plot.cpp @@ -87,8 +87,8 @@ void PropertyData::set_overlap(size_t y, size_t x) { namespace model { -std::vector plots; std::unordered_map plot_map; +std::vector plots; uint64_t plotter_seed = 1; } // namespace model @@ -101,8 +101,7 @@ extern "C" int openmc_plot_geometry() { for (auto pl : model::plots) { - write_message(fmt::format("Processing plot {}: {}...", - pl.id_, pl.path_plot_), 5); + write_message(5, "Processing plot {}: {}...", pl.id_, pl.path_plot_); if (PlotType::slice == pl.type_) { // create 2D image From 301f15139ffcadb8adea9bf15fe79bc9cbf1cc84 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 3 Sep 2020 22:30:46 -0500 Subject: [PATCH 119/122] Correction to plot level and index check. --- include/openmc/plot.h | 2 +- src/plot.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/openmc/plot.h b/include/openmc/plot.h index c5397a3e3..28c395bca 100644 --- a/include/openmc/plot.h +++ b/include/openmc/plot.h @@ -184,7 +184,7 @@ T PlotBase::get_map() const { // local variables bool found_cell = find_cell(p, 0); j = p.n_coord_ - 1; - if (level >= 0) {j = level + 1;} + if (level >= 0) { j = level; } if (found_cell) { data.set_value(y, x, p, j); } diff --git a/src/plot.cpp b/src/plot.cpp index f52c2b03f..20c3c986e 100644 --- a/src/plot.cpp +++ b/src/plot.cpp @@ -42,7 +42,7 @@ IdData::IdData(size_t h_res, size_t v_res) void IdData::set_value(size_t y, size_t x, const Particle& p, int level) { // set cell data - if (p.n_coord_ < level) { + if (p.n_coord_ <= level) { data_(y, x, 0) = NOT_FOUND; } else { data_(y, x, 0) = model::cells.at(p.coord_.at(level).cell)->id_; From b7a4beff5c3b782a31b6a9203891b2ff11cef9e2 Mon Sep 17 00:00:00 2001 From: Yue JIN Date: Wed, 9 Sep 2020 13:36:43 +0800 Subject: [PATCH 120/122] Make mix_materials() inherit "depletable" attribute of involved materials --- openmc/material.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openmc/material.py b/openmc/material.py index 323cb1f14..8dea2ce0a 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -1079,6 +1079,13 @@ class Material(IDManagerMixin): new_density = np.sum([dens for dens in mass_per_cc.values()]) new_mat.set_density('g/cm3', new_density) + # If any of the involved materials is depletable, the new material is + # depletable + for mat in materials: + if mat.depletable: + new_mat.depletable = True + break + return new_mat @classmethod From ccd76516f1054d94035077b3b2ec34edab366675 Mon Sep 17 00:00:00 2001 From: Yue JIN <40021217+kingyue737@users.noreply.github.com> Date: Thu, 10 Sep 2020 10:50:17 +0800 Subject: [PATCH 121/122] Using python's any function to inherit involved materials' attr Co-authored-by: Paul Romano --- openmc/material.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index 8dea2ce0a..0d4fec808 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -1081,10 +1081,7 @@ class Material(IDManagerMixin): # If any of the involved materials is depletable, the new material is # depletable - for mat in materials: - if mat.depletable: - new_mat.depletable = True - break + new_mat.depletable = any(mat.depletable for mat in materials) return new_mat From 40581ee040be28532577fe797eec5928f9c0f230 Mon Sep 17 00:00:00 2001 From: Yue JIN Date: Thu, 10 Sep 2020 13:18:14 +0800 Subject: [PATCH 122/122] Typo fix of .gitignore --- .gitignore | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 133a5f626..0167ec78a 100644 --- a/.gitignore +++ b/.gitignore @@ -101,14 +101,18 @@ examples/jupyter/plots .coverage htmlcov -#macOS +# macOS *.DS_Store -#Dynamic Library +# Dynamic Library *.dylib +*.lib +*.dll -#Visual Studio CMake Project -/.vs/ +# Visual Studio CMake project +.vs/ +out/ CMakeSettings.json -/out/ -/openmc/lib/*.lib + +# Visual Studio Code configuration files +.vscode/ \ No newline at end of file