From c6ef84d1d5ad47cc528573332a539ea1f25a8e44 Mon Sep 17 00:00:00 2001 From: Kevin Sawatzky <66632997+nuclearkevin@users.noreply.github.com> Date: Sun, 15 Feb 2026 15:59:08 -0600 Subject: [PATCH] Set upper and lower interpolation bounds for MGXS data. (#3803) --- src/mgxs.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mgxs.cpp b/src/mgxs.cpp index a2c479f21..ea78238b8 100644 --- a/src/mgxs.cpp +++ b/src/mgxs.cpp @@ -14,6 +14,7 @@ #include "openmc/error.h" #include "openmc/math_functions.h" #include "openmc/mgxs_interface.h" +#include "openmc/nuclide.h" #include "openmc/random_lcg.h" #include "openmc/settings.h" #include "openmc/string_utils.h" @@ -85,6 +86,13 @@ void Mgxs::metadata_from_hdf5(hid_t xs_id, const vector& temperature, delete[] dset_names; std::sort(temps_available.begin(), temps_available.end()); + // Set the global upper and lower interpolation bounds to avoid errors + // involving C-API functions. + data::temperature_min = + std::min(data::temperature_min, temps_available.front()); + data::temperature_max = + std::max(data::temperature_max, temps_available.back()); + // If only one temperature is available, lets just use nearest temperature // interpolation if ((num_temps == 1) &&