From 652ed240ef263f21e263b970e0c321f18e73d28c Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Fri, 4 Aug 2023 13:51:07 -0400 Subject: [PATCH] [Reactor] Fix getting sensitivities after calls to advance Previously, values would be returned for the sensitivity at the last internal timestep of the integrator, rather than being interpolated to the user-specified integration time. --- src/numerics/CVodesIntegrator.cpp | 2 +- src/numerics/IdasIntegrator.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/numerics/CVodesIntegrator.cpp b/src/numerics/CVodesIntegrator.cpp index 033eb59fcf..bb4aa6b301 100644 --- a/src/numerics/CVodesIntegrator.cpp +++ b/src/numerics/CVodesIntegrator.cpp @@ -637,7 +637,7 @@ double CVodesIntegrator::sensitivity(size_t k, size_t p) return 0.0; } if (!m_sens_ok && m_np) { - int flag = CVodeGetSens(m_cvode_mem, &m_time, m_yS); + int flag = CVodeGetSensDky(m_cvode_mem, m_time, 0, m_yS); checkError(flag, "sensitivity", "CVodeGetSens"); m_sens_ok = true; } diff --git a/src/numerics/IdasIntegrator.cpp b/src/numerics/IdasIntegrator.cpp index f4f6ec8fd3..f302d221f1 100644 --- a/src/numerics/IdasIntegrator.cpp +++ b/src/numerics/IdasIntegrator.cpp @@ -512,7 +512,7 @@ double IdasIntegrator::sensitivity(size_t k, size_t p) return 0.0; } if (!m_sens_ok && m_np) { - int flag = IDAGetSens(m_ida_mem, &m_time, m_yS); + int flag = IDAGetSensDky(m_ida_mem, m_time, 0, m_yS); checkError(flag, "sensitivity", "IDAGetSens"); m_sens_ok = true; }