From bb9ef684ae7be0d084bcf35d0abe323b8c4866f1 Mon Sep 17 00:00:00 2001 From: Gavin Ridley Date: Tue, 30 Mar 2021 13:54:33 -0400 Subject: [PATCH 1/2] fix calculation of min and max neutron data temperature --- src/nuclide.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/nuclide.cpp b/src/nuclide.cpp index f925861ab6..c7c84f23a8 100644 --- a/src/nuclide.cpp +++ b/src/nuclide.cpp @@ -33,7 +33,7 @@ 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_max {0.0}; std::unordered_map nuclide_map; std::vector> nuclides; } // namespace data @@ -169,11 +169,10 @@ Nuclide::Nuclide(hid_t group, const std::vector& temperature) // Sort temperatures to read std::sort(temps_to_read.begin(), temps_to_read.end()); - 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, static_cast(temps_to_read.front())); + data::temperature_max = + std::max(data::temperature_max, static_cast(temps_to_read.back())); hid_t energy_group = open_group(group, "energy"); for (const auto& T : temps_to_read) { From d4cf2b321de19b43123c6536cf72a5cf2c5b7a7d Mon Sep 17 00:00:00 2001 From: Gavin Ridley Date: Tue, 30 Mar 2021 16:32:58 -0400 Subject: [PATCH 2/2] initialize min temperature as infty, so it strictly decreases --- src/nuclide.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nuclide.cpp b/src/nuclide.cpp index c7c84f23a8..5ecbdc3b4d 100644 --- a/src/nuclide.cpp +++ b/src/nuclide.cpp @@ -32,7 +32,7 @@ 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_min {INFTY}; double temperature_max {0.0}; std::unordered_map nuclide_map; std::vector> nuclides;