From 39ee9c068e85b73b8f4f2ff75d20532bb9cdd52c Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <dmitri.naumov@ufz.de> Date: Fri, 18 Mar 2016 13:02:27 +0100 Subject: [PATCH] [T] ODE: Add calls to ode_solver->getYDot(). --- Tests/MathLib/TestCVode.cpp | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/Tests/MathLib/TestCVode.cpp b/Tests/MathLib/TestCVode.cpp index 9175181f00a..16ca676c3b5 100644 --- a/Tests/MathLib/TestCVode.cpp +++ b/Tests/MathLib/TestCVode.cpp @@ -80,9 +80,12 @@ TEST(MathLibCVodeTest, Exponential) auto const y = ode_solver->getSolution(); double time_reached = ode_solver->getTime(); + auto const y_dot = ode_solver->getYDot(time_reached, y); - std::printf("t: %14.7g, y: %14.7g, diff: %14.7g\n", time_reached, y[0], - y[0] - exp(-15.0 * time_reached)); + std::printf( + "t: %14.7g, y: %14.7g, diff: %14.7g, y_dot: %14.7g, diff: %14.7g\n", + time_reached, y[0], y[0] - exp(-15.0 * time_reached), y_dot[0], + y_dot[0] + 15.0 * exp(-15.0 * time_reached)); ASSERT_NEAR(time, time_reached, std::numeric_limits<double>::epsilon()); // std::printf("time: %g\n", time_reached); @@ -117,9 +120,12 @@ TEST(MathLibCVodeTest, ExponentialExtraData) auto const y = ode_solver->getSolution(); double time_reached = ode_solver->getTime(); + auto const y_dot = ode_solver->getYDot(time_reached, y); - std::printf("t: %14.7g, y: %14.7g, diff: %14.7g\n", time_reached, y[0], - y[0] - exp(-15.0 * time_reached)); + std::printf( + "t: %14.7g, y: %14.7g, diff: %14.7g, y_dot: %14.7g, diff: %14.7g\n", + time_reached, y[0], y[0] - exp(-15.0 * time_reached), y_dot[0], + y_dot[0] + 15.0 * exp(-15.0 * time_reached)); ASSERT_NEAR(time, time_reached, std::numeric_limits<double>::epsilon()); // std::printf("time: %g\n", time_reached); @@ -135,9 +141,12 @@ TEST(MathLibCVodeTest, ExponentialExtraData) auto const y = ode_solver->getSolution(); double time_reached = ode_solver->getTime(); + auto const y_dot = ode_solver->getYDot(time_reached, y); - std::printf("t: %14.7g, y: %14.7g, diff: %14.7g\n", time_reached, y[0], - y[0] - exp(-15.0 * time_reached)); + std::printf( + "t: %14.7g, y: %14.7g, diff: %14.7g, y_dot: %14.7g, diff: %14.7g\n", + time_reached, y[0], y[0] - exp(-15.0 * time_reached), y_dot[0], + y_dot[0] + 15.0 * exp(-15.0 * time_reached)); ASSERT_NEAR(time, time_reached, std::numeric_limits<double>::epsilon()); // std::printf("time: %g\n", time_reached); @@ -172,9 +181,12 @@ TEST(MathLibCVodeTest, ExponentialWithJacobian) auto const y = ode_solver->getSolution(); double time_reached = ode_solver->getTime(); + auto const y_dot = ode_solver->getYDot(time_reached, y); - std::printf("t: %14.7g, y: %14.7g, diff: %14.7g\n", time_reached, y[0], - y[0] - exp(-15.0 * time_reached)); + std::printf( + "t: %14.7g, y: %14.7g, diff: %14.7g, y_dot: %14.7g, diff: %14.7g\n", + time_reached, y[0], y[0] - exp(-15.0 * time_reached), y_dot[0], + y_dot[0] + 15.0 * exp(-15.0 * time_reached)); ASSERT_NEAR(time, time_reached, std::numeric_limits<double>::epsilon()); // std::printf("time: %g\n", time_reached); @@ -212,9 +224,12 @@ TEST(MathLibCVodeTest, ExponentialWithJacobianNewton) auto const y = ode_solver->getSolution(); double time_reached = ode_solver->getTime(); + auto const y_dot = ode_solver->getYDot(time_reached, y); - std::printf("t: %14.7g, y: %14.7g, diff: %14.7g\n", time_reached, y[0], - y[0] - exp(-15.0 * time_reached)); + std::printf( + "t: %14.7g, y: %14.7g, diff: %14.7g, y_dot: %14.7g, diff: %14.7g\n", + time_reached, y[0], y[0] - exp(-15.0 * time_reached), y_dot[0], + y_dot[0] + 15.0 * exp(-15.0 * time_reached)); ASSERT_NEAR(time, time_reached, std::numeric_limits<double>::epsilon()); // std::printf("time: %g\n", time_reached); -- GitLab