From ac043cb67a3da93d16761d44d23451f15588b7ba Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 8 Sep 2022 22:37:03 -0500 Subject: [PATCH] Adding checks for minimum number of data points for quadratic/cubic interpolation --- src/tallies/filter_energyfunc.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tallies/filter_energyfunc.cpp b/src/tallies/filter_energyfunc.cpp index 0abebf8852..170c052629 100644 --- a/src/tallies/filter_energyfunc.cpp +++ b/src/tallies/filter_energyfunc.cpp @@ -39,8 +39,12 @@ void EnergyFunctionFilter::from_xml(pugi::xml_node node) } else if (interpolation == "log-log") { interpolation_ = Interpolation::log_log; } else if (interpolation == "quadratic") { + if (energy.size() < 3) + fatal_error(fmt::format("Quadratic interpolation on EnergyFunctionFilter {} requires at least 3 data points.", id())); interpolation_ = Interpolation::quadratic; } else if (interpolation == "cubic") { + if (energy.size() < 4) + fatal_error(fmt::format("Cubic interpolation on EnergyFunctionFilter {} requires at least 4 data points.", id())); interpolation_ = Interpolation::cubic; } else { fatal_error(fmt::format(