From 1a4304c78a77992db177e72e3b0c5740df8a1bd2 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 7 May 2020 07:15:19 -0500 Subject: [PATCH] Made modifications to 1) fix min data temperature and max data temperature printing, and 2) to allow openmc.mgxs.Library to tally over Cells which contaon universes instead of only allowing for cells that contain materials. --- openmc/mgxs/library.py | 11 ++++++++--- src/finalize.cpp | 4 ++-- src/nuclide.cpp | 8 ++++---- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index f8708e1542..54f97316e1 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -192,7 +192,9 @@ class Library: if self._domains == 'all': if self.domain_type == 'material': return list(self.geometry.get_all_materials().values()) - elif self.domain_type in ['cell', 'distribcell']: + elif self.domain_type == 'cell': + return list(self.geometry.get_all_cells().values()) + elif self.domain_type in 'distribcell': return list(self.geometry.get_all_material_cells().values()) elif self.domain_type == 'universe': return list(self.geometry.get_all_universes().values()) @@ -316,7 +318,10 @@ class Library: if self.domain_type == 'material': cv.check_type('domain', domains, Iterable, openmc.Material) all_domains = self.geometry.get_all_materials().values() - elif self.domain_type in ['cell', 'distribcell']: + elif self.domain_type == 'cell': + cv.check_type('domain', domains, Iterable, openmc.Cell) + all_domains = self.geometry.get_all_cells().values() + elif self.domain_type == 'distribcell': cv.check_type('domain', domains, Iterable, openmc.Cell) all_domains = self.geometry.get_all_material_cells().values() elif self.domain_type == 'universe': @@ -1382,7 +1387,7 @@ class Library: materials = openmc.Materials() # Get all Cells from the Geometry for differentiation - all_cells = geometry.get_all_material_cells().values() + all_cells = geometry.get_all_cells().values() # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): diff --git a/src/finalize.cpp b/src/finalize.cpp index b5d5eb0389..7a4a0490b1 100644 --- a/src/finalize.cpp +++ b/src/finalize.cpp @@ -127,8 +127,8 @@ int openmc_finalize() data::energy_max = {INFTY, INFTY}; data::energy_min = {0.0, 0.0}; - data::temperature_min = 0.0; - data::temperature_max = INFTY; + data::temperature_min = INFTY; + data::temperature_max = 0.0; model::root_universe = -1; openmc::openmc_set_seed(DEFAULT_SEED); diff --git a/src/nuclide.cpp b/src/nuclide.cpp index 22fd568554..f3bfccc346 100644 --- a/src/nuclide.cpp +++ b/src/nuclide.cpp @@ -30,8 +30,8 @@ namespace openmc { namespace data { std::array energy_min {0.0, 0.0}; std::array energy_max {INFTY, INFTY}; -double temperature_min {0.0}; -double temperature_max {INFTY}; +double temperature_min {INFTY}; +double temperature_max {0.0}; std::vector> nuclides; std::unordered_map nuclide_map; } // namespace data @@ -159,8 +159,8 @@ Nuclide::Nuclide(hid_t group, const std::vector& temperature, int i_nucl double T_min_read = *std::min_element(temps_to_read.cbegin(), temps_to_read.cend()); double T_max_read = *std::max_element(temps_to_read.cbegin(), temps_to_read.cend()); - data::temperature_min = std::max(data::temperature_min, T_min_read); - data::temperature_max = std::min(data::temperature_max, T_max_read); + data::temperature_min = std::min(data::temperature_min, T_min_read); + data::temperature_max = std::max(data::temperature_max, T_max_read); hid_t energy_group = open_group(group, "energy"); for (const auto& T : temps_to_read) {