From 81578fdd2257e1a9b42e1621a157b668d9d65366 Mon Sep 17 00:00:00 2001 From: Matt Dawson Date: Fri, 30 Aug 2024 10:05:26 -0700 Subject: [PATCH] remove local copy of state in solver functions --- include/micm/solver/backward_euler.inl | 3 +-- include/micm/solver/rosenbrock.inl | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/include/micm/solver/backward_euler.inl b/include/micm/solver/backward_euler.inl index 8b5b5f494..6c6d5f802 100644 --- a/include/micm/solver/backward_euler.inl +++ b/include/micm/solver/backward_euler.inl @@ -67,7 +67,7 @@ namespace micm bool singular = false; auto Yn = state.variables_; - auto Yn1 = state.variables_; + auto& Yn1 = state.variables_; // Yn1 will hold the new solution at the end of the solve auto forcing = state.variables_; while (t < time_step) @@ -162,7 +162,6 @@ namespace micm H = std::min(H, time_step - t); } - state.variables_ = Yn1; result.final_time_ = t; return result; } diff --git a/include/micm/solver/rosenbrock.inl b/include/micm/solver/rosenbrock.inl index 0b005c7df..17d68b079 100644 --- a/include/micm/solver/rosenbrock.inl +++ b/include/micm/solver/rosenbrock.inl @@ -13,7 +13,7 @@ namespace micm SolverResult result{}; result.state_ = SolverState::Running; - MatrixPolicy Y = state.variables_; + MatrixPolicy& Y = state.variables_; // Y will hold the new solution at the end of the solve std::size_t num_rows = Y.NumRows(); std::size_t num_cols = Y.NumColumns(); MatrixPolicy Ynew(num_rows, num_cols); @@ -192,7 +192,6 @@ namespace micm result.final_time_ = present_time; result.stats_ = stats; - state.variables_ = Y; return result; }