From 2f424910f3e10a35b6949791fb503d125f8b44ed Mon Sep 17 00:00:00 2001
From: Wenqing Wang <wenqing.wang@ufz.de>
Date: Thu, 4 Apr 2024 17:38:01 +0200
Subject: [PATCH] [Process] Extract a common part of Process.cpp to a function

---
 ProcessLib/Process.cpp | 48 +++++++++++++++++++-----------------------
 1 file changed, 22 insertions(+), 26 deletions(-)

diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp
index 783e2d9bdb7..98ed6566750 100644
--- a/ProcessLib/Process.cpp
+++ b/ProcessLib/Process.cpp
@@ -21,6 +21,22 @@
 #include "ParameterLib/Parameter.h"
 #include "ProcessVariable.h"
 
+namespace
+{
+void setLocalAccessibleVectors(std::vector<GlobalVector*> const& x,
+                               std::vector<GlobalVector*> const& x_prev)
+{
+    for (auto* const solution : x)
+    {
+        MathLib::LinAlg::setLocalAccessibleVector(*solution);
+    }
+    for (auto* const solution : x_prev)
+    {
+        MathLib::LinAlg::setLocalAccessibleVector(*solution);
+    }
+}
+}  // namespace
+
 namespace ProcessLib
 {
 const std::string Process::constant_one_parameter_name = "constant_one";
@@ -253,11 +269,8 @@ void Process::assemble(const double t, double const dt,
                        GlobalVector& b)
 {
     assert(x.size() == x_prev.size());
-    for (std::size_t i = 0; i < x.size(); i++)
-    {
-        MathLib::LinAlg::setLocalAccessibleVector(*x[i]);
-        MathLib::LinAlg::setLocalAccessibleVector(*x_prev[i]);
-    }
+
+    setLocalAccessibleVectors(x, x_prev);
 
     assembleConcreteProcess(t, dt, x, x_prev, process_id, M, K, b);
 
@@ -278,11 +291,8 @@ void Process::assembleWithJacobian(const double t, double const dt,
                                    GlobalMatrix& Jac)
 {
     assert(x.size() == x_prev.size());
-    for (std::size_t i = 0; i < x.size(); i++)
-    {
-        MathLib::LinAlg::setLocalAccessibleVector(*x[i]);
-        MathLib::LinAlg::setLocalAccessibleVector(*x_prev[i]);
-    }
+
+    setLocalAccessibleVectors(x, x_prev);
 
     assembleWithJacobianConcreteProcess(t, dt, x, x_prev, process_id, M, K, b,
                                         Jac);
@@ -446,14 +456,7 @@ void Process::postTimestep(std::vector<GlobalVector*> const& x,
                            const double t, const double delta_t,
                            int const process_id)
 {
-    for (auto* const solution : x)
-    {
-        MathLib::LinAlg::setLocalAccessibleVector(*solution);
-    }
-    for (auto* const solution : x_prev)
-    {
-        MathLib::LinAlg::setLocalAccessibleVector(*solution);
-    }
+    setLocalAccessibleVectors(x, x_prev);
 
     postTimestepConcreteProcess(x, x_prev, t, delta_t, process_id);
 
@@ -465,14 +468,7 @@ void Process::postNonLinearSolver(std::vector<GlobalVector*> const& x,
                                   const double t, double const dt,
                                   int const process_id)
 {
-    for (auto* const solution : x)
-    {
-        MathLib::LinAlg::setLocalAccessibleVector(*solution);
-    }
-    for (auto* const solution : x_prev)
-    {
-        MathLib::LinAlg::setLocalAccessibleVector(*solution);
-    }
+    setLocalAccessibleVectors(x, x_prev);
 
     postNonLinearSolverConcreteProcess(x, x_prev, t, dt, process_id);
 }
-- 
GitLab