From 1a4304c78a77992db177e72e3b0c5740df8a1bd2 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 7 May 2020 07:15:19 -0500 Subject: [PATCH 1/4] 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 f8708e154..54f97316e 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 b5d5eb038..7a4a0490b 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 22fd56855..f3bfccc34 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) { From 4305ccf5ce1b7ebc3a0bd4102cd3a9577392d31e Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 7 May 2020 09:01:40 -0500 Subject: [PATCH 2/4] Additional fix: openmc.mgxs.Library was appending nuclide name to a cross section data set twice when creating the XsData object for the MGXSLibrary class --- openmc/mgxs/library.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 54f97316e..afb04db07 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -1265,6 +1265,7 @@ class Library: i += 1 else: + # import pdb; pdb.set_trace() # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): if self.by_nuclide: @@ -1277,8 +1278,6 @@ class Library: xsdata_name = 'set' + str(i + 1) else: xsdata_name = xsdata_names[i] - if nuclide != 'total': - xsdata_name += '_' + nuclide xsdata = self.get_xsdata(domain, xsdata_name, nuclide=nuclide, xs_type=xs_type) From 010ab4c05108d2f7c32d93445e405ac170d73e4a Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 7 May 2020 09:08:25 -0500 Subject: [PATCH 3/4] removed an import pdb :-( --- openmc/mgxs/library.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index afb04db07..e1c44c352 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -1265,7 +1265,6 @@ class Library: i += 1 else: - # import pdb; pdb.set_trace() # Create the xsdata object and add it to the mgxs_file for i, domain in enumerate(self.domains): if self.by_nuclide: From f54372bfcebcf3a4e7198c5dea92547106d05f39 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 8 May 2020 13:45:44 -0500 Subject: [PATCH 4/4] Removed temperature_min/max modifications --- src/finalize.cpp | 4 ++-- src/nuclide.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/finalize.cpp b/src/finalize.cpp index 7a4a0490b..b5d5eb038 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 = INFTY; - data::temperature_max = 0.0; + data::temperature_min = 0.0; + data::temperature_max = INFTY; model::root_universe = -1; openmc::openmc_set_seed(DEFAULT_SEED); diff --git a/src/nuclide.cpp b/src/nuclide.cpp index f3bfccc34..22fd56855 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 {INFTY}; -double temperature_max {0.0}; +double temperature_min {0.0}; +double temperature_max {INFTY}; 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::min(data::temperature_min, T_min_read); - data::temperature_max = std::max(data::temperature_max, T_max_read); + data::temperature_min = std::max(data::temperature_min, T_min_read); + data::temperature_max = std::min(data::temperature_max, T_max_read); hid_t energy_group = open_group(group, "energy"); for (const auto& T : temps_to_read) {